dhre-ui-kit 0.0.95 → 0.0.97

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