@tamagui/input 2.7.7 → 3.0.0-beta.637.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.
Files changed (168) hide show
  1. package/dist/cjs/Input.cjs +78 -162
  2. package/dist/cjs/Input.native.cjs +209 -0
  3. package/dist/cjs/Input.native.js +186 -282
  4. package/dist/cjs/Input.native.js.map +1 -1
  5. package/dist/cjs/InputNativeProps.cjs +10 -11
  6. package/dist/cjs/InputNativeProps.native.cjs +19 -0
  7. package/dist/cjs/InputNativeProps.native.js +10 -10
  8. package/dist/cjs/InputNativeProps.native.js.map +1 -1
  9. package/dist/cjs/TextArea.cjs +25 -38
  10. package/dist/cjs/TextArea.native.cjs +41 -0
  11. package/dist/cjs/TextArea.native.js +25 -37
  12. package/dist/cjs/TextArea.native.js.map +1 -1
  13. package/dist/cjs/index.cjs +16 -17
  14. package/dist/cjs/index.native.cjs +33 -0
  15. package/dist/cjs/index.native.js +16 -16
  16. package/dist/cjs/index.native.js.map +1 -1
  17. package/dist/cjs/shared.cjs +115 -122
  18. package/dist/cjs/shared.native.cjs +144 -0
  19. package/dist/cjs/shared.native.js +120 -126
  20. package/dist/cjs/shared.native.js.map +1 -1
  21. package/dist/cjs/types.cjs +10 -11
  22. package/dist/cjs/types.native.cjs +19 -0
  23. package/dist/cjs/types.native.js +10 -10
  24. package/dist/cjs/types.native.js.map +1 -1
  25. package/dist/esm/Input.mjs +63 -137
  26. package/dist/esm/Input.mjs.map +1 -1
  27. package/dist/esm/Input.native.js +172 -259
  28. package/dist/esm/Input.native.js.map +1 -1
  29. package/dist/esm/InputNativeProps.mjs +0 -2
  30. package/dist/esm/InputNativeProps.native.js +0 -2
  31. package/dist/esm/TextArea.mjs +12 -20
  32. package/dist/esm/TextArea.mjs.map +1 -1
  33. package/dist/esm/TextArea.native.js +12 -20
  34. package/dist/esm/TextArea.native.js.map +1 -1
  35. package/dist/esm/index.js +6 -4
  36. package/dist/esm/index.mjs +6 -4
  37. package/dist/esm/index.native.js +6 -4
  38. package/dist/esm/shared.mjs +99 -104
  39. package/dist/esm/shared.mjs.map +1 -1
  40. package/dist/esm/shared.native.js +104 -109
  41. package/dist/esm/shared.native.js.map +1 -1
  42. package/dist/esm/types.mjs +0 -2
  43. package/dist/esm/types.native.js +0 -2
  44. package/dist/jsx/Input.mjs +63 -137
  45. package/dist/jsx/Input.mjs.map +1 -1
  46. package/dist/jsx/Input.native.cjs +209 -0
  47. package/dist/jsx/Input.native.js +186 -282
  48. package/dist/jsx/Input.native.js.map +1 -1
  49. package/dist/jsx/InputNativeProps.mjs +0 -2
  50. package/dist/jsx/InputNativeProps.native.cjs +19 -0
  51. package/dist/jsx/InputNativeProps.native.js +10 -10
  52. package/dist/jsx/InputNativeProps.native.js.map +1 -1
  53. package/dist/jsx/TextArea.mjs +12 -20
  54. package/dist/jsx/TextArea.mjs.map +1 -1
  55. package/dist/jsx/TextArea.native.cjs +41 -0
  56. package/dist/jsx/TextArea.native.js +25 -37
  57. package/dist/jsx/TextArea.native.js.map +1 -1
  58. package/dist/jsx/index.js +6 -4
  59. package/dist/jsx/index.mjs +6 -4
  60. package/dist/jsx/index.native.cjs +33 -0
  61. package/dist/jsx/index.native.js +16 -16
  62. package/dist/jsx/index.native.js.map +1 -1
  63. package/dist/jsx/shared.mjs +99 -104
  64. package/dist/jsx/shared.mjs.map +1 -1
  65. package/dist/jsx/shared.native.cjs +144 -0
  66. package/dist/jsx/shared.native.js +120 -126
  67. package/dist/jsx/shared.native.js.map +1 -1
  68. package/dist/jsx/types.mjs +0 -2
  69. package/dist/jsx/types.native.cjs +19 -0
  70. package/dist/jsx/types.native.js +10 -10
  71. package/dist/jsx/types.native.js.map +1 -1
  72. package/package.json +13 -15
  73. package/src/Input.native.tsx +263 -240
  74. package/src/Input.tsx +162 -152
  75. package/src/TextArea.tsx +6 -14
  76. package/src/shared.tsx +65 -70
  77. package/src/types.ts +1 -1
  78. package/types/Input.d.ts +57 -41
  79. package/types/Input.d.ts.map +1 -1
  80. package/types/Input.native.d.ts +57 -41
  81. package/types/Input.native.d.ts.map +1 -1
  82. package/types/TextArea.d.ts +172 -24
  83. package/types/TextArea.d.ts.map +1 -1
  84. package/types/shared.d.ts +14 -99
  85. package/types/shared.d.ts.map +1 -1
  86. package/types/types.d.ts +1 -1
  87. package/dist/cjs/inputTypes.test-d.cjs +0 -128
  88. package/dist/cjs/inputTypes.test-d.native.js +0 -131
  89. package/dist/cjs/inputTypes.test-d.native.js.map +0 -1
  90. package/dist/cjs/v1/Input.cjs +0 -200
  91. package/dist/cjs/v1/Input.native.js +0 -183
  92. package/dist/cjs/v1/Input.native.js.map +0 -1
  93. package/dist/cjs/v1/TextArea.cjs +0 -52
  94. package/dist/cjs/v1/TextArea.native.js +0 -55
  95. package/dist/cjs/v1/TextArea.native.js.map +0 -1
  96. package/dist/cjs/v1/index.cjs +0 -21
  97. package/dist/cjs/v1/index.native.js +0 -24
  98. package/dist/cjs/v1/index.native.js.map +0 -1
  99. package/dist/cjs/v1/types.cjs +0 -18
  100. package/dist/cjs/v1/types.native.js +0 -21
  101. package/dist/cjs/v1/types.native.js.map +0 -1
  102. package/dist/esm/InputNativeProps.mjs.map +0 -1
  103. package/dist/esm/InputNativeProps.native.js.map +0 -1
  104. package/dist/esm/index.js.map +0 -1
  105. package/dist/esm/index.mjs.map +0 -1
  106. package/dist/esm/index.native.js.map +0 -1
  107. package/dist/esm/inputTypes.test-d.mjs +0 -129
  108. package/dist/esm/inputTypes.test-d.mjs.map +0 -1
  109. package/dist/esm/inputTypes.test-d.native.js +0 -129
  110. package/dist/esm/inputTypes.test-d.native.js.map +0 -1
  111. package/dist/esm/types.mjs.map +0 -1
  112. package/dist/esm/types.native.js.map +0 -1
  113. package/dist/esm/v1/Input.mjs +0 -164
  114. package/dist/esm/v1/Input.mjs.map +0 -1
  115. package/dist/esm/v1/Input.native.js +0 -144
  116. package/dist/esm/v1/Input.native.js.map +0 -1
  117. package/dist/esm/v1/TextArea.mjs +0 -27
  118. package/dist/esm/v1/TextArea.mjs.map +0 -1
  119. package/dist/esm/v1/TextArea.native.js +0 -27
  120. package/dist/esm/v1/TextArea.native.js.map +0 -1
  121. package/dist/esm/v1/index.mjs +0 -3
  122. package/dist/esm/v1/index.mjs.map +0 -1
  123. package/dist/esm/v1/index.native.js +0 -3
  124. package/dist/esm/v1/index.native.js.map +0 -1
  125. package/dist/esm/v1/types.mjs +0 -2
  126. package/dist/esm/v1/types.mjs.map +0 -1
  127. package/dist/esm/v1/types.native.js +0 -2
  128. package/dist/esm/v1/types.native.js.map +0 -1
  129. package/dist/jsx/InputNativeProps.mjs.map +0 -1
  130. package/dist/jsx/index.js.map +0 -1
  131. package/dist/jsx/index.mjs.map +0 -1
  132. package/dist/jsx/inputTypes.test-d.mjs +0 -129
  133. package/dist/jsx/inputTypes.test-d.mjs.map +0 -1
  134. package/dist/jsx/inputTypes.test-d.native.js +0 -131
  135. package/dist/jsx/inputTypes.test-d.native.js.map +0 -1
  136. package/dist/jsx/types.mjs.map +0 -1
  137. package/dist/jsx/v1/Input.mjs +0 -164
  138. package/dist/jsx/v1/Input.mjs.map +0 -1
  139. package/dist/jsx/v1/Input.native.js +0 -183
  140. package/dist/jsx/v1/Input.native.js.map +0 -1
  141. package/dist/jsx/v1/TextArea.mjs +0 -27
  142. package/dist/jsx/v1/TextArea.mjs.map +0 -1
  143. package/dist/jsx/v1/TextArea.native.js +0 -55
  144. package/dist/jsx/v1/TextArea.native.js.map +0 -1
  145. package/dist/jsx/v1/index.mjs +0 -3
  146. package/dist/jsx/v1/index.mjs.map +0 -1
  147. package/dist/jsx/v1/index.native.js +0 -24
  148. package/dist/jsx/v1/index.native.js.map +0 -1
  149. package/dist/jsx/v1/types.mjs +0 -2
  150. package/dist/jsx/v1/types.mjs.map +0 -1
  151. package/dist/jsx/v1/types.native.js +0 -21
  152. package/dist/jsx/v1/types.native.js.map +0 -1
  153. package/src/inputTypes.test-d.ts +0 -245
  154. package/src/v1/Input.native.tsx +0 -153
  155. package/src/v1/Input.tsx +0 -190
  156. package/src/v1/TextArea.tsx +0 -35
  157. package/src/v1/index.ts +0 -3
  158. package/src/v1/types.ts +0 -65
  159. package/types/v1/Input.d.ts +0 -64
  160. package/types/v1/Input.d.ts.map +0 -1
  161. package/types/v1/Input.native.d.ts +0 -63
  162. package/types/v1/Input.native.d.ts.map +0 -1
  163. package/types/v1/TextArea.d.ts +0 -41
  164. package/types/v1/TextArea.d.ts.map +0 -1
  165. package/types/v1/index.d.ts +0 -4
  166. package/types/v1/index.d.ts.map +0 -1
  167. package/types/v1/types.d.ts +0 -39
  168. package/types/v1/types.d.ts.map +0 -1
