@blinkdotnew/mobile-ui 1.0.1 → 2.0.0-alpha.10

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,1289 +1,649 @@
1
+ import * as tamagui from 'tamagui';
2
+ import { TamaguiInternalConfig, GetProps, YStack } from 'tamagui';
3
+ export { Accordion, Adapt, AlertDialog, Anchor, AnimatePresence, Article, Aside, Avatar, TamaguiProvider as BlinkProvider, Button, Card, Checkbox, Circle, ColorTokens, Dialog, EnsureFlexed, Fieldset, Footer, Form, Frame, GetProps, Group, H1, H2, H3, H4, H5, H6, Header, Heading, Input, Label, Main, Nav, Paragraph, Popover, Portal, PortalHost, PortalItem, PortalProvider, Progress, RadioGroup, ScrollView, Select, Separator, Sheet, SizableStack, SizableText, SizeTokens, Slider, Spacer, Spinner, Square, Stack, Switch, Tabs, Image as TamaguiImage, ListItem as TamaguiListItem, TamaguiProvider, Text, TextArea, Theme, ThemeTokens, ThemeableStack, ToggleGroup, Tooltip, TooltipSimple, Unspaced, View, VisuallyHidden, XGroup, XStack, YGroup, YStack, ZStack, addTheme, composeEventHandlers, composeRefs, createFont, createMedia, createStyledContext, createTamagui, createTheme, createTokens, createVariable, getConfig, getToken, getTokenValue, getTokens, isClient, isWeb, replaceTheme, styled, updateTheme, useComposedRefs, useControllableState, useDebounce, useDebounceValue, useDidFinishSSR, useEvent, useForceUpdate, useIsPresent, useIsomorphicLayoutEffect, useMedia, usePresence, useTheme, useThemeName, useWindowDimensions, withStaticProperties } from 'tamagui';
4
+ export { defaultConfig as tamaguiDefaultConfig } from '@tamagui/config/v5';
5
+ import * as react from 'react';
6
+ import { ReactNode } from 'react';
7
+ import * as _tamagui_core from '@tamagui/core';
8
+ import * as _tamagui_web from '@tamagui/web';
1
9
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import React, { ReactNode } from 'react';
3
- import { vars } from 'nativewind';
4
- import { ClassValue } from 'clsx';
5
- import { PressableProps, ViewStyle, TextProps, ImageSourcePropType, TextInputProps, EasingFunction, ScrollViewProps, Animated } from 'react-native';
6
- import { ActionSheetRef } from 'react-native-actions-sheet';
7
- import { Ionicons } from '@expo/vector-icons';
8
10
 
9
- type PaletteName = 'ocean' | 'coral' | 'violet' | 'midnight' | 'rose' | 'neon';
10
- type ColorScheme = 'light' | 'dark' | 'system';
11
- interface PaletteSet {
12
- light: ReturnType<typeof vars>;
13
- dark: ReturnType<typeof vars>;
14
- }
15
- declare const palettes: Record<PaletteName, PaletteSet>;
16
-
17
- interface BlinkMobileUIContextValue {
18
- palette: PaletteName;
19
- colorScheme: ColorScheme;
20
- isDark: boolean;
21
- setPalette: (p: PaletteName) => void;
22
- setColorScheme: (s: ColorScheme) => void;
23
- }
24
- declare function useBlinkMobileUI(): BlinkMobileUIContextValue;
25
- interface BlinkMobileUIProviderProps {
26
- children: React.ReactNode;
27
- palette?: PaletteName;
28
- colorScheme?: ColorScheme;
29
- }
30
- declare function BlinkMobileUIProvider({ children, palette: initPalette, colorScheme: initScheme, }: BlinkMobileUIProviderProps): react_jsx_runtime.JSX.Element;
31
-
32
- declare function cn(...inputs: ClassValue[]): string;
33
-
34
- declare function useAnimColors(): {
35
- text: string;
36
- placeholder: string;
37
- bg: string;
38
- border: string;
39
- primary: string;
40
- highlight: string;
41
- error: string;
42
- secondary: string;
43
- icon: string;
11
+ declare const blinkConfig: TamaguiInternalConfig;
12
+ type BlinkConfig = typeof blinkConfig;
13
+ declare module 'tamagui' {
14
+ interface TamaguiCustomConfig extends BlinkConfig {
15
+ }
16
+ }
17
+
18
+ declare const Button: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps & tamagui.TextContextStyles & {
19
+ textProps?: Partial<tamagui.SizableTextProps>;
20
+ noTextWrap?: boolean;
21
+ } & _tamagui_web.ThemeableProps & {
22
+ icon?: react.JSX.Element | react.FunctionComponent<{
23
+ color?: any;
24
+ size?: any;
25
+ }> | ((props: {
26
+ color?: any;
27
+ size?: any;
28
+ }) => any) | null;
29
+ iconAfter?: react.JSX.Element | react.FunctionComponent<{
30
+ color?: any;
31
+ size?: any;
32
+ }> | ((props: {
33
+ color?: any;
34
+ size?: any;
35
+ }) => any) | null;
36
+ scaleIcon?: number;
37
+ spaceFlex?: number | boolean;
38
+ scaleSpace?: number;
39
+ unstyled?: boolean;
40
+ }, _tamagui_web.StackStyleBase, {
41
+ size?: number | "lg" | "md" | "sm" | tamagui.SizeTokens | undefined;
42
+ disabled?: boolean | undefined;
43
+ elevation?: number | tamagui.SizeTokens | undefined;
44
+ variant?: "transparent" | "default" | "primary" | "outlined" | "floating" | "destructive" | undefined;
45
+ inset?: number | tamagui.SizeTokens | {
46
+ top?: number;
47
+ bottom?: number;
48
+ left?: number;
49
+ right?: number;
50
+ } | null | undefined;
51
+ unstyled?: boolean | undefined;
52
+ transparent?: boolean | undefined;
53
+ fullscreen?: boolean | undefined;
54
+ circular?: boolean | undefined;
55
+ hoverTheme?: boolean | undefined;
56
+ pressTheme?: boolean | undefined;
57
+ focusTheme?: boolean | undefined;
58
+ elevate?: boolean | undefined;
59
+ bordered?: number | boolean | undefined;
60
+ backgrounded?: boolean | undefined;
61
+ radiused?: boolean | undefined;
62
+ padded?: boolean | undefined;
63
+ chromeless?: boolean | "all" | undefined;
64
+ fullWidth?: boolean | undefined;
65
+ }, _tamagui_web.StaticConfigPublic>;
66
+ type ButtonProps = GetProps<typeof Button>;
67
+
68
+ declare const BlinkText: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, tamagui.TextNonStyleProps, _tamagui_web.TextStylePropsBase, {
69
+ size?: tamagui.FontSizeTokens | undefined;
70
+ bold?: boolean | undefined;
71
+ variant?: "body" | "display" | "h1" | "h2" | "h3" | "h4" | "bodySmall" | "caption" | "small" | undefined;
72
+ unstyled?: boolean | undefined;
73
+ center?: boolean | undefined;
74
+ muted?: boolean | undefined;
75
+ secondary?: boolean | undefined;
76
+ }, _tamagui_web.StaticConfigPublic>;
77
+ type BlinkTextProps = GetProps<typeof BlinkText>;
78
+
79
+ declare const CardFrame: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
80
+ size?: "lg" | "md" | "sm" | undefined;
81
+ variant?: "outlined" | "flat" | "elevated" | undefined;
82
+ pressable?: boolean | undefined;
83
+ }, _tamagui_web.StaticConfigPublic>;
84
+ type CardProps = GetProps<typeof CardFrame>;
85
+ declare const Card: react.ForwardRefExoticComponent<Omit<_tamagui_core.RNTamaguiViewNonStyleProps, keyof _tamagui_web.StackStyleBase> & _tamagui_web.WithThemeValues<_tamagui_web.StackStyleBase> & {
86
+ size?: "lg" | "md" | "sm" | undefined;
87
+ variant?: "outlined" | "flat" | "elevated" | undefined;
88
+ pressable?: boolean | undefined;
89
+ } & _tamagui_web.WithShorthands<_tamagui_web.WithThemeValues<_tamagui_web.StackStyleBase>> & _tamagui_web.WithPseudoProps<_tamagui_web.WithThemeValues<_tamagui_web.StackStyleBase> & {
90
+ size?: "lg" | "md" | "sm" | undefined;
91
+ variant?: "outlined" | "flat" | "elevated" | undefined;
92
+ pressable?: boolean | undefined;
93
+ } & _tamagui_web.WithShorthands<_tamagui_web.WithThemeValues<_tamagui_web.StackStyleBase>>> & _tamagui_web.WithMediaProps<_tamagui_web.WithThemeShorthandsAndPseudos<_tamagui_web.StackStyleBase, {
94
+ size?: "lg" | "md" | "sm" | undefined;
95
+ variant?: "outlined" | "flat" | "elevated" | undefined;
96
+ pressable?: boolean | undefined;
97
+ }>> & react.RefAttributes<any>> & _tamagui_web.StaticComponentObject<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
98
+ size?: "lg" | "md" | "sm" | undefined;
99
+ variant?: "outlined" | "flat" | "elevated" | undefined;
100
+ pressable?: boolean | undefined;
101
+ }, _tamagui_web.StaticConfigPublic> & Omit<_tamagui_web.StaticConfigPublic, "staticConfig" | "extractable" | "styleable"> & {
102
+ __tama: [_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
103
+ size?: "lg" | "md" | "sm" | undefined;
104
+ variant?: "outlined" | "flat" | "elevated" | undefined;
105
+ pressable?: boolean | undefined;
106
+ }, _tamagui_web.StaticConfigPublic];
107
+ } & {
108
+ Header: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {}, _tamagui_web.StaticConfigPublic>;
109
+ Content: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {}, _tamagui_web.StaticConfigPublic>;
110
+ Footer: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {}, _tamagui_web.StaticConfigPublic>;
44
111
  };
45
112
 
