related-ui-components 1.1.6

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 (571) hide show
  1. package/README.md +200 -0
  2. package/lib/commonjs/app/_layout.js +41 -0
  3. package/lib/commonjs/app/_layout.js.map +1 -0
  4. package/lib/commonjs/app/index.js +153 -0
  5. package/lib/commonjs/app/index.js.map +1 -0
  6. package/lib/commonjs/assets/components/BannerWithDetails.png +0 -0
  7. package/lib/commonjs/assets/components/DealCard-Horizontal.png +0 -0
  8. package/lib/commonjs/assets/components/DealCard-Vertical.png +0 -0
  9. package/lib/commonjs/assets/components/DealCard-floating.png +0 -0
  10. package/lib/commonjs/assets/components/DealCard-nested.png +0 -0
  11. package/lib/commonjs/assets/components/Filters.png +0 -0
  12. package/lib/commonjs/assets/components/Popup-1.png +0 -0
  13. package/lib/commonjs/assets/components/Popup-2.png +0 -0
  14. package/lib/commonjs/assets/components/Popup-3.png +0 -0
  15. package/lib/commonjs/assets/components/RedemptionOption-Horizontal.png +0 -0
  16. package/lib/commonjs/assets/components/RedemptionOption-Vertical.png +0 -0
  17. package/lib/commonjs/assets/components/SimpleBanner.png +0 -0
  18. package/lib/commonjs/assets/components/SimpleTrendingCard.png +0 -0
  19. package/lib/commonjs/assets/components/SimpleTrendingCardV2.png +0 -0
  20. package/lib/commonjs/assets/components/UnlockRewards-1.png +0 -0
  21. package/lib/commonjs/assets/components/UnlockRewards-2.png +0 -0
  22. package/lib/commonjs/assets/fonts/SpaceMono-Regular.ttf +0 -0
  23. package/lib/commonjs/assets/images/adaptive-icon.png +0 -0
  24. package/lib/commonjs/assets/images/face.jpg +0 -0
  25. package/lib/commonjs/assets/images/favicon.png +0 -0
  26. package/lib/commonjs/assets/images/giftvoucher.jpg +0 -0
  27. package/lib/commonjs/assets/images/icon.png +0 -0
  28. package/lib/commonjs/assets/images/insta.webp +0 -0
  29. package/lib/commonjs/assets/images/muse.jpg +0 -0
  30. package/lib/commonjs/assets/images/namshi-banner.png +0 -0
  31. package/lib/commonjs/assets/images/namshi.webp +0 -0
  32. package/lib/commonjs/assets/images/partial-react-logo.png +0 -0
  33. package/lib/commonjs/assets/images/pb-logo.jpg +0 -0
  34. package/lib/commonjs/assets/images/pb.jpg +0 -0
  35. package/lib/commonjs/assets/images/react-logo.png +0 -0
  36. package/lib/commonjs/assets/images/react-logo@2x.png +0 -0
  37. package/lib/commonjs/assets/images/react-logo@3x.png +0 -0
  38. package/lib/commonjs/assets/images/scratch_foreground.png +0 -0
  39. package/lib/commonjs/assets/images/splash-icon.png +0 -0
  40. package/lib/commonjs/assets/images/upgrade.png +0 -0
  41. package/lib/commonjs/components/Badges/Badge.js +65 -0
  42. package/lib/commonjs/components/Badges/Badge.js.map +1 -0
  43. package/lib/commonjs/components/Badges/README.md +98 -0
  44. package/lib/commonjs/components/Badges/index.js +29 -0
  45. package/lib/commonjs/components/Badges/index.js.map +1 -0
  46. package/lib/commonjs/components/Banner/Banner.js +135 -0
  47. package/lib/commonjs/components/Banner/Banner.js.map +1 -0
  48. package/lib/commonjs/components/Banner/BannerWithDetails.js +118 -0
  49. package/lib/commonjs/components/Banner/BannerWithDetails.js.map +1 -0
  50. package/lib/commonjs/components/Banner/README.md +101 -0
  51. package/lib/commonjs/components/Banner/index.js +48 -0
  52. package/lib/commonjs/components/Banner/index.js.map +1 -0
  53. package/lib/commonjs/components/BrandIcon/BrandIcon.js +103 -0
  54. package/lib/commonjs/components/BrandIcon/BrandIcon.js.map +1 -0
  55. package/lib/commonjs/components/BrandIcon/index.js +29 -0
  56. package/lib/commonjs/components/BrandIcon/index.js.map +1 -0
  57. package/lib/commonjs/components/Card/Card.js +124 -0
  58. package/lib/commonjs/components/Card/Card.js.map +1 -0
  59. package/lib/commonjs/components/Card/CardContent.js +42 -0
  60. package/lib/commonjs/components/Card/CardContent.js.map +1 -0
  61. package/lib/commonjs/components/Card/CardFooter.js +34 -0
  62. package/lib/commonjs/components/Card/CardFooter.js.map +1 -0
  63. package/lib/commonjs/components/Card/CardHeader.js +77 -0
  64. package/lib/commonjs/components/Card/CardHeader.js.map +1 -0
  65. package/lib/commonjs/components/Card/CardImage.js +51 -0
  66. package/lib/commonjs/components/Card/CardImage.js.map +1 -0
  67. package/lib/commonjs/components/Card/index.js +98 -0
  68. package/lib/commonjs/components/Card/index.js.map +1 -0
  69. package/lib/commonjs/components/Card/templates/DealCard.js +188 -0
  70. package/lib/commonjs/components/Card/templates/DealCard.js.map +1 -0
  71. package/lib/commonjs/components/Card/templates/DealCardWithBackgroundImage.js +195 -0
  72. package/lib/commonjs/components/Card/templates/DealCardWithBackgroundImage.js.map +1 -0
  73. package/lib/commonjs/components/Card/templates/README.md +233 -0
  74. package/lib/commonjs/components/Card/templates/SimpleTrendingCard.js +59 -0
  75. package/lib/commonjs/components/Card/templates/SimpleTrendingCard.js.map +1 -0
  76. package/lib/commonjs/components/Card/types.js +6 -0
  77. package/lib/commonjs/components/Card/types.js.map +1 -0
  78. package/lib/commonjs/components/CloseIcon/CloseIcon.js +71 -0
  79. package/lib/commonjs/components/CloseIcon/CloseIcon.js.map +1 -0
  80. package/lib/commonjs/components/CloseIcon/index.js +29 -0
  81. package/lib/commonjs/components/CloseIcon/index.js.map +1 -0
  82. package/lib/commonjs/components/Filters/Filters.js +339 -0
  83. package/lib/commonjs/components/Filters/Filters.js.map +1 -0
  84. package/lib/commonjs/components/Filters/PointsRangeSelector.js +262 -0
  85. package/lib/commonjs/components/Filters/PointsRangeSelector.js.map +1 -0
  86. package/lib/commonjs/components/Filters/README.md +212 -0
  87. package/lib/commonjs/components/Filters/index.js +47 -0
  88. package/lib/commonjs/components/Filters/index.js.map +1 -0
  89. package/lib/commonjs/components/Input/Input.js +156 -0
  90. package/lib/commonjs/components/Input/Input.js.map +1 -0
  91. package/lib/commonjs/components/Input/README.md +128 -0
  92. package/lib/commonjs/components/Input/index.js +29 -0
  93. package/lib/commonjs/components/Input/index.js.map +1 -0
  94. package/lib/commonjs/components/LockOverlay/LockOverlay.js +65 -0
  95. package/lib/commonjs/components/LockOverlay/LockOverlay.js.map +1 -0
  96. package/lib/commonjs/components/LockOverlay/index.js +29 -0
  97. package/lib/commonjs/components/LockOverlay/index.js.map +1 -0
  98. package/lib/commonjs/components/Popup/Popup.js +296 -0
  99. package/lib/commonjs/components/Popup/Popup.js.map +1 -0
  100. package/lib/commonjs/components/Popup/README.md +133 -0
  101. package/lib/commonjs/components/Popup/index.js +29 -0
  102. package/lib/commonjs/components/Popup/index.js.map +1 -0
  103. package/lib/commonjs/components/ProgressBar/ProgressBar.js +121 -0
  104. package/lib/commonjs/components/ProgressBar/ProgressBar.js.map +1 -0
  105. package/lib/commonjs/components/ProgressBar/index.js +29 -0
  106. package/lib/commonjs/components/ProgressBar/index.js.map +1 -0
  107. package/lib/commonjs/components/RedemptionOption/README.md +148 -0
  108. package/lib/commonjs/components/RedemptionOption/RedemptionOption.js +111 -0
  109. package/lib/commonjs/components/RedemptionOption/RedemptionOption.js.map +1 -0
  110. package/lib/commonjs/components/RedemptionOption/index.js +29 -0
  111. package/lib/commonjs/components/RedemptionOption/index.js.map +1 -0
  112. package/lib/commonjs/components/ScratchCard/README.md +119 -0
  113. package/lib/commonjs/components/ScratchCard/ScratchCard.js +153 -0
  114. package/lib/commonjs/components/ScratchCard/ScratchCard.js.map +1 -0
  115. package/lib/commonjs/components/ScratchCard/ScratchCardContent.js +28 -0
  116. package/lib/commonjs/components/ScratchCard/ScratchCardContent.js.map +1 -0
  117. package/lib/commonjs/components/ScratchCard/index.js +48 -0
  118. package/lib/commonjs/components/ScratchCard/index.js.map +1 -0
  119. package/lib/commonjs/components/UnlockRewards/README.md +187 -0
  120. package/lib/commonjs/components/UnlockRewards/RewardItem.js +125 -0
  121. package/lib/commonjs/components/UnlockRewards/RewardItem.js.map +1 -0
  122. package/lib/commonjs/components/UnlockRewards/UnlockRewards.js +207 -0
  123. package/lib/commonjs/components/UnlockRewards/UnlockRewards.js.map +1 -0
  124. package/lib/commonjs/components/UnlockRewards/index.js +48 -0
  125. package/lib/commonjs/components/UnlockRewards/index.js.map +1 -0
  126. package/lib/commonjs/components/Wheel/README.md +141 -0
  127. package/lib/commonjs/components/Wheel/Wheel.js +323 -0
  128. package/lib/commonjs/components/Wheel/Wheel.js.map +1 -0
  129. package/lib/commonjs/components/Wheel/index.js +29 -0
  130. package/lib/commonjs/components/Wheel/index.js.map +1 -0
  131. package/lib/commonjs/components/index.js +160 -0
  132. package/lib/commonjs/components/index.js.map +1 -0
  133. package/lib/commonjs/constants/BRANDS.js +57 -0
  134. package/lib/commonjs/constants/BRANDS.js.map +1 -0
  135. package/lib/commonjs/index.js +28 -0
  136. package/lib/commonjs/index.js.map +1 -0
  137. package/lib/commonjs/theme/Colors.js +120 -0
  138. package/lib/commonjs/theme/Colors.js.map +1 -0
  139. package/lib/commonjs/theme/ThemeContext.js +49 -0
  140. package/lib/commonjs/theme/ThemeContext.js.map +1 -0
  141. package/lib/commonjs/theme/index.js +28 -0
  142. package/lib/commonjs/theme/index.js.map +1 -0
  143. package/lib/module/app/_layout.js +36 -0
  144. package/lib/module/app/_layout.js.map +1 -0
  145. package/lib/module/app/index.js +143 -0
  146. package/lib/module/app/index.js.map +1 -0
  147. package/lib/module/assets/components/BannerWithDetails.png +0 -0
  148. package/lib/module/assets/components/DealCard-Horizontal.png +0 -0
  149. package/lib/module/assets/components/DealCard-Vertical.png +0 -0
  150. package/lib/module/assets/components/DealCard-floating.png +0 -0
  151. package/lib/module/assets/components/DealCard-nested.png +0 -0
  152. package/lib/module/assets/components/Filters.png +0 -0
  153. package/lib/module/assets/components/Popup-1.png +0 -0
  154. package/lib/module/assets/components/Popup-2.png +0 -0
  155. package/lib/module/assets/components/Popup-3.png +0 -0
  156. package/lib/module/assets/components/RedemptionOption-Horizontal.png +0 -0
  157. package/lib/module/assets/components/RedemptionOption-Vertical.png +0 -0
  158. package/lib/module/assets/components/SimpleBanner.png +0 -0
  159. package/lib/module/assets/components/SimpleTrendingCard.png +0 -0
  160. package/lib/module/assets/components/SimpleTrendingCardV2.png +0 -0
  161. package/lib/module/assets/components/UnlockRewards-1.png +0 -0
  162. package/lib/module/assets/components/UnlockRewards-2.png +0 -0
  163. package/lib/module/assets/fonts/SpaceMono-Regular.ttf +0 -0
  164. package/lib/module/assets/images/adaptive-icon.png +0 -0
  165. package/lib/module/assets/images/face.jpg +0 -0
  166. package/lib/module/assets/images/favicon.png +0 -0
  167. package/lib/module/assets/images/giftvoucher.jpg +0 -0
  168. package/lib/module/assets/images/icon.png +0 -0
  169. package/lib/module/assets/images/insta.webp +0 -0
  170. package/lib/module/assets/images/muse.jpg +0 -0
  171. package/lib/module/assets/images/namshi-banner.png +0 -0
  172. package/lib/module/assets/images/namshi.webp +0 -0
  173. package/lib/module/assets/images/partial-react-logo.png +0 -0
  174. package/lib/module/assets/images/pb-logo.jpg +0 -0
  175. package/lib/module/assets/images/pb.jpg +0 -0
  176. package/lib/module/assets/images/react-logo.png +0 -0
  177. package/lib/module/assets/images/react-logo@2x.png +0 -0
  178. package/lib/module/assets/images/react-logo@3x.png +0 -0
  179. package/lib/module/assets/images/scratch_foreground.png +0 -0
  180. package/lib/module/assets/images/splash-icon.png +0 -0
  181. package/lib/module/assets/images/upgrade.png +0 -0
  182. package/lib/module/components/Badges/Badge.js +59 -0
  183. package/lib/module/components/Badges/Badge.js.map +1 -0
  184. package/lib/module/components/Badges/README.md +98 -0
  185. package/lib/module/components/Badges/index.js +5 -0
  186. package/lib/module/components/Badges/index.js.map +1 -0
  187. package/lib/module/components/Banner/Banner.js +130 -0
  188. package/lib/module/components/Banner/Banner.js.map +1 -0
  189. package/lib/module/components/Banner/BannerWithDetails.js +111 -0
  190. package/lib/module/components/Banner/BannerWithDetails.js.map +1 -0
  191. package/lib/module/components/Banner/README.md +101 -0
  192. package/lib/module/components/Banner/index.js +7 -0
  193. package/lib/module/components/Banner/index.js.map +1 -0
  194. package/lib/module/components/BrandIcon/BrandIcon.js +98 -0
  195. package/lib/module/components/BrandIcon/BrandIcon.js.map +1 -0
  196. package/lib/module/components/BrandIcon/index.js +5 -0
  197. package/lib/module/components/BrandIcon/index.js.map +1 -0
  198. package/lib/module/components/Card/Card.js +119 -0
  199. package/lib/module/components/Card/Card.js.map +1 -0
  200. package/lib/module/components/Card/CardContent.js +37 -0
  201. package/lib/module/components/Card/CardContent.js.map +1 -0
  202. package/lib/module/components/Card/CardFooter.js +29 -0
  203. package/lib/module/components/Card/CardFooter.js.map +1 -0
  204. package/lib/module/components/Card/CardHeader.js +72 -0
  205. package/lib/module/components/Card/CardHeader.js.map +1 -0
  206. package/lib/module/components/Card/CardImage.js +46 -0
  207. package/lib/module/components/Card/CardImage.js.map +1 -0
  208. package/lib/module/components/Card/index.js +18 -0
  209. package/lib/module/components/Card/index.js.map +1 -0
  210. package/lib/module/components/Card/templates/DealCard.js +183 -0
  211. package/lib/module/components/Card/templates/DealCard.js.map +1 -0
  212. package/lib/module/components/Card/templates/DealCardWithBackgroundImage.js +188 -0
  213. package/lib/module/components/Card/templates/DealCardWithBackgroundImage.js.map +1 -0
  214. package/lib/module/components/Card/templates/README.md +233 -0
  215. package/lib/module/components/Card/templates/SimpleTrendingCard.js +54 -0
  216. package/lib/module/components/Card/templates/SimpleTrendingCard.js.map +1 -0
  217. package/lib/module/components/Card/types.js +4 -0
  218. package/lib/module/components/Card/types.js.map +1 -0
  219. package/lib/module/components/CloseIcon/CloseIcon.js +63 -0
  220. package/lib/module/components/CloseIcon/CloseIcon.js.map +1 -0
  221. package/lib/module/components/CloseIcon/index.js +5 -0
  222. package/lib/module/components/CloseIcon/index.js.map +1 -0
  223. package/lib/module/components/Filters/Filters.js +330 -0
  224. package/lib/module/components/Filters/Filters.js.map +1 -0
  225. package/lib/module/components/Filters/PointsRangeSelector.js +256 -0
  226. package/lib/module/components/Filters/PointsRangeSelector.js.map +1 -0
  227. package/lib/module/components/Filters/README.md +212 -0
  228. package/lib/module/components/Filters/index.js +7 -0
  229. package/lib/module/components/Filters/index.js.map +1 -0
  230. package/lib/module/components/Input/Input.js +150 -0
  231. package/lib/module/components/Input/Input.js.map +1 -0
  232. package/lib/module/components/Input/README.md +128 -0
  233. package/lib/module/components/Input/index.js +5 -0
  234. package/lib/module/components/Input/index.js.map +1 -0
  235. package/lib/module/components/LockOverlay/LockOverlay.js +60 -0
  236. package/lib/module/components/LockOverlay/LockOverlay.js.map +1 -0
  237. package/lib/module/components/LockOverlay/index.js +5 -0
  238. package/lib/module/components/LockOverlay/index.js.map +1 -0
  239. package/lib/module/components/Popup/Popup.js +291 -0
  240. package/lib/module/components/Popup/Popup.js.map +1 -0
  241. package/lib/module/components/Popup/README.md +133 -0
  242. package/lib/module/components/Popup/index.js +5 -0
  243. package/lib/module/components/Popup/index.js.map +1 -0
  244. package/lib/module/components/ProgressBar/ProgressBar.js +116 -0
  245. package/lib/module/components/ProgressBar/ProgressBar.js.map +1 -0
  246. package/lib/module/components/ProgressBar/index.js +5 -0
  247. package/lib/module/components/ProgressBar/index.js.map +1 -0
  248. package/lib/module/components/RedemptionOption/README.md +148 -0
  249. package/lib/module/components/RedemptionOption/RedemptionOption.js +106 -0
  250. package/lib/module/components/RedemptionOption/RedemptionOption.js.map +1 -0
  251. package/lib/module/components/RedemptionOption/index.js +5 -0
  252. package/lib/module/components/RedemptionOption/index.js.map +1 -0
  253. package/lib/module/components/ScratchCard/README.md +119 -0
  254. package/lib/module/components/ScratchCard/ScratchCard.js +147 -0
  255. package/lib/module/components/ScratchCard/ScratchCard.js.map +1 -0
  256. package/lib/module/components/ScratchCard/ScratchCardContent.js +24 -0
  257. package/lib/module/components/ScratchCard/ScratchCardContent.js.map +1 -0
  258. package/lib/module/components/ScratchCard/index.js +7 -0
  259. package/lib/module/components/ScratchCard/index.js.map +1 -0
  260. package/lib/module/components/UnlockRewards/README.md +187 -0
  261. package/lib/module/components/UnlockRewards/RewardItem.js +120 -0
  262. package/lib/module/components/UnlockRewards/RewardItem.js.map +1 -0
  263. package/lib/module/components/UnlockRewards/UnlockRewards.js +200 -0
  264. package/lib/module/components/UnlockRewards/UnlockRewards.js.map +1 -0
  265. package/lib/module/components/UnlockRewards/index.js +7 -0
  266. package/lib/module/components/UnlockRewards/index.js.map +1 -0
  267. package/lib/module/components/Wheel/README.md +141 -0
  268. package/lib/module/components/Wheel/Wheel.js +317 -0
  269. package/lib/module/components/Wheel/Wheel.js.map +1 -0
  270. package/lib/module/components/Wheel/index.js +5 -0
  271. package/lib/module/components/Wheel/index.js.map +1 -0
  272. package/lib/module/components/index.js +17 -0
  273. package/lib/module/components/index.js.map +1 -0
  274. package/lib/module/constants/BRANDS.js +53 -0
  275. package/lib/module/constants/BRANDS.js.map +1 -0
  276. package/lib/module/index.js +5 -0
  277. package/lib/module/index.js.map +1 -0
  278. package/lib/module/theme/Colors.js +116 -0
  279. package/lib/module/theme/Colors.js.map +1 -0
  280. package/lib/module/theme/ThemeContext.js +41 -0
  281. package/lib/module/theme/ThemeContext.js.map +1 -0
  282. package/lib/module/theme/index.js +5 -0
  283. package/lib/module/theme/index.js.map +1 -0
  284. package/lib/typescript/commonjs/app/_layout.d.ts +3 -0
  285. package/lib/typescript/commonjs/app/_layout.d.ts.map +1 -0
  286. package/lib/typescript/commonjs/app/index.d.ts +3 -0
  287. package/lib/typescript/commonjs/app/index.d.ts.map +1 -0
  288. package/lib/typescript/commonjs/components/Badges/Badge.d.ts +16 -0
  289. package/lib/typescript/commonjs/components/Badges/Badge.d.ts.map +1 -0
  290. package/lib/typescript/commonjs/components/Badges/index.d.ts +3 -0
  291. package/lib/typescript/commonjs/components/Badges/index.d.ts.map +1 -0
  292. package/lib/typescript/commonjs/components/Banner/Banner.d.ts +26 -0
  293. package/lib/typescript/commonjs/components/Banner/Banner.d.ts.map +1 -0
  294. package/lib/typescript/commonjs/components/Banner/BannerWithDetails.d.ts +19 -0
  295. package/lib/typescript/commonjs/components/Banner/BannerWithDetails.d.ts.map +1 -0
  296. package/lib/typescript/commonjs/components/Banner/index.d.ts +5 -0
  297. package/lib/typescript/commonjs/components/Banner/index.d.ts.map +1 -0
  298. package/lib/typescript/commonjs/components/BrandIcon/BrandIcon.d.ts +20 -0
  299. package/lib/typescript/commonjs/components/BrandIcon/BrandIcon.d.ts.map +1 -0
  300. package/lib/typescript/commonjs/components/BrandIcon/index.d.ts +3 -0
  301. package/lib/typescript/commonjs/components/BrandIcon/index.d.ts.map +1 -0
  302. package/lib/typescript/commonjs/components/Card/Card.d.ts +5 -0
  303. package/lib/typescript/commonjs/components/Card/Card.d.ts.map +1 -0
  304. package/lib/typescript/commonjs/components/Card/CardContent.d.ts +5 -0
  305. package/lib/typescript/commonjs/components/Card/CardContent.d.ts.map +1 -0
  306. package/lib/typescript/commonjs/components/Card/CardFooter.d.ts +5 -0
  307. package/lib/typescript/commonjs/components/Card/CardFooter.d.ts.map +1 -0
  308. package/lib/typescript/commonjs/components/Card/CardHeader.d.ts +5 -0
  309. package/lib/typescript/commonjs/components/Card/CardHeader.d.ts.map +1 -0
  310. package/lib/typescript/commonjs/components/Card/CardImage.d.ts +5 -0
  311. package/lib/typescript/commonjs/components/Card/CardImage.d.ts.map +1 -0
  312. package/lib/typescript/commonjs/components/Card/index.d.ts +11 -0
  313. package/lib/typescript/commonjs/components/Card/index.d.ts.map +1 -0
  314. package/lib/typescript/commonjs/components/Card/templates/DealCard.d.ts +33 -0
  315. package/lib/typescript/commonjs/components/Card/templates/DealCard.d.ts.map +1 -0
  316. package/lib/typescript/commonjs/components/Card/templates/DealCardWithBackgroundImage.d.ts +38 -0
  317. package/lib/typescript/commonjs/components/Card/templates/DealCardWithBackgroundImage.d.ts.map +1 -0
  318. package/lib/typescript/commonjs/components/Card/templates/SimpleTrendingCard.d.ts +14 -0
  319. package/lib/typescript/commonjs/components/Card/templates/SimpleTrendingCard.d.ts.map +1 -0
  320. package/lib/typescript/commonjs/components/Card/types.d.ts +78 -0
  321. package/lib/typescript/commonjs/components/Card/types.d.ts.map +1 -0
  322. package/lib/typescript/commonjs/components/CloseIcon/CloseIcon.d.ts +16 -0
  323. package/lib/typescript/commonjs/components/CloseIcon/CloseIcon.d.ts.map +1 -0
  324. package/lib/typescript/commonjs/components/CloseIcon/index.d.ts +3 -0
  325. package/lib/typescript/commonjs/components/CloseIcon/index.d.ts.map +1 -0
  326. package/lib/typescript/commonjs/components/Filters/Filters.d.ts +74 -0
  327. package/lib/typescript/commonjs/components/Filters/Filters.d.ts.map +1 -0
  328. package/lib/typescript/commonjs/components/Filters/PointsRangeSelector.d.ts +29 -0
  329. package/lib/typescript/commonjs/components/Filters/PointsRangeSelector.d.ts.map +1 -0
  330. package/lib/typescript/commonjs/components/Filters/index.d.ts +5 -0
  331. package/lib/typescript/commonjs/components/Filters/index.d.ts.map +1 -0
  332. package/lib/typescript/commonjs/components/Input/Input.d.ts +23 -0
  333. package/lib/typescript/commonjs/components/Input/Input.d.ts.map +1 -0
  334. package/lib/typescript/commonjs/components/Input/index.d.ts +3 -0
  335. package/lib/typescript/commonjs/components/Input/index.d.ts.map +1 -0
  336. package/lib/typescript/commonjs/components/LockOverlay/LockOverlay.d.ts +16 -0
  337. package/lib/typescript/commonjs/components/LockOverlay/LockOverlay.d.ts.map +1 -0
  338. package/lib/typescript/commonjs/components/LockOverlay/index.d.ts +3 -0
  339. package/lib/typescript/commonjs/components/LockOverlay/index.d.ts.map +1 -0
  340. package/lib/typescript/commonjs/components/Popup/Popup.d.ts +38 -0
  341. package/lib/typescript/commonjs/components/Popup/Popup.d.ts.map +1 -0
  342. package/lib/typescript/commonjs/components/Popup/index.d.ts +3 -0
  343. package/lib/typescript/commonjs/components/Popup/index.d.ts.map +1 -0
  344. package/lib/typescript/commonjs/components/ProgressBar/ProgressBar.d.ts +26 -0
  345. package/lib/typescript/commonjs/components/ProgressBar/ProgressBar.d.ts.map +1 -0
  346. package/lib/typescript/commonjs/components/ProgressBar/index.d.ts +3 -0
  347. package/lib/typescript/commonjs/components/ProgressBar/index.d.ts.map +1 -0
  348. package/lib/typescript/commonjs/components/RedemptionOption/RedemptionOption.d.ts +24 -0
  349. package/lib/typescript/commonjs/components/RedemptionOption/RedemptionOption.d.ts.map +1 -0
  350. package/lib/typescript/commonjs/components/RedemptionOption/index.d.ts +3 -0
  351. package/lib/typescript/commonjs/components/RedemptionOption/index.d.ts.map +1 -0
  352. package/lib/typescript/commonjs/components/ScratchCard/ScratchCard.d.ts +20 -0
  353. package/lib/typescript/commonjs/components/ScratchCard/ScratchCard.d.ts.map +1 -0
  354. package/lib/typescript/commonjs/components/ScratchCard/ScratchCardContent.d.ts +8 -0
  355. package/lib/typescript/commonjs/components/ScratchCard/ScratchCardContent.d.ts.map +1 -0
  356. package/lib/typescript/commonjs/components/ScratchCard/index.d.ts +5 -0
  357. package/lib/typescript/commonjs/components/ScratchCard/index.d.ts.map +1 -0
  358. package/lib/typescript/commonjs/components/UnlockRewards/RewardItem.d.ts +25 -0
  359. package/lib/typescript/commonjs/components/UnlockRewards/RewardItem.d.ts.map +1 -0
  360. package/lib/typescript/commonjs/components/UnlockRewards/UnlockRewards.d.ts +59 -0
  361. package/lib/typescript/commonjs/components/UnlockRewards/UnlockRewards.d.ts.map +1 -0
  362. package/lib/typescript/commonjs/components/UnlockRewards/index.d.ts +5 -0
  363. package/lib/typescript/commonjs/components/UnlockRewards/index.d.ts.map +1 -0
  364. package/lib/typescript/commonjs/components/Wheel/Wheel.d.ts +34 -0
  365. package/lib/typescript/commonjs/components/Wheel/Wheel.d.ts.map +1 -0
  366. package/lib/typescript/commonjs/components/Wheel/index.d.ts +3 -0
  367. package/lib/typescript/commonjs/components/Wheel/index.d.ts.map +1 -0
  368. package/lib/typescript/commonjs/components/index.d.ts +15 -0
  369. package/lib/typescript/commonjs/components/index.d.ts.map +1 -0
  370. package/lib/typescript/commonjs/constants/BRANDS.d.ts +7 -0
  371. package/lib/typescript/commonjs/constants/BRANDS.d.ts.map +1 -0
  372. package/lib/typescript/commonjs/index.d.ts +3 -0
  373. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  374. package/lib/typescript/commonjs/package.json +1 -0
  375. package/lib/typescript/commonjs/theme/Colors.d.ts +28 -0
  376. package/lib/typescript/commonjs/theme/Colors.d.ts.map +1 -0
  377. package/lib/typescript/commonjs/theme/ThemeContext.d.ts +13 -0
  378. package/lib/typescript/commonjs/theme/ThemeContext.d.ts.map +1 -0
  379. package/lib/typescript/commonjs/theme/index.d.ts +3 -0
  380. package/lib/typescript/commonjs/theme/index.d.ts.map +1 -0
  381. package/lib/typescript/module/app/_layout.d.ts +3 -0
  382. package/lib/typescript/module/app/_layout.d.ts.map +1 -0
  383. package/lib/typescript/module/app/index.d.ts +3 -0
  384. package/lib/typescript/module/app/index.d.ts.map +1 -0
  385. package/lib/typescript/module/components/Badges/Badge.d.ts +16 -0
  386. package/lib/typescript/module/components/Badges/Badge.d.ts.map +1 -0
  387. package/lib/typescript/module/components/Badges/index.d.ts +3 -0
  388. package/lib/typescript/module/components/Badges/index.d.ts.map +1 -0
  389. package/lib/typescript/module/components/Banner/Banner.d.ts +26 -0
  390. package/lib/typescript/module/components/Banner/Banner.d.ts.map +1 -0
  391. package/lib/typescript/module/components/Banner/BannerWithDetails.d.ts +19 -0
  392. package/lib/typescript/module/components/Banner/BannerWithDetails.d.ts.map +1 -0
  393. package/lib/typescript/module/components/Banner/index.d.ts +5 -0
  394. package/lib/typescript/module/components/Banner/index.d.ts.map +1 -0
  395. package/lib/typescript/module/components/BrandIcon/BrandIcon.d.ts +20 -0
  396. package/lib/typescript/module/components/BrandIcon/BrandIcon.d.ts.map +1 -0
  397. package/lib/typescript/module/components/BrandIcon/index.d.ts +3 -0
  398. package/lib/typescript/module/components/BrandIcon/index.d.ts.map +1 -0
  399. package/lib/typescript/module/components/Card/Card.d.ts +5 -0
  400. package/lib/typescript/module/components/Card/Card.d.ts.map +1 -0
  401. package/lib/typescript/module/components/Card/CardContent.d.ts +5 -0
  402. package/lib/typescript/module/components/Card/CardContent.d.ts.map +1 -0
  403. package/lib/typescript/module/components/Card/CardFooter.d.ts +5 -0
  404. package/lib/typescript/module/components/Card/CardFooter.d.ts.map +1 -0
  405. package/lib/typescript/module/components/Card/CardHeader.d.ts +5 -0
  406. package/lib/typescript/module/components/Card/CardHeader.d.ts.map +1 -0
  407. package/lib/typescript/module/components/Card/CardImage.d.ts +5 -0
  408. package/lib/typescript/module/components/Card/CardImage.d.ts.map +1 -0
  409. package/lib/typescript/module/components/Card/index.d.ts +11 -0
  410. package/lib/typescript/module/components/Card/index.d.ts.map +1 -0
  411. package/lib/typescript/module/components/Card/templates/DealCard.d.ts +33 -0
  412. package/lib/typescript/module/components/Card/templates/DealCard.d.ts.map +1 -0
  413. package/lib/typescript/module/components/Card/templates/DealCardWithBackgroundImage.d.ts +38 -0
  414. package/lib/typescript/module/components/Card/templates/DealCardWithBackgroundImage.d.ts.map +1 -0
  415. package/lib/typescript/module/components/Card/templates/SimpleTrendingCard.d.ts +14 -0
  416. package/lib/typescript/module/components/Card/templates/SimpleTrendingCard.d.ts.map +1 -0
  417. package/lib/typescript/module/components/Card/types.d.ts +78 -0
  418. package/lib/typescript/module/components/Card/types.d.ts.map +1 -0
  419. package/lib/typescript/module/components/CloseIcon/CloseIcon.d.ts +16 -0
  420. package/lib/typescript/module/components/CloseIcon/CloseIcon.d.ts.map +1 -0
  421. package/lib/typescript/module/components/CloseIcon/index.d.ts +3 -0
  422. package/lib/typescript/module/components/CloseIcon/index.d.ts.map +1 -0
  423. package/lib/typescript/module/components/Filters/Filters.d.ts +74 -0
  424. package/lib/typescript/module/components/Filters/Filters.d.ts.map +1 -0
  425. package/lib/typescript/module/components/Filters/PointsRangeSelector.d.ts +29 -0
  426. package/lib/typescript/module/components/Filters/PointsRangeSelector.d.ts.map +1 -0
  427. package/lib/typescript/module/components/Filters/index.d.ts +5 -0
  428. package/lib/typescript/module/components/Filters/index.d.ts.map +1 -0
  429. package/lib/typescript/module/components/Input/Input.d.ts +23 -0
  430. package/lib/typescript/module/components/Input/Input.d.ts.map +1 -0
  431. package/lib/typescript/module/components/Input/index.d.ts +3 -0
  432. package/lib/typescript/module/components/Input/index.d.ts.map +1 -0
  433. package/lib/typescript/module/components/LockOverlay/LockOverlay.d.ts +16 -0
  434. package/lib/typescript/module/components/LockOverlay/LockOverlay.d.ts.map +1 -0
  435. package/lib/typescript/module/components/LockOverlay/index.d.ts +3 -0
  436. package/lib/typescript/module/components/LockOverlay/index.d.ts.map +1 -0
  437. package/lib/typescript/module/components/Popup/Popup.d.ts +38 -0
  438. package/lib/typescript/module/components/Popup/Popup.d.ts.map +1 -0
  439. package/lib/typescript/module/components/Popup/index.d.ts +3 -0
  440. package/lib/typescript/module/components/Popup/index.d.ts.map +1 -0
  441. package/lib/typescript/module/components/ProgressBar/ProgressBar.d.ts +26 -0
  442. package/lib/typescript/module/components/ProgressBar/ProgressBar.d.ts.map +1 -0
  443. package/lib/typescript/module/components/ProgressBar/index.d.ts +3 -0
  444. package/lib/typescript/module/components/ProgressBar/index.d.ts.map +1 -0
  445. package/lib/typescript/module/components/RedemptionOption/RedemptionOption.d.ts +24 -0
  446. package/lib/typescript/module/components/RedemptionOption/RedemptionOption.d.ts.map +1 -0
  447. package/lib/typescript/module/components/RedemptionOption/index.d.ts +3 -0
  448. package/lib/typescript/module/components/RedemptionOption/index.d.ts.map +1 -0
  449. package/lib/typescript/module/components/ScratchCard/ScratchCard.d.ts +20 -0
  450. package/lib/typescript/module/components/ScratchCard/ScratchCard.d.ts.map +1 -0
  451. package/lib/typescript/module/components/ScratchCard/ScratchCardContent.d.ts +8 -0
  452. package/lib/typescript/module/components/ScratchCard/ScratchCardContent.d.ts.map +1 -0
  453. package/lib/typescript/module/components/ScratchCard/index.d.ts +5 -0
  454. package/lib/typescript/module/components/ScratchCard/index.d.ts.map +1 -0
  455. package/lib/typescript/module/components/UnlockRewards/RewardItem.d.ts +25 -0
  456. package/lib/typescript/module/components/UnlockRewards/RewardItem.d.ts.map +1 -0
  457. package/lib/typescript/module/components/UnlockRewards/UnlockRewards.d.ts +59 -0
  458. package/lib/typescript/module/components/UnlockRewards/UnlockRewards.d.ts.map +1 -0
  459. package/lib/typescript/module/components/UnlockRewards/index.d.ts +5 -0
  460. package/lib/typescript/module/components/UnlockRewards/index.d.ts.map +1 -0
  461. package/lib/typescript/module/components/Wheel/Wheel.d.ts +34 -0
  462. package/lib/typescript/module/components/Wheel/Wheel.d.ts.map +1 -0
  463. package/lib/typescript/module/components/Wheel/index.d.ts +3 -0
  464. package/lib/typescript/module/components/Wheel/index.d.ts.map +1 -0
  465. package/lib/typescript/module/components/index.d.ts +15 -0
  466. package/lib/typescript/module/components/index.d.ts.map +1 -0
  467. package/lib/typescript/module/constants/BRANDS.d.ts +7 -0
  468. package/lib/typescript/module/constants/BRANDS.d.ts.map +1 -0
  469. package/lib/typescript/module/index.d.ts +3 -0
  470. package/lib/typescript/module/index.d.ts.map +1 -0
  471. package/lib/typescript/module/package.json +1 -0
  472. package/lib/typescript/module/theme/Colors.d.ts +28 -0
  473. package/lib/typescript/module/theme/Colors.d.ts.map +1 -0
  474. package/lib/typescript/module/theme/ThemeContext.d.ts +13 -0
  475. package/lib/typescript/module/theme/ThemeContext.d.ts.map +1 -0
  476. package/lib/typescript/module/theme/index.d.ts +3 -0
  477. package/lib/typescript/module/theme/index.d.ts.map +1 -0
  478. package/package.json +116 -0
  479. package/src/app/_layout.tsx +38 -0
  480. package/src/app/index.tsx +115 -0
  481. package/src/assets/components/BannerWithDetails.png +0 -0
  482. package/src/assets/components/DealCard-Horizontal.png +0 -0
  483. package/src/assets/components/DealCard-Vertical.png +0 -0
  484. package/src/assets/components/DealCard-floating.png +0 -0
  485. package/src/assets/components/DealCard-nested.png +0 -0
  486. package/src/assets/components/Filters.png +0 -0
  487. package/src/assets/components/Popup-1.png +0 -0
  488. package/src/assets/components/Popup-2.png +0 -0
  489. package/src/assets/components/Popup-3.png +0 -0
  490. package/src/assets/components/RedemptionOption-Horizontal.png +0 -0
  491. package/src/assets/components/RedemptionOption-Vertical.png +0 -0
  492. package/src/assets/components/SimpleBanner.png +0 -0
  493. package/src/assets/components/SimpleTrendingCard.png +0 -0
  494. package/src/assets/components/SimpleTrendingCardV2.png +0 -0
  495. package/src/assets/components/UnlockRewards-1.png +0 -0
  496. package/src/assets/components/UnlockRewards-2.png +0 -0
  497. package/src/assets/fonts/SpaceMono-Regular.ttf +0 -0
  498. package/src/assets/images/adaptive-icon.png +0 -0
  499. package/src/assets/images/face.jpg +0 -0
  500. package/src/assets/images/favicon.png +0 -0
  501. package/src/assets/images/giftvoucher.jpg +0 -0
  502. package/src/assets/images/icon.png +0 -0
  503. package/src/assets/images/insta.webp +0 -0
  504. package/src/assets/images/muse.jpg +0 -0
  505. package/src/assets/images/namshi-banner.png +0 -0
  506. package/src/assets/images/namshi.webp +0 -0
  507. package/src/assets/images/partial-react-logo.png +0 -0
  508. package/src/assets/images/pb-logo.jpg +0 -0
  509. package/src/assets/images/pb.jpg +0 -0
  510. package/src/assets/images/react-logo.png +0 -0
  511. package/src/assets/images/react-logo@2x.png +0 -0
  512. package/src/assets/images/react-logo@3x.png +0 -0
  513. package/src/assets/images/scratch_foreground.png +0 -0
  514. package/src/assets/images/splash-icon.png +0 -0
  515. package/src/assets/images/upgrade.png +0 -0
  516. package/src/components/Badges/Badge.tsx +81 -0
  517. package/src/components/Badges/README.md +98 -0
  518. package/src/components/Badges/index.ts +2 -0
  519. package/src/components/Banner/Banner.tsx +172 -0
  520. package/src/components/Banner/BannerWithDetails.tsx +133 -0
  521. package/src/components/Banner/README.md +101 -0
  522. package/src/components/Banner/index.ts +5 -0
  523. package/src/components/BrandIcon/BrandIcon.tsx +134 -0
  524. package/src/components/BrandIcon/index.ts +2 -0
  525. package/src/components/Card/Card.tsx +144 -0
  526. package/src/components/Card/CardContent.tsx +33 -0
  527. package/src/components/Card/CardFooter.tsx +33 -0
  528. package/src/components/Card/CardHeader.tsx +80 -0
  529. package/src/components/Card/CardImage.tsx +51 -0
  530. package/src/components/Card/index.ts +15 -0
  531. package/src/components/Card/templates/DealCard.tsx +255 -0
  532. package/src/components/Card/templates/DealCardWithBackgroundImage.tsx +273 -0
  533. package/src/components/Card/templates/README.md +233 -0
  534. package/src/components/Card/templates/SimpleTrendingCard.tsx +54 -0
  535. package/src/components/Card/types.ts +75 -0
  536. package/src/components/CloseIcon/CloseIcon.tsx +77 -0
  537. package/src/components/CloseIcon/index.ts +2 -0
  538. package/src/components/Filters/Filters.tsx +427 -0
  539. package/src/components/Filters/PointsRangeSelector.tsx +319 -0
  540. package/src/components/Filters/README.md +212 -0
  541. package/src/components/Filters/index.ts +4 -0
  542. package/src/components/Input/Input.tsx +218 -0
  543. package/src/components/Input/README.md +128 -0
  544. package/src/components/Input/index.ts +2 -0
  545. package/src/components/LockOverlay/LockOverlay.tsx +82 -0
  546. package/src/components/LockOverlay/index.ts +2 -0
  547. package/src/components/Popup/Popup.tsx +374 -0
  548. package/src/components/Popup/README.md +133 -0
  549. package/src/components/Popup/index.ts +2 -0
  550. package/src/components/ProgressBar/ProgressBar.tsx +157 -0
  551. package/src/components/ProgressBar/index.ts +2 -0
  552. package/src/components/RedemptionOption/README.md +148 -0
  553. package/src/components/RedemptionOption/RedemptionOption.tsx +158 -0
  554. package/src/components/RedemptionOption/index.ts +2 -0
  555. package/src/components/ScratchCard/README.md +119 -0
  556. package/src/components/ScratchCard/ScratchCard.tsx +190 -0
  557. package/src/components/ScratchCard/ScratchCardContent.tsx +25 -0
  558. package/src/components/ScratchCard/index.ts +4 -0
  559. package/src/components/UnlockRewards/README.md +187 -0
  560. package/src/components/UnlockRewards/RewardItem.tsx +172 -0
  561. package/src/components/UnlockRewards/UnlockRewards.tsx +293 -0
  562. package/src/components/UnlockRewards/index.ts +4 -0
  563. package/src/components/Wheel/README.md +141 -0
  564. package/src/components/Wheel/Wheel.tsx +374 -0
  565. package/src/components/Wheel/index.ts +2 -0
  566. package/src/components/index.ts +14 -0
  567. package/src/constants/BRANDS.ts +64 -0
  568. package/src/index.ts +2 -0
  569. package/src/theme/Colors.ts +107 -0
  570. package/src/theme/ThemeContext.tsx +46 -0
  571. package/src/theme/index.ts +2 -0