@@ -1,3 +1,4 @@
1
+
1
2
  var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -5,36 +6,27 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
5
6
  var __getProtoOf = Object.getPrototypeOf;
6
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
8
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
9
+ for (var name in all) __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true
12
+ });
12
13
  };
13
14
  var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
- get: () => from[key],
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- return to;
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
17
+ get: () => from[key],
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
21
+ return to;
21
22
  };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
- // If the importer is in node compatibility mode or this is not an ESM
24
- // file that has been converted to a CommonJS file using a Babel-
25
- // compatible transform (i.e. "__esModule" has not been set), then set
26
- // "default" to the CommonJS "module.exports" for node compatibility.
27
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
- value: mod,
29
- enumerable: true
23
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
24
+ value: mod,
25
+ enumerable: true
30
26
  }) : target, mod));
31
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
- value: true
33
- }), mod);
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
28
  var Input_exports = {};
35
- __export(Input_exports, {
36
- Input: () => Input
37
- });
29
+ __export(Input_exports, { Input: () => Input });
38
30
  module.exports = __toCommonJS(Input_exports);
39
31
  var import_core = require("@tamagui/core");
40
32
  var import_focusable = require("@tamagui/focusable");
@@ -43,140 +35,64 @@ var import_react = __toESM(require("react"), 1);
43
35
  var import_shared = require("./shared.cjs");
