@blinkdotnew/mobile-ui 1.0.0 → 2.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,981 +1,477 @@
1
- import { ClassValue } from 'clsx';
1
+ import * as tamagui from 'tamagui';
2
+ import { GetProps } from 'tamagui';
3
+ import * as react from 'react';
4
+ import * as _tamagui_core from '@tamagui/core';
5
+ import * as _tamagui_web from '@tamagui/web';
2
6
  import * as react_jsx_runtime from 'react/jsx-runtime';
3
- import React, { ReactNode } from 'react';
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';
7
+ import * as react_native from 'react-native';
7
8
 
8
- declare function cn(...inputs: ClassValue[]): string;
9
-
10
- declare function useAnimColors(): {
11
- text: string;
12
- placeholder: string;
13
- bg: string;
14
- border: string;
15
- primary: string;
16
- highlight: string;
17
- error: string;
18
- secondary: string;
19
- icon: string;
20
- };
21
-
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;
35
-
36
- interface TextAreaProps extends Omit<InputProps, 'multiline'> {
37
- }
38
- declare function TextArea({ className, ...props }: TextAreaProps): react_jsx_runtime.JSX.Element;
39
-
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;
49
-
50
- interface SearchPillProps {
51
- placeholder?: string;
52
- onPress?: () => void;
53
- className?: string;
54
- }
55
- declare function SearchPill({ placeholder, onPress, className, }: SearchPillProps): react_jsx_runtime.JSX.Element;
56
-
57
- interface CheckboxProps {
58
- checked?: boolean;
59
- onToggle?: (checked: boolean) => void;
60
- label?: string;
61
- disabled?: boolean;
62
- error?: string;
63
- className?: string;
64
- }
65
- declare function Checkbox({ checked, onToggle, label, disabled, error, className, }: CheckboxProps): react_jsx_runtime.JSX.Element;
66
-
67
- interface RadioOption {
68
- value: string;
69
- label: string;
70
- disabled?: boolean;
71
- }
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;
80
-
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;
99
- }
100
- declare function Slider({ value, onValueChange, min, max, step, showValue, className, }: SliderProps): react_jsx_runtime.JSX.Element;
101
-
102
- interface SelectOption {
103
- label: string;
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;
115
- }
116
- declare function Select({ options, value, onChange, label, placeholder, error, variant, className, }: SelectProps): react_jsx_runtime.JSX.Element;
117
-
118
- interface CounterProps {
119
- value?: number;
120
- onChange?: (value: number) => void;
121
- min?: number;
122
- max?: number;
123
- step?: number;
124
- label?: string;
125
- className?: string;
126
- }
127
- declare function Counter({ value: controlledValue, onChange, min, max, step, label, className, }: CounterProps): react_jsx_runtime.JSX.Element;
128
-
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;
140
- children?: React.ReactNode;
141
- className?: string;
142
- }
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;
150
- }
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;
159
- }
160
- interface TabBarProps {
161
- tabs: TabItem[];
162
- activeKey: string;
163
- onChange: (key: string) => void;
164
- className?: string;
165
- }
166
- declare function TabBar({ tabs, activeKey, onChange, className }: TabBarProps): react_jsx_runtime.JSX.Element;
167
-
168
- interface TabButtonProps {
169
- icon: React.ReactNode;
170
- label: string;
171
- active: boolean;
172
- badge?: number;
173
- onPress: () => void;
174
- className?: string;
175
- }
176
- declare function TabButton({ icon, label, active, badge, onPress, className, }: TabButtonProps): react_jsx_runtime.JSX.Element;
177
-
178
- interface Segment {
179
- value: string;
180
- label: string;
181
- }
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;
189
-
190
- interface BottomSheetProps {
191
- children: React.ReactNode;
192
- title?: string;
193
- className?: string;
194
- }
195
- declare const BottomSheet: React.ForwardRefExoticComponent<BottomSheetProps & React.RefAttributes<ActionSheetRef>>;
196
-
197
- interface BlinkModalProps {
198
- visible: boolean;
199
- onClose: () => void;
9
+ declare const blinkConfig: tamagui.TamaguiInternalConfig<{
10
+ color: {
11
+ white: tamagui.Variable<string>;
12
+ black: tamagui.Variable<string>;
13
+ transparent: tamagui.Variable<string>;
14
+ };
15
+ space: {
16
+ 0: tamagui.Variable<number>;
17
+ true: tamagui.Variable<number>;
18
+ 2: tamagui.Variable<number>;
19
+ 4: tamagui.Variable<number>;
20
+ 6: tamagui.Variable<number>;
21
+ 8: tamagui.Variable<number>;
22
+ 10: tamagui.Variable<number>;
23
+ 12: tamagui.Variable<number>;
24
+ 16: tamagui.Variable<number>;
25
+ [-1]: tamagui.Variable<number>;
26
+ [-2]: tamagui.Variable<number>;
27
+ [-3]: tamagui.Variable<number>;
28
+ [-4]: tamagui.Variable<number>;
29
+ 0.5: tamagui.Variable<number>;
30
+ 1: tamagui.Variable<number>;
31
+ 1.5: tamagui.Variable<number>;
32
+ 2.5: tamagui.Variable<number>;
33
+ 3: tamagui.Variable<number>;
34
+ 3.5: tamagui.Variable<number>;
35
+ 5: tamagui.Variable<number>;
36
+ 7: tamagui.Variable<number>;
37
+ 9: tamagui.Variable<number>;
38
+ };
39
+ size: {
40
+ 0: tamagui.Variable<number>;
41
+ true: tamagui.Variable<number>;
42
+ 2: tamagui.Variable<number>;
43
+ 4: tamagui.Variable<number>;
44
+ 6: tamagui.Variable<number>;
45
+ 8: tamagui.Variable<number>;
46
+ 10: tamagui.Variable<number>;
47
+ 12: tamagui.Variable<number>;
48
+ 14: tamagui.Variable<number>;
49
+ 16: tamagui.Variable<number>;
50
+ 20: tamagui.Variable<number>;
51
+ 1: tamagui.Variable<number>;
52
+ 3: tamagui.Variable<number>;
53
+ 5: tamagui.Variable<number>;
54
+ 7: tamagui.Variable<number>;
55
+ 9: tamagui.Variable<number>;
56
+ 11: tamagui.Variable<number>;
57
+ };
58
+ radius: {
59
+ 0: tamagui.Variable<number>;
60
+ true: tamagui.Variable<number>;
61
+ 2: tamagui.Variable<number>;
62
+ 4: tamagui.Variable<number>;
63
+ 6: tamagui.Variable<number>;
64
+ 8: tamagui.Variable<number>;
65
+ 10: tamagui.Variable<number>;
66
+ 1: tamagui.Variable<number>;
67
+ 3: tamagui.Variable<number>;
68
+ 5: tamagui.Variable<number>;
69
+ 7: tamagui.Variable<number>;
70
+ 9: tamagui.Variable<number>;
71
+ };
72
+ zIndex: {
73
+ 0: tamagui.Variable<number>;
74
+ 1: tamagui.Variable<number>;
75
+ 2: tamagui.Variable<number>;
76
+ 3: tamagui.Variable<number>;
77
+ 4: tamagui.Variable<number>;
78
+ 5: tamagui.Variable<number>;
79
+ };
80
+ } & Omit<{
81
+ color: {
82
+ white: tamagui.Variable<string>;
83
+ black: tamagui.Variable<string>;
84
+ transparent: tamagui.Variable<string>;
85
+ };
86
+ space: {
87
+ 0: tamagui.Variable<number>;
88
+ true: tamagui.Variable<number>;
89
+ 2: tamagui.Variable<number>;
90
+ 4: tamagui.Variable<number>;
91
+ 6: tamagui.Variable<number>;
92
+ 8: tamagui.Variable<number>;
93
+ 10: tamagui.Variable<number>;
94
+ 12: tamagui.Variable<number>;
95
+ 16: tamagui.Variable<number>;
96
+ [-1]: tamagui.Variable<number>;
97
+ [-2]: tamagui.Variable<number>;
98
+ [-3]: tamagui.Variable<number>;
99
+ [-4]: tamagui.Variable<number>;
100
+ 0.5: tamagui.Variable<number>;
101
+ 1: tamagui.Variable<number>;
102
+ 1.5: tamagui.Variable<number>;
103
+ 2.5: tamagui.Variable<number>;
104
+ 3: tamagui.Variable<number>;
105
+ 3.5: tamagui.Variable<number>;
106
+ 5: tamagui.Variable<number>;
107
+ 7: tamagui.Variable<number>;
108
+ 9: tamagui.Variable<number>;
109
+ };
110
+ size: {
111
+ 0: tamagui.Variable<number>;
112
+ true: tamagui.Variable<number>;
113
+ 2: tamagui.Variable<number>;
114
+ 4: tamagui.Variable<number>;
115
+ 6: tamagui.Variable<number>;
116
+ 8: tamagui.Variable<number>;
117
+ 10: tamagui.Variable<number>;
118
+ 12: tamagui.Variable<number>;
119
+ 14: tamagui.Variable<number>;
120
+ 16: tamagui.Variable<number>;
121
+ 20: tamagui.Variable<number>;
122
+ 1: tamagui.Variable<number>;
123
+ 3: tamagui.Variable<number>;
124
+ 5: tamagui.Variable<number>;
125
+ 7: tamagui.Variable<number>;
126
+ 9: tamagui.Variable<number>;
127
+ 11: tamagui.Variable<number>;
128
+ };
129
+ radius: {
130
+ 0: tamagui.Variable<number>;
131
+ true: tamagui.Variable<number>;
132
+ 2: tamagui.Variable<number>;
133
+ 4: tamagui.Variable<number>;
134
+ 6: tamagui.Variable<number>;
135
+ 8: tamagui.Variable<number>;
136
+ 10: tamagui.Variable<number>;
137
+ 1: tamagui.Variable<number>;
138
+ 3: tamagui.Variable<number>;
139
+ 5: tamagui.Variable<number>;
140
+ 7: tamagui.Variable<number>;
141
+ 9: tamagui.Variable<number>;
142
+ };
143
+ zIndex: {
144
+ 0: tamagui.Variable<number>;
145
+ 1: tamagui.Variable<number>;
146
+ 2: tamagui.Variable<number>;
147
+ 3: tamagui.Variable<number>;
148
+ 4: tamagui.Variable<number>;
149
+ 5: tamagui.Variable<number>;
150
+ };
151
+ }, "color" | "space" | "size" | "radius" | "zIndex">, {
152
+ light: {
153
+ background: string;
154
+ backgroundHover: string;
155
+ backgroundPress: string;
156
+ color: string;
157
+ colorHover: string;
158
+ colorPress: string;
159
+ primary: string;
160
+ primaryHover: string;
161
+ primaryPress: string;
162
+ secondary: string;
163
+ secondaryHover: string;
164
+ secondaryPress: string;
165
+ accent: string;
166
+ surface: string;
167
+ surfaceHover: string;
168
+ card: string;
169
+ cardHover: string;
170
+ border: string;
171
+ borderHover: string;
172
+ textPrimary: string;
173
+ textSecondary: string;
174
+ textMuted: string;
175
+ textInverse: string;
176
+ error: string;
177
+ errorHover: string;
178
+ success: string;
179
+ successHover: string;
180
+ warning: string;
181
+ warningHover: string;
182
+ highlight: string;
183
+ overlay: string;
184
+ shadowColor: string;
185
+ };
186
+ dark: {
187
+ background: string;
188
+ backgroundHover: string;
189
+ backgroundPress: string;
190
+ color: string;
191
+ colorHover: string;
192
+ colorPress: string;
193
+ primary: string;
194
+ primaryHover: string;
195
+ primaryPress: string;
196
+ secondary: string;
197
+ secondaryHover: string;
198
+ secondaryPress: string;
199
+ accent: string;
200
+ surface: string;
201
+ surfaceHover: string;
202
+ card: string;
203
+ cardHover: string;
204
+ border: string;
205
+ borderHover: string;
206
+ textPrimary: string;
207
+ textSecondary: string;
208
+ textMuted: string;
209
+ textInverse: string;
210
+ error: string;
211
+ errorHover: string;
212
+ success: string;
213
+ successHover: string;
214
+ warning: string;
215
+ warningHover: string;
216
+ highlight: string;
217
+ overlay: string;
218
+ shadowColor: string;
219
+ };
220
+ }, {
221
+ readonly px: "paddingHorizontal";
222
+ readonly py: "paddingVertical";
223
+ readonly mx: "marginHorizontal";
224
+ readonly my: "marginVertical";
225
+ readonly bg: "backgroundColor";
226
+ readonly br: "borderRadius";
227
+ readonly f: "flex";
228
+ readonly w: "width";
229
+ readonly h: "height";
230
+ }, {
231
+ xs: {
232
+ maxWidth: number;
233
+ };
234
+ sm: {
235
+ maxWidth: number;
236
+ };
237
+ md: {
238
+ maxWidth: number;
239
+ };
240
+ lg: {
241
+ maxWidth: number;
242
+ };
243
+ gtSm: {
244
+ minWidth: number;
245
+ };
246
+ short: {
247
+ maxHeight: number;
248
+ };
249
+ }, {}, {
250
+ heading: {
251
+ family: string;
252
+ size: {
253
+ 1: number;
254
+ 2: number;
255
+ 3: number;
256
+ 4: number;
257
+ 5: number;
258
+ 6: number;
259
+ 7: number;
260
+ 8: number;
261
+ 9: number;
262
+ 10: number;
263
+ 11: number;
264
+ 12: number;
265
+ true: number;
266
+ };
267
+ lineHeight: {
268
+ 1: number;
269
+ 2: number;
270
+ 3: number;
271
+ 4: number;
272
+ 5: number;
273
+ 6: number;
274
+ 7: number;
275
+ 8: number;
276
+ 9: number;
277
+ 10: number;
278
+ 11: number;
279
+ 12: number;
280
+ true: number;
281
+ };
282
+ weight: {
283
+ 1: string;
284
+ 2: string;
285
+ 3: string;
286
+ 4: string;
287
+ 5: string;
288
+ true: string;
289
+ };
290
+ letterSpacing: {
291
+ 1: number;
292
+ 2: number;
293
+ 3: number;
294
+ 4: number;
295
+ true: number;
296
+ };
297
+ };
298
+ body: {
299
+ family: string;
300
+ size: {
301
+ 1: number;
302
+ 2: number;
303
+ 3: number;
304
+ 4: number;
305
+ 5: number;
306
+ 6: number;
307
+ 7: number;
308
+ 8: number;
309
+ 9: number;
310
+ 10: number;
311
+ 11: number;
312
+ 12: number;
313
+ true: number;
314
+ };
315
+ lineHeight: {
316
+ 1: number;
317
+ 2: number;
318
+ 3: number;
319
+ 4: number;
320
+ 5: number;
321
+ 6: number;
322
+ 7: number;
323
+ 8: number;
324
+ 9: number;
325
+ 10: number;
326
+ 11: number;
327
+ 12: number;
328
+ true: number;
329
+ };
330
+ weight: {
331
+ 1: string;
332
+ 2: string;
333
+ 3: string;
334
+ 4: string;
335
+ 5: string;
336
+ true: string;
337
+ };
338
+ letterSpacing: {
339
+ 1: number;
340
+ 2: number;
341
+ 3: number;
342
+ 4: number;
343
+ true: number;
344
+ };
345
+ };
346
+ }, {
347
+ allowedStyleValues: false;
348
+ autocompleteSpecificTokens: "except-special";
349
+ }>;
350
+ type BlinkConfig = typeof blinkConfig;
351
+ declare module 'tamagui' {
352
+ interface TamaguiCustomConfig extends BlinkConfig {
353
+ }
354
+ }
355
+
356
+ declare const ButtonFrame: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
357
+ size?: "sm" | "md" | "lg" | undefined;
358
+ variant?: "primary" | "secondary" | "outline" | "ghost" | "destructive" | undefined;
359
+ disabled?: boolean | undefined;
360
+ fullWidth?: boolean | undefined;
361
+ }, _tamagui_web.StaticConfigPublic>;
362
+ type ButtonProps = GetProps<typeof ButtonFrame> & {
200
363
  title?: string;
201
- description?: string;
202
- children?: React.ReactNode;
203
- showCloseButton?: boolean;
204
- className?: string;
205
- }
206
- declare function BlinkModal({ visible, onClose, title, description, children, showCloseButton, className, }: BlinkModalProps): react_jsx_runtime.JSX.Element;
207
-
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
364
  };
