craft-native 0.0.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -0
- package/README.md +424 -0
- package/bin/cli.ts +937 -0
- package/dist/api/android-advanced.d.ts +737 -0
- package/dist/api/android-advanced.d.ts.map +1 -0
- package/dist/api/app.d.ts +432 -0
- package/dist/api/app.d.ts.map +1 -0
- package/dist/api/clipboard.d.ts +85 -0
- package/dist/api/clipboard.d.ts.map +1 -0
- package/dist/api/crypto.d.ts +79 -0
- package/dist/api/crypto.d.ts.map +1 -0
- package/dist/api/db.d.ts +427 -0
- package/dist/api/db.d.ts.map +1 -0
- package/dist/api/dialog.d.ts +141 -0
- package/dist/api/dialog.d.ts.map +1 -0
- package/dist/api/fs.d.ts +131 -0
- package/dist/api/fs.d.ts.map +1 -0
- package/dist/api/http.d.ts +196 -0
- package/dist/api/http.d.ts.map +1 -0
- package/dist/api/index.d.ts +38 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/ios-advanced.d.ts +833 -0
- package/dist/api/ios-advanced.d.ts.map +1 -0
- package/dist/api/macos-advanced.d.ts +721 -0
- package/dist/api/macos-advanced.d.ts.map +1 -0
- package/dist/api/media.d.ts +233 -0
- package/dist/api/media.d.ts.map +1 -0
- package/dist/api/mobile.d.ts +658 -0
- package/dist/api/mobile.d.ts.map +1 -0
- package/dist/api/process.d.ts +168 -0
- package/dist/api/process.d.ts.map +1 -0
- package/dist/api/sidebar.d.ts +125 -0
- package/dist/api/sidebar.d.ts.map +1 -0
- package/dist/api/tray.d.ts +410 -0
- package/dist/api/tray.d.ts.map +1 -0
- package/dist/api/window.d.ts +462 -0
- package/dist/api/window.d.ts.map +1 -0
- package/dist/api/windows-advanced.d.ts +719 -0
- package/dist/api/windows-advanced.d.ts.map +1 -0
- package/dist/assets/index.d.ts +69 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/binary-resolver.d.ts +39 -0
- package/dist/binary-resolver.d.ts.map +1 -0
- package/dist/bridge/android.d.ts +574 -0
- package/dist/bridge/android.d.ts.map +1 -0
- package/dist/bridge/core.d.ts +474 -0
- package/dist/bridge/core.d.ts.map +1 -0
- package/dist/bridge/ids.d.ts +18 -0
- package/dist/bridge/ids.d.ts.map +1 -0
- package/dist/bridge/ios.d.ts +528 -0
- package/dist/bridge/ios.d.ts.map +1 -0
- package/dist/bridge/webkit-pending.d.ts +50 -0
- package/dist/bridge/webkit-pending.d.ts.map +1 -0
- package/dist/build/bundle-optimizer.d.ts +69 -0
- package/dist/build/bundle-optimizer.d.ts.map +1 -0
- package/dist/components/index.d.ts +719 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/native.d.ts +728 -0
- package/dist/components/native.d.ts.map +1 -0
- package/dist/components/sidebar.d.ts +458 -0
- package/dist/components/sidebar.d.ts.map +1 -0
- package/dist/dev/devtools.d.ts +118 -0
- package/dist/dev/devtools.d.ts.map +1 -0
- package/dist/dev/error-overlay.d.ts +73 -0
- package/dist/dev/error-overlay.d.ts.map +1 -0
- package/dist/dev/hot-reload.d.ts +127 -0
- package/dist/dev/hot-reload.d.ts.map +1 -0
- package/dist/index.cjs +10253 -0
- package/dist/index.d.cts +59 -0
- package/dist/index.d.ts +59 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10240 -0
- package/dist/logging/index.d.ts +152 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/optimizations/index.d.ts +232 -0
- package/dist/optimizations/index.d.ts.map +1 -0
- package/dist/package.d.ts +90 -0
- package/dist/package.d.ts.map +1 -0
- package/dist/performance/runtime.d.ts +230 -0
- package/dist/performance/runtime.d.ts.map +1 -0
- package/dist/performance/startup.d.ts +223 -0
- package/dist/performance/startup.d.ts.map +1 -0
- package/dist/plugins/index.d.ts +114 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/security/index.d.ts +268 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/signing/index.d.ts +104 -0
- package/dist/signing/index.d.ts.map +1 -0
- package/dist/styles/headwind.d.ts +222 -0
- package/dist/styles/headwind.d.ts.map +1 -0
- package/dist/styles/index.d.ts +31 -0
- package/dist/styles/index.d.ts.map +1 -0
- package/dist/styles/sidebar-templates.d.ts +77 -0
- package/dist/styles/sidebar-templates.d.ts.map +1 -0
- package/dist/styles/sidebars.d.ts +194 -0
- package/dist/styles/sidebars.d.ts.map +1 -0
- package/dist/types.d.ts +1555 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/updater/index.d.ts +164 -0
- package/dist/updater/index.d.ts.map +1 -0
- package/dist/utils/audio.d.ts +40 -0
- package/dist/utils/audio.d.ts.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/native.d.ts +27 -0
- package/dist/utils/native.d.ts.map +1 -0
- package/dist/utils/react.d.ts +157 -0
- package/dist/utils/react.d.ts.map +1 -0
- package/dist/utils/storage.d.ts +35 -0
- package/dist/utils/storage.d.ts.map +1 -0
- package/dist/utils/svelte.d.ts +187 -0
- package/dist/utils/svelte.d.ts.map +1 -0
- package/dist/utils/timer.d.ts +57 -0
- package/dist/utils/timer.d.ts.map +1 -0
- package/dist/utils/vue.d.ts +157 -0
- package/dist/utils/vue.d.ts.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,719 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Craft Component Abstractions
|
|
3
|
+
* @description React Native-style component primitives for cross-platform UI development.
|
|
4
|
+
* These provide a consistent abstraction layer over native platform components.
|
|
5
|
+
* @module @craft-native/components
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* import { View, Text, Image, ScrollView, Pressable } from '@craft-native/components'
|
|
10
|
+
*
|
|
11
|
+
* function MyComponent() {
|
|
12
|
+
* return (
|
|
13
|
+
* <View style={{ flex: 1, padding: 16 }}>
|
|
14
|
+
* <Text style={{ fontSize: 24, fontWeight: 'bold' }}>Hello World</Text>
|
|
15
|
+
* <Image source={{ uri: 'https://example.com/image.png' }} style={{ width: 100, height: 100 }} />
|
|
16
|
+
* </View>
|
|
17
|
+
* )
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export { Sidebar, createSidebar, createTahoeSidebar, createArcSidebar, createOrbStackSidebar, sidebarItem, sidebarSection, sidebarSeparator, tahoeStyle, arcStyle, orbstackStyle } from './sidebar';
|
|
22
|
+
export type { SidebarItem, SidebarSection, ContextMenuItem, SidebarStyle, SidebarPosition, SidebarConfig, SidebarHeaderConfig, SidebarFooterConfig, SidebarEventType, SidebarEventMap, SidebarEventHandler } from './sidebar';
|
|
23
|
+
export { createSplitView, SplitViewInstance, createFileBrowser, FileBrowserInstance, createOutlineView, OutlineViewInstance, createTableView, TableViewInstance, showQuickLook, hideQuickLook, canQuickLook, showColorPicker, showFontPicker, showDatePicker, createProgress, ProgressInstance, setToolbar, updateToolbarItem, setToolbarVisible, setTouchBar, updateTouchBarItem } from './native';
|
|
24
|
+
export type { ComponentProps, ComponentInstance, SplitViewOrientation, SplitViewDividerStyle, SplitViewConfig, FileBrowserConfig, FileBrowserSelection, OutlineItem, OutlineViewConfig, TableColumn, TableRow, TableViewConfig, QuickLookConfig, ColorPickerConfig, FontPickerConfig, FontResult, DatePickerConfig, ProgressConfig, ToolbarItem, ToolbarConfig, TouchBarItem, TouchBarConfig } from './native';
|
|
25
|
+
/**
|
|
26
|
+
* Flexbox style properties.
|
|
27
|
+
*/
|
|
28
|
+
export interface FlexStyle {
|
|
29
|
+
/** Flex grow factor */
|
|
30
|
+
flex?: number;
|
|
31
|
+
/** Flex grow factor */
|
|
32
|
+
flexGrow?: number;
|
|
33
|
+
/** Flex shrink factor */
|
|
34
|
+
flexShrink?: number;
|
|
35
|
+
/** Flex basis */
|
|
36
|
+
flexBasis?: number | string;
|
|
37
|
+
/** Flex direction */
|
|
38
|
+
flexDirection?: 'row' | 'column' | 'row-reverse' | 'column-reverse';
|
|
39
|
+
/** Flex wrap */
|
|
40
|
+
flexWrap?: 'nowrap' | 'wrap' | 'wrap-reverse';
|
|
41
|
+
/** Justify content (main axis) */
|
|
42
|
+
justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly';
|
|
43
|
+
/** Align items (cross axis) */
|
|
44
|
+
alignItems?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline';
|
|
45
|
+
/** Align self (override parent alignItems) */
|
|
46
|
+
alignSelf?: 'auto' | 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline';
|
|
47
|
+
/** Align content (multi-line) */
|
|
48
|
+
alignContent?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'space-between' | 'space-around';
|
|
49
|
+
/** Gap between items */
|
|
50
|
+
gap?: number;
|
|
51
|
+
/** Row gap */
|
|
52
|
+
rowGap?: number;
|
|
53
|
+
/** Column gap */
|
|
54
|
+
columnGap?: number;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Layout style properties.
|
|
58
|
+
*/
|
|
59
|
+
export interface LayoutStyle {
|
|
60
|
+
/** Width */
|
|
61
|
+
width?: number | string;
|
|
62
|
+
/** Height */
|
|
63
|
+
height?: number | string;
|
|
64
|
+
/** Min width */
|
|
65
|
+
minWidth?: number | string;
|
|
66
|
+
/** Max width */
|
|
67
|
+
maxWidth?: number | string;
|
|
68
|
+
/** Min height */
|
|
69
|
+
minHeight?: number | string;
|
|
70
|
+
/** Max height */
|
|
71
|
+
maxHeight?: number | string;
|
|
72
|
+
/** Aspect ratio */
|
|
73
|
+
aspectRatio?: number;
|
|
74
|
+
/** Position type */
|
|
75
|
+
position?: 'relative' | 'absolute';
|
|
76
|
+
/** Top position */
|
|
77
|
+
top?: number | string;
|
|
78
|
+
/** Right position */
|
|
79
|
+
right?: number | string;
|
|
80
|
+
/** Bottom position */
|
|
81
|
+
bottom?: number | string;
|
|
82
|
+
/** Left position */
|
|
83
|
+
left?: number | string;
|
|
84
|
+
/** Z-index */
|
|
85
|
+
zIndex?: number;
|
|
86
|
+
/** Overflow */
|
|
87
|
+
overflow?: 'visible' | 'hidden' | 'scroll';
|
|
88
|
+
/** Display */
|
|
89
|
+
display?: 'flex' | 'none';
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Spacing style properties.
|
|
93
|
+
*/
|
|
94
|
+
export interface SpacingStyle {
|
|
95
|
+
/** Margin all sides */
|
|
96
|
+
margin?: number | string;
|
|
97
|
+
/** Margin top */
|
|
98
|
+
marginTop?: number | string;
|
|
99
|
+
/** Margin right */
|
|
100
|
+
marginRight?: number | string;
|
|
101
|
+
/** Margin bottom */
|
|
102
|
+
marginBottom?: number | string;
|
|
103
|
+
/** Margin left */
|
|
104
|
+
marginLeft?: number | string;
|
|
105
|
+
/** Margin horizontal */
|
|
106
|
+
marginHorizontal?: number | string;
|
|
107
|
+
/** Margin vertical */
|
|
108
|
+
marginVertical?: number | string;
|
|
109
|
+
/** Padding all sides */
|
|
110
|
+
padding?: number | string;
|
|
111
|
+
/** Padding top */
|
|
112
|
+
paddingTop?: number | string;
|
|
113
|
+
/** Padding right */
|
|
114
|
+
paddingRight?: number | string;
|
|
115
|
+
/** Padding bottom */
|
|
116
|
+
paddingBottom?: number | string;
|
|
117
|
+
/** Padding left */
|
|
118
|
+
paddingLeft?: number | string;
|
|
119
|
+
/** Padding horizontal */
|
|
120
|
+
paddingHorizontal?: number | string;
|
|
121
|
+
/** Padding vertical */
|
|
122
|
+
paddingVertical?: number | string;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Border style properties.
|
|
126
|
+
*/
|
|
127
|
+
export interface BorderStyle {
|
|
128
|
+
/** Border width all sides */
|
|
129
|
+
borderWidth?: number;
|
|
130
|
+
/** Border top width */
|
|
131
|
+
borderTopWidth?: number;
|
|
132
|
+
/** Border right width */
|
|
133
|
+
borderRightWidth?: number;
|
|
134
|
+
/** Border bottom width */
|
|
135
|
+
borderBottomWidth?: number;
|
|
136
|
+
/** Border left width */
|
|
137
|
+
borderLeftWidth?: number;
|
|
138
|
+
/** Border color */
|
|
139
|
+
borderColor?: string;
|
|
140
|
+
/** Border top color */
|
|
141
|
+
borderTopColor?: string;
|
|
142
|
+
/** Border right color */
|
|
143
|
+
borderRightColor?: string;
|
|
144
|
+
/** Border bottom color */
|
|
145
|
+
borderBottomColor?: string;
|
|
146
|
+
/** Border left color */
|
|
147
|
+
borderLeftColor?: string;
|
|
148
|
+
/** Border radius all corners */
|
|
149
|
+
borderRadius?: number;
|
|
150
|
+
/** Border top left radius */
|
|
151
|
+
borderTopLeftRadius?: number;
|
|
152
|
+
/** Border top right radius */
|
|
153
|
+
borderTopRightRadius?: number;
|
|
154
|
+
/** Border bottom left radius */
|
|
155
|
+
borderBottomLeftRadius?: number;
|
|
156
|
+
/** Border bottom right radius */
|
|
157
|
+
borderBottomRightRadius?: number;
|
|
158
|
+
/** Border style */
|
|
159
|
+
borderStyle?: 'solid' | 'dotted' | 'dashed';
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Background and color style properties.
|
|
163
|
+
*/
|
|
164
|
+
export interface ColorStyle {
|
|
165
|
+
/** Background color */
|
|
166
|
+
backgroundColor?: string;
|
|
167
|
+
/** Opacity */
|
|
168
|
+
opacity?: number;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Shadow style properties.
|
|
172
|
+
*/
|
|
173
|
+
export interface ShadowStyle {
|
|
174
|
+
/** Shadow color */
|
|
175
|
+
shadowColor?: string;
|
|
176
|
+
/** Shadow offset */
|
|
177
|
+
shadowOffset?: {
|
|
178
|
+
width: number;
|
|
179
|
+
height: number;
|
|
180
|
+
};
|
|
181
|
+
/** Shadow opacity */
|
|
182
|
+
shadowOpacity?: number;
|
|
183
|
+
/** Shadow radius */
|
|
184
|
+
shadowRadius?: number;
|
|
185
|
+
/** Elevation (Android) */
|
|
186
|
+
elevation?: number;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Transform style properties.
|
|
190
|
+
*/
|
|
191
|
+
export interface TransformStyle {
|
|
192
|
+
/** Array of transforms */
|
|
193
|
+
transform?: Array<{
|
|
194
|
+
translateX: number;
|
|
195
|
+
} | {
|
|
196
|
+
translateY: number;
|
|
197
|
+
} | {
|
|
198
|
+
scale: number;
|
|
199
|
+
} | {
|
|
200
|
+
scaleX: number;
|
|
201
|
+
} | {
|
|
202
|
+
scaleY: number;
|
|
203
|
+
} | {
|
|
204
|
+
rotate: string;
|
|
205
|
+
} | {
|
|
206
|
+
rotateX: string;
|
|
207
|
+
} | {
|
|
208
|
+
rotateY: string;
|
|
209
|
+
} | {
|
|
210
|
+
rotateZ: string;
|
|
211
|
+
} | {
|
|
212
|
+
skewX: string;
|
|
213
|
+
} | {
|
|
214
|
+
skewY: string;
|
|
215
|
+
}>;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Combined View style type.
|
|
219
|
+
*/
|
|
220
|
+
export type ViewStyle = FlexStyle & LayoutStyle & SpacingStyle & BorderStyle & ColorStyle & ShadowStyle & TransformStyle;
|
|
221
|
+
/**
|
|
222
|
+
* Text-specific style properties.
|
|
223
|
+
*/
|
|
224
|
+
export interface TextStyleProps {
|
|
225
|
+
/** Text color */
|
|
226
|
+
color?: string;
|
|
227
|
+
/** Font family */
|
|
228
|
+
fontFamily?: string;
|
|
229
|
+
/** Font size */
|
|
230
|
+
fontSize?: number;
|
|
231
|
+
/** Font style */
|
|
232
|
+
fontStyle?: 'normal' | 'italic';
|
|
233
|
+
/** Font weight */
|
|
234
|
+
fontWeight?: 'normal' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';
|
|
235
|
+
/** Letter spacing */
|
|
236
|
+
letterSpacing?: number;
|
|
237
|
+
/** Line height */
|
|
238
|
+
lineHeight?: number;
|
|
239
|
+
/** Text alignment */
|
|
240
|
+
textAlign?: 'auto' | 'left' | 'right' | 'center' | 'justify';
|
|
241
|
+
/** Text decoration line */
|
|
242
|
+
textDecorationLine?: 'none' | 'underline' | 'line-through' | 'underline line-through';
|
|
243
|
+
/** Text decoration style */
|
|
244
|
+
textDecorationStyle?: 'solid' | 'double' | 'dotted' | 'dashed';
|
|
245
|
+
/** Text decoration color */
|
|
246
|
+
textDecorationColor?: string;
|
|
247
|
+
/** Text shadow color */
|
|
248
|
+
textShadowColor?: string;
|
|
249
|
+
/** Text shadow offset */
|
|
250
|
+
textShadowOffset?: {
|
|
251
|
+
width: number;
|
|
252
|
+
height: number;
|
|
253
|
+
};
|
|
254
|
+
/** Text shadow radius */
|
|
255
|
+
textShadowRadius?: number;
|
|
256
|
+
/** Text transform */
|
|
257
|
+
textTransform?: 'none' | 'capitalize' | 'uppercase' | 'lowercase';
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Combined Text style type.
|
|
261
|
+
*/
|
|
262
|
+
export type TextStyle = ViewStyle & TextStyleProps;
|
|
263
|
+
/**
|
|
264
|
+
* Image-specific style properties.
|
|
265
|
+
*/
|
|
266
|
+
export interface ImageStyleProps {
|
|
267
|
+
/** Resize mode */
|
|
268
|
+
resizeMode?: 'cover' | 'contain' | 'stretch' | 'repeat' | 'center';
|
|
269
|
+
/** Tint color */
|
|
270
|
+
tintColor?: string;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Combined Image style type.
|
|
274
|
+
*/
|
|
275
|
+
export type ImageStyle = ViewStyle & ImageStyleProps;
|
|
276
|
+
/**
|
|
277
|
+
* Base props for all components.
|
|
278
|
+
*/
|
|
279
|
+
export interface BaseProps {
|
|
280
|
+
/** Unique identifier */
|
|
281
|
+
id?: string;
|
|
282
|
+
/** Test ID for testing */
|
|
283
|
+
testID?: string;
|
|
284
|
+
/** Accessibility label */
|
|
285
|
+
accessibilityLabel?: string;
|
|
286
|
+
/** Accessibility hint */
|
|
287
|
+
accessibilityHint?: string;
|
|
288
|
+
/** Accessibility role */
|
|
289
|
+
accessibilityRole?: 'none' | 'button' | 'link' | 'image' | 'text' | 'header' | 'search' | 'menu';
|
|
290
|
+
/** Children elements */
|
|
291
|
+
children?: any;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* View component props.
|
|
295
|
+
*/
|
|
296
|
+
export interface ViewProps extends BaseProps {
|
|
297
|
+
/** Style object or array */
|
|
298
|
+
style?: ViewStyle | ViewStyle[];
|
|
299
|
+
/** Press handler */
|
|
300
|
+
onPress?: () => void;
|
|
301
|
+
/** Long press handler */
|
|
302
|
+
onLongPress?: () => void;
|
|
303
|
+
/** Layout change handler */
|
|
304
|
+
onLayout?: (event: LayoutEvent) => void;
|
|
305
|
+
/** Pointer events behavior */
|
|
306
|
+
pointerEvents?: 'auto' | 'none' | 'box-none' | 'box-only';
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Text component props.
|
|
310
|
+
*/
|
|
311
|
+
export interface TextProps extends BaseProps {
|
|
312
|
+
/** Style object or array */
|
|
313
|
+
style?: TextStyle | TextStyle[];
|
|
314
|
+
/** Number of lines before truncation */
|
|
315
|
+
numberOfLines?: number;
|
|
316
|
+
/** Ellipsize mode */
|
|
317
|
+
ellipsizeMode?: 'head' | 'middle' | 'tail' | 'clip';
|
|
318
|
+
/** Selectable text */
|
|
319
|
+
selectable?: boolean;
|
|
320
|
+
/** Press handler */
|
|
321
|
+
onPress?: () => void;
|
|
322
|
+
/** Long press handler */
|
|
323
|
+
onLongPress?: () => void;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Image source type.
|
|
327
|
+
*/
|
|
328
|
+
export type ImageSource = {
|
|
329
|
+
uri: string;
|
|
330
|
+
width?: number;
|
|
331
|
+
height?: number;
|
|
332
|
+
headers?: Record<string, string>;
|
|
333
|
+
} | number;
|
|
334
|
+
/**
|
|
335
|
+
* Image component props.
|
|
336
|
+
*/
|
|
337
|
+
export interface ImageProps extends BaseProps {
|
|
338
|
+
/** Image source */
|
|
339
|
+
source: ImageSource;
|
|
340
|
+
/** Style object or array */
|
|
341
|
+
style?: ImageStyle | ImageStyle[];
|
|
342
|
+
/** Resize mode */
|
|
343
|
+
resizeMode?: 'cover' | 'contain' | 'stretch' | 'repeat' | 'center';
|
|
344
|
+
/** Load start handler */
|
|
345
|
+
onLoadStart?: () => void;
|
|
346
|
+
/** Load handler */
|
|
347
|
+
onLoad?: () => void;
|
|
348
|
+
/** Load end handler */
|
|
349
|
+
onLoadEnd?: () => void;
|
|
350
|
+
/** Error handler */
|
|
351
|
+
onError?: (error: Error) => void;
|
|
352
|
+
/** Default source while loading */
|
|
353
|
+
defaultSource?: ImageSource;
|
|
354
|
+
/** Blur radius */
|
|
355
|
+
blurRadius?: number;
|
|
356
|
+
/** Fade duration (ms) */
|
|
357
|
+
fadeDuration?: number;
|
|
358
|
+
/** Alt text for accessibility */
|
|
359
|
+
alt?: string;
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* ScrollView component props.
|
|
363
|
+
*/
|
|
364
|
+
export interface ScrollViewProps extends ViewProps {
|
|
365
|
+
/** Horizontal scrolling */
|
|
366
|
+
horizontal?: boolean;
|
|
367
|
+
/** Show horizontal scroll indicator */
|
|
368
|
+
showsHorizontalScrollIndicator?: boolean;
|
|
369
|
+
/** Show vertical scroll indicator */
|
|
370
|
+
showsVerticalScrollIndicator?: boolean;
|
|
371
|
+
/** Paging enabled */
|
|
372
|
+
pagingEnabled?: boolean;
|
|
373
|
+
/** Bounce enabled */
|
|
374
|
+
bounces?: boolean;
|
|
375
|
+
/** Always bounce vertical */
|
|
376
|
+
alwaysBounceVertical?: boolean;
|
|
377
|
+
/** Always bounce horizontal */
|
|
378
|
+
alwaysBounceHorizontal?: boolean;
|
|
379
|
+
/** Scroll enabled */
|
|
380
|
+
scrollEnabled?: boolean;
|
|
381
|
+
/** Scroll handler */
|
|
382
|
+
onScroll?: (event: ScrollEvent) => void;
|
|
383
|
+
/** Scroll begin drag handler */
|
|
384
|
+
onScrollBeginDrag?: () => void;
|
|
385
|
+
/** Scroll end drag handler */
|
|
386
|
+
onScrollEndDrag?: () => void;
|
|
387
|
+
/** Momentum scroll begin handler */
|
|
388
|
+
onMomentumScrollBegin?: () => void;
|
|
389
|
+
/** Momentum scroll end handler */
|
|
390
|
+
onMomentumScrollEnd?: () => void;
|
|
391
|
+
/** Content container style */
|
|
392
|
+
contentContainerStyle?: ViewStyle;
|
|
393
|
+
/** Keyboard dismiss mode */
|
|
394
|
+
keyboardDismissMode?: 'none' | 'on-drag' | 'interactive';
|
|
395
|
+
/** Keyboard should persist taps */
|
|
396
|
+
keyboardShouldPersistTaps?: 'always' | 'never' | 'handled';
|
|
397
|
+
/** Refresh control component */
|
|
398
|
+
refreshControl?: any;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Pressable component props.
|
|
402
|
+
*/
|
|
403
|
+
export interface PressableProps extends ViewProps {
|
|
404
|
+
/** Disabled state */
|
|
405
|
+
disabled?: boolean;
|
|
406
|
+
/** Press in handler */
|
|
407
|
+
onPressIn?: () => void;
|
|
408
|
+
/** Press out handler */
|
|
409
|
+
onPressOut?: () => void;
|
|
410
|
+
/** Hit slop for touch area */
|
|
411
|
+
hitSlop?: number | {
|
|
412
|
+
top?: number;
|
|
413
|
+
right?: number;
|
|
414
|
+
bottom?: number;
|
|
415
|
+
left?: number;
|
|
416
|
+
};
|
|
417
|
+
/** Press retention offset */
|
|
418
|
+
pressRetentionOffset?: number | {
|
|
419
|
+
top?: number;
|
|
420
|
+
right?: number;
|
|
421
|
+
bottom?: number;
|
|
422
|
+
left?: number;
|
|
423
|
+
};
|
|
424
|
+
/** Android ripple effect */
|
|
425
|
+
android_ripple?: {
|
|
426
|
+
color?: string;
|
|
427
|
+
borderless?: boolean;
|
|
428
|
+
radius?: number;
|
|
429
|
+
};
|
|
430
|
+
/** Delay for long press */
|
|
431
|
+
delayLongPress?: number;
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* TextInput component props.
|
|
435
|
+
*/
|
|
436
|
+
export interface TextInputProps extends BaseProps {
|
|
437
|
+
/** Style object or array */
|
|
438
|
+
style?: TextStyle | TextStyle[];
|
|
439
|
+
/** Current value */
|
|
440
|
+
value?: string;
|
|
441
|
+
/** Default value */
|
|
442
|
+
defaultValue?: string;
|
|
443
|
+
/** Placeholder text */
|
|
444
|
+
placeholder?: string;
|
|
445
|
+
/** Placeholder text color */
|
|
446
|
+
placeholderTextColor?: string;
|
|
447
|
+
/** Keyboard type */
|
|
448
|
+
keyboardType?: 'default' | 'email-address' | 'numeric' | 'phone-pad' | 'decimal-pad' | 'url';
|
|
449
|
+
/** Return key type */
|
|
450
|
+
returnKeyType?: 'done' | 'go' | 'next' | 'search' | 'send';
|
|
451
|
+
/** Auto capitalize */
|
|
452
|
+
autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';
|
|
453
|
+
/** Auto correct */
|
|
454
|
+
autoCorrect?: boolean;
|
|
455
|
+
/** Auto focus */
|
|
456
|
+
autoFocus?: boolean;
|
|
457
|
+
/** Secure text entry (password) */
|
|
458
|
+
secureTextEntry?: boolean;
|
|
459
|
+
/** Multi-line input */
|
|
460
|
+
multiline?: boolean;
|
|
461
|
+
/** Number of lines for multiline */
|
|
462
|
+
numberOfLines?: number;
|
|
463
|
+
/** Max length */
|
|
464
|
+
maxLength?: number;
|
|
465
|
+
/** Editable state */
|
|
466
|
+
editable?: boolean;
|
|
467
|
+
/** Selection color */
|
|
468
|
+
selectionColor?: string;
|
|
469
|
+
/** Change text handler */
|
|
470
|
+
onChangeText?: (text: string) => void;
|
|
471
|
+
/** Focus handler */
|
|
472
|
+
onFocus?: () => void;
|
|
473
|
+
/** Blur handler */
|
|
474
|
+
onBlur?: () => void;
|
|
475
|
+
/** Submit editing handler */
|
|
476
|
+
onSubmitEditing?: () => void;
|
|
477
|
+
/** End editing handler */
|
|
478
|
+
onEndEditing?: () => void;
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* FlatList component props.
|
|
482
|
+
*/
|
|
483
|
+
export interface FlatListProps<T> extends ScrollViewProps {
|
|
484
|
+
/** Data array */
|
|
485
|
+
data: T[];
|
|
486
|
+
/** Render item function */
|
|
487
|
+
renderItem: (info: {
|
|
488
|
+
item: T;
|
|
489
|
+
index: number;
|
|
490
|
+
}) => any;
|
|
491
|
+
/** Key extractor function */
|
|
492
|
+
keyExtractor?: (item: T, index: number) => string;
|
|
493
|
+
/** Item separator component */
|
|
494
|
+
ItemSeparatorComponent?: any;
|
|
495
|
+
/** List header component */
|
|
496
|
+
ListHeaderComponent?: any;
|
|
497
|
+
/** List footer component */
|
|
498
|
+
ListFooterComponent?: any;
|
|
499
|
+
/** Empty list component */
|
|
500
|
+
ListEmptyComponent?: any;
|
|
501
|
+
/** Number of columns */
|
|
502
|
+
numColumns?: number;
|
|
503
|
+
/** Initial number to render */
|
|
504
|
+
initialNumToRender?: number;
|
|
505
|
+
/** Max to render per batch */
|
|
506
|
+
maxToRenderPerBatch?: number;
|
|
507
|
+
/** Window size */
|
|
508
|
+
windowSize?: number;
|
|
509
|
+
/** Get item layout for optimization */
|
|
510
|
+
getItemLayout?: (data: T[] | null, index: number) => {
|
|
511
|
+
length: number;
|
|
512
|
+
offset: number;
|
|
513
|
+
index: number;
|
|
514
|
+
};
|
|
515
|
+
/** End reached handler */
|
|
516
|
+
onEndReached?: () => void;
|
|
517
|
+
/** End reached threshold */
|
|
518
|
+
onEndReachedThreshold?: number;
|
|
519
|
+
/** Refresh handler */
|
|
520
|
+
onRefresh?: () => void;
|
|
521
|
+
/** Refreshing state */
|
|
522
|
+
refreshing?: boolean;
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* Layout event.
|
|
526
|
+
*/
|
|
527
|
+
export interface LayoutEvent {
|
|
528
|
+
nativeEvent: {
|
|
529
|
+
layout: {
|
|
530
|
+
x: number;
|
|
531
|
+
y: number;
|
|
532
|
+
width: number;
|
|
533
|
+
height: number;
|
|
534
|
+
};
|
|
535
|
+
};
|
|
536
|
+
}
|
|
537
|
+
/**
|
|
538
|
+
* Scroll event.
|
|
539
|
+
*/
|
|
540
|
+
export interface ScrollEvent {
|
|
541
|
+
nativeEvent: {
|
|
542
|
+
contentOffset: {
|
|
543
|
+
x: number;
|
|
544
|
+
y: number;
|
|
545
|
+
};
|
|
546
|
+
contentSize: {
|
|
547
|
+
width: number;
|
|
548
|
+
height: number;
|
|
549
|
+
};
|
|
550
|
+
layoutMeasurement: {
|
|
551
|
+
width: number;
|
|
552
|
+
height: number;
|
|
553
|
+
};
|
|
554
|
+
};
|
|
555
|
+
}
|
|
556
|
+
/**
|
|
557
|
+
* Platform-specific value selection.
|
|
558
|
+
*
|
|
559
|
+
* @example
|
|
560
|
+
* ```typescript
|
|
561
|
+
* const fontSize = Platform.select({
|
|
562
|
+
* ios: 17,
|
|
563
|
+
* android: 16,
|
|
564
|
+
* default: 16
|
|
565
|
+
* })
|
|
566
|
+
*
|
|
567
|
+
* const Component = Platform.select({
|
|
568
|
+
* ios: IOSComponent,
|
|
569
|
+
* android: AndroidComponent,
|
|
570
|
+
* default: WebComponent
|
|
571
|
+
* })
|
|
572
|
+
* ```
|
|
573
|
+
*/
|
|
574
|
+
export declare const Platform: {
|
|
575
|
+
/** Current platform */
|
|
576
|
+
OS: "ios" | "android" | "web";
|
|
577
|
+
/** Platform version */
|
|
578
|
+
Version: string;
|
|
579
|
+
/**
|
|
580
|
+
* Check if running on iOS.
|
|
581
|
+
*/
|
|
582
|
+
isIOS(): boolean;
|
|
583
|
+
/**
|
|
584
|
+
* Check if running on Android.
|
|
585
|
+
*/
|
|
586
|
+
isAndroid(): boolean;
|
|
587
|
+
/**
|
|
588
|
+
* Check if running on web.
|
|
589
|
+
*/
|
|
590
|
+
isWeb(): boolean;
|
|
591
|
+
/**
|
|
592
|
+
* Select platform-specific value.
|
|
593
|
+
*
|
|
594
|
+
* @param specifics - Object with platform-specific values
|
|
595
|
+
* @returns Value for current platform
|
|
596
|
+
*/
|
|
597
|
+
select<T>(specifics: {
|
|
598
|
+
ios?: T;
|
|
599
|
+
android?: T;
|
|
600
|
+
web?: T;
|
|
601
|
+
default?: T;
|
|
602
|
+
}): T | undefined;
|
|
603
|
+
};
|
|
604
|
+
/**
|
|
605
|
+
* Create platform-specific stylesheet.
|
|
606
|
+
*
|
|
607
|
+
* @example
|
|
608
|
+
* ```typescript
|
|
609
|
+
* const styles = StyleSheet.create({
|
|
610
|
+
* container: {
|
|
611
|
+
* flex: 1,
|
|
612
|
+
* backgroundColor: '#fff',
|
|
613
|
+
* padding: 16
|
|
614
|
+
* },
|
|
615
|
+
* title: {
|
|
616
|
+
* fontSize: 24,
|
|
617
|
+
* fontWeight: 'bold'
|
|
618
|
+
* }
|
|
619
|
+
* })
|
|
620
|
+
* ```
|
|
621
|
+
*/
|
|
622
|
+
export declare const StyleSheet: {
|
|
623
|
+
/**
|
|
624
|
+
* Create a stylesheet from style definitions.
|
|
625
|
+
*/
|
|
626
|
+
create<T extends Record<string, ViewStyle | TextStyle | ImageStyle>>(styles: T): T;
|
|
627
|
+
/**
|
|
628
|
+
* Flatten an array of styles into a single object.
|
|
629
|
+
*/
|
|
630
|
+
flatten<T>(style: T | T[] | undefined): T | undefined;
|
|
631
|
+
/**
|
|
632
|
+
* Get the absolute fill style (full parent).
|
|
633
|
+
*/
|
|
634
|
+
absoluteFill: {
|
|
635
|
+
position: "absolute";
|
|
636
|
+
top: number;
|
|
637
|
+
left: number;
|
|
638
|
+
right: number;
|
|
639
|
+
bottom: number;
|
|
640
|
+
};
|
|
641
|
+
/**
|
|
642
|
+
* Get hairline width (1px on device).
|
|
643
|
+
*/
|
|
644
|
+
hairlineWidth: number;
|
|
645
|
+
};
|
|
646
|
+
/**
|
|
647
|
+
* Animated API for animations.
|
|
648
|
+
* Simplified version for common animations.
|
|
649
|
+
*
|
|
650
|
+
* @example
|
|
651
|
+
* ```typescript
|
|
652
|
+
* const opacity = new Animated.Value(0)
|
|
653
|
+
*
|
|
654
|
+
* // Fade in
|
|
655
|
+
* Animated.timing(opacity, {
|
|
656
|
+
* toValue: 1,
|
|
657
|
+
* duration: 300,
|
|
658
|
+
* useNativeDriver: true
|
|
659
|
+
* }).start()
|
|
660
|
+
*
|
|
661
|
+
* // Spring animation
|
|
662
|
+
* Animated.spring(scale, {
|
|
663
|
+
* toValue: 1.2,
|
|
664
|
+
* friction: 3,
|
|
665
|
+
* useNativeDriver: true
|
|
666
|
+
* }).start()
|
|
667
|
+
* ```
|
|
668
|
+
*/
|
|
669
|
+
declare class AnimatedValue {
|
|
670
|
+
private _value;
|
|
671
|
+
private _listeners;
|
|
672
|
+
constructor(value: number);
|
|
673
|
+
setValue(value: number): void;
|
|
674
|
+
getValue(): number;
|
|
675
|
+
addListener(callback: (value: number) => void): string;
|
|
676
|
+
removeListener(id: string): void;
|
|
677
|
+
removeAllListeners(): void;
|
|
678
|
+
}
|
|
679
|
+
type AnimationResult = {
|
|
680
|
+
start(callback?: (result: {
|
|
681
|
+
finished: boolean;
|
|
682
|
+
}) => void): void;
|
|
683
|
+
stop(): void;
|
|
684
|
+
};
|
|
685
|
+
type TimingConfig = {
|
|
686
|
+
toValue: number;
|
|
687
|
+
duration?: number;
|
|
688
|
+
delay?: number;
|
|
689
|
+
easing?: (t: number) => number;
|
|
690
|
+
useNativeDriver?: boolean;
|
|
691
|
+
};
|
|
692
|
+
type SpringConfig = {
|
|
693
|
+
toValue: number;
|
|
694
|
+
friction?: number;
|
|
695
|
+
tension?: number;
|
|
696
|
+
useNativeDriver?: boolean;
|
|
697
|
+
};
|
|
698
|
+
export declare const Animated: {
|
|
699
|
+
Value: typeof AnimatedValue;
|
|
700
|
+
timing(value: AnimatedValue, config: TimingConfig): AnimationResult;
|
|
701
|
+
spring(value: AnimatedValue, config: SpringConfig): AnimationResult;
|
|
702
|
+
parallel(animations: Array<{
|
|
703
|
+
start: (callback?: (result: {
|
|
704
|
+
finished: boolean;
|
|
705
|
+
}) => void) => void;
|
|
706
|
+
}>): AnimationResult;
|
|
707
|
+
sequence(animations: Array<{
|
|
708
|
+
start: (callback?: (result: {
|
|
709
|
+
finished: boolean;
|
|
710
|
+
}) => void) => void;
|
|
711
|
+
}>): AnimationResult;
|
|
712
|
+
};
|
|
713
|
+
declare const components: {
|
|
714
|
+
Platform: typeof Platform;
|
|
715
|
+
StyleSheet: typeof StyleSheet;
|
|
716
|
+
Animated: typeof Animated;
|
|
717
|
+
};
|
|
718
|
+
export default components;
|
|
719
|
+
//# sourceMappingURL=index.d.ts.map
|