jfs-components 0.1.12 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (592) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/lib/commonjs/components/ActionFooter/ActionFooter.js +7 -24
  3. package/lib/commonjs/components/ActionTile/ActionTile.js +10 -10
  4. package/lib/commonjs/components/AmountInput/AmountInput.js +3 -3
  5. package/lib/commonjs/components/AreaLineChart/AreaLineChart.js +2 -2
  6. package/lib/commonjs/components/Attached/Attached.js +1 -1
  7. package/lib/commonjs/components/Avatar/Avatar.js +10 -10
  8. package/lib/commonjs/components/AvatarGroup/AvatarGroup.js +50 -29
  9. package/lib/commonjs/components/Badge/Badge.js +12 -12
  10. package/lib/commonjs/components/BenefitCard/BenefitCard.js +95 -21
  11. package/lib/commonjs/components/BottomNav/BottomNav.js +2 -2
  12. package/lib/commonjs/components/BottomNavItem/BottomNavItem.js +3 -3
  13. package/lib/commonjs/components/Button/Button.js +31 -19
  14. package/lib/commonjs/components/Card/Card.js +20 -20
  15. package/lib/commonjs/components/CardAdvisory/CardAdvisory.js +6 -6
  16. package/lib/commonjs/components/CardCTA/CardCTA.js +21 -21
  17. package/lib/commonjs/components/CardFeedback/CardFeedback.js +18 -18
  18. package/lib/commonjs/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
  19. package/lib/commonjs/components/CardInsight/CardInsight.js +1 -2
  20. package/lib/commonjs/components/Carousel/Carousel.js +18 -12
  21. package/lib/commonjs/components/CarouselCardAccounts/CarouselCardAccounts.js +75 -0
  22. package/lib/commonjs/components/Checkbox/Checkbox.js +6 -13
  23. package/lib/commonjs/components/ChipGroup/ChipGroup.js +1 -1
  24. package/lib/commonjs/components/ChipSelect/ChipSelect.js +11 -11
  25. package/lib/commonjs/components/CircularProgressBar/CircularProgressBar.js +5 -5
  26. package/lib/commonjs/components/CircularProgressBarDoted/CircularProgressBarDoted.js +8 -8
  27. package/lib/commonjs/components/CircularRating/CircularRating.js +3 -3
  28. package/lib/commonjs/components/CompareTable/CompareTable.js +16 -16
  29. package/lib/commonjs/components/DebitCard/DebitCard.js +18 -18
  30. package/lib/commonjs/components/Disclaimer/Disclaimer.js +5 -5
  31. package/lib/commonjs/components/DonutChart/DonutChart.js +11 -11
  32. package/lib/commonjs/components/Drawer/Drawer.js +60 -60
  33. package/lib/commonjs/components/Dropdown/Dropdown.js +22 -23
  34. package/lib/commonjs/components/DropdownInput/DropdownInput.js +10 -10
  35. package/lib/commonjs/components/EmptyState/EmptyState.js +14 -14
  36. package/lib/commonjs/components/FilterBar/FilterBar.js +2 -2
  37. package/lib/commonjs/components/Form/Form.js +3 -3
  38. package/lib/commonjs/components/FormField/FormField.js +6 -6
  39. package/lib/commonjs/components/FullscreenModal/FullscreenModal.js +24 -24
  40. package/lib/commonjs/components/Gauge/Gauge.js +8 -8
  41. package/lib/commonjs/components/HoldingsCard/HoldingsCard.js +10 -10
  42. package/lib/commonjs/components/Icon/Icon.js +6 -6
  43. package/lib/commonjs/components/IconCapsule/IconCapsule.js +7 -7
  44. package/lib/commonjs/components/InputSearch/InputSearch.js +9 -9
  45. package/lib/commonjs/components/InstitutionBadge/InstitutionBadge.js +3 -3
  46. package/lib/commonjs/components/ListGroup/ListGroup.js +8 -8
  47. package/lib/commonjs/components/ListItem/ListItem.js +10 -10
  48. package/lib/commonjs/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
  49. package/lib/commonjs/components/LottiePlayer/LottiePlayer.js +2 -2
  50. package/lib/commonjs/components/LottiePlayer/LottiePlayer.web.js +2 -2
  51. package/lib/commonjs/components/MediaCard/MediaCard.js +21 -21
  52. package/lib/commonjs/components/MessageField/MessageField.js +8 -8
  53. package/lib/commonjs/components/MoneyValue/MoneyValue.js +7 -7
  54. package/lib/commonjs/components/NavArrow/NavArrow.js +8 -8
  55. package/lib/commonjs/components/NoteInput/NoteInput.js +12 -12
  56. package/lib/commonjs/components/Nudge/Nudge.js +20 -20
  57. package/lib/commonjs/components/OTP/OTP.js +15 -15
  58. package/lib/commonjs/components/PageHero/PageHero.js +16 -16
  59. package/lib/commonjs/components/PaymentFeedback/PaymentFeedback.js +23 -23
  60. package/lib/commonjs/components/Popup/Popup.js +1 -1
  61. package/lib/commonjs/components/ProductMerchandisingCard/ProductMerchandisingCard.js +64 -60
  62. package/lib/commonjs/components/ProgressBadge/ProgressBadge.js +5 -5
  63. package/lib/commonjs/components/Radio/Radio.js +8 -8
  64. package/lib/commonjs/components/RechargeCard/RechargeCard.js +31 -31
  65. package/lib/commonjs/components/SavingsGoalSummary/SavingsGoalSummary.js +59 -12
  66. package/lib/commonjs/components/ScrollArea/ScrollArea.js +126 -0
  67. package/lib/commonjs/components/Section/Section.js +24 -24
  68. package/lib/commonjs/components/StatusHero/StatusHero.js +14 -14
  69. package/lib/commonjs/components/Stepper/Step.js +16 -16
  70. package/lib/commonjs/components/Stepper/StepLabel.js +16 -16
  71. package/lib/commonjs/components/Stepper/Stepper.js +3 -3
  72. package/lib/commonjs/components/SuggestiveSearch/SuggestiveSearch.js +10 -10
  73. package/lib/commonjs/components/SupportText/SupportText.js +6 -6
  74. package/lib/commonjs/components/SupportText/SupportTextIcon.js +2 -2
  75. package/lib/commonjs/components/Text/Text.js +14 -2
  76. package/lib/commonjs/components/TextInput/TextInput.js +14 -14
  77. package/lib/commonjs/components/TextSegment/TextSegment.js +14 -2
  78. package/lib/commonjs/components/ThreadHero/ThreadHero.js +17 -17
  79. package/lib/commonjs/components/Title/Title.js +38 -16
  80. package/lib/commonjs/components/Toast/Toast.js +15 -15
  81. package/lib/commonjs/components/Toggle/Toggle.js +3 -11
  82. package/lib/commonjs/components/Tooltip/Tooltip.js +12 -12
  83. package/lib/commonjs/components/TransactionBubble/TransactionBubble.js +13 -13
  84. package/lib/commonjs/components/TransactionDetails/TransactionDetails.js +10 -10
  85. package/lib/commonjs/components/TransactionStatus/TransactionStatus.js +9 -9
  86. package/lib/commonjs/components/UpiHandle/UpiHandle.js +15 -15
  87. package/lib/commonjs/components/index.js +14 -0
  88. package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
  89. package/lib/commonjs/design-tokens/figma-modes.generated.js +50 -42
  90. package/lib/commonjs/icons/components/Icon4g.js +19 -0
  91. package/lib/commonjs/icons/components/Icon4gltedata.js +19 -0
  92. package/lib/commonjs/icons/components/Icon5g.js +19 -0
  93. package/lib/commonjs/icons/components/Icon5gdoubleplus.js +19 -0
  94. package/lib/commonjs/icons/components/Icon5gplus.js +19 -0
  95. package/lib/commonjs/icons/components/IconAdblocker.js +19 -0
  96. package/lib/commonjs/icons/components/IconAdblockplus.js +19 -0
  97. package/lib/commonjs/icons/components/IconAnalytics.js +19 -0
  98. package/lib/commonjs/icons/components/IconAnalyticsdata.js +19 -0
  99. package/lib/commonjs/icons/components/IconAnalyticspiechart.js +19 -0
  100. package/lib/commonjs/icons/components/IconAnalyticspiecharttree.js +19 -0
  101. package/lib/commonjs/icons/components/IconAnalyticspiecharttwo.js +19 -0
  102. package/lib/commonjs/icons/components/IconCompoundinterest.js +19 -0
  103. package/lib/commonjs/icons/components/IconConsumptionaccounted.js +19 -0
  104. package/lib/commonjs/icons/components/IconConsumptionaverage.js +19 -0
  105. package/lib/commonjs/icons/components/IconConsumptionhigh.js +19 -0
  106. package/lib/commonjs/icons/components/IconConsumptionlow.js +19 -0
  107. package/lib/commonjs/icons/components/IconConsumptionunaccounted.js +19 -0
  108. package/lib/commonjs/icons/components/IconCsvdoc.js +19 -0
  109. package/lib/commonjs/icons/components/IconDatabase.js +19 -0
  110. package/lib/commonjs/icons/components/IconDigitalecosystem.js +19 -0
  111. package/lib/commonjs/icons/components/IconDigitalselfservice.js +19 -0
  112. package/lib/commonjs/icons/components/IconDistribution.js +19 -0
  113. package/lib/commonjs/icons/components/IconDocument.js +19 -0
  114. package/lib/commonjs/icons/components/IconDocumentdoc.js +19 -0
  115. package/lib/commonjs/icons/components/IconDocumentjpg.js +19 -0
  116. package/lib/commonjs/icons/components/IconDocumentodt.js +19 -0
  117. package/lib/commonjs/icons/components/IconDocumentpdf.js +19 -0
  118. package/lib/commonjs/icons/components/IconDocumentpng.js +19 -0
  119. package/lib/commonjs/icons/components/IconDocumentraw.js +19 -0
  120. package/lib/commonjs/icons/components/IconDocumentrtf.js +19 -0
  121. package/lib/commonjs/icons/components/IconDocumentsettings.js +19 -0
  122. package/lib/commonjs/icons/components/IconDocumenttif.js +19 -0
  123. package/lib/commonjs/icons/components/IconDocumenttxt.js +19 -0
  124. package/lib/commonjs/icons/components/IconDocumentunknown.js +19 -0
  125. package/lib/commonjs/icons/components/IconDocumentxls.js +19 -0
  126. package/lib/commonjs/icons/components/IconDocumentxlsx.js +19 -0
  127. package/lib/commonjs/icons/components/IconFilerequest.js +19 -0
  128. package/lib/commonjs/icons/components/IconFilesend.js +19 -0
  129. package/lib/commonjs/icons/components/IconFileshare.js +19 -0
  130. package/lib/commonjs/icons/components/IconFindinpage.js +19 -0
  131. package/lib/commonjs/icons/components/IconFolder.js +19 -0
  132. package/lib/commonjs/icons/components/IconFolderbookmarks.js +19 -0
  133. package/lib/commonjs/icons/components/IconFolderfavorites.js +19 -0
  134. package/lib/commonjs/icons/components/IconFolderlocked.js +19 -0
  135. package/lib/commonjs/icons/components/IconFoldermovefiles.js +19 -0
  136. package/lib/commonjs/icons/components/IconFolderpublic.js +19 -0
  137. package/lib/commonjs/icons/components/IconFolderrated.js +19 -0
  138. package/lib/commonjs/icons/components/IconFolderrequest.js +19 -0
  139. package/lib/commonjs/icons/components/IconForm.js +19 -0
  140. package/lib/commonjs/icons/components/IconFormadd.js +19 -0
  141. package/lib/commonjs/icons/components/IconForms.js +19 -0
  142. package/lib/commonjs/icons/components/IconGraphincreasing.js +19 -0
  143. package/lib/commonjs/icons/components/IconGraphlow.js +19 -0
  144. package/lib/commonjs/icons/components/IconGraphtable.js +19 -0
  145. package/lib/commonjs/icons/components/IconHealthreport.js +19 -0
  146. package/lib/commonjs/icons/components/IconHubmode.js +19 -0
  147. package/lib/commonjs/icons/components/IconInfrastructure.js +19 -0
  148. package/lib/commonjs/icons/components/IconInterestlow.js +19 -0
  149. package/lib/commonjs/icons/components/IconLte.js +19 -0
  150. package/lib/commonjs/icons/components/IconNetworkfuture.js +19 -0
  151. package/lib/commonjs/icons/components/IconPagesettings.js +19 -0
  152. package/lib/commonjs/icons/components/IconPptxdoc.js +19 -0
  153. package/lib/commonjs/icons/components/IconPreferrednumber.js +19 -0
  154. package/lib/commonjs/icons/components/IconPremiumnumber.js +19 -0
  155. package/lib/commonjs/icons/components/IconProjection.js +19 -0
  156. package/lib/commonjs/icons/components/IconRequest.js +19 -0
  157. package/lib/commonjs/icons/components/IconRoutestraffic.js +19 -0
  158. package/lib/commonjs/icons/components/IconTechnology.js +19 -0
  159. package/lib/commonjs/icons/components/IconVolte.js +19 -0
  160. package/lib/commonjs/icons/components/IconVonr.js +19 -0
  161. package/lib/commonjs/icons/components/IconVowifi.js +19 -0
  162. package/lib/commonjs/icons/components/IconVpndata.js +19 -0
  163. package/lib/commonjs/icons/components/index.js +803 -0
  164. package/lib/commonjs/icons/registry.js +2 -2
  165. package/lib/commonjs/utils/GlassFill/GlassFill.js +69 -73
  166. package/lib/commonjs/utils/index.js +25 -0
  167. package/lib/commonjs/utils/react-utils.js +62 -0
  168. package/lib/commonjs/utils/shadow.js +200 -0
  169. package/lib/module/components/ActionFooter/ActionFooter.js +7 -24
  170. package/lib/module/components/ActionTile/ActionTile.js +10 -10
  171. package/lib/module/components/AmountInput/AmountInput.js +3 -3
  172. package/lib/module/components/AreaLineChart/AreaLineChart.js +2 -2
  173. package/lib/module/components/Attached/Attached.js +1 -1
  174. package/lib/module/components/Avatar/Avatar.js +10 -10
  175. package/lib/module/components/AvatarGroup/AvatarGroup.js +52 -30
  176. package/lib/module/components/Badge/Badge.js +12 -12
  177. package/lib/module/components/BenefitCard/BenefitCard.js +95 -21
  178. package/lib/module/components/BottomNav/BottomNav.js +2 -2
  179. package/lib/module/components/BottomNavItem/BottomNavItem.js +3 -3
  180. package/lib/module/components/Button/Button.js +32 -20
  181. package/lib/module/components/Card/Card.js +20 -20
  182. package/lib/module/components/CardAdvisory/CardAdvisory.js +6 -6
  183. package/lib/module/components/CardCTA/CardCTA.js +21 -21
  184. package/lib/module/components/CardFeedback/CardFeedback.js +18 -18
  185. package/lib/module/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
  186. package/lib/module/components/CardInsight/CardInsight.js +1 -2
  187. package/lib/module/components/Carousel/Carousel.js +18 -12
  188. package/lib/module/components/CarouselCardAccounts/CarouselCardAccounts.js +71 -0
  189. package/lib/module/components/Checkbox/Checkbox.js +2 -9
  190. package/lib/module/components/ChipGroup/ChipGroup.js +1 -1
  191. package/lib/module/components/ChipSelect/ChipSelect.js +11 -11
  192. package/lib/module/components/CircularProgressBar/CircularProgressBar.js +5 -5
  193. package/lib/module/components/CircularProgressBarDoted/CircularProgressBarDoted.js +8 -8
  194. package/lib/module/components/CircularRating/CircularRating.js +3 -3
  195. package/lib/module/components/CompareTable/CompareTable.js +16 -16
  196. package/lib/module/components/DebitCard/DebitCard.js +18 -18
  197. package/lib/module/components/Disclaimer/Disclaimer.js +5 -5
  198. package/lib/module/components/DonutChart/DonutChart.js +11 -11
  199. package/lib/module/components/Drawer/Drawer.js +60 -60
  200. package/lib/module/components/Dropdown/Dropdown.js +22 -23
  201. package/lib/module/components/DropdownInput/DropdownInput.js +10 -10
  202. package/lib/module/components/EmptyState/EmptyState.js +14 -14
  203. package/lib/module/components/FilterBar/FilterBar.js +2 -2
  204. package/lib/module/components/Form/Form.js +3 -3
  205. package/lib/module/components/FormField/FormField.js +6 -6
  206. package/lib/module/components/FullscreenModal/FullscreenModal.js +24 -24
  207. package/lib/module/components/Gauge/Gauge.js +8 -8
  208. package/lib/module/components/HoldingsCard/HoldingsCard.js +10 -10
  209. package/lib/module/components/Icon/Icon.js +6 -6
  210. package/lib/module/components/IconCapsule/IconCapsule.js +7 -7
  211. package/lib/module/components/InputSearch/InputSearch.js +9 -9
  212. package/lib/module/components/InstitutionBadge/InstitutionBadge.js +3 -3
  213. package/lib/module/components/ListGroup/ListGroup.js +8 -8
  214. package/lib/module/components/ListItem/ListItem.js +10 -10
  215. package/lib/module/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
  216. package/lib/module/components/LottiePlayer/LottiePlayer.js +2 -2
  217. package/lib/module/components/LottiePlayer/LottiePlayer.web.js +2 -2
  218. package/lib/module/components/MediaCard/MediaCard.js +21 -21
  219. package/lib/module/components/MessageField/MessageField.js +8 -8
  220. package/lib/module/components/MoneyValue/MoneyValue.js +7 -7
  221. package/lib/module/components/NavArrow/NavArrow.js +8 -8
  222. package/lib/module/components/NoteInput/NoteInput.js +12 -12
  223. package/lib/module/components/Nudge/Nudge.js +20 -20
  224. package/lib/module/components/OTP/OTP.js +15 -15
  225. package/lib/module/components/PageHero/PageHero.js +16 -16
  226. package/lib/module/components/PaymentFeedback/PaymentFeedback.js +23 -23
  227. package/lib/module/components/Popup/Popup.js +1 -1
  228. package/lib/module/components/ProductMerchandisingCard/ProductMerchandisingCard.js +66 -62
  229. package/lib/module/components/ProgressBadge/ProgressBadge.js +5 -5
  230. package/lib/module/components/Radio/Radio.js +9 -9
  231. package/lib/module/components/RechargeCard/RechargeCard.js +31 -31
  232. package/lib/module/components/SavingsGoalSummary/SavingsGoalSummary.js +60 -13
  233. package/lib/module/components/ScrollArea/ScrollArea.js +121 -0
  234. package/lib/module/components/Section/Section.js +24 -24
  235. package/lib/module/components/StatusHero/StatusHero.js +14 -14
  236. package/lib/module/components/Stepper/Step.js +16 -16
  237. package/lib/module/components/Stepper/StepLabel.js +16 -16
  238. package/lib/module/components/Stepper/Stepper.js +3 -3
  239. package/lib/module/components/SuggestiveSearch/SuggestiveSearch.js +10 -10
  240. package/lib/module/components/SupportText/SupportText.js +6 -6
  241. package/lib/module/components/SupportText/SupportTextIcon.js +2 -2
  242. package/lib/module/components/Text/Text.js +15 -3
  243. package/lib/module/components/TextInput/TextInput.js +14 -14
  244. package/lib/module/components/TextSegment/TextSegment.js +15 -3
  245. package/lib/module/components/ThreadHero/ThreadHero.js +17 -17
  246. package/lib/module/components/Title/Title.js +39 -17
  247. package/lib/module/components/Toast/Toast.js +15 -15
  248. package/lib/module/components/Toggle/Toggle.js +4 -12
  249. package/lib/module/components/Tooltip/Tooltip.js +12 -12
  250. package/lib/module/components/TransactionBubble/TransactionBubble.js +13 -13
  251. package/lib/module/components/TransactionDetails/TransactionDetails.js +10 -10
  252. package/lib/module/components/TransactionStatus/TransactionStatus.js +9 -9
  253. package/lib/module/components/UpiHandle/UpiHandle.js +15 -15
  254. package/lib/module/components/index.js +2 -0
  255. package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
  256. package/lib/module/design-tokens/figma-modes.generated.js +50 -42
  257. package/lib/module/icons/components/Icon4g.js +12 -0
  258. package/lib/module/icons/components/Icon4gltedata.js +12 -0
  259. package/lib/module/icons/components/Icon5g.js +12 -0
  260. package/lib/module/icons/components/Icon5gdoubleplus.js +12 -0
  261. package/lib/module/icons/components/Icon5gplus.js +12 -0
  262. package/lib/module/icons/components/IconAdblocker.js +12 -0
  263. package/lib/module/icons/components/IconAdblockplus.js +12 -0
  264. package/lib/module/icons/components/IconAnalytics.js +12 -0
  265. package/lib/module/icons/components/IconAnalyticsdata.js +12 -0
  266. package/lib/module/icons/components/IconAnalyticspiechart.js +12 -0
  267. package/lib/module/icons/components/IconAnalyticspiecharttree.js +12 -0
  268. package/lib/module/icons/components/IconAnalyticspiecharttwo.js +12 -0
  269. package/lib/module/icons/components/IconCompoundinterest.js +12 -0
  270. package/lib/module/icons/components/IconConsumptionaccounted.js +12 -0
  271. package/lib/module/icons/components/IconConsumptionaverage.js +12 -0
  272. package/lib/module/icons/components/IconConsumptionhigh.js +12 -0
  273. package/lib/module/icons/components/IconConsumptionlow.js +12 -0
  274. package/lib/module/icons/components/IconConsumptionunaccounted.js +12 -0
  275. package/lib/module/icons/components/IconCsvdoc.js +12 -0
  276. package/lib/module/icons/components/IconDatabase.js +12 -0
  277. package/lib/module/icons/components/IconDigitalecosystem.js +12 -0
  278. package/lib/module/icons/components/IconDigitalselfservice.js +12 -0
  279. package/lib/module/icons/components/IconDistribution.js +12 -0
  280. package/lib/module/icons/components/IconDocument.js +12 -0
  281. package/lib/module/icons/components/IconDocumentdoc.js +12 -0
  282. package/lib/module/icons/components/IconDocumentjpg.js +12 -0
  283. package/lib/module/icons/components/IconDocumentodt.js +12 -0
  284. package/lib/module/icons/components/IconDocumentpdf.js +12 -0
  285. package/lib/module/icons/components/IconDocumentpng.js +12 -0
  286. package/lib/module/icons/components/IconDocumentraw.js +12 -0
  287. package/lib/module/icons/components/IconDocumentrtf.js +12 -0
  288. package/lib/module/icons/components/IconDocumentsettings.js +12 -0
  289. package/lib/module/icons/components/IconDocumenttif.js +12 -0
  290. package/lib/module/icons/components/IconDocumenttxt.js +12 -0
  291. package/lib/module/icons/components/IconDocumentunknown.js +12 -0
  292. package/lib/module/icons/components/IconDocumentxls.js +12 -0
  293. package/lib/module/icons/components/IconDocumentxlsx.js +12 -0
  294. package/lib/module/icons/components/IconFilerequest.js +12 -0
  295. package/lib/module/icons/components/IconFilesend.js +12 -0
  296. package/lib/module/icons/components/IconFileshare.js +12 -0
  297. package/lib/module/icons/components/IconFindinpage.js +12 -0
  298. package/lib/module/icons/components/IconFolder.js +12 -0
  299. package/lib/module/icons/components/IconFolderbookmarks.js +12 -0
  300. package/lib/module/icons/components/IconFolderfavorites.js +12 -0
  301. package/lib/module/icons/components/IconFolderlocked.js +12 -0
  302. package/lib/module/icons/components/IconFoldermovefiles.js +12 -0
  303. package/lib/module/icons/components/IconFolderpublic.js +12 -0
  304. package/lib/module/icons/components/IconFolderrated.js +12 -0
  305. package/lib/module/icons/components/IconFolderrequest.js +12 -0
  306. package/lib/module/icons/components/IconForm.js +12 -0
  307. package/lib/module/icons/components/IconFormadd.js +12 -0
  308. package/lib/module/icons/components/IconForms.js +12 -0
  309. package/lib/module/icons/components/IconGraphincreasing.js +12 -0
  310. package/lib/module/icons/components/IconGraphlow.js +12 -0
  311. package/lib/module/icons/components/IconGraphtable.js +12 -0
  312. package/lib/module/icons/components/IconHealthreport.js +12 -0
  313. package/lib/module/icons/components/IconHubmode.js +12 -0
  314. package/lib/module/icons/components/IconInfrastructure.js +12 -0
  315. package/lib/module/icons/components/IconInterestlow.js +12 -0
  316. package/lib/module/icons/components/IconLte.js +12 -0
  317. package/lib/module/icons/components/IconNetworkfuture.js +12 -0
  318. package/lib/module/icons/components/IconPagesettings.js +12 -0
  319. package/lib/module/icons/components/IconPptxdoc.js +12 -0
  320. package/lib/module/icons/components/IconPreferrednumber.js +12 -0
  321. package/lib/module/icons/components/IconPremiumnumber.js +12 -0
  322. package/lib/module/icons/components/IconProjection.js +12 -0
  323. package/lib/module/icons/components/IconRequest.js +12 -0
  324. package/lib/module/icons/components/IconRoutestraffic.js +12 -0
  325. package/lib/module/icons/components/IconTechnology.js +12 -0
  326. package/lib/module/icons/components/IconVolte.js +12 -0
  327. package/lib/module/icons/components/IconVonr.js +12 -0
  328. package/lib/module/icons/components/IconVowifi.js +12 -0
  329. package/lib/module/icons/components/IconVpndata.js +12 -0
  330. package/lib/module/icons/components/index.js +73 -0
  331. package/lib/module/icons/registry.js +2 -2
  332. package/lib/module/utils/GlassFill/GlassFill.js +69 -72
  333. package/lib/module/utils/index.js +2 -1
  334. package/lib/module/utils/react-utils.js +61 -0
  335. package/lib/module/utils/shadow.js +194 -0
  336. package/lib/typescript/src/components/BenefitCard/BenefitCard.d.ts +33 -4
  337. package/lib/typescript/src/components/Carousel/Carousel.d.ts +11 -1
  338. package/lib/typescript/src/components/CarouselCardAccounts/CarouselCardAccounts.d.ts +57 -0
  339. package/lib/typescript/src/components/SavingsGoalSummary/SavingsGoalSummary.d.ts +11 -1
  340. package/lib/typescript/src/components/ScrollArea/ScrollArea.d.ts +77 -0
  341. package/lib/typescript/src/components/Text/Text.d.ts +12 -3
  342. package/lib/typescript/src/components/TextSegment/TextSegment.d.ts +12 -3
  343. package/lib/typescript/src/components/Title/Title.d.ts +12 -2
  344. package/lib/typescript/src/components/index.d.ts +2 -0
  345. package/lib/typescript/src/design-tokens/figma-modes.generated.d.ts +23 -15
  346. package/lib/typescript/src/icons/components/Icon4g.d.ts +3 -0
  347. package/lib/typescript/src/icons/components/Icon4gltedata.d.ts +3 -0
  348. package/lib/typescript/src/icons/components/Icon5g.d.ts +3 -0
  349. package/lib/typescript/src/icons/components/Icon5gdoubleplus.d.ts +3 -0
  350. package/lib/typescript/src/icons/components/Icon5gplus.d.ts +3 -0
  351. package/lib/typescript/src/icons/components/IconAdblocker.d.ts +3 -0
  352. package/lib/typescript/src/icons/components/IconAdblockplus.d.ts +3 -0
  353. package/lib/typescript/src/icons/components/IconAnalytics.d.ts +3 -0
  354. package/lib/typescript/src/icons/components/IconAnalyticsdata.d.ts +3 -0
  355. package/lib/typescript/src/icons/components/IconAnalyticspiechart.d.ts +3 -0
  356. package/lib/typescript/src/icons/components/IconAnalyticspiecharttree.d.ts +3 -0
  357. package/lib/typescript/src/icons/components/IconAnalyticspiecharttwo.d.ts +3 -0
  358. package/lib/typescript/src/icons/components/IconCompoundinterest.d.ts +3 -0
  359. package/lib/typescript/src/icons/components/IconConsumptionaccounted.d.ts +3 -0
  360. package/lib/typescript/src/icons/components/IconConsumptionaverage.d.ts +3 -0
  361. package/lib/typescript/src/icons/components/IconConsumptionhigh.d.ts +3 -0
  362. package/lib/typescript/src/icons/components/IconConsumptionlow.d.ts +3 -0
  363. package/lib/typescript/src/icons/components/IconConsumptionunaccounted.d.ts +3 -0
  364. package/lib/typescript/src/icons/components/IconCsvdoc.d.ts +3 -0
  365. package/lib/typescript/src/icons/components/IconDatabase.d.ts +3 -0
  366. package/lib/typescript/src/icons/components/IconDigitalecosystem.d.ts +3 -0
  367. package/lib/typescript/src/icons/components/IconDigitalselfservice.d.ts +3 -0
  368. package/lib/typescript/src/icons/components/IconDistribution.d.ts +3 -0
  369. package/lib/typescript/src/icons/components/IconDocument.d.ts +3 -0
  370. package/lib/typescript/src/icons/components/IconDocumentdoc.d.ts +3 -0
  371. package/lib/typescript/src/icons/components/IconDocumentjpg.d.ts +3 -0
  372. package/lib/typescript/src/icons/components/IconDocumentodt.d.ts +3 -0
  373. package/lib/typescript/src/icons/components/IconDocumentpdf.d.ts +3 -0
  374. package/lib/typescript/src/icons/components/IconDocumentpng.d.ts +3 -0
  375. package/lib/typescript/src/icons/components/IconDocumentraw.d.ts +3 -0
  376. package/lib/typescript/src/icons/components/IconDocumentrtf.d.ts +3 -0
  377. package/lib/typescript/src/icons/components/IconDocumentsettings.d.ts +3 -0
  378. package/lib/typescript/src/icons/components/IconDocumenttif.d.ts +3 -0
  379. package/lib/typescript/src/icons/components/IconDocumenttxt.d.ts +3 -0
  380. package/lib/typescript/src/icons/components/IconDocumentunknown.d.ts +3 -0
  381. package/lib/typescript/src/icons/components/IconDocumentxls.d.ts +3 -0
  382. package/lib/typescript/src/icons/components/IconDocumentxlsx.d.ts +3 -0
  383. package/lib/typescript/src/icons/components/IconFilerequest.d.ts +3 -0
  384. package/lib/typescript/src/icons/components/IconFilesend.d.ts +3 -0
  385. package/lib/typescript/src/icons/components/IconFileshare.d.ts +3 -0
  386. package/lib/typescript/src/icons/components/IconFindinpage.d.ts +3 -0
  387. package/lib/typescript/src/icons/components/IconFolder.d.ts +3 -0
  388. package/lib/typescript/src/icons/components/IconFolderbookmarks.d.ts +3 -0
  389. package/lib/typescript/src/icons/components/IconFolderfavorites.d.ts +3 -0
  390. package/lib/typescript/src/icons/components/IconFolderlocked.d.ts +3 -0
  391. package/lib/typescript/src/icons/components/IconFoldermovefiles.d.ts +3 -0
  392. package/lib/typescript/src/icons/components/IconFolderpublic.d.ts +3 -0
  393. package/lib/typescript/src/icons/components/IconFolderrated.d.ts +3 -0
  394. package/lib/typescript/src/icons/components/IconFolderrequest.d.ts +3 -0
  395. package/lib/typescript/src/icons/components/IconForm.d.ts +3 -0
  396. package/lib/typescript/src/icons/components/IconFormadd.d.ts +3 -0
  397. package/lib/typescript/src/icons/components/IconForms.d.ts +3 -0
  398. package/lib/typescript/src/icons/components/IconGraphincreasing.d.ts +3 -0
  399. package/lib/typescript/src/icons/components/IconGraphlow.d.ts +3 -0
  400. package/lib/typescript/src/icons/components/IconGraphtable.d.ts +3 -0
  401. package/lib/typescript/src/icons/components/IconHealthreport.d.ts +3 -0
  402. package/lib/typescript/src/icons/components/IconHubmode.d.ts +3 -0
  403. package/lib/typescript/src/icons/components/IconInfrastructure.d.ts +3 -0
  404. package/lib/typescript/src/icons/components/IconInterestlow.d.ts +3 -0
  405. package/lib/typescript/src/icons/components/IconLte.d.ts +3 -0
  406. package/lib/typescript/src/icons/components/IconNetworkfuture.d.ts +3 -0
  407. package/lib/typescript/src/icons/components/IconPagesettings.d.ts +3 -0
  408. package/lib/typescript/src/icons/components/IconPptxdoc.d.ts +3 -0
  409. package/lib/typescript/src/icons/components/IconPreferrednumber.d.ts +3 -0
  410. package/lib/typescript/src/icons/components/IconPremiumnumber.d.ts +3 -0
  411. package/lib/typescript/src/icons/components/IconProjection.d.ts +3 -0
  412. package/lib/typescript/src/icons/components/IconRequest.d.ts +3 -0
  413. package/lib/typescript/src/icons/components/IconRoutestraffic.d.ts +3 -0
  414. package/lib/typescript/src/icons/components/IconTechnology.d.ts +3 -0
  415. package/lib/typescript/src/icons/components/IconVolte.d.ts +3 -0
  416. package/lib/typescript/src/icons/components/IconVonr.d.ts +3 -0
  417. package/lib/typescript/src/icons/components/IconVowifi.d.ts +3 -0
  418. package/lib/typescript/src/icons/components/IconVpndata.d.ts +3 -0
  419. package/lib/typescript/src/icons/components/index.d.ts +73 -0
  420. package/lib/typescript/src/icons/registry.d.ts +1 -1
  421. package/lib/typescript/src/utils/GlassFill/GlassFill.d.ts +11 -4
  422. package/lib/typescript/src/utils/index.d.ts +2 -0
  423. package/lib/typescript/src/utils/react-utils.d.ts +40 -1
  424. package/lib/typescript/src/utils/shadow.d.ts +72 -0
  425. package/package.json +2 -2
  426. package/src/components/ActionFooter/ActionFooter.tsx +8 -26
  427. package/src/components/ActionTile/ActionTile.tsx +10 -10
  428. package/src/components/AmountInput/AmountInput.tsx +3 -3
  429. package/src/components/AreaLineChart/AreaLineChart.tsx +2 -2
  430. package/src/components/Attached/Attached.tsx +1 -1
  431. package/src/components/Avatar/Avatar.tsx +10 -10
  432. package/src/components/AvatarGroup/AvatarGroup.tsx +53 -27
  433. package/src/components/Badge/Badge.tsx +12 -13
  434. package/src/components/BenefitCard/BenefitCard.tsx +120 -27
  435. package/src/components/BottomNav/BottomNav.tsx +2 -2
  436. package/src/components/BottomNavItem/BottomNavItem.tsx +3 -3
  437. package/src/components/Button/Button.tsx +30 -20
  438. package/src/components/Card/Card.tsx +20 -20
  439. package/src/components/CardAdvisory/CardAdvisory.tsx +6 -6
  440. package/src/components/CardCTA/CardCTA.tsx +21 -21
  441. package/src/components/CardFeedback/CardFeedback.tsx +18 -18
  442. package/src/components/CardFinancialCondition/CardFinancialCondition.tsx +7 -10
  443. package/src/components/CardInsight/CardInsight.tsx +1 -3
  444. package/src/components/Carousel/Carousel.tsx +29 -12
  445. package/src/components/CarouselCardAccounts/CarouselCardAccounts.tsx +113 -0
  446. package/src/components/Checkbox/Checkbox.tsx +2 -8
  447. package/src/components/ChipGroup/ChipGroup.tsx +1 -1
  448. package/src/components/ChipSelect/ChipSelect.tsx +11 -11
  449. package/src/components/CircularProgressBar/CircularProgressBar.tsx +5 -5
  450. package/src/components/CircularProgressBarDoted/CircularProgressBarDoted.tsx +8 -8
  451. package/src/components/CircularRating/CircularRating.tsx +3 -3
  452. package/src/components/CompareTable/CompareTable.tsx +16 -16
  453. package/src/components/DebitCard/DebitCard.tsx +22 -22
  454. package/src/components/Disclaimer/Disclaimer.tsx +5 -5
  455. package/src/components/DonutChart/DonutChart.tsx +11 -45
  456. package/src/components/Drawer/Drawer.tsx +80 -71
  457. package/src/components/Dropdown/Dropdown.tsx +23 -28
  458. package/src/components/DropdownInput/DropdownInput.tsx +10 -17
  459. package/src/components/EmptyState/EmptyState.tsx +14 -14
  460. package/src/components/FilterBar/FilterBar.tsx +2 -2
  461. package/src/components/Form/Form.tsx +3 -3
  462. package/src/components/FormField/FormField.tsx +6 -11
  463. package/src/components/FullscreenModal/FullscreenModal.tsx +24 -24
  464. package/src/components/Gauge/Gauge.tsx +8 -8
  465. package/src/components/HoldingsCard/HoldingsCard.tsx +10 -10
  466. package/src/components/Icon/Icon.tsx +6 -6
  467. package/src/components/IconCapsule/IconCapsule.tsx +7 -7
  468. package/src/components/InputSearch/InputSearch.tsx +9 -9
  469. package/src/components/InstitutionBadge/InstitutionBadge.tsx +3 -6
  470. package/src/components/ListGroup/ListGroup.tsx +8 -8
  471. package/src/components/ListItem/ListItem.tsx +10 -10
  472. package/src/components/LottieIntroBlock/LottieIntroBlock.tsx +13 -16
  473. package/src/components/LottiePlayer/LottiePlayer.tsx +2 -2
  474. package/src/components/LottiePlayer/LottiePlayer.web.tsx +2 -2
  475. package/src/components/MediaCard/MediaCard.tsx +21 -21
  476. package/src/components/MessageField/MessageField.tsx +8 -16
  477. package/src/components/MoneyValue/MoneyValue.tsx +7 -7
  478. package/src/components/NavArrow/NavArrow.tsx +8 -8
  479. package/src/components/NoteInput/NoteInput.tsx +12 -12
  480. package/src/components/Nudge/Nudge.tsx +20 -20
  481. package/src/components/OTP/OTP.tsx +16 -16
  482. package/src/components/PageHero/PageHero.tsx +16 -16
  483. package/src/components/PaymentFeedback/PaymentFeedback.tsx +27 -27
  484. package/src/components/Popup/Popup.tsx +1 -1
  485. package/src/components/ProductMerchandisingCard/ProductMerchandisingCard.tsx +76 -47
  486. package/src/components/ProgressBadge/ProgressBadge.tsx +5 -5
  487. package/src/components/Radio/Radio.tsx +8 -9
  488. package/src/components/RechargeCard/RechargeCard.tsx +31 -31
  489. package/src/components/SavingsGoalSummary/SavingsGoalSummary.tsx +105 -13
  490. package/src/components/ScrollArea/ScrollArea.tsx +200 -0
  491. package/src/components/Section/Section.tsx +26 -26
  492. package/src/components/StatusHero/StatusHero.tsx +14 -14
  493. package/src/components/Stepper/Step.tsx +16 -18
  494. package/src/components/Stepper/StepLabel.tsx +16 -27
  495. package/src/components/Stepper/Stepper.tsx +3 -4
  496. package/src/components/SuggestiveSearch/SuggestiveSearch.tsx +10 -20
  497. package/src/components/SupportText/SupportText.tsx +6 -6
  498. package/src/components/SupportText/SupportTextIcon.tsx +2 -2
  499. package/src/components/Text/Text.tsx +23 -5
  500. package/src/components/TextInput/TextInput.tsx +14 -14
  501. package/src/components/TextSegment/TextSegment.tsx +22 -4
  502. package/src/components/ThreadHero/ThreadHero.tsx +17 -17
  503. package/src/components/Title/Title.tsx +44 -18
  504. package/src/components/Toast/Toast.tsx +15 -15
  505. package/src/components/Toggle/Toggle.tsx +5 -10
  506. package/src/components/Tooltip/Tooltip.tsx +12 -12
  507. package/src/components/TransactionBubble/TransactionBubble.tsx +15 -15
  508. package/src/components/TransactionDetails/TransactionDetails.tsx +10 -10
  509. package/src/components/TransactionStatus/TransactionStatus.tsx +9 -9
  510. package/src/components/UpiHandle/UpiHandle.tsx +15 -15
  511. package/src/components/index.ts +2 -0
  512. package/src/design-tokens/Coin Variables-variables-full.json +1 -1
  513. package/src/design-tokens/figma-modes.generated.ts +50 -42
  514. package/src/icons/components/Icon4g.tsx +11 -0
  515. package/src/icons/components/Icon4gltedata.tsx +11 -0
  516. package/src/icons/components/Icon5g.tsx +11 -0
  517. package/src/icons/components/Icon5gdoubleplus.tsx +11 -0
  518. package/src/icons/components/Icon5gplus.tsx +11 -0
  519. package/src/icons/components/IconAdblocker.tsx +11 -0
  520. package/src/icons/components/IconAdblockplus.tsx +11 -0
  521. package/src/icons/components/IconAnalytics.tsx +11 -0
  522. package/src/icons/components/IconAnalyticsdata.tsx +11 -0
  523. package/src/icons/components/IconAnalyticspiechart.tsx +11 -0
  524. package/src/icons/components/IconAnalyticspiecharttree.tsx +11 -0
  525. package/src/icons/components/IconAnalyticspiecharttwo.tsx +11 -0
  526. package/src/icons/components/IconCompoundinterest.tsx +11 -0
  527. package/src/icons/components/IconConsumptionaccounted.tsx +11 -0
  528. package/src/icons/components/IconConsumptionaverage.tsx +11 -0
  529. package/src/icons/components/IconConsumptionhigh.tsx +11 -0
  530. package/src/icons/components/IconConsumptionlow.tsx +11 -0
  531. package/src/icons/components/IconConsumptionunaccounted.tsx +11 -0
  532. package/src/icons/components/IconCsvdoc.tsx +11 -0
  533. package/src/icons/components/IconDatabase.tsx +11 -0
  534. package/src/icons/components/IconDigitalecosystem.tsx +11 -0
  535. package/src/icons/components/IconDigitalselfservice.tsx +11 -0
  536. package/src/icons/components/IconDistribution.tsx +11 -0
  537. package/src/icons/components/IconDocument.tsx +11 -0
  538. package/src/icons/components/IconDocumentdoc.tsx +11 -0
  539. package/src/icons/components/IconDocumentjpg.tsx +11 -0
  540. package/src/icons/components/IconDocumentodt.tsx +11 -0
  541. package/src/icons/components/IconDocumentpdf.tsx +11 -0
  542. package/src/icons/components/IconDocumentpng.tsx +11 -0
  543. package/src/icons/components/IconDocumentraw.tsx +11 -0
  544. package/src/icons/components/IconDocumentrtf.tsx +11 -0
  545. package/src/icons/components/IconDocumentsettings.tsx +11 -0
  546. package/src/icons/components/IconDocumenttif.tsx +11 -0
  547. package/src/icons/components/IconDocumenttxt.tsx +11 -0
  548. package/src/icons/components/IconDocumentunknown.tsx +11 -0
  549. package/src/icons/components/IconDocumentxls.tsx +11 -0
  550. package/src/icons/components/IconDocumentxlsx.tsx +11 -0
  551. package/src/icons/components/IconFilerequest.tsx +11 -0
  552. package/src/icons/components/IconFilesend.tsx +11 -0
  553. package/src/icons/components/IconFileshare.tsx +11 -0
  554. package/src/icons/components/IconFindinpage.tsx +11 -0
  555. package/src/icons/components/IconFolder.tsx +11 -0
  556. package/src/icons/components/IconFolderbookmarks.tsx +11 -0
  557. package/src/icons/components/IconFolderfavorites.tsx +11 -0
  558. package/src/icons/components/IconFolderlocked.tsx +11 -0
  559. package/src/icons/components/IconFoldermovefiles.tsx +11 -0
  560. package/src/icons/components/IconFolderpublic.tsx +11 -0
  561. package/src/icons/components/IconFolderrated.tsx +11 -0
  562. package/src/icons/components/IconFolderrequest.tsx +11 -0
  563. package/src/icons/components/IconForm.tsx +11 -0
  564. package/src/icons/components/IconFormadd.tsx +11 -0
  565. package/src/icons/components/IconForms.tsx +11 -0
  566. package/src/icons/components/IconGraphincreasing.tsx +11 -0
  567. package/src/icons/components/IconGraphlow.tsx +11 -0
  568. package/src/icons/components/IconGraphtable.tsx +11 -0
  569. package/src/icons/components/IconHealthreport.tsx +11 -0
  570. package/src/icons/components/IconHubmode.tsx +11 -0
  571. package/src/icons/components/IconInfrastructure.tsx +11 -0
  572. package/src/icons/components/IconInterestlow.tsx +11 -0
  573. package/src/icons/components/IconLte.tsx +11 -0
  574. package/src/icons/components/IconNetworkfuture.tsx +11 -0
  575. package/src/icons/components/IconPagesettings.tsx +11 -0
  576. package/src/icons/components/IconPptxdoc.tsx +11 -0
  577. package/src/icons/components/IconPreferrednumber.tsx +11 -0
  578. package/src/icons/components/IconPremiumnumber.tsx +11 -0
  579. package/src/icons/components/IconProjection.tsx +11 -0
  580. package/src/icons/components/IconRequest.tsx +11 -0
  581. package/src/icons/components/IconRoutestraffic.tsx +11 -0
  582. package/src/icons/components/IconTechnology.tsx +11 -0
  583. package/src/icons/components/IconVolte.tsx +11 -0
  584. package/src/icons/components/IconVonr.tsx +11 -0
  585. package/src/icons/components/IconVowifi.tsx +11 -0
  586. package/src/icons/components/IconVpndata.tsx +11 -0
  587. package/src/icons/components/index.ts +73 -0
  588. package/src/icons/registry.ts +293 -1
  589. package/src/utils/GlassFill/GlassFill.tsx +59 -56
  590. package/src/utils/index.ts +2 -0
  591. package/src/utils/react-utils.ts +72 -1
  592. package/src/utils/shadow.ts +219 -0