223
-
224
- interface ActionItem {
225
- label: string;
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;
237
- }
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;
365
+ declare const Button: react.ForwardRefExoticComponent<Omit<_tamagui_core.RNTamaguiViewNonStyleProps, "size" | "variant" | "disabled" | keyof _tamagui_web.StackStyleBase | "fullWidth"> & _tamagui_web.WithThemeValues<_tamagui_web.StackStyleBase> & {
366
+ size?: "sm" | "md" | "lg" | undefined;
367
+ variant?: "primary" | "secondary" | "outline" | "ghost" | "destructive" | undefined;
368
+ disabled?: boolean | undefined;
369
+ fullWidth?: boolean | undefined;
370
+ } & _tamagui_web.WithShorthands<_tamagui_web.WithThemeValues<_tamagui_web.StackStyleBase>> & _tamagui_web.WithPseudoProps<_tamagui_web.WithThemeValues<_tamagui_web.StackStyleBase> & {
371
+ size?: "sm" | "md" | "lg" | undefined;
372
+ variant?: "primary" | "secondary" | "outline" | "ghost" | "destructive" | undefined;
373
+ disabled?: boolean | undefined;
374
+ fullWidth?: boolean | undefined;
375
+ } & _tamagui_web.WithShorthands<_tamagui_web.WithThemeValues<_tamagui_web.StackStyleBase>>> & _tamagui_web.WithMediaProps<_tamagui_web.WithThemeShorthandsAndPseudos<_tamagui_web.StackStyleBase, {
376
+ size?: "sm" | "md" | "lg" | undefined;
377
+ variant?: "primary" | "secondary" | "outline" | "ghost" | "destructive" | undefined;
378
+ disabled?: boolean | undefined;
379
+ fullWidth?: boolean | undefined;
380
+ }>> & react.RefAttributes<tamagui.TamaguiElement>> & _tamagui_web.StaticComponentObject<_tamagui_web.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
381
+ size?: "sm" | "md" | "lg" | undefined;
382
+ variant?: "primary" | "secondary" | "outline" | "ghost" | "destructive" | undefined;
383
+ disabled?: boolean | undefined;
384
+ fullWidth?: boolean | undefined;
385
+ }, _tamagui_web.StaticConfigPublic> & Omit<_tamagui_web.StaticConfigPublic, "staticConfig" | "extractable" | "styleable"> & {
386
+ __tama: [_tamagui_web.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
387
+ size?: "sm" | "md" | "lg" | undefined;
388
+ variant?: "primary" | "secondary" | "outline" | "ghost" | "destructive" | undefined;
389
+ disabled?: boolean | undefined;
390
+ fullWidth?: boolean | undefined;
391
+ }, _tamagui_web.StaticConfigPublic];
392
+ } & {
393
+ Text: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, tamagui.TamaguiTextElement, _tamagui_core.RNTamaguiTextNonStyleProps, _tamagui_web.TextStylePropsBase, {
394
+ size?: "sm" | "md" | "lg" | undefined;
395
+ variant?: "primary" | "secondary" | "outline" | "ghost" | "destructive" | undefined;
396
+ unstyled?: boolean | undefined;
397
+ }, _tamagui_web.StaticConfigPublic>;
242
398
  };
