@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.
Files changed (130) hide show
  1. package/dist/cjs/Input.cjs +57 -122
  2. package/dist/cjs/Input.js +46 -115
  3. package/dist/cjs/Input.js.map +1 -1
  4. package/dist/cjs/Input.native.js +133 -71
  5. package/dist/cjs/Input.native.js.map +1 -1
  6. package/dist/cjs/TextArea.cjs +1 -1
  7. package/dist/cjs/TextArea.js +1 -1
  8. package/dist/cjs/TextArea.js.map +1 -1
  9. package/dist/cjs/TextArea.native.js +1 -1
  10. package/dist/cjs/TextArea.native.js.map +1 -1
  11. package/dist/cjs/v1/Input.cjs +190 -0
  12. package/dist/cjs/v1/Input.js +171 -0
  13. package/dist/cjs/v1/Input.js.map +6 -0
  14. package/dist/cjs/v1/Input.native.js +138 -0
  15. package/dist/cjs/v1/Input.native.js.map +1 -0
  16. package/dist/cjs/v1/TextArea.cjs +50 -0
  17. package/dist/cjs/v1/TextArea.js +43 -0
  18. package/dist/cjs/v1/TextArea.js.map +6 -0
  19. package/dist/cjs/v1/TextArea.native.js +53 -0
  20. package/dist/cjs/v1/TextArea.native.js.map +1 -0
  21. package/dist/cjs/v1/index.cjs +19 -0
  22. package/dist/cjs/v1/index.js +16 -0
  23. package/dist/cjs/v1/index.js.map +6 -0
  24. package/dist/cjs/v1/index.native.js +22 -0
  25. package/dist/cjs/v1/index.native.js.map +1 -0
  26. package/dist/cjs/v1/types.cjs +16 -0
  27. package/dist/cjs/v1/types.js +14 -0
  28. package/dist/cjs/v1/types.js.map +6 -0
  29. package/dist/cjs/v1/types.native.js +19 -0
  30. package/dist/cjs/v1/types.native.js.map +1 -0
  31. package/dist/esm/Input.js +47 -116
  32. package/dist/esm/Input.js.map +1 -1
  33. package/dist/esm/Input.mjs +58 -123
  34. package/dist/esm/Input.mjs.map +1 -1
  35. package/dist/esm/Input.native.js +134 -72
  36. package/dist/esm/Input.native.js.map +1 -1
  37. package/dist/esm/TextArea.js +1 -1
  38. package/dist/esm/TextArea.js.map +1 -1
  39. package/dist/esm/TextArea.mjs +1 -1
  40. package/dist/esm/TextArea.mjs.map +1 -1
  41. package/dist/esm/TextArea.native.js +1 -1
  42. package/dist/esm/TextArea.native.js.map +1 -1
  43. package/dist/esm/v1/Input.js +151 -0
  44. package/dist/esm/v1/Input.js.map +6 -0
  45. package/dist/esm/v1/Input.mjs +156 -0
  46. package/dist/esm/v1/Input.mjs.map +1 -0
  47. package/dist/esm/v1/Input.native.js +101 -0
  48. package/dist/esm/v1/Input.native.js.map +1 -0
  49. package/dist/esm/v1/TextArea.js +29 -0
  50. package/dist/esm/v1/TextArea.js.map +6 -0
  51. package/dist/esm/v1/TextArea.mjs +27 -0
  52. package/dist/esm/v1/TextArea.mjs.map +1 -0
  53. package/dist/esm/v1/TextArea.native.js +27 -0
  54. package/dist/esm/v1/TextArea.native.js.map +1 -0
  55. package/dist/esm/v1/index.js +3 -0
  56. package/dist/esm/v1/index.js.map +6 -0
  57. package/dist/esm/v1/index.mjs +3 -0
  58. package/dist/esm/v1/index.mjs.map +1 -0
  59. package/dist/esm/v1/index.native.js +3 -0
  60. package/dist/esm/v1/index.native.js.map +1 -0
  61. package/dist/esm/v1/types.js +1 -0
  62. package/dist/esm/v1/types.js.map +6 -0
  63. package/dist/esm/v1/types.mjs +2 -0
  64. package/dist/esm/v1/types.mjs.map +1 -0
  65. package/dist/esm/v1/types.native.js +2 -0
  66. package/dist/esm/v1/types.native.js.map +1 -0
  67. package/dist/jsx/Input.js +47 -116
  68. package/dist/jsx/Input.js.map +1 -1
  69. package/dist/jsx/Input.mjs +58 -123
  70. package/dist/jsx/Input.mjs.map +1 -1
  71. package/dist/jsx/Input.native.js +133 -71
  72. package/dist/jsx/Input.native.js.map +1 -1
  73. package/dist/jsx/TextArea.js +1 -1
  74. package/dist/jsx/TextArea.js.map +1 -1
  75. package/dist/jsx/TextArea.mjs +1 -1
  76. package/dist/jsx/TextArea.mjs.map +1 -1
  77. package/dist/jsx/TextArea.native.js +1 -1
  78. package/dist/jsx/TextArea.native.js.map +1 -1
  79. package/dist/jsx/v1/Input.js +151 -0
  80. package/dist/jsx/v1/Input.js.map +6 -0
  81. package/dist/jsx/v1/Input.mjs +156 -0
  82. package/dist/jsx/v1/Input.mjs.map +1 -0
  83. package/dist/jsx/v1/Input.native.js +138 -0
  84. package/dist/jsx/v1/Input.native.js.map +1 -0
  85. package/dist/jsx/v1/TextArea.js +29 -0
  86. package/dist/jsx/v1/TextArea.js.map +6 -0
  87. package/dist/jsx/v1/TextArea.mjs +27 -0
  88. package/dist/jsx/v1/TextArea.mjs.map +1 -0
  89. package/dist/jsx/v1/TextArea.native.js +53 -0
  90. package/dist/jsx/v1/TextArea.native.js.map +1 -0
  91. package/dist/jsx/v1/index.js +3 -0
  92. package/dist/jsx/v1/index.js.map +6 -0
  93. package/dist/jsx/v1/index.mjs +3 -0
  94. package/dist/jsx/v1/index.mjs.map +1 -0
  95. package/dist/jsx/v1/index.native.js +22 -0
  96. package/dist/jsx/v1/index.native.js.map +1 -0
  97. package/dist/jsx/v1/types.js +1 -0
  98. package/dist/jsx/v1/types.js.map +6 -0
  99. package/dist/jsx/v1/types.mjs +2 -0
  100. package/dist/jsx/v1/types.mjs.map +1 -0
  101. package/dist/jsx/v1/types.native.js +19 -0
  102. package/dist/jsx/v1/types.native.js.map +1 -0
  103. package/package.json +13 -13
  104. package/src/Input.native.tsx +145 -110
  105. package/src/Input.tsx +67 -137
  106. package/src/TextArea.tsx +4 -2
  107. package/src/types.ts +52 -41
  108. package/src/v1/Input.native.tsx +154 -0
  109. package/src/v1/Input.tsx +191 -0
  110. package/src/v1/TextArea.tsx +35 -0
  111. package/src/v1/index.ts +3 -0
  112. package/src/v1/types.ts +65 -0
  113. package/types/Input.d.ts +47 -21
  114. package/types/Input.d.ts.map +1 -1
  115. package/types/Input.native.d.ts +52 -22
  116. package/types/Input.native.d.ts.map +1 -1
  117. package/types/TextArea.d.ts +25 -11
  118. package/types/TextArea.d.ts.map +1 -1
  119. package/types/types.d.ts +47 -21
  120. package/types/types.d.ts.map +1 -1
  121. package/types/v1/Input.d.ts +115 -0
  122. package/types/v1/Input.d.ts.map +1 -0
  123. package/types/v1/Input.native.d.ts +114 -0
  124. package/types/v1/Input.native.d.ts.map +1 -0
  125. package/types/v1/TextArea.d.ts +98 -0
  126. package/types/v1/TextArea.d.ts.map +1 -0
  127. package/types/v1/index.d.ts +4 -0
  128. package/types/v1/index.d.ts.map +1 -0
  129. package/types/v1/types.d.ts +39 -0
  130. package/types/v1/types.d.ts.map +1 -0
