@tamagui/input 2.0.0-rc.8 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/dist/cjs/Input.cjs +165 -153
  2. package/dist/cjs/Input.native.js +255 -257
  3. package/dist/cjs/Input.native.js.map +1 -1
  4. package/dist/cjs/InputNativeProps.cjs +7 -5
  5. package/dist/cjs/InputNativeProps.native.js +7 -5
  6. package/dist/cjs/InputNativeProps.native.js.map +1 -1
  7. package/dist/cjs/TextArea.cjs +15 -13
  8. package/dist/cjs/TextArea.native.js +34 -32
  9. package/dist/cjs/TextArea.native.js.map +1 -1
  10. package/dist/cjs/index.cjs +13 -11
  11. package/dist/cjs/index.native.js +13 -11
  12. package/dist/cjs/index.native.js.map +1 -1
  13. package/dist/cjs/inputTypes.test-d.cjs +125 -0
  14. package/dist/cjs/inputTypes.test-d.native.js +128 -0
  15. package/dist/cjs/inputTypes.test-d.native.js.map +1 -0
  16. package/dist/cjs/shared.cjs +119 -101
  17. package/dist/cjs/shared.native.js +125 -107
  18. package/dist/cjs/shared.native.js.map +1 -1
  19. package/dist/cjs/types.cjs +7 -5
  20. package/dist/cjs/types.native.js +7 -5
  21. package/dist/cjs/types.native.js.map +1 -1
  22. package/dist/cjs/v1/Input.cjs +177 -170
  23. package/dist/cjs/v1/Input.native.js +154 -112
  24. package/dist/cjs/v1/Input.native.js.map +1 -1
  25. package/dist/cjs/v1/TextArea.cjs +15 -13
  26. package/dist/cjs/v1/TextArea.native.js +34 -32
  27. package/dist/cjs/v1/TextArea.native.js.map +1 -1
  28. package/dist/cjs/v1/index.cjs +7 -5
  29. package/dist/cjs/v1/index.native.js +7 -5
  30. package/dist/cjs/v1/index.native.js.map +1 -1
  31. package/dist/cjs/v1/types.cjs +7 -5
  32. package/dist/cjs/v1/types.native.js +7 -5
  33. package/dist/cjs/v1/types.native.js.map +1 -1
  34. package/dist/esm/Input.mjs +134 -124
  35. package/dist/esm/Input.mjs.map +1 -1
  36. package/dist/esm/Input.native.js +225 -229
  37. package/dist/esm/Input.native.js.map +1 -1
  38. package/dist/esm/TextArea.mjs.map +1 -1
  39. package/dist/esm/TextArea.native.js.map +1 -1
  40. package/dist/esm/index.js +4 -7
  41. package/dist/esm/index.js.map +1 -6
  42. package/dist/esm/inputTypes.test-d.mjs +126 -0
  43. package/dist/esm/inputTypes.test-d.mjs.map +1 -0
  44. package/dist/esm/inputTypes.test-d.native.js +126 -0
  45. package/dist/esm/inputTypes.test-d.native.js.map +1 -0
  46. package/dist/esm/shared.mjs +102 -86
  47. package/dist/esm/shared.mjs.map +1 -1
  48. package/dist/esm/shared.native.js +107 -91
  49. package/dist/esm/shared.native.js.map +1 -1
  50. package/dist/esm/v1/Input.mjs +146 -141
  51. package/dist/esm/v1/Input.mjs.map +1 -1
  52. package/dist/esm/v1/Input.native.js +123 -83
  53. package/dist/esm/v1/Input.native.js.map +1 -1
  54. package/dist/jsx/Input.mjs +134 -124
  55. package/dist/jsx/Input.mjs.map +1 -1
  56. package/dist/jsx/Input.native.js +255 -257
  57. package/dist/jsx/Input.native.js.map +1 -1
  58. package/dist/jsx/InputNativeProps.native.js +7 -5
  59. package/dist/jsx/TextArea.mjs.map +1 -1
  60. package/dist/jsx/TextArea.native.js +34 -32
  61. package/dist/jsx/TextArea.native.js.map +1 -1
  62. package/dist/jsx/index.js +4 -7
  63. package/dist/jsx/index.js.map +1 -6
  64. package/dist/jsx/index.native.js +13 -11
  65. package/dist/jsx/inputTypes.test-d.mjs +126 -0
  66. package/dist/jsx/inputTypes.test-d.mjs.map +1 -0
  67. package/dist/jsx/inputTypes.test-d.native.js +128 -0
  68. package/dist/jsx/inputTypes.test-d.native.js.map +1 -0
  69. package/dist/jsx/shared.mjs +102 -86
  70. package/dist/jsx/shared.mjs.map +1 -1
  71. package/dist/jsx/shared.native.js +125 -107
  72. package/dist/jsx/shared.native.js.map +1 -1
  73. package/dist/jsx/types.native.js +7 -5
  74. package/dist/jsx/v1/Input.mjs +146 -141
  75. package/dist/jsx/v1/Input.mjs.map +1 -1
  76. package/dist/jsx/v1/Input.native.js +154 -112
  77. package/dist/jsx/v1/Input.native.js.map +1 -1
  78. package/dist/jsx/v1/TextArea.native.js +34 -32
  79. package/dist/jsx/v1/TextArea.native.js.map +1 -1
  80. package/dist/jsx/v1/index.native.js +7 -5
  81. package/dist/jsx/v1/types.native.js +7 -5
  82. package/package.json +21 -24
  83. package/src/Input.native.tsx +3 -30
  84. package/src/Input.tsx +7 -5
  85. package/src/TextArea.tsx +3 -3
  86. package/src/index.ts +1 -1
  87. package/src/inputTypes.test-d.ts +237 -0
  88. package/src/shared.tsx +9 -0
  89. package/src/types.ts +24 -14
  90. package/src/v1/Input.tsx +4 -4
  91. package/types/Input.d.ts +17 -6
  92. package/types/Input.d.ts.map +1 -1
  93. package/types/Input.native.d.ts +15 -6
  94. package/types/Input.native.d.ts.map +1 -1
  95. package/types/TextArea.d.ts +11 -4
  96. package/types/TextArea.d.ts.map +1 -1
  97. package/types/index.d.ts +1 -1
  98. package/types/index.d.ts.map +1 -1
  99. package/types/shared.d.ts +8 -0
  100. package/types/shared.d.ts.map +1 -1
  101. package/types/types.d.ts +14 -4
  102. package/types/types.d.ts.map +1 -1
  103. package/types/v1/Input.d.ts +15 -6
  104. package/types/v1/Input.d.ts.map +1 -1
  105. package/types/v1/Input.native.d.ts +15 -6
  106. package/types/v1/Input.native.d.ts.map +1 -1
  107. package/types/v1/TextArea.d.ts +9 -3
  108. package/types/v1/TextArea.d.ts.map +1 -1
  109. package/dist/cjs/Input.js +0 -143
  110. package/dist/cjs/Input.js.map +0 -6
  111. package/dist/cjs/InputNativeProps.js +0 -14
  112. package/dist/cjs/InputNativeProps.js.map +0 -6
  113. package/dist/cjs/TextArea.js +0 -43
  114. package/dist/cjs/TextArea.js.map +0 -6
  115. package/dist/cjs/index.js +0 -24
  116. package/dist/cjs/index.js.map +0 -6
  117. package/dist/cjs/shared.js +0 -108
  118. package/dist/cjs/shared.js.map +0 -6
  119. package/dist/cjs/types.js +0 -14
  120. package/dist/cjs/types.js.map +0 -6
  121. package/dist/cjs/v1/Input.js +0 -171
  122. package/dist/cjs/v1/Input.js.map +0 -6
  123. package/dist/cjs/v1/TextArea.js +0 -43
  124. package/dist/cjs/v1/TextArea.js.map +0 -6
  125. package/dist/cjs/v1/index.js +0 -16
  126. package/dist/cjs/v1/index.js.map +0 -6
  127. package/dist/cjs/v1/types.js +0 -14
  128. package/dist/cjs/v1/types.js.map +0 -6
  129. package/dist/esm/Input.js +0 -124
  130. package/dist/esm/Input.js.map +0 -6
  131. package/dist/esm/InputNativeProps.js +0 -1
  132. package/dist/esm/InputNativeProps.js.map +0 -6
  133. package/dist/esm/TextArea.js +0 -29
  134. package/dist/esm/TextArea.js.map +0 -6
  135. package/dist/esm/shared.js +0 -96
  136. package/dist/esm/shared.js.map +0 -6
  137. package/dist/esm/types.js +0 -1
  138. package/dist/esm/types.js.map +0 -6
  139. package/dist/esm/v1/Input.js +0 -152
  140. package/dist/esm/v1/Input.js.map +0 -6
  141. package/dist/esm/v1/TextArea.js +0 -29
  142. package/dist/esm/v1/TextArea.js.map +0 -6
  143. package/dist/esm/v1/index.js +0 -3
  144. package/dist/esm/v1/index.js.map +0 -6
  145. package/dist/esm/v1/types.js +0 -1
  146. package/dist/esm/v1/types.js.map +0 -6
  147. package/dist/jsx/Input.js +0 -124
  148. package/dist/jsx/Input.js.map +0 -6
  149. package/dist/jsx/InputNativeProps.js +0 -1
  150. package/dist/jsx/InputNativeProps.js.map +0 -6
  151. package/dist/jsx/TextArea.js +0 -29
  152. package/dist/jsx/TextArea.js.map +0 -6
  153. package/dist/jsx/shared.js +0 -96
  154. package/dist/jsx/shared.js.map +0 -6
  155. package/dist/jsx/types.js +0 -1
  156. package/dist/jsx/types.js.map +0 -6
  157. package/dist/jsx/v1/Input.js +0 -152
  158. package/dist/jsx/v1/Input.js.map +0 -6
  159. package/dist/jsx/v1/TextArea.js +0 -29
  160. package/dist/jsx/v1/TextArea.js.map +0 -6
  161. package/dist/jsx/v1/index.js +0 -3
  162. package/dist/jsx/v1/index.js.map +0 -6
  163. package/dist/jsx/v1/types.js +0 -1
  164. package/dist/jsx/v1/types.js.map +0 -6