46
- interface BlinkPressableProps extends Omit<PressableProps, 'style'> {
47
- className?: string;
48
- activeClassName?: string;
49
- style?: ViewStyle;
50
- }
51
- declare function BlinkPressable({ className, activeClassName, style, children, ...props }: BlinkPressableProps): react_jsx_runtime.JSX.Element;
52
-
53
- type TextVariant = 'body' | 'heading' | 'subheading' | 'caption' | 'label' | 'title';
54
- type TextWeight = 'normal' | 'medium' | 'semibold' | 'bold';
55
- interface BlinkTextProps extends TextProps {
56
- variant?: TextVariant;
57
- weight?: TextWeight;
58
- className?: string;
59
- children: React.ReactNode;
60
- }
61
- declare function BlinkText({ variant, weight, className, children, ...props }: BlinkTextProps): react_jsx_runtime.JSX.Element;
62
-
63
- type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'destructive';
64
- type ButtonSize = 'sm' | 'md' | 'lg';
65
- type ButtonRounded = 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
66
- interface ButtonProps {
67
- title?: string;
68
- onPress?: () => void;
69
- loading?: boolean;
70
- variant?: ButtonVariant;
71
- size?: ButtonSize;
72
- rounded?: ButtonRounded;
73
- className?: string;
74
- textClassName?: string;
75
- disabled?: boolean;
76
- iconStart?: React.ReactNode;
77
- iconEnd?: React.ReactNode;
78
- children?: React.ReactNode;
79
- }
80
- declare function Button({ title, onPress, loading, variant, size, rounded, className, textClassName, disabled, iconStart, iconEnd, children, }: ButtonProps): react_jsx_runtime.JSX.Element;
81
-
82
- type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
83
- interface AvatarProps {
84
- src?: string;
85
- name?: string;
86
- size?: AvatarSize;
87
- className?: string;
88
- }
89
- declare function Avatar({ src, name, size, className }: AvatarProps): react_jsx_runtime.JSX.Element;
90
-
91
- type CardVariant = 'elevated' | 'outlined' | 'filled' | 'ghost';
92
- interface CardProps {
93
- variant?: CardVariant;
94
- className?: string;
95
- style?: ViewStyle;
96
- onPress?: () => void;
97
- children?: React.ReactNode;
98
- }
99
- declare function Card({ variant, className, style, onPress, children }: CardProps): react_jsx_runtime.JSX.Element;
100
- declare namespace Card {
101
- var Header: typeof CardHeader;
102
- var Body: typeof CardBody;
103
- var Footer: typeof CardFooter;
104
- var Image: typeof CardImage;
105
- var Title: typeof CardTitle;
106
- var Description: typeof CardDescription;
107
- }
108
- interface CardHeaderProps {
109
- className?: string;
110
- children: React.ReactNode;
111
- }
112
- declare function CardHeader({ className, children }: CardHeaderProps): react_jsx_runtime.JSX.Element;
113
- interface CardBodyProps {
114
- className?: string;
115
- children: React.ReactNode;
116
- }
117
- declare function CardBody({ className, children }: CardBodyProps): react_jsx_runtime.JSX.Element;
118
- interface CardFooterProps {
119
- className?: string;
120
- children: React.ReactNode;
121
- }
122
- declare function CardFooter({ className, children }: CardFooterProps): react_jsx_runtime.JSX.Element;
123
- interface CardImageProps {
124
- source: string | ImageSourcePropType;
125
- height?: number;
126
- className?: string;
127
- }
128
- declare function CardImage({ source, height, className }: CardImageProps): react_jsx_runtime.JSX.Element;
129
- interface CardTitleProps {
130
- className?: string;
131
- children: React.ReactNode;
132
- }
133
- declare function CardTitle({ className, children }: CardTitleProps): react_jsx_runtime.JSX.Element;
134
- interface CardDescriptionProps {
135
- className?: string;
136
- numberOfLines?: number;
137
- children: React.ReactNode;
138
- }
139
- declare function CardDescription({ className, numberOfLines, children }: CardDescriptionProps): react_jsx_runtime.JSX.Element;
140
-
141
- type ChipVariant = 'filled' | 'outlined' | 'tinted';
142
- type ChipSize = 'sm' | 'md';
143
- interface ChipProps {
144
- label: string;
145
- variant?: ChipVariant;
146
- size?: ChipSize;
147
- selected?: boolean;
148
- onPress?: () => void;
149
- iconStart?: React.ReactNode;
150
- iconEnd?: React.ReactNode;
151
- className?: string;
152
- }
153
- declare function Chip({ label, variant, size, selected, onPress, iconStart, iconEnd, className, }: ChipProps): react_jsx_runtime.JSX.Element;
154
-
155
- type BadgeVariant = 'default' | 'primary' | 'success' | 'error' | 'warning';
156
- type BadgeSize = 'sm' | 'md';
157
- interface BadgeProps {
158
- label: string;
159
- variant?: BadgeVariant;
160
- size?: BadgeSize;
161
- className?: string;
162
- }
163
- declare function Badge({ label, variant, size, className }: BadgeProps): react_jsx_runtime.JSX.Element;
164
-
165
- type IconContainerVariant = 'plain' | 'bordered' | 'contained';
166
- type IconContainerSize = 'sm' | 'md' | 'lg';
167
- interface IconContainerProps {
168
- variant?: IconContainerVariant;
169
- size?: IconContainerSize;
170
- className?: string;
171
- children: React.ReactNode;
172
- }
173
- declare function IconContainer({ variant, size, className, children, }: IconContainerProps): react_jsx_runtime.JSX.Element;
174
-
175
- type DividerOrientation = 'horizontal' | 'vertical';
176
- interface DividerProps {
177
- orientation?: DividerOrientation;
178
- label?: string;
179
- className?: string;
180
- }
181
- declare function Divider({ orientation, label, className }: DividerProps): react_jsx_runtime.JSX.Element;
182
-
183
- type SkeletonVariant = 'rect' | 'circle' | 'text';
184
- interface SkeletonProps {
185
- variant?: SkeletonVariant;
186
- width?: number | string;
187
- height?: number | string;
188
- className?: string;
189
- }
190
- declare function Skeleton({ variant, width, height, className }: SkeletonProps): react_jsx_runtime.JSX.Element;
191
-
192
- type ProgressBarSize = 'sm' | 'md' | 'lg';
193
- type ProgressBarVariant = 'primary' | 'success' | 'warning' | 'error';
194
- interface ProgressBarProps {
195
- progress: number;
196
- variant?: ProgressBarVariant;
197
- size?: ProgressBarSize;
198
- className?: string;
199
- }
200
- declare function ProgressBar({ progress, variant, size, className, }: ProgressBarProps): react_jsx_runtime.JSX.Element;
201
-
202
- type ToggleSize = 'sm' | 'md';
203
- interface ToggleProps {
204
- value: boolean;
205
- onValueChange: (value: boolean) => void;
206
- size?: ToggleSize;
207
- disabled?: boolean;
208
- className?: string;
209
- }
210
- declare function Toggle({ value, onValueChange, size, disabled, className, }: ToggleProps): react_jsx_runtime.JSX.Element;
211
-
212
- type TagVariant = 'filled' | 'outlined' | 'tinted';
213
- interface TagProps {
214
- label: string;
215
- variant?: TagVariant;
216
- onRemove?: () => void;
217
- className?: string;
218
- }
219
- declare function Tag({ label, variant, onRemove, className }: TagProps): react_jsx_runtime.JSX.Element;
220
-
221
- type IconButtonVariant = 'primary' | 'secondary' | 'ghost' | 'outline';
222
- type IconButtonSize = 'sm' | 'md' | 'lg';
223
- interface IconButtonProps {
224
- onPress?: () => void;
225
- variant?: IconButtonVariant;
226
- size?: IconButtonSize;
227
- rounded?: 'md' | 'lg' | 'full';
228
- disabled?: boolean;
229
- className?: string;
230
- children: React.ReactNode;
231
- }
232
- declare function IconButton({ onPress, variant, size, rounded, disabled, className, children, }: IconButtonProps): react_jsx_runtime.JSX.Element;
233
-
234
- interface SafeWrapperProps {
235
- children: React.ReactNode;
236
- className?: string;
237
- style?: ViewStyle;
238
- edges?: ('top' | 'bottom' | 'left' | 'right')[];
239
- }
240
- declare function SafeWrapper({ children, className, style, edges }: SafeWrapperProps): react_jsx_runtime.JSX.Element;
241
-
242
- interface ContainerProps {
243
- children: React.ReactNode;
244
- scrollable?: boolean;
245
- padded?: boolean;
246
- className?: string;
247
- style?: ViewStyle;
248
- }
249
- declare function Container({ children, scrollable, padded, className, style, }: ContainerProps): react_jsx_runtime.JSX.Element;
250
-
251
- interface ThemeScrollerProps$1 {
252
- selected: PaletteName;
253
- onSelect: (palette: PaletteName) => void;
254
- className?: string;
255
- }
256
-
257
- type SectionPadding = 'none' | 'sm' | 'md' | 'lg' | 'xl';
258
- type TitleSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
259
- interface SectionProps {
260
- children?: React.ReactNode;
261
- title?: string;
262
- subtitle?: string;
263
- header?: React.ReactNode;
264
- footer?: React.ReactNode;
265
- padding?: SectionPadding;
266
- titleSize?: TitleSize;
267
- link?: string;
268
- linkText?: string;
269
- onLinkPress?: () => void;
270
- className?: string;
271
- }
272
- declare function Section({ children, title, subtitle, header, footer, padding, titleSize, link, linkText, onLinkPress, className, }: SectionProps): react_jsx_runtime.JSX.Element;
273
-
274
- type StackAlign = 'start' | 'center' | 'end' | 'stretch';
275
- type StackJustify = 'start' | 'center' | 'end' | 'between' | 'around';
276
- interface StackProps {
277
- children: React.ReactNode;
278
- gap?: number;
279
- align?: StackAlign;
280
- justify?: StackJustify;
281
- className?: string;
282
- style?: ViewStyle;
283
- }
284
- declare function VStack({ children, gap, align, justify, className, style }: StackProps): react_jsx_runtime.JSX.Element;
285
- declare function HStack({ children, gap, align, justify, className, style }: StackProps): react_jsx_runtime.JSX.Element;
286
- interface FlexStackProps extends StackProps {
287
- direction?: 'vertical' | 'horizontal';
288
- }
289
- declare function Stack({ children, direction, ...props }: FlexStackProps): react_jsx_runtime.JSX.Element;
290
-
291
- interface GridProps {
292
- children: React.ReactNode;
293
- columns?: 2 | 3 | 4;
294
- gap?: number;
295
- className?: string;
296
- style?: ViewStyle;
297
- }
298
- declare function Grid({ children, columns, gap, className, style }: GridProps): react_jsx_runtime.JSX.Element;
299
-
300
- interface ListProps<T> {
301
- data: T[];
302
- renderItem: (item: T, index: number) => React.ReactNode;
303
- keyExtractor?: (item: T, index: number) => string;
304
- separator?: boolean;
305
- className?: string;
306
- style?: ViewStyle;
307
- }
308
- declare function List<T>({ data, renderItem, keyExtractor, separator, className, style, }: ListProps<T>): react_jsx_runtime.JSX.Element;
309
-
310
- interface ListItemProps {
311
- title: React.ReactNode;
312
- subtitle?: React.ReactNode;
313
- leading?: React.ReactNode;
314
- trailing?: React.ReactNode;
315
- onPress?: () => void;
316
- disabled?: boolean;
317
- className?: string;
318
- style?: ViewStyle;
319
- }
320
- declare function ListItem({ title, subtitle, leading, trailing, onPress, disabled, className, style, }: ListItemProps): react_jsx_runtime.JSX.Element;
321
-
322
- type SpacerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
323
- interface SpacerProps {
324
- size?: SpacerSize;
325
- flex?: boolean;
326
- className?: string;
327
- }
328
- declare function Spacer({ size, flex, className }: SpacerProps): react_jsx_runtime.JSX.Element;
329
-
330
- type InputVariant = 'animated' | 'classic' | 'underlined';
331
- interface InputProps extends Omit<TextInputProps, 'className'> {
113
+ declare const InputField: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, TextInput, any, _tamagui_web.TextStylePropsBase & {
114
+ readonly placeholderTextColor?: Omit<tamagui.ColorTokens | _tamagui_web.ThemeValueFallbackColor, "unset"> | undefined;
115
+ readonly selectionColor?: Omit<tamagui.ColorTokens | _tamagui_web.ThemeValueFallbackColor, "unset"> | undefined;
116
+ }, {
117
+ size?: tamagui.SizeTokens | undefined;
118
+ disabled?: boolean | undefined;
119
+ variant?: "default" | "filled" | undefined;
120
+ unstyled?: boolean | undefined;
121
+ hasError?: boolean | undefined;
122
+ }, {
123
+ isInput: true;
124
+ accept: {
125
+ readonly placeholderTextColor: "color";
126
+ readonly selectionColor: "color";
127
+ };
128
+ } & _tamagui_web.StaticConfigPublic>;
129
+ type InputProps = GetProps<typeof InputField> & {
332
130
  label?: string;
333
131
  error?: string;
334
132
  hint?: string;
335
- variant?: InputVariant;
336
- left?: React.ReactNode;
337
- right?: React.ReactNode;
338
- clearable?: boolean;
339
- disabled?: boolean;
340
- className?: string;
341
- }
342
- declare function Input({ label, placeholder, value, onChangeText, error, hint, secureTextEntry, variant, left, right, clearable, multiline, disabled, className, ...props }: InputProps): react_jsx_runtime.JSX.Element;
343
-
344
- interface TextAreaProps extends Omit<InputProps, 'multiline'> {
345
- }
346
- declare function TextArea({ className, ...props }: TextAreaProps): react_jsx_runtime.JSX.Element;
347
-
348
- interface SearchInputProps {
349
- value: string;
350
- onChangeText: (text: string) => void;
351
- placeholder?: string;
352
- onClear?: () => void;
353
- autoFocus?: boolean;
354
- className?: string;
355
- }
356
- declare function SearchInput({ value, onChangeText, placeholder, onClear, autoFocus, className, }: SearchInputProps): react_jsx_runtime.JSX.Element;
357
-
358
- interface SearchPillProps {
359
- placeholder?: string;
360
- onPress?: () => void;
361
- className?: string;
362
- }
363
- declare function SearchPill({ placeholder, onPress, className, }: SearchPillProps): react_jsx_runtime.JSX.Element;
364
-
365
- interface CheckboxProps {
366
- checked?: boolean;
367
- onToggle?: (checked: boolean) => void;
368
- label?: string;
369
- disabled?: boolean;
370
- error?: string;
371
- className?: string;
372
- }
373
- declare function Checkbox({ checked, onToggle, label, disabled, error, className, }: CheckboxProps): react_jsx_runtime.JSX.Element;
133
+ };
134
+ declare function Input({ label, error, hint, ...props }: InputProps): react_jsx_runtime.JSX.Element;
374
135
 
