@blinkdotnew/mobile-ui 2.0.0-alpha.8 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,12 +1,12 @@
1
1
  import * as tamagui from 'tamagui';
2
- import { TamaguiInternalConfig, GetProps, YStack } from 'tamagui';
3
- export { Accordion, Adapt, AlertDialog, Anchor, Avatar, Button, Card, Checkbox, Circle, ColorTokens, Dialog, Fieldset, Form, GetProps, H1, H2, H3, H4, H5, H6, Input, Label, Paragraph, Popover, PortalProvider, Progress, RadioGroup, ScrollView, Select, Separator, Sheet, SizableText, SizeTokens, Slider, Spinner, Square, Switch, Tabs, Image as TamaguiImage, ListItem as TamaguiListItem, TamaguiProvider, Text, TextArea, Theme, ThemeTokens, ToggleGroup, Tooltip, TooltipSimple, Unspaced, View, VisuallyHidden, XGroup, XStack, YGroup, YStack, ZStack, styled, useMedia, useTheme, useThemeName, withStaticProperties } from 'tamagui';
4
- export { Toast, ToastProps, ToastProvider, ToastProviderProps, ToastViewport, ToastViewportProps, useToastController, useToastState } from '@tamagui/toast';
5
- import * as react from 'react';
6
- import { ReactNode } from 'react';
2
+ import { TamaguiInternalConfig, GetProps, YStack, Select, Button as Button$1 } 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';
7
5
  import * as _tamagui_core from '@tamagui/core';
8
- import * as _tamagui_web from '@tamagui/web';
9
- import * as react_jsx_runtime from 'react/jsx-runtime';
6
+ import * as React$1 from 'react';
7
+ import React__default, { ReactNode } from 'react';
8
+ import * as react_native from 'react-native';
9
+ export * from '@tamagui/lucide-icons';
10
10
 
11
11
  declare const blinkConfig: TamaguiInternalConfig;
12
12
  type BlinkConfig = typeof blinkConfig;
@@ -15,39 +15,87 @@ declare module 'tamagui' {
15
15
  }
16
16
  }
17
17
 
18
- declare const Button: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps & tamagui.TextContextStyles & {
18
+ /**
19
+ * Maps the 16 Blink platform design themes (from auto-engineer src/types/color-theme.ts)
20
+ * to Tamagui-compatible theme palettes via createThemes.
21
+ *
22
+ * Usage:
23
+ * import { createBlinkThemes, BLINK_DESIGN_THEMES } from '@blinkdotnew/mobile-ui'
24
+ * const themes = createBlinkThemes('ocean-teal')
25
+ * const config = createTamagui({ ...tamaguiDefaultConfig, themes })
26
+ */
27
+ type BlinkDesignThemeId = 'mono' | 'ocean-teal' | 'warm-amber' | 'rose-coral' | 'lavender' | 'glacier' | 'forest' | 'obsidian' | 'solar' | 'orchid' | 'indigo' | 'cosmic-night' | 'soft-pop' | 'neo-brutalism' | 'vintage-paper' | 'modern-minimal' | 'bubblegum';
28
+ interface BlinkColorPalette {
29
+ primary: string;
30
+ primary_foreground: string;
31
+ secondary: string;
32
+ secondary_foreground: string;
33
+ accent: string;
34
+ background: string;
35
+ dark_mode: string;
36
+ }
37
+ interface BlinkDesignTheme {
38
+ id: BlinkDesignThemeId;
39
+ name: string;
40
+ description: string;
41
+ palette: BlinkColorPalette;
42
+ }
43
+ declare const BLINK_DESIGN_THEMES: Record<BlinkDesignThemeId, BlinkDesignTheme>;
44
+ /**
45
+ * Generates Tamagui-compatible theme config for createThemes from a platform design theme.
46
+ *
47
+ * Usage with createThemes:
48
+ * ```ts
49
+ * import { createThemes } from '@tamagui/theme-builder'
50
+ * import { getBlinkThemePalettes } from '@blinkdotnew/mobile-ui'
51
+ *
52
+ * const palettes = getBlinkThemePalettes('ocean-teal')
53
+ * const themes = createThemes({
54
+ * base: { palette: palettes.base },
55
+ * accent: { palette: palettes.accent },
56
+ * })
57
+ * ```
58
+ */
59
+ declare function getBlinkThemePalettes(themeId: BlinkDesignThemeId): {
60
+ base: {
61
+ light: string[];
62
+ dark: string[];
63
+ };
64
+ accent: {
65
+ light: string[];
66
+ dark: string[];
67
+ };
68
+ };
69
+ /**
70
+ * All available design theme IDs for enumeration.
71
+ */
72
+ declare const BLINK_DESIGN_THEME_IDS: BlinkDesignThemeId[];
73
+ /**
74
+ * Get theme metadata (name, description) for UI pickers.
75
+ */
76
+ declare function getBlinkDesignTheme(themeId: BlinkDesignThemeId): BlinkDesignTheme | undefined;
77
+
78
+ declare const Button: tamagui.TamaguiComponent<_tamagui_core.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps & tamagui.TextContextStyles & {
19
79
  textProps?: Partial<tamagui.SizableTextProps>;
20
80
  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;
81
+ } & _tamagui_core.ThemeableProps & {
82
+ icon?: any;
83
+ iconAfter?: any;
36
84
  scaleIcon?: number;
37
85
  spaceFlex?: number | boolean;
38
86
  scaleSpace?: number;
39
87
  unstyled?: boolean;
40
- }, _tamagui_web.StackStyleBase, {
88
+ }, _tamagui_core.StackStyleBase, {
41
89
  size?: number | "lg" | "md" | "sm" | tamagui.SizeTokens | undefined;
42
90
  disabled?: boolean | undefined;
43
91
  elevation?: number | tamagui.SizeTokens | undefined;
44
- variant?: "transparent" | "default" | "primary" | "outlined" | "floating" | "destructive" | undefined;
45
92
  inset?: number | tamagui.SizeTokens | {
46
93
  top?: number;
47
94
  bottom?: number;
48
95
  left?: number;
49
96
  right?: number;
50
97
  } | null | undefined;
98
+ variant?: "transparent" | "default" | "primary" | "outlined" | "floating" | "destructive" | undefined;
51
99
  unstyled?: boolean | undefined;
52
100
  transparent?: boolean | undefined;
53
101
  fullscreen?: boolean | undefined;
@@ -62,10 +110,10 @@ declare const Button: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, _tam
62
110
  padded?: boolean | undefined;
63
111
  chromeless?: boolean | "all" | undefined;
64
112
  fullWidth?: boolean | undefined;
65
- }, _tamagui_web.StaticConfigPublic>;
113
+ }, _tamagui_core.StaticConfigPublic>;
66
114
  type ButtonProps = GetProps<typeof Button>;
67
115
 
68
- declare const BlinkText: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, tamagui.TextNonStyleProps, _tamagui_web.TextStylePropsBase, {
116
+ declare const BlinkText: tamagui.TamaguiComponent<_tamagui_core.TamaDefer, tamagui.TamaguiTextElement, tamagui.TextNonStyleProps, _tamagui_core.TextStylePropsBase, {
69
117
  size?: tamagui.FontSizeTokens | undefined;
70
118
  bold?: boolean | undefined;
71
119
  variant?: "body" | "display" | "h1" | "h2" | "h3" | "h4" | "bodySmall" | "caption" | "small" | undefined;
@@ -73,46 +121,46 @@ declare const BlinkText: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, t
73
121
  center?: boolean | undefined;
74
122
  muted?: boolean | undefined;
75
123
  secondary?: boolean | undefined;
76
- }, _tamagui_web.StaticConfigPublic>;
124
+ }, _tamagui_core.StaticConfigPublic>;
77
125
  type BlinkTextProps = GetProps<typeof BlinkText>;
78
126
 