243
399
 
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;
251
- }
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;
400
+ declare const BlinkText: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, tamagui.TamaguiTextElement, _tamagui_core.RNTamaguiTextNonStyleProps, _tamagui_web.TextStylePropsBase, {
401
+ secondary?: boolean | undefined;
402
+ center?: boolean | undefined;
403
+ variant?: "body" | "display" | "small" | "h1" | "h2" | "h3" | "h4" | "bodySmall" | "caption" | "tiny" | undefined;
404
+ unstyled?: boolean | undefined;
405
+ bold?: boolean | undefined;
406
+ muted?: boolean | undefined;
407
+ }, _tamagui_web.StaticConfigPublic>;
408
+ type BlinkTextProps = typeof BlinkText extends React.ComponentType<infer P> ? P : never;
409
+
410
+ declare const CardFrame: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
411
+ size?: "sm" | "md" | "lg" | undefined;
412
+ variant?: "flat" | "elevated" | "outlined" | undefined;
413
+ pressable?: boolean | undefined;
414
+ }, _tamagui_web.StaticConfigPublic>;
415
+ type CardProps = GetProps<typeof CardFrame>;
416
+ declare const Card: react.ForwardRefExoticComponent<Omit<_tamagui_core.RNTamaguiViewNonStyleProps, "size" | "variant" | keyof _tamagui_web.StackStyleBase | "pressable"> & _tamagui_web.WithThemeValues<_tamagui_web.StackStyleBase> & {
417
+ size?: "sm" | "md" | "lg" | undefined;
418
+ variant?: "flat" | "elevated" | "outlined" | undefined;
419
+ pressable?: boolean | undefined;
420
+ } & _tamagui_web.WithShorthands<_tamagui_web.WithThemeValues<_tamagui_web.StackStyleBase>> & _tamagui_web.WithPseudoProps<_tamagui_web.WithThemeValues<_tamagui_web.StackStyleBase> & {
421
+ size?: "sm" | "md" | "lg" | undefined;
422
+ variant?: "flat" | "elevated" | "outlined" | undefined;
423
+ pressable?: boolean | undefined;
424
+ } & _tamagui_web.WithShorthands<_tamagui_web.WithThemeValues<_tamagui_web.StackStyleBase>>> & _tamagui_web.WithMediaProps<_tamagui_web.WithThemeShorthandsAndPseudos<_tamagui_web.StackStyleBase, {
425
+ size?: "sm" | "md" | "lg" | undefined;
426
+ variant?: "flat" | "elevated" | "outlined" | undefined;
427
+ pressable?: boolean | undefined;
428
+ }>> & react.RefAttributes<tamagui.TamaguiElement>> & _tamagui_web.StaticComponentObject<_tamagui_web.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
429
+ size?: "sm" | "md" | "lg" | undefined;
430
+ variant?: "flat" | "elevated" | "outlined" | undefined;
431
+ pressable?: boolean | undefined;
432
+ }, _tamagui_web.StaticConfigPublic> & Omit<_tamagui_web.StaticConfigPublic, "staticConfig" | "extractable" | "styleable"> & {
433
+ __tama: [_tamagui_web.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
434
+ size?: "sm" | "md" | "lg" | undefined;
435
+ variant?: "flat" | "elevated" | "outlined" | undefined;
436
+ pressable?: boolean | undefined;
437
+ }, _tamagui_web.StaticConfigPublic];
438
+ } & {
439
+ Header: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {}, _tamagui_web.StaticConfigPublic>;
440
+ Content: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {}, _tamagui_web.StaticConfigPublic>;
441
+ Footer: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {}, _tamagui_web.StaticConfigPublic>;
261
442
  };