375
- interface RadioOption {
376
- value: string;
377
- label: string;
378
- disabled?: boolean;
379
- }
380
- interface RadioGroupProps {
381
- options: RadioOption[];
382
- value: string;
383
- onChange: (value: string) => void;
384
- direction?: 'vertical' | 'horizontal';
385
- className?: string;
386
- }
387
- declare function RadioGroup({ options, value, onChange, direction, className, }: RadioGroupProps): react_jsx_runtime.JSX.Element;
136
+ type SimpleSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
137
+ type AvatarProps = {
138
+ uri?: string;
139
+ name?: string;
140
+ size?: number | SimpleSize;
141
+ };
142
+ declare const Avatar: react.MemoExoticComponent<({ uri, name, size: sizeIn }: AvatarProps) => react_jsx_runtime.JSX.Element>;
388
143
 
389
- interface BlinkSwitchProps {
390
- value?: boolean;
391
- onValueChange?: (value: boolean) => void;
392
- label?: string;
144
+ declare const SubHeading: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, tamagui.TextNonStyleProps, _tamagui_web.TextStylePropsBase, {
145
+ size?: tamagui.FontSizeTokens | undefined;
146
+ unstyled?: boolean | undefined;
147
+ }, _tamagui_web.StaticConfigPublic>;
148
+ declare function SepHeading({ children }: {
149
+ children: ReactNode;
150
+ }): react_jsx_runtime.JSX.Element;
151
+
152
+ declare const PageContainer: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
153
+ elevation?: number | tamagui.SizeTokens | undefined;
154
+ inset?: number | tamagui.SizeTokens | {
155
+ top?: number;
156
+ bottom?: number;
157
+ left?: number;
158
+ right?: number;
159
+ } | null | undefined;
160
+ fullscreen?: boolean | undefined;
161
+ }, _tamagui_web.StaticConfigPublic>;
162
+ declare const PageMainContainer: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
163
+ elevation?: number | tamagui.SizeTokens | undefined;
164
+ inset?: number | tamagui.SizeTokens | {
165
+ top?: number;
166
+ bottom?: number;
167
+ left?: number;
168
+ right?: number;
169
+ } | null | undefined;
170
+ fullscreen?: boolean | undefined;
171
+ }, _tamagui_web.StaticConfigPublic>;
172
+
173
+ declare function DialogProvider({ children }: {
174
+ children: ReactNode;
175
+ }): react_jsx_runtime.JSX.Element;
176
+ declare const showError: (error: unknown, title?: string) => void;
177
+ declare const dialogConfirm: (props: {
178
+ title?: string;
393
179
  description?: string;
394
- disabled?: boolean;
395
- className?: string;
396
- }
397
- declare function BlinkSwitch({ value, onValueChange, label, description, disabled, className, }: BlinkSwitchProps): react_jsx_runtime.JSX.Element;
180
+ }) => Promise<boolean>;
398
181
 
399
- interface SliderProps {
400
- value: number;
401
- onValueChange: (v: number) => void;
402
- min?: number;
403
- max?: number;
404
- step?: number;
405
- showValue?: boolean;
406
- className?: string;
407
- }
408
- declare function Slider({ value, onValueChange, min, max, step, showValue, className, }: SliderProps): react_jsx_runtime.JSX.Element;
182
+ declare const Pressable: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {}, _tamagui_web.StaticConfigPublic>;
409
183
 
410
- interface SelectOption {
411
- label: string;
412
- value: string;
413
- }
414
- interface SelectProps {
415
- options: SelectOption[];
416
- value?: string;
417
- onChange: (value: string) => void;
418
- label?: string;
419
- placeholder?: string;
420
- error?: string;
421
- variant?: InputVariant;
422
- className?: string;
423
- }
424
- declare function Select({ options, value, onChange, label, placeholder, error, variant, className, }: SelectProps): react_jsx_runtime.JSX.Element;
425
-
426
- interface CounterProps {
427
- value?: number;
428
- onChange?: (value: number) => void;
429
- min?: number;
430
- max?: number;
431
- step?: number;
432
- label?: string;
433
- className?: string;
434
- }
435
- declare function Counter({ value: controlledValue, onChange, min, max, step, label, className, }: CounterProps): react_jsx_runtime.JSX.Element;
184
+ declare const Image: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, unknown, _tamagui_web.TamaguiComponentPropsBaseBase & Omit<Omit<_tamagui_web.GetFinalProps<any, _tamagui_web.StackStyleBase, {}>, "borderRadius"> & {
185
+ borderRadius?: tamagui.RadiusTokens;
186
+ }, "style" | "onLayout" | "width" | "height" | "resizeMode"> & {
187
+ width?: string | number | tamagui.SizeTokens | tamagui.ThemeValueFallback;
188
+ height?: string | number | tamagui.SizeTokens | tamagui.ThemeValueFallback;
189
+ src?: string | any;
190
+ resizeMode?: any;
191
+ objectFit?: React.CSSProperties["objectFit"];
192
+ } & Omit<tamagui.StackProps, string | number | symbol>, _tamagui_web.StackStyleBase, {}, _tamagui_web.StaticConfigPublic>;
436
193
 
437
- type HeaderVariant = 'default' | 'blurred' | 'transparent' | 'collapsible';
438
- interface HeaderProps {
439
- title?: string;
440
- subtitle?: string;
441
- left?: React.ReactNode;
442
- right?: React.ReactNode;
443
- variant?: HeaderVariant;
444
- large?: boolean;
445
- showBackButton?: boolean;
446
- onBackPress?: () => void;
447
- visible?: boolean;
448
- children?: React.ReactNode;
449
- className?: string;
450
- }
451
- declare function Header({ title, subtitle, left, right, variant, large, showBackButton, onBackPress, visible, children, className, }: HeaderProps): react_jsx_runtime.JSX.Element;
194
+ type BadgeProps = {
195
+ children: ReactNode;
196
+ variant?: 'default' | 'success' | 'warning' | 'error' | 'info';
197
+ };
198
+ declare function Badge({ children, variant }: BadgeProps): react_jsx_runtime.JSX.Element;
199
+
200
+ declare const ICONS: {
201
+ readonly home: "⌂";
202
+ readonly search: "⌕";
203
+ readonly back: "‹";
204
+ readonly forward: "›";
205
+ readonly close: "✕";
206
+ readonly menu: "☰";
207
+ readonly more: "⋯";
208
+ readonly plus: "+";
209
+ readonly minus: "−";
210
+ readonly check: "✓";
211
+ readonly star: "★";
212
+ readonly starOutline: "☆";
213
+ readonly heart: "♥";
214
+ readonly heartOutline: "♡";
215
+ readonly share: "⤴";
216
+ readonly edit: "✎";
217
+ readonly trash: "⌫";
218
+ readonly copy: "⎘";
219
+ readonly chat: "💬";
220
+ readonly mail: "✉";
221
+ readonly bell: "🔔";
222
+ readonly bellOff: "🔕";
223
+ readonly send: "➤";
224
+ readonly play: "▶";
225
+ readonly pause: "⏸";
226
+ readonly camera: "📷";
227
+ readonly image: "🖼";
228
+ readonly info: "ℹ";
229
+ readonly warning: "⚠";
230
+ readonly error: "✕";
231
+ readonly success: "✓";
232
+ readonly loading: "⟳";
233
+ readonly user: "👤";
234
+ readonly users: "👥";
235
+ readonly settings: "⚙";
236
+ readonly lock: "🔒";
237
+ readonly unlock: "🔓";
238
+ readonly arrowUp: "↑";
239
+ readonly arrowDown: "↓";
240
+ readonly arrowLeft: "←";
241
+ readonly arrowRight: "→";
242
+ readonly chevronUp: "⌃";
243
+ readonly chevronDown: "⌄";
244
+ readonly chevronLeft: "‹";
245
+ readonly chevronRight: "›";
246
+ };
247
+ type IconName = keyof typeof ICONS;
248
+ type IconProps = {
249
+ name: IconName;
250
+ size?: number;
251
+ color?: string;
252
+ };
253
+ declare function Icon({ name, size, color }: IconProps): react_jsx_runtime.JSX.Element;
452
254
 
