custom-mobile-ui 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/dist/Fonts-Black-U4YX6GHD.ttf +0 -0
  2. package/dist/Fonts-Bold-QAA2AGZS.ttf +0 -0
  3. package/dist/Fonts-ExtraBold-OVZKTNJI.ttf +0 -0
  4. package/dist/Fonts-Light-RMQAEPUP.ttf +0 -0
  5. package/dist/Fonts-Medium-UUWQX4EV.ttf +0 -0
  6. package/dist/Fonts-Regular-JNHL4IDV.ttf +0 -0
  7. package/dist/PopupMenuExample-DAAku8nG.d.mts +11 -0
  8. package/dist/PopupMenuExample-DAAku8nG.d.ts +11 -0
  9. package/dist/avatarF1-C47EE65Y.png +0 -0
  10. package/dist/avatarF2-TZPKSMDG.png +0 -0
  11. package/dist/avatarF3-OSDX6E7J.png +0 -0
  12. package/dist/avatarF4-CASWRGNJ.png +0 -0
  13. package/dist/avatarM1-3XV4KE4H.png +0 -0
  14. package/dist/avatarM2-ZMN26Y2Y.png +0 -0
  15. package/dist/avatarM3-XIDLYITU.png +0 -0
  16. package/dist/avatarM4-DYW5DSZC.png +0 -0
  17. package/dist/avatarM5-YP66OPXT.png +0 -0
  18. package/dist/components.d.mts +3286 -0
  19. package/dist/components.d.ts +3286 -0
  20. package/dist/components.js +21401 -0
  21. package/dist/components.mjs +21246 -0
  22. package/dist/config.d.mts +7 -0
  23. package/dist/config.d.ts +7 -0
  24. package/dist/config.js +213 -0
  25. package/dist/config.mjs +210 -0
  26. package/dist/context.d.mts +11 -0
  27. package/dist/context.d.ts +11 -0
  28. package/dist/context.js +150 -0
  29. package/dist/context.mjs +148 -0
  30. package/dist/examples.d.mts +30 -0
  31. package/dist/examples.d.ts +30 -0
  32. package/dist/examples.js +30785 -0
  33. package/dist/examples.mjs +30748 -0
  34. package/dist/hooks.d.mts +15 -0
  35. package/dist/hooks.d.ts +15 -0
  36. package/dist/hooks.js +750 -0
  37. package/dist/hooks.mjs +739 -0
  38. package/dist/icAppleNegative-E3OORB4A.png +0 -0
  39. package/dist/icAppleOriginal-M7FOSDZ4.png +0 -0
  40. package/dist/icBlueskyNegative-QXHPLARU.png +0 -0
  41. package/dist/icBlueskyOriginal-D2GX35RV.png +0 -0
  42. package/dist/icDiscordNegative-EWGZJJ27.png +0 -0
  43. package/dist/icDiscordOriginal-5ODPKZ6S.png +0 -0
  44. package/dist/icDribbbleNegative-GOLJS6SO.png +0 -0
  45. package/dist/icDribbbleOriginal-ONQLW62I.png +0 -0
  46. package/dist/icError404-Z6PQK64J.png +0 -0
  47. package/dist/icFacebookNegative-DIFRSSJJ.png +0 -0
  48. package/dist/icFacebookOriginal-PK7CGUNB.png +0 -0
  49. package/dist/icFigmaNegative-X6P3DVCQ.png +0 -0
  50. package/dist/icFigmaOriginal-VGD7LQVQ.png +0 -0
  51. package/dist/icGithubNegative-G7XH6J7V.png +0 -0
  52. package/dist/icGithubOriginal-BOXVXICL.png +0 -0
  53. package/dist/icGoogleNegative-UFNCEWM7.png +0 -0
  54. package/dist/icGoogleOriginal-WCDLPRSH.png +0 -0
  55. package/dist/icInstagramNegative-47CG4IHG.png +0 -0
  56. package/dist/icInstagramOriginal-SGRJTPEH.png +0 -0
  57. package/dist/icLinkedInNegative-4EHL223U.png +0 -0
  58. package/dist/icLinkedInOriginal-CQXTAW56.png +0 -0
  59. package/dist/icMediumNegative-YMS7U46C.png +0 -0
  60. package/dist/icMediumOriginal-TRTNJBN4.png +0 -0
  61. package/dist/icMessengerNegative-SIFKBM2Y.png +0 -0
  62. package/dist/icMessengerOriginal-PNN2SB3Z.png +0 -0
  63. package/dist/icNoData-JQB7KCKJ.png +0 -0
  64. package/dist/icPinterestNegative-LPDQYRD3.png +0 -0
  65. package/dist/icPinterestOriginal-7AWYJQBQ.png +0 -0
  66. package/dist/icRedditNegative-BBV3R7UA.png +0 -0
  67. package/dist/icRedditOriginal-BIKS3S2I.png +0 -0
  68. package/dist/icRestriction-JFCJAQ5L.png +0 -0
  69. package/dist/icSadMen-6HAFJHIQ.png +0 -0
  70. package/dist/icSignalNegative-DVBANSGJ.png +0 -0
  71. package/dist/icSignalOriginal-FQEXGCKX.png +0 -0
  72. package/dist/icSnapchatNegative-VQFVKRPC.png +0 -0
  73. package/dist/icSnapchatOriginal-ZK4T4CLL.png +0 -0
  74. package/dist/icSpotifyNegative-UGDBMFNS.png +0 -0
  75. package/dist/icSpotifyOriginal-ZFNO4BJO.png +0 -0
  76. package/dist/icTelegramNegative-GDSFFYME.png +0 -0
  77. package/dist/icTelegramOriginal-DMTCZCGP.png +0 -0
  78. package/dist/icThreadsNegative-4NIM4AOP.png +0 -0
  79. package/dist/icThreadsOriginal-OYU6UKN2.png +0 -0
  80. package/dist/icTikTokNegative-WYI3PQGD.png +0 -0
  81. package/dist/icTikTokOriginal-26SKYCIO.png +0 -0
  82. package/dist/icTumblrNegative-CYBTEYAG.png +0 -0
  83. package/dist/icTumblrOriginal-MZ7RV5ZY.png +0 -0
  84. package/dist/icTwitchNegative-GK3VVFL7.png +0 -0
  85. package/dist/icTwitchOriginal-GOENLOGB.png +0 -0
  86. package/dist/icVKNegative-FCXPFYDV.png +0 -0
  87. package/dist/icVKOriginal-NCWB7WYH.png +0 -0
  88. package/dist/icWhatsAppNegative-FJHYFUMA.png +0 -0
  89. package/dist/icWhatsAppOriginal-MWQWQC56.png +0 -0
  90. package/dist/icXTwitterNegative-VS3UXBLN.png +0 -0
  91. package/dist/icXTwitterOriginal-WJ2IFMZL.png +0 -0
  92. package/dist/icYouTubeNegative-LUSZ7OD4.png +0 -0
  93. package/dist/icYouTubeOriginal-6Y2SNMC7.png +0 -0
  94. package/dist/index-tIixPl5M.d.mts +214 -0
  95. package/dist/index-tIixPl5M.d.ts +214 -0
  96. package/dist/index.d.mts +32 -0
  97. package/dist/index.d.ts +32 -0
  98. package/dist/index.js +32215 -0
  99. package/dist/index.mjs +32022 -0
  100. package/dist/theme.d.mts +297 -0
  101. package/dist/theme.d.ts +297 -0
  102. package/dist/theme.js +472 -0
  103. package/dist/theme.mjs +458 -0
  104. package/dist/types-cxHozHqF.d.mts +92 -0
  105. package/dist/types-cxHozHqF.d.ts +92 -0
  106. package/dist/ui.d.mts +400 -0
  107. package/dist/ui.d.ts +400 -0
  108. package/dist/ui.js +1469 -0
  109. package/dist/ui.mjs +1461 -0
  110. package/dist/ui_config-LKHwCbDD.d.mts +102 -0
  111. package/dist/ui_config-LKHwCbDD.d.ts +102 -0
  112. package/dist/utils.d.mts +7 -0
  113. package/dist/utils.d.ts +7 -0
  114. package/dist/utils.js +89 -0
  115. package/dist/utils.mjs +83 -0
  116. package/package.json +78 -0
