jfs-components 0.1.12 → 0.1.18

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 (592) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/lib/commonjs/components/ActionFooter/ActionFooter.js +7 -24
  3. package/lib/commonjs/components/ActionTile/ActionTile.js +10 -10
  4. package/lib/commonjs/components/AmountInput/AmountInput.js +3 -3
  5. package/lib/commonjs/components/AreaLineChart/AreaLineChart.js +2 -2
  6. package/lib/commonjs/components/Attached/Attached.js +1 -1
  7. package/lib/commonjs/components/Avatar/Avatar.js +10 -10
  8. package/lib/commonjs/components/AvatarGroup/AvatarGroup.js +50 -29
  9. package/lib/commonjs/components/Badge/Badge.js +12 -12
  10. package/lib/commonjs/components/BenefitCard/BenefitCard.js +95 -21
  11. package/lib/commonjs/components/BottomNav/BottomNav.js +2 -2
  12. package/lib/commonjs/components/BottomNavItem/BottomNavItem.js +3 -3
  13. package/lib/commonjs/components/Button/Button.js +31 -19
  14. package/lib/commonjs/components/Card/Card.js +20 -20
  15. package/lib/commonjs/components/CardAdvisory/CardAdvisory.js +6 -6
  16. package/lib/commonjs/components/CardCTA/CardCTA.js +21 -21
  17. package/lib/commonjs/components/CardFeedback/CardFeedback.js +18 -18
  18. package/lib/commonjs/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
  19. package/lib/commonjs/components/CardInsight/CardInsight.js +1 -2
  20. package/lib/commonjs/components/Carousel/Carousel.js +18 -12
  21. package/lib/commonjs/components/CarouselCardAccounts/CarouselCardAccounts.js +75 -0
  22. package/lib/commonjs/components/Checkbox/Checkbox.js +6 -13
  23. package/lib/commonjs/components/ChipGroup/ChipGroup.js +1 -1
  24. package/lib/commonjs/components/ChipSelect/ChipSelect.js +11 -11
  25. package/lib/commonjs/components/CircularProgressBar/CircularProgressBar.js +5 -5
  26. package/lib/commonjs/components/CircularProgressBarDoted/CircularProgressBarDoted.js +8 -8
  27. package/lib/commonjs/components/CircularRating/CircularRating.js +3 -3
  28. package/lib/commonjs/components/CompareTable/CompareTable.js +16 -16
  29. package/lib/commonjs/components/DebitCard/DebitCard.js +18 -18
  30. package/lib/commonjs/components/Disclaimer/Disclaimer.js +5 -5
  31. package/lib/commonjs/components/DonutChart/DonutChart.js +11 -11
  32. package/lib/commonjs/components/Drawer/Drawer.js +60 -60
  33. package/lib/commonjs/components/Dropdown/Dropdown.js +22 -23
  34. package/lib/commonjs/components/DropdownInput/DropdownInput.js +10 -10
  35. package/lib/commonjs/components/EmptyState/EmptyState.js +14 -14
  36. package/lib/commonjs/components/FilterBar/FilterBar.js +2 -2
  37. package/lib/commonjs/components/Form/Form.js +3 -3
  38. package/lib/commonjs/components/FormField/FormField.js +6 -6
  39. package/lib/commonjs/components/FullscreenModal/FullscreenModal.js +24 -24
  40. package/lib/commonjs/components/Gauge/Gauge.js +8 -8
  41. package/lib/commonjs/components/HoldingsCard/HoldingsCard.js +10 -10
  42. package/lib/commonjs/components/Icon/Icon.js +6 -6
  43. package/lib/commonjs/components/IconCapsule/IconCapsule.js +7 -7
  44. package/lib/commonjs/components/InputSearch/InputSearch.js +9 -9
  45. package/lib/commonjs/components/InstitutionBadge/InstitutionBadge.js +3 -3
  46. package/lib/commonjs/components/ListGroup/ListGroup.js +8 -8
  47. package/lib/commonjs/components/ListItem/ListItem.js +10 -10
  48. package/lib/commonjs/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
  49. package/lib/commonjs/components/LottiePlayer/LottiePlayer.js +2 -2
  50. package/lib/commonjs/components/LottiePlayer/LottiePlayer.web.js +2 -2
  51. package/lib/commonjs/components/MediaCard/MediaCard.js +21 -21
  52. package/lib/commonjs/components/MessageField/MessageField.js +8 -8
  53. package/lib/commonjs/components/MoneyValue/MoneyValue.js +7 -7
  54. package/lib/commonjs/components/NavArrow/NavArrow.js +8 -8
  55. package/lib/commonjs/components/NoteInput/NoteInput.js +12 -12
  56. package/lib/commonjs/components/Nudge/Nudge.js +20 -20
  57. package/lib/commonjs/components/OTP/OTP.js +15 -15
  58. package/lib/commonjs/components/PageHero/PageHero.js +16 -16
  59. package/lib/commonjs/components/PaymentFeedback/PaymentFeedback.js +23 -23
  60. package/lib/commonjs/components/Popup/Popup.js +1 -1
  61. package/lib/commonjs/components/ProductMerchandisingCard/ProductMerchandisingCard.js +64 -60
  62. package/lib/commonjs/components/ProgressBadge/ProgressBadge.js +5 -5
  63. package/lib/commonjs/components/Radio/Radio.js +8 -8
  64. package/lib/commonjs/components/RechargeCard/RechargeCard.js +31 -31
  65. package/lib/commonjs/components/SavingsGoalSummary/SavingsGoalSummary.js +59 -12
  66. package/lib/commonjs/components/ScrollArea/ScrollArea.js +126 -0
  67. package/lib/commonjs/components/Section/Section.js +24 -24
  68. package/lib/commonjs/components/StatusHero/StatusHero.js +14 -14
  69. package/lib/commonjs/components/Stepper/Step.js +16 -16
  70. package/lib/commonjs/components/Stepper/StepLabel.js +16 -16
  71. package/lib/commonjs/components/Stepper/Stepper.js +3 -3
  72. package/lib/commonjs/components/SuggestiveSearch/SuggestiveSearch.js +10 -10
  73. package/lib/commonjs/components/SupportText/SupportText.js +6 -6
  74. package/lib/commonjs/components/SupportText/SupportTextIcon.js +2 -2
  75. package/lib/commonjs/components/Text/Text.js +14 -2
  76. package/lib/commonjs/components/TextInput/TextInput.js +14 -14
  77. package/lib/commonjs/components/TextSegment/TextSegment.js +14 -2
  78. package/lib/commonjs/components/ThreadHero/ThreadHero.js +17 -17
  79. package/lib/commonjs/components/Title/Title.js +38 -16
  80. package/lib/commonjs/components/Toast/Toast.js +15 -15
  81. package/lib/commonjs/components/Toggle/Toggle.js +3 -11
  82. package/lib/commonjs/components/Tooltip/Tooltip.js +12 -12
  83. package/lib/commonjs/components/TransactionBubble/TransactionBubble.js +13 -13
  84. package/lib/commonjs/components/TransactionDetails/TransactionDetails.js +10 -10
  85. package/lib/commonjs/components/TransactionStatus/TransactionStatus.js +9 -9
  86. package/lib/commonjs/components/UpiHandle/UpiHandle.js +15 -15
  87. package/lib/commonjs/components/index.js +14 -0
  88. package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
  89. package/lib/commonjs/design-tokens/figma-modes.generated.js +50 -42
  90. package/lib/commonjs/icons/components/Icon4g.js +19 -0
  91. package/lib/commonjs/icons/components/Icon4gltedata.js +19 -0
  92. package/lib/commonjs/icons/components/Icon5g.js +19 -0
  93. package/lib/commonjs/icons/components/Icon5gdoubleplus.js +19 -0
  94. package/lib/commonjs/icons/components/Icon5gplus.js +19 -0
  95. package/lib/commonjs/icons/components/IconAdblocker.js +19 -0
  96. package/lib/commonjs/icons/components/IconAdblockplus.js +19 -0
  97. package/lib/commonjs/icons/components/IconAnalytics.js +19 -0
  98. package/lib/commonjs/icons/components/IconAnalyticsdata.js +19 -0
  99. package/lib/commonjs/icons/components/IconAnalyticspiechart.js +19 -0
  100. package/lib/commonjs/icons/components/IconAnalyticspiecharttree.js +19 -0
  101. package/lib/commonjs/icons/components/IconAnalyticspiecharttwo.js +19 -0
  102. package/lib/commonjs/icons/components/IconCompoundinterest.js +19 -0
  103. package/lib/commonjs/icons/components/IconConsumptionaccounted.js +19 -0
  104. package/lib/commonjs/icons/components/IconConsumptionaverage.js +19 -0
  105. package/lib/commonjs/icons/components/IconConsumptionhigh.js +19 -0
  106. package/lib/commonjs/icons/components/IconConsumptionlow.js +19 -0
  107. package/lib/commonjs/icons/components/IconConsumptionunaccounted.js +19 -0
  108. package/lib/commonjs/icons/components/IconCsvdoc.js +19 -0
  109. package/lib/commonjs/icons/components/IconDatabase.js +19 -0
  110. package/lib/commonjs/icons/components/IconDigitalecosystem.js +19 -0
  111. package/lib/commonjs/icons/components/IconDigitalselfservice.js +19 -0
  112. package/lib/commonjs/icons/components/IconDistribution.js +19 -0
  113. package/lib/commonjs/icons/components/IconDocument.js +19 -0
  114. package/lib/commonjs/icons/components/IconDocumentdoc.js +19 -0
  115. package/lib/commonjs/icons/components/IconDocumentjpg.js +19 -0
  116. package/lib/commonjs/icons/components/IconDocumentodt.js +19 -0
  117. package/lib/commonjs/icons/components/IconDocumentpdf.js +19 -0
  118. package/lib/commonjs/icons/components/IconDocumentpng.js +19 -0
  119. package/lib/commonjs/icons/components/IconDocumentraw.js +19 -0
  120. package/lib/commonjs/icons/components/IconDocumentrtf.js +19 -0
  121. package/lib/commonjs/icons/components/IconDocumentsettings.js +19 -0
  122. package/lib/commonjs/icons/components/IconDocumenttif.js +19 -0
  123. package/lib/commonjs/icons/components/IconDocumenttxt.js +19 -0
  124. package/lib/commonjs/icons/components/IconDocumentunknown.js +19 -0
  125. package/lib/commonjs/icons/components/IconDocumentxls.js +19 -0
  126. package/lib/commonjs/icons/components/IconDocumentxlsx.js +19 -0
  127. package/lib/commonjs/icons/components/IconFilerequest.js +19 -0
  128. package/lib/commonjs/icons/components/IconFilesend.js +19 -0
  129. package/lib/commonjs/icons/components/IconFileshare.js +19 -0
  130. package/lib/commonjs/icons/components/IconFindinpage.js +19 -0
  131. package/lib/commonjs/icons/components/IconFolder.js +19 -0
  132. package/lib/commonjs/icons/components/IconFolderbookmarks.js +19 -0
  133. package/lib/commonjs/icons/components/IconFolderfavorites.js +19 -0
  134. package/lib/commonjs/icons/components/IconFolderlocked.js +19 -0
  135. package/lib/commonjs/icons/components/IconFoldermovefiles.js +19 -0
  136. package/lib/commonjs/icons/components/IconFolderpublic.js +19 -0
  137. package/lib/commonjs/icons/components/IconFolderrated.js +19 -0
  138. package/lib/commonjs/icons/components/IconFolderrequest.js +19 -0
  139. package/lib/commonjs/icons/components/IconForm.js +19 -0
  140. package/lib/commonjs/icons/components/IconFormadd.js +19 -0
  141. package/lib/commonjs/icons/components/IconForms.js +19 -0
  142. package/lib/commonjs/icons/components/IconGraphincreasing.js +19 -0
  143. package/lib/commonjs/icons/components/IconGraphlow.js +19 -0
  144. package/lib/commonjs/icons/components/IconGraphtable.js +19 -0
  145. package/lib/commonjs/icons/components/IconHealthreport.js +19 -0
  146. package/lib/commonjs/icons/components/IconHubmode.js +19 -0
  147. package/lib/commonjs/icons/components/IconInfrastructure.js +19 -0
  148. package/lib/commonjs/icons/components/IconInterestlow.js +19 -0
  149. package/lib/commonjs/icons/components/IconLte.js +19 -0
  150. package/lib/commonjs/icons/components/IconNetworkfuture.js +19 -0
  151. package/lib/commonjs/icons/components/IconPagesettings.js +19 -0
  152. package/lib/commonjs/icons/components/IconPptxdoc.js +19 -0
  153. package/lib/commonjs/icons/components/IconPreferrednumber.js +19 -0
  154. package/lib/commonjs/icons/components/IconPremiumnumber.js +19 -0
  155. package/lib/commonjs/icons/components/IconProjection.js +19 -0
  156. package/lib/commonjs/icons/components/IconRequest.js +19 -0
  157. package/lib/commonjs/icons/components/IconRoutestraffic.js +19 -0
  158. package/lib/commonjs/icons/components/IconTechnology.js +19 -0
  159. package/lib/commonjs/icons/components/IconVolte.js +19 -0
  160. package/lib/commonjs/icons/components/IconVonr.js +19 -0
  161. package/lib/commonjs/icons/components/IconVowifi.js +19 -0
  162. package/lib/commonjs/icons/components/IconVpndata.js +19 -0
  163. package/lib/commonjs/icons/components/index.js +803 -0
  164. package/lib/commonjs/icons/registry.js +2 -2
  165. package/lib/commonjs/utils/GlassFill/GlassFill.js +69 -73
  166. package/lib/commonjs/utils/index.js +25 -0
  167. package/lib/commonjs/utils/react-utils.js +62 -0
  168. package/lib/commonjs/utils/shadow.js +200 -0
  169. package/lib/module/components/ActionFooter/ActionFooter.js +7 -24
  170. package/lib/module/components/ActionTile/ActionTile.js +10 -10
  171. package/lib/module/components/AmountInput/AmountInput.js +3 -3
  172. package/lib/module/components/AreaLineChart/AreaLineChart.js +2 -2
  173. package/lib/module/components/Attached/Attached.js +1 -1
  174. package/lib/module/components/Avatar/Avatar.js +10 -10
  175. package/lib/module/components/AvatarGroup/AvatarGroup.js +52 -30
  176. package/lib/module/components/Badge/Badge.js +12 -12
  177. package/lib/module/components/BenefitCard/BenefitCard.js +95 -21
  178. package/lib/module/components/BottomNav/BottomNav.js +2 -2
  179. package/lib/module/components/BottomNavItem/BottomNavItem.js +3 -3
  180. package/lib/module/components/Button/Button.js +32 -20
  181. package/lib/module/components/Card/Card.js +20 -20
  182. package/lib/module/components/CardAdvisory/CardAdvisory.js +6 -6
  183. package/lib/module/components/CardCTA/CardCTA.js +21 -21
  184. package/lib/module/components/CardFeedback/CardFeedback.js +18 -18
  185. package/lib/module/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
  186. package/lib/module/components/CardInsight/CardInsight.js +1 -2
  187. package/lib/module/components/Carousel/Carousel.js +18 -12
  188. package/lib/module/components/CarouselCardAccounts/CarouselCardAccounts.js +71 -0
  189. package/lib/module/components/Checkbox/Checkbox.js +2 -9
  190. package/lib/module/components/ChipGroup/ChipGroup.js +1 -1
  191. package/lib/module/components/ChipSelect/ChipSelect.js +11 -11
  192. package/lib/module/components/CircularProgressBar/CircularProgressBar.js +5 -5
  193. package/lib/module/components/CircularProgressBarDoted/CircularProgressBarDoted.js +8 -8
  194. package/lib/module/components/CircularRating/CircularRating.js +3 -3
  195. package/lib/module/components/CompareTable/CompareTable.js +16 -16
  196. package/lib/module/components/DebitCard/DebitCard.js +18 -18
  197. package/lib/module/components/Disclaimer/Disclaimer.js +5 -5
  198. package/lib/module/components/DonutChart/DonutChart.js +11 -11
  199. package/lib/module/components/Drawer/Drawer.js +60 -60
  200. package/lib/module/components/Dropdown/Dropdown.js +22 -23
  201. package/lib/module/components/DropdownInput/DropdownInput.js +10 -10
  202. package/lib/module/components/EmptyState/EmptyState.js +14 -14
  203. package/lib/module/components/FilterBar/FilterBar.js +2 -2
  204. package/lib/module/components/Form/Form.js +3 -3
  205. package/lib/module/components/FormField/FormField.js +6 -6
  206. package/lib/module/components/FullscreenModal/FullscreenModal.js +24 -24
  207. package/lib/module/components/Gauge/Gauge.js +8 -8
  208. package/lib/module/components/HoldingsCard/HoldingsCard.js +10 -10
  209. package/lib/module/components/Icon/Icon.js +6 -6
  210. package/lib/module/components/IconCapsule/IconCapsule.js +7 -7
  211. package/lib/module/components/InputSearch/InputSearch.js +9 -9
  212. package/lib/module/components/InstitutionBadge/InstitutionBadge.js +3 -3
  213. package/lib/module/components/ListGroup/ListGroup.js +8 -8
  214. package/lib/module/components/ListItem/ListItem.js +10 -10
  215. package/lib/module/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
  216. package/lib/module/components/LottiePlayer/LottiePlayer.js +2 -2
  217. package/lib/module/components/LottiePlayer/LottiePlayer.web.js +2 -2
  218. package/lib/module/components/MediaCard/MediaCard.js +21 -21
  219. package/lib/module/components/MessageField/MessageField.js +8 -8
  220. package/lib/module/components/MoneyValue/MoneyValue.js +7 -7
  221. package/lib/module/components/NavArrow/NavArrow.js +8 -8
  222. package/lib/module/components/NoteInput/NoteInput.js +12 -12
  223. package/lib/module/components/Nudge/Nudge.js +20 -20
  224. package/lib/module/components/OTP/OTP.js +15 -15
  225. package/lib/module/components/PageHero/PageHero.js +16 -16
  226. package/lib/module/components/PaymentFeedback/PaymentFeedback.js +23 -23
  227. package/lib/module/components/Popup/Popup.js +1 -1
  228. package/lib/module/components/ProductMerchandisingCard/ProductMerchandisingCard.js +66 -62
  229. package/lib/module/components/ProgressBadge/ProgressBadge.js +5 -5
  230. package/lib/module/components/Radio/Radio.js +9 -9
  231. package/lib/module/components/RechargeCard/RechargeCard.js +31 -31
  232. package/lib/module/components/SavingsGoalSummary/SavingsGoalSummary.js +60 -13
  233. package/lib/module/components/ScrollArea/ScrollArea.js +121 -0
  234. package/lib/module/components/Section/Section.js +24 -24
  235. package/lib/module/components/StatusHero/StatusHero.js +14 -14
  236. package/lib/module/components/Stepper/Step.js +16 -16
  237. package/lib/module/components/Stepper/StepLabel.js +16 -16
  238. package/lib/module/components/Stepper/Stepper.js +3 -3
  239. package/lib/module/components/SuggestiveSearch/SuggestiveSearch.js +10 -10
  240. package/lib/module/components/SupportText/SupportText.js +6 -6
  241. package/lib/module/components/SupportText/SupportTextIcon.js +2 -2
  242. package/lib/module/components/Text/Text.js +15 -3
  243. package/lib/module/components/TextInput/TextInput.js +14 -14
  244. package/lib/module/components/TextSegment/TextSegment.js +15 -3
  245. package/lib/module/components/ThreadHero/ThreadHero.js +17 -17
  246. package/lib/module/components/Title/Title.js +39 -17
  247. package/lib/module/components/Toast/Toast.js +15 -15
  248. package/lib/module/components/Toggle/Toggle.js +4 -12
  249. package/lib/module/components/Tooltip/Tooltip.js +12 -12
  250. package/lib/module/components/TransactionBubble/TransactionBubble.js +13 -13
  251. package/lib/module/components/TransactionDetails/TransactionDetails.js +10 -10
  252. package/lib/module/components/TransactionStatus/TransactionStatus.js +9 -9
  253. package/lib/module/components/UpiHandle/UpiHandle.js +15 -15
  254. package/lib/module/components/index.js +2 -0
  255. package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
  256. package/lib/module/design-tokens/figma-modes.generated.js +50 -42
  257. package/lib/module/icons/components/Icon4g.js +12 -0
  258. package/lib/module/icons/components/Icon4gltedata.js +12 -0
  259. package/lib/module/icons/components/Icon5g.js +12 -0
  260. package/lib/module/icons/components/Icon5gdoubleplus.js +12 -0
  261. package/lib/module/icons/components/Icon5gplus.js +12 -0
  262. package/lib/module/icons/components/IconAdblocker.js +12 -0
  263. package/lib/module/icons/components/IconAdblockplus.js +12 -0
  264. package/lib/module/icons/components/IconAnalytics.js +12 -0
  265. package/lib/module/icons/components/IconAnalyticsdata.js +12 -0
  266. package/lib/module/icons/components/IconAnalyticspiechart.js +12 -0
  267. package/lib/module/icons/components/IconAnalyticspiecharttree.js +12 -0
  268. package/lib/module/icons/components/IconAnalyticspiecharttwo.js +12 -0
  269. package/lib/module/icons/components/IconCompoundinterest.js +12 -0
  270. package/lib/module/icons/components/IconConsumptionaccounted.js +12 -0
  271. package/lib/module/icons/components/IconConsumptionaverage.js +12 -0
  272. package/lib/module/icons/components/IconConsumptionhigh.js +12 -0
  273. package/lib/module/icons/components/IconConsumptionlow.js +12 -0
  274. package/lib/module/icons/components/IconConsumptionunaccounted.js +12 -0
  275. package/lib/module/icons/components/IconCsvdoc.js +12 -0
  276. package/lib/module/icons/components/IconDatabase.js +12 -0
  277. package/lib/module/icons/components/IconDigitalecosystem.js +12 -0
  278. package/lib/module/icons/components/IconDigitalselfservice.js +12 -0
  279. package/lib/module/icons/components/IconDistribution.js +12 -0
  280. package/lib/module/icons/components/IconDocument.js +12 -0
  281. package/lib/module/icons/components/IconDocumentdoc.js +12 -0
  282. package/lib/module/icons/components/IconDocumentjpg.js +12 -0
  283. package/lib/module/icons/components/IconDocumentodt.js +12 -0
  284. package/lib/module/icons/components/IconDocumentpdf.js +12 -0
  285. package/lib/module/icons/components/IconDocumentpng.js +12 -0
  286. package/lib/module/icons/components/IconDocumentraw.js +12 -0
  287. package/lib/module/icons/components/IconDocumentrtf.js +12 -0
  288. package/lib/module/icons/components/IconDocumentsettings.js +12 -0
  289. package/lib/module/icons/components/IconDocumenttif.js +12 -0
  290. package/lib/module/icons/components/IconDocumenttxt.js +12 -0
  291. package/lib/module/icons/components/IconDocumentunknown.js +12 -0
  292. package/lib/module/icons/components/IconDocumentxls.js +12 -0
  293. package/lib/module/icons/components/IconDocumentxlsx.js +12 -0
  294. package/lib/module/icons/components/IconFilerequest.js +12 -0
  295. package/lib/module/icons/components/IconFilesend.js +12 -0
  296. package/lib/module/icons/components/IconFileshare.js +12 -0
  297. package/lib/module/icons/components/IconFindinpage.js +12 -0
  298. package/lib/module/icons/components/IconFolder.js +12 -0
  299. package/lib/module/icons/components/IconFolderbookmarks.js +12 -0
  300. package/lib/module/icons/components/IconFolderfavorites.js +12 -0
  301. package/lib/module/icons/components/IconFolderlocked.js +12 -0
  302. package/lib/module/icons/components/IconFoldermovefiles.js +12 -0
  303. package/lib/module/icons/components/IconFolderpublic.js +12 -0
  304. package/lib/module/icons/components/IconFolderrated.js +12 -0
  305. package/lib/module/icons/components/IconFolderrequest.js +12 -0
  306. package/lib/module/icons/components/IconForm.js +12 -0
  307. package/lib/module/icons/components/IconFormadd.js +12 -0
  308. package/lib/module/icons/components/IconForms.js +12 -0
  309. package/lib/module/icons/components/IconGraphincreasing.js +12 -0
  310. package/lib/module/icons/components/IconGraphlow.js +12 -0
  311. package/lib/module/icons/components/IconGraphtable.js +12 -0
  312. package/lib/module/icons/components/IconHealthreport.js +12 -0
  313. package/lib/module/icons/components/IconHubmode.js +12 -0
  314. package/lib/module/icons/components/IconInfrastructure.js +12 -0
  315. package/lib/module/icons/components/IconInterestlow.js +12 -0
  316. package/lib/module/icons/components/IconLte.js +12 -0
  317. package/lib/module/icons/components/IconNetworkfuture.js +12 -0
  318. package/lib/module/icons/components/IconPagesettings.js +12 -0
  319. package/lib/module/icons/components/IconPptxdoc.js +12 -0
  320. package/lib/module/icons/components/IconPreferrednumber.js +12 -0
  321. package/lib/module/icons/components/IconPremiumnumber.js +12 -0
  322. package/lib/module/icons/components/IconProjection.js +12 -0
  323. package/lib/module/icons/components/IconRequest.js +12 -0
  324. package/lib/module/icons/components/IconRoutestraffic.js +12 -0
  325. package/lib/module/icons/components/IconTechnology.js +12 -0
  326. package/lib/module/icons/components/IconVolte.js +12 -0
  327. package/lib/module/icons/components/IconVonr.js +12 -0
  328. package/lib/module/icons/components/IconVowifi.js +12 -0
  329. package/lib/module/icons/components/IconVpndata.js +12 -0
  330. package/lib/module/icons/components/index.js +73 -0
  331. package/lib/module/icons/registry.js +2 -2
  332. package/lib/module/utils/GlassFill/GlassFill.js +69 -72
  333. package/lib/module/utils/index.js +2 -1
  334. package/lib/module/utils/react-utils.js +61 -0
  335. package/lib/module/utils/shadow.js +194 -0
  336. package/lib/typescript/src/components/BenefitCard/BenefitCard.d.ts +33 -4
  337. package/lib/typescript/src/components/Carousel/Carousel.d.ts +11 -1
  338. package/lib/typescript/src/components/CarouselCardAccounts/CarouselCardAccounts.d.ts +57 -0
  339. package/lib/typescript/src/components/SavingsGoalSummary/SavingsGoalSummary.d.ts +11 -1
  340. package/lib/typescript/src/components/ScrollArea/ScrollArea.d.ts +77 -0
  341. package/lib/typescript/src/components/Text/Text.d.ts +12 -3
  342. package/lib/typescript/src/components/TextSegment/TextSegment.d.ts +12 -3
  343. package/lib/typescript/src/components/Title/Title.d.ts +12 -2
  344. package/lib/typescript/src/components/index.d.ts +2 -0
  345. package/lib/typescript/src/design-tokens/figma-modes.generated.d.ts +23 -15
  346. package/lib/typescript/src/icons/components/Icon4g.d.ts +3 -0
  347. package/lib/typescript/src/icons/components/Icon4gltedata.d.ts +3 -0
  348. package/lib/typescript/src/icons/components/Icon5g.d.ts +3 -0
  349. package/lib/typescript/src/icons/components/Icon5gdoubleplus.d.ts +3 -0
  350. package/lib/typescript/src/icons/components/Icon5gplus.d.ts +3 -0
  351. package/lib/typescript/src/icons/components/IconAdblocker.d.ts +3 -0
  352. package/lib/typescript/src/icons/components/IconAdblockplus.d.ts +3 -0
  353. package/lib/typescript/src/icons/components/IconAnalytics.d.ts +3 -0
  354. package/lib/typescript/src/icons/components/IconAnalyticsdata.d.ts +3 -0
  355. package/lib/typescript/src/icons/components/IconAnalyticspiechart.d.ts +3 -0
  356. package/lib/typescript/src/icons/components/IconAnalyticspiecharttree.d.ts +3 -0
  357. package/lib/typescript/src/icons/components/IconAnalyticspiecharttwo.d.ts +3 -0
  358. package/lib/typescript/src/icons/components/IconCompoundinterest.d.ts +3 -0
  359. package/lib/typescript/src/icons/components/IconConsumptionaccounted.d.ts +3 -0
  360. package/lib/typescript/src/icons/components/IconConsumptionaverage.d.ts +3 -0
  361. package/lib/typescript/src/icons/components/IconConsumptionhigh.d.ts +3 -0
  362. package/lib/typescript/src/icons/components/IconConsumptionlow.d.ts +3 -0
  363. package/lib/typescript/src/icons/components/IconConsumptionunaccounted.d.ts +3 -0
  364. package/lib/typescript/src/icons/components/IconCsvdoc.d.ts +3 -0
  365. package/lib/typescript/src/icons/components/IconDatabase.d.ts +3 -0
  366. package/lib/typescript/src/icons/components/IconDigitalecosystem.d.ts +3 -0
  367. package/lib/typescript/src/icons/components/IconDigitalselfservice.d.ts +3 -0
  368. package/lib/typescript/src/icons/components/IconDistribution.d.ts +3 -0
  369. package/lib/typescript/src/icons/components/IconDocument.d.ts +3 -0
  370. package/lib/typescript/src/icons/components/IconDocumentdoc.d.ts +3 -0
  371. package/lib/typescript/src/icons/components/IconDocumentjpg.d.ts +3 -0
  372. package/lib/typescript/src/icons/components/IconDocumentodt.d.ts +3 -0
  373. package/lib/typescript/src/icons/components/IconDocumentpdf.d.ts +3 -0
  374. package/lib/typescript/src/icons/components/IconDocumentpng.d.ts +3 -0
  375. package/lib/typescript/src/icons/components/IconDocumentraw.d.ts +3 -0
  376. package/lib/typescript/src/icons/components/IconDocumentrtf.d.ts +3 -0
  377. package/lib/typescript/src/icons/components/IconDocumentsettings.d.ts +3 -0
  378. package/lib/typescript/src/icons/components/IconDocumenttif.d.ts +3 -0
  379. package/lib/typescript/src/icons/components/IconDocumenttxt.d.ts +3 -0
  380. package/lib/typescript/src/icons/components/IconDocumentunknown.d.ts +3 -0
  381. package/lib/typescript/src/icons/components/IconDocumentxls.d.ts +3 -0
  382. package/lib/typescript/src/icons/components/IconDocumentxlsx.d.ts +3 -0
  383. package/lib/typescript/src/icons/components/IconFilerequest.d.ts +3 -0
  384. package/lib/typescript/src/icons/components/IconFilesend.d.ts +3 -0
  385. package/lib/typescript/src/icons/components/IconFileshare.d.ts +3 -0
  386. package/lib/typescript/src/icons/components/IconFindinpage.d.ts +3 -0
  387. package/lib/typescript/src/icons/components/IconFolder.d.ts +3 -0
  388. package/lib/typescript/src/icons/components/IconFolderbookmarks.d.ts +3 -0
  389. package/lib/typescript/src/icons/components/IconFolderfavorites.d.ts +3 -0
  390. package/lib/typescript/src/icons/components/IconFolderlocked.d.ts +3 -0
  391. package/lib/typescript/src/icons/components/IconFoldermovefiles.d.ts +3 -0
  392. package/lib/typescript/src/icons/components/IconFolderpublic.d.ts +3 -0
  393. package/lib/typescript/src/icons/components/IconFolderrated.d.ts +3 -0
  394. package/lib/typescript/src/icons/components/IconFolderrequest.d.ts +3 -0
  395. package/lib/typescript/src/icons/components/IconForm.d.ts +3 -0
  396. package/lib/typescript/src/icons/components/IconFormadd.d.ts +3 -0
  397. package/lib/typescript/src/icons/components/IconForms.d.ts +3 -0
  398. package/lib/typescript/src/icons/components/IconGraphincreasing.d.ts +3 -0
  399. package/lib/typescript/src/icons/components/IconGraphlow.d.ts +3 -0
  400. package/lib/typescript/src/icons/components/IconGraphtable.d.ts +3 -0
  401. package/lib/typescript/src/icons/components/IconHealthreport.d.ts +3 -0
  402. package/lib/typescript/src/icons/components/IconHubmode.d.ts +3 -0
  403. package/lib/typescript/src/icons/components/IconInfrastructure.d.ts +3 -0
  404. package/lib/typescript/src/icons/components/IconInterestlow.d.ts +3 -0
  405. package/lib/typescript/src/icons/components/IconLte.d.ts +3 -0
  406. package/lib/typescript/src/icons/components/IconNetworkfuture.d.ts +3 -0
  407. package/lib/typescript/src/icons/components/IconPagesettings.d.ts +3 -0
  408. package/lib/typescript/src/icons/components/IconPptxdoc.d.ts +3 -0
  409. package/lib/typescript/src/icons/components/IconPreferrednumber.d.ts +3 -0
  410. package/lib/typescript/src/icons/components/IconPremiumnumber.d.ts +3 -0
  411. package/lib/typescript/src/icons/components/IconProjection.d.ts +3 -0
  412. package/lib/typescript/src/icons/components/IconRequest.d.ts +3 -0
  413. package/lib/typescript/src/icons/components/IconRoutestraffic.d.ts +3 -0
  414. package/lib/typescript/src/icons/components/IconTechnology.d.ts +3 -0
  415. package/lib/typescript/src/icons/components/IconVolte.d.ts +3 -0
  416. package/lib/typescript/src/icons/components/IconVonr.d.ts +3 -0
  417. package/lib/typescript/src/icons/components/IconVowifi.d.ts +3 -0
  418. package/lib/typescript/src/icons/components/IconVpndata.d.ts +3 -0
  419. package/lib/typescript/src/icons/components/index.d.ts +73 -0
  420. package/lib/typescript/src/icons/registry.d.ts +1 -1
  421. package/lib/typescript/src/utils/GlassFill/GlassFill.d.ts +11 -4
  422. package/lib/typescript/src/utils/index.d.ts +2 -0
  423. package/lib/typescript/src/utils/react-utils.d.ts +40 -1
  424. package/lib/typescript/src/utils/shadow.d.ts +72 -0
  425. package/package.json +2 -2
  426. package/src/components/ActionFooter/ActionFooter.tsx +8 -26
  427. package/src/components/ActionTile/ActionTile.tsx +10 -10
  428. package/src/components/AmountInput/AmountInput.tsx +3 -3
  429. package/src/components/AreaLineChart/AreaLineChart.tsx +2 -2
  430. package/src/components/Attached/Attached.tsx +1 -1
  431. package/src/components/Avatar/Avatar.tsx +10 -10
  432. package/src/components/AvatarGroup/AvatarGroup.tsx +53 -27
  433. package/src/components/Badge/Badge.tsx +12 -13
  434. package/src/components/BenefitCard/BenefitCard.tsx +120 -27
  435. package/src/components/BottomNav/BottomNav.tsx +2 -2
  436. package/src/components/BottomNavItem/BottomNavItem.tsx +3 -3
  437. package/src/components/Button/Button.tsx +30 -20
  438. package/src/components/Card/Card.tsx +20 -20
  439. package/src/components/CardAdvisory/CardAdvisory.tsx +6 -6
  440. package/src/components/CardCTA/CardCTA.tsx +21 -21
  441. package/src/components/CardFeedback/CardFeedback.tsx +18 -18
  442. package/src/components/CardFinancialCondition/CardFinancialCondition.tsx +7 -10
  443. package/src/components/CardInsight/CardInsight.tsx +1 -3
  444. package/src/components/Carousel/Carousel.tsx +29 -12
  445. package/src/components/CarouselCardAccounts/CarouselCardAccounts.tsx +113 -0
  446. package/src/components/Checkbox/Checkbox.tsx +2 -8
  447. package/src/components/ChipGroup/ChipGroup.tsx +1 -1
  448. package/src/components/ChipSelect/ChipSelect.tsx +11 -11
  449. package/src/components/CircularProgressBar/CircularProgressBar.tsx +5 -5
  450. package/src/components/CircularProgressBarDoted/CircularProgressBarDoted.tsx +8 -8
  451. package/src/components/CircularRating/CircularRating.tsx +3 -3
  452. package/src/components/CompareTable/CompareTable.tsx +16 -16
  453. package/src/components/DebitCard/DebitCard.tsx +22 -22
  454. package/src/components/Disclaimer/Disclaimer.tsx +5 -5
  455. package/src/components/DonutChart/DonutChart.tsx +11 -45
  456. package/src/components/Drawer/Drawer.tsx +80 -71
  457. package/src/components/Dropdown/Dropdown.tsx +23 -28
  458. package/src/components/DropdownInput/DropdownInput.tsx +10 -17
  459. package/src/components/EmptyState/EmptyState.tsx +14 -14
  460. package/src/components/FilterBar/FilterBar.tsx +2 -2
  461. package/src/components/Form/Form.tsx +3 -3
  462. package/src/components/FormField/FormField.tsx +6 -11
  463. package/src/components/FullscreenModal/FullscreenModal.tsx +24 -24
  464. package/src/components/Gauge/Gauge.tsx +8 -8
  465. package/src/components/HoldingsCard/HoldingsCard.tsx +10 -10
  466. package/src/components/Icon/Icon.tsx +6 -6
  467. package/src/components/IconCapsule/IconCapsule.tsx +7 -7
  468. package/src/components/InputSearch/InputSearch.tsx +9 -9
  469. package/src/components/InstitutionBadge/InstitutionBadge.tsx +3 -6
  470. package/src/components/ListGroup/ListGroup.tsx +8 -8
  471. package/src/components/ListItem/ListItem.tsx +10 -10
  472. package/src/components/LottieIntroBlock/LottieIntroBlock.tsx +13 -16
  473. package/src/components/LottiePlayer/LottiePlayer.tsx +2 -2
  474. package/src/components/LottiePlayer/LottiePlayer.web.tsx +2 -2
  475. package/src/components/MediaCard/MediaCard.tsx +21 -21
  476. package/src/components/MessageField/MessageField.tsx +8 -16
  477. package/src/components/MoneyValue/MoneyValue.tsx +7 -7
  478. package/src/components/NavArrow/NavArrow.tsx +8 -8
  479. package/src/components/NoteInput/NoteInput.tsx +12 -12
  480. package/src/components/Nudge/Nudge.tsx +20 -20
  481. package/src/components/OTP/OTP.tsx +16 -16
  482. package/src/components/PageHero/PageHero.tsx +16 -16
  483. package/src/components/PaymentFeedback/PaymentFeedback.tsx +27 -27
  484. package/src/components/Popup/Popup.tsx +1 -1
  485. package/src/components/ProductMerchandisingCard/ProductMerchandisingCard.tsx +76 -47
  486. package/src/components/ProgressBadge/ProgressBadge.tsx +5 -5
  487. package/src/components/Radio/Radio.tsx +8 -9
  488. package/src/components/RechargeCard/RechargeCard.tsx +31 -31
  489. package/src/components/SavingsGoalSummary/SavingsGoalSummary.tsx +105 -13
  490. package/src/components/ScrollArea/ScrollArea.tsx +200 -0
  491. package/src/components/Section/Section.tsx +26 -26
  492. package/src/components/StatusHero/StatusHero.tsx +14 -14
  493. package/src/components/Stepper/Step.tsx +16 -18
  494. package/src/components/Stepper/StepLabel.tsx +16 -27
  495. package/src/components/Stepper/Stepper.tsx +3 -4
  496. package/src/components/SuggestiveSearch/SuggestiveSearch.tsx +10 -20
  497. package/src/components/SupportText/SupportText.tsx +6 -6
  498. package/src/components/SupportText/SupportTextIcon.tsx +2 -2
  499. package/src/components/Text/Text.tsx +23 -5
  500. package/src/components/TextInput/TextInput.tsx +14 -14
  501. package/src/components/TextSegment/TextSegment.tsx +22 -4
  502. package/src/components/ThreadHero/ThreadHero.tsx +17 -17
  503. package/src/components/Title/Title.tsx +44 -18
  504. package/src/components/Toast/Toast.tsx +15 -15
  505. package/src/components/Toggle/Toggle.tsx +5 -10
  506. package/src/components/Tooltip/Tooltip.tsx +12 -12
  507. package/src/components/TransactionBubble/TransactionBubble.tsx +15 -15
  508. package/src/components/TransactionDetails/TransactionDetails.tsx +10 -10
  509. package/src/components/TransactionStatus/TransactionStatus.tsx +9 -9
  510. package/src/components/UpiHandle/UpiHandle.tsx +15 -15
  511. package/src/components/index.ts +2 -0
  512. package/src/design-tokens/Coin Variables-variables-full.json +1 -1
  513. package/src/design-tokens/figma-modes.generated.ts +50 -42
  514. package/src/icons/components/Icon4g.tsx +11 -0
  515. package/src/icons/components/Icon4gltedata.tsx +11 -0
  516. package/src/icons/components/Icon5g.tsx +11 -0
  517. package/src/icons/components/Icon5gdoubleplus.tsx +11 -0
  518. package/src/icons/components/Icon5gplus.tsx +11 -0
  519. package/src/icons/components/IconAdblocker.tsx +11 -0
  520. package/src/icons/components/IconAdblockplus.tsx +11 -0
  521. package/src/icons/components/IconAnalytics.tsx +11 -0
  522. package/src/icons/components/IconAnalyticsdata.tsx +11 -0
  523. package/src/icons/components/IconAnalyticspiechart.tsx +11 -0
  524. package/src/icons/components/IconAnalyticspiecharttree.tsx +11 -0
  525. package/src/icons/components/IconAnalyticspiecharttwo.tsx +11 -0
  526. package/src/icons/components/IconCompoundinterest.tsx +11 -0
  527. package/src/icons/components/IconConsumptionaccounted.tsx +11 -0
  528. package/src/icons/components/IconConsumptionaverage.tsx +11 -0
  529. package/src/icons/components/IconConsumptionhigh.tsx +11 -0
  530. package/src/icons/components/IconConsumptionlow.tsx +11 -0
  531. package/src/icons/components/IconConsumptionunaccounted.tsx +11 -0
  532. package/src/icons/components/IconCsvdoc.tsx +11 -0
  533. package/src/icons/components/IconDatabase.tsx +11 -0
  534. package/src/icons/components/IconDigitalecosystem.tsx +11 -0
  535. package/src/icons/components/IconDigitalselfservice.tsx +11 -0
  536. package/src/icons/components/IconDistribution.tsx +11 -0
  537. package/src/icons/components/IconDocument.tsx +11 -0
  538. package/src/icons/components/IconDocumentdoc.tsx +11 -0
  539. package/src/icons/components/IconDocumentjpg.tsx +11 -0
  540. package/src/icons/components/IconDocumentodt.tsx +11 -0
  541. package/src/icons/components/IconDocumentpdf.tsx +11 -0
  542. package/src/icons/components/IconDocumentpng.tsx +11 -0
  543. package/src/icons/components/IconDocumentraw.tsx +11 -0
  544. package/src/icons/components/IconDocumentrtf.tsx +11 -0
  545. package/src/icons/components/IconDocumentsettings.tsx +11 -0
  546. package/src/icons/components/IconDocumenttif.tsx +11 -0
  547. package/src/icons/components/IconDocumenttxt.tsx +11 -0
  548. package/src/icons/components/IconDocumentunknown.tsx +11 -0
  549. package/src/icons/components/IconDocumentxls.tsx +11 -0
  550. package/src/icons/components/IconDocumentxlsx.tsx +11 -0
  551. package/src/icons/components/IconFilerequest.tsx +11 -0
  552. package/src/icons/components/IconFilesend.tsx +11 -0
  553. package/src/icons/components/IconFileshare.tsx +11 -0
  554. package/src/icons/components/IconFindinpage.tsx +11 -0
  555. package/src/icons/components/IconFolder.tsx +11 -0
  556. package/src/icons/components/IconFolderbookmarks.tsx +11 -0
  557. package/src/icons/components/IconFolderfavorites.tsx +11 -0
  558. package/src/icons/components/IconFolderlocked.tsx +11 -0
  559. package/src/icons/components/IconFoldermovefiles.tsx +11 -0
  560. package/src/icons/components/IconFolderpublic.tsx +11 -0
  561. package/src/icons/components/IconFolderrated.tsx +11 -0
  562. package/src/icons/components/IconFolderrequest.tsx +11 -0
  563. package/src/icons/components/IconForm.tsx +11 -0
  564. package/src/icons/components/IconFormadd.tsx +11 -0
  565. package/src/icons/components/IconForms.tsx +11 -0
  566. package/src/icons/components/IconGraphincreasing.tsx +11 -0
  567. package/src/icons/components/IconGraphlow.tsx +11 -0
  568. package/src/icons/components/IconGraphtable.tsx +11 -0
  569. package/src/icons/components/IconHealthreport.tsx +11 -0
  570. package/src/icons/components/IconHubmode.tsx +11 -0
  571. package/src/icons/components/IconInfrastructure.tsx +11 -0
  572. package/src/icons/components/IconInterestlow.tsx +11 -0
  573. package/src/icons/components/IconLte.tsx +11 -0
  574. package/src/icons/components/IconNetworkfuture.tsx +11 -0
  575. package/src/icons/components/IconPagesettings.tsx +11 -0
  576. package/src/icons/components/IconPptxdoc.tsx +11 -0
  577. package/src/icons/components/IconPreferrednumber.tsx +11 -0
  578. package/src/icons/components/IconPremiumnumber.tsx +11 -0
  579. package/src/icons/components/IconProjection.tsx +11 -0
  580. package/src/icons/components/IconRequest.tsx +11 -0
  581. package/src/icons/components/IconRoutestraffic.tsx +11 -0
  582. package/src/icons/components/IconTechnology.tsx +11 -0
  583. package/src/icons/components/IconVolte.tsx +11 -0
  584. package/src/icons/components/IconVonr.tsx +11 -0
  585. package/src/icons/components/IconVowifi.tsx +11 -0
  586. package/src/icons/components/IconVpndata.tsx +11 -0
  587. package/src/icons/components/index.ts +73 -0
  588. package/src/icons/registry.ts +293 -1
  589. package/src/utils/GlassFill/GlassFill.tsx +59 -56
  590. package/src/utils/index.ts +2 -0
  591. package/src/utils/react-utils.ts +72 -1
  592. package/src/utils/shadow.ts +219 -0
