@holper/react-native-holper-storybook 0.7.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/README.md +1 -1
  2. package/package.json +5 -1
  3. package/.expo/README.md +0 -8
  4. package/.nvmrc +0 -1
  5. package/.prettierignore +0 -5
  6. package/.storybook/index.jsx +0 -11
  7. package/.storybook/main.js +0 -8
  8. package/.storybook/preview.jsx +0 -51
  9. package/.storybook/storybook.requires.js +0 -43
  10. package/.yarn/releases/yarn-4.5.0.cjs +0 -925
  11. package/.yarnrc.yml +0 -3
  12. package/App.jsx +0 -29
  13. package/app.config.js +0 -77
  14. package/assets/adaptive-icon.png +0 -0
  15. package/assets/favicon.png +0 -0
  16. package/assets/fonts/Poppins-Bold.ttf +0 -0
  17. package/assets/fonts/Poppins-Regular.ttf +0 -0
  18. package/assets/fonts/Poppins-SemiBold.ttf +0 -0
  19. package/assets/icon.png +0 -0
  20. package/assets/splash.png +0 -0
  21. package/babel.config.js +0 -7
  22. package/build.sh +0 -11
  23. package/components/Button/index.tsx +0 -66
  24. package/components/Button/style.ts +0 -111
  25. package/components/Card/index.tsx +0 -33
  26. package/components/Card/style.ts +0 -34
  27. package/components/ConfirmationModal/index.tsx +0 -104
  28. package/components/ConfirmationModal/style.tsx +0 -53
  29. package/components/Container/index.tsx +0 -33
  30. package/components/Container/style.ts +0 -13
  31. package/components/CustomChatView/index.tsx +0 -65
  32. package/components/CustomChatView/style.ts +0 -10
  33. package/components/DeckSwiper/index.tsx +0 -90
  34. package/components/DeckSwiper/style.ts +0 -59
  35. package/components/DonutCountdown/index.tsx +0 -86
  36. package/components/DonutCountdown/style.ts +0 -8
  37. package/components/FloatingContainer/index.tsx +0 -35
  38. package/components/FloatingContainer/style.ts +0 -25
  39. package/components/Footer/index.tsx +0 -35
  40. package/components/Footer/style.ts +0 -40
  41. package/components/Header/index.tsx +0 -21
  42. package/components/Header/style.ts +0 -34
  43. package/components/ImagePicker/index.tsx +0 -18
  44. package/components/ImageResponsive/index.tsx +0 -24
  45. package/components/ImageResponsive/style.ts +0 -9
  46. package/components/ImageViewer/index.tsx +0 -36
  47. package/components/ImageViewer/style.ts +0 -38
  48. package/components/Input/index.tsx +0 -62
  49. package/components/Input/style.ts +0 -91
  50. package/components/InputPin/index.tsx +0 -21
  51. package/components/InputPin/style.ts +0 -22
  52. package/components/MenuItem/index.tsx +0 -25
  53. package/components/MenuItem/style.ts +0 -44
  54. package/components/NavigationTitle/index.tsx +0 -53
  55. package/components/NavigationTitle/style.ts +0 -49
  56. package/components/Notification/index.tsx +0 -44
  57. package/components/Notification/style.ts +0 -50
  58. package/components/PreventDoubleClick/index.tsx +0 -28
  59. package/components/Select/index.tsx +0 -51
  60. package/components/Select/style.ts +0 -64
  61. package/components/SwipeablePanel/index.tsx +0 -208
  62. package/components/SwipeablePanel/style.ts +0 -81
  63. package/components/Switch/index.tsx +0 -30
  64. package/components/TakePicture/confirmPictureModal.tsx +0 -37
  65. package/components/TakePicture/index.tsx +0 -148
  66. package/components/TakePicture/style.ts +0 -95
  67. package/components/Text/index.tsx +0 -33
  68. package/components/Text/style.ts +0 -101
  69. package/components/Textarea/index.tsx +0 -26
  70. package/components/Textarea/style.ts +0 -38
  71. package/components/TimeOutButton/index.tsx +0 -67
  72. package/components/TimeOutButton/style.ts +0 -42
  73. package/components/Toast/index.tsx +0 -34
  74. package/components/Toast/style.ts +0 -12
  75. package/components/UploadDocument/index.tsx +0 -179
  76. package/components/UploadDocument/style.ts +0 -57
  77. package/components/VirtualKeyboard/index.tsx +0 -75
  78. package/components/VirtualKeyboard/style.ts +0 -25
  79. package/components/index.ts +0 -29
  80. package/configs/constants.ts +0 -273
  81. package/configs/types.ts +0 -326
  82. package/eas.json +0 -27
  83. package/eslint.config.mjs +0 -205
  84. package/hooks/index.ts +0 -2
  85. package/hooks/useDebounce.tsx +0 -24
  86. package/hooks/useLoadFonts.tsx +0 -13
  87. package/metro.config.js +0 -11
  88. package/prettier.config.mjs +0 -23
  89. package/stories/Button.stories.tsx +0 -181
  90. package/stories/Card.stories.tsx +0 -22
  91. package/stories/Colors.stories.tsx +0 -57
  92. package/stories/ConfirmationModal.stories.tsx +0 -142
  93. package/stories/Container.stories.tsx +0 -105
  94. package/stories/DeckSwiper.stories.tsx +0 -43
  95. package/stories/DonutCountdown.stories.tsx +0 -134
  96. package/stories/FloatingContainer.stories.tsx +0 -139
  97. package/stories/Footer.stories.tsx +0 -65
  98. package/stories/Header.stories.tsx +0 -37
  99. package/stories/ImagePicker.stories.tsx +0 -14
  100. package/stories/ImageResponsive.stories.tsx +0 -18
  101. package/stories/ImageViewer.stories.tsx +0 -24
  102. package/stories/Input.stories.tsx +0 -119
  103. package/stories/InputPin.stories.tsx +0 -40
  104. package/stories/Menu.stories.tsx +0 -53
  105. package/stories/MenuItem.stories.tsx +0 -30
  106. package/stories/NavigationTitle.stories.tsx +0 -51
  107. package/stories/Notification.stories.tsx +0 -58
  108. package/stories/Select.stories.tsx +0 -270
  109. package/stories/SwipeablePanel.stories.tsx +0 -360
  110. package/stories/Switch.stories.tsx +0 -36
  111. package/stories/TakePicture.stories.tsx +0 -59
  112. package/stories/Text.stories.tsx +0 -61
  113. package/stories/Textarea.stories.tsx +0 -48
  114. package/stories/TimeOutButton.stories.tsx +0 -55
  115. package/stories/Toast.stories.tsx +0 -37
  116. package/stories/UploadDocument.stories.tsx +0 -179
  117. package/stories/VirtualKeyboard.stories.tsx +0 -14
  118. package/tsconfig.json +0 -21
  119. package/utilities/ScrollView.tsx +0 -19
  120. package/utilities/index.ts +0 -2
  121. package/utilities/utils.ts +0 -29
