@idealyst/mcp-server 1.2.122 → 1.2.124
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-EALTHXKT.js} +691 -20
- package/dist/chunk-EALTHXKT.js.map +1 -0
- package/dist/index.cjs +693 -20
- 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 +690 -19
- package/dist/tools/index.cjs.map +1 -1
- package/dist/tools/index.js +1 -1
- package/package.json +5 -5
- package/dist/chunk-RVMPULO4.js.map +0 -1
package/dist/tools/index.cjs
CHANGED
|
@@ -1118,6 +1118,26 @@ var componentMetadata = {
|
|
|
1118
1118
|
"Configure safe areas appropriately"
|
|
1119
1119
|
]
|
|
1120
1120
|
},
|
|
1121
|
+
ScrollView: {
|
|
1122
|
+
category: "layout",
|
|
1123
|
+
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.",
|
|
1124
|
+
features: [
|
|
1125
|
+
"direction prop: 'vertical' (default) | 'horizontal' | 'both'",
|
|
1126
|
+
"Scroll callbacks: onScroll, onScrollBegin, onScrollEnd, onEndReached (for infinite scroll)",
|
|
1127
|
+
"Imperative ref: scrollTo, scrollToEnd, scrollToStart, getScrollPosition",
|
|
1128
|
+
"Same spacing shorthand props as View: padding, paddingVertical, paddingHorizontal, gap, margin, etc.",
|
|
1129
|
+
"Background, radius, and border variants (same as View)",
|
|
1130
|
+
"showsIndicator, pagingEnabled, bounces, scrollEnabled, keyboardDismissMode props",
|
|
1131
|
+
"contentContainerStyle for styling the inner content wrapper"
|
|
1132
|
+
],
|
|
1133
|
+
bestPractices: [
|
|
1134
|
+
"Use ScrollView for scrollable content instead of <View scrollable> (deprecated)",
|
|
1135
|
+
"Use onEndReached + onEndReachedThreshold for infinite scroll / load-more patterns",
|
|
1136
|
+
'Use direction="horizontal" for horizontal carousels or galleries',
|
|
1137
|
+
"Use ref with scrollTo/scrollToEnd for programmatic scroll control",
|
|
1138
|
+
"Wrap in a flex:1 container or give explicit height \u2014 ScrollView needs bounded parent height"
|
|
1139
|
+
]
|
|
1140
|
+
},
|
|
1121
1141
|
Select: {
|
|
1122
1142
|
category: "form",
|
|
1123
1143
|
description: "Dropdown selection component for choosing from a list of options",
|
|
@@ -1357,7 +1377,10 @@ var componentAliases = {
|
|
|
1357
1377
|
photo: "Image",
|
|
1358
1378
|
picture: "Image",
|
|
1359
1379
|
img: "Image",
|
|
1360
|
-
thumbnail: "Image"
|
|
1380
|
+
thumbnail: "Image",
|
|
1381
|
+
scroll: "ScrollView",
|
|
1382
|
+
scrollview: "ScrollView",
|
|
1383
|
+
scrollable: "ScrollView"
|
|
1361
1384
|
};
|
|
1362
1385
|
function findComponentName(componentName) {
|
|
1363
1386
|
if (componentMetadata[componentName]) {
|
|
@@ -12968,14 +12991,16 @@ import { Outlet, useNavigator } from '@idealyst/navigation';
|
|
|
12968
12991
|
import type { StackLayoutProps } from '@idealyst/navigation';
|
|
12969
12992
|
import { View, Text, Pressable, Icon, Divider } from '@idealyst/components';
|
|
12970
12993
|
import type { IconName } from '@idealyst/components';
|
|
12994
|
+
import { useTheme } from '@idealyst/theme';
|
|
12971
12995
|
|
|
12972
12996
|
export function AppLayout({ routes, currentPath, options }: StackLayoutProps) {
|
|
12973
12997
|
const { navigate } = useNavigator();
|
|
12998
|
+
const theme = useTheme();
|
|
12974
12999
|
|
|
12975
13000
|
return (
|
|
12976
13001
|
<View style={{ flex: 1, flexDirection: 'row' }}>
|
|
12977
13002
|
{/* Sidebar */}
|
|
12978
|
-
<View style={{ width: 260, borderRightWidth: 1, borderRightColor:
|
|
13003
|
+
<View style={{ width: 260, borderRightWidth: 1, borderRightColor: theme.colors.border.primary, backgroundColor: theme.colors.surface.secondary }}>
|
|
12979
13004
|
{/* Logo / App name */}
|
|
12980
13005
|
<View style={{ height: 56, justifyContent: 'center', paddingHorizontal: 16 }}>
|
|
12981
13006
|
<Text typography="h6" weight="bold">{options?.headerTitle || 'My App'}</Text>
|
|
@@ -13000,18 +13025,20 @@ export function AppLayout({ routes, currentPath, options }: StackLayoutProps) {
|
|
|
13000
13025
|
paddingVertical: 10,
|
|
13001
13026
|
paddingHorizontal: 12,
|
|
13002
13027
|
borderRadius: 8,
|
|
13003
|
-
backgroundColor: isActive ?
|
|
13028
|
+
backgroundColor: isActive ? theme.intents.primary.light : 'transparent',
|
|
13004
13029
|
}}
|
|
13005
13030
|
>
|
|
13031
|
+
{/* Icon uses EITHER color OR textColor \u2014 never both */}
|
|
13006
13032
|
<Icon
|
|
13007
13033
|
name={(route.options?.icon as IconName) || 'circle-outline'}
|
|
13008
13034
|
size="sm"
|
|
13009
|
-
color={isActive ? '
|
|
13035
|
+
color={isActive ? 'primary' : undefined}
|
|
13010
13036
|
/>
|
|
13011
13037
|
<Text
|
|
13012
13038
|
typography="body2"
|
|
13013
|
-
weight={isActive ? 'semibold' : '
|
|
13014
|
-
|
|
13039
|
+
weight={isActive ? 'semibold' : 'normal'}
|
|
13040
|
+
color={isActive ? undefined : 'secondary'}
|
|
13041
|
+
style={isActive ? { color: theme.intents.primary.primary } : undefined}
|
|
13015
13042
|
>
|
|
13016
13043
|
{route.options?.title || route.path}
|
|
13017
13044
|
</Text>
|
|
@@ -13169,7 +13196,7 @@ export function TabLayout({ routes, currentPath }: TabLayoutProps) {
|
|
|
13169
13196
|
{opts?.tabBarLabel && (
|
|
13170
13197
|
<Text
|
|
13171
13198
|
typography="body2"
|
|
13172
|
-
weight={isActive ? 'semibold' : '
|
|
13199
|
+
weight={isActive ? 'semibold' : 'normal'}
|
|
13173
13200
|
style={{ color: isActive ? '#007AFF' : '#8E8E93' }}
|
|
13174
13201
|
>
|
|
13175
13202
|
{opts.tabBarLabel}
|
|
@@ -13384,7 +13411,7 @@ export function DashboardLayout({ routes, currentPath, options }: StackLayoutPro
|
|
|
13384
13411
|
{!collapsed && (
|
|
13385
13412
|
<Text
|
|
13386
13413
|
typography="body2"
|
|
13387
|
-
weight={isActive ? 'semibold' : '
|
|
13414
|
+
weight={isActive ? 'semibold' : 'normal'}
|
|
13388
13415
|
style={{ color: isActive ? '#007AFF' : '#333' }}
|
|
13389
13416
|
>
|
|
13390
13417
|
{route.options?.title || route.path}
|
|
@@ -16288,7 +16315,7 @@ These are mistakes agents make repeatedly. Each one causes TypeScript compilatio
|
|
|
16288
16315
|
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"\`.
|
|
16289
16316
|
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.
|
|
16290
16317
|
3. **Button/IconButton** \`type\` is \`'contained' | 'outlined' | 'text'\` \u2014 NOT \`'ghost'\`, \`'solid'\`, \`'default'\`. Button has \`leftIcon\` and \`rightIcon\` \u2014 NOT \`icon\`.
|
|
16291
|
-
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
|
|
16318
|
+
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).
|
|
16292
16319
|
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.
|
|
16293
16320
|
6. **Avatar** uses \`src\` for image URL, \`fallback\` for initials \u2014 NOT \`name\`, \`initials\`, \`label\`. Shape: \`'circle' | 'square'\`.
|
|
16294
16321
|
7. **Link** requires a \`to\` prop (path string) \u2014 it's a navigation link, NOT pressable text.
|
|
@@ -16297,6 +16324,7 @@ These are mistakes agents make repeatedly. Each one causes TypeScript compilatio
|
|
|
16297
16324
|
10. The component is **TextInput**, NOT \`Input\`.
|
|
16298
16325
|
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"\`.
|
|
16299
16326
|
12. **Switch** uses \`checked\` and \`onChange\` \u2014 NOT \`value\` and \`onValueChange\` (React Native convention). Also has \`label\`, \`labelPosition\`, \`disabled\`.
|
|
16327
|
+
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.
|
|
16300
16328
|
|
|
16301
16329
|
### Navigation
|
|
16302
16330
|
11. **NavigatorProvider** takes a \`route\` prop (SINGULAR) \u2014 NOT \`routes\`: \`<NavigatorProvider route={routeConfig} />\`. There is NO \`Router\` export.
|
|
@@ -16306,7 +16334,7 @@ These are mistakes agents make repeatedly. Each one causes TypeScript compilatio
|
|
|
16306
16334
|
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;\`.
|
|
16307
16335
|
|
|
16308
16336
|
### Imports & Styling
|
|
16309
|
-
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\`).
|
|
16337
|
+
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.).
|
|
16310
16338
|
17. **Never** import from \`react-native-unistyles\` \u2014 use \`@idealyst/theme\` (\`configureThemes\`, \`ThemeSettings\`, \`useTheme\`).
|
|
16311
16339
|
18. **useTheme()** returns the Theme object **directly** (NOT wrapped): \`const theme = useTheme();\`. Do NOT destructure: \`const { theme } = useTheme()\` \u2014 causes TS2339.
|
|
16312
16340
|
19. **Spacing & Layout**: Use component shorthand props for spacing \u2014 NOT \`theme.spacing\` (which does NOT exist). The correct patterns:
|
|
@@ -23829,7 +23857,7 @@ var import_url = require("url");
|
|
|
23829
23857
|
// src/generated/types.json
|
|
23830
23858
|
var types_default = {
|
|
23831
23859
|
version: "1.0.93",
|
|
23832
|
-
extractedAt: "2026-
|
|
23860
|
+
extractedAt: "2026-03-11T20:52:45.143Z",
|
|
23833
23861
|
components: {
|
|
23834
23862
|
Accordion: {
|
|
23835
23863
|
name: "Accordion",
|
|
@@ -28100,6 +28128,12 @@ var types_default = {
|
|
|
28100
28128
|
required: false,
|
|
28101
28129
|
description: "Whether to avoid the keyboard on native platforms (iOS/Android).\nWhen enabled, content will shift up when the keyboard appears."
|
|
28102
28130
|
},
|
|
28131
|
+
{
|
|
28132
|
+
name: "keyboardAvoidingOffset",
|
|
28133
|
+
type: "number | undefined",
|
|
28134
|
+
required: false,
|
|
28135
|
+
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."
|
|
28136
|
+
},
|
|
28103
28137
|
{
|
|
28104
28138
|
name: "onLayout",
|
|
28105
28139
|
type: '((event: import("/home/nicho/Development/idealyst-framework/packages/components/src/hooks/useWebLayout/types").LayoutChangeEvent) => void) | undefined',
|
|
@@ -28107,7 +28141,7 @@ var types_default = {
|
|
|
28107
28141
|
description: "Called when the layout of the screen changes.\nProvides the new width, height, x, and y coordinates."
|
|
28108
28142
|
}
|
|
28109
28143
|
],
|
|
28110
|
-
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}",
|
|
28144
|
+
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}",
|
|
28111
28145
|
relatedTypes: {},
|
|
28112
28146
|
registry: {
|
|
28113
28147
|
name: "Screen",
|
|
@@ -28196,6 +28230,13 @@ var types_default = {
|
|
|
28196
28230
|
description: "Whether to avoid the keyboard on native platforms (iOS/Android).\nWhen enabled, content will shift up when the keyboard appears.",
|
|
28197
28231
|
required: false
|
|
28198
28232
|
},
|
|
28233
|
+
keyboardAvoidingOffset: {
|
|
28234
|
+
name: "keyboardAvoidingOffset",
|
|
28235
|
+
type: "number | undefined",
|
|
28236
|
+
default: 0,
|
|
28237
|
+
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.",
|
|
28238
|
+
required: false
|
|
28239
|
+
},
|
|
28199
28240
|
id: {
|
|
28200
28241
|
name: "id",
|
|
28201
28242
|
type: "string | undefined",
|
|
@@ -28258,6 +28299,384 @@ var types_default = {
|
|
|
28258
28299
|
}
|
|
28259
28300
|
}
|
|
28260
28301
|
},
|
|
28302
|
+
ScrollView: {
|
|
28303
|
+
name: "ScrollView",
|
|
28304
|
+
propsInterface: "ScrollViewProps",
|
|
28305
|
+
props: [
|
|
28306
|
+
{
|
|
28307
|
+
name: "children",
|
|
28308
|
+
type: "React.ReactNode",
|
|
28309
|
+
required: false
|
|
28310
|
+
},
|
|
28311
|
+
{
|
|
28312
|
+
name: "direction",
|
|
28313
|
+
type: 'import("/home/nicho/Development/idealyst-framework/packages/components/src/ScrollView/types").ScrollViewDirection | undefined',
|
|
28314
|
+
required: false,
|
|
28315
|
+
description: "Scroll direction. Defaults to 'vertical'."
|
|
28316
|
+
},
|
|
28317
|
+
{
|
|
28318
|
+
name: "background",
|
|
28319
|
+
type: "string | undefined",
|
|
28320
|
+
required: false,
|
|
28321
|
+
description: "Background variant"
|
|
28322
|
+
},
|
|
28323
|
+
{
|
|
28324
|
+
name: "radius",
|
|
28325
|
+
type: "string | undefined",
|
|
28326
|
+
required: false,
|
|
28327
|
+
description: "Border radius variant"
|
|
28328
|
+
},
|
|
28329
|
+
{
|
|
28330
|
+
name: "border",
|
|
28331
|
+
type: 'import("/home/nicho/Development/idealyst-framework/packages/components/src/ScrollView/types").ScrollViewBorderVariant | undefined',
|
|
28332
|
+
required: false,
|
|
28333
|
+
description: "Border variant"
|
|
28334
|
+
},
|
|
28335
|
+
{
|
|
28336
|
+
name: "backgroundColor",
|
|
28337
|
+
type: "string | undefined",
|
|
28338
|
+
required: false,
|
|
28339
|
+
description: "Custom background color (overrides background variant)"
|
|
28340
|
+
},
|
|
28341
|
+
{
|
|
28342
|
+
name: "borderRadius",
|
|
28343
|
+
type: "number | undefined",
|
|
28344
|
+
required: false,
|
|
28345
|
+
description: "Custom border radius (overrides radius variant)"
|
|
28346
|
+
},
|
|
28347
|
+
{
|
|
28348
|
+
name: "borderWidth",
|
|
28349
|
+
type: "number | undefined",
|
|
28350
|
+
required: false,
|
|
28351
|
+
description: "Custom border width (overrides border variant)"
|
|
28352
|
+
},
|
|
28353
|
+
{
|
|
28354
|
+
name: "borderColor",
|
|
28355
|
+
type: "string | undefined",
|
|
28356
|
+
required: false,
|
|
28357
|
+
description: "Custom border color"
|
|
28358
|
+
},
|
|
28359
|
+
{
|
|
28360
|
+
name: "style",
|
|
28361
|
+
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>',
|
|
28362
|
+
required: false,
|
|
28363
|
+
description: "Additional styles"
|
|
28364
|
+
},
|
|
28365
|
+
{
|
|
28366
|
+
name: "contentContainerStyle",
|
|
28367
|
+
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>',
|
|
28368
|
+
required: false,
|
|
28369
|
+
description: "Styles applied to the content container"
|
|
28370
|
+
},
|
|
28371
|
+
{
|
|
28372
|
+
name: "showsIndicator",
|
|
28373
|
+
type: "boolean | undefined",
|
|
28374
|
+
required: false,
|
|
28375
|
+
description: "Whether to show scroll indicators. Defaults to true."
|
|
28376
|
+
},
|
|
28377
|
+
{
|
|
28378
|
+
name: "pagingEnabled",
|
|
28379
|
+
type: "boolean | undefined",
|
|
28380
|
+
required: false,
|
|
28381
|
+
description: "Whether to enable paging behavior"
|
|
28382
|
+
},
|
|
28383
|
+
{
|
|
28384
|
+
name: "bounces",
|
|
28385
|
+
type: "boolean | undefined",
|
|
28386
|
+
required: false,
|
|
28387
|
+
description: "Whether the scroll view bounces at the edges (iOS). Defaults to true."
|
|
28388
|
+
},
|
|
28389
|
+
{
|
|
28390
|
+
name: "onScroll",
|
|
28391
|
+
type: '((event: import("/home/nicho/Development/idealyst-framework/packages/components/src/ScrollView/types").ScrollEvent) => void) | undefined',
|
|
28392
|
+
required: false,
|
|
28393
|
+
description: "Called continuously as the user scrolls.\nUse `scrollEventThrottle` to control frequency."
|
|
28394
|
+
},
|
|
28395
|
+
{
|
|
28396
|
+
name: "onScrollBegin",
|
|
28397
|
+
type: '((event: import("/home/nicho/Development/idealyst-framework/packages/components/src/ScrollView/types").ScrollEvent) => void) | undefined',
|
|
28398
|
+
required: false,
|
|
28399
|
+
description: "Called when scrolling begins (user starts dragging)."
|
|
28400
|
+
},
|
|
28401
|
+
{
|
|
28402
|
+
name: "onScrollEnd",
|
|
28403
|
+
type: '((event: import("/home/nicho/Development/idealyst-framework/packages/components/src/ScrollView/types").ScrollEvent) => void) | undefined',
|
|
28404
|
+
required: false,
|
|
28405
|
+
description: "Called when scrolling ends (momentum settles or user lifts finger)."
|
|
28406
|
+
},
|
|
28407
|
+
{
|
|
28408
|
+
name: "onEndReached",
|
|
28409
|
+
type: "(() => void) | undefined",
|
|
28410
|
+
required: false,
|
|
28411
|
+
description: "Called when the scroll position reaches the end of the content.\nUseful for infinite scroll / load-more patterns."
|
|
28412
|
+
},
|
|
28413
|
+
{
|
|
28414
|
+
name: "onEndReachedThreshold",
|
|
28415
|
+
type: "number | undefined",
|
|
28416
|
+
required: false,
|
|
28417
|
+
description: "Distance from the end (in pixels) at which onEndReached fires.\nDefaults to 0."
|
|
28418
|
+
},
|
|
28419
|
+
{
|
|
28420
|
+
name: "scrollEventThrottle",
|
|
28421
|
+
type: "number | undefined",
|
|
28422
|
+
required: false,
|
|
28423
|
+
description: "Throttle interval (ms) for onScroll events on native. Defaults to 16 (~60fps)."
|
|
28424
|
+
},
|
|
28425
|
+
{
|
|
28426
|
+
name: "scrollEnabled",
|
|
28427
|
+
type: "boolean | undefined",
|
|
28428
|
+
required: false,
|
|
28429
|
+
description: "Whether scrolling is enabled. Defaults to true."
|
|
28430
|
+
},
|
|
28431
|
+
{
|
|
28432
|
+
name: "keyboardDismissMode",
|
|
28433
|
+
type: '"none" | "on-drag" | "interactive" | undefined',
|
|
28434
|
+
required: false,
|
|
28435
|
+
description: "Whether the keyboard should dismiss on drag."
|
|
28436
|
+
},
|
|
28437
|
+
{
|
|
28438
|
+
name: "testID",
|
|
28439
|
+
type: "string | undefined",
|
|
28440
|
+
required: false,
|
|
28441
|
+
description: "Test ID for testing"
|
|
28442
|
+
},
|
|
28443
|
+
{
|
|
28444
|
+
name: "onLayout",
|
|
28445
|
+
type: '((event: import("/home/nicho/Development/idealyst-framework/packages/components/src/hooks/useWebLayout/types").LayoutChangeEvent) => void) | undefined',
|
|
28446
|
+
required: false,
|
|
28447
|
+
description: "Callback when layout changes"
|
|
28448
|
+
}
|
|
28449
|
+
],
|
|
28450
|
+
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}",
|
|
28451
|
+
relatedTypes: {
|
|
28452
|
+
ScrollViewBackgroundVariant: "export type ScrollViewBackgroundVariant = Surface | 'transparent';",
|
|
28453
|
+
ScrollViewRadiusVariant: "export type ScrollViewRadiusVariant = Size | 'none';",
|
|
28454
|
+
ScrollViewBorderVariant: "export type ScrollViewBorderVariant = 'none' | 'thin' | 'thick';",
|
|
28455
|
+
ScrollViewDirection: "export type ScrollViewDirection = 'vertical' | 'horizontal' | 'both';",
|
|
28456
|
+
ScrollPosition: "export interface ScrollPosition {\n x: number;\n y: number;\n}",
|
|
28457
|
+
ScrollContentSize: "export interface ScrollContentSize {\n width: number;\n height: number;\n}",
|
|
28458
|
+
ScrollLayoutSize: "export interface ScrollLayoutSize {\n width: number;\n height: number;\n}",
|
|
28459
|
+
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}",
|
|
28460
|
+
ScrollToOptions: "export interface ScrollToOptions {\n x?: number;\n y?: number;\n animated?: boolean;\n}",
|
|
28461
|
+
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}"
|
|
28462
|
+
},
|
|
28463
|
+
registry: {
|
|
28464
|
+
name: "ScrollView",
|
|
28465
|
+
description: "Scrollable container with scroll event abstractions and imperative scroll controls.",
|
|
28466
|
+
props: {
|
|
28467
|
+
direction: {
|
|
28468
|
+
name: "direction",
|
|
28469
|
+
type: "ScrollViewDirection | undefined",
|
|
28470
|
+
values: [
|
|
28471
|
+
"vertical",
|
|
28472
|
+
"horizontal",
|
|
28473
|
+
"both"
|
|
28474
|
+
],
|
|
28475
|
+
description: "Scroll direction. Defaults to 'vertical'.",
|
|
28476
|
+
required: false
|
|
28477
|
+
},
|
|
28478
|
+
background: {
|
|
28479
|
+
name: "background",
|
|
28480
|
+
type: "any",
|
|
28481
|
+
description: "Background variant",
|
|
28482
|
+
required: false
|
|
28483
|
+
},
|
|
28484
|
+
radius: {
|
|
28485
|
+
name: "radius",
|
|
28486
|
+
type: "any",
|
|
28487
|
+
description: "Border radius variant",
|
|
28488
|
+
required: false
|
|
28489
|
+
},
|
|
28490
|
+
border: {
|
|
28491
|
+
name: "border",
|
|
28492
|
+
type: "ScrollViewBorderVariant | undefined",
|
|
28493
|
+
values: [
|
|
28494
|
+
"none",
|
|
28495
|
+
"thin",
|
|
28496
|
+
"thick"
|
|
28497
|
+
],
|
|
28498
|
+
description: "Border variant",
|
|
28499
|
+
required: false
|
|
28500
|
+
},
|
|
28501
|
+
backgroundColor: {
|
|
28502
|
+
name: "backgroundColor",
|
|
28503
|
+
type: "string | undefined",
|
|
28504
|
+
description: "Custom background color (overrides background variant)",
|
|
28505
|
+
required: false
|
|
28506
|
+
},
|
|
28507
|
+
borderRadius: {
|
|
28508
|
+
name: "borderRadius",
|
|
28509
|
+
type: "number | undefined",
|
|
28510
|
+
description: "Custom border radius (overrides radius variant)",
|
|
28511
|
+
required: false
|
|
28512
|
+
},
|
|
28513
|
+
borderWidth: {
|
|
28514
|
+
name: "borderWidth",
|
|
28515
|
+
type: "number | undefined",
|
|
28516
|
+
description: "Custom border width (overrides border variant)",
|
|
28517
|
+
required: false
|
|
28518
|
+
},
|
|
28519
|
+
borderColor: {
|
|
28520
|
+
name: "borderColor",
|
|
28521
|
+
type: "string | undefined",
|
|
28522
|
+
description: "Custom border color",
|
|
28523
|
+
required: false
|
|
28524
|
+
},
|
|
28525
|
+
contentContainerStyle: {
|
|
28526
|
+
name: "contentContainerStyle",
|
|
28527
|
+
type: "any",
|
|
28528
|
+
description: "Styles applied to the content container",
|
|
28529
|
+
required: false
|
|
28530
|
+
},
|
|
28531
|
+
showsIndicator: {
|
|
28532
|
+
name: "showsIndicator",
|
|
28533
|
+
type: "boolean | undefined",
|
|
28534
|
+
values: [
|
|
28535
|
+
"false",
|
|
28536
|
+
"true"
|
|
28537
|
+
],
|
|
28538
|
+
description: "Whether to show scroll indicators. Defaults to true.",
|
|
28539
|
+
required: false
|
|
28540
|
+
},
|
|
28541
|
+
pagingEnabled: {
|
|
28542
|
+
name: "pagingEnabled",
|
|
28543
|
+
type: "boolean | undefined",
|
|
28544
|
+
values: [
|
|
28545
|
+
"false",
|
|
28546
|
+
"true"
|
|
28547
|
+
],
|
|
28548
|
+
description: "Whether to enable paging behavior",
|
|
28549
|
+
required: false
|
|
28550
|
+
},
|
|
28551
|
+
bounces: {
|
|
28552
|
+
name: "bounces",
|
|
28553
|
+
type: "boolean | undefined",
|
|
28554
|
+
values: [
|
|
28555
|
+
"false",
|
|
28556
|
+
"true"
|
|
28557
|
+
],
|
|
28558
|
+
description: "Whether the scroll view bounces at the edges (iOS). Defaults to true.",
|
|
28559
|
+
required: false
|
|
28560
|
+
},
|
|
28561
|
+
onScroll: {
|
|
28562
|
+
name: "onScroll",
|
|
28563
|
+
type: "((event: ScrollEvent) => void) | undefined",
|
|
28564
|
+
description: "Called continuously as the user scrolls.\nUse `scrollEventThrottle` to control frequency.",
|
|
28565
|
+
required: false
|
|
28566
|
+
},
|
|
28567
|
+
onScrollBegin: {
|
|
28568
|
+
name: "onScrollBegin",
|
|
28569
|
+
type: "((event: ScrollEvent) => void) | undefined",
|
|
28570
|
+
description: "Called when scrolling begins (user starts dragging).",
|
|
28571
|
+
required: false
|
|
28572
|
+
},
|
|
28573
|
+
onScrollEnd: {
|
|
28574
|
+
name: "onScrollEnd",
|
|
28575
|
+
type: "((event: ScrollEvent) => void) | undefined",
|
|
28576
|
+
description: "Called when scrolling ends (momentum settles or user lifts finger).",
|
|
28577
|
+
required: false
|
|
28578
|
+
},
|
|
28579
|
+
onEndReached: {
|
|
28580
|
+
name: "onEndReached",
|
|
28581
|
+
type: "(() => void) | undefined",
|
|
28582
|
+
description: "Called when the scroll position reaches the end of the content.\nUseful for infinite scroll / load-more patterns.",
|
|
28583
|
+
required: false
|
|
28584
|
+
},
|
|
28585
|
+
onEndReachedThreshold: {
|
|
28586
|
+
name: "onEndReachedThreshold",
|
|
28587
|
+
type: "number | undefined",
|
|
28588
|
+
description: "Distance from the end (in pixels) at which onEndReached fires.\nDefaults to 0.",
|
|
28589
|
+
required: false
|
|
28590
|
+
},
|
|
28591
|
+
scrollEventThrottle: {
|
|
28592
|
+
name: "scrollEventThrottle",
|
|
28593
|
+
type: "number | undefined",
|
|
28594
|
+
description: "Throttle interval (ms) for onScroll events on native. Defaults to 16 (~60fps).",
|
|
28595
|
+
required: false
|
|
28596
|
+
},
|
|
28597
|
+
scrollEnabled: {
|
|
28598
|
+
name: "scrollEnabled",
|
|
28599
|
+
type: "boolean | undefined",
|
|
28600
|
+
values: [
|
|
28601
|
+
"false",
|
|
28602
|
+
"true"
|
|
28603
|
+
],
|
|
28604
|
+
description: "Whether scrolling is enabled. Defaults to true.",
|
|
28605
|
+
required: false
|
|
28606
|
+
},
|
|
28607
|
+
keyboardDismissMode: {
|
|
28608
|
+
name: "keyboardDismissMode",
|
|
28609
|
+
type: '"none" | "on-drag" | "interactive" | undefined',
|
|
28610
|
+
values: [
|
|
28611
|
+
"none",
|
|
28612
|
+
"on-drag",
|
|
28613
|
+
"interactive"
|
|
28614
|
+
],
|
|
28615
|
+
description: "Whether the keyboard should dismiss on drag.",
|
|
28616
|
+
required: false
|
|
28617
|
+
},
|
|
28618
|
+
id: {
|
|
28619
|
+
name: "id",
|
|
28620
|
+
type: "string | undefined",
|
|
28621
|
+
description: "Unique identifier for the element (maps to id on web, nativeID on native)",
|
|
28622
|
+
required: false
|
|
28623
|
+
},
|
|
28624
|
+
gap: {
|
|
28625
|
+
name: "gap",
|
|
28626
|
+
type: "any",
|
|
28627
|
+
description: "Gap between children (uses theme.sizes.view[size].spacing)",
|
|
28628
|
+
required: false
|
|
28629
|
+
},
|
|
28630
|
+
spacing: {
|
|
28631
|
+
name: "spacing",
|
|
28632
|
+
type: "any",
|
|
28633
|
+
description: "Alias for gap - spacing between children",
|
|
28634
|
+
required: false
|
|
28635
|
+
},
|
|
28636
|
+
padding: {
|
|
28637
|
+
name: "padding",
|
|
28638
|
+
type: "any",
|
|
28639
|
+
description: "Padding on all sides (uses theme.sizes.view[size].padding)",
|
|
28640
|
+
required: false
|
|
28641
|
+
},
|
|
28642
|
+
paddingVertical: {
|
|
28643
|
+
name: "paddingVertical",
|
|
28644
|
+
type: "any",
|
|
28645
|
+
description: "Vertical padding (top + bottom)",
|
|
28646
|
+
required: false
|
|
28647
|
+
},
|
|
28648
|
+
paddingHorizontal: {
|
|
28649
|
+
name: "paddingHorizontal",
|
|
28650
|
+
type: "any",
|
|
28651
|
+
description: "Horizontal padding (left + right)",
|
|
28652
|
+
required: false
|
|
28653
|
+
},
|
|
28654
|
+
margin: {
|
|
28655
|
+
name: "margin",
|
|
28656
|
+
type: "any",
|
|
28657
|
+
description: "Margin on all sides (uses theme.sizes.view[size].spacing)",
|
|
28658
|
+
required: false
|
|
28659
|
+
},
|
|
28660
|
+
marginVertical: {
|
|
28661
|
+
name: "marginVertical",
|
|
28662
|
+
type: "any",
|
|
28663
|
+
description: "Vertical margin (top + bottom)",
|
|
28664
|
+
required: false
|
|
28665
|
+
},
|
|
28666
|
+
marginHorizontal: {
|
|
28667
|
+
name: "marginHorizontal",
|
|
28668
|
+
type: "any",
|
|
28669
|
+
description: "Horizontal margin (left + right)",
|
|
28670
|
+
required: false
|
|
28671
|
+
}
|
|
28672
|
+
},
|
|
28673
|
+
category: "display",
|
|
28674
|
+
filePath: "../components/src/ScrollView",
|
|
28675
|
+
sampleProps: {
|
|
28676
|
+
children: "'Scrollable content'"
|
|
28677
|
+
}
|
|
28678
|
+
}
|
|
28679
|
+
},
|
|
28261
28680
|
Select: {
|
|
28262
28681
|
name: "Select",
|
|
28263
28682
|
propsInterface: "SelectProps",
|
|
@@ -29766,6 +30185,12 @@ var types_default = {
|
|
|
29766
30185
|
type: "boolean | undefined",
|
|
29767
30186
|
required: false
|
|
29768
30187
|
},
|
|
30188
|
+
{
|
|
30189
|
+
name: "fill",
|
|
30190
|
+
type: "boolean | undefined",
|
|
30191
|
+
required: false,
|
|
30192
|
+
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`."
|
|
30193
|
+
},
|
|
29769
30194
|
{
|
|
29770
30195
|
name: "maxLength",
|
|
29771
30196
|
type: "number | undefined",
|
|
@@ -29828,7 +30253,7 @@ var types_default = {
|
|
|
29828
30253
|
required: false
|
|
29829
30254
|
}
|
|
29830
30255
|
],
|
|
29831
|
-
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}",
|
|
30256
|
+
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}",
|
|
29832
30257
|
relatedTypes: {
|
|
29833
30258
|
TextAreaIntentVariant: "export type TextAreaIntentVariant = Intent;",
|
|
29834
30259
|
TextAreaSizeVariant: "export type TextAreaSizeVariant = Size;",
|
|
@@ -29898,6 +30323,16 @@ var types_default = {
|
|
|
29898
30323
|
],
|
|
29899
30324
|
required: false
|
|
29900
30325
|
},
|
|
30326
|
+
fill: {
|
|
30327
|
+
name: "fill",
|
|
30328
|
+
type: "boolean | undefined",
|
|
30329
|
+
values: [
|
|
30330
|
+
"false",
|
|
30331
|
+
"true"
|
|
30332
|
+
],
|
|
30333
|
+
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`.",
|
|
30334
|
+
required: false
|
|
30335
|
+
},
|
|
29901
30336
|
maxLength: {
|
|
29902
30337
|
name: "maxLength",
|
|
29903
30338
|
type: "number | undefined",
|
|
@@ -30972,7 +31407,7 @@ var types_default = {
|
|
|
30972
31407
|
name: "scrollable",
|
|
30973
31408
|
type: "boolean | undefined",
|
|
30974
31409
|
required: false,
|
|
30975
|
-
description: "
|
|
31410
|
+
description: ""
|
|
30976
31411
|
},
|
|
30977
31412
|
{
|
|
30978
31413
|
name: "testID",
|
|
@@ -30987,7 +31422,7 @@ var types_default = {
|
|
|
30987
31422
|
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."
|
|
30988
31423
|
}
|
|
30989
31424
|
],
|
|
30990
|
-
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}",
|
|
31425
|
+
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}",
|
|
30991
31426
|
relatedTypes: {
|
|
30992
31427
|
ViewStyleProp: "export type ViewStyleProp = StyleProp<ViewStyle> | ResponsiveStyle | React.CSSProperties;",
|
|
30993
31428
|
ViewBackgroundVariant: "export type ViewBackgroundVariant = Surface | 'transparent';",
|
|
@@ -31052,7 +31487,6 @@ var types_default = {
|
|
|
31052
31487
|
"false",
|
|
31053
31488
|
"true"
|
|
31054
31489
|
],
|
|
31055
|
-
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.",
|
|
31056
31490
|
required: false
|
|
31057
31491
|
},
|
|
31058
31492
|
id: {
|
|
@@ -63463,6 +63897,13 @@ var types_default = {
|
|
|
63463
63897
|
description: "Whether to avoid the keyboard on native platforms (iOS/Android).\nWhen enabled, content will shift up when the keyboard appears.",
|
|
63464
63898
|
required: false
|
|
63465
63899
|
},
|
|
63900
|
+
keyboardAvoidingOffset: {
|
|
63901
|
+
name: "keyboardAvoidingOffset",
|
|
63902
|
+
type: "number | undefined",
|
|
63903
|
+
default: 0,
|
|
63904
|
+
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.",
|
|
63905
|
+
required: false
|
|
63906
|
+
},
|
|
63466
63907
|
id: {
|
|
63467
63908
|
name: "id",
|
|
63468
63909
|
type: "string | undefined",
|
|
@@ -63524,6 +63965,222 @@ var types_default = {
|
|
|
63524
63965
|
children: "'Screen content'"
|
|
63525
63966
|
}
|
|
63526
63967
|
},
|
|
63968
|
+
ScrollView: {
|
|
63969
|
+
name: "ScrollView",
|
|
63970
|
+
description: "Scrollable container with scroll event abstractions and imperative scroll controls.",
|
|
63971
|
+
props: {
|
|
63972
|
+
direction: {
|
|
63973
|
+
name: "direction",
|
|
63974
|
+
type: "ScrollViewDirection | undefined",
|
|
63975
|
+
values: [
|
|
63976
|
+
"vertical",
|
|
63977
|
+
"horizontal",
|
|
63978
|
+
"both"
|
|
63979
|
+
],
|
|
63980
|
+
description: "Scroll direction. Defaults to 'vertical'.",
|
|
63981
|
+
required: false
|
|
63982
|
+
},
|
|
63983
|
+
background: {
|
|
63984
|
+
name: "background",
|
|
63985
|
+
type: "any",
|
|
63986
|
+
description: "Background variant",
|
|
63987
|
+
required: false
|
|
63988
|
+
},
|
|
63989
|
+
radius: {
|
|
63990
|
+
name: "radius",
|
|
63991
|
+
type: "any",
|
|
63992
|
+
description: "Border radius variant",
|
|
63993
|
+
required: false
|
|
63994
|
+
},
|
|
63995
|
+
border: {
|
|
63996
|
+
name: "border",
|
|
63997
|
+
type: "ScrollViewBorderVariant | undefined",
|
|
63998
|
+
values: [
|
|
63999
|
+
"none",
|
|
64000
|
+
"thin",
|
|
64001
|
+
"thick"
|
|
64002
|
+
],
|
|
64003
|
+
description: "Border variant",
|
|
64004
|
+
required: false
|
|
64005
|
+
},
|
|
64006
|
+
backgroundColor: {
|
|
64007
|
+
name: "backgroundColor",
|
|
64008
|
+
type: "string | undefined",
|
|
64009
|
+
description: "Custom background color (overrides background variant)",
|
|
64010
|
+
required: false
|
|
64011
|
+
},
|
|
64012
|
+
borderRadius: {
|
|
64013
|
+
name: "borderRadius",
|
|
64014
|
+
type: "number | undefined",
|
|
64015
|
+
description: "Custom border radius (overrides radius variant)",
|
|
64016
|
+
required: false
|
|
64017
|
+
},
|
|
64018
|
+
borderWidth: {
|
|
64019
|
+
name: "borderWidth",
|
|
64020
|
+
type: "number | undefined",
|
|
64021
|
+
description: "Custom border width (overrides border variant)",
|
|
64022
|
+
required: false
|
|
64023
|
+
},
|
|
64024
|
+
borderColor: {
|
|
64025
|
+
name: "borderColor",
|
|
64026
|
+
type: "string | undefined",
|
|
64027
|
+
description: "Custom border color",
|
|
64028
|
+
required: false
|
|
64029
|
+
},
|
|
64030
|
+
contentContainerStyle: {
|
|
64031
|
+
name: "contentContainerStyle",
|
|
64032
|
+
type: "any",
|
|
64033
|
+
description: "Styles applied to the content container",
|
|
64034
|
+
required: false
|
|
64035
|
+
},
|
|
64036
|
+
showsIndicator: {
|
|
64037
|
+
name: "showsIndicator",
|
|
64038
|
+
type: "boolean | undefined",
|
|
64039
|
+
values: [
|
|
64040
|
+
"false",
|
|
64041
|
+
"true"
|
|
64042
|
+
],
|
|
64043
|
+
description: "Whether to show scroll indicators. Defaults to true.",
|
|
64044
|
+
required: false
|
|
64045
|
+
},
|
|
64046
|
+
pagingEnabled: {
|
|
64047
|
+
name: "pagingEnabled",
|
|
64048
|
+
type: "boolean | undefined",
|
|
64049
|
+
values: [
|
|
64050
|
+
"false",
|
|
64051
|
+
"true"
|
|
64052
|
+
],
|
|
64053
|
+
description: "Whether to enable paging behavior",
|
|
64054
|
+
required: false
|
|
64055
|
+
},
|
|
64056
|
+
bounces: {
|
|
64057
|
+
name: "bounces",
|
|
64058
|
+
type: "boolean | undefined",
|
|
64059
|
+
values: [
|
|
64060
|
+
"false",
|
|
64061
|
+
"true"
|
|
64062
|
+
],
|
|
64063
|
+
description: "Whether the scroll view bounces at the edges (iOS). Defaults to true.",
|
|
64064
|
+
required: false
|
|
64065
|
+
},
|
|
64066
|
+
onScroll: {
|
|
64067
|
+
name: "onScroll",
|
|
64068
|
+
type: "((event: ScrollEvent) => void) | undefined",
|
|
64069
|
+
description: "Called continuously as the user scrolls.\nUse `scrollEventThrottle` to control frequency.",
|
|
64070
|
+
required: false
|
|
64071
|
+
},
|
|
64072
|
+
onScrollBegin: {
|
|
64073
|
+
name: "onScrollBegin",
|
|
64074
|
+
type: "((event: ScrollEvent) => void) | undefined",
|
|
64075
|
+
description: "Called when scrolling begins (user starts dragging).",
|
|
64076
|
+
required: false
|
|
64077
|
+
},
|
|
64078
|
+
onScrollEnd: {
|
|
64079
|
+
name: "onScrollEnd",
|
|
64080
|
+
type: "((event: ScrollEvent) => void) | undefined",
|
|
64081
|
+
description: "Called when scrolling ends (momentum settles or user lifts finger).",
|
|
64082
|
+
required: false
|
|
64083
|
+
},
|
|
64084
|
+
onEndReached: {
|
|
64085
|
+
name: "onEndReached",
|
|
64086
|
+
type: "(() => void) | undefined",
|
|
64087
|
+
description: "Called when the scroll position reaches the end of the content.\nUseful for infinite scroll / load-more patterns.",
|
|
64088
|
+
required: false
|
|
64089
|
+
},
|
|
64090
|
+
onEndReachedThreshold: {
|
|
64091
|
+
name: "onEndReachedThreshold",
|
|
64092
|
+
type: "number | undefined",
|
|
64093
|
+
description: "Distance from the end (in pixels) at which onEndReached fires.\nDefaults to 0.",
|
|
64094
|
+
required: false
|
|
64095
|
+
},
|
|
64096
|
+
scrollEventThrottle: {
|
|
64097
|
+
name: "scrollEventThrottle",
|
|
64098
|
+
type: "number | undefined",
|
|
64099
|
+
description: "Throttle interval (ms) for onScroll events on native. Defaults to 16 (~60fps).",
|
|
64100
|
+
required: false
|
|
64101
|
+
},
|
|
64102
|
+
scrollEnabled: {
|
|
64103
|
+
name: "scrollEnabled",
|
|
64104
|
+
type: "boolean | undefined",
|
|
64105
|
+
values: [
|
|
64106
|
+
"false",
|
|
64107
|
+
"true"
|
|
64108
|
+
],
|
|
64109
|
+
description: "Whether scrolling is enabled. Defaults to true.",
|
|
64110
|
+
required: false
|
|
64111
|
+
},
|
|
64112
|
+
keyboardDismissMode: {
|
|
64113
|
+
name: "keyboardDismissMode",
|
|
64114
|
+
type: '"none" | "on-drag" | "interactive" | undefined',
|
|
64115
|
+
values: [
|
|
64116
|
+
"none",
|
|
64117
|
+
"on-drag",
|
|
64118
|
+
"interactive"
|
|
64119
|
+
],
|
|
64120
|
+
description: "Whether the keyboard should dismiss on drag.",
|
|
64121
|
+
required: false
|
|
64122
|
+
},
|
|
64123
|
+
id: {
|
|
64124
|
+
name: "id",
|
|
64125
|
+
type: "string | undefined",
|
|
64126
|
+
description: "Unique identifier for the element (maps to id on web, nativeID on native)",
|
|
64127
|
+
required: false
|
|
64128
|
+
},
|
|
64129
|
+
gap: {
|
|
64130
|
+
name: "gap",
|
|
64131
|
+
type: "any",
|
|
64132
|
+
description: "Gap between children (uses theme.sizes.view[size].spacing)",
|
|
64133
|
+
required: false
|
|
64134
|
+
},
|
|
64135
|
+
spacing: {
|
|
64136
|
+
name: "spacing",
|
|
64137
|
+
type: "any",
|
|
64138
|
+
description: "Alias for gap - spacing between children",
|
|
64139
|
+
required: false
|
|
64140
|
+
},
|
|
64141
|
+
padding: {
|
|
64142
|
+
name: "padding",
|
|
64143
|
+
type: "any",
|
|
64144
|
+
description: "Padding on all sides (uses theme.sizes.view[size].padding)",
|
|
64145
|
+
required: false
|
|
64146
|
+
},
|
|
64147
|
+
paddingVertical: {
|
|
64148
|
+
name: "paddingVertical",
|
|
64149
|
+
type: "any",
|
|
64150
|
+
description: "Vertical padding (top + bottom)",
|
|
64151
|
+
required: false
|
|
64152
|
+
},
|
|
64153
|
+
paddingHorizontal: {
|
|
64154
|
+
name: "paddingHorizontal",
|
|
64155
|
+
type: "any",
|
|
64156
|
+
description: "Horizontal padding (left + right)",
|
|
64157
|
+
required: false
|
|
64158
|
+
},
|
|
64159
|
+
margin: {
|
|
64160
|
+
name: "margin",
|
|
64161
|
+
type: "any",
|
|
64162
|
+
description: "Margin on all sides (uses theme.sizes.view[size].spacing)",
|
|
64163
|
+
required: false
|
|
64164
|
+
},
|
|
64165
|
+
marginVertical: {
|
|
64166
|
+
name: "marginVertical",
|
|
64167
|
+
type: "any",
|
|
64168
|
+
description: "Vertical margin (top + bottom)",
|
|
64169
|
+
required: false
|
|
64170
|
+
},
|
|
64171
|
+
marginHorizontal: {
|
|
64172
|
+
name: "marginHorizontal",
|
|
64173
|
+
type: "any",
|
|
64174
|
+
description: "Horizontal margin (left + right)",
|
|
64175
|
+
required: false
|
|
64176
|
+
}
|
|
64177
|
+
},
|
|
64178
|
+
category: "display",
|
|
64179
|
+
filePath: "../components/src/ScrollView",
|
|
64180
|
+
sampleProps: {
|
|
64181
|
+
children: "'Scrollable content'"
|
|
64182
|
+
}
|
|
64183
|
+
},
|
|
63527
64184
|
Select: {
|
|
63528
64185
|
name: "Select",
|
|
63529
64186
|
description: "Dropdown selection component for choosing from a list of options.\nSupports searchable filtering on web and native presentation modes on iOS.",
|
|
@@ -64474,6 +65131,16 @@ var types_default = {
|
|
|
64474
65131
|
],
|
|
64475
65132
|
required: false
|
|
64476
65133
|
},
|
|
65134
|
+
fill: {
|
|
65135
|
+
name: "fill",
|
|
65136
|
+
type: "boolean | undefined",
|
|
65137
|
+
values: [
|
|
65138
|
+
"false",
|
|
65139
|
+
"true"
|
|
65140
|
+
],
|
|
65141
|
+
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`.",
|
|
65142
|
+
required: false
|
|
65143
|
+
},
|
|
64477
65144
|
maxLength: {
|
|
64478
65145
|
name: "maxLength",
|
|
64479
65146
|
type: "number | undefined",
|
|
@@ -65071,7 +65738,6 @@ var types_default = {
|
|
|
65071
65738
|
"false",
|
|
65072
65739
|
"true"
|
|
65073
65740
|
],
|
|
65074
|
-
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.",
|
|
65075
65741
|
required: false
|
|
65076
65742
|
},
|
|
65077
65743
|
id: {
|
|
@@ -65778,7 +66444,12 @@ function postProcessComponentTypes(componentName, result) {
|
|
|
65778
66444
|
}
|
|
65779
66445
|
if (componentName.toLowerCase() === "view") {
|
|
65780
66446
|
if (typeof result === "object" && result !== null) {
|
|
65781
|
-
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.";
|
|
66447
|
+
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).";
|
|
66448
|
+
}
|
|
66449
|
+
}
|
|
66450
|
+
if (componentName.toLowerCase() === "scrollview") {
|
|
66451
|
+
if (typeof result === "object" && result !== null) {
|
|
66452
|
+
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>`";
|
|
65782
66453
|
}
|
|
65783
66454
|
}
|
|
65784
66455
|
if (componentName.toLowerCase() === "textarea") {
|
|
@@ -65793,7 +66464,7 @@ function postProcessComponentTypes(componentName, result) {
|
|
|
65793
66464
|
}
|
|
65794
66465
|
if (componentName.toLowerCase() === "icon") {
|
|
65795
66466
|
if (typeof result === "object" && result !== null) {
|
|
65796
|
-
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
|
|
66467
|
+
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.";
|
|
65797
66468
|
}
|
|
65798
66469
|
}
|
|
65799
66470
|
if (componentName.toLowerCase() === "badge") {
|