@wecareu/input-text 0.1.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 (49) hide show
  1. package/README.md +36 -0
  2. package/lib/commonjs/InputText.js +350 -0
  3. package/lib/commonjs/InputText.js.map +1 -0
  4. package/lib/commonjs/InputText.types.js +6 -0
  5. package/lib/commonjs/InputText.types.js.map +1 -0
  6. package/lib/commonjs/InputTextErrorMessage.js +32 -0
  7. package/lib/commonjs/InputTextErrorMessage.js.map +1 -0
  8. package/lib/commonjs/InputTextIcon.js +65 -0
  9. package/lib/commonjs/InputTextIcon.js.map +1 -0
  10. package/lib/commonjs/animations/shake.js +45 -0
  11. package/lib/commonjs/animations/shake.js.map +1 -0
  12. package/lib/commonjs/index.js +13 -0
  13. package/lib/commonjs/index.js.map +1 -0
  14. package/lib/commonjs/index.stories.js +409 -0
  15. package/lib/commonjs/index.stories.js.map +1 -0
  16. package/lib/module/InputText.js +343 -0
  17. package/lib/module/InputText.js.map +1 -0
  18. package/lib/module/InputText.types.js +2 -0
  19. package/lib/module/InputText.types.js.map +1 -0
  20. package/lib/module/InputTextErrorMessage.js +25 -0
  21. package/lib/module/InputTextErrorMessage.js.map +1 -0
  22. package/lib/module/InputTextIcon.js +58 -0
  23. package/lib/module/InputTextIcon.js.map +1 -0
  24. package/lib/module/animations/shake.js +39 -0
  25. package/lib/module/animations/shake.js.map +1 -0
  26. package/lib/module/index.js +2 -0
  27. package/lib/module/index.js.map +1 -0
  28. package/lib/module/index.stories.js +402 -0
  29. package/lib/module/index.stories.js.map +1 -0
  30. package/lib/typescript/src/InputText.d.ts +5 -0
  31. package/lib/typescript/src/InputText.d.ts.map +1 -0
  32. package/lib/typescript/src/InputText.types.d.ts +146 -0
  33. package/lib/typescript/src/InputText.types.d.ts.map +1 -0
  34. package/lib/typescript/src/InputTextErrorMessage.d.ts +3 -0
  35. package/lib/typescript/src/InputTextErrorMessage.d.ts.map +1 -0
  36. package/lib/typescript/src/InputTextIcon.d.ts +3 -0
  37. package/lib/typescript/src/InputTextIcon.d.ts.map +1 -0
  38. package/lib/typescript/src/animations/shake.d.ts +32 -0
  39. package/lib/typescript/src/animations/shake.d.ts.map +1 -0
  40. package/lib/typescript/src/index.d.ts +3 -0
  41. package/lib/typescript/src/index.d.ts.map +1 -0
  42. package/package.json +66 -0
  43. package/src/InputText.tsx +451 -0
  44. package/src/InputText.types.ts +153 -0
  45. package/src/InputTextErrorMessage.tsx +31 -0
  46. package/src/InputTextIcon.tsx +65 -0
  47. package/src/animations/shake.ts +76 -0
  48. package/src/index.stories.tsx +387 -0
  49. package/src/index.tsx +2 -0