@@ -25,29 +25,29 @@ export default function PaymentFeedback({
25
25
  ...globalModes,
26
26
  ...propModes
27
27
  };
28
- const containerGap = Number(getVariableByName('paymnetFeedback/container/gap', modes)) || 46;
29
- const messageGap = Number(getVariableByName('paymnetFeedback/message/gap', modes)) || 12;
30
- const titleColor = getVariableByName('paymnetFeedback/title/color', modes) || '#0d0d0f';
31
- const titleFontSize = Number(getVariableByName('paymnetFeedback/title/fontSize', modes)) || 36;
32
- const titleFontFamily = getVariableByName('paymnetFeedback/title/fontFamily', modes) || 'JioType Var';
33
- const titleLineHeight = Number(getVariableByName('paymnetFeedback/title/lineHeight', modes)) || 36;
34
- const titleFontWeight = getVariableByName('paymnetFeedback/title/fontWeight', modes) || '900';
35
- const subtitleColor = getVariableByName('paymnetFeedback/subtitle/color', modes) || '#24262b';
36
- const subtitleFontSize = Number(getVariableByName('paymnetFeedback/subtitle/fontSize', modes)) || 16;
37
- const subtitleFontFamily = getVariableByName('paymnetFeedback/subtitle/fontFamily', modes) || 'JioType Var';
38
- const subtitleLineHeight = Number(getVariableByName('paymnetFeedback/subtitle/lineHeight', modes)) || 19;
39
- const subtitleFontWeight = getVariableByName('paymnetFeedback/subtitle/fontWeight', modes) || '500';
40
- const bodyColor = getVariableByName('paymnetFeedback/body/color', modes) || '#24262b';
41
- const bodyFontSize = Number(getVariableByName('paymnetFeedback/body/fontSize', modes)) || 14;
42
- const bodyFontFamily = getVariableByName('paymnetFeedback/body/fontFamily', modes) || 'JioType Var';
43
- const bodyLineHeight = Number(getVariableByName('paymnetFeedback/body/lineHeight', modes)) || 17;
44
- const bodyFontWeight = getVariableByName('paymnetFeedback/body/fontWeight', modes) || '500';
45
- const detailsColor = getVariableByName('paymnetFeedback/details/color', modes) || '#24262b';
46
- const detailsFontSize = Number(getVariableByName('paymnetFeedback/details/fontSize', modes)) || 14;
47
- const detailsFontFamily = getVariableByName('paymnetFeedback/details/fontFamily', modes) || 'JioType Var';
48
- const detailsLineHeight = Number(getVariableByName('paymnetFeedback/details/lineHeight', modes)) || 17;
49
- const detailsFontWeight = getVariableByName('paymnetFeedback/details/fontWeight', modes) || '500';
50
- const detailsParagraphSpacing = Number(getVariableByName('paymnetFeedback/details/paragraphSpacing', modes)) || 4;
28
+ const containerGap = Number(getVariableByName('paymnetFeedback/container/gap', modes));
29
+ const messageGap = Number(getVariableByName('paymnetFeedback/message/gap', modes));
30
+ const titleColor = getVariableByName('paymnetFeedback/title/color', modes);
31
+ const titleFontSize = Number(getVariableByName('paymnetFeedback/title/fontSize', modes));
32
+ const titleFontFamily = getVariableByName('paymnetFeedback/title/fontFamily', modes);
33
+ const titleLineHeight = Number(getVariableByName('paymnetFeedback/title/lineHeight', modes));
34
+ const titleFontWeight = getVariableByName('paymnetFeedback/title/fontWeight', modes);
35
+ const subtitleColor = getVariableByName('paymnetFeedback/subtitle/color', modes);
36
+ const subtitleFontSize = Number(getVariableByName('paymnetFeedback/subtitle/fontSize', modes));
37
+ const subtitleFontFamily = getVariableByName('paymnetFeedback/subtitle/fontFamily', modes);
38
+ const subtitleLineHeight = Number(getVariableByName('paymnetFeedback/subtitle/lineHeight', modes));
39
+ const subtitleFontWeight = getVariableByName('paymnetFeedback/subtitle/fontWeight', modes);
40
+ const bodyColor = getVariableByName('paymnetFeedback/body/color', modes);
41
+ const bodyFontSize = Number(getVariableByName('paymnetFeedback/body/fontSize', modes));
42
+ const bodyFontFamily = getVariableByName('paymnetFeedback/body/fontFamily', modes);
43
+ const bodyLineHeight = Number(getVariableByName('paymnetFeedback/body/lineHeight', modes));
44
+ const bodyFontWeight = getVariableByName('paymnetFeedback/body/fontWeight', modes);
45
+ const detailsColor = getVariableByName('paymnetFeedback/details/color', modes);
46
+ const detailsFontSize = Number(getVariableByName('paymnetFeedback/details/fontSize', modes));
47
+ const detailsFontFamily = getVariableByName('paymnetFeedback/details/fontFamily', modes);
48
+ const detailsLineHeight = Number(getVariableByName('paymnetFeedback/details/lineHeight', modes));
49
+ const detailsFontWeight = getVariableByName('paymnetFeedback/details/fontWeight', modes);
50
+ const detailsParagraphSpacing = Number(getVariableByName('paymnetFeedback/details/paragraphSpacing', modes));
51
51
  const containerStyle = {
52
52
  flexDirection: 'column',
53
53
  alignItems: 'center',
@@ -83,7 +83,7 @@ const Popup = /*#__PURE__*/forwardRef(function Popup({
83
83
  });
84
84
  return () => anim.stop();
85
85
  }, [isOpen, modalVisible, slideY, backdropAnim, maxBackdropOpacity, animationDuration]);
86
- const background = getVariableByName('popup/background', modes) || '#ffffff';
86
+ const background = getVariableByName('popup/background', modes);
87
87
  const paddingH = getVariableByName('popup/padding/horizontal', modes) ?? 0;
88
88
  const paddingTopVal = getVariableByName('popup/padding/top', modes) ?? 0;
89
89
  const paddingBottomVal = getVariableByName('popup/padding/bottom', modes) ?? 24;
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useId, useMemo } from 'react';
4
- import { View, Text, Pressable, StyleSheet, Platform, Image as RNImage } from 'react-native';
5
- import MaskedView from '@react-native-masked-view/masked-view';
6
- import Svg, { Defs, LinearGradient, Stop, Rect } from 'react-native-svg';
4
+ import { View, Text, Pressable, StyleSheet } from 'react-native';
5
+ import Svg, { Defs, LinearGradient, Stop, Rect, Mask, Filter, FeGaussianBlur, Image as SvgImage } from 'react-native-svg';
7
6
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
8
7
  import { EMPTY_MODES, resolveTruncation } from '../../utils/react-utils';
