@wecareu/select 0.1.0

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 (77) hide show
  1. package/README.md +165 -0
  2. package/lib/commonjs/Select.js +272 -0
  3. package/lib/commonjs/Select.js.map +1 -0
  4. package/lib/commonjs/Select.types.js +6 -0
  5. package/lib/commonjs/Select.types.js.map +1 -0
  6. package/lib/commonjs/SelectChip.js +74 -0
  7. package/lib/commonjs/SelectChip.js.map +1 -0
  8. package/lib/commonjs/SelectDropdown.js +156 -0
  9. package/lib/commonjs/SelectDropdown.js.map +1 -0
  10. package/lib/commonjs/SelectErrorMessage.js +32 -0
  11. package/lib/commonjs/SelectErrorMessage.js.map +1 -0
  12. package/lib/commonjs/SelectIcon.js +64 -0
  13. package/lib/commonjs/SelectIcon.js.map +1 -0
  14. package/lib/commonjs/SelectOption.js +140 -0
  15. package/lib/commonjs/SelectOption.js.map +1 -0
  16. package/lib/commonjs/SelectSearch.js +79 -0
  17. package/lib/commonjs/SelectSearch.js.map +1 -0
  18. package/lib/commonjs/animations/shake.js +45 -0
  19. package/lib/commonjs/animations/shake.js.map +1 -0
  20. package/lib/commonjs/index.js +13 -0
  21. package/lib/commonjs/index.js.map +1 -0
  22. package/lib/commonjs/index.stories.js +383 -0
  23. package/lib/commonjs/index.stories.js.map +1 -0
  24. package/lib/module/Select.js +265 -0
  25. package/lib/module/Select.js.map +1 -0
  26. package/lib/module/Select.types.js +2 -0
  27. package/lib/module/Select.types.js.map +1 -0
  28. package/lib/module/SelectChip.js +67 -0
  29. package/lib/module/SelectChip.js.map +1 -0
  30. package/lib/module/SelectDropdown.js +149 -0
  31. package/lib/module/SelectDropdown.js.map +1 -0
  32. package/lib/module/SelectErrorMessage.js +25 -0
  33. package/lib/module/SelectErrorMessage.js.map +1 -0
  34. package/lib/module/SelectIcon.js +57 -0
  35. package/lib/module/SelectIcon.js.map +1 -0
  36. package/lib/module/SelectOption.js +133 -0
  37. package/lib/module/SelectOption.js.map +1 -0
  38. package/lib/module/SelectSearch.js +72 -0
  39. package/lib/module/SelectSearch.js.map +1 -0
  40. package/lib/module/animations/shake.js +39 -0
  41. package/lib/module/animations/shake.js.map +1 -0
  42. package/lib/module/index.js +2 -0
  43. package/lib/module/index.js.map +1 -0
  44. package/lib/module/index.stories.js +376 -0
  45. package/lib/module/index.stories.js.map +1 -0
  46. package/lib/typescript/src/Select.d.ts +3 -0
  47. package/lib/typescript/src/Select.d.ts.map +1 -0
  48. package/lib/typescript/src/Select.types.d.ts +245 -0
  49. package/lib/typescript/src/Select.types.d.ts.map +1 -0
  50. package/lib/typescript/src/SelectChip.d.ts +3 -0
  51. package/lib/typescript/src/SelectChip.d.ts.map +1 -0
  52. package/lib/typescript/src/SelectDropdown.d.ts +3 -0
  53. package/lib/typescript/src/SelectDropdown.d.ts.map +1 -0
  54. package/lib/typescript/src/SelectErrorMessage.d.ts +3 -0
  55. package/lib/typescript/src/SelectErrorMessage.d.ts.map +1 -0
  56. package/lib/typescript/src/SelectIcon.d.ts +3 -0
  57. package/lib/typescript/src/SelectIcon.d.ts.map +1 -0
  58. package/lib/typescript/src/SelectOption.d.ts +3 -0
  59. package/lib/typescript/src/SelectOption.d.ts.map +1 -0
  60. package/lib/typescript/src/SelectSearch.d.ts +3 -0
  61. package/lib/typescript/src/SelectSearch.d.ts.map +1 -0
  62. package/lib/typescript/src/animations/shake.d.ts +32 -0
  63. package/lib/typescript/src/animations/shake.d.ts.map +1 -0
  64. package/lib/typescript/src/index.d.ts +3 -0
  65. package/lib/typescript/src/index.d.ts.map +1 -0
  66. package/package.json +66 -0
  67. package/src/Select.tsx +338 -0
  68. package/src/Select.types.ts +256 -0
  69. package/src/SelectChip.tsx +75 -0
  70. package/src/SelectDropdown.tsx +184 -0
  71. package/src/SelectErrorMessage.tsx +31 -0
  72. package/src/SelectIcon.tsx +63 -0
  73. package/src/SelectOption.tsx +168 -0
  74. package/src/SelectSearch.tsx +81 -0
  75. package/src/animations/shake.ts +76 -0
  76. package/src/index.stories.tsx +336 -0
  77. package/src/index.tsx +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Animated","Pressable","ScrollView","StyleSheet","Text","View","useTheme","useShakeAnimation","SelectChip","SelectDropdown","SelectErrorMessage","SelectIcon","Select","props","theme","styles","useMemo","createStyles","clearable","disabled","errorMessage","inputError","labels","leftIcon","multiple","onValidation","options","placeholder","readonly","required","searchable","style","testID","value","length","console","error","isInteractive","isOpen","setIsOpen","useState","touched","setTouched","animatedStyle","triggerShake","distance","spacing","sm","isEmpty","undefined","internalHasError","useEffect","shouldShowError","requiredErrorMessage","requiredError","effectiveErrorMessage","previousErrorRef","useRef","current","selectedValues","selectedOptions","filter","o","includes","singleLabel","find","label","handleOpen","useCallback","handleClose","handleToggleOption","option","multiProps","isSelected","next","v","onChange","singleProps","handleClear","handleRemoveChip","optionValue","showClearButton","renderFieldContent","createElement","horizontal","keyboardShouldPersistTaps","showsHorizontalScrollIndicator","chipsScroll","contentContainerStyle","chipsContainer","map","opt","key","String","onRemove","numberOfLines","selectedLabel","wrapper","accessible","container","containerDisabled","containerError","iconLeft","accessibilityHint","accessibilityLabel","accessibilityRole","accessibilityState","expanded","onPress","fieldPressable","rightIcons","hitSlop","color","colors","text","tertiary","name","size","md","message","isMulti","onClose","onToggleOption","create","alignItems","flexDirection","gap","xs","paddingVertical","flex","backgroundColor","borderColor","brand","primary","borderRadius","radius","xxl","borderWidth","minHeight","paddingHorizontal","xl","width","surface","border","status","justifyContent","marginRight","fontFamily","typography","body","lineHeight","bodySmall","textAlign","marginLeft"],"sourceRoot":"..\\..\\src","sources":["Select.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Select.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"..\\..\\src","sources":["Select.types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,67 @@
1
+ import React from 'react';
2
+ import { Pressable, StyleSheet, Text, View } from 'react-native';
3
+ import { Icon } from '@wecareu/icons';
4
+ import { useTheme } from '@wecareu/theme';
5
+ export function SelectChip({
6
+ disabled,
7
+ label,
8
+ onRemove
9
+ }) {
10
+ const theme = useTheme();
11
+ const styles = React.useMemo(() => createStyles(theme), [theme]);
12
+ return /*#__PURE__*/React.createElement(View, {
13
+ accessibilityLabel: label,
14
+ accessibilityRole: "none",
15
+ style: [styles.chip, disabled && styles.chipDisabled]
16
+ }, /*#__PURE__*/React.createElement(Text, {
17
+ numberOfLines: 1,
18
+ style: [styles.label, disabled && styles.labelDisabled]
19
+ }, label), onRemove && !disabled ? /*#__PURE__*/React.createElement(Pressable, {
20
+ accessibilityHint: `Remove ${label}`,
21
+ accessibilityLabel: `Remove ${label}`,
22
+ accessibilityRole: "button",
23
+ hitSlop: 4,
24
+ onPress: onRemove,
25
+ style: styles.removeButton
26
+ }, /*#__PURE__*/React.createElement(Icon, {
27
+ color: theme.colors.brand.primary,
28
+ name: "close",
29
+ size: 10
30
+ })) : null);
31
+ }
32
+ function createStyles(theme) {
33
+ return StyleSheet.create({
34
+ chip: {
35
+ alignItems: 'center',
36
+ backgroundColor: theme.colors.surface.secondary,
37
+ borderColor: theme.colors.brand.primary,
38
+ borderRadius: theme.radius.sm,
39
+ borderWidth: 1,
40
+ flexDirection: 'row',
41
+ flexShrink: 1,
42
+ gap: 4,
43
+ maxWidth: 120,
44
+ paddingHorizontal: theme.spacing.xs,
45
+ paddingVertical: 2
46
+ },
47
+ chipDisabled: {
48
+ backgroundColor: theme.colors.surface.disabled,
49
+ borderColor: theme.colors.border.disabled
50
+ },
51
+ label: {
52
+ color: theme.colors.brand.primary,
53
+ flexShrink: 1,
54
+ fontFamily: theme.typography.fontFamily.caption,
55
+ fontSize: theme.typography.fontSize.xs,
56
+ lineHeight: theme.typography.lineHeight.labelSmall
57
+ },
58
+ labelDisabled: {
59
+ color: theme.colors.text.disabled
60
+ },
61
+ removeButton: {
62
+ alignItems: 'center',
63
+ justifyContent: 'center'
64
+ }
65
+ });
66
+ }
67
+ //# sourceMappingURL=SelectChip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Pressable","StyleSheet","Text","View","Icon","useTheme","SelectChip","disabled","label","onRemove","theme","styles","useMemo","createStyles","createElement","accessibilityLabel","accessibilityRole","style","chip","chipDisabled","numberOfLines","labelDisabled","accessibilityHint","hitSlop","onPress","removeButton","color","colors","brand","primary","name","size","create","alignItems","backgroundColor","surface","secondary","borderColor","borderRadius","radius","sm","borderWidth","flexDirection","flexShrink","gap","maxWidth","paddingHorizontal","spacing","xs","paddingVertical","border","fontFamily","typography","caption","fontSize","lineHeight","labelSmall","text","justifyContent"],"sourceRoot":"..\\..\\src","sources":["SelectChip.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,149 @@
1
+ import React from 'react';
2
+ import { Animated, FlatList, KeyboardAvoidingView, Modal, Platform, Pressable, StyleSheet, View } from 'react-native';
3
+ import { useTheme } from '@wecareu/theme';
4
+ import { SelectOptionItem } from './SelectOption';
5
+ import { SelectSearch } from './SelectSearch';
6
+ const ANIMATION_DURATION = 250;
7
+ const INITIAL_RENDER_COUNT = 20;
8
+ const MAX_RENDER_BATCH = 20;
9
+ const WINDOW_SIZE = 5;
10
+ export function SelectDropdown({
11
+ isMulti,
12
+ isOpen,
13
+ onClose,
14
+ onToggleOption,
15
+ options,
16
+ searchable,
17
+ selectedValues
18
+ }) {
19
+ const theme = useTheme();
20
+ const styles = React.useMemo(() => createStyles(theme), [theme]);
21
+ const translateY = React.useRef(new Animated.Value(500)).current;
22
+ const overlayOpacity = React.useRef(new Animated.Value(0)).current;
23
+ const [searchQuery, setSearchQuery] = React.useState('');
24
+ React.useEffect(() => {
25
+ if (isOpen) {
26
+ setSearchQuery('');
27
+ Animated.parallel([Animated.timing(translateY, {
28
+ duration: ANIMATION_DURATION,
29
+ toValue: 0,
30
+ useNativeDriver: true
31
+ }), Animated.timing(overlayOpacity, {
32
+ duration: ANIMATION_DURATION,
33
+ toValue: 1,
34
+ useNativeDriver: true
35
+ })]).start();
36
+ } else {
37
+ Animated.parallel([Animated.timing(translateY, {
38
+ duration: ANIMATION_DURATION,
39
+ toValue: 500,
40
+ useNativeDriver: true
41
+ }), Animated.timing(overlayOpacity, {
42
+ duration: ANIMATION_DURATION,
43
+ toValue: 0,
44
+ useNativeDriver: true
45
+ })]).start();
46
+ }
47
+ }, [isOpen, overlayOpacity, translateY]);
48
+ const filteredOptions = React.useMemo(() => {
49
+ if (!searchQuery.trim()) {
50
+ return options;
51
+ }
52
+ const query = searchQuery.toLowerCase().trim();
53
+ return options.filter(opt => opt.label.toLowerCase().includes(query));
54
+ }, [options, searchQuery]);
55
+ const renderItem = React.useCallback(({
56
+ item
57
+ }) => /*#__PURE__*/React.createElement(SelectOptionItem, {
58
+ disabled: item.disabled,
59
+ isMulti: isMulti,
60
+ isSelected: selectedValues.includes(item.value),
61
+ onPress: onToggleOption,
62
+ option: item
63
+ }), [isMulti, onToggleOption, selectedValues]);
64
+ const keyExtractor = React.useCallback(item => String(item.value), []);
65
+ const itemSeparator = React.useCallback(() => /*#__PURE__*/React.createElement(View, {
66
+ style: styles.separator
67
+ }), [styles.separator]);
68
+ return /*#__PURE__*/React.createElement(Modal, {
69
+ accessibilityViewIsModal: true,
70
+ animationType: "none",
71
+ onRequestClose: onClose,
72
+ statusBarTranslucent: true,
73
+ transparent: true,
74
+ visible: isOpen
75
+ }, /*#__PURE__*/React.createElement(KeyboardAvoidingView, {
76
+ behavior: Platform.OS === 'ios' ? 'padding' : undefined,
77
+ style: styles.keyboardView
78
+ }, /*#__PURE__*/React.createElement(Animated.View, {
79
+ style: [styles.overlay, {
80
+ opacity: overlayOpacity
81
+ }]
82
+ }, /*#__PURE__*/React.createElement(Pressable, {
83
+ accessibilityLabel: "Close dropdown",
84
+ style: styles.overlayPressable,
85
+ onPress: onClose
86
+ })), /*#__PURE__*/React.createElement(Animated.View, {
87
+ style: [styles.sheet, {
88
+ transform: [{
89
+ translateY
90
+ }]
91
+ }]
92
+ }, /*#__PURE__*/React.createElement(View, {
93
+ style: styles.dragHandle
94
+ }), searchable ? /*#__PURE__*/React.createElement(SelectSearch, {
95
+ onChangeText: setSearchQuery,
96
+ value: searchQuery
97
+ }) : null, /*#__PURE__*/React.createElement(FlatList, {
98
+ ItemSeparatorComponent: itemSeparator,
99
+ contentContainerStyle: styles.listContent,
100
+ data: filteredOptions,
101
+ extraData: selectedValues,
102
+ initialNumToRender: INITIAL_RENDER_COUNT,
103
+ keyExtractor: keyExtractor,
104
+ keyboardShouldPersistTaps: "handled",
105
+ maxToRenderPerBatch: MAX_RENDER_BATCH,
106
+ renderItem: renderItem,
107
+ windowSize: WINDOW_SIZE
108
+ }))));
109
+ }
110
+ function createStyles(theme) {
111
+ return StyleSheet.create({
112
+ dragHandle: {
113
+ alignSelf: 'center',
114
+ backgroundColor: theme.colors.border.secondary,
115
+ borderRadius: 2,
116
+ height: 4,
117
+ marginBottom: theme.spacing.xs,
118
+ marginTop: theme.spacing.sm,
119
+ width: 40
120
+ },
121
+ keyboardView: {
122
+ flex: 1,
123
+ justifyContent: 'flex-end'
124
+ },
125
+ listContent: {
126
+ paddingBottom: theme.spacing.xl
127
+ },
128
+ overlay: {
129
+ ...StyleSheet.absoluteFillObject,
130
+ backgroundColor: theme.colors.alpha?.overlay ?? 'rgba(0,0,0,0.5)'
131
+ },
132
+ overlayPressable: {
133
+ flex: 1
134
+ },
135
+ separator: {
136
+ backgroundColor: theme.colors.border.secondary,
137
+ height: StyleSheet.hairlineWidth,
138
+ marginLeft: theme.spacing.md
139
+ },
140
+ sheet: {
141
+ backgroundColor: theme.colors.background.primary,
142
+ borderTopLeftRadius: theme.radius.xl,
143
+ borderTopRightRadius: theme.radius.xl,
144
+ maxHeight: '70%',
145
+ ...theme.colors.shadowStyles.card
146
+ }
147
+ });
148
+ }
149
+ //# sourceMappingURL=SelectDropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Animated","FlatList","KeyboardAvoidingView","Modal","Platform","Pressable","StyleSheet","View","useTheme","SelectOptionItem","SelectSearch","ANIMATION_DURATION","INITIAL_RENDER_COUNT","MAX_RENDER_BATCH","WINDOW_SIZE","SelectDropdown","isMulti","isOpen","onClose","onToggleOption","options","searchable","selectedValues","theme","styles","useMemo","createStyles","translateY","useRef","Value","current","overlayOpacity","searchQuery","setSearchQuery","useState","useEffect","parallel","timing","duration","toValue","useNativeDriver","start","filteredOptions","trim","query","toLowerCase","filter","opt","label","includes","renderItem","useCallback","item","createElement","disabled","isSelected","value","onPress","option","keyExtractor","String","itemSeparator","style","separator","accessibilityViewIsModal","animationType","onRequestClose","statusBarTranslucent","transparent","visible","behavior","OS","undefined","keyboardView","overlay","opacity","accessibilityLabel","overlayPressable","sheet","transform","dragHandle","onChangeText","ItemSeparatorComponent","contentContainerStyle","listContent","data","extraData","initialNumToRender","keyboardShouldPersistTaps","maxToRenderPerBatch","windowSize","create","alignSelf","backgroundColor","colors","border","secondary","borderRadius","height","marginBottom","spacing","xs","marginTop","sm","width","flex","justifyContent","paddingBottom","xl","absoluteFillObject","alpha","hairlineWidth","marginLeft","md","background","primary","borderTopLeftRadius","radius","borderTopRightRadius","maxHeight","shadowStyles","card"],"sourceRoot":"..\\..\\src","sources":["SelectDropdown.tsx"],"mappings":"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","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 SelectErrorMessage({
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=SelectErrorMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Text","useTheme","SelectErrorMessage","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":["SelectErrorMessage.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,IAAI,QAAQ,cAAc;AAEnC,SAASC,QAAQ,QAAQ,gBAAgB;AAIzC,OAAO,SAASC,kBAAkBA,CAAC;EAAEC,OAAO;EAAEC;AAAgC,CAAC,EAAsB;EACnG,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,57 @@
1
+ import React from 'react';
2
+ import { Pressable, StyleSheet, View } from 'react-native';
3
+ import { Icon } from '@wecareu/icons';
4
+ import { useTheme } from '@wecareu/theme';
5
+ export function SelectIcon({
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
+ return /*#__PURE__*/React.createElement(Pressable, {
24
+ accessibilityLabel: accessibilityLabel ?? name,
25
+ accessibilityRole: "button",
26
+ hitSlop: hitSlop,
27
+ onPress: onPress,
28
+ style: styles.pressable,
29
+ testID: testID
30
+ }, /*#__PURE__*/React.createElement(Icon, {
31
+ color: iconColor,
32
+ name: name,
33
+ size: iconSize
34
+ }));
35
+ }
36
+ return /*#__PURE__*/React.createElement(View, {
37
+ accessible: false,
38
+ style: styles.wrapper,
39
+ testID: testID
40
+ }, /*#__PURE__*/React.createElement(Icon, {
41
+ accessibilityLabel: accessibilityLabel,
42
+ color: iconColor,
43
+ name: name,
44
+ size: iconSize
45
+ }));
46
+ }
47
+ const styles = StyleSheet.create({
48
+ pressable: {
49
+ alignItems: 'center',
50
+ justifyContent: 'center'
51
+ },
52
+ wrapper: {
53
+ alignItems: 'center',
54
+ justifyContent: 'center'
55
+ }
56
+ });
57
+ //# sourceMappingURL=SelectIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Pressable","StyleSheet","View","Icon","useTheme","SelectIcon","accessibilityLabel","color","name","onPress","size","testID","theme","iconColor","colors","text","tertiary","iconSize","spacing","lg","hitSlop","useMemo","bottom","xs","left","right","top","createElement","accessibilityRole","style","styles","pressable","accessible","wrapper","create","alignItems","justifyContent"],"sourceRoot":"..\\..\\src","sources":["SelectIcon.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,SAAS,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE1D,SAASC,IAAI,QAAQ,gBAAgB;AACrC,SAASC,QAAQ,QAAQ,gBAAgB;AAIzC,OAAO,SAASC,UAAUA,CAAC;EACzBC,kBAAkB;EAClBC,KAAK;EACLC,IAAI;EACJC,OAAO;EACPC,IAAI;EACJC;AACe,CAAC,EAAe;EAC/B,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,GAAGrB,KAAK,CAACsB,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,oBACEV,KAAA,CAAA4B,aAAA,CAAC3B,SAAS;MACRM,kBAAkB,EAAEA,kBAAkB,IAAIE,IAAK;MAC/CoB,iBAAiB,EAAC,QAAQ;MAC1BR,OAAO,EAAEA,OAAQ;MACjBX,OAAO,EAAEA,OAAQ;MACjBoB,KAAK,EAAEC,MAAM,CAACC,SAAU;MACxBpB,MAAM,EAAEA;IAAO,gBAEfZ,KAAA,CAAA4B,aAAA,CAACxB,IAAI;MAACI,KAAK,EAAEM,SAAU;MAACL,IAAI,EAAEA,IAAK;MAACE,IAAI,EAAEO;IAAS,CAAE,CAC5C,CAAC;EAEhB;EAEA,oBACElB,KAAA,CAAA4B,aAAA,CAACzB,IAAI;IAAC8B,UAAU,EAAE,KAAM;IAACH,KAAK,EAAEC,MAAM,CAACG,OAAQ;IAACtB,MAAM,EAAEA;EAAO,gBAC7DZ,KAAA,CAAA4B,aAAA,CAACxB,IAAI;IAACG,kBAAkB,EAAEA,kBAAmB;IAACC,KAAK,EAAEM,SAAU;IAACL,IAAI,EAAEA,IAAK;IAACE,IAAI,EAAEO;EAAS,CAAE,CACzF,CAAC;AAEX;AAEA,MAAMa,MAAM,GAAG7B,UAAU,CAACiC,MAAM,CAAC;EAC/BH,SAAS,EAAE;IACTI,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDH,OAAO,EAAE;IACPE,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,133 @@
1
+ import React from 'react';
2
+ import { Pressable, StyleSheet, Text, View } from 'react-native';
3
+ import { FlagIcon, Icon } from '@wecareu/icons';
4
+ import { useTheme } from '@wecareu/theme';
5
+ export function SelectOptionItem({
6
+ disabled,
7
+ isMulti,
8
+ isSelected,
9
+ onPress,
10
+ option
11
+ }) {
12
+ const theme = useTheme();
13
+ const styles = React.useMemo(() => createStyles(theme), [theme]);
14
+ const handlePress = React.useCallback(() => {
15
+ if (!disabled) {
16
+ onPress(option);
17
+ }
18
+ }, [disabled, onPress, option]);
19
+ const resolvedLabelColor = option.labelColor ? option.labelColor : isSelected ? theme.colors.brand.primary : theme.colors.text.primary;
20
+ return /*#__PURE__*/React.createElement(Pressable, {
21
+ accessibilityRole: "menuitem",
22
+ accessibilityState: {
23
+ disabled,
24
+ selected: isSelected
25
+ },
26
+ disabled: disabled,
27
+ onPress: handlePress,
28
+ style: ({
29
+ pressed
30
+ }) => [styles.container, option.color ? {
31
+ backgroundColor: option.color
32
+ } : isSelected && styles.containerSelected, disabled && styles.containerDisabled, pressed && !disabled && !option.color && styles.containerPressed]
33
+ }, option.flagCode ? /*#__PURE__*/React.createElement(View, {
34
+ style: styles.iconWrapper
35
+ }, /*#__PURE__*/React.createElement(FlagIcon, {
36
+ countryCode: option.flagCode,
37
+ size: theme.spacing.md + 2
38
+ })) : option.icon ? /*#__PURE__*/React.createElement(View, {
39
+ style: styles.iconWrapper
40
+ }, /*#__PURE__*/React.createElement(Icon, {
41
+ color: disabled ? theme.colors.text.disabled : resolvedLabelColor,
42
+ name: option.icon,
43
+ size: theme.spacing.lg
44
+ })) : null, /*#__PURE__*/React.createElement(View, {
45
+ style: styles.textWrapper
46
+ }, /*#__PURE__*/React.createElement(Text, {
47
+ numberOfLines: 1,
48
+ style: [styles.label, {
49
+ color: disabled ? theme.colors.text.disabled : resolvedLabelColor
50
+ }, isSelected && !option.labelColor && styles.labelSelected, disabled && styles.labelDisabled]
51
+ }, option.label), option.description ? /*#__PURE__*/React.createElement(Text, {
52
+ numberOfLines: 2,
53
+ style: [styles.description, disabled && styles.descriptionDisabled]
54
+ }, option.description) : null), isMulti ? /*#__PURE__*/React.createElement(View, {
55
+ style: [styles.checkbox, isSelected && styles.checkboxSelected, disabled && styles.checkboxDisabled]
56
+ }, isSelected ? /*#__PURE__*/React.createElement(Icon, {
57
+ color: theme.colors.text.white,
58
+ name: "correct",
59
+ size: 12
60
+ }) : null) : isSelected ? /*#__PURE__*/React.createElement(Icon, {
61
+ color: option.labelColor ?? theme.colors.brand.primary,
62
+ name: "correct",
63
+ size: theme.spacing.md
64
+ }) : null);
65
+ }
66
+ function createStyles(theme) {
67
+ return StyleSheet.create({
68
+ checkbox: {
69
+ alignItems: 'center',
70
+ borderColor: theme.colors.border.primary,
71
+ borderRadius: theme.radius.xs,
72
+ borderWidth: 1.5,
73
+ height: 20,
74
+ justifyContent: 'center',
75
+ width: 20
76
+ },
77
+ checkboxDisabled: {
78
+ borderColor: theme.colors.border.disabled
79
+ },
80
+ checkboxSelected: {
81
+ backgroundColor: theme.colors.brand.primary,
82
+ borderColor: theme.colors.brand.primary
83
+ },
84
+ container: {
85
+ alignItems: 'center',
86
+ flexDirection: 'row',
87
+ gap: theme.spacing.sm,
88
+ paddingHorizontal: theme.spacing.md,
89
+ paddingVertical: theme.spacing.sm
90
+ },
91
+ containerDisabled: {
92
+ opacity: 0.4
93
+ },
94
+ containerPressed: {
95
+ backgroundColor: theme.colors.surface.secondary
96
+ },
97
+ containerSelected: {
98
+ backgroundColor: theme.colors.surface.secondary
99
+ },
100
+ description: {
101
+ color: theme.colors.text.secondary,
102
+ fontFamily: theme.typography.fontFamily.caption,
103
+ fontSize: theme.typography.fontSize.xs,
104
+ lineHeight: theme.typography.lineHeight.labelSmall,
105
+ marginTop: 2
106
+ },
107
+ descriptionDisabled: {
108
+ color: theme.colors.text.disabled
109
+ },
110
+ iconWrapper: {
111
+ alignItems: 'center',
112
+ height: theme.spacing.lg,
113
+ justifyContent: 'center',
114
+ marginRight: theme.spacing.md,
115
+ width: theme.spacing.lg
116
+ },
117
+ label: {
118
+ fontFamily: theme.typography.fontFamily.body,
119
+ fontSize: theme.typography.fontSize.md,
120
+ lineHeight: theme.typography.lineHeight.bodySmall
121
+ },
122
+ labelDisabled: {
123
+ color: theme.colors.text.disabled
124
+ },
125
+ labelSelected: {
126
+ fontFamily: theme.typography.fontFamily.semibold
127
+ },
128
+ textWrapper: {
129
+ flex: 1
130
+ }
131
+ });
132
+ }
133
+ //# sourceMappingURL=SelectOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Pressable","StyleSheet","Text","View","FlagIcon","Icon","useTheme","SelectOptionItem","disabled","isMulti","isSelected","onPress","option","theme","styles","useMemo","createStyles","handlePress","useCallback","resolvedLabelColor","labelColor","colors","brand","primary","text","createElement","accessibilityRole","accessibilityState","selected","style","pressed","container","color","backgroundColor","containerSelected","containerDisabled","containerPressed","flagCode","iconWrapper","countryCode","size","spacing","md","icon","name","lg","textWrapper","numberOfLines","label","labelSelected","labelDisabled","description","descriptionDisabled","checkbox","checkboxSelected","checkboxDisabled","white","create","alignItems","borderColor","border","borderRadius","radius","xs","borderWidth","height","justifyContent","width","flexDirection","gap","sm","paddingHorizontal","paddingVertical","opacity","surface","secondary","fontFamily","typography","caption","fontSize","lineHeight","labelSmall","marginTop","marginRight","body","bodySmall","semibold","flex"],"sourceRoot":"..\\..\\src","sources":["SelectOption.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,72 @@
1
+ import React from 'react';
2
+ import { StyleSheet, TextInput, View } from 'react-native';
3
+ import { Icon } from '@wecareu/icons';
4
+ import { useTheme } from '@wecareu/theme';
5
+ const DEBOUNCE_MS = 200;
6
+ export function SelectSearch({
7
+ onChangeText,
8
+ value
9
+ }) {
10
+ const theme = useTheme();
11
+ const styles = React.useMemo(() => createStyles(theme), [theme]);
12
+ const debounceRef = React.useRef(null);
13
+ const handleChangeText = React.useCallback(text => {
14
+ if (debounceRef.current) {
15
+ clearTimeout(debounceRef.current);
16
+ }
17
+ debounceRef.current = setTimeout(() => {
18
+ onChangeText(text);
19
+ }, DEBOUNCE_MS);
20
+ }, [onChangeText]);
21
+ React.useEffect(() => {
22
+ return () => {
23
+ if (debounceRef.current) {
24
+ clearTimeout(debounceRef.current);
25
+ }
26
+ };
27
+ }, []);
28
+ return /*#__PURE__*/React.createElement(View, {
29
+ style: styles.container
30
+ }, /*#__PURE__*/React.createElement(View, {
31
+ style: styles.iconWrapper
32
+ }, /*#__PURE__*/React.createElement(Icon, {
33
+ color: theme.colors.text.tertiary,
34
+ name: "search",
35
+ size: theme.spacing.md
36
+ })), /*#__PURE__*/React.createElement(TextInput, {
37
+ accessibilityLabel: "Search options",
38
+ autoCapitalize: "none",
39
+ autoCorrect: false,
40
+ clearButtonMode: "while-editing",
41
+ defaultValue: value,
42
+ onChangeText: handleChangeText,
43
+ placeholderTextColor: theme.colors.text.tertiary,
44
+ returnKeyType: "search",
45
+ style: styles.input
46
+ }));
47
+ }
48
+ function createStyles(theme) {
49
+ return StyleSheet.create({
50
+ container: {
51
+ alignItems: 'center',
52
+ borderBottomColor: theme.colors.border.secondary,
53
+ borderBottomWidth: 1,
54
+ flexDirection: 'row',
55
+ marginBottom: theme.spacing.xs,
56
+ paddingHorizontal: theme.spacing.md,
57
+ paddingVertical: theme.spacing.sm
58
+ },
59
+ iconWrapper: {
60
+ marginRight: theme.spacing.xs
61
+ },
62
+ input: {
63
+ color: theme.colors.text.primary,
64
+ flex: 1,
65
+ fontFamily: theme.typography.fontFamily.body,
66
+ fontSize: theme.typography.fontSize.md,
67
+ lineHeight: theme.typography.lineHeight.bodySmall,
68
+ paddingVertical: theme.spacing.xs
69
+ }
70
+ });
71
+ }
72
+ //# sourceMappingURL=SelectSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","TextInput","View","Icon","useTheme","DEBOUNCE_MS","SelectSearch","onChangeText","value","theme","styles","useMemo","createStyles","debounceRef","useRef","handleChangeText","useCallback","text","current","clearTimeout","setTimeout","useEffect","createElement","style","container","iconWrapper","color","colors","tertiary","name","size","spacing","md","accessibilityLabel","autoCapitalize","autoCorrect","clearButtonMode","defaultValue","placeholderTextColor","returnKeyType","input","create","alignItems","borderBottomColor","border","secondary","borderBottomWidth","flexDirection","marginBottom","xs","paddingHorizontal","paddingVertical","sm","marginRight","primary","flex","fontFamily","typography","body","fontSize","lineHeight","bodySmall"],"sourceRoot":"..\\..\\src","sources":["SelectSearch.tsx"],"mappings":"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","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 { Select } from './Select';
2
+ //# sourceMappingURL=index.js.map