@tamagui/input 2.0.0-rc.3 → 2.0.0-rc.30

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 (120) hide show
  1. package/dist/cjs/Input.native.js +1 -26
  2. package/dist/cjs/Input.native.js.map +1 -1
  3. package/dist/cjs/TextArea.native.js.map +1 -1
  4. package/dist/cjs/index.js +19 -13
  5. package/dist/cjs/inputTypes.test-d.cjs +92 -0
  6. package/dist/cjs/inputTypes.test-d.native.js +95 -0
  7. package/dist/cjs/inputTypes.test-d.native.js.map +1 -0
  8. package/dist/cjs/shared.cjs +4 -1
  9. package/dist/cjs/shared.native.js +4 -1
  10. package/dist/cjs/shared.native.js.map +1 -1
  11. package/dist/esm/Input.mjs.map +1 -1
  12. package/dist/esm/Input.native.js +2 -27
  13. package/dist/esm/Input.native.js.map +1 -1
  14. package/dist/esm/TextArea.mjs.map +1 -1
  15. package/dist/esm/TextArea.native.js.map +1 -1
  16. package/dist/esm/index.js +4 -7
  17. package/dist/esm/index.js.map +1 -6
  18. package/dist/esm/inputTypes.test-d.mjs +93 -0
  19. package/dist/esm/inputTypes.test-d.mjs.map +1 -0
  20. package/dist/esm/inputTypes.test-d.native.js +93 -0
  21. package/dist/esm/inputTypes.test-d.native.js.map +1 -0
  22. package/dist/esm/shared.mjs +4 -1
  23. package/dist/esm/shared.mjs.map +1 -1
  24. package/dist/esm/shared.native.js +4 -1
  25. package/dist/esm/shared.native.js.map +1 -1
  26. package/dist/jsx/Input.mjs.map +1 -1
  27. package/dist/jsx/Input.native.js +1 -26
  28. package/dist/jsx/Input.native.js.map +1 -1
  29. package/dist/jsx/TextArea.mjs.map +1 -1
  30. package/dist/jsx/TextArea.native.js.map +1 -1
  31. package/dist/jsx/index.js +4 -7
  32. package/dist/jsx/index.js.map +1 -6
  33. package/dist/jsx/inputTypes.test-d.mjs +93 -0
  34. package/dist/jsx/inputTypes.test-d.mjs.map +1 -0
  35. package/dist/jsx/inputTypes.test-d.native.js +95 -0
  36. package/dist/jsx/inputTypes.test-d.native.js.map +1 -0
  37. package/dist/jsx/shared.mjs +4 -1
  38. package/dist/jsx/shared.mjs.map +1 -1
  39. package/dist/jsx/shared.native.js +4 -1
  40. package/dist/jsx/shared.native.js.map +1 -1
  41. package/package.json +20 -22
  42. package/src/Input.native.tsx +3 -30
  43. package/src/Input.tsx +5 -3
  44. package/src/TextArea.tsx +3 -3
  45. package/src/index.ts +1 -1
  46. package/src/inputTypes.test-d.ts +237 -0
  47. package/src/shared.tsx +3 -0
  48. package/src/types.ts +24 -14
  49. package/types/Input.d.ts +17 -6
  50. package/types/Input.d.ts.map +1 -1
  51. package/types/Input.native.d.ts +15 -6
  52. package/types/Input.native.d.ts.map +1 -1
  53. package/types/TextArea.d.ts +11 -4
  54. package/types/TextArea.d.ts.map +1 -1
  55. package/types/index.d.ts +1 -1
  56. package/types/index.d.ts.map +1 -1
  57. package/types/shared.d.ts +3 -0
  58. package/types/shared.d.ts.map +1 -1
  59. package/types/types.d.ts +14 -4
  60. package/types/types.d.ts.map +1 -1
  61. package/types/v1/Input.d.ts +15 -6
  62. package/types/v1/Input.d.ts.map +1 -1
  63. package/types/v1/Input.native.d.ts +15 -6
  64. package/types/v1/Input.native.d.ts.map +1 -1
  65. package/types/v1/TextArea.d.ts +9 -3
  66. package/types/v1/TextArea.d.ts.map +1 -1
  67. package/dist/cjs/Input.js +0 -143
  68. package/dist/cjs/Input.js.map +0 -6
  69. package/dist/cjs/InputNativeProps.js +0 -14
  70. package/dist/cjs/InputNativeProps.js.map +0 -6
  71. package/dist/cjs/TextArea.js +0 -43
  72. package/dist/cjs/TextArea.js.map +0 -6
  73. package/dist/cjs/shared.js +0 -108
  74. package/dist/cjs/shared.js.map +0 -6
  75. package/dist/cjs/types.js +0 -14
  76. package/dist/cjs/types.js.map +0 -6
  77. package/dist/cjs/v1/Input.js +0 -171
  78. package/dist/cjs/v1/Input.js.map +0 -6
  79. package/dist/cjs/v1/TextArea.js +0 -43
  80. package/dist/cjs/v1/TextArea.js.map +0 -6
  81. package/dist/cjs/v1/index.js +0 -16
  82. package/dist/cjs/v1/index.js.map +0 -6
  83. package/dist/cjs/v1/types.js +0 -14
  84. package/dist/cjs/v1/types.js.map +0 -6
  85. package/dist/esm/Input.js +0 -124
  86. package/dist/esm/Input.js.map +0 -6
  87. package/dist/esm/InputNativeProps.js +0 -1
  88. package/dist/esm/InputNativeProps.js.map +0 -6
  89. package/dist/esm/TextArea.js +0 -29
  90. package/dist/esm/TextArea.js.map +0 -6
  91. package/dist/esm/shared.js +0 -96
  92. package/dist/esm/shared.js.map +0 -6
  93. package/dist/esm/types.js +0 -1
  94. package/dist/esm/types.js.map +0 -6
  95. package/dist/esm/v1/Input.js +0 -152
  96. package/dist/esm/v1/Input.js.map +0 -6
  97. package/dist/esm/v1/TextArea.js +0 -29
  98. package/dist/esm/v1/TextArea.js.map +0 -6
  99. package/dist/esm/v1/index.js +0 -3
  100. package/dist/esm/v1/index.js.map +0 -6
  101. package/dist/esm/v1/types.js +0 -1
  102. package/dist/esm/v1/types.js.map +0 -6
  103. package/dist/jsx/Input.js +0 -124
  104. package/dist/jsx/Input.js.map +0 -6
  105. package/dist/jsx/InputNativeProps.js +0 -1
  106. package/dist/jsx/InputNativeProps.js.map +0 -6
  107. package/dist/jsx/TextArea.js +0 -29
  108. package/dist/jsx/TextArea.js.map +0 -6
  109. package/dist/jsx/shared.js +0 -96
  110. package/dist/jsx/shared.js.map +0 -6
  111. package/dist/jsx/types.js +0 -1
  112. package/dist/jsx/types.js.map +0 -6
  113. package/dist/jsx/v1/Input.js +0 -152
  114. package/dist/jsx/v1/Input.js.map +0 -6
  115. package/dist/jsx/v1/TextArea.js +0 -29
  116. package/dist/jsx/v1/TextArea.js.map +0 -6
  117. package/dist/jsx/v1/index.js +0 -3
  118. package/dist/jsx/v1/index.js.map +0 -6
  119. package/dist/jsx/v1/types.js +0 -1
  120. package/dist/jsx/v1/types.js.map +0 -6
