@abihealth/goapp-react-native 1.13.4

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 (282) hide show
  1. package/CHANGELOG.md +157 -0
  2. package/README.md +3 -0
  3. package/dist/common/animations/Animation.d.ts +10 -0
  4. package/dist/common/animations/Animation.js +38 -0
  5. package/dist/common/animations/FindingAnimation/index.d.ts +2 -0
  6. package/dist/common/animations/FindingAnimation/index.js +20 -0
  7. package/dist/common/animations/FindingAnimation/xml.d.ts +2 -0
  8. package/dist/common/animations/FindingAnimation/xml.js +7 -0
  9. package/dist/common/animations/HorizontalLoadingAnimation/index.d.ts +5 -0
  10. package/dist/common/animations/HorizontalLoadingAnimation/index.js +14 -0
  11. package/dist/common/animations/HorizontalLoadingAnimation/xml.d.ts +1 -0
  12. package/dist/common/animations/HorizontalLoadingAnimation/xml.js +5 -0
  13. package/dist/common/animations/LoadingCircleAnimation/index.d.ts +2 -0
  14. package/dist/common/animations/LoadingCircleAnimation/index.js +24 -0
  15. package/dist/common/animations/LoadingCircleAnimation/xml.d.ts +2 -0
  16. package/dist/common/animations/LoadingCircleAnimation/xml.js +5 -0
  17. package/dist/common/animations/LoadingDotsAnimation/index.d.ts +6 -0
  18. package/dist/common/animations/LoadingDotsAnimation/index.js +17 -0
  19. package/dist/common/animations/LoadingDotsAnimation/xml.d.ts +1 -0
  20. package/dist/common/animations/LoadingDotsAnimation/xml.js +5 -0
  21. package/dist/common/animations/LoadingHeart.d.ts +2 -0
  22. package/dist/common/animations/LoadingHeart.js +92 -0
  23. package/dist/common/api/auth.d.ts +2 -0
  24. package/dist/common/api/auth.js +18 -0
  25. package/dist/common/api/config.d.ts +7 -0
  26. package/dist/common/api/config.js +15 -0
  27. package/dist/common/api/consultation.d.ts +6 -0
  28. package/dist/common/api/consultation.js +80 -0
  29. package/dist/common/api/models/auth.d.ts +8 -0
  30. package/dist/common/api/models/auth.js +2 -0
  31. package/dist/common/api/models/consultation.d.ts +70 -0
  32. package/dist/common/api/models/consultation.js +23 -0
  33. package/dist/common/api/models/region.d.ts +1 -0
  34. package/dist/common/api/models/region.js +2 -0
  35. package/dist/common/api/models/user.d.ts +5 -0
  36. package/dist/common/api/models/user.js +2 -0
  37. package/dist/common/api/models/websocket.d.ts +6 -0
  38. package/dist/common/api/models/websocket.js +2 -0
  39. package/dist/common/api/user.d.ts +2 -0
  40. package/dist/common/api/user.js +10 -0
  41. package/dist/common/api/websocket.d.ts +6 -0
  42. package/dist/common/api/websocket.js +66 -0
  43. package/dist/common/assets/background-pattern.png +0 -0
  44. package/dist/common/components/ActionSheet.d.ts +6 -0
  45. package/dist/common/components/ActionSheet.js +43 -0
  46. package/dist/common/components/AnswerScreen/Card.d.ts +8 -0
  47. package/dist/common/components/AnswerScreen/Card.js +76 -0
  48. package/dist/common/components/AnswerScreen/CloseConsultationActionSheet.d.ts +2 -0
  49. package/dist/common/components/AnswerScreen/CloseConsultationActionSheet.js +109 -0
  50. package/dist/common/components/AnswerScreen/DeliveryAddressCard.d.ts +5 -0
  51. package/dist/common/components/AnswerScreen/DeliveryAddressCard.js +39 -0
  52. package/dist/common/components/AnswerScreen/PrescriptionCard/PrescriptionCardHeader.d.ts +5 -0
  53. package/dist/common/components/AnswerScreen/PrescriptionCard/PrescriptionCardHeader.js +79 -0
  54. package/dist/common/components/AnswerScreen/PrescriptionCard/index.d.ts +5 -0
  55. package/dist/common/components/AnswerScreen/PrescriptionCard/index.js +46 -0
  56. package/dist/common/components/AnswerScreen/Summary.d.ts +5 -0
  57. package/dist/common/components/AnswerScreen/Summary.js +49 -0
  58. package/dist/common/components/BackgroundPattern.d.ts +2 -0
  59. package/dist/common/components/BackgroundPattern.js +19 -0
  60. package/dist/common/components/Button.d.ts +14 -0
  61. package/dist/common/components/Button.js +124 -0
  62. package/dist/common/components/CancelConsultationButton.d.ts +2 -0
  63. package/dist/common/components/CancelConsultationButton.js +107 -0
  64. package/dist/common/components/Card.d.ts +2 -0
  65. package/dist/common/components/Card.js +13 -0
  66. package/dist/common/components/Checkbox.d.ts +7 -0
  67. package/dist/common/components/Checkbox.js +75 -0
  68. package/dist/common/components/DateInput.d.ts +8 -0
  69. package/dist/common/components/DateInput.js +76 -0
  70. package/dist/common/components/DoctorProfileCard.d.ts +8 -0
  71. package/dist/common/components/DoctorProfileCard.js +128 -0
  72. package/dist/common/components/FadeIn.d.ts +8 -0
  73. package/dist/common/components/FadeIn.js +66 -0
  74. package/dist/common/components/FormControl.d.ts +8 -0
  75. package/dist/common/components/FormControl.js +40 -0
  76. package/dist/common/components/FormWrapper.d.ts +11 -0
  77. package/dist/common/components/FormWrapper.js +46 -0
  78. package/dist/common/components/Header.d.ts +10 -0
  79. package/dist/common/components/Header.js +109 -0
  80. package/dist/common/components/Input.d.ts +8 -0
  81. package/dist/common/components/Input.js +74 -0
  82. package/dist/common/components/Modal/AttachmentPreviewModal.d.ts +9 -0
  83. package/dist/common/components/Modal/AttachmentPreviewModal.js +68 -0
  84. package/dist/common/components/Modal/CancelModal.d.ts +9 -0
  85. package/dist/common/components/Modal/CancelModal.js +16 -0
  86. package/dist/common/components/Modal/CloseConsultationModal.d.ts +9 -0
  87. package/dist/common/components/Modal/CloseConsultationModal.js +16 -0
  88. package/dist/common/components/Modal/DoctorProfileModal.d.ts +8 -0
  89. package/dist/common/components/Modal/DoctorProfileModal.js +47 -0
  90. package/dist/common/components/Modal/ModalHeader.d.ts +7 -0
  91. package/dist/common/components/Modal/ModalHeader.js +40 -0
  92. package/dist/common/components/Modal/TwoOptionsModal.d.ts +14 -0
  93. package/dist/common/components/Modal/TwoOptionsModal.js +58 -0
  94. package/dist/common/components/Modal/index.d.ts +7 -0
  95. package/dist/common/components/Modal/index.js +57 -0
  96. package/dist/common/components/PhoneInput.d.ts +11 -0
  97. package/dist/common/components/PhoneInput.js +81 -0
  98. package/dist/common/components/Reminder.d.ts +7 -0
  99. package/dist/common/components/Reminder.js +214 -0
  100. package/dist/common/components/ScreenWrapper.d.ts +12 -0
  101. package/dist/common/components/ScreenWrapper.js +46 -0
  102. package/dist/common/components/Select.d.ts +17 -0
  103. package/dist/common/components/Select.js +132 -0
  104. package/dist/common/components/Slide.d.ts +13 -0
  105. package/dist/common/components/Slide.js +83 -0
  106. package/dist/common/components/SlideUp.d.ts +8 -0
  107. package/dist/common/components/SlideUp.js +69 -0
  108. package/dist/common/components/Text.d.ts +22 -0
  109. package/dist/common/components/Text.js +130 -0
  110. package/dist/common/contexts/ConsultationContext.d.ts +22 -0
  111. package/dist/common/contexts/ConsultationContext.js +215 -0
  112. package/dist/common/contexts/FormContext.d.ts +25 -0
  113. package/dist/common/contexts/FormContext.js +55 -0
  114. package/dist/common/contexts/ThemeContext.d.ts +13 -0
  115. package/dist/common/contexts/ThemeContext.js +18 -0
  116. package/dist/common/hooks/useConsultation.d.ts +13 -0
  117. package/dist/common/hooks/useConsultation.js +166 -0
  118. package/dist/common/hooks/useForm.d.ts +10 -0
  119. package/dist/common/hooks/useForm.js +107 -0
  120. package/dist/common/hooks/useHeader.d.ts +4 -0
  121. package/dist/common/hooks/useHeader.js +10 -0
  122. package/dist/common/hooks/useTheme.d.ts +2 -0
  123. package/dist/common/hooks/useTheme.js +26 -0
  124. package/dist/common/hooks/useUser.d.ts +4 -0
  125. package/dist/common/hooks/useUser.js +10 -0
  126. package/dist/common/icons/AbiLogoIcon.d.ts +2 -0
  127. package/dist/common/icons/AbiLogoIcon.js +53 -0
  128. package/dist/common/icons/BackArrowIcon.d.ts +2 -0
  129. package/dist/common/icons/BackArrowIcon.js +49 -0
  130. package/dist/common/icons/CalendarIcon.d.ts +3 -0
  131. package/dist/common/icons/CalendarIcon.js +43 -0
  132. package/dist/common/icons/CheckSuccessIcon.d.ts +3 -0
  133. package/dist/common/icons/CheckSuccessIcon.js +47 -0
  134. package/dist/common/icons/CloseIcon.d.ts +5 -0
  135. package/dist/common/icons/CloseIcon.js +51 -0
  136. package/dist/common/icons/DoctorIcon.d.ts +3 -0
  137. package/dist/common/icons/DoctorIcon.js +48 -0
  138. package/dist/common/icons/DoctorImagePlaceholderIcon.d.ts +5 -0
  139. package/dist/common/icons/DoctorImagePlaceholderIcon.js +64 -0
  140. package/dist/common/icons/DropdownIcon.d.ts +3 -0
  141. package/dist/common/icons/DropdownIcon.js +41 -0
  142. package/dist/common/icons/ExitIcon.d.ts +2 -0
  143. package/dist/common/icons/ExitIcon.js +58 -0
  144. package/dist/common/icons/InfoIcon.d.ts +2 -0
  145. package/dist/common/icons/InfoIcon.js +49 -0
  146. package/dist/common/icons/KoCircleIcon.d.ts +3 -0
  147. package/dist/common/icons/KoCircleIcon.js +42 -0
  148. package/dist/common/icons/MotorbikeIcon.d.ts +2 -0
  149. package/dist/common/icons/MotorbikeIcon.js +65 -0
  150. package/dist/common/icons/NoCaseFoundIcon.d.ts +3 -0
  151. package/dist/common/icons/NoCaseFoundIcon.js +55 -0
  152. package/dist/common/icons/PdfDownloadIcon.d.ts +2 -0
  153. package/dist/common/icons/PdfDownloadIcon.js +58 -0
  154. package/dist/common/icons/PdfIcon.d.ts +2 -0
  155. package/dist/common/icons/PdfIcon.js +50 -0
  156. package/dist/common/icons/PersonIcon.d.ts +3 -0
  157. package/dist/common/icons/PersonIcon.js +45 -0
  158. package/dist/common/icons/PillsIcon.d.ts +2 -0
  159. package/dist/common/icons/PillsIcon.js +52 -0
  160. package/dist/common/icons/PlaneIcon.d.ts +5 -0
  161. package/dist/common/icons/PlaneIcon.js +48 -0
  162. package/dist/common/icons/RatingIcon.d.ts +2 -0
  163. package/dist/common/icons/RatingIcon.js +53 -0
  164. package/dist/common/icons/StarIcon.d.ts +4 -0
  165. package/dist/common/icons/StarIcon.js +57 -0
  166. package/dist/common/icons/TextConsultationIcon.d.ts +4 -0
  167. package/dist/common/icons/TextConsultationIcon.js +53 -0
  168. package/dist/common/icons/TrashIcon.d.ts +2 -0
  169. package/dist/common/icons/TrashIcon.js +49 -0
  170. package/dist/common/icons/VideoConsultationIcon.d.ts +4 -0
  171. package/dist/common/icons/VideoConsultationIcon.js +50 -0
  172. package/dist/common/index.d.ts +57 -0
  173. package/dist/common/index.js +114 -0
  174. package/dist/common/locale/i18n.d.ts +5 -0
  175. package/dist/common/locale/i18n.js +79 -0
  176. package/dist/common/locale/translations/ar-AE.base.json +604 -0
  177. package/dist/common/locale/translations/ar-LB.base.json +604 -0
  178. package/dist/common/locale/translations/bg.base.json +488 -0
  179. package/dist/common/locale/translations/cs.base.json +499 -0
  180. package/dist/common/locale/translations/en.base.json +923 -0
  181. package/dist/common/locale/translations/es-MX.base.json +827 -0
  182. package/dist/common/locale/translations/es.base.json +827 -0
  183. package/dist/common/locale/translations/fr.base.json +605 -0
  184. package/dist/common/locale/translations/hu.base.json +488 -0
  185. package/dist/common/locale/translations/pl.base.json +487 -0
  186. package/dist/common/locale/translations/ro.base.json +501 -0
  187. package/dist/common/locale/translations/ru.base.json +603 -0
  188. package/dist/common/locale/translations/sk.base.json +535 -0
  189. package/dist/common/locale/translations/zh-HK.base.json +349 -0
  190. package/dist/common/locale/translations/zh-SG.base.json +603 -0
  191. package/dist/common/locale/translations/zh-TW.base.json +873 -0
  192. package/dist/common/screens/AnswerScreen.d.ts +11 -0
  193. package/dist/common/screens/AnswerScreen.js +101 -0
  194. package/dist/common/screens/MatchScreen.d.ts +5 -0
  195. package/dist/common/screens/MatchScreen.js +36 -0
  196. package/dist/common/screens/MatchingScreen.d.ts +2 -0
  197. package/dist/common/screens/MatchingScreen.js +41 -0
  198. package/dist/common/screens/NoConsultationFoundScreen.d.ts +2 -0
  199. package/dist/common/screens/NoConsultationFoundScreen.js +34 -0
  200. package/dist/common/screens/PreparingSummaryScreen.d.ts +5 -0
  201. package/dist/common/screens/PreparingSummaryScreen.js +35 -0
  202. package/dist/common/screens/RatingScreen.d.ts +2 -0
  203. package/dist/common/screens/RatingScreen.js +198 -0
  204. package/dist/common/screens/index.d.ts +3 -0
  205. package/dist/common/screens/index.js +29 -0
  206. package/dist/common/types/consultation.d.ts +93 -0
  207. package/dist/common/types/consultation.js +41 -0
  208. package/dist/common/types/deliveryAddress.d.ts +18 -0
  209. package/dist/common/types/deliveryAddress.js +11 -0
  210. package/dist/common/types/events.d.ts +13 -0
  211. package/dist/common/types/events.js +15 -0
  212. package/dist/common/types/prescription.d.ts +52 -0
  213. package/dist/common/types/prescription.js +31 -0
  214. package/dist/common/types/professional.d.ts +14 -0
  215. package/dist/common/types/professional.js +2 -0
  216. package/dist/common/types/theme.d.ts +82 -0
  217. package/dist/common/types/theme.js +58 -0
  218. package/dist/common/types/user.d.ts +10 -0
  219. package/dist/common/types/user.js +2 -0
  220. package/dist/common/utils/platform.d.ts +3 -0
  221. package/dist/common/utils/platform.js +7 -0
  222. package/dist/common/utils/professional.d.ts +2 -0
  223. package/dist/common/utils/professional.js +12 -0
  224. package/dist/common/utils/zod.d.ts +5 -0
  225. package/dist/common/utils/zod.js +19 -0
  226. package/dist/index.d.ts +65 -0
  227. package/dist/index.js +133 -0
  228. package/dist/video-consultations/animations/CallingAnimation/index.d.ts +2 -0
  229. package/dist/video-consultations/animations/CallingAnimation/index.js +17 -0
  230. package/dist/video-consultations/animations/CallingAnimation/xml.d.ts +2 -0
  231. package/dist/video-consultations/animations/CallingAnimation/xml.js +5 -0
  232. package/dist/video-consultations/api/models/video.d.ts +10 -0
  233. package/dist/video-consultations/api/models/video.js +2 -0
  234. package/dist/video-consultations/api/video.d.ts +3 -0
  235. package/dist/video-consultations/api/video.js +12 -0
  236. package/dist/video-consultations/components/AgoraWrapper/components/BaseRenderUsers.d.ts +12 -0
  237. package/dist/video-consultations/components/AgoraWrapper/components/BaseRenderUsers.js +174 -0
  238. package/dist/video-consultations/components/AgoraWrapper/components/BtnControls.d.ts +14 -0
  239. package/dist/video-consultations/components/AgoraWrapper/components/BtnControls.js +55 -0
  240. package/dist/video-consultations/components/AgoraWrapper/components/ui/index.d.ts +14 -0
  241. package/dist/video-consultations/components/AgoraWrapper/components/ui/index.js +100 -0
  242. package/dist/video-consultations/components/AgoraWrapper/index.d.ts +8 -0
  243. package/dist/video-consultations/components/AgoraWrapper/index.js +173 -0
  244. package/dist/video-consultations/components/Modal/EndVideoCallModal.d.ts +8 -0
  245. package/dist/video-consultations/components/Modal/EndVideoCallModal.js +15 -0
  246. package/dist/video-consultations/components/VideoConsultation.d.ts +7 -0
  247. package/dist/video-consultations/components/VideoConsultation.js +42 -0
  248. package/dist/video-consultations/helpers/eventHandler.d.ts +14 -0
  249. package/dist/video-consultations/helpers/eventHandler.js +61 -0
  250. package/dist/video-consultations/hooks/useInitRtcEngine.d.ts +15 -0
  251. package/dist/video-consultations/hooks/useInitRtcEngine.js +194 -0
  252. package/dist/video-consultations/icons/EndVideoCallIcon.d.ts +2 -0
  253. package/dist/video-consultations/icons/EndVideoCallIcon.js +51 -0
  254. package/dist/video-consultations/icons/HangUpIcon.d.ts +3 -0
  255. package/dist/video-consultations/icons/HangUpIcon.js +41 -0
  256. package/dist/video-consultations/icons/MicroOffIcon.d.ts +7 -0
  257. package/dist/video-consultations/icons/MicroOffIcon.js +47 -0
  258. package/dist/video-consultations/icons/MicroOnIcon.d.ts +3 -0
  259. package/dist/video-consultations/icons/MicroOnIcon.js +42 -0
  260. package/dist/video-consultations/icons/PersonIcon.d.ts +3 -0
  261. package/dist/video-consultations/icons/PersonIcon.js +45 -0
  262. package/dist/video-consultations/icons/SwitchCameraIcon.d.ts +3 -0
  263. package/dist/video-consultations/icons/SwitchCameraIcon.js +41 -0
  264. package/dist/video-consultations/icons/VideoOffIcon.d.ts +5 -0
  265. package/dist/video-consultations/icons/VideoOffIcon.js +44 -0
  266. package/dist/video-consultations/icons/VideoOnIcon.d.ts +3 -0
  267. package/dist/video-consultations/icons/VideoOnIcon.js +41 -0
  268. package/dist/video-consultations/index.d.ts +10 -0
  269. package/dist/video-consultations/index.js +24 -0
  270. package/dist/video-consultations/screens/DeliveryAddressScreen.d.ts +2 -0
  271. package/dist/video-consultations/screens/DeliveryAddressScreen.js +84 -0
  272. package/dist/video-consultations/screens/EndingVideoScreen.d.ts +5 -0
  273. package/dist/video-consultations/screens/EndingVideoScreen.js +27 -0
  274. package/dist/video-consultations/screens/JoinVideoCallScreen.d.ts +5 -0
  275. package/dist/video-consultations/screens/JoinVideoCallScreen.js +108 -0
  276. package/dist/video-consultations/screens/ProcessingPrescriptionScreen.d.ts +2 -0
  277. package/dist/video-consultations/screens/ProcessingPrescriptionScreen.js +32 -0
  278. package/dist/video-consultations/screens/VideoCallScreen.d.ts +3 -0
  279. package/dist/video-consultations/screens/VideoCallScreen.js +77 -0
  280. package/dist/video-consultations/utils/permission.d.ts +14 -0
  281. package/dist/video-consultations/utils/permission.js +97 -0
  282. package/package.json +58 -0
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DateInput = void 0;
7
+ var react_1 = require("react");
8
+ var react_native_1 = require("react-native");
9
+ var react_native_date_picker_1 = __importDefault(require("react-native-date-picker"));
10
+ var useForm_1 = require("../hooks/useForm");
11
+ var useTheme_1 = require("../hooks/useTheme");
12
+ var CalendarIcon_1 = __importDefault(require("../icons/CalendarIcon"));
13
+ var FormControl_1 = __importDefault(require("./FormControl"));
14
+ var DateInput = function (_a) {
15
+ var _b;
16
+ var id = _a.id, label = _a.label, error = _a.error, initialValue = _a.initialValue, onConfirm = _a.onConfirm;
17
+ var theme = (0, useTheme_1.useTheme)();
18
+ var styles = getStyles(theme);
19
+ var _c = (0, useForm_1.useForm)(), errors = _c.errors, data = _c.data, clearError = _c.clearError, updateData = _c.updateData, loading = _c.loading;
20
+ var _d = (0, react_1.useState)(false), open = _d[0], setOpen = _d[1];
21
+ var initialDate = (0, react_1.useMemo)(function () { return (data === null || data === void 0 ? void 0 : data[id]) || initialValue; }, []);
22
+ var onFocus = function () {
23
+ if (loading)
24
+ return;
25
+ setOpen(true);
26
+ clearError === null || clearError === void 0 ? void 0 : clearError(id);
27
+ };
28
+ (0, react_1.useEffect)(function () {
29
+ updateData === null || updateData === void 0 ? void 0 : updateData(id)(initialDate);
30
+ }, [initialDate]);
31
+ var formError = errors === null || errors === void 0 ? void 0 : errors[id];
32
+ var formValue = (_b = data === null || data === void 0 ? void 0 : data[id]) === null || _b === void 0 ? void 0 : _b.toLocaleDateString();
33
+ var err = formError || error;
34
+ return (<FormControl_1.default label={label} error={err}>
35
+ <react_native_1.View style={[styles.inputContainer, err && styles.error]}>
36
+ <react_native_1.TextInput style={styles.input} value={formValue || (initialDate === null || initialDate === void 0 ? void 0 : initialDate.toLocaleDateString())} onFocus={onFocus} placeholder="dd/mm/yyyy" editable={!loading} placeholderTextColor={theme.colors.gray}/>
37
+
38
+ <react_native_1.Pressable onPress={onFocus}>
39
+ <CalendarIcon_1.default />
40
+ </react_native_1.Pressable>
41
+ </react_native_1.View>
42
+
43
+ <react_native_date_picker_1.default modal open={open} date={initialDate || new Date()} onConfirm={function (date) {
44
+ setOpen(false);
45
+ onConfirm(date);
46
+ updateData === null || updateData === void 0 ? void 0 : updateData(id)(date);
47
+ }} onCancel={function () {
48
+ setOpen(false);
49
+ }}/>
50
+ </FormControl_1.default>);
51
+ };
52
+ exports.DateInput = DateInput;
53
+ exports.default = exports.DateInput;
54
+ var getStyles = function (_a) {
55
+ var spacing = _a.spacing, colors = _a.colors, borderRadius = _a.borderRadius, fontSize = _a.fontSize;
56
+ return react_native_1.StyleSheet.create({
57
+ inputContainer: {
58
+ flexDirection: 'row',
59
+ justifyContent: 'space-between',
60
+ padding: spacing.sm,
61
+ borderWidth: 1,
62
+ borderColor: colors.gray,
63
+ borderRadius: borderRadius.md,
64
+ width: '100%',
65
+ backgroundColor: colors.white
66
+ },
67
+ input: {
68
+ color: colors.black,
69
+ fontSize: fontSize.base,
70
+ minWidth: '80%'
71
+ },
72
+ error: {
73
+ borderColor: colors.warning
74
+ }
75
+ });
76
+ };
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { Professional } from '../types/professional';
3
+ interface DoctorProfileCardProps {
4
+ professional: Professional;
5
+ description: string;
6
+ }
7
+ export declare const DoctorProfileCard: ({ professional, description }: DoctorProfileCardProps) => React.JSX.Element;
8
+ export {};
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.DoctorProfileCard = void 0;
48
+ var react_1 = __importStar(require("react"));
49
+ var react_i18next_1 = require("react-i18next");
50
+ var react_native_1 = require("react-native");
51
+ var LoadingDotsAnimation_1 = require("../animations/LoadingDotsAnimation");
52
+ var useTheme_1 = require("../hooks/useTheme");
53
+ var DoctorImagePlaceholderIcon_1 = require("../icons/DoctorImagePlaceholderIcon");
54
+ var professional_1 = require("../utils/professional");
55
+ var Button_1 = require("./Button");
56
+ var DoctorProfileModal_1 = require("./Modal/DoctorProfileModal");
57
+ var Text_1 = require("./Text");
58
+ var DoctorProfileCard = function (_a) {
59
+ var professional = _a.professional, description = _a.description;
60
+ var t = (0, react_i18next_1.useTranslation)().t;
61
+ var theme = (0, useTheme_1.useTheme)();
62
+ var styles = getStyles(theme);
63
+ var _b = (0, react_1.useState)(false), showProfileModal = _b[0], setShowProfileModal = _b[1];
64
+ var showModal = function () { return setShowProfileModal(true); };
65
+ var hideModal = function () { return setShowProfileModal(false); };
66
+ if (!professional)
67
+ return <Text_1.Text>Professional not found</Text_1.Text>;
68
+ return (<react_native_1.View style={styles.container}>
69
+ {professional.profileImage ? (<react_native_1.Image source={{ uri: professional.profileImage }} style={styles.image}/>) : (<DoctorImagePlaceholderIcon_1.DoctorImagePlaceholderIcon style={styles.image}/>)}
70
+
71
+ <react_native_1.View style={{ alignItems: 'center' }}>
72
+ <Text_1.Text variant="h2">{(0, professional_1.getProfessionalLabel)(professional)}</Text_1.Text>
73
+ <Text_1.Text style={styles.status} center>
74
+ {description}
75
+ </Text_1.Text>
76
+ </react_native_1.View>
77
+
78
+ <LoadingDotsAnimation_1.LoadingDotsAnimation color={theme.colors.primaryDark} size={64}/>
79
+
80
+ <react_native_1.View style={styles.specialtiesContainer}>
81
+ {professional.specialties.map(function (specialty, index) { return (<react_native_1.View key={index} style={styles.specialty}>
82
+ <Text_1.Text>{t("specialty_".concat(specialty))}</Text_1.Text>
83
+ </react_native_1.View>); })}
84
+ </react_native_1.View>
85
+
86
+ {professional.profileUrl && (<Button_1.Button variant="secondary" shadow={false} onPress={showModal} style={styles.button}>
87
+ {t('view_profile')}
88
+ </Button_1.Button>)}
89
+
90
+ <DoctorProfileModal_1.DoctorProfileModal profileUrl={professional.profileUrl} visible={showProfileModal} onCancel={hideModal}/>
91
+ </react_native_1.View>);
92
+ };
93
+ exports.DoctorProfileCard = DoctorProfileCard;
94
+ var getStyles = function (_a) {
95
+ var colors = _a.colors, spacing = _a.spacing, borderRadius = _a.borderRadius, shadows = _a.shadows;
96
+ return react_native_1.StyleSheet.create({
97
+ container: __assign({ width: '100%', backgroundColor: colors.white, borderRadius: borderRadius.xl, padding: spacing.sm, alignItems: 'center', rowGap: spacing.sm }, shadows.soft),
98
+ image: {
99
+ width: 100,
100
+ height: 100,
101
+ borderRadius: borderRadius.full
102
+ },
103
+ status: {
104
+ maxWidth: '80%'
105
+ },
106
+ specialtiesContainer: {
107
+ flexDirection: 'row',
108
+ columnGap: spacing.xs,
109
+ rowGap: spacing.xs,
110
+ flexWrap: 'wrap',
111
+ justifyContent: 'center'
112
+ },
113
+ specialty: {
114
+ paddingVertical: spacing.xs,
115
+ paddingHorizontal: spacing.sm,
116
+ borderRadius: borderRadius.full,
117
+ backgroundColor: colors.background
118
+ },
119
+ button: {
120
+ borderTopColor: colors.divider,
121
+ borderTopWidth: 1,
122
+ paddingTop: spacing.md,
123
+ paddingBottom: spacing.sm - 8, // Hack for centering the button
124
+ width: '100%',
125
+ alignItems: 'center'
126
+ }
127
+ });
128
+ };
@@ -0,0 +1,8 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ import { StyleProp, ViewStyle } from 'react-native';
3
+ interface FadeInProps {
4
+ style?: StyleProp<ViewStyle>;
5
+ duration?: number;
6
+ }
7
+ export declare const FadeIn: ({ children, style, duration }: PropsWithChildren<FadeInProps>) => React.JSX.Element;
8
+ export {};
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.FadeIn = void 0;
37
+ var react_1 = __importStar(require("react"));
38
+ var react_native_1 = require("react-native");
39
+ var DEFAULT_DURATION = 250;
40
+ var FadeIn = function (_a) {
41
+ var children = _a.children, style = _a.style, _b = _a.duration, duration = _b === void 0 ? DEFAULT_DURATION : _b;
42
+ var fadeAnim = (0, react_native_1.useAnimatedValue)(0);
43
+ (0, react_1.useEffect)(function () {
44
+ fadeAnim.setValue(0);
45
+ react_native_1.Animated.timing(fadeAnim, {
46
+ toValue: 1,
47
+ duration: duration,
48
+ useNativeDriver: true
49
+ }).start();
50
+ }, [fadeAnim, duration]);
51
+ return (<react_native_1.Animated.View style={[
52
+ styles.wrapper,
53
+ {
54
+ opacity: fadeAnim
55
+ },
56
+ style
57
+ ]}>
58
+ {children}
59
+ </react_native_1.Animated.View>);
60
+ };
61
+ exports.FadeIn = FadeIn;
62
+ var styles = react_native_1.StyleSheet.create({
63
+ wrapper: {
64
+ width: '100%'
65
+ }
66
+ });
@@ -0,0 +1,8 @@
1
+ import { PropsWithChildren } from 'react';
2
+ export interface FormControlProps {
3
+ label?: string;
4
+ error?: string;
5
+ name?: string;
6
+ }
7
+ export declare const FormControl: ({ label, error, name, children }: PropsWithChildren<FormControlProps>) => import("react").JSX.Element;
8
+ export default FormControl;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormControl = void 0;
4
+ var react_native_1 = require("react-native");
5
+ var useTheme_1 = require("../hooks/useTheme");
6
+ var Text_1 = require("./Text");
7
+ var FormControl = function (_a) {
8
+ var label = _a.label, error = _a.error, name = _a.name, children = _a.children;
9
+ var theme = (0, useTheme_1.useTheme)();
10
+ var styles = getStyles(theme);
11
+ return (<react_native_1.View style={styles.formControl}>
12
+ {label && (<Text_1.Text style={styles.label} nativeID={name}>
13
+ {label}
14
+ </Text_1.Text>)}
15
+ {children}
16
+ <Text_1.Text variant="sm" color={theme.colors.warning} style={styles.error}>
17
+ {error}
18
+ </Text_1.Text>
19
+ </react_native_1.View>);
20
+ };
21
+ exports.FormControl = FormControl;
22
+ exports.default = exports.FormControl;
23
+ var getStyles = function (_a) {
24
+ var spacing = _a.spacing, colors = _a.colors, fontSize = _a.fontSize, lineHeight = _a.lineHeight;
25
+ return react_native_1.StyleSheet.create({
26
+ formControl: {
27
+ rowGap: spacing.xxs,
28
+ width: '100%'
29
+ },
30
+ label: {
31
+ color: colors.black,
32
+ fontSize: fontSize.sm,
33
+ lineHeight: lineHeight.sm,
34
+ fontWeight: 'bold'
35
+ },
36
+ error: {
37
+ minHeight: spacing.xs
38
+ }
39
+ });
40
+ };
@@ -0,0 +1,11 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ import { z } from 'zod';
3
+ import { HandleSubmitProps } from '../contexts/FormContext';
4
+ type FormWrapperProps<T extends z.AnyZodObject> = {
5
+ schema: T;
6
+ initialValues?: Partial<z.infer<T>>;
7
+ onSubmit?: HandleSubmitProps<T>;
8
+ submitButton: React.ReactNode;
9
+ };
10
+ export declare const FormWrapper: <T extends z.AnyZodObject>({ children, schema, initialValues, onSubmit, submitButton }: PropsWithChildren<FormWrapperProps<T>>) => React.JSX.Element;
11
+ export {};
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FormWrapper = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var react_native_1 = require("react-native");
9
+ var FormContext_1 = require("../contexts/FormContext");
10
+ var useForm_1 = require("../hooks/useForm");
11
+ var useTheme_1 = require("../hooks/useTheme");
12
+ var InputsWrapper = function (_a) {
13
+ var children = _a.children;
14
+ var theme = (0, useTheme_1.useTheme)();
15
+ var styles = getStyles(theme);
16
+ var loading = (0, useForm_1.useForm)().loading;
17
+ return <react_native_1.View style={[styles.inputsWrapper, loading && styles.loading]}>{children}</react_native_1.View>;
18
+ };
19
+ var FormWrapper = function (_a) {
20
+ var children = _a.children, schema = _a.schema, initialValues = _a.initialValues, onSubmit = _a.onSubmit, submitButton = _a.submitButton;
21
+ var theme = (0, useTheme_1.useTheme)();
22
+ var styles = getStyles(theme);
23
+ return (<FormContext_1.FormProvider schema={schema} initialValues={initialValues} onSubmit={onSubmit}>
24
+ <react_native_1.View style={styles.formWrapper}>
25
+ <InputsWrapper>{children}</InputsWrapper>
26
+ {submitButton}
27
+ </react_native_1.View>
28
+ </FormContext_1.FormProvider>);
29
+ };
30
+ exports.FormWrapper = FormWrapper;
31
+ var getStyles = function (_a) {
32
+ var spacing = _a.spacing;
33
+ return react_native_1.StyleSheet.create({
34
+ formWrapper: {
35
+ width: '100%',
36
+ rowGap: spacing.xs
37
+ },
38
+ inputsWrapper: {
39
+ width: '100%',
40
+ rowGap: spacing.xs
41
+ },
42
+ loading: {
43
+ opacity: 0.5
44
+ }
45
+ });
46
+ };
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ type HeaderProps = {
3
+ leftIcon?: React.ReactNode;
4
+ centerIcon?: React.ReactNode;
5
+ rightIcon?: React.ReactNode;
6
+ title?: string;
7
+ description?: string;
8
+ };
9
+ export declare const Header: ({ leftIcon, centerIcon, rightIcon, title, description }: HeaderProps) => React.JSX.Element;
10
+ export {};
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.Header = void 0;
48
+ var react_1 = __importStar(require("react"));
49
+ var react_native_1 = require("react-native");
50
+ var useTheme_1 = require("../hooks/useTheme");
51
+ var Text_1 = require("./Text");
52
+ var ALIGNMENTS = {
53
+ left: 'flex-start',
54
+ right: 'flex-end',
55
+ center: 'center'
56
+ };
57
+ var IconWrapper = function (_a) {
58
+ var children = _a.children, align = _a.align;
59
+ var theme = (0, useTheme_1.useTheme)();
60
+ var styles = getStyles(theme);
61
+ return <react_native_1.View style={[styles.iconWrapper, { alignItems: ALIGNMENTS[align] }]}>{children}</react_native_1.View>;
62
+ };
63
+ var Header = function (_a) {
64
+ var leftIcon = _a.leftIcon, centerIcon = _a.centerIcon, rightIcon = _a.rightIcon, title = _a.title, description = _a.description;
65
+ var theme = (0, useTheme_1.useTheme)();
66
+ var styles = getStyles(theme);
67
+ var rowJustifyContent = (0, react_1.useMemo)(function () {
68
+ if (centerIcon)
69
+ return 'center';
70
+ if (!description)
71
+ return 'space-between';
72
+ }, [centerIcon, description]);
73
+ var containerPaddingVertical = centerIcon ? theme.spacing.sm : theme.spacing.md;
74
+ return (<react_native_1.View style={[styles.container, { paddingVertical: containerPaddingVertical }]}>
75
+ <react_native_1.View style={[styles.row, { justifyContent: rowJustifyContent }]}>
76
+ {centerIcon ? (<IconWrapper align="center">{centerIcon}</IconWrapper>) : (<>
77
+ <IconWrapper align="left">{leftIcon}</IconWrapper>
78
+ <Text_1.Text variant={description ? 'h3' : 'h4'} style={styles.whiteText}>
79
+ {title}
80
+ </Text_1.Text>
81
+ <IconWrapper align="right">{rightIcon}</IconWrapper>
82
+ </>)}
83
+ </react_native_1.View>
84
+
85
+ {description && (<Text_1.Text variant="sm" style={styles.whiteText}>
86
+ {description}
87
+ </Text_1.Text>)}
88
+ </react_native_1.View>);
89
+ };
90
+ exports.Header = Header;
91
+ var getStyles = function (_a) {
92
+ var colors = _a.colors, spacing = _a.spacing, shadows = _a.shadows;
93
+ return react_native_1.StyleSheet.create({
94
+ container: __assign({ width: '100%', paddingHorizontal: spacing.sm, backgroundColor: colors.primary, rowGap: spacing.xs }, shadows.soft),
95
+ row: {
96
+ flexDirection: 'row',
97
+ alignItems: 'center',
98
+ columnGap: spacing.sm
99
+ },
100
+ whiteText: {
101
+ color: colors.white
102
+ },
103
+ iconWrapper: {
104
+ minWidth: 26,
105
+ minHeight: 26,
106
+ justifyContent: 'center'
107
+ }
108
+ });
109
+ };
@@ -0,0 +1,8 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { TextInputProps } from 'react-native';
3
+ interface InputProps extends TextInputProps {
4
+ label?: string;
5
+ error?: string;
6
+ }
7
+ export declare const Input: ({ label, error, id, ...props }: PropsWithChildren<InputProps>) => import("react").JSX.Element;
8
+ export default Input;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Input = void 0;
18
+ var react_1 = require("react");
19
+ var react_native_1 = require("react-native");
20
+ var useForm_1 = require("../hooks/useForm");
21
+ var useTheme_1 = require("../hooks/useTheme");
22
+ var FormControl_1 = __importDefault(require("./FormControl"));
23
+ var Input = function (_a) {
24
+ var label = _a.label, error = _a.error, id = _a.id, props = __rest(_a, ["label", "error", "id"]);
25
+ var theme = (0, useTheme_1.useTheme)();
26
+ var styles = getStyles(theme);
27
+ var _b = (0, useForm_1.useForm)(), errors = _b.errors, data = _b.data, clearError = _b.clearError, updateData = _b.updateData, loading = _b.loading;
28
+ var _c = (0, react_1.useState)(false), focused = _c[0], setFocused = _c[1];
29
+ var onFocus = function (e) {
30
+ var _a;
31
+ setFocused(true);
32
+ clearError === null || clearError === void 0 ? void 0 : clearError(id);
33
+ (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, e);
34
+ };
35
+ var onBlur = function (e) {
36
+ var _a;
37
+ setFocused(false);
38
+ (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, e);
39
+ };
40
+ var onChangeText = function (text) {
41
+ var _a;
42
+ updateData === null || updateData === void 0 ? void 0 : updateData(id)(text);
43
+ (_a = props.onChangeText) === null || _a === void 0 ? void 0 : _a.call(props, text);
44
+ };
45
+ var formError = errors === null || errors === void 0 ? void 0 : errors[id];
46
+ var formValue = data === null || data === void 0 ? void 0 : data[id];
47
+ var err = formError || error;
48
+ return (<FormControl_1.default label={label} error={err} name={id}>
49
+ <react_native_1.TextInput {...props} id={id} style={[styles.input, focused && styles.focused, err && styles.error, props.style]} onFocus={onFocus} onBlur={onBlur} placeholderTextColor={theme.colors.gray} value={formValue || props.value} onChangeText={onChangeText} editable={!loading} accessibilityLabel="input" accessibilityLabelledBy={id} accessibilityState={{ busy: loading, disabled: loading }}/>
50
+ </FormControl_1.default>);
51
+ };
52
+ exports.Input = Input;
53
+ exports.default = exports.Input;
54
+ var getStyles = function (_a) {
55
+ var colors = _a.colors, spacing = _a.spacing, fontSize = _a.fontSize, borderRadius = _a.borderRadius;
56
+ return react_native_1.StyleSheet.create({
57
+ input: {
58
+ color: colors.black,
59
+ fontSize: fontSize.base,
60
+ padding: spacing.sm,
61
+ borderWidth: 1,
62
+ borderColor: colors.gray,
63
+ borderRadius: borderRadius.md,
64
+ width: '100%',
65
+ backgroundColor: colors.white
66
+ },
67
+ focused: {
68
+ borderColor: colors.primary
69
+ },
70
+ error: {
71
+ borderColor: colors.warning
72
+ }
73
+ });
74
+ };
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ interface AttachmentPreviewModalProps {
3
+ onCancel?: () => void;
4
+ onRemove?: () => void;
5
+ visible: boolean;
6
+ attachment: string;
7
+ }
8
+ export declare const AttachmentPreviewModal: ({ onCancel, onRemove, visible, attachment }: AttachmentPreviewModalProps) => React.JSX.Element;
9
+ export {};