fln-espranza 0.0.42 → 0.0.44

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 (89) hide show
  1. package/.expo/README.md +15 -15
  2. package/.expo/settings.json +8 -8
  3. package/components/Avatar.tsx +43 -43
  4. package/components/BaseLayout.tsx +174 -174
  5. package/components/Drawer.tsx +125 -125
  6. package/components/EBadge.tsx +24 -24
  7. package/components/EButton.tsx +70 -70
  8. package/components/EDateAndTimeCard.tsx +51 -51
  9. package/components/EDateInput.tsx +55 -55
  10. package/components/EEmptyPlaceholder.tsx +21 -21
  11. package/components/EErrorText.tsx +19 -19
  12. package/components/EInfoBox.tsx +41 -41
  13. package/components/EInput.tsx +54 -54
  14. package/components/ELabel.tsx +15 -15
  15. package/components/EListClusterMeeting.tsx +47 -0
  16. package/components/EListPerson.tsx +52 -52
  17. package/components/EListSchool.tsx +35 -35
  18. package/components/ENotFoundPlaceholder.tsx +43 -43
  19. package/components/EOption.tsx +98 -98
  20. package/components/EOtpInputBox.tsx +49 -49
  21. package/components/EPageDescription.tsx +19 -19
  22. package/components/EPillButton.tsx +33 -33
  23. package/components/EProfile.tsx +58 -62
  24. package/components/EProfileScreenLayout.tsx +111 -111
  25. package/components/EProgressBar.tsx +33 -33
  26. package/components/EQuestionSerialNumberLabel.tsx +17 -17
  27. package/components/EQuestionText.tsx +14 -14
  28. package/components/ESegment.tsx +36 -36
  29. package/components/EStat.tsx +24 -24
  30. package/components/EText.tsx +41 -41
  31. package/components/ETextArea.tsx +53 -53
  32. package/components/ETimeInput.tsx +54 -54
  33. package/components/ETimeLineCard.tsx +66 -66
  34. package/components/ListFormView.tsx +36 -36
  35. package/components/Loader.tsx +31 -31
  36. package/components/MenuItems.tsx +46 -46
  37. package/components/PageHeader.tsx +124 -123
  38. package/components/ProfileHeader.tsx +85 -85
  39. package/components/SecondaryBaseLayout.tsx +106 -106
  40. package/components/Timer.tsx +56 -56
  41. package/components/icons/EIconAdd.jsx +19 -19
  42. package/components/icons/EIconAddCircle.jsx +21 -21
  43. package/components/icons/EIconApplicationStatus.jsx +20 -20
  44. package/components/icons/EIconArrowDown.jsx +20 -20
  45. package/components/icons/EIconArrowLeft.jsx +21 -21
  46. package/components/icons/EIconArrowRight.jsx +21 -21
  47. package/components/icons/EIconArrowUp.jsx +20 -20
  48. package/components/icons/EIconBadge.jsx +20 -20
  49. package/components/icons/EIconBell.jsx +19 -19
  50. package/components/icons/EIconCalendar.jsx +21 -21
  51. package/components/icons/EIconCalendarCheck.jsx +24 -24
  52. package/components/icons/EIconCamera.jsx +20 -20
  53. package/components/icons/EIconCameraRotate.jsx +23 -23
  54. package/components/icons/EIconCheck.jsx +19 -19
  55. package/components/icons/EIconCheckCircle.jsx +20 -20
  56. package/components/icons/EIconCheckFill.jsx +19 -19
  57. package/components/icons/EIconChevronDown.jsx +19 -19
  58. package/components/icons/EIconChevronLeft.jsx +19 -19
  59. package/components/icons/EIconChevronRight.jsx +19 -19
  60. package/components/icons/EIconChevronUp.jsx +19 -19
  61. package/components/icons/EIconClock.jsx +19 -19
  62. package/components/icons/EIconClose.jsx +19 -19
  63. package/components/icons/EIconDashboard.jsx +20 -20
  64. package/components/icons/EIconDocumentCheck.jsx +14 -14
  65. package/components/icons/EIconEdit.jsx +19 -19
  66. package/components/icons/EIconFemale.jsx +20 -20
  67. package/components/icons/EIconFile.jsx +21 -21
  68. package/components/icons/EIconInfo.jsx +20 -20
  69. package/components/icons/EIconLogout.jsx +19 -19
  70. package/components/icons/EIconMale.jsx +21 -21
  71. package/components/icons/EIconMenu.jsx +19 -19
  72. package/components/icons/EIconMinus.jsx +19 -19
  73. package/components/icons/EIconPin.jsx +19 -19
  74. package/components/icons/EIconProfile.jsx +19 -19
  75. package/components/icons/EIconSchool.jsx +24 -24
  76. package/components/icons/EIconSearch.jsx +19 -19
  77. package/components/icons/EIconSettings.jsx +20 -20
  78. package/components/icons/EIconShare.jsx +21 -21
  79. package/components/icons/EIconStudent.jsx +23 -23
  80. package/components/icons/EIconSubject.jsx +21 -21
  81. package/components/icons/EIconTeach.jsx +21 -21
  82. package/components/icons/EIconTrash.jsx +19 -19
  83. package/components/icons/EIconUserCard.jsx +19 -19
  84. package/components/icons/EIconUserCheck.jsx +20 -20
  85. package/components/icons/EIconUsers.jsx +19 -19
  86. package/components/index.tsx +69 -67
  87. package/index.ts +184 -184
  88. package/package.json +26 -26
  89. package/utils/Color.ts +14 -14