79
- declare const CardFrame: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
127
+ declare const CardFrame: tamagui.TamaguiComponent<_tamagui_core.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_core.StackStyleBase, {
80
128
  size?: "lg" | "md" | "sm" | undefined;
81
129
  variant?: "outlined" | "flat" | "elevated" | undefined;
82
130
  pressable?: boolean | undefined;
83
- }, _tamagui_web.StaticConfigPublic>;
131
+ }, _tamagui_core.StaticConfigPublic>;
84
132
  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> & {
133
+ declare const Card: React$1.ForwardRefExoticComponent<Omit<_tamagui_core.RNTamaguiViewNonStyleProps, "size" | keyof _tamagui_core.StackStyleBase | "variant" | "pressable"> & _tamagui_core.WithThemeValues<_tamagui_core.StackStyleBase> & {
86
134
  size?: "lg" | "md" | "sm" | undefined;
87
135
  variant?: "outlined" | "flat" | "elevated" | undefined;
88
136
  pressable?: boolean | undefined;
89
- } & _tamagui_web.WithShorthands<_tamagui_web.WithThemeValues<_tamagui_web.StackStyleBase>> & _tamagui_web.WithPseudoProps<_tamagui_web.WithThemeValues<_tamagui_web.StackStyleBase> & {
137
+ } & _tamagui_core.WithShorthands<_tamagui_core.WithThemeValues<_tamagui_core.StackStyleBase>> & _tamagui_core.WithPseudoProps<_tamagui_core.WithThemeValues<_tamagui_core.StackStyleBase> & {
90
138
  size?: "lg" | "md" | "sm" | undefined;
91
139
  variant?: "outlined" | "flat" | "elevated" | undefined;
92
140
  pressable?: boolean | undefined;
93
- } & _tamagui_web.WithShorthands<_tamagui_web.WithThemeValues<_tamagui_web.StackStyleBase>>> & _tamagui_web.WithMediaProps<_tamagui_web.WithThemeShorthandsAndPseudos<_tamagui_web.StackStyleBase, {
141
+ } & _tamagui_core.WithShorthands<_tamagui_core.WithThemeValues<_tamagui_core.StackStyleBase>>> & _tamagui_core.WithMediaProps<_tamagui_core.WithThemeShorthandsAndPseudos<_tamagui_core.StackStyleBase, {
94
142
  size?: "lg" | "md" | "sm" | undefined;
95
143
  variant?: "outlined" | "flat" | "elevated" | undefined;
96
144
  pressable?: boolean | undefined;
97
- }>> & react.RefAttributes<any>> & _tamagui_web.StaticComponentObject<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
145
+ }>> & React$1.RefAttributes<tamagui.TamaguiElement>> & _tamagui_core.StaticComponentObject<_tamagui_core.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_core.StackStyleBase, {
98
146
  size?: "lg" | "md" | "sm" | undefined;
99
147
  variant?: "outlined" | "flat" | "elevated" | undefined;
100
148
  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, {
149
+ }, _tamagui_core.StaticConfigPublic> & Omit<_tamagui_core.StaticConfigPublic, "staticConfig" | "extractable" | "styleable"> & {
150
+ __tama: [_tamagui_core.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_core.StackStyleBase, {
103
151
  size?: "lg" | "md" | "sm" | undefined;
104
152
  variant?: "outlined" | "flat" | "elevated" | undefined;
105
153
  pressable?: boolean | undefined;
106
- }, _tamagui_web.StaticConfigPublic];
154
+ }, _tamagui_core.StaticConfigPublic];
107
155
  } & {
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>;
156
+ Header: tamagui.TamaguiComponent<_tamagui_core.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_core.StackStyleBase, {}, _tamagui_core.StaticConfigPublic>;
157
+ Content: tamagui.TamaguiComponent<_tamagui_core.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_core.StackStyleBase, {}, _tamagui_core.StaticConfigPublic>;
158
+ Footer: tamagui.TamaguiComponent<_tamagui_core.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_core.StackStyleBase, {}, _tamagui_core.StaticConfigPublic>;
111
159
  };
112
160
 
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;
161
+ declare const InputField: tamagui.TamaguiComponent<_tamagui_core.TamaDefer, react_native.TextInput, _tamagui_core.TamaguiComponentPropsBaseBase & react_native.TextInputProps & tamagui.InputExtraProps, _tamagui_core.TextStylePropsBase & {
162
+ readonly placeholderTextColor?: Omit<tamagui.ColorTokens | _tamagui_core.ThemeValueFallbackColor, "unset"> | undefined;
163
+ readonly selectionColor?: Omit<tamagui.ColorTokens | _tamagui_core.ThemeValueFallbackColor, "unset"> | undefined;
116
164
  }, {
117
165
  size?: tamagui.SizeTokens | undefined;
118
166
  disabled?: boolean | undefined;
@@ -125,13 +173,13 @@ declare const InputField: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, TextI
125
173
  readonly placeholderTextColor: "color";
126
174
  readonly selectionColor: "color";
127
175
  };
128
- } & _tamagui_web.StaticConfigPublic>;
176
+ } & _tamagui_core.StaticConfigPublic>;
129
177
  type InputProps = GetProps<typeof InputField> & {
130
178
  label?: string;
131
179
  error?: string;
132
180
  hint?: string;
133
181
  };
134
- declare function Input({ label, error, hint, ...props }: InputProps): react_jsx_runtime.JSX.Element;
182
+ declare function Input({ label, error, hint, ...props }: InputProps): JSX.Element;
135
183
 
136
184
  type SimpleSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
137
185
  type AvatarProps = {
@@ -139,17 +187,17 @@ type AvatarProps = {
139
187
  name?: string;
140
188
  size?: number | SimpleSize;
141
189
  };
142
- declare const Avatar: react.MemoExoticComponent<({ uri, name, size: sizeIn }: AvatarProps) => react_jsx_runtime.JSX.Element>;
190
+ declare const Avatar: React$1.MemoExoticComponent<({ uri, name, size: sizeIn }: AvatarProps) => JSX.Element>;
143
191
 
144
- declare const SubHeading: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, tamagui.TextNonStyleProps, _tamagui_web.TextStylePropsBase, {
192
+ declare const SubHeading: tamagui.TamaguiComponent<_tamagui_core.TamaDefer, tamagui.TamaguiTextElement, tamagui.TextNonStyleProps, _tamagui_core.TextStylePropsBase, {
145
193
  size?: tamagui.FontSizeTokens | undefined;
146
194
  unstyled?: boolean | undefined;
147
- }, _tamagui_web.StaticConfigPublic>;
195
+ }, _tamagui_core.StaticConfigPublic>;
148
196
  declare function SepHeading({ children }: {
149
197
  children: ReactNode;
150
- }): react_jsx_runtime.JSX.Element;
198
+ }): JSX.Element;
151
199
 
152
- declare const PageContainer: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
200
+ declare const PageContainer: tamagui.TamaguiComponent<_tamagui_core.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_core.StackStyleBase, {
153
201
  elevation?: number | tamagui.SizeTokens | undefined;
154
202
  inset?: number | tamagui.SizeTokens | {
155
203
  top?: number;
@@ -158,8 +206,8 @@ declare const PageContainer: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, an
158
206
  right?: number;
159
207
  } | null | undefined;
160
208
  fullscreen?: boolean | undefined;
161
- }, _tamagui_web.StaticConfigPublic>;
162
- declare const PageMainContainer: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
209
+ }, _tamagui_core.StaticConfigPublic>;
210
+ declare const PageMainContainer: tamagui.TamaguiComponent<_tamagui_core.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_core.StackStyleBase, {
163
211
  elevation?: number | tamagui.SizeTokens | undefined;
164
212
  inset?: number | tamagui.SizeTokens | {
165
213
  top?: number;
@@ -168,34 +216,34 @@ declare const PageMainContainer: tamagui.TamaguiComponent<_tamagui_web.TamaDefer
168
216
  right?: number;
169
217
  } | null | undefined;
170
218
  fullscreen?: boolean | undefined;
171
- }, _tamagui_web.StaticConfigPublic>;
219
+ }, _tamagui_core.StaticConfigPublic>;
172
220
 
173
221
  declare function DialogProvider({ children }: {
174
222
  children: ReactNode;
175
- }): react_jsx_runtime.JSX.Element;
223
+ }): JSX.Element;
176
224
  declare const showError: (error: unknown, title?: string) => void;
177
225
  declare const dialogConfirm: (props: {
178
226
  title?: string;
179
227
  description?: string;
180
228
  }) => Promise<boolean>;