262
443
 
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;
444
+ declare const InputField: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, react_native.TextInput, _tamagui_web.TamaguiComponentPropsBaseBase & react_native.TextInputProps & tamagui.InputExtraProps, _tamagui_web.TextStylePropsBase & {
445
+ readonly placeholderTextColor?: Omit<tamagui.ColorTokens | _tamagui_web.ThemeValueFallbackColor, "unset"> | undefined;
446
+ readonly selectionColor?: Omit<tamagui.ColorTokens | _tamagui_web.ThemeValueFallbackColor, "unset"> | undefined;
447
+ }, {
448
+ size?: tamagui.SizeTokens | undefined;
449
+ variant?: "default" | "filled" | undefined;
450
+ disabled?: boolean | undefined;
451
+ unstyled?: boolean | undefined;
452
+ hasError?: boolean | undefined;
453
+ }, {
454
+ isInput: true;
455
+ accept: {
456
+ readonly placeholderTextColor: "color";
457
+ readonly selectionColor: "color";
277
458
  };
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;
286
- }
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
- };
325
-
326
- type AnimationType = 'fadeIn' | 'scaleIn' | 'slideInBottom' | 'slideInRight' | 'slideInLeft' | 'slideInTop' | 'bounceIn' | 'flipInX' | 'zoomInRotate' | 'rotateIn' | 'slideOutBottom' | 'slideOutRight' | 'slideOutLeft' | 'slideOutTop' | 'scaleOut';
327
- interface AnimatedViewProps {
328
- children?: React.ReactNode;
329
- animation: AnimationType;
330
- duration?: number;
331
- delay?: number;
332
- easing?: EasingFunction;
333
- className?: string;
334
- playOnlyOnce?: boolean;
335
- triggerOnVisible?: boolean;
336
- visibilityThreshold?: number;
337
- shouldResetAnimation?: boolean;
338
- }
339
- declare function AnimatedViewComponent({ children, animation, duration, delay, easing, className, playOnlyOnce, triggerOnVisible, visibilityThreshold, shouldResetAnimation, }: AnimatedViewProps): react_jsx_runtime.JSX.Element;
340
- declare const AnimatedView: React.MemoExoticComponent<typeof AnimatedViewComponent>;
341
-
342
- interface FabAction {
343
- icon: React.ReactNode;
344
- label: string;
345
- onPress: () => void;
346
- }
347
- interface AnimatedFabProps {
348
- icon: React.ReactNode;
349
- actions?: FabAction[];
350
- onPress?: () => void;
351
- className?: string;
352
- }
353
- declare function AnimatedFab({ icon, actions, onPress, className, }: AnimatedFabProps): react_jsx_runtime.JSX.Element;
354
-
355
- interface StepProps {
356
- title?: string;
357
- children: ReactNode;
358
- }
359
- declare function Step({ children }: StepProps): react_jsx_runtime.JSX.Element;
360
- interface MultiStepProps {
361
- children: ReactNode;
362
- onComplete?: () => void;
363
- showProgress?: boolean;
364
- showSkip?: boolean;
365
- nextLabel?: string;
366
- completeLabel?: string;
367
- className?: string;
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;
459
+ } & _tamagui_web.StaticConfigPublic>;
460
+ type InputProps = GetProps<typeof InputField> & {
461
+ label?: string;
462
+ error?: string;
463
+ hint?: string;
372
464
  };