package/src/Input.tsx CHANGED
@@ -1,9 +1,9 @@
1
- import { View, styled, useTheme } from '@tamagui/core'
1
+ import { type GetProps, View, styled, useTheme } from '@tamagui/core'
2
2
  import { registerFocusable } from '@tamagui/focusable'
3
3
  import { useWebRef } from '@tamagui/element'
4
4
  import React from 'react'
5
5
  import { styledBody } from './shared'
6
- import type { InputProps } from './types'
6
+ import type { InputExtraProps } from './types'
7
7
 
8
8
  const StyledInput = styled(View, styledBody[0], styledBody[1])
9
9
 
@@ -11,7 +11,7 @@ const StyledInput = styled(View, styledBody[0], styledBody[1])
11
11
  * A web-aligned input component.
12
12
  * @see — Docs https://tamagui.dev/ui/inputs#input
13
13
  */
14
- export const Input = StyledInput.styleable<InputProps>((props, _forwardedRef) => {
14
+ export const Input = StyledInput.styleable<InputExtraProps>((props, _forwardedRef) => {
15
15
  const {
16
16
  disabled,
17
17
  id,
@@ -158,14 +158,16 @@ export const Input = StyledInput.styleable<InputProps>((props, _forwardedRef) =>
158
158
  style: {
159
159
  ...(rest.style as any),
160
160
  ...(placeholderTextColor && {
161
- '--placeholderColor':
161
+ '--t_placeholderColor':
162
162
  theme[placeholderTextColor]?.variable || placeholderTextColor,
163
163
  }),
164
164
  ...(selectionColor && {
165
- '--selectionColor': theme[selectionColor]?.variable || selectionColor,
165
+ '--t_selectionColor': theme[selectionColor]?.variable || selectionColor,
166
166
  }),
167
167
  },
168
168
  } as any
169
169
 
170
170
  return <StyledInput ref={composedRef} {...finalProps} />
171
171
  })
172
+
173
+ export type InputProps = GetProps<typeof Input>
package/src/TextArea.tsx CHANGED
@@ -1,9 +1,7 @@
1
- import { styled } from '@tamagui/web'
1
+ import { type GetProps, styled } from '@tamagui/web'
2
2
  import { Input } from './Input'
3
3
  import { defaultStyles, textAreaSizeVariant } from './shared'
4
4
 
5
- export type { InputProps as TextAreaProps } from './types'
6
-
7
5
  /**
8
6
  * A web-aligned textarea component (multi-line input).
9
7
  * @see — Docs https://tamagui.dev/ui/inputs#textarea
@@ -34,3 +32,5 @@ export const TextArea = styled(Input, {
34
32
  unstyled: process.env.TAMAGUI_HEADLESS === '1',
35
33
  },
36
34
  })
35
+
36
+ export type TextAreaProps = GetProps<typeof TextArea>
package/src/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export * from './Input'
2
2
  export * from './TextArea'
3
3
  export { inputSizeVariant, textAreaSizeVariant } from './shared'
4
- export type { InputProps, InputTextContentType } from './types'
4
+ export type { InputExtraProps, InputRef, InputTextContentType } from './types'
5
5
  export type {
6
6
  InputNativeProps,
7
7
  InputIOSProps,
@@ -0,0 +1,237 @@
1
+ /**
2
+ * Type tests for Input component.
3
+ *
4
+ * Verifies that:
5
+ * 1. Event handlers are typed with HTMLInputElement (not HTMLDivElement)
6
+ * 2. HTML input-specific props are available (type, placeholder, etc.)
7
+ * 3. Tamagui style props and variants still work
8
+ * 4. Cross-platform props (autoCorrect, autoCapitalize) are present
9
+ * 5. InputRef includes both HTMLInputElement and TextInput
10
+ *
11
+ * Run with: npx vitest typecheck --run
12
+ */
13
+
14
+ import { expectTypeOf, describe, test } from 'vitest'
15
+ import type { GetProps } from '@tamagui/web'
16
+ import type { TextInput } from 'react-native'
17
+ import {
18
+ Input,
19
+ type InputProps,
20
+ type InputRef,
21
+ TextArea,
22
+ type TextAreaProps,
23
+ } from './index'
24
+
25
+ // helper: extract event param type
26
+ type EventParam<T> = T extends (event: infer E) => any ? E : never
27
+ type IsAssignable<T, U> = T extends U ? true : false
28
+
29
+ // =============================================================================
30
+ // Test: event handlers are typed with HTMLInputElement
31
+ // =============================================================================
32
+
33
+ describe('Input event handler types', () => {
34
+ test('onChange event uses HTMLInputElement', () => {
35
+ type OnChange = NonNullable<InputProps['onChange']>
36
+ type Event = EventParam<OnChange>
37
+ expectTypeOf<Event['currentTarget']>().toMatchTypeOf<HTMLInputElement>()
38
+ })
39
+
40
+ test('onFocus event uses HTMLInputElement', () => {
41
+ type OnFocus = NonNullable<InputProps['onFocus']>
42
+ type Event = EventParam<OnFocus>
43
+ expectTypeOf<Event['currentTarget']>().toMatchTypeOf<HTMLInputElement>()
44
+ })
45
+
46
+ test('onBlur event uses HTMLInputElement', () => {
47
+ type OnBlur = NonNullable<InputProps['onBlur']>
48
+ type Event = EventParam<OnBlur>
49
+ expectTypeOf<Event['currentTarget']>().toMatchTypeOf<HTMLInputElement>()
50
+ })
51
+
52
+ test('onKeyDown event uses HTMLInputElement', () => {
53
+ type OnKeyDown = NonNullable<InputProps['onKeyDown']>
54
+ type Event = EventParam<OnKeyDown>
55
+ expectTypeOf<Event['currentTarget']>().toMatchTypeOf<HTMLInputElement>()
56
+ })
57
+
58
+ test('onClick event uses HTMLInputElement', () => {
59
+ type OnClick = NonNullable<InputProps['onClick']>
60
+ type Event = EventParam<OnClick>
61
+ expectTypeOf<Event['currentTarget']>().toMatchTypeOf<HTMLInputElement>()
62
+ })
63
+
64
+ test('onChange event is NOT typed with HTMLDivElement', () => {
65
+ type OnChange = NonNullable<InputProps['onChange']>
66
+ type Event = EventParam<OnChange>
67
+ // HTMLDivElement should NOT be assignable to the currentTarget
68
+ type DivMatchesCurrentTarget = IsAssignable<HTMLDivElement, Event['currentTarget']>
69
+ expectTypeOf<DivMatchesCurrentTarget>().toEqualTypeOf<false>()
70
+ })
71
+ })
72
+
73
+ // =============================================================================
74
+ // Test: HTML input-specific props
75
+ // =============================================================================
76
+
77
+ describe('Input HTML props', () => {
78
+ test('accepts type prop', () => {
79
+ expectTypeOf<InputProps>().toHaveProperty('type')
80
+ })
81
+
82
+ test('accepts placeholder prop', () => {
83
+ expectTypeOf<InputProps>().toHaveProperty('placeholder')
84
+ })
85
+
86
+ test('accepts value prop', () => {
87
+ expectTypeOf<InputProps>().toHaveProperty('value')
88
+ })
89
+
90
+ test('accepts defaultValue prop', () => {
91
+ expectTypeOf<InputProps>().toHaveProperty('defaultValue')
92
+ })
93
+
94
+ test('accepts maxLength prop', () => {
95
+ expectTypeOf<InputProps>().toHaveProperty('maxLength')
96
+ })
97
+
98
+ test('accepts pattern prop', () => {
99
+ expectTypeOf<InputProps>().toHaveProperty('pattern')
100
+ })
101
+
102
+ test('accepts required prop', () => {
103
+ expectTypeOf<InputProps>().toHaveProperty('required')
104
+ })
105
+
106
+ test('accepts readOnly prop', () => {
107
+ expectTypeOf<InputProps>().toHaveProperty('readOnly')
108
+ })
109
+
110
+ test('accepts autoComplete prop', () => {
111
+ expectTypeOf<InputProps>().toHaveProperty('autoComplete')
112
+ })
113
+
114
+ test('accepts name prop', () => {
115
+ expectTypeOf<InputProps>().toHaveProperty('name')
116
+ })
117
+ })
118
+
119
+ // =============================================================================
120
+ // Test: Tamagui style props still work
121
+ // =============================================================================
122
+
123
+ describe('Input style props', () => {
124
+ test('accepts padding style prop', () => {
125
+ expectTypeOf<InputProps>().toHaveProperty('padding')
126
+ })
127
+
128
+ test('accepts backgroundColor style prop', () => {
129
+ expectTypeOf<InputProps>().toHaveProperty('backgroundColor')
130
+ })
131
+
132
+ test('accepts borderRadius style prop', () => {
133
+ expectTypeOf<InputProps>().toHaveProperty('borderRadius')
134
+ })
135
+
136
+ test('accepts text style props', () => {
137
+ expectTypeOf<InputProps>().toHaveProperty('fontSize')
138
+ expectTypeOf<InputProps>().toHaveProperty('fontWeight')
139
+ expectTypeOf<InputProps>().toHaveProperty('color')
140
+ })
141
+
142
+ test('accepts size variant', () => {
143
+ expectTypeOf<InputProps>().toHaveProperty('size')
144
+ })
145
+
146
+ test('accepts unstyled variant', () => {
147
+ expectTypeOf<InputProps>().toHaveProperty('unstyled')
148
+ })
149
+ })
150
+
151
+ // =============================================================================
152
+ // Test: cross-platform props
153
+ // =============================================================================
154
+
155
+ describe('Input cross-platform props', () => {
156
+ test('autoCorrect accepts boolean and string', () => {
157
+ expectTypeOf<InputProps['autoCorrect']>().toMatchTypeOf<
158
+ boolean | 'on' | 'off' | undefined
159
+ >()
160
+ })
161
+
162
+ test('autoCapitalize accepts native and web values', () => {
163
+ expectTypeOf<InputProps['autoCapitalize']>().toMatchTypeOf<
164
+ 'none' | 'sentences' | 'words' | 'characters' | 'off' | 'on' | undefined
165
+ >()
166
+ })
167
+
168
+ test('accepts onChangeText callback', () => {
169
+ expectTypeOf<InputProps>().toHaveProperty('onChangeText')
170
+ expectTypeOf<NonNullable<InputProps['onChangeText']>>().toMatchTypeOf<
171
+ (text: string) => void
172
+ >()
173
+ })
174
+
175
+ test('accepts onSubmitEditing callback', () => {
176
+ expectTypeOf<InputProps>().toHaveProperty('onSubmitEditing')
177
+ })
178
+
179
+ test('accepts placeholderTextColor', () => {
180
+ expectTypeOf<InputProps>().toHaveProperty('placeholderTextColor')
181
+ })
182
+
183
+ test('accepts selection prop', () => {
184
+ expectTypeOf<InputProps>().toHaveProperty('selection')
185
+ })
186
+ })
187
+
188
+ // =============================================================================
189
+ // Test: InputRef type
190
+ // =============================================================================
191
+
192
+ describe('InputRef type', () => {
193
+ test('InputRef accepts TextInput', () => {
194
+ const _ref: InputRef = {} as TextInput
195
+ })
196
+
197
+ test('InputRef rejects plain HTMLDivElement', () => {
198
+ // @ts-expect-error - HTMLDivElement should not be assignable to InputRef
199
+ const _ref: InputRef = {} as HTMLDivElement
200
+ })
201
+ })
202
+
203
+ // =============================================================================
204
+ // Test: TextArea types
205
+ // =============================================================================
206
+
207
+ describe('TextArea types', () => {
208
+ test('TextArea has rows prop', () => {
209
+ expectTypeOf<TextAreaProps>().toHaveProperty('rows')
210
+ })
211
+
212
+ test('TextArea accepts style props', () => {
213
+ expectTypeOf<TextAreaProps>().toHaveProperty('padding')
214
+ expectTypeOf<TextAreaProps>().toHaveProperty('fontSize')
215
+ })
216
+
217
+ test('TextArea accepts HTML input props', () => {
218
+ expectTypeOf<TextAreaProps>().toHaveProperty('placeholder')
219
+ expectTypeOf<TextAreaProps>().toHaveProperty('value')
220
+ })
221
+ })
222
+
223
+ // =============================================================================
224
+ // Test: InputProps derived from GetProps (not manually defined)
225
+ // =============================================================================
226
+
227
+ describe('InputProps derivation', () => {
228
+ test('InputProps equals GetProps<typeof Input>', () => {
229
+ type Derived = GetProps<typeof Input>
230
+ expectTypeOf<InputProps>().toEqualTypeOf<Derived>()
231
+ })
232
+
233
+ test('TextAreaProps equals GetProps<typeof TextArea>', () => {
234
+ type Derived = GetProps<typeof TextArea>
235
+ expectTypeOf<TextAreaProps>().toEqualTypeOf<Derived>()
236
+ })
237
+ })
package/src/shared.tsx CHANGED
@@ -109,6 +109,12 @@ export const styledBody = [
109
109
  render: 'input',
110
110
  variants: {
111
111
  unstyled: {
112
+ true: {
113
+ // reset browser <input>/<textarea> defaults
114
+ outlineWidth: 0,
115
+ borderWidth: 0,
116
+ backgroundColor: 'transparent',
117
+ },
112
118
  false: defaultStyles,
113
119
  },
114
120
 
@@ -131,6 +137,9 @@ export const styledBody = [
131
137
  accept: {
132
138
  placeholderTextColor: 'color',
133
139
  selectionColor: 'color',
140
+ cursorColor: 'color',
141
+ selectionHandleColor: 'color',
142
+ underlineColorAndroid: 'color',
134
143
  } as const,
135
144
 
136
145
  validStyles: Text.staticConfig.validStyles,
package/src/types.ts CHANGED
@@ -1,9 +1,13 @@
1
- import type { ColorTokens, ViewProps, TextStyle } from '@tamagui/web'
1
+ import type { ColorTokens, TextStyle, TamaguiElementMethods } from '@tamagui/web'
2
+ import type { TextInput } from 'react-native'
2
3
  import type { InputNativeProps } from './InputNativeProps'
3
4
 
4
5
  /**
5
- * Web-aligned Input props
6
- * Follows standard HTML input API as primary, with RN compatibility for native
6
+ * Extra props that Input adds on top of the base styled component.
7
+ * Used with .styleable<InputExtraProps>() - the Styleable merge
8
+ * (`Omit<BaseProps, keyof CustomProps> & CustomProps`) automatically overrides
9
+ * base event handlers (HTMLDivElement) with these (HTMLInputElement).
10
+ * Consumer-facing InputProps is derived via GetProps<typeof Input>.
7
11
  */
8
12
 
9
13
  type HTMLInputProps = React.InputHTMLAttributes<HTMLInputElement>
@@ -25,17 +29,16 @@ type InputTextStyleProps = Pick<
25
29
  // props that have different types on web vs native and need cross-platform definitions
26
30
  type OverlappingNativeProps = 'autoCorrect' | 'autoCapitalize' | 'spellCheck'
27
31
 
28
- export type InputProps = ViewProps &
29
- Omit<
30
- HTMLInputProps,
31
- | 'size'
32
- | 'color'
33
- | 'style'
34
- | 'children'
35
- | 'className'
36
- | keyof InputTextStyleProps
37
- | OverlappingNativeProps
38
- > &
32
+ export type InputExtraProps = Omit<
33
+ HTMLInputProps,
34
+ | 'size'
35
+ | 'color'
36
+ | 'style'
37
+ | 'children'
38
+ | 'className'
39
+ | keyof InputTextStyleProps
40
+ | OverlappingNativeProps
41
+ > &
39
42
  InputTextStyleProps &
40
43
  Omit<InputNativeProps, OverlappingNativeProps> & {
41
44
  /**
@@ -129,6 +132,13 @@ export type InputProps = ViewProps &
129
132
  textContentType?: InputTextContentType
130
133
  }
131
134
 
135
+ /**
136
+ * Cross-platform ref type for Input.
137
+ * On web: HTMLInputElement with Tamagui methods (measure, focus, blur).
138
+ * On native: TextInput.
139
+ */
140
+ export type InputRef = (HTMLInputElement & TamaguiElementMethods) | TextInput
141
+
132
142
  /**
133
143
  * iOS text content types for autofill
134
144
  */
package/src/v1/Input.tsx CHANGED
@@ -147,11 +147,11 @@ export const Input = StyledInput.styleable<InputProps>((inProps, forwardedRef) =
147
147
  style: {
148
148
  ...(rest.style as any),
149
149
  ...(placeholderTextColor && {
150
- '--placeholderColor':
150
+ '--t_placeholderColor':
151
151
  theme[placeholderTextColor]?.variable || placeholderTextColor,
152
152
  }),
153
153
  ...(selectionColor && {
154
- '--selectionBackground': theme[selectionColor]?.variable || selectionColor,
154
+ '--t_selectionBackground': theme[selectionColor]?.variable || selectionColor,
155
155
  }),
156
156
  },
157
157
  } as any
@@ -174,11 +174,11 @@ export const Input = StyledInput.styleable<InputProps>((inProps, forwardedRef) =
174
174
  <style>
175
175
  {`
176
176
  input::selection, textarea::selection {
177
- background-color: var(--selectionBackground) !important;
177
+ background-color: var(--t_selectionBackground) !important;
178
178
  }
179
179
 
180
180
  input::placeholder, textarea::placeholder {
181
- color: var(--placeholderColor) !important;
181
+ color: var(--t_placeholderColor) !important;
182
182
  }
183
183
  `}
184
184
  </style>
package/types/Input.d.ts CHANGED
@@ -1,16 +1,20 @@
1
+ import { type GetProps } from '@tamagui/core';
1
2
  import React from 'react';
2
3
  /**
3
4
  * A web-aligned input component.
4
5
  * @see — Docs https://tamagui.dev/ui/inputs#input
5
6
  */
6
7
  export declare const Input: import("@tamagui/core").TamaguiComponent<Omit<import("@tamagui/core").GetFinalProps<import("@tamagui/core").RNTamaguiViewNonStyleProps, import("@tamagui/core").StackStyleBase & {
7
- readonly placeholderTextColor?: Omit<import("@tamagui/core").ColorTokens | import("@tamagui/core").ThemeValueFallbackColor, "unset"> | undefined;
8
- readonly selectionColor?: Omit<import("@tamagui/core").ColorTokens | import("@tamagui/core").ThemeValueFallbackColor, "unset"> | undefined;
8
+ readonly placeholderTextColor?: import("@tamagui/core").ColorTokens | undefined;
9
+ readonly selectionColor?: import("@tamagui/core").ColorTokens | undefined;
10
+ readonly cursorColor?: import("@tamagui/core").ColorTokens | undefined;
11
+ readonly selectionHandleColor?: import("@tamagui/core").ColorTokens | undefined;
12
+ readonly underlineColorAndroid?: import("@tamagui/core").ColorTokens | undefined;
9
13
  }, {
10
14
  size?: import("@tamagui/core").SizeTokens | undefined;
11
15
  disabled?: boolean | undefined;
12
16
  unstyled?: boolean | undefined;
13
- }>, "color" | `$${string}` | `$${number}` | import("@tamagui/core").GroupMediaKeys | `$theme-${string}` | `$theme-${number}` | "rel" | "dir" | "allowFontScaling" | "numberOfLines" | "maxFontSizeMultiplier" | "lineBreakStrategyIOS" | "selectionColor" | "textBreakStrategy" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "textAlign" | "textTransform" | "textAlignVertical" | "list" | "max" | "min" | "form" | "slot" | "title" | "hidden" | "value" | "name" | "returnKeyType" | "submitBehavior" | "blurOnSubmit" | "caretHidden" | "contextMenuHidden" | "selectTextOnFocus" | "secureTextEntry" | "onEndEditing" | "onContentSizeChange" | "onKeyPress" | "multiline" | "keyboardType" | "autoCapitalize" | "autoCorrect" | "autoFocusNative" | "keyboardAppearance" | "clearButtonMode" | "clearTextOnFocus" | "enablesReturnKeyAutomatically" | "dataDetectorTypes" | "scrollEnabled" | "passwordRules" | "rejectResponderTermination" | "spellCheck" | "lineBreakModeIOS" | "smartInsertDelete" | "inputAccessoryViewID" | "inputAccessoryViewButtonLabel" | "disableKeyboardShortcuts" | "accept" | "alt" | "autoComplete" | "capture" | "checked" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "maxLength" | "minLength" | "multiple" | "pattern" | "placeholder" | "readOnly" | "required" | "src" | "step" | "type" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoFocus" | "contentEditable" | "contextMenu" | "draggable" | "enterKeyHint" | "lang" | "nonce" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "rev" | "typeof" | "vocab" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "popover" | "popoverTargetAction" | "popoverTarget" | "inert" | "inputMode" | "is" | "exportparts" | "part" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-dropeffect" | "aria-errormessage" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-invalid" | "aria-keyshortcuts" | "aria-level" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-setsize" | "aria-sort" | "onCopyCapture" | "onCutCapture" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocusCapture" | "onBlurCapture" | "onChangeCapture" | "onBeforeInputCapture" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDownCapture" | "onKeyPressCapture" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenuCapture" | "onDoubleClickCapture" | "onDragCapture" | "onDragEndCapture" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeaveCapture" | "onDragOverCapture" | "onDragStartCapture" | "onDropCapture" | "onMouseDownCapture" | "onMouseMoveCapture" | "onMouseOutCapture" | "onMouseOverCapture" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancelCapture" | "onTouchMoveCapture" | "onTouchStartCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScrollCapture" | "onScrollEnd" | "onScrollEndCapture" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onToggle" | "onBeforeToggle" | "onTransitionCancel" | "onTransitionCancelCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "onTransitionRun" | "onTransitionRunCapture" | "onTransitionStart" | "onTransitionStartCapture" | "cursorColor" | "selectionHandleColor" | "underlineColorAndroid" | "importantForAutofill" | "disableFullscreenUI" | "inlineImageLeft" | "inlineImagePadding" | "returnKeyLabel" | "showSoftInputOnFocus" | "placeholderTextColor" | "onChangeText" | "onSelectionChange" | "onSubmitEditing" | "selection" | "textContentType" | keyof import("@tamagui/core").StackStyleBase | keyof import("@tamagui/core").StackNonStyleProps | keyof import("@tamagui/core").WithPseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase>>> | "rows"> & import("@tamagui/core").StackNonStyleProps & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase>> & import("@tamagui/core").WithPseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase>>> & import("@tamagui/core").WithMediaProps<import("@tamagui/core").WithThemeShorthandsAndPseudos<import("@tamagui/core").StackStyleBase, {}>> & Omit<React.InputHTMLAttributes<HTMLInputElement>, "color" | "size" | "children" | "style" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "textAlign" | "textTransform" | "className" | ("autoCapitalize" | "autoCorrect" | "spellCheck")> & {
17
+ }>, "tabIndex" | "color" | "onMouseEnter" | "onMouseLeave" | "onMouseDown" | "onMouseUp" | "onMouseMove" | "onMouseOver" | "onMouseOut" | "onFocus" | "onBlur" | "onClick" | "onDoubleClick" | "onContextMenu" | "onWheel" | "onKeyDown" | "onKeyUp" | "onChange" | "onInput" | "onBeforeInput" | "onScroll" | "onCopy" | "onCut" | "onPaste" | "onDrag" | "onDragStart" | "onDragEnd" | "onDragEnter" | "onDragLeave" | "onDragOver" | "onDrop" | "onPointerDown" | "onPointerMove" | "onPointerUp" | "onPointerCancel" | "rel" | "dir" | "allowFontScaling" | "id" | "numberOfLines" | "maxFontSizeMultiplier" | "lineBreakStrategyIOS" | "disabled" | "selectionColor" | "textBreakStrategy" | "aria-label" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "aria-hidden" | "aria-modal" | "role" | "aria-labelledby" | "aria-live" | "content" | "verticalAlign" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "textAlign" | "textTransform" | "height" | "width" | "textAlignVertical" | "dangerouslySetInnerHTML" | "list" | "max" | "min" | "form" | "slot" | "title" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerMoveCapture" | "onPointerCancelCapture" | "onPointerDownCapture" | "onPointerUpCapture" | "hidden" | "value" | "name" | "returnKeyType" | "submitBehavior" | "blurOnSubmit" | "caretHidden" | "contextMenuHidden" | "selectTextOnFocus" | "secureTextEntry" | "onEndEditing" | "onContentSizeChange" | "onKeyPress" | "multiline" | "keyboardType" | "autoCapitalize" | "autoCorrect" | "autoFocusNative" | "keyboardAppearance" | "clearButtonMode" | "clearTextOnFocus" | "enablesReturnKeyAutomatically" | "dataDetectorTypes" | "scrollEnabled" | "passwordRules" | "rejectResponderTermination" | "spellCheck" | "lineBreakModeIOS" | "smartInsertDelete" | "inputAccessoryViewID" | "inputAccessoryViewButtonLabel" | "disableKeyboardShortcuts" | "accept" | "alt" | "autoComplete" | "capture" | "checked" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "maxLength" | "minLength" | "multiple" | "pattern" | "placeholder" | "readOnly" | "required" | "src" | "step" | "type" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoFocus" | "contentEditable" | "contextMenu" | "draggable" | "enterKeyHint" | "lang" | "nonce" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "rev" | "typeof" | "vocab" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "popover" | "popoverTargetAction" | "popoverTarget" | "inert" | "inputMode" | "is" | "exportparts" | "part" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-dropeffect" | "aria-errormessage" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-invalid" | "aria-keyshortcuts" | "aria-level" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-setsize" | "aria-sort" | "onCopyCapture" | "onCutCapture" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocusCapture" | "onBlurCapture" | "onChangeCapture" | "onBeforeInputCapture" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDownCapture" | "onKeyPressCapture" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenuCapture" | "onDoubleClickCapture" | "onDragCapture" | "onDragEndCapture" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeaveCapture" | "onDragOverCapture" | "onDragStartCapture" | "onDropCapture" | "onMouseDownCapture" | "onMouseMoveCapture" | "onMouseOutCapture" | "onMouseOverCapture" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancelCapture" | "onTouchMoveCapture" | "onTouchStartCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScrollCapture" | "onScrollEnd" | "onScrollEndCapture" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onToggle" | "onBeforeToggle" | "onTransitionCancel" | "onTransitionCancelCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "onTransitionRun" | "onTransitionRunCapture" | "onTransitionStart" | "onTransitionStartCapture" | "cursorColor" | "selectionHandleColor" | "underlineColorAndroid" | "importantForAutofill" | "disableFullscreenUI" | "inlineImageLeft" | "inlineImagePadding" | "returnKeyLabel" | "showSoftInputOnFocus" | "placeholderTextColor" | "onChangeText" | "onSelectionChange" | "onSubmitEditing" | "selection" | "textContentType" | "rows"> & Omit<React.InputHTMLAttributes<HTMLInputElement>, "color" | "size" | "children" | "style" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "textAlign" | "textTransform" | "className" | ("autoCapitalize" | "autoCorrect" | "spellCheck")> & {
14
18
  color?: "unset" | import("react-native").OpaqueColorValue | import("@tamagui/core").GetThemeValueForKey<"color"> | undefined;
15
19
  fontFamily?: "unset" | import("@tamagui/core").GetThemeValueForKey<"fontFamily"> | undefined;
16
20
  fontSize?: "unset" | import("@tamagui/core").GetThemeValueForKey<"fontSize"> | undefined;
@@ -45,7 +49,7 @@ export declare const Input: import("@tamagui/core").TamaguiComponent<Omit<import
45
49
  };
46
50
  }) => void;
47
51
  textContentType?: import("./types").InputTextContentType;
48
- }, import("@tamagui/core").TamaguiElement, import("@tamagui/core").RNTamaguiViewNonStyleProps & import("@tamagui/core").StackNonStyleProps & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase>> & import("@tamagui/core").WithPseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase>>> & import("@tamagui/core").WithMediaProps<import("@tamagui/core").WithThemeShorthandsAndPseudos<import("@tamagui/core").StackStyleBase, {}>> & Omit<React.InputHTMLAttributes<HTMLInputElement>, "color" | "size" | "children" | "style" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "textAlign" | "textTransform" | "className" | ("autoCapitalize" | "autoCorrect" | "spellCheck")> & {
52
+ }, import("@tamagui/core").TamaguiElement, import("@tamagui/core").RNTamaguiViewNonStyleProps & Omit<React.InputHTMLAttributes<HTMLInputElement>, "color" | "size" | "children" | "style" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "textAlign" | "textTransform" | "className" | ("autoCapitalize" | "autoCorrect" | "spellCheck")> & {
49
53
  color?: "unset" | import("react-native").OpaqueColorValue | import("@tamagui/core").GetThemeValueForKey<"color"> | undefined;
50
54
  fontFamily?: "unset" | import("@tamagui/core").GetThemeValueForKey<"fontFamily"> | undefined;
51
55
  fontSize?: "unset" | import("@tamagui/core").GetThemeValueForKey<"fontSize"> | undefined;
@@ -81,8 +85,11 @@ export declare const Input: import("@tamagui/core").TamaguiComponent<Omit<import
81
85
  }) => void;
82
86
  textContentType?: import("./types").InputTextContentType;
83
87
  }, import("@tamagui/core").StackStyleBase & {
84
- readonly placeholderTextColor?: Omit<import("@tamagui/core").ColorTokens | import("@tamagui/core").ThemeValueFallbackColor, "unset"> | undefined;
85
- readonly selectionColor?: Omit<import("@tamagui/core").ColorTokens | import("@tamagui/core").ThemeValueFallbackColor, "unset"> | undefined;
88
+ readonly placeholderTextColor?: import("@tamagui/core").ColorTokens | undefined;
89
+ readonly selectionColor?: import("@tamagui/core").ColorTokens | undefined;
90
+ readonly cursorColor?: import("@tamagui/core").ColorTokens | undefined;
91
+ readonly selectionHandleColor?: import("@tamagui/core").ColorTokens | undefined;
92
+ readonly underlineColorAndroid?: import("@tamagui/core").ColorTokens | undefined;
86
93
  }, {
87
94
  size?: import("@tamagui/core").SizeTokens | undefined;
88
95
  disabled?: boolean | undefined;
@@ -92,9 +99,13 @@ export declare const Input: import("@tamagui/core").TamaguiComponent<Omit<import
92
99
  readonly accept: {
93
100
  readonly placeholderTextColor: "color";
94
101
  readonly selectionColor: "color";
102
+ readonly cursorColor: "color";
103
+ readonly selectionHandleColor: "color";
104
+ readonly underlineColorAndroid: "color";
95
105
  };
96
106
  readonly validStyles: {
97
107
  [key: string]: boolean;
98
108
  } | undefined;
99
109
  }>;
110
+ export type InputProps = GetProps<typeof Input>;
100
111
  //# sourceMappingURL=Input.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../src/Input.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA+GhB,CADF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WACE,CADF;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CE,CAAA"}
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../src/Input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAA0B,MAAM,eAAe,CAAA;AAGrE,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAuHJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCb,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAA"}
@@ -5,13 +5,16 @@ import { TextInput, type TextInputProps as RNTextInputProps } from 'react-native
5
5
  * @see — Docs https://tamagui.dev/ui/inputs#input
6
6
  */
7
7
  export declare const Input: import("@tamagui/core").TamaguiComponent<Omit<import("@tamagui/core").GetFinalProps<import("@tamagui/core").TamaguiComponentPropsBaseBase & RNTextInputProps, import("@tamagui/core").TextStylePropsBase & {
8
- readonly placeholderTextColor?: Omit<import("@tamagui/core").ColorTokens | import("@tamagui/core").ThemeValueFallbackColor, "unset"> | undefined;
9
- readonly selectionColor?: Omit<import("@tamagui/core").ColorTokens | import("@tamagui/core").ThemeValueFallbackColor, "unset"> | undefined;
8
+ readonly placeholderTextColor?: import("@tamagui/core").ColorTokens | undefined;
9
+ readonly selectionColor?: import("@tamagui/core").ColorTokens | undefined;
10
+ readonly cursorColor?: import("@tamagui/core").ColorTokens | undefined;
11
+ readonly selectionHandleColor?: import("@tamagui/core").ColorTokens | undefined;
12
+ readonly underlineColorAndroid?: import("@tamagui/core").ColorTokens | undefined;
10
13
  }, {
11
14
  size?: import("@tamagui/core").SizeTokens | undefined;
12
15
  disabled?: boolean | undefined;
13
16
  unstyled?: boolean | undefined;
14
- }>, "color" | `$${string}` | `$${number}` | import("@tamagui/core").GroupMediaKeys | `$theme-${string}` | `$theme-${number}` | "rel" | "dir" | "allowFontScaling" | "numberOfLines" | "maxFontSizeMultiplier" | "lineBreakStrategyIOS" | "selectionColor" | "textBreakStrategy" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "textAlign" | "textTransform" | "textAlignVertical" | "list" | "max" | "min" | "form" | "slot" | "title" | "hidden" | "value" | "name" | "returnKeyType" | "submitBehavior" | "blurOnSubmit" | "caretHidden" | "contextMenuHidden" | "selectTextOnFocus" | "secureTextEntry" | "onEndEditing" | "onContentSizeChange" | "onKeyPress" | "multiline" | "keyboardType" | "autoCapitalize" | "autoCorrect" | "autoFocusNative" | "keyboardAppearance" | "clearButtonMode" | "clearTextOnFocus" | "enablesReturnKeyAutomatically" | "dataDetectorTypes" | "scrollEnabled" | "passwordRules" | "rejectResponderTermination" | "spellCheck" | "lineBreakModeIOS" | "smartInsertDelete" | "inputAccessoryViewID" | "inputAccessoryViewButtonLabel" | "disableKeyboardShortcuts" | "accept" | "alt" | "autoComplete" | "capture" | "checked" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "maxLength" | "minLength" | "multiple" | "pattern" | "placeholder" | "readOnly" | "required" | "src" | "step" | "type" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoFocus" | "contentEditable" | "contextMenu" | "draggable" | "enterKeyHint" | "lang" | "nonce" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "rev" | "typeof" | "vocab" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "popover" | "popoverTargetAction" | "popoverTarget" | "inert" | "inputMode" | "is" | "exportparts" | "part" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-dropeffect" | "aria-errormessage" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-invalid" | "aria-keyshortcuts" | "aria-level" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-setsize" | "aria-sort" | "onCopyCapture" | "onCutCapture" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocusCapture" | "onBlurCapture" | "onChangeCapture" | "onBeforeInputCapture" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDownCapture" | "onKeyPressCapture" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenuCapture" | "onDoubleClickCapture" | "onDragCapture" | "onDragEndCapture" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeaveCapture" | "onDragOverCapture" | "onDragStartCapture" | "onDropCapture" | "onMouseDownCapture" | "onMouseMoveCapture" | "onMouseOutCapture" | "onMouseOverCapture" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancelCapture" | "onTouchMoveCapture" | "onTouchStartCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScrollCapture" | "onScrollEnd" | "onScrollEndCapture" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onToggle" | "onBeforeToggle" | "onTransitionCancel" | "onTransitionCancelCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "onTransitionRun" | "onTransitionRunCapture" | "onTransitionStart" | "onTransitionStartCapture" | "cursorColor" | "selectionHandleColor" | "underlineColorAndroid" | "importantForAutofill" | "disableFullscreenUI" | "inlineImageLeft" | "inlineImagePadding" | "returnKeyLabel" | "showSoftInputOnFocus" | "placeholderTextColor" | "onChangeText" | "onSelectionChange" | "onSubmitEditing" | "selection" | "textContentType" | keyof import("@tamagui/core").StackStyleBase | keyof import("@tamagui/core").StackNonStyleProps | keyof import("@tamagui/core").WithPseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase>>> | "rows"> & import("@tamagui/core").StackNonStyleProps & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase>> & import("@tamagui/core").WithPseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase>>> & import("@tamagui/core").WithMediaProps<import("@tamagui/core").WithThemeShorthandsAndPseudos<import("@tamagui/core").StackStyleBase, {}>> & Omit<React.InputHTMLAttributes<HTMLInputElement>, "color" | "size" | "children" | "style" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "textAlign" | "textTransform" | "className" | ("autoCapitalize" | "autoCorrect" | "spellCheck")> & {
17
+ }>, "tabIndex" | "color" | "onMouseEnter" | "onMouseLeave" | "onMouseDown" | "onMouseUp" | "onMouseMove" | "onMouseOver" | "onMouseOut" | "onFocus" | "onBlur" | "onClick" | "onDoubleClick" | "onContextMenu" | "onWheel" | "onKeyDown" | "onKeyUp" | "onChange" | "onInput" | "onBeforeInput" | "onScroll" | "onCopy" | "onCut" | "onPaste" | "onDrag" | "onDragStart" | "onDragEnd" | "onDragEnter" | "onDragLeave" | "onDragOver" | "onDrop" | "onPointerDown" | "onPointerMove" | "onPointerUp" | "onPointerCancel" | "rel" | "dir" | "allowFontScaling" | "id" | "numberOfLines" | "maxFontSizeMultiplier" | "lineBreakStrategyIOS" | "disabled" | "selectionColor" | "textBreakStrategy" | "aria-label" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "aria-hidden" | "aria-modal" | "role" | "aria-labelledby" | "aria-live" | "content" | "verticalAlign" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "textAlign" | "textTransform" | "height" | "width" | "textAlignVertical" | "dangerouslySetInnerHTML" | "list" | "max" | "min" | "form" | "slot" | "title" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerMoveCapture" | "onPointerCancelCapture" | "onPointerDownCapture" | "onPointerUpCapture" | "hidden" | "value" | "name" | "returnKeyType" | "submitBehavior" | "blurOnSubmit" | "caretHidden" | "contextMenuHidden" | "selectTextOnFocus" | "secureTextEntry" | "onEndEditing" | "onContentSizeChange" | "onKeyPress" | "multiline" | "keyboardType" | "autoCapitalize" | "autoCorrect" | "autoFocusNative" | "keyboardAppearance" | "clearButtonMode" | "clearTextOnFocus" | "enablesReturnKeyAutomatically" | "dataDetectorTypes" | "scrollEnabled" | "passwordRules" | "rejectResponderTermination" | "spellCheck" | "lineBreakModeIOS" | "smartInsertDelete" | "inputAccessoryViewID" | "inputAccessoryViewButtonLabel" | "disableKeyboardShortcuts" | "accept" | "alt" | "autoComplete" | "capture" | "checked" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "maxLength" | "minLength" | "multiple" | "pattern" | "placeholder" | "readOnly" | "required" | "src" | "step" | "type" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoFocus" | "contentEditable" | "contextMenu" | "draggable" | "enterKeyHint" | "lang" | "nonce" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "rev" | "typeof" | "vocab" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "popover" | "popoverTargetAction" | "popoverTarget" | "inert" | "inputMode" | "is" | "exportparts" | "part" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-dropeffect" | "aria-errormessage" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-invalid" | "aria-keyshortcuts" | "aria-level" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-setsize" | "aria-sort" | "onCopyCapture" | "onCutCapture" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocusCapture" | "onBlurCapture" | "onChangeCapture" | "onBeforeInputCapture" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDownCapture" | "onKeyPressCapture" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenuCapture" | "onDoubleClickCapture" | "onDragCapture" | "onDragEndCapture" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeaveCapture" | "onDragOverCapture" | "onDragStartCapture" | "onDropCapture" | "onMouseDownCapture" | "onMouseMoveCapture" | "onMouseOutCapture" | "onMouseOverCapture" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancelCapture" | "onTouchMoveCapture" | "onTouchStartCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScrollCapture" | "onScrollEnd" | "onScrollEndCapture" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onToggle" | "onBeforeToggle" | "onTransitionCancel" | "onTransitionCancelCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "onTransitionRun" | "onTransitionRunCapture" | "onTransitionStart" | "onTransitionStartCapture" | "cursorColor" | "selectionHandleColor" | "underlineColorAndroid" | "importantForAutofill" | "disableFullscreenUI" | "inlineImageLeft" | "inlineImagePadding" | "returnKeyLabel" | "showSoftInputOnFocus" | "placeholderTextColor" | "onChangeText" | "onSelectionChange" | "onSubmitEditing" | "selection" | "textContentType" | "rows"> & Omit<React.InputHTMLAttributes<HTMLInputElement>, "color" | "size" | "children" | "style" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "textAlign" | "textTransform" | "className" | ("autoCapitalize" | "autoCorrect" | "spellCheck")> & {
15
18
  color?: "unset" | import("react-native").OpaqueColorValue | import("@tamagui/core").GetThemeValueForKey<"color"> | undefined;
16
19
  fontFamily?: "unset" | import("@tamagui/core").GetThemeValueForKey<"fontFamily"> | undefined;
17
20
  fontSize?: "unset" | import("@tamagui/core").GetThemeValueForKey<"fontSize"> | undefined;
@@ -46,7 +49,7 @@ export declare const Input: import("@tamagui/core").TamaguiComponent<Omit<import
46
49
  };
47
50
  }) => void;