@@ -1,98 +1,98 @@
1
- import React, { useState } from "react";
2
- import {
3
- TouchableOpacity,
4
- View,
5
- TouchableOpacityProps,
6
- Dimensions,
7
- Image,
8
- } from "react-native";
9
- import tw from "../../../lib/tailwind";
10
- import EText from "./EText";
11
- import { Colors } from "../utils/Color";
12
-
13
- const ImageWidth = Dimensions.get("window").width / 2 - 18;
14
- const ContentWidth = Dimensions.get("window").width - 32;
15
- const ImageHeight = 140;
16
- const MediaContainerStyle = "rounded-md overflow-hidden";
17
-
18
- interface RadioButtonProps extends TouchableOpacityProps {
19
- text?: string;
20
- isActive: boolean;
21
- imageSource?: string;
22
- optionLabel: string;
23
- onPress?: () => void;
24
- }
25
- const EOption = ({
26
- isActive,
27
- text,
28
- imageSource,
29
- optionLabel,
30
- onPress,
31
- ...props
32
- }: RadioButtonProps) => {
33
- return (
34
- <TouchableOpacity
35
- style={[
36
- tw`flex flex-row justify-start items-center mt-2 px-4 py-3 border rounded-lg ${
37
- imageSource ? "flex-col p-0 items-start" : ""
38
- }`,
39
- {
40
- borderColor: isActive ? Colors["secondary-base"] : Colors.border,
41
- backgroundColor: isActive ? Colors["secondary-light"] : Colors.white,
42
- width: imageSource ? ImageWidth - 10 : ContentWidth,
43
- },
44
- ]}
45
- onPress={() => {
46
- onPress && onPress();
47
- }}
48
- activeOpacity={0.7}
49
- {...props}
50
- >
51
- {imageSource ? (
52
- <View
53
- style={[
54
- tw`${MediaContainerStyle}`,
55
- {
56
- height: ImageHeight - 20,
57
- width: ImageWidth - 12,
58
- backgroundColor: Colors.white
59
- },
60
- ]}
61
- >
62
- <View
63
- style={[
64
- tw`h-8 w-8 bg-slate-300 rounded-full justify-center items-center m-2 absolute z-10`,
65
- ]}
66
- >
67
- <EText size={"base"} style={tw`font-normal`}>
68
- {optionLabel}
69
- </EText>
70
- </View>
71
- <Image
72
- style={[
73
- tw`w-full mt-4`,
74
- {
75
- opacity: isActive ? 0.5 : 1,
76
- },
77
- {height: ImageHeight - 40}
78
- ]}
79
- source={{uri: imageSource}}
80
- resizeMode="contain"
81
- />
82
- </View>
83
- )
84
- : <></>
85
- }
86
- {text ? (
87
- <EText
88
- size={"base"}
89
- style={tw`font-normal ${imageSource ? "py-2 px-4" : ""}`}
90
- >
91
- {text}
92
- </EText>
93
- ) : null}
94
- </TouchableOpacity>
95
- );
96
- };
97
-
98
- export default EOption;
1
+ import React, { useState } from "react";
2
+ import {
3
+ TouchableOpacity,
4
+ View,
5
+ TouchableOpacityProps,
6
+ Dimensions,
7
+ Image,
8
+ } from "react-native";
9
+ import tw from "../../../lib/tailwind";
10
+ import EText from "./EText";
11
+ import { Colors } from "../utils/Color";
12
+
13
+ const ImageWidth = Dimensions.get("window").width / 2 - 18;
14
+ const ContentWidth = Dimensions.get("window").width - 32;
15
+ const ImageHeight = 140;
16
+ const MediaContainerStyle = "rounded-md overflow-hidden";
17
+
18
+ interface RadioButtonProps extends TouchableOpacityProps {
19
+ text?: string;
20
+ isActive: boolean;
21
+ imageSource?: string;
22
+ optionLabel: string;
23
+ onPress?: () => void;
24
+ }
25
+ const EOption = ({
26
+ isActive,
27
+ text,
28
+ imageSource,
29
+ optionLabel,
30
+ onPress,
31
+ ...props
32
+ }: RadioButtonProps) => {
33
+ return (
34
+ <TouchableOpacity
35
+ style={[
36
+ tw`flex flex-row justify-start items-center mt-2 px-4 py-3 border rounded-lg ${
37
+ imageSource ? "flex-col p-0 items-start" : ""
38
+ }`,
39
+ {
40
+ borderColor: isActive ? Colors["secondary-base"] : Colors.border,
41
+ backgroundColor: isActive ? Colors["secondary-light"] : Colors.white,
42
+ width: imageSource ? ImageWidth - 10 : ContentWidth,
43
+ },
44
+ ]}
45
+ onPress={() => {
46
+ onPress && onPress();
47
+ }}
48
+ activeOpacity={0.7}
49
+ {...props}
50
+ >
51
+ {imageSource ? (
52
+ <View
53
+ style={[
54
+ tw`${MediaContainerStyle}`,
55
+ {
56
+ height: ImageHeight - 20,
57
+ width: ImageWidth - 12,
58
+ backgroundColor: Colors.white
59
+ },
60
+ ]}
61
+ >
62
+ <View
63
+ style={[
64
+ tw`h-8 w-8 bg-slate-300 rounded-full justify-center items-center m-2 absolute z-10`,
65
+ ]}
66
+ >
67
+ <EText size={"base"} style={tw`font-normal`}>
68
+ {optionLabel}
69
+ </EText>
70
+ </View>
71
+ <Image
72
+ style={[
73
+ tw`w-full mt-4`,
74
+ {
75
+ opacity: isActive ? 0.5 : 1,
76
+ },
77
+ {height: ImageHeight - 40}
78
+ ]}
79
+ source={{uri: imageSource}}
80
+ resizeMode="contain"
81
+ />
82
+ </View>
83
+ )
84
+ : <></>
85
+ }
86
+ {text ? (
87
+ <EText
88
+ size={"base"}
89
+ style={tw`font-normal ${imageSource ? "py-2 px-4" : ""}`}
90
+ >
91
+ {text}
92
+ </EText>
93
+ ) : null}
94
+ </TouchableOpacity>
95
+ );
96
+ };
97
+
98
+ export default EOption;
@@ -1,49 +1,49 @@
1
- import { View, Image, TextInput, TextInputProps } from "react-native";
2
- import React, { useState } from "react";
3
- import EText from "./EText";
4
- import tw from "../lib/tailwind";
5
- import { AtSymbolIcon } from "react-native-heroicons/outline";
6
- import { Colors } from "../utils/Color";
7
-
8
- interface EInputProps extends TextInputProps {
9
- label?: string;
10
- icon?:string;
11
- val?: string;
12
- setVal?: any;
13
- maxLength?: number;
14
- reff?: any;
15
- }
16
-
17
- export default function EOtpInput({label, icon,val,setVal, maxLength, reff, ...props }:EInputProps) {
18
- const [hasFocus, setHasFocus] = useState(false);
19
- return (
20
- <View>
21
- <EText size="sm" style={tw`font-bold opacity-50`}>
22
- {label}
23
- </EText>
24
- <View
25
- style={tw`bg-[${Colors["primary-light"]}] h-12 rounded-lg px-4 flex-row items-center border border-blue-100 ${
26
- hasFocus ? `border-black bg-white shadow-lg shadow-blue-400` : ""
27
- }`}
28
- >
29
- {icon ? <Image
30
- source={icon}
31
- style={[
32
- tw`mr-2 opacity-40 ${hasFocus ? "opacity-100 tint-blue-700" : ""}`,
33
- { width: 24, height: 24 },
34
- ]}
35
- /> : null}
36
- <TextInput
37
- {...props}
38
- style={[tw`flex-1 text-base`, { lineHeight: 20 }]}
39
- onFocus={() => setHasFocus(!hasFocus)}
40
- onBlur={() => setHasFocus(!hasFocus)}
41
- placeholderTextColor={"#AEB3BC"}
42
- onChangeText={(val) => setVal(val)}
43
- maxLength={maxLength}
44
- ref={reff}
45
- />
46
- </View>
47
- </View>
48
- );
49
- }
1
+ import { View, Image, TextInput, TextInputProps } from "react-native";
2
+ import React, { useState } from "react";
3
+ import EText from "./EText";
4
+ import tw from "../lib/tailwind";
5
+ import { AtSymbolIcon } from "react-native-heroicons/outline";
6
+ import { Colors } from "../utils/Color";
7
+
8
+ interface EInputProps extends TextInputProps {
9
+ label?: string;
10
+ icon?:string;
11
+ val?: string;
12
+ setVal?: any;
13
+ maxLength?: number;
14
+ reff?: any;
15
+ }
16
+
17
+ export default function EOtpInput({label, icon,val,setVal, maxLength, reff, ...props }:EInputProps) {
18
+ const [hasFocus, setHasFocus] = useState(false);
19
+ return (
20
+ <View>
21
+ <EText size="sm" style={tw`font-bold opacity-50`}>
22
+ {label}
23
+ </EText>
24
+ <View
25
+ style={tw`bg-[${Colors["primary-light"]}] h-12 rounded-lg px-4 flex-row items-center border border-blue-100 ${
26
+ hasFocus ? `border-black bg-white shadow-lg shadow-blue-400` : ""
27
+ }`}
28
+ >
29
+ {icon ? <Image
30
+ source={icon}
31
+ style={[
32
+ tw`mr-2 opacity-40 ${hasFocus ? "opacity-100 tint-blue-700" : ""}`,
33
+ { width: 24, height: 24 },
34
+ ]}
35
+ /> : null}
36
+ <TextInput
37
+ {...props}
38
+ style={[tw`flex-1 text-base`, { lineHeight: 20 }]}
39
+ onFocus={() => setHasFocus(!hasFocus)}
40
+ onBlur={() => setHasFocus(!hasFocus)}
41
+ placeholderTextColor={"#AEB3BC"}
42
+ onChangeText={(val) => setVal(val)}
43
+ maxLength={maxLength}
44
+ ref={reff}
45
+ />
46
+ </View>
47
+ </View>
48
+ );
49
+ }
@@ -1,19 +1,19 @@
1
- import React from 'react'
2
- import tw from '../lib/tailwind'
3
- import { Colors } from '../utils/Color';
4
- import EText from './EText';
5
-
6
- interface IProps{
7
- text: string;
8
- }
9
-
10
- export default function EPageDescription({text}: IProps) {
11
- return (
12
- <EText
13
- size='sm'
14
- style={[tw`font-normal`, {color: Colors['text-body']}]}
15
- >
16
- {text}
17
- </EText>
18
- )
19
- }
1
+ import React from 'react'
2
+ import tw from '../lib/tailwind'
3
+ import { Colors } from '../utils/Color';
4
+ import EText from './EText';
5
+
6
+ interface IProps{
7
+ text: string;
8
+ }
9
+
10
+ export default function EPageDescription({text}: IProps) {
11
+ return (
12
+ <EText
13
+ size='sm'
14
+ style={[tw`font-normal`, {color: Colors['text-body']}]}
15
+ >
16
+ {text}
17
+ </EText>
18
+ )
19
+ }
@@ -1,33 +1,33 @@
1
- import React from "react";
2
- import { TouchableOpacity, View } from "react-native";
3
- import tw from "../lib/tailwind";
4
- import { Colors } from "../utils/Color";
5
- import EText from "./EText";
6
-
7
- interface IProps {
8
- title: string;
9
- active?: boolean;
10
- onPress?: () => void;
11
- }
12
-
13
- export default function EPillButton({ title, active, onPress }: IProps) {
14
- return (
15
- <TouchableOpacity
16
- style={[
17
- tw`px-4 py-3 mr-2 border rounded-lg border-slate-300`,
18
- {
19
- backgroundColor: active ? Colors["secondary-base"] : "transparent",
20
- borderColor: active ? Colors["secondary-base"] : Colors["border"],
21
- },
22
- ]}
23
- onPress={onPress}
24
- >
25
- <EText
26
- size={"base"}
27
- style={tw`font-normal ${active ? "text-white" : "text-slate-500"}`}
28
- >
29
- {title}
30
- </EText>
31
- </TouchableOpacity>
32
- );
33
- }
1
+ import React from "react";
2
+ import { TouchableOpacity, View } from "react-native";
3
+ import tw from "../lib/tailwind";
4
+ import { Colors } from "../utils/Color";
5
+ import EText from "./EText";
6
+
7
+ interface IProps {
8
+ title: string;
9
+ active?: boolean;
10
+ onPress?: () => void;
11
+ }
12
+
13
+ export default function EPillButton({ title, active, onPress }: IProps) {
14
+ return (
15
+ <TouchableOpacity
16
+ style={[
17
+ tw`px-4 py-3 mr-2 border rounded-lg border-slate-300`,
18
+ {
19
+ backgroundColor: active ? Colors["secondary-base"] : "transparent",
20
+ borderColor: active ? Colors["secondary-base"] : Colors["border"],
21
+ },
22
+ ]}
23
+ onPress={onPress}
24
+ >
25
+ <EText
26
+ size={"base"}
27
+ style={tw`font-normal ${active ? "text-white" : "text-slate-500"}`}
28
+ >
29
+ {title}
30
+ </EText>
31
+ </TouchableOpacity>
32
+ );
33
+ }
@@ -1,62 +1,58 @@
1
- import React from "react";
2
- import { View } from "react-native";
3
- import tw from "../lib/tailwind";
4
- import { Colors } from "../utils/Color";
5
- import Avatar from "./Avatar";
6
- import EText from "./EText";
7
-
8
- interface IProps {
9
- name: string;
10
- subjectName?: string;
11
- border?: boolean;
12
- children?: JSX.Element;
13
- titleSize: string;
14
- subTitleSize: string;
15
- }
16
-
17
- export default function EProfile({
18
- name,
19
- subjectName,
20
- border,
21
- children,
22
- titleSize,
23
- subTitleSize,
24
- }: IProps) {
25
- return (
26
- <View
27
- style={[
28
- tw`flex-row items-center justify-between py-3 ${
29
- border ? "border-b" : ""
30
- }`,
31
- { borderBottomColor: Colors.border },
32
- ]}
33
- >
34
- <View style={tw`flex-row items-center`}>
35
- <Avatar
36
- size="sm"
37
- source={""}
38
- nameFirstLetter={name.split(" ")[0].charAt(0)}
39
- />
40
- <View style={tw`ml-3`}>
41
- <EText
42
- style={[
43
- tw`font-bold text-slate-800 mb-0.5 capitalize ${titleSize}`,
44
- { color: Colors["text-primary"] },
45
- ]}
46
- >
47
- {name}
48
- </EText>
49
- {subjectName ? (
50
- <EText
51
- size="sm"
52
- style={[tw` ${subTitleSize}`, { color: Colors["text-body"] }]}
53
- >
54
- {subjectName}
55
- </EText>
56
- ) : null}
57
- </View>
58
- </View>
59
- {children ? <>{children}</> : null}
60
- </View>
61
- );
62
- }
1
+ import React from "react";
2
+ import { View } from "react-native";
3
+ import tw from "../lib/tailwind";
4
+ import { Colors } from "../utils/Color";
5
+ import Avatar from "./Avatar";
6
+ import EText from "./EText";
7
+
8
+ interface IProps {
9
+ name: string;
10
+ subjectName?: string;
11
+ border?: boolean;
12
+ children?: JSX.Element;
13
+ }
14
+
15
+ export default function EProfile({
16
+ name,
17
+ subjectName,
18
+ border,
19
+ children,
20
+ }: IProps) {
21
+ return (
22
+ <View
23
+ style={[
24
+ tw`flex-row items-center justify-between py-3 ${
25
+ border ? "border-b" : ""
26
+ }`,
27
+ { borderBottomColor: Colors.border },
28
+ ]}
29
+ >
30
+ <View style={tw`flex-row items-center`}>
31
+ <Avatar
32
+ size="sm"
33
+ source={""}
34
+ nameFirstLetter={name.split(" ")[0].charAt(0)}
35
+ />
36
+ <View style={tw`ml-3`}>
37
+ <EText
38
+ style={[
39
+ tw`font-bold text-slate-800 mb-0.5 capitalize`,
40
+ { color: Colors["text-primary"] },
41
+ ]}
42
+ >
43
+ {name}
44
+ </EText>
45
+ {subjectName ? (
46
+ <EText
47
+ size="sm"
48
+ style={[tw` `, { color: Colors["text-body"] }]}
49
+ >
50
+ {subjectName}
51
+ </EText>
52
+ ) : null}
53
+ </View>
54
+ </View>
55
+ {children ? <>{children}</> : null}
56
+ </View>
57
+ );
58
+ }