@@ -1,91 +0,0 @@
1
- import { Dimensions, StyleSheet } from 'react-native';
2
-
3
- import { borderRadius, Colors } from '../../configs/constants';
4
-
5
- const { width } = Dimensions.get('window');
6
-
7
- export default StyleSheet.create({
8
- container: {
9
- marginVertical: 8,
10
- },
11
- label: {
12
- marginBottom: 4,
13
- fontSize: 14,
14
- fontFamily: 'poppins_regular',
15
- color: Colors.darkblue,
16
- fontWeight: 'bold',
17
- },
18
- inputWrapper: {
19
- position: 'relative',
20
- },
21
- input: {
22
- height: 50,
23
- borderRadius,
24
- borderWidth: 1,
25
- paddingHorizontal: 20,
26
- color: Colors.darkblue,
27
- fontFamily: 'poppins_regular',
28
- backgroundColor: Colors.white,
29
- marginVertical: 6,
30
- },
31
- fixedSize: {
32
- width: width - 60,
33
- },
34
- fitSize: {
35
- width: '100%',
36
- },
37
- default: {
38
- borderColor: Colors.midblue,
39
- },
40
- completed: {
41
- borderColor: Colors.green,
42
- },
43
- error: {
44
- borderColor: Colors.red,
45
- color: Colors.red,
46
- },
47
- disabled: {
48
- opacity: 0.5,
49
- },
50
- leftIcon: {
51
- paddingLeft: 40,
52
- },
53
- rightIcon: {
54
- paddingRight: 40,
55
- },
56
- leftIconWide: {
57
- paddingLeft: 70,
58
- },
59
- rightIconWide: {
60
- paddingRight: 70,
61
- },
62
- rightIconContainer: {
63
- position: 'absolute',
64
- right: 10,
65
- top: 10,
66
- height: 42,
67
- justifyContent: 'center',
68
- },
69
- leftIconContainer: {
70
- position: 'absolute',
71
- left: 10,
72
- top: 10,
73
- height: 42,
74
- justifyContent: 'center',
75
- },
76
- rightWideIconContainer: {
77
- paddingLeft: 2,
78
- borderLeftWidth: 1,
79
- },
80
- leftWideIconContainer: {
81
- paddingRight: 2,
82
- borderRightWidth: 1,
83
- },
84
- count: {
85
- textAlign: 'right',
86
- fontSize: 12,
87
- color: Colors.gray,
88
- fontFamily: 'poppins_regular',
89
- width: '100%',
90
- },
91
- });
@@ -1,21 +0,0 @@
1
- import { times } from 'lodash';
2
- import { View } from 'react-native';
3
-
4
- import Text from '../Text';
5
- import style from './style';
6
-
7
- import type { InputPinProps } from '../../configs/types';
8
-
9
- const InputPin = ({ values = [] }: InputPinProps) => (
10
- <View style={style.container}>
11
- {times(4, (index) => (
12
- <View style={style.input} key={`value-${index}`}>
13
- <Text size="large" weight="semiBold">
14
- {values[index]}
15
- </Text>
16
- </View>
17
- ))}
18
- </View>
19
- );
20
-
21
- export default InputPin;
@@ -1,22 +0,0 @@
1
- import { Dimensions, StyleSheet } from 'react-native';
2
-
3
- import { Colors } from '../../configs/constants';
4
-
5
- const { width } = Dimensions.get('window');
6
-
7
- export default StyleSheet.create({
8
- container: {
9
- flexDirection: 'row',
10
- justifyContent: 'space-between',
11
- width: width - 60,
12
- },
13
- input: {
14
- borderColor: Colors.gray,
15
- borderWidth: 1,
16
- borderRadius: 15,
17
- width: width / 6,
18
- height: width / 6,
19
- justifyContent: 'center',
20
- alignItems: 'center',
21
- },
22
- });
@@ -1,25 +0,0 @@
1
- import { Feather } from '@expo/vector-icons';
2
- import { TouchableOpacity, View } from 'react-native';
3
-
4
- import { Colors } from '../../configs/constants';
5
- import Text from '../Text';
6
- import style from './style';
7
-
8
- import type { MenuItemProps } from '../../configs/types';
9
-
10
- const MenuItem = ({ icon, text, disabled, onPress, last }: MenuItemProps) => (
11
- <TouchableOpacity
12
- style={[style.menuItem, last ? style.last : {}, disabled ? style.disabled : {}]}
13
- onPress={onPress}
14
- disabled={disabled}
15
- >
16
- <View style={style.left}>
17
- {icon}
18
- <Text style={style.text}>{text}</Text>
19
- </View>
20
-
21
- <Feather name="chevron-right" size={16} color={Colors.darkblue} style={style.rightIcon} />
22
- </TouchableOpacity>
23
- );
24
-
25
- export default MenuItem;
@@ -1,44 +0,0 @@
1
- import { StyleSheet } from 'react-native';
2
-
3
- import { Colors } from '../../configs/constants';
4
-
5
- export default StyleSheet.create({
6
- // Default MenuItem
7
- menuItem: {
8
- backgroundColor: Colors.white,
9
- width: '100%',
10
- height: 50,
11
- paddingHorizontal: 8,
12
- paddingVertical: 6,
13
- flexDirection: 'row',
14
- justifyContent: 'space-between',
15
- alignItems: 'center',
16
- borderBottomWidth: 1,
17
- borderBottomColor: Colors.lightblue,
18
- },
19
- left: {
20
- flexDirection: 'row',
21
- justifyContent: 'flex-start',
22
- alignItems: 'center',
23
- },
24
- text: {
25
- marginLeft: 10,
26
- },
27
- rightIcon: {
28
- height: 20,
29
- width: 20,
30
- backgroundColor: Colors.lightblue,
31
- borderRadius: 10,
32
- paddingLeft: 3,
33
- paddingTop: 2,
34
- overflow: 'hidden',
35
- justifyContent: 'center',
36
- alignItems: 'center',
37
- },
38
- last: {
39
- borderBottomColor: Colors.transparent,
40
- },
41
- disabled: {
42
- opacity: 0.5,
43
- },
44
- });
@@ -1,53 +0,0 @@
1
- import { Ionicons } from '@expo/vector-icons';
2
- import { TouchableOpacity, View } from 'react-native';
3
-
4
- import { Colors } from '../../configs/constants';
5
- import Text from '../Text';
6
- import style from './style';
7
-
8
- import type { NavigationTitleProps } from '../../configs/types';
9
-
10
- const NavigationTitle = ({
11
- type = 'close',
12
- title,
13
- noShadow,
14
- xlarge,
15
- blockNavigation,
16
- onPress,
17
- }: NavigationTitleProps) => (
18
- <View
19
- style={[
20
- style.container,
21
- type === 'close' ? style.containerClose : style.containerBack,
22
- noShadow ? style.noShadow : {},
23
- ]}
24
- >
25
- {!blockNavigation && (
26
- <>
27
- {type === 'back' && (
28
- <TouchableOpacity onPress={onPress} style={style.buttonBack}>
29
- <Ionicons name="arrow-back-outline" size={20} color={Colors.darkblue} />
30
- </TouchableOpacity>
31
- )}
32
- </>
33
- )}
34
- {typeof title === 'string' ? (
35
- <Text size={xlarge ? 'extra-large' : 'large'} weight="semiBold">
36
- {title}
37
- </Text>
38
- ) : (
39
- <>{title}</>
40
- )}
41
- {!blockNavigation && (
42
- <>
43
- {type === 'close' && (
44
- <TouchableOpacity onPress={onPress} style={style.button}>
45
- <Ionicons name="close-outline" size={24} color={Colors.darkblue} />
46
- </TouchableOpacity>
47
- )}
48
- </>
49
- )}
50
- </View>
51
- );
52
-
53
- export default NavigationTitle;
@@ -1,49 +0,0 @@
1
- import { Dimensions, StyleSheet } from 'react-native';
2
-
3
- import { Colors } from '../../configs/constants';
4
-
5
- const { width } = Dimensions.get('window');
6
-
7
- export default StyleSheet.create({
8
- container: {
9
- flexDirection: 'row',
10
- alignItems: 'center',
11
- height: 60,
12
- backgroundColor: Colors.white,
13
- paddingHorizontal: 20,
14
- borderRadius: 10,
15
- width,
16
- shadowOffset: { width: 0, height: 3 },
17
- shadowOpacity: 0.4,
18
- shadowRadius: 3,
19
- elevation: 5,
20
- shadowColor: Colors.lightblue,
21
- },
22
- noShadow: {
23
- shadowOpacity: 0,
24
- elevation: 0,
25
- },
26
- containerClose: {
27
- justifyContent: 'space-between',
28
- },
29
- containerBack: {
30
- justifyContent: 'flex-start',
31
- },
32
- button: {
33
- height: 30,
34
- width: 30,
35
- borderRadius: 15,
36
- backgroundColor: Colors.lightblue,
37
- alignItems: 'center',
38
- justifyContent: 'center',
39
- },
40
- buttonBack: {
41
- height: 30,
42
- width: 30,
43
- borderRadius: 15,
44
- marginRight: 10,
45
- backgroundColor: Colors.lightblue,
46
- alignItems: 'center',
47
- justifyContent: 'center',
48
- },
49
- });
@@ -1,44 +0,0 @@
1
- import { Ionicons } from '@expo/vector-icons';
2
- import dayjs from 'dayjs';
3
- import relativeTime from 'dayjs/plugin/relativeTime';
4
- import { TouchableOpacity, View } from 'react-native';
5
-
6
- import { Colors } from '../../configs/constants';
7
- import ImageResponsive from '../ImageResponsive';
8
- import Text from '../Text';
9
- import style from './style';
10
-
11
- import type { NotificationProps } from '../../configs/types';
12
-
13
- dayjs.extend(relativeTime);
14
-
15
- const Notification = ({
16
- first,
17
- active,
18
- hideAvatar,
19
- avatar,
20
- title,
21
- description,
22
- date = dayjs().fromNow(),
23
- onPress,
24
- }: NotificationProps) => (
25
- <TouchableOpacity style={[style.container, first ? style.first : {}, active ? style.active : {}]} onPress={onPress}>
26
- {!hideAvatar && <ImageResponsive source={avatar} avatar style={style.avatar} />}
27
- <View style={style.textContainer}>
28
- <View style={style.text}>
29
- <View style={style.textInner}>
30
- <Text weight="semiBold">{title}</Text>
31
- {active && <Ionicons name="ellipse" color={Colors.green} size={12} style={style.icon} />}
32
- </View>
33
- <Text color="light" size="tiny" style={style.time}>
34
- {dayjs(date).fromNow()}
35
- </Text>
36
- </View>
37
- <Text color="light" size="small" ellipsizeMode="tail" numberOfLines={3}>
38
- {description}
39
- </Text>
40
- </View>
41
- </TouchableOpacity>
42
- );
43
-
44
- export default Notification;
@@ -1,50 +0,0 @@
1
- import { StyleSheet } from 'react-native';
2
-
3
- import { Colors } from '../../configs/constants';
4
-
5
- export default StyleSheet.create({
6
- container: {
7
- flexDirection: 'row',
8
- alignItems: 'center',
9
- borderBottomWidth: 1,
10
- borderBottomColor: Colors.lightblue,
11
- paddingVertical: 8,
12
- borderLeftWidth: 6,
13
- borderLeftColor: Colors.transparent,
14
- paddingHorizontal: 10,
15
- },
16
- first: {
17
- borderTopWidth: 1,
18
- borderTopColor: Colors.lightblue,
19
- },
20
- active: {
21
- borderLeftColor: Colors.green,
22
- },
23
- avatar: {
24
- height: 60,
25
- width: 60,
26
- borderWidth: 1,
27
- borderColor: Colors.lightblue,
28
- marginRight: 15,
29
- },
30
- textContainer: {
31
- flex: 1,
32
- justifyContent: 'space-evenly',
33
- height: 60,
34
- },
35
- text: {
36
- flexDirection: 'row',
37
- justifyContent: 'space-between',
38
- },
39
- textInner: {
40
- flexDirection: 'row',
41
- alignItems: 'center',
42
- },
43
- time: {
44
- alignSelf: 'flex-start',
45
- },
46
- icon: {
47
- marginLeft: 5,
48
- marginTop: 2,
49
- },
50
- });
@@ -1,28 +0,0 @@
1
- import type { ComponentType } from 'react';
2
-
3
- import { debounce } from 'lodash';
4
- import { PureComponent } from 'react';
5
-
6
- import type { withPreventDoubleClickProps } from '../../configs/types';
7
-
8
- function withPreventDoubleClick<P extends withPreventDoubleClickProps>(WrappedComponent: ComponentType<P>) {
9
- class PreventDoubleClick extends PureComponent<P> {
10
- debouncedOnPress = () => {
11
- if (this.props.onPress) {
12
- this.props.onPress();
13
- }
14
- };
15
-
16
- onPress = debounce(this.debouncedOnPress, 300, { leading: true, trailing: false });
17
- static displayName: string;
18
-
19
- render() {
20
- return <WrappedComponent {...this.props} onPress={this.onPress} />;
21
- }
22
- }
23
-
24
- PreventDoubleClick.displayName = `withPreventDoubleClick(${WrappedComponent.displayName || WrappedComponent.name})`;
25
- return PreventDoubleClick;
26
- }
27
-
28
- export default withPreventDoubleClick;
@@ -1,51 +0,0 @@
1
- import { Feather } from '@expo/vector-icons';
2
- import { View } from 'react-native';
3
- import RNPickerSelect from 'react-native-picker-select';
4
-
5
- import style from './style';
6
-
7
- import type { SelectProps } from '../../configs/types';
8
-
9
- const Select = ({
10
- disabled,
11
- fitToContainer,
12
- items = [],
13
- onValueChange,
14
- placeholder,
15
- value = '',
16
- variant = 'default',
17
- }: SelectProps) => (
18
- <View style={[style.container, disabled ? style.disabled : {}, fitToContainer ? style.fit : {}]}>
19
- <RNPickerSelect
20
- value={value}
21
- onValueChange={(val) => onValueChange?.(val)}
22
- disabled={disabled}
23
- placeholder={{
24
- label: placeholder,
25
- value: '',
26
- color: style.placeholderStyle.color,
27
- }}
28
- items={items}
29
- Icon={() => <Feather name="chevron-down" size={24} style={style.iconStyle} />}
30
- useNativeAndroidPickerStyle={false}
31
- pickerProps={{ mode: 'dropdown', enabled: !disabled, itemStyle: style.itemStyle }}
32
- style={{
33
- inputIOSContainer: { pointerEvents: 'none', ...style.basicStyle, ...style[`${variant}Container`] },
34
- inputAndroidContainer: { ...style.basicStyle, ...style[`${variant}Container`] },
35
- inputIOS: {
36
- ...style.fontStyle,
37
- ...(variant === 'error' ? style.errorFontStyle : {}),
38
- },
39
- inputAndroid: {
40
- ...style.fontStyle,
41
- ...(variant === 'error' ? style.errorFontStyle : {}),
42
- },
43
- placeholder: style.placeholderStyle,
44
- chevronUp: style.selectIcon,
45
- chevronDown: style.selectIcon,
46
- }}
47
- />
48
- </View>
49
- );
50
-
51
- export default Select;
@@ -1,64 +0,0 @@
1
- import { Dimensions, StyleSheet } from 'react-native';
2
-
3
- import { borderRadius, Colors } from '../../configs/constants';
4
-
5
- const { width } = Dimensions.get('window');
6
-
7
- export default StyleSheet.create({
8
- container: {
9
- width: width - 60,
10
- position: 'relative',
11
- },
12
- fit: {
13
- width: '100%',
14
- position: 'relative',
15
- },
16
- selectIcon: {
17
- marginTop: 20,
18
- marginRight: 15,
19
- },
20
- disabled: {
21
- opacity: 0.5,
22
- },
23
- basicStyle: {
24
- height: 50,
25
- width: '100%',
26
- borderRadius,
27
- borderWidth: 1,
28
- paddingHorizontal: 10,
29
- backgroundColor: Colors.white,
30
- marginVertical: 6,
31
- },
32
- defaultContainer: {
33
- borderColor: Colors.midblue,
34
- },
35
- completedContainer: {
36
- borderColor: Colors.green,
37
- },
38
- errorContainer: {
39
- borderColor: Colors.red,
40
- },
41
- fontStyle: {
42
- flex: 1,
43
- color: Colors.darkblue,
44
- fontFamily: 'poppins_regular',
45
- },
46
- errorFontStyle: {
47
- color: Colors.red,
48
- },
49
- placeholderStyle: {
50
- fontSize: 14,
51
- fontFamily: 'poppins_regular',
52
- color: Colors.midblue,
53
- },
54
- iconStyle: {
55
- marginRight: 10,
56
- marginTop: 12,
57
- color: Colors.darkblue,
58
- },
59
- itemStyle: {
60
- color: Colors.darkblue,
61
- fontFamily: 'poppins_regular',
62
- fontSize: 16,
63
- },
64
- });