jfs-components 0.1.12 → 0.1.17

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 (585) hide show
  1. package/CHANGELOG.md +15 -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 +9 -9
  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/ProgressBadge/ProgressBadge.js +5 -5
  62. package/lib/commonjs/components/Radio/Radio.js +8 -8
  63. package/lib/commonjs/components/RechargeCard/RechargeCard.js +31 -31
  64. package/lib/commonjs/components/SavingsGoalSummary/SavingsGoalSummary.js +59 -12
  65. package/lib/commonjs/components/ScrollArea/ScrollArea.js +126 -0
  66. package/lib/commonjs/components/Section/Section.js +24 -24
  67. package/lib/commonjs/components/StatusHero/StatusHero.js +14 -14
  68. package/lib/commonjs/components/Stepper/Step.js +16 -16
  69. package/lib/commonjs/components/Stepper/StepLabel.js +16 -16
  70. package/lib/commonjs/components/Stepper/Stepper.js +3 -3
  71. package/lib/commonjs/components/SuggestiveSearch/SuggestiveSearch.js +10 -10
  72. package/lib/commonjs/components/SupportText/SupportText.js +6 -6
  73. package/lib/commonjs/components/SupportText/SupportTextIcon.js +2 -2
  74. package/lib/commonjs/components/Text/Text.js +14 -2
  75. package/lib/commonjs/components/TextInput/TextInput.js +14 -14
  76. package/lib/commonjs/components/TextSegment/TextSegment.js +14 -2
  77. package/lib/commonjs/components/ThreadHero/ThreadHero.js +17 -17
  78. package/lib/commonjs/components/Title/Title.js +38 -16
  79. package/lib/commonjs/components/Toast/Toast.js +15 -15
  80. package/lib/commonjs/components/Toggle/Toggle.js +3 -11
  81. package/lib/commonjs/components/Tooltip/Tooltip.js +12 -12
  82. package/lib/commonjs/components/TransactionBubble/TransactionBubble.js +13 -13
  83. package/lib/commonjs/components/TransactionDetails/TransactionDetails.js +10 -10
  84. package/lib/commonjs/components/TransactionStatus/TransactionStatus.js +9 -9
  85. package/lib/commonjs/components/UpiHandle/UpiHandle.js +15 -15
  86. package/lib/commonjs/components/index.js +14 -0
  87. package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
  88. package/lib/commonjs/design-tokens/figma-modes.generated.js +50 -42
  89. package/lib/commonjs/icons/components/Icon4g.js +19 -0
  90. package/lib/commonjs/icons/components/Icon4gltedata.js +19 -0
  91. package/lib/commonjs/icons/components/Icon5g.js +19 -0
  92. package/lib/commonjs/icons/components/Icon5gdoubleplus.js +19 -0
  93. package/lib/commonjs/icons/components/Icon5gplus.js +19 -0
  94. package/lib/commonjs/icons/components/IconAdblocker.js +19 -0
  95. package/lib/commonjs/icons/components/IconAdblockplus.js +19 -0
  96. package/lib/commonjs/icons/components/IconAnalytics.js +19 -0
  97. package/lib/commonjs/icons/components/IconAnalyticsdata.js +19 -0
  98. package/lib/commonjs/icons/components/IconAnalyticspiechart.js +19 -0
  99. package/lib/commonjs/icons/components/IconAnalyticspiecharttree.js +19 -0
  100. package/lib/commonjs/icons/components/IconAnalyticspiecharttwo.js +19 -0
  101. package/lib/commonjs/icons/components/IconCompoundinterest.js +19 -0
  102. package/lib/commonjs/icons/components/IconConsumptionaccounted.js +19 -0
  103. package/lib/commonjs/icons/components/IconConsumptionaverage.js +19 -0
  104. package/lib/commonjs/icons/components/IconConsumptionhigh.js +19 -0
  105. package/lib/commonjs/icons/components/IconConsumptionlow.js +19 -0
  106. package/lib/commonjs/icons/components/IconConsumptionunaccounted.js +19 -0
  107. package/lib/commonjs/icons/components/IconCsvdoc.js +19 -0
  108. package/lib/commonjs/icons/components/IconDatabase.js +19 -0
  109. package/lib/commonjs/icons/components/IconDigitalecosystem.js +19 -0
  110. package/lib/commonjs/icons/components/IconDigitalselfservice.js +19 -0
  111. package/lib/commonjs/icons/components/IconDistribution.js +19 -0
  112. package/lib/commonjs/icons/components/IconDocument.js +19 -0
  113. package/lib/commonjs/icons/components/IconDocumentdoc.js +19 -0
  114. package/lib/commonjs/icons/components/IconDocumentjpg.js +19 -0
  115. package/lib/commonjs/icons/components/IconDocumentodt.js +19 -0
  116. package/lib/commonjs/icons/components/IconDocumentpdf.js +19 -0
  117. package/lib/commonjs/icons/components/IconDocumentpng.js +19 -0
  118. package/lib/commonjs/icons/components/IconDocumentraw.js +19 -0
  119. package/lib/commonjs/icons/components/IconDocumentrtf.js +19 -0
  120. package/lib/commonjs/icons/components/IconDocumentsettings.js +19 -0
  121. package/lib/commonjs/icons/components/IconDocumenttif.js +19 -0
  122. package/lib/commonjs/icons/components/IconDocumenttxt.js +19 -0
  123. package/lib/commonjs/icons/components/IconDocumentunknown.js +19 -0
  124. package/lib/commonjs/icons/components/IconDocumentxls.js +19 -0
  125. package/lib/commonjs/icons/components/IconDocumentxlsx.js +19 -0
  126. package/lib/commonjs/icons/components/IconFilerequest.js +19 -0
  127. package/lib/commonjs/icons/components/IconFilesend.js +19 -0
  128. package/lib/commonjs/icons/components/IconFileshare.js +19 -0
  129. package/lib/commonjs/icons/components/IconFindinpage.js +19 -0
  130. package/lib/commonjs/icons/components/IconFolder.js +19 -0
  131. package/lib/commonjs/icons/components/IconFolderbookmarks.js +19 -0
  132. package/lib/commonjs/icons/components/IconFolderfavorites.js +19 -0
  133. package/lib/commonjs/icons/components/IconFolderlocked.js +19 -0
  134. package/lib/commonjs/icons/components/IconFoldermovefiles.js +19 -0
  135. package/lib/commonjs/icons/components/IconFolderpublic.js +19 -0
  136. package/lib/commonjs/icons/components/IconFolderrated.js +19 -0
  137. package/lib/commonjs/icons/components/IconFolderrequest.js +19 -0
  138. package/lib/commonjs/icons/components/IconForm.js +19 -0
  139. package/lib/commonjs/icons/components/IconFormadd.js +19 -0
  140. package/lib/commonjs/icons/components/IconForms.js +19 -0
  141. package/lib/commonjs/icons/components/IconGraphincreasing.js +19 -0
  142. package/lib/commonjs/icons/components/IconGraphlow.js +19 -0
  143. package/lib/commonjs/icons/components/IconGraphtable.js +19 -0
  144. package/lib/commonjs/icons/components/IconHealthreport.js +19 -0
  145. package/lib/commonjs/icons/components/IconHubmode.js +19 -0
  146. package/lib/commonjs/icons/components/IconInfrastructure.js +19 -0
  147. package/lib/commonjs/icons/components/IconInterestlow.js +19 -0
  148. package/lib/commonjs/icons/components/IconLte.js +19 -0
  149. package/lib/commonjs/icons/components/IconNetworkfuture.js +19 -0
  150. package/lib/commonjs/icons/components/IconPagesettings.js +19 -0
  151. package/lib/commonjs/icons/components/IconPptxdoc.js +19 -0
  152. package/lib/commonjs/icons/components/IconPreferrednumber.js +19 -0
  153. package/lib/commonjs/icons/components/IconPremiumnumber.js +19 -0
  154. package/lib/commonjs/icons/components/IconProjection.js +19 -0
  155. package/lib/commonjs/icons/components/IconRequest.js +19 -0
  156. package/lib/commonjs/icons/components/IconRoutestraffic.js +19 -0
  157. package/lib/commonjs/icons/components/IconTechnology.js +19 -0
  158. package/lib/commonjs/icons/components/IconVolte.js +19 -0
  159. package/lib/commonjs/icons/components/IconVonr.js +19 -0
  160. package/lib/commonjs/icons/components/IconVowifi.js +19 -0
  161. package/lib/commonjs/icons/components/IconVpndata.js +19 -0
  162. package/lib/commonjs/icons/components/index.js +803 -0
  163. package/lib/commonjs/icons/registry.js +2 -2
  164. package/lib/commonjs/utils/index.js +25 -0
  165. package/lib/commonjs/utils/react-utils.js +62 -0
  166. package/lib/commonjs/utils/shadow.js +200 -0
  167. package/lib/module/components/ActionFooter/ActionFooter.js +7 -24
  168. package/lib/module/components/ActionTile/ActionTile.js +10 -10
  169. package/lib/module/components/AmountInput/AmountInput.js +3 -3
  170. package/lib/module/components/AreaLineChart/AreaLineChart.js +2 -2
  171. package/lib/module/components/Attached/Attached.js +1 -1
  172. package/lib/module/components/Avatar/Avatar.js +10 -10
  173. package/lib/module/components/AvatarGroup/AvatarGroup.js +9 -9
  174. package/lib/module/components/Badge/Badge.js +12 -12
  175. package/lib/module/components/BenefitCard/BenefitCard.js +95 -21
  176. package/lib/module/components/BottomNav/BottomNav.js +2 -2
  177. package/lib/module/components/BottomNavItem/BottomNavItem.js +3 -3
  178. package/lib/module/components/Button/Button.js +32 -20
  179. package/lib/module/components/Card/Card.js +20 -20
  180. package/lib/module/components/CardAdvisory/CardAdvisory.js +6 -6
  181. package/lib/module/components/CardCTA/CardCTA.js +21 -21
  182. package/lib/module/components/CardFeedback/CardFeedback.js +18 -18
  183. package/lib/module/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
  184. package/lib/module/components/CardInsight/CardInsight.js +1 -2
  185. package/lib/module/components/Carousel/Carousel.js +18 -12
  186. package/lib/module/components/CarouselCardAccounts/CarouselCardAccounts.js +71 -0
  187. package/lib/module/components/Checkbox/Checkbox.js +2 -9
  188. package/lib/module/components/ChipGroup/ChipGroup.js +1 -1
  189. package/lib/module/components/ChipSelect/ChipSelect.js +11 -11
  190. package/lib/module/components/CircularProgressBar/CircularProgressBar.js +5 -5
  191. package/lib/module/components/CircularProgressBarDoted/CircularProgressBarDoted.js +8 -8
  192. package/lib/module/components/CircularRating/CircularRating.js +3 -3
  193. package/lib/module/components/CompareTable/CompareTable.js +16 -16
  194. package/lib/module/components/DebitCard/DebitCard.js +18 -18
  195. package/lib/module/components/Disclaimer/Disclaimer.js +5 -5
  196. package/lib/module/components/DonutChart/DonutChart.js +11 -11
  197. package/lib/module/components/Drawer/Drawer.js +60 -60
  198. package/lib/module/components/Dropdown/Dropdown.js +22 -23
  199. package/lib/module/components/DropdownInput/DropdownInput.js +10 -10
  200. package/lib/module/components/EmptyState/EmptyState.js +14 -14
  201. package/lib/module/components/FilterBar/FilterBar.js +2 -2
  202. package/lib/module/components/Form/Form.js +3 -3
  203. package/lib/module/components/FormField/FormField.js +6 -6
  204. package/lib/module/components/FullscreenModal/FullscreenModal.js +24 -24
  205. package/lib/module/components/Gauge/Gauge.js +8 -8
  206. package/lib/module/components/HoldingsCard/HoldingsCard.js +10 -10
  207. package/lib/module/components/Icon/Icon.js +6 -6
  208. package/lib/module/components/IconCapsule/IconCapsule.js +7 -7
  209. package/lib/module/components/InputSearch/InputSearch.js +9 -9
  210. package/lib/module/components/InstitutionBadge/InstitutionBadge.js +3 -3
  211. package/lib/module/components/ListGroup/ListGroup.js +8 -8
  212. package/lib/module/components/ListItem/ListItem.js +10 -10
  213. package/lib/module/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
  214. package/lib/module/components/LottiePlayer/LottiePlayer.js +2 -2
  215. package/lib/module/components/LottiePlayer/LottiePlayer.web.js +2 -2
  216. package/lib/module/components/MediaCard/MediaCard.js +21 -21
  217. package/lib/module/components/MessageField/MessageField.js +8 -8
  218. package/lib/module/components/MoneyValue/MoneyValue.js +7 -7
  219. package/lib/module/components/NavArrow/NavArrow.js +8 -8
  220. package/lib/module/components/NoteInput/NoteInput.js +12 -12
  221. package/lib/module/components/Nudge/Nudge.js +20 -20
  222. package/lib/module/components/OTP/OTP.js +15 -15
  223. package/lib/module/components/PageHero/PageHero.js +16 -16
  224. package/lib/module/components/PaymentFeedback/PaymentFeedback.js +23 -23
  225. package/lib/module/components/Popup/Popup.js +1 -1
  226. package/lib/module/components/ProgressBadge/ProgressBadge.js +5 -5
  227. package/lib/module/components/Radio/Radio.js +9 -9
  228. package/lib/module/components/RechargeCard/RechargeCard.js +31 -31
  229. package/lib/module/components/SavingsGoalSummary/SavingsGoalSummary.js +60 -13
  230. package/lib/module/components/ScrollArea/ScrollArea.js +121 -0
  231. package/lib/module/components/Section/Section.js +24 -24
  232. package/lib/module/components/StatusHero/StatusHero.js +14 -14
  233. package/lib/module/components/Stepper/Step.js +16 -16
  234. package/lib/module/components/Stepper/StepLabel.js +16 -16
  235. package/lib/module/components/Stepper/Stepper.js +3 -3
  236. package/lib/module/components/SuggestiveSearch/SuggestiveSearch.js +10 -10
  237. package/lib/module/components/SupportText/SupportText.js +6 -6
  238. package/lib/module/components/SupportText/SupportTextIcon.js +2 -2
  239. package/lib/module/components/Text/Text.js +15 -3
  240. package/lib/module/components/TextInput/TextInput.js +14 -14
  241. package/lib/module/components/TextSegment/TextSegment.js +15 -3
  242. package/lib/module/components/ThreadHero/ThreadHero.js +17 -17
  243. package/lib/module/components/Title/Title.js +39 -17
  244. package/lib/module/components/Toast/Toast.js +15 -15
  245. package/lib/module/components/Toggle/Toggle.js +4 -12
  246. package/lib/module/components/Tooltip/Tooltip.js +12 -12
  247. package/lib/module/components/TransactionBubble/TransactionBubble.js +13 -13
  248. package/lib/module/components/TransactionDetails/TransactionDetails.js +10 -10
  249. package/lib/module/components/TransactionStatus/TransactionStatus.js +9 -9
  250. package/lib/module/components/UpiHandle/UpiHandle.js +15 -15
  251. package/lib/module/components/index.js +2 -0
  252. package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
  253. package/lib/module/design-tokens/figma-modes.generated.js +50 -42
  254. package/lib/module/icons/components/Icon4g.js +12 -0
  255. package/lib/module/icons/components/Icon4gltedata.js +12 -0
  256. package/lib/module/icons/components/Icon5g.js +12 -0
  257. package/lib/module/icons/components/Icon5gdoubleplus.js +12 -0
  258. package/lib/module/icons/components/Icon5gplus.js +12 -0
  259. package/lib/module/icons/components/IconAdblocker.js +12 -0
  260. package/lib/module/icons/components/IconAdblockplus.js +12 -0
  261. package/lib/module/icons/components/IconAnalytics.js +12 -0
  262. package/lib/module/icons/components/IconAnalyticsdata.js +12 -0
  263. package/lib/module/icons/components/IconAnalyticspiechart.js +12 -0
  264. package/lib/module/icons/components/IconAnalyticspiecharttree.js +12 -0
  265. package/lib/module/icons/components/IconAnalyticspiecharttwo.js +12 -0
  266. package/lib/module/icons/components/IconCompoundinterest.js +12 -0
  267. package/lib/module/icons/components/IconConsumptionaccounted.js +12 -0
  268. package/lib/module/icons/components/IconConsumptionaverage.js +12 -0
  269. package/lib/module/icons/components/IconConsumptionhigh.js +12 -0
  270. package/lib/module/icons/components/IconConsumptionlow.js +12 -0
  271. package/lib/module/icons/components/IconConsumptionunaccounted.js +12 -0
  272. package/lib/module/icons/components/IconCsvdoc.js +12 -0
  273. package/lib/module/icons/components/IconDatabase.js +12 -0
  274. package/lib/module/icons/components/IconDigitalecosystem.js +12 -0
  275. package/lib/module/icons/components/IconDigitalselfservice.js +12 -0
  276. package/lib/module/icons/components/IconDistribution.js +12 -0
  277. package/lib/module/icons/components/IconDocument.js +12 -0
  278. package/lib/module/icons/components/IconDocumentdoc.js +12 -0
  279. package/lib/module/icons/components/IconDocumentjpg.js +12 -0
  280. package/lib/module/icons/components/IconDocumentodt.js +12 -0
  281. package/lib/module/icons/components/IconDocumentpdf.js +12 -0
  282. package/lib/module/icons/components/IconDocumentpng.js +12 -0
  283. package/lib/module/icons/components/IconDocumentraw.js +12 -0
  284. package/lib/module/icons/components/IconDocumentrtf.js +12 -0
  285. package/lib/module/icons/components/IconDocumentsettings.js +12 -0
  286. package/lib/module/icons/components/IconDocumenttif.js +12 -0
  287. package/lib/module/icons/components/IconDocumenttxt.js +12 -0
  288. package/lib/module/icons/components/IconDocumentunknown.js +12 -0
  289. package/lib/module/icons/components/IconDocumentxls.js +12 -0
  290. package/lib/module/icons/components/IconDocumentxlsx.js +12 -0
  291. package/lib/module/icons/components/IconFilerequest.js +12 -0
  292. package/lib/module/icons/components/IconFilesend.js +12 -0
  293. package/lib/module/icons/components/IconFileshare.js +12 -0
  294. package/lib/module/icons/components/IconFindinpage.js +12 -0
  295. package/lib/module/icons/components/IconFolder.js +12 -0
  296. package/lib/module/icons/components/IconFolderbookmarks.js +12 -0
  297. package/lib/module/icons/components/IconFolderfavorites.js +12 -0
  298. package/lib/module/icons/components/IconFolderlocked.js +12 -0
  299. package/lib/module/icons/components/IconFoldermovefiles.js +12 -0
  300. package/lib/module/icons/components/IconFolderpublic.js +12 -0
  301. package/lib/module/icons/components/IconFolderrated.js +12 -0
  302. package/lib/module/icons/components/IconFolderrequest.js +12 -0
  303. package/lib/module/icons/components/IconForm.js +12 -0
  304. package/lib/module/icons/components/IconFormadd.js +12 -0
  305. package/lib/module/icons/components/IconForms.js +12 -0
  306. package/lib/module/icons/components/IconGraphincreasing.js +12 -0
  307. package/lib/module/icons/components/IconGraphlow.js +12 -0
  308. package/lib/module/icons/components/IconGraphtable.js +12 -0
  309. package/lib/module/icons/components/IconHealthreport.js +12 -0
  310. package/lib/module/icons/components/IconHubmode.js +12 -0
  311. package/lib/module/icons/components/IconInfrastructure.js +12 -0
  312. package/lib/module/icons/components/IconInterestlow.js +12 -0
  313. package/lib/module/icons/components/IconLte.js +12 -0
  314. package/lib/module/icons/components/IconNetworkfuture.js +12 -0
  315. package/lib/module/icons/components/IconPagesettings.js +12 -0
  316. package/lib/module/icons/components/IconPptxdoc.js +12 -0
  317. package/lib/module/icons/components/IconPreferrednumber.js +12 -0
  318. package/lib/module/icons/components/IconPremiumnumber.js +12 -0
  319. package/lib/module/icons/components/IconProjection.js +12 -0
  320. package/lib/module/icons/components/IconRequest.js +12 -0
  321. package/lib/module/icons/components/IconRoutestraffic.js +12 -0
  322. package/lib/module/icons/components/IconTechnology.js +12 -0
  323. package/lib/module/icons/components/IconVolte.js +12 -0
  324. package/lib/module/icons/components/IconVonr.js +12 -0
  325. package/lib/module/icons/components/IconVowifi.js +12 -0
  326. package/lib/module/icons/components/IconVpndata.js +12 -0
  327. package/lib/module/icons/components/index.js +73 -0
  328. package/lib/module/icons/registry.js +2 -2
  329. package/lib/module/utils/index.js +2 -1
  330. package/lib/module/utils/react-utils.js +61 -0
  331. package/lib/module/utils/shadow.js +194 -0
  332. package/lib/typescript/src/components/BenefitCard/BenefitCard.d.ts +33 -4
  333. package/lib/typescript/src/components/Carousel/Carousel.d.ts +11 -1
  334. package/lib/typescript/src/components/CarouselCardAccounts/CarouselCardAccounts.d.ts +57 -0
  335. package/lib/typescript/src/components/SavingsGoalSummary/SavingsGoalSummary.d.ts +11 -1
  336. package/lib/typescript/src/components/ScrollArea/ScrollArea.d.ts +77 -0
  337. package/lib/typescript/src/components/Text/Text.d.ts +12 -3
  338. package/lib/typescript/src/components/TextSegment/TextSegment.d.ts +12 -3
  339. package/lib/typescript/src/components/Title/Title.d.ts +12 -2
  340. package/lib/typescript/src/components/index.d.ts +2 -0
  341. package/lib/typescript/src/design-tokens/figma-modes.generated.d.ts +23 -15
  342. package/lib/typescript/src/icons/components/Icon4g.d.ts +3 -0
  343. package/lib/typescript/src/icons/components/Icon4gltedata.d.ts +3 -0
  344. package/lib/typescript/src/icons/components/Icon5g.d.ts +3 -0
  345. package/lib/typescript/src/icons/components/Icon5gdoubleplus.d.ts +3 -0
  346. package/lib/typescript/src/icons/components/Icon5gplus.d.ts +3 -0
  347. package/lib/typescript/src/icons/components/IconAdblocker.d.ts +3 -0
  348. package/lib/typescript/src/icons/components/IconAdblockplus.d.ts +3 -0
  349. package/lib/typescript/src/icons/components/IconAnalytics.d.ts +3 -0
  350. package/lib/typescript/src/icons/components/IconAnalyticsdata.d.ts +3 -0
  351. package/lib/typescript/src/icons/components/IconAnalyticspiechart.d.ts +3 -0
  352. package/lib/typescript/src/icons/components/IconAnalyticspiecharttree.d.ts +3 -0
  353. package/lib/typescript/src/icons/components/IconAnalyticspiecharttwo.d.ts +3 -0
  354. package/lib/typescript/src/icons/components/IconCompoundinterest.d.ts +3 -0
  355. package/lib/typescript/src/icons/components/IconConsumptionaccounted.d.ts +3 -0
  356. package/lib/typescript/src/icons/components/IconConsumptionaverage.d.ts +3 -0
  357. package/lib/typescript/src/icons/components/IconConsumptionhigh.d.ts +3 -0
  358. package/lib/typescript/src/icons/components/IconConsumptionlow.d.ts +3 -0
  359. package/lib/typescript/src/icons/components/IconConsumptionunaccounted.d.ts +3 -0
  360. package/lib/typescript/src/icons/components/IconCsvdoc.d.ts +3 -0
  361. package/lib/typescript/src/icons/components/IconDatabase.d.ts +3 -0
  362. package/lib/typescript/src/icons/components/IconDigitalecosystem.d.ts +3 -0
  363. package/lib/typescript/src/icons/components/IconDigitalselfservice.d.ts +3 -0
  364. package/lib/typescript/src/icons/components/IconDistribution.d.ts +3 -0
  365. package/lib/typescript/src/icons/components/IconDocument.d.ts +3 -0
  366. package/lib/typescript/src/icons/components/IconDocumentdoc.d.ts +3 -0
  367. package/lib/typescript/src/icons/components/IconDocumentjpg.d.ts +3 -0
  368. package/lib/typescript/src/icons/components/IconDocumentodt.d.ts +3 -0
  369. package/lib/typescript/src/icons/components/IconDocumentpdf.d.ts +3 -0
  370. package/lib/typescript/src/icons/components/IconDocumentpng.d.ts +3 -0
  371. package/lib/typescript/src/icons/components/IconDocumentraw.d.ts +3 -0
  372. package/lib/typescript/src/icons/components/IconDocumentrtf.d.ts +3 -0
  373. package/lib/typescript/src/icons/components/IconDocumentsettings.d.ts +3 -0
  374. package/lib/typescript/src/icons/components/IconDocumenttif.d.ts +3 -0
  375. package/lib/typescript/src/icons/components/IconDocumenttxt.d.ts +3 -0
  376. package/lib/typescript/src/icons/components/IconDocumentunknown.d.ts +3 -0
  377. package/lib/typescript/src/icons/components/IconDocumentxls.d.ts +3 -0
  378. package/lib/typescript/src/icons/components/IconDocumentxlsx.d.ts +3 -0
  379. package/lib/typescript/src/icons/components/IconFilerequest.d.ts +3 -0
  380. package/lib/typescript/src/icons/components/IconFilesend.d.ts +3 -0
  381. package/lib/typescript/src/icons/components/IconFileshare.d.ts +3 -0
  382. package/lib/typescript/src/icons/components/IconFindinpage.d.ts +3 -0
  383. package/lib/typescript/src/icons/components/IconFolder.d.ts +3 -0
  384. package/lib/typescript/src/icons/components/IconFolderbookmarks.d.ts +3 -0
  385. package/lib/typescript/src/icons/components/IconFolderfavorites.d.ts +3 -0
  386. package/lib/typescript/src/icons/components/IconFolderlocked.d.ts +3 -0
  387. package/lib/typescript/src/icons/components/IconFoldermovefiles.d.ts +3 -0
  388. package/lib/typescript/src/icons/components/IconFolderpublic.d.ts +3 -0
  389. package/lib/typescript/src/icons/components/IconFolderrated.d.ts +3 -0
  390. package/lib/typescript/src/icons/components/IconFolderrequest.d.ts +3 -0
  391. package/lib/typescript/src/icons/components/IconForm.d.ts +3 -0
  392. package/lib/typescript/src/icons/components/IconFormadd.d.ts +3 -0
  393. package/lib/typescript/src/icons/components/IconForms.d.ts +3 -0
  394. package/lib/typescript/src/icons/components/IconGraphincreasing.d.ts +3 -0
  395. package/lib/typescript/src/icons/components/IconGraphlow.d.ts +3 -0
  396. package/lib/typescript/src/icons/components/IconGraphtable.d.ts +3 -0
  397. package/lib/typescript/src/icons/components/IconHealthreport.d.ts +3 -0
  398. package/lib/typescript/src/icons/components/IconHubmode.d.ts +3 -0
  399. package/lib/typescript/src/icons/components/IconInfrastructure.d.ts +3 -0
  400. package/lib/typescript/src/icons/components/IconInterestlow.d.ts +3 -0
  401. package/lib/typescript/src/icons/components/IconLte.d.ts +3 -0
  402. package/lib/typescript/src/icons/components/IconNetworkfuture.d.ts +3 -0
  403. package/lib/typescript/src/icons/components/IconPagesettings.d.ts +3 -0
  404. package/lib/typescript/src/icons/components/IconPptxdoc.d.ts +3 -0
  405. package/lib/typescript/src/icons/components/IconPreferrednumber.d.ts +3 -0
  406. package/lib/typescript/src/icons/components/IconPremiumnumber.d.ts +3 -0
  407. package/lib/typescript/src/icons/components/IconProjection.d.ts +3 -0
  408. package/lib/typescript/src/icons/components/IconRequest.d.ts +3 -0
  409. package/lib/typescript/src/icons/components/IconRoutestraffic.d.ts +3 -0
  410. package/lib/typescript/src/icons/components/IconTechnology.d.ts +3 -0
  411. package/lib/typescript/src/icons/components/IconVolte.d.ts +3 -0
  412. package/lib/typescript/src/icons/components/IconVonr.d.ts +3 -0
  413. package/lib/typescript/src/icons/components/IconVowifi.d.ts +3 -0
  414. package/lib/typescript/src/icons/components/IconVpndata.d.ts +3 -0
  415. package/lib/typescript/src/icons/components/index.d.ts +73 -0
  416. package/lib/typescript/src/icons/registry.d.ts +1 -1
  417. package/lib/typescript/src/utils/index.d.ts +2 -0
  418. package/lib/typescript/src/utils/react-utils.d.ts +40 -1
  419. package/lib/typescript/src/utils/shadow.d.ts +72 -0
  420. package/package.json +2 -1
  421. package/src/components/ActionFooter/ActionFooter.tsx +8 -26
  422. package/src/components/ActionTile/ActionTile.tsx +10 -10
  423. package/src/components/AmountInput/AmountInput.tsx +3 -3
  424. package/src/components/AreaLineChart/AreaLineChart.tsx +2 -2
  425. package/src/components/Attached/Attached.tsx +1 -1
  426. package/src/components/Avatar/Avatar.tsx +10 -10
  427. package/src/components/AvatarGroup/AvatarGroup.tsx +9 -9
  428. package/src/components/Badge/Badge.tsx +12 -13
  429. package/src/components/BenefitCard/BenefitCard.tsx +120 -27
  430. package/src/components/BottomNav/BottomNav.tsx +2 -2
  431. package/src/components/BottomNavItem/BottomNavItem.tsx +3 -3
  432. package/src/components/Button/Button.tsx +30 -20
  433. package/src/components/Card/Card.tsx +20 -20
  434. package/src/components/CardAdvisory/CardAdvisory.tsx +6 -6
  435. package/src/components/CardCTA/CardCTA.tsx +21 -21
  436. package/src/components/CardFeedback/CardFeedback.tsx +18 -18
  437. package/src/components/CardFinancialCondition/CardFinancialCondition.tsx +7 -10
  438. package/src/components/CardInsight/CardInsight.tsx +1 -3
  439. package/src/components/Carousel/Carousel.tsx +29 -12
  440. package/src/components/CarouselCardAccounts/CarouselCardAccounts.tsx +113 -0
  441. package/src/components/Checkbox/Checkbox.tsx +2 -8
  442. package/src/components/ChipGroup/ChipGroup.tsx +1 -1
  443. package/src/components/ChipSelect/ChipSelect.tsx +11 -11
  444. package/src/components/CircularProgressBar/CircularProgressBar.tsx +5 -5
  445. package/src/components/CircularProgressBarDoted/CircularProgressBarDoted.tsx +8 -8
  446. package/src/components/CircularRating/CircularRating.tsx +3 -3
  447. package/src/components/CompareTable/CompareTable.tsx +16 -16
  448. package/src/components/DebitCard/DebitCard.tsx +22 -22
  449. package/src/components/Disclaimer/Disclaimer.tsx +5 -5
  450. package/src/components/DonutChart/DonutChart.tsx +11 -45
  451. package/src/components/Drawer/Drawer.tsx +80 -71
  452. package/src/components/Dropdown/Dropdown.tsx +23 -28
  453. package/src/components/DropdownInput/DropdownInput.tsx +10 -17
  454. package/src/components/EmptyState/EmptyState.tsx +14 -14
  455. package/src/components/FilterBar/FilterBar.tsx +2 -2
  456. package/src/components/Form/Form.tsx +3 -3
  457. package/src/components/FormField/FormField.tsx +6 -11
  458. package/src/components/FullscreenModal/FullscreenModal.tsx +24 -24
  459. package/src/components/Gauge/Gauge.tsx +8 -8
  460. package/src/components/HoldingsCard/HoldingsCard.tsx +10 -10
  461. package/src/components/Icon/Icon.tsx +6 -6
  462. package/src/components/IconCapsule/IconCapsule.tsx +7 -7
  463. package/src/components/InputSearch/InputSearch.tsx +9 -9
  464. package/src/components/InstitutionBadge/InstitutionBadge.tsx +3 -6
  465. package/src/components/ListGroup/ListGroup.tsx +8 -8
  466. package/src/components/ListItem/ListItem.tsx +10 -10
  467. package/src/components/LottieIntroBlock/LottieIntroBlock.tsx +13 -16
  468. package/src/components/LottiePlayer/LottiePlayer.tsx +2 -2
  469. package/src/components/LottiePlayer/LottiePlayer.web.tsx +2 -2
  470. package/src/components/MediaCard/MediaCard.tsx +21 -21
  471. package/src/components/MessageField/MessageField.tsx +8 -16
  472. package/src/components/MoneyValue/MoneyValue.tsx +7 -7
  473. package/src/components/NavArrow/NavArrow.tsx +8 -8
  474. package/src/components/NoteInput/NoteInput.tsx +12 -12
  475. package/src/components/Nudge/Nudge.tsx +20 -20
  476. package/src/components/OTP/OTP.tsx +16 -16
  477. package/src/components/PageHero/PageHero.tsx +16 -16
  478. package/src/components/PaymentFeedback/PaymentFeedback.tsx +27 -27
  479. package/src/components/Popup/Popup.tsx +1 -1
  480. package/src/components/ProgressBadge/ProgressBadge.tsx +5 -5
  481. package/src/components/Radio/Radio.tsx +8 -9
  482. package/src/components/RechargeCard/RechargeCard.tsx +31 -31
  483. package/src/components/SavingsGoalSummary/SavingsGoalSummary.tsx +105 -13
  484. package/src/components/ScrollArea/ScrollArea.tsx +200 -0
  485. package/src/components/Section/Section.tsx +26 -26
  486. package/src/components/StatusHero/StatusHero.tsx +14 -14
  487. package/src/components/Stepper/Step.tsx +16 -18
  488. package/src/components/Stepper/StepLabel.tsx +16 -27
  489. package/src/components/Stepper/Stepper.tsx +3 -4
  490. package/src/components/SuggestiveSearch/SuggestiveSearch.tsx +10 -20
  491. package/src/components/SupportText/SupportText.tsx +6 -6
  492. package/src/components/SupportText/SupportTextIcon.tsx +2 -2
  493. package/src/components/Text/Text.tsx +23 -5
  494. package/src/components/TextInput/TextInput.tsx +14 -14
  495. package/src/components/TextSegment/TextSegment.tsx +22 -4
  496. package/src/components/ThreadHero/ThreadHero.tsx +17 -17
  497. package/src/components/Title/Title.tsx +44 -18
  498. package/src/components/Toast/Toast.tsx +15 -15
  499. package/src/components/Toggle/Toggle.tsx +5 -10
  500. package/src/components/Tooltip/Tooltip.tsx +12 -12
  501. package/src/components/TransactionBubble/TransactionBubble.tsx +15 -15
  502. package/src/components/TransactionDetails/TransactionDetails.tsx +10 -10
  503. package/src/components/TransactionStatus/TransactionStatus.tsx +9 -9
  504. package/src/components/UpiHandle/UpiHandle.tsx +15 -15
  505. package/src/components/index.ts +2 -0
  506. package/src/design-tokens/Coin Variables-variables-full.json +1 -1
  507. package/src/design-tokens/figma-modes.generated.ts +50 -42
  508. package/src/icons/components/Icon4g.tsx +11 -0
  509. package/src/icons/components/Icon4gltedata.tsx +11 -0
  510. package/src/icons/components/Icon5g.tsx +11 -0
  511. package/src/icons/components/Icon5gdoubleplus.tsx +11 -0
  512. package/src/icons/components/Icon5gplus.tsx +11 -0
  513. package/src/icons/components/IconAdblocker.tsx +11 -0
  514. package/src/icons/components/IconAdblockplus.tsx +11 -0
  515. package/src/icons/components/IconAnalytics.tsx +11 -0
  516. package/src/icons/components/IconAnalyticsdata.tsx +11 -0
  517. package/src/icons/components/IconAnalyticspiechart.tsx +11 -0
  518. package/src/icons/components/IconAnalyticspiecharttree.tsx +11 -0
  519. package/src/icons/components/IconAnalyticspiecharttwo.tsx +11 -0
  520. package/src/icons/components/IconCompoundinterest.tsx +11 -0
  521. package/src/icons/components/IconConsumptionaccounted.tsx +11 -0
  522. package/src/icons/components/IconConsumptionaverage.tsx +11 -0
  523. package/src/icons/components/IconConsumptionhigh.tsx +11 -0
  524. package/src/icons/components/IconConsumptionlow.tsx +11 -0
  525. package/src/icons/components/IconConsumptionunaccounted.tsx +11 -0
  526. package/src/icons/components/IconCsvdoc.tsx +11 -0
  527. package/src/icons/components/IconDatabase.tsx +11 -0
  528. package/src/icons/components/IconDigitalecosystem.tsx +11 -0
  529. package/src/icons/components/IconDigitalselfservice.tsx +11 -0
  530. package/src/icons/components/IconDistribution.tsx +11 -0
  531. package/src/icons/components/IconDocument.tsx +11 -0
  532. package/src/icons/components/IconDocumentdoc.tsx +11 -0
  533. package/src/icons/components/IconDocumentjpg.tsx +11 -0
  534. package/src/icons/components/IconDocumentodt.tsx +11 -0
  535. package/src/icons/components/IconDocumentpdf.tsx +11 -0
  536. package/src/icons/components/IconDocumentpng.tsx +11 -0
  537. package/src/icons/components/IconDocumentraw.tsx +11 -0
  538. package/src/icons/components/IconDocumentrtf.tsx +11 -0
  539. package/src/icons/components/IconDocumentsettings.tsx +11 -0
  540. package/src/icons/components/IconDocumenttif.tsx +11 -0
  541. package/src/icons/components/IconDocumenttxt.tsx +11 -0
  542. package/src/icons/components/IconDocumentunknown.tsx +11 -0
  543. package/src/icons/components/IconDocumentxls.tsx +11 -0
  544. package/src/icons/components/IconDocumentxlsx.tsx +11 -0
  545. package/src/icons/components/IconFilerequest.tsx +11 -0
  546. package/src/icons/components/IconFilesend.tsx +11 -0
  547. package/src/icons/components/IconFileshare.tsx +11 -0
  548. package/src/icons/components/IconFindinpage.tsx +11 -0
  549. package/src/icons/components/IconFolder.tsx +11 -0
  550. package/src/icons/components/IconFolderbookmarks.tsx +11 -0
  551. package/src/icons/components/IconFolderfavorites.tsx +11 -0
  552. package/src/icons/components/IconFolderlocked.tsx +11 -0
  553. package/src/icons/components/IconFoldermovefiles.tsx +11 -0
  554. package/src/icons/components/IconFolderpublic.tsx +11 -0
  555. package/src/icons/components/IconFolderrated.tsx +11 -0
  556. package/src/icons/components/IconFolderrequest.tsx +11 -0
  557. package/src/icons/components/IconForm.tsx +11 -0
  558. package/src/icons/components/IconFormadd.tsx +11 -0
  559. package/src/icons/components/IconForms.tsx +11 -0
  560. package/src/icons/components/IconGraphincreasing.tsx +11 -0
  561. package/src/icons/components/IconGraphlow.tsx +11 -0
  562. package/src/icons/components/IconGraphtable.tsx +11 -0
  563. package/src/icons/components/IconHealthreport.tsx +11 -0
  564. package/src/icons/components/IconHubmode.tsx +11 -0
  565. package/src/icons/components/IconInfrastructure.tsx +11 -0
  566. package/src/icons/components/IconInterestlow.tsx +11 -0
  567. package/src/icons/components/IconLte.tsx +11 -0
  568. package/src/icons/components/IconNetworkfuture.tsx +11 -0
  569. package/src/icons/components/IconPagesettings.tsx +11 -0
  570. package/src/icons/components/IconPptxdoc.tsx +11 -0
  571. package/src/icons/components/IconPreferrednumber.tsx +11 -0
  572. package/src/icons/components/IconPremiumnumber.tsx +11 -0
  573. package/src/icons/components/IconProjection.tsx +11 -0
  574. package/src/icons/components/IconRequest.tsx +11 -0
  575. package/src/icons/components/IconRoutestraffic.tsx +11 -0
  576. package/src/icons/components/IconTechnology.tsx +11 -0
  577. package/src/icons/components/IconVolte.tsx +11 -0
  578. package/src/icons/components/IconVonr.tsx +11 -0
  579. package/src/icons/components/IconVowifi.tsx +11 -0
  580. package/src/icons/components/IconVpndata.tsx +11 -0
  581. package/src/icons/components/index.ts +73 -0
  582. package/src/icons/registry.ts +293 -1
  583. package/src/utils/index.ts +2 -0
  584. package/src/utils/react-utils.ts +72 -1
  585. package/src/utils/shadow.ts +219 -0