@@ -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.
@@ -41,11 +41,11 @@ export function CardFeedback({
41
41
  ...propModes,
42
42
  };
43
43
  // Container Tokens
44
- const backgroundColor = getVariableByName('cardFeedback/background', modes) || '#dbf0d9';
45
- const radius = parseFloat(getVariableByName('cardFeedback/radius', modes) || '12');
46
- const gap = parseFloat(getVariableByName('cardFeedback/gap', modes) || '8');
47
- const paddingHorizontal = parseFloat(getVariableByName('cardFeedback/padding/horizontal', modes) || '12');
48
- const paddingVertical = parseFloat(getVariableByName('cardFeedback/padding/vertical', modes) || '12');
44
+ const backgroundColor = getVariableByName('cardFeedback/background', modes);
45
+ const radius = parseFloat(getVariableByName('cardFeedback/radius', modes));
46
+ const gap = parseFloat(getVariableByName('cardFeedback/gap', modes));
47
+ const paddingHorizontal = parseFloat(getVariableByName('cardFeedback/padding/horizontal', modes));
48
+ const paddingVertical = parseFloat(getVariableByName('cardFeedback/padding/vertical', modes));
49
49
 
50
50
  const containerStyle: ViewStyle = {
51
51
  backgroundColor,
@@ -80,7 +80,7 @@ export function Icon({ children, style, modes: propModes, icon }: { children?: R
80
80
  const context = useContext(CardFeedbackContext);
81
81
  const modes = propModes || context.modes || {};
82
82
 
83
- const size = parseFloat(getVariableByName('cardFeedback/icon/size', modes) || '20');
83
+ const size = parseFloat(getVariableByName('cardFeedback/icon/size', modes));
84
84
  // Color for the icon itself
85
85
  const color = getVariableByName('appearanceFeedback/cardFeedback/icon/color', modes);
86
86
  console.log(color);
@@ -120,7 +120,7 @@ export function Content({ children, style, modes: propModes }: { children?: Reac
120
120
  const context = useContext(CardFeedbackContext);
121
121
  const modes = propModes || context.modes || {};
122
122
 
123
- const gap = parseFloat(getVariableByName('cardFeedback/text/gap', modes) || '8');
123
+ const gap = parseFloat(getVariableByName('cardFeedback/text/gap', modes));
124
124
 
125
125
  // Pass modes to children (Title, Body, etc.)
126
126
  const childrenWithModes = React.Children.map(children, child => {
@@ -145,11 +145,11 @@ export function Title({ children, style, modes: propModes }: { children?: React.
145
145
  const context = useContext(CardFeedbackContext);
146
146
  const modes = propModes || context.modes || {};
147
147
 
148
- const color = getVariableByName('cardFeedback/title/color', modes) || '#0f0d0a';
149
- const fontSize = parseFloat(getVariableByName('cardFeedback/title/fontSize', modes) || '14');
150
- const fontFamily = getVariableByName('cardFeedback/title/fontFamily', modes) || 'JioType Var';
151
- const lineHeight = parseFloat(getVariableByName('cardFeedback/title/lineHeight', modes) || '17');
152
- const fontWeight = getVariableByName('cardFeedback/title/fontWeight', modes) || '500';
148
+ const color = getVariableByName('cardFeedback/title/color', modes);
149
+ const fontSize = parseFloat(getVariableByName('cardFeedback/title/fontSize', modes));
150
+ const fontFamily = getVariableByName('cardFeedback/title/fontFamily', modes);
151
+ const lineHeight = parseFloat(getVariableByName('cardFeedback/title/lineHeight', modes));
152
+ const fontWeight = getVariableByName('cardFeedback/title/fontWeight', modes);
153
153
 
154
154
  const textStyle: TextStyle = {
155
155
  color,
@@ -170,11 +170,11 @@ export function Body({ children, style, modes: propModes }: { children?: React.R
170
170
  const context = useContext(CardFeedbackContext);
171
171
  const modes = propModes || context.modes || {};
172
172
 
173
- const color = getVariableByName('cardFeedback/body/color', modes) || '#1f1a14';
174
- const fontSize = parseFloat(getVariableByName('cardFeedback/body/fontSize', modes) || '12');
175
- const fontFamily = getVariableByName('cardFeedback/body/fontFamily', modes) || 'JioType Var';
176
- const lineHeight = parseFloat(getVariableByName('cardFeedback/body/lineHeight', modes) || '16');
177
- const fontWeight = getVariableByName('cardFeedback/body/fontWeight', modes) || '400';
173
+ const color = getVariableByName('cardFeedback/body/color', modes);
174
+ const fontSize = parseFloat(getVariableByName('cardFeedback/body/fontSize', modes));
175
+ const fontFamily = getVariableByName('cardFeedback/body/fontFamily', modes);
176
+ const lineHeight = parseFloat(getVariableByName('cardFeedback/body/lineHeight', modes));
177
+ const fontWeight = getVariableByName('cardFeedback/body/fontWeight', modes);
178
178
 
179
179
  const textStyle: TextStyle = {
180
180
  color,
@@ -195,7 +195,7 @@ export function Action({ children, style, modes: propModes }: { children?: React
195
195
  const context = useContext(CardFeedbackContext);
196
196
  const modes = propModes || context.modes || {};
197
197
 
198
- const gap = parseFloat(getVariableByName('cardFeedback/actionSlot/gap', modes) || '0');
198
+ const gap = parseFloat(getVariableByName('cardFeedback/actionSlot/gap', modes));
199
199
 
200
200
  // "Maximise existing component usage" -> Pass modes to children (Buttons)
201
201
  const childrenWithModes = React.Children.map(children, child => {
@@ -104,8 +104,7 @@ function resolveCardFinancialConditionTokens(
104
104
  modes: Modes
105
105
  ): CardFinancialConditionTokens {
106
106
  const background =
107
- (getVariableByName('financialConditionCard/background', modes) as string) ||
108
- '#ffffff'
107
+ (getVariableByName('financialConditionCard/background', modes) as string)
109
108
  const radius = toNumber(
110
109
  getVariableByName('financialConditionCard/radius', modes),
111
110
  16
@@ -133,8 +132,7 @@ function resolveCardFinancialConditionTokens(
133
132
  )
134
133
 
135
134
  const titleColor =
136
- (getVariableByName('financialConditionCard/title/color', modes) as string) ||
137
- '#0c0d10'
135
+ (getVariableByName('financialConditionCard/title/color', modes) as string)
138
136
  const titleFontSize = toNumber(
139
137
  getVariableByName('financialConditionCard/title/fontSize', modes),
140
138
  16
@@ -143,7 +141,7 @@ function resolveCardFinancialConditionTokens(
143
141
  (getVariableByName(
144
142
  'financialConditionCard/title/fontFamily',
145
143
  modes
146
- ) as string) || 'JioType Var'
144
+ ) as string)
147
145
  const titleLineHeight = toNumber(
148
146
  getVariableByName('financialConditionCard/title/lineHeight', modes),
149
147
  18
@@ -154,8 +152,7 @@ function resolveCardFinancialConditionTokens(
154
152
  )
155
153
 
156
154
  const bodyColor =
157
- (getVariableByName('financialConditionCard/body/color', modes) as string) ||
158
- '#0c0d10'
155
+ (getVariableByName('financialConditionCard/body/color', modes) as string)
159
156
  const bodyFontSize = toNumber(
160
157
  getVariableByName('financialConditionCard/body/fontSize', modes),
161
158
  14
@@ -164,7 +161,7 @@ function resolveCardFinancialConditionTokens(
164
161
  (getVariableByName(
165
162
  'financialConditionCard/body/fontFamily',
166
163
  modes
167
- ) as string) || 'JioType Var'
164
+ ) as string)
168
165
  const bodyLineHeight = toNumber(
169
166
  getVariableByName('financialConditionCard/body/lineHeight', modes),
170
167
  17
@@ -175,13 +172,13 @@ function resolveCardFinancialConditionTokens(
175
172
  )
176
173
 
177
174
  const nudgeBodyColor =
178
- (getVariableByName('nudge/body/color', modes) as string) || '#1a1c1f'
175
+ (getVariableByName('nudge/body/color', modes) as string)
179
176
  const nudgeBodyFontSize = toNumber(
180
177
  getVariableByName('nudge/body/fontSize', modes),
181
178
  12
182
179
  )
183
180
  const nudgeBodyFontFamily =
184
- (getVariableByName('nudge/body/fontFamily', modes) as string) || 'JioType Var'
181
+ (getVariableByName('nudge/body/fontFamily', modes) as string)
185
182
  const nudgeBodyLineHeight = toNumber(
186
183
  getVariableByName('nudge/body/lineHeight', modes),
187
184
  16
@@ -83,7 +83,6 @@ function CardInsight({
83
83
  const gap = (getVariableByName('cardInsight/gap', modes) as number | null) ?? 12
84
84
  const contentGap =
85
85
  (getVariableByName('cardInsight/contentGap', modes) as number | null) ?? 8
86
- const width = (getVariableByName('cardInsight/width', modes) as number | null) ?? 356
87
86
  const slotBackground =
88
87
  (getVariableByName('cardInsight/slot/background', modes) as string | null) ?? '#ffffff'
89
88
 
@@ -129,7 +128,7 @@ function CardInsight({
129
128
 
130
129
  const renderSlot = (): React.ReactNode => {
131
130
  if (!children) {
132
- return <SavingsGoalSummary modes={modes} />
131
+ return <SavingsGoalSummary label="Credit usage" modes={modes} />
133
132
  }
134
133
  const processed = cloneChildrenWithModes(children, modes)
135
134
  return processed.length === 1 ? processed[0] : processed
@@ -165,7 +164,6 @@ function CardInsight({
165
164
  <View
166
165
  style={[
167
166
  {
168
- width,
169
167
  backgroundColor: background,
170
168
  borderRadius: radius,
171
169
  borderWidth,
@@ -65,6 +65,16 @@ export interface CarouselProps {
65
65
  gap?: number
66
66
  /** Width of each carousel item. When undefined, items take full container width. */
67
67
  itemWidth?: number
68
+ /**
69
+ * Explicit horizontal padding (px) for the scroll content. When provided it
70
+ * overrides the token-derived padding verbatim — the built-in `carousel/
71
+ * padding/horizontal × 2` "peek" multiplier is NOT applied. Use this for
72
+ * presets (e.g. the account-card strip) whose own tokens define a flush,
73
+ * non-peeking layout.
74
+ */
75
+ paddingHorizontal?: number
76
+ /** Explicit vertical padding (px) for the outer container. Overrides `carousel/padding/vertical`. */
77
+ paddingVertical?: number
68
78
 
69
79
  /** Called when the active index changes. */
70
80
  onIndexChange?: (index: number) => void
@@ -85,27 +95,29 @@ export function Carousel({
85
95
  loop = true,
86
96
  gap: gapProp,
87
97
  itemWidth: itemWidthProp,
98
+ paddingHorizontal: paddingHorizontalProp,
99
+ paddingVertical: paddingVerticalProp,
88
100
 
89
101
  onIndexChange,
90
102
  style,
91
103
  }: CarouselProps) {
92
104
  // ---- Token resolution ----
93
105
  const tokenGap = parseFloat(
94
- getVariableByName('carousel/gap', modes) || '12',
106
+ getVariableByName('carousel/gap', modes),
95
107
  )
96
108
  const gap = gapProp ?? tokenGap
97
109
 
98
110
 
99
111
 
100
112
  const containerPaddingH = parseFloat(
101
- getVariableByName('carousel/padding/horizontal', modes) || '0',
113
+ getVariableByName('carousel/padding/horizontal', modes),
102
114
  )
103
115
  const containerPaddingV = parseFloat(
104
- getVariableByName('carousel/padding/vertical', modes) || '0',
116
+ getVariableByName('carousel/padding/vertical', modes),
105
117
  )
106
118
  // Outer container max height per Figma (`carousel/maxHeight`).
107
119
  const maxHeight = parseFloat(
108
- getVariableByName('carousel/maxHeight', modes) || '280',
120
+ getVariableByName('carousel/maxHeight', modes),
109
121
  )
110
122
  // Spacing between the cards row and the pagination dots uses `carousel/gap`.
111
123
  const paginationOffset = gap
@@ -254,13 +266,18 @@ export function Carousel({
254
266
  )
255
267
 
256
268
  // ---- Render ----
269
+ // Explicit padding props win verbatim; otherwise fall back to the
270
+ // token-derived values (horizontal keeps its legacy ×2 "peek" multiplier).
271
+ const effectivePaddingH = paddingHorizontalProp ?? containerPaddingH
272
+ const effectivePaddingV = paddingVerticalProp ?? containerPaddingV
273
+
257
274
  const outerStyle: ViewStyle = {
258
- paddingVertical: containerPaddingV,
275
+ paddingVertical: effectivePaddingV,
259
276
  maxHeight,
260
277
  }
261
278
 
262
279
  const contentContainerStyle: ViewStyle = {
263
- paddingHorizontal: containerPaddingH * 2,
280
+ paddingHorizontal: effectivePaddingH,
264
281
  gap,
265
282
  // Align items to the start so snap works correctly
266
283
  alignItems: 'flex-start',
@@ -372,26 +389,26 @@ export function Pagination({ modes: propModes, style }: PaginationProps) {
372
389
  // Token resolution for dots — matches Figma tokens
373
390
  // (carousel/pagination/gap, carousel/pagination/indicator/{activeColor,inactiveColor,radius,size,activeWidth}).
374
391
  const dotSize = parseFloat(
375
- getVariableByName('carousel/pagination/indicator/size', modes) || '6',
392
+ getVariableByName('carousel/pagination/indicator/size', modes),
376
393
  )
377
394
  const dotActiveWidth = parseFloat(
378
- getVariableByName('carousel/pagination/indicator/activeWidth', modes) || '16',
395
+ getVariableByName('carousel/pagination/indicator/activeWidth', modes),
379
396
  )
380
397
  const dotGap = parseFloat(
381
- getVariableByName('carousel/pagination/gap', modes) || '4',
398
+ getVariableByName('carousel/pagination/gap', modes),
382
399
  )
383
400
  const dotColor =
384
401
  (getVariableByName(
385
402
  'carousel/pagination/indicator/inactiveColor',
386
403
  modes,
387
- ) as string) || 'rgba(0,0,0,0.3)'
404
+ ) as string)
388
405
  const dotActiveColor =
389
406
  (getVariableByName(
390
407
  'carousel/pagination/indicator/activeColor',
391
408
  modes,
392
- ) as string) || '#170d0a'
409
+ ) as string)
393
410
  const dotRadius = parseFloat(
394
- getVariableByName('carousel/pagination/indicator/radius', modes) || '9999',
411
+ getVariableByName('carousel/pagination/indicator/radius', modes),
395
412
  )
396
413
 
397
414
  const containerStyle: ViewStyle = {
@@ -0,0 +1,113 @@
1
+ import React from 'react'
2
+ import type { StyleProp, ViewStyle } from 'react-native'
3
+ import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
4
+ import { EMPTY_MODES } from '../../utils/react-utils'
5
+ import type { Modes } from '../../design-tokens'
6
+ import Carousel from '../Carousel/Carousel'
7
+
8
+ // Figma reference width for a single Account Card slot (`Carousel / Card Accounts`).
9
+ const DEFAULT_ITEM_WIDTH = 125
10
+
11
+ const toNumber = (value: unknown, fallback: number): number => {
12
+ if (typeof value === 'number') return Number.isFinite(value) ? value : fallback
13
+ if (typeof value === 'string') {
14
+ const parsed = parseFloat(value)
15
+ return Number.isFinite(parsed) ? parsed : fallback
16
+ }
17
+ return fallback
18
+ }
19
+
20
+ export interface CarouselCardAccountsProps {
21
+ /**
22
+ * The account cards to render — this is the slot. Pass any number of
23
+ * `AccountCard` elements (or any node). Each becomes one horizontally
24
+ * scrollable, snap-aligned item. `modes` are forwarded to every child.
25
+ */
26
+ children?: React.ReactNode
27
+ /** Design-token modes (e.g. `{ 'Color Mode': 'Light' }`). */
28
+ modes?: Modes
29
+ /**
30
+ * Width of each card slot in px. Defaults to the Figma reference width
31
+ * (`125`). Combined with `gap` this drives the per-card snap interval.
32
+ */
33
+ itemWidth?: number
34
+ /**
35
+ * Gap between cards in px. Resolved from the `carouselCardAccounts/gap`
36
+ * token (default `8`) when omitted.
37
+ */
38
+ gap?: number
39
+ /**
40
+ * Show the pagination dots. Defaults to `false` — the account strip is a
41
+ * flush, free-scrolling row rather than a paged hero carousel.
42
+ */
43
+ showPagination?: boolean
44
+ /** Loop back to the first card after the last. Default: `false`. */
45
+ loop?: boolean
46
+ /** Called when the active (snapped) card index changes. */
47
+ onIndexChange?: (index: number) => void
48
+ /** Style override for the outermost container. */
49
+ style?: StyleProp<ViewStyle>
50
+ }
51
+
52
+ /**
53
+ * `CarouselCardAccounts` — a horizontally scrollable strip of compact
54
+ * `AccountCard`s (the Figma "Carousel / Card Accounts" component).
55
+ *
56
+ * It is a thin, opinionated preset over the shared {@link Carousel} scroll
57
+ * engine — so the snap/scroll/modes-cascade behaviour is **not** duplicated.
58
+ * Its niche is the account-selection strip: fixed-width card slots, flush
59
+ * (no peek) padding, per-card snapping, and no pagination by default.
60
+ *
61
+ * The cards are a real slot: pass any number of `AccountCard` children
62
+ * (typically a list of `connected` cards followed by a single `add` card).
63
+ *
64
+ * @example
65
+ * <CarouselCardAccounts modes={modes}>
66
+ * <AccountCard title="Personal account" subtitle="**** 5651" imageSource={art} />
67
+ * <AccountCard title="Salary account" subtitle="**** 1180" imageSource={art} />
68
+ * <AccountCard state="add" title="Add a card" onPress={openLinkFlow} />
69
+ * </CarouselCardAccounts>
70
+ */
71
+ function CarouselCardAccounts({
72
+ children,
73
+ modes = EMPTY_MODES,
74
+ itemWidth = DEFAULT_ITEM_WIDTH,
75
+ gap: gapProp,
76
+ showPagination = false,
77
+ loop = false,
78
+ onIndexChange,
79
+ style,
80
+ }: CarouselCardAccountsProps) {
81
+ const gap = gapProp ?? toNumber(getVariableByName('carouselCardAccounts/gap', modes), 8)
82
+
83
+ // Outer-container padding is driven by the design's own tokens
84
+ // (`carouselCardAccounts/padding/*`) rather than the generic `carousel/*`
85
+ // padding, matching the Figma "Carousel / Card Accounts" frame.
86
+ const paddingHorizontal = toNumber(
87
+ getVariableByName('carouselCardAccounts/padding/horizontal', modes),
88
+ 0,
89
+ )
90
+ const paddingVertical = toNumber(
91
+ getVariableByName('carouselCardAccounts/padding/vertical', modes),
92
+ 0,
93
+ )
94
+
95
+ return (
96
+ <Carousel
97
+ modes={modes}
98
+ itemWidth={itemWidth}
99
+ gap={gap}
100
+ showPagination={showPagination}
101
+ loop={loop}
102
+ autoPlay={false}
103
+ paddingHorizontal={paddingHorizontal}
104
+ paddingVertical={paddingVertical}
105
+ {...(onIndexChange ? { onIndexChange } : {})}
106
+ style={style}
107
+ >
108
+ {children}
109
+ </Carousel>
110
+ )
111
+ }
112
+
113
+ export default React.memo(CarouselCardAccounts)
@@ -9,6 +9,7 @@ import {
9
9
  import Svg, { Path } from 'react-native-svg'
10
10
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
11
11
  import { EMPTY_MODES } from '../../utils/react-utils'
12
+ import { boxShadow } from '../../utils/shadow'
12
13
  import type { Modes } from '../../design-tokens'
13
14
 
14
15
  /**
@@ -116,7 +117,7 @@ const Checkbox = forwardRef<View, CheckboxProps>(function Checkbox({
116
117
 
117
118
  const size = getVariableByName('checkbox/size', modes) ?? 18
118
119
  const radius = getVariableByName('checkbox/radius', modes) ?? 4
119
- const strokeWidth = getVariableByName('strokeWidth', modes) ?? 1
120
+ const strokeWidth = 1
120
121
 
121
122
  const idleStroke = getVariableByName('checkbox/idle/stroke/color', modes) ?? '#666666'
122
123
  const hoverFill = getVariableByName('checkbox/hover/fill/color', modes) ?? 'rgba(0,0,0,0.1)'
@@ -256,11 +257,4 @@ const Checkbox = forwardRef<View, CheckboxProps>(function Checkbox({
256
257
  )
257
258
  })
258
259
 
259
- function boxShadow(value: string): ViewStyle {
260
- if (Platform.OS === 'web') {
261
- return { boxShadow: value } as ViewStyle
262
- }
263
- return {}
264
- }
265
-
266
260
  export default Checkbox
@@ -36,7 +36,7 @@ function ChipGroup({
36
36
  testID,
37
37
  }: ChipGroupProps) {
38
38
  // --- Token Resolution ---
39
- const gap = parseInt(getVariableByName('chipGroup/gap', modes), 10) || 8;
39
+ const gap = parseInt(getVariableByName('chipGroup/gap', modes), 10);
40
40
 
41
41
  // --- Styles ---
42
42
  const containerStyle: ViewStyle = {
@@ -60,23 +60,23 @@ function ChipSelect({
60
60
  };
61
61
 
62
62
  // --- Token Resolution ---
63
- const gap = parseInt(getVariableByName('chipSelect/gap', resolvedModes), 10) || 4;
64
- const paddingHorizontal = parseInt(getVariableByName('chipSelect/padding/horizontal', resolvedModes), 10) || 16;
65
- const paddingVertical = parseInt(getVariableByName('chipSelect/padding/vertical', resolvedModes), 10) || 0;
66
- const radius = parseInt(getVariableByName('chipSelect/radius', resolvedModes), 10) || 999;
63
+ const gap = parseInt(getVariableByName('chipSelect/gap', resolvedModes), 10);
64
+ const paddingHorizontal = parseInt(getVariableByName('chipSelect/padding/horizontal', resolvedModes), 10);
65
+ const paddingVertical = parseInt(getVariableByName('chipSelect/padding/vertical', resolvedModes), 10);
66
+ const radius = parseInt(getVariableByName('chipSelect/radius', resolvedModes), 10);
67
67
 
68
68
  // Background
69
- const backgroundColor = getVariableByName('chipSelect/background', resolvedModes) || '#f5f5f5';
69
+ const backgroundColor = getVariableByName('chipSelect/background', resolvedModes);
70
70
 
71
71
  // Text Styles
72
- const textColor = getVariableByName('chipSelect/foreground', resolvedModes) || '#0d0d0f';
73
- const fontSize = parseInt(getVariableByName('chipSelect/fontSize', resolvedModes), 10) || 14;
74
- const fontFamily = getVariableByName('chipSelect/fontFamily', resolvedModes) || 'JioType Var';
75
- const lineHeight = parseInt(getVariableByName('chipSelect/lineHeight', resolvedModes), 10) || 32;
76
- const fontWeight = getVariableByName('chipSelect/fontWeight', resolvedModes) || '700';
72
+ const textColor = getVariableByName('chipSelect/foreground', resolvedModes);
73
+ const fontSize = parseInt(getVariableByName('chipSelect/fontSize', resolvedModes), 10);
74
+ const fontFamily = getVariableByName('chipSelect/fontFamily', resolvedModes);
75
+ const lineHeight = parseInt(getVariableByName('chipSelect/lineHeight', resolvedModes), 10);
76
+ const fontWeight = getVariableByName('chipSelect/fontWeight', resolvedModes);
77
77
 
78
78
  // Icon Styles
79
- const iconSize = parseInt(getVariableByName('chipSelect/icon/size', resolvedModes), 10) || 16;
79
+ const iconSize = parseInt(getVariableByName('chipSelect/icon/size', resolvedModes), 10);
80
80
 
81
81
  // --- Styles ---
82
82
  const containerStyle: ViewStyle = {