@@ -0,0 +1,343 @@
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
+ import React from 'react';
3
+ import { Animated, StyleSheet, TextInput, View } from 'react-native';
4
+ import { useTheme } from '@wecareu/theme';
5
+ import { InputTextErrorMessage } from './InputTextErrorMessage';
6
+ import { InputTextIcon } from './InputTextIcon';
7
+ import { useShakeAnimation } from './animations/shake';
8
+ export const InputText = /*#__PURE__*/React.forwardRef(function InputText({
9
+ accessibilityRole,
10
+ accessibilityState,
11
+ accessibilityValue: accessibilityValueProp,
12
+ disabled = false,
13
+ errorMessage,
14
+ formatter,
15
+ inputError = false,
16
+ inputStyle,
17
+ leftIcon,
18
+ locale = 'pt',
19
+ maskNumber = false,
20
+ maxLength = 255,
21
+ minLength = 3,
22
+ nextInputRef,
23
+ onChangeText,
24
+ onSubmitEditing,
25
+ onValidation,
26
+ parser,
27
+ placeholder,
28
+ readonly = false,
29
+ rightIcon,
30
+ style,
31
+ testID,
32
+ type = 'text',
33
+ validateOnBlur = true,
34
+ validationMessage,
35
+ validator,
36
+ validatorMessage,
37
+ value,
38
+ ...rest
39
+ }, ref) {
40
+ const theme = useTheme();
41
+ const styles = React.useMemo(() => createStyles(theme), [theme]);
42
+ const isEditable = !(disabled || readonly);
43
+ const placeholderColor = theme.colors.text.tertiary;
44
+ const {
45
+ animatedStyle,
46
+ triggerShake
47
+ } = useShakeAnimation({
48
+ distance: theme.spacing.sm
49
+ });
50
+ const [touched, setTouched] = React.useState(false);
51
+ const autoConfig = React.useMemo(() => getAutoConfig({
52
+ locale,
53
+ maskNumber,
54
+ type
55
+ }), [locale, maskNumber, type]);
56
+ const appliedFormatter = formatter ?? autoConfig.formatter;
57
+ const appliedParser = parser ?? autoConfig.parser;
58
+ const appliedValidator = validator ?? autoConfig.validator;
59
+ const {
60
+ keyboardType: propKeyboardType,
61
+ secureTextEntry: propSecureTextEntry,
62
+ textContentType: propTextContentType,
63
+ onBlur: textInputOnBlur,
64
+ onEndEditing: textInputOnEndEditing,
65
+ ...textInputProps
66
+ } = rest;
67
+ const appliedKeyboardType = propKeyboardType ?? autoConfig.keyboardType;
68
+ const appliedTextContentType = propTextContentType ?? autoConfig.textContentType;
69
+ const appliedSecureTextEntry = propSecureTextEntry ?? autoConfig.secureTextEntry ?? false;
70
+ const displayValue = React.useMemo(() => appliedFormatter ? appliedFormatter(value) : value, [appliedFormatter, value]);
71
+ const lengthInvalid = value.length < minLength || value.length > maxLength;
72
+ const validatorInvalid = appliedValidator ? !appliedValidator(value) : false;
73
+ const internalHasError = touched && validateOnBlur && isEditable && (lengthInvalid || validatorInvalid);
74
+ const shouldShowError = inputError || internalHasError;
75
+ const effectiveErrorMessage = inputError ? errorMessage : internalHasError ? validatorInvalid ? validatorMessage : lengthInvalid ? validationMessage : undefined : undefined;
76
+ const previousErrorRef = React.useRef(false);
77
+ React.useEffect(() => {
78
+ if (!validateOnBlur || !isEditable) {
79
+ return;
80
+ }
81
+ if (!touched) {
82
+ return;
83
+ }
84
+ onValidation?.(!internalHasError);
85
+ }, [internalHasError, isEditable, onValidation, touched, validateOnBlur]);
86
+ React.useEffect(() => {
87
+ if (shouldShowError && !previousErrorRef.current) {
88
+ triggerShake();
89
+ }
90
+ previousErrorRef.current = shouldShowError;
91
+ }, [shouldShowError, triggerShake]);
92
+ const handleChangeText = React.useCallback(text => {
93
+ if (!isEditable) {
94
+ return;
95
+ }
96
+ const parsedValue = appliedParser ? appliedParser(text) : text;
97
+ onChangeText(parsedValue);
98
+ }, [appliedParser, isEditable, onChangeText]);
99
+ const notifyValidIfDisabled = React.useCallback(() => {
100
+ if (!validateOnBlur) {
101
+ onValidation?.(true);
102
+ }
103
+ }, [onValidation, validateOnBlur]);
104
+ const handleBlur = React.useCallback(event => {
105
+ setTouched(true);
106
+ notifyValidIfDisabled();
107
+ textInputOnBlur?.(event);
108
+ }, [notifyValidIfDisabled, textInputOnBlur]);
109
+ const handleEndEditing = React.useCallback(event => {
110
+ setTouched(true);
111
+ notifyValidIfDisabled();
112
+ textInputOnEndEditing?.(event);
113
+ }, [notifyValidIfDisabled, textInputOnEndEditing]);
114
+ const handleSubmitEditing = React.useCallback(event => {
115
+ setTouched(true);
116
+ notifyValidIfDisabled();
117
+ onSubmitEditing?.(event);
118
+ if (nextInputRef?.current) {
119
+ nextInputRef.current.focus();
120
+ }
121
+ }, [nextInputRef, notifyValidIfDisabled, onSubmitEditing]);
122
+ const mergedAccessibilityState = React.useMemo(() => ({
123
+ ...accessibilityState,
124
+ disabled: !isEditable,
125
+ invalid: shouldShowError
126
+ }), [accessibilityState, isEditable, shouldShowError]);
127
+ const mergedAccessibilityValue = React.useMemo(() => ({
128
+ ...accessibilityValueProp,
129
+ max: maxLength,
130
+ min: minLength,
131
+ now: value.length
132
+ }), [accessibilityValueProp, maxLength, minLength, value]);
133
+ const role = accessibilityRole ?? 'text';
134
+ return /*#__PURE__*/React.createElement(View, {
135
+ style: styles.wrapper
136
+ }, /*#__PURE__*/React.createElement(Animated.View, {
137
+ accessible: false,
138
+ style: [styles.container, !isEditable && styles.containerDisabled, shouldShowError && styles.containerError, animatedStyle, style],
139
+ testID: testID
140
+ }, leftIcon ? /*#__PURE__*/React.createElement(View, {
141
+ style: styles.iconLeft
142
+ }, /*#__PURE__*/React.createElement(InputTextIcon, leftIcon)) : null, /*#__PURE__*/React.createElement(TextInput, _extends({}, textInputProps, {
143
+ accessibilityRole: role,
144
+ accessibilityState: mergedAccessibilityState,
145
+ accessibilityValue: mergedAccessibilityValue,
146
+ editable: isEditable,
147
+ keyboardType: appliedKeyboardType,
148
+ maxLength: maxLength,
149
+ onBlur: handleBlur,
150
+ onChangeText: handleChangeText,
151
+ onEndEditing: handleEndEditing,
152
+ onSubmitEditing: handleSubmitEditing,
153
+ placeholder: placeholder,
154
+ placeholderTextColor: placeholderColor,
155
+ ref: ref,
156
+ secureTextEntry: appliedSecureTextEntry,
157
+ selectionColor: theme.colors.brand.primary,
158
+ style: [styles.input, !isEditable && styles.inputDisabled, inputStyle],
159
+ textContentType: appliedTextContentType,
160
+ value: displayValue
161
+ })), rightIcon ? /*#__PURE__*/React.createElement(View, {
162
+ style: styles.iconRight
163
+ }, /*#__PURE__*/React.createElement(InputTextIcon, rightIcon)) : null), /*#__PURE__*/React.createElement(InputTextErrorMessage, {
164
+ message: shouldShowError ? effectiveErrorMessage : undefined,
165
+ testID: effectiveErrorMessage ? `${testID ?? 'input-text'}-error` : undefined
166
+ }));
167
+ });
168
+ function createStyles(theme) {
169
+ return StyleSheet.create({
170
+ container: {
171
+ alignItems: 'center',
172
+ backgroundColor: 'transparent',
173
+ borderColor: theme.colors.brand.primary,
174
+ borderRadius: theme.radius.xxl,
175
+ borderWidth: 1,
176
+ flexDirection: 'row',
177
+ paddingHorizontal: theme.spacing.md,
178
+ paddingVertical: theme.spacing.sm,
179
+ width: '100%'
180
+ },
181
+ containerDisabled: {
182
+ backgroundColor: theme.colors.surface.disabled,
183
+ borderColor: theme.colors.border.disabled
184
+ },
185
+ containerError: {
186
+ borderColor: theme.colors.status.error
187
+ },
188
+ iconLeft: {
189
+ marginRight: theme.spacing.xs
190
+ },
191
+ iconRight: {
192
+ marginLeft: theme.spacing.xs
193
+ },
194
+ input: {
195
+ color: theme.colors.text.primary,
196
+ flex: 1,
197
+ fontFamily: theme.typography.fontFamily.body,
198
+ fontSize: theme.typography.fontSize.md,
199
+ lineHeight: theme.typography.lineHeight.bodySmall,
200
+ textAlign: 'center'
201
+ },
202
+ inputDisabled: {
203
+ color: theme.colors.text.disabled
204
+ },
205
+ wrapper: {
206
+ width: '100%'
207
+ }
208
+ });
209
+ }
210
+ function getAutoConfig({
211
+ locale,
212
+ maskNumber,
213
+ type
214
+ }) {
215
+ switch (type) {
216
+ case 'email':
217
+ return {
218
+ keyboardType: 'email-address',
219
+ textContentType: 'emailAddress',
220
+ validator: validateEmail
221
+ };
222
+ case 'password':
223
+ return {
224
+ secureTextEntry: true,
225
+ textContentType: 'password'
226
+ };
227
+ case 'number':
228
+ return {
229
+ formatter: maskNumber ? value => formatNumber(value, locale) : undefined,
230
+ keyboardType: 'numeric',
231
+ parser: maskNumber ? input => parseNumberInput(input) : input => sanitizeDigits(input)
232
+ };
233
+ case 'url':
234
+ return {
235
+ keyboardType: 'url',
236
+ textContentType: 'URL',
237
+ validator: validateUrl
238
+ };
239
+ case 'tel':
240
+ return {
241
+ formatter: value => formatTel(value, locale),
242
+ keyboardType: 'phone-pad',
243
+ parser: input => parseTelInput(input, locale),
244
+ textContentType: 'telephoneNumber',
245
+ validator: value => validateTel(value, locale)
246
+ };
247
+ default:
248
+ return {};
249
+ }
250
+ }
251
+ function sanitizeDigits(value) {
252
+ return value.replace(/\D/g, '');
253
+ }
254
+ function formatNumber(value, locale) {
255
+ const digits = sanitizeDigits(value);
256
+ if (!digits) {
257
+ return '';
258
+ }
259
+ const reversed = digits.split('').reverse();
260
+ const groups = [];
261
+ for (let i = 0; i < reversed.length; i += 3) {
262
+ groups.push(reversed.slice(i, i + 3).reverse().join(''));
263
+ }
264
+ const separator = locale === 'pt' ? '.' : ',';
265
+ return groups.reverse().join(separator);
266
+ }
267
+ function parseNumberInput(input) {
268
+ return sanitizeDigits(input);
269
+ }
270
+ function formatTel(value, locale) {
271
+ const digits = sanitizeDigits(value);
272
+ if (!digits) {
273
+ return '';
274
+ }
275
+ if (locale === 'en') {
276
+ const cc = digits.slice(0, 1);
277
+ const area = digits.slice(1, 4);
278
+ const first = digits.slice(4, 7);
279
+ const last = digits.slice(7, 11);
280
+ let result = cc ? `+${cc}` : '+';
281
+ if (area) {
282
+ result += ` (${area}`;
283
+ if (area.length === 3) {
284
+ result += ')';
285
+ }
286
+ }
287
+ if (first) {
288
+ result += area.length < 3 ? ')' : '';
289
+ result += ` ${first}`;
290
+ }
291
+ if (last) {
292
+ result += `-${last}`;
293
+ }
294
+ return result.trim();
295
+ }
296
+ const cc = digits.slice(0, 2);
297
+ const area = digits.slice(2, 4);
298
+ const withoutArea = digits.slice(4);
299
+ let result = cc ? `+${cc}` : '+';
300
+ if (area) {
301
+ result += ` (${area}`;
302
+ if (area.length === 2) {
303
+ result += ')';
304
+ }
305
+ }
306
+ if (withoutArea.length >= 5) {
307
+ result += area.length < 2 ? ')' : '';
308
+ const firstBlock = withoutArea.slice(0, withoutArea.length - 4);
309
+ const lastBlock = withoutArea.slice(-4);
310
+ result += ` ${firstBlock}-${lastBlock}`;
311
+ } else if (withoutArea) {
312
+ result += area.length < 2 ? ')' : '';
313
+ result += ` ${withoutArea}`;
314
+ }
315
+ return result.trim();
316
+ }
317
+ function parseTelInput(input, locale) {
318
+ const digits = sanitizeDigits(input);
319
+ const limit = locale === 'en' ? 11 : 13;
320
+ return digits.slice(0, limit);
321
+ }
322
+ function validateEmail(value) {
323
+ if (!value) {
324
+ return false;
325
+ }
326
+ const regex = /.+@.+\..+/;
327
+ return regex.test(value);
328
+ }
329
+ function validateUrl(value) {
330
+ if (!value) {
331
+ return false;
332
+ }
333
+ const regex = /^(https?:\/\/).+/i;
334
+ return regex.test(value);
335
+ }
336
+ function validateTel(value, locale) {
337
+ const digits = sanitizeDigits(value);
338
+ if (locale === 'en') {
339
+ return digits.length === 11;
340
+ }
341
+ return digits.length >= 12 && digits.length <= 13;
342
+ }
343
+ //# sourceMappingURL=InputText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Animated","StyleSheet","TextInput","View","useTheme","InputTextErrorMessage","InputTextIcon","useShakeAnimation","InputText","forwardRef","accessibilityRole","accessibilityState","accessibilityValue","accessibilityValueProp","disabled","errorMessage","formatter","inputError","inputStyle","leftIcon","locale","maskNumber","maxLength","minLength","nextInputRef","onChangeText","onSubmitEditing","onValidation","parser","placeholder","readonly","rightIcon","style","testID","type","validateOnBlur","validationMessage","validator","validatorMessage","value","rest","ref","theme","styles","useMemo","createStyles","isEditable","placeholderColor","colors","text","tertiary","animatedStyle","triggerShake","distance","spacing","sm","touched","setTouched","useState","autoConfig","getAutoConfig","appliedFormatter","appliedParser","appliedValidator","keyboardType","propKeyboardType","secureTextEntry","propSecureTextEntry","textContentType","propTextContentType","onBlur","textInputOnBlur","onEndEditing","textInputOnEndEditing","textInputProps","appliedKeyboardType","appliedTextContentType","appliedSecureTextEntry","displayValue","lengthInvalid","length","validatorInvalid","internalHasError","shouldShowError","effectiveErrorMessage","undefined","previousErrorRef","useRef","useEffect","current","handleChangeText","useCallback","parsedValue","notifyValidIfDisabled","handleBlur","event","handleEndEditing","handleSubmitEditing","focus","mergedAccessibilityState","invalid","mergedAccessibilityValue","max","min","now","role","createElement","wrapper","accessible","container","containerDisabled","containerError","iconLeft","_extends","editable","placeholderTextColor","selectionColor","brand","primary","input","inputDisabled","iconRight","message","create","alignItems","backgroundColor","borderColor","borderRadius","radius","xxl","borderWidth","flexDirection","paddingHorizontal","md","paddingVertical","width","surface","border","status","error","marginRight","xs","marginLeft","color","flex","fontFamily","typography","body","fontSize","lineHeight","bodySmall","textAlign","validateEmail","formatNumber","parseNumberInput","sanitizeDigits","validateUrl","formatTel","parseTelInput","validateTel","replace","digits","reversed","split","reverse","groups","i","push","slice","join","separator","cc","area","first","last","result","trim","withoutArea","firstBlock","lastBlock","limit","regex","test"],"sourceRoot":"..\\..\\src","sources":["InputText.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=InputText.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"..\\..\\src","sources":["InputText.types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { Text } from 'react-native';
3
+ import { useTheme } from '@wecareu/theme';
4
+ export function InputTextErrorMessage({
5
+ message,
6
+ testID
7
+ }) {
8
+ const theme = useTheme();
9
+ const errorTextStyle = React.useMemo(() => ({
10
+ color: theme.colors.status.error,
11
+ fontFamily: theme.typography.fontFamily.caption,
12
+ fontSize: theme.typography.fontSize.sm,
13
+ lineHeight: theme.typography.lineHeight.labelMedium,
14
+ marginTop: theme.spacing.xs
15
+ }), [theme]);
16
+ if (!message) {
17
+ return null;
18
+ }
19
+ return /*#__PURE__*/React.createElement(Text, {
20
+ accessibilityLiveRegion: "polite",
21
+ style: errorTextStyle,
22
+ testID: testID
23
+ }, message);
24
+ }
25
+ //# sourceMappingURL=InputTextErrorMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Text","useTheme","InputTextErrorMessage","message","testID","theme","errorTextStyle","useMemo","color","colors","status","error","fontFamily","typography","caption","fontSize","sm","lineHeight","labelMedium","marginTop","spacing","xs","createElement","accessibilityLiveRegion","style"],"sourceRoot":"..\\..\\src","sources":["InputTextErrorMessage.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,IAAI,QAAQ,cAAc;AAEnC,SAASC,QAAQ,QAAQ,gBAAgB;AAIzC,OAAO,SAASC,qBAAqBA,CAAC;EAAEC,OAAO;EAAEC;AAAmC,CAAC,EAAsB;EACzG,MAAMC,KAAK,GAAGJ,QAAQ,CAAC,CAAC;EACxB,MAAMK,cAAc,GAAGP,KAAK,CAACQ,OAAO,CAClC,OAAO;IACLC,KAAK,EAAEH,KAAK,CAACI,MAAM,CAACC,MAAM,CAACC,KAAK;IAChCC,UAAU,EAAEP,KAAK,CAACQ,UAAU,CAACD,UAAU,CAACE,OAAO;IAC/CC,QAAQ,EAAEV,KAAK,CAACQ,UAAU,CAACE,QAAQ,CAACC,EAAE;IACtCC,UAAU,EAAEZ,KAAK,CAACQ,UAAU,CAACI,UAAU,CAACC,WAAW;IACnDC,SAAS,EAAEd,KAAK,CAACe,OAAO,CAACC;EAC3B,CAAC,CAAC,EACF,CAAChB,KAAK,CACR,CAAC;EAED,IAAI,CAACF,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EAEA,oBACEJ,KAAA,CAAAuB,aAAA,CAACtB,IAAI;IAACuB,uBAAuB,EAAC,QAAQ;IAACC,KAAK,EAAElB,cAAe;IAACF,MAAM,EAAEA;EAAO,GAC1ED,OACG,CAAC;AAEX","ignoreList":[]}
@@ -0,0 +1,58 @@
1
+ import React from 'react';
2
+ import { Pressable, StyleSheet, TouchableOpacity, View } from 'react-native';
3
+ import { Icon } from '@wecareu/icons';
4
+ import { useTheme } from '@wecareu/theme';
5
+ export function InputTextIcon({
6
+ accessibilityLabel,
7
+ color,
8
+ name,
9
+ onPress,
10
+ size,
11
+ testID
12
+ }) {
13
+ const theme = useTheme();
14
+ const iconColor = color ?? theme.colors.text.tertiary;
15
+ const iconSize = size ?? theme.spacing.lg;
16
+ const hitSlop = React.useMemo(() => ({
17
+ bottom: theme.spacing.xs,
18
+ left: theme.spacing.xs,
19
+ right: theme.spacing.xs,
20
+ top: theme.spacing.xs
21
+ }), [theme.spacing.xs]);
22
+ if (onPress) {
23
+ const InteractiveComponent = Pressable ?? TouchableOpacity;
24
+ return /*#__PURE__*/React.createElement(InteractiveComponent, {
25
+ accessibilityLabel: accessibilityLabel ?? name,
26
+ accessibilityRole: "button",
27
+ hitSlop: hitSlop,
28
+ onPress: onPress,
29
+ style: styles.iconPressable,
30
+ testID: testID
31
+ }, /*#__PURE__*/React.createElement(Icon, {
32
+ color: iconColor,
33
+ name: name,
34
+ size: iconSize
35
+ }));
36
+ }
37
+ return /*#__PURE__*/React.createElement(View, {
38
+ accessible: false,
39
+ style: styles.iconWrapper,
40
+ testID: testID
41
+ }, /*#__PURE__*/React.createElement(Icon, {
42
+ accessibilityLabel: accessibilityLabel,
43
+ color: iconColor,
44
+ name: name,
45
+ size: iconSize
46
+ }));
47
+ }
48
+ const styles = StyleSheet.create({
49
+ iconPressable: {
50
+ alignItems: 'center',
51
+ justifyContent: 'center'
52
+ },
53
+ iconWrapper: {
54
+ alignItems: 'center',
55
+ justifyContent: 'center'
56
+ }
57
+ });
58
+ //# sourceMappingURL=InputTextIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Pressable","StyleSheet","TouchableOpacity","View","Icon","useTheme","InputTextIcon","accessibilityLabel","color","name","onPress","size","testID","theme","iconColor","colors","text","tertiary","iconSize","spacing","lg","hitSlop","useMemo","bottom","xs","left","right","top","InteractiveComponent","createElement","accessibilityRole","style","styles","iconPressable","accessible","iconWrapper","create","alignItems","justifyContent"],"sourceRoot":"..\\..\\src","sources":["InputTextIcon.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,SAAS,EAAEC,UAAU,EAAEC,gBAAgB,EAAEC,IAAI,QAAQ,cAAc;AAE5E,SAASC,IAAI,QAAQ,gBAAgB;AACrC,SAASC,QAAQ,QAAQ,gBAAgB;AAIzC,OAAO,SAASC,aAAaA,CAAC;EAC5BC,kBAAkB;EAClBC,KAAK;EACLC,IAAI;EACJC,OAAO;EACPC,IAAI;EACJC;AACkB,CAAC,EAAe;EAClC,MAAMC,KAAK,GAAGR,QAAQ,CAAC,CAAC;EAExB,MAAMS,SAAS,GAAGN,KAAK,IAAIK,KAAK,CAACE,MAAM,CAACC,IAAI,CAACC,QAAQ;EACrD,MAAMC,QAAQ,GAAGP,IAAI,IAAIE,KAAK,CAACM,OAAO,CAACC,EAAE;EACzC,MAAMC,OAAO,GAAGtB,KAAK,CAACuB,OAAO,CAC3B,OAAO;IACLC,MAAM,EAAEV,KAAK,CAACM,OAAO,CAACK,EAAE;IACxBC,IAAI,EAAEZ,KAAK,CAACM,OAAO,CAACK,EAAE;IACtBE,KAAK,EAAEb,KAAK,CAACM,OAAO,CAACK,EAAE;IACvBG,GAAG,EAAEd,KAAK,CAACM,OAAO,CAACK;EACrB,CAAC,CAAC,EACF,CAACX,KAAK,CAACM,OAAO,CAACK,EAAE,CACnB,CAAC;EAED,IAAId,OAAO,EAAE;IACX,MAAMkB,oBAAoB,GAAG5B,SAAS,IAAIE,gBAAgB;IAE1D,oBACEH,KAAA,CAAA8B,aAAA,CAACD,oBAAoB;MACnBrB,kBAAkB,EAAEA,kBAAkB,IAAIE,IAAK;MAC/CqB,iBAAiB,EAAC,QAAQ;MAC1BT,OAAO,EAAEA,OAAQ;MACjBX,OAAO,EAAEA,OAAQ;MACjBqB,KAAK,EAAEC,MAAM,CAACC,aAAc;MAC5BrB,MAAM,EAAEA;IAAO,gBAEfb,KAAA,CAAA8B,aAAA,CAACzB,IAAI;MAACI,KAAK,EAAEM,SAAU;MAACL,IAAI,EAAEA,IAAK;MAACE,IAAI,EAAEO;IAAS,CAAE,CACjC,CAAC;EAE3B;EAEA,oBACEnB,KAAA,CAAA8B,aAAA,CAAC1B,IAAI;IAAC+B,UAAU,EAAE,KAAM;IAACH,KAAK,EAAEC,MAAM,CAACG,WAAY;IAACvB,MAAM,EAAEA;EAAO,gBACjEb,KAAA,CAAA8B,aAAA,CAACzB,IAAI;IAACG,kBAAkB,EAAEA,kBAAmB;IAACC,KAAK,EAAEM,SAAU;IAACL,IAAI,EAAEA,IAAK;IAACE,IAAI,EAAEO;EAAS,CAAE,CACzF,CAAC;AAEX;AAEA,MAAMc,MAAM,GAAG/B,UAAU,CAACmC,MAAM,CAAC;EAC/BH,aAAa,EAAE;IACbI,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDH,WAAW,EAAE;IACXE,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ import { useCallback, useMemo, useRef } from 'react';
2
+ import { Animated } from 'react-native';
3
+ export function useShakeAnimation({
4
+ distance = 6,
5
+ duration = 60,
6
+ iterations = 2
7
+ } = {}) {
8
+ const translation = useRef(new Animated.Value(0)).current;
9
+ const animatedStyle = useMemo(() => ({
10
+ transform: [{
11
+ translateX: translation.interpolate({
12
+ inputRange: [-1, -0.5, 0, 0.5, 1],
13
+ outputRange: [-distance, -distance / 2, 0, distance / 2, distance]
14
+ })
15
+ }]
16
+ }), [distance, translation]);
17
+ const triggerShake = useCallback(() => {
18
+ translation.setValue(0);
19
+ const animation = Animated.sequence([Animated.timing(translation, {
20
+ duration,
21
+ toValue: 1,
22
+ useNativeDriver: true
23
+ }), Animated.timing(translation, {
24
+ duration,
25
+ toValue: -1,
26
+ useNativeDriver: true
27
+ })]);
28
+ Animated.loop(animation, {
29
+ iterations
30
+ }).start(() => {
31
+ translation.setValue(0);
32
+ });
33
+ }, [duration, iterations, translation]);
34
+ return {
35
+ animatedStyle,
36
+ triggerShake
37
+ };
38
+ }
39
+ //# sourceMappingURL=shake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useMemo","useRef","Animated","useShakeAnimation","distance","duration","iterations","translation","Value","current","animatedStyle","transform","translateX","interpolate","inputRange","outputRange","triggerShake","setValue","animation","sequence","timing","toValue","useNativeDriver","loop","start"],"sourceRoot":"..\\..\\..\\src","sources":["animations/shake.ts"],"mappings":"AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAEpD,SAASC,QAAQ,QAAQ,cAAc;AA8BvC,OAAO,SAASC,iBAAiBA,CAAC;EAChCC,QAAQ,GAAG,CAAC;EACZC,QAAQ,GAAG,EAAE;EACbC,UAAU,GAAG;AACU,CAAC,GAAG,CAAC,CAAC,EAA2B;EACxD,MAAMC,WAAW,GAAGN,MAAM,CAAC,IAAIC,QAAQ,CAACM,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAEzD,MAAMC,aAAa,GAAGV,OAAO,CAC3B,OAAO;IACLW,SAAS,EAAE,CACT;MACEC,UAAU,EAAEL,WAAW,CAACM,WAAW,CAAC;QAClCC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACjCC,WAAW,EAAE,CAAC,CAACX,QAAQ,EAAE,CAACA,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAEA,QAAQ,GAAG,CAAC,EAAEA,QAAQ;MACnE,CAAC;IACH,CAAC;EAEL,CAAC,CAAC,EACF,CAACA,QAAQ,EAAEG,WAAW,CACxB,CAAC;EAED,MAAMS,YAAY,GAAGjB,WAAW,CAAC,MAAM;IACrCQ,WAAW,CAACU,QAAQ,CAAC,CAAC,CAAC;IAEvB,MAAMC,SAAS,GAAGhB,QAAQ,CAACiB,QAAQ,CAAC,CAClCjB,QAAQ,CAACkB,MAAM,CAACb,WAAW,EAAE;MAC3BF,QAAQ;MACRgB,OAAO,EAAE,CAAC;MACVC,eAAe,EAAE;IACnB,CAAC,CAAC,EACFpB,QAAQ,CAACkB,MAAM,CAACb,WAAW,EAAE;MAC3BF,QAAQ;MACRgB,OAAO,EAAE,CAAC,CAAC;MACXC,eAAe,EAAE;IACnB,CAAC,CAAC,CACH,CAAC;IAEFpB,QAAQ,CAACqB,IAAI,CAACL,SAAS,EAAE;MAAEZ;IAAW,CAAC,CAAC,CAACkB,KAAK,CAAC,MAAM;MACnDjB,WAAW,CAACU,QAAQ,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC;EACJ,CAAC,EAAE,CAACZ,QAAQ,EAAEC,UAAU,EAAEC,WAAW,CAAC,CAAC;EAEvC,OAAO;IAAEG,aAAa;IAAEM;EAAa,CAAC;AACxC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export { InputText } from './InputText';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["InputText"],"sourceRoot":"..\\..\\src","sources":["index.tsx"],"mappings":"AAAA,SAASA,SAAS,QAAQ,aAAa","ignoreList":[]}