@@ -0,0 +1,51 @@
1
+ import React from 'react';
2
+ import { Image, View, StyleSheet } from 'react-native';
3
+ import { CardImageProps } from './types';
4
+
5
+ const CardImage: React.FC<CardImageProps> = ({
6
+ source,
7
+ style,
8
+ height = 200,
9
+ width = '100%',
10
+ resizeMode = 'cover',
11
+ borderRadius,
12
+ overlay,
13
+ }) => (
14
+ <View style={styles.container}>
15
+ <Image
16
+ source={source}
17
+ style={[
18
+ styles.image,
19
+ // {
20
+ // height,
21
+ // width,
22
+ // resizeMode,
23
+ // borderRadius,
24
+ // },
25
+ style,
26
+ ]}
27
+ />
28
+ {overlay && (
29
+ <View style={styles.overlay}>
30
+ {overlay}
31
+ </View>
32
+ )}
33
+ </View>
34
+ );
35
+
36
+ const styles = StyleSheet.create({
37
+ container: {
38
+ position: 'relative',
39
+ },
40
+ image: {
41
+ width: '100%',
42
+ height: 200,
43
+ },
44
+ overlay: {
45
+ ...StyleSheet.absoluteFillObject,
46
+ justifyContent: 'center',
47
+ alignItems: 'center',
48
+ },
49
+ });
50
+
51
+ export default CardImage;
@@ -0,0 +1,15 @@
1
+ // components/Card/index.ts
2
+ export { default as Card} from './Card';
3
+ export * from './Card';
4
+ export { default as CardContent } from './CardContent';
5
+ export { default as CardFooter } from './CardFooter';
6
+ export { default as CardHeader } from './CardHeader';
7
+ export { default as CardImage } from './CardImage';
8
+
9
+ // Export templates
10
+ export { default as DealCardWithBackgroundImage } from './templates/DealCardWithBackgroundImage';
11
+ export { default as DealCard } from "./templates/DealCard";
12
+ export { default as SimpleTrendingCard } from './templates/SimpleTrendingCard';
13
+
14
+ // Export types
15
+ export * from './types';
@@ -0,0 +1,255 @@
1
+ import React from "react";
2
+ import {
3
+ ImageRequireSource,
4
+ StyleProp,
5
+ ViewStyle,
6
+ View,
7
+ Text,
8
+ TextStyle,
9
+ Image,
10
+ useWindowDimensions,
11
+ } from "react-native";
12
+ import Card from "../Card";
13
+ import { useTheme } from "../../../theme/ThemeContext";
14
+ import ProgressBar, {
15
+ ProgressBarTextAlign,
16
+ ProgressBarTextPosition,
17
+ } from "../../ProgressBar/ProgressBar";
18
+ import CardHeader from "../CardHeader";
19
+ import CardFooter from "../CardFooter";
20
+ import LockOverlay from "../../LockOverlay/LockOverlay";
21
+
22
+ interface HorizontalDealCardProps {
23
+ imageSource: ImageRequireSource;
24
+ variant?: "vertical" | "horizontal";
25
+ label?: string;
26
+ labelStyle?: StyleProp<TextStyle>;
27
+ labelContainerStyle?: StyleProp<ViewStyle>;
28
+ dealDescription?: string;
29
+ dealDescriptionStyle?: StyleProp<TextStyle>;
30
+ dealProviderName?: string;
31
+ dealProviderNameStyle?: StyleProp<TextStyle>;
32
+ dealPrice?: string;
33
+ dealPriceStyle?: StyleProp<TextStyle>;
34
+ progressBar?: boolean;
35
+ progressBarText?: string;
36
+ progressBarTextPosition?: ProgressBarTextPosition;
37
+ progressBarTextAlign?: ProgressBarTextAlign;
38
+ progressColor?: string;
39
+ progressWidth?: number;
40
+ progressHeight?: number;
41
+ remainingProgressColor?: string;
42
+ progressValue?: number;
43
+ onPress?: () => void;
44
+ style?: StyleProp<ViewStyle>;
45
+ width?: number | string;
46
+ isRTL?: boolean;
47
+ overlayVisible?: boolean;
48
+ }
49
+
50
+ const DealCard: React.FC<HorizontalDealCardProps> = ({
51
+ imageSource,
52
+ onPress,
53
+ label,
54
+ labelContainerStyle,
55
+ labelStyle,
56
+ dealDescription,
57
+ dealDescriptionStyle,
58
+ dealPrice,
59
+ dealPriceStyle,
60
+ dealProviderName,
61
+ dealProviderNameStyle,
62
+ progressBar,
63
+ progressBarText,
64
+ progressBarTextPosition,
65
+ progressBarTextAlign,
66
+ progressValue,
67
+ progressHeight,
68
+ progressWidth,
69
+ remainingProgressColor,
70
+ progressColor,
71
+ style,
72
+ width,
73
+ variant = "horizontal",
74
+ isRTL = false,
75
+ overlayVisible = false,
76
+ }) => {
77
+ const theme = useTheme();
78
+ const { width: screenWidth } = useWindowDimensions();
79
+ const isVertical = variant === "vertical";
80
+
81
+ const imageSize = Math.min(110, 110);
82
+ const cardPadding = 12
83
+ const fontSize = screenWidth < 360 ? 14 : 16;
84
+
85
+ const calculatedProgressWidth =
86
+ progressWidth ||
87
+ (typeof width === "number" ? width * 0.4 : screenWidth * 0.3);
88
+
89
+ const containerFlexDirection = isVertical
90
+ ? "column"
91
+ : isRTL
92
+ ? "row-reverse"
93
+ : "row";
94
+
95
+ const textContainerStyle: ViewStyle = {
96
+ flex: isVertical ? 0 : 1,
97
+ ...(isVertical
98
+ ? { paddingLeft: cardPadding, paddingRight: cardPadding }
99
+ : isRTL
100
+ ? { paddingLeft: cardPadding }
101
+ : { paddingRight: cardPadding }),
102
+ };
103
+
104
+ const renderDealPrice = (): React.ReactNode => {
105
+ return (
106
+ <Text
107
+ style={[
108
+ {
109
+ textAlign: "right",
110
+ fontSize: fontSize,
111
+ fontWeight: "bold",
112
+ marginBottom: 3,
113
+ color: theme.text,
114
+ },
115
+ isRTL && { textAlign: "left" },
116
+ dealPriceStyle,
117
+ ]}
118
+ >
119
+ {dealPrice}
120
+ </Text>
121
+ );
122
+ };
123
+
124
+ return (
125
+ <Card
126
+ onPress={onPress}
127
+ variant="filled"
128
+ backgroundColor={theme.surface}
129
+ style={[
130
+ {
131
+ borderRadius: 16,
132
+ overflow: "hidden",
133
+ alignItems: isVertical ? "stretch" : "center",
134
+ flexDirection: containerFlexDirection,
135
+ },
136
+ typeof width === "number" && { width },
137
+ style,
138
+ ]}
139
+ >
140
+ <View
141
+ style={
142
+ isVertical
143
+ ? {
144
+ position: "relative",
145
+ marginHorizontal: cardPadding,
146
+ marginVertical: cardPadding,
147
+ borderRadius: 10,
148
+ overflow: "hidden",
149
+ }
150
+ : {
151
+ position: "relative",
152
+ marginLeft: cardPadding,
153
+ marginRight: cardPadding,
154
+ borderRadius: 10,
155
+ overflow: "hidden",
156
+ }
157
+ }
158
+ >
159
+ <Image
160
+ source={imageSource}
161
+ style={
162
+ isVertical
163
+ ? {
164
+ height: 200,
165
+ width: "100%",
166
+ borderRadius: 10,
167
+ alignSelf: "center",
168
+ resizeMode: "cover",
169
+ }
170
+ : {
171
+ width: imageSize,
172
+ height: imageSize,
173
+ borderRadius: 10,
174
+ alignSelf: "center",
175
+ resizeMode: "cover",
176
+ }
177
+ }
178
+ />
179
+ <LockOverlay visible={overlayVisible} />
180
+ </View>
181
+
182
+ <View style={textContainerStyle}>
183
+ <CardHeader
184
+ title={dealProviderName}
185
+ subtitle={dealDescription}
186
+ subtitleStyle={[
187
+ isRTL && { textAlign: "right" },
188
+ dealDescriptionStyle,
189
+ ]}
190
+ titleStyle={[isRTL && { textAlign: "right" }, dealProviderNameStyle]}
191
+ style={{ paddingLeft: 0, paddingRight: 0 }}
192
+ />
193
+ <View style={{ marginTop: 10, marginBottom: 15 }}>
194
+ {renderDealPrice()}
195
+ <CardFooter
196
+ justifyContent="space-between"
197
+ style={[{ padding: 0 }, isRTL && { flexDirection: "row-reverse" }]}
198
+ >
199
+ {label && (
200
+ <View
201
+ style={[
202
+ {
203
+ backgroundColor: theme.primary,
204
+ paddingVertical: 5,
205
+ paddingHorizontal: 8,
206
+ borderRadius: 10,
207
+ },
208
+ labelContainerStyle,
209
+ ]}
210
+ >
211
+ <Text
212
+ style={[
213
+ {
214
+ color: theme.onPrimary,
215
+ fontSize: 14,
216
+ },
217
+ labelStyle,
218
+ ]}
219
+ >
220
+ {label}
221
+ </Text>
222
+ </View>
223
+ )}
224
+ <View>
225
+ {progressBar && (
226
+ <ProgressBar
227
+ progress={progressValue}
228
+ remainingColor={remainingProgressColor}
229
+ progressColor={progressColor}
230
+ height={progressHeight || (screenWidth < 360 ? 10 : 14)}
231
+ width={calculatedProgressWidth}
232
+ textPosition={progressBarTextPosition}
233
+ text={progressBarText}
234
+ showText={progressBarText != null}
235
+ textAlign={
236
+ isRTL && progressBarTextAlign == null
237
+ ? "right"
238
+ : progressBarTextAlign
239
+ }
240
+ isRTL={isRTL}
241
+ textStyle={{
242
+ fontSize: screenWidth < 360 ? 8 : 10,
243
+ color: theme.text,
244
+ }}
245
+ />
246
+ )}
247
+ </View>
248
+ </CardFooter>
249
+ </View>
250
+ </View>
251
+ </Card>
252
+ );
253
+ };
254
+
255
+ export default DealCard;
@@ -0,0 +1,273 @@
1
+ import React, { useState } from "react";
2
+ import {
3
+ ImageRequireSource,
4
+ StyleProp,
5
+ ViewStyle,
6
+ View,
7
+ Text,
8
+ TextStyle,
9
+ TouchableOpacity,
10
+ } from "react-native";
11
+ import Card from "../Card";
12
+ import CardHeader from "../CardHeader";
13
+ import CardContent from "../CardContent";
14
+ import { useTheme } from "../../../theme/ThemeContext";
15
+ import CardFooter from "../CardFooter";
16
+ import ProgressBar, {
17
+ ProgressBarTextAlign,
18
+ ProgressBarTextPosition,
19
+ } from "../../ProgressBar/ProgressBar";
20
+ import LockOverlay from "../../LockOverlay/LockOverlay";
21
+
22
+ interface DealCardProps {
23
+ backgroundImage: ImageRequireSource;
24
+ label?: string;
25
+ labelStyle?: StyleProp<TextStyle>;
26
+ labelContainerStyle?: StyleProp<ViewStyle>;
27
+ actionIconDefault?: React.ReactNode;
28
+ actionIconActive?: React.ReactNode;
29
+ onActionPress?: (active: boolean) => void;
30
+ innerCardStyle?: ViewStyle;
31
+ innerCardVariant?: "floating" | "nested";
32
+ dealDescription?: string;
33
+ dealDescriptionStyle?: StyleProp<TextStyle>;
34
+ dealProviderName?: string;
35
+ dealProviderNameStyle?: StyleProp<TextStyle>;
36
+ dealPrice?: string;
37
+ dealPriceStyle?: StyleProp<TextStyle>;
38
+ progressBar?: boolean;
39
+ progressBarText?: string;
40
+ progressBarTextPosition?: ProgressBarTextPosition;
41
+ progressBarTextAlign?: ProgressBarTextAlign;
42
+ progressColor?: string;
43
+ progressWidth?: number;
44
+ progressHeight?: number;
45
+ remainingProgressColor?: string;
46
+ progressValue?: number;
47
+ onPress?: () => void;
48
+ style?: ViewStyle;
49
+ width?: number;
50
+ isRTL?: boolean;
51
+ overlayVisible?: boolean;
52
+ overlayCover?: "all" | "background";
53
+ }
54
+
55
+ const DealCardWithBackgroundImage: React.FC<DealCardProps> = ({
56
+ backgroundImage,
57
+ onPress,
58
+ label,
59
+ labelContainerStyle,
60
+ labelStyle,
61
+ actionIconDefault,
62
+ actionIconActive,
63
+ onActionPress,
64
+ innerCardStyle,
65
+ dealDescription,
66
+ dealDescriptionStyle,
67
+ dealPrice,
68
+ dealPriceStyle,
69
+ dealProviderName,
70
+ dealProviderNameStyle,
71
+ progressBar,
72
+ progressBarText,
73
+ progressBarTextPosition,
74
+ progressBarTextAlign,
75
+ progressValue,
76
+ progressHeight,
77
+ progressWidth,
78
+ remainingProgressColor,
79
+ progressColor,
80
+ innerCardVariant = "nested",
81
+ style,
82
+ width = 300,
83
+ isRTL = false,
84
+ overlayVisible = false,
85
+ overlayCover = "background",
86
+ }) => {
87
+ const theme = useTheme();
88
+
89
+ const [isActive, setIsActive] = useState(false);
90
+
91
+ const handleActionPress = () => {
92
+ if (!actionIconActive) return;
93
+ setIsActive(!isActive);
94
+ if (onActionPress) {
95
+ onActionPress(!isActive);
96
+ }
97
+ };
98
+
99
+ const labelContent = label && (
100
+ <View
101
+ style={[
102
+ {
103
+ backgroundColor: theme.surface,
104
+ paddingVertical: 5,
105
+ paddingHorizontal: 8,
106
+ borderRadius: 10,
107
+ },
108
+ labelContainerStyle,
109
+ ]}
110
+ >
111
+ <Text style={[{ color: theme.onSurface }, labelStyle]}>{label}</Text>
112
+ </View>
113
+ );
114
+
115
+ const actionContent = (
116
+ <TouchableOpacity onPress={handleActionPress}>
117
+ {isActive ? actionIconActive : actionIconDefault}
118
+ </TouchableOpacity>
119
+ );
120
+
121
+ const headerLeft = isRTL ? actionContent : labelContent;
122
+ const headerRight = isRTL ? labelContent : actionContent;
123
+
124
+ const mainCardBorderRadius = style?.borderRadius || 8;
125
+
126
+ const innerCardBorderRadius = 30;
127
+ const getVariantStyle = (): StyleProp<ViewStyle> => {
128
+ if (innerCardVariant === "floating") {
129
+ return {
130
+ position: "absolute",
131
+ bottom: -30,
132
+ width: width,
133
+ marginHorizontal: 0,
134
+ marginVertical: 0,
135
+ paddingBottom: progressBar || dealPrice ? 0 : 20,
136
+ borderRadius: 20,
137
+ };
138
+ }
139
+ return {};
140
+ };
141
+
142
+ const computedInnerCardStyle = [
143
+ {
144
+ borderRadius: innerCardBorderRadius,
145
+ },
146
+ getVariantStyle(),
147
+ innerCardStyle,
148
+ ];
149
+ const finalInnerBorderRadius =
150
+ (innerCardStyle?.borderRadius as number) ||
151
+ (innerCardVariant === "floating" ? 20 : innerCardBorderRadius) ||
152
+ innerCardBorderRadius;
153
+
154
+ const overlayStyle: ViewStyle = {
155
+ borderRadius: mainCardBorderRadius,
156
+ borderBottomLeftRadius:
157
+ innerCardVariant === "floating"
158
+ ? finalInnerBorderRadius
159
+ : mainCardBorderRadius,
160
+ borderBottomRightRadius:
161
+ innerCardVariant === "floating"
162
+ ? finalInnerBorderRadius
163
+ : mainCardBorderRadius,
164
+ bottom: innerCardVariant === "floating" ? -30 : 0,
165
+ overflow: "hidden",
166
+ };
167
+
168
+ return (
169
+ <Card
170
+ onPress={onPress}
171
+ style={[
172
+ {
173
+ height: 300,
174
+ position: "relative",
175
+ borderRadius: mainCardBorderRadius,
176
+ },
177
+ style,
178
+ { width },
179
+ ]}
180
+ backgroundImage={{
181
+ source: backgroundImage,
182
+ resizeMode: "cover",
183
+ }}
184
+ >
185
+ <LockOverlay
186
+ visible={overlayVisible}
187
+ containerStyle={overlayStyle}
188
+ contentVerticalAlign={overlayCover == "background" ? "top" : "center"}
189
+ />
190
+ <CardHeader
191
+ left={headerLeft}
192
+ right={headerRight}
193
+ style={{ alignItems: "center" }}
194
+ />
195
+
196
+ <View
197
+ style={{
198
+ flex: 1,
199
+ justifyContent: "flex-end",
200
+ zIndex: overlayCover == "background" ? 1000 : 0,
201
+ }}
202
+ >
203
+ <CardContent style={{ padding: 0 }}>
204
+ <Card
205
+ backgroundColor={theme.surface}
206
+ variant="filled"
207
+ style={computedInnerCardStyle}
208
+ >
209
+ <CardHeader
210
+ title={dealProviderName}
211
+ titleColor={theme.text}
212
+ titleStyle={[
213
+ { fontSize: 18, textAlign: isRTL ? "right" : "left" },
214
+ dealProviderNameStyle,
215
+ ]}
216
+ subtitle={dealDescription}
217
+ subtitleColor={theme.helper}
218
+ subtitleStyle={[
219
+ { textAlign: isRTL ? "right" : "left" },
220
+ dealDescriptionStyle,
221
+ ]}
222
+ />
223
+ {(progressBar || dealPrice) && (
224
+ <CardFooter
225
+ justifyContent="space-between"
226
+ style={{
227
+ flexDirection: isRTL ? "row-reverse" : "row",
228
+ }}
229
+ >
230
+ {progressBar && (
231
+ <ProgressBar
232
+ progress={progressValue}
233
+ remainingColor={remainingProgressColor}
234
+ progressColor={progressColor}
235
+ height={progressHeight || 14}
236
+ width={progressWidth || width * 0.5}
237
+ textPosition={progressBarTextPosition}
238
+ text={progressBarText}
239
+ showText={progressBarText != null}
240
+ textAlign={
241
+ isRTL && progressBarTextAlign == null
242
+ ? "right"
243
+ : progressBarTextAlign
244
+ }
245
+ textStyle={{ fontSize: 10, color: theme.text }}
246
+ isRTL={isRTL}
247
+ />
248
+ )}
249
+ <View>
250
+ <Text
251
+ style={[
252
+ {
253
+ fontSize: 16,
254
+ color: theme.primary,
255
+ fontWeight: "bold",
256
+ textAlign: isRTL ? "left" : "right",
257
+ },
258
+ dealPriceStyle,
259
+ ]}
260
+ >
261
+ {dealPrice}
262
+ </Text>
263
+ </View>
264
+ </CardFooter>
265
+ )}
266
+ </Card>
267
+ </CardContent>
268
+ </View>
269
+ </Card>
270
+ );
271
+ };
272
+
273
+ export default DealCardWithBackgroundImage;