48
51
  textContentType?: import("./types").InputTextContentType;
49
- }, TextInput, import("@tamagui/core").TamaguiComponentPropsBaseBase & RNTextInputProps & import("@tamagui/core").StackNonStyleProps & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase>> & import("@tamagui/core").WithPseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase>>> & import("@tamagui/core").WithMediaProps<import("@tamagui/core").WithThemeShorthandsAndPseudos<import("@tamagui/core").StackStyleBase, {}>> & Omit<React.InputHTMLAttributes<HTMLInputElement>, "color" | "size" | "children" | "style" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "textAlign" | "textTransform" | "className" | ("autoCapitalize" | "autoCorrect" | "spellCheck")> & {
52
+ }, TextInput, import("@tamagui/core").TamaguiComponentPropsBaseBase & RNTextInputProps & Omit<React.InputHTMLAttributes<HTMLInputElement>, "color" | "size" | "children" | "style" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "textAlign" | "textTransform" | "className" | ("autoCapitalize" | "autoCorrect" | "spellCheck")> & {
50
53
  color?: "unset" | import("react-native").OpaqueColorValue | import("@tamagui/core").GetThemeValueForKey<"color"> | undefined;
51
54
  fontFamily?: "unset" | import("@tamagui/core").GetThemeValueForKey<"fontFamily"> | undefined;
52
55
  fontSize?: "unset" | import("@tamagui/core").GetThemeValueForKey<"fontSize"> | undefined;
@@ -82,8 +85,11 @@ export declare const Input: import("@tamagui/core").TamaguiComponent<Omit<import
82
85
  }) => void;
