@tamagui/input 1.122.0 → 1.122.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +11 -11
- package/src/Input.tsx +43 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/input",
|
|
3
|
-
"version": "1.122.
|
|
3
|
+
"version": "1.122.1",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"*.css"
|
|
6
6
|
],
|
|
@@ -36,18 +36,18 @@
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@tamagui/core": "1.122.
|
|
40
|
-
"@tamagui/focusable": "1.122.
|
|
41
|
-
"@tamagui/font-size": "1.122.
|
|
42
|
-
"@tamagui/get-button-sized": "1.122.
|
|
43
|
-
"@tamagui/helpers": "1.122.
|
|
44
|
-
"@tamagui/helpers-tamagui": "1.122.
|
|
45
|
-
"@tamagui/stacks": "1.122.
|
|
46
|
-
"@tamagui/text": "1.122.
|
|
47
|
-
"@tamagui/web": "1.122.
|
|
39
|
+
"@tamagui/core": "1.122.1",
|
|
40
|
+
"@tamagui/focusable": "1.122.1",
|
|
41
|
+
"@tamagui/font-size": "1.122.1",
|
|
42
|
+
"@tamagui/get-button-sized": "1.122.1",
|
|
43
|
+
"@tamagui/helpers": "1.122.1",
|
|
44
|
+
"@tamagui/helpers-tamagui": "1.122.1",
|
|
45
|
+
"@tamagui/stacks": "1.122.1",
|
|
46
|
+
"@tamagui/text": "1.122.1",
|
|
47
|
+
"@tamagui/web": "1.122.1"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@tamagui/build": "1.122.
|
|
50
|
+
"@tamagui/build": "1.122.1",
|
|
51
51
|
"react": "*",
|
|
52
52
|
"vitest": "^2.1.8"
|
|
53
53
|
},
|
package/src/Input.tsx
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import React from 'react'
|
|
1
|
+
import React, { type HTMLInputTypeAttribute, type HTMLAttributes } from 'react'
|
|
2
2
|
import { View, styled, useComposedRefs, useEvent, useTheme } from '@tamagui/core'
|
|
3
3
|
import { registerFocusable } from '@tamagui/focusable'
|
|
4
|
+
import type { InputModeOptions } from 'react-native'
|
|
4
5
|
|
|
5
6
|
import { styledBody } from './shared'
|
|
6
7
|
import type { InputProps } from './types'
|
|
@@ -93,11 +94,51 @@ export const Input = StyledInput.styleable<InputProps>((inProps, forwardedRef) =
|
|
|
93
94
|
|
|
94
95
|
const finalProps = {
|
|
95
96
|
...rest,
|
|
96
|
-
inputMode,
|
|
97
97
|
disabled,
|
|
98
98
|
caretColor,
|
|
99
99
|
id,
|
|
100
100
|
enterKeyHint,
|
|
101
|
+
...(process.env.TAMAGUI_TARGET === 'web'
|
|
102
|
+
? {
|
|
103
|
+
type: (() => {
|
|
104
|
+
if (secureTextEntry) return 'password'
|
|
105
|
+
switch (keyboardType) {
|
|
106
|
+
case 'number-pad':
|
|
107
|
+
case 'numeric':
|
|
108
|
+
return 'number'
|
|
109
|
+
case 'email-address':
|
|
110
|
+
return 'email'
|
|
111
|
+
case 'phone-pad':
|
|
112
|
+
return 'tel'
|
|
113
|
+
case 'url':
|
|
114
|
+
return 'url'
|
|
115
|
+
default:
|
|
116
|
+
return 'text'
|
|
117
|
+
}
|
|
118
|
+
})() satisfies HTMLInputTypeAttribute,
|
|
119
|
+
inputMode: (() => {
|
|
120
|
+
switch (keyboardType) {
|
|
121
|
+
case 'number-pad':
|
|
122
|
+
case 'numeric':
|
|
123
|
+
return 'numeric'
|
|
124
|
+
case 'decimal-pad':
|
|
125
|
+
return 'decimal'
|
|
126
|
+
case 'email-address':
|
|
127
|
+
return 'email'
|
|
128
|
+
case 'phone-pad':
|
|
129
|
+
return 'tel'
|
|
130
|
+
case 'url':
|
|
131
|
+
return 'url'
|
|
132
|
+
default:
|
|
133
|
+
return undefined
|
|
134
|
+
}
|
|
135
|
+
})() satisfies HTMLAttributes<HTMLInputElement>['inputMode'],
|
|
136
|
+
}
|
|
137
|
+
: {
|
|
138
|
+
keyboardType,
|
|
139
|
+
secureTextEntry,
|
|
140
|
+
inputMode,
|
|
141
|
+
}),
|
|
101
142
|
style: {
|
|
102
143
|
...(rest.style as any),
|
|
103
144
|
...(placeholderTextColor && {
|