453
- interface HeaderIconProps {
454
- onPress?: () => void;
455
- badge?: boolean;
456
- children: React.ReactNode;
457
- className?: string;
458
- }
459
- declare function HeaderIcon({ onPress, badge, children, className, }: HeaderIconProps): react_jsx_runtime.JSX.Element;
255
+ type BlinkAccordionItem = {
256
+ id: string;
257
+ title: string;
258
+ content: ReactNode;
259
+ };
260
+ type BlinkAccordionProps = {
261
+ items: BlinkAccordionItem[];
262
+ defaultOpen?: string[];
263
+ allowMultiple?: boolean;
264
+ };
265
+ declare function BlinkAccordion({ items, defaultOpen, allowMultiple }: BlinkAccordionProps): react_jsx_runtime.JSX.Element;
460
266
 
461
- interface TabItem {
267
+ type BlinkTabItem = {
462
268
  key: string;
463
269
  label: string;
464
- icon: React.ReactNode;
465
- activeIcon?: React.ReactNode;
466
- badge?: number;
467
- }
468
- interface TabBarProps {
469
- tabs: TabItem[];
470
- activeKey: string;
471
- onChange: (key: string) => void;
472
- className?: string;
473
- }
474
- declare function TabBar({ tabs, activeKey, onChange, className }: TabBarProps): react_jsx_runtime.JSX.Element;
475
-
476
- interface TabButtonProps {
477
- icon: React.ReactNode;
478
- label: string;
479
- active: boolean;
480
- badge?: number;
481
- onPress: () => void;
482
- className?: string;
483
- }
484
- declare function TabButton({ icon, label, active, badge, onPress, className, }: TabButtonProps): react_jsx_runtime.JSX.Element;
270
+ };
271
+ type BlinkTabsProps = {
272
+ tabs: BlinkTabItem[];
273
+ activeTab?: string;
274
+ onTabChange?: (key: string) => void;
275
+ variant?: 'underline' | 'pill';
276
+ };
277
+ declare function BlinkTabs({ tabs, activeTab, onTabChange, variant }: BlinkTabsProps): react_jsx_runtime.JSX.Element;
485
278
 
486
- interface Segment {
279
+ type BlinkToggleOption = {
487
280
  value: string;
488
281
  label: string;
489
- }
490
- interface SegmentedControlProps {
491
- segments: Segment[];
282
+ };
283
+ type BlinkToggleGroupProps = {
284
+ options: BlinkToggleOption[];
492
285
  value: string;
493
- onChange: (value: string) => void;
494
- className?: string;
495
- }
496
- declare function SegmentedControl({ segments, value, onChange, className, }: SegmentedControlProps): react_jsx_runtime.JSX.Element;
497
-
498
- interface BottomSheetProps {
499
- children: React.ReactNode;
500
- title?: string;
501
- className?: string;
502
- }
503
- declare const BottomSheet: React.ForwardRefExoticComponent<BottomSheetProps & React.RefAttributes<ActionSheetRef>>;
504
-
505
- interface BlinkModalProps {
506
- visible: boolean;
507
- onClose: () => void;
508
- title?: string;
509
- description?: string;
510
- children?: React.ReactNode;
511
- showCloseButton?: boolean;
512
- className?: string;
513
- }
514
- declare function BlinkModal({ visible, onClose, title, description, children, showCloseButton, className, }: BlinkModalProps): react_jsx_runtime.JSX.Element;
286
+ onValueChange: (value: string) => void;
287
+ size?: 'sm' | 'md' | 'lg';
288
+ };
289
+ declare function BlinkToggleGroup({ options, value, onValueChange, size }: BlinkToggleGroupProps): react_jsx_runtime.JSX.Element;
515
290
 