83
86
  textContentType?: import("./types").InputTextContentType;
84
87
  }, import("@tamagui/core").TextStylePropsBase & {
85
- readonly placeholderTextColor?: Omit<import("@tamagui/core").ColorTokens | import("@tamagui/core").ThemeValueFallbackColor, "unset"> | undefined;
86
- readonly selectionColor?: Omit<import("@tamagui/core").ColorTokens | import("@tamagui/core").ThemeValueFallbackColor, "unset"> | undefined;
88
+ readonly placeholderTextColor?: import("@tamagui/core").ColorTokens | undefined;
89
+ readonly selectionColor?: import("@tamagui/core").ColorTokens | undefined;
90
+ readonly cursorColor?: import("@tamagui/core").ColorTokens | undefined;
91
+ readonly selectionHandleColor?: import("@tamagui/core").ColorTokens | undefined;
92
+ readonly underlineColorAndroid?: import("@tamagui/core").ColorTokens | undefined;
87
93
  }, {
88
94
  size?: import("@tamagui/core").SizeTokens | undefined;
89
95
  disabled?: boolean | undefined;
@@ -93,6 +99,9 @@ export declare const Input: import("@tamagui/core").TamaguiComponent<Omit<import
93
99
  readonly accept: {
94
100
  readonly placeholderTextColor: "color";
95
101
  readonly selectionColor: "color";
102
+ readonly cursorColor: "color";
103
+ readonly selectionHandleColor: "color";
104
+ readonly underlineColorAndroid: "color";
96
105
  };
97
106
  readonly validStyles: {
98
107
  [key: string]: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Input.native.d.ts","sourceRoot":"","sources":["../src/Input.native.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAA;AASjF;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA+GV,CAAF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAAE,CAAF;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyLJ,CAAA"}
1
+ {"version":3,"file":"Input.native.d.ts","sourceRoot":"","sources":["../src/Input.native.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAA;AASjF;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA2HO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkJxB,CAAA"}