@idealyst/mcp-server 1.2.123 → 1.2.125
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-RVMPULO4.js → chunk-PLKNERFG.js} +704 -24
- package/dist/chunk-PLKNERFG.js.map +1 -0
- package/dist/index.cjs +706 -24
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/tools/index.cjs +703 -23
- package/dist/tools/index.cjs.map +1 -1
- package/dist/tools/index.js +1 -1
- package/examples/components/Table.examples.tsx +236 -0
- package/package.json +5 -5
- package/dist/chunk-RVMPULO4.js.map +0 -1
|
@@ -998,6 +998,26 @@ var componentMetadata = {
|
|
|
998
998
|
"Configure safe areas appropriately"
|
|
999
999
|
]
|
|
1000
1000
|
},
|
|
1001
|
+
ScrollView: {
|
|
1002
|
+
category: "layout",
|
|
1003
|
+
description: "Scrollable container for long or overflowing content. Replaces the deprecated `<View scrollable>` pattern. Supports vertical, horizontal, and bidirectional scrolling with scroll event callbacks and imperative scroll controls via ref.",
|
|
1004
|
+
features: [
|
|
1005
|
+
"direction prop: 'vertical' (default) | 'horizontal' | 'both'",
|
|
1006
|
+
"Scroll callbacks: onScroll, onScrollBegin, onScrollEnd, onEndReached (for infinite scroll)",
|
|
1007
|
+
"Imperative ref: scrollTo, scrollToEnd, scrollToStart, getScrollPosition",
|
|
1008
|
+
"Same spacing shorthand props as View: padding, paddingVertical, paddingHorizontal, gap, margin, etc.",
|
|
1009
|
+
"Background, radius, and border variants (same as View)",
|
|
1010
|
+
"showsIndicator, pagingEnabled, bounces, scrollEnabled, keyboardDismissMode props",
|
|
1011
|
+
"contentContainerStyle for styling the inner content wrapper"
|
|
1012
|
+
],
|
|
1013
|
+
bestPractices: [
|
|
1014
|
+
"Use ScrollView for scrollable content instead of <View scrollable> (deprecated)",
|
|
1015
|
+
"Use onEndReached + onEndReachedThreshold for infinite scroll / load-more patterns",
|
|
1016
|
+
'Use direction="horizontal" for horizontal carousels or galleries',
|
|
1017
|
+
"Use ref with scrollTo/scrollToEnd for programmatic scroll control",
|
|
1018
|
+
"Wrap in a flex:1 container or give explicit height \u2014 ScrollView needs bounded parent height"
|
|
1019
|
+
]
|
|
1020
|
+
},
|
|
1001
1021
|
Select: {
|
|
1002
1022
|
category: "form",
|
|
1003
1023
|
description: "Dropdown selection component for choosing from a list of options",
|
|
@@ -1097,14 +1117,18 @@ var componentMetadata = {
|
|
|
1097
1117
|
description: "Structured data display in rows and columns",
|
|
1098
1118
|
features: [
|
|
1099
1119
|
"Sortable columns",
|
|
1100
|
-
"Custom cell rendering",
|
|
1101
|
-
"
|
|
1102
|
-
"
|
|
1120
|
+
"Custom cell rendering via column `render` function",
|
|
1121
|
+
"Custom column titles (ReactNode) \u2014 render icons, badges, or any element as header",
|
|
1122
|
+
"Footer row support \u2014 static content or computed from data via `footer` callback",
|
|
1123
|
+
"Striped, bordered, and standard type variants",
|
|
1124
|
+
"Column alignment (left, center, right)"
|
|
1103
1125
|
],
|
|
1104
1126
|
bestPractices: [
|
|
1105
1127
|
"Use for structured, comparable data",
|
|
1106
1128
|
"Align numbers to the right",
|
|
1107
|
-
"
|
|
1129
|
+
"Column `title` accepts ReactNode \u2014 use for custom headers with icons or styled text",
|
|
1130
|
+
"Column `footer` accepts ReactNode or `(data: T[]) => ReactNode` \u2014 use the callback form for computed values like sums/averages",
|
|
1131
|
+
"Footer only renders when at least one column has a `footer` defined"
|
|
1108
1132
|
]
|
|
1109
1133
|
},
|
|
1110
1134
|
Tabs: {
|
|
@@ -1237,7 +1261,10 @@ var componentAliases = {
|
|
|
1237
1261
|
photo: "Image",
|
|
1238
1262
|
picture: "Image",
|
|
1239
1263
|
img: "Image",
|
|
1240
|
-
thumbnail: "Image"
|
|
1264
|
+
thumbnail: "Image",
|
|
1265
|
+
scroll: "ScrollView",
|
|
1266
|
+
scrollview: "ScrollView",
|
|
1267
|
+
scrollable: "ScrollView"
|
|
1241
1268
|
};
|
|
1242
1269
|
function findComponentName(componentName) {
|
|
1243
1270
|
if (componentMetadata[componentName]) {
|
|
@@ -12848,14 +12875,16 @@ import { Outlet, useNavigator } from '@idealyst/navigation';
|
|
|
12848
12875
|
import type { StackLayoutProps } from '@idealyst/navigation';
|
|
12849
12876
|
import { View, Text, Pressable, Icon, Divider } from '@idealyst/components';
|
|
12850
12877
|
import type { IconName } from '@idealyst/components';
|
|
12878
|
+
import { useTheme } from '@idealyst/theme';
|
|
12851
12879
|
|
|
12852
12880
|
export function AppLayout({ routes, currentPath, options }: StackLayoutProps) {
|
|
12853
12881
|
const { navigate } = useNavigator();
|
|
12882
|
+
const theme = useTheme();
|
|
12854
12883
|
|
|
12855
12884
|
return (
|
|
12856
12885
|
<View style={{ flex: 1, flexDirection: 'row' }}>
|
|
12857
12886
|
{/* Sidebar */}
|
|
12858
|
-
<View style={{ width: 260, borderRightWidth: 1, borderRightColor:
|
|
12887
|
+
<View style={{ width: 260, borderRightWidth: 1, borderRightColor: theme.colors.border.primary, backgroundColor: theme.colors.surface.secondary }}>
|
|
12859
12888
|
{/* Logo / App name */}
|
|
12860
12889
|
<View style={{ height: 56, justifyContent: 'center', paddingHorizontal: 16 }}>
|
|
12861
12890
|
<Text typography="h6" weight="bold">{options?.headerTitle || 'My App'}</Text>
|
|
@@ -12880,18 +12909,20 @@ export function AppLayout({ routes, currentPath, options }: StackLayoutProps) {
|
|
|
12880
12909
|
paddingVertical: 10,
|
|
12881
12910
|
paddingHorizontal: 12,
|
|
12882
12911
|
borderRadius: 8,
|
|
12883
|
-
backgroundColor: isActive ?
|
|
12912
|
+
backgroundColor: isActive ? theme.intents.primary.light : 'transparent',
|
|
12884
12913
|
}}
|
|
12885
12914
|
>
|
|
12915
|
+
{/* Icon uses EITHER color OR textColor \u2014 never both */}
|
|
12886
12916
|
<Icon
|
|
12887
12917
|
name={(route.options?.icon as IconName) || 'circle-outline'}
|
|
12888
12918
|
size="sm"
|
|
12889
|
-
color={isActive ? '
|
|
12919
|
+
color={isActive ? 'primary' : undefined}
|
|
12890
12920
|
/>
|
|
12891
12921
|
<Text
|
|
12892
12922
|
typography="body2"
|
|
12893
|
-
weight={isActive ? 'semibold' : '
|
|
12894
|
-
|
|
12923
|
+
weight={isActive ? 'semibold' : 'normal'}
|
|
12924
|
+
color={isActive ? undefined : 'secondary'}
|
|
12925
|
+
style={isActive ? { color: theme.intents.primary.primary } : undefined}
|
|
12895
12926
|
>
|
|
12896
12927
|
{route.options?.title || route.path}
|
|
12897
12928
|
</Text>
|
|
@@ -13049,7 +13080,7 @@ export function TabLayout({ routes, currentPath }: TabLayoutProps) {
|
|
|
13049
13080
|
{opts?.tabBarLabel && (
|
|
13050
13081
|
<Text
|
|
13051
13082
|
typography="body2"
|
|
13052
|
-
weight={isActive ? 'semibold' : '
|
|
13083
|
+
weight={isActive ? 'semibold' : 'normal'}
|
|
13053
13084
|
style={{ color: isActive ? '#007AFF' : '#8E8E93' }}
|
|
13054
13085
|
>
|
|
13055
13086
|
{opts.tabBarLabel}
|
|
@@ -13264,7 +13295,7 @@ export function DashboardLayout({ routes, currentPath, options }: StackLayoutPro
|
|
|
13264
13295
|
{!collapsed && (
|
|
13265
13296
|
<Text
|
|
13266
13297
|
typography="body2"
|
|
13267
|
-
weight={isActive ? 'semibold' : '
|
|
13298
|
+
weight={isActive ? 'semibold' : 'normal'}
|
|
13268
13299
|
style={{ color: isActive ? '#007AFF' : '#333' }}
|
|
13269
13300
|
>
|
|
13270
13301
|
{route.options?.title || route.path}
|
|
@@ -16178,7 +16209,7 @@ These are mistakes agents make repeatedly. Each one causes TypeScript compilatio
|
|
|
16178
16209
|
1. **Text** does NOT have \`variant\`, \`intent\`, \`size\`, \`fontSize\`, \`numberOfLines\`, \`ellipsizeMode\`, \`selectable\`, \`textColor\`, or \`onPress\`. Use \`typography\` (\`h1\`\u2013\`h6\`, \`subtitle1\`, \`subtitle2\`, \`body1\`, \`body2\`, \`caption\`), \`weight\` (\`light\`, \`normal\`, \`medium\`, \`semibold\`, \`bold\`), and \`color\` (\`primary\`, \`secondary\`, \`tertiary\`, \`inverse\`). **\`textColor\` is an Icon-only prop** \u2014 Text uses \`color\`. For pressable text, wrap in \`Pressable\` or use \`Button type="text"\`.
|
|
16179
16210
|
2. **TextInput** does NOT have \`label\`, \`error\`, \`editable\`, \`autoComplete\`, \`keyboardType\`, or \`onChange\`. Compose labels/errors with \`Text\` + \`View\`. Use \`onChangeText\`, \`inputMode\` (\`'text' | 'email' | 'password' | 'number'\` \u2014 NOT \`'decimal'\`, \`'numeric'\`, \`'tel'\`, \`'url'\`), and \`textContentType\`. **TextArea has a DIFFERENT API** \u2014 it DOES support \`label\`, \`error\`, \`rows\`, \`onChange\`, but does NOT have \`onBlur\` or \`onChangeText\`. Always look up TextArea types separately.
|
|
16180
16211
|
3. **Button/IconButton** \`type\` is \`'contained' | 'outlined' | 'text'\` \u2014 NOT \`'ghost'\`, \`'solid'\`, \`'default'\`. Button has \`leftIcon\` and \`rightIcon\` \u2014 NOT \`icon\`.
|
|
16181
|
-
4. **View** does NOT have \`direction\`, \`align\`, or \`onPress\` props. For touch handling, wrap content in \`Pressable\` from \`@idealyst/components\` (NOT from \`react-native\`): \`<Pressable onPress={handlePress}><View>...</View></Pressable>\`. For horizontal layout use \`style={{ flexDirection: 'row' }}\`. View spacing shorthand props (all accept Size: \`xs\`|\`sm\`|\`md\`|\`lg\`|\`xl\`): \`padding\`, \`paddingVertical\`, \`paddingHorizontal\`, \`margin\`, \`marginVertical\`, \`marginHorizontal\`, \`gap\`/\`spacing\`. Do NOT use \`paddingTop\`, \`paddingBottom\`, \`paddingLeft\`, \`paddingRight\`, \`marginTop\`, \`marginBottom\`, \`marginLeft\`, \`marginRight\` as shorthand props \u2014 they do NOT exist and will cause TS2353. For single-side spacing, use \`style={{ paddingTop: 16 }}\`. Other View props: \`background\`, \`radius\`, \`border
|
|
16212
|
+
4. **View** does NOT have \`direction\`, \`align\`, \`flex\`, or \`onPress\` props. \`flex={1}\` is NOT a shorthand \u2014 use \`style={{ flex: 1 }}\`. For touch handling, wrap content in \`Pressable\` from \`@idealyst/components\` (NOT from \`react-native\`): \`<Pressable onPress={handlePress}><View>...</View></Pressable>\`. For horizontal layout use \`style={{ flexDirection: 'row' }}\`. View spacing shorthand props (all accept Size: \`xs\`|\`sm\`|\`md\`|\`lg\`|\`xl\`): \`padding\`, \`paddingVertical\`, \`paddingHorizontal\`, \`margin\`, \`marginVertical\`, \`marginHorizontal\`, \`gap\`/\`spacing\`. Do NOT use \`paddingTop\`, \`paddingBottom\`, \`paddingLeft\`, \`paddingRight\`, \`marginTop\`, \`marginBottom\`, \`marginLeft\`, \`marginRight\` as shorthand props \u2014 they do NOT exist and will cause TS2353. For single-side spacing, use \`style={{ paddingTop: 16 }}\`. Other View props: \`background\`, \`radius\`, \`border\`. \`border\` is \`'none' | 'thin' | 'thick'\` \u2014 NOT \`'outline'\`, \`'solid'\`. **For scrollable content, use \`<ScrollView>\` instead of \`<View scrollable>\`** (\`scrollable\` prop is deprecated).
|
|
16182
16213
|
5. **Badge** \`type\` is \`'filled' | 'outlined' | 'dot'\` \u2014 NOT \`'soft'\`, \`'subtle'\`, \`'solid'\`. **Intent type narrowing (CRITICAL):** TS widens string literals in objects/arrays to \`string\`, which fails \`intent\` props. Rules: (a) Simple ternaries in JSX work fine: \`<Badge intent={cond ? 'success' : 'danger'}>\`. (b) **Do NOT use \`as const\` on ternary expressions** \u2014 \`(cond ? 'a' : 'b') as const\` causes TS1355. (c) **Arrays/objects with intent values MUST use \`as const\`**: \`const items = [{ intent: 'success' as const, label: 'OK' }]\` or \`const items = [{ intent: 'success', label: 'OK' }] as const\`. Without \`as const\`, \`item.intent\` becomes \`string\` which fails. (d) For computed values, use typed variable: \`const intent: Intent = ...;\` (import Intent from @idealyst/theme). This applies to ALL components with intent/type props.
|
|
16183
16214
|
6. **Avatar** uses \`src\` for image URL, \`fallback\` for initials \u2014 NOT \`name\`, \`initials\`, \`label\`. Shape: \`'circle' | 'square'\`.
|
|
16184
16215
|
7. **Link** requires a \`to\` prop (path string) \u2014 it's a navigation link, NOT pressable text.
|
|
@@ -16187,6 +16218,7 @@ These are mistakes agents make repeatedly. Each one causes TypeScript compilatio
|
|
|
16187
16218
|
10. The component is **TextInput**, NOT \`Input\`.
|
|
16188
16219
|
11. **Card** is a simple container \u2014 there are NO compound components like \`Card.Content\`, \`Card.Header\`, \`Card.Body\`, \`Card.Footer\`, \`Card.Title\`. Just put children directly inside \`<Card>...</Card>\`. **Card does NOT have \`border\`, \`scrollable\`, or \`backgroundColor\` props** (those are View-only). Card styling props: \`type\` (\`'default'|'outlined'|'elevated'|'filled'\`), \`radius\`, \`intent\`, \`background\`, plus spacing (\`padding\`, \`margin\`, \`gap\`). For borders use \`type="outlined"\`.
|
|
16189
16220
|
12. **Switch** uses \`checked\` and \`onChange\` \u2014 NOT \`value\` and \`onValueChange\` (React Native convention). Also has \`label\`, \`labelPosition\`, \`disabled\`.
|
|
16221
|
+
13. **Icon color props are mutually exclusive** \u2014 \`IconProps\` is a discriminated union: use EITHER \`color\` (palette: \`'primary'\`, \`'blue.500'\`) OR \`textColor\` (\`'primary'\`, \`'secondary'\`) \u2014 NEVER both. Passing both (even conditionally like \`color={cond ? x : undefined} textColor={cond ? undefined : y}\`) causes TS2322 because TypeScript cannot resolve the union. Instead: \`<Icon name="home" color={isActive ? 'primary' : undefined} />\` or use separate JSX branches.
|
|
16190
16222
|
|
|
16191
16223
|
### Navigation
|
|
16192
16224
|
11. **NavigatorProvider** takes a \`route\` prop (SINGULAR) \u2014 NOT \`routes\`: \`<NavigatorProvider route={routeConfig} />\`. There is NO \`Router\` export.
|
|
@@ -16196,7 +16228,7 @@ These are mistakes agents make repeatedly. Each one causes TypeScript compilatio
|
|
|
16196
16228
|
15. \`useParams()\` does NOT accept generic type arguments. It returns \`Record<string, string | undefined>\`. Do NOT write \`useParams<{ id: string }>()\` \u2014 that causes TS2558. Always guard for undefined: \`const id = params.id; if (!id) return null;\`.
|
|
16197
16229
|
|
|
16198
16230
|
### Imports & Styling
|
|
16199
|
-
16. **Never** import from \`react-native\` \u2014 no \`TouchableOpacity\`, \`FlatList\`, \`ScrollView\`, \`Animated\`, \`Dimensions\`, \`Linking\`, \`Platform\`. Idealyst provides cross-platform alternatives for all of these (e.g., \`openExternalLinks\` on Markdown, \`Pressable\` from \`@idealyst/components\`).
|
|
16231
|
+
16. **Never** import from \`react-native\` \u2014 no \`TouchableOpacity\`, \`FlatList\`, \`ScrollView\`, \`Animated\`, \`Dimensions\`, \`Linking\`, \`Platform\`. Idealyst provides cross-platform alternatives for all of these (e.g., \`openExternalLinks\` on Markdown, \`Pressable\` from \`@idealyst/components\`). **For scrollable content, use \`<ScrollView>\` from \`@idealyst/components\`** (NOT \`<View scrollable>\` which is deprecated). \`ScrollView\` supports \`direction\` (\`'vertical' | 'horizontal' | 'both'\`), scroll callbacks (\`onScroll\`, \`onScrollBegin\`, \`onScrollEnd\`, \`onEndReached\`), and imperative controls via ref (\`scrollTo\`, \`scrollToEnd\`, \`scrollToStart\`). It also accepts the same spacing shorthand props as View (\`padding\`, \`gap\`, \`margin\`, etc.).
|
|
16200
16232
|
17. **Never** import from \`react-native-unistyles\` \u2014 use \`@idealyst/theme\` (\`configureThemes\`, \`ThemeSettings\`, \`useTheme\`).
|
|
16201
16233
|
18. **useTheme()** returns the Theme object **directly** (NOT wrapped): \`const theme = useTheme();\`. Do NOT destructure: \`const { theme } = useTheme()\` \u2014 causes TS2339.
|
|
16202
16234
|
19. **Spacing & Layout**: Use component shorthand props for spacing \u2014 NOT \`theme.spacing\` (which does NOT exist). The correct patterns:
|
|
@@ -23719,7 +23751,7 @@ import { fileURLToPath } from "url";
|
|
|
23719
23751
|
// src/generated/types.json
|
|
23720
23752
|
var types_default = {
|
|
23721
23753
|
version: "1.0.93",
|
|
23722
|
-
extractedAt: "2026-
|
|
23754
|
+
extractedAt: "2026-03-11T20:52:45.143Z",
|
|
23723
23755
|
components: {
|
|
23724
23756
|
Accordion: {
|
|
23725
23757
|
name: "Accordion",
|
|
@@ -27990,6 +28022,12 @@ var types_default = {
|
|
|
27990
28022
|
required: false,
|
|
27991
28023
|
description: "Whether to avoid the keyboard on native platforms (iOS/Android).\nWhen enabled, content will shift up when the keyboard appears."
|
|
27992
28024
|
},
|
|
28025
|
+
{
|
|
28026
|
+
name: "keyboardAvoidingOffset",
|
|
28027
|
+
type: "number | undefined",
|
|
28028
|
+
required: false,
|
|
28029
|
+
description: "Additional offset to subtract from the keyboard height when avoiding the keyboard.\nThe Screen automatically accounts for the tab bar height when inside a tab navigator,\nbut this prop can be used for other fixed UI elements that occupy space at the bottom."
|
|
28030
|
+
},
|
|
27993
28031
|
{
|
|
27994
28032
|
name: "onLayout",
|
|
27995
28033
|
type: '((event: import("/home/nicho/Development/idealyst-framework/packages/components/src/hooks/useWebLayout/types").LayoutChangeEvent) => void) | undefined',
|
|
@@ -27997,7 +28035,7 @@ var types_default = {
|
|
|
27997
28035
|
description: "Called when the layout of the screen changes.\nProvides the new width, height, x, and y coordinates."
|
|
27998
28036
|
}
|
|
27999
28037
|
],
|
|
28000
|
-
typeDefinition: "export interface ScreenProps extends ContainerStyleProps {\n /**\n * The content to display inside the screen\n */\n children?: ReactNode;\n\n /**\n * Background variant - controls the background color\n */\n background?: Surface | 'transparent';\n\n /**\n * Safe area padding for all edges (lower precedence).\n * Individual edge props (safeAreaTop, etc.) override this when set.\n */\n safeArea?: boolean;\n\n /**\n * Safe area padding for the top edge.\n * Overrides safeArea for top when explicitly set.\n */\n safeAreaTop?: boolean;\n\n /**\n * Safe area padding for the bottom edge.\n * Overrides safeArea for bottom when explicitly set.\n */\n safeAreaBottom?: boolean;\n\n /**\n * Safe area padding for the left edge.\n * Overrides safeArea for left when explicitly set.\n */\n safeAreaLeft?: boolean;\n\n /**\n * Safe area padding for the right edge.\n * Overrides safeArea for right when explicitly set.\n */\n safeAreaRight?: boolean;\n\n /**\n * Content inset padding for scrollable content (mobile only)\n * Adds padding to the scroll view's content container\n * Useful for adding safe area insets or additional spacing\n */\n contentInset?: {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n };\n\n /**\n * Additional styles (platform-specific)\n */\n style?: StyleProp<ViewStyle>;\n\n /**\n * Test ID for testing\n */\n testID?: string;\n\n /**\n * Scrollable content\n */\n scrollable?: boolean;\n\n /**\n * Whether to avoid the keyboard on native platforms (iOS/Android).\n * When enabled, content will shift up when the keyboard appears.\n * @default true\n * @platform native\n */\n avoidKeyboard?: boolean;\n\n /**\n * Called when the layout of the screen changes.\n * Provides the new width, height, x, and y coordinates.\n */\n onLayout?: (event: LayoutChangeEvent) => void;\n}",
|
|
28038
|
+
typeDefinition: "export interface ScreenProps extends ContainerStyleProps {\n /**\n * The content to display inside the screen\n */\n children?: ReactNode;\n\n /**\n * Background variant - controls the background color\n */\n background?: Surface | 'transparent';\n\n /**\n * Safe area padding for all edges (lower precedence).\n * Individual edge props (safeAreaTop, etc.) override this when set.\n */\n safeArea?: boolean;\n\n /**\n * Safe area padding for the top edge.\n * Overrides safeArea for top when explicitly set.\n */\n safeAreaTop?: boolean;\n\n /**\n * Safe area padding for the bottom edge.\n * Overrides safeArea for bottom when explicitly set.\n */\n safeAreaBottom?: boolean;\n\n /**\n * Safe area padding for the left edge.\n * Overrides safeArea for left when explicitly set.\n */\n safeAreaLeft?: boolean;\n\n /**\n * Safe area padding for the right edge.\n * Overrides safeArea for right when explicitly set.\n */\n safeAreaRight?: boolean;\n\n /**\n * Content inset padding for scrollable content (mobile only)\n * Adds padding to the scroll view's content container\n * Useful for adding safe area insets or additional spacing\n */\n contentInset?: {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n };\n\n /**\n * Additional styles (platform-specific)\n */\n style?: StyleProp<ViewStyle>;\n\n /**\n * Test ID for testing\n */\n testID?: string;\n\n /**\n * Scrollable content\n */\n scrollable?: boolean;\n\n /**\n * Whether to avoid the keyboard on native platforms (iOS/Android).\n * When enabled, content will shift up when the keyboard appears.\n * @default true\n * @platform native\n */\n avoidKeyboard?: boolean;\n\n /**\n * Additional offset to subtract from the keyboard height when avoiding the keyboard.\n * The Screen automatically accounts for the tab bar height when inside a tab navigator,\n * but this prop can be used for other fixed UI elements that occupy space at the bottom.\n * @default 0\n * @platform native\n */\n keyboardAvoidingOffset?: number;\n\n /**\n * Called when the layout of the screen changes.\n * Provides the new width, height, x, and y coordinates.\n */\n onLayout?: (event: LayoutChangeEvent) => void;\n}",
|
|
28001
28039
|
relatedTypes: {},
|
|
28002
28040
|
registry: {
|
|
28003
28041
|
name: "Screen",
|
|
@@ -28086,6 +28124,13 @@ var types_default = {
|
|
|
28086
28124
|
description: "Whether to avoid the keyboard on native platforms (iOS/Android).\nWhen enabled, content will shift up when the keyboard appears.",
|
|
28087
28125
|
required: false
|
|
28088
28126
|
},
|
|
28127
|
+
keyboardAvoidingOffset: {
|
|
28128
|
+
name: "keyboardAvoidingOffset",
|
|
28129
|
+
type: "number | undefined",
|
|
28130
|
+
default: 0,
|
|
28131
|
+
description: "Additional offset to subtract from the keyboard height when avoiding the keyboard.\nThe Screen automatically accounts for the tab bar height when inside a tab navigator,\nbut this prop can be used for other fixed UI elements that occupy space at the bottom.",
|
|
28132
|
+
required: false
|
|
28133
|
+
},
|
|
28089
28134
|
id: {
|
|
28090
28135
|
name: "id",
|
|
28091
28136
|
type: "string | undefined",
|
|
@@ -28148,6 +28193,384 @@ var types_default = {
|
|
|
28148
28193
|
}
|
|
28149
28194
|
}
|
|
28150
28195
|
},
|
|
28196
|
+
ScrollView: {
|
|
28197
|
+
name: "ScrollView",
|
|
28198
|
+
propsInterface: "ScrollViewProps",
|
|
28199
|
+
props: [
|
|
28200
|
+
{
|
|
28201
|
+
name: "children",
|
|
28202
|
+
type: "React.ReactNode",
|
|
28203
|
+
required: false
|
|
28204
|
+
},
|
|
28205
|
+
{
|
|
28206
|
+
name: "direction",
|
|
28207
|
+
type: 'import("/home/nicho/Development/idealyst-framework/packages/components/src/ScrollView/types").ScrollViewDirection | undefined',
|
|
28208
|
+
required: false,
|
|
28209
|
+
description: "Scroll direction. Defaults to 'vertical'."
|
|
28210
|
+
},
|
|
28211
|
+
{
|
|
28212
|
+
name: "background",
|
|
28213
|
+
type: "string | undefined",
|
|
28214
|
+
required: false,
|
|
28215
|
+
description: "Background variant"
|
|
28216
|
+
},
|
|
28217
|
+
{
|
|
28218
|
+
name: "radius",
|
|
28219
|
+
type: "string | undefined",
|
|
28220
|
+
required: false,
|
|
28221
|
+
description: "Border radius variant"
|
|
28222
|
+
},
|
|
28223
|
+
{
|
|
28224
|
+
name: "border",
|
|
28225
|
+
type: 'import("/home/nicho/Development/idealyst-framework/packages/components/src/ScrollView/types").ScrollViewBorderVariant | undefined',
|
|
28226
|
+
required: false,
|
|
28227
|
+
description: "Border variant"
|
|
28228
|
+
},
|
|
28229
|
+
{
|
|
28230
|
+
name: "backgroundColor",
|
|
28231
|
+
type: "string | undefined",
|
|
28232
|
+
required: false,
|
|
28233
|
+
description: "Custom background color (overrides background variant)"
|
|
28234
|
+
},
|
|
28235
|
+
{
|
|
28236
|
+
name: "borderRadius",
|
|
28237
|
+
type: "number | undefined",
|
|
28238
|
+
required: false,
|
|
28239
|
+
description: "Custom border radius (overrides radius variant)"
|
|
28240
|
+
},
|
|
28241
|
+
{
|
|
28242
|
+
name: "borderWidth",
|
|
28243
|
+
type: "number | undefined",
|
|
28244
|
+
required: false,
|
|
28245
|
+
description: "Custom border width (overrides border variant)"
|
|
28246
|
+
},
|
|
28247
|
+
{
|
|
28248
|
+
name: "borderColor",
|
|
28249
|
+
type: "string | undefined",
|
|
28250
|
+
required: false,
|
|
28251
|
+
description: "Custom border color"
|
|
28252
|
+
},
|
|
28253
|
+
{
|
|
28254
|
+
name: "style",
|
|
28255
|
+
type: 'import("/home/nicho/Development/idealyst-framework/packages/theme/node_modules/react-native/Libraries/StyleSheet/StyleSheet").StyleProp<import("/home/nicho/Development/idealyst-framework/packages/theme/node_modules/react-native/Libraries/StyleSheet/StyleSheetTypes").ViewStyle>',
|
|
28256
|
+
required: false,
|
|
28257
|
+
description: "Additional styles"
|
|
28258
|
+
},
|
|
28259
|
+
{
|
|
28260
|
+
name: "contentContainerStyle",
|
|
28261
|
+
type: 'import("/home/nicho/Development/idealyst-framework/packages/theme/node_modules/react-native/Libraries/StyleSheet/StyleSheet").StyleProp<import("/home/nicho/Development/idealyst-framework/packages/theme/node_modules/react-native/Libraries/StyleSheet/StyleSheetTypes").ViewStyle>',
|
|
28262
|
+
required: false,
|
|
28263
|
+
description: "Styles applied to the content container"
|
|
28264
|
+
},
|
|
28265
|
+
{
|
|
28266
|
+
name: "showsIndicator",
|
|
28267
|
+
type: "boolean | undefined",
|
|
28268
|
+
required: false,
|
|
28269
|
+
description: "Whether to show scroll indicators. Defaults to true."
|
|
28270
|
+
},
|
|
28271
|
+
{
|
|
28272
|
+
name: "pagingEnabled",
|
|
28273
|
+
type: "boolean | undefined",
|
|
28274
|
+
required: false,
|
|
28275
|
+
description: "Whether to enable paging behavior"
|
|
28276
|
+
},
|
|
28277
|
+
{
|
|
28278
|
+
name: "bounces",
|
|
28279
|
+
type: "boolean | undefined",
|
|
28280
|
+
required: false,
|
|
28281
|
+
description: "Whether the scroll view bounces at the edges (iOS). Defaults to true."
|
|
28282
|
+
},
|
|
28283
|
+
{
|
|
28284
|
+
name: "onScroll",
|
|
28285
|
+
type: '((event: import("/home/nicho/Development/idealyst-framework/packages/components/src/ScrollView/types").ScrollEvent) => void) | undefined',
|
|
28286
|
+
required: false,
|
|
28287
|
+
description: "Called continuously as the user scrolls.\nUse `scrollEventThrottle` to control frequency."
|
|
28288
|
+
},
|
|
28289
|
+
{
|
|
28290
|
+
name: "onScrollBegin",
|
|
28291
|
+
type: '((event: import("/home/nicho/Development/idealyst-framework/packages/components/src/ScrollView/types").ScrollEvent) => void) | undefined',
|
|
28292
|
+
required: false,
|
|
28293
|
+
description: "Called when scrolling begins (user starts dragging)."
|
|
28294
|
+
},
|
|
28295
|
+
{
|
|
28296
|
+
name: "onScrollEnd",
|
|
28297
|
+
type: '((event: import("/home/nicho/Development/idealyst-framework/packages/components/src/ScrollView/types").ScrollEvent) => void) | undefined',
|
|
28298
|
+
required: false,
|
|
28299
|
+
description: "Called when scrolling ends (momentum settles or user lifts finger)."
|
|
28300
|
+
},
|
|
28301
|
+
{
|
|
28302
|
+
name: "onEndReached",
|
|
28303
|
+
type: "(() => void) | undefined",
|
|
28304
|
+
required: false,
|
|
28305
|
+
description: "Called when the scroll position reaches the end of the content.\nUseful for infinite scroll / load-more patterns."
|
|
28306
|
+
},
|
|
28307
|
+
{
|
|
28308
|
+
name: "onEndReachedThreshold",
|
|
28309
|
+
type: "number | undefined",
|
|
28310
|
+
required: false,
|
|
28311
|
+
description: "Distance from the end (in pixels) at which onEndReached fires.\nDefaults to 0."
|
|
28312
|
+
},
|
|
28313
|
+
{
|
|
28314
|
+
name: "scrollEventThrottle",
|
|
28315
|
+
type: "number | undefined",
|
|
28316
|
+
required: false,
|
|
28317
|
+
description: "Throttle interval (ms) for onScroll events on native. Defaults to 16 (~60fps)."
|
|
28318
|
+
},
|
|
28319
|
+
{
|
|
28320
|
+
name: "scrollEnabled",
|
|
28321
|
+
type: "boolean | undefined",
|
|
28322
|
+
required: false,
|
|
28323
|
+
description: "Whether scrolling is enabled. Defaults to true."
|
|
28324
|
+
},
|
|
28325
|
+
{
|
|
28326
|
+
name: "keyboardDismissMode",
|
|
28327
|
+
type: '"none" | "on-drag" | "interactive" | undefined',
|
|
28328
|
+
required: false,
|
|
28329
|
+
description: "Whether the keyboard should dismiss on drag."
|
|
28330
|
+
},
|
|
28331
|
+
{
|
|
28332
|
+
name: "testID",
|
|
28333
|
+
type: "string | undefined",
|
|
28334
|
+
required: false,
|
|
28335
|
+
description: "Test ID for testing"
|
|
28336
|
+
},
|
|
28337
|
+
{
|
|
28338
|
+
name: "onLayout",
|
|
28339
|
+
type: '((event: import("/home/nicho/Development/idealyst-framework/packages/components/src/hooks/useWebLayout/types").LayoutChangeEvent) => void) | undefined',
|
|
28340
|
+
required: false,
|
|
28341
|
+
description: "Callback when layout changes"
|
|
28342
|
+
}
|
|
28343
|
+
],
|
|
28344
|
+
typeDefinition: "export interface ScrollViewProps extends ContainerStyleProps {\n children?: ReactNode;\n\n /** Scroll direction. Defaults to 'vertical'. */\n direction?: ScrollViewDirection;\n\n /** Background variant */\n background?: ScrollViewBackgroundVariant;\n\n /** Border radius variant */\n radius?: ScrollViewRadiusVariant;\n\n /** Border variant */\n border?: ScrollViewBorderVariant;\n\n /** Custom background color (overrides background variant) */\n backgroundColor?: string;\n\n /** Custom border radius (overrides radius variant) */\n borderRadius?: number;\n\n /** Custom border width (overrides border variant) */\n borderWidth?: number;\n\n /** Custom border color */\n borderColor?: string;\n\n /** Additional styles */\n style?: StyleProp<ViewStyle>;\n\n /** Styles applied to the content container */\n contentContainerStyle?: StyleProp<ViewStyle>;\n\n /** Whether to show scroll indicators. Defaults to true. */\n showsIndicator?: boolean;\n\n /** Whether to enable paging behavior */\n pagingEnabled?: boolean;\n\n /** Whether the scroll view bounces at the edges (iOS). Defaults to true. */\n bounces?: boolean;\n\n /**\n * Called continuously as the user scrolls.\n * Use `scrollEventThrottle` to control frequency.\n */\n onScroll?: (event: ScrollEvent) => void;\n\n /**\n * Called when scrolling begins (user starts dragging).\n */\n onScrollBegin?: (event: ScrollEvent) => void;\n\n /**\n * Called when scrolling ends (momentum settles or user lifts finger).\n */\n onScrollEnd?: (event: ScrollEvent) => void;\n\n /**\n * Called when the scroll position reaches the end of the content.\n * Useful for infinite scroll / load-more patterns.\n */\n onEndReached?: () => void;\n\n /**\n * Distance from the end (in pixels) at which onEndReached fires.\n * Defaults to 0.\n */\n onEndReachedThreshold?: number;\n\n /**\n * Throttle interval (ms) for onScroll events on native. Defaults to 16 (~60fps).\n */\n scrollEventThrottle?: number;\n\n /** Whether scrolling is enabled. Defaults to true. */\n scrollEnabled?: boolean;\n\n /** Whether the keyboard should dismiss on drag. */\n keyboardDismissMode?: 'none' | 'on-drag' | 'interactive';\n\n /** Test ID for testing */\n testID?: string;\n\n /** Callback when layout changes */\n onLayout?: (event: LayoutChangeEvent) => void;\n}",
|
|
28345
|
+
relatedTypes: {
|
|
28346
|
+
ScrollViewBackgroundVariant: "export type ScrollViewBackgroundVariant = Surface | 'transparent';",
|
|
28347
|
+
ScrollViewRadiusVariant: "export type ScrollViewRadiusVariant = Size | 'none';",
|
|
28348
|
+
ScrollViewBorderVariant: "export type ScrollViewBorderVariant = 'none' | 'thin' | 'thick';",
|
|
28349
|
+
ScrollViewDirection: "export type ScrollViewDirection = 'vertical' | 'horizontal' | 'both';",
|
|
28350
|
+
ScrollPosition: "export interface ScrollPosition {\n x: number;\n y: number;\n}",
|
|
28351
|
+
ScrollContentSize: "export interface ScrollContentSize {\n width: number;\n height: number;\n}",
|
|
28352
|
+
ScrollLayoutSize: "export interface ScrollLayoutSize {\n width: number;\n height: number;\n}",
|
|
28353
|
+
ScrollEvent: "export interface ScrollEvent {\n /** Current scroll offset */\n position: ScrollPosition;\n /** Size of the scrollable content */\n contentSize: ScrollContentSize;\n /** Size of the visible scroll container */\n layoutSize: ScrollLayoutSize;\n /** Whether the content is scrolled to the end (vertical or horizontal depending on direction) */\n isAtEnd: boolean;\n /** Whether the content is scrolled to the start */\n isAtStart: boolean;\n}",
|
|
28354
|
+
ScrollToOptions: "export interface ScrollToOptions {\n x?: number;\n y?: number;\n animated?: boolean;\n}",
|
|
28355
|
+
ScrollViewRef: "export interface ScrollViewRef {\n /** Scroll to a specific position */\n scrollTo: (options: ScrollToOptions) => void;\n /** Scroll to the end of the content */\n scrollToEnd: (options?: { animated?: boolean }) => void;\n /** Scroll to the top/start of the content */\n scrollToStart: (options?: { animated?: boolean }) => void;\n /** Get current scroll position */\n getScrollPosition: () => ScrollPosition;\n /** Get the underlying native element */\n getInnerElement: () => any;\n}"
|
|
28356
|
+
},
|
|
28357
|
+
registry: {
|
|
28358
|
+
name: "ScrollView",
|
|
28359
|
+
description: "Scrollable container with scroll event abstractions and imperative scroll controls.",
|
|
28360
|
+
props: {
|
|
28361
|
+
direction: {
|
|
28362
|
+
name: "direction",
|
|
28363
|
+
type: "ScrollViewDirection | undefined",
|
|
28364
|
+
values: [
|
|
28365
|
+
"vertical",
|
|
28366
|
+
"horizontal",
|
|
28367
|
+
"both"
|
|
28368
|
+
],
|
|
28369
|
+
description: "Scroll direction. Defaults to 'vertical'.",
|
|
28370
|
+
required: false
|
|
28371
|
+
},
|
|
28372
|
+
background: {
|
|
28373
|
+
name: "background",
|
|
28374
|
+
type: "any",
|
|
28375
|
+
description: "Background variant",
|
|
28376
|
+
required: false
|
|
28377
|
+
},
|
|
28378
|
+
radius: {
|
|
28379
|
+
name: "radius",
|
|
28380
|
+
type: "any",
|
|
28381
|
+
description: "Border radius variant",
|
|
28382
|
+
required: false
|
|
28383
|
+
},
|
|
28384
|
+
border: {
|
|
28385
|
+
name: "border",
|
|
28386
|
+
type: "ScrollViewBorderVariant | undefined",
|
|
28387
|
+
values: [
|
|
28388
|
+
"none",
|
|
28389
|
+
"thin",
|
|
28390
|
+
"thick"
|
|
28391
|
+
],
|
|
28392
|
+
description: "Border variant",
|
|
28393
|
+
required: false
|
|
28394
|
+
},
|
|
28395
|
+
backgroundColor: {
|
|
28396
|
+
name: "backgroundColor",
|
|
28397
|
+
type: "string | undefined",
|
|
28398
|
+
description: "Custom background color (overrides background variant)",
|
|
28399
|
+
required: false
|
|
28400
|
+
},
|
|
28401
|
+
borderRadius: {
|
|
28402
|
+
name: "borderRadius",
|
|
28403
|
+
type: "number | undefined",
|
|
28404
|
+
description: "Custom border radius (overrides radius variant)",
|
|
28405
|
+
required: false
|
|
28406
|
+
},
|
|
28407
|
+
borderWidth: {
|
|
28408
|
+
name: "borderWidth",
|
|
28409
|
+
type: "number | undefined",
|
|
28410
|
+
description: "Custom border width (overrides border variant)",
|
|
28411
|
+
required: false
|
|
28412
|
+
},
|
|
28413
|
+
borderColor: {
|
|
28414
|
+
name: "borderColor",
|
|
28415
|
+
type: "string | undefined",
|
|
28416
|
+
description: "Custom border color",
|
|
28417
|
+
required: false
|
|
28418
|
+
},
|
|
28419
|
+
contentContainerStyle: {
|
|
28420
|
+
name: "contentContainerStyle",
|
|
28421
|
+
type: "any",
|
|
28422
|
+
description: "Styles applied to the content container",
|
|
28423
|
+
required: false
|
|
28424
|
+
},
|
|
28425
|
+
showsIndicator: {
|
|
28426
|
+
name: "showsIndicator",
|
|
28427
|
+
type: "boolean | undefined",
|
|
28428
|
+
values: [
|
|
28429
|
+
"false",
|
|
28430
|
+
"true"
|
|
28431
|
+
],
|
|
28432
|
+
description: "Whether to show scroll indicators. Defaults to true.",
|
|
28433
|
+
required: false
|
|
28434
|
+
},
|
|
28435
|
+
pagingEnabled: {
|
|
28436
|
+
name: "pagingEnabled",
|
|
28437
|
+
type: "boolean | undefined",
|
|
28438
|
+
values: [
|
|
28439
|
+
"false",
|
|
28440
|
+
"true"
|
|
28441
|
+
],
|
|
28442
|
+
description: "Whether to enable paging behavior",
|
|
28443
|
+
required: false
|
|
28444
|
+
},
|
|
28445
|
+
bounces: {
|
|
28446
|
+
name: "bounces",
|
|
28447
|
+
type: "boolean | undefined",
|
|
28448
|
+
values: [
|
|
28449
|
+
"false",
|
|
28450
|
+
"true"
|
|
28451
|
+
],
|
|
28452
|
+
description: "Whether the scroll view bounces at the edges (iOS). Defaults to true.",
|
|
28453
|
+
required: false
|
|
28454
|
+
},
|
|
28455
|
+
onScroll: {
|
|
28456
|
+
name: "onScroll",
|
|
28457
|
+
type: "((event: ScrollEvent) => void) | undefined",
|
|
28458
|
+
description: "Called continuously as the user scrolls.\nUse `scrollEventThrottle` to control frequency.",
|
|
28459
|
+
required: false
|
|
28460
|
+
},
|
|
28461
|
+
onScrollBegin: {
|
|
28462
|
+
name: "onScrollBegin",
|
|
28463
|
+
type: "((event: ScrollEvent) => void) | undefined",
|
|
28464
|
+
description: "Called when scrolling begins (user starts dragging).",
|
|
28465
|
+
required: false
|
|
28466
|
+
},
|
|
28467
|
+
onScrollEnd: {
|
|
28468
|
+
name: "onScrollEnd",
|
|
28469
|
+
type: "((event: ScrollEvent) => void) | undefined",
|
|
28470
|
+
description: "Called when scrolling ends (momentum settles or user lifts finger).",
|
|
28471
|
+
required: false
|
|
28472
|
+
},
|
|
28473
|
+
onEndReached: {
|
|
28474
|
+
name: "onEndReached",
|
|
28475
|
+
type: "(() => void) | undefined",
|
|
28476
|
+
description: "Called when the scroll position reaches the end of the content.\nUseful for infinite scroll / load-more patterns.",
|
|
28477
|
+
required: false
|
|
28478
|
+
},
|
|
28479
|
+
onEndReachedThreshold: {
|
|
28480
|
+
name: "onEndReachedThreshold",
|
|
28481
|
+
type: "number | undefined",
|
|
28482
|
+
description: "Distance from the end (in pixels) at which onEndReached fires.\nDefaults to 0.",
|
|
28483
|
+
required: false
|
|
28484
|
+
},
|
|
28485
|
+
scrollEventThrottle: {
|
|
28486
|
+
name: "scrollEventThrottle",
|
|
28487
|
+
type: "number | undefined",
|
|
28488
|
+
description: "Throttle interval (ms) for onScroll events on native. Defaults to 16 (~60fps).",
|
|
28489
|
+
required: false
|
|
28490
|
+
},
|
|
28491
|
+
scrollEnabled: {
|
|
28492
|
+
name: "scrollEnabled",
|
|
28493
|
+
type: "boolean | undefined",
|
|
28494
|
+
values: [
|
|
28495
|
+
"false",
|
|
28496
|
+
"true"
|
|
28497
|
+
],
|
|
28498
|
+
description: "Whether scrolling is enabled. Defaults to true.",
|
|
28499
|
+
required: false
|
|
28500
|
+
},
|
|
28501
|
+
keyboardDismissMode: {
|
|
28502
|
+
name: "keyboardDismissMode",
|
|
28503
|
+
type: '"none" | "on-drag" | "interactive" | undefined',
|
|
28504
|
+
values: [
|
|
28505
|
+
"none",
|
|
28506
|
+
"on-drag",
|
|
28507
|
+
"interactive"
|
|
28508
|
+
],
|
|
28509
|
+
description: "Whether the keyboard should dismiss on drag.",
|
|
28510
|
+
required: false
|
|
28511
|
+
},
|
|
28512
|
+
id: {
|
|
28513
|
+
name: "id",
|
|
28514
|
+
type: "string | undefined",
|
|
28515
|
+
description: "Unique identifier for the element (maps to id on web, nativeID on native)",
|
|
28516
|
+
required: false
|
|
28517
|
+
},
|
|
28518
|
+
gap: {
|
|
28519
|
+
name: "gap",
|
|
28520
|
+
type: "any",
|
|
28521
|
+
description: "Gap between children (uses theme.sizes.view[size].spacing)",
|
|
28522
|
+
required: false
|
|
28523
|
+
},
|
|
28524
|
+
spacing: {
|
|
28525
|
+
name: "spacing",
|
|
28526
|
+
type: "any",
|
|
28527
|
+
description: "Alias for gap - spacing between children",
|
|
28528
|
+
required: false
|
|
28529
|
+
},
|
|
28530
|
+
padding: {
|
|
28531
|
+
name: "padding",
|
|
28532
|
+
type: "any",
|
|
28533
|
+
description: "Padding on all sides (uses theme.sizes.view[size].padding)",
|
|
28534
|
+
required: false
|
|
28535
|
+
},
|
|
28536
|
+
paddingVertical: {
|
|
28537
|
+
name: "paddingVertical",
|
|
28538
|
+
type: "any",
|
|
28539
|
+
description: "Vertical padding (top + bottom)",
|
|
28540
|
+
required: false
|
|
28541
|
+
},
|
|
28542
|
+
paddingHorizontal: {
|
|
28543
|
+
name: "paddingHorizontal",
|
|
28544
|
+
type: "any",
|
|
28545
|
+
description: "Horizontal padding (left + right)",
|
|
28546
|
+
required: false
|
|
28547
|
+
},
|
|
28548
|
+
margin: {
|
|
28549
|
+
name: "margin",
|
|
28550
|
+
type: "any",
|
|
28551
|
+
description: "Margin on all sides (uses theme.sizes.view[size].spacing)",
|
|
28552
|
+
required: false
|
|
28553
|
+
},
|
|
28554
|
+
marginVertical: {
|
|
28555
|
+
name: "marginVertical",
|
|
28556
|
+
type: "any",
|
|
28557
|
+
description: "Vertical margin (top + bottom)",
|
|
28558
|
+
required: false
|
|
28559
|
+
},
|
|
28560
|
+
marginHorizontal: {
|
|
28561
|
+
name: "marginHorizontal",
|
|
28562
|
+
type: "any",
|
|
28563
|
+
description: "Horizontal margin (left + right)",
|
|
28564
|
+
required: false
|
|
28565
|
+
}
|
|
28566
|
+
},
|
|
28567
|
+
category: "display",
|
|
28568
|
+
filePath: "../components/src/ScrollView",
|
|
28569
|
+
sampleProps: {
|
|
28570
|
+
children: "'Scrollable content'"
|
|
28571
|
+
}
|
|
28572
|
+
}
|
|
28573
|
+
},
|
|
28151
28574
|
Select: {
|
|
28152
28575
|
name: "Select",
|
|
28153
28576
|
propsInterface: "SelectProps",
|
|
@@ -29656,6 +30079,12 @@ var types_default = {
|
|
|
29656
30079
|
type: "boolean | undefined",
|
|
29657
30080
|
required: false
|
|
29658
30081
|
},
|
|
30082
|
+
{
|
|
30083
|
+
name: "fill",
|
|
30084
|
+
type: "boolean | undefined",
|
|
30085
|
+
required: false,
|
|
30086
|
+
description: "When true, the textarea expands to fill available vertical space using flex.\nOverrides `rows` and `autoGrow` height logic. All container layers get `flex: 1`."
|
|
30087
|
+
},
|
|
29659
30088
|
{
|
|
29660
30089
|
name: "maxLength",
|
|
29661
30090
|
type: "number | undefined",
|
|
@@ -29718,7 +30147,7 @@ var types_default = {
|
|
|
29718
30147
|
required: false
|
|
29719
30148
|
}
|
|
29720
30149
|
],
|
|
29721
|
-
typeDefinition: "export interface TextAreaProps extends FormInputStyleProps, FormAccessibilityProps {\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n /**\n * Called when a key is pressed while the textarea is focused.\n * Includes modifier key states (ctrl, shift, alt, meta).\n * Web only - no-op on native.\n */\n onKeyDown?: (event: KeyboardEventData) => void;\n placeholder?: string;\n disabled?: boolean;\n rows?: number;\n minHeight?: number;\n maxHeight?: number;\n autoGrow?: boolean;\n maxLength?: number;\n label?: string;\n error?: string;\n helperText?: string;\n resize?: TextAreaResizeVariant;\n showCharacterCount?: boolean;\n intent?: TextAreaIntentVariant;\n size?: TextAreaSizeVariant;\n /**\n * Visual style type of the textarea\n * @default 'outlined'\n */\n type?: TextAreaType;\n style?: StyleProp<ViewStyle>;\n textareaStyle?: StyleProp<TextStyle>;\n testID?: string;\n}",
|
|
30150
|
+
typeDefinition: "export interface TextAreaProps extends FormInputStyleProps, FormAccessibilityProps {\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n /**\n * Called when a key is pressed while the textarea is focused.\n * Includes modifier key states (ctrl, shift, alt, meta).\n * Web only - no-op on native.\n */\n onKeyDown?: (event: KeyboardEventData) => void;\n placeholder?: string;\n disabled?: boolean;\n rows?: number;\n minHeight?: number;\n maxHeight?: number;\n autoGrow?: boolean;\n /**\n * When true, the textarea expands to fill available vertical space using flex.\n * Overrides `rows` and `autoGrow` height logic. All container layers get `flex: 1`.\n */\n fill?: boolean;\n maxLength?: number;\n label?: string;\n error?: string;\n helperText?: string;\n resize?: TextAreaResizeVariant;\n showCharacterCount?: boolean;\n intent?: TextAreaIntentVariant;\n size?: TextAreaSizeVariant;\n /**\n * Visual style type of the textarea\n * @default 'outlined'\n */\n type?: TextAreaType;\n style?: StyleProp<ViewStyle>;\n textareaStyle?: StyleProp<TextStyle>;\n testID?: string;\n}",
|
|
29722
30151
|
relatedTypes: {
|
|
29723
30152
|
TextAreaIntentVariant: "export type TextAreaIntentVariant = Intent;",
|
|
29724
30153
|
TextAreaSizeVariant: "export type TextAreaSizeVariant = Size;",
|
|
@@ -29788,6 +30217,16 @@ var types_default = {
|
|
|
29788
30217
|
],
|
|
29789
30218
|
required: false
|
|
29790
30219
|
},
|
|
30220
|
+
fill: {
|
|
30221
|
+
name: "fill",
|
|
30222
|
+
type: "boolean | undefined",
|
|
30223
|
+
values: [
|
|
30224
|
+
"false",
|
|
30225
|
+
"true"
|
|
30226
|
+
],
|
|
30227
|
+
description: "When true, the textarea expands to fill available vertical space using flex.\nOverrides `rows` and `autoGrow` height logic. All container layers get `flex: 1`.",
|
|
30228
|
+
required: false
|
|
30229
|
+
},
|
|
29791
30230
|
maxLength: {
|
|
29792
30231
|
name: "maxLength",
|
|
29793
30232
|
type: "number | undefined",
|
|
@@ -30862,7 +31301,7 @@ var types_default = {
|
|
|
30862
31301
|
name: "scrollable",
|
|
30863
31302
|
type: "boolean | undefined",
|
|
30864
31303
|
required: false,
|
|
30865
|
-
description: "
|
|
31304
|
+
description: ""
|
|
30866
31305
|
},
|
|
30867
31306
|
{
|
|
30868
31307
|
name: "testID",
|
|
@@ -30877,7 +31316,7 @@ var types_default = {
|
|
|
30877
31316
|
description: "Callback when the view's layout changes.\nCalled with layout information (x, y, width, height) when the component\nmounts or when its dimensions change."
|
|
30878
31317
|
}
|
|
30879
31318
|
],
|
|
30880
|
-
typeDefinition: "export interface ViewProps extends ContainerStyleProps {\n /**\n * The content to display inside the view\n */\n children?: ReactNode;\n\n /**\n * Background variant\n */\n background?: ViewBackgroundVariant;\n\n /**\n * Border radius variant\n */\n radius?: ViewRadiusVariant;\n\n /**\n * Border variant\n */\n border?: ViewBorderVariant;\n\n /**\n * Custom background color (overrides background variant)\n */\n backgroundColor?: string;\n\n /**\n * Custom border radius (overrides radius variant)\n */\n borderRadius?: number;\n\n /**\n * Custom border width (overrides border variant)\n */\n borderWidth?: number;\n\n /**\n * Custom border color\n */\n borderColor?: string;\n\n /**\n * Additional styles. Supports responsive values for any property.\n * @example\n * ```tsx\n * // Responsive flexDirection\n * <View style={{ flexDirection: { xs: 'column', md: 'row' } }} />\n *\n * // Mix responsive and static values\n * <View style={{ padding: { xs: 8, lg: 16 }, backgroundColor: '#fff' }} />\n * ```\n */\n style?: ViewStyleProp;\n\n /**\n * Enable scrollable content.\n * - Native: Wraps children in a ScrollView\n * - Web: Renders a wrapper + content structure where the wrapper fills available\n * space (or uses explicit dimensions) and content is absolutely positioned with\n * overflow:auto. Sizing/margin styles go to wrapper, visual styles to content.\n */\n scrollable?: boolean;\n\n /**\n * Test ID for testing\n */\n testID?: string;\n\n /**\n * Callback when the view's layout changes.\n * Called with layout information (x, y, width, height) when the component\n * mounts or when its dimensions change.\n */\n onLayout?: (event: LayoutChangeEvent) => void;\n}",
|
|
31319
|
+
typeDefinition: "export interface ViewProps extends ContainerStyleProps {\n /**\n * The content to display inside the view\n */\n children?: ReactNode;\n\n /**\n * Background variant\n */\n background?: ViewBackgroundVariant;\n\n /**\n * Border radius variant\n */\n radius?: ViewRadiusVariant;\n\n /**\n * Border variant\n */\n border?: ViewBorderVariant;\n\n /**\n * Custom background color (overrides background variant)\n */\n backgroundColor?: string;\n\n /**\n * Custom border radius (overrides radius variant)\n */\n borderRadius?: number;\n\n /**\n * Custom border width (overrides border variant)\n */\n borderWidth?: number;\n\n /**\n * Custom border color\n */\n borderColor?: string;\n\n /**\n * Additional styles. Supports responsive values for any property.\n * @example\n * ```tsx\n * // Responsive flexDirection\n * <View style={{ flexDirection: { xs: 'column', md: 'row' } }} />\n *\n * // Mix responsive and static values\n * <View style={{ padding: { xs: 8, lg: 16 }, backgroundColor: '#fff' }} />\n * ```\n */\n style?: ViewStyleProp;\n\n /**\n * @deprecated Use the ScrollView component instead, which provides scroll event\n * abstractions (onScroll, onScrollBegin, onScrollEnd, onEndReached) and imperative\n * scroll controls (scrollTo, scrollToEnd, scrollToStart) via ref.\n *\n * Enable scrollable content.\n * - Native: Wraps children in a ScrollView\n * - Web: Renders a wrapper + content structure where the wrapper fills available\n * space (or uses explicit dimensions) and content is absolutely positioned with\n * overflow:auto. Sizing/margin styles go to wrapper, visual styles to content.\n */\n scrollable?: boolean;\n\n /**\n * Test ID for testing\n */\n testID?: string;\n\n /**\n * Callback when the view's layout changes.\n * Called with layout information (x, y, width, height) when the component\n * mounts or when its dimensions change.\n */\n onLayout?: (event: LayoutChangeEvent) => void;\n}",
|
|
30881
31320
|
relatedTypes: {
|
|
30882
31321
|
ViewStyleProp: "export type ViewStyleProp = StyleProp<ViewStyle> | ResponsiveStyle | React.CSSProperties;",
|
|
30883
31322
|
ViewBackgroundVariant: "export type ViewBackgroundVariant = Surface | 'transparent';",
|
|
@@ -30942,7 +31381,6 @@ var types_default = {
|
|
|
30942
31381
|
"false",
|
|
30943
31382
|
"true"
|
|
30944
31383
|
],
|
|
30945
|
-
description: "Enable scrollable content.\n- Native: Wraps children in a ScrollView\n- Web: Renders a wrapper + content structure where the wrapper fills available\n space (or uses explicit dimensions) and content is absolutely positioned with\n overflow:auto. Sizing/margin styles go to wrapper, visual styles to content.",
|
|
30946
31384
|
required: false
|
|
30947
31385
|
},
|
|
30948
31386
|
id: {
|
|
@@ -63353,6 +63791,13 @@ var types_default = {
|
|
|
63353
63791
|
description: "Whether to avoid the keyboard on native platforms (iOS/Android).\nWhen enabled, content will shift up when the keyboard appears.",
|
|
63354
63792
|
required: false
|
|
63355
63793
|
},
|
|
63794
|
+
keyboardAvoidingOffset: {
|
|
63795
|
+
name: "keyboardAvoidingOffset",
|
|
63796
|
+
type: "number | undefined",
|
|
63797
|
+
default: 0,
|
|
63798
|
+
description: "Additional offset to subtract from the keyboard height when avoiding the keyboard.\nThe Screen automatically accounts for the tab bar height when inside a tab navigator,\nbut this prop can be used for other fixed UI elements that occupy space at the bottom.",
|
|
63799
|
+
required: false
|
|
63800
|
+
},
|
|
63356
63801
|
id: {
|
|
63357
63802
|
name: "id",
|
|
63358
63803
|
type: "string | undefined",
|
|
@@ -63414,6 +63859,222 @@ var types_default = {
|
|
|
63414
63859
|
children: "'Screen content'"
|
|
63415
63860
|
}
|
|
63416
63861
|
},
|
|
63862
|
+
ScrollView: {
|
|
63863
|
+
name: "ScrollView",
|
|
63864
|
+
description: "Scrollable container with scroll event abstractions and imperative scroll controls.",
|
|
63865
|
+
props: {
|
|
63866
|
+
direction: {
|
|
63867
|
+
name: "direction",
|
|
63868
|
+
type: "ScrollViewDirection | undefined",
|
|
63869
|
+
values: [
|
|
63870
|
+
"vertical",
|
|
63871
|
+
"horizontal",
|
|
63872
|
+
"both"
|
|
63873
|
+
],
|
|
63874
|
+
description: "Scroll direction. Defaults to 'vertical'.",
|
|
63875
|
+
required: false
|
|
63876
|
+
},
|
|
63877
|
+
background: {
|
|
63878
|
+
name: "background",
|
|
63879
|
+
type: "any",
|
|
63880
|
+
description: "Background variant",
|
|
63881
|
+
required: false
|
|
63882
|
+
},
|
|
63883
|
+
radius: {
|
|
63884
|
+
name: "radius",
|
|
63885
|
+
type: "any",
|
|
63886
|
+
description: "Border radius variant",
|
|
63887
|
+
required: false
|
|
63888
|
+
},
|
|
63889
|
+
border: {
|
|
63890
|
+
name: "border",
|
|
63891
|
+
type: "ScrollViewBorderVariant | undefined",
|
|
63892
|
+
values: [
|
|
63893
|
+
"none",
|
|
63894
|
+
"thin",
|
|
63895
|
+
"thick"
|
|
63896
|
+
],
|
|
63897
|
+
description: "Border variant",
|
|
63898
|
+
required: false
|
|
63899
|
+
},
|
|
63900
|
+
backgroundColor: {
|
|
63901
|
+
name: "backgroundColor",
|
|
63902
|
+
type: "string | undefined",
|
|
63903
|
+
description: "Custom background color (overrides background variant)",
|
|
63904
|
+
required: false
|
|
63905
|
+
},
|
|
63906
|
+
borderRadius: {
|
|
63907
|
+
name: "borderRadius",
|
|
63908
|
+
type: "number | undefined",
|
|
63909
|
+
description: "Custom border radius (overrides radius variant)",
|
|
63910
|
+
required: false
|
|
63911
|
+
},
|
|
63912
|
+
borderWidth: {
|
|
63913
|
+
name: "borderWidth",
|
|
63914
|
+
type: "number | undefined",
|
|
63915
|
+
description: "Custom border width (overrides border variant)",
|
|
63916
|
+
required: false
|
|
63917
|
+
},
|
|
63918
|
+
borderColor: {
|
|
63919
|
+
name: "borderColor",
|
|
63920
|
+
type: "string | undefined",
|
|
63921
|
+
description: "Custom border color",
|
|
63922
|
+
required: false
|
|
63923
|
+
},
|
|
63924
|
+
contentContainerStyle: {
|
|
63925
|
+
name: "contentContainerStyle",
|
|
63926
|
+
type: "any",
|
|
63927
|
+
description: "Styles applied to the content container",
|
|
63928
|
+
required: false
|
|
63929
|
+
},
|
|
63930
|
+
showsIndicator: {
|
|
63931
|
+
name: "showsIndicator",
|
|
63932
|
+
type: "boolean | undefined",
|
|
63933
|
+
values: [
|
|
63934
|
+
"false",
|
|
63935
|
+
"true"
|
|
63936
|
+
],
|
|
63937
|
+
description: "Whether to show scroll indicators. Defaults to true.",
|
|
63938
|
+
required: false
|
|
63939
|
+
},
|
|
63940
|
+
pagingEnabled: {
|
|
63941
|
+
name: "pagingEnabled",
|
|
63942
|
+
type: "boolean | undefined",
|
|
63943
|
+
values: [
|
|
63944
|
+
"false",
|
|
63945
|
+
"true"
|
|
63946
|
+
],
|
|
63947
|
+
description: "Whether to enable paging behavior",
|
|
63948
|
+
required: false
|
|
63949
|
+
},
|
|
63950
|
+
bounces: {
|
|
63951
|
+
name: "bounces",
|
|
63952
|
+
type: "boolean | undefined",
|
|
63953
|
+
values: [
|
|
63954
|
+
"false",
|
|
63955
|
+
"true"
|
|
63956
|
+
],
|
|
63957
|
+
description: "Whether the scroll view bounces at the edges (iOS). Defaults to true.",
|
|
63958
|
+
required: false
|
|
63959
|
+
},
|
|
63960
|
+
onScroll: {
|
|
63961
|
+
name: "onScroll",
|
|
63962
|
+
type: "((event: ScrollEvent) => void) | undefined",
|
|
63963
|
+
description: "Called continuously as the user scrolls.\nUse `scrollEventThrottle` to control frequency.",
|
|
63964
|
+
required: false
|
|
63965
|
+
},
|
|
63966
|
+
onScrollBegin: {
|
|
63967
|
+
name: "onScrollBegin",
|
|
63968
|
+
type: "((event: ScrollEvent) => void) | undefined",
|
|
63969
|
+
description: "Called when scrolling begins (user starts dragging).",
|
|
63970
|
+
required: false
|
|
63971
|
+
},
|
|
63972
|
+
onScrollEnd: {
|
|
63973
|
+
name: "onScrollEnd",
|
|
63974
|
+
type: "((event: ScrollEvent) => void) | undefined",
|
|
63975
|
+
description: "Called when scrolling ends (momentum settles or user lifts finger).",
|
|
63976
|
+
required: false
|
|
63977
|
+
},
|
|
63978
|
+
onEndReached: {
|
|
63979
|
+
name: "onEndReached",
|
|
63980
|
+
type: "(() => void) | undefined",
|
|
63981
|
+
description: "Called when the scroll position reaches the end of the content.\nUseful for infinite scroll / load-more patterns.",
|
|
63982
|
+
required: false
|
|
63983
|
+
},
|
|
63984
|
+
onEndReachedThreshold: {
|
|
63985
|
+
name: "onEndReachedThreshold",
|
|
63986
|
+
type: "number | undefined",
|
|
63987
|
+
description: "Distance from the end (in pixels) at which onEndReached fires.\nDefaults to 0.",
|
|
63988
|
+
required: false
|
|
63989
|
+
},
|
|
63990
|
+
scrollEventThrottle: {
|
|
63991
|
+
name: "scrollEventThrottle",
|
|
63992
|
+
type: "number | undefined",
|
|
63993
|
+
description: "Throttle interval (ms) for onScroll events on native. Defaults to 16 (~60fps).",
|
|
63994
|
+
required: false
|
|
63995
|
+
},
|
|
63996
|
+
scrollEnabled: {
|
|
63997
|
+
name: "scrollEnabled",
|
|
63998
|
+
type: "boolean | undefined",
|
|
63999
|
+
values: [
|
|
64000
|
+
"false",
|
|
64001
|
+
"true"
|
|
64002
|
+
],
|
|
64003
|
+
description: "Whether scrolling is enabled. Defaults to true.",
|
|
64004
|
+
required: false
|
|
64005
|
+
},
|
|
64006
|
+
keyboardDismissMode: {
|
|
64007
|
+
name: "keyboardDismissMode",
|
|
64008
|
+
type: '"none" | "on-drag" | "interactive" | undefined',
|
|
64009
|
+
values: [
|
|
64010
|
+
"none",
|
|
64011
|
+
"on-drag",
|
|
64012
|
+
"interactive"
|
|
64013
|
+
],
|
|
64014
|
+
description: "Whether the keyboard should dismiss on drag.",
|
|
64015
|
+
required: false
|
|
64016
|
+
},
|
|
64017
|
+
id: {
|
|
64018
|
+
name: "id",
|
|
64019
|
+
type: "string | undefined",
|
|
64020
|
+
description: "Unique identifier for the element (maps to id on web, nativeID on native)",
|
|
64021
|
+
required: false
|
|
64022
|
+
},
|
|
64023
|
+
gap: {
|
|
64024
|
+
name: "gap",
|
|
64025
|
+
type: "any",
|
|
64026
|
+
description: "Gap between children (uses theme.sizes.view[size].spacing)",
|
|
64027
|
+
required: false
|
|
64028
|
+
},
|
|
64029
|
+
spacing: {
|
|
64030
|
+
name: "spacing",
|
|
64031
|
+
type: "any",
|
|
64032
|
+
description: "Alias for gap - spacing between children",
|
|
64033
|
+
required: false
|
|
64034
|
+
},
|
|
64035
|
+
padding: {
|
|
64036
|
+
name: "padding",
|
|
64037
|
+
type: "any",
|
|
64038
|
+
description: "Padding on all sides (uses theme.sizes.view[size].padding)",
|
|
64039
|
+
required: false
|
|
64040
|
+
},
|
|
64041
|
+
paddingVertical: {
|
|
64042
|
+
name: "paddingVertical",
|
|
64043
|
+
type: "any",
|
|
64044
|
+
description: "Vertical padding (top + bottom)",
|
|
64045
|
+
required: false
|
|
64046
|
+
},
|
|
64047
|
+
paddingHorizontal: {
|
|
64048
|
+
name: "paddingHorizontal",
|
|
64049
|
+
type: "any",
|
|
64050
|
+
description: "Horizontal padding (left + right)",
|
|
64051
|
+
required: false
|
|
64052
|
+
},
|
|
64053
|
+
margin: {
|
|
64054
|
+
name: "margin",
|
|
64055
|
+
type: "any",
|
|
64056
|
+
description: "Margin on all sides (uses theme.sizes.view[size].spacing)",
|
|
64057
|
+
required: false
|
|
64058
|
+
},
|
|
64059
|
+
marginVertical: {
|
|
64060
|
+
name: "marginVertical",
|
|
64061
|
+
type: "any",
|
|
64062
|
+
description: "Vertical margin (top + bottom)",
|
|
64063
|
+
required: false
|
|
64064
|
+
},
|
|
64065
|
+
marginHorizontal: {
|
|
64066
|
+
name: "marginHorizontal",
|
|
64067
|
+
type: "any",
|
|
64068
|
+
description: "Horizontal margin (left + right)",
|
|
64069
|
+
required: false
|
|
64070
|
+
}
|
|
64071
|
+
},
|
|
64072
|
+
category: "display",
|
|
64073
|
+
filePath: "../components/src/ScrollView",
|
|
64074
|
+
sampleProps: {
|
|
64075
|
+
children: "'Scrollable content'"
|
|
64076
|
+
}
|
|
64077
|
+
},
|
|
63417
64078
|
Select: {
|
|
63418
64079
|
name: "Select",
|
|
63419
64080
|
description: "Dropdown selection component for choosing from a list of options.\nSupports searchable filtering on web and native presentation modes on iOS.",
|
|
@@ -64364,6 +65025,16 @@ var types_default = {
|
|
|
64364
65025
|
],
|
|
64365
65026
|
required: false
|
|
64366
65027
|
},
|
|
65028
|
+
fill: {
|
|
65029
|
+
name: "fill",
|
|
65030
|
+
type: "boolean | undefined",
|
|
65031
|
+
values: [
|
|
65032
|
+
"false",
|
|
65033
|
+
"true"
|
|
65034
|
+
],
|
|
65035
|
+
description: "When true, the textarea expands to fill available vertical space using flex.\nOverrides `rows` and `autoGrow` height logic. All container layers get `flex: 1`.",
|
|
65036
|
+
required: false
|
|
65037
|
+
},
|
|
64367
65038
|
maxLength: {
|
|
64368
65039
|
name: "maxLength",
|
|
64369
65040
|
type: "number | undefined",
|
|
@@ -64961,7 +65632,6 @@ var types_default = {
|
|
|
64961
65632
|
"false",
|
|
64962
65633
|
"true"
|
|
64963
65634
|
],
|
|
64964
|
-
description: "Enable scrollable content.\n- Native: Wraps children in a ScrollView\n- Web: Renders a wrapper + content structure where the wrapper fills available\n space (or uses explicit dimensions) and content is absolutely positioned with\n overflow:auto. Sizing/margin styles go to wrapper, visual styles to content.",
|
|
64965
65635
|
required: false
|
|
64966
65636
|
},
|
|
64967
65637
|
id: {
|
|
@@ -65668,7 +66338,12 @@ function postProcessComponentTypes(componentName, result) {
|
|
|
65668
66338
|
}
|
|
65669
66339
|
if (componentName.toLowerCase() === "view") {
|
|
65670
66340
|
if (typeof result === "object" && result !== null) {
|
|
65671
|
-
result.usageNote = "View spacing shorthand props: padding, paddingVertical, paddingHorizontal, margin, marginVertical, marginHorizontal, gap/spacing. These accept Size values (xs, sm, md, lg, xl). Do NOT use paddingTop, paddingBottom, paddingLeft, paddingRight, marginTop, marginBottom, marginLeft, marginRight as shorthand props \u2014 they do NOT exist and will cause TS2353. For single-side spacing use style={{ paddingTop: 16 }}. View does NOT have a `pointerEvents` JSX prop. Use style={{ pointerEvents: 'none' }} instead.";
|
|
66341
|
+
result.usageNote = "View spacing shorthand props: padding, paddingVertical, paddingHorizontal, margin, marginVertical, marginHorizontal, gap/spacing. These accept Size values (xs, sm, md, lg, xl). Do NOT use paddingTop, paddingBottom, paddingLeft, paddingRight, marginTop, marginBottom, marginLeft, marginRight as shorthand props \u2014 they do NOT exist and will cause TS2353. For single-side spacing use style={{ paddingTop: 16 }}. View does NOT have a `pointerEvents` JSX prop. Use style={{ pointerEvents: 'none' }} instead. **For scrollable content, use `<ScrollView>` from @idealyst/components** (NOT `<View scrollable>` which is deprecated). ScrollView supports direction ('vertical'|'horizontal'|'both'), scroll callbacks (onScroll, onEndReached), and imperative controls via ref (scrollTo, scrollToEnd, scrollToStart).";
|
|
66342
|
+
}
|
|
66343
|
+
}
|
|
66344
|
+
if (componentName.toLowerCase() === "scrollview") {
|
|
66345
|
+
if (typeof result === "object" && result !== null) {
|
|
66346
|
+
result.usageNote = "ScrollView is the replacement for the deprecated `<View scrollable>` pattern. Import from @idealyst/components: `import { ScrollView } from '@idealyst/components'`. Key props: direction ('vertical'|'horizontal'|'both'), onScroll, onScrollBegin, onScrollEnd, onEndReached (infinite scroll), showsIndicator, pagingEnabled, bounces, scrollEnabled, keyboardDismissMode. Accepts same spacing shorthand props as View: padding, paddingVertical, paddingHorizontal, gap, margin, etc. Imperative ref (ScrollViewRef): scrollTo({x,y,animated}), scrollToEnd(), scrollToStart(), getScrollPosition(). Use `contentContainerStyle` for inner content styling (e.g., gap between items). ScrollView needs bounded parent height \u2014 wrap in a flex:1 container or give explicit height. Example: `<ScrollView padding=\"md\" gap=\"sm\" onEndReached={loadMore}>{items.map(...)}</ScrollView>`";
|
|
65672
66347
|
}
|
|
65673
66348
|
}
|
|
65674
66349
|
if (componentName.toLowerCase() === "textarea") {
|
|
@@ -65676,6 +66351,11 @@ function postProcessComponentTypes(componentName, result) {
|
|
|
65676
66351
|
result.usageNote = "TextArea has a DIFFERENT API from TextInput. TextArea uses onChange (not onChangeText) and does NOT have onBlur. TextArea DOES support label, error, and rows props (TextInput does NOT support label/error). TextArea supports `fill` prop: when true, all container layers get flex: 1 so the textarea expands to fill available vertical space (useful inside Dialog with avoidKeyboard). Always call get_component_types('TextArea') separately \u2014 do NOT assume it shares TextInput's props.";
|
|
65677
66352
|
}
|
|
65678
66353
|
}
|
|
66354
|
+
if (componentName.toLowerCase() === "table") {
|
|
66355
|
+
if (typeof result === "object" && result !== null) {
|
|
66356
|
+
result.usageNote = "Table column `title` accepts ReactNode \u2014 you can render icons, styled text, or any element as the column header. Table column `footer` accepts `ReactNode | ((data: T[]) => ReactNode)`. Use static ReactNode for labels (e.g., 'Total'), or a callback function for computed values (e.g., `(data) => '$' + data.reduce((sum, r) => sum + r.price, 0).toFixed(2)`). The footer row only renders when at least one column has a `footer` defined \u2014 columns without `footer` render empty cells. Table does NOT have compound components \u2014 no Table.Header, Table.Body, Table.Footer. Use the `columns` prop with `title` and `footer` fields.";
|
|
66357
|
+
}
|
|
66358
|
+
}
|
|
65679
66359
|
if (componentName.toLowerCase() === "image") {
|
|
65680
66360
|
if (typeof result === "object" && result !== null) {
|
|
65681
66361
|
result.usageNote = "Image uses `objectFit` (CSS convention) \u2014 NOT `resizeMode` (React Native convention). Valid objectFit values: 'contain', 'cover', 'fill', 'none', 'scale-down'. Image uses `source` prop (accepts URL string or ImageSourcePropType) \u2014 NOT `src`. Example: <Image source=\"https://example.com/photo.jpg\" objectFit=\"cover\" width={200} height={200} />";
|
|
@@ -65683,7 +66363,7 @@ function postProcessComponentTypes(componentName, result) {
|
|
|
65683
66363
|
}
|
|
65684
66364
|
if (componentName.toLowerCase() === "icon") {
|
|
65685
66365
|
if (typeof result === "object" && result !== null) {
|
|
65686
|
-
result.usageNote = "Icon color props: Use `intent` for semantic coloring (primary, danger, success, etc.) \u2014 renders the icon in the intent's primary color. Use `textColor` for text-semantic coloring (primary, secondary, tertiary, inverse) \u2014 renders the icon using theme.colors.text[textColor]. Use `color` for
|
|
66366
|
+
result.usageNote = "Icon color props: Use `intent` for semantic coloring (primary, danger, success, etc.) \u2014 renders the icon in the intent's primary color. Use `textColor` for text-semantic coloring (primary, secondary, tertiary, inverse) \u2014 renders the icon using theme.colors.text[textColor]. Use `color` for palette colors (e.g., 'primary', 'blue.500'). **CRITICAL: `color` and `textColor` are MUTUALLY EXCLUSIVE (discriminated union).** NEVER pass both \u2014 even conditionally with undefined values. Use one or the other. WRONG: `<Icon name='x' color={cond ? 'primary' : undefined} textColor={cond ? undefined : 'secondary'} />` \u2014 causes TS2322. RIGHT: `<Icon name='x' color={isActive ? 'primary' : 'neutral.400'} />` or use separate JSX branches.";
|
|
65687
66367
|
}
|
|
65688
66368
|
}
|
|
65689
66369
|
if (componentName.toLowerCase() === "badge") {
|
|
@@ -66541,4 +67221,4 @@ export {
|
|
|
66541
67221
|
toolHandlers,
|
|
66542
67222
|
callTool
|
|
66543
67223
|
};
|
|
66544
|
-
//# sourceMappingURL=chunk-
|
|
67224
|
+
//# sourceMappingURL=chunk-PLKNERFG.js.map
|