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
@@ -84,34 +84,33 @@ function Badge({
84
84
  // swaps the solid fill for a translucent overlay + white label, matching the
85
85
  // Figma `badge/glass/*` tokens.
86
86
  const backgroundColor =
87
- (getVariableByName('badge/color/background', modes) as string) || '#d8effe'
87
+ (getVariableByName('badge/color/background', modes) as string)
88
88
  const glassBackground =
89
- (getVariableByName('badge/glass/color/background', modes) as string) || '#ffffff26'
89
+ (getVariableByName('badge/glass/color/background', modes) as string)
90
90
  const glassLabelColor =
91
- (getVariableByName('badge/glass/color/label', modes) as string) || '#ffffff'
91
+ (getVariableByName('badge/glass/color/label', modes) as string)
92
92
  const labelColor = isGlass
93
93
  ? glassLabelColor
94
- : (getVariableByName('badge/color/label', modes) as string) || '#000000'
94
+ : (getVariableByName('badge/color/label', modes) as string)
95
95
  const fontSize =
96
- Number(getVariableByName('badge/label/fontSize', modes) as unknown) || 12
96
+ Number(getVariableByName('badge/label/fontSize', modes) as unknown)
97
97
  const fontFamily =
98
- (getVariableByName('badge/fontFamily', modes) as string) || undefined
98
+ (getVariableByName('badge/fontFamily', modes) as string)
99
99
  const fontWeight =
100
- (getVariableByName('badge/label/fontWeight', modes) as string) || '600'
100
+ (getVariableByName('badge/label/fontWeight', modes) as string)
101
101
  const paddingHorizontal =
102
- Number(getVariableByName('badge/padding/horizontal', modes) as unknown) || 6
102
+ Number(getVariableByName('badge/padding/horizontal', modes) as unknown)
103
103
  const paddingVertical =
104
- Number(getVariableByName('badge/padding/vertical', modes) as unknown) || 4
104
+ Number(getVariableByName('badge/padding/vertical', modes) as unknown)
105
105
  const borderRadius =
106
- Number(getVariableByName('badge/radius', modes) as unknown) || 4
106
+ Number(getVariableByName('badge/radius', modes) as unknown)
107
107
  const lineHeight =
108
- Number(getVariableByName('badge/label/lineHeight', modes) as unknown) ||
109
- Math.round(fontSize * 1.2)
108
+ Number(getVariableByName('badge/label/lineHeight', modes) as unknown)
110
109
  // Figma `blur/minimal` (px radius) -> GlassFill's 0–100 intensity scale, the
111
110
  // same 1:1 mapping the merchandising card footer uses.
112
111
  const blurIntensity = Math.max(
113
112
  0,
114
- Math.min(100, Math.round(Number(getVariableByName('blur/minimal', modes) as unknown) || 29)),
113
+ Math.min(100, Math.round(Number(getVariableByName('blur/minimal', modes) as unknown))),
115
114
  )
116
115
 
117
116
  // Skeleton short-circuit. Size derived from the same tokens the loaded
@@ -15,6 +15,9 @@ import Text from '../Text/Text'
15
15
  import ListItem from '../ListItem/ListItem'
16
16
  import Divider from '../Divider/Divider'
17
17
  import Button from '../Button/Button'
18
+ import Nudge from '../Nudge/Nudge'
19
+ import Avatar from '../Avatar/Avatar'
20
+ import TextSegment from '../TextSegment/TextSegment'
18
21
  import type { Modes } from '../../design-tokens'
19
22
 
20
23
  /**
@@ -42,17 +45,46 @@ export interface BenefitCardProps {
42
45
  /** Header section title (e.g. `"You will earn"`). */
43
46
  headerTitle?: string
44
47
  /**
45
- * Highlighted item shown directly under the header title (icon + title +
46
- * optional trailing value). Rendered above the divider.
48
+ * @deprecated The header is now a multi-row list wrap. A single item still
49
+ * works and is rendered as a one-row list (lowest precedence, after
50
+ * `header` and `headerItems`). Prefer `headerItems` (declarative) or
51
+ * `header` (slot).
47
52
  */
48
53
  headerItem?: BenefitCardItem
54
+ /**
55
+ * Declarative header list-wrap rows shown under the header title and above
56
+ * the divider (icon + title + optional trailing value). Replaces the
57
+ * legacy single {@link BenefitCardProps.headerItem}. Ignored when the
58
+ * `header` slot is provided.
59
+ */
60
+ headerItems?: BenefitCardItem[]
61
+ /**
62
+ * Real slot for the header "list wrap" (the rows under the header title).
63
+ * Highest precedence — when provided, these children render instead of
64
+ * `headerItems` / `headerItem`; `modes` (plus the `List Item Style:
65
+ * Minimal` style) cascade into every child automatically.
66
+ */
67
+ header?: React.ReactNode
49
68
  /**
50
69
  * Toggles the whole header section (title + item + divider). Mirrors the
51
70
  * Figma `showHeader` property. Defaults to `true`.
52
71
  */
53
72
  showHeader?: boolean
54
- /** Body section title (e.g. `"Upgrade to JioFinance+ and earn more"`). */
73
+ /**
74
+ * @deprecated In the Figma redesign the plain body title was replaced by a
75
+ * slot-based upsell `Nudge` ({@link BenefitCardProps.bodyHeader}). Still
76
+ * honored for backward compatibility: when set, it renders as a plain text
77
+ * title in place of the default nudge. Prefer `bodyHeader`.
78
+ */
55
79
  bodyTitle?: string
80
+ /**
81
+ * Real slot rendered between the header divider and the body list — in the
82
+ * Figma reference this is an upsell `Nudge` (avatar + highlighted
83
+ * "JioFinance+" message). Defaults to that nudge. Pass `null`/`false` to
84
+ * hide it, `bodyTitle` for the legacy plain-text title, or any `ReactNode`
85
+ * for full control; `modes` cascade into the slot.
86
+ */
87
+ bodyHeader?: React.ReactNode
56
88
  /**
57
89
  * Body benefit rows. Ignored when `children` is provided (the slot wins).
58
90
  */
@@ -109,8 +141,11 @@ export interface BenefitCardProps {
109
141
  function BenefitCard({
110
142
  headerTitle = 'You will earn',
111
143
  headerItem,
144
+ headerItems,
145
+ header,
112
146
  showHeader = true,
113
- bodyTitle = 'Upgrade to JioFinance+ and earn more',
147
+ bodyTitle,
148
+ bodyHeader,
114
149
  items,
115
150
  children,
116
151
  buttonLabel = 'Upgrade',
@@ -125,14 +160,28 @@ function BenefitCard({
125
160
  }: BenefitCardProps) {
126
161
  const tokens = useMemo(() => resolveTokens(modes), [modes])
127
162
 
128
- // Sub-component modes. Consumer-supplied `modes` always win via spread order.
129
- const listItemModes = useMemo<Modes>(() => ({ 'List Item Style': 'Minimal', ...modes }), [modes])
163
+ // Component-level modes. `List Item Style: Minimal` and `Nudge padding: None`
164
+ // are BenefitCard's own defaults: they live on the card and cascade down into
165
+ // every child (the list-wrap rows and the upsell nudge) rather than being
166
+ // threaded onto each individual item. Consumer `modes` always win.
167
+ const cascadeModes = useMemo<Modes>(
168
+ () => ({ 'List Item Style': 'Minimal', 'Nudge padding': 'None', ...modes }),
169
+ [modes]
170
+ )
171
+ // Sub-element modes layer their own specifics on top of the consumer modes.
130
172
  const iconModes = useMemo<Modes>(() => ({ AppearanceBrand: 'Secondary', ...modes }), [modes])
131
173
  const trailingTextModes = useMemo<Modes>(
132
174
  () => ({ 'Text Sizes': 'Small', Weight: 'Regular', ...modes }),
133
175
  [modes]
134
176
  )
135
177
  const ctaModes = useMemo<Modes>(() => ({ 'Button / Size': 'S', ...modes }), [modes])
178
+ // The upsell nudge keeps a white/transparent background (`AppearanceBrand:
179
+ // Neutral` → `nudge/background: #ffffff`); its `Nudge padding: None` cascades
180
+ // in from `cascadeModes` so it sits flush with the card.
181
+ const nudgeModes = useMemo<Modes>(
182
+ () => ({ AppearanceBrand: 'Neutral', ...cascadeModes }),
183
+ [cascadeModes]
184
+ )
136
185
 
137
186
  const renderItem = (item: BenefitCardItem, key: React.Key) => {
138
187
  const leading =
@@ -157,25 +206,57 @@ function BenefitCard({
157
206
  leading={leading}
158
207
  trailing={trailing}
159
208
  onPress={item.onPress}
160
- modes={listItemModes}
161
209
  />
162
210
  )
163
211
  }
164
212
 
165
- const headerNode =
166
- showHeader && (headerTitle != null || headerItem != null) ? (
167
- <View style={styles.section}>
168
- <View style={styles.cardHeader}>
169
- {headerTitle != null ? <RNText style={tokens.title}>{headerTitle}</RNText> : null}
170
- {headerItem != null ? renderItem(headerItem, 'header-item') : null}
171
- </View>
172
- <Divider modes={modes} />
213
+ // Header "list wrap" — slot-based. Precedence: `header` slot > `headerItems`
214
+ // array > legacy single `headerItem` > Figma default rows. The component-level
215
+ // `cascadeModes` are pushed into the whole group at once, so individual rows
216
+ // never carry their own list-item modes.
217
+ const headerListSource = header
218
+ ? header
219
+ : (headerItems ?? (headerItem ? [headerItem] : DEFAULT_HEADER_ITEMS)).map((item, index) =>
220
+ renderItem(item, `header-${index}`)
221
+ )
222
+ const headerListNodes = cloneChildrenWithModes(headerListSource, cascadeModes)
223
+
224
+ const headerNode = showHeader ? (
225
+ <View style={styles.section}>
226
+ <View style={styles.cardHeader}>
227
+ {headerTitle != null ? <RNText style={tokens.title}>{headerTitle}</RNText> : null}
228
+ <View style={tokens.listWrap}>{headerListNodes}</View>
173
229
  </View>
174
- ) : null
230
+ <Divider modes={modes} />
231
+ </View>
232
+ ) : null
233
+
234
+ // Body "header" slot (between the divider and the body list). Precedence:
235
+ // explicit `bodyHeader` slot > legacy `bodyTitle` text > Figma upsell nudge.
236
+ const bodyHeaderNode =
237
+ bodyHeader === null || bodyHeader === false
238
+ ? null
239
+ : bodyHeader !== undefined
240
+ ? renderSlot(bodyHeader, cascadeModes)
241
+ : bodyTitle != null
242
+ ? <RNText style={tokens.title}>{bodyTitle}</RNText>
243
+ : (
244
+ <Nudge type="inline-compact" modes={{ ...nudgeModes, ...cascadeModes }} startSlot={DEFAULT_UPSELL_AVATAR}>
245
+ <TextSegment
246
+ modes={cascadeModes}
247
+ segments={[
248
+ { text: 'Upgrade to ' },
249
+ { text: 'JioFinance+', modes: { 'Text Appearance': 'Primary' } },
250
+ { text: ' and earn more' },
251
+ ]}
252
+ />
253
+ </Nudge>
254
+ )
175
255
 
176
- const bodyList = children
177
- ? cloneChildrenWithModes(children, listItemModes)
256
+ const bodyListSource = children
257
+ ? children
178
258
  : (items ?? DEFAULT_ITEMS).map((item, index) => renderItem(item, index))
259
+ const bodyList = cloneChildrenWithModes(bodyListSource, cascadeModes)
179
260
 
180
261
  const ctaNode = button ?? (
181
262
  <Button label={buttonLabel} modes={ctaModes} onPress={onButtonPress} />
@@ -189,10 +270,8 @@ function BenefitCard({
189
270
  const content = (
190
271
  <>
191
272
  {headerNode}
192
- <View style={tokens.body}>
193
- {bodyTitle != null ? <RNText style={tokens.title}>{bodyTitle}</RNText> : null}
194
- <View style={tokens.listWrap}>{bodyList}</View>
195
- </View>
273
+ {bodyHeaderNode}
274
+ <View style={tokens.listWrap}>{bodyList}</View>
196
275
  {showButton ? ctaNode : null}
197
276
  </>
198
277
  )
@@ -227,7 +306,6 @@ const CARD_HEADER_GAP = 4
227
306
 
228
307
  interface ResolvedTokens {
229
308
  container: ViewStyle
230
- body: ViewStyle
231
309
  listWrap: ViewStyle
232
310
  title: TextStyle
233
311
  }
@@ -267,10 +345,6 @@ function resolveTokens(modes: Modes): ResolvedTokens {
267
345
  flexDirection: 'column',
268
346
  alignItems: 'flex-start',
269
347
  },
270
- body: {
271
- alignSelf: 'stretch',
272
- gap,
273
- },
274
348
  listWrap: {
275
349
  alignSelf: 'stretch',
276
350
  gap,
@@ -287,11 +361,30 @@ function resolveTokens(modes: Modes): ResolvedTokens {
287
361
  }
288
362
  }
289
363
 
364
+ // Cascades `modes` into a slot node and unwraps a single child so the slot can
365
+ // be rendered inline without an extra fragment.
366
+ function renderSlot(node: React.ReactNode, modes: Modes): React.ReactNode {
367
+ const processed = cloneChildrenWithModes(node, modes)
368
+ return processed.length === 1 ? processed[0] : processed
369
+ }
370
+
371
+ // Figma reference rows for the header list wrap (two highlighted "JioPoints"
372
+ // rows). Used only when no `header` slot / `headerItems` / legacy `headerItem`
373
+ // is supplied.
374
+ const DEFAULT_HEADER_ITEMS: BenefitCardItem[] = [
375
+ { icon: 'ic_jewellery_diamond', title: 'JioPoints', trailingText: 'Up to 2000 pts' },
376
+ { icon: 'ic_jewellery_diamond', title: 'JioPoints', trailingText: 'Up to 2000 pts' },
377
+ ]
378
+
290
379
  const DEFAULT_ITEMS: BenefitCardItem[] = [
291
380
  { icon: 'ic_card', title: 'Up to ₹5000 cashback' },
292
381
  { icon: 'ic_card', title: '25% extra JioPoints' },
293
382
  ]
294
383
 
384
+ // Start-slot avatar for the default upsell nudge. `modes` cascade in from the
385
+ // nudge (XS keeps it compact next to the inline message).
386
+ const DEFAULT_UPSELL_AVATAR = <Avatar style="Image" modes={{ 'Avatar Size': 'XS' }} />
387
+
295
388
  const styles = StyleSheet.create({
296
389
  section: {
297
390
  alignSelf: 'stretch',
@@ -53,8 +53,8 @@ function BottomNav({
53
53
  const modes = { ...globalModes, ...propModes }
54
54
 
55
55
  // Resolve container styling tokens
56
- const backgroundColor = getVariableByName('bottomNav/background', modes) || '#ffffff'
57
- const borderColor = getVariableByName('bottomNav/border/color', modes) || '#cccfd1'
56
+ const backgroundColor = getVariableByName('bottomNav/background', modes)
57
+ const borderColor = getVariableByName('bottomNav/border/color', modes)
58
58
  const borderWidth = getVariableByName('bottomNav/border/width', modes) ?? 1
59
59
  const paddingTop = getVariableByName('bottomNav/padding/top', modes) ?? 10
60
60
  const paddingBottom = getVariableByName('bottomNav/padding/bottom', modes) ?? 23
@@ -60,17 +60,17 @@ function resolveBottomNavItemTokens(
60
60
  const gap = (getVariableByName('bottomNavItem/gap', modes) ?? 6) as number
61
61
 
62
62
  const fontFamily =
63
- (getVariableByName('bottomNavItem/fontFamily', modes) || 'JioType_Var:Medium') as string
63
+ (getVariableByName('bottomNavItem/fontFamily', modes)) as string
64
64
  const fontWeightRaw = getVariableByName('bottomNavItem/fontWeight', modes) ?? 500
65
65
  const fontWeight =
66
66
  typeof fontWeightRaw === 'number' ? fontWeightRaw.toString() : fontWeightRaw
67
67
  const fontSize = (getVariableByName('bottomNavItem/fontSize', modes) ?? 11) as number
68
68
  const lineHeight = (getVariableByName('bottomNavItem/lineHeight', modes) ?? 14) as number
69
69
 
70
- const labelColor = (getVariableByName('bottomNavItem/label/color', modes) || '#0d0d0f') as string
70
+ const labelColor = (getVariableByName('bottomNavItem/label/color', modes)) as string
71
71
 
72
72
  const resolvedIconColor =
73
- iconColorOverride || (getVariableByName('bottomNavItem/icon/color', modes) || '#ad8545') as string
73
+ iconColorOverride || (getVariableByName('bottomNavItem/icon/color', modes)) as string
74
74
  const resolvedIconSize =
75
75
  iconSizeOverride ?? (getVariableByName('bottomNavItem/icon/size', modes) ?? 24) as number
76
76
 
@@ -12,7 +12,7 @@ import {
12
12
  } from 'react-native'
13
13
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
14
14
  import { usePressableWebSupport, type SafePressableProps, type WebAccessibilityProps } from '../../utils/web-platform-utils'
15
- import { EMPTY_MODES, resolveTruncation } from '../../utils/react-utils'
15
+ import { EMPTY_MODES } from '../../utils/react-utils'
16
16
  import Icon from '../../icons/Icon'
17
17
  import Skeleton from '../../skeleton/Skeleton'
18
18
  import { useSkeleton } from '../../skeleton/SkeletonGroup'
@@ -95,6 +95,15 @@ const containerLayoutStyle = {
95
95
  justifyContent: 'center' as const,
96
96
  }
97
97
 
98
+ // Keeps the label on a single line. `flexShrink: 0` stops a tight flex parent
99
+ // from squeezing the text; on web `whiteSpace: 'nowrap'` is what actually
100
+ // prevents the line break (a bare `numberOfLines` line-clamp still allows the
101
+ // text to wrap inside a width-constrained pill in react-native-web).
102
+ const NO_WRAP_LABEL_STYLE: TextStyle = {
103
+ flexShrink: 0,
104
+ ...(IS_WEB ? { whiteSpace: 'nowrap' as const } : {}),
105
+ }
106
+
98
107
  // ---------------------------------------------------------------------------
99
108
  // Token resolution
100
109
  // ---------------------------------------------------------------------------
@@ -120,28 +129,28 @@ interface ButtonTokens {
120
129
  }
121
130
 
122
131
  function resolveButtonTokens(modes: Modes, disabled: boolean): ButtonTokens {
123
- const backgroundColor = getVariableByName('button/background', modes) || '#cfa159'
124
- const borderColor = getVariableByName('button/border/color', modes) || 'rgba(255,255,255,0)'
132
+ const backgroundColor = getVariableByName('button/background', modes)
133
+ const borderColor = getVariableByName('button/border/color', modes)
125
134
  const borderWidth = getVariableByName('button/border/size', modes)
126
- const radius = getVariableByName('button/radius', modes) || 9999
127
- const paddingHorizontal = getVariableByName('button/padding/horizontal', modes) || 20
128
- const paddingVertical = getVariableByName('button/padding/vertical', modes) || 12
129
- const gap = getVariableByName('button/gap', modes) || 8
135
+ const radius = getVariableByName('button/radius', modes)
136
+ const paddingHorizontal = getVariableByName('button/padding/horizontal', modes)
137
+ const paddingVertical = getVariableByName('button/padding/vertical', modes)
138
+ const gap = getVariableByName('button/gap', modes)
130
139
 
131
- const fontFamily = getVariableByName('button/fontFamily', modes) || 'System'
132
- const fontWeightValue = getVariableByName('button/fontWeight', modes) || 700
140
+ const fontFamily = getVariableByName('button/fontFamily', modes)
141
+ const fontWeightValue = getVariableByName('button/fontWeight', modes)
133
142
  const fontWeight = typeof fontWeightValue === 'number' ? fontWeightValue.toString() : fontWeightValue
134
- const lineHeight = getVariableByName('button/lineHeight', modes) || 19
135
- const fontSize = getVariableByName('button/fontSize', modes) || 16
136
- const textColor = getVariableByName('button/foreground', modes) || '#0f0d0a'
143
+ const lineHeight = getVariableByName('button/lineHeight', modes)
144
+ const fontSize = getVariableByName('button/fontSize', modes)
145
+ const textColor = getVariableByName('button/foreground', modes)
137
146
  const iconSize = (getVariableByName('button/icon/size', modes) ?? 18) as number
138
147
 
139
148
  // Pressed tokens are always resolved so the Pressable `style` callback can
140
149
  // apply the pressed visual without scheduling a React render.
141
150
  const pressedModes = { ...modes, 'Button / State': 'Pressed' }
142
- const pressedBg = getVariableByName('button/background', pressedModes) || backgroundColor
143
- const pressedBorderColor = getVariableByName('button/border/color', pressedModes) || borderColor
144
- const pressedTextColor = (getVariableByName('button/foreground', pressedModes) || textColor) as string
151
+ const pressedBg = getVariableByName('button/background', pressedModes)
152
+ const pressedBorderColor = getVariableByName('button/border/color', pressedModes)
153
+ const pressedTextColor = (getVariableByName('button/foreground', pressedModes)) as string
145
154
 
146
155
  // Hover tokens are only meaningful on web. Skipping them on native saves
147
156
  // ~3 token lookups + an object spread per render on every Button.
@@ -149,9 +158,9 @@ function resolveButtonTokens(modes: Modes, disabled: boolean): ButtonTokens {
149
158
  let hoverTextColor: string | null = null
150
159
  if (IS_WEB) {
151
160
  const hoverModes = { ...modes, 'Button / State': 'Hover' }
152
- const hoverBg = getVariableByName('button/background', hoverModes) || backgroundColor
153
- const hoverBorderColor = getVariableByName('button/border/color', hoverModes) || borderColor
154
- hoverTextColor = (getVariableByName('button/foreground', hoverModes) || textColor) as string
161
+ const hoverBg = getVariableByName('button/background', hoverModes)
162
+ const hoverBorderColor = getVariableByName('button/border/color', hoverModes)
163
+ hoverTextColor = (getVariableByName('button/foreground', hoverModes)) as string
155
164
  hoverContainer = { backgroundColor: hoverBg as string, borderColor: hoverBorderColor as string }
156
165
  }
157
166
 
@@ -300,8 +309,9 @@ function ButtonImpl({
300
309
  } else {
301
310
  content = (
302
311
  <Text
303
- style={activeLabelStyle}
304
- {...resolveTruncation(disableTruncation, 1)}
312
+ style={[activeLabelStyle, disableTruncation ? null : NO_WRAP_LABEL_STYLE]}
313
+ numberOfLines={disableTruncation ? undefined : 1}
314
+ ellipsizeMode={disableTruncation ? undefined : 'tail'}
305
315
  >
306
316
  {label}
307
317
  </Text>
@@ -65,18 +65,18 @@ export function Card({
65
65
  style,
66
66
  }: CardProps) {
67
67
  // Resolve Card Container Tokens
68
- const backgroundColor = getVariableByName('card/background/color', modes) || '#ffffff';
69
- const borderColor = getVariableByName('card/border/color', modes) || '#ebebed';
70
- const borderWidth = parseFloat(getVariableByName('card/strokeWidth', modes) || '0.5'); // Ensure number
71
- const radius = parseFloat(getVariableByName('card/radius', modes) || '8');
72
- const gap = parseFloat(getVariableByName('card/gap', modes) || '4');
73
- const paddingHorizontal = parseFloat(getVariableByName('card/padding-horizontal', modes) || '0');
74
- const paddingVertical = parseFloat(getVariableByName('card/padding-vertical', modes) || '0');
68
+ const backgroundColor = getVariableByName('card/background/color', modes);
69
+ const borderColor = getVariableByName('card/border/color', modes);
70
+ const borderWidth = parseFloat(getVariableByName('card/strokeWidth', modes)); // Ensure number
71
+ const radius = parseFloat(getVariableByName('card/radius', modes));
72
+ const gap = parseFloat(getVariableByName('card/gap', modes));
73
+ const paddingHorizontal = parseFloat(getVariableByName('card/padding-horizontal', modes));
74
+ const paddingVertical = parseFloat(getVariableByName('card/padding-vertical', modes));
75
75
 
76
76
  // Resolve Content Wrapper Tokens
77
- const contentGap = parseFloat(getVariableByName('card/content/gap', modes) || '4');
78
- const contentPaddingHorizontal = parseFloat(getVariableByName('card/content/padding/horizontal', modes) || '12');
79
- const contentPaddingVertical = parseFloat(getVariableByName('card/content/padding/vertical', modes) || '16');
77
+ const contentGap = parseFloat(getVariableByName('card/content/gap', modes));
78
+ const contentPaddingHorizontal = parseFloat(getVariableByName('card/content/padding/horizontal', modes));
79
+ const contentPaddingVertical = parseFloat(getVariableByName('card/content/padding/vertical', modes));
80
80
 
81
81
  // Clone media to pass modes if it's a valid element, facilitating nested style resolution
82
82
  const mediaWithModes = isValidElement(media)
@@ -163,14 +163,14 @@ function Title({ children, style, modes: propModes }: CardTextProps) {
163
163
  const context = useContext(CardContext);
164
164
  const modes = propModes || context.modes || {};
165
165
 
166
- const color = getVariableByName('card/title/color', modes) || '#081007';
167
- const fontSize = parseFloat(getVariableByName('card/title/fontSize', modes) || '16');
168
- const fontFamily = getVariableByName('card/title/fontFamily', modes) || 'JioType Var';
169
- const lineHeight = parseFloat(getVariableByName('card/title/lineHeight', modes) || '18');
166
+ const color = getVariableByName('card/title/color', modes);
167
+ const fontSize = parseFloat(getVariableByName('card/title/fontSize', modes));
168
+ const fontFamily = getVariableByName('card/title/fontFamily', modes);
169
+ const lineHeight = parseFloat(getVariableByName('card/title/lineHeight', modes));
170
170
 
171
171
  // Handling the potential typo in Figma variables "fonwWeight" vs "fontWeight"
172
172
  // We check both keys to be safe.
173
- const rawFontWeight = getVariableByName('card/title/fontWeight', modes) || getVariableByName('card/title/fonwWeight', modes) || '900';
173
+ const rawFontWeight = getVariableByName('card/title/fontWeight', modes);
174
174
  const fontWeight = typeof rawFontWeight === 'number' ? rawFontWeight.toString() : rawFontWeight;
175
175
 
176
176
  const textStyle: TextStyle = {
@@ -192,11 +192,11 @@ function SupportText({ children, style, modes: propModes }: CardTextProps) {
192
192
  const context = useContext(CardContext);
193
193
  const modes = propModes || context.modes || {};
194
194
 
195
- const color = getVariableByName('card/supportive-text/color', modes) || '#191b1e';
196
- const fontSize = parseFloat(getVariableByName('card/supportive-text/fontSize', modes) || '12');
197
- const fontFamily = getVariableByName('card/supportive-text/fontFamily', modes) || 'JioType Var';
198
- const lineHeight = parseFloat(getVariableByName('card/supportive-text/lineHeight', modes) || '16');
199
- const rawFontWeight = getVariableByName('card/supportive-text/fontWeight', modes) || '400';
195
+ const color = getVariableByName('card/supportive-text/color', modes);
196
+ const fontSize = parseFloat(getVariableByName('card/supportive-text/fontSize', modes));
197
+ const fontFamily = getVariableByName('card/supportive-text/fontFamily', modes);
198
+ const lineHeight = parseFloat(getVariableByName('card/supportive-text/lineHeight', modes));
199
+ const rawFontWeight = getVariableByName('card/supportive-text/fontWeight', modes);
200
200
  const fontWeight = typeof rawFontWeight === 'number' ? rawFontWeight.toString() : rawFontWeight;
201
201
 
202
202
  const textStyle: TextStyle = {
@@ -107,22 +107,22 @@ function resolveCardAdvisoryTokens(modes: Modes): CardAdvisoryTokens {
107
107
  const paddingHorizontal = toNumber(getVariableByName('cardAdvisory/padding/horizontal', modes), 0)
108
108
  const paddingVertical = toNumber(getVariableByName('cardAdvisory/padding/vertical', modes), 0)
109
109
  const radius = toNumber(getVariableByName('cardAdvisory/radius', modes), 0)
110
- const background = getVariableByName('cardAdvisory/background', modes) || '#ffffff'
110
+ const background = getVariableByName('cardAdvisory/background', modes)
111
111
 
112
112
  const mainContentGap = toNumber(getVariableByName('cardAdvisory/mainContent/gap', modes), 16)
113
113
  const contentGap = toNumber(getVariableByName('cardAdvisory/content/gap', modes), 6)
114
114
  const headerGap = toNumber(getVariableByName('cardAdvisory/header/gap', modes), 8)
115
115
 
116
- const titleColor = getVariableByName('cardAdvisory/title/foreground', modes) || '#0d0d0f'
116
+ const titleColor = getVariableByName('cardAdvisory/title/foreground', modes)
117
117
  const titleFontSize = toNumber(getVariableByName('cardAdvisory/title/fontSize', modes), 26)
118
- const titleFontFamily = getVariableByName('cardAdvisory/title/fontFamily', modes) || 'JioType Var'
118
+ const titleFontFamily = getVariableByName('cardAdvisory/title/fontFamily', modes)
119
119
  const titleLineHeight = toNumber(getVariableByName('cardAdvisory/title/lineHeight', modes), 26)
120
120
  const titleFontWeight = toFontWeight(getVariableByName('cardAdvisory/title/fontWeight', modes), '900')
121
121
  const titleDescenderAllowance = Math.ceil(titleFontSize * 0.16)
122
122
 
123
- const descriptionColor = getVariableByName('cardAdvisory/description/foreground', modes) || '#24262b'
123
+ const descriptionColor = getVariableByName('cardAdvisory/description/foreground', modes)
124
124
  const descriptionFontSize = toNumber(getVariableByName('cardAdvisory/description/fontSize', modes), 12)
125
- const descriptionFontFamily = getVariableByName('cardAdvisory/description/fontFamily', modes) || 'JioType Var'
125
+ const descriptionFontFamily = getVariableByName('cardAdvisory/description/fontFamily', modes)
126
126
  const descriptionLineHeight = toNumber(getVariableByName('cardAdvisory/description/lineHeight', modes), 16)
127
127
  const descriptionFontWeight = toFontWeight(
128
128
  getVariableByName('cardAdvisory/description/fontWeight', modes),
@@ -175,7 +175,7 @@ function resolveCardAdvisoryTokens(modes: Modes): CardAdvisoryTokens {
175
175
  lineHeight: descriptionLineHeight,
176
176
  width: '100%',
177
177
  },
178
- iconColor: (getVariableByName('cardAdvisory/icon/color', modes) || '#1a1c1f') as string,
178
+ iconColor: (getVariableByName('cardAdvisory/icon/color', modes)) as string,
179
179
  iconSize: toNumber(getVariableByName('cardAdvisory/icon/size', modes), 18),
180
180
  }
181
181
  }
@@ -121,32 +121,32 @@ function CardCTA({
121
121
  const isRating = normalizedType === 'rating'
122
122
  const isSip = normalizedType === 'sip'
123
123
 
124
- const background = getVariableByName('cardCTA/background', modes) || '#ffffff'
125
- const radius = getVariableByName('cardCTA/radius', modes) || 12
126
- const borderSize = getVariableByName('cardCTA/border/size', modes) || 1
127
- const borderColor = getVariableByName('cardCTA/border/color', modes) || '#e3e4e4'
124
+ const background = getVariableByName('cardCTA/background', modes)
125
+ const radius = getVariableByName('cardCTA/radius', modes)
126
+ const borderSize = getVariableByName('cardCTA/border/size', modes)
127
+ const borderColor = getVariableByName('cardCTA/border/color', modes)
128
128
 
129
- const leftPaddingH = getVariableByName('cardCTA/left-wrap/padding/horizontal', modes) || 16
130
- const leftPaddingV = getVariableByName('cardCTA/left-wrap/padding/vertical', modes) || 22
131
- const leftGap = getVariableByName('cardCTA/left-wrap/gap', modes) || 16
129
+ const leftPaddingH = getVariableByName('cardCTA/left-wrap/padding/horizontal', modes)
130
+ const leftPaddingV = getVariableByName('cardCTA/left-wrap/padding/vertical', modes)
131
+ const leftGap = getVariableByName('cardCTA/left-wrap/gap', modes)
132
132
 
133
- const rightPaddingH = getVariableByName('cardCTA/right-wrap/padding/horizontal', modes) || 16
134
- const rightPaddingV = getVariableByName('cardCTA/right-wrap/padding/vertical', modes) || 22
133
+ const rightPaddingH = getVariableByName('cardCTA/right-wrap/padding/horizontal', modes)
134
+ const rightPaddingV = getVariableByName('cardCTA/right-wrap/padding/vertical', modes)
135
135
 
136
- const textGap = getVariableByName('cardCTA/text-wrap/gap', modes) || 6
136
+ const textGap = getVariableByName('cardCTA/text-wrap/gap', modes)
137
137
 
138
- const titleColor = getVariableByName('cardCTA/title/color', modes) || '#0c0d10'
139
- const titleFontFamily = getVariableByName('cardCTA/title/fontFamily', modes) || 'JioType Var'
140
- const titleFontSize = getVariableByName('cardCTA/title/fontSize', modes) || 16
141
- const titleLineHeight = getVariableByName('cardCTA/title/lineHeight', modes) || 18
142
- const titleFontWeightRaw = getVariableByName('cardCTA/title/fontWeight', modes) || 700
138
+ const titleColor = getVariableByName('cardCTA/title/color', modes)
139
+ const titleFontFamily = getVariableByName('cardCTA/title/fontFamily', modes)
140
+ const titleFontSize = getVariableByName('cardCTA/title/fontSize', modes)
141
+ const titleLineHeight = getVariableByName('cardCTA/title/lineHeight', modes)
142
+ const titleFontWeightRaw = getVariableByName('cardCTA/title/fontWeight', modes)
143
143
  const titleFontWeight = typeof titleFontWeightRaw === 'number' ? titleFontWeightRaw.toString() : titleFontWeightRaw
144
144
 
145
- const bodyColor = getVariableByName('cardCTA/body/color', modes) || '#13002d'
146
- const bodyFontFamily = getVariableByName('cardCTA/body/fontFamily', modes) || 'JioType Var'
147
- const bodyFontSize = getVariableByName('cardCTA/body/fontSize', modes) || 14
148
- const bodyLineHeight = getVariableByName('cardCTA/body/lineHeight', modes) || 17
149
- const bodyFontWeightRaw = getVariableByName('cardCTA/body/fontWeight', modes) || 400
145
+ const bodyColor = getVariableByName('cardCTA/body/color', modes)
146
+ const bodyFontFamily = getVariableByName('cardCTA/body/fontFamily', modes)
147
+ const bodyFontSize = getVariableByName('cardCTA/body/fontSize', modes)
148
+ const bodyLineHeight = getVariableByName('cardCTA/body/lineHeight', modes)
149
+ const bodyFontWeightRaw = getVariableByName('cardCTA/body/fontWeight', modes)
150
150
  const bodyFontWeight = typeof bodyFontWeightRaw === 'number' ? bodyFontWeightRaw.toString() : bodyFontWeightRaw
151
151
 
152
152
  const ratingContentGap = getOptionalVariableByName('cardCTA/rating/content/gap', modes, 12)
@@ -191,7 +191,7 @@ function CardCTA({
191
191
  const nonWrappingButtonLabel = effectiveButtonLabel.replace(/\s/g, '\u00A0')
192
192
  const [measuredButtonLabelWidth, setMeasuredButtonLabelWidth] = React.useState<number | null>(null)
193
193
 
194
- const buttonPaddingH = getVariableByName('button/padding/horizontal', buttonModes) || 20
194
+ const buttonPaddingH = getVariableByName('button/padding/horizontal', buttonModes)
195
195
  const buttonBorderSize = getVariableByName('button/border/size', buttonModes) ?? 1
196
196
  // Small safety pad so sub-pixel rounding between the measure pass and the
197
197
  // rendered glyph run can never clip the final character.