9
8
  import Avatar from '../Avatar/Avatar';
@@ -65,7 +64,9 @@ function ProductMerchandisingCard({
65
64
  const rawId = useId();
66
65
  const safeId = rawId.replace(/[^a-zA-Z0-9_-]/g, '');
67
66
  const scrimId = `pmc-footer-scrim-${safeId}`;
67
+ const blurGradientId = `pmc-footer-blurgrad-${safeId}`;
68
68
  const blurMaskId = `pmc-footer-blurmask-${safeId}`;
69
+ const blurFilterId = `pmc-footer-blurfilter-${safeId}`;
69
70
  const normalizedImageSource = useMemo(() => normalizeImageSource(imageSource), [imageSource]);
70
71
  const tokens = useMemo(() => resolveTokens(modes), [modes]);
71
72
  const containerStyle = {
@@ -159,57 +160,63 @@ function ProductMerchandisingCard({
159
160
  children: [normalizedImageSource != null ? /*#__PURE__*/_jsx(View, {
160
161
  style: StyleSheet.absoluteFill,
161
162
  pointerEvents: "none",
162
- children: /*#__PURE__*/_jsx(MaskedView, {
163
- style: StyleSheet.absoluteFill,
164
- maskElement: /*#__PURE__*/_jsxs(Svg, {
165
- width: "100%",
166
- height: "100%",
167
- children: [/*#__PURE__*/_jsx(Defs, {
168
- children: /*#__PURE__*/_jsxs(LinearGradient, {
169
- id: blurMaskId,
170
- x1: "0",
171
- y1: "0",
172
- x2: "0",
173
- y2: "1",
174
- children: [/*#__PURE__*/_jsx(Stop, {
175
- offset: "0",
176
- stopColor: "#000000",
177
- stopOpacity: 0
178
- }), /*#__PURE__*/_jsx(Stop, {
179
- offset: "0.35",
180
- stopColor: "#000000",
181
- stopOpacity: 0.5
182
- }), /*#__PURE__*/_jsx(Stop, {
183
- offset: "0.7",
184
- stopColor: "#000000",
185
- stopOpacity: 0.92
186
- }), /*#__PURE__*/_jsx(Stop, {
187
- offset: "1",
188
- stopColor: "#000000",
189
- stopOpacity: 1
190
- })]
163
+ children: /*#__PURE__*/_jsxs(Svg, {
164
+ width: "100%",
165
+ height: "100%",
166
+ children: [/*#__PURE__*/_jsxs(Defs, {
167
+ children: [/*#__PURE__*/_jsx(Filter, {
168
+ id: blurFilterId,
169
+ x: "-15%",
170
+ y: "-15%",
171
+ width: "130%",
172
+ height: "130%",
173
+ children: /*#__PURE__*/_jsx(FeGaussianBlur, {
174
+ stdDeviation: tokens.imageBlurStdDeviation,
175
+ edgeMode: "duplicate"
176
+ })
177
+ }), /*#__PURE__*/_jsxs(LinearGradient, {
178
+ id: blurGradientId,
179
+ x1: "0",
180
+ y1: "0",
181
+ x2: "0",
182
+ y2: "1",
183
+ children: [/*#__PURE__*/_jsx(Stop, {
184
+ offset: "0",
185
+ stopColor: "#ffffff",
186
+ stopOpacity: 0
187
+ }), /*#__PURE__*/_jsx(Stop, {
188
+ offset: "0.35",
189
+ stopColor: "#ffffff",
190
+ stopOpacity: 0.5
191
+ }), /*#__PURE__*/_jsx(Stop, {
192
+ offset: "0.7",
193
+ stopColor: "#ffffff",
194
+ stopOpacity: 0.92
195
+ }), /*#__PURE__*/_jsx(Stop, {
196
+ offset: "1",
197
+ stopColor: "#ffffff",
198
+ stopOpacity: 1
199
+ })]
200
+ }), /*#__PURE__*/_jsx(Mask, {
201
+ id: blurMaskId,
202
+ children: /*#__PURE__*/_jsx(Rect, {
203
+ x: "0",
204
+ y: "0",
205
+ width: "100%",
206
+ height: "100%",
207
+ fill: `url(#${blurGradientId})`
191
208
  })
192
- }), /*#__PURE__*/_jsx(Rect, {
193
- x: "0",
194
- y: "0",
195
- width: "100%",
196
- height: "100%",
197
- fill: `url(#${blurMaskId})`
198
209
  })]
199
- }),
200
- children: /*#__PURE__*/_jsx(RNImage, {
201
- source: normalizedImageSource,
202
- blurRadius: tokens.imageBlurRadius,
203
- resizeMode: "cover",
204
- style: {
205
- position: 'absolute',
206
- left: 0,
207
- right: 0,
208
- bottom: 0,
209
- width: '100%',
210
- height
211
- }
212
- })
210
+ }), /*#__PURE__*/_jsx(SvgImage, {
211
+ href: normalizedImageSource,
212
+ x: "0",
213
+ y: "0",
214
+ width: "100%",
215
+ height: "100%",
216
+ preserveAspectRatio: "xMidYMid slice",
217
+ filter: `url(#${blurFilterId})`,
218
+ mask: `url(#${blurMaskId})`
219
+ })]
213
220
  })
214
221
  }) : /*#__PURE__*/_jsx(GlassFill, {
215
222
  tint: "dark",
@@ -328,19 +335,16 @@ function resolveTokens(modes) {
328
335
  const sbFamily = asStr(getVariableByName('productMerchandisingcard/specialbadge/text/fontfamily', modes), 'JioType Var');
329
336
  const sbWeight = asStr(getVariableByName('productMerchandisingcard/specialbadge/text/fontweight', modes), '500');
330
337
 
331
- // `Image.blurRadius` is interpreted differently per platform — iOS applies a
332
- // strong Gaussian while Android's IterativeBoxBlur is gentler at the same
333
- // numeric radius so we tune each platform to land on the same perceived
334
- // "minimal" frosted strength as the Figma design.
335
- const imageBlurRadius = Platform.select({
336
- ios: Math.max(6, Math.round(blurRadius * 0.5)),
337
- android: Math.max(12, Math.round(blurRadius * 0.95)),
338
- default: Math.max(8, Math.round(blurRadius * 0.6))
339
- });
338
+ // SVG `<FeGaussianBlur stdDeviation>` is resolution-independent and renders
339
+ // an identical Gaussian on iOS, Android and web so unlike the old
340
+ // `Image.blurRadius` path it needs no per-platform tuning. `stdDeviation` is
341
+ // roughly half a perceptual "blur radius", so we scale the `blur/minimal`
342
+ // token down to land on the same subtle frosted strength as the design.
343
+ const imageBlurStdDeviation = Math.max(4, Math.round(blurRadius * 0.35));
340
344
  return {
341
345
  radius,
342
346
  blurIntensity: Math.max(0, Math.min(100, Math.round(blurRadius * BLUR_INTENSITY_FACTOR))),
343
- imageBlurRadius,
347
+ imageBlurStdDeviation,
344
348
  header: {
345
349
  flexDirection: 'row',
346
350
  alignItems: 'flex-start',
@@ -33,8 +33,8 @@ function ProgressBadge({
33
33
  ...rest
34
34
  }) {
35
35
  // Resolve layout tokens
36
- const backgroundColor = getVariableByName('progressBadge/background', modes) || '#ffffff';
37
- const progressColor = getVariableByName('progressBadge/progress/color', modes) || '#ebebed';
36
+ const backgroundColor = getVariableByName('progressBadge/background', modes);
37
+ const progressColor = getVariableByName('progressBadge/progress/color', modes);
38
38
  const gap = getVariableByName('progressBadge/gap', modes) ?? 12;
39
39
  const paddingHorizontal = getVariableByName('progressBadge/padding/horizontal', modes) ?? 16;
40
40
  const paddingVertical = getVariableByName('progressBadge/padding/vertical', modes) ?? 6;
@@ -42,15 +42,15 @@ function ProgressBadge({
42
42
  const descriptionGap = getVariableByName('progressBadge/description/gap', modes) ?? 8;
43
43
 
44
44
  // Resolve typography tokens
45
- const fontFamily = getVariableByName('progressBadge/fontFamily', modes) || 'JioType_Var:Medium';
45
+ const fontFamily = getVariableByName('progressBadge/fontFamily', modes);
46
46
  const fontWeightRaw = getVariableByName('progressBadge/fontWeight', modes) ?? 500;
47
47
  const fontWeight = typeof fontWeightRaw === 'number' ? fontWeightRaw.toString() : fontWeightRaw;
48
48
  const fontSize = getVariableByName('progressBadge/fontSize', modes) ?? 14;
49
49
  const lineHeight = getVariableByName('progressBadge/lineHeight', modes) ?? 17;
50
- const textColor = getVariableByName('progressBadge/foreground', modes) || '#000000';
50
+ const textColor = getVariableByName('progressBadge/foreground', modes);
51
51
 
52
52
  // Resolve icon tokens
53
- const iconColor = getVariableByName('progressBadge/icon/color', modes) || '#f50030';
53
+ const iconColor = getVariableByName('progressBadge/icon/color', modes);
54
54
  const iconSize = getVariableByName('progressBadge/icon/size', modes) ?? 18;
55
55
  const containerStyle = {
56
56
  backgroundColor,
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { forwardRef, useState } from 'react';
4
- import { Pressable, View, Platform } from 'react-native';
4
+ import { Pressable, View } from 'react-native';
5
5
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
6
6
  import { EMPTY_MODES } from '../../utils/react-utils';
7
+ import { boxShadow } from '../../utils/shadow';
7
8
 
8
9
  // ---------------------------------------------------------------------------
9
10
  // Props
@@ -27,9 +28,9 @@ export const Radio = /*#__PURE__*/forwardRef(function Radio({
27
28
  const [pressed, setPressed] = useState(false);
28
29
 
29
30
  // ---- Dimensions ----
30
- const widthStr = getVariableByName('radio/width', modes) || '18';
31
- const heightStr = getVariableByName('radio/height', modes) || '18';
32
- const selectorSizeStr = getVariableByName('radio/selector/size', modes) || '10';
31
+ const widthStr = getVariableByName('radio/width', modes);
32
+ const heightStr = getVariableByName('radio/height', modes);
33
+ const selectorSizeStr = getVariableByName('radio/selector/size', modes);
33
34
  const width = parseFloat(widthStr?.toString() || '18');
34
35
  const height = parseFloat(heightStr?.toString() || '18');
35
36
  const selectorSize = parseFloat(selectorSizeStr?.toString() || '10');
@@ -66,7 +67,7 @@ export const Radio = /*#__PURE__*/forwardRef(function Radio({
66
67
  // ---- Colors & Border ----
67
68
 
68
69
  const resolveColor = (path, fallback) => {
69
- return getVariableByName(path, modes) || fallback;
70
+ return getVariableByName(path, modes);
70
71
  };
71
72
 
72
73
  // Background Color
@@ -120,10 +121,9 @@ export const Radio = /*#__PURE__*/forwardRef(function Radio({
120
121
  backgroundColor,
121
122
  justifyContent: 'center',
122
123
  alignItems: 'center',
123
- // Web shadow (ring)
124
- ...(Platform.OS === 'web' && shadowSize > 0 ? {
125
- boxShadow: `0px 0px 0px ${shadowSize}px ${shadowColor}`
126
- } : {})
124
+ // Focus/selected glow ring. Rendered via the unified boxShadow helper
125
+ // so it works on web + RN 0.76+ and degrades gracefully on older RN.
126
+ ...(shadowSize > 0 ? boxShadow(`0px 0px 0px ${shadowSize}px ${shadowColor}`) : {})
127
127
  };
128
128
  const selectorStyle = {
129
129
  width: selectorSize,
@@ -39,47 +39,47 @@ export default function RechargeCard({
39
39
  style
40
40
  }) {
41
41
  // Container Tokens (defaults mirror Figma node 2235:937).
42
- const backgroundColor = getVariableByName('rechargeCard/background', modes) || '#ffffff';
43
- const paddingHorizontal = parseInt(getVariableByName('rechargeCard/padding/horizontal', modes) || 16, 10);
44
- const paddingVertical = parseInt(getVariableByName('rechargeCard/padding/vertical', modes) || 20, 10);
45
- const gap = parseInt(getVariableByName('rechargeCard/gap', modes) || 20, 10);
46
- const radius = parseInt(getVariableByName('rechargeCard/radius', modes) || 20, 10);
47
- const minWidth = parseInt(getVariableByName('rechargeCard/minWidth', modes) || 312, 10);
48
- const strokeWidth = parseInt(getVariableByName('rechargeCard/strokeWidth', modes) || 1, 10);
49
- const strokeColor = getVariableByName('rechargeCard/stroke/color', modes) || '#ebebed';
42
+ const backgroundColor = getVariableByName('rechargeCard/background', modes);
43
+ const paddingHorizontal = parseInt(getVariableByName('rechargeCard/padding/horizontal', modes), 10);
44
+ const paddingVertical = parseInt(getVariableByName('rechargeCard/padding/vertical', modes), 10);
45
+ const gap = parseInt(getVariableByName('rechargeCard/gap', modes), 10);
46
+ const radius = parseInt(getVariableByName('rechargeCard/radius', modes), 10);
47
+ const minWidth = parseInt(getVariableByName('rechargeCard/minWidth', modes), 10);
48
+ const strokeWidth = parseInt(getVariableByName('rechargeCard/strokeWidth', modes), 10);
49
+ const strokeColor = getVariableByName('rechargeCard/stroke/color', modes);
50
50
 
51
51
  // Header Tokens
52
- const headerGap = parseInt(getVariableByName('rechargeCard/header/gap', modes) || 4, 10);
53
- const titleColor = getVariableByName('rechargeCard/title/color', modes) || '#000000';
54
- const titleFontSize = parseInt(getVariableByName('rechargeCard/title/fontSize', modes) || 12, 10);
55
- const titleFontFamily = getVariableByName('rechargeCard/title/fontFamily', modes) || 'JioType Var';
56
- const titleLineHeight = parseInt(getVariableByName('rechargeCard/title/lineHeight', modes) || 14, 10);
57
- const titleFontWeight = getVariableByName('rechargeCard/title/fontWeight', modes) || '700';
52
+ const headerGap = parseInt(getVariableByName('rechargeCard/header/gap', modes), 10);
53
+ const titleColor = getVariableByName('rechargeCard/title/color', modes);
54
+ const titleFontSize = parseInt(getVariableByName('rechargeCard/title/fontSize', modes), 10);
55
+ const titleFontFamily = getVariableByName('rechargeCard/title/fontFamily', modes);
56
+ const titleLineHeight = parseInt(getVariableByName('rechargeCard/title/lineHeight', modes), 10);
57
+ const titleFontWeight = getVariableByName('rechargeCard/title/fontWeight', modes);
58
58
 
59
59
  // Specs Tokens
60
- const specsGap = parseInt(getVariableByName('rechargeCard/specs/gap', modes) || 0, 10);
61
- const specItemGap = parseInt(getVariableByName('rechargeCard/specItem/gap', modes) || 4, 10);
60
+ const specsGap = parseInt(getVariableByName('rechargeCard/specs/gap', modes), 10);
61
+ const specItemGap = parseInt(getVariableByName('rechargeCard/specItem/gap', modes), 10);
62
62
 
63
63
  // Spec Label Tokens
64
- const specLabelColor = getVariableByName('rechargeCard/specItem/label/color', modes) || '#000000';
65
- const specLabelFontSize = parseInt(getVariableByName('rechargeCard/specItem/label/fontSize', modes) || 12, 10);
66
- const specLabelFontFamily = getVariableByName('rechargeCard/specItem/label/fontFamily', modes) || 'JioType Var';
67
- const specLabelLineHeight = parseInt(getVariableByName('rechargeCard/specItem/label/lineHeight', modes) || 14, 10);
68
- const specLabelFontWeight = getVariableByName('rechargeCard/specItem/label/fontWeight', modes) || '500';
64
+ const specLabelColor = getVariableByName('rechargeCard/specItem/label/color', modes);
65
+ const specLabelFontSize = parseInt(getVariableByName('rechargeCard/specItem/label/fontSize', modes), 10);
66
+ const specLabelFontFamily = getVariableByName('rechargeCard/specItem/label/fontFamily', modes);
67
+ const specLabelLineHeight = parseInt(getVariableByName('rechargeCard/specItem/label/lineHeight', modes), 10);
68
+ const specLabelFontWeight = getVariableByName('rechargeCard/specItem/label/fontWeight', modes);
69
69
 
70
70
  // Spec Value Tokens
71
- const specValueColor = getVariableByName('rechargeCard/specItem/value/color', modes) || '#000000';
72
- const specValueFontSize = parseInt(getVariableByName('rechargeCard/specItem/value/fontSize', modes) || 14, 10);
73
- const specValueFontFamily = getVariableByName('rechargeCard/specItem/value/fontFamily', modes) || 'JioType Var';
74
- const specValueLineHeight = parseInt(getVariableByName('rechargeCard/specItem/value/lineHeight', modes) || 17, 10);
75
- const specValueFontWeight = getVariableByName('rechargeCard/specItem/value/fontWeight', modes) || '500';
71
+ const specValueColor = getVariableByName('rechargeCard/specItem/value/color', modes);
72
+ const specValueFontSize = parseInt(getVariableByName('rechargeCard/specItem/value/fontSize', modes), 10);
73
+ const specValueFontFamily = getVariableByName('rechargeCard/specItem/value/fontFamily', modes);
74
+ const specValueLineHeight = parseInt(getVariableByName('rechargeCard/specItem/value/lineHeight', modes), 10);
75
+ const specValueFontWeight = getVariableByName('rechargeCard/specItem/value/fontWeight', modes);
76
76
 
77
77
  // Disclaimer Tokens
78
- const disclaimerColor = getVariableByName('rechargeCard/disclaimer/color', modes) || '#000000';
79
- const disclaimerFontSize = parseInt(getVariableByName('rechargeCard/disclaimer/fontSize', modes) || 10, 10);
80
- const disclaimerFontFamily = getVariableByName('rechargeCard/disclaimer/fontFamily', modes) || 'JioType Var';
81
- const disclaimerLineHeight = parseInt(getVariableByName('rechargeCard/disclaimer/lineHeight', modes) || 13, 10);
82
- const disclaimerFontWeight = getVariableByName('rechargeCard/disclaimer/fontWeight', modes) || '400';
78
+ const disclaimerColor = getVariableByName('rechargeCard/disclaimer/color', modes);
79
+ const disclaimerFontSize = parseInt(getVariableByName('rechargeCard/disclaimer/fontSize', modes), 10);
80
+ const disclaimerFontFamily = getVariableByName('rechargeCard/disclaimer/fontFamily', modes);
81
+ const disclaimerLineHeight = parseInt(getVariableByName('rechargeCard/disclaimer/lineHeight', modes), 10);
82
+ const disclaimerFontWeight = getVariableByName('rechargeCard/disclaimer/fontWeight', modes);
83
83
  const resolveFontWeight = weight => typeof weight === 'number' ? weight.toString() : weight;
84
84
 
85
85
  // Pass modes to subscription children (e.g. AvatarGroup)
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useMemo } from 'react';
4
- import { View } from 'react-native';
4
+ import { View, Text } from 'react-native';
5
5
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
6
6
  import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils';
7
7
  import { formatIndianNumber } from '../../utils/number-utils';
8
- import Title from '../Title/Title';
9
8
  import LinearProgress from '../LinearProgress/LinearProgress';
10
9
  import MetricLegendItem from '../MetricLegendItem/MetricLegendItem';
11
10
 
@@ -57,6 +56,7 @@ const DEFAULT_TARGET = {
57
56
  * @param {SavingsGoalSummaryProps} props
58
57
  */
59
58
  function SavingsGoalSummary({
59
+ label,
60
60
  currency = '₹',
61
61
  current = DEFAULT_CURRENT,
62
62
  target = DEFAULT_TARGET,
@@ -64,6 +64,7 @@ function SavingsGoalSummary({
64
64
  modes = EMPTY_MODES,
65
65
  style,
66
66
  titleStyle,
67
+ labelStyle,
67
68
  legendStyle
68
69
  }) {
69
70
  // Merge caller modes on top of the defaults so callers can override
@@ -111,6 +112,40 @@ function SavingsGoalSummary({
111
112
  const percentageLabel = `${Math.round(resolvedProgress * 100)}%`;
112
113
  const gap = getVariableByName('savingsGoalSummary/gap', mergedModes) ?? 23;
113
114
  const legendGap = getVariableByName('savingsGoalSummary/legend/gap', mergedModes) ?? 16;
115
+
116
+ // Percentage value typography — driven by the dedicated
117
+ // `savingsGoalSummary/value/*` tokens (Figma 29 / 900) rather than the
118
+ // generic `Title` tokens, so the value matches the design exactly.
119
+ const valueFontSize = getVariableByName('savingsGoalSummary/value/fontSize', mergedModes) ?? 29;
120
+ const valueFontFamily = getVariableByName('savingsGoalSummary/value/fontFamily', mergedModes) ?? 'JioType Var';
121
+ const valueRawLineHeight = getVariableByName('savingsGoalSummary/value/lineHeight', mergedModes) ?? 29;
122
+ // The value tokens ship with `lineHeight === fontSize` (29/29); clamp to
123
+ // ~1.2x so descenders never clip on native (same guard `Title` uses).
124
+ const valueLineHeight = Math.max(valueRawLineHeight, Math.ceil(valueFontSize * 1.2));
125
+ const valueFontWeight = String(getVariableByName('savingsGoalSummary/value/fontWeight', mergedModes) ?? 900);
126
+ const valueColor = getVariableByName('savingsGoalSummary/value/color', mergedModes) ?? '#0d0d0f';
127
+
128
+ // Caption ("Credit usage") typography — `savingsGoalSummary/label/*`
129
+ // (Figma 12 / 400). Only rendered when a `label` is supplied.
130
+ const labelFontSize = getVariableByName('savingsGoalSummary/label/fontSize', mergedModes) ?? 12;
131
+ const labelFontFamily = getVariableByName('savingsGoalSummary/label/fontFamily', mergedModes) ?? 'JioType Var';
132
+ const labelLineHeight = getVariableByName('savingsGoalSummary/label/lineHeight', mergedModes) ?? 16;
133
+ const labelFontWeight = String(getVariableByName('savingsGoalSummary/label/fontWeight', mergedModes) ?? 400);
134
+ const labelColor = getVariableByName('savingsGoalSummary/label/color', mergedModes) ?? '#0d0d0f';
135
+ const labelNode = label == null || label === false ? null : typeof label === 'string' ? /*#__PURE__*/_jsx(Text, {
136
+ style: [{
137
+ color: labelColor,
138
+ fontFamily: labelFontFamily,
139
+ fontSize: labelFontSize,
140
+ lineHeight: labelLineHeight,
141
+ fontWeight: labelFontWeight,
142
+ width: '100%'
143
+ }, labelStyle],
144
+ children: label
145
+ }) : (() => {
146
+ const processed = cloneChildrenWithModes(label, mergedModes);
147
+ return processed.length === 1 ? processed[0] : processed;
148
+ })();
114
149
  const customLegend = children ? cloneChildrenWithModes(children, mergedModes) : null;
115
150
  const defaultLegend = !customLegend && (current || target) ? /*#__PURE__*/_jsxs(_Fragment, {
116
151
  children: [current && /*#__PURE__*/_jsx(MetricLegendItem, {
@@ -133,12 +168,22 @@ function SavingsGoalSummary({
133
168
  gap,
134
169
  alignItems: 'stretch'
135
170
  }, style],
136
- accessibilityLabel: `Savings goal progress, ${percentageLabel}`,
137
- children: [/*#__PURE__*/_jsx(Title, {
138
- title: percentageLabel,
139
- modes: mergedModes,
140
- style: TITLE_CONTAINER_STYLE,
141
- textStyle: titleStyle
171
+ accessibilityLabel: typeof label === 'string' ? `${label}, ${percentageLabel}` : `Savings goal progress, ${percentageLabel}`,
172
+ children: [/*#__PURE__*/_jsxs(View, {
173
+ style: HEADER_GROUP_STYLE,
174
+ children: [labelNode, /*#__PURE__*/_jsx(Text, {
175
+ style: [{
176
+ color: valueColor,
177
+ fontFamily: valueFontFamily,
178
+ fontSize: valueFontSize,
179
+ lineHeight: valueLineHeight,
180
+ fontWeight: valueFontWeight,
181
+ width: '100%'
182
+ }, titleStyle],
183
+ accessibilityElementsHidden: true,
184
+ importantForAccessibility: "no",
185
+ children: percentageLabel
186
+ })]
142
187
  }), /*#__PURE__*/_jsx(LinearProgress, {
143
188
  value: resolvedProgress,
144
189
  modes: mergedModes
@@ -166,10 +211,12 @@ function formatLegendValue(value, currency) {
166
211
  });
167
212
  }
168
213
 
169
- // Neutralise the `Title` component's default page-level padding so it sits
170
- // flush inside the summary card (the parent container owns spacing via `gap`).
171
- const TITLE_CONTAINER_STYLE = {
172
- paddingHorizontal: 0,
173
- paddingVertical: 0
214
+ // Groups the optional caption ("Credit usage") tightly above the percentage
215
+ // value. The parent container owns the larger spacing to the bar via `gap`,
216
+ // so this only needs the small label→value gap.
217
+ const HEADER_GROUP_STYLE = {
218
+ width: '100%',
219
+ gap: 2,
220
+ alignItems: 'flex-start'
174
221
  };
175
222
  export default SavingsGoalSummary;
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+
3
+ import React, { forwardRef } from 'react';
4
+ import { ScrollView } from 'react-native';
5
+ import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils';
6
+
7
+ /**
8
+ * Axis (or axes) along which the content can be scrolled.
9
+ *
10
+ * - `vertical` (default) — content taller than the viewport scrolls up/down.
11
+ * - `horizontal` — content wider than the viewport scrolls left/right.
12
+ * - `both` — content larger on either axis scrolls in both directions
13
+ * (implemented as a horizontal `ScrollView` nested in a vertical one).
14
+ */
15
+ import { jsx as _jsx } from "react/jsx-runtime";
16
+ /**
17
+ * Build a padding style fragment, letting the more specific props win over the
18
+ * broader ones (`paddingTop` > `paddingVertical` > `padding`). Only defined
19
+ * values are emitted so consumer `contentContainerStyle` overrides survive.
20
+ */
21
+ function resolvePadding({
22
+ padding,
23
+ paddingHorizontal,
24
+ paddingVertical,
25
+ paddingTop,
26
+ paddingRight,
27
+ paddingBottom,
28
+ paddingLeft
29
+ }) {
30
+ const top = paddingTop ?? paddingVertical ?? padding;
31
+ const right = paddingRight ?? paddingHorizontal ?? padding;
32
+ const bottom = paddingBottom ?? paddingVertical ?? padding;
33
+ const left = paddingLeft ?? paddingHorizontal ?? padding;
34
+ const style = {};
35
+ if (top != null) style.paddingTop = top;
36
+ if (right != null) style.paddingRight = right;
37
+ if (bottom != null) style.paddingBottom = bottom;
38
+ if (left != null) style.paddingLeft = left;
39
+ return style;
40
+ }
41
+
42
+ /**
43
+ * ScrollArea — a transparent, size-constrained viewport that makes content
44
+ * larger than itself smoothly scrollable (Figma node 6319:46886).
45
+ *
46
+ * It has no background of its own; constrain its size through `style`
47
+ * (`height`, `maxHeight`, or `flex`) and drop any over-sized content inside.
48
+ *
49
+ * @example
50
+ * // Vertical (default): a tall column inside a fixed-height window.
51
+ * <ScrollArea style={{ height: 240 }}>
52
+ * <LongContent />
53
+ * </ScrollArea>
54
+ *
55
+ * @example
56
+ * // Horizontal: a wide row of cards inside a full-width window.
57
+ * <ScrollArea direction="horizontal">
58
+ * <Card /> <Card /> <Card />
59
+ * </ScrollArea>
60
+ */
61
+ export const ScrollArea = /*#__PURE__*/forwardRef(function ScrollArea({
62
+ children,
63
+ direction = 'vertical',
64
+ showScrollIndicator = false,
65
+ padding,
66
+ paddingHorizontal,
67
+ paddingVertical,
68
+ paddingTop,
69
+ paddingRight,
70
+ paddingBottom,
71
+ paddingLeft,
72
+ style,
73
+ contentContainerStyle,
74
+ modes = EMPTY_MODES,
75
+ scrollEventThrottle = 16,
76
+ ...rest
77
+ }, ref) {
78
+ const paddingStyle = resolvePadding({
79
+ padding,
80
+ paddingHorizontal,
81
+ paddingVertical,
82
+ paddingTop,
83
+ paddingRight,
84
+ paddingBottom,
85
+ paddingLeft
86
+ });
87
+
88
+ // Cascade modes into every child so slotted tokens resolve correctly.
89
+ const content = cloneChildrenWithModes(children, modes);
90
+ if (direction === 'both') {
91
+ // Outer vertical scroll, inner horizontal scroll. Padding lives on the
92
+ // inner content container so it scrolls with the content on both axes.
93
+ return /*#__PURE__*/_jsx(ScrollView, {
94
+ ref: ref,
95
+ style: style,
96
+ showsVerticalScrollIndicator: showScrollIndicator,
97
+ scrollEventThrottle: scrollEventThrottle,
98
+ ...rest,
99
+ children: /*#__PURE__*/_jsx(ScrollView, {
100
+ horizontal: true,
101
+ showsHorizontalScrollIndicator: showScrollIndicator,
102
+ scrollEventThrottle: scrollEventThrottle,
103
+ contentContainerStyle: [paddingStyle, contentContainerStyle],
104
+ children: content
105
+ })
106
+ });
107
+ }
108
+ const isHorizontal = direction === 'horizontal';
109
+ return /*#__PURE__*/_jsx(ScrollView, {
110
+ ref: ref,
111
+ horizontal: isHorizontal,
112
+ style: style,
113
+ showsVerticalScrollIndicator: isHorizontal ? undefined : showScrollIndicator,
114
+ showsHorizontalScrollIndicator: isHorizontal ? showScrollIndicator : undefined,
115
+ scrollEventThrottle: scrollEventThrottle,
116
+ contentContainerStyle: [paddingStyle, contentContainerStyle],
117
+ ...rest,
118
+ children: content
119
+ });
120
+ });
121
+ export default ScrollArea;