dhre-ui-kit 0.0.94 → 0.0.96

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 (218) hide show
  1. package/{src/assets/index.ts → lib/assets/index.d.ts} +1 -18
  2. package/lib/index.d.ts +862 -0
  3. package/lib/index.esm.js +2 -0
  4. package/lib/index.esm.js.map +1 -0
  5. package/lib/index.js +4333 -0
  6. package/lib/index.js.map +1 -0
  7. package/lib/index.mjs +4248 -0
  8. package/lib/index.mjs.map +1 -0
  9. package/lib/theme/ThemeContext.d.ts +10 -0
  10. package/lib/theme/colors.d.ts +166 -0
  11. package/lib/theme/fonts.d.ts +8 -0
  12. package/lib/theme/themes.d.ts +131 -0
  13. package/lib/theme/withThemeProvider.d.ts +2 -0
  14. package/lib/utils/appEnum.d.ts +90 -0
  15. package/lib/utils/commonStyles.d.ts +15 -0
  16. package/lib/utils/constants.d.ts +19 -0
  17. package/lib/utils/deviceUtils.d.ts +7 -0
  18. package/lib/utils/regex.d.ts +1 -0
  19. package/lib/utils/stylehelper.d.ts +5 -0
  20. package/package.json +61 -81
  21. package/README.md +0 -1
  22. package/__mocks__/custom-text.mock.tsx +0 -19
  23. package/__mocks__/setup-tests.ts +0 -24
  24. package/__mocks__/svgMock.ts +0 -2
  25. package/src/App.tsx +0 -43
  26. package/src/assets/fonts/MeraasAktiv_Bd.ttf +0 -0
  27. package/src/assets/fonts/MeraasAktiv_Lt.ttf +0 -0
  28. package/src/assets/fonts/MeraasAktiv_Rg.ttf +0 -0
  29. package/src/assets/images/arrowLeft.svg +0 -3
  30. package/src/assets/images/bellSimple.svg +0 -3
  31. package/src/assets/images/calenderDots.svg +0 -1
  32. package/src/assets/images/caretDown.svg +0 -3
  33. package/src/assets/images/caretLeft.svg +0 -3
  34. package/src/assets/images/caretRight.svg +0 -3
  35. package/src/assets/images/caretUp.svg +0 -3
  36. package/src/assets/images/checkWhite.svg +0 -3
  37. package/src/assets/images/circleTick.svg +0 -3
  38. package/src/assets/images/crossIcon.svg +0 -3
  39. package/src/assets/images/dotsThreeVertical.svg +0 -5
  40. package/src/assets/images/fileIcon.svg +0 -8
  41. package/src/assets/images/searchIcon.svg +0 -4
  42. package/src/assets/images/trash.svg +0 -7
  43. package/src/assets/images/uploadFileIcon.svg +0 -12
  44. package/src/components/ContactModel/ContactModel.tsx +0 -206
  45. package/src/components/ContactModel/index.ts +0 -1
  46. package/src/components/OutOfOffice/OurOffices.tsx +0 -91
  47. package/src/components/OutOfOffice/index.ts +0 -1
  48. package/src/components/accordion/Accordion.interface.ts +0 -16
  49. package/src/components/accordion/Accordion.styles.ts +0 -28
  50. package/src/components/accordion/Accordion.test.tsx +0 -21
  51. package/src/components/accordion/Accordion.tsx +0 -85
  52. package/src/components/accordion/index.ts +0 -1
  53. package/src/components/autoOtpReader/AutoOtpReader.test.tsx +0 -56
  54. package/src/components/autoOtpReader/AutoOtpReader.tsx +0 -79
  55. package/src/components/autoOtpReader/index.ts +0 -1
  56. package/src/components/badge/Badge.styles.ts +0 -20
  57. package/src/components/badge/Badge.test.tsx +0 -57
  58. package/src/components/badge/Badge.tsx +0 -48
  59. package/src/components/badge/index.ts +0 -1
  60. package/src/components/bottomDrawer/BottomDrawer.interface.ts +0 -23
  61. package/src/components/bottomDrawer/BottomDrawer.styles.ts +0 -47
  62. package/src/components/bottomDrawer/BottomDrawer.test.tsx +0 -19
  63. package/src/components/bottomDrawer/BottomDrawer.tsx +0 -92
  64. package/src/components/bottomDrawer/index.ts +0 -1
  65. package/src/components/button/Button.interface.ts +0 -19
  66. package/src/components/button/Button.styles.ts +0 -78
  67. package/src/components/button/Button.test.tsx +0 -43
  68. package/src/components/button/Button.tsx +0 -82
  69. package/src/components/button/index.ts +0 -1
  70. package/src/components/cards/Cards.interface.ts +0 -13
  71. package/src/components/cards/Cards.styles.ts +0 -59
  72. package/src/components/cards/Cards.test.tsx +0 -41
  73. package/src/components/cards/Cards.tsx +0 -69
  74. package/src/components/cards/index.ts +0 -1
  75. package/src/components/checkBox/CheckBox.interface.ts +0 -15
  76. package/src/components/checkBox/CheckBox.styles.ts +0 -35
  77. package/src/components/checkBox/CheckBox.test.tsx +0 -46
  78. package/src/components/checkBox/CheckBox.tsx +0 -50
  79. package/src/components/checkBox/index.ts +0 -1
  80. package/src/components/countryPicker/CountryPicker.tsx +0 -169
  81. package/src/components/countryPicker/index.ts +0 -1
  82. package/src/components/customDocumentPicker/CustomDocumentPicker.interface.ts +0 -13
  83. package/src/components/customDocumentPicker/CustomDocumentPicker.styles.ts +0 -33
  84. package/src/components/customDocumentPicker/CustomDocumentPicker.tsx +0 -100
  85. package/src/components/customDocumentPicker/index.ts +0 -1
  86. package/src/components/customDropdown/CustomDropdown.interface.ts +0 -15
  87. package/src/components/customDropdown/CustomDropdown.styles.tsx +0 -46
  88. package/src/components/customDropdown/CustomDropdown.test.tsx +0 -30
  89. package/src/components/customDropdown/CustomDropdown.tsx +0 -106
  90. package/src/components/customDropdown/index.ts +0 -1
  91. package/src/components/customHeader/CustomHeader.interface.tsx +0 -10
  92. package/src/components/customHeader/CustomHeader.styles.ts +0 -26
  93. package/src/components/customHeader/CustomHeader.test.tsx +0 -14
  94. package/src/components/customHeader/CustomHeader.tsx +0 -46
  95. package/src/components/customHeader/index.ts +0 -1
  96. package/src/components/customIcon/CustomIcon.interface.ts +0 -12
  97. package/src/components/customIcon/CustomIcon.styles.ts +0 -13
  98. package/src/components/customIcon/CustomIcon.test.tsx +0 -14
  99. package/src/components/customIcon/CustomIcon.tsx +0 -33
  100. package/src/components/customIcon/index.ts +0 -1
  101. package/src/components/customInputText/CustomInputText.interface.ts +0 -20
  102. package/src/components/customInputText/CustomInputText.styles.ts +0 -56
  103. package/src/components/customInputText/CustomInputText.test.tsx +0 -37
  104. package/src/components/customInputText/CustomInputText.tsx +0 -120
  105. package/src/components/customInputText/index.ts +0 -1
  106. package/src/components/customLoader/CustomLoader.inteface.ts +0 -3
  107. package/src/components/customLoader/CustomLoader.styles.ts +0 -16
  108. package/src/components/customLoader/CustomLoader.tsx +0 -16
  109. package/src/components/customLoader/index.ts +0 -1
  110. package/src/components/customSearchBar/CustomSearchBar.interface.ts +0 -21
  111. package/src/components/customSearchBar/CustomSearchBar.styles.ts +0 -23
  112. package/src/components/customSearchBar/CustomSearchBar.test.tsx +0 -27
  113. package/src/components/customSearchBar/CustomSearchBar.tsx +0 -87
  114. package/src/components/customSearchBar/index.ts +0 -1
  115. package/src/components/customSlideButton/custom-slide-button.interface.ts +0 -4
  116. package/src/components/customSlideButton/index.tsx +0 -78
  117. package/src/components/customSlideButton/styles.ts +0 -39
  118. package/src/components/customSwitchBtn/customSwitchBtn.interface.ts +0 -15
  119. package/src/components/customSwitchBtn/customSwitchBtn.styles.ts +0 -34
  120. package/src/components/customSwitchBtn/customSwitchBtn.tsx +0 -63
  121. package/src/components/customSwitchBtn/index.ts +0 -1
  122. package/src/components/customText/CustomText.tsx +0 -33
  123. package/src/components/customText/index.ts +0 -1
  124. package/src/components/customTooltip/CustomTooltip.interface.ts +0 -14
  125. package/src/components/customTooltip/CustomTooltip.styles.ts +0 -23
  126. package/src/components/customTooltip/CustomTooltip.test.tsx +0 -18
  127. package/src/components/customTooltip/CustomTooltip.tsx +0 -46
  128. package/src/components/customTooltip/index.ts +0 -1
  129. package/src/components/customTypography/CustomTypography.test.tsx +0 -12
  130. package/src/components/customTypography/CustomTypography.tsx +0 -27
  131. package/src/components/customTypography/index.ts +0 -1
  132. package/src/components/dateRangePicker/DateRangePicker.interface.ts +0 -19
  133. package/src/components/dateRangePicker/DateRangePicker.styles.ts +0 -19
  134. package/src/components/dateRangePicker/DateRangePicker.tsx +0 -108
  135. package/src/components/dateRangePicker/index.ts +0 -1
  136. package/src/components/dropDown/DropDown.tsx +0 -145
  137. package/src/components/dropDown/index.ts +0 -1
  138. package/src/components/feedback/feedback.style.ts +0 -48
  139. package/src/components/feedback/feedback.tsx +0 -61
  140. package/src/components/feedback/index.ts +0 -1
  141. package/src/components/fileUpload/FileUpload.styles.ts +0 -41
  142. package/src/components/fileUpload/FileUpload.test.tsx +0 -39
  143. package/src/components/fileUpload/FileUpload.tsx +0 -65
  144. package/src/components/fileUpload/index.ts +0 -1
  145. package/src/components/horizontalLine/Line.tsx +0 -26
  146. package/src/components/horizontalLine/index.ts +0 -1
  147. package/src/components/notificationBandge/NotificationBandge.interface.tsx +0 -3
  148. package/src/components/notificationBandge/NotificationBandge.styles.tsx +0 -26
  149. package/src/components/notificationBandge/NotificationBandge.tsx +0 -26
  150. package/src/components/notificationBandge/index.tsx +0 -1
  151. package/src/components/otp/index.tsx +0 -166
  152. package/src/components/otp/otp.interface.ts +0 -14
  153. package/src/components/otp/styles.ts +0 -29
  154. package/src/components/pdfView/PdfView.test.tsx +0 -12
  155. package/src/components/pdfView/PdfView.tsx +0 -8
  156. package/src/components/pdfView/index.ts +0 -1
  157. package/src/components/popup/PopUp.interface.ts +0 -9
  158. package/src/components/popup/PopUp.styles.ts +0 -52
  159. package/src/components/popup/PopUp.test.tsx +0 -35
  160. package/src/components/popup/PopUp.tsx +0 -60
  161. package/src/components/popup/index.ts +0 -1
  162. package/src/components/progressBar/ProgressBar.test.tsx +0 -78
  163. package/src/components/progressBar/ProgressBar.tsx +0 -120
  164. package/src/components/progressBar/index.ts +0 -1
  165. package/src/components/property360View/Property360View.test.tsx +0 -24
  166. package/src/components/property360View/Property360View.tsx +0 -19
  167. package/src/components/property360View/index.ts +0 -1
  168. package/src/components/rating/index.ts +0 -1
  169. package/src/components/rating/rating.styles.ts +0 -13
  170. package/src/components/rating/rating.test.tsx +0 -61
  171. package/src/components/rating/rating.tsx +0 -96
  172. package/src/components/scrollList/category.tsx +0 -110
  173. package/src/components/scrollList/index.ts +0 -1
  174. package/src/components/singleSelectionTag/TagSingleSelection.tsx +0 -105
  175. package/src/components/singleSelectionTag/index.ts +0 -1
  176. package/src/components/stepper/index.tsx +0 -105
  177. package/src/components/stepper/stepper.interface.ts +0 -24
  178. package/src/components/stepper/styles.ts +0 -74
  179. package/src/components/swipableList/SwipableList.interface.ts +0 -52
  180. package/src/components/swipableList/SwipableList.styles.ts +0 -30
  181. package/src/components/swipableList/SwipableList.test.tsx +0 -209
  182. package/src/components/swipableList/SwipableList.tsx +0 -137
  183. package/src/components/swipableList/index.ts +0 -1
  184. package/src/components/tabs/Tabs.interface.ts +0 -10
  185. package/src/components/tabs/Tabs.styles.ts +0 -24
  186. package/src/components/tabs/Tabs.tsx +0 -74
  187. package/src/components/tabs/index.ts +0 -1
  188. package/src/components/tags/Tags.interface.ts +0 -12
  189. package/src/components/tags/Tags.styles.ts +0 -36
  190. package/src/components/tags/Tags.test.tsx +0 -22
  191. package/src/components/tags/Tags.tsx +0 -76
  192. package/src/components/tags/index.ts +0 -1
  193. package/src/components/textInput/Textinput.tsx +0 -124
  194. package/src/components/textInput/index.ts +0 -1
  195. package/src/components/toast/Toast.interface.ts +0 -39
  196. package/src/components/toast/Toast.styles.ts +0 -41
  197. package/src/components/toast/Toast.test.tsx +0 -13
  198. package/src/components/toast/Toast.tsx +0 -115
  199. package/src/components/toast/ToastService.ts +0 -30
  200. package/src/components/toast/index.ts +0 -1
  201. package/src/components/toggleButton/ToggleButton.styles.ts +0 -40
  202. package/src/components/toggleButton/ToggleButton.test.tsx +0 -33
  203. package/src/components/toggleButton/ToggleButton.tsx +0 -78
  204. package/src/components/toggleButton/index.ts +0 -1
  205. package/src/components/topic/Topic.tsx +0 -85
  206. package/src/components/topic/index.ts +0 -1
  207. package/src/index.ts +0 -59
  208. package/src/theme/ThemeContext.tsx +0 -38
  209. package/src/theme/colors.ts +0 -186
  210. package/src/theme/fonts.ts +0 -72
  211. package/src/theme/themes.ts +0 -137
  212. package/src/theme/withThemeProvider.tsx +0 -14
  213. package/src/utils/appEnum.ts +0 -109
  214. package/src/utils/commonStyles.ts +0 -17
  215. package/src/utils/constants.ts +0 -20
  216. package/src/utils/deviceUtils.ts +0 -14
  217. package/src/utils/regex.ts +0 -1
  218. package/src/utils/stylehelper.ts +0 -13