181
229
 
182
- declare const Pressable: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {}, _tamagui_web.StaticConfigPublic>;
230
+ declare const Pressable: tamagui.TamaguiComponent<_tamagui_core.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_core.StackStyleBase, {}, _tamagui_core.StaticConfigPublic>;
183
231
 
184
- declare const Image: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, unknown, _tamagui_web.TamaguiComponentPropsBaseBase & Omit<Omit<_tamagui_web.GetFinalProps<any, _tamagui_web.StackStyleBase, {}>, "borderRadius"> & {
232
+ declare const Image: tamagui.TamaguiComponent<_tamagui_core.TamaDefer, unknown, _tamagui_core.TamaguiComponentPropsBaseBase & Omit<Omit<_tamagui_core.GetFinalProps<_tamagui_core.TamaguiComponentPropsBaseBase & react_native.ImageProps, _tamagui_core.StackStyleBase, {}>, "borderRadius"> & {
185
233
  borderRadius?: tamagui.RadiusTokens;
186
- }, "style" | "onLayout" | "width" | "height" | "resizeMode"> & {
234
+ }, "style" | "onLayout" | "height" | "width" | "resizeMode"> & {
187
235
  width?: string | number | tamagui.SizeTokens | tamagui.ThemeValueFallback;
188
236
  height?: string | number | tamagui.SizeTokens | tamagui.ThemeValueFallback;
189
- src?: string | any;
190
- resizeMode?: any;
237
+ src?: string | (react_native.ImageSourcePropType | undefined);
238
+ resizeMode?: react_native.ImageResizeMode | undefined;
191
239
  objectFit?: React.CSSProperties["objectFit"];
192
- } & Omit<tamagui.StackProps, string | number | symbol>, _tamagui_web.StackStyleBase, {}, _tamagui_web.StaticConfigPublic>;
240
+ } & Omit<tamagui.StackProps, "theme" | "debug" | "space" | "zIndex" | "bottom" | "backgroundColor" | "content" | "alignContent" | "flexGrow" | "alignItems" | "justifyContent" | "left" | "margin" | "maxHeight" | "maxWidth" | "marginBottom" | "minHeight" | "minWidth" | "marginLeft" | "marginRight" | "marginTop" | "marginHorizontal" | "marginVertical" | "padding" | "paddingBottom" | "paddingLeft" | "paddingRight" | "paddingTop" | "paddingHorizontal" | "paddingVertical" | "right" | "borderRadius" | "userSelect" | "alignSelf" | "flexShrink" | "top" | "transform" | "background" | "borderColor" | "outlineColor" | "shadowColor" | "hitSlop" | "pointerEvents" | "display" | "children" | "target" | "htmlFor" | "asChild" | "dangerouslySetInnerHTML" | "disabled" | "className" | "themeShallow" | "themeInverse" | "id" | "tag" | "group" | "untilMeasured" | "componentName" | "tabIndex" | "role" | "disableOptimization" | "forceStyle" | "disableClassName" | "testID" | "nativeID" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "aria-label" | "accessibilityRole" | "accessibilityState" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "accessibilityHint" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "onAccessibilityAction" | "importantForAccessibility" | "aria-hidden" | "aria-modal" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "accessibilityLanguage" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "x" | "y" | "perspective" | "scale" | "scaleX" | "scaleY" | "skewX" | "skewY" | "matrix" | "rotate" | "rotateY" | "rotateX" | "rotateZ" | "transition" | "textWrap" | "contain" | "touchAction" | "cursor" | "outlineOffset" | "outlineStyle" | "outlineWidth" | "scrollbarWidth" | "transformOrigin" | "filter" | "mixBlendMode" | "backgroundImage" | "backgroundOrigin" | "backgroundPosition" | "backgroundRepeat" | "backgroundSize" | "backgroundClip" | "backgroundBlendMode" | "backgroundAttachment" | "clipPath" | "caretColor" | "transformStyle" | "mask" | "maskImage" | "textEmphasis" | "borderImage" | "float" | "overflowBlock" | "overflowInline" | "maskBorder" | "maskBorderMode" | "maskBorderOutset" | "maskBorderRepeat" | "maskBorderSlice" | "maskBorderSource" | "maskBorderWidth" | "maskClip" | "maskComposite" | "maskMode" | "maskOrigin" | "maskPosition" | "maskRepeat" | "maskSize" | "maskType" | "gridRow" | "gridRowEnd" | "gridRowGap" | "gridRowStart" | "gridColumn" | "gridColumnEnd" | "gridColumnGap" | "gridColumnStart" | "gridTemplateColumns" | "gridTemplateAreas" | "backdropFilter" | "containerType" | "blockSize" | "inlineSize" | "minBlockSize" | "maxBlockSize" | "objectFit" | "verticalAlign" | "minInlineSize" | "maxInlineSize" | "borderInlineColor" | "borderInlineStartColor" | "borderInlineEndColor" | "borderBlockWidth" | "borderBlockStartWidth" | "borderBlockEndWidth" | "borderInlineWidth" | "borderInlineStartWidth" | "borderInlineEndWidth" | "borderBlockStyle" | "borderBlockStartStyle" | "borderBlockEndStyle" | "borderInlineStyle" | "borderInlineStartStyle" | "borderInlineEndStyle" | "marginBlock" | "marginBlockStart" | "marginBlockEnd" | "marginInline" | "marginInlineStart" | "marginInlineEnd" | "paddingBlock" | "paddingBlockStart" | "paddingBlockEnd" | "paddingInline" | "paddingInlineStart" | "paddingInlineEnd" | "insetBlock" | "insetBlockStart" | "insetBlockEnd" | "insetInline" | "insetInlineStart" | "insetInlineEnd" | "spaceDirection" | "separator" | "animation" | "animateOnly" | "animatePresence" | "passThrough" | "backfaceVisibility" | "borderBlockColor" | "borderBlockEndColor" | "borderBlockStartColor" | "borderBottomColor" | "borderBottomEndRadius" | "borderBottomLeftRadius" | "borderBottomRightRadius" | "borderBottomStartRadius" | "borderCurve" | "borderEndColor" | "borderEndEndRadius" | "borderEndStartRadius" | "borderLeftColor" | "borderRightColor" | "borderStartColor" | "borderStartEndRadius" | "borderStartStartRadius" | "borderStyle" | "borderTopColor" | "borderTopEndRadius" | "borderTopLeftRadius" | "borderTopRightRadius" | "borderTopStartRadius" | "opacity" | "isolation" | "boxShadow" | "aspectRatio" | "borderBottomWidth" | "borderEndWidth" | "borderLeftWidth" | "borderRightWidth" | "borderStartWidth" | "borderTopWidth" | "borderWidth" | "end" | "flex" | "flexBasis" | "flexDirection" | "rowGap" | "gap" | "columnGap" | "flexWrap" | "height" | "marginEnd" | "marginStart" | "overflow" | "paddingEnd" | "paddingStart" | "position" | "start" | "width" | "direction" | "inset" | "shadowOffset" | "shadowOpacity" | "shadowRadius" | "transformMatrix" | "rotation" | "translateX" | "translateY" | `$${string}` | `$${number}` | _tamagui_core.GroupMediaKeys | `$theme-${string}` | `$theme-${number}` | keyof _tamagui_core.WithPseudoProps<_tamagui_core.WithThemeValues<_tamagui_core.StackStyleBase> & _tamagui_core.WithShorthands<_tamagui_core.WithThemeValues<_tamagui_core.StackStyleBase>>> | "source" | "onError" | "onLoad" | "onLoadEnd" | "onLoadStart" | "progressiveRenderingEnabled" | "resizeMode" | "resizeMethod" | "src" | "srcSet" | "loadingIndicatorSource" | "defaultSource" | "alt" | "crossOrigin" | "tintColor" | "referrerPolicy" | "blurRadius" | "capInsets" | "onProgress" | "onPartialLoad" | "fadeDuration">, _tamagui_core.StackStyleBase, {}, _tamagui_core.StaticConfigPublic>;
193
241
 
194
242
  type BadgeProps = {
195
243
  children: ReactNode;
196
244
  variant?: 'default' | 'success' | 'warning' | 'error' | 'info';
197
245
  };