373
465
 
374
- interface TransitionProps {
375
- children: React.ReactNode;
376
- duration?: number;
377
- delay?: number;
378
- className?: string;
379
- }
380
- declare const FadeIn: React.FC<TransitionProps>;
381
- declare const SlideUp: React.FC<TransitionProps>;
382
- interface SlideInProps extends TransitionProps {
383
- from?: 'left' | 'right' | 'bottom' | 'top';
384
- }
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;
412
-
413
- interface PlanOption {
414
- id: string;
415
- label: string;
416
- price: string;
417
- period: string;
418
- badge?: string;
419
- savings?: string;
420
- }
421
- interface PlanCardProps {
422
- plan: PlanOption;
423
- selected: boolean;
424
- onSelect: (plan: PlanOption) => void;
425
- className?: string;
426
- }
427
- declare function PlanCard({ plan, selected, onSelect, className }: PlanCardProps): react_jsx_runtime.JSX.Element;
428
-
429
- interface PaywallFeature {
430
- label: string;
431
- free?: boolean;
432
- pro: boolean;
433
- }
434
- interface PaywallScreenProps {
435
- appName: string;
436
- tagline?: string;
437
- features: PaywallFeature[];
438
- plans: PlanOption[];
439
- selectedPlan: string;
440
- onSubscribe: (planId: string) => void;
441
- onSelectPlan?: (plan: PlanOption) => void;
442
- onDismiss?: () => void;
443
- loading?: boolean;
444
- ctaLabel?: string;
445
- disclaimer?: string;
446
- className?: string;
447
- }
448
- declare function PaywallScreen({ appName, tagline, features, plans, selectedPlan, onSubscribe, onSelectPlan, onDismiss, loading, ctaLabel, disclaimer, className, }: PaywallScreenProps): react_jsx_runtime.JSX.Element;
449
-
450
- type PaywallSoftProps = Omit<PaywallScreenProps, 'onDismiss'> & {
451
- onDismiss: () => void;
452
- className?: string;
453
- };
454
- declare function PaywallSoft({ className, ...props }: PaywallSoftProps): react_jsx_runtime.JSX.Element;
466
+ declare function Input({ label, error, hint, ...props }: InputProps): react_jsx_runtime.JSX.Element;
455
467
 