44
36
  var import_jsx_runtime = require("react/jsx-runtime");
45
37
  const StyledInput = (0, import_core.styled)(import_core.View, import_shared.styledBody[0], import_shared.styledBody[1]);
46
- const Input = StyledInput.styleable((props, _forwardedRef) => {
47
- const {
48
- disabled,
49
- id,
50
- onChangeText,
51
- onSubmitEditing,
52
- onSelectionChange,
53
- selection,
54
- placeholderTextColor,
55
- selectionColor,
56
- rows,
57
- // Native-only props (ignored on web)
58
- keyboardAppearance,
59
- returnKeyType,
60
- submitBehavior,
61
- blurOnSubmit,
62
- caretHidden,
63
- contextMenuHidden,
64
- selectTextOnFocus,
65
- secureTextEntry,
66
- maxFontSizeMultiplier,
67
- allowFontScaling,
68
- multiline,
69
- keyboardType,
70
- autoCapitalize: autoCapitalizeProp,
71
- autoCorrect: autoCorrectProp,
72
- autoFocusNative,
73
- textContentType,
74
- onEndEditing,
75
- onContentSizeChange,
76
- onScroll,
77
- onKeyPress,
78
- // iOS-only props (ignored on web)
79
- clearButtonMode,
80
- clearTextOnFocus,
81
- enablesReturnKeyAutomatically,
82
- dataDetectorTypes,
83
- scrollEnabled,
84
- passwordRules,
85
- rejectResponderTermination,
86
- spellCheck,
87
- lineBreakStrategyIOS,
88
- lineBreakModeIOS,
89
- smartInsertDelete,
90
- inputAccessoryViewID,
91
- inputAccessoryViewButtonLabel,
92
- disableKeyboardShortcuts,
93
- // Android-only props (ignored on web)
94
- cursorColor,
95
- selectionHandleColor,
96
- underlineColorAndroid,
97
- importantForAutofill,
98
- disableFullscreenUI,
99
- inlineImageLeft,
100
- inlineImagePadding,
101
- returnKeyLabel,
102
- textBreakStrategy,
103
- textAlignVertical,
104
- verticalAlign,
105
- showSoftInputOnFocus,
106
- numberOfLines,
107
- ...rest
108
- } = props;
109
- const {
110
- ref,
111
- composedRef
112
- } = (0, import_element.useWebRef)(_forwardedRef);
113
- const theme = (0, import_core.useTheme)();
114
- const autoCorrect = autoCorrectProp === true ? "on" : autoCorrectProp === false ? "off" : autoCorrectProp;
115
- const autoCapitalize = autoCapitalizeProp === "sentences" || autoCapitalizeProp === "words" ? "on" : autoCapitalizeProp === "none" || autoCapitalizeProp === "characters" ? "off" : autoCapitalizeProp;
116
- import_react.default.useEffect(() => {
117
- if (!onSelectionChange) return;
118
- const node = ref.current;
119
- if (!node) return;
120
- const handleSelectionChange = () => {
121
- onSelectionChange({
122
- nativeEvent: {
123
- selection: {
124
- start: node.selectionStart ?? 0,
125
- end: node.selectionEnd ?? 0
126
- }
127
- }
128
- });
129
- };
130
- node.addEventListener("select", handleSelectionChange);
131
- return () => node.removeEventListener("select", handleSelectionChange);
132
- }, [onSelectionChange]);
133
- import_react.default.useEffect(() => {
134
- if (selection && ref.current) {
135
- ref.current.setSelectionRange(selection.start, selection.end ?? selection.start);
136
- }
137
- }, [selection?.start, selection?.end]);
138
- import_react.default.useEffect(() => {
139
- if (!id || disabled) return;
140
- return (0, import_focusable.registerFocusable)(id, {
141
- focusAndSelect: () => ref.current?.focus(),
142
- focus: () => ref.current?.focus()
143
- });
144
- }, [id, disabled]);
145
- const handleKeyDown = e => {
146
- if (e.key === "Enter" && onSubmitEditing) {
147
- onSubmitEditing({
148
- nativeEvent: {
149
- text: e.target.value
150
- }
151
- });
152
- }
153
- rest.onKeyDown?.(e);
154
- };
155
- const handleChange = e => {
156
- onChangeText?.(e.target.value);
157
- rest.onChange?.(e);
158
- };
159
- const finalProps = {
160
- ...rest,
161
- disabled,
162
- id,
163
- rows,
164
- autoCorrect,
165
- autoCapitalize,
166
- onKeyDown: onSubmitEditing ? handleKeyDown : rest.onKeyDown,
167
- onChange: onChangeText ? handleChange : rest.onChange,
168
- style: {
169
- ...rest.style,
170
- ...(placeholderTextColor && {
171
- "--t_placeholderColor": theme[placeholderTextColor]?.variable || placeholderTextColor
172
- }),
173
- ...(selectionColor && {
174
- "--t_selectionColor": theme[selectionColor]?.variable || selectionColor
175
- })
176
- }
177
- };
178
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(StyledInput, {
179
- ref: composedRef,
180
- ...finalProps
181
- });
182
- });
38
+ const Input = (0, import_core.createStyledHOC)(StyledInput, (props, _forwardedRef) => {
39
+ const { disabled, id, onChangeText, onSubmitEditing, onSelectionChange, selection, placeholderTextColor, selectionColor, rows, keyboardAppearance, returnKeyType, submitBehavior, blurOnSubmit, caretHidden, contextMenuHidden, selectTextOnFocus, secureTextEntry, maxFontSizeMultiplier, allowFontScaling, multiline, keyboardType, autoCapitalize: autoCapitalizeProp, autoCorrect: autoCorrectProp, autoFocusNative, textContentType, onEndEditing, onContentSizeChange, onScroll, onKeyPress, clearButtonMode, clearTextOnFocus, enablesReturnKeyAutomatically, dataDetectorTypes, scrollEnabled, passwordRules, rejectResponderTermination, spellCheck, lineBreakStrategyIOS, lineBreakModeIOS, smartInsertDelete, inputAccessoryViewID, inputAccessoryViewButtonLabel, disableKeyboardShortcuts, cursorColor, selectionHandleColor, underlineColorAndroid, importantForAutofill, disableFullscreenUI, inlineImageLeft, inlineImagePadding, returnKeyLabel, textBreakStrategy, textAlignVertical, verticalAlign, showSoftInputOnFocus, numberOfLines, ...rest } = props;
40
+ const { ref, composedRef } = (0, import_element.useWebRef)(_forwardedRef);
41
+ const theme = (0, import_core.useTheme)();
42
+ const autoCorrect = autoCorrectProp === true ? "on" : autoCorrectProp === false ? "off" : autoCorrectProp;
43
+ const autoCapitalize = autoCapitalizeProp === "sentences" || autoCapitalizeProp === "words" ? "on" : autoCapitalizeProp === "none" || autoCapitalizeProp === "characters" ? "off" : autoCapitalizeProp;
44
+ import_react.default.useEffect(() => {
45
+ if (!onSelectionChange) return;
46
+ const node = ref.current;
47
+ if (!node) return;
48
+ const handleSelectionChange = () => {
49
+ onSelectionChange({ nativeEvent: { selection: {
50
+ start: node.selectionStart ?? 0,
51
+ end: node.selectionEnd ?? 0
52
+ } } });
53
+ };
54
+ node.addEventListener("select", handleSelectionChange);
55
+ return () => node.removeEventListener("select", handleSelectionChange);
56
+ }, [onSelectionChange]);
57
+ import_react.default.useEffect(() => {
58
+ if (selection && ref.current) {
59
+ ref.current.setSelectionRange(selection.start, selection.end ?? selection.start);
60
+ }
61
+ }, [selection?.start, selection?.end]);
62
+ import_react.default.useEffect(() => {
63
+ if (!id || disabled) return;
64
+ return (0, import_focusable.registerFocusable)(id, {
65
+ focusAndSelect: () => ref.current?.focus(),
66
+ focus: () => ref.current?.focus()
67
+ });
68
+ }, [id, disabled]);
69
+ const handleKeyDown = (e) => {
70
+ if (e.key === "Enter" && onSubmitEditing) {
71
+ onSubmitEditing({ nativeEvent: { text: e.target.value } });
72
+ }
73
+ rest.onKeyDown?.(e);
74
+ };
75
+ const handleChange = (e) => {
76
+ onChangeText?.(e.target.value);
77
+ rest.onChange?.(e);
78
+ };
79
+ const finalProps = {
80
+ ...rest,
81
+ disabled,
82
+ id,
83
+ rows,
84
+ autoCorrect,
85
+ autoCapitalize,
86
+ onKeyDown: onSubmitEditing ? handleKeyDown : rest.onKeyDown,
87
+ onChange: onChangeText ? handleChange : rest.onChange,
88
+ style: {
89
+ ...rest.style,
90
+ ...placeholderTextColor && { "--t_placeholderColor": theme[placeholderTextColor]?.variable || placeholderTextColor },
91
+ ...selectionColor && { "--t_selectionColor": theme[selectionColor]?.variable || selectionColor }
92
+ }
93
+ };
94
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledInput, {
95
+ ref: composedRef,
96
+ ...finalProps
97
+ });
98
+ });
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+
3
+
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __export = (target, all) => {
11
+ for (var name in all) __defProp(target, name, {
12
+ get: all[name],
13
+ enumerable: true
14
+ });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
19
+ get: () => from[key],
20
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
21
+ });
22
+ }
23
+ return to;
24
+ };
25
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: true
28
+ }) : target, mod));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var Input_native_exports = {};
31
+ __export(Input_native_exports, { Input: () => Input });
32
+ module.exports = __toCommonJS(Input_native_exports);
33
+ var import_jsx_runtime = require("react/jsx-runtime");
34
+ var import_react = __toESM(require("react"), 1);
35
+ var import_react_native = require("react-native");
36
+ var import_core = require("@tamagui/core");
37
+ var import_focusable = require("@tamagui/focusable");
38
+ var import_element = require("@tamagui/element");
39
+ var import_shared = require("./shared.native.js");
40
+ var StyledInput = (0, import_core.styled)(import_react_native.TextInput, import_shared.styledBody[0], import_shared.styledBody[1]);
41
+ var Input = (0, import_core.createStyledHOC)(StyledInput, function(props, forwardedRef) {
42
+ var { type, disabled, readOnly, id, rows, autoComplete, enterKeyHint, onChange, onInput, onKeyDown, onChangeText, onSubmitEditing, onSelectionChange, onEndEditing, onContentSizeChange, onScroll, onKeyPress: onKeyPressProp, selection, keyboardAppearance, returnKeyType: returnKeyTypeProp, submitBehavior, blurOnSubmit, caretHidden, contextMenuHidden, selectTextOnFocus, secureTextEntry: secureTextEntryProp, maxFontSizeMultiplier, allowFontScaling, multiline: multilineProp, keyboardType: keyboardTypeProp, inputMode: inputModeProp, autoCapitalize: autoCapitalizeProp, autoCorrect: autoCorrectProp, autoFocusNative, textContentType, clearButtonMode, clearTextOnFocus, enablesReturnKeyAutomatically, dataDetectorTypes, scrollEnabled, passwordRules, rejectResponderTermination, spellCheck, lineBreakStrategyIOS, lineBreakModeIOS, smartInsertDelete, inputAccessoryViewID, inputAccessoryViewButtonLabel, disableKeyboardShortcuts, importantForAutofill, disableFullscreenUI, inlineImageLeft, inlineImagePadding, returnKeyLabel, textBreakStrategy, textAlignVertical, verticalAlign, showSoftInputOnFocus, numberOfLines: numberOfLinesProp, dirname, min, max, minLength, multiple, name, pattern, required, step, render, caretColor, cursorColor: cursorColorProp, selectionColor: selectionColorProp, ...rest } = props;
43
+ var { ref, composedRef } = (0, import_element.useNativeInputRef)(forwardedRef);
44
+ var secureTextEntry = secureTextEntryProp !== null && secureTextEntryProp !== void 0 ? secureTextEntryProp : false;
45
+ var keyboardType = keyboardTypeProp !== null && keyboardTypeProp !== void 0 ? keyboardTypeProp : "default";
46
+ var inputMode = inputModeProp;
47
+ if (!secureTextEntryProp && !keyboardTypeProp && !inputModeProp) {
48
+ switch (type) {
49
+ case "password":
50
+ secureTextEntry = true;
51
+ break;
52
+ case "email":
53
+ keyboardType = "email-address";
54
+ inputMode = "email";
55
+ break;
56
+ case "tel":
57
+ keyboardType = "phone-pad";
58
+ inputMode = "tel";
59
+ break;
60
+ case "number":
61
+ keyboardType = "numeric";
62
+ inputMode = "numeric";
63
+ break;
64
+ case "url":
65
+ keyboardType = "url";
66
+ inputMode = "url";
67
+ break;
68
+ case "search":
69
+ inputMode = "search";
70
+ break;
71
+ }
72
+ }
73
+ var returnKeyType = returnKeyTypeProp;
74
+ if (!returnKeyType && enterKeyHint) {
75
+ switch (enterKeyHint) {
76
+ case "done":
77
+ returnKeyType = "done";
78
+ break;
79
+ case "go":
80
+ returnKeyType = "go";
81
+ break;
82
+ case "next":
83
+ returnKeyType = "next";
84
+ break;
85
+ case "search":
86
+ returnKeyType = "search";
87
+ break;
88
+ case "send":
89
+ returnKeyType = "send";
90
+ break;
91
+ }
92
+ }
93
+ var multiline = multilineProp !== null && multilineProp !== void 0 ? multilineProp : render === "textarea" || rows && rows > 1;
94
+ var numberOfLines = numberOfLinesProp !== null && numberOfLinesProp !== void 0 ? numberOfLinesProp : rows;
95
+ var autoCorrect = autoCorrectProp === "on" ? true : autoCorrectProp === "off" ? false : autoCorrectProp;
96
+ var autoCapitalize = autoCapitalizeProp === "on" ? "sentences" : autoCapitalizeProp === "off" ? "none" : autoCapitalizeProp;
97
+ import_react.default.useEffect(function() {
98
+ if (!id || disabled) return;
99
+ return (0, import_focusable.registerFocusable)(id, {
100
+ focusAndSelect: function() {
101
+ var _ref_current;
102
+ return (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.focus();
103
+ },
104
+ focus: function() {
105
+ var _ref_current;
106
+ return (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.focus();
107
+ }
108
+ });
109
+ }, [id, disabled]);
110
+ var handleChangeText = function(text) {
111
+ onChangeText === null || onChangeText === void 0 ? void 0 : onChangeText(text);
112
+ if (onChange) {
113
+ onChange({
114
+ target: { value: text },
115
+ type: "change"
116
+ });
117
+ }
118
+ if (onInput) {
119
+ onInput({
120
+ target: { value: text },
121
+ type: "input"
122
+ });
123
+ }
124
+ };
125
+ var handleKeyPress = function(e) {
126
+ onKeyPressProp === null || onKeyPressProp === void 0 ? void 0 : onKeyPressProp(e);
127
+ if (onKeyDown) {
128
+ var { key } = e.nativeEvent;
129
+ if (key === "Backspace" || key === "Enter" || key.length === 1) {
130
+ onKeyDown({
131
+ key,
132
+ type: "keydown"
133
+ });
134
+ }
135
+ }
136
+ };
137
+ var handleSubmitEditing = function(e) {
138
+ if (onKeyDown) {
139
+ onKeyDown({
140
+ key: "Enter",
141
+ type: "keydown"
142
+ });
143
+ }
144
+ onSubmitEditing === null || onSubmitEditing === void 0 ? void 0 : onSubmitEditing(e);
145
+ };
146
+ var handleSelectionChange = function(e) {
147
+ onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(e);
148
+ };
149
+ var finalProps = {
150
+ ...rest,
151
+ editable: !disabled && !readOnly,
152
+ secureTextEntry,
153
+ keyboardType,
154
+ keyboardAppearance,
155
+ inputMode,
156
+ returnKeyType,
157
+ multiline,
158
+ numberOfLines,
159
+ selection,
160
+ autoComplete,
161
+ autoFocus: autoFocusNative,
162
+ onChangeText: handleChangeText,
163
+ onKeyPress: onKeyPressProp || onKeyDown ? handleKeyPress : void 0,
164
+ onSubmitEditing: onKeyDown || onSubmitEditing ? handleSubmitEditing : void 0,
165
+ onSelectionChange: onSelectionChange ? handleSelectionChange : void 0,
166
+ onEndEditing,
167
+ onContentSizeChange,
168
+ onScroll,
169
+ submitBehavior,
170
+ blurOnSubmit,
171
+ caretHidden,
172
+ contextMenuHidden,
173
+ selectTextOnFocus,
174
+ maxFontSizeMultiplier,
175
+ allowFontScaling,
176
+ autoCapitalize,
177
+ autoCorrect,
178
+ textContentType,
179
+ clearButtonMode,
180
+ clearTextOnFocus,
181
+ enablesReturnKeyAutomatically,
182
+ dataDetectorTypes,
183
+ scrollEnabled,
184
+ passwordRules,
185
+ rejectResponderTermination,
186
+ spellCheck,
187
+ lineBreakStrategyIOS,
188
+ lineBreakModeIOS,
189
+ smartInsertDelete,
190
+ inputAccessoryViewID,
191
+ inputAccessoryViewButtonLabel,
192
+ disableKeyboardShortcuts,
193
+ importantForAutofill,
194
+ disableFullscreenUI,
195
+ inlineImageLeft,
196
+ inlineImagePadding,
197
+ returnKeyLabel,
198
+ textBreakStrategy,
199
+ textAlignVertical,
200
+ verticalAlign,
201
+ showSoftInputOnFocus,
202
+ cursorColor: cursorColorProp !== null && cursorColorProp !== void 0 ? cursorColorProp : caretColor,
203
+ selectionColor: selectionColorProp !== null && selectionColorProp !== void 0 ? selectionColorProp : caretColor
204
+ };
205
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledInput, {
206
+ ref: composedRef,
207
+ ...finalProps
208
+ });
209
+ });