@@ -9,6 +9,9 @@ import Text from '../Text/Text';
9
9
  import ListItem from '../ListItem/ListItem';
10
10
  import Divider from '../Divider/Divider';
11
11
  import Button from '../Button/Button';
12
+ import Nudge from '../Nudge/Nudge';
13
+ import Avatar from '../Avatar/Avatar';
14
+ import TextSegment from '../TextSegment/TextSegment';
12
15
 
13
16
  /**
14
17
  * A single benefit row rendered with the shared `ListItem` primitive: a
@@ -38,8 +41,11 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
38
41
  function BenefitCard({
39
42
  headerTitle = 'You will earn',
40
43
  headerItem,
44
+ headerItems,
45
+ header,
41
46
  showHeader = true,
42
- bodyTitle = 'Upgrade to JioFinance+ and earn more',
47
+ bodyTitle,
48
+ bodyHeader,
43
49
  items,
44
50
  children,
45
51
  buttonLabel = 'Upgrade',
@@ -54,11 +60,16 @@ function BenefitCard({
54
60
  }) {
55
61
  const tokens = useMemo(() => resolveTokens(modes), [modes]);
56
62
 
57
- // Sub-component modes. Consumer-supplied `modes` always win via spread order.
58
- const listItemModes = useMemo(() => ({
63
+ // Component-level modes. `List Item Style: Minimal` and `Nudge padding: None`
64
+ // are BenefitCard's own defaults: they live on the card and cascade down into
65
+ // every child (the list-wrap rows and the upsell nudge) rather than being
66
+ // threaded onto each individual item. Consumer `modes` always win.
67
+ const cascadeModes = useMemo(() => ({
59
68
  'List Item Style': 'Minimal',
69
+ 'Nudge padding': 'None',
60
70
  ...modes
61
71
  }), [modes]);
72
+ // Sub-element modes layer their own specifics on top of the consumer modes.
62
73
  const iconModes = useMemo(() => ({
63
74
  AppearanceBrand: 'Secondary',
64
75
  ...modes
@@ -72,6 +83,13 @@ function BenefitCard({
72
83
  'Button / Size': 'S',
73
84
  ...modes
74
85
  }), [modes]);
86
+ // The upsell nudge keeps a white/transparent background (`AppearanceBrand:
87
+ // Neutral` → `nudge/background: #ffffff`); its `Nudge padding: None` cascades
88
+ // in from `cascadeModes` so it sits flush with the card.
89
+ const nudgeModes = useMemo(() => ({
90
+ AppearanceBrand: 'Neutral',
91
+ ...cascadeModes
92
+ }), [cascadeModes]);
75
93
  const renderItem = (item, key) => {
76
94
  const leading = item.leading ?? (item.icon != null ? /*#__PURE__*/_jsx(Icon, {
77
95
  iconName: item.icon,
@@ -89,23 +107,60 @@ function BenefitCard({
89
107
  title: item.title,
90
108
  leading: leading,
91
109
  trailing: trailing,
92
- onPress: item.onPress,
93
- modes: listItemModes
110
+ onPress: item.onPress
94
111
  }, key);
95
112
  };
96
- const headerNode = showHeader && (headerTitle != null || headerItem != null) ? /*#__PURE__*/_jsxs(View, {
113
+
114
+ // Header "list wrap" — slot-based. Precedence: `header` slot > `headerItems`
115
+ // array > legacy single `headerItem` > Figma default rows. The component-level
116
+ // `cascadeModes` are pushed into the whole group at once, so individual rows
117
+ // never carry their own list-item modes.
118
+ const headerListSource = header ? header : (headerItems ?? (headerItem ? [headerItem] : DEFAULT_HEADER_ITEMS)).map((item, index) => renderItem(item, `header-${index}`));
119
+ const headerListNodes = cloneChildrenWithModes(headerListSource, cascadeModes);
120
+ const headerNode = showHeader ? /*#__PURE__*/_jsxs(View, {
97
121
  style: styles.section,
98
122
  children: [/*#__PURE__*/_jsxs(View, {
99
123
  style: styles.cardHeader,
100
124
  children: [headerTitle != null ? /*#__PURE__*/_jsx(RNText, {
101
125
  style: tokens.title,
102
126
  children: headerTitle
103
- }) : null, headerItem != null ? renderItem(headerItem, 'header-item') : null]
127
+ }) : null, /*#__PURE__*/_jsx(View, {
128
+ style: tokens.listWrap,
129
+ children: headerListNodes
130
+ })]
104
131
  }), /*#__PURE__*/_jsx(Divider, {
105
132
  modes: modes
106
133
  })]
107
134
  }) : null;
