@terreno/ui 0.6.0 → 0.7.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 (52) hide show
  1. package/README.md +5 -5
  2. package/dist/AiSuggestionBox.d.ts +6 -0
  3. package/dist/AiSuggestionBox.js +87 -0
  4. package/dist/AiSuggestionBox.js.map +1 -0
  5. package/dist/Common.d.ts +13 -0
  6. package/dist/Common.js.map +1 -1
  7. package/dist/CommonIconTypes.d.ts +1 -1
  8. package/dist/FlatList.js.map +1 -1
  9. package/dist/GPTChat.d.ts +2 -1
  10. package/dist/GPTChat.js +14 -4
  11. package/dist/GPTChat.js.map +1 -1
  12. package/dist/Page.js +2 -1
  13. package/dist/Page.js.map +1 -1
  14. package/dist/ScrollView.js.map +1 -1
  15. package/dist/TextField.js +46 -41
  16. package/dist/TextField.js.map +1 -1
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.js +1 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/login/LoginScreen.js +1 -1
  21. package/dist/login/LoginScreen.js.map +1 -1
  22. package/dist/signUp/SignUpScreen.js +1 -1
  23. package/dist/signUp/SignUpScreen.js.map +1 -1
  24. package/package.json +1 -1
  25. package/src/AiSuggestionBox.test.tsx +373 -0
  26. package/src/AiSuggestionBox.tsx +233 -0
  27. package/src/Common.ts +15 -0
  28. package/src/CommonIconTypes.ts +1 -1
  29. package/src/FlatList.tsx +1 -0
  30. package/src/GPTChat.tsx +40 -2
  31. package/src/Page.tsx +20 -9
  32. package/src/ScrollView.tsx +1 -0
  33. package/src/TextField.tsx +88 -69
  34. package/src/__snapshots__/AddressField.test.tsx.snap +208 -152
  35. package/src/__snapshots__/AiSuggestionBox.test.tsx.snap +1031 -0
  36. package/src/__snapshots__/CustomSelectField.test.tsx.snap +51 -37
  37. package/src/__snapshots__/EmailField.test.tsx.snap +111 -83
  38. package/src/__snapshots__/Field.test.tsx.snap +616 -448
  39. package/src/__snapshots__/MobileAddressAutoComplete.test.tsx.snap +51 -37
  40. package/src/__snapshots__/NumberField.test.tsx.snap +51 -37
  41. package/src/__snapshots__/Page.test.tsx.snap +15 -20
  42. package/src/__snapshots__/PhoneNumberField.test.tsx.snap +264 -194
  43. package/src/__snapshots__/TapToEdit.test.tsx.snap +51 -37
  44. package/src/__snapshots__/TextArea.test.tsx.snap +255 -185
  45. package/src/__snapshots__/TextField.test.tsx.snap +264 -194
  46. package/src/__snapshots__/UnifiedAddressAutoComplete.test.tsx.snap +204 -148
  47. package/src/__snapshots__/WebAddressAutocomplete.test.tsx.snap +153 -111
  48. package/src/index.tsx +1 -0
  49. package/src/login/LoginScreen.tsx +1 -0
  50. package/src/login/__snapshots__/LoginScreen.test.tsx.snap +104 -76
  51. package/src/signUp/SignUpScreen.tsx +1 -0
  52. package/src/signUp/__snapshots__/SignUpScreen.test.tsx.snap +156 -114