package/lib/index.mjs ADDED
@@ -0,0 +1,4248 @@
1
+ import * as React from 'react';
2
+ import React__default, { createContext, useContext, useState, useEffect, useRef, memo, useCallback } from 'react';
3
+ import { useSelector } from 'react-redux';
4
+ import { Dimensions, Text, StyleSheet, Pressable, View, Modal, KeyboardAvoidingView, Platform, TextInput, ScrollView, Animated, FlatList, ActivityIndicator, TouchableOpacity, Alert, Linking, PanResponder } from 'react-native';
5
+ import { PanGestureHandler, GestureHandlerRootView, Swipeable } from 'react-native-gesture-handler';
6
+ import { BlurView } from '@react-native-community/blur';
7
+ import Tooltip from 'rn-tooltip';
8
+ import Pdf from 'react-native-pdf';
9
+ import * as Progress from 'react-native-progress';
10
+ import { Calendar } from 'react-native-calendars';
11
+ import CountryPicker from 'react-native-country-picker-modal';
12
+ import { TextInput as TextInput$1 } from 'react-native-paper';
13
+ import { Dropdown } from 'react-native-element-dropdown';
14
+ import DocumentPicker from 'react-native-document-picker';
15
+ import RNFS from 'react-native-fs';
16
+ import Clipboard from '@react-native-clipboard/clipboard';
17
+
18
+ var ShapeType = /* @__PURE__ */ ((ShapeType2) => {
19
+ ShapeType2["LINE"] = "line";
20
+ ShapeType2["CIRCLE"] = "circle";
21
+ return ShapeType2;
22
+ })(ShapeType || {});
23
+ var ToggleButtonType = /* @__PURE__ */ ((ToggleButtonType2) => {
24
+ ToggleButtonType2["SMALL"] = "small";
25
+ ToggleButtonType2["LARGE"] = "large";
26
+ return ToggleButtonType2;
27
+ })(ToggleButtonType || {});
28
+ var TextDirectType = /* @__PURE__ */ ((TextDirectType2) => {
29
+ TextDirectType2["left"] = "left";
30
+ TextDirectType2["right"] = "right";
31
+ return TextDirectType2;
32
+ })(TextDirectType || {});
33
+ var ToggleTextType = /* @__PURE__ */ ((ToggleTextType2) => {
34
+ ToggleTextType2["ON"] = "ON";
35
+ ToggleTextType2["OFF"] = "OFF";
36
+ return ToggleTextType2;
37
+ })(ToggleTextType || {});
38
+ var FontStyle = /* @__PURE__ */ ((FontStyle2) => {
39
+ FontStyle2["H1_BOLD"] = "H1_BOLD";
40
+ FontStyle2["H2_BOLD"] = "H2_BOLD";
41
+ FontStyle2["H3_BOLD"] = "H3_BOLD";
42
+ FontStyle2["H4_BOLD"] = "H4_BOLD";
43
+ FontStyle2["H5_BOLD"] = "H5_BOLD";
44
+ FontStyle2["H6_BOLD"] = "H6_BOLD";
45
+ FontStyle2["H7_BOLD"] = "H7_BOLD";
46
+ FontStyle2["H8_BOLD"] = "H8_BOLD";
47
+ FontStyle2["H1_REGULAR"] = "H1_REGULAR";
48
+ FontStyle2["H2_REGULAR"] = "H2_REGULAR";
49
+ FontStyle2["H3_REGULAR"] = "H3_REGULAR";
50
+ FontStyle2["H4_REGULAR"] = "H4_REGULAR";
51
+ FontStyle2["H5_REGULAR"] = "H5_REGULAR";
52
+ FontStyle2["H6_REGULAR"] = "H6_REGULAR";
53
+ FontStyle2["H7_REGULAR"] = "H7_REGULAR";
54
+ FontStyle2["H8_REGULAR"] = "H8_REGULAR";
55
+ FontStyle2["H1_LIGHT"] = "H1_LIGHT";
56
+ FontStyle2["H2_LIGHT"] = "H2_LIGHT";
57
+ FontStyle2["H3_LIGHT"] = "H3_LIGHT";
58
+ FontStyle2["H4_LIGHT"] = "H4_LIGHT";
59
+ FontStyle2["H5_LIGHT"] = "H5_LIGHT";
60
+ FontStyle2["H6_LIGHT"] = "H6_LIGHT";
61
+ FontStyle2["H7_LIGHT"] = "H7_LIGHT";
62
+ FontStyle2["H8_LIGHT"] = "H8_LIGHT";
63
+ FontStyle2["B1_BOLD"] = "B1_BOLD";
64
+ FontStyle2["B2_BOLD"] = "B2_BOLD";
65
+ FontStyle2["B3_BOLD"] = "B3_BOLD";
66
+ FontStyle2["B4_BOLD"] = "B4_BOLD";
67
+ FontStyle2["B1_REGULAR"] = "B1_REGULAR";
68
+ FontStyle2["B2_REGULAR"] = "B2_REGULAR";
69
+ FontStyle2["B3_REGULAR"] = "B3_REGULAR";
70
+ FontStyle2["B4_REGULAR"] = "B4_REGULAR";
71
+ FontStyle2["L1_BOLD"] = "L1_BOLD";
72
+ FontStyle2["L2_BOLD"] = "L2_BOLD";
73
+ FontStyle2["L3_BOLD"] = "L3_BOLD";
74
+ FontStyle2["L1_REGULAR"] = "L1_REGULAR";
75
+ FontStyle2["L2_REGULAR"] = "L2_REGULAR";
76
+ FontStyle2["L3_REGULAR"] = "L3_REGULAR";
77
+ return FontStyle2;
78
+ })(FontStyle || {});
79
+ var Theme = /* @__PURE__ */ ((Theme2) => {
80
+ Theme2["SURFACE_PRIMARY"] = "SURFACE_PRIMARY";
81
+ Theme2["SURFACE_SECONDARY"] = "SURFACE_SECONDARY";
82
+ Theme2["SURFACE_TERTIARY"] = "SURFACE_TERTIARY";
83
+ Theme2["SURFACE_STATIC"] = "SURFACE_STATIC";
84
+ Theme2["SURFACE_BRAND_STATIC"] = "SURFACE_BRAND_STATIC";
85
+ Theme2["SURFACE_BRAND_TRANSPARENT_STATIC"] = "SURFACE_BRAND_TRANSPARENT_STATIC";
86
+ Theme2["SURFACE_DISABLE"] = "SURFACE_DISABLE";
87
+ Theme2["SURFACE_INVERTED"] = "SURFACE_INVERTED";
88
+ Theme2["SURFACE_INVERTED_TRANSPARENT"] = "SURFACE_INVERTED_TRANSPARENT";
89
+ Theme2["SURFACE_DROP_SHADOW"] = "SURFACE_DROP_SHADOW";
90
+ Theme2["SURFACE_BLUR"] = "SURFACE_BLUR";
91
+ Theme2["CONTENT_PRIMARY"] = "CONTENT_PRIMARY";
92
+ Theme2["CONTENT_SECONDRY"] = "CONTENT_SECONDRY";
93
+ Theme2["CONTENT_DISABLE"] = "CONTENT_DISABLE";
94
+ Theme2["CONTENT_INVERTED"] = "CONTENT_INVERTED";
95
+ Theme2["CONTENT_STATIC"] = "CONTENT_STATIC";
96
+ Theme2["CONTENT_PRIMARY_STATIC"] = "CONTENT_PRIMARY_STATIC";
97
+ Theme2["CONTENT_SECONDRY_STATIC"] = "CONTENT_SECONDRY_STATIC";
98
+ Theme2["BORDER_PRIMARY"] = "BORDER_PRIMARY";
99
+ Theme2["BORDER_SECONDRY"] = "BORDER_SECONDRY";
100
+ Theme2["BORDER_DISABLE"] = "BORDER_DISABLE";
101
+ Theme2["BORDER_INVERTED"] = "BORDER_INVERTED";
102
+ Theme2["BORDER_BRAND_STATIC"] = "BORDER_BRAND_STATIC";
103
+ Theme2["BORDER_BRAND_TRANSPARENT_STATIC"] = "BORDER_BRAND_TRANSPARENT_STATIC";
104
+ Theme2["BORDER_TEXT_FIELD"] = "BORDER_TEXT_FIELD";
105
+ Theme2["BORDER_SEPERATOR_HEADER"] = "BORDER_SEPERATOR_HEADER";
106
+ Theme2["BORDER_STATIC"] = "BORDER_STATIC";
107
+ Theme2["BORDER_SEPRATOR"] = "BORDER_SEPRATOR";
108
+ Theme2["WARNING"] = "WARNING";
109
+ Theme2["SUCCESS"] = "SUCCESS";
110
+ Theme2["INFO"] = "INFO";
111
+ Theme2["ERROR"] = "ERROR";
112
+ return Theme2;
113
+ })(Theme || {});
114
+
115
+ const theme = {
116
+ [Theme.SURFACE_PRIMARY]: {
117
+ light: "#FFFFFF",
118
+ dark: "#000000"
119
+ },
120
+ [Theme.SURFACE_SECONDARY]: {
121
+ light: "#F5F5F5",
122
+ dark: "#212121"
123
+ },
124
+ [Theme.SURFACE_TERTIARY]: {
125
+ light: "#0000001A",
126
+ dark: "#373737"
127
+ },
128
+ [Theme.SURFACE_STATIC]: {
129
+ light: "#FFFFFF",
130
+ dark: "#FFFFFF"
131
+ },
132
+ [Theme.SURFACE_BRAND_STATIC]: {
133
+ light: "#D92D27",
134
+ dark: "#D92D27"
135
+ },
136
+ [Theme.SURFACE_BRAND_TRANSPARENT_STATIC]: {
137
+ light: "#D92D3E",
138
+ dark: "#D92D3E"
139
+ },
140
+ [Theme.SURFACE_DISABLE]: {
141
+ light: "#E1E1E1",
142
+ dark: "#A7A7A7"
143
+ },
144
+ [Theme.SURFACE_INVERTED]: {
145
+ light: "#000000",
146
+ dark: "#FFFFFF"
147
+ },
148
+ [Theme.SURFACE_INVERTED_TRANSPARENT]: {
149
+ light: "#686868",
150
+ dark: "#FFFFFF"
151
+ },
152
+ [Theme.SURFACE_DROP_SHADOW]: {
153
+ light: "#CECECE",
154
+ dark: "#373737"
155
+ },
156
+ [Theme.SURFACE_BLUR]: {
157
+ light: "#000000B2",
158
+ dark: "#FFFFFFB2"
159
+ },
160
+ [Theme.CONTENT_PRIMARY]: {
161
+ light: "#000000",
162
+ dark: "#FFFFFF"
163
+ },
164
+ [Theme.CONTENT_SECONDRY]: {
165
+ light: "#686868",
166
+ dark: "#A7A7A7"
167
+ },
168
+ [Theme.CONTENT_DISABLE]: {
169
+ light: "#A7A7A7",
170
+ dark: "#686868"
171
+ },
172
+ [Theme.CONTENT_INVERTED]: {
173
+ light: "#FFFFFF",
174
+ dark: "#000000"
175
+ },
176
+ [Theme.CONTENT_STATIC]: {
177
+ light: "#FFFFFF",
178
+ dark: "#FFFFFF"
179
+ },
180
+ [Theme.CONTENT_PRIMARY_STATIC]: {
181
+ light: "#0000001A",
182
+ dark: "#686868"
183
+ },
184
+ [Theme.CONTENT_SECONDRY_STATIC]: {
185
+ light: "#CECECE",
186
+ dark: "#CECECE"
187
+ },
188
+ [Theme.BORDER_PRIMARY]: {
189
+ light: "#686868",
190
+ dark: "#404040"
191
+ },
192
+ [Theme.BORDER_SECONDRY]: {
193
+ light: "#A7A7A7",
194
+ dark: "#686868"
195
+ },
196
+ [Theme.BORDER_DISABLE]: {
197
+ light: "#CECECE",
198
+ dark: "#4F4F4F"
199
+ },
200
+ [Theme.BORDER_INVERTED]: {
201
+ light: "#000000",
202
+ dark: "#FFFFFF"
203
+ },
204
+ [Theme.BORDER_BRAND_STATIC]: {
205
+ light: "#D92D27",
206
+ dark: "#D92D27"
207
+ },
208
+ [Theme.BORDER_BRAND_TRANSPARENT_STATIC]: {
209
+ light: "#D92D3E",
210
+ dark: "#D92D3E"
211
+ },
212
+ [Theme.BORDER_STATIC]: {
213
+ light: "#FFFFFF",
214
+ dark: "#FFFFFF"
215
+ },
216
+ [Theme.BORDER_TEXT_FIELD]: {
217
+ light: "#0000001A",
218
+ dark: "#404040"
219
+ },
220
+ [Theme.BORDER_SEPRATOR]: {
221
+ light: "#282828",
222
+ dark: "#FFFFFF"
223
+ },
224
+ [Theme.BORDER_SEPERATOR_HEADER]: {
225
+ light: "#E1E1E1",
226
+ dark: "#404040"
227
+ },
228
+ [Theme.WARNING]: {
229
+ light: "#B65E01",
230
+ dark: "#EB8425"
231
+ },
232
+ [Theme.SUCCESS]: {
233
+ light: "#008256",
234
+ dark: "#00B578"
235
+ },
236
+ [Theme.INFO]: {
237
+ light: "#0569C2",
238
+ dark: "#339ECF"
239
+ },
240
+ [Theme.ERROR]: {
241
+ light: "#EB0542",
242
+ dark: "#EB0542"
243
+ }
244
+ };
245
+
246
+ const ThemeContext = createContext(void 0);
247
+ const ThemeProvider = ({ children }) => {
248
+ const mode = useSelector((state) => state.theme.currentTheme);
249
+ const filteredTheme = Object.keys(theme).reduce((acc, key) => {
250
+ acc[key] = theme[key][mode];
251
+ return acc;
252
+ }, {});
253
+ return /* @__PURE__ */ React__default.createElement(ThemeContext.Provider, { value: { theme: filteredTheme } }, children);
254
+ };
255
+ const useTheme = () => {
256
+ const context = useContext(ThemeContext);
257
+ if (context === void 0) {
258
+ throw new Error("useTheme must be used within a ThemeProvider");
259
+ }
260
+ return context;
261
+ };
262
+
263
+ const withThemeProvider = (Component) => {
264
+ return (props) => /* @__PURE__ */ React__default.createElement(ThemeProvider, null, /* @__PURE__ */ React__default.createElement(Component, { ...props }));
265
+ };
266
+
267
+ const { width: width$1, height } = Dimensions.get("window");
268
+ const guidelineBaseWidth = 375;
269
+ const guidelineBaseHeight = 812;
270
+ const horizontalScale = (size) => width$1 / guidelineBaseWidth * size;
271
+ const verticalScale = (size) => height / guidelineBaseHeight * size;
272
+ const moderateScale = (size, factor = 0.5) => size + (horizontalScale(size) - size) * factor;
273
+
274
+ const createFontStyle = (fontFamily, fontSize, lineHeight) => ({
275
+ fontSize: moderateScale(fontSize),
276
+ lineHeight: verticalScale(lineHeight),
277
+ fontFamily
278
+ });
279
+ const FONT_STYLES = {
280
+ [FontStyle.H1_BOLD]: createFontStyle("MeraasAktiv_Bd", 40, 56),
281
+ [FontStyle.H2_BOLD]: createFontStyle("MeraasAktiv_Bd", 36, 50.4),
282
+ [FontStyle.H3_BOLD]: createFontStyle("MeraasAktiv_Bd", 32, 44.8),
283
+ [FontStyle.H4_BOLD]: createFontStyle("MeraasAktiv_Bd", 26, 36.4),
284
+ [FontStyle.H5_BOLD]: createFontStyle("MeraasAktiv_Bd", 24, 33.6),
285
+ [FontStyle.H6_BOLD]: createFontStyle("MeraasAktiv_Bd", 22, 30.8),
286
+ [FontStyle.H7_BOLD]: createFontStyle("MeraasAktiv_Bd", 20, 28),
287
+ [FontStyle.H8_BOLD]: createFontStyle("MeraasAktiv_Bd", 18, 25.2),
288
+ [FontStyle.H1_REGULAR]: createFontStyle("MeraasAktiv_Rg", 40, 56),
289
+ [FontStyle.H2_REGULAR]: createFontStyle("MeraasAktiv_Rg", 36, 50.4),
290
+ [FontStyle.H3_REGULAR]: createFontStyle("MeraasAktiv_Rg", 32, 44.8),
291
+ [FontStyle.H4_REGULAR]: createFontStyle("MeraasAktiv_Rg", 26, 36.4),
292
+ [FontStyle.H5_REGULAR]: createFontStyle("MeraasAktiv_Rg", 24, 33.6),
293
+ [FontStyle.H6_REGULAR]: createFontStyle("MeraasAktiv_Rg", 22, 30.8),
294
+ [FontStyle.H7_REGULAR]: createFontStyle("MeraasAktiv_Rg", 20, 28),
295
+ [FontStyle.H8_REGULAR]: createFontStyle("MeraasAktiv_Rg", 18, 25.2),
296
+ [FontStyle.H1_LIGHT]: createFontStyle("MeraasAktiv_Lt", 40, 56),
297
+ [FontStyle.H2_LIGHT]: createFontStyle("MeraasAktiv_Lt", 36, 50.4),
298
+ [FontStyle.H3_LIGHT]: createFontStyle("MeraasAktiv_Lt", 32, 44.8),
299
+ [FontStyle.H4_LIGHT]: createFontStyle("MeraasAktiv_Lt", 26, 36.4),
300
+ [FontStyle.H5_LIGHT]: createFontStyle("MeraasAktiv_Lt", 24, 33.6),
301
+ [FontStyle.H6_LIGHT]: createFontStyle("MeraasAktiv_Lt", 22, 30.8),
302
+ [FontStyle.H7_LIGHT]: createFontStyle("MeraasAktiv_Lt", 20, 28),
303
+ [FontStyle.H8_LIGHT]: createFontStyle("MeraasAktiv_Lt", 18, 25.2),
304
+ [FontStyle.B1_BOLD]: createFontStyle("MeraasAktiv_Bd", 20, 28),
305
+ [FontStyle.B2_BOLD]: createFontStyle("MeraasAktiv_Bd", 18, 25.2),
306
+ [FontStyle.B3_BOLD]: createFontStyle("MeraasAktiv_Bd", 16, 22.4),
307
+ [FontStyle.B4_BOLD]: createFontStyle("MeraasAktiv_Bd", 14, 22.4),
308
+ [FontStyle.B1_REGULAR]: createFontStyle("MeraasAktiv_Rg", 20, 28),
309
+ [FontStyle.B2_REGULAR]: createFontStyle("MeraasAktiv_Rg", 18, 25.2),
310
+ [FontStyle.B3_REGULAR]: createFontStyle("MeraasAktiv_Rg", 16, 22.4),
311
+ [FontStyle.B4_REGULAR]: createFontStyle("MeraasAktiv_Rg", 14, 22.4),
312
+ [FontStyle.L1_BOLD]: createFontStyle("MeraasAktiv_Bd", 14, 19.6),
313
+ [FontStyle.L2_BOLD]: createFontStyle("MeraasAktiv_Bd", 12, 16.8),
314
+ [FontStyle.L3_BOLD]: createFontStyle("MeraasAktiv_Bd", 10, 14),
315
+ [FontStyle.L1_REGULAR]: createFontStyle("MeraasAktiv_Rg", 14, 19.6),
316
+ [FontStyle.L2_REGULAR]: createFontStyle("MeraasAktiv_Rg", 12, 16.8),
317
+ [FontStyle.L3_REGULAR]: createFontStyle("MeraasAktiv_Rg", 10, 14)
318
+ };
319
+
320
+ const CustomTypography = ({
321
+ variant,
322
+ style,
323
+ text,
324
+ testID = "CUSTOM_TYPOGRAPHY",
325
+ ...props
326
+ }) => {
327
+ const textStyle = FONT_STYLES[variant];
328
+ return /* @__PURE__ */ React__default.createElement(Text, { testID, style: [textStyle, style], ...props }, text);
329
+ };
330
+
331
+ const CustomText = ({
332
+ text,
333
+ style,
334
+ variant,
335
+ textColor = "SURFACE_STATIC",
336
+ ...props
337
+ }) => {
338
+ const { theme } = useTheme();
339
+ return /* @__PURE__ */ React__default.createElement(
340
+ CustomTypography,
341
+ {
342
+ variant,
343
+ text: text || "",
344
+ style: [{ color: theme[textColor] }, style],
345
+ ...props
346
+ }
347
+ );
348
+ };
349
+ var CustomText$1 = withThemeProvider(CustomText);
350
+
351
+ const commonStyles = StyleSheet.create({
352
+ flexOne: {
353
+ flex: 1
354
+ },
355
+ centeredContainer: {
356
+ justifyContent: "center",
357
+ alignItems: "center"
358
+ },
359
+ centerRow: {
360
+ alignItems: "center",
361
+ justifyContent: "center",
362
+ flexDirection: "row"
363
+ }
364
+ });
365
+
366
+ const DHRE_COLORS_PRIMARY = {
367
+ //Black
368
+ DH_BLACK_25: "#C4C5C7",
369
+ DH_BLACK_50: "#888B8F",
370
+ DH_BLACK_75: "#4D5257",
371
+ DH_BLACK_100: "#101820",
372
+ //RED
373
+ DH_RED_25: "#EFCBC7",
374
+ DH_RED_50: "#E09890",
375
+ DH_RED_75: "#D3675B",
376
+ DH_RED_100: "#DA291C",
377
+ //GREY
378
+ DH_GREY_25: "#D7D9DB",
379
+ DH_GREY_50: "#AEB3B7",
380
+ DH_GREY_75: "#868D93",
381
+ DH_GREY_100: "#5B6770"
382
+ };
383
+ const DHRE_COLORS_ALERT = {
384
+ DH_SUCCESS_GREEN_0: "#F5FFFA",
385
+ DH_SUCCESS_GREEN_100: "#DFFEEE",
386
+ DH_SUCCESS_GREEN_200: "#99FBC7",
387
+ DH_SUCCESS_GREEN_300: "#72F7B0",
388
+ DH_SUCCESS_GREEN_400: "#53F29D",
389
+ DH_SUCCESS_GREEN_500: "#3CEB8D",
390
+ DH_SUCCESS_GREEN_600: "#2BE180",
391
+ DH_SUCCESS_GREEN_700: "#1FD574",
392
+ DH_SUCCESS_GREEN_800: "#17C669",
393
+ DH_SUCCESS_GREEN_900: "#12B85F",
394
+ DH_SUCCESS_GREEN: "#10CF68",
395
+ DH_SUCCESS_GREEN_ACCENT: "#00B578",
396
+ DH_INFO_BLUE_0: "#F5F9FF",
397
+ DH_INFO_BLUE_100: "#EDF3FD",
398
+ DH_INFO_BLUE_200: "#E0EAF9",
399
+ DH_INFO_BLUE_300: "#CDDCF2",
400
+ DH_INFO_BLUE_400: "#B3C8E9",
401
+ DH_INFO_BLUE_500: "#91AFDD",
402
+ DH_INFO_BLUE_600: "#6991CD",
403
+ DH_INFO_BLUE_700: "#3F6FB8",
404
+ DH_INFO_BLUE_800: "#1B50A0",
405
+ DH_INFO_BLUE_900: "#003687",
406
+ DH_INFO_BLUE: "#2B5FAC",
407
+ DH_ALERT_ORANGE_0: "#FEF6F4",
408
+ DH_ALERT_ORANGE_100: "#FDEDE8",
409
+ DH_ALERT_ORANGE_200: "#F6C6B6",
410
+ DH_ALERT_ORANGE_300: "#F3B39D",
411
+ DH_ALERT_ORANGE_400: "#EF8F6E",
412
+ DH_ALERT_ORANGE_500: "#ED6C43",
413
+ DH_ALERT_ORANGE_600: "#BC3D1D",
414
+ DH_ALERT_ORANGE_700: "#8D2E13",
415
+ DH_ALERT_ORANGE_800: "#5E1E0A",
416
+ DH_ALERT_ORANGE_900: "#461606",
417
+ DH_ALERT_ORANGE: "#FF3A00",
418
+ DH_WARNING_YELLOW_0: "#FFFBF5",
419
+ DH_WARNING_YELLOW_100: "#FEEFD4",
420
+ DH_WARNING_YELLOW_200: "#FBE1B2",
421
+ DH_WARNING_YELLOW_300: "#F5D18D",
422
+ DH_WARNING_YELLOW_400: "#ECBC62",
423
+ DH_WARNING_YELLOW_500: "#DDA338",
424
+ DH_WARNING_YELLOW_600: "#CD9327",
425
+ DH_WARNING_YELLOW_700: "#B8811B",
426
+ DH_WARNING_YELLOW_800: "#A06F13",
427
+ DH_WARNING_YELLOW_900: "#875D0E",
428
+ DH_WARNING_YELLOW: "#F4AE28"
429
+ };
430
+ const DHRE_COLORS_BG = {
431
+ DH_LINE_GREY_0: "#FAFAFA",
432
+ DH_LINE_GREY_100: "#F6F6F6",
433
+ DH_LINE_GREY_200: "#F1F1F1",
434
+ DH_LINE_GREY_300: "#EDEDED",
435
+ DH_LINE_GREY_400: "#EDEDED",
436
+ DH_LINE_GREY_500: "#CCCACA",
437
+ DH_LINE_GREY_600: "#B4B2B2",
438
+ DH_LINE_GREY_700: "#959494",
439
+ DH_LINE_GREY_800: "#727171",
440
+ DH_LINE_GREY_900: "#4D4C4C",
441
+ DH_GREY1: "#E8E8E8",
442
+ DH_BG_GREY_0: "#F5F7FF",
443
+ DH_BG_GREY_100: "#F2F4FD",
444
+ DH_BG_GREY_200: "#EDEFF9",
445
+ DH_BG_GREY_300: "#E5E7F2",
446
+ DH_BG_GREY_400: "#D9DCE9",
447
+ DH_BG_GREY_500: "#CACDDD",
448
+ DH_BG_GREY_600: "#B7BBCD",
449
+ DH_BG_GREY_700: "#A0A4B8",
450
+ DH_BG_GREY_800: "#878BA0",
451
+ DH_BG_GREY_900: "#6F7387",
452
+ DH_BG_GREY: "#F2F3F8"
453
+ };
454
+ const DHRE_DEFAULT = {
455
+ DH_LINE_GREY_0: "#FAFAFA",
456
+ DH_LINE_GREY_100: "#F6F6F6",
457
+ DH_LINE_GREY_200: "#F1F1F1",
458
+ DH_LINE_GREY_300: "#EDEDED",
459
+ DH_LINE_GREY_400: "#EDEDED",
460
+ DH_LINE_GREY_500: "#CCCACA",
461
+ DH_LINE_GREY_600: "#B4B2B2",
462
+ DH_LINE_GREY_700: "#959494",
463
+ DH_LINE_GREY_800: "#727171",
464
+ DH_NETURAL_GRAY_800: "#373737",
465
+ DH_BLUE: "#007AFF",
466
+ DH_BG_GREY_0: "#F5F7FF",
467
+ DH_BG_GREY_100: "#F2F4FD",
468
+ DH_BG_GREY_200: "#EDEFF9",
469
+ DH_BG_GREY_300: "#E5E7F2",
470
+ DH_BG_GREY_400: "#D9DCE9",
471
+ DH_BG_GREY_500: "#CACDDD",
472
+ DH_BG_GREY_600: "#B7BBCD",
473
+ DH_BG_GREY_700: "#A0A4B8",
474
+ DH_BG_GREY_800: "#878BA0",
475
+ DH_BG_GREY_900: "#6F7387",
476
+ DH_BG_GREY: "#F2F3F8",
477
+ DH_SUCESS: "#2DE3A6",
478
+ DH_ERROR: "#EB382D",
479
+ DH_INFO: "#339ECF",
480
+ DH_SEMENTIC_ERROR: "#EB0542",
481
+ DH_SEMENTIC_WARNING: "#EB8425"
482
+ };
483
+ const DHRE_COLORS_TEXT = {
484
+ //Black
485
+ DH_BLACK: "#000000",
486
+ DH_WHITE: "#FFFFFF",
487
+ DH_TEXTDARK: "#3A3B43",
488
+ DH_TEXTLIGHT: "#6C6C6C",
489
+ DH_TEXTLIGHTEST: "#A7A7A7",
490
+ DH_TEXTDISABLED: "#CCCCCC",
491
+ DH_LIGHTGREEN: "#00B578"
492
+ };
493
+
494
+ const styles$C = StyleSheet.create({
495
+ badge: {
496
+ backgroundColor: DHRE_COLORS_ALERT.DH_SUCCESS_GREEN,
497
+ borderRadius: 15,
498
+ padding: verticalScale(4)
499
+ },
500
+ icon: {
501
+ marginHorizontal: horizontalScale(4),
502
+ height: verticalScale(16),
503
+ width: horizontalScale(16)
504
+ },
505
+ text: {
506
+ color: DHRE_COLORS_TEXT.DH_WHITE
507
+ }
508
+ });
509
+
510
+ const Badge = ({
511
+ text,
512
+ style,
513
+ iconName,
514
+ textStyle,
515
+ iconStyle,
516
+ handleIconPress
517
+ }) => {
518
+ return /* @__PURE__ */ React__default.createElement(
519
+ Pressable,
520
+ {
521
+ style: [styles$C.badge, commonStyles.centerRow, style],
522
+ testID: "BADGE",
523
+ onPress: handleIconPress
524
+ },
525
+ iconName && /* @__PURE__ */ React__default.createElement(View, { style: [styles$C.icon, iconStyle] }, React__default.cloneElement(iconName)),
526
+ text && /* @__PURE__ */ React__default.createElement(
527
+ CustomTypography,
528
+ {
529
+ variant: "B3semiBold",
530
+ style: [styles$C.text, textStyle],
531
+ text
532
+ }
533
+ )
534
+ );
535
+ };
536
+ var Badge$1 = withThemeProvider(Badge);
537
+
538
+ const styles$B = StyleSheet.create({
539
+ mainContainer: {
540
+ flex: 1,
541
+ justifyContent: "flex-end"
542
+ },
543
+ blurView: {
544
+ ...StyleSheet.absoluteFillObject,
545
+ position: "absolute",
546
+ top: 0,
547
+ left: 0,
548
+ bottom: 0,
549
+ right: 0
550
+ },
551
+ modalContainer: {
552
+ flex: 0.5,
553
+ backgroundColor: "#000",
554
+ paddingTop: moderateScale(8),
555
+ paddingHorizontal: moderateScale(16),
556
+ borderTopLeftRadius: moderateScale(22),
557
+ borderTopRightRadius: moderateScale(22)
558
+ },
559
+ separator: {
560
+ height: verticalScale(3),
561
+ width: horizontalScale(32),
562
+ alignSelf: "center",
563
+ backgroundColor: "#A7A7A7",
564
+ borderRadius: moderateScale(25)
565
+ },
566
+ headerContainer: {
567
+ flexDirection: "row",
568
+ justifyContent: "space-between",
569
+ alignItems: "center",
570
+ marginTop: verticalScale(24)
571
+ },
572
+ title: { flex: 1, color: "#fff" },
573
+ leftIconStyle: { marginRight: 8 },
574
+ rightIconStyle: { marginLeft: 8 }
575
+ });
576
+
577
+ var _path$c;
578
+ function _extends$d() { return _extends$d = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$d.apply(null, arguments); }
579
+ var SvgSearchIcon = function SvgSearchIcon(props) {
580
+ return /*#__PURE__*/React.createElement("svg", _extends$d({
581
+ xmlns: "http://www.w3.org/2000/svg",
582
+ width: 24,
583
+ height: 25,
584
+ fill: "none"
585
+ }, props), _path$c || (_path$c = /*#__PURE__*/React.createElement("path", {
586
+ stroke: "#A7A7A7",
587
+ strokeLinecap: "round",
588
+ strokeLinejoin: "round",
589
+ strokeWidth: 1.5,
590
+ d: "M10.875 19.469a7.875 7.875 0 1 0 0-15.75 7.875 7.875 0 0 0 0 15.75M16.444 17.163 21 21.719"
591
+ })));
592
+ };
593
+
594
+ var _path$b;
595
+ function _extends$c() { return _extends$c = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$c.apply(null, arguments); }
596
+ var SvgCrossIcon = function SvgCrossIcon(props) {
597
+ return /*#__PURE__*/React.createElement("svg", _extends$c({
598
+ xmlns: "http://www.w3.org/2000/svg",
599
+ width: 24,
600
+ height: 25,
601
+ fill: "none"
602
+ }, props), _path$b || (_path$b = /*#__PURE__*/React.createElement("path", {
603
+ fill: "#fff",
604
+ d: "M17.657 8.032a.686.686 0 0 0-.97-.97L12 11.749 7.313 7.062a.686.686 0 1 0-.97.97l4.687 4.687-4.687 4.687a.686.686 0 1 0 .97.97L12 13.688l4.687 4.688a.686.686 0 1 0 .97-.97l-4.687-4.687z"
605
+ })));
606
+ };
607
+
608
+ var _path$a;
609
+ function _extends$b() { return _extends$b = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$b.apply(null, arguments); }
610
+ var SvgCaretUp = function SvgCaretUp(props) {
611
+ return /*#__PURE__*/React.createElement("svg", _extends$b({
612
+ xmlns: "http://www.w3.org/2000/svg",
613
+ width: 28,
614
+ height: 20,
615
+ fill: "none"
616
+ }, props), _path$a || (_path$a = /*#__PURE__*/React.createElement("path", {
617
+ stroke: "#A7A7A7",
618
+ strokeLinecap: "round",
619
+ strokeLinejoin: "round",
620
+ d: "M3.75 12.5 10 6.25l6.25 6.25"
621
+ })));
622
+ };
623
+
624
+ var _path$9;
625
+ function _extends$a() { return _extends$a = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$a.apply(null, arguments); }
626
+ var SvgCaretDown = function SvgCaretDown(props) {
627
+ return /*#__PURE__*/React.createElement("svg", _extends$a({
628
+ xmlns: "http://www.w3.org/2000/svg",
629
+ width: 28,
630
+ height: 20,
631
+ fill: "none"
632
+ }, props), _path$9 || (_path$9 = /*#__PURE__*/React.createElement("path", {
633
+ stroke: "#A7A7A7",
634
+ strokeLinecap: "round",
635
+ strokeLinejoin: "round",
636
+ d: "M16.25 7.5 10 13.75 3.75 7.5"
637
+ })));
638
+ };
639
+
640
+ var _path$8;
641
+ function _extends$9() { return _extends$9 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$9.apply(null, arguments); }
642
+ var SvgCaretLeft = function SvgCaretLeft(props) {
643
+ return /*#__PURE__*/React.createElement("svg", _extends$9({
644
+ xmlns: "http://www.w3.org/2000/svg",
645
+ width: 24,
646
+ height: 24,
647
+ fill: "none"
648
+ }, props), _path$8 || (_path$8 = /*#__PURE__*/React.createElement("path", {
649
+ stroke: "#fff",
650
+ strokeLinecap: "round",
651
+ strokeLinejoin: "round",
652
+ strokeWidth: 1.5,
653
+ d: "M15 19.5 7.5 12 15 4.5"
654
+ })));
655
+ };
656
+
657
+ var _path$7, _path2$1;
658
+ function _extends$8() { return _extends$8 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$8.apply(null, arguments); }
659
+ var SvgDotsThreeVertical = function SvgDotsThreeVertical(props) {
660
+ return /*#__PURE__*/React.createElement("svg", _extends$8({
661
+ xmlns: "http://www.w3.org/2000/svg",
662
+ width: 24,
663
+ height: 24,
664
+ fill: "none"
665
+ }, props), _path$7 || (_path$7 = /*#__PURE__*/React.createElement("path", {
666
+ fill: "#fff",
667
+ stroke: "#fff",
668
+ strokeWidth: 0.125,
669
+ d: "M13.438 6a1.438 1.438 0 1 1-2.876 0 1.438 1.438 0 0 1 2.876 0ZM13.438 12a1.438 1.438 0 1 1-2.876 0 1.438 1.438 0 0 1 2.876 0Z"
670
+ })), _path2$1 || (_path2$1 = /*#__PURE__*/React.createElement("path", {
671
+ fill: "#fff",
672
+ d: "M12 19.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3"
673
+ })));
674
+ };
675
+
676
+ var _path$6;
677
+ function _extends$7() { return _extends$7 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$7.apply(null, arguments); }
678
+ var SvgCircleTick = function SvgCircleTick(props) {
679
+ return /*#__PURE__*/React.createElement("svg", _extends$7({
680
+ xmlns: "http://www.w3.org/2000/svg",
681
+ width: 20,
682
+ height: 20,
683
+ fill: "none"
684
+ }, props), _path$6 || (_path$6 = /*#__PURE__*/React.createElement("path", {
685
+ fill: "#fff",
686
+ d: "M14.03 7.22a.75.75 0 0 1 0 1.06l-5.25 5.25a.75.75 0 0 1-1.06 0l-2.25-2.25a.75.75 0 1 1 1.06-1.06l1.72 1.72 4.72-4.72a.75.75 0 0 1 1.06 0M19.5 10A9.75 9.75 0 1 1 9.75.25 9.76 9.76 0 0 1 19.5 10M18 10a8.25 8.25 0 1 0-8.25 8.25A8.26 8.26 0 0 0 18 10"
687
+ })));
688
+ };
689
+
690
+ var _path$5;
691
+ function _extends$6() { return _extends$6 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$6.apply(null, arguments); }
692
+ var SvgArrowLeft = function SvgArrowLeft(props) {
693
+ return /*#__PURE__*/React.createElement("svg", _extends$6({
694
+ xmlns: "http://www.w3.org/2000/svg",
695
+ width: 24,
696
+ height: 24,
697
+ fill: "none"
698
+ }, props), _path$5 || (_path$5 = /*#__PURE__*/React.createElement("path", {
699
+ fill: "#fff",
700
+ fillRule: "evenodd",
701
+ d: "M15.6 4.186a.774.774 0 0 1 .085 1.092L9.923 12l5.762 6.722a.774.774 0 0 1-1.176 1.008l-6.194-7.226a.774.774 0 0 1 0-1.008L14.51 4.27a.774.774 0 0 1 1.092-.084",
702
+ clipRule: "evenodd"
703
+ })));
704
+ };
705
+
706
+ var _path$4;
707
+ function _extends$5() { return _extends$5 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$5.apply(null, arguments); }
708
+ var SvgBellSimple = function SvgBellSimple(props) {
709
+ return /*#__PURE__*/React.createElement("svg", _extends$5({
710
+ xmlns: "http://www.w3.org/2000/svg",
711
+ width: 29,
712
+ height: 29,
713
+ fill: "none"
714
+ }, props), _path$4 || (_path$4 = /*#__PURE__*/React.createElement("path", {
715
+ fill: "#fff",
716
+ d: "M18.805 25.375a.68.68 0 0 1-.68.68h-7.25a.68.68 0 1 1 0-1.36h7.25a.68.68 0 0 1 .68.68m6.13-3.738a1.57 1.57 0 0 1-1.371.793H5.437a1.587 1.587 0 0 1-1.366-2.386c.64-1.103 1.593-4.214 1.593-8.263a8.836 8.836 0 0 1 17.672 0c0 4.048.954 7.16 1.595 8.263a1.57 1.57 0 0 1 .003 1.593m-1.18-.907c-.857-1.472-1.778-4.907-1.778-8.949a7.477 7.477 0 0 0-14.954 0c0 4.043-.922 7.477-1.78 8.95a.23.23 0 0 0 0 .226.22.22 0 0 0 .193.113h18.127a.22.22 0 0 0 .192-.113.23.23 0 0 0 0-.227"
717
+ })));
718
+ };
719
+
720
+ var _g, _defs;
721
+ function _extends$4() { return _extends$4 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$4.apply(null, arguments); }
722
+ var SvgUploadFileIcon = function SvgUploadFileIcon(props) {
723
+ return /*#__PURE__*/React.createElement("svg", _extends$4({
724
+ xmlns: "http://www.w3.org/2000/svg",
725
+ width: 24,
726
+ height: 25,
727
+ fill: "none"
728
+ }, props), _g || (_g = /*#__PURE__*/React.createElement("g", {
729
+ stroke: "#000",
730
+ strokeLinecap: "round",
731
+ strokeLinejoin: "round",
732
+ clipPath: "url(#uploadFileIcon_svg__a)"
733
+ }, /*#__PURE__*/React.createElement("path", {
734
+ d: "M12 14V3.5M20.25 14v6H3.75v-6M8.25 7.25 12 3.5l3.75 3.75"
735
+ }))), _defs || (_defs = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
736
+ id: "uploadFileIcon_svg__a"
737
+ }, /*#__PURE__*/React.createElement("path", {
738
+ fill: "#fff",
739
+ d: "M0 .5h24v24H0z"
740
+ })))));
741
+ };
742
+
743
+ var _path$3;
744
+ function _extends$3() { return _extends$3 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$3.apply(null, arguments); }
745
+ var SvgCaretRight = function SvgCaretRight(props) {
746
+ return /*#__PURE__*/React.createElement("svg", _extends$3({
747
+ xmlns: "http://www.w3.org/2000/svg",
748
+ width: 18,
749
+ height: 18,
750
+ fill: "none"
751
+ }, props), _path$3 || (_path$3 = /*#__PURE__*/React.createElement("path", {
752
+ stroke: "#fff",
753
+ strokeLinecap: "round",
754
+ strokeLinejoin: "round",
755
+ d: "M6.75 3.375 12.375 9 6.75 14.625"
756
+ })));
757
+ };
758
+
759
+ var _path$2;
760
+ function _extends$2() { return _extends$2 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$2.apply(null, arguments); }
761
+ var SvgCheckWhite = function SvgCheckWhite(props) {
762
+ return /*#__PURE__*/React.createElement("svg", _extends$2({
763
+ xmlns: "http://www.w3.org/2000/svg",
764
+ width: 16,
765
+ height: 16,
766
+ fill: "none"
767
+ }, props), _path$2 || (_path$2 = /*#__PURE__*/React.createElement("path", {
768
+ stroke: "#fff",
769
+ strokeLinecap: "round",
770
+ strokeLinejoin: "round",
771
+ strokeWidth: 2,
772
+ d: "m13.5 4.5-7 7L3 8"
773
+ })));
774
+ };
775
+
776
+ var _path$1, _path2;
777
+ function _extends$1() { return _extends$1 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$1.apply(null, arguments); }
778
+ var SvgFileIcon = function SvgFileIcon(props) {
779
+ return /*#__PURE__*/React.createElement("svg", _extends$1({
780
+ xmlns: "http://www.w3.org/2000/svg",
781
+ width: 24,
782
+ height: 24,
783
+ fill: "none"
784
+ }, props), _path$1 || (_path$1 = /*#__PURE__*/React.createElement("path", {
785
+ stroke: "#000",
786
+ strokeLinecap: "round",
787
+ strokeLinejoin: "round",
788
+ d: "M4.5 12V3.75A.75.75 0 0 1 5.25 3h9l5.25 5.25V12"
789
+ })), _path2 || (_path2 = /*#__PURE__*/React.createElement("path", {
790
+ stroke: "#000",
791
+ strokeLinecap: "round",
792
+ strokeLinejoin: "round",
793
+ d: "M14.25 3v5.25h5.25M4.5 18.75H6a1.5 1.5 0 1 0 0-3H4.5v4.5M20.25 15.75h-2.625v4.5M19.875 18.375h-2.25M12 20.25a2.25 2.25 0 0 0 0-4.5h-1.312v4.5z"
794
+ })));
795
+ };
796
+
797
+ var _path;
798
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
799
+ var SvgTrash = function SvgTrash(props) {
800
+ return /*#__PURE__*/React.createElement("svg", _extends({
801
+ xmlns: "http://www.w3.org/2000/svg",
802
+ width: 24,
803
+ height: 24,
804
+ fill: "none"
805
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
806
+ stroke: "#EB0542",
807
+ strokeLinecap: "round",
808
+ strokeLinejoin: "round",
809
+ d: "M20.25 5.25H3.75M9.75 9.75v6M14.25 9.75v6M18.75 5.25V19.5a.75.75 0 0 1-.75.75H6a.75.75 0 0 1-.75-.75V5.25M15.75 5.25v-1.5a1.5 1.5 0 0 0-1.5-1.5h-4.5a1.5 1.5 0 0 0-1.5 1.5v1.5"
810
+ })));
811
+ };
812
+
813
+ const BottomDrawer = ({
814
+ isModalVisible,
815
+ toggleModal,
816
+ children,
817
+ title,
818
+ testID = "BOTTOM-DRAWER",
819
+ style,
820
+ modalContainerStyle,
821
+ blurAmount = 10,
822
+ blurViewStyle,
823
+ showBlurView = true,
824
+ showLeftIcon = false,
825
+ showRightIcon = true,
826
+ leftIcon = /* @__PURE__ */ React__default.createElement(SvgArrowLeft, null),
827
+ rightIcon = /* @__PURE__ */ React__default.createElement(SvgCrossIcon, null),
828
+ onLeftIconPress,
829
+ titleStyle,
830
+ titleVariant = "B2_REGULAR",
831
+ showHeader = true
832
+ }) => {
833
+ const onSwipDown = (event) => {
834
+ const { translationY } = event.nativeEvent;
835
+ if (translationY > 50) {
836
+ toggleModal();
837
+ }
838
+ };
839
+ return /* @__PURE__ */ React__default.createElement(
840
+ Modal,
841
+ {
842
+ animationType: "slide",
843
+ transparent: true,
844
+ visible: isModalVisible,
845
+ onRequestClose: toggleModal
846
+ },
847
+ /* @__PURE__ */ React__default.createElement(PanGestureHandler, { onGestureEvent: onSwipDown }, /* @__PURE__ */ React__default.createElement(
848
+ KeyboardAvoidingView,
849
+ {
850
+ behavior: Platform.OS === "ios" ? "padding" : "height",
851
+ style: { flex: 1 }
852
+ },
853
+ /* @__PURE__ */ React__default.createElement(View, { style: [styles$B.mainContainer, style], testID }, showBlurView ? /* @__PURE__ */ React__default.createElement(
854
+ BlurView,
855
+ {
856
+ style: [styles$B.blurView, blurViewStyle],
857
+ blurType: "light",
858
+ blurAmount
859
+ }
860
+ ) : null, /* @__PURE__ */ React__default.createElement(View, { style: [styles$B.modalContainer, modalContainerStyle] }, showHeader && /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(View, { style: styles$B.separator }), /* @__PURE__ */ React__default.createElement(View, { style: styles$B.headerContainer }, showLeftIcon && React__default.cloneElement(leftIcon, {
861
+ width: moderateScale(24),
862
+ height: moderateScale(24),
863
+ style: styles$B.leftIconStyle,
864
+ onPress: onLeftIconPress
865
+ }), /* @__PURE__ */ React__default.createElement(
866
+ CustomTypography,
867
+ {
868
+ variant: titleVariant,
869
+ text: title,
870
+ style: { ...styles$B.title, ...titleStyle }
871
+ }
872
+ ), showRightIcon && React__default.cloneElement(rightIcon, {
873
+ width: moderateScale(24),
874
+ height: moderateScale(24),
875
+ style: styles$B.rightIconStyle,
876
+ onPress: toggleModal
877
+ }))), children))
878
+ ))
879
+ );
880
+ };
881
+
882
+ const CustomButton = ({
883
+ title,
884
+ testID,
885
+ onPress,
886
+ containerStyle,
887
+ textStyle,
888
+ leftIcon,
889
+ rightIcon,
890
+ iconStyle,
891
+ titleColor,
892
+ titleVariant = "L2_REGULAR",
893
+ imagePosition = "right",
894
+ disabled = false,
895
+ disabledColor,
896
+ disableButtonTitleColor
897
+ }) => {
898
+ const { theme } = useTheme();
899
+ return /* @__PURE__ */ React__default.createElement(
900
+ Pressable,
901
+ {
902
+ testID,
903
+ style: [
904
+ styles$A.buttonContainer,
905
+ containerStyle,
906
+ disabled ? {
907
+ backgroundColor: disabledColor ? disabledColor : theme.SURFACE_DISABLE
908
+ } : {}
909
+ ],
910
+ onPress,
911
+ disabled
912
+ },
913
+ imagePosition === "left" && leftIcon && /* @__PURE__ */ React__default.createElement(View, { style: iconStyle }, React__default.cloneElement(leftIcon, { width: 20, height: 20 })),
914
+ /* @__PURE__ */ React__default.createElement(
915
+ CustomText$1,
916
+ {
917
+ text: title,
918
+ variant: titleVariant,
919
+ style: [
920
+ textStyle,
921
+ disabled ? {
922
+ color: disableButtonTitleColor ? disableButtonTitleColor : theme.CONTENT_DISABLE
923
+ } : {}
924
+ ],
925
+ textColor: titleColor
926
+ }
927
+ ),
928
+ imagePosition === "right" && rightIcon && /* @__PURE__ */ React__default.createElement(View, { style: iconStyle }, React__default.cloneElement(rightIcon, { width: 20, height: 20 }))
929
+ );
930
+ };
931
+ const styles$A = StyleSheet.create({
932
+ buttonContainer: {
933
+ flexDirection: "row",
934
+ alignItems: "center",
935
+ padding: 10,
936
+ backgroundColor: "#000000",
937
+ borderRadius: 8,
938
+ justifyContent: "center"
939
+ }
940
+ });
941
+ var CustomButton$1 = withThemeProvider(CustomButton);
942
+
943
+ const styles$z = StyleSheet.create({
944
+ container: {
945
+ padding: horizontalScale(20),
946
+ marginHorizontal: horizontalScale(16),
947
+ justifyContent: "space-between",
948
+ backgroundColor: DHRE_COLORS_TEXT.DH_WHITE
949
+ },
950
+ topLeft: {
951
+ alignSelf: "flex-start",
952
+ paddingVertical: verticalScale(4),
953
+ paddingHorizontal: horizontalScale(12),
954
+ backgroundColor: DHRE_COLORS_TEXT.DH_WHITE,
955
+ borderWidth: 1,
956
+ borderColor: DHRE_COLORS_TEXT.DH_LIGHTGREEN,
957
+ borderRadius: 50
958
+ },
959
+ title: {
960
+ color: DHRE_COLORS_TEXT.DH_LIGHTGREEN
961
+ },
962
+ subTitleBelow: {
963
+ marginTop: verticalScale(12),
964
+ color: DHRE_COLORS_TEXT.DH_TEXTDARK
965
+ },
966
+ subtitle: {
967
+ letterSpacing: 0.5,
968
+ marginTop: verticalScale(8),
969
+ color: DHRE_COLORS_TEXT.DH_TEXTLIGHT
970
+ },
971
+ leftBottomView: {
972
+ flexDirection: "row",
973
+ alignItems: "center",
974
+ marginTop: verticalScale(8)
975
+ },
976
+ subTitleLeftBelow: {
977
+ letterSpacing: 0.5,
978
+ marginTop: verticalScale(4),
979
+ marginBottom: verticalScale(4),
980
+ marginLeft: horizontalScale(4),
981
+ color: DHRE_COLORS_TEXT.DH_TEXTLIGHT
982
+ },
983
+ button: {
984
+ backgroundColor: DHRE_COLORS_TEXT.DH_BLACK,
985
+ paddingVertical: verticalScale(6),
986
+ paddingHorizontal: horizontalScale(34),
987
+ borderRadius: 50,
988
+ position: "absolute",
989
+ bottom: verticalScale(20),
990
+ right: horizontalScale(20)
991
+ },
992
+ buttonText: {
993
+ color: DHRE_COLORS_TEXT.DH_WHITE
994
+ }
995
+ });
996
+
997
+ const Cards = ({
998
+ topLeftTitle,
999
+ subtitle,
1000
+ title,
1001
+ iconSource,
1002
+ buttonText,
1003
+ iconTitle,
1004
+ buttonShown,
1005
+ testID,
1006
+ onButtonPress
1007
+ }) => {
1008
+ return /* @__PURE__ */ React__default.createElement(View, { testID, style: styles$z.container }, topLeftTitle ? /* @__PURE__ */ React__default.createElement(View, { style: styles$z.topLeft }, /* @__PURE__ */ React__default.createElement(
1009
+ CustomTypography,
1010
+ {
1011
+ variant: "P2regular",
1012
+ style: styles$z.title,
1013
+ text: topLeftTitle
1014
+ }
1015
+ )) : null, title ? /* @__PURE__ */ React__default.createElement(
1016
+ CustomTypography,
1017
+ {
1018
+ variant: "H6bold",
1019
+ style: styles$z.subTitleBelow,
1020
+ text: title
1021
+ }
1022
+ ) : null, subtitle ? /* @__PURE__ */ React__default.createElement(
1023
+ CustomTypography,
1024
+ {
1025
+ variant: "P3regular",
1026
+ style: styles$z.subtitle,
1027
+ text: subtitle
1028
+ }
1029
+ ) : null, /* @__PURE__ */ React__default.createElement(View, { style: styles$z.leftBottomView }, iconSource ? iconSource : null, iconTitle ? /* @__PURE__ */ React__default.createElement(
1030
+ CustomTypography,
1031
+ {
1032
+ variant: "P3regular",
1033
+ style: styles$z.subTitleLeftBelow,
1034
+ text: iconTitle
1035
+ }
1036
+ ) : null), buttonShown ? /* @__PURE__ */ React__default.createElement(
1037
+ Pressable,
1038
+ {
1039
+ testID: "Button-Press",
1040
+ style: styles$z.button,
1041
+ onPress: onButtonPress
1042
+ },
1043
+ /* @__PURE__ */ React__default.createElement(
1044
+ CustomTypography,
1045
+ {
1046
+ variant: "B2semiBold",
1047
+ style: styles$z.buttonText,
1048
+ text: buttonText
1049
+ }
1050
+ )
1051
+ ) : null);
1052
+ };
1053
+
1054
+ const styles$y = StyleSheet.create({
1055
+ checkboxContainer: {
1056
+ alignItems: "center",
1057
+ justifyContent: "center"
1058
+ },
1059
+ checkboxImage: {
1060
+ width: horizontalScale(18),
1061
+ height: verticalScale(18),
1062
+ backgroundColor: DHRE_COLORS_TEXT.DH_BLACK,
1063
+ resizeMode: "contain"
1064
+ },
1065
+ uncheckedCheckbox: {
1066
+ width: horizontalScale(18),
1067
+ height: verticalScale(18),
1068
+ overflow: "hidden",
1069
+ borderRadius: 1,
1070
+ borderWidth: 1,
1071
+ borderColor: DHRE_COLORS_TEXT.DH_BLACK
1072
+ },
1073
+ directionStyle: {
1074
+ flexDirection: "row",
1075
+ justifyContent: "center",
1076
+ alignItems: "center",
1077
+ gap: horizontalScale(8)
1078
+ },
1079
+ labelStyle: {
1080
+ color: DHRE_COLORS_TEXT.DH_TEXTDARK
1081
+ }
1082
+ });
1083
+
1084
+ const Checkbox = ({
1085
+ isChecked,
1086
+ onCheck,
1087
+ labelName,
1088
+ disable,
1089
+ testID,
1090
+ checkedIcon,
1091
+ uncheckedIcon,
1092
+ titleVariant = "L1_REGULAR",
1093
+ titleStyle,
1094
+ containerStyle
1095
+ }) => {
1096
+ const [checked, setChecked] = useState(isChecked || false);
1097
+ useEffect(() => {
1098
+ setChecked(isChecked);
1099
+ }, [isChecked]);
1100
+ const handlePress = () => {
1101
+ setChecked(!checked);
1102
+ onCheck && onCheck(!checked);
1103
+ };
1104
+ return /* @__PURE__ */ React__default.createElement(View, { testID, style: containerStyle }, /* @__PURE__ */ React__default.createElement(
1105
+ Pressable,
1106
+ {
1107
+ testID: "Checkbox-Press",
1108
+ onPress: handlePress,
1109
+ disabled: disable,
1110
+ style: styles$y.directionStyle
1111
+ },
1112
+ /* @__PURE__ */ React__default.createElement(View, { style: styles$y.checkboxContainer }, React__default.cloneElement(checked ? checkedIcon : uncheckedIcon)),
1113
+ /* @__PURE__ */ React__default.createElement(
1114
+ CustomTypography,
1115
+ {
1116
+ variant: titleVariant,
1117
+ text: labelName,
1118
+ style: titleStyle
1119
+ }
1120
+ )
1121
+ ));
1122
+ };
1123
+
1124
+ const styles$x = StyleSheet.create({
1125
+ labelStyle: {
1126
+ color: DHRE_COLORS_TEXT.DH_TEXTLIGHT
1127
+ },
1128
+ dropDownStyle: {
1129
+ flexDirection: "row",
1130
+ justifyContent: "space-between",
1131
+ alignItems: "center",
1132
+ height: verticalScale(48),
1133
+ marginTop: verticalScale(8),
1134
+ paddingHorizontal: horizontalScale(20),
1135
+ paddingVertical: verticalScale(12),
1136
+ backgroundColor: DHRE_COLORS_TEXT.DH_WHITE,
1137
+ borderWidth: 1,
1138
+ borderColor: DHRE_COLORS_BG.DH_LINE_GREY_700,
1139
+ borderRadius: moderateScale(24)
1140
+ },
1141
+ selectedValueStyle: {
1142
+ color: DHRE_COLORS_TEXT.DH_TEXTDARK
1143
+ },
1144
+ optionContainer: {
1145
+ marginTop: verticalScale(4),
1146
+ borderRadius: moderateScale(24),
1147
+ borderWidth: 1,
1148
+ borderColor: DHRE_COLORS_BG.DH_GREY1
1149
+ },
1150
+ item: {
1151
+ flexDirection: "row",
1152
+ alignItems: "center",
1153
+ paddingVertical: verticalScale(12),
1154
+ paddingHorizontal: horizontalScale(20)
1155
+ },
1156
+ iconStyle: {
1157
+ marginRight: horizontalScale(12)
1158
+ }
1159
+ });
1160
+
1161
+ const CustomDropdown$1 = ({
1162
+ label,
1163
+ placeholder = "Choose Option",
1164
+ options,
1165
+ selectedValue,
1166
+ oneSelect,
1167
+ testId = "CUSTOM-DROPDOWN",
1168
+ iconName,
1169
+ iconStyle,
1170
+ upArrowIcon,
1171
+ downArrowIcon
1172
+ }) => {
1173
+ const [showOptions, setShowOptions] = useState(false);
1174
+ return /* @__PURE__ */ React__default.createElement(View, { testID: testId }, /* @__PURE__ */ React__default.createElement(
1175
+ CustomTypography,
1176
+ {
1177
+ variant: "P3regular",
1178
+ style: styles$x.labelStyle,
1179
+ text: label
1180
+ }
1181
+ ), /* @__PURE__ */ React__default.createElement(
1182
+ Pressable,
1183
+ {
1184
+ testID: `${testId}-BTN`,
1185
+ style: styles$x.dropDownStyle,
1186
+ onPress: () => setShowOptions(!showOptions)
1187
+ },
1188
+ iconName && /* @__PURE__ */ React__default.createElement(View, { style: iconStyle }, React__default.cloneElement(iconName, {
1189
+ width: moderateScale(24),
1190
+ height: moderateScale(24),
1191
+ style: styles$x.iconStyle
1192
+ })),
1193
+ /* @__PURE__ */ React__default.createElement(
1194
+ CustomTypography,
1195
+ {
1196
+ variant: "P3regular",
1197
+ style: styles$x.selectedValueStyle,
1198
+ text: selectedValue ? selectedValue.label : placeholder
1199
+ }
1200
+ ),
1201
+ /* @__PURE__ */ React__default.createElement(View, null, showOptions ? React__default.cloneElement(upArrowIcon, {
1202
+ width: moderateScale(24),
1203
+ height: moderateScale(24)
1204
+ }) : React__default.cloneElement(downArrowIcon, {
1205
+ width: moderateScale(24),
1206
+ height: moderateScale(24)
1207
+ }))
1208
+ ), showOptions && /* @__PURE__ */ React__default.createElement(View, { style: styles$x.optionContainer }, options?.map(({ id, value, label: label2 }) => /* @__PURE__ */ React__default.createElement(
1209
+ Pressable,
1210
+ {
1211
+ key: id,
1212
+ testID: `${testId}-${label2}-BTN`,
1213
+ onPress: () => {
1214
+ setShowOptions(!showOptions);
1215
+ oneSelect({ id, value, label: label2 });
1216
+ },
1217
+ style: [
1218
+ styles$x.item,
1219
+ {
1220
+ backgroundColor: id === selectedValue?.id ? DHRE_COLORS_BG.DH_GREY1 : DHRE_COLORS_TEXT.DH_WHITE
1221
+ }
1222
+ ]
1223
+ },
1224
+ iconName && /* @__PURE__ */ React__default.createElement(View, { style: iconStyle }, React__default.cloneElement(iconName, {
1225
+ width: moderateScale(24),
1226
+ height: moderateScale(24),
1227
+ style: styles$x.iconStyle
1228
+ })),
1229
+ /* @__PURE__ */ React__default.createElement(
1230
+ CustomTypography,
1231
+ {
1232
+ variant: "P3regular",
1233
+ style: {
1234
+ color: id === selectedValue?.id ? DHRE_COLORS_TEXT.DH_BLACK : DHRE_COLORS_TEXT.DH_TEXTDARK
1235
+ },
1236
+ text: label2
1237
+ }
1238
+ )
1239
+ ))));
1240
+ };
1241
+
1242
+ const styles$w = StyleSheet.create({
1243
+ labelStyle: {
1244
+ color: DHRE_COLORS_TEXT.DH_TEXTDARK
1245
+ },
1246
+ inputContainer: {
1247
+ flexDirection: "row",
1248
+ justifyContent: "space-between",
1249
+ marginVertical: verticalScale(8),
1250
+ paddingHorizontal: horizontalScale(20),
1251
+ paddingVertical: verticalScale(12),
1252
+ backgroundColor: DHRE_COLORS_TEXT.DH_WHITE,
1253
+ borderWidth: 1,
1254
+ borderColor: DHRE_COLORS_BG.DH_LINE_GREY_700,
1255
+ borderRadius: moderateScale(24)
1256
+ },
1257
+ input: {
1258
+ flex: 1,
1259
+ ...FONT_STYLES.P2medium,
1260
+ color: DHRE_COLORS_TEXT.DH_BLACK
1261
+ },
1262
+ inputFocused: {
1263
+ borderColor: DHRE_COLORS_TEXT.DH_BLACK
1264
+ },
1265
+ inputError: {
1266
+ borderColor: DHRE_COLORS_ALERT.DH_ALERT_ORANGE
1267
+ },
1268
+ inputSucess: {
1269
+ borderColor: DHRE_COLORS_ALERT.DH_SUCCESS_GREEN
1270
+ },
1271
+ disableInputStyle: {
1272
+ borderColor: DHRE_COLORS_BG.DH_GREY1,
1273
+ backgroundColor: DHRE_COLORS_BG.DH_GREY1
1274
+ //need to check background and border color
1275
+ },
1276
+ disableTextStyle: {
1277
+ color: DHRE_COLORS_TEXT.DH_TEXTLIGHTEST
1278
+ },
1279
+ crossIconStyle: { marginLeft: horizontalScale(12) },
1280
+ eyeIconStyle: { marginLeft: horizontalScale(16) },
1281
+ searchIconStyle: { marginRight: horizontalScale(12) }
1282
+ });
1283
+
1284
+ const CustomTextInput = ({
1285
+ label,
1286
+ placeholder,
1287
+ disabled = false,
1288
+ errorMessage,
1289
+ successMessage,
1290
+ testID = "CUSTOM-TEST-INPUT",
1291
+ handleFocus,
1292
+ handleBlur,
1293
+ handleOnChangeText,
1294
+ secureTextEntry = false,
1295
+ isSearchBar = false,
1296
+ multiline,
1297
+ rightIcon1,
1298
+ rightIcon2,
1299
+ searchIcon,
1300
+ ...props
1301
+ }) => {
1302
+ const [value, setValue] = useState("");
1303
+ const [isFocused, setIsFocused] = useState(false);
1304
+ const [error, setError] = useState(!!errorMessage);
1305
+ const [isSecureTextEntry, setIsSecureTextEntry] = useState(secureTextEntry);
1306
+ const onFocus = () => {
1307
+ handleFocus?.();
1308
+ setIsFocused(true);
1309
+ setError(false);
1310
+ };
1311
+ const onBlur = () => {
1312
+ handleBlur?.();
1313
+ if (!value) {
1314
+ setError(true);
1315
+ }
1316
+ setIsFocused(false);
1317
+ };
1318
+ const handleIconPress1 = () => setValue("");
1319
+ const handleIconPress2 = () => setIsSecureTextEntry(!isSecureTextEntry);
1320
+ return /* @__PURE__ */ React__default.createElement(View, { testID }, /* @__PURE__ */ React__default.createElement(
1321
+ CustomTypography,
1322
+ {
1323
+ variant: "P3medium",
1324
+ style: [styles$w.labelStyle, disabled && styles$w.disableTextStyle],
1325
+ text: label
1326
+ }
1327
+ ), /* @__PURE__ */ React__default.createElement(
1328
+ View,
1329
+ {
1330
+ style: [
1331
+ styles$w.inputContainer,
1332
+ isFocused && styles$w.inputFocused,
1333
+ error && styles$w.inputError,
1334
+ disabled && styles$w.disableInputStyle,
1335
+ successMessage ? styles$w.inputSucess : {},
1336
+ {
1337
+ height: multiline ? 120 : 48,
1338
+ alignItems: multiline ? "flex-start" : "center"
1339
+ }
1340
+ ]
1341
+ },
1342
+ isSearchBar && searchIcon && React__default.cloneElement(searchIcon, {
1343
+ width: moderateScale(24),
1344
+ height: moderateScale(24),
1345
+ style: styles$w.searchIconStyle
1346
+ }),
1347
+ /* @__PURE__ */ React__default.createElement(
1348
+ TextInput,
1349
+ {
1350
+ ...props,
1351
+ onFocus,
1352
+ onBlur,
1353
+ style: styles$w.input,
1354
+ placeholderTextColor: DHRE_COLORS_TEXT.DH_TEXTLIGHTEST,
1355
+ editable: !disabled,
1356
+ value,
1357
+ onChangeText: (val) => {
1358
+ setValue(val);
1359
+ handleOnChangeText?.(val);
1360
+ },
1361
+ secureTextEntry: isSecureTextEntry
1362
+ }
1363
+ ),
1364
+ value && !multiline && rightIcon1 && React__default.cloneElement(rightIcon1, {
1365
+ onPress: handleIconPress1,
1366
+ testID: "icon1"
1367
+ }),
1368
+ secureTextEntry && rightIcon2 && React__default.cloneElement(rightIcon2, {
1369
+ onPress: handleIconPress2,
1370
+ testID: "icon2"
1371
+ })
1372
+ ), (error || successMessage) && /* @__PURE__ */ React__default.createElement(
1373
+ CustomTypography,
1374
+ {
1375
+ numberOfLines: 2,
1376
+ variant: "P4regular",
1377
+ style: {
1378
+ color: successMessage ? DHRE_COLORS_ALERT.DH_SUCCESS_GREEN : DHRE_COLORS_ALERT.DH_ALERT_ORANGE
1379
+ },
1380
+ testID: `${testID}-message`,
1381
+ text: successMessage || errorMessage || `Please Enter ${placeholder}`
1382
+ }
1383
+ ));
1384
+ };
1385
+
1386
+ const styles$v = StyleSheet.create({
1387
+ tooltipContainerStyle: {
1388
+ flex: 1,
1389
+ borderRadius: moderateScale(16),
1390
+ padding: moderateScale(8)
1391
+ },
1392
+ mesageContainer: {
1393
+ flex: 1,
1394
+ flexDirection: "row",
1395
+ justifyContent: "space-between",
1396
+ alignItems: "center"
1397
+ },
1398
+ messageStyle: {
1399
+ flex: 1,
1400
+ color: DHRE_COLORS_TEXT.DH_TEXTDARK
1401
+ }
1402
+ });
1403
+
1404
+ const CustomTooltip = ({
1405
+ message,
1406
+ children,
1407
+ actionType = "press",
1408
+ testId = "CUSTOM-TOOLTIP",
1409
+ backgroundColor = DHRE_COLORS_TEXT.DH_WHITE,
1410
+ popoverContent,
1411
+ icon,
1412
+ iconStyle,
1413
+ iconColor = DHRE_COLORS_TEXT.DH_BLACK
1414
+ }) => {
1415
+ const defaultPopoverContent = /* @__PURE__ */ React__default.createElement(View, { style: styles$v.mesageContainer, testID: testId }, /* @__PURE__ */ React__default.createElement(
1416
+ CustomTypography,
1417
+ {
1418
+ variant: "P4regular",
1419
+ style: styles$v.messageStyle,
1420
+ text: message
1421
+ }
1422
+ ), icon && /* @__PURE__ */ React__default.createElement(View, { style: iconStyle }, React__default.cloneElement(icon, { fill: iconColor })));
1423
+ return /* @__PURE__ */ React__default.createElement(
1424
+ Tooltip,
1425
+ {
1426
+ containerStyle: styles$v.tooltipContainerStyle,
1427
+ backgroundColor,
1428
+ popover: popoverContent || defaultPopoverContent,
1429
+ actionType
1430
+ },
1431
+ children
1432
+ );
1433
+ };
1434
+
1435
+ const styles$u = StyleSheet.create({
1436
+ container: {
1437
+ backgroundColor: DHRE_COLORS_TEXT.DH_BLACK,
1438
+ paddingHorizontal: horizontalScale(16),
1439
+ paddingVertical: verticalScale(24),
1440
+ width: verticalScale(327),
1441
+ alignItems: "center",
1442
+ justifyContent: "center"
1443
+ },
1444
+ content: {
1445
+ alignItems: "center"
1446
+ },
1447
+ title: {
1448
+ color: DHRE_COLORS_TEXT.DH_TEXTDARK,
1449
+ marginTop: verticalScale(16)
1450
+ },
1451
+ description: {
1452
+ color: DHRE_COLORS_TEXT.DH_TEXTLIGHT,
1453
+ textAlign: "center",
1454
+ marginTop: verticalScale(16)
1455
+ },
1456
+ browse: {
1457
+ color: DHRE_COLORS_PRIMARY.DH_RED_100,
1458
+ textDecorationLine: "underline"
1459
+ },
1460
+ button: {
1461
+ backgroundColor: DHRE_COLORS_TEXT.DH_BLACK,
1462
+ padding: verticalScale(12),
1463
+ borderRadius: 20,
1464
+ width: "40%",
1465
+ marginTop: verticalScale(16)
1466
+ },
1467
+ buttonText: {
1468
+ color: DHRE_COLORS_TEXT.DH_WHITE,
1469
+ textAlign: "center"
1470
+ }
1471
+ });
1472
+
1473
+ const FileUpload = ({
1474
+ onUpload,
1475
+ title,
1476
+ containerStyle,
1477
+ btnText,
1478
+ uploadImageStyling,
1479
+ icon,
1480
+ iconStyle
1481
+ }) => {
1482
+ return /* @__PURE__ */ React__default.createElement(
1483
+ View,
1484
+ {
1485
+ style: [styles$u.container, containerStyle],
1486
+ testID: "file-upload-container"
1487
+ },
1488
+ /* @__PURE__ */ React__default.createElement(View, { style: styles$u.content }, /* @__PURE__ */ React__default.createElement(View, { style: [uploadImageStyling], testID: "file-upload-image" }, icon && React__default.cloneElement(icon, { style: [iconStyle] })), /* @__PURE__ */ React__default.createElement(CustomTypography, { variant: "H8bold", style: styles$u.title, text: title }), /* @__PURE__ */ React__default.createElement(
1489
+ CustomTypography,
1490
+ {
1491
+ variant: "P4regular",
1492
+ style: styles$u.description,
1493
+ text: `Drop files directly here or `
1494
+ }
1495
+ ), /* @__PURE__ */ React__default.createElement(
1496
+ CustomTypography,
1497
+ {
1498
+ variant: "P4regular",
1499
+ style: styles$u.browse,
1500
+ text: btnText
1501
+ }
1502
+ ), /* @__PURE__ */ React__default.createElement(
1503
+ CustomTypography,
1504
+ {
1505
+ testID: "file-upload-description",
1506
+ variant: "P4regular",
1507
+ style: styles$u.description,
1508
+ text: ` from your device`
1509
+ }
1510
+ )),
1511
+ /* @__PURE__ */ React__default.createElement(
1512
+ Pressable,
1513
+ {
1514
+ style: styles$u.button,
1515
+ onPress: onUpload,
1516
+ testID: "file-upload-button"
1517
+ },
1518
+ /* @__PURE__ */ React__default.createElement(
1519
+ CustomTypography,
1520
+ {
1521
+ variant: "B2semiBold",
1522
+ style: styles$u.buttonText,
1523
+ text: btnText
1524
+ }
1525
+ )
1526
+ )
1527
+ );
1528
+ };
1529
+
1530
+ const PdfView = (props) => {
1531
+ return /* @__PURE__ */ React__default.createElement(Pdf, { ...props });
1532
+ };
1533
+
1534
+ const styles$t = StyleSheet.create({
1535
+ container: {
1536
+ padding: horizontalScale(20),
1537
+ marginHorizontal: horizontalScale(16),
1538
+ justifyContent: "space-between",
1539
+ backgroundColor: DHRE_COLORS_TEXT.DH_WHITE
1540
+ },
1541
+ subTitleBelow: {
1542
+ color: DHRE_COLORS_TEXT.DH_TEXTDARK
1543
+ },
1544
+ subtitle: {
1545
+ letterSpacing: 0.5,
1546
+ marginTop: verticalScale(8),
1547
+ color: DHRE_COLORS_TEXT.DH_TEXTLIGHT,
1548
+ marginBottom: verticalScale(24)
1549
+ },
1550
+ button: {
1551
+ backgroundColor: DHRE_COLORS_TEXT.DH_BLACK,
1552
+ paddingVertical: verticalScale(14),
1553
+ paddingHorizontal: horizontalScale(34),
1554
+ borderRadius: 50,
1555
+ flex: 1
1556
+ },
1557
+ buttonText: {
1558
+ color: DHRE_COLORS_TEXT.DH_WHITE,
1559
+ textAlign: "center"
1560
+ },
1561
+ buttonLeft: {
1562
+ backgroundColor: DHRE_COLORS_TEXT.DH_WHITE,
1563
+ paddingVertical: verticalScale(14),
1564
+ paddingHorizontal: horizontalScale(34),
1565
+ borderRadius: 50,
1566
+ borderWidth: 1,
1567
+ flex: 1,
1568
+ borderColor: DHRE_COLORS_BG.DH_GREY1
1569
+ },
1570
+ buttonLeftText: {
1571
+ color: DHRE_COLORS_TEXT.DH_BLACK,
1572
+ textAlign: "center"
1573
+ },
1574
+ buttonContainer: {
1575
+ flexDirection: "row",
1576
+ gap: horizontalScale(16),
1577
+ justifyContent: "space-between"
1578
+ }
1579
+ });
1580
+
1581
+ const PopUp = ({
1582
+ subtitle,
1583
+ title,
1584
+ buttonText,
1585
+ onButtonPress,
1586
+ testID,
1587
+ leftButtonShown = false,
1588
+ rightButtonShown = false
1589
+ }) => {
1590
+ return /* @__PURE__ */ React__default.createElement(View, { testID, style: styles$t.container }, title ? /* @__PURE__ */ React__default.createElement(
1591
+ CustomTypography,
1592
+ {
1593
+ style: styles$t.subTitleBelow,
1594
+ variant: "H6semiBold",
1595
+ text: title
1596
+ }
1597
+ ) : null, subtitle ? /* @__PURE__ */ React__default.createElement(
1598
+ CustomTypography,
1599
+ {
1600
+ style: styles$t.subtitle,
1601
+ variant: "P3regular",
1602
+ text: subtitle
1603
+ }
1604
+ ) : null, /* @__PURE__ */ React__default.createElement(View, { style: styles$t.buttonContainer }, leftButtonShown ? /* @__PURE__ */ React__default.createElement(
1605
+ Pressable,
1606
+ {
1607
+ testID: "Left-Button-Press",
1608
+ style: styles$t.buttonLeft,
1609
+ onPress: onButtonPress
1610
+ },
1611
+ /* @__PURE__ */ React__default.createElement(
1612
+ CustomTypography,
1613
+ {
1614
+ style: styles$t.buttonLeftText,
1615
+ variant: "B2semiBold",
1616
+ text: buttonText
1617
+ }
1618
+ )
1619
+ ) : null, rightButtonShown ? /* @__PURE__ */ React__default.createElement(Pressable, { style: styles$t.button, onPress: onButtonPress }, /* @__PURE__ */ React__default.createElement(
1620
+ CustomTypography,
1621
+ {
1622
+ style: styles$t.buttonText,
1623
+ variant: "B2semiBold",
1624
+ text: buttonText
1625
+ }
1626
+ )) : null));
1627
+ };
1628
+
1629
+ const CustomProgressBar = ({
1630
+ value,
1631
+ type,
1632
+ width,
1633
+ height,
1634
+ fillColor,
1635
+ unfilledColor,
1636
+ borderWidth,
1637
+ borderRadius,
1638
+ circleSize,
1639
+ thickness,
1640
+ progress,
1641
+ setProgress,
1642
+ increment = 1,
1643
+ // Default increment to 1
1644
+ interval = 100,
1645
+ // Default interval to 100ms
1646
+ percentageText,
1647
+ valueTextStyle
1648
+ }) => {
1649
+ useEffect(() => {
1650
+ const progressInterval = setInterval(() => {
1651
+ if (progress < value) {
1652
+ setProgress((prevProgress) => prevProgress + increment);
1653
+ } else {
1654
+ clearInterval(progressInterval);
1655
+ }
1656
+ }, interval);
1657
+ return () => clearInterval(progressInterval);
1658
+ }, [progress, value, increment, interval]);
1659
+ const showPercentage = () => {
1660
+ return /* @__PURE__ */ React__default.createElement(View, { style: styles$s.flexDirection }, /* @__PURE__ */ React__default.createElement(
1661
+ CustomText$1,
1662
+ {
1663
+ text: `${value}%`,
1664
+ variant: "B1_REGULAR",
1665
+ textColor: "CONTENT_PRIMARY",
1666
+ style: valueTextStyle
1667
+ }
1668
+ ), percentageText ? /* @__PURE__ */ React__default.createElement(
1669
+ CustomText$1,
1670
+ {
1671
+ text: percentageText,
1672
+ variant: "L3_REGULAR",
1673
+ textColor: "CONTENT_PRIMARY"
1674
+ }
1675
+ ) : null);
1676
+ };
1677
+ const renderProgressBar = () => {
1678
+ switch (type) {
1679
+ case ShapeType.LINE:
1680
+ return /* @__PURE__ */ React__default.createElement(
1681
+ Progress.Bar,
1682
+ {
1683
+ progress: progress / 100,
1684
+ width,
1685
+ height,
1686
+ color: fillColor,
1687
+ unfilledColor,
1688
+ borderWidth,
1689
+ borderRadius,
1690
+ testID: "custom-progress-bar-line"
1691
+ }
1692
+ );
1693
+ case ShapeType.CIRCLE:
1694
+ return /* @__PURE__ */ React__default.createElement(
1695
+ Progress.Circle,
1696
+ {
1697
+ progress: progress / 100,
1698
+ size: circleSize,
1699
+ thickness,
1700
+ color: fillColor,
1701
+ unfilledColor,
1702
+ borderWidth,
1703
+ showsText: true,
1704
+ formatText: showPercentage,
1705
+ testID: "custom-progress-bar-circle"
1706
+ }
1707
+ );
1708
+ default:
1709
+ return null;
1710
+ }
1711
+ };
1712
+ return /* @__PURE__ */ React__default.createElement(View, { testID: "custom-progress-bar" }, renderProgressBar());
1713
+ };
1714
+ const styles$s = StyleSheet.create({
1715
+ flexDirection: {
1716
+ flexDirection: "column",
1717
+ justifyContent: "center",
1718
+ alignItems: "center"
1719
+ }
1720
+ });
1721
+
1722
+ const styles$r = StyleSheet.create({
1723
+ container: {
1724
+ flexDirection: "row",
1725
+ alignItems: "center"
1726
+ },
1727
+ star: {
1728
+ marginHorizontal: horizontalScale(2)
1729
+ }
1730
+ });
1731
+
1732
+ const splitRating = (rating) => {
1733
+ const isDecimal = rating !== Math.floor(rating);
1734
+ if (isDecimal) {
1735
+ const integerPart = Math.floor(rating);
1736
+ const decimalPart = rating - integerPart;
1737
+ return [integerPart, decimalPart];
1738
+ } else {
1739
+ return [rating, 0];
1740
+ }
1741
+ };
1742
+ const drawStar = (starIndex, ratingArray, size, fullStarIcon, halfStarIcon, fullStarColor, emptyStarColor) => {
1743
+ const [fullStars, decimalPart] = ratingArray;
1744
+ if (starIndex <= fullStars) {
1745
+ return React__default.cloneElement(fullStarIcon, {
1746
+ style: { height: size, width: size },
1747
+ fill: fullStarColor,
1748
+ testID: `star-${starIndex}`
1749
+ });
1750
+ } else if (starIndex === fullStars + 1 && decimalPart >= 0.5) {
1751
+ return React__default.cloneElement(halfStarIcon, {
1752
+ style: { height: size, width: size },
1753
+ fill: fullStarColor,
1754
+ testID: `star-${starIndex}`
1755
+ });
1756
+ } else {
1757
+ return React__default.cloneElement(fullStarIcon, {
1758
+ style: { height: size, width: size },
1759
+ fill: emptyStarColor,
1760
+ testID: `star-${starIndex}`
1761
+ });
1762
+ }
1763
+ };
1764
+ const Star = ({
1765
+ rating,
1766
+ count,
1767
+ size,
1768
+ fullStarIcon,
1769
+ halfStarIcon,
1770
+ fullStarColor = "gold",
1771
+ emptyStarColor = "gray",
1772
+ starStyle
1773
+ }) => {
1774
+ const stars = [];
1775
+ for (let i = 0; i < count; i++) {
1776
+ const starIndex = i + 1;
1777
+ const ratingArray = splitRating(rating);
1778
+ const starType = drawStar(
1779
+ starIndex,
1780
+ ratingArray,
1781
+ size,
1782
+ fullStarIcon,
1783
+ halfStarIcon,
1784
+ fullStarColor,
1785
+ emptyStarColor
1786
+ );
1787
+ stars.push(
1788
+ /* @__PURE__ */ React__default.createElement(View, { key: i, style: [styles$r.star, starStyle] }, starType)
1789
+ );
1790
+ }
1791
+ return /* @__PURE__ */ React__default.createElement(View, { style: styles$r.container, testID: "star" }, stars);
1792
+ };
1793
+
1794
+ var styles$q = StyleSheet.create({
1795
+ container: {
1796
+ flexDirection: "row",
1797
+ gap: horizontalScale(5),
1798
+ flexWrap: "wrap"
1799
+ },
1800
+ button: {
1801
+ minWidth: horizontalScale(94),
1802
+ minHeight: verticalScale(32),
1803
+ paddingVertical: verticalScale(8),
1804
+ paddingHorizontal: horizontalScale(12),
1805
+ borderRadius: moderateScale(32),
1806
+ alignItems: "center",
1807
+ justifyContent: "center",
1808
+ borderWidth: 1
1809
+ }
1810
+ });
1811
+
1812
+ const Tabs = ({
1813
+ options,
1814
+ initialSelected = [],
1815
+ onSelectionChange,
1816
+ style
1817
+ }) => {
1818
+ const { theme } = useTheme();
1819
+ const [data, setData] = useState(
1820
+ options.map((option) => ({
1821
+ title: option,
1822
+ id: option,
1823
+ isSelected: initialSelected?.includes(option)
1824
+ }))
1825
+ );
1826
+ const handlePress = (id) => {
1827
+ const updatedData = data?.map(
1828
+ (item) => item?.id === id ? { ...item, isSelected: !item?.isSelected } : item
1829
+ );
1830
+ setData(updatedData);
1831
+ const selectedTabs = updatedData.filter((item) => item?.isSelected).map((item) => item?.id);
1832
+ if (onSelectionChange) {
1833
+ onSelectionChange(selectedTabs);
1834
+ }
1835
+ };
1836
+ return /* @__PURE__ */ React__default.createElement(View, { style: [styles$q.container, style] }, data?.map(({ id, title, isSelected }) => /* @__PURE__ */ React__default.createElement(
1837
+ Pressable,
1838
+ {
1839
+ key: id,
1840
+ style: {
1841
+ ...styles$q.button,
1842
+ backgroundColor: isSelected ? theme.CONTENT_PRIMARY : theme.CONTENT_INVERTED,
1843
+ borderColor: isSelected ? theme.CONTENT_INVERTED : theme.CONTENT_SECONDRY
1844
+ },
1845
+ onPress: () => handlePress(id)
1846
+ },
1847
+ /* @__PURE__ */ React__default.createElement(
1848
+ CustomText$1,
1849
+ {
1850
+ variant: FontStyle.L2_REGULAR,
1851
+ style: {
1852
+ color: isSelected ? theme.CONTENT_INVERTED : theme.CONTENT_SECONDRY
1853
+ },
1854
+ text: title
1855
+ }
1856
+ )
1857
+ )));
1858
+ };
1859
+ var Tabs$1 = withThemeProvider(Tabs);
1860
+
1861
+ const styles$p = StyleSheet.create({
1862
+ container: {
1863
+ width: "100%"
1864
+ },
1865
+ contentContainer: {
1866
+ flexWrap: "wrap",
1867
+ flexDirection: "row"
1868
+ },
1869
+ tag: {
1870
+ paddingVertical: verticalScale(8),
1871
+ paddingHorizontal: horizontalScale(12),
1872
+ borderRadius: 20,
1873
+ margin: horizontalScale(8),
1874
+ flexDirection: "row",
1875
+ alignItems: "center"
1876
+ },
1877
+ selectedTag: {
1878
+ backgroundColor: DHRE_COLORS_TEXT.DH_BLACK
1879
+ },
1880
+ tagText: {
1881
+ color: DHRE_COLORS_TEXT.DH_WHITE,
1882
+ marginRight: horizontalScale(8)
1883
+ },
1884
+ tagUnSelected: {
1885
+ backgroundColor: DHRE_COLORS_BG.DH_GREY1
1886
+ },
1887
+ tagUnselectedText: {
1888
+ color: DHRE_COLORS_TEXT.DH_TEXTLIGHT
1889
+ }
1890
+ });
1891
+
1892
+ const Tags = ({
1893
+ tags,
1894
+ tagStyles,
1895
+ handleSetSelectedTagsOptions,
1896
+ handleTagsChange,
1897
+ testID,
1898
+ icon,
1899
+ iconStyle
1900
+ }) => {
1901
+ const [selectedTags, setSelectedTags] = useState([]);
1902
+ const toggleTag = (tag) => {
1903
+ setSelectedTags((prevSelectedTags) => {
1904
+ const selectedTagsSet = new Set(prevSelectedTags);
1905
+ selectedTagsSet.has(tag) ? selectedTagsSet.delete(tag) : selectedTagsSet.add(tag);
1906
+ handleSetSelectedTagsOptions([...selectedTagsSet]);
1907
+ return [...selectedTagsSet];
1908
+ });
1909
+ };
1910
+ const removeTag = (tag) => {
1911
+ setSelectedTags(
1912
+ (prevSelectedTags) => prevSelectedTags.filter((t) => t !== tag)
1913
+ );
1914
+ handleTagsChange(tag);
1915
+ };
1916
+ return /* @__PURE__ */ React__default.createElement(
1917
+ ScrollView,
1918
+ {
1919
+ testID,
1920
+ style: styles$p.container,
1921
+ contentContainerStyle: styles$p.contentContainer,
1922
+ horizontal: false
1923
+ },
1924
+ tags?.map((tag) => /* @__PURE__ */ React__default.createElement(
1925
+ Pressable,
1926
+ {
1927
+ testID: `${testID}-${tag}-BTN`,
1928
+ key: tag,
1929
+ onPress: () => toggleTag(tag),
1930
+ style: [
1931
+ styles$p.tag,
1932
+ tagStyles,
1933
+ selectedTags.includes(tag) ? styles$p.selectedTag : styles$p.tagUnSelected
1934
+ ]
1935
+ },
1936
+ /* @__PURE__ */ React__default.createElement(
1937
+ CustomTypography,
1938
+ {
1939
+ variant: selectedTags.includes(tag) ? "H9semiBold" : "P4regular",
1940
+ style: selectedTags.includes(tag) ? styles$p.tagText : styles$p.tagUnselectedText,
1941
+ text: tag
1942
+ }
1943
+ ),
1944
+ selectedTags.includes(tag) && icon && /* @__PURE__ */ React__default.createElement(
1945
+ Pressable,
1946
+ {
1947
+ testID: `${testID}-${tag}-PRESS`,
1948
+ onPress: () => removeTag(tag)
1949
+ },
1950
+ React__default.cloneElement(icon, { style: [icon.props.style, iconStyle] })
1951
+ )
1952
+ ))
1953
+ );
1954
+ };
1955
+
1956
+ const styles$o = StyleSheet.create({
1957
+ container: {
1958
+ width: horizontalScale(70),
1959
+ height: verticalScale(25),
1960
+ borderRadius: 15,
1961
+ justifyContent: "center"
1962
+ },
1963
+ track: {
1964
+ position: "absolute",
1965
+ top: 0,
1966
+ left: 0,
1967
+ right: 0,
1968
+ bottom: 0,
1969
+ justifyContent: "center",
1970
+ borderRadius: 15
1971
+ },
1972
+ thumb: {
1973
+ position: "absolute",
1974
+ width: horizontalScale(20),
1975
+ height: verticalScale(20),
1976
+ borderRadius: 16,
1977
+ justifyContent: "center",
1978
+ alignItems: "center",
1979
+ backgroundColor: DHRE_COLORS_TEXT.DH_WHITE,
1980
+ left: horizontalScale(2)
1981
+ },
1982
+ text: {
1983
+ color: DHRE_COLORS_TEXT.DH_WHITE,
1984
+ textAlign: "left",
1985
+ marginHorizontal: horizontalScale(10)
1986
+ },
1987
+ textRight: {
1988
+ textAlign: "right"
1989
+ }
1990
+ });
1991
+
1992
+ const CustomSwitch = ({
1993
+ onValueChange,
1994
+ value,
1995
+ type = ToggleButtonType.LARGE,
1996
+ trackWidth = type !== ToggleButtonType.SMALL ? 35 : 15,
1997
+ width = type !== ToggleButtonType.SMALL ? 60 : 40
1998
+ }) => {
1999
+ const [isOn, setIsOn] = useState(value);
2000
+ const animatedValue = useRef(
2001
+ new Animated.Value(value ? trackWidth : 0)
2002
+ ).current;
2003
+ useEffect(() => {
2004
+ Animated.timing(animatedValue, {
2005
+ toValue: isOn ? trackWidth : 0,
2006
+ duration: 200,
2007
+ useNativeDriver: true
2008
+ }).start();
2009
+ }, [isOn, animatedValue, trackWidth]);
2010
+ const toggleSwitch = () => {
2011
+ setIsOn(!isOn);
2012
+ onValueChange(!isOn);
2013
+ };
2014
+ const animatedStyle = {
2015
+ transform: [{ translateX: animatedValue }]
2016
+ };
2017
+ return /* @__PURE__ */ React__default.createElement(
2018
+ Pressable,
2019
+ {
2020
+ onPress: toggleSwitch,
2021
+ style: [styles$o.container, { width }],
2022
+ testID: "custom-switch"
2023
+ },
2024
+ /* @__PURE__ */ React__default.createElement(
2025
+ View,
2026
+ {
2027
+ style: [
2028
+ styles$o.track,
2029
+ {
2030
+ backgroundColor: isOn ? DHRE_COLORS_ALERT.DH_SUCCESS_GREEN_ACCENT : DHRE_COLORS_TEXT.DH_TEXTDISABLED
2031
+ }
2032
+ ]
2033
+ },
2034
+ /* @__PURE__ */ React__default.createElement(Animated.View, { style: [styles$o.thumb, animatedStyle] }),
2035
+ type !== ToggleButtonType.SMALL && /* @__PURE__ */ React__default.createElement(
2036
+ CustomTypography,
2037
+ {
2038
+ variant: "B3semiBold",
2039
+ style: [
2040
+ styles$o.text,
2041
+ { textAlign: isOn ? TextDirectType.left : TextDirectType.right }
2042
+ ],
2043
+ text: isOn ? ToggleTextType.ON : ToggleTextType.OFF
2044
+ }
2045
+ )
2046
+ )
2047
+ );
2048
+ };
2049
+
2050
+ const styles$n = StyleSheet.create({
2051
+ container: {
2052
+ paddingVertical: verticalScale(24),
2053
+ borderBottomWidth: moderateScale(1),
2054
+ borderBottomColor: "#282828"
2055
+ },
2056
+ header: {
2057
+ flexDirection: "row",
2058
+ justifyContent: "space-between",
2059
+ alignItems: "center",
2060
+ paddingHorizontal: horizontalScale(24)
2061
+ },
2062
+ title: { flex: 1, color: "#FFFFFF" },
2063
+ iconStyle: { marginLeft: horizontalScale(20) },
2064
+ content: {
2065
+ overflow: "scroll",
2066
+ marginTop: verticalScale(16)
2067
+ }
2068
+ });
2069
+
2070
+ const Accordion = ({
2071
+ title,
2072
+ testId = "ACCORDION",
2073
+ containerStyle,
2074
+ titleStyle,
2075
+ headerStyle,
2076
+ children,
2077
+ isOpen,
2078
+ onToggle,
2079
+ optionalElement,
2080
+ // Destructure the new prop,
2081
+ headerComponent,
2082
+ disabled = false
2083
+ }) => {
2084
+ const contentRef = useRef(null);
2085
+ const [animation] = useState(new Animated.Value(0));
2086
+ const [contentHeight, setContentHeight] = useState(0);
2087
+ useEffect(() => {
2088
+ if (contentRef.current) {
2089
+ contentRef.current.measure((x, y, width, height) => {
2090
+ setContentHeight(height);
2091
+ });
2092
+ }
2093
+ }, [isOpen]);
2094
+ useEffect(() => {
2095
+ Animated.timing(animation, {
2096
+ toValue: isOpen ? 1 : 0,
2097
+ duration: 300,
2098
+ useNativeDriver: false
2099
+ }).start();
2100
+ }, [isOpen]);
2101
+ const cardHeight = animation.interpolate({
2102
+ inputRange: [0, 1],
2103
+ outputRange: [0, contentHeight]
2104
+ });
2105
+ return /* @__PURE__ */ React__default.createElement(View, { style: [styles$n.container, containerStyle], testID: testId }, /* @__PURE__ */ React__default.createElement(
2106
+ Pressable,
2107
+ {
2108
+ style: [styles$n.header, headerStyle, disabled && { opacity: 0.5 }],
2109
+ onPress: !disabled ? onToggle : void 0
2110
+ },
2111
+ headerComponent ? headerComponent() : /* @__PURE__ */ React__default.createElement(
2112
+ CustomTypography,
2113
+ {
2114
+ variant: "B4_REGULAR",
2115
+ text: title,
2116
+ style: [styles$n.title, titleStyle]
2117
+ }
2118
+ ),
2119
+ React__default.cloneElement(isOpen ? /* @__PURE__ */ React__default.createElement(SvgCaretUp, null) : /* @__PURE__ */ React__default.createElement(SvgCaretDown, null), {
2120
+ width: moderateScale(20),
2121
+ height: moderateScale(20),
2122
+ style: styles$n.iconStyle
2123
+ })
2124
+ ), optionalElement ? optionalElement() : null, isOpen && /* @__PURE__ */ React__default.createElement(Animated.View, { style: [styles$n.content, { height: cardHeight }] }, /* @__PURE__ */ React__default.createElement(
2125
+ View,
2126
+ {
2127
+ ref: contentRef,
2128
+ onLayout: (event) => {
2129
+ setContentHeight(event.nativeEvent.layout.height);
2130
+ }
2131
+ },
2132
+ children
2133
+ )));
2134
+ };
2135
+
2136
+ const styles$m = StyleSheet.create({
2137
+ container: {
2138
+ position: "absolute",
2139
+ alignSelf: "center",
2140
+ height: verticalScale(72),
2141
+ width: width$1 - horizontalScale(32),
2142
+ top: 56,
2143
+ borderRadius: moderateScale(8),
2144
+ overflow: "hidden"
2145
+ },
2146
+ toastContainer: { flex: 1, justifyContent: "center" },
2147
+ innerContainer: {
2148
+ flexDirection: "row",
2149
+ alignItems: "center",
2150
+ paddingHorizontal: horizontalScale(12)
2151
+ },
2152
+ icon: {
2153
+ marginRight: 9
2154
+ },
2155
+ messageText: {
2156
+ flex: 1,
2157
+ color: "#fff"
2158
+ },
2159
+ button: {
2160
+ marginLeft: 9
2161
+ },
2162
+ buttonText: {
2163
+ textDecorationLine: "underline",
2164
+ color: "#fff"
2165
+ }
2166
+ });
2167
+
2168
+ const Toast = React__default.forwardRef((_props, ref) => {
2169
+ const [visible, setVisible] = useState(false);
2170
+ const [message, setMessage] = useState("");
2171
+ const [isSuccess, setIsSuccess] = useState(true);
2172
+ const [btnText, setBtnText] = useState(null);
2173
+ const [onBtnPress, setOnBtnPress] = useState(null);
2174
+ const [progress, setProgress] = useState(0);
2175
+ const bottom = useRef(new Animated.Value(-80)).current;
2176
+ const showToast = (toastMessage, duration = 3e3, success = true, buttonText = null, buttonAction = null) => {
2177
+ setMessage(toastMessage);
2178
+ setIsSuccess(success);
2179
+ setBtnText(buttonText);
2180
+ setOnBtnPress(() => buttonAction);
2181
+ setVisible(true);
2182
+ Animated.timing(bottom, {
2183
+ toValue: 20,
2184
+ duration: 500,
2185
+ useNativeDriver: false
2186
+ }).start();
2187
+ setTimeout(() => {
2188
+ hideToast();
2189
+ }, duration);
2190
+ };
2191
+ const hideToast = () => {
2192
+ Animated.timing(bottom, {
2193
+ toValue: -80,
2194
+ duration: 500,
2195
+ useNativeDriver: false
2196
+ }).start(() => {
2197
+ setVisible(false);
2198
+ setMessage("");
2199
+ });
2200
+ };
2201
+ const simulateProgress = () => {
2202
+ setProgress((prev) => prev + 0.1 > 1 ? 1 : prev + 0.1);
2203
+ };
2204
+ useEffect(() => {
2205
+ if (visible) {
2206
+ setProgress(0);
2207
+ const interval = setInterval(simulateProgress, 180);
2208
+ return () => clearInterval(interval);
2209
+ }
2210
+ }, [visible]);
2211
+ React__default.useImperativeHandle(ref, () => ({
2212
+ showToast
2213
+ }));
2214
+ return visible ? /* @__PURE__ */ React__default.createElement(
2215
+ Animated.View,
2216
+ {
2217
+ style: [
2218
+ styles$m.container,
2219
+ { bottom },
2220
+ { backgroundColor: isSuccess ? "#04743F" : "#DB3056" }
2221
+ ],
2222
+ testID: "TOAST"
2223
+ },
2224
+ /* @__PURE__ */ React__default.createElement(View, { style: styles$m.toastContainer }, /* @__PURE__ */ React__default.createElement(View, { style: styles$m.innerContainer }, isSuccess ? /* @__PURE__ */ React__default.createElement(SvgCircleTick, null) : /* @__PURE__ */ React__default.createElement(SvgCrossIcon, null), /* @__PURE__ */ React__default.createElement(
2225
+ CustomTypography,
2226
+ {
2227
+ variant: "L2_REGULAR",
2228
+ text: message,
2229
+ style: styles$m.messageText
2230
+ }
2231
+ ), btnText && /* @__PURE__ */ React__default.createElement(
2232
+ Pressable,
2233
+ {
2234
+ style: styles$m.button,
2235
+ onPress: onBtnPress || void 0,
2236
+ testID: "TOAST-BTN"
2237
+ },
2238
+ /* @__PURE__ */ React__default.createElement(
2239
+ CustomTypography,
2240
+ {
2241
+ variant: "L2_BOLD",
2242
+ text: btnText,
2243
+ style: styles$m.buttonText
2244
+ }
2245
+ )
2246
+ ))),
2247
+ /* @__PURE__ */ React__default.createElement(
2248
+ Progress.Bar,
2249
+ {
2250
+ progress,
2251
+ width: width$1 - horizontalScale(48),
2252
+ height: 3,
2253
+ color: isSuccess ? "#024324" : "#851D41",
2254
+ borderColor: "transparent"
2255
+ }
2256
+ )
2257
+ ) : null;
2258
+ });
2259
+ Toast.displayName = "Toast";
2260
+
2261
+ const styles$l = StyleSheet.create({
2262
+ inputContainer: {
2263
+ flexDirection: "row",
2264
+ justifyContent: "center",
2265
+ alignItems: "center",
2266
+ paddingHorizontal: horizontalScale(16),
2267
+ borderRadius: moderateScale(8),
2268
+ borderWidth: moderateScale(1)
2269
+ },
2270
+ input: {
2271
+ flex: 1,
2272
+ ...FONT_STYLES.L1_REGULAR,
2273
+ color: "#fff"
2274
+ },
2275
+ crossIconStyle: { marginLeft: horizontalScale(8) },
2276
+ searchIconStyle: { marginRight: horizontalScale(8) }
2277
+ });
2278
+
2279
+ const CustomSearchBar = ({
2280
+ value,
2281
+ height = 40,
2282
+ disabled = false,
2283
+ testID = "CUSTOM-SEARCH-BAR",
2284
+ inputContainerStyle,
2285
+ searchIconStyle,
2286
+ crossIconStyle,
2287
+ inputStyle,
2288
+ onSearchIconPress,
2289
+ onCrossIconPress,
2290
+ handleOnChangeText,
2291
+ setValue,
2292
+ rightIcon = /* @__PURE__ */ React__default.createElement(SvgCrossIcon, null),
2293
+ disableBorderColor = "#4F4F4F",
2294
+ borderColor = "#FFFFFF",
2295
+ disablePlaceHolderStyle = "#686868",
2296
+ enablePlaceHolderStyle = "#A7A7A7",
2297
+ ...props
2298
+ }) => {
2299
+ return /* @__PURE__ */ React__default.createElement(
2300
+ View,
2301
+ {
2302
+ testID,
2303
+ style: [
2304
+ styles$l.inputContainer,
2305
+ {
2306
+ height: verticalScale(height),
2307
+ borderColor: disabled ? disableBorderColor : value ? borderColor : "#A7A7A7"
2308
+ },
2309
+ inputContainerStyle
2310
+ ]
2311
+ },
2312
+ /* @__PURE__ */ React__default.createElement(
2313
+ Pressable,
2314
+ {
2315
+ onPress: () => {
2316
+ console.log("Search icon pressed");
2317
+ onSearchIconPress?.();
2318
+ },
2319
+ style: searchIconStyle
2320
+ },
2321
+ React__default.cloneElement(/* @__PURE__ */ React__default.createElement(SvgSearchIcon, null), {
2322
+ width: moderateScale(24),
2323
+ height: moderateScale(24),
2324
+ style: [styles$l.searchIconStyle, searchIconStyle]
2325
+ })
2326
+ ),
2327
+ /* @__PURE__ */ React__default.createElement(
2328
+ TextInput,
2329
+ {
2330
+ ...props,
2331
+ testID: `${testID}-INPUT`,
2332
+ style: [styles$l.input, inputStyle],
2333
+ editable: !disabled,
2334
+ value,
2335
+ placeholderTextColor: disabled ? disablePlaceHolderStyle : enablePlaceHolderStyle,
2336
+ onChangeText: (val) => {
2337
+ setValue(val);
2338
+ handleOnChangeText?.(val);
2339
+ }
2340
+ }
2341
+ ),
2342
+ value && /* @__PURE__ */ React__default.createElement(
2343
+ Pressable,
2344
+ {
2345
+ onPress: () => {
2346
+ setValue("");
2347
+ onCrossIconPress?.();
2348
+ },
2349
+ style: crossIconStyle
2350
+ },
2351
+ React__default.cloneElement(rightIcon, {
2352
+ // width: moderateScale(24),
2353
+ // height: moderateScale(24),
2354
+ style: [styles$l.crossIconStyle, crossIconStyle]
2355
+ })
2356
+ )
2357
+ );
2358
+ };
2359
+
2360
+ const styles$k = StyleSheet.create({
2361
+ container: {
2362
+ flexDirection: "row",
2363
+ justifyContent: "space-between",
2364
+ paddingHorizontal: horizontalScale(16),
2365
+ paddingTop: verticalScale(74),
2366
+ paddingBottom: verticalScale(16),
2367
+ backgroundColor: "#212121",
2368
+ borderBottomWidth: 1,
2369
+ borderBottomColor: "#282828"
2370
+ },
2371
+ headderContainer: {
2372
+ flexDirection: "row",
2373
+ alignItems: "center"
2374
+ },
2375
+ headerTitle: {
2376
+ color: "#FFFFFF"
2377
+ },
2378
+ leftIconStyle: { marginRight: horizontalScale(9) },
2379
+ rightIconStyle: { marginLeft: horizontalScale(8) }
2380
+ });
2381
+
2382
+ const CustomHeader = ({
2383
+ title,
2384
+ testId = "CUSTOM-HEADER",
2385
+ leftIcon = /* @__PURE__ */ React__default.createElement(SvgCaretLeft, null),
2386
+ rightIcon = /* @__PURE__ */ React__default.createElement(SvgDotsThreeVertical, null),
2387
+ showLeftIcon = true,
2388
+ showRightIcon = true,
2389
+ onLeftPress,
2390
+ onRightPress
2391
+ }) => {
2392
+ return /* @__PURE__ */ React__default.createElement(View, { style: styles$k.container, testID: testId }, /* @__PURE__ */ React__default.createElement(View, { style: styles$k.headderContainer }, showLeftIcon && React__default.cloneElement(leftIcon, {
2393
+ width: moderateScale(24),
2394
+ height: moderateScale(24),
2395
+ onPress: onLeftPress,
2396
+ style: styles$k.leftIconStyle
2397
+ }), /* @__PURE__ */ React__default.createElement(
2398
+ CustomTypography,
2399
+ {
2400
+ variant: "B2_REGULAR",
2401
+ text: title,
2402
+ style: styles$k.headerTitle
2403
+ }
2404
+ )), showRightIcon && React__default.cloneElement(rightIcon, {
2405
+ width: moderateScale(24),
2406
+ height: moderateScale(24),
2407
+ onPress: onRightPress,
2408
+ style: styles$k.rightIconStyle
2409
+ }));
2410
+ };
2411
+
2412
+ const styles$j = StyleSheet.create({
2413
+ container: {
2414
+ flex: 1
2415
+ },
2416
+ swippableContainer: { paddingVertical: verticalScale(16) },
2417
+ actionButton: {
2418
+ justifyContent: "center",
2419
+ alignItems: "center"
2420
+ },
2421
+ titleStyle: {
2422
+ color: "#fff"
2423
+ },
2424
+ leftActions: {
2425
+ flexDirection: "row",
2426
+ justifyContent: "center",
2427
+ alignItems: "center",
2428
+ width: horizontalScale(150),
2429
+ gap: horizontalScale(24)
2430
+ },
2431
+ rightActions: {
2432
+ flexDirection: "row",
2433
+ paddingHorizontal: horizontalScale(24)
2434
+ },
2435
+ seprator: {
2436
+ height: verticalScale(16)
2437
+ }
2438
+ });
2439
+
2440
+ const SwipableList = (props) => {
2441
+ const {
2442
+ data,
2443
+ testId = "SWIPABLE-LIST",
2444
+ leftPrimaryActionActiveIcon,
2445
+ leftPrimaryActionInActiveIcon,
2446
+ leftPrimaryActionActiveTitle,
2447
+ leftPrimaryActionInActiveTitle,
2448
+ leftSecondaryActionActiveIcon,
2449
+ leftSecondaryActionInActiveIcon,
2450
+ leftSecondaryActionActiveTitle,
2451
+ leftSecondaryActionInActiveTitle,
2452
+ leftPrimaryActionHandler,
2453
+ leftPrimaryActionStyle,
2454
+ leftSecondaryActionHandler,
2455
+ leftSecondaryActionStyle,
2456
+ rightPrimaryActionIcon,
2457
+ rightPrimaryActionTitle,
2458
+ rightPrimaryActionHandler,
2459
+ rightPrimaryActionStyle,
2460
+ titleStyle
2461
+ } = props;
2462
+ const ActionButton = ({
2463
+ icon,
2464
+ title,
2465
+ onPress,
2466
+ style,
2467
+ testID
2468
+ }) => /* @__PURE__ */ React__default.createElement(
2469
+ Pressable,
2470
+ {
2471
+ testID,
2472
+ onPress,
2473
+ style: [styles$j.actionButton, style]
2474
+ },
2475
+ icon,
2476
+ /* @__PURE__ */ React__default.createElement(
2477
+ CustomTypography,
2478
+ {
2479
+ variant: "L1_REGULAR",
2480
+ style: [styles$j.titleStyle, titleStyle],
2481
+ text: title
2482
+ }
2483
+ )
2484
+ );
2485
+ const leftActionHandle = (item, leftPrimaryActionIcon, leftPrimaryActionTitle, leftSecondaryActionIcon, leftSecondaryActionTitle) => /* @__PURE__ */ React__default.createElement(View, { style: [styles$j.leftActions, leftPrimaryActionStyle] }, leftPrimaryActionIcon && /* @__PURE__ */ React__default.createElement(
2486
+ ActionButton,
2487
+ {
2488
+ icon: leftPrimaryActionIcon,
2489
+ title: leftPrimaryActionTitle,
2490
+ onPress: () => leftPrimaryActionHandler?.(item),
2491
+ style: leftPrimaryActionStyle,
2492
+ testID: `${testId}-LEFT-PRIMARY-${item.id}`
2493
+ }
2494
+ ), leftSecondaryActionIcon && /* @__PURE__ */ React__default.createElement(
2495
+ ActionButton,
2496
+ {
2497
+ icon: leftSecondaryActionIcon,
2498
+ title: leftSecondaryActionTitle,
2499
+ onPress: () => leftSecondaryActionHandler?.(item),
2500
+ style: leftSecondaryActionStyle,
2501
+ testID: `${testId}-LEFT-SECONDARY-${item.id}`
2502
+ }
2503
+ ));
2504
+ const rightActionHandle = (item) => /* @__PURE__ */ React__default.createElement(View, { style: [styles$j.rightActions, rightPrimaryActionStyle] }, rightPrimaryActionIcon && /* @__PURE__ */ React__default.createElement(
2505
+ ActionButton,
2506
+ {
2507
+ icon: rightPrimaryActionIcon,
2508
+ title: rightPrimaryActionTitle || "",
2509
+ onPress: () => rightPrimaryActionHandler?.(item),
2510
+ style: rightPrimaryActionStyle,
2511
+ testID: `${testId}-RIGHT-PRIMARY-${item.id}`
2512
+ }
2513
+ ));
2514
+ const renderItem = ({ item }) => /* @__PURE__ */ React__default.createElement(GestureHandlerRootView, { testID: `${testId}-LIST`, style: styles$j.container }, /* @__PURE__ */ React__default.createElement(
2515
+ Swipeable,
2516
+ {
2517
+ renderLeftActions: () => leftActionHandle(
2518
+ item,
2519
+ item.isPinned ? leftPrimaryActionInActiveIcon : leftPrimaryActionActiveIcon,
2520
+ item.isPinned ? leftPrimaryActionInActiveTitle : leftPrimaryActionActiveTitle,
2521
+ item.isRead ? leftSecondaryActionInActiveIcon : leftSecondaryActionActiveIcon,
2522
+ item.isRead ? leftSecondaryActionInActiveTitle : leftSecondaryActionActiveTitle
2523
+ ),
2524
+ renderRightActions: () => rightActionHandle(item),
2525
+ containerStyle: styles$j.swippableContainer
2526
+ },
2527
+ props?.renderItem(item)
2528
+ ));
2529
+ return /* @__PURE__ */ React__default.createElement(View, { testID: testId }, /* @__PURE__ */ React__default.createElement(
2530
+ FlatList,
2531
+ {
2532
+ data,
2533
+ renderItem,
2534
+ keyExtractor: (item) => item.id,
2535
+ ItemSeparatorComponent: () => /* @__PURE__ */ React__default.createElement(View, { style: styles$j.seprator })
2536
+ }
2537
+ ));
2538
+ };
2539
+
2540
+ const styles$i = StyleSheet.create({
2541
+ container: {
2542
+ justifyContent: "center",
2543
+ alignItems: "center"
2544
+ },
2545
+ title: {
2546
+ color: "#000"
2547
+ }
2548
+ });
2549
+
2550
+ const CustomIcon = ({
2551
+ icon,
2552
+ title,
2553
+ titleVariant = "L1_REGULAR",
2554
+ testId = "CUSTOM-ICON",
2555
+ onPress,
2556
+ containerStyle,
2557
+ titleStyle
2558
+ }) => {
2559
+ return /* @__PURE__ */ React__default.createElement(
2560
+ Pressable,
2561
+ {
2562
+ style: [styles$i.container, containerStyle],
2563
+ onPress,
2564
+ testID: testId
2565
+ },
2566
+ icon,
2567
+ title && /* @__PURE__ */ React__default.createElement(
2568
+ CustomTypography,
2569
+ {
2570
+ variant: titleVariant,
2571
+ text: title,
2572
+ style: [styles$i.title, titleStyle]
2573
+ }
2574
+ )
2575
+ );
2576
+ };
2577
+
2578
+ const styles$h = StyleSheet.create({
2579
+ container: {
2580
+ flex: 1,
2581
+ justifyContent: "center",
2582
+ alignItems: "center",
2583
+ backgroundColor: "transparent",
2584
+ position: "absolute",
2585
+ width: "100%",
2586
+ height: "100%",
2587
+ zIndex: 1e3
2588
+ }
2589
+ });
2590
+
2591
+ const CustomLoader = ({ loading }) => {
2592
+ if (!loading) return null;
2593
+ return /* @__PURE__ */ React__default.createElement(View, { style: styles$h.container }, /* @__PURE__ */ React__default.createElement(ActivityIndicator, { size: "large", color: "#686868" }));
2594
+ };
2595
+
2596
+ const HorizontalLine = ({ style }) => {
2597
+ const { theme } = useTheme();
2598
+ return /* @__PURE__ */ React__default.createElement(
2599
+ View,
2600
+ {
2601
+ style: [
2602
+ styles$g.line,
2603
+ { backgroundColor: theme["SURFACE_SECONDARY"] },
2604
+ style
2605
+ ]
2606
+ }
2607
+ );
2608
+ };
2609
+ const styles$g = StyleSheet.create({
2610
+ line: {
2611
+ height: 1,
2612
+ width: "100%"
2613
+ }
2614
+ });
2615
+ var Line = withThemeProvider(HorizontalLine);
2616
+
2617
+ const Topic = ({
2618
+ rightIcon,
2619
+ onPress,
2620
+ title,
2621
+ subTitle,
2622
+ containterStyle
2623
+ }) => {
2624
+ const { theme } = useTheme();
2625
+ return /* @__PURE__ */ React__default.createElement(
2626
+ TouchableOpacity,
2627
+ {
2628
+ style: [
2629
+ styles$f.button,
2630
+ { backgroundColor: theme["SURFACE_SECONDARY"] },
2631
+ containterStyle
2632
+ ],
2633
+ onPress
2634
+ },
2635
+ rightIcon && /* @__PURE__ */ React__default.createElement(View, { style: styles$f.rightIconContainer }, React__default.cloneElement(rightIcon)),
2636
+ /* @__PURE__ */ React__default.createElement(View, { style: styles$f.textContainer }, subTitle && /* @__PURE__ */ React__default.createElement(
2637
+ CustomText$1,
2638
+ {
2639
+ text: subTitle,
2640
+ variant: "L3_REGULAR",
2641
+ textColor: "CONTENT_PRIMARY"
2642
+ }
2643
+ ), /* @__PURE__ */ React__default.createElement(
2644
+ CustomText$1,
2645
+ {
2646
+ text: title,
2647
+ variant: "L1_REGULAR",
2648
+ textColor: "CONTENT_PRIMARY"
2649
+ }
2650
+ ))
2651
+ );
2652
+ };
2653
+ const styles$f = StyleSheet.create({
2654
+ button: {
2655
+ flexDirection: "row",
2656
+ alignItems: "center",
2657
+ height: 75,
2658
+ width: 158,
2659
+ borderRadius: 10,
2660
+ marginLeft: 12,
2661
+ marginVertical: 14
2662
+ },
2663
+ iconContainer: {
2664
+ marginHorizontal: 16
2665
+ },
2666
+ textContainer: {
2667
+ flex: 1,
2668
+ position: "absolute",
2669
+ padding: 10,
2670
+ bottom: 0,
2671
+ marginHorizontal: 8,
2672
+ marginTop: 20
2673
+ },
2674
+ titleText: {
2675
+ marginBottom: 4
2676
+ },
2677
+ rightIconContainer: {
2678
+ position: "absolute",
2679
+ left: 16,
2680
+ top: 10
2681
+ }
2682
+ });
2683
+ var Topic$1 = withThemeProvider(Topic);
2684
+
2685
+ const ContactModal = ({
2686
+ phoneNumber,
2687
+ visible,
2688
+ onClose,
2689
+ isMailOpen,
2690
+ data
2691
+ }) => {
2692
+ const handleCall = () => {
2693
+ if (Platform.OS === "ios") {
2694
+ Alert.alert("Phone calls are not supported on the iOS simulator.");
2695
+ } else {
2696
+ Linking.openURL(`tel:${phoneNumber}`);
2697
+ }
2698
+ onClose();
2699
+ };
2700
+ const openEmail = (recipient) => {
2701
+ const mailtoUrl = `mailto:${recipient}?subject=${encodeURIComponent(
2702
+ ""
2703
+ )}&body=${encodeURIComponent("")}`;
2704
+ if (Platform.OS === "android") {
2705
+ const gmailUrl = `intent://#Intent;scheme=mailto;package=com.google.android.gm;S.to=${recipient};S.subject=${encodeURIComponent(
2706
+ ""
2707
+ )};S.body=${encodeURIComponent("")};end`;
2708
+ Linking.canOpenURL(gmailUrl).then((supported) => {
2709
+ if (supported) {
2710
+ return Linking.openURL(gmailUrl);
2711
+ } else {
2712
+ console.log("Gmail app not available, opening default mail app");
2713
+ return Linking.openURL(mailtoUrl);
2714
+ }
2715
+ }).catch((err) => console.error("Error:", err));
2716
+ } else {
2717
+ Linking.canOpenURL(mailtoUrl).then((supported) => {
2718
+ if (!supported) {
2719
+ console.log("No email client available");
2720
+ } else {
2721
+ return Linking.openURL(mailtoUrl);
2722
+ }
2723
+ }).catch((err) => console.error("Error:", err));
2724
+ }
2725
+ };
2726
+ const handleOptionPress = () => {
2727
+ openEmail(data);
2728
+ onClose();
2729
+ };
2730
+ const emailOptions = ["Mail", "Gmail", "Outlook"];
2731
+ const renderEmailOptions = () => /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(
2732
+ CustomText$1,
2733
+ {
2734
+ style: styles$e.title,
2735
+ text: "Open email app",
2736
+ variant: "L2_REGULAR"
2737
+ }
2738
+ ), /* @__PURE__ */ React__default.createElement(
2739
+ CustomText$1,
2740
+ {
2741
+ style: styles$e.subtitle,
2742
+ text: "Which app would you like to open?",
2743
+ variant: "L2_REGULAR"
2744
+ }
2745
+ ), emailOptions.map((option) => /* @__PURE__ */ React__default.createElement(React__default.Fragment, { key: option }, /* @__PURE__ */ React__default.createElement(Line, null), /* @__PURE__ */ React__default.createElement(
2746
+ Pressable,
2747
+ {
2748
+ onPress: () => handleOptionPress(),
2749
+ style: styles$e.optionButton
2750
+ },
2751
+ /* @__PURE__ */ React__default.createElement(
2752
+ CustomText$1,
2753
+ {
2754
+ style: styles$e.optionText,
2755
+ text: option,
2756
+ variant: "B3_BOLD"
2757
+ }
2758
+ )
2759
+ ))));
2760
+ const renderContent = () => /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(View, { style: styles$e.viewContainer }, isMailOpen ? renderEmailOptions() : /* @__PURE__ */ React__default.createElement(Pressable, { onPress: handleCall, style: styles$e.optionButton }, /* @__PURE__ */ React__default.createElement(
2761
+ CustomText$1,
2762
+ {
2763
+ style: styles$e.optionText,
2764
+ text: `Call ${phoneNumber}`,
2765
+ variant: "B3_BOLD"
2766
+ }
2767
+ ))), /* @__PURE__ */ React__default.createElement(Pressable, { onPress: onClose, style: styles$e.cancelButton }, /* @__PURE__ */ React__default.createElement(
2768
+ CustomText$1,
2769
+ {
2770
+ style: styles$e.cancelText,
2771
+ text: "Cancel",
2772
+ variant: "B2_REGULAR"
2773
+ }
2774
+ )));
2775
+ return /* @__PURE__ */ React__default.createElement(View, { style: styles$e.container }, /* @__PURE__ */ React__default.createElement(
2776
+ Modal,
2777
+ {
2778
+ animationType: "slide",
2779
+ transparent: true,
2780
+ visible,
2781
+ onRequestClose: onClose
2782
+ },
2783
+ /* @__PURE__ */ React__default.createElement(View, { style: styles$e.modalContainer }, /* @__PURE__ */ React__default.createElement(View, { style: styles$e.modalContent }, renderContent()))
2784
+ ));
2785
+ };
2786
+ const styles$e = StyleSheet.create({
2787
+ container: {
2788
+ flex: 1,
2789
+ justifyContent: "center",
2790
+ backgroundColor: "rgba(0, 0, 0, 0.5)"
2791
+ },
2792
+ modalContainer: {
2793
+ flex: 1,
2794
+ justifyContent: "flex-end",
2795
+ alignItems: "center",
2796
+ backgroundColor: "rgba(0, 0, 0, .7)"
2797
+ },
2798
+ modalContent: {
2799
+ padding: 20,
2800
+ width: "100%",
2801
+ alignItems: "center",
2802
+ marginHorizontal: 20,
2803
+ borderRadius: 10
2804
+ },
2805
+ viewContainer: {
2806
+ width: "100%",
2807
+ backgroundColor: "#1C1C1E",
2808
+ borderRadius: 10
2809
+ },
2810
+ cancelText: {
2811
+ color: "#007AFF"
2812
+ },
2813
+ title: {
2814
+ textAlign: "center",
2815
+ marginTop: 13
2816
+ },
2817
+ subtitle: {
2818
+ textAlign: "center",
2819
+ marginTop: 2,
2820
+ marginBottom: 13
2821
+ },
2822
+ optionButton: {
2823
+ padding: 16,
2824
+ borderRadius: 8,
2825
+ alignItems: "center"
2826
+ },
2827
+ optionText: {
2828
+ fontSize: 16,
2829
+ color: "#007AFF"
2830
+ },
2831
+ cancelButton: {
2832
+ marginTop: 10,
2833
+ paddingVertical: 15,
2834
+ alignItems: "center",
2835
+ borderRadius: 8,
2836
+ backgroundColor: "#1C1C1E",
2837
+ width: "100%"
2838
+ }
2839
+ });
2840
+ var ContactModel = withThemeProvider(ContactModal);
2841
+
2842
+ const styles$d = StyleSheet.create({
2843
+ applyButton: {
2844
+ marginTop: verticalScale(24),
2845
+ height: verticalScale(48),
2846
+ alignItems: "center",
2847
+ borderRadius: moderateScale(25),
2848
+ backgroundColor: "#fff"
2849
+ },
2850
+ applyButtonText: {
2851
+ color: "#000",
2852
+ ...FONT_STYLES.L1_REGULAR
2853
+ }
2854
+ });
2855
+
2856
+ const DateRangePicker = (props) => {
2857
+ const { onButtonPress } = props;
2858
+ const [selectedRange, setSelectedRange] = useState({
2859
+ startDate: "",
2860
+ endDate: ""
2861
+ });
2862
+ const onDayPress = (day) => {
2863
+ const { dateString } = day;
2864
+ const { startDate, endDate } = selectedRange;
2865
+ if (!startDate || startDate && endDate) {
2866
+ setSelectedRange({ startDate: dateString, endDate: "" });
2867
+ } else if (startDate && !endDate) {
2868
+ if (new Date(dateString) >= new Date(startDate)) {
2869
+ setSelectedRange({ startDate, endDate: dateString });
2870
+ } else {
2871
+ setSelectedRange({ startDate: dateString, endDate: "" });
2872
+ }
2873
+ }
2874
+ };
2875
+ const getMarkedDates = () => {
2876
+ const { startDate, endDate } = selectedRange;
2877
+ const markedDates = {};
2878
+ if (startDate) {
2879
+ markedDates[startDate] = {
2880
+ startingDay: true,
2881
+ color: "#2DE3A6",
2882
+ textColor: "#000000"
2883
+ };
2884
+ }
2885
+ if (endDate) {
2886
+ markedDates[endDate] = {
2887
+ endingDay: true,
2888
+ color: "#2DE3A6",
2889
+ textColor: "#000000"
2890
+ };
2891
+ }
2892
+ if (startDate && endDate) {
2893
+ const start = new Date(startDate);
2894
+ const end = new Date(endDate);
2895
+ while (start < end) {
2896
+ start.setDate(start.getDate() + 1);
2897
+ markedDates[start.toISOString().split("T")[0]] = {
2898
+ color: "#2DE3A6",
2899
+ textColor: "#000000"
2900
+ };
2901
+ }
2902
+ }
2903
+ return markedDates;
2904
+ };
2905
+ const isButtonDisabled = !selectedRange.startDate || !selectedRange.endDate;
2906
+ return /* @__PURE__ */ React__default.createElement(View, null, /* @__PURE__ */ React__default.createElement(
2907
+ Calendar,
2908
+ {
2909
+ markedDates: getMarkedDates(),
2910
+ mode: "date",
2911
+ markingType: "period",
2912
+ theme: {
2913
+ calendarBackground: "transparent",
2914
+ arrowColor: "#fff",
2915
+ monthTextColor: "#FFFFFF",
2916
+ dayTextColor: "#A7A7A7",
2917
+ todayTextColor: "#2DE3A6"
2918
+ },
2919
+ style: {
2920
+ backgroundColor: "transparent",
2921
+ color: "#A7A7A7"
2922
+ },
2923
+ onDayPress,
2924
+ ...props
2925
+ }
2926
+ ), /* @__PURE__ */ React__default.createElement(
2927
+ CustomButton$1,
2928
+ {
2929
+ title: "Apply",
2930
+ onPress: () => {
2931
+ onButtonPress(selectedRange?.startDate, selectedRange?.endDate);
2932
+ },
2933
+ containerStyle: styles$d.applyButton,
2934
+ textStyle: styles$d.applyButtonText,
2935
+ disabled: isButtonDisabled
2936
+ }
2937
+ ));
2938
+ };
2939
+
2940
+ const OurOfficesButton = ({
2941
+ leftIcon,
2942
+ rightIcon,
2943
+ onPress,
2944
+ title,
2945
+ description,
2946
+ containerStyle,
2947
+ titleVariant = "L1_REGULAR",
2948
+ descriptionVariant = "L1_REGULAR",
2949
+ titleColor = "CONTENT_PRIMARY",
2950
+ descriptionColor = "CONTENT_SECONDARY"
2951
+ }) => {
2952
+ const { theme } = useTheme();
2953
+ return /* @__PURE__ */ React__default.createElement(
2954
+ TouchableOpacity,
2955
+ {
2956
+ style: [
2957
+ styles$c.button,
2958
+ { backgroundColor: theme["SURFACE_SECONDARY"] },
2959
+ containerStyle
2960
+ ],
2961
+ onPress
2962
+ },
2963
+ leftIcon && /* @__PURE__ */ React__default.createElement(View, { style: styles$c.iconContainer }, React__default.cloneElement(leftIcon)),
2964
+ /* @__PURE__ */ React__default.createElement(View, { style: styles$c.textContainer }, /* @__PURE__ */ React__default.createElement(
2965
+ CustomText$1,
2966
+ {
2967
+ text: title,
2968
+ variant: titleVariant,
2969
+ textColor: titleColor,
2970
+ style: styles$c.textView
2971
+ }
2972
+ ), /* @__PURE__ */ React__default.createElement(
2973
+ CustomText$1,
2974
+ {
2975
+ text: description,
2976
+ variant: descriptionVariant,
2977
+ textColor: descriptionColor,
2978
+ style: styles$c.flexWrap
2979
+ }
2980
+ )),
2981
+ rightIcon && /* @__PURE__ */ React__default.createElement(View, { style: styles$c.rightIconContainer }, React__default.cloneElement(rightIcon))
2982
+ );
2983
+ };
2984
+ const styles$c = StyleSheet.create({
2985
+ button: {
2986
+ flexDirection: "row",
2987
+ alignItems: "center",
2988
+ borderRadius: 10
2989
+ },
2990
+ iconContainer: {
2991
+ marginHorizontal: 16
2992
+ },
2993
+ textContainer: {
2994
+ flex: 1,
2995
+ padding: 10,
2996
+ borderRadius: 4
2997
+ },
2998
+ rightIconContainer: {
2999
+ marginLeft: 10,
3000
+ position: "absolute",
3001
+ right: 10
3002
+ },
3003
+ textView: { marginBottom: 4 },
3004
+ flexWrap: { flexWrap: "wrap" }
3005
+ });
3006
+ var OurOffices = withThemeProvider(OurOfficesButton);
3007
+
3008
+ const styles$b = StyleSheet.create({
3009
+ iconContainer: {
3010
+ position: "relative",
3011
+ alignItems: "center"
3012
+ },
3013
+ badge: {
3014
+ position: "absolute",
3015
+ top: -5,
3016
+ right: -5,
3017
+ minWidth: 20,
3018
+ height: 20,
3019
+ borderRadius: 10,
3020
+ justifyContent: "center",
3021
+ alignItems: "center",
3022
+ backgroundColor: "#F5524A"
3023
+ },
3024
+ badgeText: {
3025
+ ...FONT_STYLES.L3_BOLD,
3026
+ color: "#fff"
3027
+ }
3028
+ });
3029
+
3030
+ const NotificationBandge = ({
3031
+ notificationCount = 0
3032
+ }) => {
3033
+ if (notificationCount <= 0) {
3034
+ return /* @__PURE__ */ React__default.createElement(SvgBellSimple, null);
3035
+ }
3036
+ return /* @__PURE__ */ React__default.createElement(View, { style: styles$b.iconContainer }, /* @__PURE__ */ React__default.createElement(SvgBellSimple, null), /* @__PURE__ */ React__default.createElement(View, { style: styles$b.badge }, /* @__PURE__ */ React__default.createElement(Text, { style: [styles$b.badgeText] }, notificationCount > 99 ? "99+" : notificationCount)));
3037
+ };
3038
+
3039
+ const ScrollableList = ({
3040
+ data,
3041
+ handleSelectCategory,
3042
+ containerStyle,
3043
+ scrollViewContentStyle,
3044
+ itemStyle,
3045
+ selectedItemStyle,
3046
+ selectedItemTextColor = "CONTENT_PRIMARY",
3047
+ defaultItemTextColor = "CONTENT_SECONDRY",
3048
+ activeTab
3049
+ }) => {
3050
+ const [selectedItem, setSelectedItem] = useState(
3051
+ data && data.length > 0 ? data[0].name : null
3052
+ );
3053
+ const { theme } = useTheme();
3054
+ return /* @__PURE__ */ React__default.createElement(View, { style: [styles$a.container, containerStyle] }, /* @__PURE__ */ React__default.createElement(
3055
+ ScrollView,
3056
+ {
3057
+ horizontal: true,
3058
+ showsHorizontalScrollIndicator: false,
3059
+ contentContainerStyle: [
3060
+ styles$a.scrollViewContent,
3061
+ scrollViewContentStyle
3062
+ ]
3063
+ },
3064
+ data?.map((item) => /* @__PURE__ */ React__default.createElement(
3065
+ Pressable,
3066
+ {
3067
+ key: item.value,
3068
+ style: [
3069
+ styles$a.item,
3070
+ itemStyle,
3071
+ (activeTab ?? selectedItem) === item.name && [
3072
+ styles$a.selectedItem,
3073
+ selectedItemStyle
3074
+ ]
3075
+ ],
3076
+ onPress: () => {
3077
+ setSelectedItem(item.name);
3078
+ handleSelectCategory(item.name, item.value);
3079
+ }
3080
+ },
3081
+ /* @__PURE__ */ React__default.createElement(
3082
+ CustomText$1,
3083
+ {
3084
+ text: item.name,
3085
+ variant: "L1_REGULAR",
3086
+ textColor: (activeTab ?? selectedItem) === item.name ? selectedItemTextColor : defaultItemTextColor
3087
+ }
3088
+ ),
3089
+ item?.isError && /* @__PURE__ */ React__default.createElement(
3090
+ View,
3091
+ {
3092
+ style: [
3093
+ styles$a.errorViewStyle,
3094
+ {
3095
+ backgroundColor: theme.SURFACE_BRAND_STATIC
3096
+ }
3097
+ ]
3098
+ }
3099
+ )
3100
+ ))
3101
+ ));
3102
+ };
3103
+ const styles$a = StyleSheet.create({
3104
+ container: {
3105
+ paddingVertical: 10
3106
+ },
3107
+ scrollViewContent: {
3108
+ flexDirection: "row",
3109
+ alignItems: "center"
3110
+ },
3111
+ item: {
3112
+ flexDirection: "row",
3113
+ alignItems: "center",
3114
+ gap: 8,
3115
+ padding: 12,
3116
+ borderBottomWidth: 2,
3117
+ borderBottomColor: "transparent"
3118
+ },
3119
+ selectedItem: {
3120
+ borderBottomColor: "white"
3121
+ },
3122
+ errorViewStyle: {
3123
+ width: 6,
3124
+ height: 6,
3125
+ borderRadius: 100
3126
+ }
3127
+ });
3128
+ var category = withThemeProvider(ScrollableList);
3129
+
3130
+ const styles$9 = StyleSheet.create({
3131
+ container: {
3132
+ flex: 1,
3133
+ backgroundColor: "black",
3134
+ padding: 20,
3135
+ justifyContent: "center"
3136
+ },
3137
+ headerText: {
3138
+ color: "white",
3139
+ fontSize: 18,
3140
+ fontWeight: "bold",
3141
+ marginBottom: 20
3142
+ },
3143
+ textInput: {
3144
+ backgroundColor: "white",
3145
+ borderRadius: 10,
3146
+ padding: 15,
3147
+ color: "black",
3148
+ fontSize: 16,
3149
+ textAlignVertical: "top",
3150
+ minHeight: 100
3151
+ },
3152
+ charCounter: {
3153
+ textAlign: "left",
3154
+ marginTop: 10
3155
+ },
3156
+ buttonContainer: {
3157
+ flexDirection: "row",
3158
+ //justifyContent: "space-between",
3159
+ marginTop: 20
3160
+ },
3161
+ feedbackButton: {
3162
+ backgroundColor: "transparent",
3163
+ borderColor: "white",
3164
+ borderWidth: 1,
3165
+ paddingVertical: 10,
3166
+ paddingHorizontal: 20,
3167
+ borderRadius: 30
3168
+ },
3169
+ cancelButton: {
3170
+ paddingVertical: 10,
3171
+ paddingHorizontal: 40
3172
+ }
3173
+ });
3174
+
3175
+ const FeedbackForm = ({
3176
+ title,
3177
+ clearAllData,
3178
+ handleSendFeedback,
3179
+ feedback,
3180
+ setFeedback
3181
+ }) => {
3182
+ const maxChars = 200;
3183
+ return /* @__PURE__ */ React__default.createElement(View, { style: styles$9.container }, /* @__PURE__ */ React__default.createElement(Text, { style: styles$9.headerText }, title), /* @__PURE__ */ React__default.createElement(
3184
+ TextInput,
3185
+ {
3186
+ style: [styles$9.textInput, { height: Math.max(100) }],
3187
+ placeholder: "Would you like to tell us more...",
3188
+ placeholderTextColor: "gray",
3189
+ multiline: true,
3190
+ maxLength: maxChars,
3191
+ value: feedback,
3192
+ onChangeText: (text) => setFeedback(text)
3193
+ }
3194
+ ), /* @__PURE__ */ React__default.createElement(
3195
+ CustomText$1,
3196
+ {
3197
+ text: `${feedback.length}/${maxChars} characters`,
3198
+ variant: "L2_REGULAR",
3199
+ textColor: "CONTENT_SECONDRY",
3200
+ style: styles$9.charCounter
3201
+ }
3202
+ ), /* @__PURE__ */ React__default.createElement(View, { style: styles$9.buttonContainer }, /* @__PURE__ */ React__default.createElement(Pressable, { style: styles$9.feedbackButton, onPress: handleSendFeedback }, /* @__PURE__ */ React__default.createElement(
3203
+ CustomText$1,
3204
+ {
3205
+ text: "Send feedback",
3206
+ variant: "L1_REGULAR",
3207
+ textColor: "CONTENT_PRIMARY"
3208
+ }
3209
+ )), /* @__PURE__ */ React__default.createElement(Pressable, { style: styles$9.cancelButton, onPress: clearAllData }, /* @__PURE__ */ React__default.createElement(
3210
+ CustomText$1,
3211
+ {
3212
+ text: "Cancel",
3213
+ variant: "L1_REGULAR",
3214
+ textColor: "CONTENT_PRIMARY"
3215
+ }
3216
+ ))));
3217
+ };
3218
+
3219
+ const DEFAULT_COUNTRY_CODE = "AE";
3220
+ const DEFAULT_CALLING_CODE = "+971";
3221
+
3222
+ const CountryDropDown = ({
3223
+ defaultCountryCode = DEFAULT_COUNTRY_CODE,
3224
+ defaultCallingCode = DEFAULT_CALLING_CODE,
3225
+ placeholder,
3226
+ onChangeText,
3227
+ value,
3228
+ containerStyle,
3229
+ inputStyle,
3230
+ countryPickerStyle,
3231
+ callingCodeStyle,
3232
+ getCountryCode,
3233
+ maxLength,
3234
+ errorMessage,
3235
+ label
3236
+ }) => {
3237
+ const [countryCode, setCountryCode] = useState(defaultCountryCode);
3238
+ const [callingCode, setCallingCode] = useState(defaultCallingCode);
3239
+ const [pickerVisible, setPickerVisible] = useState(false);
3240
+ const [isFocused, setIsFocused] = useState(false);
3241
+ const handleSelect = (country) => {
3242
+ setCountryCode(country.cca2);
3243
+ setCallingCode(`+${country.callingCode[0]}`);
3244
+ getCountryCode(`+${country.callingCode[0]}`);
3245
+ };
3246
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(View, { style: [styles$8.container, containerStyle] }, /* @__PURE__ */ React__default.createElement(View, { style: [styles$8.countryPickerContainer, countryPickerStyle] }, /* @__PURE__ */ React__default.createElement(
3247
+ CountryPicker,
3248
+ {
3249
+ withFilter: true,
3250
+ withFlag: true,
3251
+ countryCode,
3252
+ withCallingCode: true,
3253
+ onSelect: handleSelect,
3254
+ visible: pickerVisible
3255
+ }
3256
+ ), /* @__PURE__ */ React__default.createElement(
3257
+ Text,
3258
+ {
3259
+ onPress: () => setPickerVisible(true),
3260
+ style: [styles$8.callingCode, callingCodeStyle]
3261
+ },
3262
+ callingCode
3263
+ )), /* @__PURE__ */ React__default.createElement(View, { style: styles$8.flex }, (isFocused || value) && /* @__PURE__ */ React__default.createElement(
3264
+ CustomTypography,
3265
+ {
3266
+ variant: "L2_REGULAR",
3267
+ text: label ?? "",
3268
+ style: styles$8.floatingLabel
3269
+ }
3270
+ ), /* @__PURE__ */ React__default.createElement(
3271
+ TextInput,
3272
+ {
3273
+ style: [styles$8.input, inputStyle],
3274
+ placeholder: !isFocused ? placeholder : "",
3275
+ keyboardType: "phone-pad",
3276
+ value,
3277
+ onChangeText,
3278
+ onFocus: () => setIsFocused(true),
3279
+ onBlur: () => setIsFocused(false),
3280
+ maxLength,
3281
+ placeholderTextColor: theme.CONTENT_SECONDRY["light"]
3282
+ }
3283
+ ))), errorMessage ? /* @__PURE__ */ React__default.createElement(
3284
+ CustomTypography,
3285
+ {
3286
+ variant: "L2_REGULAR",
3287
+ text: errorMessage ?? "",
3288
+ style: {
3289
+ ...styles$8.errorStyle,
3290
+ color: DHRE_DEFAULT.DH_SEMENTIC_ERROR
3291
+ }
3292
+ }
3293
+ ) : null);
3294
+ };
3295
+ const styles$8 = StyleSheet.create({
3296
+ flex: {
3297
+ flex: 1
3298
+ },
3299
+ container: {
3300
+ flexDirection: "row",
3301
+ alignItems: "center",
3302
+ borderColor: DHRE_COLORS_TEXT.DH_BLACK,
3303
+ borderWidth: 1,
3304
+ height: verticalScale(48),
3305
+ borderRadius: moderateScale(8),
3306
+ paddingHorizontal: horizontalScale(10),
3307
+ paddingVertical: verticalScale(0),
3308
+ marginTop: verticalScale(20)
3309
+ },
3310
+ countryPickerContainer: {
3311
+ flexDirection: "row",
3312
+ alignItems: "center",
3313
+ marginRight: horizontalScale(10)
3314
+ },
3315
+ callingCode: {
3316
+ fontSize: moderateScale(16),
3317
+ color: DHRE_COLORS_TEXT.DH_BLACK
3318
+ },
3319
+ input: {
3320
+ flex: 1,
3321
+ fontSize: moderateScale(16),
3322
+ borderLeftWidth: 1,
3323
+ borderLeftColor: DHRE_COLORS_TEXT.DH_TEXTLIGHTEST,
3324
+ paddingLeft: horizontalScale(8)
3325
+ },
3326
+ floatingLabel: {
3327
+ position: "absolute",
3328
+ left: horizontalScale(-88),
3329
+ top: verticalScale(-8),
3330
+ fontSize: moderateScale(12),
3331
+ color: DHRE_COLORS_TEXT.DH_BLACK,
3332
+ backgroundColor: DHRE_COLORS_TEXT.DH_WHITE,
3333
+ paddingHorizontal: horizontalScale(4),
3334
+ zIndex: 1
3335
+ },
3336
+ errorStyle: {
3337
+ marginTop: verticalScale(4)
3338
+ }
3339
+ });
3340
+
3341
+ const CommonTextInput = ({
3342
+ label,
3343
+ value,
3344
+ onChangeText,
3345
+ isSecureTextEntry = false,
3346
+ keyboardType = "default",
3347
+ placeholderText,
3348
+ activeBorderColor = theme.CONTENT_PRIMARY["light"],
3349
+ inactiveBorderColor = theme.BORDER_PRIMARY["light"],
3350
+ inputStyle,
3351
+ maxLength,
3352
+ errorMessage,
3353
+ editable = true,
3354
+ textColor = theme.CONTENT_PRIMARY["light"],
3355
+ labelColor,
3356
+ handlePress,
3357
+ pointerEvents
3358
+ }) => {
3359
+ return /* @__PURE__ */ React__default.createElement(Pressable, { onPress: handlePress, style: styles$7.container }, /* @__PURE__ */ React__default.createElement(
3360
+ TextInput$1,
3361
+ {
3362
+ mode: "outlined",
3363
+ outlineStyle: {
3364
+ ...styles$7.outlineStyle,
3365
+ borderColor: value?.length ? activeBorderColor : inactiveBorderColor
3366
+ },
3367
+ label,
3368
+ value,
3369
+ onChangeText,
3370
+ secureTextEntry: isSecureTextEntry,
3371
+ keyboardType,
3372
+ theme: {
3373
+ colors: {
3374
+ primary: labelColor ? labelColor : DHRE_COLORS_TEXT.DH_BLACK
3375
+ }
3376
+ },
3377
+ style: [errorMessage ? styles$7.errorInput : styles$7.input, inputStyle],
3378
+ maxLength,
3379
+ textColor,
3380
+ placeholder: placeholderText,
3381
+ editable,
3382
+ pointerEvents
3383
+ }
3384
+ ), errorMessage ? /* @__PURE__ */ React__default.createElement(
3385
+ CustomTypography,
3386
+ {
3387
+ variant: "L2_REGULAR",
3388
+ text: errorMessage ?? "",
3389
+ style: {
3390
+ ...styles$7.errorStyle,
3391
+ color: DHRE_DEFAULT.DH_SEMENTIC_ERROR
3392
+ }
3393
+ }
3394
+ ) : null);
3395
+ };
3396
+ const styles$7 = StyleSheet.create({
3397
+ container: {
3398
+ justifyContent: "center"
3399
+ },
3400
+ touchable: {
3401
+ width: "100%"
3402
+ },
3403
+ input: {
3404
+ marginVertical: verticalScale(8),
3405
+ backgroundColor: DHRE_COLORS_TEXT.DH_WHITE,
3406
+ paddingVertical: 0,
3407
+ height: verticalScale(48),
3408
+ justifyContent: "center"
3409
+ },
3410
+ errorInput: {
3411
+ marginTop: verticalScale(12),
3412
+ backgroundColor: DHRE_COLORS_TEXT.DH_WHITE,
3413
+ paddingVertical: 0,
3414
+ height: verticalScale(48),
3415
+ justifyContent: "center"
3416
+ },
3417
+ outlineStyle: {
3418
+ borderWidth: 1,
3419
+ height: verticalScale(48),
3420
+ borderRadius: moderateScale(8)
3421
+ },
3422
+ errorStyle: {
3423
+ marginTop: verticalScale(4)
3424
+ }
3425
+ });
3426
+
3427
+ const CustomDropdown = ({
3428
+ data,
3429
+ labelField = "label",
3430
+ valueField = "value",
3431
+ label,
3432
+ placeholder,
3433
+ containerStyle,
3434
+ dropdownStyle,
3435
+ placeholderStyle,
3436
+ selectedTextStyle,
3437
+ iconStyle,
3438
+ labelStyle,
3439
+ defaultValue,
3440
+ iconColor,
3441
+ itemTextStyle,
3442
+ onValueChange,
3443
+ itemContainerStyle
3444
+ }) => {
3445
+ const [value, setValue] = useState(defaultValue);
3446
+ const [isFocus, setIsFocus] = useState(false);
3447
+ const renderLabel = () => {
3448
+ if (value || isFocus) {
3449
+ return /* @__PURE__ */ React__default.createElement(
3450
+ Text,
3451
+ {
3452
+ style: [
3453
+ styles$6.label,
3454
+ labelStyle,
3455
+ isFocus && { color: theme.BORDER_INVERTED["light"] }
3456
+ ]
3457
+ },
3458
+ label
3459
+ );
3460
+ }
3461
+ return null;
3462
+ };
3463
+ const handleValueChange = (item) => {
3464
+ const newValue = item[valueField];
3465
+ setValue(newValue);
3466
+ setIsFocus(false);
3467
+ if (onValueChange) {
3468
+ onValueChange(newValue);
3469
+ }
3470
+ };
3471
+ return /* @__PURE__ */ React__default.createElement(View, { style: [styles$6.container, containerStyle] }, label && renderLabel(), /* @__PURE__ */ React__default.createElement(
3472
+ Dropdown,
3473
+ {
3474
+ style: [
3475
+ styles$6.dropdown,
3476
+ dropdownStyle,
3477
+ isFocus && { borderColor: theme.BORDER_INVERTED["light"] }
3478
+ ],
3479
+ placeholderStyle: [styles$6.placeholderStyle, placeholderStyle],
3480
+ selectedTextStyle: [styles$6.selectedTextStyle, selectedTextStyle],
3481
+ iconStyle: [styles$6.iconStyle, iconStyle],
3482
+ data: data ?? [],
3483
+ labelField,
3484
+ valueField,
3485
+ placeholder: !isFocus ? placeholder : "",
3486
+ value,
3487
+ onFocus: () => setIsFocus(true),
3488
+ onBlur: () => setIsFocus(false),
3489
+ onChange: handleValueChange,
3490
+ iconColor,
3491
+ dropdownPosition: "bottom",
3492
+ itemTextStyle,
3493
+ itemContainerStyle: [styles$6.itemListStyle, itemContainerStyle]
3494
+ }
3495
+ ));
3496
+ };
3497
+ const styles$6 = StyleSheet.create({
3498
+ container: {
3499
+ backgroundColor: theme.SURFACE_STATIC["light"],
3500
+ marginVertical: verticalScale(4)
3501
+ // External margin
3502
+ },
3503
+ dropdown: {
3504
+ height: verticalScale(48),
3505
+ borderColor: theme.BORDER_PRIMARY["light"],
3506
+ borderWidth: 1,
3507
+ borderRadius: 8,
3508
+ paddingHorizontal: horizontalScale(12),
3509
+ backgroundColor: theme.SURFACE_STATIC["light"]
3510
+ },
3511
+ label: {
3512
+ position: "absolute",
3513
+ backgroundColor: theme.SURFACE_STATIC["light"],
3514
+ left: horizontalScale(10),
3515
+ top: verticalScale(-8),
3516
+ zIndex: 10,
3517
+ paddingHorizontal: horizontalScale(4),
3518
+ fontSize: verticalScale(12)
3519
+ },
3520
+ placeholderStyle: {
3521
+ fontSize: verticalScale(16)
3522
+ },
3523
+ selectedTextStyle: {
3524
+ fontSize: verticalScale(16)
3525
+ },
3526
+ iconStyle: {
3527
+ width: horizontalScale(20),
3528
+ height: verticalScale(20)
3529
+ },
3530
+ itemListStyle: {
3531
+ maxHeight: verticalScale(150)
3532
+ }
3533
+ });
3534
+
3535
+ const styles$5 = StyleSheet.create({
3536
+ mainContainer: {
3537
+ flexDirection: "row",
3538
+ justifyContent: "space-between",
3539
+ alignItems: "center",
3540
+ width: horizontalScale(75),
3541
+ height: verticalScale(32),
3542
+ borderRadius: moderateScale(25),
3543
+ padding: moderateScale(4)
3544
+ },
3545
+ circle: {
3546
+ width: horizontalScale(38),
3547
+ height: verticalScale(24),
3548
+ borderRadius: moderateScale(25)
3549
+ },
3550
+ activeText: {
3551
+ position: "absolute",
3552
+ left: horizontalScale(12)
3553
+ },
3554
+ inActiveText: {
3555
+ position: "absolute",
3556
+ top: verticalScale(2),
3557
+ right: horizontalScale(18)
3558
+ }
3559
+ });
3560
+
3561
+ const CustomSwitchBtn = ({
3562
+ value,
3563
+ onValueChange,
3564
+ disabled = false,
3565
+ activeText,
3566
+ activeTextVariant = FontStyle.L2_BOLD,
3567
+ inActiveText,
3568
+ inActiveTextVariant = FontStyle.B3_REGULAR,
3569
+ containerStyle,
3570
+ activeTextStyle,
3571
+ inActiveTextStyle,
3572
+ circleStyle
3573
+ }) => {
3574
+ const [animatedValue] = useState(new Animated.Value(value ? 1 : 0));
3575
+ const translateX = animatedValue.interpolate({
3576
+ inputRange: [0, 1],
3577
+ outputRange: [0, 28]
3578
+ });
3579
+ useEffect(() => {
3580
+ Animated.timing(animatedValue, {
3581
+ toValue: value ? 1 : 0,
3582
+ duration: 300,
3583
+ useNativeDriver: false
3584
+ }).start();
3585
+ }, [value]);
3586
+ const toggleSwitch = () => {
3587
+ onValueChange(!value);
3588
+ };
3589
+ return /* @__PURE__ */ React__default.createElement(
3590
+ Pressable,
3591
+ {
3592
+ disabled,
3593
+ onPress: toggleSwitch,
3594
+ style: { ...styles$5.mainContainer, ...containerStyle }
3595
+ },
3596
+ /* @__PURE__ */ React__default.createElement(
3597
+ Animated.View,
3598
+ {
3599
+ style: [styles$5.circle, { transform: [{ translateX }], ...circleStyle }]
3600
+ }
3601
+ ),
3602
+ /* @__PURE__ */ React__default.createElement(
3603
+ CustomTypography,
3604
+ {
3605
+ style: [styles$5.activeText, value ? inActiveTextStyle : activeTextStyle],
3606
+ text: activeText,
3607
+ variant: activeTextVariant
3608
+ }
3609
+ ),
3610
+ /* @__PURE__ */ React__default.createElement(
3611
+ CustomTypography,
3612
+ {
3613
+ style: [
3614
+ styles$5.inActiveText,
3615
+ value ? activeTextStyle : inActiveTextStyle
3616
+ ],
3617
+ text: inActiveText,
3618
+ variant: inActiveTextVariant
3619
+ }
3620
+ )
3621
+ );
3622
+ };
3623
+
3624
+ var __defProp = Object.defineProperty;
3625
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3626
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
3627
+ class ToastService {
3628
+ constructor() {
3629
+ __publicField(this, "toastRef", null);
3630
+ }
3631
+ setRef(ref) {
3632
+ this.toastRef = ref;
3633
+ }
3634
+ showToast(message, duration = 3e3, isSuccess = true, buttonText = null, buttonAction = null) {
3635
+ if (this.toastRef) {
3636
+ this.toastRef.showToast(
3637
+ message,
3638
+ duration,
3639
+ isSuccess,
3640
+ buttonText,
3641
+ buttonAction
3642
+ );
3643
+ }
3644
+ }
3645
+ }
3646
+ const toastService = new ToastService();
3647
+
3648
+ const TagsComponent = ({
3649
+ tagList,
3650
+ selectedTag,
3651
+ handleTagPress
3652
+ }) => {
3653
+ const reorderedTags = () => {
3654
+ if (selectedTag) {
3655
+ return [
3656
+ tagList.find((tag) => tag.name === selectedTag),
3657
+ ...tagList.filter((tag) => tag.name !== selectedTag)
3658
+ ];
3659
+ }
3660
+ return tagList;
3661
+ };
3662
+ const renderTagItem = ({ item }) => /* @__PURE__ */ React__default.createElement(
3663
+ Pressable,
3664
+ {
3665
+ onPress: () => handleTagPress?.(item.name),
3666
+ style: [
3667
+ styles$4.tagButton,
3668
+ selectedTag === item?.name ? styles$4.selectedTagButton : styles$4.unselectedTagButton
3669
+ ]
3670
+ },
3671
+ /* @__PURE__ */ React__default.createElement(
3672
+ Text,
3673
+ {
3674
+ style: [
3675
+ styles$4.tagText,
3676
+ selectedTag === item?.name ? styles$4.selectedTagText : styles$4.unselectedTagText
3677
+ ]
3678
+ },
3679
+ item?.name
3680
+ ),
3681
+ selectedTag === item?.name && /* @__PURE__ */ React__default.createElement(Text, { style: styles$4.closeButton }, "\u2715")
3682
+ );
3683
+ return /* @__PURE__ */ React__default.createElement(View, null, /* @__PURE__ */ React__default.createElement(
3684
+ FlatList,
3685
+ {
3686
+ data: reorderedTags(),
3687
+ renderItem: renderTagItem,
3688
+ keyExtractor: (item) => item?.name,
3689
+ horizontal: true,
3690
+ showsHorizontalScrollIndicator: false,
3691
+ contentContainerStyle: styles$4.listContainer
3692
+ }
3693
+ ));
3694
+ };
3695
+ const styles$4 = StyleSheet.create({
3696
+ listContainer: {
3697
+ paddingHorizontal: 10,
3698
+ alignItems: "center"
3699
+ },
3700
+ tagButton: {
3701
+ flexDirection: "row",
3702
+ alignItems: "center",
3703
+ paddingVertical: 8,
3704
+ paddingHorizontal: 12,
3705
+ borderRadius: 20,
3706
+ marginHorizontal: 8,
3707
+ borderWidth: 1
3708
+ },
3709
+ selectedTagButton: {
3710
+ backgroundColor: "#FFF",
3711
+ borderColor: "#000"
3712
+ },
3713
+ unselectedTagButton: {
3714
+ backgroundColor: "transparent",
3715
+ borderColor: "#888"
3716
+ },
3717
+ tagText: {
3718
+ fontSize: 16
3719
+ },
3720
+ selectedTagText: {
3721
+ color: "#000"
3722
+ },
3723
+ unselectedTagText: {
3724
+ color: "#888"
3725
+ },
3726
+ closeButton: {
3727
+ marginLeft: 10,
3728
+ fontSize: 18,
3729
+ color: "#000"
3730
+ }
3731
+ });
3732
+
3733
+ const styles$3 = StyleSheet.create({
3734
+ container: {
3735
+ flexDirection: "row",
3736
+ alignItems: "center",
3737
+ justifyContent: "space-between",
3738
+ paddingVertical: verticalScale(16),
3739
+ paddingHorizontal: horizontalScale(24),
3740
+ borderWidth: 1,
3741
+ borderStyle: "dashed",
3742
+ borderRadius: moderateScale(8),
3743
+ marginBottom: verticalScale(8)
3744
+ },
3745
+ fileUploadContainerStyle: {
3746
+ flexDirection: "row",
3747
+ alignItems: "center",
3748
+ justifyContent: "space-between",
3749
+ paddingVertical: verticalScale(16),
3750
+ paddingHorizontal: horizontalScale(24),
3751
+ borderRadius: moderateScale(8),
3752
+ marginBottom: verticalScale(8)
3753
+ },
3754
+ innerContainer: { flexDirection: "row", columnGap: horizontalScale(24) },
3755
+ titleContainer: { gap: verticalScale(4) }
3756
+ });
3757
+
3758
+ const CustomDocumentPicker = ({
3759
+ onDocumentUpload,
3760
+ title = "Upload Images/Videos",
3761
+ hint = "PNG, JPEG (max size. 4MB)",
3762
+ maxFileSize = 4,
3763
+ fileTypes = [DocumentPicker.types.images, DocumentPicker.types.pdf],
3764
+ containerStyle,
3765
+ titleStyle,
3766
+ hintStyle
3767
+ }) => {
3768
+ const [error, setError] = useState("");
3769
+ const [docDetails, setDocDetails] = useState();
3770
+ const { theme } = useTheme();
3771
+ const pickDocument = useCallback(async () => {
3772
+ try {
3773
+ const res = await DocumentPicker.pickSingle({
3774
+ type: fileTypes
3775
+ });
3776
+ if (res?.size && res.size > maxFileSize * 1024 * 1024) {
3777
+ setError(
3778
+ `File size higher than ${maxFileSize}MB. Please upload a smaller file.`
3779
+ );
3780
+ return;
3781
+ }
3782
+ setError("");
3783
+ setDocDetails(res);
3784
+ const base64Data = await RNFS.readFile(res.uri, "base64");
3785
+ onDocumentUpload(base64Data, res);
3786
+ } catch (err) {
3787
+ if (DocumentPicker.isCancel(err)) {
3788
+ Alert.alert("User canceled the picker");
3789
+ } else if (err instanceof Error) {
3790
+ Alert.alert("Unknown Error: " + err.message);
3791
+ } else {
3792
+ Alert.alert("Unknown Error: " + JSON.stringify(err));
3793
+ }
3794
+ }
3795
+ }, [fileTypes, maxFileSize, onDocumentUpload]);
3796
+ const removeDocument = useCallback(() => {
3797
+ setDocDetails(void 0);
3798
+ }, []);
3799
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(
3800
+ View,
3801
+ {
3802
+ style: [
3803
+ docDetails ? styles$3.fileUploadContainerStyle : styles$3.container,
3804
+ { borderColor: error ? theme.ERROR : theme.BORDER_SECONDRY },
3805
+ docDetails ? { backgroundColor: theme.SURFACE_SECONDARY } : {},
3806
+ containerStyle
3807
+ ]
3808
+ },
3809
+ /* @__PURE__ */ React__default.createElement(Pressable, { style: styles$3.innerContainer, onPress: pickDocument }, docDetails ? /* @__PURE__ */ React__default.createElement(SvgFileIcon, null) : /* @__PURE__ */ React__default.createElement(SvgUploadFileIcon, null), /* @__PURE__ */ React__default.createElement(View, { style: styles$3.titleContainer }, /* @__PURE__ */ React__default.createElement(
3810
+ CustomTypography,
3811
+ {
3812
+ variant: FontStyle.L2_REGULAR,
3813
+ text: docDetails?.name ?? title,
3814
+ style: [{ color: theme.CONTENT_PRIMARY }, titleStyle]
3815
+ }
3816
+ ), !docDetails && /* @__PURE__ */ React__default.createElement(
3817
+ CustomTypography,
3818
+ {
3819
+ variant: FontStyle.L3_REGULAR,
3820
+ text: hint,
3821
+ style: [{ color: theme.CONTENT_SECONDRY }, hintStyle]
3822
+ }
3823
+ ))),
3824
+ docDetails && /* @__PURE__ */ React__default.createElement(SvgTrash, { onPress: removeDocument })
3825
+ ), error && /* @__PURE__ */ React__default.createElement(
3826
+ CustomTypography,
3827
+ {
3828
+ variant: FontStyle.L2_REGULAR,
3829
+ text: error,
3830
+ style: { color: theme.ERROR }
3831
+ }
3832
+ ));
3833
+ };
3834
+ var CustomDocumentPicker$1 = withThemeProvider(memo(CustomDocumentPicker));
3835
+
3836
+ const styles$2 = StyleSheet.create({
3837
+ textInputContainer: {
3838
+ flexDirection: "row",
3839
+ justifyContent: "space-between",
3840
+ marginTop: verticalScale(8)
3841
+ },
3842
+ textInputStyle: {
3843
+ height: verticalScale(48),
3844
+ width: moderateScale(72),
3845
+ borderRadius: moderateScale(8),
3846
+ borderWidth: 1,
3847
+ textAlign: "center",
3848
+ fontSize: moderateScale(12)
3849
+ },
3850
+ resendOtpContainer: {
3851
+ flexDirection: "row",
3852
+ alignItems: "center",
3853
+ justifyContent: "space-between",
3854
+ marginTop: verticalScale(12)
3855
+ },
3856
+ resendOtpTextEnable: {
3857
+ textDecorationLine: "underline"
3858
+ }
3859
+ });
3860
+
3861
+ const OTPInput = React__default.forwardRef(
3862
+ ({
3863
+ length = 4,
3864
+ onComplete,
3865
+ resendOTP,
3866
+ errorMessage,
3867
+ testId = "",
3868
+ otpContainerStyle
3869
+ }, ref) => {
3870
+ const [otp, setOTP] = useState("");
3871
+ const [isResendOtpEnable, setIsResendOtpEnable] = useState(false);
3872
+ const [activeInput, setActiveInput] = useState(null);
3873
+ const { theme } = useTheme();
3874
+ const refs = useRef([]);
3875
+ refs.current = Array(length).fill(0).map((_, index) => refs.current[index] || null);
3876
+ useEffect(() => {
3877
+ enableResendOtp();
3878
+ }, []);
3879
+ const onClickResendOTP = () => {
3880
+ setIsResendOtpEnable(false);
3881
+ enableResendOtp();
3882
+ resendOTP?.();
3883
+ };
3884
+ const enableResendOtp = () => {
3885
+ setTimeout(() => {
3886
+ setIsResendOtpEnable(true);
3887
+ }, 5e3);
3888
+ };
3889
+ React__default.useImperativeHandle(ref, () => ({
3890
+ reset() {
3891
+ setOTP("");
3892
+ }
3893
+ }));
3894
+ const handleChange = (index, value) => {
3895
+ const regex = /^\d+$/;
3896
+ if (value.length === 1 && regex.test(value) && index >= 0 && index < length) {
3897
+ const newOTP = `${otp}${value}`;
3898
+ setOTP(newOTP);
3899
+ refs.current[index + 1]?.focus();
3900
+ } else if (value.length === 0 && index > 0) {
3901
+ const newOTP = otp.slice(0, -1);
3902
+ setOTP(newOTP);
3903
+ refs.current[index - 1]?.focus();
3904
+ } else {
3905
+ const newOTP = otp.slice(0, -1);
3906
+ setOTP(newOTP);
3907
+ refs.current[index]?.focus();
3908
+ }
3909
+ };
3910
+ const handleKeyPress = (e, index) => {
3911
+ if (e.nativeEvent.key === "Backspace" && index > 0) {
3912
+ refs.current[index - 1]?.focus();
3913
+ }
3914
+ };
3915
+ useEffect(() => {
3916
+ if (otp.length === length) {
3917
+ onComplete?.(otp);
3918
+ }
3919
+ }, [otp]);
3920
+ return /* @__PURE__ */ React__default.createElement(View, { style: { ...otpContainerStyle } }, /* @__PURE__ */ React__default.createElement(
3921
+ CustomTypography,
3922
+ {
3923
+ text: "OTP",
3924
+ variant: FontStyle.B4_REGULAR,
3925
+ style: {
3926
+ color: otp?.length ? theme.CONTENT_PRIMARY : theme.CONTENT_SECONDRY,
3927
+ textAlign: "left"
3928
+ }
3929
+ }
3930
+ ), /* @__PURE__ */ React__default.createElement(View, { style: { ...styles$2.textInputContainer } }, Array.from({ length }).map((_, index) => /* @__PURE__ */ React__default.createElement(
3931
+ TextInput,
3932
+ {
3933
+ key: index?.toString(),
3934
+ style: {
3935
+ ...styles$2.textInputStyle,
3936
+ color: theme.CONTENT_PRIMARY,
3937
+ borderColor: errorMessage ? theme.ERROR : otp.length === length ? theme.SUCCESS : activeInput === index ? theme.BORDER_INVERTED : theme.BORDER_PRIMARY
3938
+ },
3939
+ onFocus: () => setActiveInput(index),
3940
+ onBlur: () => setActiveInput(null),
3941
+ onKeyPress: (e) => handleKeyPress(e, index),
3942
+ onChangeText: (text) => handleChange(index, text),
3943
+ value: otp[index] ? "\u25CF" : "",
3944
+ placeholder: "",
3945
+ keyboardType: "numeric",
3946
+ ref: (el) => refs.current[index] = el,
3947
+ returnKeyType: otp.length === length ? "done" : "next",
3948
+ selectionColor: theme.CONTENT_PRIMARY
3949
+ }
3950
+ ))), /* @__PURE__ */ React__default.createElement(View, { style: styles$2.resendOtpContainer }, errorMessage ? /* @__PURE__ */ React__default.createElement(
3951
+ CustomTypography,
3952
+ {
3953
+ text: errorMessage,
3954
+ variant: FontStyle.L2_REGULAR,
3955
+ style: {
3956
+ color: theme.ERROR
3957
+ }
3958
+ }
3959
+ ) : /* @__PURE__ */ React__default.createElement(View, null), /* @__PURE__ */ React__default.createElement(Pressable, { onPress: onClickResendOTP, disabled: !isResendOtpEnable }, /* @__PURE__ */ React__default.createElement(
3960
+ CustomTypography,
3961
+ {
3962
+ text: "Resend OTP",
3963
+ variant: FontStyle.L2_REGULAR,
3964
+ style: {
3965
+ textDecorationLine: "underline",
3966
+ color: isResendOtpEnable ? theme.CONTENT_PRIMARY : theme.CONTENT_DISABLE
3967
+ }
3968
+ }
3969
+ ))));
3970
+ }
3971
+ );
3972
+ var index$2 = withThemeProvider(OTPInput);
3973
+ OTPInput.displayName = "OTPInput";
3974
+
3975
+ const styles$1 = StyleSheet.create({
3976
+ stepperContainer: {
3977
+ flexDirection: "row",
3978
+ marginBottom: 24,
3979
+ justifyContent: "space-between"
3980
+ },
3981
+ stepperWrapper: {
3982
+ flex: 1,
3983
+ marginRight: 10,
3984
+ overflow: "hidden"
3985
+ },
3986
+ lastStepWrapper: { flex: 0.5 },
3987
+ stepperSeparatorContainer: {
3988
+ flexDirection: "row",
3989
+ alignItems: "center"
3990
+ },
3991
+ activeStepCircle: {
3992
+ height: 24,
3993
+ width: 24,
3994
+ borderRadius: 12,
3995
+ alignItems: "center",
3996
+ borderWidth: 2,
3997
+ justifyContent: "center"
3998
+ },
3999
+ activeStepLabel: {
4000
+ marginTop: 11
4001
+ },
4002
+ inactiveStepCircle: {
4003
+ height: 24,
4004
+ width: 24,
4005
+ borderRadius: 12,
4006
+ alignItems: "center",
4007
+ borderWidth: 2,
4008
+ justifyContent: "center"
4009
+ },
4010
+ inactiveStepLabel: {
4011
+ marginTop: 11
4012
+ },
4013
+ completeStepCircle: {
4014
+ height: 24,
4015
+ width: 24,
4016
+ borderRadius: 12,
4017
+ alignItems: "center",
4018
+ justifyContent: "center"
4019
+ },
4020
+ completeStepLabel: {
4021
+ marginTop: 11
4022
+ },
4023
+ completeStepDivider: {
4024
+ borderStyle: "solid"
4025
+ },
4026
+ stepCountCircle: {
4027
+ height: 24,
4028
+ width: 24,
4029
+ borderRadius: 12,
4030
+ alignItems: "center",
4031
+ borderWidth: 1,
4032
+ justifyContent: "center"
4033
+ },
4034
+ countStepLabel: {
4035
+ marginTop: 11
4036
+ },
4037
+ separator: {
4038
+ borderWidth: 1,
4039
+ borderStyle: "dashed",
4040
+ width: "100%",
4041
+ marginLeft: 10
4042
+ },
4043
+ lableContainer: { width: 60 }
4044
+ });
4045
+
4046
+ var Status = /* @__PURE__ */ ((Status2) => {
4047
+ Status2["Active"] = "Active";
4048
+ Status2["Inactive"] = "Inactive";
4049
+ Status2["Completed"] = "Completed";
4050
+ Status2["Rejected"] = "Rejected";
4051
+ Status2["Count"] = "Count";
4052
+ return Status2;
4053
+ })(Status || {});
4054
+
4055
+ const Stepper = ({
4056
+ containerStyle,
4057
+ showStepCount = false,
4058
+ showStatus = false,
4059
+ data
4060
+ }) => {
4061
+ const { theme } = useTheme();
4062
+ const renderCircleStyle = (status) => {
4063
+ if (status === Status.Active) {
4064
+ return { ...styles$1.activeStepCircle, borderColor: theme.CONTENT_PRIMARY };
4065
+ } else if (status === Status.Inactive) {
4066
+ return {
4067
+ ...styles$1.inactiveStepCircle,
4068
+ borderColor: theme.CONTENT_SECONDRY
4069
+ };
4070
+ } else if (status === Status.Completed) {
4071
+ return { ...styles$1.completeStepCircle, backgroundColor: theme.SUCCESS };
4072
+ } else {
4073
+ return { ...styles$1.stepCountCircle, borderColor: theme.BORDER_PRIMARY };
4074
+ }
4075
+ };
4076
+ const renderLableStyle = (status) => {
4077
+ if (status === Status.Active) {
4078
+ return { ...styles$1.activeStepLabel, color: theme.CONTENT_PRIMARY };
4079
+ } else if (status === Status.Inactive) {
4080
+ return { ...styles$1.inactiveStepLabel, color: theme.CONTENT_SECONDRY };
4081
+ } else if (status === Status.Completed) {
4082
+ return { ...styles$1.completeStepLabel, color: theme.CONTENT_PRIMARY };
4083
+ } else {
4084
+ return { ...styles$1.countStepLabel, color: theme.CONTENT_PRIMARY };
4085
+ }
4086
+ };
4087
+ const renderDividerStyle = (status) => {
4088
+ if (status === Status.Active) {
4089
+ return { borderColor: theme.BORDER_PRIMARY };
4090
+ } else if (status === Status.Inactive) {
4091
+ return { borderColor: theme.BORDER_PRIMARY };
4092
+ } else if (status === Status.Completed) {
4093
+ return {
4094
+ ...styles$1.completeStepDivider,
4095
+ borderColor: theme.CONTENT_PRIMARY
4096
+ };
4097
+ } else {
4098
+ return { borderColor: theme.CONTENT_SECONDRY };
4099
+ }
4100
+ };
4101
+ return /* @__PURE__ */ React__default.createElement(View, { style: { ...styles$1.stepperContainer, ...containerStyle } }, data?.map((item, index) => {
4102
+ const stepCircleStyle = renderCircleStyle(item?.status);
4103
+ const dividerStyle = renderDividerStyle(item?.status);
4104
+ const labelStyle = renderLableStyle(item?.status);
4105
+ const lastViewStyle = index === data?.length - 1 ? styles$1.lastStepWrapper : null;
4106
+ return /* @__PURE__ */ React__default.createElement(
4107
+ View,
4108
+ {
4109
+ key: index?.toString(),
4110
+ style: { ...styles$1.stepperWrapper, ...lastViewStyle }
4111
+ },
4112
+ /* @__PURE__ */ React__default.createElement(View, { style: styles$1.stepperSeparatorContainer }, /* @__PURE__ */ React__default.createElement(View, { style: { ...stepCircleStyle } }, showStepCount && /* @__PURE__ */ React__default.createElement(
4113
+ CustomTypography,
4114
+ {
4115
+ text: item?.step,
4116
+ variant: FontStyle.L2_REGULAR,
4117
+ style: {
4118
+ color: theme.CONTENT_PRIMARY
4119
+ }
4120
+ }
4121
+ ), showStatus && item?.status === Status.Completed && /* @__PURE__ */ React__default.createElement(SvgCheckWhite, null)), index != data?.length - 1 && /* @__PURE__ */ React__default.createElement(View, { style: { ...styles$1.separator, ...dividerStyle } })),
4122
+ /* @__PURE__ */ React__default.createElement(View, { style: styles$1.lableContainer }, /* @__PURE__ */ React__default.createElement(
4123
+ CustomTypography,
4124
+ {
4125
+ text: item?.label,
4126
+ variant: FontStyle.L3_REGULAR,
4127
+ style: labelStyle
4128
+ }
4129
+ ))
4130
+ );
4131
+ }));
4132
+ };
4133
+ var index$1 = withThemeProvider(Stepper);
4134
+
4135
+ const styles = StyleSheet.create({
4136
+ container: {
4137
+ flex: 1,
4138
+ justifyContent: "center",
4139
+ alignItems: "center"
4140
+ },
4141
+ sliderContainer: {
4142
+ height: verticalScale(48),
4143
+ borderRadius: moderateScale(25),
4144
+ overflow: "hidden",
4145
+ justifyContent: "center"
4146
+ },
4147
+ slider: {
4148
+ height: "100%",
4149
+ width: "100%",
4150
+ position: "absolute"
4151
+ },
4152
+ button: {
4153
+ height: verticalScale(40),
4154
+ justifyContent: "center",
4155
+ alignItems: "center",
4156
+ borderRadius: moderateScale(20),
4157
+ margin: moderateScale(4)
4158
+ },
4159
+ buttonTextCOntainer: {
4160
+ position: "absolute",
4161
+ left: 0,
4162
+ right: 0,
4163
+ bottom: 0,
4164
+ top: 0,
4165
+ alignItems: "center",
4166
+ justifyContent: "center"
4167
+ }
4168
+ });
4169
+
4170
+ const { width } = Dimensions.get("window");
4171
+ const BUTTON_WIDTH = 40;
4172
+ const CustomSlideButton = ({ label, onComplete }) => {
4173
+ const pan = useRef(new Animated.Value(0)).current;
4174
+ const panResponder = useRef(
4175
+ PanResponder.create({
4176
+ onMoveShouldSetPanResponder: (evt, gestureState) => {
4177
+ return gestureState.dx > 0;
4178
+ },
4179
+ onPanResponderGrant: () => {
4180
+ },
4181
+ onPanResponderMove: (evt, gestureState) => {
4182
+ if (gestureState.dx < width - BUTTON_WIDTH) {
4183
+ pan.setValue(gestureState.dx);
4184
+ }
4185
+ },
4186
+ onPanResponderRelease: (evt, gestureState) => {
4187
+ if (gestureState.dx > width - BUTTON_WIDTH - 100) {
4188
+ onComplete && onComplete();
4189
+ Animated.spring(pan, {
4190
+ toValue: width - BUTTON_WIDTH - 10,
4191
+ useNativeDriver: false
4192
+ }).start();
4193
+ } else {
4194
+ Animated.spring(pan, {
4195
+ toValue: 0,
4196
+ useNativeDriver: false
4197
+ }).start();
4198
+ }
4199
+ }
4200
+ })
4201
+ ).current;
4202
+ const { theme } = useTheme();
4203
+ return /* @__PURE__ */ React__default.createElement(
4204
+ View,
4205
+ {
4206
+ style: {
4207
+ ...styles.sliderContainer,
4208
+ backgroundColor: theme.SURFACE_INVERTED
4209
+ }
4210
+ },
4211
+ /* @__PURE__ */ React__default.createElement(View, { style: styles.buttonTextCOntainer }, /* @__PURE__ */ React__default.createElement(
4212
+ CustomTypography,
4213
+ {
4214
+ text: label,
4215
+ variant: FontStyle.L1_REGULAR,
4216
+ style: {
4217
+ color: theme.CONTENT_INVERTED
4218
+ }
4219
+ }
4220
+ )),
4221
+ /* @__PURE__ */ React__default.createElement(
4222
+ Animated.View,
4223
+ {
4224
+ style: [styles.slider, { transform: [{ translateX: pan }] }],
4225
+ ...panResponder.panHandlers
4226
+ },
4227
+ /* @__PURE__ */ React__default.createElement(
4228
+ View,
4229
+ {
4230
+ style: {
4231
+ ...styles.button,
4232
+ backgroundColor: theme.SURFACE_PRIMARY,
4233
+ width: BUTTON_WIDTH
4234
+ }
4235
+ },
4236
+ /* @__PURE__ */ React__default.createElement(SvgCaretRight, null)
4237
+ )
4238
+ )
4239
+ );
4240
+ };
4241
+ var index = withThemeProvider(CustomSlideButton);
4242
+
4243
+ const copyToClipboard = (textToCopy) => {
4244
+ Clipboard.setString(textToCopy);
4245
+ };
4246
+
4247
+ export { Accordion, Badge$1 as Badge, BottomDrawer, CustomButton$1 as Button, Cards, category as Category, Checkbox as CheckBox, ContactModel, CountryDropDown as CountryPicker, CustomDocumentPicker$1 as CustomDocumentPicker, CustomDropdown$1 as CustomDropdown, CustomHeader, CustomIcon, CustomLoader, CustomProgressBar, CustomSearchBar, index as CustomSlideButton, CustomSwitchBtn, CustomText$1 as CustomText, CustomTextInput, CustomTooltip, CustomTypography, DHRE_COLORS_TEXT, DHRE_DEFAULT, DateRangePicker, CustomDropdown as DropDown, FONT_STYLES, FeedbackForm, FileUpload, FontStyle, Line, NotificationBandge, index$2 as OTPInput, OurOffices as OurOfficesButton, PdfView, PopUp, TagsComponent as SingleSelectionTags, Star as StarRating, index$1 as Stepper, SwipableList, Tabs$1 as Tabs, Tags, CommonTextInput as TextInput, Theme, Toast, CustomSwitch as ToggleButton, Topic$1 as Topic, copyToClipboard, theme as default, horizontalScale, moderateScale, toastService, verticalScale };
4248
+ //# sourceMappingURL=index.mjs.map