456
- type PaywallHardProps = Omit<PaywallScreenProps, 'onDismiss'> & {
457
- className?: string;
468
+ declare const AvatarFrame: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
469
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | "xxl" | undefined;
470
+ }, _tamagui_web.StaticConfigPublic>;
471
+ type AvatarProps = GetProps<typeof AvatarFrame> & {
472
+ uri?: string;
473
+ name?: string;
458
474
  };
459
- declare function PaywallHard({ className, ...props }: PaywallHardProps): react_jsx_runtime.JSX.Element;
460
-
461
- interface FeatureRowProps {
462
- label: string;
463
- free?: boolean;
464
- pro?: boolean;
465
- className?: string;
466
- }
467
- declare function FeatureRow({ label, free, pro, className }: FeatureRowProps): react_jsx_runtime.JSX.Element;
468
-
469
- interface PlanComparisonProps {
470
- features: Omit<FeatureRowProps, 'className'>[];
471
- freeLabel?: string;
472
- proLabel?: string;
473
- className?: string;
474
- }
475
- declare function PlanComparison({ features, freeLabel, proLabel, className, }: PlanComparisonProps): react_jsx_runtime.JSX.Element;
476
-
477
- interface TrialBannerProps {
478
- days: number;
479
- message?: string;
480
- className?: string;
481
- }
482
- declare function TrialBanner({ days, message, className }: TrialBannerProps): react_jsx_runtime.JSX.Element;
483
-
484
- interface SocialProofBarProps {
485
- userCount?: string;
486
- rating?: number;
487
- reviewCount?: string;
488
- className?: string;
489
- }
490
- declare function SocialProofBar({ userCount, rating, reviewCount, className, }: SocialProofBarProps): react_jsx_runtime.JSX.Element;
491
-
492
- interface OnboardingSlide {
493
- id: string;
494
- title: string;
495
- description: string;
496
- visual?: React.ReactNode;
497
- }
498
- interface OnboardingCarouselProps {
499
- slides: OnboardingSlide[];
500
- onComplete: () => void;
501
- onSkip?: () => void;
502
- showSkip?: boolean;
503
- showDots?: boolean;
504
- nextLabel?: string;
505
- completeLabel?: string;
506
- className?: string;
507
- }
508
- declare function OnboardingCarousel({ slides, onComplete, onSkip, showSkip, showDots, nextLabel, completeLabel, className, }: OnboardingCarouselProps): react_jsx_runtime.JSX.Element;
509
-
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;
528
- }
529
- declare function OnboardingParallax({ slides, onComplete, onSkip, showSkip, completeLabel, nextLabel, className, }: OnboardingParallaxProps): react_jsx_runtime.JSX.Element;
530
-
531
- interface OnboardingHeroProps {
532
- title: string;
533
- description: string;
534
- visual?: React.ReactNode;
535
- ctaLabel?: string;
536
- onCta: () => void;
537
- secondaryLabel?: string;
538
- onSecondary?: () => void;
539
- className?: string;
540
- }
541
- declare function OnboardingHero({ title, description, visual, ctaLabel, onCta, secondaryLabel, onSecondary, className, }: OnboardingHeroProps): react_jsx_runtime.JSX.Element;
542
-
543
- interface PermissionStepProps {
544
- icon: React.ReactNode;
545
- title: string;
546
- description: string;
547
- allowLabel?: string;
548
- skipLabel?: string;
549
- onAllow: () => void;
550
- onSkip: () => void;
551
- className?: string;
552
- }
553
- declare function PermissionStep({ icon, title, description, allowLabel, skipLabel, onAllow, onSkip, className, }: PermissionStepProps): react_jsx_runtime.JSX.Element;
554
-
555
- interface QuizOption {
556
- id: string;
557
- label: string;
558
- icon?: React.ReactNode;
559
- }
560
- interface QuizStepProps {
561
- title: string;
562
- description?: string;
563
- options: QuizOption[];
564
- multiSelect?: boolean;
565
- onSubmit: (selected: string[]) => void;
566
- submitLabel?: string;
567
- className?: string;
568
- }
569
- declare function QuizStep({ title, description, options, multiSelect, onSubmit, submitLabel, className, }: QuizStepProps): react_jsx_runtime.JSX.Element;
570
-
571
- interface OnboardingFlowStep {
572
- id: string;
573
- component: React.ReactNode;
574
- }
575
- interface OnboardingFlowProps {
576
- steps: OnboardingFlowStep[];
577
- onComplete: () => void;
578
- showProgress?: boolean;
579
- className?: string;
580
- }
581
- declare function OnboardingFlow({ steps, onComplete, showProgress, className, }: OnboardingFlowProps): react_jsx_runtime.JSX.Element;
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';
596
- interface SwipeDeckProps<T> {
597
- data: T[];
598
- renderCard: (item: T, index: number) => React.ReactNode;
599
- onSwipeLeft?: (item: T) => void;
600
- onSwipeRight?: (item: T) => void;
601
- onSwipeUp?: (item: T) => void;
602
- onEmpty?: () => React.ReactNode;
603
- swipeThreshold?: number;
604
- rotationFactor?: number;
605
- stackDepth?: number;
606
- className?: string;
607
- }
608
- declare function SwipeDeck<T>({ data, renderCard, onSwipeLeft, onSwipeRight, onSwipeUp, onEmpty, swipeThreshold, rotationFactor, stackDepth, className, }: SwipeDeckProps<T>): react_jsx_runtime.JSX.Element;
609
-
610
- interface SwipeCardProps {
611
- children: React.ReactNode;
612
- className?: string;
613
- }
614
- declare function SwipeCard({ children, className }: SwipeCardProps): react_jsx_runtime.JSX.Element;
615
-
616
- interface SwipeActionsProps {
617
- onNope?: () => void;
618
- onSuperLike?: () => void;
619
- onLike?: () => void;
620
- className?: string;
621
- }
622
- declare function SwipeActions({ onNope, onSuperLike, onLike, className }: SwipeActionsProps): react_jsx_runtime.JSX.Element;
623
-
624
- interface SwipeOverlayProps {
625
- position: Animated.ValueXY;
626
- swipeThreshold: number;
627
- className?: string;
628
- }
629
- declare function SwipeOverlay({ position, swipeThreshold }: SwipeOverlayProps): react_jsx_runtime.JSX.Element;
630
-
631
- interface VerticalReelProps<T> {
632
- data: T[];
633
- renderItem: (item: T, index: number, isActive: boolean) => React.ReactNode;
634
- onActiveChange?: (index: number) => void;
635
- keyExtractor: (item: T, index: number) => string;
636
- className?: string;
637
- }
638
- declare function VerticalReel<T>({ data, renderItem, onActiveChange, keyExtractor, className, }: VerticalReelProps<T>): react_jsx_runtime.JSX.Element;
639
-
640
- interface ReelItemProps {
641
- backgroundSource?: string | ImageSourcePropType;
642
- backgroundColor?: string;
643
- children?: React.ReactNode;
644
- className?: string;
645
- }
646
- declare function ReelItem({ backgroundSource, backgroundColor, children, className, }: ReelItemProps): react_jsx_runtime.JSX.Element;
647
-
648
- interface ReelAction {
649
- key: string;
650
- icon: React.ReactNode;
651
- label?: string;
652
- count?: number;
653
- onPress?: () => void;
654
- }
655
- interface ReelOverlayProps {
656
- username: string;
657
- description?: string;
658
- actions?: ReelAction[];
659
- avatar?: React.ReactNode;
660
- children?: React.ReactNode;
661
- className?: string;
662
- }
663
- declare function ReelOverlay({ username, description, actions, avatar, children, className, }: ReelOverlayProps): react_jsx_runtime.JSX.Element;
664
-
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;
672
- }
673
- declare function GlassView({ intensity, tint, borderRadius, children, className, }: GlassViewProps): react_jsx_runtime.JSX.Element;
674
-
675
- interface GlassCardProps {
676
- intensity?: number;
677
- tint?: GlassTint;
678
- onPress?: () => void;
679
- style?: ViewStyle;
680
- children?: React.ReactNode;
681
- className?: string;
682
- }
683
- declare function GlassCard({ intensity, tint, onPress, style, children, className, }: GlassCardProps): react_jsx_runtime.JSX.Element;
684
-
685
- interface GlassHeaderProps {
686
- title?: string;
687
- subtitle?: string;
688
- left?: React.ReactNode;
689
- right?: React.ReactNode;
690
- intensity?: number;
691
- tint?: GlassTint;
692
- showBackButton?: boolean;
693
- onBackPress?: () => void;
694
- backIcon?: React.ReactNode;
695
- children?: React.ReactNode;
696
- className?: string;
697
- }
698
- declare function GlassHeader({ title, subtitle, left, right, intensity, tint, showBackButton, onBackPress, backIcon, children, className, }: GlassHeaderProps): react_jsx_runtime.JSX.Element;
699
-
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;
709
- }
710
- declare function GlassSheet({ visible, onClose, title, height, intensity, tint, children, className, }: GlassSheetProps): react_jsx_runtime.JSX.Element;
711
-
712
- interface GlassTab {
713
- key: string;
714
- label: string;
715
- icon: React.ReactNode;
716
- activeIcon?: React.ReactNode;
717
- badge?: number;
718
- }
719
- interface GlassTabBarProps {
720
- tabs: GlassTab[];
721
- activeKey: string;
722
- onChange: (key: string) => void;
723
- intensity?: number;
724
- tint?: GlassTint;
725
- className?: string;
726
- }
727
- declare function GlassTabBar({ tabs, activeKey, onChange, intensity, tint, className, }: GlassTabBarProps): react_jsx_runtime.JSX.Element;
728
-
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;
738
- }
739
- declare function ChatBubble({ content, variant, timestamp, status, renderMarkdown, children, className, }: ChatBubbleProps): react_jsx_runtime.JSX.Element;
740
-
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;
750
- }
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;
763
- }
764
- declare function ChatList<T extends ChatMessage>({ messages, renderMessage, renderDateSeparator, className, }: ChatListProps<T>): react_jsx_runtime.JSX.Element;
765
-
766
- interface TypingIndicatorProps {
767
- label?: React.ReactNode;
768
- className?: string;
769
- }
770
- declare function TypingIndicator({ label, className }: TypingIndicatorProps): react_jsx_runtime.JSX.Element;
771
-
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;
785
- }
786
- declare function ListingCard({ image, title, subtitle, price, priceSuffix, rating, favorite, badge, imageHeight, onPress, onFavorite, className, }: ListingCardProps): react_jsx_runtime.JSX.Element;
787
-
788
- interface ProductCardProps {
789
- image: ImageSourcePropType | string;
790
- title: string;
791
- price: string;
792
- originalPrice?: string;
793
- badge?: string;
794
- favorite?: boolean;
795
- onPress?: () => void;
796
- onFavorite?: () => void;
797
- className?: string;
798
- }
799
- declare function ProductCard({ image, title, price, originalPrice, badge, favorite, onPress, onFavorite, className, }: ProductCardProps): react_jsx_runtime.JSX.Element;
800
-
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;
811
- }
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;
819
- }
820
- declare function PriceTag({ price, originalPrice, suffix, className }: PriceTagProps): react_jsx_runtime.JSX.Element;
821
-
822
- interface RatingStarsProps {
823
- rating: number;
824
- maxStars?: number;
825
- count?: number;
826
- size?: number;
827
- className?: string;
828
- }
829
- declare function RatingStars({ rating, maxStars, count, size, className, }: RatingStarsProps): react_jsx_runtime.JSX.Element;
830
-
831
- interface CategoryTileProps {
832
- icon: keyof typeof Ionicons.glyphMap;
833
- label: string;
834
- iconColor?: string;
835
- onPress?: () => void;
836
- className?: string;
837
- }
838
- declare function CategoryTile({ icon, label, iconColor, onPress, className, }: CategoryTileProps): react_jsx_runtime.JSX.Element;
839
-
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 {
859
- title: string;
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;
868
- }
869
- declare function TransactionItem({ title, amount, time, method, isIncome, icon, avatar, onPress, className, }: TransactionItemProps): react_jsx_runtime.JSX.Element;
870
-
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;
898
- }
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;
900
-
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;
910
- }
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;
917
- }
918
- interface ReactionBarProps {
919
- reactions: Reaction[];
920
- onReact?: (emoji: string) => void;
921
- className?: string;
922
- }
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;
934
- }
935
- declare function SearchBar({ placeholder, value: controlledValue, onChangeText, onSubmit, autoFocus, asTrigger, className, }: SearchBarProps): react_jsx_runtime.JSX.Element;
936
-
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;
946
- }
947
- declare function FilterChipRow({ chips, activeId, onSelect, className, }: FilterChipRowProps): react_jsx_runtime.JSX.Element;
948
-
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;
956
- }
957
- declare function SectionHeader({ title, titleSize, linkText, onLinkPress, className, }: SectionHeaderProps): react_jsx_runtime.JSX.Element;
958
-
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;
978
- }
979
- declare function DateRangePicker({ startDate: initialStart, endDate: initialEnd, onSelect, className, }: DateRangePickerProps): react_jsx_runtime.JSX.Element;
475
+ declare function Avatar({ uri, name, size, ...props }: AvatarProps): react_jsx_runtime.JSX.Element;
980
476
 
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 };
477
+ export { Avatar, type AvatarProps, type BlinkConfig, BlinkText, type BlinkTextProps, Button, type ButtonProps, Card, type CardProps, Input, type InputProps, blinkConfig };