108
- const bodyList = children ? cloneChildrenWithModes(children, listItemModes) : (items ?? DEFAULT_ITEMS).map((item, index) => renderItem(item, index));
135
+
136
+ // Body "header" slot (between the divider and the body list). Precedence:
137
+ // explicit `bodyHeader` slot > legacy `bodyTitle` text > Figma upsell nudge.
138
+ const bodyHeaderNode = bodyHeader === null || bodyHeader === false ? null : bodyHeader !== undefined ? renderSlot(bodyHeader, cascadeModes) : bodyTitle != null ? /*#__PURE__*/_jsx(RNText, {
139
+ style: tokens.title,
140
+ children: bodyTitle
141
+ }) : /*#__PURE__*/_jsx(Nudge, {
142
+ type: "inline-compact",
143
+ modes: {
144
+ ...nudgeModes,
145
+ ...cascadeModes
146
+ },
147
+ startSlot: DEFAULT_UPSELL_AVATAR,
148
+ children: /*#__PURE__*/_jsx(TextSegment, {
149
+ modes: cascadeModes,
150
+ segments: [{
151
+ text: 'Upgrade to '
152
+ }, {
153
+ text: 'JioFinance+',
154
+ modes: {
155
+ 'Text Appearance': 'Primary'
156
+ }
157
+ }, {
158
+ text: ' and earn more'
159
+ }]
160
+ })
161
+ });
162
+ const bodyListSource = children ? children : (items ?? DEFAULT_ITEMS).map((item, index) => renderItem(item, index));
163
+ const bodyList = cloneChildrenWithModes(bodyListSource, cascadeModes);
109
164
  const ctaNode = button ?? /*#__PURE__*/_jsx(Button, {
110
165
  label: buttonLabel,
111
166
  modes: ctaModes,
@@ -116,15 +171,9 @@ function BenefitCard({
116
171
  width
117
172
  }), [tokens.container, width]);
118
173
  const content = /*#__PURE__*/_jsxs(_Fragment, {
119
- children: [headerNode, /*#__PURE__*/_jsxs(View, {
120
- style: tokens.body,
121
- children: [bodyTitle != null ? /*#__PURE__*/_jsx(RNText, {
122
- style: tokens.title,
123
- children: bodyTitle
124
- }) : null, /*#__PURE__*/_jsx(View, {
125
- style: tokens.listWrap,
126
- children: bodyList
127
- })]
174
+ children: [headerNode, bodyHeaderNode, /*#__PURE__*/_jsx(View, {
175
+ style: tokens.listWrap,
176
+ children: bodyList
128
177
  }), showButton ? ctaNode : null]
129
178
  });
130
179
  if (onPress) {
@@ -183,10 +232,6 @@ function resolveTokens(modes) {
183
232
  flexDirection: 'column',
184
233
  alignItems: 'flex-start'
185
234
  },
186
- body: {
187
- alignSelf: 'stretch',
188
- gap
189
- },
190
235
  listWrap: {
191
236
  alignSelf: 'stretch',
192
237
  gap
@@ -202,6 +247,26 @@ function resolveTokens(modes) {
202
247
  }
203
248
  };
204
249
  }
250
+
251
+ // Cascades `modes` into a slot node and unwraps a single child so the slot can
252
+ // be rendered inline without an extra fragment.
253
+ function renderSlot(node, modes) {
254
+ const processed = cloneChildrenWithModes(node, modes);
255
+ return processed.length === 1 ? processed[0] : processed;
256
+ }
257
+
258
+ // Figma reference rows for the header list wrap (two highlighted "JioPoints"
259
+ // rows). Used only when no `header` slot / `headerItems` / legacy `headerItem`
260
+ // is supplied.
261
+ const DEFAULT_HEADER_ITEMS = [{
262
+ icon: 'ic_jewellery_diamond',
263
+ title: 'JioPoints',
264
+ trailingText: 'Up to 2000 pts'
265
+ }, {
266
+ icon: 'ic_jewellery_diamond',
267
+ title: 'JioPoints',
268
+ trailingText: 'Up to 2000 pts'
269
+ }];
205
270
  const DEFAULT_ITEMS = [{
206
271
  icon: 'ic_card',
207
272
  title: 'Up to ₹5000 cashback'
@@ -209,6 +274,15 @@ const DEFAULT_ITEMS = [{
209
274
  icon: 'ic_card',
210
275
  title: '25% extra JioPoints'
211
276
  }];
277
+
278
+ // Start-slot avatar for the default upsell nudge. `modes` cascade in from the
279
+ // nudge (XS keeps it compact next to the inline message).
280
+ const DEFAULT_UPSELL_AVATAR = /*#__PURE__*/_jsx(Avatar, {
281
+ style: "Image",
282
+ modes: {
283
+ 'Avatar Size': 'XS'
284
+ }
285
+ });
212
286
  const styles = StyleSheet.create({
213
287
  section: {
214
288
  alignSelf: 'stretch',
@@ -37,8 +37,8 @@ function BottomNav({
37
37
  };
38
38
 
39
39
  // Resolve container styling tokens
40
- const backgroundColor = getVariableByName('bottomNav/background', modes) || '#ffffff';
41
- const borderColor = getVariableByName('bottomNav/border/color', modes) || '#cccfd1';
40
+ const backgroundColor = getVariableByName('bottomNav/background', modes);
41
+ const borderColor = getVariableByName('bottomNav/border/color', modes);
42
42
  const borderWidth = getVariableByName('bottomNav/border/width', modes) ?? 1;
43
43
  const paddingTop = getVariableByName('bottomNav/padding/top', modes) ?? 10;
44
44
  const paddingBottom = getVariableByName('bottomNav/padding/bottom', modes) ?? 23;
@@ -23,13 +23,13 @@ const focusOverlayStyle = {
23
23
  };
24
24
  function resolveBottomNavItemTokens(modes, disabled, iconColorOverride, iconSizeOverride) {
25
25
  const gap = getVariableByName('bottomNavItem/gap', modes) ?? 6;
26
- const fontFamily = getVariableByName('bottomNavItem/fontFamily', modes) || 'JioType_Var:Medium';
26
+ const fontFamily = getVariableByName('bottomNavItem/fontFamily', modes);
27
27
  const fontWeightRaw = getVariableByName('bottomNavItem/fontWeight', modes) ?? 500;
28
28
  const fontWeight = typeof fontWeightRaw === 'number' ? fontWeightRaw.toString() : fontWeightRaw;
29
29
  const fontSize = getVariableByName('bottomNavItem/fontSize', modes) ?? 11;
30
30
  const lineHeight = getVariableByName('bottomNavItem/lineHeight', modes) ?? 14;
31
- const labelColor = getVariableByName('bottomNavItem/label/color', modes) || '#0d0d0f';
32
- const resolvedIconColor = iconColorOverride || getVariableByName('bottomNavItem/icon/color', modes) || '#ad8545';
31
+ const labelColor = getVariableByName('bottomNavItem/label/color', modes);
32
+ const resolvedIconColor = iconColorOverride || getVariableByName('bottomNavItem/icon/color', modes);
33
33
  const resolvedIconSize = iconSizeOverride ?? getVariableByName('bottomNavItem/icon/size', modes) ?? 24;
34
34
  return {
35
35
  baseContainerStyle: {
@@ -4,7 +4,7 @@ import React, { useCallback, useMemo, useRef, useState } from 'react';
4
4
  import { Platform, Pressable, Text, View } from 'react-native';
5
5
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
6
6
  import { usePressableWebSupport } from '../../utils/web-platform-utils';
7
- import { EMPTY_MODES, resolveTruncation } from '../../utils/react-utils';
7
+ import { EMPTY_MODES } from '../../utils/react-utils';
8
8
  import Icon from '../../icons/Icon';
9
9
  import Skeleton from '../../skeleton/Skeleton';
10
10
  import { useSkeleton } from '../../skeleton/SkeletonGroup';
@@ -31,6 +31,17 @@ const containerLayoutStyle = {
31
31
  justifyContent: 'center'
32
32
  };
33
33
 
34
+ // Keeps the label on a single line. `flexShrink: 0` stops a tight flex parent
35
+ // from squeezing the text; on web `whiteSpace: 'nowrap'` is what actually
36
+ // prevents the line break (a bare `numberOfLines` line-clamp still allows the
37
+ // text to wrap inside a width-constrained pill in react-native-web).
38
+ const NO_WRAP_LABEL_STYLE = {
39
+ flexShrink: 0,
40
+ ...(IS_WEB ? {
41
+ whiteSpace: 'nowrap'
42
+ } : {})
43
+ };
44
+
34
45
  // ---------------------------------------------------------------------------
35
46
  // Token resolution
36
47
  // ---------------------------------------------------------------------------
@@ -42,19 +53,19 @@ const containerLayoutStyle = {
42
53
  // ---------------------------------------------------------------------------
43
54
 
44
55
  function resolveButtonTokens(modes, disabled) {
45
- const backgroundColor = getVariableByName('button/background', modes) || '#cfa159';
46
- const borderColor = getVariableByName('button/border/color', modes) || 'rgba(255,255,255,0)';
56
+ const backgroundColor = getVariableByName('button/background', modes);
57
+ const borderColor = getVariableByName('button/border/color', modes);
47
58
  const borderWidth = getVariableByName('button/border/size', modes);
48
- const radius = getVariableByName('button/radius', modes) || 9999;
49
- const paddingHorizontal = getVariableByName('button/padding/horizontal', modes) || 20;
50
- const paddingVertical = getVariableByName('button/padding/vertical', modes) || 12;
51
- const gap = getVariableByName('button/gap', modes) || 8;
52
- const fontFamily = getVariableByName('button/fontFamily', modes) || 'System';
53
- const fontWeightValue = getVariableByName('button/fontWeight', modes) || 700;
59
+ const radius = getVariableByName('button/radius', modes);
60
+ const paddingHorizontal = getVariableByName('button/padding/horizontal', modes);
61
+ const paddingVertical = getVariableByName('button/padding/vertical', modes);
62
+ const gap = getVariableByName('button/gap', modes);
63
+ const fontFamily = getVariableByName('button/fontFamily', modes);
64
+ const fontWeightValue = getVariableByName('button/fontWeight', modes);
54
65
  const fontWeight = typeof fontWeightValue === 'number' ? fontWeightValue.toString() : fontWeightValue;
55
- const lineHeight = getVariableByName('button/lineHeight', modes) || 19;
56
- const fontSize = getVariableByName('button/fontSize', modes) || 16;
57
- const textColor = getVariableByName('button/foreground', modes) || '#0f0d0a';
66
+ const lineHeight = getVariableByName('button/lineHeight', modes);
67
+ const fontSize = getVariableByName('button/fontSize', modes);
68
+ const textColor = getVariableByName('button/foreground', modes);
58
69
  const iconSize = getVariableByName('button/icon/size', modes) ?? 18;
59
70
 
60
71
  // Pressed tokens are always resolved so the Pressable `style` callback can
@@ -63,9 +74,9 @@ function resolveButtonTokens(modes, disabled) {
63
74
  ...modes,
64
75
  'Button / State': 'Pressed'
65
76
  };
66
- const pressedBg = getVariableByName('button/background', pressedModes) || backgroundColor;
67
- const pressedBorderColor = getVariableByName('button/border/color', pressedModes) || borderColor;
68
- const pressedTextColor = getVariableByName('button/foreground', pressedModes) || textColor;
77
+ const pressedBg = getVariableByName('button/background', pressedModes);
78
+ const pressedBorderColor = getVariableByName('button/border/color', pressedModes);
79
+ const pressedTextColor = getVariableByName('button/foreground', pressedModes);
69
80
 
70
81
  // Hover tokens are only meaningful on web. Skipping them on native saves
71
82
  // ~3 token lookups + an object spread per render on every Button.
@@ -76,9 +87,9 @@ function resolveButtonTokens(modes, disabled) {
76
87
  ...modes,
77
88
  'Button / State': 'Hover'
78
89
  };
79
- const hoverBg = getVariableByName('button/background', hoverModes) || backgroundColor;
80
- const hoverBorderColor = getVariableByName('button/border/color', hoverModes) || borderColor;
81
- hoverTextColor = getVariableByName('button/foreground', hoverModes) || textColor;
90
+ const hoverBg = getVariableByName('button/background', hoverModes);
91
+ const hoverBorderColor = getVariableByName('button/border/color', hoverModes);
92
+ hoverTextColor = getVariableByName('button/foreground', hoverModes);
82
93
  hoverContainer = {
83
94
  backgroundColor: hoverBg,
84
95
  borderColor: hoverBorderColor
@@ -214,8 +225,9 @@ function ButtonImpl({
214
225
  content = children;
215
226
  } else {
216
227
  content = /*#__PURE__*/_jsx(Text, {
217
- style: activeLabelStyle,
218
- ...resolveTruncation(disableTruncation, 1),
228
+ style: [activeLabelStyle, disableTruncation ? null : NO_WRAP_LABEL_STYLE],
229
+ numberOfLines: disableTruncation ? undefined : 1,
230
+ ellipsizeMode: disableTruncation ? undefined : 'tail',
219
231
  children: label
220
232
  });
221
233
  }
@@ -35,18 +35,18 @@ export function Card({
35
35
  style
36
36
  }) {
37
37
  // Resolve Card Container Tokens
38
- const backgroundColor = getVariableByName('card/background/color', modes) || '#ffffff';
39
- const borderColor = getVariableByName('card/border/color', modes) || '#ebebed';
40
- const borderWidth = parseFloat(getVariableByName('card/strokeWidth', modes) || '0.5'); // Ensure number
41
- const radius = parseFloat(getVariableByName('card/radius', modes) || '8');
42
- const gap = parseFloat(getVariableByName('card/gap', modes) || '4');
43
- const paddingHorizontal = parseFloat(getVariableByName('card/padding-horizontal', modes) || '0');
44
- const paddingVertical = parseFloat(getVariableByName('card/padding-vertical', modes) || '0');
38
+ const backgroundColor = getVariableByName('card/background/color', modes);
39
+ const borderColor = getVariableByName('card/border/color', modes);
40
+ const borderWidth = parseFloat(getVariableByName('card/strokeWidth', modes)); // Ensure number
41
+ const radius = parseFloat(getVariableByName('card/radius', modes));
42
+ const gap = parseFloat(getVariableByName('card/gap', modes));
43
+ const paddingHorizontal = parseFloat(getVariableByName('card/padding-horizontal', modes));
44
+ const paddingVertical = parseFloat(getVariableByName('card/padding-vertical', modes));
45
45
 
46
46
  // Resolve Content Wrapper Tokens
47
- const contentGap = parseFloat(getVariableByName('card/content/gap', modes) || '4');
48
- const contentPaddingHorizontal = parseFloat(getVariableByName('card/content/padding/horizontal', modes) || '12');
49
- const contentPaddingVertical = parseFloat(getVariableByName('card/content/padding/vertical', modes) || '16');
47
+ const contentGap = parseFloat(getVariableByName('card/content/gap', modes));
48
+ const contentPaddingHorizontal = parseFloat(getVariableByName('card/content/padding/horizontal', modes));
49
+ const contentPaddingVertical = parseFloat(getVariableByName('card/content/padding/vertical', modes));
50
50
 
51
51
  // Clone media to pass modes if it's a valid element, facilitating nested style resolution
52
52
  const mediaWithModes = /*#__PURE__*/isValidElement(media) ? /*#__PURE__*/cloneElement(media, {
@@ -131,14 +131,14 @@ function Title({
131
131
  }) {
132
132
  const context = useContext(CardContext);
133
133
  const modes = propModes || context.modes || {};
134
- const color = getVariableByName('card/title/color', modes) || '#081007';
135
- const fontSize = parseFloat(getVariableByName('card/title/fontSize', modes) || '16');
136
- const fontFamily = getVariableByName('card/title/fontFamily', modes) || 'JioType Var';
137
- const lineHeight = parseFloat(getVariableByName('card/title/lineHeight', modes) || '18');
134
+ const color = getVariableByName('card/title/color', modes);
135
+ const fontSize = parseFloat(getVariableByName('card/title/fontSize', modes));
136
+ const fontFamily = getVariableByName('card/title/fontFamily', modes);
137
+ const lineHeight = parseFloat(getVariableByName('card/title/lineHeight', modes));
138
138
 
139
139
  // Handling the potential typo in Figma variables "fonwWeight" vs "fontWeight"
140
140
  // We check both keys to be safe.
141
- const rawFontWeight = getVariableByName('card/title/fontWeight', modes) || getVariableByName('card/title/fonwWeight', modes) || '900';
141
+ const rawFontWeight = getVariableByName('card/title/fontWeight', modes);
142
142
  const fontWeight = typeof rawFontWeight === 'number' ? rawFontWeight.toString() : rawFontWeight;
143
143
  const textStyle = {
144
144
  color,
@@ -164,11 +164,11 @@ function SupportText({
164
164
  }) {
165
165
  const context = useContext(CardContext);
166
166
  const modes = propModes || context.modes || {};
167
- const color = getVariableByName('card/supportive-text/color', modes) || '#191b1e';
168
- const fontSize = parseFloat(getVariableByName('card/supportive-text/fontSize', modes) || '12');
169
- const fontFamily = getVariableByName('card/supportive-text/fontFamily', modes) || 'JioType Var';
170
- const lineHeight = parseFloat(getVariableByName('card/supportive-text/lineHeight', modes) || '16');
171
- const rawFontWeight = getVariableByName('card/supportive-text/fontWeight', modes) || '400';
167
+ const color = getVariableByName('card/supportive-text/color', modes);
168
+ const fontSize = parseFloat(getVariableByName('card/supportive-text/fontSize', modes));
169
+ const fontFamily = getVariableByName('card/supportive-text/fontFamily', modes);
170
+ const lineHeight = parseFloat(getVariableByName('card/supportive-text/lineHeight', modes));
171
+ const rawFontWeight = getVariableByName('card/supportive-text/fontWeight', modes);
172
172
  const fontWeight = typeof rawFontWeight === 'number' ? rawFontWeight.toString() : rawFontWeight;
173
173
  const textStyle = {
174
174
  color,
@@ -34,19 +34,19 @@ function resolveCardAdvisoryTokens(modes) {
34
34
  const paddingHorizontal = toNumber(getVariableByName('cardAdvisory/padding/horizontal', modes), 0);
35
35
  const paddingVertical = toNumber(getVariableByName('cardAdvisory/padding/vertical', modes), 0);
36
36
  const radius = toNumber(getVariableByName('cardAdvisory/radius', modes), 0);
37
- const background = getVariableByName('cardAdvisory/background', modes) || '#ffffff';
37
+ const background = getVariableByName('cardAdvisory/background', modes);
38
38
  const mainContentGap = toNumber(getVariableByName('cardAdvisory/mainContent/gap', modes), 16);
39
39
  const contentGap = toNumber(getVariableByName('cardAdvisory/content/gap', modes), 6);
40
40
  const headerGap = toNumber(getVariableByName('cardAdvisory/header/gap', modes), 8);
41
- const titleColor = getVariableByName('cardAdvisory/title/foreground', modes) || '#0d0d0f';
41
+ const titleColor = getVariableByName('cardAdvisory/title/foreground', modes);
42
42
  const titleFontSize = toNumber(getVariableByName('cardAdvisory/title/fontSize', modes), 26);
43
- const titleFontFamily = getVariableByName('cardAdvisory/title/fontFamily', modes) || 'JioType Var';
43
+ const titleFontFamily = getVariableByName('cardAdvisory/title/fontFamily', modes);
44
44
  const titleLineHeight = toNumber(getVariableByName('cardAdvisory/title/lineHeight', modes), 26);
45
45
  const titleFontWeight = toFontWeight(getVariableByName('cardAdvisory/title/fontWeight', modes), '900');
46
46
  const titleDescenderAllowance = Math.ceil(titleFontSize * 0.16);
47
- const descriptionColor = getVariableByName('cardAdvisory/description/foreground', modes) || '#24262b';
47
+ const descriptionColor = getVariableByName('cardAdvisory/description/foreground', modes);
48
48
  const descriptionFontSize = toNumber(getVariableByName('cardAdvisory/description/fontSize', modes), 12);
49
- const descriptionFontFamily = getVariableByName('cardAdvisory/description/fontFamily', modes) || 'JioType Var';
49
+ const descriptionFontFamily = getVariableByName('cardAdvisory/description/fontFamily', modes);
50
50
  const descriptionLineHeight = toNumber(getVariableByName('cardAdvisory/description/lineHeight', modes), 16);
51
51
  const descriptionFontWeight = toFontWeight(getVariableByName('cardAdvisory/description/fontWeight', modes), '500');
52
52
  return {
@@ -95,7 +95,7 @@ function resolveCardAdvisoryTokens(modes) {
95
95
  lineHeight: descriptionLineHeight,
96
96
  width: '100%'
97
97
  },
98
- iconColor: getVariableByName('cardAdvisory/icon/color', modes) || '#1a1c1f',
98
+ iconColor: getVariableByName('cardAdvisory/icon/color', modes),
99
99
  iconSize: toNumber(getVariableByName('cardAdvisory/icon/size', modes), 18)
100
100
  };
101
101
  }
@@ -66,27 +66,27 @@ function CardCTA({
66
66
  const normalizedType = typeof type === 'string' ? type.toLowerCase() : 'cta';
67
67
  const isRating = normalizedType === 'rating';
68
68
  const isSip = normalizedType === 'sip';
69
- const background = getVariableByName('cardCTA/background', modes) || '#ffffff';
70
- const radius = getVariableByName('cardCTA/radius', modes) || 12;
71
- const borderSize = getVariableByName('cardCTA/border/size', modes) || 1;
72
- const borderColor = getVariableByName('cardCTA/border/color', modes) || '#e3e4e4';
73
- const leftPaddingH = getVariableByName('cardCTA/left-wrap/padding/horizontal', modes) || 16;
74
- const leftPaddingV = getVariableByName('cardCTA/left-wrap/padding/vertical', modes) || 22;
75
- const leftGap = getVariableByName('cardCTA/left-wrap/gap', modes) || 16;
76
- const rightPaddingH = getVariableByName('cardCTA/right-wrap/padding/horizontal', modes) || 16;
77
- const rightPaddingV = getVariableByName('cardCTA/right-wrap/padding/vertical', modes) || 22;
78
- const textGap = getVariableByName('cardCTA/text-wrap/gap', modes) || 6;
79
- const titleColor = getVariableByName('cardCTA/title/color', modes) || '#0c0d10';
80
- const titleFontFamily = getVariableByName('cardCTA/title/fontFamily', modes) || 'JioType Var';
81
- const titleFontSize = getVariableByName('cardCTA/title/fontSize', modes) || 16;
82
- const titleLineHeight = getVariableByName('cardCTA/title/lineHeight', modes) || 18;
83
- const titleFontWeightRaw = getVariableByName('cardCTA/title/fontWeight', modes) || 700;
69
+ const background = getVariableByName('cardCTA/background', modes);
70
+ const radius = getVariableByName('cardCTA/radius', modes);
71
+ const borderSize = getVariableByName('cardCTA/border/size', modes);
72
+ const borderColor = getVariableByName('cardCTA/border/color', modes);
73
+ const leftPaddingH = getVariableByName('cardCTA/left-wrap/padding/horizontal', modes);
74
+ const leftPaddingV = getVariableByName('cardCTA/left-wrap/padding/vertical', modes);
75
+ const leftGap = getVariableByName('cardCTA/left-wrap/gap', modes);
76
+ const rightPaddingH = getVariableByName('cardCTA/right-wrap/padding/horizontal', modes);
77
+ const rightPaddingV = getVariableByName('cardCTA/right-wrap/padding/vertical', modes);
78
+ const textGap = getVariableByName('cardCTA/text-wrap/gap', modes);
79
+ const titleColor = getVariableByName('cardCTA/title/color', modes);
80
+ const titleFontFamily = getVariableByName('cardCTA/title/fontFamily', modes);
81
+ const titleFontSize = getVariableByName('cardCTA/title/fontSize', modes);
82
+ const titleLineHeight = getVariableByName('cardCTA/title/lineHeight', modes);
83
+ const titleFontWeightRaw = getVariableByName('cardCTA/title/fontWeight', modes);
84
84
  const titleFontWeight = typeof titleFontWeightRaw === 'number' ? titleFontWeightRaw.toString() : titleFontWeightRaw;
85
- const bodyColor = getVariableByName('cardCTA/body/color', modes) || '#13002d';
86
- const bodyFontFamily = getVariableByName('cardCTA/body/fontFamily', modes) || 'JioType Var';
87
- const bodyFontSize = getVariableByName('cardCTA/body/fontSize', modes) || 14;
88
- const bodyLineHeight = getVariableByName('cardCTA/body/lineHeight', modes) || 17;
89
- const bodyFontWeightRaw = getVariableByName('cardCTA/body/fontWeight', modes) || 400;
85
+ const bodyColor = getVariableByName('cardCTA/body/color', modes);
86
+ const bodyFontFamily = getVariableByName('cardCTA/body/fontFamily', modes);
87
+ const bodyFontSize = getVariableByName('cardCTA/body/fontSize', modes);
88
+ const bodyLineHeight = getVariableByName('cardCTA/body/lineHeight', modes);
89
+ const bodyFontWeightRaw = getVariableByName('cardCTA/body/fontWeight', modes);
90
90
  const bodyFontWeight = typeof bodyFontWeightRaw === 'number' ? bodyFontWeightRaw.toString() : bodyFontWeightRaw;
91
91
  const ratingContentGap = getOptionalVariableByName('cardCTA/rating/content/gap', modes, 12);
92
92
  const ratingContentPaddingH = getOptionalVariableByName('cardCTA/rating/content/padding/horizontal', modes, 16);
@@ -135,7 +135,7 @@ function CardCTA({
135
135
  const effectiveButtonLabel = buttonLabel ?? (isRating ? 'Save' : 'Button');
136
136
  const nonWrappingButtonLabel = effectiveButtonLabel.replace(/\s/g, '\u00A0');
137
137
  const [measuredButtonLabelWidth, setMeasuredButtonLabelWidth] = React.useState(null);
138
- const buttonPaddingH = getVariableByName('button/padding/horizontal', buttonModes) || 20;
138
+ const buttonPaddingH = getVariableByName('button/padding/horizontal', buttonModes);
139
139
  const buttonBorderSize = getVariableByName('button/border/size', buttonModes) ?? 1;
140
140
  // Small safety pad so sub-pixel rounding between the measure pass and the
141
141
  // rendered glyph run can never clip the final character.
@@ -26,11 +26,11 @@ export function CardFeedback({
26
26
  ...propModes
27
27
  };
28
28
  // Container Tokens
29
- const backgroundColor = getVariableByName('cardFeedback/background', modes) || '#dbf0d9';
30
- const radius = parseFloat(getVariableByName('cardFeedback/radius', modes) || '12');
31
- const gap = parseFloat(getVariableByName('cardFeedback/gap', modes) || '8');
32
- const paddingHorizontal = parseFloat(getVariableByName('cardFeedback/padding/horizontal', modes) || '12');
33
- const paddingVertical = parseFloat(getVariableByName('cardFeedback/padding/vertical', modes) || '12');
29
+ const backgroundColor = getVariableByName('cardFeedback/background', modes);
30
+ const radius = parseFloat(getVariableByName('cardFeedback/radius', modes));
31
+ const gap = parseFloat(getVariableByName('cardFeedback/gap', modes));
32
+ const paddingHorizontal = parseFloat(getVariableByName('cardFeedback/padding/horizontal', modes));
33
+ const paddingVertical = parseFloat(getVariableByName('cardFeedback/padding/vertical', modes));
34
34
  const containerStyle = {
35
35
  backgroundColor,
36
36
  borderRadius: radius,
@@ -69,7 +69,7 @@ export function Icon({
69
69
  }) {
70
70
  const context = useContext(CardFeedbackContext);
71
71
  const modes = propModes || context.modes || {};
72
- const size = parseFloat(getVariableByName('cardFeedback/icon/size', modes) || '20');
72
+ const size = parseFloat(getVariableByName('cardFeedback/icon/size', modes));
73
73
  // Color for the icon itself
74
74
  const color = getVariableByName('appearanceFeedback/cardFeedback/icon/color', modes);
75
75
  console.log(color);
@@ -115,7 +115,7 @@ export function Content({
115
115
  }) {
116
116
  const context = useContext(CardFeedbackContext);
117
117
  const modes = propModes || context.modes || {};
118
- const gap = parseFloat(getVariableByName('cardFeedback/text/gap', modes) || '8');
118
+ const gap = parseFloat(getVariableByName('cardFeedback/text/gap', modes));
119
119
 
120
120
  // Pass modes to children (Title, Body, etc.)
121
121
  const childrenWithModes = React.Children.map(children, child => {
@@ -149,11 +149,11 @@ export function Title({
149
149
  }) {
150
150
  const context = useContext(CardFeedbackContext);
151
151
  const modes = propModes || context.modes || {};
152
- const color = getVariableByName('cardFeedback/title/color', modes) || '#0f0d0a';
153
- const fontSize = parseFloat(getVariableByName('cardFeedback/title/fontSize', modes) || '14');
154
- const fontFamily = getVariableByName('cardFeedback/title/fontFamily', modes) || 'JioType Var';
155
- const lineHeight = parseFloat(getVariableByName('cardFeedback/title/lineHeight', modes) || '17');
156
- const fontWeight = getVariableByName('cardFeedback/title/fontWeight', modes) || '500';
152
+ const color = getVariableByName('cardFeedback/title/color', modes);
153
+ const fontSize = parseFloat(getVariableByName('cardFeedback/title/fontSize', modes));
154
+ const fontFamily = getVariableByName('cardFeedback/title/fontFamily', modes);
155
+ const lineHeight = parseFloat(getVariableByName('cardFeedback/title/lineHeight', modes));
156
+ const fontWeight = getVariableByName('cardFeedback/title/fontWeight', modes);
157
157
  const textStyle = {
158
158
  color,
159
159
  fontSize,
@@ -178,11 +178,11 @@ export function Body({
178
178
  }) {
179
179
  const context = useContext(CardFeedbackContext);
180
180
  const modes = propModes || context.modes || {};
181
- const color = getVariableByName('cardFeedback/body/color', modes) || '#1f1a14';
182
- const fontSize = parseFloat(getVariableByName('cardFeedback/body/fontSize', modes) || '12');
183
- const fontFamily = getVariableByName('cardFeedback/body/fontFamily', modes) || 'JioType Var';
184
- const lineHeight = parseFloat(getVariableByName('cardFeedback/body/lineHeight', modes) || '16');
185
- const fontWeight = getVariableByName('cardFeedback/body/fontWeight', modes) || '400';
181
+ const color = getVariableByName('cardFeedback/body/color', modes);
182
+ const fontSize = parseFloat(getVariableByName('cardFeedback/body/fontSize', modes));
183
+ const fontFamily = getVariableByName('cardFeedback/body/fontFamily', modes);
184
+ const lineHeight = parseFloat(getVariableByName('cardFeedback/body/lineHeight', modes));
185
+ const fontWeight = getVariableByName('cardFeedback/body/fontWeight', modes);
186
186
  const textStyle = {
187
187
  color,
188
188
  fontSize,
@@ -207,7 +207,7 @@ export function Action({
207
207
  }) {
208
208
  const context = useContext(CardFeedbackContext);
209
209
  const modes = propModes || context.modes || {};
210
- const gap = parseFloat(getVariableByName('cardFeedback/actionSlot/gap', modes) || '0');
210
+ const gap = parseFloat(getVariableByName('cardFeedback/actionSlot/gap', modes));
211
211
 
212
212
  // "Maximise existing component usage" -> Pass modes to children (Buttons)
213
213
  const childrenWithModes = React.Children.map(children, child => {
@@ -30,26 +30,26 @@ const toFontWeight = (value, fallback) => {
30
30
  return fallback;
31
31
  };
32
32
  function resolveCardFinancialConditionTokens(modes) {
33
- const background = getVariableByName('financialConditionCard/background', modes) || '#ffffff';
33
+ const background = getVariableByName('financialConditionCard/background', modes);
34
34
  const radius = toNumber(getVariableByName('financialConditionCard/radius', modes), 16);
35
35
  const paddingH = toNumber(getVariableByName('financialConditionCard/padding/horizontal', modes), 16);
36
36
  const paddingV = toNumber(getVariableByName('financialConditionCard/padding/vertical', modes), 16);
37
37
  const gap = toNumber(getVariableByName('financialConditionCard/gap', modes), 8);
38
38
  const headerGap = toNumber(getVariableByName('financialConditionCard/header/gap', modes), 16);
39
39
  const textContentGap = toNumber(getVariableByName('financialConditionCard/textContent/gap', modes), 8);
40
- const titleColor = getVariableByName('financialConditionCard/title/color', modes) || '#0c0d10';
40
+ const titleColor = getVariableByName('financialConditionCard/title/color', modes);
41
41
  const titleFontSize = toNumber(getVariableByName('financialConditionCard/title/fontSize', modes), 16);
42
- const titleFontFamily = getVariableByName('financialConditionCard/title/fontFamily', modes) || 'JioType Var';
42
+ const titleFontFamily = getVariableByName('financialConditionCard/title/fontFamily', modes);
43
43
  const titleLineHeight = toNumber(getVariableByName('financialConditionCard/title/lineHeight', modes), 18);
44
44
  const titleFontWeight = toFontWeight(getVariableByName('financialConditionCard/title/fontWeight', modes), '700');
45
- const bodyColor = getVariableByName('financialConditionCard/body/color', modes) || '#0c0d10';
45
+ const bodyColor = getVariableByName('financialConditionCard/body/color', modes);
46
46
  const bodyFontSize = toNumber(getVariableByName('financialConditionCard/body/fontSize', modes), 14);
47
- const bodyFontFamily = getVariableByName('financialConditionCard/body/fontFamily', modes) || 'JioType Var';
47
+ const bodyFontFamily = getVariableByName('financialConditionCard/body/fontFamily', modes);
48
48
  const bodyLineHeight = toNumber(getVariableByName('financialConditionCard/body/lineHeight', modes), 17);
49
49
  const bodyFontWeight = toFontWeight(getVariableByName('financialConditionCard/body/fontWeight', modes), '400');
50
- const nudgeBodyColor = getVariableByName('nudge/body/color', modes) || '#1a1c1f';
50
+ const nudgeBodyColor = getVariableByName('nudge/body/color', modes);
51
51
  const nudgeBodyFontSize = toNumber(getVariableByName('nudge/body/fontSize', modes), 12);
52
- const nudgeBodyFontFamily = getVariableByName('nudge/body/fontFamily', modes) || 'JioType Var';
52
+ const nudgeBodyFontFamily = getVariableByName('nudge/body/fontFamily', modes);
53
53
  const nudgeBodyLineHeight = toNumber(getVariableByName('nudge/body/lineHeight', modes), 16);
54
54
  const nudgeBodyFontWeight = toFontWeight(getVariableByName('nudge/body/fontWeight', modes), '500');
55
55
  return {
@@ -38,7 +38,6 @@ function CardInsight({
38
38
  const paddingVertical = getVariableByName('cardInsight/padding/vertical', modes) ?? 16;
39
39
  const gap = getVariableByName('cardInsight/gap', modes) ?? 12;
40
40
  const contentGap = getVariableByName('cardInsight/contentGap', modes) ?? 8;
41
- const width = getVariableByName('cardInsight/width', modes) ?? 356;
42
41
  const slotBackground = getVariableByName('cardInsight/slot/background', modes) ?? '#ffffff';
43
42
  const headerGap = getVariableByName('cardInsight/header/gap', modes) ?? 8;
44
43
  const textGap = getVariableByName('cardInsight/text/gap', modes) ?? 4;
@@ -68,6 +67,7 @@ function CardInsight({
68
67
  const renderSlot = () => {
69
68
  if (!children) {
70
69
  return /*#__PURE__*/_jsx(SavingsGoalSummary, {
70
+ label: "Credit usage",
71
71
  modes: modes
72
72
  });
73
73
  }
@@ -103,7 +103,6 @@ function CardInsight({
103
103
  const showDivider = footerNode !== null && divider !== false && divider !== null;
104
104
  return /*#__PURE__*/_jsxs(View, {
105
105
  style: [{
106
- width,
107
106
  backgroundColor: background,
108
107
  borderRadius: radius,
109
108
  borderWidth,