@@ -1,152 +0,0 @@
1
- import { View, styled, useEvent, useTheme } from "@tamagui/core";
2
- import { registerFocusable } from "@tamagui/focusable";
3
- import { useWebRef } from "@tamagui/element";
4
- import React from "react";
5
- import { styledBody } from "../shared";
6
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
- const StyledInput = styled(View, styledBody[0], styledBody[1]), 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, { ref, composedRef } = useWebRef(forwardedRef), theme = useTheme(), _onSelectionChange = useEvent(() => {
59
- const start = ref.current?.selectionStart ?? 0, end = ref.current?.selectionEnd ?? 0;
60
- onSelectionChange?.({
61
- nativeEvent: {
62
- selection: {
63
- end,
64
- start
65
- }
66
- }
67
- });
68
- });
69
- React.useEffect(() => {
70
- if (onSelectionChange)
71
- return ref.current?.addEventListener("selectionchange", _onSelectionChange), () => {
72
- ref.current?.removeEventListener("selectionchange", _onSelectionChange);
73
- };
74
- }, []), React.useEffect(() => {
75
- selection && ref.current?.setSelectionRange(selection.start || null, selection.end || null);
76
- }, [selection?.start, selection?.end]);
77
- const finalProps = {
78
- ...rest,
79
- disabled,
80
- caretColor,
81
- id,
82
- enterKeyHint,
83
- type: (() => {
84
- if (rest?.type) return rest.type;
85
- if (secureTextEntry) return "password";
86
- switch (keyboardType) {
87
- case "number-pad":
88
- case "numeric":
89
- return "number";
90
- case "email-address":
91
- return "email";
92
- case "phone-pad":
93
- return "tel";
94
- case "url":
95
- return "url";
96
- default:
97
- return "text";
98
- }
99
- })(),
100
- inputMode: (() => {
101
- switch (keyboardType) {
102
- case "number-pad":
103
- case "numeric":
104
- return "numeric";
105
- case "decimal-pad":
106
- return "decimal";
107
- case "email-address":
108
- return "email";
109
- case "phone-pad":
110
- return "tel";
111
- case "url":
112
- return "url";
113
- default:
114
- return;
115
- }
116
- })(),
117
- style: {
118
- ...rest.style,
119
- ...placeholderTextColor && {
120
- "--placeholderColor": theme[placeholderTextColor]?.variable || placeholderTextColor
121
- },
122
- ...selectionColor && {
123
- "--selectionBackground": theme[selectionColor]?.variable || selectionColor
124
- }
125
- }
126
- };
127
- return React.useEffect(() => {
128
- if (id && !disabled)
129
- return registerFocusable(id, {
130
- focusAndSelect: () => {
131
- ref.current?.focus();
132
- },
133
- focus: () => {
134
- }
135
- });
136
- }, [id, disabled]), /* @__PURE__ */ jsxs(Fragment, { children: [
137
- /* @__PURE__ */ jsx("style", { children: `
138
- input::selection, textarea::selection {
139
- background-color: var(--selectionBackground) !important;
140
- }
141
-
142
- input::placeholder, textarea::placeholder {
143
- color: var(--placeholderColor) !important;
144
- }
145
- ` }),
146
- /* @__PURE__ */ jsx(StyledInput, { ref: composedRef, ...finalProps })
147
- ] });
148
- });
149
- export {
150
- Input
151
- };
152
- //# sourceMappingURL=Input.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/v1/Input.tsx"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,29 +0,0 @@
1
- import { styled } from "@tamagui/web";
2
- import { Input } from "./Input";
3
- import { defaultStyles, textAreaSizeVariant } from "../shared";
4
- const TextArea = styled(Input, {
5
- name: "TextArea",
6
- render: "textarea",
7
- // this attribute fixes firefox newline issue
8
- // @ts-ignore
9
- whiteSpace: "pre-wrap",
10
- variants: {
11
- unstyled: {
12
- false: {
13
- height: "auto",
14
- ...defaultStyles,
15
- numberOfLines: 3
16
- }
17
- },
18
- size: {
19
- "...size": textAreaSizeVariant
20
- }
21
- },
22
- defaultVariants: {
23
- unstyled: process.env.TAMAGUI_HEADLESS === "1"
24
- }
25
- });
26
- export {
27
- TextArea
28
- };
29
- //# sourceMappingURL=TextArea.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/v1/TextArea.tsx"],
4
- "mappings": "AAAA,SAAS,cAAc;AACvB,SAAS,aAAa;AACtB,SAAS,eAAe,2BAA2B;AAO5C,MAAM,WAAW,OAAO,OAAO;AAAA,EACpC,MAAM;AAAA,EACN,QAAQ;AAAA;AAAA;AAAA,EAIR,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;",
5
- "names": []
6
- }
@@ -1,3 +0,0 @@
1
- export * from "./Input";
2
- export * from "./TextArea";
3
- //# sourceMappingURL=index.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/v1/index.ts"],
4
- "mappings": "AAAA,cAAc;AACd,cAAc;",
5
- "names": []
6
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=types.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "mappings": "",
5
- "names": []
6
- }
package/dist/jsx/Input.js DELETED
@@ -1,124 +0,0 @@
1
- import { View, styled, useTheme } from "@tamagui/core";
2
- import { registerFocusable } from "@tamagui/focusable";
3
- import { useWebRef } from "@tamagui/element";
4
- import React from "react";
5
- import { styledBody } from "./shared";
6
- import { jsx } from "react/jsx-runtime";
7
- const StyledInput = styled(View, styledBody[0], styledBody[1]), Input = StyledInput.styleable((props, _forwardedRef) => {
8
- const {
9
- disabled,
10
- id,
11
- onChangeText,
12
- onSubmitEditing,
13
- onSelectionChange,
14
- selection,
15
- placeholderTextColor,
16
- selectionColor,
17
- rows,
18
- // Native-only props (ignored on web)
19
- keyboardAppearance,
20
- returnKeyType,
21
- submitBehavior,
22
- blurOnSubmit,
23
- caretHidden,
24
- contextMenuHidden,
25
- selectTextOnFocus,
26
- secureTextEntry,
27
- maxFontSizeMultiplier,
28
- allowFontScaling,
29
- multiline,
30
- keyboardType,
31
- autoCapitalize: autoCapitalizeProp,
32
- autoCorrect: autoCorrectProp,
33
- autoFocusNative,
34
- textContentType,
35
- onEndEditing,
36
- onContentSizeChange,
37
- onScroll,
38
- onKeyPress,
39
- // iOS-only props (ignored on web)
40
- clearButtonMode,
41
- clearTextOnFocus,
42
- enablesReturnKeyAutomatically,
43
- dataDetectorTypes,
44
- scrollEnabled,
45
- passwordRules,
46
- rejectResponderTermination,
47
- spellCheck,
48
- lineBreakStrategyIOS,
49
- lineBreakModeIOS,
50
- smartInsertDelete,
51
- inputAccessoryViewID,
52
- inputAccessoryViewButtonLabel,
53
- disableKeyboardShortcuts,
54
- // Android-only props (ignored on web)
55
- cursorColor,
56
- selectionHandleColor,
57
- underlineColorAndroid,
58
- importantForAutofill,
59
- disableFullscreenUI,
60
- inlineImageLeft,
61
- inlineImagePadding,
62
- returnKeyLabel,
63
- textBreakStrategy,
64
- textAlignVertical,
65
- verticalAlign,
66
- showSoftInputOnFocus,
67
- numberOfLines,
68
- ...rest
69
- } = props, { ref, composedRef } = useWebRef(_forwardedRef), theme = useTheme(), autoCorrect = autoCorrectProp === !0 ? "on" : autoCorrectProp === !1 ? "off" : autoCorrectProp, autoCapitalize = autoCapitalizeProp === "sentences" || autoCapitalizeProp === "words" ? "on" : autoCapitalizeProp === "none" || autoCapitalizeProp === "characters" ? "off" : autoCapitalizeProp;
70
- React.useEffect(() => {
71
- if (!onSelectionChange) return;
72
- const node = ref.current;
73
- if (!node) return;
74
- const handleSelectionChange = () => {
75
- onSelectionChange({
76
- nativeEvent: {
77
- selection: {
78
- start: node.selectionStart ?? 0,
79
- end: node.selectionEnd ?? 0
80
- }
81
- }
82
- });
83
- };
84
- return node.addEventListener("select", handleSelectionChange), () => node.removeEventListener("select", handleSelectionChange);
85
- }, [onSelectionChange]), React.useEffect(() => {
86
- selection && ref.current && ref.current.setSelectionRange(selection.start, selection.end ?? selection.start);
87
- }, [selection?.start, selection?.end]), React.useEffect(() => {
88
- if (!(!id || disabled))
89
- return registerFocusable(id, {
90
- focusAndSelect: () => ref.current?.focus(),
91
- focus: () => ref.current?.focus()
92
- });
93
- }, [id, disabled]);
94
- const handleKeyDown = (e) => {
95
- e.key === "Enter" && onSubmitEditing && onSubmitEditing({
96
- nativeEvent: { text: e.target.value }
97
- }), rest.onKeyDown?.(e);
98
- }, handleChange = (e) => {
99
- onChangeText?.(e.target.value), rest.onChange?.(e);
100
- }, finalProps = {
101
- ...rest,
102
- disabled,
103
- id,
104
- rows,
105
- autoCorrect,
106
- autoCapitalize,
107
- onKeyDown: onSubmitEditing ? handleKeyDown : rest.onKeyDown,
108
- onChange: onChangeText ? handleChange : rest.onChange,
109
- style: {
110
- ...rest.style,
111
- ...placeholderTextColor && {
112
- "--placeholderColor": theme[placeholderTextColor]?.variable || placeholderTextColor
113
- },
114
- ...selectionColor && {
115
- "--selectionColor": theme[selectionColor]?.variable || selectionColor
116
- }
117
- }
118
- };
119
- return /* @__PURE__ */ jsx(StyledInput, { ref: composedRef, ...finalProps });
120
- });
121
- export {
122
- Input
123
- };
124
- //# sourceMappingURL=Input.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/Input.tsx"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=InputNativeProps.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "mappings": "",
5
- "names": []
6
- }
@@ -1,29 +0,0 @@
1
- import { styled } from "@tamagui/web";
2
- import { Input } from "./Input";
3
- import { defaultStyles, textAreaSizeVariant } from "./shared";
4
- const TextArea = styled(Input, {
5
- name: "TextArea",
6
- render: "textarea",
7
- // this attribute fixes firefox newline issue
8
- // @ts-ignore
9
- whiteSpace: "pre-wrap",
10
- variants: {
11
- unstyled: {
12
- false: {
13
- height: "auto",
14
- ...defaultStyles,
15
- rows: 3
16
- }
17
- },
18
- size: {
19
- "...size": textAreaSizeVariant
20
- }
21
- },
22
- defaultVariants: {
23
- unstyled: process.env.TAMAGUI_HEADLESS === "1"
24
- }
25
- });
26
- export {
27
- TextArea
28
- };
29
- //# sourceMappingURL=TextArea.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/TextArea.tsx"],
4
- "mappings": "AAAA,SAAS,cAAc;AACvB,SAAS,aAAa;AACtB,SAAS,eAAe,2BAA2B;AAQ5C,MAAM,WAAW,OAAO,OAAO;AAAA,EACpC,MAAM;AAAA,EACN,QAAQ;AAAA;AAAA;AAAA,EAIR,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
- "names": []
6
- }
@@ -1,96 +0,0 @@
1
- import { Text } from "@tamagui/core";
2
- import { getVariableValue, isWeb } from "@tamagui/core";
3
- import { getButtonSized } from "@tamagui/get-button-sized";
4
- import { getFontSized } from "@tamagui/get-font-sized";
5
- import { getSpace } from "@tamagui/get-token";
6
- const defaultStyles = {
7
- size: "$true",
8
- fontFamily: "$body",
9
- borderWidth: 1,
10
- outlineWidth: 0,
11
- color: "$color",
12
- ...isWeb ? {
13
- tabIndex: 0
14
- } : {
15
- focusable: !0
16
- },
17
- borderColor: "$borderColor",
18
- backgroundColor: "$background",
19
- // this fixes a flex bug where it overflows container
20
- minWidth: 0,
21
- hoverStyle: {
22
- borderColor: "$borderColorHover"
23
- },
24
- focusStyle: {
25
- borderColor: "$borderColorFocus"
26
- },
27
- focusVisibleStyle: {
28
- outlineColor: "$outlineColor",
29
- outlineWidth: 2,
30
- outlineStyle: "solid"
31
- }
32
- }, inputSizeVariant = (val = "$true", extras) => {
33
- if (extras.props.tag === "textarea" || extras.props.rows > 1 || extras.props.multiline || extras.props.numberOfLines > 1)
34
- return textAreaSizeVariant(val, extras);
35
- const buttonStyles = getButtonSized(val, extras), paddingHorizontal = getSpace(val, {
36
- shift: -1,
37
- bounds: [2]
38
- }), fontStyle = getFontSized(val, extras);
39
- return !isWeb && fontStyle && delete fontStyle.lineHeight, {
40
- ...fontStyle,
41
- ...buttonStyles,
42
- paddingHorizontal
43
- };
44
- }, textAreaSizeVariant = (val = "$true", extras) => {
45
- const { props } = extras, buttonStyles = getButtonSized(val, extras), fontStyle = getFontSized(val, extras), lines = props.rows ?? props.numberOfLines, height = typeof lines == "number" ? lines * getVariableValue(fontStyle.lineHeight) : "auto";
46
- !isWeb && fontStyle && delete fontStyle.lineHeight;
47
- const paddingVertical = getSpace(val, {
48
- shift: -2,
49
- bounds: [2]
50
- }), paddingHorizontal = getSpace(val, {
51
- shift: -1,
52
- bounds: [2]
53
- });
54
- return {
55
- ...buttonStyles,
56
- ...fontStyle,
57
- paddingVertical,
58
- paddingHorizontal,
59
- height
60
- };
61
- }, INPUT_NAME = "Input", styledBody = [
62
- {
63
- name: INPUT_NAME,
64
- render: "input",
65
- variants: {
66
- unstyled: {
67
- false: defaultStyles
68
- },
69
- size: {
70
- "...size": inputSizeVariant
71
- },
72
- disabled: {
73
- true: {}
74
- }
75
- },
76
- defaultVariants: {
77
- unstyled: process.env.TAMAGUI_HEADLESS === "1"
78
- }
79
- },
80
- {
81
- isInput: !0,
82
- accept: {
83
- placeholderTextColor: "color",
84
- selectionColor: "color"
85
- },
86
- validStyles: Text.staticConfig.validStyles
87
- }
88
- ];
89
- export {
90
- INPUT_NAME,
91
- defaultStyles,
92
- inputSizeVariant,
93
- styledBody,
94
- textAreaSizeVariant
95
- };
96
- //# sourceMappingURL=shared.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/shared.tsx"],
4
- "mappings": "AACA,SAAS,YAAY;AACrB,SAAS,kBAAkB,aAAa;AACxC,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AAElB,MAAM,gBAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,OAAO;AAAA,EAEP,GAAI,QACA;AAAA,IACE,UAAU;AAAA,EACZ,IACA;AAAA,IACE,WAAW;AAAA,EACb;AAAA,EAEJ,aAAa;AAAA,EACb,iBAAiB;AAAA;AAAA,EAGjB,UAAU;AAAA,EAEV,YAAY;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EAEA,YAAY;AAAA,IACV,aAAa;AAAA,EACf;AAAA,EAEA,mBAAmB;AAAA,IACjB,cAAc;AAAA,IACd,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AACF,GAEa,mBAAmD,CAC9D,MAAM,SACN,WACG;AAEH,MACE,OAAO,MAAM,QAAQ,cACrB,OAAO,MAAM,OAAO,KACpB,OAAO,MAAM,aACb,OAAO,MAAM,gBAAgB;AAE7B,WAAO,oBAAoB,KAAK,MAAM;AAExC,QAAM,eAAe,eAAe,KAAK,MAAM,GACzC,oBAAoB,SAAS,KAAK;AAAA,IACtC,OAAO;AAAA,IACP,QAAQ,CAAC,CAAC;AAAA,EACZ,CAAC,GACK,YAAY,aAAa,KAAY,MAAM;AAEjD,SAAI,CAAC,SAAS,aACZ,OAAO,UAAU,YAEZ;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,EACF;AACF,GAEa,sBAAsD,CACjE,MAAM,SACN,WACG;AACH,QAAM,EAAE,MAAM,IAAI,QACZ,eAAe,eAAe,KAAK,MAAM,GACzC,YAAY,aAAa,KAAY,MAAM,GAC3C,QAAQ,MAAM,QAAQ,MAAM,eAC5B,SACJ,OAAO,SAAU,WAAW,QAAQ,iBAAiB,UAAU,UAAU,IAAI;AAE/E,EAAI,CAAC,SAAS,aACZ,OAAO,UAAU;AAEnB,QAAM,kBAAkB,SAAS,KAAK;AAAA,IACpC,OAAO;AAAA,IACP,QAAQ,CAAC,CAAC;AAAA,EACZ,CAAC,GACK,oBAAoB,SAAS,KAAK;AAAA,IACtC,OAAO;AAAA,IACP,QAAQ,CAAC,CAAC;AAAA,EACZ,CAAC;AACD,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF,GACa,aAAa,SAEb,aAAa;AAAA,EACxB;AAAA,IACE,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,UAAU;AAAA,MACR,UAAU;AAAA,QACR,OAAO;AAAA,MACT;AAAA,MAEA,MAAM;AAAA,QACJ,WAAW;AAAA,MACb;AAAA,MAEA,UAAU;AAAA,QACR,MAAM,CAAC;AAAA,MACT;AAAA,IACF;AAAA,IAEA,iBAAiB;AAAA,MACf,UAAU,QAAQ,IAAI,qBAAqB;AAAA,IAC7C;AAAA,EACF;AAAA,EAEA;AAAA,IACE,SAAS;AAAA,IACT,QAAQ;AAAA,MACN,sBAAsB;AAAA,MACtB,gBAAgB;AAAA,IAClB;AAAA,IAEA,aAAa,KAAK,aAAa;AAAA,EACjC;AACF;",
5
- "names": []
6
- }
package/dist/jsx/types.js DELETED
@@ -1 +0,0 @@
1
- //# sourceMappingURL=types.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "mappings": "",
5
- "names": []
6
- }
@@ -1,152 +0,0 @@
1
- import { View, styled, useEvent, useTheme } from "@tamagui/core";
2
- import { registerFocusable } from "@tamagui/focusable";
3
- import { useWebRef } from "@tamagui/element";
4
- import React from "react";
5
- import { styledBody } from "../shared";
6
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
- const StyledInput = styled(View, styledBody[0], styledBody[1]), 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, { ref, composedRef } = useWebRef(forwardedRef), theme = useTheme(), _onSelectionChange = useEvent(() => {
59
- const start = ref.current?.selectionStart ?? 0, end = ref.current?.selectionEnd ?? 0;
60
- onSelectionChange?.({
61
- nativeEvent: {
62
- selection: {
63
- end,
64
- start
65
- }
66
- }
67
- });
68
- });
69
- React.useEffect(() => {
70
- if (onSelectionChange)
71
- return ref.current?.addEventListener("selectionchange", _onSelectionChange), () => {
72
- ref.current?.removeEventListener("selectionchange", _onSelectionChange);
73
- };
74
- }, []), React.useEffect(() => {
75
- selection && ref.current?.setSelectionRange(selection.start || null, selection.end || null);
76
- }, [selection?.start, selection?.end]);
77
- const finalProps = {
78
- ...rest,
79
- disabled,
80
- caretColor,
81
- id,
82
- enterKeyHint,
83
- type: (() => {
84
- if (rest?.type) return rest.type;
85
- if (secureTextEntry) return "password";
86
- switch (keyboardType) {
87
- case "number-pad":
88
- case "numeric":
89
- return "number";
90
- case "email-address":
91
- return "email";
92
- case "phone-pad":
93
- return "tel";
94
- case "url":
95
- return "url";
96
- default:
97
- return "text";
98
- }
99
- })(),
100
- inputMode: (() => {
101
- switch (keyboardType) {
102
- case "number-pad":
103
- case "numeric":
104
- return "numeric";
105
- case "decimal-pad":
106
- return "decimal";
107
- case "email-address":
108
- return "email";
109
- case "phone-pad":
110
- return "tel";
111
- case "url":
112
- return "url";
113
- default:
114
- return;
115
- }
116
- })(),
117
- style: {
118
- ...rest.style,
119
- ...placeholderTextColor && {
120
- "--placeholderColor": theme[placeholderTextColor]?.variable || placeholderTextColor
121
- },
122
- ...selectionColor && {
123
- "--selectionBackground": theme[selectionColor]?.variable || selectionColor
124
- }
125
- }
126
- };
127
- return React.useEffect(() => {
128
- if (id && !disabled)
129
- return registerFocusable(id, {
130
- focusAndSelect: () => {
131
- ref.current?.focus();
132
- },
133
- focus: () => {
134
- }
135
- });
136
- }, [id, disabled]), /* @__PURE__ */ jsxs(Fragment, { children: [
137
- /* @__PURE__ */ jsx("style", { children: `
138
- input::selection, textarea::selection {
139
- background-color: var(--selectionBackground) !important;
140
- }
141
-
142
- input::placeholder, textarea::placeholder {
143
- color: var(--placeholderColor) !important;
144
- }
145
- ` }),
146
- /* @__PURE__ */ jsx(StyledInput, { ref: composedRef, ...finalProps })
147
- ] });
148
- });
149
- export {
150
- Input
151
- };
152
- //# sourceMappingURL=Input.js.map