198
- declare function Badge({ children, variant }: BadgeProps): react_jsx_runtime.JSX.Element;
246
+ declare function Badge({ children, variant }: BadgeProps): JSX.Element;
199
247
 
200
248
  declare const ICONS: {
201
249
  readonly home: "⌂";
@@ -250,7 +298,7 @@ type IconProps = {
250
298
  size?: number;
251
299
  color?: string;
252
300
  };
253
- declare function Icon({ name, size, color }: IconProps): react_jsx_runtime.JSX.Element;
301
+ declare function Icon({ name, size, color }: IconProps): JSX.Element;
254
302
 
255
303
  type BlinkAccordionItem = {
256
304
  id: string;
@@ -262,7 +310,7 @@ type BlinkAccordionProps = {
262
310
  defaultOpen?: string[];
263
311
  allowMultiple?: boolean;
264
312
  };
265
- declare function BlinkAccordion({ items, defaultOpen, allowMultiple }: BlinkAccordionProps): react_jsx_runtime.JSX.Element;
313
+ declare function BlinkAccordion({ items, defaultOpen, allowMultiple }: BlinkAccordionProps): JSX.Element;
266
314
 
267
315
  type BlinkTabItem = {
268
316
  key: string;
@@ -274,7 +322,7 @@ type BlinkTabsProps = {
274
322
  onTabChange?: (key: string) => void;
275
323
  variant?: 'underline' | 'pill';
276
324
  };
277
- declare function BlinkTabs({ tabs, activeTab, onTabChange, variant }: BlinkTabsProps): react_jsx_runtime.JSX.Element;
325
+ declare function BlinkTabs({ tabs, activeTab, onTabChange, variant }: BlinkTabsProps): JSX.Element;
278
326
 
279
327
  type BlinkToggleOption = {
280
328
  value: string;
@@ -286,22 +334,28 @@ type BlinkToggleGroupProps = {
286
334
  onValueChange: (value: string) => void;
287
335
  size?: 'sm' | 'md' | 'lg';
288
336
  };
289
- declare function BlinkToggleGroup({ options, value, onValueChange, size }: BlinkToggleGroupProps): react_jsx_runtime.JSX.Element;
337
+ declare function BlinkToggleGroup({ options, value, onValueChange, size }: BlinkToggleGroupProps): JSX.Element;
290
338
 
291
339
  type BlinkToastVariant = 'default' | 'success' | 'error' | 'warning';
292
340
  type BlinkToastData = {
293
341
  id: string;
294
- message: string;
342
+ title: string;
343
+ message?: string;
344
+ variant?: BlinkToastVariant;
345
+ duration?: number;
346
+ };
347
+ type BlinkToastOptions = {
348
+ message?: string;
295
349
  variant?: BlinkToastVariant;
296
350
  duration?: number;
297
351
  };
298
352
  type BlinkToastContextType = {
299
- show: (message: string, variant?: BlinkToastVariant, duration?: number) => void;
353
+ show: (title: string, options?: BlinkToastOptions) => void;
300
354
  };
301
- declare const toast: (message: string, variant?: BlinkToastVariant, duration?: number) => void;
355
+ declare const toast: (title: string, options?: BlinkToastOptions | BlinkToastVariant) => void;
302
356
  declare function BlinkToastProvider({ children }: {
303
357
  children: ReactNode;
304
- }): react_jsx_runtime.JSX.Element;
358
+ }): JSX.Element;
305
359
  declare function useBlinkToast(): BlinkToastContextType;
306
360
 
307
361
  type FormFieldProps = {
@@ -311,14 +365,29 @@ type FormFieldProps = {
311
365
  required?: boolean;
312
366
  children: ReactNode;
313
367
  };
314
- declare function FormField({ label, error, helperText, required, children }: FormFieldProps): react_jsx_runtime.JSX.Element;
368
+ declare function FormField({ label, error, helperText, required, children }: FormFieldProps): JSX.Element;
315
369
 
316
370
  type TooltipProps = {
317
371
  content: string;
318
372
  children: ReactNode;
319
373
  side?: 'top' | 'bottom' | 'left' | 'right';
320
374
  };
321
- declare function BlinkTooltip({ content, children, side }: TooltipProps): react_jsx_runtime.JSX.Element;
375
+ declare function BlinkTooltip({ content, children, side }: TooltipProps): JSX.Element;
376
+
377
+ declare function GoogleLogo({ size }: {
378
+ size?: number;
379
+ }): JSX.Element;
380
+ declare function AppleLogo({ size, color }: {
381
+ size?: number;
382
+ color?: string;
383
+ }): JSX.Element;
384
+ declare function GitHubLogo({ size, color }: {
385
+ size?: number;
386
+ color?: string;
387
+ }): JSX.Element;
388
+ declare function MicrosoftLogo({ size }: {
389
+ size?: number;
390
+ }): JSX.Element;
322
391
 
323
392
  type StepPageProps = {
324
393
  title: string;
@@ -326,9 +395,9 @@ type StepPageProps = {
326
395
  children: ReactNode;
327
396
  bottom?: ReactNode;
328
397
  };
329
- declare function StepPageLayout({ title, description, children, bottom }: StepPageProps): react_jsx_runtime.JSX.Element;
398
+ declare function StepPageLayout({ title, description, children, bottom }: StepPageProps): JSX.Element;
330
399
 
331
- declare const ScreenLayout: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_web.StackStyleBase, {
400
+ declare const ScreenLayout: tamagui.TamaguiComponent<_tamagui_core.TamaDefer, tamagui.TamaguiElement, _tamagui_core.RNTamaguiViewNonStyleProps, _tamagui_core.StackStyleBase, {
332
401
  elevation?: number | tamagui.SizeTokens | undefined;
333
402
  inset?: number | tamagui.SizeTokens | {
334
403
  top?: number;
@@ -340,7 +409,7 @@ declare const ScreenLayout: tamagui.TamaguiComponent<_tamagui_web.TamaDefer, any
340
409
  padded?: boolean | undefined;
341
410
  centered?: boolean | undefined;
342
411
  safe?: boolean | undefined;
343
- }, _tamagui_web.StaticConfigPublic>;
412
+ }, _tamagui_core.StaticConfigPublic>;
344
413
 
345
414
  type SectionProps = {
346
415
  title?: string;
@@ -348,7 +417,7 @@ type SectionProps = {
348
417
  children: ReactNode;
349
418
  gap?: GetProps<typeof YStack>['gap'];
350
419
  };
351
- declare function Section({ title, description, children, gap }: SectionProps): react_jsx_runtime.JSX.Element;
420
+ declare function Section({ title, description, children, gap }: SectionProps): JSX.Element;
352
421
 
353
422
  type ListItemProps = {
354
423
  icon?: ReactNode;
@@ -357,24 +426,24 @@ type ListItemProps = {
357
426
  right?: ReactNode;
358
427
  onPress?: () => void;
359
428
  };
360
- declare function ListItem({ icon, title, subtitle, right, onPress }: ListItemProps): react_jsx_runtime.JSX.Element;
429
+ declare function ListItem({ icon, title, subtitle, right, onPress }: ListItemProps): JSX.Element;
361
430
 
362
431
  type DividerProps = {
363
432
  label?: string;
364
433
  };
365
- declare function Divider({ label }: DividerProps): react_jsx_runtime.JSX.Element;
434
+ declare function Divider({ label }: DividerProps): JSX.Element;
366
435
 
367
436
  type KeyboardStickyFooterProps = {
368
437
  children: ReactNode;
369
438
  offset?: number;
370
439
  };
371
- declare function KeyboardStickyFooter({ children, offset }: KeyboardStickyFooterProps): react_jsx_runtime.JSX.Element;
440
+ declare function KeyboardStickyFooter({ children, offset }: KeyboardStickyFooterProps): JSX.Element;
372
441
 
373
442
  type SafeAreaProps = {
374
443
  children: ReactNode;
375
444
  edges?: ('top' | 'bottom' | 'left' | 'right')[];
376
445
  };
377
- declare function SafeArea({ children, edges }: SafeAreaProps): react_jsx_runtime.JSX.Element;
446
+ declare function SafeArea({ children, edges }: SafeAreaProps): JSX.Element;
378
447
 
379
448
  type GridProps = {
380
449
  children: ReactNode;
@@ -387,43 +456,97 @@ type ContainerProps = {
387
456
  centered?: boolean;
388
457
  padding?: string;
389
458
  };
390
- declare function Grid({ children, columns, gap }: GridProps): react_jsx_runtime.JSX.Element;
391
- declare function Container({ children, maxWidth, centered, padding }: ContainerProps): react_jsx_runtime.JSX.Element;
459
+ declare function Grid({ children, columns, gap }: GridProps): JSX.Element;
460
+ declare function Container({ children, maxWidth, centered, padding }: ContainerProps): JSX.Element;
392
461
 
393
462
  type PlanOption = {
394
463
  id: string;
395
464
  name: string;
396
465
  price: string;
397
466
  period: string;
398
- features: string[];
467
+ tagline?: string;
468
+ pricePerWeek?: string;
469
+ savings?: string;
399
470
  popular?: boolean;
471
+ trial?: string;
472
+ features?: string[];
473
+ };
474
+ type PaywallVariant = 'default' | 'social-proof' | 'comparison' | 'creator-sheet' | 'immersive-dark';
475
+ type PaywallFeature = string | {
476
+ title: string;
477
+ description?: string;
478
+ icon?: ReactNode;
479
+ };
480
+ type PaywallComparisonRow = {
481
+ label: string;
482
+ free?: boolean;
483
+ premium?: boolean;
484
+ };
485
+ type PaywallTestimonial = {
486
+ quote: string;
487
+ author: string;
488
+ meta?: string;
489
+ };
490
+ type PaywallCreator = {
491
+ name: string;
492
+ meta?: string;
493
+ avatar?: ReactNode;
400
494
  };
401
495
  type PaywallScreenProps = {
496
+ variant?: PaywallVariant;
497
+ eyebrow?: string;
402
498
  title?: string;
403
499
  subtitle?: string;
500
+ features?: PaywallFeature[];
404
501
  plans: PlanOption[];
405
502
  selectedPlan?: string;
406
503
  onSelectPlan?: (planId: string) => void;
407
504
  onContinue?: () => void;
505
+ onClose?: () => void;
408
506
  onRestore?: () => void;
507
+ onTerms?: () => void;
508
+ onPrivacy?: () => void;
409
509
  continueLabel?: string;
510
+ reassurance?: string;
511
+ hero?: ReactNode;
512
+ socialProof?: string;
513
+ countdownMinutes?: number;
514
+ badge?: string;
515
+ comparisonRows?: PaywallComparisonRow[];
516
+ testimonials?: PaywallTestimonial[];
517
+ creator?: PaywallCreator;
518
+ topSlot?: ReactNode;
519
+ footerSlot?: ReactNode;
520
+ trustBadges?: {
521
+ icon?: ReactNode;
522
+ label: string;
523
+ }[];
410
524
  };
411
- declare function PaywallScreen({ title, subtitle, plans, selectedPlan, onSelectPlan, onContinue, onRestore, continueLabel, }: PaywallScreenProps): react_jsx_runtime.JSX.Element;
525
+ declare function PaywallScreen({ variant, eyebrow, title, subtitle, features, plans, selectedPlan, onSelectPlan, onContinue, onClose, onRestore, onTerms, onPrivacy, continueLabel, reassurance, hero, socialProof, countdownMinutes, badge, comparisonRows, testimonials, creator, topSlot, footerSlot, trustBadges, }: PaywallScreenProps): JSX.Element;
412
526
 
527
+ type OnboardingVariant = 'default' | 'calm-gradient' | 'card-tilt' | 'editorial' | 'selection-step' | 'permission-prompt';
413
528
  type OnboardingStep = {
414
529
  title: string;
415
530
  description: string;
416
531
  icon?: ReactNode;
532
+ hero?: ReactNode;
533
+ eyebrow?: string;
534
+ ctaLabel?: string;
535
+ background?: ReactNode;
417
536
  };
418
537
  type OnboardingCarouselProps = {
419
538
  steps: OnboardingStep[];
539
+ variant?: OnboardingVariant;
540
+ brand?: ReactNode;
541
+ topLeading?: ReactNode;
420
542
  onComplete?: () => void;
421
543
  onSkip?: () => void;
422
544
  completeLabel?: string;
423
545
  skipLabel?: string;
424
546
  nextLabel?: string;
547
+ footerSlot?: ReactNode;
425
548
  };
426
- declare function OnboardingCarousel({ steps, onComplete, onSkip, completeLabel, skipLabel, nextLabel, }: OnboardingCarouselProps): react_jsx_runtime.JSX.Element;
549
+ declare function OnboardingCarousel({ steps, variant, brand, topLeading, onComplete, onSkip, completeLabel, skipLabel, nextLabel, footerSlot, }: OnboardingCarouselProps): JSX.Element;
427
550
 
428
551
  type ChatMessage = {
429
552
  id: string;
@@ -437,7 +560,7 @@ type ChatBubbleProps = {
437
560
  message: ChatMessage;
438
561
  showAvatar?: boolean;
439
562
  };
440
- declare function ChatBubble({ message, showAvatar }: ChatBubbleProps): react_jsx_runtime.JSX.Element;
563
+ declare function ChatBubble({ message, showAvatar }: ChatBubbleProps): JSX.Element;
441
564
 
442
565
  type SettingsItem = {
443
566
  id: string;
@@ -458,7 +581,7 @@ type SettingsScreenProps = {
458
581
  sections: SettingsSection[];
459
582
  header?: ReactNode;
460
583
  };
461
- declare function SettingsScreen({ sections, header }: SettingsScreenProps): react_jsx_runtime.JSX.Element;
584
+ declare function SettingsScreen({ sections, header }: SettingsScreenProps): JSX.Element;
462
585
 
463
586
  type EmptyStateProps = {
464
587
  icon?: ReactNode;
@@ -467,7 +590,7 @@ type EmptyStateProps = {
467
590
  actionLabel?: string;
468
591
  onAction?: () => void;
469
592
  };
470
- declare function EmptyState({ icon, title, description, actionLabel, onAction }: EmptyStateProps): react_jsx_runtime.JSX.Element;
593
+ declare function EmptyState({ icon, title, description, actionLabel, onAction }: EmptyStateProps): JSX.Element;
471
594
 
472
595
  type ProfileHeaderProps = {
473
596
  name: string;
@@ -479,7 +602,7 @@ type ProfileHeaderProps = {
479
602
  }[];
480
603
  actions?: ReactNode;
481
604
  };
482
- declare function ProfileHeader({ name, subtitle, avatar, stats, actions }: ProfileHeaderProps): react_jsx_runtime.JSX.Element;
605
+ declare function ProfileHeader({ name, subtitle, avatar, stats, actions }: ProfileHeaderProps): JSX.Element;
483
606
 
484
607
  type AppHeaderVariant = 'simple' | 'back' | 'profile' | 'centered';
485
608
  type AppHeaderProps = {
@@ -493,7 +616,7 @@ type AppHeaderProps = {
493
616
  transparent?: boolean;
494
617
  borderless?: boolean;
495
618
  };
496
- declare function AppHeader({ title, subtitle, variant, onBack, avatar, left, right, transparent, borderless }: AppHeaderProps): react_jsx_runtime.JSX.Element;
619
+ declare function AppHeader({ title, subtitle, variant, onBack, avatar, left, right, transparent, borderless }: AppHeaderProps): JSX.Element;
497
620
 
498
621
  type BottomSheetProps = {
499
622
  open: boolean;
@@ -504,19 +627,29 @@ type BottomSheetProps = {
504
627
  dismissOnSnapToBottom?: boolean;
505
628
  showHandle?: boolean;
506
629
  showClose?: boolean;
630
+ zIndex?: number;
507
631
  };
508
- declare function BottomSheet({ open, onOpenChange, title, children, snapPoints, dismissOnSnapToBottom, showHandle, showClose }: BottomSheetProps): react_jsx_runtime.JSX.Element;
632
+ declare function BottomSheet({ open, onOpenChange, title, children, snapPoints, dismissOnSnapToBottom, showHandle, showClose, zIndex }: BottomSheetProps): JSX.Element;
509
633
 
634
+ type AuthProviderBrand = 'google' | 'apple' | 'github' | 'microsoft' | 'custom';
635
+ type LoginScreenVariant = 'default' | 'editorial' | 'centered-card';
510
636
  type AuthProvider = {
511
637
  id: string;
512
638
  name: string;
513
639
  icon?: ReactNode;
640
+ brand?: AuthProviderBrand;
641
+ description?: string;
514
642
  };
515
643
  type LoginScreenProps = {
644
+ variant?: LoginScreenVariant;
516
645
  title?: string;
517
646
  subtitle?: string;
518
647
  logo?: ReactNode;
519
648
  providers?: AuthProvider[];
649
+ hero?: ReactNode;
650
+ backgroundSlot?: ReactNode;
651
+ footerSlot?: ReactNode;
652
+ providerButtonStyle?: 'neutral' | 'brand';
520
653
  onProviderPress?: (id: string) => void;
521
654
  showEmailForm?: boolean;
522
655
  onEmailSubmit?: (email: string, password: string) => void;
@@ -526,7 +659,7 @@ type LoginScreenProps = {
526
659
  onPrivacy?: () => void;
527
660
  loading?: boolean;
528
661
  };
529
- declare function LoginScreen({ title, subtitle, logo, providers, onProviderPress, showEmailForm, onEmailSubmit, onForgotPassword, onCreateAccount, onTerms, onPrivacy, loading }: LoginScreenProps): react_jsx_runtime.JSX.Element;
662
+ declare function LoginScreen({ variant, title, subtitle, logo, providers, hero, backgroundSlot, footerSlot, providerButtonStyle, onProviderPress, showEmailForm, onEmailSubmit, onForgotPassword, onCreateAccount, onTerms, onPrivacy, loading, }: LoginScreenProps): JSX.Element;
530
663
 
531
664
  type TabBarItem = {
532
665
  id: string;
@@ -539,7 +672,7 @@ type TabBarProps = {
539
672
  onTabPress: (id: string) => void;
540
673
  showLabels?: boolean;
541
674
  };
542
- declare function TabBar({ tabs, activeTab, onTabPress, showLabels }: TabBarProps): react_jsx_runtime.JSX.Element;
675
+ declare function TabBar({ tabs, activeTab, onTabPress, showLabels }: TabBarProps): JSX.Element;
543
676
 
544
677
  type SearchBarProps = {
545
678
  value: string;
@@ -549,7 +682,7 @@ type SearchBarProps = {
549
682
  onCancel?: () => void;
550
683
  autoFocus?: boolean;
551
684
  };
552
- declare function SearchBar({ value, onChangeText, placeholder, onFilter, onCancel, autoFocus }: SearchBarProps): react_jsx_runtime.JSX.Element;
685
+ declare function SearchBar({ value, onChangeText, placeholder, onFilter, onCancel, autoFocus }: SearchBarProps): JSX.Element;
553
686
 
554
687
  type FABProps = {
555
688
  icon?: ReactNode;
@@ -558,7 +691,7 @@ type FABProps = {
558
691
  position?: 'bottom-right' | 'bottom-center' | 'bottom-left';
559
692
  size?: 'sm' | 'md' | 'lg';
560
693
  };
561
- declare function FloatingActionButton({ icon, label, onPress, position, size }: FABProps): react_jsx_runtime.JSX.Element;
694
+ declare function FloatingActionButton({ icon, label, onPress, position, size }: FABProps): JSX.Element;
562
695
 
563
696
  type ActionSheetItem = {
564
697
  id: string;
@@ -573,8 +706,9 @@ type ActionSheetProps = {
573
706
  items: ActionSheetItem[];
574
707
  onSelect: (id: string) => void;
575
708
  cancelLabel?: string;
709
+ zIndex?: number;
576
710
  };
577
- declare function ActionSheet({ open, onOpenChange, title, items, onSelect, cancelLabel }: ActionSheetProps): react_jsx_runtime.JSX.Element;
711
+ declare function ActionSheet({ open, onOpenChange, title, items, onSelect, cancelLabel, zIndex }: ActionSheetProps): JSX.Element;
578
712
 
579
713
  type SkeletonProps = {
580
714
  width?: number | string;
@@ -582,7 +716,7 @@ type SkeletonProps = {
582
716
  borderRadius?: number;
583
717
  variant?: 'text' | 'circular' | 'rectangular';
584
718
  };
585
- declare function Skeleton({ width, height, borderRadius, variant }: SkeletonProps): react_jsx_runtime.JSX.Element;
719
+ declare function Skeleton({ width, height, borderRadius, variant }: SkeletonProps): JSX.Element;
586
720
 
587
721
  type NotificationBannerProps = {
588
722
  title: string;
@@ -592,14 +726,14 @@ type NotificationBannerProps = {
592
726
  onDismiss?: () => void;
593
727
  icon?: ReactNode;
594
728
  };
595
- declare function NotificationBanner({ title, message, variant, onPress, onDismiss, icon }: NotificationBannerProps): react_jsx_runtime.JSX.Element;
729
+ declare function NotificationBanner({ title, message, variant, onPress, onDismiss, icon }: NotificationBannerProps): JSX.Element;
596
730
 
597
731
  type ProgressStepsProps = {
598
732
  steps: string[];
599
733
  currentStep: number;
600
734
  variant?: 'dots' | 'bar' | 'numbered';
601
735
  };
602
- declare function ProgressSteps({ steps, currentStep, variant }: ProgressStepsProps): react_jsx_runtime.JSX.Element;
736
+ declare function ProgressSteps({ steps, currentStep, variant }: ProgressStepsProps): JSX.Element;
603
737
 
604
738
  type SwipeAction = {
605
739
  id: string;
@@ -612,7 +746,7 @@ type SwipeableRowProps = {
612
746
  leftActions?: SwipeAction[];
613
747
  rightActions?: SwipeAction[];
614
748
  };
615
- declare function SwipeableRow({ children, leftActions, rightActions }: SwipeableRowProps): react_jsx_runtime.JSX.Element;
749
+ declare function SwipeableRow({ children, leftActions, rightActions }: SwipeableRowProps): JSX.Element;
616
750
 
617
751
  type MediaCardProps = {
618
752
  image: string;
@@ -623,7 +757,7 @@ type MediaCardProps = {
623
757
  onPress?: () => void;
624
758
  badge?: string;
625
759
  };
626
- declare function MediaCard({ image, title, subtitle, overlay, aspectRatio, onPress, badge }: MediaCardProps): react_jsx_runtime.JSX.Element;
760
+ declare function MediaCard({ image, title, subtitle, overlay, aspectRatio, onPress, badge }: MediaCardProps): JSX.Element;
627
761
 
628
762
  type CarouselProps = {
629
763
  children: ReactNode;
@@ -631,13 +765,356 @@ type CarouselProps = {
631
765
  snapToInterval?: number;
632
766
  showIndicators?: boolean;
633
767
  };
634
- declare function Carousel({ children, gap, snapToInterval, showIndicators }: CarouselProps): react_jsx_runtime.JSX.Element;
768
+ declare function Carousel({ children, gap, snapToInterval, showIndicators }: CarouselProps): JSX.Element;
635
769
 
636
770
  type PullToRefreshProps = {
637
771
  children: ReactNode;
638
772
  onRefresh: () => void;
639
773
  refreshing?: boolean;
640
774
  };
641
- declare function PullToRefresh({ children, onRefresh, refreshing }: PullToRefreshProps): react_jsx_runtime.JSX.Element;
775
+ declare function PullToRefresh({ children, onRefresh, refreshing }: PullToRefreshProps): JSX.Element;
776
+
777
+ type ProductCardProps = {
778
+ image: string;
779
+ title: string;
780
+ price: string;
781
+ originalPrice?: string;
782
+ rating?: number;
783
+ reviewCount?: number;
784
+ badge?: string;
785
+ onPress?: () => void;
786
+ onAddToCart?: () => void;
787
+ variant?: 'vertical' | 'horizontal';
788
+ };
789
+ declare function ProductCard({ image, title, price, originalPrice, rating, reviewCount, badge, onPress, onAddToCart, variant }: ProductCardProps): JSX.Element;
790
+
791
+ type PricingPlan = {
792
+ id: string;
793
+ name: string;
794
+ price: string;
795
+ period?: string;
796
+ description?: string;
797
+ features: {
798
+ label: string;
799
+ included: boolean;
800
+ }[];
801
+ popular?: boolean;
802
+ cta?: string;
803
+ trial?: string;
804
+ };
805
+ type PricingTableProps = {
806
+ plans: PricingPlan[];
807
+ selectedPlan?: string;
808
+ onSelectPlan?: (planId: string) => void;
809
+ annual?: boolean;
810
+ onToggleBilling?: (annual: boolean) => void;
811
+ onContinue?: () => void;
812
+ continueLabel?: string;
813
+ reassurance?: string;
814
+ };
815
+ declare function PricingTable({ plans, selectedPlan, onSelectPlan, annual, onToggleBilling, onContinue, continueLabel, reassurance }: PricingTableProps): JSX.Element;
816
+
817
+ type CountdownBannerProps = {
818
+ endTime?: Date;
819
+ minutes?: number;
820
+ label?: string;
821
+ onExpire?: () => void;
822
+ variant?: 'banner' | 'compact' | 'badge';
823
+ };
824
+ declare function CountdownBanner({ endTime, minutes, label, onExpire, variant }: CountdownBannerProps): JSX.Element | null;
825
+
826
+ type TestimonialCardProps = {
827
+ quote: string;
828
+ author: string;
829
+ role?: string;
830
+ avatar?: string;
831
+ rating?: number;
832
+ variant?: 'card' | 'minimal' | 'featured';
833
+ };
834
+ declare function TestimonialCard({ quote, author, role, avatar, rating, variant }: TestimonialCardProps): JSX.Element;
835
+
836
+ type ConfirmDialogProps = {
837
+ open: boolean;
838
+ onOpenChange: (open: boolean) => void;
839
+ title: string;
840
+ description?: string;
841
+ confirmLabel?: string;
842
+ cancelLabel?: string;
843
+ onConfirm?: () => void;
844
+ onCancel?: () => void;
845
+ destructive?: boolean;
846
+ icon?: ReactNode;
847
+ };
848
+ declare function ConfirmDialog({ open, onOpenChange, title, description, confirmLabel, cancelLabel, onConfirm, onCancel, destructive, icon, }: ConfirmDialogProps): JSX.Element;
849
+
850
+ type ChipProps = {
851
+ label: string;
852
+ selected?: boolean;
853
+ onPress?: () => void;
854
+ onRemove?: () => void;
855
+ variant?: 'filled' | 'outlined';
856
+ size?: 'sm' | 'md' | 'lg';
857
+ icon?: ReactNode;
858
+ color?: string;
859
+ };
860
+ type ChipGroupProps = {
861
+ chips: {
862
+ id: string;
863
+ label: string;
864
+ icon?: ReactNode;
865
+ }[];
866
+ selected?: string[];
867
+ onSelectionChange?: (selected: string[]) => void;
868
+ multiSelect?: boolean;
869
+ variant?: 'filled' | 'outlined';
870
+ size?: 'sm' | 'md' | 'lg';
871
+ };
872
+ declare function Chip({ label, selected, onPress, onRemove, variant, size, icon, color }: ChipProps): JSX.Element;
873
+ declare function ChipGroup({ chips, selected, onSelectionChange, multiSelect, variant, size }: ChipGroupProps): JSX.Element;
874
+
875
+ type OTPInputProps = {
876
+ length?: number;
877
+ value?: string;
878
+ onChange?: (value: string) => void;
879
+ onComplete?: (code: string) => void;
880
+ error?: boolean;
881
+ autoFocus?: boolean;
882
+ secureEntry?: boolean;
883
+ };
884
+ declare function OTPInput({ length, value, onChange, onComplete, error, autoFocus, secureEntry }: OTPInputProps): JSX.Element;
885
+
886
+ type PasswordInputProps = {
887
+ value?: string;
888
+ onChangeText?: (value: string) => void;
889
+ placeholder?: string;
890
+ label?: string;
891
+ error?: string;
892
+ size?: '$3' | '$4' | '$5';
893
+ strengthIndicator?: boolean;
894
+ };
895
+ declare function PasswordInput({ value, onChangeText, placeholder, label, error, size, strengthIndicator }: PasswordInputProps): JSX.Element;
896
+
897
+ type AvatarGroupProps = {
898
+ avatars: {
899
+ uri?: string;
900
+ name?: string;
901
+ color?: string;
902
+ }[];
903
+ max?: number;
904
+ size?: number;
905
+ overlap?: number;
906
+ };
907
+ declare function AvatarGroup({ avatars, max, size, overlap }: AvatarGroupProps): JSX.Element;
908
+
909
+ type SwipeCardItem = {
910
+ id: string;
911
+ [key: string]: any;
912
+ };
913
+ type SwipeCardsProps<T extends SwipeCardItem> = {
914
+ items: T[];
915
+ renderCard: (item: T) => ReactNode;
916
+ onSwipeLeft?: (item: T) => void;
917
+ onSwipeRight?: (item: T) => void;
918
+ onEmpty?: () => void;
919
+ leftLabel?: string;
920
+ rightLabel?: string;
921
+ emptyMessage?: string;
922
+ };
923
+ declare function SwipeCards<T extends SwipeCardItem>({ items, renderCard, onSwipeLeft, onSwipeRight, onEmpty, leftLabel, rightLabel, emptyMessage, }: SwipeCardsProps<T>): JSX.Element;
924
+
925
+ type GlassCardProps = {
926
+ children: ReactNode;
927
+ intensity?: 'light' | 'medium' | 'heavy';
928
+ tint?: 'light' | 'dark';
929
+ borderRadius?: number | string;
930
+ padding?: number | string;
931
+ elevated?: boolean;
932
+ };
933
+ declare function GlassCard({ children, intensity, tint, borderRadius, padding, elevated, }: GlassCardProps): JSX.Element;
934
+
935
+ type DataTableColumn<T> = {
936
+ key: string;
937
+ header: string;
938
+ render?: (value: any, row: T) => ReactNode;
939
+ sortable?: boolean;
940
+ width?: number | string;
941
+ };
942
+ type DataTableProps<T extends Record<string, any>> = {
943
+ columns: DataTableColumn<T>[];
944
+ data: T[];
945
+ onRowPress?: (row: T) => void;
946
+ emptyMessage?: string;
947
+ };
948
+ declare function StatusBadge({ status }: {
949
+ status: string;
950
+ }): JSX.Element;
951
+ declare function DataTable<T extends Record<string, any>>({ columns, data, onRowPress, emptyMessage }: DataTableProps<T>): JSX.Element;
952
+
953
+ type DatePickerProps = {
954
+ value?: Date;
955
+ onDateChange?: (date: Date) => void;
956
+ minDate?: Date;
957
+ maxDate?: Date;
958
+ startDay?: 0 | 1;
959
+ placeholder?: string;
960
+ };
961
+ declare function DatePicker({ value, onDateChange, minDate, maxDate, startDay }: DatePickerProps): JSX.Element;
962
+
963
+ type EventCardProps = {
964
+ title: string;
965
+ subtitle?: string;
966
+ time?: string;
967
+ location?: string;
968
+ label?: string;
969
+ participants?: number;
970
+ maxParticipants?: number;
971
+ theme?: 'purple' | 'green' | 'blue' | 'orange' | 'red' | 'pink';
972
+ onPress?: () => void;
973
+ actions?: ReactNode;
974
+ };
975
+ declare function EventCard({ theme, ...props }: EventCardProps): JSX.Element;
976
+
977
+ type PreferenceItem = {
978
+ type: 'toggle';
979
+ id: string;
980
+ title: string;
981
+ description?: string;
982
+ value: boolean;
983
+ onValueChange: (v: boolean) => void;
984
+ } | {
985
+ type: 'select';
986
+ id: string;
987
+ title: string;
988
+ description?: string;
989
+ value: string;
990
+ options: {
991
+ label: string;
992
+ value: string;
993
+ }[];
994
+ onValueChange: (v: string) => void;
995
+ } | {
996
+ type: 'slider';
997
+ id: string;
998
+ title: string;
999
+ description?: string;
1000
+ value: number;
1001
+ min?: number;
1002
+ max?: number;
1003
+ onValueChange: (v: number) => void;
1004
+ } | {
1005
+ type: 'action';
1006
+ id: string;
1007
+ title: string;
1008
+ description?: string;
1009
+ onPress: () => void;
1010
+ destructive?: boolean;
1011
+ };
1012
+ type PreferenceSection = {
1013
+ title: string;
1014
+ description?: string;
1015
+ items: PreferenceItem[];
1016
+ };
1017
+ type UserPreferencesProps = {
1018
+ sections: PreferenceSection[];
1019
+ };
1020
+ declare function UserPreferences({ sections }: UserPreferencesProps): JSX.Element;
1021
+
1022
+ type BlinkSelectItem = {
1023
+ label: string;
1024
+ value: string;
1025
+ };
1026
+ type BlinkSelectProps = {
1027
+ items: BlinkSelectItem[];
1028
+ value?: string;
1029
+ onValueChange?: (value: string) => void;
1030
+ placeholder?: string;
1031
+ label?: string;
1032
+ size?: GetProps<typeof Select.Trigger>['size'];
1033
+ disabled?: boolean;
1034
+ width?: string | number;
1035
+ };
1036
+ declare function BlinkSelect({ items, value, onValueChange, placeholder, label, size, disabled, width, }: BlinkSelectProps): JSX.Element;
1037
+
1038
+ type BlinkDialogProps = {
1039
+ open?: boolean;
1040
+ onOpenChange?: (open: boolean) => void;
1041
+ trigger?: React__default.ReactNode;
1042
+ title?: string;
1043
+ description?: string;
1044
+ children?: React__default.ReactNode;
1045
+ confirmLabel?: string;
1046
+ cancelLabel?: string;
1047
+ onConfirm?: () => void;
1048
+ onCancel?: () => void;
1049
+ confirmTheme?: GetProps<typeof Button$1>['theme'];
1050
+ };
1051
+ declare function BlinkDialog({ open, onOpenChange, trigger, title, description, children, confirmLabel, cancelLabel, onConfirm, onCancel, confirmTheme, }: BlinkDialogProps): JSX.Element;
1052
+
1053
+ type BlinkPopoverProps = {
1054
+ trigger: React__default.ReactNode;
1055
+ children: React__default.ReactNode;
1056
+ placement?: 'top' | 'bottom' | 'left' | 'right';
1057
+ allowFlip?: boolean;
1058
+ size?: string;
1059
+ };
1060
+ declare function BlinkPopover({ trigger, children, placement, allowFlip, size, }: BlinkPopoverProps): JSX.Element;
1061
+
1062
+ type ImmersiveMediaAction = {
1063
+ id: string;
1064
+ label?: string;
1065
+ value?: string;
1066
+ icon?: ReactNode;
1067
+ onPress?: () => void;
1068
+ };
1069
+ type ImmersiveMediaScreenProps = {
1070
+ variant?: 'story' | 'reel' | 'sheet';
1071
+ media: ReactNode;
1072
+ title?: string;
1073
+ subtitle?: string;
1074
+ topLeft?: ReactNode;
1075
+ topCenter?: ReactNode;
1076
+ topRight?: ReactNode;
1077
+ actions?: ImmersiveMediaAction[];
1078
+ bottomMeta?: ReactNode;
1079
+ inputPlaceholder?: string;
1080
+ onInputPress?: () => void;
1081
+ sheetContent?: ReactNode;
1082
+ };
1083
+ declare function ImmersiveMediaScreen({ variant, media, title, subtitle, topLeft, topCenter, topRight, actions, bottomMeta, inputPlaceholder, onInputPress, sheetContent, }: ImmersiveMediaScreenProps): JSX.Element;
1084
+
1085
+ type FinanceMetric = {
1086
+ label: string;
1087
+ value: string;
1088
+ change?: string;
1089
+ };
1090
+ type FinanceQuickAction = {
1091
+ id: string;
1092
+ label: string;
1093
+ icon?: ReactNode;
1094
+ onPress?: () => void;
1095
+ };
1096
+ type FinanceDashboardSection = {
1097
+ id?: string;
1098
+ title: string;
1099
+ rows: Array<{
1100
+ id: string;
1101
+ title: string;
1102
+ subtitle?: string;
1103
+ value?: string;
1104
+ leading?: ReactNode;
1105
+ }>;
1106
+ };
1107
+ type FinanceDashboardProps = {
1108
+ title?: string;
1109
+ balanceLabel?: string;
1110
+ balance: string;
1111
+ rangeLabel?: string;
1112
+ metrics?: FinanceMetric[];
1113
+ quickActions?: FinanceQuickAction[];
1114
+ sections?: FinanceDashboardSection[];
1115
+ chartSlot?: ReactNode;
1116
+ topRight?: ReactNode;
1117
+ };
1118
+ declare function FinanceDashboard({ title, balanceLabel, balance, rangeLabel, metrics, quickActions, sections, chartSlot, topRight, }: FinanceDashboardProps): JSX.Element;
642
1119
 
643
- 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, 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 };
1120
+ export { ActionSheet, type ActionSheetItem, type ActionSheetProps, AppHeader, type AppHeaderProps, type AppHeaderVariant, AppleLogo, type AuthProvider, type AuthProviderBrand, AvatarGroup, type AvatarGroupProps, BLINK_DESIGN_THEMES, BLINK_DESIGN_THEME_IDS, 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 BlinkColorPalette, type BlinkConfig, type BlinkDesignTheme, type BlinkDesignThemeId, BlinkDialog, type BlinkDialogProps, Input as BlinkInput, type InputProps as BlinkInputProps, BlinkPopover, type BlinkPopoverProps, BlinkSelect, type BlinkSelectItem, type BlinkSelectProps, 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, Chip, ChipGroup, type ChipGroupProps, type ChipProps, ConfirmDialog, type ConfirmDialogProps, Container, type ContainerProps, CountdownBanner, type CountdownBannerProps, DataTable, type DataTableColumn, type DataTableProps, DatePicker, type DatePickerProps, DialogProvider, Divider, type DividerProps, EmptyState, type EmptyStateProps, EventCard, type EventCardProps, type FABProps, FinanceDashboard, type FinanceDashboardProps, type FinanceDashboardSection, type FinanceMetric, type FinanceQuickAction, FloatingActionButton, FormField, type FormFieldProps, GitHubLogo, GlassCard, type GlassCardProps, GoogleLogo, Grid, type GridProps, ICONS, Icon, type IconName, type IconProps, Image, type ImmersiveMediaAction, ImmersiveMediaScreen, type ImmersiveMediaScreenProps, KeyboardStickyFooter, type KeyboardStickyFooterProps, ListItem, type ListItemProps, LoginScreen, type LoginScreenProps, type LoginScreenVariant, MediaCard, type MediaCardProps, MicrosoftLogo, NotificationBanner, type NotificationBannerProps, OTPInput, type OTPInputProps, OnboardingCarousel, type OnboardingCarouselProps, type OnboardingStep, type OnboardingVariant, PageContainer, PageMainContainer, PasswordInput, type PasswordInputProps, type PaywallComparisonRow, type PaywallCreator, type PaywallFeature, PaywallScreen, type PaywallScreenProps, type PaywallTestimonial, type PaywallVariant, type PlanOption, type PreferenceItem, type PreferenceSection, Pressable, type PricingPlan, PricingTable, type PricingTableProps, ProductCard, type ProductCardProps, 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, StatusBadge, StepPageLayout, type StepPageProps, SubHeading, type SwipeAction, type SwipeCardItem, SwipeCards, type SwipeCardsProps, SwipeableRow, type SwipeableRowProps, TabBar, type TabBarItem, type TabBarProps, TestimonialCard, type TestimonialCardProps, type TooltipProps, UserPreferences, type UserPreferencesProps, blinkConfig, dialogConfirm, getBlinkDesignTheme, getBlinkThemePalettes, showError, toast, useBlinkToast };