516
- interface ConfirmationSheetProps {
291
+ type BlinkToastVariant = 'default' | 'success' | 'error' | 'warning';
292
+ type BlinkToastData = {
293
+ id: string;
517
294
  title: string;
518
295
  message?: string;
519
- confirmLabel?: string;
520
- cancelLabel?: string;
521
- onConfirm: () => void;
522
- onCancel: () => void;
523
- destructive?: boolean;
524
- className?: string;
525
- }
526
- declare function ConfirmationSheet({ title, message, confirmLabel, cancelLabel, onConfirm, onCancel, destructive, className, }: ConfirmationSheetProps): react_jsx_runtime.JSX.Element;
527
- declare function useConfirmationSheet(): {
528
- show: (p: ConfirmationSheetProps) => void;
529
- Sheet: react_jsx_runtime.JSX.Element | null;
296
+ variant?: BlinkToastVariant;
297
+ duration?: number;
530
298
  };
531
-
532
- interface ActionItem {
533
- label: string;
534
- icon?: React.ReactNode;
535
- onPress: () => void;
536
- destructive?: boolean;
537
- disabled?: boolean;
538
- }
539
- interface BlinkActionSheetProps {
540
- title?: string;
541
- items: ActionItem[];
542
- cancelLabel?: string;
543
- onClose?: () => void;
544
- className?: string;
545
- }
546
- declare function BlinkActionSheet({ title, items, cancelLabel, onClose, className, }: BlinkActionSheetProps): react_jsx_runtime.JSX.Element;
547
- declare function useActionSheet(): {
548
- show: (p: BlinkActionSheetProps) => void;
549
- Sheet: react_jsx_runtime.JSX.Element | null;
299
+ type BlinkToastOptions = {
300
+ message?: string;
301
+ variant?: BlinkToastVariant;
302
+ duration?: number;
550
303
  };
304
+ type BlinkToastContextType = {
305
+ show: (title: string, options?: BlinkToastOptions) => void;
306
+ };
307
+ declare const toast: (title: string, options?: BlinkToastOptions | BlinkToastVariant) => void;
308
+ declare function BlinkToastProvider({ children }: {
309
+ children: ReactNode;
310
+ }): react_jsx_runtime.JSX.Element;
311
+ declare function useBlinkToast(): BlinkToastContextType;
551
312
 
552
- type ToastType = 'success' | 'error' | 'info' | 'warning';
553
- type ToastPosition = 'top' | 'bottom';
554
- interface ToastOptions {
555
- message: string;
556
- type?: ToastType;
557
- duration?: number;
558
- position?: ToastPosition;
559
- }
560
- declare const Toast: React.FC<{
561
- className?: string;
562
- }>;
563
- declare const toast: {
564
- show: (opts: ToastOptions) => void | undefined;
565
- success: (message: string, opts?: Partial<ToastOptions>) => void | undefined;
566
- error: (message: string, opts?: Partial<ToastOptions>) => void | undefined;
567
- info: (message: string, opts?: Partial<ToastOptions>) => void | undefined;
568
- warning: (message: string, opts?: Partial<ToastOptions>) => void | undefined;
313
+ type FormFieldProps = {
314
+ label?: string;
315
+ error?: string;
316
+ helperText?: string;
317
+ required?: boolean;
318
+ children: ReactNode;
569
319
  };
320
+ declare function FormField({ label, error, helperText, required, children }: FormFieldProps): react_jsx_runtime.JSX.Element;
570
321
 
571
- interface PageLoaderProps {
572
- message?: string;
573
- transparent?: boolean;
574
- className?: string;
575
- }
576
- declare function PageLoader({ message, transparent, className, }: PageLoaderProps): react_jsx_runtime.JSX.Element;
322
+ type TooltipProps = {
323
+ content: string;
324
+ children: ReactNode;
325
+ side?: 'top' | 'bottom' | 'left' | 'right';
326
+ };
327
+ declare function BlinkTooltip({ content, children, side }: TooltipProps): react_jsx_runtime.JSX.Element;
577
328
 
578
- interface EmptyStateProps {
579
- icon?: React.ReactNode;
329
+ type StepPageProps = {
580
330
  title: string;
581
331
  description?: string;
582
- action?: {
583
- label: string;
584
- onPress: () => void;
585
- };
586
- className?: string;
587
- }
588
- declare function EmptyState({ icon, title, description, action, className, }: EmptyStateProps): react_jsx_runtime.JSX.Element;
332
+ children: ReactNode;
333
+ bottom?: ReactNode;
334
+ };
335
+ declare function StepPageLayout({ title, description, children, bottom }: StepPageProps): react_jsx_runtime.JSX.Element;
336
+
337
+ declare const ScreenLayout: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
338
+ elevation?: number | tamagui.SizeTokens | undefined;
339
+ inset?: number | tamagui.SizeTokens | {
340
+ top?: number;
341
+ bottom?: number;
342
+ left?: number;
343
+ right?: number;
344
+ } | null | undefined;
345
+ fullscreen?: boolean | undefined;
346
+ padded?: boolean | undefined;
347
+ centered?: boolean | undefined;
348
+ safe?: boolean | undefined;
349
+ }, _tamagui_web.StaticConfigPublic>;
350
+
351
+ type SectionProps = {
352
+ title?: string;
353
+ description?: string;
354
+ children: ReactNode;
355
+ gap?: GetProps<typeof YStack>['gap'];
356
+ };
357
+ declare function Section({ title, description, children, gap }: SectionProps): react_jsx_runtime.JSX.Element;
589
358
 
590
- interface PlaceholderProps {
591
- width?: number | string;
592
- height?: number;
593
- className?: string;
594
- }
595
- declare function Placeholder({ width, height, className, }: PlaceholderProps): react_jsx_runtime.JSX.Element;
359
+ type ListItemProps = {
360
+ icon?: ReactNode;
361
+ title: string;
362
+ subtitle?: string;
363
+ right?: ReactNode;
364
+ onPress?: () => void;
365
+ };
366
+ declare function ListItem({ icon, title, subtitle, right, onPress }: ListItemProps): react_jsx_runtime.JSX.Element;
596
367
 
597
- interface TextSkeletonProps {
598
- lines?: number;
599
- className?: string;
600
- }
601
- declare function TextSkeleton({ lines, className }: TextSkeletonProps): react_jsx_runtime.JSX.Element;
602
- interface CardSkeletonProps {
603
- className?: string;
604
- }
605
- declare function CardSkeleton({ className }: CardSkeletonProps): react_jsx_runtime.JSX.Element;
606
- interface ListSkeletonProps {
607
- rows?: number;
608
- className?: string;
609
- }
610
- declare function ListSkeleton({ rows, className }: ListSkeletonProps): react_jsx_runtime.JSX.Element;
611
- interface ChatSkeletonProps {
612
- className?: string;
613
- }
614
- declare function ChatSkeleton({ className }: ChatSkeletonProps): react_jsx_runtime.JSX.Element;
615
- interface ArticleSkeletonProps {
616
- className?: string;
617
- }
618
- declare function ArticleSkeleton({ className }: ArticleSkeletonProps): react_jsx_runtime.JSX.Element;
619
- interface GridSkeletonProps {
620
- columns?: number;
621
- count?: number;
622
- className?: string;
623
- }
624
- declare function GridSkeleton({ columns, count, className }: GridSkeletonProps): react_jsx_runtime.JSX.Element;
625
- declare const SkeletonLoader: {
626
- Text: typeof TextSkeleton;
627
- Card: typeof CardSkeleton;
628
- List: typeof ListSkeleton;
629
- Chat: typeof ChatSkeleton;
630
- Article: typeof ArticleSkeleton;
631
- Grid: typeof GridSkeleton;
368
+ type DividerProps = {
369
+ label?: string;
632
370
  };
371
+ declare function Divider({ label }: DividerProps): react_jsx_runtime.JSX.Element;
633
372
 
634
- type AnimationType = 'fadeIn' | 'scaleIn' | 'slideInBottom' | 'slideInRight' | 'slideInLeft' | 'slideInTop' | 'bounceIn' | 'flipInX' | 'zoomInRotate' | 'rotateIn' | 'slideOutBottom' | 'slideOutRight' | 'slideOutLeft' | 'slideOutTop' | 'scaleOut';
635
- interface AnimatedViewProps {
636
- children?: React.ReactNode;
637
- animation: AnimationType;
638
- duration?: number;
639
- delay?: number;
640
- easing?: EasingFunction;
641
- className?: string;
642
- playOnlyOnce?: boolean;
643
- triggerOnVisible?: boolean;
644
- visibilityThreshold?: number;
645
- shouldResetAnimation?: boolean;
646
- }
647
- declare function AnimatedViewComponent({ children, animation, duration, delay, easing, className, playOnlyOnce, triggerOnVisible, visibilityThreshold, shouldResetAnimation, }: AnimatedViewProps): react_jsx_runtime.JSX.Element;
648
- declare const AnimatedView: React.MemoExoticComponent<typeof AnimatedViewComponent>;
373
+ type KeyboardStickyFooterProps = {
374
+ children: ReactNode;
375
+ offset?: number;
376
+ };
377
+ declare function KeyboardStickyFooter({ children, offset }: KeyboardStickyFooterProps): react_jsx_runtime.JSX.Element;
649
378
 
650
- interface FabAction {
651
- icon: React.ReactNode;
652
- label: string;
653
- onPress: () => void;
654
- }
655
- interface AnimatedFabProps {
656
- icon: React.ReactNode;
657
- actions?: FabAction[];
658
- onPress?: () => void;
659
- className?: string;
660
- }
661
- declare function AnimatedFab({ icon, actions, onPress, className, }: AnimatedFabProps): react_jsx_runtime.JSX.Element;
379
+ type SafeAreaProps = {
380
+ children: ReactNode;
381
+ edges?: ('top' | 'bottom' | 'left' | 'right')[];
382
+ };
383
+ declare function SafeArea({ children, edges }: SafeAreaProps): react_jsx_runtime.JSX.Element;
662
384
 
663
- interface StepProps {
664
- title?: string;
385
+ type GridProps = {
665
386
  children: ReactNode;
666
- }
667
- declare function Step({ children }: StepProps): react_jsx_runtime.JSX.Element;
668
- interface MultiStepProps {
387
+ columns?: number;
388
+ gap?: string;
389
+ };
390
+ type ContainerProps = {
669
391
  children: ReactNode;
670
- onComplete?: () => void;
671
- showProgress?: boolean;
672
- showSkip?: boolean;
673
- nextLabel?: string;
674
- completeLabel?: string;
675
- className?: string;
676
- }
677
- declare function MultiStepRoot({ children, onComplete, showProgress, showSkip, nextLabel, completeLabel, className, }: MultiStepProps): react_jsx_runtime.JSX.Element | null;
678
- declare const MultiStep: typeof MultiStepRoot & {
679
- Step: typeof Step;
392
+ maxWidth?: number;
393
+ centered?: boolean;
394
+ padding?: string;
680
395
  };
396
+ declare function Grid({ children, columns, gap }: GridProps): react_jsx_runtime.JSX.Element;
397
+ declare function Container({ children, maxWidth, centered, padding }: ContainerProps): react_jsx_runtime.JSX.Element;
681
398
 
682
- interface TransitionProps {
683
- children: React.ReactNode;
684
- duration?: number;
685
- delay?: number;
686
- className?: string;
687
- }
688
- declare const FadeIn: React.FC<TransitionProps>;
689
- declare const SlideUp: React.FC<TransitionProps>;
690
- interface SlideInProps extends TransitionProps {
691
- from?: 'left' | 'right' | 'bottom' | 'top';
692
- }
693
- declare const SlideIn: React.FC<SlideInProps>;
694
- declare const ScaleIn: React.FC<TransitionProps>;
695
-
696
- interface ThemeScrollerProps extends ScrollViewProps {
697
- children: React.ReactNode;
698
- topOffset?: number;
699
- className?: string;
700
- }
701
- declare function ThemeScroller({ children, topOffset, className, contentContainerStyle, ...props }: ThemeScrollerProps): react_jsx_runtime.JSX.Element;
702
-
703
- interface CardScrollerProps {
704
- children: React.ReactNode;
705
- cardWidth?: number;
706
- gap?: number;
707
- snapEnabled?: boolean;
708
- className?: string;
709
- }
710
- declare function CardScroller({ children, cardWidth, gap, snapEnabled, className, }: CardScrollerProps): react_jsx_runtime.JSX.Element;
711
-
712
- interface ImageCarouselProps {
713
- images: string[];
714
- height?: number;
715
- borderRadius?: number;
716
- onIndexChange?: (index: number) => void;
717
- className?: string;
718
- }
719
- declare function ImageCarousel({ images, height, borderRadius, onIndexChange, className, }: ImageCarouselProps): react_jsx_runtime.JSX.Element;
720
-
721
- interface PlanOption {
399
+ type PlanOption = {
722
400
  id: string;
723
- label: string;
401
+ name: string;
724
402
  price: string;
725
403
  period: string;
726
- badge?: string;
727
- savings?: string;
728
- }
729
- interface PlanCardProps {
730
- plan: PlanOption;
731
- selected: boolean;
732
- onSelect: (plan: PlanOption) => void;
733
- className?: string;
734
- }
735
- declare function PlanCard({ plan, selected, onSelect, className }: PlanCardProps): react_jsx_runtime.JSX.Element;
736
-
737
- interface PaywallFeature {
738
- label: string;
739
- free?: boolean;
740
- pro: boolean;
741
- }
742
- interface PaywallScreenProps {
743
- appName: string;
744
- tagline?: string;
745
- features: PaywallFeature[];
746
- plans: PlanOption[];
747
- selectedPlan: string;
748
- onSubscribe: (planId: string) => void;
749
- onSelectPlan?: (plan: PlanOption) => void;
750
- onDismiss?: () => void;
751
- loading?: boolean;
752
- ctaLabel?: string;
753
- disclaimer?: string;
754
- className?: string;
755
- }
756
- declare function PaywallScreen({ appName, tagline, features, plans, selectedPlan, onSubscribe, onSelectPlan, onDismiss, loading, ctaLabel, disclaimer, className, }: PaywallScreenProps): react_jsx_runtime.JSX.Element;
757
-
758
- type PaywallSoftProps = Omit<PaywallScreenProps, 'onDismiss'> & {
759
- onDismiss: () => void;
760
- className?: string;
404
+ features: string[];
405
+ popular?: boolean;
761
406
  };
762
- declare function PaywallSoft({ className, ...props }: PaywallSoftProps): react_jsx_runtime.JSX.Element;
763
-
764
- type PaywallHardProps = Omit<PaywallScreenProps, 'onDismiss'> & {
765
- className?: string;
407
+ type PaywallScreenProps = {
408
+ title?: string;
409
+ subtitle?: string;
410
+ plans: PlanOption[];
411
+ selectedPlan?: string;
412
+ onSelectPlan?: (planId: string) => void;
413
+ onContinue?: () => void;
414
+ onRestore?: () => void;
415
+ continueLabel?: string;
766
416
  };
767
- declare function PaywallHard({ className, ...props }: PaywallHardProps): react_jsx_runtime.JSX.Element;
768
-
769
- interface FeatureRowProps {
770
- label: string;
771
- free?: boolean;
772
- pro?: boolean;
773
- className?: string;
774
- }
775
- declare function FeatureRow({ label, free, pro, className }: FeatureRowProps): react_jsx_runtime.JSX.Element;
776
-
777
- interface PlanComparisonProps {
778
- features: Omit<FeatureRowProps, 'className'>[];
779
- freeLabel?: string;
780
- proLabel?: string;
781
- className?: string;
782
- }
783
- declare function PlanComparison({ features, freeLabel, proLabel, className, }: PlanComparisonProps): react_jsx_runtime.JSX.Element;
784
-
785
- interface TrialBannerProps {
786
- days: number;
787
- message?: string;
788
- className?: string;
789
- }
790
- declare function TrialBanner({ days, message, className }: TrialBannerProps): react_jsx_runtime.JSX.Element;
791
-
792
- interface SocialProofBarProps {
793
- userCount?: string;
794
- rating?: number;
795
- reviewCount?: string;
796
- className?: string;
797
- }
798
- declare function SocialProofBar({ userCount, rating, reviewCount, className, }: SocialProofBarProps): react_jsx_runtime.JSX.Element;
417
+ declare function PaywallScreen({ title, subtitle, plans, selectedPlan, onSelectPlan, onContinue, onRestore, continueLabel, }: PaywallScreenProps): react_jsx_runtime.JSX.Element;
799
418
 
800
- interface OnboardingSlide {
801
- id: string;
419
+ type OnboardingStep = {
802
420
  title: string;
803
421
  description: string;
804
- visual?: React.ReactNode;
805
- }
806
- interface OnboardingCarouselProps {
807
- slides: OnboardingSlide[];
808
- onComplete: () => void;
809
- onSkip?: () => void;
810
- showSkip?: boolean;
811
- showDots?: boolean;
812
- nextLabel?: string;
813
- completeLabel?: string;
814
- className?: string;
815
- }
816
- declare function OnboardingCarousel({ slides, onComplete, onSkip, showSkip, showDots, nextLabel, completeLabel, className, }: OnboardingCarouselProps): react_jsx_runtime.JSX.Element;
817
-
818
- interface ParallaxLayer {
819
- content: React.ReactNode;
820
- speed?: number;
821
- }
822
- interface ParallaxSlide {
823
- id: string;
824
- title: string;
825
- description: string;
826
- layers: ParallaxLayer[];
827
- }
828
- interface OnboardingParallaxProps {
829
- slides: ParallaxSlide[];
830
- onComplete: () => void;
422
+ icon?: ReactNode;
423
+ };
424
+ type OnboardingCarouselProps = {
425
+ steps: OnboardingStep[];
426
+ onComplete?: () => void;
831
427
  onSkip?: () => void;
832
- showSkip?: boolean;
833
428
  completeLabel?: string;
834
- nextLabel?: string;
835
- className?: string;
836
- }
837
- declare function OnboardingParallax({ slides, onComplete, onSkip, showSkip, completeLabel, nextLabel, className, }: OnboardingParallaxProps): react_jsx_runtime.JSX.Element;
838
-
839
- interface OnboardingHeroProps {
840
- title: string;
841
- description: string;
842
- visual?: React.ReactNode;
843
- ctaLabel?: string;
844
- onCta: () => void;
845
- secondaryLabel?: string;
846
- onSecondary?: () => void;
847
- className?: string;
848
- }
849
- declare function OnboardingHero({ title, description, visual, ctaLabel, onCta, secondaryLabel, onSecondary, className, }: OnboardingHeroProps): react_jsx_runtime.JSX.Element;
850
-
851
- interface PermissionStepProps {
852
- icon: React.ReactNode;
853
- title: string;
854
- description: string;
855
- allowLabel?: string;
856
429
  skipLabel?: string;
857
- onAllow: () => void;
858
- onSkip: () => void;
859
- className?: string;
860
- }
861
- declare function PermissionStep({ icon, title, description, allowLabel, skipLabel, onAllow, onSkip, className, }: PermissionStepProps): react_jsx_runtime.JSX.Element;
430
+ nextLabel?: string;
431
+ };
432
+ declare function OnboardingCarousel({ steps, onComplete, onSkip, completeLabel, skipLabel, nextLabel, }: OnboardingCarouselProps): react_jsx_runtime.JSX.Element;
862
433
 
863
- interface QuizOption {
434
+ type ChatMessage = {
864
435
  id: string;
865
- label: string;
866
- icon?: React.ReactNode;
867
- }
868
- interface QuizStepProps {
869
- title: string;
870
- description?: string;
871
- options: QuizOption[];
872
- multiSelect?: boolean;
873
- onSubmit: (selected: string[]) => void;
874
- submitLabel?: string;
875
- className?: string;
876
- }
877
- declare function QuizStep({ title, description, options, multiSelect, onSubmit, submitLabel, className, }: QuizStepProps): react_jsx_runtime.JSX.Element;
436
+ text: string;
437
+ sender: 'user' | 'other';
438
+ timestamp?: string;
439
+ avatar?: string;
440
+ senderName?: string;
441
+ };
442
+ type ChatBubbleProps = {
443
+ message: ChatMessage;
444
+ showAvatar?: boolean;
445
+ };
446
+ declare function ChatBubble({ message, showAvatar }: ChatBubbleProps): react_jsx_runtime.JSX.Element;
878
447
 
879
- interface OnboardingFlowStep {
448
+ type SettingsItem = {
880
449
  id: string;
881
- component: React.ReactNode;
882
- }
883
- interface OnboardingFlowProps {
884
- steps: OnboardingFlowStep[];
885
- onComplete: () => void;
886
- showProgress?: boolean;
887
- className?: string;
888
- }
889
- declare function OnboardingFlow({ steps, onComplete, showProgress, className, }: OnboardingFlowProps): react_jsx_runtime.JSX.Element;
890
-
891
- interface AuthProvider {
892
- id: 'google' | 'apple' | 'email' | string;
893
- label?: string;
894
- icon?: React.ReactNode;
895
- }
896
- interface AuthButtonsProps {
897
- providers?: AuthProvider[];
898
- onAuth: (providerId: string) => void;
899
- className?: string;
900
- }
901
- declare function AuthButtons({ providers, onAuth, className, }: AuthButtonsProps): react_jsx_runtime.JSX.Element;
902
-
903
- type SwipeDirection = 'left' | 'right' | 'up';
904
- interface SwipeDeckProps<T> {
905
- data: T[];
906
- renderCard: (item: T, index: number) => React.ReactNode;
907
- onSwipeLeft?: (item: T) => void;
908
- onSwipeRight?: (item: T) => void;
909
- onSwipeUp?: (item: T) => void;
910
- onEmpty?: () => React.ReactNode;
911
- swipeThreshold?: number;
912
- rotationFactor?: number;
913
- stackDepth?: number;
914
- className?: string;
915
- }
916
- declare function SwipeDeck<T>({ data, renderCard, onSwipeLeft, onSwipeRight, onSwipeUp, onEmpty, swipeThreshold, rotationFactor, stackDepth, className, }: SwipeDeckProps<T>): react_jsx_runtime.JSX.Element;
917
-
918
- interface SwipeCardProps {
919
- children: React.ReactNode;
920
- className?: string;
921
- }
922
- declare function SwipeCard({ children, className }: SwipeCardProps): react_jsx_runtime.JSX.Element;
923
-
924
- interface SwipeActionsProps {
925
- onNope?: () => void;
926
- onSuperLike?: () => void;
927
- onLike?: () => void;
928
- className?: string;
929
- }
930
- declare function SwipeActions({ onNope, onSuperLike, onLike, className }: SwipeActionsProps): react_jsx_runtime.JSX.Element;
931
-
932
- interface SwipeOverlayProps {
933
- position: Animated.ValueXY;
934
- swipeThreshold: number;
935
- className?: string;
936
- }
937
- declare function SwipeOverlay({ position, swipeThreshold }: SwipeOverlayProps): react_jsx_runtime.JSX.Element;
938
-
939
- interface VerticalReelProps<T> {
940
- data: T[];
941
- renderItem: (item: T, index: number, isActive: boolean) => React.ReactNode;
942
- onActiveChange?: (index: number) => void;
943
- keyExtractor: (item: T, index: number) => string;
944
- className?: string;
945
- }
946
- declare function VerticalReel<T>({ data, renderItem, onActiveChange, keyExtractor, className, }: VerticalReelProps<T>): react_jsx_runtime.JSX.Element;
947
-
948
- interface ReelItemProps {
949
- backgroundSource?: string | ImageSourcePropType;
950
- backgroundColor?: string;
951
- children?: React.ReactNode;
952
- className?: string;
953
- }
954
- declare function ReelItem({ backgroundSource, backgroundColor, children, className, }: ReelItemProps): react_jsx_runtime.JSX.Element;
955
-
956
- interface ReelAction {
957
- key: string;
958
- icon: React.ReactNode;
959
- label?: string;
960
- count?: number;
450
+ icon?: ReactNode;
451
+ title: string;
452
+ subtitle?: string;
453
+ right?: ReactNode;
961
454
  onPress?: () => void;
962
- }
963
- interface ReelOverlayProps {
964
- username: string;
965
- description?: string;
966
- actions?: ReelAction[];
967
- avatar?: React.ReactNode;
968
- children?: React.ReactNode;
969
- className?: string;
970
- }
971
- declare function ReelOverlay({ username, description, actions, avatar, children, className, }: ReelOverlayProps): react_jsx_runtime.JSX.Element;
455
+ type?: 'navigate' | 'toggle';
456
+ value?: boolean;
457
+ onValueChange?: (value: boolean) => void;
458
+ };
459
+ type SettingsSection = {
460
+ title?: string;
461
+ items: SettingsItem[];
462
+ };
463
+ type SettingsScreenProps = {
464
+ sections: SettingsSection[];
465
+ header?: ReactNode;
466
+ };
467
+ declare function SettingsScreen({ sections, header }: SettingsScreenProps): react_jsx_runtime.JSX.Element;
972
468
 
973
- type GlassTint = 'light' | 'dark' | 'default' | 'extraLight' | 'prominent' | 'systemMaterial';
974
- interface GlassViewProps {
975
- intensity?: number;
976
- tint?: GlassTint;
977
- borderRadius?: number;
978
- children?: React.ReactNode;
979
- className?: string;
980
- }
981
- declare function GlassView({ intensity, tint, borderRadius, children, className, }: GlassViewProps): react_jsx_runtime.JSX.Element;
469
+ type EmptyStateProps = {
470
+ icon?: ReactNode;
471
+ title: string;
472
+ description?: string;
473
+ actionLabel?: string;
474
+ onAction?: () => void;
475
+ };
476
+ declare function EmptyState({ icon, title, description, actionLabel, onAction }: EmptyStateProps): react_jsx_runtime.JSX.Element;
982
477
 
983
- interface GlassCardProps {
984
- intensity?: number;
985
- tint?: GlassTint;
986
- onPress?: () => void;
987
- style?: ViewStyle;
988
- children?: React.ReactNode;
989
- className?: string;
990
- }
991
- declare function GlassCard({ intensity, tint, onPress, style, children, className, }: GlassCardProps): react_jsx_runtime.JSX.Element;
478
+ type ProfileHeaderProps = {
479
+ name: string;
480
+ subtitle?: string;
481
+ avatar?: string;
482
+ stats?: {
483
+ label: string;
484
+ value: string;
485
+ }[];
486
+ actions?: ReactNode;
487
+ };
488
+ declare function ProfileHeader({ name, subtitle, avatar, stats, actions }: ProfileHeaderProps): react_jsx_runtime.JSX.Element;
992
489
 
993
- interface GlassHeaderProps {
994
- title?: string;
490
+ type AppHeaderVariant = 'simple' | 'back' | 'profile' | 'centered';
491
+ type AppHeaderProps = {
492
+ title: string;
995
493
  subtitle?: string;
494
+ variant?: AppHeaderVariant;
495
+ onBack?: () => void;
496
+ avatar?: string;
996
497
  left?: React.ReactNode;
997
498
  right?: React.ReactNode;
998
- intensity?: number;
999
- tint?: GlassTint;
1000
- showBackButton?: boolean;
1001
- onBackPress?: () => void;
1002
- backIcon?: React.ReactNode;
1003
- children?: React.ReactNode;
1004
- className?: string;
1005
- }
1006
- declare function GlassHeader({ title, subtitle, left, right, intensity, tint, showBackButton, onBackPress, backIcon, children, className, }: GlassHeaderProps): react_jsx_runtime.JSX.Element;
499
+ transparent?: boolean;
500
+ borderless?: boolean;
501
+ };
502
+ declare function AppHeader({ title, subtitle, variant, onBack, avatar, left, right, transparent, borderless }: AppHeaderProps): react_jsx_runtime.JSX.Element;
1007
503
 
1008
- interface GlassSheetProps {
1009
- visible: boolean;
1010
- onClose: () => void;
504
+ type BottomSheetProps = {
505
+ open: boolean;
506
+ onOpenChange: (open: boolean) => void;
1011
507
  title?: string;
1012
- height?: number;
1013
- intensity?: number;
1014
- tint?: GlassTint;
1015
- children?: React.ReactNode;
1016
- className?: string;
1017
- }
1018
- declare function GlassSheet({ visible, onClose, title, height, intensity, tint, children, className, }: GlassSheetProps): react_jsx_runtime.JSX.Element;
1019
-
1020
- interface GlassTab {
1021
- key: string;
1022
- label: string;
1023
- icon: React.ReactNode;
1024
- activeIcon?: React.ReactNode;
1025
- badge?: number;
1026
- }
1027
- interface GlassTabBarProps {
1028
- tabs: GlassTab[];
1029
- activeKey: string;
1030
- onChange: (key: string) => void;
1031
- intensity?: number;
1032
- tint?: GlassTint;
1033
- className?: string;
1034
- }
1035
- declare function GlassTabBar({ tabs, activeKey, onChange, intensity, tint, className, }: GlassTabBarProps): react_jsx_runtime.JSX.Element;
1036
-
1037
- type BubbleStatus = 'sending' | 'sent' | 'delivered' | 'read';
1038
- interface ChatBubbleProps {
1039
- content: string;
1040
- variant: 'sent' | 'received';
1041
- timestamp?: string;
1042
- status?: BubbleStatus;
1043
- renderMarkdown?: (content: string) => React.ReactNode;
1044
- children?: React.ReactNode;
1045
- className?: string;
1046
- }
1047
- declare function ChatBubble({ content, variant, timestamp, status, renderMarkdown, children, className, }: ChatBubbleProps): react_jsx_runtime.JSX.Element;
1048
-
1049
- interface ChatInputProps {
1050
- onSend?: (text: string) => void;
1051
- placeholder?: string;
1052
- attachButton?: React.ReactNode;
1053
- voiceButton?: React.ReactNode;
1054
- onAttach?: () => void;
1055
- onVoice?: () => void;
1056
- disabled?: boolean;
1057
- className?: string;
1058
- }
1059
- declare function ChatInput({ onSend, placeholder, attachButton, voiceButton, onAttach, onVoice, disabled, className, }: ChatInputProps): react_jsx_runtime.JSX.Element;
508
+ children: ReactNode;
509
+ snapPoints?: number[];
510
+ dismissOnSnapToBottom?: boolean;
511
+ showHandle?: boolean;
512
+ showClose?: boolean;
513
+ };
514
+ declare function BottomSheet({ open, onOpenChange, title, children, snapPoints, dismissOnSnapToBottom, showHandle, showClose }: BottomSheetProps): react_jsx_runtime.JSX.Element;
1060
515
 
1061
- interface ChatMessage {
516
+ type AuthProvider = {
1062
517
  id: string;
1063
- type: 'sent' | 'received' | 'system';
1064
- date?: string;
1065
- }
1066
- interface ChatListProps<T extends ChatMessage> {
1067
- messages: T[];
1068
- renderMessage: (item: T, index: number) => React.ReactNode;
1069
- renderDateSeparator?: (date: string) => React.ReactNode;
1070
- className?: string;
1071
- }
1072
- declare function ChatList<T extends ChatMessage>({ messages, renderMessage, renderDateSeparator, className, }: ChatListProps<T>): react_jsx_runtime.JSX.Element;
1073
-
1074
- interface TypingIndicatorProps {
1075
- label?: React.ReactNode;
1076
- className?: string;
1077
- }
1078
- declare function TypingIndicator({ label, className }: TypingIndicatorProps): react_jsx_runtime.JSX.Element;
1079
-
1080
- interface ListingCardProps {
1081
- image: ImageSourcePropType | string;
1082
- title: string;
518
+ name: string;
519
+ icon?: ReactNode;
520
+ };
521
+ type LoginScreenProps = {
522
+ title?: string;
1083
523
  subtitle?: string;
1084
- price: string;
1085
- priceSuffix?: string;
1086
- rating?: number;
1087
- favorite?: boolean;
1088
- badge?: string;
1089
- imageHeight?: number;
1090
- onPress?: () => void;
1091
- onFavorite?: () => void;
1092
- className?: string;
1093
- }
1094
- declare function ListingCard({ image, title, subtitle, price, priceSuffix, rating, favorite, badge, imageHeight, onPress, onFavorite, className, }: ListingCardProps): react_jsx_runtime.JSX.Element;
1095
-
1096
- interface ProductCardProps {
1097
- image: ImageSourcePropType | string;
1098
- title: string;
1099
- price: string;
1100
- originalPrice?: string;
1101
- badge?: string;
1102
- favorite?: boolean;
1103
- onPress?: () => void;
1104
- onFavorite?: () => void;
1105
- className?: string;
1106
- }
1107
- declare function ProductCard({ image, title, price, originalPrice, badge, favorite, onPress, onFavorite, className, }: ProductCardProps): react_jsx_runtime.JSX.Element;
524
+ logo?: ReactNode;
525
+ providers?: AuthProvider[];
526
+ onProviderPress?: (id: string) => void;
527
+ showEmailForm?: boolean;
528
+ onEmailSubmit?: (email: string, password: string) => void;
529
+ onForgotPassword?: () => void;
530
+ onCreateAccount?: () => void;
531
+ onTerms?: () => void;
532
+ onPrivacy?: () => void;
533
+ loading?: boolean;
534
+ };
535
+ declare function LoginScreen({ title, subtitle, logo, providers, onProviderPress, showEmailForm, onEmailSubmit, onForgotPassword, onCreateAccount, onTerms, onPrivacy, loading }: LoginScreenProps): react_jsx_runtime.JSX.Element;
1108
536
 
1109
- interface CartItemProps {
1110
- image: ImageSourcePropType | string;
1111
- title: string;
1112
- subtitle?: string;
1113
- price: string;
1114
- quantity: number;
1115
- onIncrement?: () => void;
1116
- onDecrement?: () => void;
1117
- onRemove?: () => void;
1118
- className?: string;
1119
- }
1120
- declare function CartItem({ image, title, subtitle, price, quantity, onIncrement, onDecrement, onRemove, className, }: CartItemProps): react_jsx_runtime.JSX.Element;
537
+ type TabBarItem = {
538
+ id: string;
539
+ label: string;
540
+ icon?: React.ReactNode;
541
+ };
542
+ type TabBarProps = {
543
+ tabs: TabBarItem[];
544
+ activeTab: string;
545
+ onTabPress: (id: string) => void;
546
+ showLabels?: boolean;
547
+ };
548
+ declare function TabBar({ tabs, activeTab, onTabPress, showLabels }: TabBarProps): react_jsx_runtime.JSX.Element;
1121
549
 
1122
- interface PriceTagProps {
1123
- price: string;
1124
- originalPrice?: string;
1125
- suffix?: string;
1126
- className?: string;
1127
- }
1128
- declare function PriceTag({ price, originalPrice, suffix, className }: PriceTagProps): react_jsx_runtime.JSX.Element;
550
+ type SearchBarProps = {
551
+ value: string;
552
+ onChangeText: (text: string) => void;
553
+ placeholder?: string;
554
+ onFilter?: () => void;
555
+ onCancel?: () => void;
556
+ autoFocus?: boolean;
557
+ };
558
+ declare function SearchBar({ value, onChangeText, placeholder, onFilter, onCancel, autoFocus }: SearchBarProps): react_jsx_runtime.JSX.Element;
1129
559
 
1130
- interface RatingStarsProps {
1131
- rating: number;
1132
- maxStars?: number;
1133
- count?: number;
1134
- size?: number;
1135
- className?: string;
1136
- }
1137
- declare function RatingStars({ rating, maxStars, count, size, className, }: RatingStarsProps): react_jsx_runtime.JSX.Element;
560
+ type FABProps = {
561
+ icon?: ReactNode;
562
+ label?: string;
563
+ onPress: () => void;
564
+ position?: 'bottom-right' | 'bottom-center' | 'bottom-left';
565
+ size?: 'sm' | 'md' | 'lg';
566
+ };
567
+ declare function FloatingActionButton({ icon, label, onPress, position, size }: FABProps): react_jsx_runtime.JSX.Element;
1138
568
 
1139
- interface CategoryTileProps {
1140
- icon: keyof typeof Ionicons.glyphMap;
569
+ type ActionSheetItem = {
570
+ id: string;
1141
571
  label: string;
1142
- iconColor?: string;
1143
- onPress?: () => void;
1144
- className?: string;
1145
- }
1146
- declare function CategoryTile({ icon, label, iconColor, onPress, className, }: CategoryTileProps): react_jsx_runtime.JSX.Element;
1147
-
1148
- interface BalanceDisplayProps {
1149
- label?: string;
1150
- amount: string;
1151
- currency?: string;
1152
- changePercent?: number;
1153
- className?: string;
1154
- }
1155
- declare function BalanceDisplay({ label, amount, currency, changePercent, className, }: BalanceDisplayProps): react_jsx_runtime.JSX.Element;
572
+ icon?: ReactNode;
573
+ destructive?: boolean;
574
+ };
575
+ type ActionSheetProps = {
576
+ open: boolean;
577
+ onOpenChange: (open: boolean) => void;
578
+ title?: string;
579
+ items: ActionSheetItem[];
580
+ onSelect: (id: string) => void;
581
+ cancelLabel?: string;
582
+ };
583
+ declare function ActionSheet({ open, onOpenChange, title, items, onSelect, cancelLabel }: ActionSheetProps): react_jsx_runtime.JSX.Element;
1156
584
 
1157
- interface CardPreviewProps {
1158
- cardNumber?: string;
1159
- expiryDate?: string;
1160
- brand?: string;
1161
- gradientColors?: [string, string];
1162
- className?: string;
1163
- }
1164
- declare function CardPreview({ cardNumber, expiryDate, brand, gradientColors, className, }: CardPreviewProps): react_jsx_runtime.JSX.Element;
585
+ type SkeletonProps = {
586
+ width?: number | string;
587
+ height?: number;
588
+ borderRadius?: number;
589
+ variant?: 'text' | 'circular' | 'rectangular';
590
+ };
591
+ declare function Skeleton({ width, height, borderRadius, variant }: SkeletonProps): react_jsx_runtime.JSX.Element;
1165
592
 
1166
- interface TransactionItemProps {
593
+ type NotificationBannerProps = {
1167
594
  title: string;
1168
- amount: string;
1169
- time: string;
1170
- method?: string;
1171
- isIncome?: boolean;
1172
- icon?: keyof typeof Ionicons.glyphMap;
1173
- avatar?: ImageSourcePropType | string;
1174
- onPress?: () => void;
1175
- className?: string;
1176
- }
1177
- declare function TransactionItem({ title, amount, time, method, isIncome, icon, avatar, onPress, className, }: TransactionItemProps): react_jsx_runtime.JSX.Element;
1178
-
1179
- interface StoryCircleProps {
1180
- image: ImageSourcePropType | string;
1181
- size?: number;
1182
- seen?: boolean;
1183
- gradientColors?: string[];
1184
- onPress?: () => void;
1185
- className?: string;
1186
- }
1187
- declare function StoryCircle({ image, size, seen, gradientColors, onPress, className, }: StoryCircleProps): react_jsx_runtime.JSX.Element;
1188
-
1189
- interface FeedCardProps {
1190
- userName: string;
1191
- userAvatar: ImageSourcePropType | string;
1192
- timeAgo: string;
1193
- content?: string;
1194
- image?: ImageSourcePropType | string;
1195
- liked?: boolean;
1196
- likeCount?: number;
1197
- commentCount?: number;
1198
- bookmarked?: boolean;
1199
- onLike?: () => void;
1200
- onComment?: () => void;
1201
- onShare?: () => void;
1202
- onBookmark?: () => void;
1203
- onMore?: () => void;
1204
- onUserPress?: () => void;
1205
- className?: string;
1206
- }
1207
- 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;
1208
-
1209
- interface ProviderCardProps {
1210
- heroImage: ImageSourcePropType | string;
1211
- avatar: ImageSourcePropType | string;
1212
- name: string;
1213
- rating?: number;
1214
- location?: string;
1215
- description?: string;
595
+ message?: string;
596
+ variant?: 'info' | 'success' | 'warning' | 'error';
1216
597
  onPress?: () => void;
1217
- className?: string;
1218
- }
1219
- declare function ProviderCard({ heroImage, avatar, name, rating, location, description, onPress, className, }: ProviderCardProps): react_jsx_runtime.JSX.Element;
1220
-
1221
- interface Reaction {
1222
- emoji: string;
1223
- count: number;
1224
- active?: boolean;
1225
- }
1226
- interface ReactionBarProps {
1227
- reactions: Reaction[];
1228
- onReact?: (emoji: string) => void;
1229
- className?: string;
1230
- }
1231
- declare function ReactionBar({ reactions, onReact, className }: ReactionBarProps): react_jsx_runtime.JSX.Element;
598
+ onDismiss?: () => void;
599
+ icon?: ReactNode;
600
+ };
601
+ declare function NotificationBanner({ title, message, variant, onPress, onDismiss, icon }: NotificationBannerProps): react_jsx_runtime.JSX.Element;
1232
602
 
1233
- interface SearchBarProps {
1234
- placeholder?: string;
1235
- value?: string;
1236
- onChangeText?: (text: string) => void;
1237
- onSubmit?: (text: string) => void;
1238
- autoFocus?: boolean;
1239
- /** When true, renders as a pressable pill that opens full-screen overlay */
1240
- asTrigger?: boolean;
1241
- className?: string;
1242
- }
1243
- declare function SearchBar({ placeholder, value: controlledValue, onChangeText, onSubmit, autoFocus, asTrigger, className, }: SearchBarProps): react_jsx_runtime.JSX.Element;
603
+ type ProgressStepsProps = {
604
+ steps: string[];
605
+ currentStep: number;
606
+ variant?: 'dots' | 'bar' | 'numbered';
607
+ };
608
+ declare function ProgressSteps({ steps, currentStep, variant }: ProgressStepsProps): react_jsx_runtime.JSX.Element;
1244
609
 
1245
- interface FilterChip {
610
+ type SwipeAction = {
1246
611
  id: string;
1247
612
  label: string;
1248
- }
1249
- interface FilterChipRowProps {
1250
- chips: FilterChip[];
1251
- activeId?: string;
1252
- onSelect?: (id: string) => void;
1253
- className?: string;
1254
- }
1255
- declare function FilterChipRow({ chips, activeId, onSelect, className, }: FilterChipRowProps): react_jsx_runtime.JSX.Element;
613
+ color: string;
614
+ onPress: () => void;
615
+ };
616
+ type SwipeableRowProps = {
617
+ children: ReactNode;
618
+ leftActions?: SwipeAction[];
619
+ rightActions?: SwipeAction[];
620
+ };
621
+ declare function SwipeableRow({ children, leftActions, rightActions }: SwipeableRowProps): react_jsx_runtime.JSX.Element;
1256
622
 
1257
- type SectionTitleSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';
1258
- interface SectionHeaderProps {
623
+ type MediaCardProps = {
624
+ image: string;
1259
625
  title: string;
1260
- titleSize?: SectionTitleSize;
1261
- linkText?: string;
1262
- onLinkPress?: () => void;
1263
- className?: string;
1264
- }
1265
- declare function SectionHeader({ title, titleSize, linkText, onLinkPress, className, }: SectionHeaderProps): react_jsx_runtime.JSX.Element;
626
+ subtitle?: string;
627
+ overlay?: 'gradient' | 'dark' | 'none';
628
+ aspectRatio?: number;
629
+ onPress?: () => void;
630
+ badge?: string;
631
+ };
632
+ declare function MediaCard({ image, title, subtitle, overlay, aspectRatio, onPress, badge }: MediaCardProps): react_jsx_runtime.JSX.Element;
1266
633
 
1267
- interface CheckoutStep {
1268
- key: string;
1269
- label: string;
1270
- content: React.ReactNode;
1271
- }
1272
- interface CheckoutFlowProps {
1273
- steps: CheckoutStep[];
1274
- onComplete?: () => void;
1275
- nextLabel?: string;
1276
- completeLabel?: string;
1277
- className?: string;
1278
- }
1279
- declare function CheckoutFlow({ steps, onComplete, nextLabel, completeLabel, className, }: CheckoutFlowProps): react_jsx_runtime.JSX.Element;
634
+ type CarouselProps = {
635
+ children: ReactNode;
636
+ gap?: string;
637
+ snapToInterval?: number;
638
+ showIndicators?: boolean;
639
+ };
640
+ declare function Carousel({ children, gap, snapToInterval, showIndicators }: CarouselProps): react_jsx_runtime.JSX.Element;
1280
641
 
1281
- interface DateRangePickerProps {
1282
- startDate?: Date;
1283
- endDate?: Date;
1284
- onSelect?: (start: Date, end: Date | null) => void;
1285
- className?: string;
1286
- }
1287
- declare function DateRangePicker({ startDate: initialStart, endDate: initialEnd, onSelect, className, }: DateRangePickerProps): react_jsx_runtime.JSX.Element;
642
+ type PullToRefreshProps = {
643
+ children: ReactNode;
644
+ onRefresh: () => void;
645
+ refreshing?: boolean;
646
+ };
647
+ declare function PullToRefresh({ children, onRefresh, refreshing }: PullToRefreshProps): react_jsx_runtime.JSX.Element;
1288
648
 
1289
- export { type ActionItem, AnimatedFab, AnimatedView, type AnimationType, AuthButtons, type AuthButtonsProps, type AuthProvider, Avatar, type AvatarProps, Badge, type BadgeProps, BalanceDisplay, type BalanceDisplayProps, BlinkActionSheet, type BlinkActionSheetProps, BlinkMobileUIProvider, BlinkModal, BlinkPressable, type BlinkPressableProps, BlinkSwitch, type BlinkSwitchProps, BlinkText, type BlinkTextProps, BottomSheet, Button, type ButtonProps, Card, type CardBodyProps, type CardDescriptionProps, type CardFooterProps, type CardHeaderProps, type CardImageProps, CardPreview, type CardPreviewProps, type CardProps, CardScroller, type CardTitleProps, 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, Chip, type ChipProps, type ColorScheme, ConfirmationSheet, type ConfirmationSheetProps, Container, type ContainerProps, Counter, type CounterProps, DateRangePicker, type DateRangePickerProps, Divider, type DividerProps, EmptyState, FadeIn, FeatureRow, type FeatureRowProps, FeedCard, type FeedCardProps, type FilterChip, FilterChipRow, type FilterChipRowProps, type FlexStackProps, GlassCard, type GlassCardProps, GlassHeader, type GlassHeaderProps, GlassSheet, type GlassSheetProps, type GlassTab, GlassTabBar, type GlassTabBarProps, type GlassTint, GlassView, type GlassViewProps, Grid, type GridProps, HStack, Header, HeaderIcon, type HeaderIconProps, type HeaderProps, type HeaderVariant, IconButton, type IconButtonProps, IconContainer, type IconContainerProps, ImageCarousel, Input, type InputProps, type InputVariant, List, ListItem, type ListItemProps, type ListProps, ListingCard, type ListingCardProps, MultiStep, OnboardingCarousel, type OnboardingCarouselProps, OnboardingFlow, type OnboardingFlowProps, type OnboardingFlowStep, OnboardingHero, type OnboardingHeroProps, OnboardingParallax, type OnboardingParallaxProps, type OnboardingSlide, PageLoader, type PaletteName, 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, ProgressBar, type ProgressBarProps, 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, SafeWrapper, type SafeWrapperProps, ScaleIn, SearchBar, type SearchBarProps, SearchInput, type SearchInputProps, SearchPill, type SearchPillProps, Section, SectionHeader, type SectionHeaderProps, type SectionProps, type SectionTitleSize, type Segment, SegmentedControl, type SegmentedControlProps, Select, type SelectOption, type SelectProps, Skeleton, SkeletonLoader, type SkeletonProps, SlideIn, SlideUp, Slider, type SliderProps, SocialProofBar, type SocialProofBarProps, Spacer, type SpacerProps, Stack, type StackProps, 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, Tag, type TagProps, TextArea, type TextAreaProps, ThemeScroller, type ThemeScrollerProps$1 as ThemeScrollerProps, Toast, Toggle, type ToggleProps, TransactionItem, type TransactionItemProps, TrialBanner, type TrialBannerProps, TypingIndicator, type TypingIndicatorProps, VStack, VerticalReel, type VerticalReelProps, cn, palettes, toast, useActionSheet, useAnimColors, useBlinkMobileUI, useConfirmationSheet };
649
+ export { ActionSheet, type ActionSheetItem, type ActionSheetProps, AppHeader, type AppHeaderProps, type AppHeaderVariant, type AuthProvider, Badge, type BadgeProps, BlinkAccordion, type BlinkAccordionItem, type BlinkAccordionProps, Avatar as BlinkAvatar, type AvatarProps as BlinkAvatarProps, Button as BlinkButton, type ButtonProps as BlinkButtonProps, Card as BlinkCard, type CardProps as BlinkCardProps, type BlinkConfig, Input as BlinkInput, type InputProps as BlinkInputProps, type BlinkTabItem, BlinkTabs, type BlinkTabsProps, BlinkText, type BlinkTextProps, type BlinkToastContextType, type BlinkToastData, type BlinkToastOptions, BlinkToastProvider, type BlinkToastVariant, BlinkToggleGroup, type BlinkToggleGroupProps, type BlinkToggleOption, BlinkTooltip, BottomSheet, type BottomSheetProps, Carousel, type CarouselProps, ChatBubble, type ChatBubbleProps, type ChatMessage, Container, type ContainerProps, DialogProvider, Divider, type DividerProps, EmptyState, type EmptyStateProps, type FABProps, FloatingActionButton, FormField, type FormFieldProps, Grid, type GridProps, ICONS, Icon, type IconName, type IconProps, Image, KeyboardStickyFooter, type KeyboardStickyFooterProps, ListItem, type ListItemProps, LoginScreen, type LoginScreenProps, MediaCard, type MediaCardProps, NotificationBanner, type NotificationBannerProps, OnboardingCarousel, type OnboardingCarouselProps, type OnboardingStep, PageContainer, PageMainContainer, PaywallScreen, type PaywallScreenProps, type PlanOption, Pressable, ProfileHeader, type ProfileHeaderProps, ProgressSteps, type ProgressStepsProps, PullToRefresh, type PullToRefreshProps, SafeArea, type SafeAreaProps, ScreenLayout, SearchBar, type SearchBarProps, Section, type SectionProps, SepHeading, type SettingsItem, SettingsScreen, type SettingsScreenProps, type SettingsSection, Skeleton, type SkeletonProps, StepPageLayout, type StepPageProps, SubHeading, type SwipeAction, SwipeableRow, type SwipeableRowProps, TabBar, type TabBarItem, type TabBarProps, type TooltipProps, blinkConfig, dialogConfirm, showError, toast, useBlinkToast };