@@ -9,56 +9,70 @@ exports[`WebAddressAutocomplete renders correctly without Google API key 1`] = `
9
9
  "children": [
10
10
  {
11
11
  "$$typeof": Symbol(react.test.json),
12
- "children": null,
13
- "props": {
14
- "accessibilityHint": "Enter text here",
15
- "accessibilityState": {
16
- "disabled": undefined,
12
+ "children": [
13
+ {
14
+ "$$typeof": Symbol(react.test.json),
15
+ "children": null,
16
+ "props": {
17
+ "accessibilityHint": "Enter text here",
18
+ "accessibilityState": {
19
+ "disabled": undefined,
20
+ },
21
+ "aria-label": "Text input field",
22
+ "autoCapitalize": "sentences",
23
+ "autoCorrect": true,
24
+ "blurOnSubmit": true,
25
+ "enterKeyHint": undefined,
26
+ "keyboardType": "default",
27
+ "multiline": undefined,
28
+ "nativeID": undefined,
29
+ "numberOfLines": 1,
30
+ "onBlur": [Function],
31
+ "onChangeText": [Function],
32
+ "onContentSizeChange": [Function],
33
+ "onFocus": [Function],
34
+ "onSubmitEditing": [Function],
35
+ "placeholder": "Enter an address",
36
+ "placeholderTextColor": "#686868",
37
+ "readOnly": undefined,
38
+ "ref": [Function],
39
+ "secureTextEntry": false,
40
+ "style": {
41
+ "color": "#1C1C1C",
42
+ "flex": 1,
43
+ "fontFamily": "text",
44
+ "fontSize": 16,
45
+ "gap": 10,
46
+ "height": 20,
47
+ "paddingVertical": 0,
48
+ "width": "100%",
49
+ },
50
+ "testID": undefined,
51
+ "textContentType": "none",
52
+ "underlineColorAndroid": "transparent",
53
+ "value": "",
54
+ },
55
+ "type": "TextInput",
17
56
  },
18
- "aria-label": "Text input field",
19
- "autoCapitalize": "sentences",
20
- "autoCorrect": true,
21
- "blurOnSubmit": true,
22
- "enterKeyHint": undefined,
23
- "keyboardType": "default",
24
- "multiline": undefined,
25
- "numberOfLines": 1,
26
- "onBlur": [Function],
27
- "onChangeText": [Function],
28
- "onContentSizeChange": [Function],
29
- "onFocus": [Function],
30
- "onSubmitEditing": [Function],
31
- "placeholder": "Enter an address",
32
- "placeholderTextColor": "#686868",
33
- "readOnly": undefined,
34
- "ref": [Function],
35
- "secureTextEntry": false,
57
+ ],
58
+ "props": {
36
59
  "style": {
37
- "color": "#1C1C1C",
38
- "flex": 1,
39
- "fontFamily": "text",
40
- "fontSize": 16,
41
- "gap": 10,
42
- "height": 20,
43
- "paddingVertical": 0,
44
- "width": "100%",
60
+ "alignItems": "center",
61
+ "flexDirection": "row",
45
62
  },
46
63
  "testID": undefined,
47
- "textContentType": "none",
48
- "underlineColorAndroid": "transparent",
49
- "value": "",
50
64
  },
51
- "type": "TextInput",
65
+ "type": "View",
52
66
  },
53
67
  ],
54
68
  "props": {
55
69
  "style": {
56
- "alignItems": "center",
57
70
  "backgroundColor": "#FFFFFF",
58
71
  "borderColor": "#9A9A9A",
59
72
  "borderRadius": 4,
60
73
  "borderWidth": 1,
61
- "flexDirection": "row",
74
+ "flexDirection": "column",
75
+ "gap": 0,
62
76
  "overflow": "hidden",
63
77
  "paddingHorizontal": 12,
64
78
  "paddingVertical": 8,
@@ -88,56 +102,70 @@ exports[`WebAddressAutocomplete renders with input value 1`] = `
88
102
  "children": [
89
103
  {
90
104
  "$$typeof": Symbol(react.test.json),
91
- "children": null,
92
- "props": {
93
- "accessibilityHint": "Enter text here",
94
- "accessibilityState": {
95
- "disabled": undefined,
105
+ "children": [
106
+ {
107
+ "$$typeof": Symbol(react.test.json),
108
+ "children": null,
109
+ "props": {
110
+ "accessibilityHint": "Enter text here",
111
+ "accessibilityState": {
112
+ "disabled": undefined,
113
+ },
114
+ "aria-label": "Text input field",
115
+ "autoCapitalize": "sentences",
116
+ "autoCorrect": true,
117
+ "blurOnSubmit": true,
118
+ "enterKeyHint": undefined,
119
+ "keyboardType": "default",
120
+ "multiline": undefined,
121
+ "nativeID": undefined,
122
+ "numberOfLines": 1,
123
+ "onBlur": [Function],
124
+ "onChangeText": [Function],
125
+ "onContentSizeChange": [Function],
126
+ "onFocus": [Function],
127
+ "onSubmitEditing": [Function],
128
+ "placeholder": "Enter an address",
129
+ "placeholderTextColor": "#686868",
130
+ "readOnly": undefined,
131
+ "ref": [Function],
132
+ "secureTextEntry": false,
133
+ "style": {
134
+ "color": "#1C1C1C",
135
+ "flex": 1,
136
+ "fontFamily": "text",
137
+ "fontSize": 16,
138
+ "gap": 10,
139
+ "height": 20,
140
+ "paddingVertical": 0,
141
+ "width": "100%",
142
+ },
143
+ "testID": undefined,
144
+ "textContentType": "none",
145
+ "underlineColorAndroid": "transparent",
146
+ "value": "123 Main St",
147
+ },
148
+ "type": "TextInput",
96
149
  },
97
- "aria-label": "Text input field",
98
- "autoCapitalize": "sentences",
99
- "autoCorrect": true,
100
- "blurOnSubmit": true,
101
- "enterKeyHint": undefined,
102
- "keyboardType": "default",
103
- "multiline": undefined,
104
- "numberOfLines": 1,
105
- "onBlur": [Function],
106
- "onChangeText": [Function],
107
- "onContentSizeChange": [Function],
108
- "onFocus": [Function],
109
- "onSubmitEditing": [Function],
110
- "placeholder": "Enter an address",
111
- "placeholderTextColor": "#686868",
112
- "readOnly": undefined,
113
- "ref": [Function],
114
- "secureTextEntry": false,
150
+ ],
151
+ "props": {
115
152
  "style": {
116
- "color": "#1C1C1C",
117
- "flex": 1,
118
- "fontFamily": "text",
119
- "fontSize": 16,
120
- "gap": 10,
121
- "height": 20,
122
- "paddingVertical": 0,
123
- "width": "100%",
153
+ "alignItems": "center",
154
+ "flexDirection": "row",
124
155
  },
125
156
  "testID": undefined,
126
- "textContentType": "none",
127
- "underlineColorAndroid": "transparent",
128
- "value": "123 Main St",
129
157
  },
130
- "type": "TextInput",
158
+ "type": "View",
131
159
  },
132
160
  ],
133
161
  "props": {
134
162
  "style": {
135
- "alignItems": "center",
136
163
  "backgroundColor": "#FFFFFF",
137
164
  "borderColor": "#9A9A9A",
138
165
  "borderRadius": 4,
139
166
  "borderWidth": 1,
140
- "flexDirection": "row",
167
+ "flexDirection": "column",
168
+ "gap": 0,
141
169
  "overflow": "hidden",
142
170
  "paddingHorizontal": 12,
143
171
  "paddingVertical": 8,
@@ -167,56 +195,70 @@ exports[`WebAddressAutocomplete renders disabled state 1`] = `
167
195
  "children": [
168
196
  {
169
197
  "$$typeof": Symbol(react.test.json),
170
- "children": null,
171
- "props": {
172
- "accessibilityHint": "Enter text here",
173
- "accessibilityState": {
174
- "disabled": true,
198
+ "children": [
199
+ {
200
+ "$$typeof": Symbol(react.test.json),
201
+ "children": null,
202
+ "props": {
203
+ "accessibilityHint": "Enter text here",
204
+ "accessibilityState": {
205
+ "disabled": true,
206
+ },
207
+ "aria-label": "Text input field",
208
+ "autoCapitalize": "sentences",
209
+ "autoCorrect": true,
210
+ "blurOnSubmit": true,
211
+ "enterKeyHint": undefined,
212
+ "keyboardType": "default",
213
+ "multiline": undefined,
214
+ "nativeID": undefined,
215
+ "numberOfLines": 1,
216
+ "onBlur": [Function],
217
+ "onChangeText": [Function],
218
+ "onContentSizeChange": [Function],
219
+ "onFocus": [Function],
220
+ "onSubmitEditing": [Function],
221
+ "placeholder": "Enter an address",
222
+ "placeholderTextColor": "#686868",
223
+ "readOnly": true,
224
+ "ref": [Function],
225
+ "secureTextEntry": false,
226
+ "style": {
227
+ "color": "#1C1C1C",
228
+ "flex": 1,
229
+ "fontFamily": "text",
230
+ "fontSize": 16,
231
+ "gap": 10,
232
+ "height": 20,
233
+ "paddingVertical": 0,
234
+ "width": "100%",
235
+ },
236
+ "testID": undefined,
237
+ "textContentType": "none",
238
+ "underlineColorAndroid": "transparent",
239
+ "value": "",
240
+ },
241
+ "type": "TextInput",
175
242
  },
176
- "aria-label": "Text input field",
177
- "autoCapitalize": "sentences",
178
- "autoCorrect": true,
179
- "blurOnSubmit": true,
180
- "enterKeyHint": undefined,
181
- "keyboardType": "default",
182
- "multiline": undefined,
183
- "numberOfLines": 1,
184
- "onBlur": [Function],
185
- "onChangeText": [Function],
186
- "onContentSizeChange": [Function],
187
- "onFocus": [Function],
188
- "onSubmitEditing": [Function],
189
- "placeholder": "Enter an address",
190
- "placeholderTextColor": "#686868",
191
- "readOnly": true,
192
- "ref": [Function],
193
- "secureTextEntry": false,
243
+ ],
244
+ "props": {
194
245
  "style": {
195
- "color": "#1C1C1C",
196
- "flex": 1,
197
- "fontFamily": "text",
198
- "fontSize": 16,
199
- "gap": 10,
200
- "height": 20,
201
- "paddingVertical": 0,
202
- "width": "100%",
246
+ "alignItems": "center",
247
+ "flexDirection": "row",
203
248
  },
204
249
  "testID": undefined,
205
- "textContentType": "none",
206
- "underlineColorAndroid": "transparent",
207
- "value": "",
208
250
  },
209
- "type": "TextInput",
251
+ "type": "View",
210
252
  },
211
253
  ],
212
254
  "props": {
213
255
  "style": {
214
- "alignItems": "center",
215
256
  "backgroundColor": "#D9D9D9",
216
257
  "borderColor": "#4E4E4E",
217
258
  "borderRadius": 4,
218
259
  "borderWidth": 1,
219
- "flexDirection": "row",
260
+ "flexDirection": "column",
261
+ "gap": 0,
220
262
  "overflow": "hidden",
221
263
  "paddingHorizontal": 12,
222
264
  "paddingVertical": 8,
package/src/index.tsx CHANGED
@@ -4,6 +4,7 @@ export * from "./Accordion";
4
4
  export * from "./ActionSheet";
5
5
  export * from "./AddressField";
6
6
  export * from "./AIRequestExplorer";
7
+ export * from "./AiSuggestionBox";
7
8
  export * from "./AttachmentPreview";
8
9
  export * from "./Avatar";
9
10
  export * from "./Badge";
@@ -91,6 +91,7 @@ export const LoginScreen: FC<LoginScreenProps> = ({
91
91
  <TextField
92
92
  autoComplete={field.autoComplete}
93
93
  disabled={loading}
94
+ id={`${testID}-${field.name}-input`}
94
95
  key={field.name}
95
96
  onChange={(value: string) => handleFieldChange(field.name, value)}
96
97
  placeholder={field.placeholder ?? field.label}
@@ -72,56 +72,70 @@ exports[`LoginScreen renders correctly with all props 1`] = `
72
72
  "children": [
73
73
  {
74
74
  "$$typeof": Symbol(react.test.json),
75
- "children": null,
76
- "props": {
77
- "accessibilityHint": "Enter text here",
78
- "accessibilityState": {
79
- "disabled": true,
75
+ "children": [
76
+ {
77
+ "$$typeof": Symbol(react.test.json),
78
+ "children": null,
79
+ "props": {
80
+ "accessibilityHint": "Enter text here",
81
+ "accessibilityState": {
82
+ "disabled": true,
83
+ },
84
+ "aria-label": "Text input field",
85
+ "autoCapitalize": "none",
86
+ "autoCorrect": false,
87
+ "blurOnSubmit": true,
88
+ "enterKeyHint": undefined,
89
+ "keyboardType": "email-address",
90
+ "multiline": undefined,
91
+ "nativeID": "login-screen-email-input",
92
+ "numberOfLines": 1,
93
+ "onBlur": [Function],
94
+ "onChangeText": [Function],
95
+ "onContentSizeChange": [Function],
96
+ "onFocus": [Function],
97
+ "onSubmitEditing": [Function],
98
+ "placeholder": "Email",
99
+ "placeholderTextColor": "#686868",
100
+ "readOnly": true,
101
+ "ref": [Function],
102
+ "secureTextEntry": false,
103
+ "style": {
104
+ "color": "#1C1C1C",
105
+ "flex": 1,
106
+ "fontFamily": "text",
107
+ "fontSize": 16,
108
+ "gap": 10,
109
+ "height": 20,
110
+ "paddingVertical": 0,
111
+ "width": "100%",
112
+ },
113
+ "testID": "login-screen-email-input",
114
+ "textContentType": "emailAddress",
115
+ "underlineColorAndroid": "transparent",
116
+ "value": "",
117
+ },
118
+ "type": "TextInput",
80
119
  },
81
- "aria-label": "Text input field",
82
- "autoCapitalize": "none",
83
- "autoCorrect": false,
84
- "blurOnSubmit": true,
85
- "enterKeyHint": undefined,
86
- "keyboardType": "email-address",
87
- "multiline": undefined,
88
- "numberOfLines": 1,
89
- "onBlur": [Function],
90
- "onChangeText": [Function],
91
- "onContentSizeChange": [Function],
92
- "onFocus": [Function],
93
- "onSubmitEditing": [Function],
94
- "placeholder": "Email",
95
- "placeholderTextColor": "#686868",
96
- "readOnly": true,
97
- "ref": [Function],
98
- "secureTextEntry": false,
120
+ ],
121
+ "props": {
99
122
  "style": {
100
- "color": "#1C1C1C",
101
- "flex": 1,
102
- "fontFamily": "text",
103
- "fontSize": 16,
104
- "gap": 10,
105
- "height": 20,
106
- "paddingVertical": 0,
107
- "width": "100%",
123
+ "alignItems": "center",
124
+ "flexDirection": "row",
108
125
  },
109
- "testID": "login-screen-email-input",
110
- "textContentType": "emailAddress",
111
- "underlineColorAndroid": "transparent",
112
- "value": "",
126
+ "testID": undefined,
113
127
  },
114
- "type": "TextInput",
128
+ "type": "View",
115
129
  },
116
130
  ],
117
131
  "props": {
118
132
  "style": {
119
- "alignItems": "center",
120
133
  "backgroundColor": "#D9D9D9",
121
134
  "borderColor": "#4E4E4E",
122
135
  "borderRadius": 4,
123
136
  "borderWidth": 1,
124
- "flexDirection": "row",
137
+ "flexDirection": "column",
138
+ "gap": 0,
125
139
  "overflow": "hidden",
126
140
  "paddingHorizontal": 12,
127
141
  "paddingVertical": 8,
@@ -163,56 +177,70 @@ exports[`LoginScreen renders correctly with all props 1`] = `
163
177
  "children": [
164
178
  {
165
179
  "$$typeof": Symbol(react.test.json),
166
- "children": null,
167
- "props": {
168
- "accessibilityHint": "Enter text here",
169
- "accessibilityState": {
170
- "disabled": true,
180
+ "children": [
181
+ {
182
+ "$$typeof": Symbol(react.test.json),
183
+ "children": null,
184
+ "props": {
185
+ "accessibilityHint": "Enter text here",
186
+ "accessibilityState": {
187
+ "disabled": true,
188
+ },
189
+ "aria-label": "Text input field",
190
+ "autoCapitalize": "none",
191
+ "autoCorrect": false,
192
+ "blurOnSubmit": true,
193
+ "enterKeyHint": undefined,
194
+ "keyboardType": "default",
195
+ "multiline": undefined,
196
+ "nativeID": "login-screen-password-input",
197
+ "numberOfLines": 1,
198
+ "onBlur": [Function],
199
+ "onChangeText": [Function],
200
+ "onContentSizeChange": [Function],
201
+ "onFocus": [Function],
202
+ "onSubmitEditing": [Function],
203
+ "placeholder": "Password",
204
+ "placeholderTextColor": "#686868",
205
+ "readOnly": true,
206
+ "ref": [Function],
207
+ "secureTextEntry": true,
208
+ "style": {
209
+ "color": "#1C1C1C",
210
+ "flex": 1,
211
+ "fontFamily": "text",
212
+ "fontSize": 16,
213
+ "gap": 10,
214
+ "height": 20,
215
+ "paddingVertical": 0,
216
+ "width": "100%",
217
+ },
218
+ "testID": "login-screen-password-input",
219
+ "textContentType": "password",
220
+ "underlineColorAndroid": "transparent",
221
+ "value": "",
222
+ },
223
+ "type": "TextInput",
171
224
  },
172
- "aria-label": "Text input field",
173
- "autoCapitalize": "none",
174
- "autoCorrect": false,
175
- "blurOnSubmit": true,
176
- "enterKeyHint": undefined,
177
- "keyboardType": "default",
178
- "multiline": undefined,
179
- "numberOfLines": 1,
180
- "onBlur": [Function],
181
- "onChangeText": [Function],
182
- "onContentSizeChange": [Function],
183
- "onFocus": [Function],
184
- "onSubmitEditing": [Function],
185
- "placeholder": "Password",
186
- "placeholderTextColor": "#686868",
187
- "readOnly": true,
188
- "ref": [Function],
189
- "secureTextEntry": true,
225
+ ],
226
+ "props": {
190
227
  "style": {
191
- "color": "#1C1C1C",
192
- "flex": 1,
193
- "fontFamily": "text",
194
- "fontSize": 16,
195
- "gap": 10,
196
- "height": 20,
197
- "paddingVertical": 0,
198
- "width": "100%",
228
+ "alignItems": "center",
229
+ "flexDirection": "row",
199
230
  },
200
- "testID": "login-screen-password-input",
201
- "textContentType": "password",
202
- "underlineColorAndroid": "transparent",
203
- "value": "",
231
+ "testID": undefined,
204
232
  },
205
- "type": "TextInput",
233
+ "type": "View",
206
234
  },
207
235
  ],
208
236
  "props": {
209
237
  "style": {
210
- "alignItems": "center",
211
238
  "backgroundColor": "#D9D9D9",
212
239
  "borderColor": "#4E4E4E",
213
240
  "borderRadius": 4,
214
241
  "borderWidth": 1,
215
- "flexDirection": "row",
242
+ "flexDirection": "column",
243
+ "gap": 0,
216
244
  "overflow": "hidden",
217
245
  "paddingHorizontal": 12,
218
246
  "paddingVertical": 8,
@@ -108,6 +108,7 @@ export const SignUpScreen: FC<SignUpScreenProps> = ({
108
108
  <TextField
109
109
  autoComplete={field.autoComplete}
110
110
  disabled={loading}
111
+ id={`${testID}-${field.name}-input`}
111
112
  key={field.name}
112
113
  onChange={(value: string) => handleFieldChange(field.name, value)}
113
114
  placeholder={field.placeholder ?? field.label}