@tamagui/input 1.143.1 → 2.0.0-1767740890268
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/cjs/Input.cjs +57 -122
- package/dist/cjs/Input.js +46 -115
- package/dist/cjs/Input.js.map +1 -1
- package/dist/cjs/Input.native.js +133 -71
- package/dist/cjs/Input.native.js.map +1 -1
- package/dist/cjs/TextArea.cjs +1 -1
- package/dist/cjs/TextArea.js +1 -1
- package/dist/cjs/TextArea.js.map +1 -1
- package/dist/cjs/TextArea.native.js +1 -1
- package/dist/cjs/TextArea.native.js.map +1 -1
- package/dist/cjs/v1/Input.cjs +190 -0
- package/dist/cjs/v1/Input.js +171 -0
- package/dist/cjs/v1/Input.js.map +6 -0
- package/dist/cjs/v1/Input.native.js +138 -0
- package/dist/cjs/v1/Input.native.js.map +1 -0
- package/dist/cjs/v1/TextArea.cjs +50 -0
- package/dist/cjs/v1/TextArea.js +43 -0
- package/dist/cjs/v1/TextArea.js.map +6 -0
- package/dist/cjs/v1/TextArea.native.js +53 -0
- package/dist/cjs/v1/TextArea.native.js.map +1 -0
- package/dist/cjs/v1/index.cjs +19 -0
- package/dist/cjs/v1/index.js +16 -0
- package/dist/cjs/v1/index.js.map +6 -0
- package/dist/cjs/v1/index.native.js +22 -0
- package/dist/cjs/v1/index.native.js.map +1 -0
- package/dist/cjs/v1/types.cjs +16 -0
- package/dist/cjs/v1/types.js +14 -0
- package/dist/cjs/v1/types.js.map +6 -0
- package/dist/cjs/v1/types.native.js +19 -0
- package/dist/cjs/v1/types.native.js.map +1 -0
- package/dist/esm/Input.js +47 -116
- package/dist/esm/Input.js.map +1 -1
- package/dist/esm/Input.mjs +58 -123
- package/dist/esm/Input.mjs.map +1 -1
- package/dist/esm/Input.native.js +134 -72
- package/dist/esm/Input.native.js.map +1 -1
- package/dist/esm/TextArea.js +1 -1
- package/dist/esm/TextArea.js.map +1 -1
- package/dist/esm/TextArea.mjs +1 -1
- package/dist/esm/TextArea.mjs.map +1 -1
- package/dist/esm/TextArea.native.js +1 -1
- package/dist/esm/TextArea.native.js.map +1 -1
- package/dist/esm/v1/Input.js +151 -0
- package/dist/esm/v1/Input.js.map +6 -0
- package/dist/esm/v1/Input.mjs +156 -0
- package/dist/esm/v1/Input.mjs.map +1 -0
- package/dist/esm/v1/Input.native.js +101 -0
- package/dist/esm/v1/Input.native.js.map +1 -0
- package/dist/esm/v1/TextArea.js +29 -0
- package/dist/esm/v1/TextArea.js.map +6 -0
- package/dist/esm/v1/TextArea.mjs +27 -0
- package/dist/esm/v1/TextArea.mjs.map +1 -0
- package/dist/esm/v1/TextArea.native.js +27 -0
- package/dist/esm/v1/TextArea.native.js.map +1 -0
- package/dist/esm/v1/index.js +3 -0
- package/dist/esm/v1/index.js.map +6 -0
- package/dist/esm/v1/index.mjs +3 -0
- package/dist/esm/v1/index.mjs.map +1 -0
- package/dist/esm/v1/index.native.js +3 -0
- package/dist/esm/v1/index.native.js.map +1 -0
- package/dist/esm/v1/types.js +1 -0
- package/dist/esm/v1/types.js.map +6 -0
- package/dist/esm/v1/types.mjs +2 -0
- package/dist/esm/v1/types.mjs.map +1 -0
- package/dist/esm/v1/types.native.js +2 -0
- package/dist/esm/v1/types.native.js.map +1 -0
- package/dist/jsx/Input.js +47 -116
- package/dist/jsx/Input.js.map +1 -1
- package/dist/jsx/Input.mjs +58 -123
- package/dist/jsx/Input.mjs.map +1 -1
- package/dist/jsx/Input.native.js +133 -71
- package/dist/jsx/Input.native.js.map +1 -1
- package/dist/jsx/TextArea.js +1 -1
- package/dist/jsx/TextArea.js.map +1 -1
- package/dist/jsx/TextArea.mjs +1 -1
- package/dist/jsx/TextArea.mjs.map +1 -1
- package/dist/jsx/TextArea.native.js +1 -1
- package/dist/jsx/TextArea.native.js.map +1 -1
- package/dist/jsx/v1/Input.js +151 -0
- package/dist/jsx/v1/Input.js.map +6 -0
- package/dist/jsx/v1/Input.mjs +156 -0
- package/dist/jsx/v1/Input.mjs.map +1 -0
- package/dist/jsx/v1/Input.native.js +138 -0
- package/dist/jsx/v1/Input.native.js.map +1 -0
- package/dist/jsx/v1/TextArea.js +29 -0
- package/dist/jsx/v1/TextArea.js.map +6 -0
- package/dist/jsx/v1/TextArea.mjs +27 -0
- package/dist/jsx/v1/TextArea.mjs.map +1 -0
- package/dist/jsx/v1/TextArea.native.js +53 -0
- package/dist/jsx/v1/TextArea.native.js.map +1 -0
- package/dist/jsx/v1/index.js +3 -0
- package/dist/jsx/v1/index.js.map +6 -0
- package/dist/jsx/v1/index.mjs +3 -0
- package/dist/jsx/v1/index.mjs.map +1 -0
- package/dist/jsx/v1/index.native.js +22 -0
- package/dist/jsx/v1/index.native.js.map +1 -0
- package/dist/jsx/v1/types.js +1 -0
- package/dist/jsx/v1/types.js.map +6 -0
- package/dist/jsx/v1/types.mjs +2 -0
- package/dist/jsx/v1/types.mjs.map +1 -0
- package/dist/jsx/v1/types.native.js +19 -0
- package/dist/jsx/v1/types.native.js.map +1 -0
- package/package.json +13 -13
- package/src/Input.native.tsx +145 -110
- package/src/Input.tsx +67 -137
- package/src/TextArea.tsx +4 -2
- package/src/types.ts +52 -41
- package/src/v1/Input.native.tsx +154 -0
- package/src/v1/Input.tsx +191 -0
- package/src/v1/TextArea.tsx +35 -0
- package/src/v1/index.ts +3 -0
- package/src/v1/types.ts +65 -0
- package/types/Input.d.ts +47 -21
- package/types/Input.d.ts.map +1 -1
- package/types/Input.native.d.ts +52 -22
- package/types/Input.native.d.ts.map +1 -1
- package/types/TextArea.d.ts +25 -11
- package/types/TextArea.d.ts.map +1 -1
- package/types/types.d.ts +47 -21
- package/types/types.d.ts.map +1 -1
- package/types/v1/Input.d.ts +115 -0
- package/types/v1/Input.d.ts.map +1 -0
- package/types/v1/Input.native.d.ts +114 -0
- package/types/v1/Input.native.d.ts.map +1 -0
- package/types/v1/TextArea.d.ts +98 -0
- package/types/v1/TextArea.d.ts.map +1 -0
- package/types/v1/index.d.ts +4 -0
- package/types/v1/index.d.ts.map +1 -0
- package/types/v1/types.d.ts +39 -0
- package/types/v1/types.d.ts.map +1 -0
package/dist/jsx/Input.native.js
CHANGED
|
@@ -38,98 +38,160 @@ __export(Input_native_exports, {
|
|
|
38
38
|
module.exports = __toCommonJS(Input_native_exports);
|
|
39
39
|
var import_jsx_runtime = require("react/jsx-runtime"),
|
|
40
40
|
import_react = __toESM(require("react"), 1),
|
|
41
|
+
import_react_native = require("react-native"),
|
|
41
42
|
import_core = require("@tamagui/core"),
|
|
42
43
|
import_focusable = require("@tamagui/focusable"),
|
|
43
|
-
import_react_native = require("react-native"),
|
|
44
44
|
import_shared = require("./shared.native.js"),
|
|
45
45
|
StyledInput = (0, import_core.styled)(import_react_native.TextInput, import_shared.styledBody[0], import_shared.styledBody[1]),
|
|
46
|
-
Input = StyledInput.styleable(function (
|
|
47
|
-
var
|
|
48
|
-
|
|
46
|
+
Input = StyledInput.styleable(function (props, forwardedRef) {
|
|
47
|
+
var _theme_placeholderTextColor,
|
|
48
|
+
_theme_selectionColor,
|
|
49
|
+
{
|
|
50
|
+
// Web props we need to convert
|
|
49
51
|
type,
|
|
50
|
-
|
|
52
|
+
disabled,
|
|
53
|
+
readOnly,
|
|
54
|
+
id,
|
|
55
|
+
rows,
|
|
56
|
+
autoComplete,
|
|
57
|
+
enterKeyHint,
|
|
58
|
+
// Tamagui color props
|
|
59
|
+
placeholderTextColor,
|
|
60
|
+
selectionColor,
|
|
61
|
+
// Callbacks
|
|
62
|
+
onChange,
|
|
63
|
+
onInput,
|
|
64
|
+
onKeyDown,
|
|
65
|
+
onChangeText,
|
|
66
|
+
onSubmitEditing,
|
|
67
|
+
onSelectionChange,
|
|
68
|
+
selection,
|
|
69
|
+
// Web-only props to filter out
|
|
70
|
+
// @ts-ignore
|
|
51
71
|
dirname,
|
|
52
|
-
max,
|
|
53
72
|
min,
|
|
73
|
+
max,
|
|
54
74
|
minLength,
|
|
55
75
|
multiple,
|
|
56
76
|
name,
|
|
77
|
+
pattern,
|
|
57
78
|
required,
|
|
58
79
|
step,
|
|
59
|
-
disabled,
|
|
60
|
-
id,
|
|
61
|
-
caretColor,
|
|
62
|
-
onChange,
|
|
63
|
-
onInput,
|
|
64
|
-
rows,
|
|
65
|
-
enterKeyHint,
|
|
66
|
-
returnKeyType,
|
|
67
|
-
onKeyDown,
|
|
68
|
-
inputMode,
|
|
69
80
|
tag,
|
|
70
81
|
...rest
|
|
71
|
-
} =
|
|
82
|
+
} = props,
|
|
72
83
|
ref = import_react.default.useRef(null),
|
|
84
|
+
theme = (0, import_core.useTheme)(),
|
|
73
85
|
composedRefs = (0, import_core.useComposedRefs)(forwardedRef, ref),
|
|
74
86
|
secureTextEntry = !1,
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
type: "input"
|
|
122
|
-
});
|
|
123
|
-
}), import_react.default.useEffect(function () {
|
|
124
|
-
if (id && !disabled) return (0, import_focusable.registerFocusable)(id, {
|
|
87
|
+
keyboardType = "default",
|
|
88
|
+
inputMode = void 0;
|
|
89
|
+
switch (type) {
|
|
90
|
+
case "password":
|
|
91
|
+
secureTextEntry = !0;
|
|
92
|
+
break;
|
|
93
|
+
case "email":
|
|
94
|
+
keyboardType = "email-address", inputMode = "email";
|
|
95
|
+
break;
|
|
96
|
+
case "tel":
|
|
97
|
+
keyboardType = "phone-pad", inputMode = "tel";
|
|
98
|
+
break;
|
|
99
|
+
case "number":
|
|
100
|
+
keyboardType = "numeric", inputMode = "numeric";
|
|
101
|
+
break;
|
|
102
|
+
case "url":
|
|
103
|
+
keyboardType = "url", inputMode = "url";
|
|
104
|
+
break;
|
|
105
|
+
case "search":
|
|
106
|
+
inputMode = "search";
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
var returnKeyType = void 0;
|
|
110
|
+
switch (enterKeyHint) {
|
|
111
|
+
case "done":
|
|
112
|
+
returnKeyType = "done";
|
|
113
|
+
break;
|
|
114
|
+
case "go":
|
|
115
|
+
returnKeyType = "go";
|
|
116
|
+
break;
|
|
117
|
+
case "next":
|
|
118
|
+
returnKeyType = "next";
|
|
119
|
+
break;
|
|
120
|
+
case "search":
|
|
121
|
+
returnKeyType = "search";
|
|
122
|
+
break;
|
|
123
|
+
case "send":
|
|
124
|
+
returnKeyType = "send";
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
var _theme_placeholderTextColor_val,
|
|
128
|
+
resolvedPlaceholderColor = placeholderTextColor ? (0, import_core.getTokenValue)((_theme_placeholderTextColor_val = (_theme_placeholderTextColor = theme[placeholderTextColor]) === null || _theme_placeholderTextColor === void 0 ? void 0 : _theme_placeholderTextColor.val) !== null && _theme_placeholderTextColor_val !== void 0 ? _theme_placeholderTextColor_val : placeholderTextColor, "color") : void 0,
|
|
129
|
+
_theme_selectionColor_val,
|
|
130
|
+
resolvedSelectionColor = selectionColor ? (0, import_core.getTokenValue)((_theme_selectionColor_val = (_theme_selectionColor = theme[selectionColor]) === null || _theme_selectionColor === void 0 ? void 0 : _theme_selectionColor.val) !== null && _theme_selectionColor_val !== void 0 ? _theme_selectionColor_val : selectionColor, "color") : void 0;
|
|
131
|
+
import_react.default.useEffect(function () {
|
|
132
|
+
if (!(!id || disabled)) return (0, import_focusable.registerFocusable)(id, {
|
|
125
133
|
focusAndSelect: function () {
|
|
126
134
|
var _ref_current;
|
|
127
|
-
(_ref_current = ref.current) === null || _ref_current === void 0
|
|
135
|
+
return (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.focus();
|
|
128
136
|
},
|
|
129
|
-
focus: function () {
|
|
137
|
+
focus: function () {
|
|
138
|
+
var _ref_current;
|
|
139
|
+
return (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.focus();
|
|
140
|
+
}
|
|
130
141
|
});
|
|
131
|
-
}, [id, disabled])
|
|
132
|
-
|
|
142
|
+
}, [id, disabled]);
|
|
143
|
+
var handleChangeText = function (text) {
|
|
144
|
+
onChangeText?.(text), onChange && onChange({
|
|
145
|
+
target: {
|
|
146
|
+
value: text
|
|
147
|
+
},
|
|
148
|
+
type: "change"
|
|
149
|
+
}), onInput && onInput({
|
|
150
|
+
target: {
|
|
151
|
+
value: text
|
|
152
|
+
},
|
|
153
|
+
type: "input"
|
|
154
|
+
});
|
|
155
|
+
},
|
|
156
|
+
handleKeyPress = function (e) {
|
|
157
|
+
if (onKeyDown) {
|
|
158
|
+
var {
|
|
159
|
+
key
|
|
160
|
+
} = e.nativeEvent;
|
|
161
|
+
(key === "Backspace" || key === "Enter" || key.length === 1) && onKeyDown({
|
|
162
|
+
key,
|
|
163
|
+
type: "keydown"
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
handleSubmitEditing = function (e) {
|
|
168
|
+
onKeyDown && onKeyDown({
|
|
169
|
+
key: "Enter",
|
|
170
|
+
type: "keydown"
|
|
171
|
+
}), onSubmitEditing && onSubmitEditing(e);
|
|
172
|
+
},
|
|
173
|
+
handleSelectionChange = function (e) {
|
|
174
|
+
onSelectionChange?.(e);
|
|
175
|
+
},
|
|
176
|
+
finalProps = {
|
|
177
|
+
...rest,
|
|
178
|
+
editable: !disabled && !readOnly,
|
|
179
|
+
secureTextEntry,
|
|
180
|
+
keyboardType,
|
|
181
|
+
inputMode,
|
|
182
|
+
returnKeyType,
|
|
183
|
+
multiline: tag === "textarea" || rows && rows > 1,
|
|
184
|
+
numberOfLines: rows,
|
|
185
|
+
selection,
|
|
186
|
+
placeholderTextColor: resolvedPlaceholderColor,
|
|
187
|
+
selectionColor: resolvedSelectionColor,
|
|
188
|
+
onChangeText: handleChangeText,
|
|
189
|
+
onKeyPress: onKeyDown ? handleKeyPress : void 0,
|
|
190
|
+
onSubmitEditing: onKeyDown || onSubmitEditing ? handleSubmitEditing : void 0,
|
|
191
|
+
onSelectionChange: onSelectionChange ? handleSelectionChange : void 0,
|
|
192
|
+
autoComplete
|
|
193
|
+
};
|
|
194
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(StyledInput, {
|
|
133
195
|
ref: composedRefs,
|
|
134
196
|
...finalProps
|
|
135
197
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Input_native_exports","__export","Input","module","exports","__toCommonJS","import_jsx_runtime","require","import_react","__toESM","
|
|
1
|
+
{"version":3,"names":["Input_native_exports","__export","Input","module","exports","__toCommonJS","import_jsx_runtime","require","import_react","__toESM","import_react_native","import_core","import_focusable","import_shared","StyledInput","styled","TextInput","styledBody","styleable","props","forwardedRef","_theme_placeholderTextColor","_theme_selectionColor","type","disabled","readOnly","id","rows","autoComplete","enterKeyHint","placeholderTextColor","selectionColor","onChange","onInput","onKeyDown","onChangeText","onSubmitEditing","onSelectionChange","selection","dirname","min","max","minLength","multiple","name","pattern","required","step","tag","rest","ref","default","useRef","theme","useTheme","composedRefs","useComposedRefs","secureTextEntry","keyboardType","inputMode","returnKeyType","_theme_placeholderTextColor_val","resolvedPlaceholderColor","getTokenValue","val","_theme_selectionColor_val","resolvedSelectionColor","useEffect","registerFocusable","focusAndSelect","_ref_current","current","focus","handleChangeText","text","target","value","handleKeyPress","e","key","nativeEvent","length","handleSubmitEditing","handleSelectionChange","finalProps","editable","multiline","numberOfLines","onKeyPress","jsx"],"sources":["../../src/Input.native.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA;AAAAC,QAAA,CAAAD,oBAAA;EAAAE,KAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAC,YAAA,CAAAL,oBAAA;AAAA,IAAAM,kBAAA,GAA4BC,OAAA;EAC5BC,YAAA,GAAkBC,OAAA,CAAAF,OAAA;EAClBG,mBAAA,GAA0BH,OAAA;EAC1BI,WAAA,GAAiEJ,OAAA;EACjEK,gBAAA,GAAkCL,OAAA;EAClCM,aAAA,GAA2BN,OAAA;EACvBO,WAAA,OAAcH,WAAA,CAAAI,MAAA,EAAOL,mBAAA,CAAAM,SAAA,EAAWH,aAAA,CAAAI,UAAA,CAAW,CAAC,GAAGJ,aAAA,CAAAI,UAAA,CAAW,CAAC,CAAC;EAIjDf,KAAA,GAAQY,WAAA,CAAYI,SAAA,CAAU,UAASC,KAAA,EAAOC,YAAA,EAAc;IACvE,IAAIC,2BAAA;MAA6BC,qBAAA;MAC7B;QAAA;QACJC,IAAA;QAAMC,QAAA;QAAUC,QAAA;QAAUC,EAAA;QAAIC,IAAA;QAAMC,YAAA;QAAcC,YAAA;QAAA;QAClDC,oBAAA;QAAsBC,cAAA;QAAA;QACtBC,QAAA;QAAUC,OAAA;QAASC,SAAA;QAAWC,YAAA;QAAcC,eAAA;QAAiBC,iBAAA;QAAmBC,SAAA;QAAA;QAAA;QAEhFC,OAAA;QAASC,GAAA;QAAKC,GAAA;QAAKC,SAAA;QAAWC,QAAA;QAAUC,IAAA;QAAMC,OAAA;QAASC,QAAA;QAAUC,IAAA;QAAMC,GAAA;QAAK,GAAGC;MAAK,IAAI9B,KAAA;MACpF+B,GAAA,GAAM1C,YAAA,CAAA2C,OAAA,CAAMC,MAAA,CAAO,IAAI;MACvBC,KAAA,OAAQ1C,WAAA,CAAA2C,QAAA,EAAS;MACjBC,YAAA,OAAe5C,WAAA,CAAA6C,eAAA,EAAgBpC,YAAA,EAAc8B,GAAG;MAEhDO,eAAA,GAAkB;MAClBC,YAAA,GAAe;MACfC,SAAA,GAAY;IAChB,QAAOpC,IAAA;MACH,KAAK;QACDkC,eAAA,GAAkB;QAClB;MACJ,KAAK;QACDC,YAAA,GAAe,iBACfC,SAAA,GAAY;QACZ;MACJ,KAAK;QACDD,YAAA,GAAe,aACfC,SAAA,GAAY;QACZ;MACJ,KAAK;QACDD,YAAA,GAAe,WACfC,SAAA,GAAY;QACZ;MACJ,KAAK;QACDD,YAAA,GAAe,OACfC,SAAA,GAAY;QACZ;MACJ,KAAK;QACDA,SAAA,GAAY;QACZ;IACR;IAEA,IAAIC,aAAA,GAAgB;IACpB,QAAO/B,YAAA;MACH,KAAK;QACD+B,aAAA,GAAgB;QAChB;MACJ,KAAK;QACDA,aAAA,GAAgB;QAChB;MACJ,KAAK;QACDA,aAAA,GAAgB;QAChB;MACJ,KAAK;QACDA,aAAA,GAAgB;QAChB;MACJ,KAAK;QACDA,aAAA,GAAgB;QAChB;IACR;IACA,IAAIC,+BAAA;MAEAC,wBAAA,GAA2BhC,oBAAA,OAAuBnB,WAAA,CAAAoD,aAAA,GAAeF,+BAAA,IAAmCxC,2BAAA,GAA8BgC,KAAA,CAAMvB,oBAAoB,OAAO,QAAQT,2BAAA,KAAgC,SAAS,SAASA,2BAAA,CAA4B2C,GAAA,MAAS,QAAQH,+BAAA,KAAoC,SAASA,+BAAA,GAAkC/B,oBAAA,EAAsB,OAAO,IAAI;MAC1XmC,yBAAA;MACAC,sBAAA,GAAyBnC,cAAA,OAAiBpB,WAAA,CAAAoD,aAAA,GAAeE,yBAAA,IAA6B3C,qBAAA,GAAwB+B,KAAA,CAAMtB,cAAc,OAAO,QAAQT,qBAAA,KAA0B,SAAS,SAASA,qBAAA,CAAsB0C,GAAA,MAAS,QAAQC,yBAAA,KAA8B,SAASA,yBAAA,GAA4BlC,cAAA,EAAgB,OAAO,IAAI;IAEtUvB,YAAA,CAAA2C,OAAA,CAAMgB,SAAA,CAAU,YAAW;MACvB,IAAI,GAACzC,EAAA,IAAMF,QAAA,GACX,WAAOZ,gBAAA,CAAAwD,iBAAA,EAAkB1C,EAAA,EAAI;QACzB2C,cAAA,EAAgB,SAAAA,CAAA,EAAW;UACvB,IAAIC,YAAA;UACJ,QAAQA,YAAA,GAAepB,GAAA,CAAIqB,OAAA,MAAa,QAAQD,YAAA,KAAiB,SAAS,SAASA,YAAA,CAAaE,KAAA,CAAM;QAC1G;QACAA,KAAA,EAAO,SAAAA,CAAA,EAAW;UACd,IAAIF,YAAA;UACJ,QAAQA,YAAA,GAAepB,GAAA,CAAIqB,OAAA,MAAa,QAAQD,YAAA,KAAiB,SAAS,SAASA,YAAA,CAAaE,KAAA,CAAM;QAC1G;MACJ,CAAC;IACL,GAAG,CACC9C,EAAA,EACAF,QAAA,CACH;IAED,IAAIiD,gBAAA,GAAmB,SAAAA,CAASC,IAAA,EAAM;QAC0BvC,YAAA,GAAauC,IAAI,GACzE1C,QAAA,IACAA,QAAA,CAAS;UACL2C,MAAA,EAAQ;YACJC,KAAA,EAAOF;UACX;UACAnD,IAAA,EAAM;QACV,CAAC,GAEDU,OAAA,IACAA,OAAA,CAAQ;UACJ0C,MAAA,EAAQ;YACJC,KAAA,EAAOF;UACX;UACAnD,IAAA,EAAM;QACV,CAAC;MAET;MAEIsD,cAAA,GAAiB,SAAAA,CAASC,CAAA,EAAG;QAC7B,IAAI5C,SAAA,EAAW;UACX,IAAI;YAAE6C;UAAI,IAAID,CAAA,CAAEE,WAAA;UAChB,CAAID,GAAA,KAAQ,eAAeA,GAAA,KAAQ,WAAWA,GAAA,CAAIE,MAAA,KAAW,MACzD/C,SAAA,CAAU;YACN6C,GAAA;YACAxD,IAAA,EAAM;UACV,CAAC;QAET;MACJ;MACI2D,mBAAA,GAAsB,SAAAA,CAASJ,CAAA,EAAG;QAC9B5C,SAAA,IACAA,SAAA,CAAU;UACN6C,GAAA,EAAK;UACLxD,IAAA,EAAM;QACV,CAAC,GAEDa,eAAA,IACAA,eAAA,CAAgB0C,CAAC;MAEzB;MAEIK,qBAAA,GAAwB,SAAAA,CAASL,CAAA,EAAG;QACkCzC,iBAAA,GAAkByC,CAAC;MAC7F;MACIM,UAAA,GAAa;QACb,GAAGnC,IAAA;QACHoC,QAAA,EAAU,CAAC7D,QAAA,IAAY,CAACC,QAAA;QACxBgC,eAAA;QACAC,YAAA;QACAC,SAAA;QACAC,aAAA;QACA0B,SAAA,EAAWtC,GAAA,KAAQ,cAAcrB,IAAA,IAAQA,IAAA,GAAO;QAChD4D,aAAA,EAAe5D,IAAA;QACfW,SAAA;QACAR,oBAAA,EAAsBgC,wBAAA;QACtB/B,cAAA,EAAgBmC,sBAAA;QAChB/B,YAAA,EAAcsC,gBAAA;QACde,UAAA,EAAYtD,SAAA,GAAY2C,cAAA,GAAiB;QACzCzC,eAAA,EAAiBF,SAAA,IAAaE,eAAA,GAAkB8C,mBAAA,GAAsB;QACtE7C,iBAAA,EAAmBA,iBAAA,GAAoB8C,qBAAA,GAAwB;QAC/DvD;MACJ;IACA,OAAqB,mBAAAtB,kBAAA,CAAAmF,GAAA,EAAK3E,WAAA,EAAa;MACnCoC,GAAA,EAAKK,YAAA;MACL,GAAG6B;IACP,CAAC;EACL,CAAC","ignoreList":[]}
|
package/dist/jsx/TextArea.js
CHANGED
package/dist/jsx/TextArea.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/TextArea.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,cAAc;AACvB,SAAS,aAAa;AACtB,SAAS,eAAe,2BAA2B;
|
|
4
|
+
"mappings": "AAAA,SAAS,cAAc;AACvB,SAAS,aAAa;AACtB,SAAS,eAAe,2BAA2B;AAQ5C,MAAM,WAAW,OAAO,OAAO;AAAA,EACpC,MAAM;AAAA,EACN,KAAK;AAAA;AAAA;AAAA,EAIL,YAAY;AAAA,EAEZ,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,QAAQ;AAAA,QACR,GAAG;AAAA,QACH,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IAEA,MAAM;AAAA,MACJ,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU,QAAQ,IAAI,qBAAqB;AAAA,EAC7C;AACF,CAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/jsx/TextArea.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["styled","Input","defaultStyles","textAreaSizeVariant","TextArea","name","tag","whiteSpace","variants","unstyled","false","height","
|
|
1
|
+
{"version":3,"names":["styled","Input","defaultStyles","textAreaSizeVariant","TextArea","name","tag","whiteSpace","variants","unstyled","false","height","rows","size","defaultVariants","process","env","TAMAGUI_HEADLESS"],"sources":["../../src/TextArea.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,QAAc;AACvB,SAASC,KAAA,QAAa;AACtB,SAASC,aAAA,EAAeC,mBAAA,QAA2B;AAQ5C,MAAMC,QAAA,GAAWJ,MAAA,CAAOC,KAAA,EAAO;EACpCI,IAAA,EAAM;EACNC,GAAA,EAAK;EAAA;EAAA;EAILC,UAAA,EAAY;EAEZC,QAAA,EAAU;IACRC,QAAA,EAAU;MACRC,KAAA,EAAO;QACLC,MAAA,EAAQ;QACR,GAAGT,aAAA;QACHU,IAAA,EAAM;MACR;IACF;IAEAC,IAAA,EAAM;MACJ,WAAWV;IACb;EACF;EAEAW,eAAA,EAAiB;IACfL,QAAA,EAAUM,OAAA,CAAQC,GAAA,CAAIC,gBAAA,KAAqB;EAC7C;AACF,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","TextArea_exports","TextArea","module","exports","import_web","require","import_Input","import_shared","styled","Input","tag"],"sources":["../../src/TextArea.tsx"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAa,CAAAC,cAAA;AACtB,IAAAC,gBAAS,GAAAF,MAAe,CAAAG,wBAA2B;
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","TextArea_exports","TextArea","module","exports","import_web","require","import_Input","import_shared","styled","Input","tag"],"sources":["../../src/TextArea.tsx"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAa,CAAAC,cAAA;AACtB,IAAAC,gBAAS,GAAAF,MAAe,CAAAG,wBAA2B;AAQ5C,IAAAC,iBAAiB,GAAOJ,MAAA,CAAOK,mBAAA;AAAA,IACpCC,YAAM,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA;AAAA,IACNC,QAAK,GAAAA,CAAAC,MAAA,EAAAC,GAAA;IAAA,SAAAC,IAAA,IAAAD,GAAA,EAAAZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;MAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;MAAAE,UAAA;IAAA;EAAA;EAILC,WAAY,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;IAEZ,IAAAF,IAAA,IAAU,OAAAA,IAAA,uBAAAA,IAAA,gBACR,SAAAG,GAAU,IAAAhB,iBAAA,CAAAa,IAAA,GACR,CAAAX,YAAO,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,IAAAnB,SAAA,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;IAAA,OACLE,EAAA;EAAQ;AACL,IAAAM,YACG,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IAAAE,gBACR;AAAAhB,QACF,CAAAgB,gBAAA;EAAAC,QAEM,EAAAA,CAAA,KAAAA;AAAA;AACOC,MACb,CAAAC,OAAA,GAAAN,YAAA,CAAAG,gBAAA;AAAA,IACFI,UAAA,GAAAC,OAAA;EAAAC,YAAA,GAAAD,OAAA;EAAAE,aAAA,GAAAF,OAAA;EAAAJ,QAAA,OAAAG,UAAA,CAAAI,MAAA,EAAAF,YAAA,CAAAG,KAAA;IAEAtB,IAAA;IAAiBuB,GACf,YAAU;IACZ;IACD","ignoreList":[]}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { View, styled, useComposedRefs, useEvent, useTheme } from "@tamagui/core";
|
|
2
|
+
import { registerFocusable } from "@tamagui/focusable";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { styledBody } from "../shared";
|
|
5
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
const StyledInput = styled(View, styledBody[0], styledBody[1]), Input = StyledInput.styleable((inProps, forwardedRef) => {
|
|
7
|
+
const {
|
|
8
|
+
// some of destructed props are just to avoid passing them to ...rest because they are not in web.
|
|
9
|
+
allowFontScaling,
|
|
10
|
+
selectTextOnFocus,
|
|
11
|
+
showSoftInputOnFocus,
|
|
12
|
+
textContentType,
|
|
13
|
+
passwordRules,
|
|
14
|
+
textBreakStrategy,
|
|
15
|
+
underlineColorAndroid,
|
|
16
|
+
selection,
|
|
17
|
+
lineBreakStrategyIOS,
|
|
18
|
+
returnKeyLabel,
|
|
19
|
+
disabled,
|
|
20
|
+
onSubmitEditing,
|
|
21
|
+
caretHidden,
|
|
22
|
+
clearButtonMode,
|
|
23
|
+
clearTextOnFocus,
|
|
24
|
+
contextMenuHidden,
|
|
25
|
+
dataDetectorTypes,
|
|
26
|
+
id,
|
|
27
|
+
enablesReturnKeyAutomatically,
|
|
28
|
+
importantForAutofill,
|
|
29
|
+
inlineImageLeft,
|
|
30
|
+
inlineImagePadding,
|
|
31
|
+
inputAccessoryViewID,
|
|
32
|
+
keyboardAppearance,
|
|
33
|
+
keyboardType,
|
|
34
|
+
cursorColor,
|
|
35
|
+
disableFullscreenUI,
|
|
36
|
+
editable,
|
|
37
|
+
maxFontSizeMultiplier,
|
|
38
|
+
multiline,
|
|
39
|
+
numberOfLines,
|
|
40
|
+
onChangeText,
|
|
41
|
+
onContentSizeChange,
|
|
42
|
+
onEndEditing,
|
|
43
|
+
onScroll,
|
|
44
|
+
onSelectionChange,
|
|
45
|
+
// @ts-ignore
|
|
46
|
+
caretColor,
|
|
47
|
+
placeholderTextColor,
|
|
48
|
+
blurOnSubmit,
|
|
49
|
+
enterKeyHint,
|
|
50
|
+
returnKeyType,
|
|
51
|
+
rejectResponderTermination,
|
|
52
|
+
scrollEnabled,
|
|
53
|
+
secureTextEntry,
|
|
54
|
+
selectionColor,
|
|
55
|
+
inputMode,
|
|
56
|
+
...rest
|
|
57
|
+
} = inProps, ref = React.useRef(null), theme = useTheme(), composedRefs = useComposedRefs(forwardedRef, ref), _onSelectionChange = useEvent(() => {
|
|
58
|
+
const start = ref.current?.selectionStart ?? 0, end = ref.current?.selectionEnd ?? 0;
|
|
59
|
+
onSelectionChange?.({
|
|
60
|
+
nativeEvent: {
|
|
61
|
+
selection: {
|
|
62
|
+
end,
|
|
63
|
+
start
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
React.useEffect(() => {
|
|
69
|
+
if (onSelectionChange)
|
|
70
|
+
return ref.current?.addEventListener("selectionchange", _onSelectionChange), () => {
|
|
71
|
+
ref.current?.removeEventListener("selectionchange", _onSelectionChange);
|
|
72
|
+
};
|
|
73
|
+
}, []), React.useEffect(() => {
|
|
74
|
+
selection && ref.current?.setSelectionRange(selection.start || null, selection.end || null);
|
|
75
|
+
}, [selection?.start, selection?.end]);
|
|
76
|
+
const finalProps = {
|
|
77
|
+
...rest,
|
|
78
|
+
disabled,
|
|
79
|
+
caretColor,
|
|
80
|
+
id,
|
|
81
|
+
enterKeyHint,
|
|
82
|
+
type: (() => {
|
|
83
|
+
if (rest?.type) return rest.type;
|
|
84
|
+
if (secureTextEntry) return "password";
|
|
85
|
+
switch (keyboardType) {
|
|
86
|
+
case "number-pad":
|
|
87
|
+
case "numeric":
|
|
88
|
+
return "number";
|
|
89
|
+
case "email-address":
|
|
90
|
+
return "email";
|
|
91
|
+
case "phone-pad":
|
|
92
|
+
return "tel";
|
|
93
|
+
case "url":
|
|
94
|
+
return "url";
|
|
95
|
+
default:
|
|
96
|
+
return "text";
|
|
97
|
+
}
|
|
98
|
+
})(),
|
|
99
|
+
inputMode: (() => {
|
|
100
|
+
switch (keyboardType) {
|
|
101
|
+
case "number-pad":
|
|
102
|
+
case "numeric":
|
|
103
|
+
return "numeric";
|
|
104
|
+
case "decimal-pad":
|
|
105
|
+
return "decimal";
|
|
106
|
+
case "email-address":
|
|
107
|
+
return "email";
|
|
108
|
+
case "phone-pad":
|
|
109
|
+
return "tel";
|
|
110
|
+
case "url":
|
|
111
|
+
return "url";
|
|
112
|
+
default:
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
})(),
|
|
116
|
+
style: {
|
|
117
|
+
...rest.style,
|
|
118
|
+
...placeholderTextColor && {
|
|
119
|
+
"--placeholderColor": theme[placeholderTextColor]?.variable || placeholderTextColor
|
|
120
|
+
},
|
|
121
|
+
...selectionColor && {
|
|
122
|
+
"--selectionColor": theme[selectionColor]?.variable || selectionColor
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
return React.useEffect(() => {
|
|
127
|
+
if (id && !disabled)
|
|
128
|
+
return registerFocusable(id, {
|
|
129
|
+
focusAndSelect: () => {
|
|
130
|
+
ref.current?.focus();
|
|
131
|
+
},
|
|
132
|
+
focus: () => {
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}, [id, disabled]), /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
136
|
+
/* @__PURE__ */ jsx("style", { children: `
|
|
137
|
+
input::selection, textarea::selection {
|
|
138
|
+
background-color: var(--selectionBackground) !important;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
input::placeholder, textarea::placeholder {
|
|
142
|
+
color: var(--placeholderColor) !important;
|
|
143
|
+
}
|
|
144
|
+
` }),
|
|
145
|
+
/* @__PURE__ */ jsx(StyledInput, { ref: composedRefs, ...finalProps })
|
|
146
|
+
] });
|
|
147
|
+
});
|
|
148
|
+
export {
|
|
149
|
+
Input
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=Input.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/v1/Input.tsx"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { View, styled, useComposedRefs, useEvent, useTheme } from "@tamagui/core";
|
|
2
|
+
import { registerFocusable } from "@tamagui/focusable";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { styledBody } from "../shared.mjs";
|
|
5
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
const StyledInput = styled(View, styledBody[0], styledBody[1]),
|
|
7
|
+
Input = StyledInput.styleable((inProps, forwardedRef) => {
|
|
8
|
+
const {
|
|
9
|
+
// some of destructed props are just to avoid passing them to ...rest because they are not in web.
|
|
10
|
+
allowFontScaling,
|
|
11
|
+
selectTextOnFocus,
|
|
12
|
+
showSoftInputOnFocus,
|
|
13
|
+
textContentType,
|
|
14
|
+
passwordRules,
|
|
15
|
+
textBreakStrategy,
|
|
16
|
+
underlineColorAndroid,
|
|
17
|
+
selection,
|
|
18
|
+
lineBreakStrategyIOS,
|
|
19
|
+
returnKeyLabel,
|
|
20
|
+
disabled,
|
|
21
|
+
onSubmitEditing,
|
|
22
|
+
caretHidden,
|
|
23
|
+
clearButtonMode,
|
|
24
|
+
clearTextOnFocus,
|
|
25
|
+
contextMenuHidden,
|
|
26
|
+
dataDetectorTypes,
|
|
27
|
+
id,
|
|
28
|
+
enablesReturnKeyAutomatically,
|
|
29
|
+
importantForAutofill,
|
|
30
|
+
inlineImageLeft,
|
|
31
|
+
inlineImagePadding,
|
|
32
|
+
inputAccessoryViewID,
|
|
33
|
+
keyboardAppearance,
|
|
34
|
+
keyboardType,
|
|
35
|
+
cursorColor,
|
|
36
|
+
disableFullscreenUI,
|
|
37
|
+
editable,
|
|
38
|
+
maxFontSizeMultiplier,
|
|
39
|
+
multiline,
|
|
40
|
+
numberOfLines,
|
|
41
|
+
onChangeText,
|
|
42
|
+
onContentSizeChange,
|
|
43
|
+
onEndEditing,
|
|
44
|
+
onScroll,
|
|
45
|
+
onSelectionChange,
|
|
46
|
+
// @ts-ignore
|
|
47
|
+
caretColor,
|
|
48
|
+
placeholderTextColor,
|
|
49
|
+
blurOnSubmit,
|
|
50
|
+
enterKeyHint,
|
|
51
|
+
returnKeyType,
|
|
52
|
+
rejectResponderTermination,
|
|
53
|
+
scrollEnabled,
|
|
54
|
+
secureTextEntry,
|
|
55
|
+
selectionColor,
|
|
56
|
+
inputMode,
|
|
57
|
+
...rest
|
|
58
|
+
} = inProps,
|
|
59
|
+
ref = React.useRef(null),
|
|
60
|
+
theme = useTheme(),
|
|
61
|
+
composedRefs = useComposedRefs(forwardedRef, ref),
|
|
62
|
+
_onSelectionChange = useEvent(() => {
|
|
63
|
+
const start = ref.current?.selectionStart ?? 0,
|
|
64
|
+
end = ref.current?.selectionEnd ?? 0;
|
|
65
|
+
onSelectionChange?.({
|
|
66
|
+
nativeEvent: {
|
|
67
|
+
selection: {
|
|
68
|
+
end,
|
|
69
|
+
start
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
React.useEffect(() => {
|
|
75
|
+
if (onSelectionChange) return ref.current?.addEventListener("selectionchange", _onSelectionChange), () => {
|
|
76
|
+
ref.current?.removeEventListener("selectionchange", _onSelectionChange);
|
|
77
|
+
};
|
|
78
|
+
}, []), React.useEffect(() => {
|
|
79
|
+
selection && ref.current?.setSelectionRange(selection.start || null, selection.end || null);
|
|
80
|
+
}, [selection?.start, selection?.end]);
|
|
81
|
+
const finalProps = {
|
|
82
|
+
...rest,
|
|
83
|
+
disabled,
|
|
84
|
+
caretColor,
|
|
85
|
+
id,
|
|
86
|
+
enterKeyHint,
|
|
87
|
+
type: (() => {
|
|
88
|
+
if (rest?.type) return rest.type;
|
|
89
|
+
if (secureTextEntry) return "password";
|
|
90
|
+
switch (keyboardType) {
|
|
91
|
+
case "number-pad":
|
|
92
|
+
case "numeric":
|
|
93
|
+
return "number";
|
|
94
|
+
case "email-address":
|
|
95
|
+
return "email";
|
|
96
|
+
case "phone-pad":
|
|
97
|
+
return "tel";
|
|
98
|
+
case "url":
|
|
99
|
+
return "url";
|
|
100
|
+
default:
|
|
101
|
+
return "text";
|
|
102
|
+
}
|
|
103
|
+
})(),
|
|
104
|
+
inputMode: (() => {
|
|
105
|
+
switch (keyboardType) {
|
|
106
|
+
case "number-pad":
|
|
107
|
+
case "numeric":
|
|
108
|
+
return "numeric";
|
|
109
|
+
case "decimal-pad":
|
|
110
|
+
return "decimal";
|
|
111
|
+
case "email-address":
|
|
112
|
+
return "email";
|
|
113
|
+
case "phone-pad":
|
|
114
|
+
return "tel";
|
|
115
|
+
case "url":
|
|
116
|
+
return "url";
|
|
117
|
+
default:
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
})(),
|
|
121
|
+
style: {
|
|
122
|
+
...rest.style,
|
|
123
|
+
...(placeholderTextColor && {
|
|
124
|
+
"--placeholderColor": theme[placeholderTextColor]?.variable || placeholderTextColor
|
|
125
|
+
}),
|
|
126
|
+
...(selectionColor && {
|
|
127
|
+
"--selectionColor": theme[selectionColor]?.variable || selectionColor
|
|
128
|
+
})
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
return React.useEffect(() => {
|
|
132
|
+
if (id && !disabled) return registerFocusable(id, {
|
|
133
|
+
focusAndSelect: () => {
|
|
134
|
+
ref.current?.focus();
|
|
135
|
+
},
|
|
136
|
+
focus: () => {}
|
|
137
|
+
});
|
|
138
|
+
}, [id, disabled]), /* @__PURE__ */jsxs(Fragment, {
|
|
139
|
+
children: [/* @__PURE__ */jsx("style", {
|
|
140
|
+
children: `
|
|
141
|
+
input::selection, textarea::selection {
|
|
142
|
+
background-color: var(--selectionBackground) !important;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
input::placeholder, textarea::placeholder {
|
|
146
|
+
color: var(--placeholderColor) !important;
|
|
147
|
+
}
|
|
148
|
+
`
|
|
149
|
+
}), /* @__PURE__ */jsx(StyledInput, {
|
|
150
|
+
ref: composedRefs,
|
|
151
|
+
...finalProps
|
|
152
|
+
})]
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
export { Input };
|
|
156
|
+
//# sourceMappingURL=Input.mjs.map
|