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,319 @@
1
+ import React, { useState, useCallback, useEffect } from "react";
2
+ import {
3
+ View,
4
+ Text,
5
+ StyleSheet,
6
+ Dimensions,
7
+ LayoutChangeEvent,
8
+ ViewStyle,
9
+ TextStyle,
10
+ I18nManager,
11
+ } from "react-native";
12
+ import MultiSlider from "@ptomasroos/react-native-multi-slider";
13
+ import CustomInput from "../Input/Input";
14
+ import { ThemeType, useTheme } from "../../theme";
15
+
16
+ // Get initial screen width (we'll refine this with onLayout)
17
+ const { width: SCREEN_WIDTH } = Dimensions.get("window");
18
+ const HORIZONTAL_PADDING = 40; // Adjust based on your container's padding
19
+
20
+ interface PointsRangeSelectorProps {
21
+ minLimit?: number;
22
+ maxLimit?: number;
23
+ initialMin?: number;
24
+ initialMax?: number;
25
+ resetKey?: number;
26
+ isRTL?: boolean;
27
+ onChange?: (min: number, max: number) => void;
28
+
29
+ // Style props
30
+ containerStyle?: ViewStyle;
31
+ inputsContainerStyle?: ViewStyle;
32
+ customInputContainerStyle?: ViewStyle;
33
+ customInputFieldStyle?: ViewStyle;
34
+ sliderContainerStyle?: ViewStyle;
35
+ multiSliderContainerStyle?: ViewStyle;
36
+ trackStyle?: ViewStyle;
37
+ selectedTrackStyle?: ViewStyle;
38
+ unselectedTrackStyle?: ViewStyle;
39
+ markerStyle?: ViewStyle;
40
+ markerEnabledStyle?: ViewStyle;
41
+ markerDisabledStyle?: ViewStyle;
42
+ markerDotStyle?: ViewStyle;
43
+ inputProps?: any;
44
+ multiSliderProps?: any;
45
+ }
46
+
47
+ const PointsRangeSelector: React.FC<PointsRangeSelectorProps> = ({
48
+ minLimit = 0,
49
+ maxLimit = 1000,
50
+ initialMin = 50,
51
+ initialMax = 500,
52
+ resetKey,
53
+ isRTL = I18nManager.isRTL,
54
+ onChange,
55
+
56
+ // Style props
57
+ containerStyle,
58
+ inputsContainerStyle,
59
+ customInputContainerStyle,
60
+ customInputFieldStyle,
61
+ sliderContainerStyle,
62
+ multiSliderContainerStyle,
63
+ trackStyle,
64
+ selectedTrackStyle,
65
+ unselectedTrackStyle,
66
+ markerStyle,
67
+ markerEnabledStyle,
68
+ markerDisabledStyle,
69
+ markerDotStyle,
70
+ inputProps = {},
71
+ multiSliderProps = {},
72
+ }) => {
73
+ const theme = useTheme();
74
+ const styles = createStyles(theme, isRTL);
75
+
76
+ const [values, setValues] = useState([initialMin, initialMax]);
77
+ const [minInputValue, setMinInputValue] = useState(initialMin.toString());
78
+ const [maxInputValue, setMaxInputValue] = useState(initialMax.toString());
79
+
80
+ // Track container width for responsive sizing
81
+ const [containerWidth, setContainerWidth] = useState(
82
+ SCREEN_WIDTH - HORIZONTAL_PADDING
83
+ );
84
+
85
+ // Handle container layout to get precise width
86
+ const onContainerLayout = useCallback((event: LayoutChangeEvent) => {
87
+ const { width } = event.nativeEvent.layout;
88
+ setContainerWidth(width);
89
+ }, []);
90
+
91
+ useEffect(() => {
92
+ setValues([initialMin, initialMax]);
93
+ setMinInputValue(initialMin.toString());
94
+ setMaxInputValue(initialMax.toString());
95
+
96
+ if (onChange) {
97
+ onChange(initialMin, initialMax);
98
+ }
99
+ }, [resetKey, initialMin, initialMax]);
100
+
101
+ const handleValuesChange = (newValues: number[]) => {
102
+ setValues(newValues);
103
+ setMinInputValue(newValues[0].toString());
104
+ setMaxInputValue(newValues[1].toString());
105
+
106
+ if (onChange) {
107
+ onChange(newValues[0], newValues[1]);
108
+ }
109
+ };
110
+
111
+ const handleMinInputChange = (text: string) => {
112
+ setMinInputValue(text);
113
+
114
+ if (text && !isNaN(Number(text))) {
115
+ const newValue = Number(text);
116
+
117
+ if (newValue < minLimit || newValue >= values[1]) {
118
+ return;
119
+ }
120
+
121
+ const newValues = [newValue, values[1]];
122
+ setValues(newValues);
123
+ if (onChange) {
124
+ onChange(newValues[0], newValues[1]);
125
+ }
126
+ }
127
+ };
128
+
129
+ const handleMaxInputChange = (text: string) => {
130
+ setMaxInputValue(text);
131
+
132
+ if (text && !isNaN(Number(text))) {
133
+ const newValue = Number(text);
134
+
135
+ if (newValue > maxLimit || newValue <= values[0]) {
136
+ return;
137
+ }
138
+
139
+ const newValues = [values[0], newValue];
140
+ setValues(newValues);
141
+ if (onChange) {
142
+ onChange(newValues[0], newValues[1]);
143
+ }
144
+ }
145
+ };
146
+
147
+ // Custom marker component
148
+ const CustomMarker = ({ currentValue, enabled }: any) => (
149
+ <View
150
+ style={[
151
+ styles.marker,
152
+ enabled ? styles.markerEnabled : styles.markerDisabled,
153
+ markerStyle,
154
+ enabled ? markerEnabledStyle : markerDisabledStyle,
155
+ ]}
156
+ hitSlop={{ top: 10, right: 10, bottom: 10, left: 10 }}
157
+ >
158
+ {enabled && <View style={[styles.markerDot, markerDotStyle]} />}
159
+ </View>
160
+ );
161
+
162
+ // Prepare inputs in the correct order based on RTL setting
163
+ const renderInputs = () => {
164
+ const minInput = (
165
+ <CustomInput
166
+ value={minInputValue}
167
+ onChangeText={handleMinInputChange}
168
+ keyboardType="numeric"
169
+ placeholder="Min"
170
+ containerStyle={[
171
+ styles.customInputContainer,
172
+ customInputContainerStyle,
173
+ ]}
174
+ inputContainerStyle={[styles.customInputField, customInputFieldStyle]}
175
+ textAlign={isRTL ? "right" : "left"}
176
+ {...inputProps}
177
+ />
178
+ );
179
+
180
+ const maxInput = (
181
+ <CustomInput
182
+ value={maxInputValue}
183
+ onChangeText={handleMaxInputChange}
184
+ keyboardType="numeric"
185
+ placeholder="Max"
186
+ containerStyle={[
187
+ styles.customInputContainer,
188
+ customInputContainerStyle,
189
+ ]}
190
+ inputContainerStyle={[styles.customInputField, customInputFieldStyle]}
191
+ textAlign={isRTL ? "right" : "left"}
192
+ {...inputProps}
193
+ />
194
+ );
195
+
196
+ // If RTL, we swap the order of the inputs
197
+ return isRTL ? (
198
+ <>
199
+ {maxInput}
200
+ {minInput}
201
+ </>
202
+ ) : (
203
+ <>
204
+ {minInput}
205
+ {maxInput}
206
+ </>
207
+ );
208
+ };
209
+
210
+ return (
211
+ <View
212
+ style={[styles.container, containerStyle]}
213
+ onLayout={onContainerLayout}
214
+ >
215
+ <View style={[styles.inputsContainer, inputsContainerStyle]}>
216
+ {renderInputs()}
217
+ </View>
218
+
219
+ <View style={[styles.sliderContainer, sliderContainerStyle]}>
220
+ <MultiSlider
221
+ values={values}
222
+ min={minLimit}
223
+ max={maxLimit}
224
+ step={10}
225
+ allowOverlap={false}
226
+ snapped
227
+ onValuesChange={handleValuesChange}
228
+ selectedStyle={[styles.selectedTrack, selectedTrackStyle]}
229
+ unselectedStyle={[styles.unselectedTrack, unselectedTrackStyle]}
230
+ containerStyle={[
231
+ styles.sliderContainerStyle,
232
+ multiSliderContainerStyle,
233
+ ]}
234
+ trackStyle={[styles.track, trackStyle]}
235
+ sliderLength={containerWidth} // Use measured width for slider length
236
+ customMarker={CustomMarker}
237
+ // For RTL support with MultiSlider
238
+ enabledOne={true}
239
+ enabledTwo={true}
240
+ isRTL={isRTL}
241
+ {...multiSliderProps}
242
+ />
243
+ </View>
244
+ </View>
245
+ );
246
+ };
247
+
248
+ const createStyles = (theme: ThemeType, isRTL: boolean) =>
249
+ StyleSheet.create({
250
+ container: {
251
+ // Default container styling
252
+ },
253
+ inputsContainer: {
254
+ flexDirection: "row",
255
+ justifyContent: "space-between",
256
+ marginBottom: 20,
257
+ },
258
+ customInputContainer: {
259
+ width: "48%",
260
+ },
261
+ customInputField: {
262
+ minHeight: 40,
263
+ textAlign: isRTL ? "right" : "left",
264
+ },
265
+ sliderContainer: {
266
+ marginVertical: 10,
267
+ alignItems: "center",
268
+ width: "100%",
269
+ // Apply any RTL specific styling if needed
270
+ transform: isRTL ? [{ scaleX: -1 }] : [],
271
+ },
272
+ sliderContainerStyle: {
273
+ height: 30,
274
+ width: "100%",
275
+ },
276
+ track: {
277
+ height: 4,
278
+ borderRadius: 2,
279
+ },
280
+ selectedTrack: {
281
+ backgroundColor: theme.primary,
282
+ },
283
+ unselectedTrack: {
284
+ backgroundColor: theme.border,
285
+ },
286
+ marker: {
287
+ width: 20,
288
+ height: 20,
289
+ borderRadius: 12,
290
+ backgroundColor: theme.surface,
291
+ borderWidth: 2,
292
+ shadowColor: "#000",
293
+ shadowOffset: {
294
+ width: 0,
295
+ height: 2,
296
+ },
297
+ shadowOpacity: 0.25,
298
+ shadowRadius: 2.84,
299
+ elevation: 3,
300
+ alignItems: "center",
301
+ justifyContent: "center",
302
+ // Flip the marker back when parent is flipped for RTL
303
+ transform: isRTL ? [{ scaleX: -1 }] : [],
304
+ },
305
+ markerEnabled: {
306
+ borderColor: theme.primary,
307
+ },
308
+ markerDisabled: {
309
+ borderColor: theme.disabled,
310
+ },
311
+ markerDot: {
312
+ width: 18,
313
+ height: 18,
314
+ borderRadius: 12,
315
+ backgroundColor: theme.primary,
316
+ },
317
+ });
318
+
319
+ export default PointsRangeSelector;
@@ -0,0 +1,212 @@
1
+ # Filters Component
2
+
3
+ A flexible, customizable bottom sheet filter component for React Native applications with support for sorting options, points range selection, brand filtering, and extensive styling options.
4
+
5
+ ![Filters Example](../../assets/components/Filters.png)
6
+
7
+ ## Basic Usage
8
+
9
+ ```jsx
10
+ import React from 'react';
11
+ import { View } from 'react-native';
12
+ import { Filters } from '@your-org/component-library';
13
+
14
+ const ExampleScreen = () => {
15
+ const sortOptions = [
16
+ { id: 1, name: 'Price: Low to High', value: 'price_asc' },
17
+ { id: 2, name: 'Price: High to Low', value: 'price_desc' },
18
+ ];
19
+
20
+ const brands = [
21
+ { id: '1', name: 'Brand A', logo: require('../assets/brandA.png') },
22
+ { id: '2', name: 'Brand B', logo: require('../assets/brandB.png') },
23
+ ];
24
+
25
+ const handleFilterApply = (result) => {
26
+ console.log('Applied filters:', result);
27
+ };
28
+
29
+ return (
30
+ <View style={{ flex: 1 }}>
31
+ <Filters
32
+ sortOptions={sortOptions}
33
+ brands={brands}
34
+ onActionButtonPress={handleFilterApply}
35
+ />
36
+ </View>
37
+ );
38
+ };
39
+
40
+ export default ExampleScreen;
41
+ ```
42
+
43
+ ## Props
44
+
45
+ The `Filters` component provides extensive customization options through its props.
46
+
47
+ ### Core Properties
48
+
49
+ | Prop | Type | Required | Default | Description |
50
+ |------|------|----------|---------|-------------|
51
+ | `onActionButtonPress` | `(result: FilterResult) => void` | ❌ | - | Function called when Apply Filter button is pressed |
52
+ | `sortOptions` | `SortOption[]` | ❌ | `[]` | Array of sorting options to display |
53
+ | `brands` | `Brand[]` | ❌ | `[]` | Array of brand options to display |
54
+ | `isRTL` | `boolean` | ❌ | `I18nManager.isRTL` | Whether to display in right-to-left mode |
55
+
56
+ ### Layout & Sections Properties
57
+
58
+ | Prop | Type | Required | Default | Description |
59
+ |------|------|----------|---------|-------------|
60
+ | `sortSectionTitle` | `string` | ❌ | `"Sort"` | Title for the sorting section |
61
+ | `pointsRangeSectionTitle` | `string` | ❌ | `"Points range"` | Title for the points range section |
62
+ | `brandSectionTitle` | `string` | ❌ | `"Brands"` | Title for the brands section |
63
+ | `showPointsRange` | `boolean` | ❌ | `true` | Whether to display the points range section |
64
+ | `headerTitleText` | `string` | ❌ | `"Filter"` | Text for the header title |
65
+ | `headerResetText` | `string` | ❌ | `"Reset All"` | Text for the reset button |
66
+ | `applyButtonText` | `string` | ❌ | `"Apply Filter"` | Text for the apply button |
67
+
68
+ ### Points Range Properties
69
+
70
+ | Prop | Type | Required | Default | Description |
71
+ |------|------|----------|---------|-------------|
72
+ | `rangeMinLimit` | `number` | ❌ | `0` | Minimum possible value for the range selector |
73
+ | `rangeMaxLimit` | `number` | ❌ | `1000` | Maximum possible value for the range selector |
74
+ | `rangeInitialMin` | `number` | ❌ | `0` | Initial minimum selected value |
75
+ | `rangeInitialMax` | `number` | ❌ | `1000` | Initial maximum selected value |
76
+
77
+ ### Points Range Styling Properties
78
+
79
+ | Prop | Type | Required | Default | Description |
80
+ |------|------|----------|---------|-------------|
81
+ | `pointsRangeContainerStyle` | `ViewStyle` | ❌ | - | Style for the main points range container |
82
+ | `pointsRangeInputsContainerStyle` | `ViewStyle` | ❌ | - | Style for the inputs container in points range selector |
83
+ | `pointsRangeCustomInputContainerStyle` | `ViewStyle` | ❌ | - | Style for the custom input containers |
84
+ | `pointsRangeCustomInputFieldStyle` | `ViewStyle` | ❌ | - | Style for the input fields |
85
+ | `pointsRangeSliderContainerStyle` | `ViewStyle` | ❌ | - | Style for the slider container |
86
+ | `pointsRangeMultiSliderContainerStyle` | `ViewStyle` | ❌ | - | Style for the multi-slider container |
87
+ | `pointsRangeTrackStyle` | `ViewStyle` | ❌ | - | Style for the slider track |
88
+ | `pointsRangeSelectedTrackStyle` | `ViewStyle` | ❌ | - | Style for the selected portion of the track |
89
+ | `pointsRangeUnselectedTrackStyle` | `ViewStyle` | ❌ | - | Style for the unselected portions of the track |
90
+ | `pointsRangeMarkerStyle` | `ViewStyle` | ❌ | - | Style for slider markers |
91
+ | `pointsRangeMarkerEnabledStyle` | `ViewStyle` | ❌ | - | Style for enabled slider markers |
92
+ | `pointsRangeMarkerDisabledStyle` | `ViewStyle` | ❌ | - | Style for disabled slider markers |
93
+ | `pointsRangeMarkerDotStyle` | `ViewStyle` | ❌ | - | Style for the marker dots |
94
+ | `pointsRangeInputProps` | `Object` | ❌ | - | Additional props to pass to the range input fields |
95
+ | `pointsRangeMultiSliderProps` | `Object` | ❌ | - | Additional props to pass to the MultiSlider component |
96
+
97
+ ### Brand Configuration Properties
98
+
99
+ | Prop | Type | Required | Default | Description |
100
+ |------|------|----------|---------|-------------|
101
+ | `brandActiveIcon` | `React.ReactNode` | ❌ | `<Ionicons name="checkmark-outline" />` | Icon to show for selected brands |
102
+ | `brandActiveIconStyle` | `ViewStyle` | ❌ | - | Style for the active brand icon |
103
+
104
+ ### Bottom Sheet Properties
105
+
106
+ | Prop | Type | Required | Default | Description |
107
+ |------|------|----------|---------|-------------|
108
+ | `bottomSheetIndex` | `number` | ❌ | `0` | Initial index for the bottom sheet |
109
+ | `snapPoints` | `string[]` | ❌ | `["50%", "90%"]` | Snap points for the bottom sheet |
110
+ | `handleIndicatorStyle` | `ViewStyle` | ❌ | - | Style for the bottom sheet handle indicator |
111
+
112
+ ### Style Customization Properties
113
+
114
+ | Prop | Type | Required | Default | Description |
115
+ |------|------|----------|---------|-------------|
116
+ | `containerStyle` | `ViewStyle` | ❌ | - | Style for the main container |
117
+ | `headerStyle` | `ViewStyle` | ❌ | - | Style for the header |
118
+ | `titleStyle` | `TextStyle` | ❌ | - | Style for the header title |
119
+ | `resetTextStyle` | `TextStyle` | ❌ | - | Style for the reset text |
120
+ | `sectionStyle` | `ViewStyle` | ❌ | - | Style for all filter sections |
121
+ | `sortSectionStyle` | `ViewStyle` | ❌ | - | Style specifically for the sort section |
122
+ | `sectionTitleStyle` | `TextStyle` | ❌ | - | Style for section titles |
123
+ | `optionRowStyle` | `ViewStyle` | ❌ | - | Style for option rows in the sort section |
124
+ | `optionTextStyle` | `TextStyle` | ❌ | - | Style for option text in the sort section |
125
+ | `checkboxColor` | `string` | ❌ | `theme.secondary` | Color for checkboxes |
126
+ | `brandContainerStyle` | `ViewStyle` | ❌ | - | Style for the brands grid container |
127
+ | `applyButtonStyle` | `ViewStyle` | ❌ | - | Style for the apply button |
128
+ | `applyButtonTextStyle` | `TextStyle` | ❌ | - | Style for the apply button text |
129
+ | `bottomSheetStyle` | `ViewStyle` | ❌ | - | Style for the bottom sheet |
130
+
131
+ ## Types
132
+
133
+ ```typescript
134
+ type SortOption = {
135
+ name: string;
136
+ value: string;
137
+ id: number;
138
+ };
139
+
140
+ type Brand = {
141
+ id: string;
142
+ name: string;
143
+ logo: ImageRequireSource;
144
+ };
145
+
146
+ type FilterResult = {
147
+ sort: SortOption[];
148
+ pointsRange: { min: number; max: number };
149
+ selectedBrands: Brand[];
150
+ };
151
+ ```
152
+
153
+ ## Examples
154
+
155
+ ### Basic Filter with Sort Options Only
156
+
157
+ ```jsx
158
+ <Filters
159
+ sortOptions={[
160
+ { id: 1, name: 'Newest First', value: 'newest' },
161
+ { id: 2, name: 'Oldest First', value: 'oldest' },
162
+ { id: 3, name: 'Highest Rated', value: 'rated_desc' }
163
+ ]}
164
+ showPointsRange={false}
165
+ onActionButtonPress={(result) => handleSort(result.sort)}
166
+ />
167
+ ```
168
+
169
+ ### Points Range Filter with Custom Limits
170
+
171
+ ```jsx
172
+ <Filters
173
+ showPointsRange={true}
174
+ rangeMinLimit={0}
175
+ rangeMaxLimit={5000}
176
+ rangeInitialMin={100}
177
+ rangeInitialMax={2000}
178
+ pointsRangeSectionTitle="Price Range"
179
+ onActionButtonPress={(result) => handlePriceRange(result.pointsRange)}
180
+ />
181
+ ```
182
+
183
+ ### Brand Selection with Custom Styling
184
+
185
+ ```jsx
186
+ <Filters
187
+ brands={[
188
+ { id: 'nike', name: 'Nike', logo: require('../assets/nike.png') },
189
+ { id: 'adidas', name: 'Adidas', logo: require('../assets/adidas.png') },
190
+ { id: 'puma', name: 'Puma', logo: require('../assets/puma.png') }
191
+ ]}
192
+ brandSectionTitle="Select Brands"
193
+ brandContainerStyle={{ justifyContent: 'space-between' }}
194
+ brandActiveIconStyle={{ backgroundColor: '#E0F7FA' }}
195
+ onActionButtonPress={(result) => handleBrandFilter(result.selectedBrands)}
196
+ />
197
+ ```
198
+
199
+ ### RTL Support with Custom Headers
200
+
201
+ ```jsx
202
+ <Filters
203
+ isRTL={true}
204
+ headerTitleText="فلتر"
205
+ headerResetText="إعادة تعيين الكل"
206
+ applyButtonText="تطبيق الفلتر"
207
+ sortSectionTitle="ترتيب"
208
+ pointsRangeSectionTitle="نطاق النقاط"
209
+ brandSectionTitle="العلامات التجارية"
210
+ onActionButtonPress={handleArabicFilters}
211
+ />
212
+ ```
@@ -0,0 +1,4 @@
1
+ export { default } from "./Filters";
2
+ export { default as PointsRangeSelector} from "./PointsRangeSelector";
3
+ export * from "./Filters";
4
+ export * from "./PointsRangeSelector";