@@ -0,0 +1,3286 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React$1 from 'react';
3
+ import React__default, { ReactNode, ComponentType } from 'react';
4
+ import * as react_native from 'react-native';
5
+ import { StyleProp, ViewStyle, TextStyle, TextProps as TextProps$1, ImageStyle, KeyboardTypeOptions, ScrollViewProps, View, LayoutChangeEvent, Animated, ViewProps } from 'react-native';
6
+ import { U as UISize } from './ui_config-LKHwCbDD.mjs';
7
+ export { A as AlertModalExample, D as DateTimePickerExample, P as PopupMenuExample, T as TabPagerExample } from './PopupMenuExample-DAAku8nG.mjs';
8
+ import { A as AppTheme } from './index-tIixPl5M.mjs';
9
+ import { d as useTheme, a as AlertModalProps, c as AlertType } from './types-cxHozHqF.mjs';
10
+
11
+ type ButtonSize = 'small' | 'medium' | 'large';
12
+ type ButtonVariant = 'filled' | 'outlined' | 'tonal' | 'danger' | 'danger-outlined' | 'ghost' | 'link';
13
+ interface CustomButtonProps {
14
+ /** Button label text */
15
+ label?: string;
16
+ /**
17
+ * Icon element/node (e.g. `<Home />` from `lucide-react-native`).
18
+ * If it's a React element, `iconSize` / `iconColor` will be applied automatically.
19
+ */
20
+ icon?: ReactNode;
21
+ /** Icon position relative to label (default 'left') */
22
+ iconPosition?: 'left' | 'right';
23
+ /** Button size preset (default 'medium') */
24
+ size?: ButtonSize;
25
+ /** Visual variant (default 'filled') */
26
+ variant?: ButtonVariant;
27
+ /** Show loading spinner (replaces icon) */
28
+ loading?: boolean;
29
+ /** Loading text (replaces label during loading, optional) */
30
+ loadingText?: string;
31
+ /** Disabled state */
32
+ disabled?: boolean;
33
+ /** Press handler */
34
+ onPress?: () => void;
35
+ /** Long press handler */
36
+ onLongPress?: () => void;
37
+ /** Make button fill parent width */
38
+ fullWidth?: boolean;
39
+ /** Custom height override (ignores size preset height) */
40
+ height?: number;
41
+ /** Custom border radius */
42
+ borderRadius?: number;
43
+ /** Custom button container style */
44
+ style?: StyleProp<ViewStyle>;
45
+ /** Custom label text style */
46
+ labelStyle?: StyleProp<TextStyle>;
47
+ /** Custom icon size override */
48
+ iconSize?: number;
49
+ /** Custom icon color override */
50
+ iconColor?: string;
51
+ /** Accessibility label */
52
+ accessibilityLabel?: string;
53
+ /** Test ID for testing */
54
+ testID?: string;
55
+ /** Optional children (renders instead of label/icon) */
56
+ children?: ReactNode;
57
+ }
58
+
59
+ declare function CustomButton({ label, icon, iconPosition, size, variant, loading, loadingText, disabled, onPress, onLongPress, fullWidth, height: customHeight, borderRadius: customRadius, style, labelStyle, iconSize: customIconSize, iconColor: customIconColor, accessibilityLabel, testID, children, }: CustomButtonProps): react_jsx_runtime.JSX.Element;
60
+
61
+ declare function CustomButtonExample(): react_jsx_runtime.JSX.Element;
62
+
63
+ interface SizeConfig$1 {
64
+ height: number;
65
+ paddingHorizontal: number;
66
+ iconSize: number;
67
+ fontSize: number;
68
+ iconGap: number;
69
+ borderRadius: number;
70
+ }
71
+ declare const SIZE_CONFIG$1: Record<ButtonSize, SizeConfig$1>;
72
+ interface VariantColors {
73
+ bg: string;
74
+ bgPressed: string;
75
+ bgDisabled: string;
76
+ text: string;
77
+ textDisabled: string;
78
+ border: string;
79
+ borderDisabled: string;
80
+ borderWidth: number;
81
+ }
82
+ declare const VARIANT_COLORS: Record<ButtonVariant, VariantColors>;
83
+
84
+ type TextVariant = "display" | "heading" | "title" | "subtitle" | "body" | "caption" | "overline";
85
+ type TextColorShortcut = "primary" | "secondary" | "muted" | "inverse" | "success" | "error" | "warning";
86
+ type TextAlign = "left" | "center" | "right";
87
+ interface TextProps extends TextProps$1 {
88
+ /** Preset typography variant with predefined size, weight, lineHeight, letterSpacing */
89
+ variant?: TextVariant;
90
+ /** Color shortcut name or custom hex string */
91
+ color?: TextColorShortcut | (string & {});
92
+ /** Text alignment shortcut */
93
+ align?: TextAlign;
94
+ /** Transform text to uppercase */
95
+ uppercase?: boolean;
96
+ /** Apply italic style */
97
+ italic?: boolean;
98
+ /** Apply underline decoration */
99
+ underline?: boolean;
100
+ /** Apply strikethrough decoration */
101
+ strikethrough?: boolean;
102
+ /** Allow text to be selectable / copyable */
103
+ selectable?: boolean;
104
+ /** Limit the number of lines before truncation */
105
+ numberOfLines?: number;
106
+ /** How to truncate text when numberOfLines is set */
107
+ ellipsizeMode?: "head" | "middle" | "tail" | "clip";
108
+ }
109
+
110
+ declare function Text({ style, variant, color, align, uppercase, italic, underline, strikethrough, selectable, numberOfLines, ellipsizeMode, ...props }: TextProps): react_jsx_runtime.JSX.Element;
111
+
112
+ type AvatarShape = "square" | "round";
113
+ type AvatarMode = "single" | "group";
114
+ type AvatarStatus = "online" | "offline" | "busy" | "away";
115
+ type StatusPosition = "bottom-right" | "bottom-left" | "top-right" | "top-left";
116
+ interface AvatarProps {
117
+ url?: string;
118
+ urls?: string[];
119
+ initials?: string;
120
+ shape?: AvatarShape;
121
+ mode?: AvatarMode;
122
+ size?: UISize | number;
123
+ maxCount?: number;
124
+ showLoader?: boolean;
125
+ backgroundColor?: string;
126
+ background?: "filledBg" | "lightBg" | string;
127
+ textColor?: string;
128
+ style?: StyleProp<ViewStyle>;
129
+ showShadow?: boolean;
130
+ showAnimatedAvatar?: boolean;
131
+ isSelected?: boolean;
132
+ icon?: React.ReactNode;
133
+ isLoading?: boolean;
134
+ /** Shows a colored status dot indicator */
135
+ status?: AvatarStatus;
136
+ /** Position of the status dot */
137
+ statusPosition?: StatusPosition;
138
+ /** Callback fired when the avatar is pressed */
139
+ onPress?: () => void;
140
+ }
141
+
142
+ declare const Avatar: React__default.FC<AvatarProps>;
143
+
144
+ type BadgeVariant = "fill" | "outline" | "dashed" | "ghost";
145
+ type BadgeShape = "square" | "rounded" | "pill";
146
+ interface BadgeProps {
147
+ label?: string;
148
+ icon?: ReactNode;
149
+ size?: UISize;
150
+ variant?: BadgeVariant;
151
+ shape?: BadgeShape;
152
+ color?: string;
153
+ shadow?: boolean;
154
+ style?: StyleProp<ViewStyle>;
155
+ /** When true, renders a small colored dot with no text/icon */
156
+ dot?: boolean;
157
+ /** When label is a number greater than maxCount, displays as "maxCount+" (e.g. "99+") */
158
+ maxCount?: number;
159
+ /** Makes the badge tappable */
160
+ onPress?: () => void;
161
+ /** Shows a close (X) icon on the badge */
162
+ closable?: boolean;
163
+ /** Callback when the close icon is pressed */
164
+ onClose?: () => void;
165
+ /** When true, the badge plays a subtle scale bounce when label changes */
166
+ animated?: boolean;
167
+ }
168
+
169
+ declare const Badge: React__default.FC<BadgeProps>;
170
+
171
+ interface CustomDividerProps {
172
+ /** Orientation. Default `'horizontal'`. */
173
+ direction?: 'horizontal' | 'vertical';
174
+ /** Optional text or element displayed in the middle of the line. */
175
+ label?: string | ReactNode;
176
+ /** Label alignment when horizontal. Default `'center'`. */
177
+ labelAlign?: 'left' | 'center' | 'right';
178
+ /** Thickness preset. Default `'medium'`. */
179
+ size?: UISize;
180
+ /** Line style. Default `'solid'`. */
181
+ variant?: 'solid' | 'dashed' | 'dotted';
182
+ /** Custom line color. Falls back to `theme.border.default`. */
183
+ color?: string;
184
+ /** Vertical margin (horizontal divider) or horizontal margin (vertical divider). */
185
+ spacing?: number;
186
+ /** Container style override. */
187
+ style?: StyleProp<ViewStyle>;
188
+ /** Label text style override. */
189
+ labelStyle?: StyleProp<TextStyle>;
190
+ }
191
+
192
+ declare function CustomDivider({ direction, label, labelAlign, size, variant, color, spacing, style, labelStyle, }: CustomDividerProps): react_jsx_runtime.JSX.Element;
193
+
194
+ type IconWrapperVariant = 'filled' | 'tonal' | 'outlined' | 'ghost';
195
+ type IconWrapperShape = 'circle' | 'rounded' | 'square';
196
+ interface IconWrapperProps {
197
+ /** Icon element (lucide or any React node). */
198
+ icon: ReactNode;
199
+ /** Size preset. Default `'medium'`. */
200
+ size?: UISize;
201
+ /** Visual variant. Default `'tonal'`. */
202
+ variant?: IconWrapperVariant;
203
+ /** Container shape. Default `'rounded'`. */
204
+ shape?: IconWrapperShape;
205
+ /** Custom background color (overrides variant). */
206
+ backgroundColor?: string;
207
+ /** Custom icon color (overrides variant). */
208
+ iconColor?: string;
209
+ /** Custom border color (for `outlined` variant). */
210
+ borderColor?: string;
211
+ /** Press handler — makes the wrapper tappable with scale animation. */
212
+ onPress?: () => void;
213
+ /** Disabled state. */
214
+ disabled?: boolean;
215
+ /** Container style override. */
216
+ style?: StyleProp<ViewStyle>;
217
+ }
218
+
219
+ declare function IconWrapper({ icon, size, variant, shape, backgroundColor, iconColor, borderColor, onPress, disabled, style, }: IconWrapperProps): react_jsx_runtime.JSX.Element;
220
+
221
+ type NetworkImageDimensionValue = number | "auto" | `${number}%`;
222
+ interface NetworkImageProps {
223
+ uri?: string;
224
+ /** Shown on the badge when provided (e.g. initials from the parent). */
225
+ userInitial?: string;
226
+ width?: NetworkImageDimensionValue;
227
+ height?: NetworkImageDimensionValue;
228
+ containerStyle?: StyleProp<ViewStyle>;
229
+ imageStyle?: StyleProp<ImageStyle>;
230
+ borderRadius?: number;
231
+ enableSelection?: boolean;
232
+ selected?: boolean;
233
+ onLongPress?: () => void;
234
+ onPress?: () => void;
235
+ }
236
+
237
+ declare const NetworkImage: React__default.FC<NetworkImageProps>;
238
+
239
+ type ChipVariant = "filled" | "outlined" | "tonal";
240
+ type ChipSize = "small" | "medium" | "large";
241
+ interface ChipProps {
242
+ label: string;
243
+ variant?: ChipVariant;
244
+ size?: ChipSize;
245
+ icon?: ReactNode;
246
+ selected?: boolean;
247
+ onPress?: () => void;
248
+ onClose?: () => void;
249
+ disabled?: boolean;
250
+ color?: string;
251
+ style?: StyleProp<ViewStyle>;
252
+ }
253
+
254
+ declare function Chip({ label, variant, size, icon, selected, onPress, onClose, disabled, color, style, }: ChipProps): react_jsx_runtime.JSX.Element;
255
+
256
+ type FieldType = 'text' | 'password' | 'multiline' | 'otp' | 'date' | 'time' | 'datetime' | 'select' | 'multiselect' | 'file' | 'image' | 'signature' | 'rating';
257
+ interface SelectOption {
258
+ label: string;
259
+ value: string;
260
+ icon?: ReactNode;
261
+ }
262
+ interface BaseFieldProps {
263
+ /** Field type — drives which renderer is used. Default `'text'`. */
264
+ type?: FieldType;
265
+ label?: string;
266
+ placeholder?: string;
267
+ error?: string;
268
+ required?: boolean;
269
+ disabled?: boolean;
270
+ helperText?: string;
271
+ /** Return `true` if valid, `false` or an error string if invalid. */
272
+ validate?: (value: any) => boolean | string;
273
+ size?: UISize;
274
+ width?: number | string;
275
+ height?: number;
276
+ borderColor?: string;
277
+ focusColor?: string;
278
+ textColor?: string;
279
+ placeholderColor?: string;
280
+ labelColor?: string;
281
+ errorColor?: string;
282
+ backgroundColor?: string;
283
+ helperColor?: string;
284
+ isOutlined?: boolean;
285
+ showShadow?: boolean;
286
+ borderRadius?: number;
287
+ containerStyle?: StyleProp<ViewStyle>;
288
+ fieldContainerStyle?: StyleProp<ViewStyle>;
289
+ inputStyle?: StyleProp<TextStyle>;
290
+ labelStyle?: StyleProp<TextStyle>;
291
+ errorStyle?: StyleProp<TextStyle>;
292
+ helperStyle?: StyleProp<TextStyle>;
293
+ }
294
+ interface TextFieldProps extends BaseFieldProps {
295
+ type?: 'text' | 'password' | 'multiline';
296
+ value: string;
297
+ onChange: (text: string) => void;
298
+ prefix?: ReactNode;
299
+ suffix?: ReactNode;
300
+ secure?: boolean;
301
+ multiline?: boolean;
302
+ maxLength?: number;
303
+ keyboardType?: KeyboardTypeOptions;
304
+ autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';
305
+ }
306
+ interface OtpFieldProps extends BaseFieldProps {
307
+ type: 'otp';
308
+ value: string;
309
+ onChange: (code: string) => void;
310
+ /** Number of OTP boxes. Default `6`. */
311
+ otpLength?: number;
312
+ /** Mask input with dots. */
313
+ otpSecure?: boolean;
314
+ }
315
+ interface DateTimeFieldProps extends BaseFieldProps {
316
+ type: 'date' | 'time' | 'datetime';
317
+ value: Date | null;
318
+ onChange: (date: Date) => void;
319
+ minDate?: Date;
320
+ maxDate?: Date;
321
+ is24Hour?: boolean;
322
+ }
323
+ interface SelectFieldProps extends BaseFieldProps {
324
+ type: 'select' | 'multiselect';
325
+ value: string | string[];
326
+ onChange: (value: string | string[]) => void;
327
+ options: SelectOption[];
328
+ searchable?: boolean;
329
+ selectTitle?: string;
330
+ /** 'bottomsheet' slides up from bottom, 'dropdown' overlays below field. Default: 'bottomsheet' */
331
+ selectMode?: 'bottomsheet' | 'dropdown';
332
+ }
333
+ interface FileFieldProps extends BaseFieldProps {
334
+ type: 'file' | 'image';
335
+ value: string | string[] | null;
336
+ onChange: (uri: string | string[]) => void;
337
+ multiple?: boolean;
338
+ /** Mime types for file picker, e.g. `['application/pdf']`. */
339
+ accept?: string[];
340
+ }
341
+ interface SignatureFieldProps extends BaseFieldProps {
342
+ type: 'signature';
343
+ value: string | null;
344
+ onChange: (base64: string) => void;
345
+ }
346
+ interface RatingFieldProps extends BaseFieldProps {
347
+ type: 'rating';
348
+ value: number;
349
+ onChange: (rating: number) => void;
350
+ /** Max number of stars. Default `5`. */
351
+ maxRating?: number;
352
+ /** Star icon size in px. */
353
+ ratingSize?: number;
354
+ /** Filled star color. */
355
+ ratingColor?: string;
356
+ /** Empty star color. */
357
+ ratingEmptyColor?: string;
358
+ }
359
+ type CustomFieldProps = TextFieldProps | OtpFieldProps | DateTimeFieldProps | SelectFieldProps | FileFieldProps | SignatureFieldProps | RatingFieldProps;
360
+
361
+ declare function CustomField(props: CustomFieldProps): react_jsx_runtime.JSX.Element;
362
+
363
+ interface FormScrollContextValue {
364
+ scrollToField: (fieldRef: React__default.RefObject<View>) => void;
365
+ }
366
+ /** Hook used by FieldWrapper to request scroll-into-view on focus. */
367
+ declare function useFormScroll(): FormScrollContextValue;
368
+ interface FormScrollViewProps extends ScrollViewProps {
369
+ /** Extra padding above keyboard when scrolling a field into view (default 40). */
370
+ extraPadding?: number;
371
+ children: React__default.ReactNode;
372
+ }
373
+ /**
374
+ * Drop-in replacement for `ScrollView` that automatically scrolls
375
+ * focused `CustomField` inputs above the keyboard.
376
+ *
377
+ * ```tsx
378
+ * <FormScrollView contentContainerStyle={{ padding: 16 }}>
379
+ * <CustomField ... />
380
+ * <CustomField ... />
381
+ * </FormScrollView>
382
+ * ```
383
+ */
384
+ declare function FormScrollView({ children, extraPadding, contentContainerStyle, ...props }: FormScrollViewProps): react_jsx_runtime.JSX.Element;
385
+
386
+ declare const FIELD_SIZES: {
387
+ readonly height: 48;
388
+ readonly borderRadius: 10;
389
+ readonly labelFontSize: 13;
390
+ readonly inputFontSize: 15;
391
+ readonly errorFontSize: 12;
392
+ readonly helperFontSize: 12;
393
+ readonly iconSize: 20;
394
+ readonly otpBoxSize: 48;
395
+ readonly ratingStarSize: 32;
396
+ };
397
+
398
+ interface CustomCheckboxProps {
399
+ /** Whether the checkbox is checked. */
400
+ value: boolean;
401
+ /** Called when the value changes. */
402
+ onValueChange: (value: boolean) => void;
403
+ /** Optional label text. */
404
+ label?: string;
405
+ /** Size preset. Default `'medium'`. */
406
+ size?: UISize;
407
+ /** Disabled state. */
408
+ disabled?: boolean;
409
+ /** Custom checked color. Falls back to `theme.primary.default`. */
410
+ activeColor?: string;
411
+ /** Custom border color. Falls back to `theme.border.default`. */
412
+ borderColor?: string;
413
+ /** Custom check icon color. Falls back to white. */
414
+ checkColor?: string;
415
+ /** Container style override. */
416
+ style?: StyleProp<ViewStyle>;
417
+ }
418
+
419
+ declare function CustomCheckbox({ value, onValueChange, label, size, disabled, activeColor, borderColor, checkColor, style, }: CustomCheckboxProps): react_jsx_runtime.JSX.Element;
420
+
421
+ interface RadioOption {
422
+ label: string;
423
+ value: string;
424
+ disabled?: boolean;
425
+ }
426
+ interface CustomRadioGroupProps {
427
+ /** Currently selected value. */
428
+ value: string;
429
+ /** Called when the selection changes. */
430
+ onValueChange: (value: string) => void;
431
+ /** List of radio options. */
432
+ options: RadioOption[];
433
+ /** Size preset. Default `'medium'`. */
434
+ size?: UISize;
435
+ /** Disabled state for the entire group. */
436
+ disabled?: boolean;
437
+ /** Layout direction. Default `'vertical'`. */
438
+ direction?: 'vertical' | 'horizontal';
439
+ /** Custom active color. Falls back to `theme.primary.default`. */
440
+ activeColor?: string;
441
+ /** Custom border color. Falls back to `theme.border.default`. */
442
+ borderColor?: string;
443
+ /** Container style override. */
444
+ style?: StyleProp<ViewStyle>;
445
+ }
446
+
447
+ declare function CustomRadioGroup({ value, onValueChange, options, size, disabled, direction, activeColor, borderColor, style, }: CustomRadioGroupProps): react_jsx_runtime.JSX.Element;
448
+
449
+ interface CustomSwitchProps {
450
+ value?: boolean;
451
+ defaultValue?: boolean;
452
+ onValueChange?: (value: boolean) => void;
453
+ size?: UISize;
454
+ disabled?: boolean;
455
+ activeColor?: string;
456
+ inactiveColor?: string;
457
+ thumbColor?: string;
458
+ style?: StyleProp<ViewStyle>;
459
+ loading?: boolean;
460
+ }
461
+
462
+ declare const CustomSwitch: React__default.FC<CustomSwitchProps>;
463
+
464
+ interface SelectionItem {
465
+ id: string;
466
+ label: string;
467
+ color?: string;
468
+ Icon?: ComponentType<any>;
469
+ }
470
+ interface SelectionGroupProps {
471
+ label: string;
472
+ items: SelectionItem[];
473
+ selectedId: string;
474
+ onSelect: (id: string) => void;
475
+ defaultColor?: string;
476
+ defaultIcon?: ComponentType<any>;
477
+ }
478
+
479
+ declare const SelectionGroup: React__default.FC<SelectionGroupProps>;
480
+
481
+ type PickerMode = 'date' | 'time' | 'datetime' | 'daterange' | 'timerange' | 'datetimerange' | 'multiple';
482
+ interface TimeValue {
483
+ hour: number;
484
+ minute: number;
485
+ }
486
+ interface DateTimePickerProps {
487
+ mode?: PickerMode;
488
+ /** Selected date (for date / datetime / time modes) */
489
+ value?: Date;
490
+ onChange?: (date: Date) => void;
491
+ /** Range start (daterange / datetimerange) */
492
+ startDate?: Date;
493
+ /** Range end (daterange / datetimerange) */
494
+ endDate?: Date;
495
+ onRangeChange?: (start: Date, end: Date | undefined) => void;
496
+ /** Multiple selected dates */
497
+ selectedDates?: Date[];
498
+ onMultipleChange?: (dates: Date[]) => void;
499
+ /** Time value (time / timerange modes) */
500
+ time?: TimeValue;
501
+ onTimeChange?: (time: TimeValue) => void;
502
+ /** Start time (timerange mode) */
503
+ startTime?: TimeValue;
504
+ /** End time (timerange mode) */
505
+ endTime?: TimeValue;
506
+ onTimeRangeChange?: (start: TimeValue, end: TimeValue) => void;
507
+ minDate?: Date;
508
+ maxDate?: Date;
509
+ is24Hour?: boolean;
510
+ firstDayOfWeek?: 0 | 1;
511
+ accentColor?: string;
512
+ rangeColor?: string;
513
+ minuteInterval?: 1 | 5 | 10 | 15 | 30;
514
+ }
515
+ interface MonthYear {
516
+ year: number;
517
+ month: number;
518
+ }
519
+ interface CalendarDay {
520
+ date: Date;
521
+ day: number;
522
+ isCurrentMonth: boolean;
523
+ isToday: boolean;
524
+ }
525
+ type DayState = 'none' | 'selected' | 'rangeStart' | 'rangeEnd' | 'rangeStartEnd' | 'inRange' | 'multiple' | 'today';
526
+
527
+ declare function DateTimePicker(props: DateTimePickerProps): react_jsx_runtime.JSX.Element;
528
+
529
+ interface DateTimePickerHeaderProps {
530
+ currentMonth: MonthYear;
531
+ headerTimeText: string | null;
532
+ accentColor: string;
533
+ onPrev: () => void;
534
+ onNext: () => void;
535
+ }
536
+ declare function DateTimePickerHeader({ currentMonth, headerTimeText, accentColor, onPrev, onNext, }: DateTimePickerHeaderProps): react_jsx_runtime.JSX.Element;
537
+
538
+ interface TimePickerProps {
539
+ hour: number;
540
+ minute: number;
541
+ onTimeChange: (hour: number, minute: number) => void;
542
+ is24Hour?: boolean;
543
+ minuteInterval?: number;
544
+ accentColor?: string;
545
+ label?: string;
546
+ }
547
+ declare function TimePicker({ hour, minute, onTimeChange, is24Hour, minuteInterval, accentColor, label, }: TimePickerProps): react_jsx_runtime.JSX.Element;
548
+
549
+ /** Compute calendar height for a given container width */
550
+ declare function getCalendarHeight(containerWidth: number): number;
551
+ interface CalendarMonthProps {
552
+ year: number;
553
+ month: number;
554
+ mode: PickerMode;
555
+ /** Width of the pager page / calendar container */
556
+ containerWidth: number;
557
+ selectedDate?: Date;
558
+ rangeStart?: Date;
559
+ rangeEnd?: Date;
560
+ selectedDates?: Date[];
561
+ onDayPress: (date: Date) => void;
562
+ firstDayOfWeek?: 0 | 1;
563
+ accentColor?: string;
564
+ rangeColor?: string;
565
+ minDate?: Date;
566
+ maxDate?: Date;
567
+ }
568
+ declare function CalendarMonthInner({ year, month, mode, containerWidth, selectedDate, rangeStart, rangeEnd, selectedDates, onDayPress, firstDayOfWeek, accentColor, rangeColor, minDate, maxDate, }: CalendarMonthProps): react_jsx_runtime.JSX.Element;
569
+ declare const CalendarMonth: React__default.MemoExoticComponent<typeof CalendarMonthInner>;
570
+
571
+ interface DayCellProps {
572
+ day: CalendarDay;
573
+ state: DayState;
574
+ cellSize: number;
575
+ circleSize: number;
576
+ accentColor: string;
577
+ rangeBgColor: string;
578
+ disabled: boolean;
579
+ onPress: () => void;
580
+ }
581
+ declare const DayCell: React__default.NamedExoticComponent<DayCellProps>;
582
+
583
+ interface WheelPickerProps {
584
+ items: string[];
585
+ selectedIndex: number;
586
+ onSelect: (index: number) => void;
587
+ width?: number;
588
+ itemHeight?: number;
589
+ accentColor?: string;
590
+ }
591
+ declare function WheelPicker({ items, selectedIndex, onSelect, width, itemHeight, accentColor, }: WheelPickerProps): react_jsx_runtime.JSX.Element;
592
+
593
+ declare function useDateTimePicker(props: DateTimePickerProps): {
594
+ handleTimeChange: (h: number, m: number) => void;
595
+ handleStartTimeChange: (h: number, m: number) => void;
596
+ handleEndTimeChange: (h: number, m: number) => void;
597
+ headerTimeText: string | null;
598
+ currentHour: number;
599
+ currentMinute: number;
600
+ startHour: number;
601
+ startMinute: number;
602
+ endHour: number;
603
+ endMinute: number;
604
+ containerWidth: number;
605
+ onContainerLayout: (e: LayoutChangeEvent) => void;
606
+ allMonths: MonthYear[];
607
+ initialIdx: number;
608
+ activeMonthIndex: number;
609
+ setActiveMonthIndex: React$1.Dispatch<React$1.SetStateAction<number>>;
610
+ scrollX: Animated.Value;
611
+ showCalendar: boolean;
612
+ showTime: boolean;
613
+ currentMonth: MonthYear;
614
+ goToPrev: () => void;
615
+ goToNext: () => void;
616
+ handleDayPress: (date: Date) => void;
617
+ };
618
+
619
+ declare function useTimeHandlers(props: DateTimePickerProps): {
620
+ handleTimeChange: (h: number, m: number) => void;
621
+ handleStartTimeChange: (h: number, m: number) => void;
622
+ handleEndTimeChange: (h: number, m: number) => void;
623
+ headerTimeText: string | null;
624
+ currentHour: number;
625
+ currentMinute: number;
626
+ startHour: number;
627
+ startMinute: number;
628
+ endHour: number;
629
+ endMinute: number;
630
+ };
631
+
632
+ declare function getDateTimePickerStyles(theme: AppTheme): {
633
+ container: {
634
+ backgroundColor: string;
635
+ borderRadius: number;
636
+ overflow: "hidden";
637
+ paddingBottom: number;
638
+ };
639
+ header: {
640
+ flexDirection: "row";
641
+ alignItems: "center";
642
+ justifyContent: "space-between";
643
+ paddingHorizontal: number;
644
+ paddingVertical: number;
645
+ };
646
+ arrowBtn: {
647
+ padding: number;
648
+ };
649
+ headerCenter: {
650
+ flexDirection: "row";
651
+ alignItems: "baseline";
652
+ };
653
+ headerMonth: {
654
+ color: string;
655
+ fontFamily?: string | undefined;
656
+ fontSize: number;
657
+ fontStyle?: "normal" | "italic" | undefined;
658
+ fontWeight?: "normal" | "bold" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "light" | "medium" | "regular" | "semibold" | "condensedBold" | "condensed" | "heavy" | "black" | undefined;
659
+ letterSpacing?: number | undefined;
660
+ lineHeight?: number | undefined;
661
+ textAlign?: "auto" | "left" | "right" | "center" | "justify" | undefined;
662
+ textDecorationLine?: "none" | "underline" | "line-through" | "underline line-through" | undefined;
663
+ textDecorationStyle?: "solid" | "double" | "dotted" | "dashed" | undefined;
664
+ textDecorationColor?: react_native.ColorValue | undefined;
665
+ textShadowColor?: react_native.ColorValue | undefined;
666
+ textShadowOffset?: {
667
+ width: number;
668
+ height: number;
669
+ } | undefined;
670
+ textShadowRadius?: number | undefined;
671
+ textTransform?: "none" | "capitalize" | "uppercase" | "lowercase" | undefined;
672
+ userSelect?: "auto" | "none" | "text" | "contain" | "all" | undefined;
673
+ fontVariant?: react_native.FontVariant[] | undefined;
674
+ writingDirection?: "auto" | "ltr" | "rtl" | undefined;
675
+ backfaceVisibility?: "visible" | "hidden" | undefined;
676
+ backgroundColor?: react_native.ColorValue | undefined;
677
+ borderBlockColor?: react_native.ColorValue | undefined;
678
+ borderBlockEndColor?: react_native.ColorValue | undefined;
679
+ borderBlockStartColor?: react_native.ColorValue | undefined;
680
+ borderBottomColor?: react_native.ColorValue | undefined;
681
+ borderBottomEndRadius?: react_native.AnimatableNumericValue | string | undefined;
682
+ borderBottomLeftRadius?: react_native.AnimatableNumericValue | string | undefined;
683
+ borderBottomRightRadius?: react_native.AnimatableNumericValue | string | undefined;
684
+ borderBottomStartRadius?: react_native.AnimatableNumericValue | string | undefined;
685
+ borderColor?: react_native.ColorValue | undefined;
686
+ borderCurve?: "circular" | "continuous" | undefined;
687
+ borderEndColor?: react_native.ColorValue | undefined;
688
+ borderEndEndRadius?: react_native.AnimatableNumericValue | string | undefined;
689
+ borderEndStartRadius?: react_native.AnimatableNumericValue | string | undefined;
690
+ borderLeftColor?: react_native.ColorValue | undefined;
691
+ borderRadius?: react_native.AnimatableNumericValue | string | undefined;
692
+ borderRightColor?: react_native.ColorValue | undefined;
693
+ borderStartColor?: react_native.ColorValue | undefined;
694
+ borderStartEndRadius?: react_native.AnimatableNumericValue | string | undefined;
695
+ borderStartStartRadius?: react_native.AnimatableNumericValue | string | undefined;
696
+ borderStyle?: "solid" | "dotted" | "dashed" | undefined;
697
+ borderTopColor?: react_native.ColorValue | undefined;
698
+ borderTopEndRadius?: react_native.AnimatableNumericValue | string | undefined;
699
+ borderTopLeftRadius?: react_native.AnimatableNumericValue | string | undefined;
700
+ borderTopRightRadius?: react_native.AnimatableNumericValue | string | undefined;
701
+ borderTopStartRadius?: react_native.AnimatableNumericValue | string | undefined;
702
+ outlineColor?: react_native.ColorValue | undefined;
703
+ outlineOffset?: react_native.AnimatableNumericValue | undefined;
704
+ outlineStyle?: "solid" | "dotted" | "dashed" | undefined;
705
+ outlineWidth?: react_native.AnimatableNumericValue | undefined;
706
+ opacity?: react_native.AnimatableNumericValue | undefined;
707
+ elevation?: number | undefined;
708
+ pointerEvents?: "box-none" | "none" | "box-only" | "auto" | undefined;
709
+ isolation?: "auto" | "isolate" | undefined;
710
+ cursor?: react_native.CursorValue | undefined;
711
+ boxShadow?: ReadonlyArray<react_native.BoxShadowValue> | string | undefined;
712
+ filter?: ReadonlyArray<react_native.FilterFunction> | string | undefined;
713
+ mixBlendMode?: react_native.BlendMode | undefined;
714
+ experimental_backgroundImage?: ReadonlyArray<react_native.GradientValue> | string | undefined;
715
+ alignContent?: "flex-start" | "flex-end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly" | undefined;
716
+ alignItems?: react_native.FlexAlignType | undefined;
717
+ alignSelf?: "auto" | react_native.FlexAlignType | undefined;
718
+ aspectRatio?: number | string | undefined;
719
+ borderBottomWidth?: number | undefined;
720
+ borderEndWidth?: number | undefined;
721
+ borderLeftWidth?: number | undefined;
722
+ borderRightWidth?: number | undefined;
723
+ borderStartWidth?: number | undefined;
724
+ borderTopWidth?: number | undefined;
725
+ borderWidth?: number | undefined;
726
+ bottom?: react_native.DimensionValue | undefined;
727
+ boxSizing?: "border-box" | "content-box" | undefined;
728
+ display?: "none" | "flex" | "contents" | undefined;
729
+ end?: react_native.DimensionValue | undefined;
730
+ flex?: number | undefined;
731
+ flexBasis?: react_native.DimensionValue | undefined;
732
+ flexDirection?: "row" | "column" | "row-reverse" | "column-reverse" | undefined;
733
+ rowGap?: number | string | undefined;
734
+ gap?: number | string | undefined;
735
+ columnGap?: number | string | undefined;
736
+ flexGrow?: number | undefined;
737
+ flexShrink?: number | undefined;
738
+ flexWrap?: "wrap" | "nowrap" | "wrap-reverse" | undefined;
739
+ height?: react_native.DimensionValue | undefined;
740
+ justifyContent?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly" | undefined;
741
+ left?: react_native.DimensionValue | undefined;
742
+ margin?: react_native.DimensionValue | undefined;
743
+ marginBottom?: react_native.DimensionValue | undefined;
744
+ marginEnd?: react_native.DimensionValue | undefined;
745
+ marginHorizontal?: react_native.DimensionValue | undefined;
746
+ marginLeft?: react_native.DimensionValue | undefined;
747
+ marginRight?: react_native.DimensionValue | undefined;
748
+ marginStart?: react_native.DimensionValue | undefined;
749
+ marginTop?: react_native.DimensionValue | undefined;
750
+ marginVertical?: react_native.DimensionValue | undefined;
751
+ maxHeight?: react_native.DimensionValue | undefined;
752
+ maxWidth?: react_native.DimensionValue | undefined;
753
+ minHeight?: react_native.DimensionValue | undefined;
754
+ minWidth?: react_native.DimensionValue | undefined;
755
+ overflow?: "visible" | "hidden" | "scroll" | undefined;
756
+ padding?: react_native.DimensionValue | undefined;
757
+ paddingBottom?: react_native.DimensionValue | undefined;
758
+ paddingEnd?: react_native.DimensionValue | undefined;
759
+ paddingHorizontal?: react_native.DimensionValue | undefined;
760
+ paddingLeft?: react_native.DimensionValue | undefined;
761
+ paddingRight?: react_native.DimensionValue | undefined;
762
+ paddingStart?: react_native.DimensionValue | undefined;
763
+ paddingTop?: react_native.DimensionValue | undefined;
764
+ paddingVertical?: react_native.DimensionValue | undefined;
765
+ position?: "absolute" | "relative" | "static" | undefined;
766
+ right?: react_native.DimensionValue | undefined;
767
+ start?: react_native.DimensionValue | undefined;
768
+ top?: react_native.DimensionValue | undefined;
769
+ width?: react_native.DimensionValue | undefined;
770
+ zIndex?: number | undefined;
771
+ direction?: "inherit" | "ltr" | "rtl" | undefined;
772
+ inset?: react_native.DimensionValue | undefined;
773
+ insetBlock?: react_native.DimensionValue | undefined;
774
+ insetBlockEnd?: react_native.DimensionValue | undefined;
775
+ insetBlockStart?: react_native.DimensionValue | undefined;
776
+ insetInline?: react_native.DimensionValue | undefined;
777
+ insetInlineEnd?: react_native.DimensionValue | undefined;
778
+ insetInlineStart?: react_native.DimensionValue | undefined;
779
+ marginBlock?: react_native.DimensionValue | undefined;
780
+ marginBlockEnd?: react_native.DimensionValue | undefined;
781
+ marginBlockStart?: react_native.DimensionValue | undefined;
782
+ marginInline?: react_native.DimensionValue | undefined;
783
+ marginInlineEnd?: react_native.DimensionValue | undefined;
784
+ marginInlineStart?: react_native.DimensionValue | undefined;
785
+ paddingBlock?: react_native.DimensionValue | undefined;
786
+ paddingBlockEnd?: react_native.DimensionValue | undefined;
787
+ paddingBlockStart?: react_native.DimensionValue | undefined;
788
+ paddingInline?: react_native.DimensionValue | undefined;
789
+ paddingInlineEnd?: react_native.DimensionValue | undefined;
790
+ paddingInlineStart?: react_native.DimensionValue | undefined;
791
+ shadowColor?: react_native.ColorValue | undefined;
792
+ shadowOffset?: Readonly<{
793
+ width: number;
794
+ height: number;
795
+ }> | undefined;
796
+ shadowOpacity?: react_native.AnimatableNumericValue | undefined;
797
+ shadowRadius?: number | undefined;
798
+ transform?: Readonly<react_native.MaximumOneOf<react_native.PerspectiveTransform & react_native.RotateTransform & react_native.RotateXTransform & react_native.RotateYTransform & react_native.RotateZTransform & react_native.ScaleTransform & react_native.ScaleXTransform & react_native.ScaleYTransform & react_native.TranslateXTransform & react_native.TranslateYTransform & react_native.SkewXTransform & react_native.SkewYTransform & react_native.MatrixTransform>[]> | string | undefined;
799
+ transformOrigin?: Array<string | number> | string | undefined;
800
+ transformMatrix?: Array<number> | undefined;
801
+ rotation?: react_native.AnimatableNumericValue | undefined;
802
+ scaleX?: react_native.AnimatableNumericValue | undefined;
803
+ scaleY?: react_native.AnimatableNumericValue | undefined;
804
+ translateX?: react_native.AnimatableNumericValue | undefined;
805
+ translateY?: react_native.AnimatableNumericValue | undefined;
806
+ textAlignVertical?: "auto" | "top" | "bottom" | "center" | undefined;
807
+ verticalAlign?: "auto" | "top" | "bottom" | "middle" | undefined;
808
+ includeFontPadding?: boolean | undefined;
809
+ };
810
+ headerYear: {
811
+ color: string;
812
+ fontFamily?: string | undefined;
813
+ fontSize: number;
814
+ fontStyle?: "normal" | "italic" | undefined;
815
+ fontWeight?: "normal" | "bold" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "light" | "medium" | "regular" | "semibold" | "condensedBold" | "condensed" | "heavy" | "black" | undefined;
816
+ letterSpacing?: number | undefined;
817
+ lineHeight?: number | undefined;
818
+ textAlign?: "auto" | "left" | "right" | "center" | "justify" | undefined;
819
+ textDecorationLine?: "none" | "underline" | "line-through" | "underline line-through" | undefined;
820
+ textDecorationStyle?: "solid" | "double" | "dotted" | "dashed" | undefined;
821
+ textDecorationColor?: react_native.ColorValue | undefined;
822
+ textShadowColor?: react_native.ColorValue | undefined;
823
+ textShadowOffset?: {
824
+ width: number;
825
+ height: number;
826
+ } | undefined;
827
+ textShadowRadius?: number | undefined;
828
+ textTransform?: "none" | "capitalize" | "uppercase" | "lowercase" | undefined;
829
+ userSelect?: "auto" | "none" | "text" | "contain" | "all" | undefined;
830
+ fontVariant?: react_native.FontVariant[] | undefined;
831
+ writingDirection?: "auto" | "ltr" | "rtl" | undefined;
832
+ backfaceVisibility?: "visible" | "hidden" | undefined;
833
+ backgroundColor?: react_native.ColorValue | undefined;
834
+ borderBlockColor?: react_native.ColorValue | undefined;
835
+ borderBlockEndColor?: react_native.ColorValue | undefined;
836
+ borderBlockStartColor?: react_native.ColorValue | undefined;
837
+ borderBottomColor?: react_native.ColorValue | undefined;
838
+ borderBottomEndRadius?: react_native.AnimatableNumericValue | string | undefined;
839
+ borderBottomLeftRadius?: react_native.AnimatableNumericValue | string | undefined;
840
+ borderBottomRightRadius?: react_native.AnimatableNumericValue | string | undefined;
841
+ borderBottomStartRadius?: react_native.AnimatableNumericValue | string | undefined;
842
+ borderColor?: react_native.ColorValue | undefined;
843
+ borderCurve?: "circular" | "continuous" | undefined;
844
+ borderEndColor?: react_native.ColorValue | undefined;
845
+ borderEndEndRadius?: react_native.AnimatableNumericValue | string | undefined;
846
+ borderEndStartRadius?: react_native.AnimatableNumericValue | string | undefined;
847
+ borderLeftColor?: react_native.ColorValue | undefined;
848
+ borderRadius?: react_native.AnimatableNumericValue | string | undefined;
849
+ borderRightColor?: react_native.ColorValue | undefined;
850
+ borderStartColor?: react_native.ColorValue | undefined;
851
+ borderStartEndRadius?: react_native.AnimatableNumericValue | string | undefined;
852
+ borderStartStartRadius?: react_native.AnimatableNumericValue | string | undefined;
853
+ borderStyle?: "solid" | "dotted" | "dashed" | undefined;
854
+ borderTopColor?: react_native.ColorValue | undefined;
855
+ borderTopEndRadius?: react_native.AnimatableNumericValue | string | undefined;
856
+ borderTopLeftRadius?: react_native.AnimatableNumericValue | string | undefined;
857
+ borderTopRightRadius?: react_native.AnimatableNumericValue | string | undefined;
858
+ borderTopStartRadius?: react_native.AnimatableNumericValue | string | undefined;
859
+ outlineColor?: react_native.ColorValue | undefined;
860
+ outlineOffset?: react_native.AnimatableNumericValue | undefined;
861
+ outlineStyle?: "solid" | "dotted" | "dashed" | undefined;
862
+ outlineWidth?: react_native.AnimatableNumericValue | undefined;
863
+ opacity?: react_native.AnimatableNumericValue | undefined;
864
+ elevation?: number | undefined;
865
+ pointerEvents?: "box-none" | "none" | "box-only" | "auto" | undefined;
866
+ isolation?: "auto" | "isolate" | undefined;
867
+ cursor?: react_native.CursorValue | undefined;
868
+ boxShadow?: ReadonlyArray<react_native.BoxShadowValue> | string | undefined;
869
+ filter?: ReadonlyArray<react_native.FilterFunction> | string | undefined;
870
+ mixBlendMode?: react_native.BlendMode | undefined;
871
+ experimental_backgroundImage?: ReadonlyArray<react_native.GradientValue> | string | undefined;
872
+ alignContent?: "flex-start" | "flex-end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly" | undefined;
873
+ alignItems?: react_native.FlexAlignType | undefined;
874
+ alignSelf?: "auto" | react_native.FlexAlignType | undefined;
875
+ aspectRatio?: number | string | undefined;
876
+ borderBottomWidth?: number | undefined;
877
+ borderEndWidth?: number | undefined;
878
+ borderLeftWidth?: number | undefined;
879
+ borderRightWidth?: number | undefined;
880
+ borderStartWidth?: number | undefined;
881
+ borderTopWidth?: number | undefined;
882
+ borderWidth?: number | undefined;
883
+ bottom?: react_native.DimensionValue | undefined;
884
+ boxSizing?: "border-box" | "content-box" | undefined;
885
+ display?: "none" | "flex" | "contents" | undefined;
886
+ end?: react_native.DimensionValue | undefined;
887
+ flex?: number | undefined;
888
+ flexBasis?: react_native.DimensionValue | undefined;
889
+ flexDirection?: "row" | "column" | "row-reverse" | "column-reverse" | undefined;
890
+ rowGap?: number | string | undefined;
891
+ gap?: number | string | undefined;
892
+ columnGap?: number | string | undefined;
893
+ flexGrow?: number | undefined;
894
+ flexShrink?: number | undefined;
895
+ flexWrap?: "wrap" | "nowrap" | "wrap-reverse" | undefined;
896
+ height?: react_native.DimensionValue | undefined;
897
+ justifyContent?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly" | undefined;
898
+ left?: react_native.DimensionValue | undefined;
899
+ margin?: react_native.DimensionValue | undefined;
900
+ marginBottom?: react_native.DimensionValue | undefined;
901
+ marginEnd?: react_native.DimensionValue | undefined;
902
+ marginHorizontal?: react_native.DimensionValue | undefined;
903
+ marginLeft?: react_native.DimensionValue | undefined;
904
+ marginRight?: react_native.DimensionValue | undefined;
905
+ marginStart?: react_native.DimensionValue | undefined;
906
+ marginTop?: react_native.DimensionValue | undefined;
907
+ marginVertical?: react_native.DimensionValue | undefined;
908
+ maxHeight?: react_native.DimensionValue | undefined;
909
+ maxWidth?: react_native.DimensionValue | undefined;
910
+ minHeight?: react_native.DimensionValue | undefined;
911
+ minWidth?: react_native.DimensionValue | undefined;
912
+ overflow?: "visible" | "hidden" | "scroll" | undefined;
913
+ padding?: react_native.DimensionValue | undefined;
914
+ paddingBottom?: react_native.DimensionValue | undefined;
915
+ paddingEnd?: react_native.DimensionValue | undefined;
916
+ paddingHorizontal?: react_native.DimensionValue | undefined;
917
+ paddingLeft?: react_native.DimensionValue | undefined;
918
+ paddingRight?: react_native.DimensionValue | undefined;
919
+ paddingStart?: react_native.DimensionValue | undefined;
920
+ paddingTop?: react_native.DimensionValue | undefined;
921
+ paddingVertical?: react_native.DimensionValue | undefined;
922
+ position?: "absolute" | "relative" | "static" | undefined;
923
+ right?: react_native.DimensionValue | undefined;
924
+ start?: react_native.DimensionValue | undefined;
925
+ top?: react_native.DimensionValue | undefined;
926
+ width?: react_native.DimensionValue | undefined;
927
+ zIndex?: number | undefined;
928
+ direction?: "inherit" | "ltr" | "rtl" | undefined;
929
+ inset?: react_native.DimensionValue | undefined;
930
+ insetBlock?: react_native.DimensionValue | undefined;
931
+ insetBlockEnd?: react_native.DimensionValue | undefined;
932
+ insetBlockStart?: react_native.DimensionValue | undefined;
933
+ insetInline?: react_native.DimensionValue | undefined;
934
+ insetInlineEnd?: react_native.DimensionValue | undefined;
935
+ insetInlineStart?: react_native.DimensionValue | undefined;
936
+ marginBlock?: react_native.DimensionValue | undefined;
937
+ marginBlockEnd?: react_native.DimensionValue | undefined;
938
+ marginBlockStart?: react_native.DimensionValue | undefined;
939
+ marginInline?: react_native.DimensionValue | undefined;
940
+ marginInlineEnd?: react_native.DimensionValue | undefined;
941
+ marginInlineStart?: react_native.DimensionValue | undefined;
942
+ paddingBlock?: react_native.DimensionValue | undefined;
943
+ paddingBlockEnd?: react_native.DimensionValue | undefined;
944
+ paddingBlockStart?: react_native.DimensionValue | undefined;
945
+ paddingInline?: react_native.DimensionValue | undefined;
946
+ paddingInlineEnd?: react_native.DimensionValue | undefined;
947
+ paddingInlineStart?: react_native.DimensionValue | undefined;
948
+ shadowColor?: react_native.ColorValue | undefined;
949
+ shadowOffset?: Readonly<{
950
+ width: number;
951
+ height: number;
952
+ }> | undefined;
953
+ shadowOpacity?: react_native.AnimatableNumericValue | undefined;
954
+ shadowRadius?: number | undefined;
955
+ transform?: Readonly<react_native.MaximumOneOf<react_native.PerspectiveTransform & react_native.RotateTransform & react_native.RotateXTransform & react_native.RotateYTransform & react_native.RotateZTransform & react_native.ScaleTransform & react_native.ScaleXTransform & react_native.ScaleYTransform & react_native.TranslateXTransform & react_native.TranslateYTransform & react_native.SkewXTransform & react_native.SkewYTransform & react_native.MatrixTransform>[]> | string | undefined;
956
+ transformOrigin?: Array<string | number> | string | undefined;
957
+ transformMatrix?: Array<number> | undefined;
958
+ rotation?: react_native.AnimatableNumericValue | undefined;
959
+ scaleX?: react_native.AnimatableNumericValue | undefined;
960
+ scaleY?: react_native.AnimatableNumericValue | undefined;
961
+ translateX?: react_native.AnimatableNumericValue | undefined;
962
+ translateY?: react_native.AnimatableNumericValue | undefined;
963
+ textAlignVertical?: "auto" | "top" | "bottom" | "center" | undefined;
964
+ verticalAlign?: "auto" | "top" | "bottom" | "middle" | undefined;
965
+ includeFontPadding?: boolean | undefined;
966
+ };
967
+ headerTime: {
968
+ color?: react_native.ColorValue | undefined;
969
+ fontFamily?: string | undefined;
970
+ fontSize: number;
971
+ fontStyle?: "normal" | "italic" | undefined;
972
+ fontWeight?: "normal" | "bold" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "light" | "medium" | "regular" | "semibold" | "condensedBold" | "condensed" | "heavy" | "black" | undefined;
973
+ letterSpacing?: number | undefined;
974
+ lineHeight?: number | undefined;
975
+ textAlign?: "auto" | "left" | "right" | "center" | "justify" | undefined;
976
+ textDecorationLine?: "none" | "underline" | "line-through" | "underline line-through" | undefined;
977
+ textDecorationStyle?: "solid" | "double" | "dotted" | "dashed" | undefined;
978
+ textDecorationColor?: react_native.ColorValue | undefined;
979
+ textShadowColor?: react_native.ColorValue | undefined;
980
+ textShadowOffset?: {
981
+ width: number;
982
+ height: number;
983
+ } | undefined;
984
+ textShadowRadius?: number | undefined;
985
+ textTransform?: "none" | "capitalize" | "uppercase" | "lowercase" | undefined;
986
+ userSelect?: "auto" | "none" | "text" | "contain" | "all" | undefined;
987
+ fontVariant?: react_native.FontVariant[] | undefined;
988
+ writingDirection?: "auto" | "ltr" | "rtl" | undefined;
989
+ backfaceVisibility?: "visible" | "hidden" | undefined;
990
+ backgroundColor?: react_native.ColorValue | undefined;
991
+ borderBlockColor?: react_native.ColorValue | undefined;
992
+ borderBlockEndColor?: react_native.ColorValue | undefined;
993
+ borderBlockStartColor?: react_native.ColorValue | undefined;
994
+ borderBottomColor?: react_native.ColorValue | undefined;
995
+ borderBottomEndRadius?: react_native.AnimatableNumericValue | string | undefined;
996
+ borderBottomLeftRadius?: react_native.AnimatableNumericValue | string | undefined;
997
+ borderBottomRightRadius?: react_native.AnimatableNumericValue | string | undefined;
998
+ borderBottomStartRadius?: react_native.AnimatableNumericValue | string | undefined;
999
+ borderColor?: react_native.ColorValue | undefined;
1000
+ borderCurve?: "circular" | "continuous" | undefined;
1001
+ borderEndColor?: react_native.ColorValue | undefined;
1002
+ borderEndEndRadius?: react_native.AnimatableNumericValue | string | undefined;
1003
+ borderEndStartRadius?: react_native.AnimatableNumericValue | string | undefined;
1004
+ borderLeftColor?: react_native.ColorValue | undefined;
1005
+ borderRadius?: react_native.AnimatableNumericValue | string | undefined;
1006
+ borderRightColor?: react_native.ColorValue | undefined;
1007
+ borderStartColor?: react_native.ColorValue | undefined;
1008
+ borderStartEndRadius?: react_native.AnimatableNumericValue | string | undefined;
1009
+ borderStartStartRadius?: react_native.AnimatableNumericValue | string | undefined;
1010
+ borderStyle?: "solid" | "dotted" | "dashed" | undefined;
1011
+ borderTopColor?: react_native.ColorValue | undefined;
1012
+ borderTopEndRadius?: react_native.AnimatableNumericValue | string | undefined;
1013
+ borderTopLeftRadius?: react_native.AnimatableNumericValue | string | undefined;
1014
+ borderTopRightRadius?: react_native.AnimatableNumericValue | string | undefined;
1015
+ borderTopStartRadius?: react_native.AnimatableNumericValue | string | undefined;
1016
+ outlineColor?: react_native.ColorValue | undefined;
1017
+ outlineOffset?: react_native.AnimatableNumericValue | undefined;
1018
+ outlineStyle?: "solid" | "dotted" | "dashed" | undefined;
1019
+ outlineWidth?: react_native.AnimatableNumericValue | undefined;
1020
+ opacity?: react_native.AnimatableNumericValue | undefined;
1021
+ elevation?: number | undefined;
1022
+ pointerEvents?: "box-none" | "none" | "box-only" | "auto" | undefined;
1023
+ isolation?: "auto" | "isolate" | undefined;
1024
+ cursor?: react_native.CursorValue | undefined;
1025
+ boxShadow?: ReadonlyArray<react_native.BoxShadowValue> | string | undefined;
1026
+ filter?: ReadonlyArray<react_native.FilterFunction> | string | undefined;
1027
+ mixBlendMode?: react_native.BlendMode | undefined;
1028
+ experimental_backgroundImage?: ReadonlyArray<react_native.GradientValue> | string | undefined;
1029
+ alignContent?: "flex-start" | "flex-end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly" | undefined;
1030
+ alignItems?: react_native.FlexAlignType | undefined;
1031
+ alignSelf?: "auto" | react_native.FlexAlignType | undefined;
1032
+ aspectRatio?: number | string | undefined;
1033
+ borderBottomWidth?: number | undefined;
1034
+ borderEndWidth?: number | undefined;
1035
+ borderLeftWidth?: number | undefined;
1036
+ borderRightWidth?: number | undefined;
1037
+ borderStartWidth?: number | undefined;
1038
+ borderTopWidth?: number | undefined;
1039
+ borderWidth?: number | undefined;
1040
+ bottom?: react_native.DimensionValue | undefined;
1041
+ boxSizing?: "border-box" | "content-box" | undefined;
1042
+ display?: "none" | "flex" | "contents" | undefined;
1043
+ end?: react_native.DimensionValue | undefined;
1044
+ flex?: number | undefined;
1045
+ flexBasis?: react_native.DimensionValue | undefined;
1046
+ flexDirection?: "row" | "column" | "row-reverse" | "column-reverse" | undefined;
1047
+ rowGap?: number | string | undefined;
1048
+ gap?: number | string | undefined;
1049
+ columnGap?: number | string | undefined;
1050
+ flexGrow?: number | undefined;
1051
+ flexShrink?: number | undefined;
1052
+ flexWrap?: "wrap" | "nowrap" | "wrap-reverse" | undefined;
1053
+ height?: react_native.DimensionValue | undefined;
1054
+ justifyContent?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly" | undefined;
1055
+ left?: react_native.DimensionValue | undefined;
1056
+ margin?: react_native.DimensionValue | undefined;
1057
+ marginBottom?: react_native.DimensionValue | undefined;
1058
+ marginEnd?: react_native.DimensionValue | undefined;
1059
+ marginHorizontal?: react_native.DimensionValue | undefined;
1060
+ marginLeft?: react_native.DimensionValue | undefined;
1061
+ marginRight?: react_native.DimensionValue | undefined;
1062
+ marginStart?: react_native.DimensionValue | undefined;
1063
+ marginTop?: react_native.DimensionValue | undefined;
1064
+ marginVertical?: react_native.DimensionValue | undefined;
1065
+ maxHeight?: react_native.DimensionValue | undefined;
1066
+ maxWidth?: react_native.DimensionValue | undefined;
1067
+ minHeight?: react_native.DimensionValue | undefined;
1068
+ minWidth?: react_native.DimensionValue | undefined;
1069
+ overflow?: "visible" | "hidden" | "scroll" | undefined;
1070
+ padding?: react_native.DimensionValue | undefined;
1071
+ paddingBottom?: react_native.DimensionValue | undefined;
1072
+ paddingEnd?: react_native.DimensionValue | undefined;
1073
+ paddingHorizontal?: react_native.DimensionValue | undefined;
1074
+ paddingLeft?: react_native.DimensionValue | undefined;
1075
+ paddingRight?: react_native.DimensionValue | undefined;
1076
+ paddingStart?: react_native.DimensionValue | undefined;
1077
+ paddingTop?: react_native.DimensionValue | undefined;
1078
+ paddingVertical?: react_native.DimensionValue | undefined;
1079
+ position?: "absolute" | "relative" | "static" | undefined;
1080
+ right?: react_native.DimensionValue | undefined;
1081
+ start?: react_native.DimensionValue | undefined;
1082
+ top?: react_native.DimensionValue | undefined;
1083
+ width?: react_native.DimensionValue | undefined;
1084
+ zIndex?: number | undefined;
1085
+ direction?: "inherit" | "ltr" | "rtl" | undefined;
1086
+ inset?: react_native.DimensionValue | undefined;
1087
+ insetBlock?: react_native.DimensionValue | undefined;
1088
+ insetBlockEnd?: react_native.DimensionValue | undefined;
1089
+ insetBlockStart?: react_native.DimensionValue | undefined;
1090
+ insetInline?: react_native.DimensionValue | undefined;
1091
+ insetInlineEnd?: react_native.DimensionValue | undefined;
1092
+ insetInlineStart?: react_native.DimensionValue | undefined;
1093
+ marginBlock?: react_native.DimensionValue | undefined;
1094
+ marginBlockEnd?: react_native.DimensionValue | undefined;
1095
+ marginBlockStart?: react_native.DimensionValue | undefined;
1096
+ marginInline?: react_native.DimensionValue | undefined;
1097
+ marginInlineEnd?: react_native.DimensionValue | undefined;
1098
+ marginInlineStart?: react_native.DimensionValue | undefined;
1099
+ paddingBlock?: react_native.DimensionValue | undefined;
1100
+ paddingBlockEnd?: react_native.DimensionValue | undefined;
1101
+ paddingBlockStart?: react_native.DimensionValue | undefined;
1102
+ paddingInline?: react_native.DimensionValue | undefined;
1103
+ paddingInlineEnd?: react_native.DimensionValue | undefined;
1104
+ paddingInlineStart?: react_native.DimensionValue | undefined;
1105
+ shadowColor?: react_native.ColorValue | undefined;
1106
+ shadowOffset?: Readonly<{
1107
+ width: number;
1108
+ height: number;
1109
+ }> | undefined;
1110
+ shadowOpacity?: react_native.AnimatableNumericValue | undefined;
1111
+ shadowRadius?: number | undefined;
1112
+ transform?: Readonly<react_native.MaximumOneOf<react_native.PerspectiveTransform & react_native.RotateTransform & react_native.RotateXTransform & react_native.RotateYTransform & react_native.RotateZTransform & react_native.ScaleTransform & react_native.ScaleXTransform & react_native.ScaleYTransform & react_native.TranslateXTransform & react_native.TranslateYTransform & react_native.SkewXTransform & react_native.SkewYTransform & react_native.MatrixTransform>[]> | string | undefined;
1113
+ transformOrigin?: Array<string | number> | string | undefined;
1114
+ transformMatrix?: Array<number> | undefined;
1115
+ rotation?: react_native.AnimatableNumericValue | undefined;
1116
+ scaleX?: react_native.AnimatableNumericValue | undefined;
1117
+ scaleY?: react_native.AnimatableNumericValue | undefined;
1118
+ translateX?: react_native.AnimatableNumericValue | undefined;
1119
+ translateY?: react_native.AnimatableNumericValue | undefined;
1120
+ textAlignVertical?: "auto" | "top" | "bottom" | "center" | undefined;
1121
+ verticalAlign?: "auto" | "top" | "bottom" | "middle" | undefined;
1122
+ includeFontPadding?: boolean | undefined;
1123
+ };
1124
+ timeSection: {
1125
+ borderTopWidth: number;
1126
+ borderTopColor: string;
1127
+ marginTop: number;
1128
+ };
1129
+ timeRangeRow: {
1130
+ flexDirection: "row";
1131
+ justifyContent: "space-evenly";
1132
+ alignItems: "flex-start";
1133
+ };
1134
+ timeDivider: {
1135
+ width: number;
1136
+ backgroundColor: string;
1137
+ alignSelf: "stretch";
1138
+ marginVertical: number;
1139
+ };
1140
+ };
1141
+
1142
+ declare function getCalendarMonthStyles(theme: AppTheme): {
1143
+ monthContainer: {
1144
+ paddingHorizontal: number;
1145
+ };
1146
+ weekdayRow: {
1147
+ flexDirection: "row";
1148
+ height: number;
1149
+ alignItems: "center";
1150
+ };
1151
+ weekdayCell: {
1152
+ alignItems: "center";
1153
+ };
1154
+ weekdayText: {
1155
+ color: string;
1156
+ fontFamily?: string | undefined;
1157
+ fontSize: number;
1158
+ fontStyle?: "normal" | "italic" | undefined;
1159
+ fontWeight?: "normal" | "bold" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "light" | "medium" | "regular" | "semibold" | "condensedBold" | "condensed" | "heavy" | "black" | undefined;
1160
+ letterSpacing?: number | undefined;
1161
+ lineHeight?: number | undefined;
1162
+ textAlign?: "auto" | "left" | "right" | "center" | "justify" | undefined;
1163
+ textDecorationLine?: "none" | "underline" | "line-through" | "underline line-through" | undefined;
1164
+ textDecorationStyle?: "solid" | "double" | "dotted" | "dashed" | undefined;
1165
+ textDecorationColor?: react_native.ColorValue | undefined;
1166
+ textShadowColor?: react_native.ColorValue | undefined;
1167
+ textShadowOffset?: {
1168
+ width: number;
1169
+ height: number;
1170
+ } | undefined;
1171
+ textShadowRadius?: number | undefined;
1172
+ textTransform?: "none" | "capitalize" | "uppercase" | "lowercase" | undefined;
1173
+ userSelect?: "auto" | "none" | "text" | "contain" | "all" | undefined;
1174
+ fontVariant?: react_native.FontVariant[] | undefined;
1175
+ writingDirection?: "auto" | "ltr" | "rtl" | undefined;
1176
+ backfaceVisibility?: "visible" | "hidden" | undefined;
1177
+ backgroundColor?: react_native.ColorValue | undefined;
1178
+ borderBlockColor?: react_native.ColorValue | undefined;
1179
+ borderBlockEndColor?: react_native.ColorValue | undefined;
1180
+ borderBlockStartColor?: react_native.ColorValue | undefined;
1181
+ borderBottomColor?: react_native.ColorValue | undefined;
1182
+ borderBottomEndRadius?: react_native.AnimatableNumericValue | string | undefined;
1183
+ borderBottomLeftRadius?: react_native.AnimatableNumericValue | string | undefined;
1184
+ borderBottomRightRadius?: react_native.AnimatableNumericValue | string | undefined;
1185
+ borderBottomStartRadius?: react_native.AnimatableNumericValue | string | undefined;
1186
+ borderColor?: react_native.ColorValue | undefined;
1187
+ borderCurve?: "circular" | "continuous" | undefined;
1188
+ borderEndColor?: react_native.ColorValue | undefined;
1189
+ borderEndEndRadius?: react_native.AnimatableNumericValue | string | undefined;
1190
+ borderEndStartRadius?: react_native.AnimatableNumericValue | string | undefined;
1191
+ borderLeftColor?: react_native.ColorValue | undefined;
1192
+ borderRadius?: react_native.AnimatableNumericValue | string | undefined;
1193
+ borderRightColor?: react_native.ColorValue | undefined;
1194
+ borderStartColor?: react_native.ColorValue | undefined;
1195
+ borderStartEndRadius?: react_native.AnimatableNumericValue | string | undefined;
1196
+ borderStartStartRadius?: react_native.AnimatableNumericValue | string | undefined;
1197
+ borderStyle?: "solid" | "dotted" | "dashed" | undefined;
1198
+ borderTopColor?: react_native.ColorValue | undefined;
1199
+ borderTopEndRadius?: react_native.AnimatableNumericValue | string | undefined;
1200
+ borderTopLeftRadius?: react_native.AnimatableNumericValue | string | undefined;
1201
+ borderTopRightRadius?: react_native.AnimatableNumericValue | string | undefined;
1202
+ borderTopStartRadius?: react_native.AnimatableNumericValue | string | undefined;
1203
+ outlineColor?: react_native.ColorValue | undefined;
1204
+ outlineOffset?: react_native.AnimatableNumericValue | undefined;
1205
+ outlineStyle?: "solid" | "dotted" | "dashed" | undefined;
1206
+ outlineWidth?: react_native.AnimatableNumericValue | undefined;
1207
+ opacity?: react_native.AnimatableNumericValue | undefined;
1208
+ elevation?: number | undefined;
1209
+ pointerEvents?: "box-none" | "none" | "box-only" | "auto" | undefined;
1210
+ isolation?: "auto" | "isolate" | undefined;
1211
+ cursor?: react_native.CursorValue | undefined;
1212
+ boxShadow?: ReadonlyArray<react_native.BoxShadowValue> | string | undefined;
1213
+ filter?: ReadonlyArray<react_native.FilterFunction> | string | undefined;
1214
+ mixBlendMode?: react_native.BlendMode | undefined;
1215
+ experimental_backgroundImage?: ReadonlyArray<react_native.GradientValue> | string | undefined;
1216
+ alignContent?: "flex-start" | "flex-end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly" | undefined;
1217
+ alignItems?: react_native.FlexAlignType | undefined;
1218
+ alignSelf?: "auto" | react_native.FlexAlignType | undefined;
1219
+ aspectRatio?: number | string | undefined;
1220
+ borderBottomWidth?: number | undefined;
1221
+ borderEndWidth?: number | undefined;
1222
+ borderLeftWidth?: number | undefined;
1223
+ borderRightWidth?: number | undefined;
1224
+ borderStartWidth?: number | undefined;
1225
+ borderTopWidth?: number | undefined;
1226
+ borderWidth?: number | undefined;
1227
+ bottom?: react_native.DimensionValue | undefined;
1228
+ boxSizing?: "border-box" | "content-box" | undefined;
1229
+ display?: "none" | "flex" | "contents" | undefined;
1230
+ end?: react_native.DimensionValue | undefined;
1231
+ flex?: number | undefined;
1232
+ flexBasis?: react_native.DimensionValue | undefined;
1233
+ flexDirection?: "row" | "column" | "row-reverse" | "column-reverse" | undefined;
1234
+ rowGap?: number | string | undefined;
1235
+ gap?: number | string | undefined;
1236
+ columnGap?: number | string | undefined;
1237
+ flexGrow?: number | undefined;
1238
+ flexShrink?: number | undefined;
1239
+ flexWrap?: "wrap" | "nowrap" | "wrap-reverse" | undefined;
1240
+ height?: react_native.DimensionValue | undefined;
1241
+ justifyContent?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly" | undefined;
1242
+ left?: react_native.DimensionValue | undefined;
1243
+ margin?: react_native.DimensionValue | undefined;
1244
+ marginBottom?: react_native.DimensionValue | undefined;
1245
+ marginEnd?: react_native.DimensionValue | undefined;
1246
+ marginHorizontal?: react_native.DimensionValue | undefined;
1247
+ marginLeft?: react_native.DimensionValue | undefined;
1248
+ marginRight?: react_native.DimensionValue | undefined;
1249
+ marginStart?: react_native.DimensionValue | undefined;
1250
+ marginTop?: react_native.DimensionValue | undefined;
1251
+ marginVertical?: react_native.DimensionValue | undefined;
1252
+ maxHeight?: react_native.DimensionValue | undefined;
1253
+ maxWidth?: react_native.DimensionValue | undefined;
1254
+ minHeight?: react_native.DimensionValue | undefined;
1255
+ minWidth?: react_native.DimensionValue | undefined;
1256
+ overflow?: "visible" | "hidden" | "scroll" | undefined;
1257
+ padding?: react_native.DimensionValue | undefined;
1258
+ paddingBottom?: react_native.DimensionValue | undefined;
1259
+ paddingEnd?: react_native.DimensionValue | undefined;
1260
+ paddingHorizontal?: react_native.DimensionValue | undefined;
1261
+ paddingLeft?: react_native.DimensionValue | undefined;
1262
+ paddingRight?: react_native.DimensionValue | undefined;
1263
+ paddingStart?: react_native.DimensionValue | undefined;
1264
+ paddingTop?: react_native.DimensionValue | undefined;
1265
+ paddingVertical?: react_native.DimensionValue | undefined;
1266
+ position?: "absolute" | "relative" | "static" | undefined;
1267
+ right?: react_native.DimensionValue | undefined;
1268
+ start?: react_native.DimensionValue | undefined;
1269
+ top?: react_native.DimensionValue | undefined;
1270
+ width?: react_native.DimensionValue | undefined;
1271
+ zIndex?: number | undefined;
1272
+ direction?: "inherit" | "ltr" | "rtl" | undefined;
1273
+ inset?: react_native.DimensionValue | undefined;
1274
+ insetBlock?: react_native.DimensionValue | undefined;
1275
+ insetBlockEnd?: react_native.DimensionValue | undefined;
1276
+ insetBlockStart?: react_native.DimensionValue | undefined;
1277
+ insetInline?: react_native.DimensionValue | undefined;
1278
+ insetInlineEnd?: react_native.DimensionValue | undefined;
1279
+ insetInlineStart?: react_native.DimensionValue | undefined;
1280
+ marginBlock?: react_native.DimensionValue | undefined;
1281
+ marginBlockEnd?: react_native.DimensionValue | undefined;
1282
+ marginBlockStart?: react_native.DimensionValue | undefined;
1283
+ marginInline?: react_native.DimensionValue | undefined;
1284
+ marginInlineEnd?: react_native.DimensionValue | undefined;
1285
+ marginInlineStart?: react_native.DimensionValue | undefined;
1286
+ paddingBlock?: react_native.DimensionValue | undefined;
1287
+ paddingBlockEnd?: react_native.DimensionValue | undefined;
1288
+ paddingBlockStart?: react_native.DimensionValue | undefined;
1289
+ paddingInline?: react_native.DimensionValue | undefined;
1290
+ paddingInlineEnd?: react_native.DimensionValue | undefined;
1291
+ paddingInlineStart?: react_native.DimensionValue | undefined;
1292
+ shadowColor?: react_native.ColorValue | undefined;
1293
+ shadowOffset?: Readonly<{
1294
+ width: number;
1295
+ height: number;
1296
+ }> | undefined;
1297
+ shadowOpacity?: react_native.AnimatableNumericValue | undefined;
1298
+ shadowRadius?: number | undefined;
1299
+ transform?: Readonly<react_native.MaximumOneOf<react_native.PerspectiveTransform & react_native.RotateTransform & react_native.RotateXTransform & react_native.RotateYTransform & react_native.RotateZTransform & react_native.ScaleTransform & react_native.ScaleXTransform & react_native.ScaleYTransform & react_native.TranslateXTransform & react_native.TranslateYTransform & react_native.SkewXTransform & react_native.SkewYTransform & react_native.MatrixTransform>[]> | string | undefined;
1300
+ transformOrigin?: Array<string | number> | string | undefined;
1301
+ transformMatrix?: Array<number> | undefined;
1302
+ rotation?: react_native.AnimatableNumericValue | undefined;
1303
+ scaleX?: react_native.AnimatableNumericValue | undefined;
1304
+ scaleY?: react_native.AnimatableNumericValue | undefined;
1305
+ translateX?: react_native.AnimatableNumericValue | undefined;
1306
+ translateY?: react_native.AnimatableNumericValue | undefined;
1307
+ textAlignVertical?: "auto" | "top" | "bottom" | "center" | undefined;
1308
+ verticalAlign?: "auto" | "top" | "bottom" | "middle" | undefined;
1309
+ includeFontPadding?: boolean | undefined;
1310
+ };
1311
+ dayRow: {
1312
+ flexDirection: "row";
1313
+ };
1314
+ cell: {
1315
+ justifyContent: "center";
1316
+ alignItems: "center";
1317
+ position: "relative";
1318
+ };
1319
+ rangeBg: {
1320
+ position: "absolute";
1321
+ };
1322
+ circle: {
1323
+ position: "absolute";
1324
+ };
1325
+ todayCircle: {
1326
+ backgroundColor: string;
1327
+ borderWidth: number;
1328
+ };
1329
+ dayText: {
1330
+ fontSize: number;
1331
+ color: string;
1332
+ zIndex: number;
1333
+ };
1334
+ otherMonthText: {
1335
+ color: string;
1336
+ };
1337
+ disabledText: {
1338
+ color: string;
1339
+ };
1340
+ selectedDayText: {
1341
+ color: react_native.ColorValue;
1342
+ fontFamily?: string | undefined;
1343
+ fontSize?: number | undefined;
1344
+ fontStyle?: "normal" | "italic" | undefined;
1345
+ fontWeight?: "normal" | "bold" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "light" | "medium" | "regular" | "semibold" | "condensedBold" | "condensed" | "heavy" | "black" | undefined;
1346
+ letterSpacing?: number | undefined;
1347
+ lineHeight?: number | undefined;
1348
+ textAlign?: "auto" | "left" | "right" | "center" | "justify" | undefined;
1349
+ textDecorationLine?: "none" | "underline" | "line-through" | "underline line-through" | undefined;
1350
+ textDecorationStyle?: "solid" | "double" | "dotted" | "dashed" | undefined;
1351
+ textDecorationColor?: react_native.ColorValue | undefined;
1352
+ textShadowColor?: react_native.ColorValue | undefined;
1353
+ textShadowOffset?: {
1354
+ width: number;
1355
+ height: number;
1356
+ } | undefined;
1357
+ textShadowRadius?: number | undefined;
1358
+ textTransform?: "none" | "capitalize" | "uppercase" | "lowercase" | undefined;
1359
+ userSelect?: "auto" | "none" | "text" | "contain" | "all" | undefined;
1360
+ fontVariant?: react_native.FontVariant[] | undefined;
1361
+ writingDirection?: "auto" | "ltr" | "rtl" | undefined;
1362
+ backfaceVisibility?: "visible" | "hidden" | undefined;
1363
+ backgroundColor?: react_native.ColorValue | undefined;
1364
+ borderBlockColor?: react_native.ColorValue | undefined;
1365
+ borderBlockEndColor?: react_native.ColorValue | undefined;
1366
+ borderBlockStartColor?: react_native.ColorValue | undefined;
1367
+ borderBottomColor?: react_native.ColorValue | undefined;
1368
+ borderBottomEndRadius?: react_native.AnimatableNumericValue | string | undefined;
1369
+ borderBottomLeftRadius?: react_native.AnimatableNumericValue | string | undefined;
1370
+ borderBottomRightRadius?: react_native.AnimatableNumericValue | string | undefined;
1371
+ borderBottomStartRadius?: react_native.AnimatableNumericValue | string | undefined;
1372
+ borderColor?: react_native.ColorValue | undefined;
1373
+ borderCurve?: "circular" | "continuous" | undefined;
1374
+ borderEndColor?: react_native.ColorValue | undefined;
1375
+ borderEndEndRadius?: react_native.AnimatableNumericValue | string | undefined;
1376
+ borderEndStartRadius?: react_native.AnimatableNumericValue | string | undefined;
1377
+ borderLeftColor?: react_native.ColorValue | undefined;
1378
+ borderRadius?: react_native.AnimatableNumericValue | string | undefined;
1379
+ borderRightColor?: react_native.ColorValue | undefined;
1380
+ borderStartColor?: react_native.ColorValue | undefined;
1381
+ borderStartEndRadius?: react_native.AnimatableNumericValue | string | undefined;
1382
+ borderStartStartRadius?: react_native.AnimatableNumericValue | string | undefined;
1383
+ borderStyle?: "solid" | "dotted" | "dashed" | undefined;
1384
+ borderTopColor?: react_native.ColorValue | undefined;
1385
+ borderTopEndRadius?: react_native.AnimatableNumericValue | string | undefined;
1386
+ borderTopLeftRadius?: react_native.AnimatableNumericValue | string | undefined;
1387
+ borderTopRightRadius?: react_native.AnimatableNumericValue | string | undefined;
1388
+ borderTopStartRadius?: react_native.AnimatableNumericValue | string | undefined;
1389
+ outlineColor?: react_native.ColorValue | undefined;
1390
+ outlineOffset?: react_native.AnimatableNumericValue | undefined;
1391
+ outlineStyle?: "solid" | "dotted" | "dashed" | undefined;
1392
+ outlineWidth?: react_native.AnimatableNumericValue | undefined;
1393
+ opacity?: react_native.AnimatableNumericValue | undefined;
1394
+ elevation?: number | undefined;
1395
+ pointerEvents?: "box-none" | "none" | "box-only" | "auto" | undefined;
1396
+ isolation?: "auto" | "isolate" | undefined;
1397
+ cursor?: react_native.CursorValue | undefined;
1398
+ boxShadow?: ReadonlyArray<react_native.BoxShadowValue> | string | undefined;
1399
+ filter?: ReadonlyArray<react_native.FilterFunction> | string | undefined;
1400
+ mixBlendMode?: react_native.BlendMode | undefined;
1401
+ experimental_backgroundImage?: ReadonlyArray<react_native.GradientValue> | string | undefined;
1402
+ alignContent?: "flex-start" | "flex-end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly" | undefined;
1403
+ alignItems?: react_native.FlexAlignType | undefined;
1404
+ alignSelf?: "auto" | react_native.FlexAlignType | undefined;
1405
+ aspectRatio?: number | string | undefined;
1406
+ borderBottomWidth?: number | undefined;
1407
+ borderEndWidth?: number | undefined;
1408
+ borderLeftWidth?: number | undefined;
1409
+ borderRightWidth?: number | undefined;
1410
+ borderStartWidth?: number | undefined;
1411
+ borderTopWidth?: number | undefined;
1412
+ borderWidth?: number | undefined;
1413
+ bottom?: react_native.DimensionValue | undefined;
1414
+ boxSizing?: "border-box" | "content-box" | undefined;
1415
+ display?: "none" | "flex" | "contents" | undefined;
1416
+ end?: react_native.DimensionValue | undefined;
1417
+ flex?: number | undefined;
1418
+ flexBasis?: react_native.DimensionValue | undefined;
1419
+ flexDirection?: "row" | "column" | "row-reverse" | "column-reverse" | undefined;
1420
+ rowGap?: number | string | undefined;
1421
+ gap?: number | string | undefined;
1422
+ columnGap?: number | string | undefined;
1423
+ flexGrow?: number | undefined;
1424
+ flexShrink?: number | undefined;
1425
+ flexWrap?: "wrap" | "nowrap" | "wrap-reverse" | undefined;
1426
+ height?: react_native.DimensionValue | undefined;
1427
+ justifyContent?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly" | undefined;
1428
+ left?: react_native.DimensionValue | undefined;
1429
+ margin?: react_native.DimensionValue | undefined;
1430
+ marginBottom?: react_native.DimensionValue | undefined;
1431
+ marginEnd?: react_native.DimensionValue | undefined;
1432
+ marginHorizontal?: react_native.DimensionValue | undefined;
1433
+ marginLeft?: react_native.DimensionValue | undefined;
1434
+ marginRight?: react_native.DimensionValue | undefined;
1435
+ marginStart?: react_native.DimensionValue | undefined;
1436
+ marginTop?: react_native.DimensionValue | undefined;
1437
+ marginVertical?: react_native.DimensionValue | undefined;
1438
+ maxHeight?: react_native.DimensionValue | undefined;
1439
+ maxWidth?: react_native.DimensionValue | undefined;
1440
+ minHeight?: react_native.DimensionValue | undefined;
1441
+ minWidth?: react_native.DimensionValue | undefined;
1442
+ overflow?: "visible" | "hidden" | "scroll" | undefined;
1443
+ padding?: react_native.DimensionValue | undefined;
1444
+ paddingBottom?: react_native.DimensionValue | undefined;
1445
+ paddingEnd?: react_native.DimensionValue | undefined;
1446
+ paddingHorizontal?: react_native.DimensionValue | undefined;
1447
+ paddingLeft?: react_native.DimensionValue | undefined;
1448
+ paddingRight?: react_native.DimensionValue | undefined;
1449
+ paddingStart?: react_native.DimensionValue | undefined;
1450
+ paddingTop?: react_native.DimensionValue | undefined;
1451
+ paddingVertical?: react_native.DimensionValue | undefined;
1452
+ position?: "absolute" | "relative" | "static" | undefined;
1453
+ right?: react_native.DimensionValue | undefined;
1454
+ start?: react_native.DimensionValue | undefined;
1455
+ top?: react_native.DimensionValue | undefined;
1456
+ width?: react_native.DimensionValue | undefined;
1457
+ zIndex?: number | undefined;
1458
+ direction?: "inherit" | "ltr" | "rtl" | undefined;
1459
+ inset?: react_native.DimensionValue | undefined;
1460
+ insetBlock?: react_native.DimensionValue | undefined;
1461
+ insetBlockEnd?: react_native.DimensionValue | undefined;
1462
+ insetBlockStart?: react_native.DimensionValue | undefined;
1463
+ insetInline?: react_native.DimensionValue | undefined;
1464
+ insetInlineEnd?: react_native.DimensionValue | undefined;
1465
+ insetInlineStart?: react_native.DimensionValue | undefined;
1466
+ marginBlock?: react_native.DimensionValue | undefined;
1467
+ marginBlockEnd?: react_native.DimensionValue | undefined;
1468
+ marginBlockStart?: react_native.DimensionValue | undefined;
1469
+ marginInline?: react_native.DimensionValue | undefined;
1470
+ marginInlineEnd?: react_native.DimensionValue | undefined;
1471
+ marginInlineStart?: react_native.DimensionValue | undefined;
1472
+ paddingBlock?: react_native.DimensionValue | undefined;
1473
+ paddingBlockEnd?: react_native.DimensionValue | undefined;
1474
+ paddingBlockStart?: react_native.DimensionValue | undefined;
1475
+ paddingInline?: react_native.DimensionValue | undefined;
1476
+ paddingInlineEnd?: react_native.DimensionValue | undefined;
1477
+ paddingInlineStart?: react_native.DimensionValue | undefined;
1478
+ shadowColor?: react_native.ColorValue | undefined;
1479
+ shadowOffset?: Readonly<{
1480
+ width: number;
1481
+ height: number;
1482
+ }> | undefined;
1483
+ shadowOpacity?: react_native.AnimatableNumericValue | undefined;
1484
+ shadowRadius?: number | undefined;
1485
+ transform?: Readonly<react_native.MaximumOneOf<react_native.PerspectiveTransform & react_native.RotateTransform & react_native.RotateXTransform & react_native.RotateYTransform & react_native.RotateZTransform & react_native.ScaleTransform & react_native.ScaleXTransform & react_native.ScaleYTransform & react_native.TranslateXTransform & react_native.TranslateYTransform & react_native.SkewXTransform & react_native.SkewYTransform & react_native.MatrixTransform>[]> | string | undefined;
1486
+ transformOrigin?: Array<string | number> | string | undefined;
1487
+ transformMatrix?: Array<number> | undefined;
1488
+ rotation?: react_native.AnimatableNumericValue | undefined;
1489
+ scaleX?: react_native.AnimatableNumericValue | undefined;
1490
+ scaleY?: react_native.AnimatableNumericValue | undefined;
1491
+ translateX?: react_native.AnimatableNumericValue | undefined;
1492
+ translateY?: react_native.AnimatableNumericValue | undefined;
1493
+ textAlignVertical?: "auto" | "top" | "bottom" | "center" | undefined;
1494
+ verticalAlign?: "auto" | "top" | "bottom" | "middle" | undefined;
1495
+ includeFontPadding?: boolean | undefined;
1496
+ };
1497
+ };
1498
+
1499
+ type SearchBarSize = "small" | "medium" | "large";
1500
+ interface SearchBarProps {
1501
+ value: string;
1502
+ onChangeText: (text: string) => void;
1503
+ placeholder?: string;
1504
+ size?: SearchBarSize;
1505
+ leading?: ReactNode;
1506
+ trailing?: ReactNode;
1507
+ onFocus?: () => void;
1508
+ onBlur?: () => void;
1509
+ onSubmit?: () => void;
1510
+ showClear?: boolean;
1511
+ autoFocus?: boolean;
1512
+ disabled?: boolean;
1513
+ style?: StyleProp<ViewStyle>;
1514
+ /** List of recent search terms to show as suggestions */
1515
+ recentSearches?: string[];
1516
+ /** Callback when a recent search is tapped */
1517
+ onRecentSelect?: (term: string) => void;
1518
+ /** Callback to clear all recent searches */
1519
+ onClearRecent?: () => void;
1520
+ /** Show recents dropdown when input is focused (default true) */
1521
+ showRecentsOnFocus?: boolean;
1522
+ }
1523
+
1524
+ declare function SearchBar({ value, onChangeText, placeholder, size, leading, trailing, onFocus, onBlur, onSubmit, showClear, autoFocus, disabled, style, recentSearches, onRecentSelect, onClearRecent, showRecentsOnFocus, }: SearchBarProps): react_jsx_runtime.JSX.Element;
1525
+
1526
+ interface AutoCompleteOption {
1527
+ value: string;
1528
+ label: string;
1529
+ icon?: ReactNode;
1530
+ subtitle?: string;
1531
+ }
1532
+ interface AutoCompleteProps {
1533
+ value: string;
1534
+ onChange: (value: string) => void;
1535
+ onSelect: (option: AutoCompleteOption) => void;
1536
+ options: AutoCompleteOption[];
1537
+ placeholder?: string;
1538
+ loading?: boolean;
1539
+ /** Filter options locally against input value (default true) */
1540
+ filterLocally?: boolean;
1541
+ /** Debounce delay in ms (default 300) */
1542
+ debounceMs?: number;
1543
+ /** Maximum suggestions shown (default 5) */
1544
+ maxSuggestions?: number;
1545
+ label?: string;
1546
+ error?: string;
1547
+ helperText?: string;
1548
+ disabled?: boolean;
1549
+ style?: StyleProp<ViewStyle>;
1550
+ }
1551
+
1552
+ declare function AutoComplete({ value, onChange, onSelect, options, placeholder, loading, filterLocally, debounceMs, maxSuggestions, label, error, helperText, disabled, style, }: AutoCompleteProps): react_jsx_runtime.JSX.Element;
1553
+
1554
+ type SegmentItem = {
1555
+ label: string;
1556
+ value: string;
1557
+ icon?: React.ReactNode;
1558
+ };
1559
+ type SegmentedControlProps = {
1560
+ /** Array of segment definitions. */
1561
+ segments: SegmentItem[];
1562
+ /** Currently selected segment value. */
1563
+ value: string;
1564
+ /** Called when the user taps a segment. */
1565
+ onChange: (value: string) => void;
1566
+ /** Control height & font size. @default 'medium' */
1567
+ size?: "small" | "medium" | "large";
1568
+ /** Visual style of the active indicator. @default 'filled' */
1569
+ variant?: "filled" | "outlined";
1570
+ /** Stretch to fill available width. @default true */
1571
+ fullWidth?: boolean;
1572
+ /** Disable all interaction. */
1573
+ disabled?: boolean;
1574
+ /** Optional container style override. */
1575
+ style?: ViewStyle;
1576
+ };
1577
+
1578
+ declare function SegmentedControl({ segments, value, onChange, size, variant, fullWidth, disabled, style, }: SegmentedControlProps): react_jsx_runtime.JSX.Element;
1579
+
1580
+ type StrengthLevel = "weak" | "fair" | "good" | "strong" | "very-strong";
1581
+ interface PasswordStrengthProps {
1582
+ password: string;
1583
+ minLength?: number;
1584
+ showRequirements?: boolean;
1585
+ showBar?: boolean;
1586
+ barStyle?: StyleProp<ViewStyle>;
1587
+ style?: StyleProp<ViewStyle>;
1588
+ }
1589
+
1590
+ declare function PasswordStrength({ password, minLength, showRequirements, showBar, barStyle, style, }: PasswordStrengthProps): react_jsx_runtime.JSX.Element;
1591
+
1592
+ type ColorPickerProps = {
1593
+ value: string;
1594
+ onChange: (color: string) => void;
1595
+ /** Custom color palette. Defaults to 12 common colors */
1596
+ colors?: string[];
1597
+ /** Number of columns in the grid. Defaults to 6 */
1598
+ columns?: number;
1599
+ /** Swatch size variant */
1600
+ size?: "small" | "medium" | "large";
1601
+ /** Show selected color preview. Defaults to true */
1602
+ showSelected?: boolean;
1603
+ /** Allow custom hex input. Defaults to false */
1604
+ allowCustom?: boolean;
1605
+ /** Optional label above the picker */
1606
+ label?: string;
1607
+ style?: ViewStyle;
1608
+ };
1609
+
1610
+ declare function ColorPicker({ value, onChange, colors, columns, size, showSelected, allowCustom, label, style, }: ColorPickerProps): react_jsx_runtime.JSX.Element;
1611
+
1612
+ type SocialProvider = 'google' | 'apple' | 'facebook' | 'github' | 'twitter';
1613
+ type SocialLoginButtonProps = {
1614
+ provider: SocialProvider;
1615
+ onPress: () => void;
1616
+ variant?: 'filled' | 'outlined';
1617
+ size?: 'small' | 'medium' | 'large';
1618
+ label?: string;
1619
+ loading?: boolean;
1620
+ disabled?: boolean;
1621
+ fullWidth?: boolean;
1622
+ style?: ViewStyle;
1623
+ };
1624
+ type SocialLoginGroupProps = {
1625
+ providers: Array<{
1626
+ provider: SocialProvider;
1627
+ onPress: () => void;
1628
+ }>;
1629
+ variant?: 'filled' | 'outlined';
1630
+ size?: 'small' | 'medium' | 'large';
1631
+ layout?: 'vertical' | 'horizontal' | 'icon-only';
1632
+ dividerText?: string;
1633
+ style?: ViewStyle;
1634
+ };
1635
+
1636
+ declare function SocialLoginButton({ provider, onPress, variant, size, label, loading, disabled, fullWidth, style, }: SocialLoginButtonProps): react_jsx_runtime.JSX.Element;
1637
+ declare function SocialLoginIconButton({ provider, onPress, variant, size, loading, disabled, style, }: Omit<SocialLoginButtonProps, 'label' | 'fullWidth'>): react_jsx_runtime.JSX.Element;
1638
+
1639
+ declare function SocialLoginGroup({ providers, variant, size, layout, dividerText, style, }: SocialLoginGroupProps): react_jsx_runtime.JSX.Element;
1640
+
1641
+ interface CountryCode {
1642
+ /** ISO 3166-1 alpha-2 code, e.g. "US" */
1643
+ code: string;
1644
+ /** International dial code, e.g. "+1" */
1645
+ dialCode: string;
1646
+ /** Country display name */
1647
+ name: string;
1648
+ /** Emoji flag, e.g. "\u{1F1FA}\u{1F1F8}" */
1649
+ flag: string;
1650
+ }
1651
+ interface PhoneInputProps {
1652
+ /** Full phone number value (dial code + number) */
1653
+ value: string;
1654
+ /** Called with the full phone number (dialCode + local number) */
1655
+ onChange: (fullNumber: string) => void;
1656
+ /** Called when a new country is selected */
1657
+ onChangeCountry?: (country: CountryCode) => void;
1658
+ /** ISO country code to pre-select (default "US") */
1659
+ defaultCountry?: string;
1660
+ /** Placeholder for the phone number input */
1661
+ placeholder?: string;
1662
+ /** Field label rendered above the input */
1663
+ label?: string;
1664
+ /** Error message shown below the input */
1665
+ error?: string;
1666
+ /** Helper text shown below the input (hidden when error is present) */
1667
+ helperText?: string;
1668
+ /** Disable the entire input */
1669
+ disabled?: boolean;
1670
+ /** Show a search bar in the country picker (default true) */
1671
+ searchable?: boolean;
1672
+ /** Container style override */
1673
+ style?: ViewStyle;
1674
+ }
1675
+
1676
+ declare function PhoneInput({ value, onChange, onChangeCountry, defaultCountry, placeholder, label, error, helperText, disabled, searchable, style, }: PhoneInputProps): react_jsx_runtime.JSX.Element;
1677
+
1678
+ declare const COUNTRIES: CountryCode[];
1679
+
1680
+ interface FormField {
1681
+ name: string;
1682
+ label?: string;
1683
+ type?: string;
1684
+ placeholder?: string;
1685
+ required?: boolean;
1686
+ /** Return `true` if valid, or an error string if invalid. */
1687
+ validate?: (value: any, values: Record<string, any>) => string | true;
1688
+ defaultValue?: any;
1689
+ }
1690
+ interface FormContext {
1691
+ values: Record<string, any>;
1692
+ errors: Record<string, string>;
1693
+ setValue: (name: string, value: any) => void;
1694
+ setError: (name: string, error: string) => void;
1695
+ isValid: boolean;
1696
+ isDirty: boolean;
1697
+ reset: () => void;
1698
+ submit: () => void;
1699
+ }
1700
+ interface FormWrapperProps {
1701
+ /** Schema-driven field descriptors. When provided, CustomField is auto-rendered for each. */
1702
+ fields?: FormField[];
1703
+ /** Initial (and reset) values keyed by field name. */
1704
+ initialValues?: Record<string, any>;
1705
+ /** Called with current values after successful validation. */
1706
+ onSubmit: (values: Record<string, any>) => void | Promise<void>;
1707
+ /** Optional cross-field validation. Return a map of `{ fieldName: errorMessage }`. */
1708
+ onValidate?: (values: Record<string, any>) => Record<string, string>;
1709
+ /** Render-prop or static children. */
1710
+ children?: React__default.ReactNode | ((form: FormContext) => React__default.ReactNode);
1711
+ /** Label for the submit button. @default 'Submit' */
1712
+ submitLabel?: string;
1713
+ /** Show a reset button beside submit. */
1714
+ showReset?: boolean;
1715
+ /** Label for the reset button. @default 'Reset' */
1716
+ resetLabel?: string;
1717
+ /** When true the submit button shows a loading spinner. */
1718
+ loading?: boolean;
1719
+ /** Style override for the outer container. */
1720
+ style?: ViewStyle;
1721
+ }
1722
+
1723
+ declare function FormWrapper({ fields, initialValues, onSubmit, onValidate, children, submitLabel, showReset, resetLabel, loading, style, }: FormWrapperProps): react_jsx_runtime.JSX.Element;
1724
+
1725
+ declare function FormWrapperExample(): react_jsx_runtime.JSX.Element;
1726
+
1727
+ interface UseFormOptions {
1728
+ fields?: FormField[];
1729
+ initialValues?: Record<string, any>;
1730
+ onSubmit: (values: Record<string, any>) => void | Promise<void>;
1731
+ onValidate?: (values: Record<string, any>) => Record<string, string>;
1732
+ }
1733
+ declare function useForm({ fields, initialValues, onSubmit, onValidate, }: UseFormOptions): FormContext & {
1734
+ touched: Record<string, boolean>;
1735
+ };
1736
+
1737
+ type LoginFormProps = {
1738
+ onSubmit: (email: string, password: string) => void | Promise<void>;
1739
+ onForgotPassword?: () => void;
1740
+ onSignUp?: () => void;
1741
+ socialProviders?: SocialProvider[];
1742
+ onSocialLogin?: (provider: string) => void;
1743
+ loading?: boolean;
1744
+ logo?: React.ReactNode;
1745
+ title?: string;
1746
+ subtitle?: string;
1747
+ style?: ViewStyle;
1748
+ };
1749
+ type SignupFormProps = {
1750
+ onSubmit: (data: {
1751
+ name: string;
1752
+ email: string;
1753
+ password: string;
1754
+ }) => void | Promise<void>;
1755
+ onLogin?: () => void;
1756
+ socialProviders?: SocialProvider[];
1757
+ onSocialLogin?: (provider: string) => void;
1758
+ loading?: boolean;
1759
+ logo?: React.ReactNode;
1760
+ title?: string;
1761
+ subtitle?: string;
1762
+ requireConfirmPassword?: boolean;
1763
+ style?: ViewStyle;
1764
+ };
1765
+
1766
+ declare function LoginForm({ onSubmit, onForgotPassword, onSignUp, socialProviders, onSocialLogin, loading, logo, title, subtitle, style, }: LoginFormProps): react_jsx_runtime.JSX.Element;
1767
+
1768
+ declare function SignupForm({ onSubmit, onLogin, socialProviders, onSocialLogin, loading, logo, title, subtitle, requireConfirmPassword, style, }: SignupFormProps): react_jsx_runtime.JSX.Element;
1769
+
1770
+ type CardVariant = "elevated" | "outlined" | "filled";
1771
+ type CardSize = "small" | "medium" | "large";
1772
+ interface CustomCardProps {
1773
+ children?: ReactNode;
1774
+ variant?: CardVariant;
1775
+ size?: CardSize;
1776
+ title?: string;
1777
+ subtitle?: string;
1778
+ headerRight?: ReactNode;
1779
+ footer?: ReactNode;
1780
+ coverImage?: string;
1781
+ coverHeight?: number;
1782
+ onPress?: () => void;
1783
+ disabled?: boolean;
1784
+ /** When true, show a skeleton placeholder instead of children */
1785
+ loading?: boolean;
1786
+ style?: StyleProp<ViewStyle>;
1787
+ }
1788
+
1789
+ declare function CustomCard({ children, variant, size, title, subtitle, headerRight, footer, coverImage, coverHeight, onPress, disabled, loading, style, }: CustomCardProps): react_jsx_runtime.JSX.Element;
1790
+
1791
+ type ListItemSize = "small" | "medium" | "large";
1792
+ interface SwipeAction {
1793
+ label: string;
1794
+ color: string;
1795
+ icon?: ReactNode;
1796
+ onPress: () => void;
1797
+ }
1798
+ interface CustomListItemProps {
1799
+ title: string;
1800
+ subtitle?: string;
1801
+ description?: string;
1802
+ leading?: ReactNode;
1803
+ trailing?: ReactNode;
1804
+ size?: ListItemSize;
1805
+ onPress?: () => void;
1806
+ disabled?: boolean;
1807
+ showDivider?: boolean;
1808
+ chevron?: boolean;
1809
+ selected?: boolean;
1810
+ style?: StyleProp<ViewStyle>;
1811
+ /** Actions revealed when swiping right-to-left */
1812
+ swipeActions?: SwipeAction[];
1813
+ }
1814
+
1815
+ declare function CustomListItem({ title, subtitle, description, leading, trailing, size, onPress, disabled, showDivider, chevron, selected, style, swipeActions, }: CustomListItemProps): react_jsx_runtime.JSX.Element;
1816
+
1817
+ type StatCardSize = "small" | "medium" | "large";
1818
+ type StatTrend = "up" | "down" | "neutral";
1819
+ interface StatCardProps {
1820
+ label: string;
1821
+ value: string | number;
1822
+ trend?: StatTrend;
1823
+ trendValue?: string;
1824
+ icon?: ReactNode;
1825
+ size?: StatCardSize;
1826
+ onPress?: () => void;
1827
+ style?: StyleProp<ViewStyle>;
1828
+ }
1829
+
1830
+ declare function StatCard({ label, value, trend, trendValue, icon, size, onPress, style, }: StatCardProps): react_jsx_runtime.JSX.Element;
1831
+
1832
+ type ProgressBarSize = "small" | "medium" | "large";
1833
+ type ProgressBarVariant = "linear" | "circular";
1834
+ interface ProgressBarProps {
1835
+ progress: number;
1836
+ size?: ProgressBarSize;
1837
+ variant?: ProgressBarVariant;
1838
+ indeterminate?: boolean;
1839
+ color?: string;
1840
+ trackColor?: string;
1841
+ label?: string;
1842
+ showPercentage?: boolean;
1843
+ animated?: boolean;
1844
+ style?: StyleProp<ViewStyle>;
1845
+ }
1846
+
1847
+ declare function ProgressBar({ progress, size, variant, indeterminate, color, trackColor, label, showPercentage, animated, style, }: ProgressBarProps): react_jsx_runtime.JSX.Element;
1848
+
1849
+ type TimelineItemStatus = "completed" | "active" | "pending";
1850
+ type TimelineSize = "small" | "medium" | "large";
1851
+ interface TimelineItem {
1852
+ id: string;
1853
+ title: string;
1854
+ description?: string;
1855
+ timestamp?: string;
1856
+ status?: TimelineItemStatus;
1857
+ icon?: ReactNode;
1858
+ }
1859
+ interface TimelineProps {
1860
+ items: TimelineItem[];
1861
+ size?: TimelineSize;
1862
+ activeColor?: string;
1863
+ style?: StyleProp<ViewStyle>;
1864
+ }
1865
+
1866
+ declare function Timeline({ items, size, activeColor, style, }: TimelineProps): react_jsx_runtime.JSX.Element;
1867
+
1868
+ declare const SIZE_CONFIG: Record<TimelineSize, {
1869
+ circleSize: number;
1870
+ iconSize: number;
1871
+ titleFontSize: number;
1872
+ descriptionFontSize: number;
1873
+ timestampFontSize: number;
1874
+ lineWidth: number;
1875
+ contentPaddingLeft: number;
1876
+ contentPaddingBottom: number;
1877
+ }>;
1878
+ declare const ENTRY_STAGGER_MS = 100;
1879
+ declare const LINE_ANIM_DURATION = 600;
1880
+ declare const styles: {
1881
+ container: {};
1882
+ row: {
1883
+ flexDirection: "row";
1884
+ alignItems: "flex-start";
1885
+ };
1886
+ circleColumn: {
1887
+ alignItems: "center";
1888
+ alignSelf: "stretch";
1889
+ };
1890
+ content: {
1891
+ flex: number;
1892
+ };
1893
+ };
1894
+ type SizeConfig = (typeof SIZE_CONFIG)[TimelineSize];
1895
+
1896
+ declare function TimelineRow({ item, isLast, index, config, primaryColor, theme, }: {
1897
+ item: TimelineItem;
1898
+ isLast: boolean;
1899
+ index: number;
1900
+ config: SizeConfig;
1901
+ primaryColor: string;
1902
+ theme: ReturnType<typeof useTheme>;
1903
+ }): react_jsx_runtime.JSX.Element;
1904
+
1905
+ declare function TimelineExample(): react_jsx_runtime.JSX.Element;
1906
+
1907
+ type ShimmerVariant = "small" | "medium" | "large" | "grid" | "gridGroupX" | "gridGroupY";
1908
+ interface CustomListShimmerProps {
1909
+ itemCount?: number;
1910
+ variant?: ShimmerVariant;
1911
+ gridColumns?: number;
1912
+ containerStyle?: StyleProp<ViewStyle>;
1913
+ }
1914
+
1915
+ declare const CustomListShimmer: React__default.FC<CustomListShimmerProps>;
1916
+
1917
+ type ActivityItemType = "default" | "success" | "warning" | "error" | "info";
1918
+ interface ActivityItem {
1919
+ id: string;
1920
+ user: {
1921
+ name: string;
1922
+ avatar?: string;
1923
+ };
1924
+ action: string;
1925
+ target?: string;
1926
+ timestamp: Date | string;
1927
+ icon?: ReactNode;
1928
+ type?: ActivityItemType;
1929
+ }
1930
+ interface ActivityFeedProps {
1931
+ items: ActivityItem[];
1932
+ onItemPress?: (item: ActivityItem) => void;
1933
+ /** Show user avatar or icon. Default `true`. */
1934
+ showAvatar?: boolean;
1935
+ /** Timestamp display mode. Default `"relative"`. */
1936
+ dateFormat?: "relative" | "absolute";
1937
+ /** Message shown when there are no items. */
1938
+ emptyMessage?: string;
1939
+ style?: StyleProp<ViewStyle>;
1940
+ }
1941
+
1942
+ declare function ActivityFeed({ items, onItemPress, showAvatar, dateFormat, emptyMessage, style, }: ActivityFeedProps): react_jsx_runtime.JSX.Element;
1943
+
1944
+ declare function ActivityFeedExample(): react_jsx_runtime.JSX.Element;
1945
+
1946
+ type NotificationType = "default" | "success" | "warning" | "error" | "info";
1947
+ interface NotificationItem {
1948
+ id: string;
1949
+ title: string;
1950
+ message: string;
1951
+ timestamp: Date | string;
1952
+ read?: boolean;
1953
+ type?: NotificationType;
1954
+ icon?: ReactNode;
1955
+ onPress?: () => void;
1956
+ }
1957
+ interface NotificationCenterProps {
1958
+ notifications: NotificationItem[];
1959
+ onMarkRead?: (id: string) => void;
1960
+ onMarkAllRead?: () => void;
1961
+ onDelete?: (id: string) => void;
1962
+ /** Message shown when there are no notifications. */
1963
+ emptyMessage?: string;
1964
+ /** Show header with title and mark-all-read button. Default `true`. */
1965
+ showHeader?: boolean;
1966
+ style?: StyleProp<ViewStyle>;
1967
+ }
1968
+
1969
+ declare function NotificationCenter({ notifications, onMarkRead, onMarkAllRead, onDelete, emptyMessage, showHeader, style, }: NotificationCenterProps): react_jsx_runtime.JSX.Element;
1970
+
1971
+ declare function NotificationCenterExample(): react_jsx_runtime.JSX.Element;
1972
+
1973
+ interface FilterOption {
1974
+ id: string;
1975
+ label: string;
1976
+ icon?: ReactNode;
1977
+ }
1978
+ interface SearchWithFiltersProps {
1979
+ value: string;
1980
+ onChangeText: (text: string) => void;
1981
+ filters: FilterOption[];
1982
+ activeFilters: string[];
1983
+ onFilterChange: (ids: string[]) => void;
1984
+ placeholder?: string;
1985
+ children?: ReactNode;
1986
+ emptyComponent?: ReactNode;
1987
+ style?: ViewStyle;
1988
+ }
1989
+
1990
+ declare function SearchWithFilters({ value, onChangeText, filters, activeFilters, onFilterChange, placeholder, children, emptyComponent, style, }: SearchWithFiltersProps): react_jsx_runtime.JSX.Element;
1991
+
1992
+ type DataColumn<T> = {
1993
+ key: keyof T & string;
1994
+ title: string;
1995
+ width?: number;
1996
+ sortable?: boolean;
1997
+ render?: (value: any, row: T) => React.ReactNode;
1998
+ align?: "left" | "center" | "right";
1999
+ };
2000
+ type DataTablePagination = {
2001
+ page: number;
2002
+ totalPages: number;
2003
+ onPageChange: (page: number) => void;
2004
+ };
2005
+ type DataTableProps<T> = {
2006
+ columns: DataColumn<T>[];
2007
+ data: T[];
2008
+ keyExtractor: (item: T) => string;
2009
+ sortBy?: string;
2010
+ sortOrder?: "asc" | "desc";
2011
+ onSort?: (key: string) => void;
2012
+ onRowPress?: (item: T) => void;
2013
+ loading?: boolean;
2014
+ emptyMessage?: string;
2015
+ showHeader?: boolean;
2016
+ striped?: boolean;
2017
+ pagination?: DataTablePagination;
2018
+ style?: ViewStyle;
2019
+ };
2020
+
2021
+ declare function DataTable<T>(props: DataTableProps<T>): react_jsx_runtime.JSX.Element;
2022
+
2023
+ type KanbanCard = {
2024
+ id: string;
2025
+ title: string;
2026
+ description?: string;
2027
+ assignee?: {
2028
+ name: string;
2029
+ avatar?: string;
2030
+ };
2031
+ labels?: Array<{
2032
+ text: string;
2033
+ color: string;
2034
+ }>;
2035
+ priority?: "low" | "medium" | "high" | "urgent";
2036
+ dueDate?: string;
2037
+ };
2038
+ type KanbanColumn = {
2039
+ id: string;
2040
+ title: string;
2041
+ color?: string;
2042
+ cards: KanbanCard[];
2043
+ };
2044
+ type KanbanBoardProps = {
2045
+ columns: KanbanColumn[];
2046
+ onCardPress?: (card: KanbanCard, columnId: string) => void;
2047
+ onCardMove?: (cardId: string, fromColumn: string, toColumn: string) => void;
2048
+ cardWidth?: number;
2049
+ showAddCard?: boolean;
2050
+ onAddCard?: (columnId: string) => void;
2051
+ style?: ViewStyle;
2052
+ };
2053
+
2054
+ declare function KanbanBoard({ columns, onCardPress, onCardMove, cardWidth, showAddCard, onAddCard, style, }: KanbanBoardProps): react_jsx_runtime.JSX.Element;
2055
+
2056
+ declare function KanbanBoardExample(): react_jsx_runtime.JSX.Element;
2057
+
2058
+ type PlanItem = {
2059
+ id: string;
2060
+ name: string;
2061
+ price: number;
2062
+ currency?: string;
2063
+ interval?: "month" | "year";
2064
+ features: string[];
2065
+ recommended?: boolean;
2066
+ current?: boolean;
2067
+ };
2068
+ type InvoiceItem = {
2069
+ id: string;
2070
+ date: string;
2071
+ amount: number;
2072
+ currency?: string;
2073
+ status: "paid" | "pending" | "overdue" | "failed";
2074
+ description?: string;
2075
+ };
2076
+ type PricingCardProps = {
2077
+ plan: PlanItem;
2078
+ onSelect: (planId: string) => void;
2079
+ style?: ViewStyle;
2080
+ };
2081
+ type InvoiceListProps = {
2082
+ invoices: InvoiceItem[];
2083
+ onInvoicePress?: (invoice: InvoiceItem) => void;
2084
+ style?: ViewStyle;
2085
+ };
2086
+ type BillingUIProps = {
2087
+ plans?: PlanItem[];
2088
+ invoices?: InvoiceItem[];
2089
+ onSelectPlan?: (planId: string) => void;
2090
+ onInvoicePress?: (invoice: InvoiceItem) => void;
2091
+ currentPlanId?: string;
2092
+ style?: ViewStyle;
2093
+ };
2094
+
2095
+ declare function BillingUI({ plans, invoices, onSelectPlan, onInvoicePress, currentPlanId, style, }: BillingUIProps): react_jsx_runtime.JSX.Element;
2096
+
2097
+ declare function PricingCard({ plan, onSelect, style }: PricingCardProps): react_jsx_runtime.JSX.Element;
2098
+
2099
+ declare function InvoiceList({ invoices, onInvoicePress, style }: InvoiceListProps): react_jsx_runtime.JSX.Element;
2100
+
2101
+ declare function BillingUIExample(): react_jsx_runtime.JSX.Element;
2102
+
2103
+ type DataPoint = {
2104
+ label: string;
2105
+ value: number;
2106
+ color?: string;
2107
+ };
2108
+ type ChartProps = {
2109
+ data: DataPoint[];
2110
+ width?: number;
2111
+ height?: number;
2112
+ colors?: string[];
2113
+ showLabels?: boolean;
2114
+ showValues?: boolean;
2115
+ animated?: boolean;
2116
+ style?: ViewStyle;
2117
+ };
2118
+ type LineChartProps = ChartProps & {
2119
+ curved?: boolean;
2120
+ showDots?: boolean;
2121
+ showGrid?: boolean;
2122
+ fillArea?: boolean;
2123
+ };
2124
+ type BarChartProps = ChartProps & {
2125
+ barWidth?: number;
2126
+ spacing?: number;
2127
+ horizontal?: boolean;
2128
+ rounded?: boolean;
2129
+ };
2130
+ type PieChartProps = ChartProps & {
2131
+ innerRadius?: number;
2132
+ showPercentage?: boolean;
2133
+ };
2134
+
2135
+ declare function LineChart({ data, width: propWidth, height, colors, showLabels, showValues, animated, curved, showDots, showGrid, fillArea, style, }: LineChartProps): react_jsx_runtime.JSX.Element;
2136
+
2137
+ declare function BarChart({ data, width: propWidth, height, colors, showLabels, showValues, animated, barWidth: propBarWidth, spacing: propSpacing, horizontal, rounded, style, }: BarChartProps): react_jsx_runtime.JSX.Element;
2138
+
2139
+ declare function PieChart({ data, width: propWidth, height, colors, showLabels, showValues, animated, innerRadius, showPercentage, style, }: PieChartProps): react_jsx_runtime.JSX.Element;
2140
+
2141
+ interface CalendarEvent {
2142
+ id: string;
2143
+ title: string;
2144
+ /** ISO date string YYYY-MM-DD */
2145
+ date: string;
2146
+ color?: string;
2147
+ startTime?: string;
2148
+ endTime?: string;
2149
+ }
2150
+ interface MarkedDateInfo {
2151
+ dots?: Array<{
2152
+ color: string;
2153
+ }>;
2154
+ selected?: boolean;
2155
+ disabled?: boolean;
2156
+ }
2157
+ interface DayModel {
2158
+ /** YYYY-MM-DD */
2159
+ date: string;
2160
+ dayNumber: number;
2161
+ isCurrentMonth: boolean;
2162
+ isToday: boolean;
2163
+ }
2164
+ interface CalendarProps {
2165
+ /** ISO date string YYYY-MM-DD */
2166
+ selectedDate?: string;
2167
+ onDateSelect?: (date: string) => void;
2168
+ events?: CalendarEvent[];
2169
+ markedDates?: Record<string, MarkedDateInfo>;
2170
+ /** ISO date string YYYY-MM-DD */
2171
+ minDate?: string;
2172
+ /** ISO date string YYYY-MM-DD */
2173
+ maxDate?: string;
2174
+ /** 0 = Sunday (default), 1 = Monday */
2175
+ firstDayOfWeek?: 0 | 1;
2176
+ showWeekNumbers?: boolean;
2177
+ onMonthChange?: (month: {
2178
+ year: number;
2179
+ month: number;
2180
+ }) => void;
2181
+ style?: ViewStyle;
2182
+ }
2183
+
2184
+ /**
2185
+ * Full calendar component with month navigation, day selection,
2186
+ * event dots, and marked-date support.
2187
+ */
2188
+ declare function Calendar({ selectedDate, onDateSelect, events, markedDates, minDate, maxDate, firstDayOfWeek, showWeekNumbers, onMonthChange, style, }: CalendarProps): react_jsx_runtime.JSX.Element;
2189
+
2190
+ interface CalendarHeaderProps {
2191
+ year: number;
2192
+ month: number;
2193
+ onPrev: () => void;
2194
+ onNext: () => void;
2195
+ onToday: () => void;
2196
+ }
2197
+ declare function CalendarHeaderInner({ year, month, onPrev, onNext, onToday, }: CalendarHeaderProps): react_jsx_runtime.JSX.Element;
2198
+ declare const CalendarHeader: React__default.MemoExoticComponent<typeof CalendarHeaderInner>;
2199
+
2200
+ interface CalendarGridProps {
2201
+ year: number;
2202
+ month: number;
2203
+ selectedDate?: string;
2204
+ onDateSelect?: (date: string) => void;
2205
+ events?: CalendarEvent[];
2206
+ markedDates?: Record<string, MarkedDateInfo>;
2207
+ minDate?: string;
2208
+ maxDate?: string;
2209
+ firstDayOfWeek: 0 | 1;
2210
+ showWeekNumbers?: boolean;
2211
+ }
2212
+ declare function CalendarGridInner({ year, month, selectedDate, onDateSelect, events, markedDates, minDate, maxDate, firstDayOfWeek, showWeekNumbers, }: CalendarGridProps): react_jsx_runtime.JSX.Element;
2213
+ declare const CalendarGrid: React__default.MemoExoticComponent<typeof CalendarGridInner>;
2214
+
2215
+ declare function CalendarExample(): react_jsx_runtime.JSX.Element;
2216
+
2217
+ /** Number of days in a given month (1-indexed month). */
2218
+ declare function getDaysInMonth(year: number, month: number): number;
2219
+ /** Day of the week for the 1st of the month (0 = Sun, 6 = Sat). */
2220
+ declare function getFirstDayOfMonth(year: number, month: number): number;
2221
+ /** Format "March 2026" style label. */
2222
+ declare function formatMonthYear(year: number, month: number): string;
2223
+ /** Compare two YYYY-MM-DD strings. */
2224
+ declare function isSameDay(a: string, b: string): boolean;
2225
+ /**
2226
+ * Generate a 6-row (42-cell) grid of day models for a given month.
2227
+ * Includes trailing days from previous month and leading days from next month.
2228
+ *
2229
+ * @param year Full year (e.g. 2026)
2230
+ * @param month 1-indexed month (1 = January)
2231
+ * @param firstDayOfWeek 0 = Sunday, 1 = Monday
2232
+ */
2233
+ declare function generateMonthDays(year: number, month: number, firstDayOfWeek?: 0 | 1): DayModel[];
2234
+ /** ISO week number (ISO-8601). */
2235
+ declare function getWeekNumber(dateStr: string): number;
2236
+
2237
+ type BreadcrumbItem = {
2238
+ label: string;
2239
+ onPress?: () => void;
2240
+ icon?: React__default.ReactNode;
2241
+ };
2242
+ type BreadcrumbProps = {
2243
+ items: BreadcrumbItem[];
2244
+ /** Separator between items. Defaults to "/" */
2245
+ separator?: React__default.ReactNode | string;
2246
+ /** Max visible items before truncation with "..." */
2247
+ maxItems?: number;
2248
+ style?: ViewStyle;
2249
+ };
2250
+
2251
+ declare function Breadcrumb({ items, separator, maxItems, style, }: BreadcrumbProps): react_jsx_runtime.JSX.Element;
2252
+
2253
+ interface BottomBarTab {
2254
+ /** Unique key */
2255
+ key: string;
2256
+ /** Label shown below icon (hidden when showLabels = false) */
2257
+ label: string;
2258
+ /** Icon element/node (e.g. `<Home />`) */
2259
+ icon: ReactNode;
2260
+ /** Optional badge count displayed on the icon */
2261
+ badge?: number | string;
2262
+ }
2263
+ type IndicatorPosition = 'bottom' | 'top' | 'none';
2264
+ type ActiveHighlight = 'indicator' | 'pill' | 'circle' | 'none';
2265
+ interface FabConfig {
2266
+ /** Icon shown inside the FAB */
2267
+ icon: ReactNode;
2268
+ /** FAB background colour */
2269
+ backgroundColor?: string;
2270
+ /** FAB icon colour */
2271
+ iconColor?: string;
2272
+ /** FAB diameter (default 56) */
2273
+ size?: number;
2274
+ /** Callback when FAB is pressed */
2275
+ onPress: () => void;
2276
+ }
2277
+ interface BottomBarProps {
2278
+ /** Array of tabs */
2279
+ tabs: BottomBarTab[];
2280
+ /** Currently active index */
2281
+ activeIndex: number;
2282
+ /** Called when a tab is pressed */
2283
+ onTabPress: (index: number) => void;
2284
+ /** Shared Animated.Value tracking page scroll offset */
2285
+ scrollX: Animated.Value;
2286
+ /** Show labels below icons (default true) */
2287
+ showLabels?: boolean;
2288
+ /** Indicator line position (default 'bottom') */
2289
+ indicatorPosition?: IndicatorPosition;
2290
+ /** Active-tab visual style (default 'indicator') */
2291
+ activeHighlight?: ActiveHighlight;
2292
+ /** Floating action button in the centre */
2293
+ fab?: FabConfig;
2294
+ /** Bar background colour */
2295
+ backgroundColor?: string;
2296
+ /** Active icon + label colour */
2297
+ activeColor?: string;
2298
+ /** Inactive icon + label colour */
2299
+ inactiveColor?: string;
2300
+ /** Indicator line colour */
2301
+ indicatorColor?: string;
2302
+ /** Pill / circle highlight background */
2303
+ pillColor?: string;
2304
+ /** Icon size (default 24) */
2305
+ iconSize?: number;
2306
+ /** Font size for label (default 11) */
2307
+ labelFontSize?: number;
2308
+ /** Bar height (default 64) */
2309
+ barHeight?: number;
2310
+ /** Indicator thickness (default 3) */
2311
+ indicatorHeight?: number;
2312
+ /** Container width for scrollX progress (defaults to screen width) */
2313
+ containerWidth?: number;
2314
+ barStyle?: StyleProp<ViewStyle>;
2315
+ tabStyle?: StyleProp<ViewStyle>;
2316
+ labelStyle?: StyleProp<TextStyle>;
2317
+ indicatorStyle?: StyleProp<ViewStyle>;
2318
+ }
2319
+ interface BottomBarLayoutProps {
2320
+ /** Tabs for the bottom bar */
2321
+ tabs: BottomBarTab[];
2322
+ /** Render content for each page index */
2323
+ renderPage: (index: number) => React$1.ReactNode;
2324
+ /** Optional header component (fixed at top) */
2325
+ renderHeader?: () => React$1.ReactNode;
2326
+ /** Initial active page */
2327
+ initialPage?: number;
2328
+ showLabels?: boolean;
2329
+ indicatorPosition?: IndicatorPosition;
2330
+ activeHighlight?: ActiveHighlight;
2331
+ fab?: FabConfig;
2332
+ backgroundColor?: string;
2333
+ activeColor?: string;
2334
+ inactiveColor?: string;
2335
+ indicatorColor?: string;
2336
+ pillColor?: string;
2337
+ iconSize?: number;
2338
+ labelFontSize?: number;
2339
+ barHeight?: number;
2340
+ indicatorHeight?: number;
2341
+ barStyle?: StyleProp<ViewStyle>;
2342
+ tabStyle?: StyleProp<ViewStyle>;
2343
+ labelStyle?: StyleProp<TextStyle>;
2344
+ indicatorStyle?: StyleProp<ViewStyle>;
2345
+ /** Enable / disable swiping between pages (default true) */
2346
+ swipeEnabled?: boolean;
2347
+ }
2348
+
2349
+ declare function BottomBar({ tabs, activeIndex, onTabPress, scrollX, showLabels, indicatorPosition, activeHighlight, fab, backgroundColor, activeColor, inactiveColor, indicatorColor, pillColor, iconSize, labelFontSize, barHeight, indicatorHeight, containerWidth, barStyle, tabStyle, labelStyle, indicatorStyle, }: BottomBarProps): react_jsx_runtime.JSX.Element;
2350
+
2351
+ declare function getBottomBarStyles(theme: AppTheme): {
2352
+ wrapper: {
2353
+ position: "relative";
2354
+ overflow: "visible";
2355
+ zIndex: number;
2356
+ };
2357
+ bar: {
2358
+ flexDirection: "row";
2359
+ borderTopWidth: number;
2360
+ borderTopColor: string;
2361
+ } | {
2362
+ shadowColor: string;
2363
+ shadowOffset: {
2364
+ width: number;
2365
+ height: number;
2366
+ };
2367
+ shadowOpacity: number;
2368
+ shadowRadius: number;
2369
+ elevation?: undefined;
2370
+ flexDirection: "row";
2371
+ borderTopWidth: number;
2372
+ borderTopColor: string;
2373
+ } | {
2374
+ elevation: number;
2375
+ shadowColor?: undefined;
2376
+ shadowOffset?: undefined;
2377
+ shadowOpacity?: undefined;
2378
+ shadowRadius?: undefined;
2379
+ flexDirection: "row";
2380
+ borderTopWidth: number;
2381
+ borderTopColor: string;
2382
+ };
2383
+ tabSlot: {
2384
+ flex: number;
2385
+ alignItems: "center";
2386
+ justifyContent: "center";
2387
+ };
2388
+ tabPress: {
2389
+ flex: number;
2390
+ width: "100%";
2391
+ alignItems: "center";
2392
+ justifyContent: "center";
2393
+ };
2394
+ label: {
2395
+ marginTop: number;
2396
+ textAlign: "center";
2397
+ };
2398
+ circle: {
2399
+ position: "absolute";
2400
+ };
2401
+ absLayer: {
2402
+ position: "absolute";
2403
+ zIndex: number;
2404
+ };
2405
+ indBot: {
2406
+ bottom: number;
2407
+ borderTopLeftRadius: number;
2408
+ borderTopRightRadius: number;
2409
+ };
2410
+ indTop: {
2411
+ top: number;
2412
+ borderBottomLeftRadius: number;
2413
+ borderBottomRightRadius: number;
2414
+ };
2415
+ badgeWrapper: {
2416
+ position: "relative";
2417
+ };
2418
+ badge: {
2419
+ position: "absolute";
2420
+ top: number;
2421
+ right: number;
2422
+ backgroundColor: string;
2423
+ borderRadius: number;
2424
+ minWidth: number;
2425
+ height: number;
2426
+ alignItems: "center";
2427
+ justifyContent: "center";
2428
+ paddingHorizontal: number;
2429
+ zIndex: number;
2430
+ };
2431
+ badgeText: {
2432
+ color: react_native.ColorValue;
2433
+ fontFamily?: string | undefined;
2434
+ fontSize: number;
2435
+ fontStyle?: "normal" | "italic" | undefined;
2436
+ fontWeight?: "normal" | "bold" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | "ultralight" | "thin" | "light" | "medium" | "regular" | "semibold" | "condensedBold" | "condensed" | "heavy" | "black" | undefined;
2437
+ letterSpacing?: number | undefined;
2438
+ lineHeight?: number | undefined;
2439
+ textAlign?: "auto" | "left" | "right" | "center" | "justify" | undefined;
2440
+ textDecorationLine?: "none" | "underline" | "line-through" | "underline line-through" | undefined;
2441
+ textDecorationStyle?: "solid" | "double" | "dotted" | "dashed" | undefined;
2442
+ textDecorationColor?: react_native.ColorValue | undefined;
2443
+ textShadowColor?: react_native.ColorValue | undefined;
2444
+ textShadowOffset?: {
2445
+ width: number;
2446
+ height: number;
2447
+ } | undefined;
2448
+ textShadowRadius?: number | undefined;
2449
+ textTransform?: "none" | "capitalize" | "uppercase" | "lowercase" | undefined;
2450
+ userSelect?: "auto" | "none" | "text" | "contain" | "all" | undefined;
2451
+ fontVariant?: react_native.FontVariant[] | undefined;
2452
+ writingDirection?: "auto" | "ltr" | "rtl" | undefined;
2453
+ backfaceVisibility?: "visible" | "hidden" | undefined;
2454
+ backgroundColor?: react_native.ColorValue | undefined;
2455
+ borderBlockColor?: react_native.ColorValue | undefined;
2456
+ borderBlockEndColor?: react_native.ColorValue | undefined;
2457
+ borderBlockStartColor?: react_native.ColorValue | undefined;
2458
+ borderBottomColor?: react_native.ColorValue | undefined;
2459
+ borderBottomEndRadius?: react_native.AnimatableNumericValue | string | undefined;
2460
+ borderBottomLeftRadius?: react_native.AnimatableNumericValue | string | undefined;
2461
+ borderBottomRightRadius?: react_native.AnimatableNumericValue | string | undefined;
2462
+ borderBottomStartRadius?: react_native.AnimatableNumericValue | string | undefined;
2463
+ borderColor?: react_native.ColorValue | undefined;
2464
+ borderCurve?: "circular" | "continuous" | undefined;
2465
+ borderEndColor?: react_native.ColorValue | undefined;
2466
+ borderEndEndRadius?: react_native.AnimatableNumericValue | string | undefined;
2467
+ borderEndStartRadius?: react_native.AnimatableNumericValue | string | undefined;
2468
+ borderLeftColor?: react_native.ColorValue | undefined;
2469
+ borderRadius?: react_native.AnimatableNumericValue | string | undefined;
2470
+ borderRightColor?: react_native.ColorValue | undefined;
2471
+ borderStartColor?: react_native.ColorValue | undefined;
2472
+ borderStartEndRadius?: react_native.AnimatableNumericValue | string | undefined;
2473
+ borderStartStartRadius?: react_native.AnimatableNumericValue | string | undefined;
2474
+ borderStyle?: "solid" | "dotted" | "dashed" | undefined;
2475
+ borderTopColor?: react_native.ColorValue | undefined;
2476
+ borderTopEndRadius?: react_native.AnimatableNumericValue | string | undefined;
2477
+ borderTopLeftRadius?: react_native.AnimatableNumericValue | string | undefined;
2478
+ borderTopRightRadius?: react_native.AnimatableNumericValue | string | undefined;
2479
+ borderTopStartRadius?: react_native.AnimatableNumericValue | string | undefined;
2480
+ outlineColor?: react_native.ColorValue | undefined;
2481
+ outlineOffset?: react_native.AnimatableNumericValue | undefined;
2482
+ outlineStyle?: "solid" | "dotted" | "dashed" | undefined;
2483
+ outlineWidth?: react_native.AnimatableNumericValue | undefined;
2484
+ opacity?: react_native.AnimatableNumericValue | undefined;
2485
+ elevation?: number | undefined;
2486
+ pointerEvents?: "box-none" | "none" | "box-only" | "auto" | undefined;
2487
+ isolation?: "auto" | "isolate" | undefined;
2488
+ cursor?: react_native.CursorValue | undefined;
2489
+ boxShadow?: ReadonlyArray<react_native.BoxShadowValue> | string | undefined;
2490
+ filter?: ReadonlyArray<react_native.FilterFunction> | string | undefined;
2491
+ mixBlendMode?: react_native.BlendMode | undefined;
2492
+ experimental_backgroundImage?: ReadonlyArray<react_native.GradientValue> | string | undefined;
2493
+ alignContent?: "flex-start" | "flex-end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly" | undefined;
2494
+ alignItems?: react_native.FlexAlignType | undefined;
2495
+ alignSelf?: "auto" | react_native.FlexAlignType | undefined;
2496
+ aspectRatio?: number | string | undefined;
2497
+ borderBottomWidth?: number | undefined;
2498
+ borderEndWidth?: number | undefined;
2499
+ borderLeftWidth?: number | undefined;
2500
+ borderRightWidth?: number | undefined;
2501
+ borderStartWidth?: number | undefined;
2502
+ borderTopWidth?: number | undefined;
2503
+ borderWidth?: number | undefined;
2504
+ bottom?: react_native.DimensionValue | undefined;
2505
+ boxSizing?: "border-box" | "content-box" | undefined;
2506
+ display?: "none" | "flex" | "contents" | undefined;
2507
+ end?: react_native.DimensionValue | undefined;
2508
+ flex?: number | undefined;
2509
+ flexBasis?: react_native.DimensionValue | undefined;
2510
+ flexDirection?: "row" | "column" | "row-reverse" | "column-reverse" | undefined;
2511
+ rowGap?: number | string | undefined;
2512
+ gap?: number | string | undefined;
2513
+ columnGap?: number | string | undefined;
2514
+ flexGrow?: number | undefined;
2515
+ flexShrink?: number | undefined;
2516
+ flexWrap?: "wrap" | "nowrap" | "wrap-reverse" | undefined;
2517
+ height?: react_native.DimensionValue | undefined;
2518
+ justifyContent?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly" | undefined;
2519
+ left?: react_native.DimensionValue | undefined;
2520
+ margin?: react_native.DimensionValue | undefined;
2521
+ marginBottom?: react_native.DimensionValue | undefined;
2522
+ marginEnd?: react_native.DimensionValue | undefined;
2523
+ marginHorizontal?: react_native.DimensionValue | undefined;
2524
+ marginLeft?: react_native.DimensionValue | undefined;
2525
+ marginRight?: react_native.DimensionValue | undefined;
2526
+ marginStart?: react_native.DimensionValue | undefined;
2527
+ marginTop?: react_native.DimensionValue | undefined;
2528
+ marginVertical?: react_native.DimensionValue | undefined;
2529
+ maxHeight?: react_native.DimensionValue | undefined;
2530
+ maxWidth?: react_native.DimensionValue | undefined;
2531
+ minHeight?: react_native.DimensionValue | undefined;
2532
+ minWidth?: react_native.DimensionValue | undefined;
2533
+ overflow?: "visible" | "hidden" | "scroll" | undefined;
2534
+ padding?: react_native.DimensionValue | undefined;
2535
+ paddingBottom?: react_native.DimensionValue | undefined;
2536
+ paddingEnd?: react_native.DimensionValue | undefined;
2537
+ paddingHorizontal?: react_native.DimensionValue | undefined;
2538
+ paddingLeft?: react_native.DimensionValue | undefined;
2539
+ paddingRight?: react_native.DimensionValue | undefined;
2540
+ paddingStart?: react_native.DimensionValue | undefined;
2541
+ paddingTop?: react_native.DimensionValue | undefined;
2542
+ paddingVertical?: react_native.DimensionValue | undefined;
2543
+ position?: "absolute" | "relative" | "static" | undefined;
2544
+ right?: react_native.DimensionValue | undefined;
2545
+ start?: react_native.DimensionValue | undefined;
2546
+ top?: react_native.DimensionValue | undefined;
2547
+ width?: react_native.DimensionValue | undefined;
2548
+ zIndex?: number | undefined;
2549
+ direction?: "inherit" | "ltr" | "rtl" | undefined;
2550
+ inset?: react_native.DimensionValue | undefined;
2551
+ insetBlock?: react_native.DimensionValue | undefined;
2552
+ insetBlockEnd?: react_native.DimensionValue | undefined;
2553
+ insetBlockStart?: react_native.DimensionValue | undefined;
2554
+ insetInline?: react_native.DimensionValue | undefined;
2555
+ insetInlineEnd?: react_native.DimensionValue | undefined;
2556
+ insetInlineStart?: react_native.DimensionValue | undefined;
2557
+ marginBlock?: react_native.DimensionValue | undefined;
2558
+ marginBlockEnd?: react_native.DimensionValue | undefined;
2559
+ marginBlockStart?: react_native.DimensionValue | undefined;
2560
+ marginInline?: react_native.DimensionValue | undefined;
2561
+ marginInlineEnd?: react_native.DimensionValue | undefined;
2562
+ marginInlineStart?: react_native.DimensionValue | undefined;
2563
+ paddingBlock?: react_native.DimensionValue | undefined;
2564
+ paddingBlockEnd?: react_native.DimensionValue | undefined;
2565
+ paddingBlockStart?: react_native.DimensionValue | undefined;
2566
+ paddingInline?: react_native.DimensionValue | undefined;
2567
+ paddingInlineEnd?: react_native.DimensionValue | undefined;
2568
+ paddingInlineStart?: react_native.DimensionValue | undefined;
2569
+ shadowColor?: react_native.ColorValue | undefined;
2570
+ shadowOffset?: Readonly<{
2571
+ width: number;
2572
+ height: number;
2573
+ }> | undefined;
2574
+ shadowOpacity?: react_native.AnimatableNumericValue | undefined;
2575
+ shadowRadius?: number | undefined;
2576
+ transform?: Readonly<react_native.MaximumOneOf<react_native.PerspectiveTransform & react_native.RotateTransform & react_native.RotateXTransform & react_native.RotateYTransform & react_native.RotateZTransform & react_native.ScaleTransform & react_native.ScaleXTransform & react_native.ScaleYTransform & react_native.TranslateXTransform & react_native.TranslateYTransform & react_native.SkewXTransform & react_native.SkewYTransform & react_native.MatrixTransform>[]> | string | undefined;
2577
+ transformOrigin?: Array<string | number> | string | undefined;
2578
+ transformMatrix?: Array<number> | undefined;
2579
+ rotation?: react_native.AnimatableNumericValue | undefined;
2580
+ scaleX?: react_native.AnimatableNumericValue | undefined;
2581
+ scaleY?: react_native.AnimatableNumericValue | undefined;
2582
+ translateX?: react_native.AnimatableNumericValue | undefined;
2583
+ translateY?: react_native.AnimatableNumericValue | undefined;
2584
+ textAlignVertical?: "auto" | "top" | "bottom" | "center" | undefined;
2585
+ verticalAlign?: "auto" | "top" | "bottom" | "middle" | undefined;
2586
+ includeFontPadding?: boolean | undefined;
2587
+ };
2588
+ fabAnchor: {
2589
+ position: "absolute";
2590
+ left: number;
2591
+ right: number;
2592
+ zIndex: number;
2593
+ alignItems: "center";
2594
+ };
2595
+ fabBtn: {
2596
+ alignItems: "center";
2597
+ justifyContent: "center";
2598
+ } | {
2599
+ shadowColor: string;
2600
+ shadowOffset: {
2601
+ width: number;
2602
+ height: number;
2603
+ };
2604
+ shadowOpacity: number;
2605
+ shadowRadius: number;
2606
+ elevation?: undefined;
2607
+ alignItems: "center";
2608
+ justifyContent: "center";
2609
+ } | {
2610
+ elevation: number;
2611
+ shadowColor?: undefined;
2612
+ shadowOffset?: undefined;
2613
+ shadowOpacity?: undefined;
2614
+ shadowRadius?: undefined;
2615
+ alignItems: "center";
2616
+ justifyContent: "center";
2617
+ };
2618
+ };
2619
+
2620
+ interface BottomBarItemProps {
2621
+ tab: BottomBarTab;
2622
+ index: number;
2623
+ isActive: boolean;
2624
+ onPress: (index: number) => void;
2625
+ color: string;
2626
+ iconSize: number;
2627
+ showLabels: boolean;
2628
+ labelFontSize: number;
2629
+ showCircle: boolean;
2630
+ resolvedPillColor: string;
2631
+ labelStyle?: StyleProp<TextStyle>;
2632
+ styles: ReturnType<typeof getBottomBarStyles>;
2633
+ }
2634
+ declare function BottomBarItem({ tab, index, isActive, onPress, color, iconSize, showLabels, labelFontSize, showCircle, resolvedPillColor, labelStyle, styles, }: BottomBarItemProps): react_jsx_runtime.JSX.Element;
2635
+
2636
+ declare function BottomBarLayout({ tabs, renderPage, renderHeader, initialPage, swipeEnabled, showLabels, indicatorPosition, activeHighlight, fab, backgroundColor, activeColor, inactiveColor, indicatorColor, pillColor, iconSize, labelFontSize, barHeight, indicatorHeight, barStyle, tabStyle, labelStyle, indicatorStyle, }: BottomBarLayoutProps): react_jsx_runtime.JSX.Element;
2637
+
2638
+ interface PageSwipeViewProps {
2639
+ /** Number of pages */
2640
+ pageCount: number;
2641
+ /** Render function for each page by index */
2642
+ renderPage: (index: number) => React__default.ReactNode;
2643
+ /** Shared Animated.Value tracking horizontal scroll offset */
2644
+ scrollX: Animated.Value;
2645
+ /** Currently active page index */
2646
+ activeIndex: number;
2647
+ /** Called when page changes via swipe */
2648
+ onPageChange: (index: number) => void;
2649
+ /** Page to show initially */
2650
+ initialPage?: number;
2651
+ /** Keys for each page (for stable rendering) */
2652
+ pageKeys?: string[];
2653
+ /** Custom page width (defaults to screen width) */
2654
+ pageWidth?: number;
2655
+ }
2656
+ declare function PageSwipeView({ pageCount, renderPage, scrollX, activeIndex, onPageChange, initialPage, pageKeys, pageWidth, }: PageSwipeViewProps): react_jsx_runtime.JSX.Element;
2657
+
2658
+ interface TabItem {
2659
+ key: string;
2660
+ title: string;
2661
+ icon?: ReactNode;
2662
+ isValid?: boolean;
2663
+ }
2664
+ type TabBarVariant = 'horizontal' | 'vertical';
2665
+ interface TabBarProps {
2666
+ tabs: TabItem[];
2667
+ activeIndex: number;
2668
+ onTabPress: (index: number) => void;
2669
+ scrollX: Animated.Value;
2670
+ /** If true, tab bar scrolls horizontally. If false, tabs fill screen width equally. */
2671
+ isScrollable?: boolean;
2672
+ /** 'horizontal' = icon + label side-by-side. 'vertical' = icon on top, label below. */
2673
+ variant?: TabBarVariant;
2674
+ indicatorColor?: string;
2675
+ activeTextColor?: string;
2676
+ inactiveTextColor?: string;
2677
+ validationIconColor?: string;
2678
+ iconSize?: number;
2679
+ tabBarStyle?: StyleProp<ViewStyle>;
2680
+ tabItemStyle?: StyleProp<ViewStyle>;
2681
+ tabLabelStyle?: StyleProp<TextStyle>;
2682
+ indicatorStyle?: StyleProp<ViewStyle>;
2683
+ }
2684
+
2685
+ declare function TabBar({ tabs, activeIndex, onTabPress, scrollX, isScrollable, variant, indicatorColor, activeTextColor, inactiveTextColor, validationIconColor, iconSize, tabBarStyle, tabItemStyle, tabLabelStyle, indicatorStyle, }: TabBarProps): react_jsx_runtime.JSX.Element;
2686
+
2687
+ interface Tab {
2688
+ key: string;
2689
+ title: string;
2690
+ icon?: ReactNode;
2691
+ isValid?: boolean;
2692
+ render: () => React__default.ReactNode;
2693
+ }
2694
+ interface TabPagerProps {
2695
+ tabs: Tab[];
2696
+ initialPage?: number;
2697
+ /** If true, tab bar scrolls horizontally. If false, tabs fill screen width equally. */
2698
+ isScrollable?: boolean;
2699
+ /** 'horizontal' = icon + label side-by-side. 'vertical' = icon on top, label below. */
2700
+ variant?: TabBarVariant;
2701
+ indicatorColor?: string;
2702
+ activeTextColor?: string;
2703
+ inactiveTextColor?: string;
2704
+ validationIconColor?: string;
2705
+ iconSize?: number;
2706
+ tabBarStyle?: StyleProp<ViewStyle>;
2707
+ tabItemStyle?: StyleProp<ViewStyle>;
2708
+ tabLabelStyle?: StyleProp<TextStyle>;
2709
+ indicatorStyle?: StyleProp<ViewStyle>;
2710
+ }
2711
+ declare function TabPager({ tabs, initialPage, isScrollable, variant, indicatorColor, activeTextColor, inactiveTextColor, validationIconColor, iconSize, tabBarStyle, tabItemStyle, tabLabelStyle, indicatorStyle, }: TabPagerProps): react_jsx_runtime.JSX.Element;
2712
+
2713
+ type HeaderSize = "small" | "medium" | "large";
2714
+ type HeaderVariant = "default" | "transparent" | "primary";
2715
+ interface HeaderProps {
2716
+ title?: string;
2717
+ subtitle?: string;
2718
+ leading?: ReactNode;
2719
+ trailing?: ReactNode;
2720
+ onBack?: () => void;
2721
+ variant?: HeaderVariant;
2722
+ size?: HeaderSize;
2723
+ centerTitle?: boolean;
2724
+ style?: StyleProp<ViewStyle>;
2725
+ /** Shows a search icon that expands into a search input */
2726
+ searchable?: boolean;
2727
+ /** Callback when search text changes */
2728
+ onSearch?: (query: string) => void;
2729
+ /** Placeholder text for the search input */
2730
+ searchPlaceholder?: string;
2731
+ }
2732
+
2733
+ declare function Header({ title, subtitle, leading, trailing, onBack, variant, size, centerTitle, style, searchable, onSearch, searchPlaceholder, }: HeaderProps): react_jsx_runtime.JSX.Element;
2734
+
2735
+ type CollapsibleSize = "small" | "medium" | "large";
2736
+ interface CollapsibleSectionProps {
2737
+ title: string;
2738
+ children: ReactNode;
2739
+ defaultExpanded?: boolean;
2740
+ expanded?: boolean;
2741
+ onToggle?: (expanded: boolean) => void;
2742
+ icon?: ReactNode;
2743
+ trailing?: ReactNode;
2744
+ size?: CollapsibleSize;
2745
+ disabled?: boolean;
2746
+ style?: StyleProp<ViewStyle>;
2747
+ }
2748
+
2749
+ declare function CollapsibleSection({ title, children, defaultExpanded, expanded: expandedProp, onToggle, icon, trailing, size, disabled, style, }: CollapsibleSectionProps): react_jsx_runtime.JSX.Element;
2750
+
2751
+ interface AccordionItem {
2752
+ id: string;
2753
+ title: string;
2754
+ content: ReactNode;
2755
+ icon?: ReactNode;
2756
+ disabled?: boolean;
2757
+ }
2758
+ type AccordionVariant = "default" | "separated" | "bordered";
2759
+ type AccordionSize = "small" | "medium" | "large";
2760
+ interface AccordionProps {
2761
+ items: AccordionItem[];
2762
+ /** When false (default) only one item can be open at a time. */
2763
+ allowMultiple?: boolean;
2764
+ /** Item ids that should be expanded on first render. */
2765
+ defaultExpandedIds?: string[];
2766
+ /** Called whenever the set of expanded ids changes. */
2767
+ onChange?: (expandedIds: string[]) => void;
2768
+ variant?: AccordionVariant;
2769
+ size?: AccordionSize;
2770
+ style?: StyleProp<ViewStyle>;
2771
+ }
2772
+
2773
+ declare function Accordion({ items, allowMultiple, defaultExpandedIds, onChange, variant, size, style, }: AccordionProps): react_jsx_runtime.JSX.Element;
2774
+
2775
+ type StepItem = {
2776
+ id: string;
2777
+ title: string;
2778
+ description?: string;
2779
+ icon?: React.ReactNode;
2780
+ };
2781
+ type StepperSize = "small" | "medium" | "large";
2782
+ type StepperProps = {
2783
+ /** Array of step definitions */
2784
+ steps: StepItem[];
2785
+ /** Zero-based index of the current active step */
2786
+ currentStep: number;
2787
+ /** Called when a step circle is tapped */
2788
+ onChange?: (step: number) => void;
2789
+ /** Layout direction */
2790
+ variant?: "horizontal" | "vertical";
2791
+ /** Circle and text sizing */
2792
+ size?: StepperSize;
2793
+ /** Color for completed steps */
2794
+ completedColor?: string;
2795
+ /** Color for the active step */
2796
+ activeColor?: string;
2797
+ /** Additional container style */
2798
+ style?: ViewStyle;
2799
+ };
2800
+
2801
+ declare function Stepper({ steps, currentStep, onChange, variant, size, completedColor, activeColor, style, }: StepperProps): react_jsx_runtime.JSX.Element;
2802
+
2803
+ interface DrawerProps {
2804
+ /** Whether the drawer is visible. */
2805
+ visible: boolean;
2806
+ /** Called when the drawer requests to close. */
2807
+ onClose: () => void;
2808
+ /** Which side the drawer slides in from. Default `'left'`. */
2809
+ position?: 'left' | 'right';
2810
+ /** Width of the drawer panel. Default `'80%'`. */
2811
+ width?: number | string;
2812
+ /** Scrollable content rendered inside the drawer body. */
2813
+ children: ReactNode;
2814
+ /** Optional header rendered above the scrollable content. */
2815
+ header?: ReactNode;
2816
+ /** Optional footer rendered below the scrollable content. */
2817
+ footer?: ReactNode;
2818
+ /** Backdrop color. Default `'rgba(0,0,0,0.45)'`. */
2819
+ backdropColor?: string;
2820
+ /** Show the semi-transparent backdrop. Default `true`. */
2821
+ showBackdrop?: boolean;
2822
+ /** Enable swipe-to-close gesture via PanResponder. Default `true`. */
2823
+ gestureEnabled?: boolean;
2824
+ /** Additional style applied to the drawer container. */
2825
+ style?: ViewStyle;
2826
+ }
2827
+
2828
+ declare function Drawer({ visible, onClose, position, width: widthProp, children, header, footer, backdropColor, showBackdrop, gestureEnabled, style, }: DrawerProps): react_jsx_runtime.JSX.Element | null;
2829
+
2830
+ declare const AlertModal: React__default.FC<AlertModalProps>;
2831
+
2832
+ declare function getAlertIconAndColors(type: AlertType): {
2833
+ icon: ReactNode;
2834
+ color: string;
2835
+ backgroundColor: string;
2836
+ };
2837
+
2838
+ type ModalType = 'center' | 'bottom-sheet';
2839
+ interface CustomModalProps {
2840
+ /** Whether the modal is visible. */
2841
+ visible: boolean;
2842
+ /** Called when the modal requests to close (backdrop tap, close icon, back button). */
2843
+ onClose: () => void;
2844
+ /** Presentation style. Default `'center'`. */
2845
+ type?: ModalType;
2846
+ /** Modal title shown in the default header. */
2847
+ title?: string;
2848
+ /** Show the default header. Default `true`. */
2849
+ showHeader?: boolean;
2850
+ /** Show close icon (X) on the left of the header. Default `true`. */
2851
+ showCloseIcon?: boolean;
2852
+ /** Custom element for the header-left slot (replaces default close icon). */
2853
+ headerLeft?: ReactNode;
2854
+ /** Custom element for the header-right slot (e.g. "Save" button). */
2855
+ headerRight?: ReactNode;
2856
+ /** Sticky footer rendered below the scrollable content. */
2857
+ footer?: ReactNode;
2858
+ /** Close when tapping the backdrop. Default `true`. */
2859
+ closeOnOutsidePress?: boolean;
2860
+ /** Move footer above keyboard when it opens. Default `true`. */
2861
+ avoidKeyboard?: boolean;
2862
+ /** Animation duration in ms. Default `300`. */
2863
+ animationDuration?: number;
2864
+ /** Max height for bottom-sheet (number or percentage string). Default `'80%'`. */
2865
+ maxHeight?: number | string;
2866
+ /** Border radius of the modal container. */
2867
+ borderRadius?: number;
2868
+ /** Style for the outer modal container. */
2869
+ modalStyle?: StyleProp<ViewStyle>;
2870
+ /** Style for the header row. */
2871
+ headerStyle?: StyleProp<ViewStyle>;
2872
+ /** Style for the scrollable content area. */
2873
+ contentStyle?: StyleProp<ViewStyle>;
2874
+ /** Style for the footer wrapper. */
2875
+ footerStyle?: StyleProp<ViewStyle>;
2876
+ /** Style for the title text. */
2877
+ titleStyle?: StyleProp<TextStyle>;
2878
+ /** Scrollable content. */
2879
+ children?: ReactNode;
2880
+ }
2881
+ interface CustomModalRef {
2882
+ open: () => void;
2883
+ close: () => void;
2884
+ }
2885
+
2886
+ declare const CustomModal: React__default.ForwardRefExoticComponent<CustomModalProps & React__default.RefAttributes<CustomModalRef>>;
2887
+
2888
+ interface ModalHeaderProps {
2889
+ title?: string;
2890
+ onClose: () => void;
2891
+ showCloseIcon?: boolean;
2892
+ headerLeft?: React__default.ReactNode;
2893
+ headerRight?: React__default.ReactNode;
2894
+ headerStyle?: StyleProp<ViewStyle>;
2895
+ titleStyle?: StyleProp<TextStyle>;
2896
+ }
2897
+ declare function ModalHeader({ title, onClose, showCloseIcon, headerLeft, headerRight, headerStyle, titleStyle, }: ModalHeaderProps): react_jsx_runtime.JSX.Element;
2898
+
2899
+ declare function CustomModalExample(): react_jsx_runtime.JSX.Element;
2900
+
2901
+ interface UseModalAnimationOptions {
2902
+ visible: boolean;
2903
+ onClose: () => void;
2904
+ isBottomSheet: boolean;
2905
+ avoidKeyboard: boolean;
2906
+ animationDuration: number;
2907
+ maxHeight: number | string;
2908
+ }
2909
+ interface ModalAnimationState {
2910
+ modalVisible: boolean;
2911
+ kbHeight: number;
2912
+ backdropAnim: Animated.Value;
2913
+ contentTransform: Record<string, any>;
2914
+ resolvedMaxHeight: number;
2915
+ doClose: () => void;
2916
+ }
2917
+ declare function useModalAnimation({ visible, onClose, isBottomSheet, avoidKeyboard, animationDuration, maxHeight: maxHeightProp, }: UseModalAnimationOptions): ModalAnimationState;
2918
+
2919
+ declare const BACKDROP_COLOR = "rgba(0,0,0,0.45)";
2920
+ declare const modalStyles: {
2921
+ container: {
2922
+ flex: number;
2923
+ };
2924
+ containerCenter: {
2925
+ justifyContent: "center";
2926
+ alignItems: "center";
2927
+ paddingHorizontal: number;
2928
+ };
2929
+ containerBottom: {
2930
+ justifyContent: "flex-end";
2931
+ };
2932
+ modal: {
2933
+ overflow: "hidden";
2934
+ shadowColor: string;
2935
+ shadowOffset: {
2936
+ width: number;
2937
+ height: number;
2938
+ };
2939
+ shadowOpacity: number;
2940
+ shadowRadius: number;
2941
+ elevation: number;
2942
+ };
2943
+ modalCenter: {
2944
+ width: "100%";
2945
+ maxWidth: number;
2946
+ };
2947
+ scroll: {
2948
+ flexGrow: number;
2949
+ flexShrink: number;
2950
+ };
2951
+ scrollContent: {
2952
+ padding: number;
2953
+ };
2954
+ footer: {
2955
+ borderTopWidth: number;
2956
+ padding: number;
2957
+ };
2958
+ };
2959
+
2960
+ type MessageStatus = "info" | "success" | "warning" | "error";
2961
+ interface CustomMessageBoxProps {
2962
+ title?: string;
2963
+ message?: string;
2964
+ status?: MessageStatus;
2965
+ style?: StyleProp<ViewStyle>;
2966
+ }
2967
+
2968
+ declare const CustomMessageBox: React__default.FC<CustomMessageBoxProps>;
2969
+
2970
+ type CommonStateType = "no-data" | "not-found" | "restricted";
2971
+ interface CommonStateProps {
2972
+ type: CommonStateType;
2973
+ title?: string;
2974
+ description?: string;
2975
+ image?: ReactNode;
2976
+ action?: ReactNode;
2977
+ onActionPress?: () => void;
2978
+ }
2979
+
2980
+ declare const CommonState: React__default.FC<CommonStateProps>;
2981
+
2982
+ declare const COMMON_STATE_CONFIG: Record<CommonStateType, {
2983
+ title: string;
2984
+ description: string;
2985
+ image: number;
2986
+ }>;
2987
+
2988
+ type ToastType = "success" | "error" | "warning" | "info";
2989
+ type ToastPosition = "top" | "bottom";
2990
+ interface ToastConfig {
2991
+ id?: string;
2992
+ type?: ToastType;
2993
+ title: string;
2994
+ message?: string;
2995
+ duration?: number;
2996
+ position?: ToastPosition;
2997
+ icon?: ReactNode;
2998
+ onPress?: () => void;
2999
+ onDismiss?: () => void;
3000
+ action?: {
3001
+ label: string;
3002
+ onPress: () => void;
3003
+ };
3004
+ }
3005
+ interface ToastRef {
3006
+ show: (config: ToastConfig) => void;
3007
+ hide: (id?: string) => void;
3008
+ hideAll: () => void;
3009
+ }
3010
+ interface InternalToast extends Required<Pick<ToastConfig, "id" | "type" | "title" | "duration" | "position">> {
3011
+ message?: string;
3012
+ icon?: ReactNode;
3013
+ onPress?: () => void;
3014
+ onDismiss?: () => void;
3015
+ action?: {
3016
+ label: string;
3017
+ onPress: () => void;
3018
+ };
3019
+ }
3020
+ interface ToastContextValue {
3021
+ show: (config: ToastConfig) => void;
3022
+ hide: (id?: string) => void;
3023
+ hideAll: () => void;
3024
+ }
3025
+ interface ToastItemProps {
3026
+ toast: InternalToast;
3027
+ onDismiss: (id: string) => void;
3028
+ }
3029
+
3030
+ declare function useToast(): ToastContextValue;
3031
+
3032
+ declare const ToastProvider: React__default.ForwardRefExoticComponent<{
3033
+ children: React__default.ReactNode;
3034
+ } & React__default.RefAttributes<ToastRef>>;
3035
+
3036
+ declare function ToastItem({ toast, onDismiss }: ToastItemProps): react_jsx_runtime.JSX.Element;
3037
+
3038
+ type LoaderSize = "small" | "medium" | "large";
3039
+ type LoaderVariant = "spinner" | "dots" | "pulse" | "bar";
3040
+ interface LoaderProps {
3041
+ size?: LoaderSize;
3042
+ variant?: LoaderVariant;
3043
+ color?: string;
3044
+ loading?: boolean;
3045
+ overlay?: boolean;
3046
+ label?: string;
3047
+ style?: StyleProp<ViewStyle>;
3048
+ }
3049
+
3050
+ declare function Loader({ size, variant, color, loading, overlay, label, style, }: LoaderProps): react_jsx_runtime.JSX.Element | null;
3051
+
3052
+ type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';
3053
+ type TooltipTrigger = 'press' | 'longPress';
3054
+ interface TooltipProps {
3055
+ /** The element that triggers the tooltip. */
3056
+ children: ReactNode;
3057
+ /** Tooltip content — plain string or custom JSX. */
3058
+ content: string | ReactNode;
3059
+ /** Where to place the tooltip relative to the trigger. @default 'top' */
3060
+ placement?: TooltipPlacement;
3061
+ /** How the tooltip is triggered. @default 'press' */
3062
+ trigger?: TooltipTrigger;
3063
+ /** Delay in ms before showing the tooltip after trigger. @default 0 */
3064
+ delay?: number;
3065
+ /** Background colour of the tooltip bubble. */
3066
+ backgroundColor?: string;
3067
+ /** Text colour (only applies when `content` is a string). */
3068
+ textColor?: string;
3069
+ /** Whether to render a small arrow pointing at the anchor. @default true */
3070
+ showArrow?: boolean;
3071
+ /** Controlled visibility — when provided the component becomes controlled. */
3072
+ visible?: boolean;
3073
+ /** Called when the tooltip opens. */
3074
+ onOpen?: () => void;
3075
+ /** Called when the tooltip closes. */
3076
+ onClose?: () => void;
3077
+ /** Extra styles applied to the tooltip bubble container. */
3078
+ style?: ViewStyle;
3079
+ }
3080
+
3081
+ declare function Tooltip({ children, content, placement, trigger, delay, backgroundColor, textColor, showArrow, visible: controlledVisible, onOpen, onClose, style, }: TooltipProps): react_jsx_runtime.JSX.Element;
3082
+
3083
+ type ConfirmationType = "default" | "danger" | "warning";
3084
+ interface ConfirmationModalProps {
3085
+ visible: boolean;
3086
+ onClose: () => void;
3087
+ onConfirm: () => void;
3088
+ title: string;
3089
+ message?: string;
3090
+ confirmText?: string;
3091
+ cancelText?: string;
3092
+ type?: ConfirmationType;
3093
+ loading?: boolean;
3094
+ icon?: ReactNode;
3095
+ }
3096
+
3097
+ declare const ConfirmationModal: React__default.FC<ConfirmationModalProps>;
3098
+
3099
+ interface SnackbarAction {
3100
+ label: string;
3101
+ onPress: () => void;
3102
+ }
3103
+ interface SnackbarProps {
3104
+ visible: boolean;
3105
+ message: string;
3106
+ action?: SnackbarAction;
3107
+ duration?: number;
3108
+ onDismiss: () => void;
3109
+ position?: "top" | "bottom";
3110
+ icon?: ReactNode;
3111
+ style?: ViewStyle;
3112
+ }
3113
+
3114
+ declare const Snackbar: React__default.FC<SnackbarProps>;
3115
+
3116
+ type PopupPlacement = 'auto' | 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
3117
+ interface PopupMenuProps {
3118
+ /** Content rendered inside the popup */
3119
+ children: ReactNode;
3120
+ /** Component that triggers the popup on press. If omitted the popup shows centered. */
3121
+ anchor?: (props: {
3122
+ onPress: () => void;
3123
+ }) => ReactNode;
3124
+ /** Externally controlled visibility (optional – use with onClose) */
3125
+ visible?: boolean;
3126
+ /** Called when the popup requests to close */
3127
+ onClose?: () => void;
3128
+ /** Called when the popup opens */
3129
+ onOpen?: () => void;
3130
+ /** Preferred placement relative to anchor (default 'auto') */
3131
+ placement?: PopupPlacement;
3132
+ /** Gap between anchor and popup in px (default 8) */
3133
+ offset?: number;
3134
+ /** Backdrop color (default 'rgba(0,0,0,0.25)') */
3135
+ backdropColor?: string;
3136
+ /** Close when tapping outside the popup (default true) */
3137
+ closeOnOutsidePress?: boolean;
3138
+ /** Show a close icon button inside the popup (default false) */
3139
+ showCloseIcon?: boolean;
3140
+ /** Animation duration in ms (default 200) */
3141
+ animationDuration?: number;
3142
+ /** Popup container style */
3143
+ popupStyle?: StyleProp<ViewStyle>;
3144
+ /** Popup content wrapper style */
3145
+ contentStyle?: StyleProp<ViewStyle>;
3146
+ }
3147
+ interface PopupMenuRef {
3148
+ open: () => void;
3149
+ close: () => void;
3150
+ toggle: () => void;
3151
+ }
3152
+
3153
+ declare const PopupMenu: React__default.ForwardRefExoticComponent<PopupMenuProps & React__default.RefAttributes<PopupMenuRef>>;
3154
+
3155
+ interface PopupMenuItemProps {
3156
+ label: string;
3157
+ onPress?: () => void;
3158
+ icon?: ReactNode;
3159
+ iconColor?: string;
3160
+ textColor?: string;
3161
+ disabled?: boolean;
3162
+ /** Show a separator line below this item */
3163
+ separator?: boolean;
3164
+ /** Danger / destructive style */
3165
+ destructive?: boolean;
3166
+ }
3167
+ declare function PopupMenuItem({ label, onPress, icon, iconColor, textColor, disabled, separator, destructive, }: PopupMenuItemProps): react_jsx_runtime.JSX.Element;
3168
+
3169
+ type DismissKeyboardViewProps = ViewProps;
3170
+
3171
+ declare const DismissKeyboardView: React__default.FC<DismissKeyboardViewProps>;
3172
+
3173
+ interface AnimatedListItemProps {
3174
+ children: ReactNode;
3175
+ index: number;
3176
+ }
3177
+
3178
+ declare const AnimatedListItem: ({ children, index }: AnimatedListItemProps) => react_jsx_runtime.JSX.Element;
3179
+
3180
+ type ErrorBoundaryProps = {
3181
+ children: React__default.ReactNode;
3182
+ fallback?: React__default.ReactNode;
3183
+ onError?: (error: Error, info: React__default.ErrorInfo) => void;
3184
+ onReset?: () => void;
3185
+ };
3186
+ type ErrorBoundaryState = {
3187
+ hasError: boolean;
3188
+ error: Error | null;
3189
+ };
3190
+
3191
+ declare class ErrorBoundary extends React__default.Component<ErrorBoundaryProps, ErrorBoundaryState> {
3192
+ constructor(props: ErrorBoundaryProps);
3193
+ static getDerivedStateFromError(error: Error): ErrorBoundaryState;
3194
+ componentDidCatch(error: Error, info: React__default.ErrorInfo): void;
3195
+ resetBoundary: () => void;
3196
+ render(): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
3197
+ }
3198
+
3199
+ type NetworkStatusPosition = "top" | "bottom";
3200
+ interface NetworkStatusProps {
3201
+ /** Banner position — slides in from top or bottom. @default "top" */
3202
+ position?: NetworkStatusPosition;
3203
+ /** Generic message shown in the banner (overrides offline/online defaults). */
3204
+ message?: string;
3205
+ /** Message shown when the device is offline. @default "No internet connection" */
3206
+ offlineMessage?: string;
3207
+ /** Message shown when the device comes back online. @default "Back online" */
3208
+ onlineMessage?: string;
3209
+ /** Show a brief green banner when connectivity is restored. @default false */
3210
+ showOnlineStatus?: boolean;
3211
+ /** Extra styles applied to the banner container. */
3212
+ style?: ViewStyle;
3213
+ }
3214
+ interface NetworkStatusHandle {
3215
+ /** Manually set the connection state (useful when NetInfo is unavailable). */
3216
+ setConnected: (connected: boolean) => void;
3217
+ }
3218
+ interface UseNetworkStatusReturn {
3219
+ isConnected: boolean;
3220
+ /** Manually toggle the connected state for testing / manual control. */
3221
+ setConnected: (connected: boolean) => void;
3222
+ }
3223
+
3224
+ /**
3225
+ * Standalone hook that tracks network connectivity.
3226
+ * Tries to use `@react-native-community/netinfo` at runtime;
3227
+ * falls back to a manual `setConnected` API when the package is absent.
3228
+ */
3229
+ declare function useNetworkStatus(): UseNetworkStatusReturn;
3230
+ declare const NetworkStatus: React__default.ForwardRefExoticComponent<NetworkStatusProps & React__default.RefAttributes<NetworkStatusHandle>>;
3231
+
3232
+ declare function NetworkStatusExample(): react_jsx_runtime.JSX.Element;
3233
+
3234
+ type FABPosition = "bottom-right" | "bottom-left" | "bottom-center";
3235
+ type FABSize = "small" | "medium" | "large";
3236
+ type FABAction = {
3237
+ icon: React.ReactNode;
3238
+ label: string;
3239
+ onPress: () => void;
3240
+ color?: string;
3241
+ };
3242
+ type FABProps = {
3243
+ /** Main FAB icon */
3244
+ icon: React.ReactNode;
3245
+ /** Callback when FAB is pressed (no speed-dial) */
3246
+ onPress: () => void;
3247
+ /** Extended FAB label shown beside the icon */
3248
+ label?: string;
3249
+ /** Screen-corner position */
3250
+ position?: FABPosition;
3251
+ /** Button size */
3252
+ size?: FABSize;
3253
+ /** Background color (defaults to theme primary) */
3254
+ color?: string;
3255
+ /** Speed-dial actions fanning out above the FAB */
3256
+ actions?: FABAction[];
3257
+ /** Animate in/out */
3258
+ visible?: boolean;
3259
+ /** Additional container style */
3260
+ style?: ViewStyle;
3261
+ };
3262
+
3263
+ declare function FAB({ icon, onPress, label, position, size, color, actions, visible, style, }: FABProps): react_jsx_runtime.JSX.Element;
3264
+
3265
+ type SpeedDialAction = {
3266
+ icon: React__default.ReactNode;
3267
+ label: string;
3268
+ onPress: () => void;
3269
+ color?: string;
3270
+ };
3271
+ type SpeedDialProps = {
3272
+ actions: SpeedDialAction[];
3273
+ trigger: React__default.ReactNode | ((props: {
3274
+ onPress: () => void;
3275
+ }) => React__default.ReactNode);
3276
+ direction?: "up" | "down" | "left" | "right";
3277
+ spacing?: number;
3278
+ backdropColor?: string;
3279
+ style?: ViewStyle;
3280
+ };
3281
+
3282
+ declare function SpeedDial({ actions, trigger, direction, spacing, backdropColor, style, }: SpeedDialProps): react_jsx_runtime.JSX.Element;
3283
+
3284
+ declare function SpeedDialExample(): react_jsx_runtime.JSX.Element;
3285
+
3286
+ export { Accordion, type AccordionItem, type AccordionProps, type AccordionSize, type AccordionVariant, type ActiveHighlight, ActivityFeed, ActivityFeedExample, type ActivityFeedProps, type ActivityItem, type ActivityItemType, AlertModal, AlertModalProps, AlertType, AnimatedListItem, type AnimatedListItemProps, AutoComplete, type AutoCompleteOption, type AutoCompleteProps, Avatar, BACKDROP_COLOR, Badge, type BadgeProps, type BadgeShape, type BadgeVariant, BarChart, type BarChartProps, type BaseFieldProps, BillingUI, BillingUIExample, type BillingUIProps, BottomBar, BottomBarItem, BottomBarLayout, type BottomBarLayoutProps, type BottomBarProps, type BottomBarTab, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, type ButtonSize, type ButtonVariant, COMMON_STATE_CONFIG, COUNTRIES, Calendar, type CalendarDay, type CalendarEvent, CalendarExample, CalendarGrid, CalendarHeader, CalendarMonth, type CalendarProps, type CardSize, type CardVariant, type ChartProps, Chip, type ChipProps, type ChipSize, type ChipVariant, CollapsibleSection, type CollapsibleSectionProps, type CollapsibleSize, ColorPicker, type ColorPickerProps, CommonState, type CommonStateProps, type CommonStateType, ConfirmationModal, type ConfirmationModalProps, type ConfirmationType, type CountryCode, CustomButton, CustomButtonExample, type CustomButtonProps, CustomCard, type CustomCardProps, CustomCheckbox, type CustomCheckboxProps, CustomDivider, type CustomDividerProps, CustomField, type CustomFieldProps, CustomListItem, type CustomListItemProps, CustomListShimmer, type CustomListShimmerProps, CustomMessageBox, type CustomMessageBoxProps, CustomModal, CustomModalExample, type CustomModalProps, type CustomModalRef, CustomRadioGroup, type CustomRadioGroupProps, CustomSwitch, type CustomSwitchProps, type DataColumn, type DataPoint, DataTable, type DataTablePagination, type DataTableProps, type DateTimeFieldProps, DateTimePicker, DateTimePickerHeader, type DateTimePickerProps, DayCell, type DayModel, DismissKeyboardView, type DismissKeyboardViewProps, Drawer, type DrawerProps, ENTRY_STAGGER_MS, ErrorBoundary, type ErrorBoundaryProps, type ErrorBoundaryState, FAB, type FABAction, type FABPosition, type FABProps, type FABSize, FIELD_SIZES, type FabConfig, type FieldType, type FileFieldProps, type FilterOption, type FormContext, type FormField, FormScrollView, type FormScrollViewProps, FormWrapper, FormWrapperExample, type FormWrapperProps, Header, type HeaderProps, type HeaderSize, type HeaderVariant, IconWrapper, type IconWrapperProps, type IconWrapperShape, type IconWrapperVariant, type IndicatorPosition, type InternalToast, type InvoiceItem, InvoiceList, type InvoiceListProps, KanbanBoard, KanbanBoardExample, type KanbanBoardProps, type KanbanCard, type KanbanColumn, LINE_ANIM_DURATION, LineChart, type LineChartProps, type ListItemSize, Loader, type LoaderProps, type LoaderSize, type LoaderVariant, LoginForm, type LoginFormProps, type MarkedDateInfo, type MessageStatus, ModalHeader, type ModalType, type MonthYear, NetworkImage, type NetworkImageDimensionValue, type NetworkImageProps, NetworkStatus, NetworkStatusExample, type NetworkStatusHandle, type NetworkStatusPosition, type NetworkStatusProps, NotificationCenter, NotificationCenterExample, type NotificationCenterProps, type NotificationItem, type NotificationType, type OtpFieldProps, PageSwipeView, PasswordStrength, type PasswordStrengthProps, PhoneInput, type PhoneInputProps, type PickerMode, PieChart, type PieChartProps, type PlanItem, PopupMenu, PopupMenuItem, type PopupMenuItemProps, type PopupMenuProps, type PopupMenuRef, type PopupPlacement, PricingCard, type PricingCardProps, ProgressBar, type ProgressBarProps, type ProgressBarSize, type ProgressBarVariant, type RadioOption, type RatingFieldProps, SIZE_CONFIG$1 as SIZE_CONFIG, SearchBar, type SearchBarProps, type SearchBarSize, SearchWithFilters, type SearchWithFiltersProps, type SegmentItem, SegmentedControl, type SegmentedControlProps, type SelectFieldProps, type SelectOption, SelectionGroup, type SelectionGroupProps, type SelectionItem, type ShimmerVariant, type SignatureFieldProps, SignupForm, type SignupFormProps, Snackbar, type SnackbarAction, type SnackbarProps, SocialLoginButton, type SocialLoginButtonProps, SocialLoginGroup, type SocialLoginGroupProps, SocialLoginIconButton, type SocialProvider, SpeedDial, type SpeedDialAction, SpeedDialExample, type SpeedDialProps, StatCard, type StatCardProps, type StatCardSize, type StatTrend, type StepItem, Stepper, type StepperProps, type StepperSize, type StrengthLevel, type SwipeAction, SIZE_CONFIG as TIMELINE_SIZE_CONFIG, TabBar, type TabBarProps, type TabBarVariant, type TabItem, TabPager, Text, type TextAlign, type TextColorShortcut, type TextFieldProps, type TextProps, type TextVariant, TimePicker, type TimeValue, Timeline, TimelineExample, type TimelineItem, type TimelineItemStatus, type TimelineProps, TimelineRow, type TimelineSize, type SizeConfig as TimelineSizeConfig, type ToastConfig, type ToastContextValue, ToastItem, type ToastItemProps, type ToastPosition, ToastProvider, type ToastRef, type ToastType, Tooltip, type TooltipPlacement, type TooltipProps, type TooltipTrigger, type UseNetworkStatusReturn, VARIANT_COLORS, WheelPicker, formatMonthYear, generateMonthDays, getAlertIconAndColors, getBottomBarStyles, getCalendarHeight, getCalendarMonthStyles, getDateTimePickerStyles, getDaysInMonth, getFirstDayOfMonth, getWeekNumber, isSameDay, modalStyles, styles as timelineStyles, useDateTimePicker, useForm, useFormScroll, useModalAnimation, useNetworkStatus, useTimeHandlers, useToast };