@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,156 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SelectDropdown = SelectDropdown;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _theme = require("@wecareu/theme");
10
+ var _SelectOption = require("./SelectOption");
11
+ var _SelectSearch = require("./SelectSearch");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ const ANIMATION_DURATION = 250;
14
+ const INITIAL_RENDER_COUNT = 20;
15
+ const MAX_RENDER_BATCH = 20;
16
+ const WINDOW_SIZE = 5;
17
+ function SelectDropdown({
18
+ isMulti,
19
+ isOpen,
20
+ onClose,
21
+ onToggleOption,
22
+ options,
23
+ searchable,
24
+ selectedValues
25
+ }) {
26
+ const theme = (0, _theme.useTheme)();
27
+ const styles = _react.default.useMemo(() => createStyles(theme), [theme]);
28
+ const translateY = _react.default.useRef(new _reactNative.Animated.Value(500)).current;
29
+ const overlayOpacity = _react.default.useRef(new _reactNative.Animated.Value(0)).current;
30
+ const [searchQuery, setSearchQuery] = _react.default.useState('');
31
+ _react.default.useEffect(() => {
32
+ if (isOpen) {
33
+ setSearchQuery('');
34
+ _reactNative.Animated.parallel([_reactNative.Animated.timing(translateY, {
35
+ duration: ANIMATION_DURATION,
36
+ toValue: 0,
37
+ useNativeDriver: true
38
+ }), _reactNative.Animated.timing(overlayOpacity, {
39
+ duration: ANIMATION_DURATION,
40
+ toValue: 1,
41
+ useNativeDriver: true
42
+ })]).start();
43
+ } else {
44
+ _reactNative.Animated.parallel([_reactNative.Animated.timing(translateY, {
45
+ duration: ANIMATION_DURATION,
46
+ toValue: 500,
47
+ useNativeDriver: true
48
+ }), _reactNative.Animated.timing(overlayOpacity, {
49
+ duration: ANIMATION_DURATION,
50
+ toValue: 0,
51
+ useNativeDriver: true
52
+ })]).start();
53
+ }
54
+ }, [isOpen, overlayOpacity, translateY]);
55
+ const filteredOptions = _react.default.useMemo(() => {
56
+ if (!searchQuery.trim()) {
57
+ return options;
58
+ }
59
+ const query = searchQuery.toLowerCase().trim();
60
+ return options.filter(opt => opt.label.toLowerCase().includes(query));
61
+ }, [options, searchQuery]);
62
+ const renderItem = _react.default.useCallback(({
63
+ item
64
+ }) => /*#__PURE__*/_react.default.createElement(_SelectOption.SelectOptionItem, {
65
+ disabled: item.disabled,
66
+ isMulti: isMulti,
67
+ isSelected: selectedValues.includes(item.value),
68
+ onPress: onToggleOption,
69
+ option: item
70
+ }), [isMulti, onToggleOption, selectedValues]);
71
+ const keyExtractor = _react.default.useCallback(item => String(item.value), []);
72
+ const itemSeparator = _react.default.useCallback(() => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
73
+ style: styles.separator
74
+ }), [styles.separator]);
75
+ return /*#__PURE__*/_react.default.createElement(_reactNative.Modal, {
76
+ accessibilityViewIsModal: true,
77
+ animationType: "none",
78
+ onRequestClose: onClose,
79
+ statusBarTranslucent: true,
80
+ transparent: true,
81
+ visible: isOpen
82
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.KeyboardAvoidingView, {
83
+ behavior: _reactNative.Platform.OS === 'ios' ? 'padding' : undefined,
84
+ style: styles.keyboardView
85
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
86
+ style: [styles.overlay, {
87
+ opacity: overlayOpacity
88
+ }]
89
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
90
+ accessibilityLabel: "Close dropdown",
91
+ style: styles.overlayPressable,
92
+ onPress: onClose
93
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
94
+ style: [styles.sheet, {
95
+ transform: [{
96
+ translateY
97
+ }]
98
+ }]
99
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
100
+ style: styles.dragHandle
101
+ }), searchable ? /*#__PURE__*/_react.default.createElement(_SelectSearch.SelectSearch, {
102
+ onChangeText: setSearchQuery,
103
+ value: searchQuery
104
+ }) : null, /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, {
105
+ ItemSeparatorComponent: itemSeparator,
106
+ contentContainerStyle: styles.listContent,
107
+ data: filteredOptions,
108
+ extraData: selectedValues,
109
+ initialNumToRender: INITIAL_RENDER_COUNT,
110
+ keyExtractor: keyExtractor,
111
+ keyboardShouldPersistTaps: "handled",
112
+ maxToRenderPerBatch: MAX_RENDER_BATCH,
113
+ renderItem: renderItem,
114
+ windowSize: WINDOW_SIZE
115
+ }))));
116
+ }
117
+ function createStyles(theme) {
118
+ return _reactNative.StyleSheet.create({
119
+ dragHandle: {
120
+ alignSelf: 'center',
121
+ backgroundColor: theme.colors.border.secondary,
122
+ borderRadius: 2,
123
+ height: 4,
124
+ marginBottom: theme.spacing.xs,
125
+ marginTop: theme.spacing.sm,
126
+ width: 40
127
+ },
128
+ keyboardView: {
129
+ flex: 1,
130
+ justifyContent: 'flex-end'
131
+ },
132
+ listContent: {
133
+ paddingBottom: theme.spacing.xl
134
+ },
135
+ overlay: {
136
+ ..._reactNative.StyleSheet.absoluteFillObject,
137
+ backgroundColor: theme.colors.alpha?.overlay ?? 'rgba(0,0,0,0.5)'
138
+ },
139
+ overlayPressable: {
140
+ flex: 1
141
+ },
142
+ separator: {
143
+ backgroundColor: theme.colors.border.secondary,
144
+ height: _reactNative.StyleSheet.hairlineWidth,
145
+ marginLeft: theme.spacing.md
146
+ },
147
+ sheet: {
148
+ backgroundColor: theme.colors.background.primary,
149
+ borderTopLeftRadius: theme.radius.xl,
150
+ borderTopRightRadius: theme.radius.xl,
151
+ maxHeight: '70%',
152
+ ...theme.colors.shadowStyles.card
153
+ }
154
+ });
155
+ }
156
+ //# sourceMappingURL=SelectDropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_theme","_SelectOption","_SelectSearch","e","__esModule","default","ANIMATION_DURATION","INITIAL_RENDER_COUNT","MAX_RENDER_BATCH","WINDOW_SIZE","SelectDropdown","isMulti","isOpen","onClose","onToggleOption","options","searchable","selectedValues","theme","useTheme","styles","React","useMemo","createStyles","translateY","useRef","Animated","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","SelectOptionItem","disabled","isSelected","value","onPress","option","keyExtractor","String","itemSeparator","View","style","separator","Modal","accessibilityViewIsModal","animationType","onRequestClose","statusBarTranslucent","transparent","visible","KeyboardAvoidingView","behavior","Platform","OS","undefined","keyboardView","overlay","opacity","Pressable","accessibilityLabel","overlayPressable","sheet","transform","dragHandle","SelectSearch","onChangeText","FlatList","ItemSeparatorComponent","contentContainerStyle","listContent","data","extraData","initialNumToRender","keyboardShouldPersistTaps","maxToRenderPerBatch","windowSize","StyleSheet","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,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SelectErrorMessage = SelectErrorMessage;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _theme = require("@wecareu/theme");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ function SelectErrorMessage({
12
+ message,
13
+ testID
14
+ }) {
15
+ const theme = (0, _theme.useTheme)();
16
+ const errorTextStyle = _react.default.useMemo(() => ({
17
+ color: theme.colors.status.error,
18
+ fontFamily: theme.typography.fontFamily.caption,
19
+ fontSize: theme.typography.fontSize.sm,
20
+ lineHeight: theme.typography.lineHeight.labelMedium,
21
+ marginTop: theme.spacing.xs
22
+ }), [theme]);
23
+ if (!message) {
24
+ return null;
25
+ }
26
+ return /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
27
+ accessibilityLiveRegion: "polite",
28
+ style: errorTextStyle,
29
+ testID: testID
30
+ }, message);
31
+ }
32
+ //# sourceMappingURL=SelectErrorMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_theme","e","__esModule","default","SelectErrorMessage","message","testID","theme","useTheme","errorTextStyle","React","useMemo","color","colors","status","error","fontFamily","typography","caption","fontSize","sm","lineHeight","labelMedium","marginTop","spacing","xs","createElement","Text","accessibilityLiveRegion","style"],"sourceRoot":"..\\..\\src","sources":["SelectErrorMessage.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AAAyC,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAIlC,SAASG,kBAAkBA,CAAC;EAAEC,OAAO;EAAEC;AAAgC,CAAC,EAAsB;EACnG,MAAMC,KAAK,GAAG,IAAAC,eAAQ,EAAC,CAAC;EACxB,MAAMC,cAAc,GAAGC,cAAK,CAACC,OAAO,CAClC,OAAO;IACLC,KAAK,EAAEL,KAAK,CAACM,MAAM,CAACC,MAAM,CAACC,KAAK;IAChCC,UAAU,EAAET,KAAK,CAACU,UAAU,CAACD,UAAU,CAACE,OAAO;IAC/CC,QAAQ,EAAEZ,KAAK,CAACU,UAAU,CAACE,QAAQ,CAACC,EAAE;IACtCC,UAAU,EAAEd,KAAK,CAACU,UAAU,CAACI,UAAU,CAACC,WAAW;IACnDC,SAAS,EAAEhB,KAAK,CAACiB,OAAO,CAACC;EAC3B,CAAC,CAAC,EACF,CAAClB,KAAK,CACR,CAAC;EAED,IAAI,CAACF,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EAEA,oBACET,MAAA,CAAAO,OAAA,CAAAuB,aAAA,CAAC3B,YAAA,CAAA4B,IAAI;IAACC,uBAAuB,EAAC,QAAQ;IAACC,KAAK,EAAEpB,cAAe;IAACH,MAAM,EAAEA;EAAO,GAC1ED,OACG,CAAC;AAEX","ignoreList":[]}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SelectIcon = SelectIcon;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _icons = require("@wecareu/icons");
10
+ var _theme = require("@wecareu/theme");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function SelectIcon({
13
+ accessibilityLabel,
14
+ color,
15
+ name,
16
+ onPress,
17
+ size,
18
+ testID
19
+ }) {
20
+ const theme = (0, _theme.useTheme)();
21
+ const iconColor = color ?? theme.colors.text.tertiary;
22
+ const iconSize = size ?? theme.spacing.lg;
23
+ const hitSlop = _react.default.useMemo(() => ({
24
+ bottom: theme.spacing.xs,
25
+ left: theme.spacing.xs,
26
+ right: theme.spacing.xs,
27
+ top: theme.spacing.xs
28
+ }), [theme.spacing.xs]);
29
+ if (onPress) {
30
+ return /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
31
+ accessibilityLabel: accessibilityLabel ?? name,
32
+ accessibilityRole: "button",
33
+ hitSlop: hitSlop,
34
+ onPress: onPress,
35
+ style: styles.pressable,
36
+ testID: testID
37
+ }, /*#__PURE__*/_react.default.createElement(_icons.Icon, {
38
+ color: iconColor,
39
+ name: name,
40
+ size: iconSize
41
+ }));
42
+ }
43
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
44
+ accessible: false,
45
+ style: styles.wrapper,
46
+ testID: testID
47
+ }, /*#__PURE__*/_react.default.createElement(_icons.Icon, {
48
+ accessibilityLabel: accessibilityLabel,
49
+ color: iconColor,
50
+ name: name,
51
+ size: iconSize
52
+ }));
53
+ }
54
+ const styles = _reactNative.StyleSheet.create({
55
+ pressable: {
56
+ alignItems: 'center',
57
+ justifyContent: 'center'
58
+ },
59
+ wrapper: {
60
+ alignItems: 'center',
61
+ justifyContent: 'center'
62
+ }
63
+ });
64
+ //# sourceMappingURL=SelectIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_icons","_theme","e","__esModule","default","SelectIcon","accessibilityLabel","color","name","onPress","size","testID","theme","useTheme","iconColor","colors","text","tertiary","iconSize","spacing","lg","hitSlop","React","useMemo","bottom","xs","left","right","top","createElement","Pressable","accessibilityRole","style","styles","pressable","Icon","View","accessible","wrapper","StyleSheet","create","alignItems","justifyContent"],"sourceRoot":"..\\..\\src","sources":["SelectIcon.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAAyC,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAIlC,SAASG,UAAUA,CAAC;EACzBC,kBAAkB;EAClBC,KAAK;EACLC,IAAI;EACJC,OAAO;EACPC,IAAI;EACJC;AACe,CAAC,EAAe;EAC/B,MAAMC,KAAK,GAAG,IAAAC,eAAQ,EAAC,CAAC;EAExB,MAAMC,SAAS,GAAGP,KAAK,IAAIK,KAAK,CAACG,MAAM,CAACC,IAAI,CAACC,QAAQ;EACrD,MAAMC,QAAQ,GAAGR,IAAI,IAAIE,KAAK,CAACO,OAAO,CAACC,EAAE;EACzC,MAAMC,OAAO,GAAGC,cAAK,CAACC,OAAO,CAC3B,OAAO;IACLC,MAAM,EAAEZ,KAAK,CAACO,OAAO,CAACM,EAAE;IACxBC,IAAI,EAAEd,KAAK,CAACO,OAAO,CAACM,EAAE;IACtBE,KAAK,EAAEf,KAAK,CAACO,OAAO,CAACM,EAAE;IACvBG,GAAG,EAAEhB,KAAK,CAACO,OAAO,CAACM;EACrB,CAAC,CAAC,EACF,CAACb,KAAK,CAACO,OAAO,CAACM,EAAE,CACnB,CAAC;EAED,IAAIhB,OAAO,EAAE;IACX,oBACEb,MAAA,CAAAQ,OAAA,CAAAyB,aAAA,CAAC9B,YAAA,CAAA+B,SAAS;MACRxB,kBAAkB,EAAEA,kBAAkB,IAAIE,IAAK;MAC/CuB,iBAAiB,EAAC,QAAQ;MAC1BV,OAAO,EAAEA,OAAQ;MACjBZ,OAAO,EAAEA,OAAQ;MACjBuB,KAAK,EAAEC,MAAM,CAACC,SAAU;MACxBvB,MAAM,EAAEA;IAAO,gBAEff,MAAA,CAAAQ,OAAA,CAAAyB,aAAA,CAAC7B,MAAA,CAAAmC,IAAI;MAAC5B,KAAK,EAAEO,SAAU;MAACN,IAAI,EAAEA,IAAK;MAACE,IAAI,EAAEQ;IAAS,CAAE,CAC5C,CAAC;EAEhB;EAEA,oBACEtB,MAAA,CAAAQ,OAAA,CAAAyB,aAAA,CAAC9B,YAAA,CAAAqC,IAAI;IAACC,UAAU,EAAE,KAAM;IAACL,KAAK,EAAEC,MAAM,CAACK,OAAQ;IAAC3B,MAAM,EAAEA;EAAO,gBAC7Df,MAAA,CAAAQ,OAAA,CAAAyB,aAAA,CAAC7B,MAAA,CAAAmC,IAAI;IAAC7B,kBAAkB,EAAEA,kBAAmB;IAACC,KAAK,EAAEO,SAAU;IAACN,IAAI,EAAEA,IAAK;IAACE,IAAI,EAAEQ;EAAS,CAAE,CACzF,CAAC;AAEX;AAEA,MAAMe,MAAM,GAAGM,uBAAU,CAACC,MAAM,CAAC;EAC/BN,SAAS,EAAE;IACTO,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDJ,OAAO,EAAE;IACPG,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SelectOptionItem = SelectOptionItem;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _icons = require("@wecareu/icons");
10
+ var _theme = require("@wecareu/theme");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function SelectOptionItem({
13
+ disabled,
14
+ isMulti,
15
+ isSelected,
16
+ onPress,
17
+ option
18
+ }) {
19
+ const theme = (0, _theme.useTheme)();
20
+ const styles = _react.default.useMemo(() => createStyles(theme), [theme]);
21
+ const handlePress = _react.default.useCallback(() => {
22
+ if (!disabled) {
23
+ onPress(option);
24
+ }
25
+ }, [disabled, onPress, option]);
26
+ const resolvedLabelColor = option.labelColor ? option.labelColor : isSelected ? theme.colors.brand.primary : theme.colors.text.primary;
27
+ return /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
28
+ accessibilityRole: "menuitem",
29
+ accessibilityState: {
30
+ disabled,
31
+ selected: isSelected
32
+ },
33
+ disabled: disabled,
34
+ onPress: handlePress,
35
+ style: ({
36
+ pressed
37
+ }) => [styles.container, option.color ? {
38
+ backgroundColor: option.color
39
+ } : isSelected && styles.containerSelected, disabled && styles.containerDisabled, pressed && !disabled && !option.color && styles.containerPressed]
40
+ }, option.flagCode ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
41
+ style: styles.iconWrapper
42
+ }, /*#__PURE__*/_react.default.createElement(_icons.FlagIcon, {
43
+ countryCode: option.flagCode,
44
+ size: theme.spacing.md + 2
45
+ })) : option.icon ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
46
+ style: styles.iconWrapper
47
+ }, /*#__PURE__*/_react.default.createElement(_icons.Icon, {
48
+ color: disabled ? theme.colors.text.disabled : resolvedLabelColor,
49
+ name: option.icon,
50
+ size: theme.spacing.lg
51
+ })) : null, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
52
+ style: styles.textWrapper
53
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
54
+ numberOfLines: 1,
55
+ style: [styles.label, {
56
+ color: disabled ? theme.colors.text.disabled : resolvedLabelColor
57
+ }, isSelected && !option.labelColor && styles.labelSelected, disabled && styles.labelDisabled]
58
+ }, option.label), option.description ? /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
59
+ numberOfLines: 2,
60
+ style: [styles.description, disabled && styles.descriptionDisabled]
61
+ }, option.description) : null), isMulti ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
62
+ style: [styles.checkbox, isSelected && styles.checkboxSelected, disabled && styles.checkboxDisabled]
63
+ }, isSelected ? /*#__PURE__*/_react.default.createElement(_icons.Icon, {
64
+ color: theme.colors.text.white,
65
+ name: "correct",
66
+ size: 12
67
+ }) : null) : isSelected ? /*#__PURE__*/_react.default.createElement(_icons.Icon, {
68
+ color: option.labelColor ?? theme.colors.brand.primary,
69
+ name: "correct",
70
+ size: theme.spacing.md
71
+ }) : null);
72
+ }
73
+ function createStyles(theme) {
74
+ return _reactNative.StyleSheet.create({
75
+ checkbox: {
76
+ alignItems: 'center',
77
+ borderColor: theme.colors.border.primary,
78
+ borderRadius: theme.radius.xs,
79
+ borderWidth: 1.5,
80
+ height: 20,
81
+ justifyContent: 'center',
82
+ width: 20
83
+ },
84
+ checkboxDisabled: {
85
+ borderColor: theme.colors.border.disabled
86
+ },
87
+ checkboxSelected: {
88
+ backgroundColor: theme.colors.brand.primary,
89
+ borderColor: theme.colors.brand.primary
90
+ },
91
+ container: {
92
+ alignItems: 'center',
93
+ flexDirection: 'row',
94
+ gap: theme.spacing.sm,
95
+ paddingHorizontal: theme.spacing.md,
96
+ paddingVertical: theme.spacing.sm
97
+ },
98
+ containerDisabled: {
99
+ opacity: 0.4
100
+ },
101
+ containerPressed: {
102
+ backgroundColor: theme.colors.surface.secondary
103
+ },
104
+ containerSelected: {
105
+ backgroundColor: theme.colors.surface.secondary
106
+ },
107
+ description: {
108
+ color: theme.colors.text.secondary,
109
+ fontFamily: theme.typography.fontFamily.caption,
110
+ fontSize: theme.typography.fontSize.xs,
111
+ lineHeight: theme.typography.lineHeight.labelSmall,
112
+ marginTop: 2
113
+ },
114
+ descriptionDisabled: {
115
+ color: theme.colors.text.disabled
116
+ },
117
+ iconWrapper: {
118
+ alignItems: 'center',
119
+ height: theme.spacing.lg,
120
+ justifyContent: 'center',
121
+ marginRight: theme.spacing.md,
122
+ width: theme.spacing.lg
123
+ },
124
+ label: {
125
+ fontFamily: theme.typography.fontFamily.body,
126
+ fontSize: theme.typography.fontSize.md,
127
+ lineHeight: theme.typography.lineHeight.bodySmall
128
+ },
129
+ labelDisabled: {
130
+ color: theme.colors.text.disabled
131
+ },
132
+ labelSelected: {
133
+ fontFamily: theme.typography.fontFamily.semibold
134
+ },
135
+ textWrapper: {
136
+ flex: 1
137
+ }
138
+ });
139
+ }
140
+ //# sourceMappingURL=SelectOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_icons","_theme","e","__esModule","default","SelectOptionItem","disabled","isMulti","isSelected","onPress","option","theme","useTheme","styles","React","useMemo","createStyles","handlePress","useCallback","resolvedLabelColor","labelColor","colors","brand","primary","text","createElement","Pressable","accessibilityRole","accessibilityState","selected","style","pressed","container","color","backgroundColor","containerSelected","containerDisabled","containerPressed","flagCode","View","iconWrapper","FlagIcon","countryCode","size","spacing","md","icon","Icon","name","lg","textWrapper","Text","numberOfLines","label","labelSelected","labelDisabled","description","descriptionDisabled","checkbox","checkboxSelected","checkboxDisabled","white","StyleSheet","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,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SelectSearch = SelectSearch;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _icons = require("@wecareu/icons");
10
+ var _theme = require("@wecareu/theme");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const DEBOUNCE_MS = 200;
13
+ function SelectSearch({
14
+ onChangeText,
15
+ value
16
+ }) {
17
+ const theme = (0, _theme.useTheme)();
18
+ const styles = _react.default.useMemo(() => createStyles(theme), [theme]);
19
+ const debounceRef = _react.default.useRef(null);
20
+ const handleChangeText = _react.default.useCallback(text => {
21
+ if (debounceRef.current) {
22
+ clearTimeout(debounceRef.current);
23
+ }
24
+ debounceRef.current = setTimeout(() => {
25
+ onChangeText(text);
26
+ }, DEBOUNCE_MS);
27
+ }, [onChangeText]);
28
+ _react.default.useEffect(() => {
29
+ return () => {
30
+ if (debounceRef.current) {
31
+ clearTimeout(debounceRef.current);
32
+ }
33
+ };
34
+ }, []);
35
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
36
+ style: styles.container
37
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
38
+ style: styles.iconWrapper
39
+ }, /*#__PURE__*/_react.default.createElement(_icons.Icon, {
40
+ color: theme.colors.text.tertiary,
41
+ name: "search",
42
+ size: theme.spacing.md
43
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
44
+ accessibilityLabel: "Search options",
45
+ autoCapitalize: "none",
46
+ autoCorrect: false,
47
+ clearButtonMode: "while-editing",
48
+ defaultValue: value,
49
+ onChangeText: handleChangeText,
50
+ placeholderTextColor: theme.colors.text.tertiary,
51
+ returnKeyType: "search",
52
+ style: styles.input
53
+ }));
54
+ }
55
+ function createStyles(theme) {
56
+ return _reactNative.StyleSheet.create({
57
+ container: {
58
+ alignItems: 'center',
59
+ borderBottomColor: theme.colors.border.secondary,
60
+ borderBottomWidth: 1,
61
+ flexDirection: 'row',
62
+ marginBottom: theme.spacing.xs,
63
+ paddingHorizontal: theme.spacing.md,
64
+ paddingVertical: theme.spacing.sm
65
+ },
66
+ iconWrapper: {
67
+ marginRight: theme.spacing.xs
68
+ },
69
+ input: {
70
+ color: theme.colors.text.primary,
71
+ flex: 1,
72
+ fontFamily: theme.typography.fontFamily.body,
73
+ fontSize: theme.typography.fontSize.md,
74
+ lineHeight: theme.typography.lineHeight.bodySmall,
75
+ paddingVertical: theme.spacing.xs
76
+ }
77
+ });
78
+ }
79
+ //# sourceMappingURL=SelectSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_icons","_theme","e","__esModule","default","DEBOUNCE_MS","SelectSearch","onChangeText","value","theme","useTheme","styles","React","useMemo","createStyles","debounceRef","useRef","handleChangeText","useCallback","text","current","clearTimeout","setTimeout","useEffect","createElement","View","style","container","iconWrapper","Icon","color","colors","tertiary","name","size","spacing","md","TextInput","accessibilityLabel","autoCapitalize","autoCorrect","clearButtonMode","defaultValue","placeholderTextColor","returnKeyType","input","StyleSheet","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,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useShakeAnimation = useShakeAnimation;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ function useShakeAnimation({
10
+ distance = 6,
11
+ duration = 60,
12
+ iterations = 2
13
+ } = {}) {
14
+ const translation = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
15
+ const animatedStyle = (0, _react.useMemo)(() => ({
16
+ transform: [{
17
+ translateX: translation.interpolate({
18
+ inputRange: [-1, -0.5, 0, 0.5, 1],
19
+ outputRange: [-distance, -distance / 2, 0, distance / 2, distance]
20
+ })
21
+ }]
22
+ }), [distance, translation]);
23
+ const triggerShake = (0, _react.useCallback)(() => {
24
+ translation.setValue(0);
25
+ const animation = _reactNative.Animated.sequence([_reactNative.Animated.timing(translation, {
26
+ duration,
27
+ toValue: 1,
28
+ useNativeDriver: true
29
+ }), _reactNative.Animated.timing(translation, {
30
+ duration,
31
+ toValue: -1,
32
+ useNativeDriver: true
33
+ })]);
34
+ _reactNative.Animated.loop(animation, {
35
+ iterations
36
+ }).start(() => {
37
+ translation.setValue(0);
38
+ });
39
+ }, [duration, iterations, translation]);
40
+ return {
41
+ animatedStyle,
42
+ triggerShake
43
+ };
44
+ }
45
+ //# sourceMappingURL=shake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","useShakeAnimation","distance","duration","iterations","translation","useRef","Animated","Value","current","animatedStyle","useMemo","transform","translateX","interpolate","inputRange","outputRange","triggerShake","useCallback","setValue","animation","sequence","timing","toValue","useNativeDriver","loop","start"],"sourceRoot":"..\\..\\..\\src","sources":["animations/shake.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AA8BO,SAASE,iBAAiBA,CAAC;EAChCC,QAAQ,GAAG,CAAC;EACZC,QAAQ,GAAG,EAAE;EACbC,UAAU,GAAG;AACU,CAAC,GAAG,CAAC,CAAC,EAA2B;EACxD,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAAC,IAAIC,qBAAQ,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAEzD,MAAMC,aAAa,GAAG,IAAAC,cAAO,EAC3B,OAAO;IACLC,SAAS,EAAE,CACT;MACEC,UAAU,EAAER,WAAW,CAACS,WAAW,CAAC;QAClCC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACjCC,WAAW,EAAE,CAAC,CAACd,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,MAAMY,YAAY,GAAG,IAAAC,kBAAW,EAAC,MAAM;IACrCb,WAAW,CAACc,QAAQ,CAAC,CAAC,CAAC;IAEvB,MAAMC,SAAS,GAAGb,qBAAQ,CAACc,QAAQ,CAAC,CAClCd,qBAAQ,CAACe,MAAM,CAACjB,WAAW,EAAE;MAC3BF,QAAQ;MACRoB,OAAO,EAAE,CAAC;MACVC,eAAe,EAAE;IACnB,CAAC,CAAC,EACFjB,qBAAQ,CAACe,MAAM,CAACjB,WAAW,EAAE;MAC3BF,QAAQ;MACRoB,OAAO,EAAE,CAAC,CAAC;MACXC,eAAe,EAAE;IACnB,CAAC,CAAC,CACH,CAAC;IAEFjB,qBAAQ,CAACkB,IAAI,CAACL,SAAS,EAAE;MAAEhB;IAAW,CAAC,CAAC,CAACsB,KAAK,CAAC,MAAM;MACnDrB,WAAW,CAACc,QAAQ,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC;EACJ,CAAC,EAAE,CAAChB,QAAQ,EAAEC,UAAU,EAAEC,WAAW,CAAC,CAAC;EAEvC,OAAO;IAAEK,aAAa;IAAEO;EAAa,CAAC;AACxC","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Select", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Select.Select;
10
+ }
11
+ });
12
+ var _Select = require("./Select");
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_Select","require"],"sourceRoot":"..\\..\\src","sources":["index.tsx"],"mappings":";;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA","ignoreList":[]}