@@ -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 (inProps, forwardedRef) {
47
- var {
48
- // some of destructed props are just to avoid passing them to ...rest because they are not in native.
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
- //@ts-ignore
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
- } = inProps,
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
- cursorColor = caretColor,
76
- _returnKeyType = returnKeyType,
77
- _enterKeyHint = enterKeyHint;
78
- enterKeyHint === "go" && (_returnKeyType = "go", _enterKeyHint = void 0);
79
- var _inputMode = inputMode;
80
- type === "email" ? _inputMode = "email" : type === "tel" ? _inputMode = "tel" : type === "search" ? _inputMode = "search" : type === "url" ? _inputMode = "url" : type === "password" ? (secureTextEntry = !0, _inputMode = "text") : type === "number" ? _inputMode = "numeric" : _inputMode = "text";
81
- var showSoftInputOnFocus = !0;
82
- inputMode === "none" && (showSoftInputOnFocus = !1);
83
- var finalProps = {
84
- ...rest,
85
- inputMode: _inputMode,
86
- showSoftInputOnFocus,
87
- disabled,
88
- id,
89
- cursorColor,
90
- enterKeyHint: _enterKeyHint,
91
- returnKeyType: _returnKeyType,
92
- secureTextEntry,
93
- numberOfLines: rows || rest.numberOfLines
94
- };
95
- return tag === "textarea" && (finalProps.multiline = !0), onKeyDown && (finalProps.onKeyPress = function (e) {
96
- var {
97
- key
98
- } = e.nativeEvent;
99
- (key === "Backspace" || tag === "textarea" && key === "Enter" || key.length === 1) && onKeyDown({
100
- key,
101
- type: "keydown"
102
- });
103
- }, finalProps.onSubmitEditing = function (e) {
104
- onKeyDown({
105
- key: "Enter",
106
- type: "keydown"
107
- });
108
- }), (onChange || onInput) && (finalProps.onChange = function (e) {
109
- var {
110
- text
111
- } = e.nativeEvent;
112
- onChange && onChange({
113
- target: {
114
- value: text
115
- },
116
- type: "change"
117
- }), onInput?.({
118
- target: {
119
- value: text
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 || _ref_current.focus();
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]), /* @__PURE__ */(0, import_jsx_runtime.jsx)(StyledInput, {
132
- onChange: function (e) {},
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","import_core","import_focusable","import_react_native","import_shared","StyledInput","styled","TextInput","styledBody","styleable","inProps","forwardedRef","type","dirname","max","min","minLength","multiple","name","required","step","disabled","id","caretColor","onChange","onInput","rows","enterKeyHint","returnKeyType","onKeyDown","inputMode","tag","rest","ref","default","useRef","composedRefs","useComposedRefs","secureTextEntry","cursorColor","_returnKeyType","_enterKeyHint","_inputMode","showSoftInputOnFocus","finalProps","numberOfLines","multiline","onKeyPress","e","key","nativeEvent","length","onSubmitEditing","text","target","value","useEffect","registerFocusable","focusAndSelect","_ref_current","current","focus","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,WAAA,GAAwCH,OAAA;EACxCI,gBAAA,GAAkCJ,OAAA;EAClCK,mBAAA,GAA0BL,OAAA;EAC1BM,aAAA,GAA2BN,OAAA;EACvBO,WAAA,OAAcJ,WAAA,CAAAK,MAAA,EAAOH,mBAAA,CAAAI,SAAA,EAAWH,aAAA,CAAAI,UAAA,CAAW,CAAC,GAAGJ,aAAA,CAAAI,UAAA,CAAW,CAAC,CAAC;EACrDf,KAAA,GAAQY,WAAA,CAAYI,SAAA,CAAU,UAASC,OAAA,EAASC,YAAA,EAAc;IACrE,IAAI;QAAA;QACJC,IAAA;QAAA;QACAC,OAAA;QAASC,GAAA;QAAKC,GAAA;QAAKC,SAAA;QAAWC,QAAA;QAAUC,IAAA;QAAMC,QAAA;QAAUC,IAAA;QAAMC,QAAA;QAAUC,EAAA;QAAIC,UAAA;QAAYC,QAAA;QAAUC,OAAA;QAASC,IAAA;QAAMC,YAAA;QAAcC,aAAA;QAAeC,SAAA;QAAWC,SAAA;QAAWC,GAAA;QAAK,GAAGC;MAAK,IAAItB,OAAA;MACjLuB,GAAA,GAAMlC,YAAA,CAAAmC,OAAA,CAAMC,MAAA,CAAO,IAAI;MACvBC,YAAA,OAAenC,WAAA,CAAAoC,eAAA,EAAgB1B,YAAA,EAAcsB,GAAG;MAEhDK,eAAA,GAAkB;MAClBC,WAAA,GAAchB,UAAA;MACdiB,cAAA,GAAiBZ,aAAA;MACjBa,aAAA,GAAgBd,YAAA;IAChBA,YAAA,KAAiB,SACjBa,cAAA,GAAiB,MACjBC,aAAA,GAAgB;IAEpB,IAAIC,UAAA,GAAaZ,SAAA;IACblB,IAAA,KAAS,UACT8B,UAAA,GAAa,UACN9B,IAAA,KAAS,QAChB8B,UAAA,GAAa,QACN9B,IAAA,KAAS,WAChB8B,UAAA,GAAa,WACN9B,IAAA,KAAS,QAChB8B,UAAA,GAAa,QACN9B,IAAA,KAAS,cAChB0B,eAAA,GAAkB,IAClBI,UAAA,GAAa,UACN9B,IAAA,KAAS,WAChB8B,UAAA,GAAa,YAEbA,UAAA,GAAa;IAEjB,IAAIC,oBAAA,GAAuB;IACvBb,SAAA,KAAc,WACda,oBAAA,GAAuB;IAE3B,IAAIC,UAAA,GAAa;MACb,GAAGZ,IAAA;MACHF,SAAA,EAAWY,UAAA;MACXC,oBAAA;MACAtB,QAAA;MACAC,EAAA;MACAiB,WAAA;MACAZ,YAAA,EAAcc,aAAA;MACdb,aAAA,EAAeY,cAAA;MACfF,eAAA;MACAO,aAAA,EAAenB,IAAA,IAAQM,IAAA,CAAKa;IAChC;IACA,OAAId,GAAA,KAAQ,eACRa,UAAA,CAAWE,SAAA,GAAY,KAEvBjB,SAAA,KACAe,UAAA,CAAWG,UAAA,GAAa,UAASC,CAAA,EAAG;MAChC,IAAI;QAAEC;MAAI,IAAID,CAAA,CAAEE,WAAA;MAChB,CAAID,GAAA,KAAQ,eAAelB,GAAA,KAAQ,cAAckB,GAAA,KAAQ,WAAWA,GAAA,CAAIE,MAAA,KAAW,MAC/EtB,SAAA,CAAU;QACNoB,GAAA;QACArC,IAAA,EAAM;MACV,CAAC;IAET,GACAgC,UAAA,CAAWQ,eAAA,GAAkB,UAASJ,CAAA,EAAG;MACrCnB,SAAA,CAAU;QACNoB,GAAA,EAAK;QACLrC,IAAA,EAAM;MACV,CAAC;IACL,KAEAY,QAAA,IAAYC,OAAA,MACZmB,UAAA,CAAWpB,QAAA,GAAW,UAASwB,CAAA,EAAG;MAC9B,IAAI;QAAEK;MAAK,IAAIL,CAAA,CAAEE,WAAA;MACb1B,QAAA,IACAA,QAAA,CAAS;QACL8B,MAAA,EAAQ;UACJC,KAAA,EAAOF;QACX;QACAzC,IAAA,EAAM;MACV,CAAC,GAGDa,OAAA,GAAQ;QACJ6B,MAAA,EAAQ;UACJC,KAAA,EAAOF;QACX;QACAzC,IAAA,EAAM;MACV,CAAC;IAET,IAEJb,YAAA,CAAAmC,OAAA,CAAMsB,SAAA,CAAU,YAAW;MACvB,IAAKlC,EAAA,IACD,CAAAD,QAAA,EACJ,WAAOnB,gBAAA,CAAAuD,iBAAA,EAAkBnC,EAAA,EAAI;QACzBoC,cAAA,EAAgB,SAAAA,CAAA,EAAW;UACvB,IAAIC,YAAA;UACJ,CAACA,YAAA,GAAe1B,GAAA,CAAI2B,OAAA,MAAa,QAAQD,YAAA,KAAiB,UAAkBA,YAAA,CAAaE,KAAA,CAAM;QACnG;QACAA,KAAA,EAAO,SAAAA,CAAA,EAAW,CAAC;MACvB,CAAC;IACL,GAAG,CACCvC,EAAA,EACAD,QAAA,CACH,GACoB,mBAAAxB,kBAAA,CAAAiE,GAAA,EAAKzD,WAAA,EAAa;MACnCmB,QAAA,EAAU,SAAAA,CAASwB,CAAA,EAAG,CAAC;MACvBf,GAAA,EAAKG,YAAA;MACL,GAAGQ;IACP,CAAC;EACL,CAAC","ignoreList":[]}
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":"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","ignoreList":[]}
@@ -12,7 +12,7 @@ const TextArea = styled(Input, {
12
12
  false: {
13
13
  height: "auto",
14
14
  ...defaultStyles,
15
- numberOfLines: 3
15
+ rows: 3
16
16
  }
17
17
  },
18
18
  size: {
@@ -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;AAM5C,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,eAAe;AAAA,MACjB;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;",
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
  }
@@ -12,7 +12,7 @@ const TextArea = styled(Input, {
12
12
  false: {
13
13
  height: "auto",
14
14
  ...defaultStyles,
15
- numberOfLines: 3
15
+ rows: 3
16
16
  }
17
17
  },
18
18
  size: {
@@ -1 +1 @@
1
- {"version":3,"names":["styled","Input","defaultStyles","textAreaSizeVariant","TextArea","name","tag","whiteSpace","variants","unstyled","false","height","numberOfLines","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;AAM5C,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,aAAA,EAAe;MACjB;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
+ {"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":[]}
@@ -39,7 +39,7 @@ var import_web = require("@tamagui/web"),
39
39
  false: {
40
40
  height: "auto",
41
41
  ...import_shared.defaultStyles,
42
- numberOfLines: 3
42
+ rows: 3
43
43
  }
44
44
  },
45
45
  size: {
@@ -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;AAM5C,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,YACH,GAAAC,GAAe,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IAAAE,gBACjB;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":[]}
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": "AAAA,SAAS,MAAM,QAAQ,iBAAiB,UAAU,gBAAgB;AAClE,SAAS,yBAAyB;AAClC,OAAO,WAAiE;AACxE,SAAS,kBAAkB;AAyKvB,mBAEI,KAFJ;AAtKJ,MAAM,cAAc,OAAO,MAAM,WAAW,CAAC,GAAG,WAAW,CAAC,CAAC,GAOhD,QAAQ,YAAY,UAAsB,CAAC,SAAS,iBAAiB;AAChF,QAAM;AAAA;AAAA,IAEJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI,SAEE,MAAM,MAAM,OAAyB,IAAI,GACzC,QAAQ,SAAS,GAEjB,eAAe,gBAAgB,cAAc,GAAG,GAEhD,qBAAqB,SAAS,MAAM;AACxC,UAAM,QAAQ,IAAI,SAAS,kBAAkB,GACvC,MAAM,IAAI,SAAS,gBAAgB;AACzC,wBAAoB;AAAA,MAClB,aAAa;AAAA,QACX,WAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAQ;AAAA,EACV,CAAC;AAED,QAAM,UAAU,MAAM;AACpB,QAAI;AACF,iBAAI,SAAS,iBAAiB,mBAAmB,kBAAkB,GAC5D,MAAM;AACX,YAAI,SAAS,oBAAoB,mBAAmB,kBAAkB;AAAA,MACxE;AAAA,EAEJ,GAAG,CAAC,CAAC,GAEL,MAAM,UAAU,MAAM;AACpB,IAAI,aACF,IAAI,SAAS,kBAAkB,UAAU,SAAS,MAAM,UAAU,OAAO,IAAI;AAAA,EAEjF,GAAG,CAAC,WAAW,OAAO,WAAW,GAAG,CAAC;AAErC,QAAM,aAAa;AAAA,IACjB,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAGM,OAAO,MAAM;AACX,UAAI,MAAM,KAAM,QAAO,KAAK;AAC5B,UAAI,gBAAiB,QAAO;AAC5B,cAAQ,cAAc;AAAA,QACpB,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACX;AAAA,IACF,GAAG;AAAA,IACH,YAAY,MAAM;AAChB,cAAQ,cAAc;AAAA,QACpB,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT;AACE;AAAA,MACJ;AAAA,IACF,GAAG;AAAA,IAOT,OAAO;AAAA,MACL,GAAI,KAAK;AAAA,MACT,GAAI,wBAAwB;AAAA,QAC1B,sBACE,MAAM,oBAAoB,GAAG,YAAY;AAAA,MAC7C;AAAA,MACA,GAAI,kBAAkB;AAAA,QACpB,oBAAoB,MAAM,cAAc,GAAG,YAAY;AAAA,MACzD;AAAA,IACF;AAAA,EACF;AAEA,eAAM,UAAU,MAAM;AACpB,QAAK,MACD;AAEJ,aAAO,kBAAkB,IAAI;AAAA,QAC3B,gBAAgB,MAAM;AACpB,cAAI,SAAS,MAAM;AAAA,QACrB;AAAA,QACA,OAAO,MAAM;AAAA,QAAC;AAAA,MAChB,CAAC;AAAA,EACH,GAAG,CAAC,IAAI,QAAQ,CAAC,GAGf,iCAEI;AAAA,wBAAC,WACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SASH;AAAA,IAGF,oBAAC,eAAY,KAAK,cAAe,GAAG,YAAY;AAAA,KAClD;AAEJ,CAAC;",
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