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
@@ -1,6 +1,7 @@
1
1
  import React, { useMemo } from 'react'
2
2
  import {
3
3
  View,
4
+ Text,
4
5
  type StyleProp,
5
6
  type ViewStyle,
6
7
  type TextStyle,
@@ -8,7 +9,6 @@ import {
8
9
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
9
10
  import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
10
11
  import { formatIndianNumber } from '../../utils/number-utils'
11
- import Title from '../Title/Title'
12
12
  import LinearProgress from '../LinearProgress/LinearProgress'
13
13
  import MetricLegendItem from '../MetricLegendItem/MetricLegendItem'
14
14
  import type { Modes } from '../../design-tokens'
@@ -40,6 +40,14 @@ export type SavingsGoalSummaryItem = {
40
40
  }
41
41
 
42
42
  export type SavingsGoalSummaryProps = {
43
+ /**
44
+ * Optional caption rendered directly above the percentage value
45
+ * (e.g. `"Credit usage"`), matching the Figma `savingsGoalSummary/label`
46
+ * slot. Pass a string for token-styled text, or any `ReactNode` for full
47
+ * control. Omit (the default) to hide it — preserving the original
48
+ * value-only layout for existing callers.
49
+ */
50
+ label?: React.ReactNode
43
51
  /**
44
52
  * Currency symbol (e.g. `'₹'`, `'$'`) prefixed to every legend value.
45
53
  * Defaults to `'₹'`. The symbol is rendered as part of the formatted
@@ -82,6 +90,8 @@ export type SavingsGoalSummaryProps = {
82
90
  * computed from `current` / `target` and cannot be replaced.
83
91
  */
84
92
  titleStyle?: StyleProp<TextStyle>
93
+ /** Override styles for the `label` caption text (string labels only). */
94
+ labelStyle?: StyleProp<TextStyle>
85
95
  /** Override the inner legend container styles. */
86
96
  legendStyle?: StyleProp<ViewStyle>
87
97
  }
@@ -122,6 +132,7 @@ const DEFAULT_TARGET: SavingsGoalSummaryItem = {
122
132
  * @param {SavingsGoalSummaryProps} props
123
133
  */
124
134
  function SavingsGoalSummary({
135
+ label,
125
136
  currency = '₹',
126
137
  current = DEFAULT_CURRENT,
127
138
  target = DEFAULT_TARGET,
@@ -129,6 +140,7 @@ function SavingsGoalSummary({
129
140
  modes = EMPTY_MODES,
130
141
  style,
131
142
  titleStyle,
143
+ labelStyle,
132
144
  legendStyle,
133
145
  }: SavingsGoalSummaryProps) {
134
146
  // Merge caller modes on top of the defaults so callers can override
@@ -182,6 +194,66 @@ function SavingsGoalSummary({
182
194
  const legendGap =
183
195
  (getVariableByName('savingsGoalSummary/legend/gap', mergedModes) as number | null) ?? 16
184
196
 
197
+ // Percentage value typography — driven by the dedicated
198
+ // `savingsGoalSummary/value/*` tokens (Figma 29 / 900) rather than the
199
+ // generic `Title` tokens, so the value matches the design exactly.
200
+ const valueFontSize =
201
+ (getVariableByName('savingsGoalSummary/value/fontSize', mergedModes) as number | null) ?? 29
202
+ const valueFontFamily =
203
+ (getVariableByName('savingsGoalSummary/value/fontFamily', mergedModes) as string | null) ??
204
+ 'JioType Var'
205
+ const valueRawLineHeight =
206
+ (getVariableByName('savingsGoalSummary/value/lineHeight', mergedModes) as number | null) ?? 29
207
+ // The value tokens ship with `lineHeight === fontSize` (29/29); clamp to
208
+ // ~1.2x so descenders never clip on native (same guard `Title` uses).
209
+ const valueLineHeight = Math.max(valueRawLineHeight, Math.ceil(valueFontSize * 1.2))
210
+ const valueFontWeight = String(
211
+ getVariableByName('savingsGoalSummary/value/fontWeight', mergedModes) ?? 900,
212
+ ) as TextStyle['fontWeight']
213
+ const valueColor =
214
+ (getVariableByName('savingsGoalSummary/value/color', mergedModes) as string | null) ??
215
+ '#0d0d0f'
216
+
217
+ // Caption ("Credit usage") typography — `savingsGoalSummary/label/*`
218
+ // (Figma 12 / 400). Only rendered when a `label` is supplied.
219
+ const labelFontSize =
220
+ (getVariableByName('savingsGoalSummary/label/fontSize', mergedModes) as number | null) ?? 12
221
+ const labelFontFamily =
222
+ (getVariableByName('savingsGoalSummary/label/fontFamily', mergedModes) as string | null) ??
223
+ 'JioType Var'
224
+ const labelLineHeight =
225
+ (getVariableByName('savingsGoalSummary/label/lineHeight', mergedModes) as number | null) ?? 16
226
+ const labelFontWeight = String(
227
+ getVariableByName('savingsGoalSummary/label/fontWeight', mergedModes) ?? 400,
228
+ ) as TextStyle['fontWeight']
229
+ const labelColor =
230
+ (getVariableByName('savingsGoalSummary/label/color', mergedModes) as string | null) ??
231
+ '#0d0d0f'
232
+
233
+ const labelNode =
234
+ label == null || label === false ? null : typeof label === 'string' ? (
235
+ <Text
236
+ style={[
237
+ {
238
+ color: labelColor,
239
+ fontFamily: labelFontFamily,
240
+ fontSize: labelFontSize,
241
+ lineHeight: labelLineHeight,
242
+ fontWeight: labelFontWeight,
243
+ width: '100%',
244
+ },
245
+ labelStyle,
246
+ ]}
247
+ >
248
+ {label}
249
+ </Text>
250
+ ) : (
251
+ (() => {
252
+ const processed = cloneChildrenWithModes(label, mergedModes)
253
+ return processed.length === 1 ? processed[0] : processed
254
+ })()
255
+ )
256
+
185
257
  const customLegend = children
186
258
  ? cloneChildrenWithModes(children, mergedModes)
187
259
  : null
@@ -220,14 +292,32 @@ function SavingsGoalSummary({
220
292
  },
221
293
  style,
222
294
  ]}
223
- accessibilityLabel={`Savings goal progress, ${percentageLabel}`}
295
+ accessibilityLabel={
296
+ typeof label === 'string'
297
+ ? `${label}, ${percentageLabel}`
298
+ : `Savings goal progress, ${percentageLabel}`
299
+ }
224
300
  >
225
- <Title
226
- title={percentageLabel}
227
- modes={mergedModes}
228
- style={TITLE_CONTAINER_STYLE}
229
- textStyle={titleStyle}
230
- />
301
+ <View style={HEADER_GROUP_STYLE}>
302
+ {labelNode}
303
+ <Text
304
+ style={[
305
+ {
306
+ color: valueColor,
307
+ fontFamily: valueFontFamily,
308
+ fontSize: valueFontSize,
309
+ lineHeight: valueLineHeight,
310
+ fontWeight: valueFontWeight,
311
+ width: '100%',
312
+ },
313
+ titleStyle,
314
+ ]}
315
+ accessibilityElementsHidden={true}
316
+ importantForAccessibility="no"
317
+ >
318
+ {percentageLabel}
319
+ </Text>
320
+ </View>
231
321
 
232
322
  <LinearProgress value={resolvedProgress} modes={mergedModes} />
233
323
 
@@ -260,11 +350,13 @@ function formatLegendValue(value: number | undefined, currency: string): string
260
350
  return formatIndianNumber(value, { prefix: currency })
261
351
  }
262
352
 
263
- // Neutralise the `Title` component's default page-level padding so it sits
264
- // flush inside the summary card (the parent container owns spacing via `gap`).
265
- const TITLE_CONTAINER_STYLE: ViewStyle = {
266
- paddingHorizontal: 0,
267
- paddingVertical: 0,
353
+ // Groups the optional caption ("Credit usage") tightly above the percentage
354
+ // value. The parent container owns the larger spacing to the bar via `gap`,
355
+ // so this only needs the small label→value gap.
356
+ const HEADER_GROUP_STYLE: ViewStyle = {
357
+ width: '100%',
358
+ gap: 2,
359
+ alignItems: 'flex-start',
268
360
  }
269
361
 
270
362
  export default SavingsGoalSummary
@@ -0,0 +1,200 @@
1
+ import React, { forwardRef } from 'react'
2
+ import {
3
+ ScrollView,
4
+ type ScrollViewProps,
5
+ type StyleProp,
6
+ type ViewStyle,
7
+ } from 'react-native'
8
+ import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
9
+ import type { Modes } from '../../design-tokens'
10
+
11
+ /**
12
+ * Axis (or axes) along which the content can be scrolled.
13
+ *
14
+ * - `vertical` (default) — content taller than the viewport scrolls up/down.
15
+ * - `horizontal` — content wider than the viewport scrolls left/right.
16
+ * - `both` — content larger on either axis scrolls in both directions
17
+ * (implemented as a horizontal `ScrollView` nested in a vertical one).
18
+ */
19
+ export type ScrollDirection = 'vertical' | 'horizontal' | 'both'
20
+
21
+ export interface ScrollAreaProps
22
+ extends Omit<
23
+ ScrollViewProps,
24
+ 'horizontal' | 'contentContainerStyle' | 'children'
25
+ > {
26
+ /** Content that may be larger than the viewport. */
27
+ children?: React.ReactNode
28
+ /**
29
+ * Scroll axis. Defaults to `vertical`.
30
+ * @default 'vertical'
31
+ */
32
+ direction?: ScrollDirection
33
+ /**
34
+ * Whether to show the native scroll indicator (scrollbar). Mirrors the Figma
35
+ * design, which has no visible scrollbar, so this defaults to `false`.
36
+ * @default false
37
+ */
38
+ showScrollIndicator?: boolean
39
+ /**
40
+ * Padding applied to all sides of the scrollable content. Individual sides
41
+ * (`paddingHorizontal`, `paddingTop`, …) take precedence when provided.
42
+ * @default 0
43
+ */
44
+ padding?: number
45
+ /** Left + right padding of the scrollable content. */
46
+ paddingHorizontal?: number
47
+ /** Top + bottom padding of the scrollable content. */
48
+ paddingVertical?: number
49
+ /** Top padding of the scrollable content. */
50
+ paddingTop?: number
51
+ /** Right padding of the scrollable content. */
52
+ paddingRight?: number
53
+ /** Bottom padding of the scrollable content. */
54
+ paddingBottom?: number
55
+ /** Left padding of the scrollable content. */
56
+ paddingLeft?: number
57
+ /**
58
+ * Style for the viewport (the visible, clipping window). Constrain the
59
+ * scroll area's size here, e.g. `{ height: 240 }` or `{ flex: 1 }`. The
60
+ * component intentionally has no background of its own.
61
+ */
62
+ style?: StyleProp<ViewStyle>
63
+ /** Style for the scrollable content wrapper (sits inside the viewport). */
64
+ contentContainerStyle?: StyleProp<ViewStyle>
65
+ /** Modes object for design-token resolution, cascaded to all children. */
66
+ modes?: Modes
67
+ }
68
+
69
+ /**
70
+ * Build a padding style fragment, letting the more specific props win over the
71
+ * broader ones (`paddingTop` > `paddingVertical` > `padding`). Only defined
72
+ * values are emitted so consumer `contentContainerStyle` overrides survive.
73
+ */
74
+ function resolvePadding({
75
+ padding,
76
+ paddingHorizontal,
77
+ paddingVertical,
78
+ paddingTop,
79
+ paddingRight,
80
+ paddingBottom,
81
+ paddingLeft,
82
+ }: Pick<
83
+ ScrollAreaProps,
84
+ | 'padding'
85
+ | 'paddingHorizontal'
86
+ | 'paddingVertical'
87
+ | 'paddingTop'
88
+ | 'paddingRight'
89
+ | 'paddingBottom'
90
+ | 'paddingLeft'
91
+ >): ViewStyle {
92
+ const top = paddingTop ?? paddingVertical ?? padding
93
+ const right = paddingRight ?? paddingHorizontal ?? padding
94
+ const bottom = paddingBottom ?? paddingVertical ?? padding
95
+ const left = paddingLeft ?? paddingHorizontal ?? padding
96
+
97
+ const style: ViewStyle = {}
98
+ if (top != null) style.paddingTop = top
99
+ if (right != null) style.paddingRight = right
100
+ if (bottom != null) style.paddingBottom = bottom
101
+ if (left != null) style.paddingLeft = left
102
+ return style
103
+ }
104
+
105
+ /**
106
+ * ScrollArea — a transparent, size-constrained viewport that makes content
107
+ * larger than itself smoothly scrollable (Figma node 6319:46886).
108
+ *
109
+ * It has no background of its own; constrain its size through `style`
110
+ * (`height`, `maxHeight`, or `flex`) and drop any over-sized content inside.
111
+ *
112
+ * @example
113
+ * // Vertical (default): a tall column inside a fixed-height window.
114
+ * <ScrollArea style={{ height: 240 }}>
115
+ * <LongContent />
116
+ * </ScrollArea>
117
+ *
118
+ * @example
119
+ * // Horizontal: a wide row of cards inside a full-width window.
120
+ * <ScrollArea direction="horizontal">
121
+ * <Card /> <Card /> <Card />
122
+ * </ScrollArea>
123
+ */
124
+ export const ScrollArea = forwardRef<ScrollView, ScrollAreaProps>(
125
+ function ScrollArea(
126
+ {
127
+ children,
128
+ direction = 'vertical',
129
+ showScrollIndicator = false,
130
+ padding,
131
+ paddingHorizontal,
132
+ paddingVertical,
133
+ paddingTop,
134
+ paddingRight,
135
+ paddingBottom,
136
+ paddingLeft,
137
+ style,
138
+ contentContainerStyle,
139
+ modes = EMPTY_MODES,
140
+ scrollEventThrottle = 16,
141
+ ...rest
142
+ },
143
+ ref,
144
+ ) {
145
+ const paddingStyle = resolvePadding({
146
+ padding,
147
+ paddingHorizontal,
148
+ paddingVertical,
149
+ paddingTop,
150
+ paddingRight,
151
+ paddingBottom,
152
+ paddingLeft,
153
+ })
154
+
155
+ // Cascade modes into every child so slotted tokens resolve correctly.
156
+ const content = cloneChildrenWithModes(children, modes)
157
+
158
+ if (direction === 'both') {
159
+ // Outer vertical scroll, inner horizontal scroll. Padding lives on the
160
+ // inner content container so it scrolls with the content on both axes.
161
+ return (
162
+ <ScrollView
163
+ ref={ref}
164
+ style={style}
165
+ showsVerticalScrollIndicator={showScrollIndicator}
166
+ scrollEventThrottle={scrollEventThrottle}
167
+ {...rest}
168
+ >
169
+ <ScrollView
170
+ horizontal
171
+ showsHorizontalScrollIndicator={showScrollIndicator}
172
+ scrollEventThrottle={scrollEventThrottle}
173
+ contentContainerStyle={[paddingStyle, contentContainerStyle]}
174
+ >
175
+ {content}
176
+ </ScrollView>
177
+ </ScrollView>
178
+ )
179
+ }
180
+
181
+ const isHorizontal = direction === 'horizontal'
182
+
183
+ return (
184
+ <ScrollView
185
+ ref={ref}
186
+ horizontal={isHorizontal}
187
+ style={style}
188
+ showsVerticalScrollIndicator={isHorizontal ? undefined : showScrollIndicator}
189
+ showsHorizontalScrollIndicator={isHorizontal ? showScrollIndicator : undefined}
190
+ scrollEventThrottle={scrollEventThrottle}
191
+ contentContainerStyle={[paddingStyle, contentContainerStyle]}
192
+ {...rest}
193
+ >
194
+ {content}
195
+ </ScrollView>
196
+ )
197
+ },
198
+ )
199
+
200
+ export default ScrollArea
@@ -408,32 +408,32 @@ interface SectionTokens {
408
408
  }
409
409
 
410
410
  function resolveSectionTokens(modes: Modes): SectionTokens {
411
- const backgroundColor = getVariableByName('section/background/color', modes) || '#ffffff'
412
- const sectionGap = (getVariableByName('section/gap', modes) || 12) as number
413
- const slotGap = (getVariableByName('slot/gap', modes) || 12) as number
414
- const paddingHorizontal = getVariableByName('section/padding/horizontal', modes) || 12
415
- const paddingVertical = getVariableByName('section/padding/vertical', modes) || 16
416
- const radius = getVariableByName('section/radius', modes) || 12
417
-
418
- const headerGap = getVariableByName('section/header/gap', modes) || 8
419
- const headerPaddingHorizontal = getVariableByName('section/header/padding/horizontal', modes) || 0
420
- const headerPaddingVertical = getVariableByName('section/header/padding/vertical', modes) || 0
421
-
422
- const titleColor = getVariableByName('section/title/color', modes) || '#0f0d0a'
423
- const titleFontSize = getVariableByName('section/title/fontSize', modes) || 18
424
- const titleLineHeight = getVariableByName('section/title/lineHeight', modes) || 20
425
- const titleFontFamily = getVariableByName('section/title/fontFamily', modes) || 'System'
426
- const titleFontWeightRaw = getVariableByName('section/title/fontWeight', modes) || 800
411
+ const backgroundColor = getVariableByName('section/background/color', modes)
412
+ const sectionGap = (getVariableByName('section/gap', modes)) as number
413
+ const slotGap = (getVariableByName('slot/gap', modes)) as number
414
+ const paddingHorizontal = getVariableByName('section/padding/horizontal', modes)
415
+ const paddingVertical = getVariableByName('section/padding/vertical', modes)
416
+ const radius = getVariableByName('section/radius', modes)
417
+
418
+ const headerGap = getVariableByName('section/header/gap', modes)
419
+ const headerPaddingHorizontal = getVariableByName('section/header/padding/horizontal', modes)
420
+ const headerPaddingVertical = getVariableByName('section/header/padding/vertical', modes)
421
+
422
+ const titleColor = getVariableByName('section/title/color', modes)
423
+ const titleFontSize = getVariableByName('section/title/fontSize', modes)
424
+ const titleLineHeight = getVariableByName('section/title/lineHeight', modes)
425
+ const titleFontFamily = getVariableByName('section/title/fontFamily', modes)
426
+ const titleFontWeightRaw = getVariableByName('section/title/fontWeight', modes)
427
427
  const titleFontWeight =
428
428
  typeof titleFontWeightRaw === 'number'
429
429
  ? titleFontWeightRaw.toString()
430
430
  : titleFontWeightRaw
431
431
 
432
- const supportTextColor = getVariableByName('section/supportText/color', modes) || '#1f1a14'
433
- const supportTextFontSize = getVariableByName('section/supportText/fontSize', modes) || 14
434
- const supportTextLineHeight = getVariableByName('section/supportText/lineHeight', modes) || 18
435
- const supportTextFontFamily = getVariableByName('section/supportText/fontFamily', modes) || 'System'
436
- const supportTextFontWeightRaw = getVariableByName('section/supportText/fontWeight', modes) || 500
432
+ const supportTextColor = getVariableByName('section/supportText/color', modes)
433
+ const supportTextFontSize = getVariableByName('section/supportText/fontSize', modes)
434
+ const supportTextLineHeight = getVariableByName('section/supportText/lineHeight', modes)
435
+ const supportTextFontFamily = getVariableByName('section/supportText/fontFamily', modes)
436
+ const supportTextFontWeightRaw = getVariableByName('section/supportText/fontWeight', modes)
437
437
  const supportTextFontWeight =
438
438
  typeof supportTextFontWeightRaw === 'number'
439
439
  ? supportTextFontWeightRaw.toString()
@@ -765,11 +765,11 @@ function SectionBento({
765
765
  renderToggle,
766
766
  ...rest
767
767
  }: SectionBentoProps) {
768
- const backgroundColor = getVariableByName('section/background/color', modes) || '#ffffff'
769
- const gap = getVariableByName('section/gap', modes) || 12
770
- const paddingHorizontal = getVariableByName('section/padding/horizontal', modes) || 12
771
- const paddingVertical = getVariableByName('section/padding/vertical', modes) || 16
772
- const radius = getVariableByName('section/radius', modes) || 12
768
+ const backgroundColor = getVariableByName('section/background/color', modes)
769
+ const gap = getVariableByName('section/gap', modes)
770
+ const paddingHorizontal = getVariableByName('section/padding/horizontal', modes)
771
+ const paddingVertical = getVariableByName('section/padding/vertical', modes)
772
+ const radius = getVariableByName('section/radius', modes)
773
773
 
774
774
  const containerStyle = useMemo<ViewStyle>(
775
775
  () => ({
@@ -66,28 +66,28 @@ export default function StatusHero({
66
66
  const modes = { ...globalModes, ...propModes }
67
67
 
68
68
  // Container
69
- const gap = Number(getVariableByName('statusHero/gap', modes)) || 12
70
- const padding = Number(getVariableByName('statusHero/padding', modes)) || 8
69
+ const gap = Number(getVariableByName('statusHero/gap', modes))
70
+ const padding = Number(getVariableByName('statusHero/padding', modes))
71
71
 
72
72
  // Media slot wrap (gap between icon and money value in default slot)
73
- const slotWrapGap = Number(getVariableByName('statusHero/slotWrap/gap', modes)) || 46
73
+ const slotWrapGap = Number(getVariableByName('statusHero/slotWrap/gap', modes))
74
74
 
75
75
  // Content wrap
76
- const contentWrapGap = Number(getVariableByName('statusHero/contentWrap/gap', modes)) || 12
76
+ const contentWrapGap = Number(getVariableByName('statusHero/contentWrap/gap', modes))
77
77
 
78
78
  // Title
79
- const titleColor = getVariableByName('statusHero/title/foreground', modes) || '#0c0d10'
80
- const titleFontSize = Number(getVariableByName('statusHero/title/fontSize', modes)) || 20
81
- const titleFontFamily = getVariableByName('statusHero/title/fontFamily', modes) || 'System'
82
- const titleLineHeight = Number(getVariableByName('statusHero/title/lineHeight', modes)) || 22
83
- const titleFontWeight = getVariableByName('statusHero/title/fontWeight', modes) || '700'
79
+ const titleColor = getVariableByName('statusHero/title/foreground', modes)
80
+ const titleFontSize = Number(getVariableByName('statusHero/title/fontSize', modes))
81
+ const titleFontFamily = getVariableByName('statusHero/title/fontFamily', modes)
82
+ const titleLineHeight = Number(getVariableByName('statusHero/title/lineHeight', modes))
83
+ const titleFontWeight = getVariableByName('statusHero/title/fontWeight', modes)
84
84
 
85
85
  // Body
86
- const bodyColor = getVariableByName('statusHero/body/foreground', modes) || '#24262b'
87
- const bodyFontSize = Number(getVariableByName('statusHero/body/fontSize', modes)) || 14
88
- const bodyFontFamily = getVariableByName('statusHero/body/fontFamily', modes) || 'System'
89
- const bodyLineHeight = Number(getVariableByName('statusHero/body/lineHeight', modes)) || 17
90
- const bodyFontWeight = getVariableByName('statusHero/body/fontWeight', modes) || '500'
86
+ const bodyColor = getVariableByName('statusHero/body/foreground', modes)
87
+ const bodyFontSize = Number(getVariableByName('statusHero/body/fontSize', modes))
88
+ const bodyFontFamily = getVariableByName('statusHero/body/fontFamily', modes)
89
+ const bodyLineHeight = Number(getVariableByName('statusHero/body/lineHeight', modes))
90
+ const bodyFontWeight = getVariableByName('statusHero/body/fontWeight', modes)
91
91
 
92
92
  const containerStyle: ViewStyle = {
93
93
  flexDirection: 'column',
@@ -47,42 +47,40 @@ export function Step({
47
47
  status = 'number',
48
48
  }: StepProps) {
49
49
  const minHeight =
50
- Number(getVariableByName('steperItem/minHeight', modes) as unknown) || 52
50
+ Number(getVariableByName('steperItem/minHeight', modes) as unknown)
51
51
  const gap =
52
- Number(getVariableByName('steperItem/gap', modes) as unknown) || 16
52
+ Number(getVariableByName('steperItem/gap', modes) as unknown)
53
53
 
54
54
  const indicatorSize =
55
- Number(getVariableByName('stepIndicator/size', modes) as unknown) || 36
55
+ Number(getVariableByName('stepIndicator/size', modes) as unknown)
56
56
  const indicatorRadius =
57
- Number(getVariableByName('stepIndicator/radius', modes) as unknown) || 9999
57
+ Number(getVariableByName('stepIndicator/radius', modes) as unknown)
58
58
  const indicatorBg =
59
- (getVariableByName('stepIndicator/background', modes) as string) ||
60
- '#5d00b5'
59
+ (getVariableByName('stepIndicator/background', modes) as string)
61
60
  const indicatorBorderColor =
62
- (getVariableByName('stepIndicator/border/color', modes) as string) ||
63
- '#5d00b5'
61
+ (getVariableByName('stepIndicator/border/color', modes) as string)
64
62
  const indicatorBorderSize =
65
- Number(getVariableByName('stepIndicator/border/size', modes) as unknown) || 1
63
+ Number(getVariableByName('stepIndicator/border/size', modes) as unknown)
66
64
  const iconColor =
67
- (getVariableByName('stepIndicator/icon/color', modes) as string) || '#ffffff'
65
+ (getVariableByName('stepIndicator/icon/color', modes) as string)
68
66
  const stepStatusSize =
69
- Number(getVariableByName('stepStatus/size', modes) as unknown) || 18
67
+ Number(getVariableByName('stepStatus/size', modes) as unknown)
70
68
 
71
69
  const labelFontSize =
72
- Number(getVariableByName('stepIndicator/label/fontSize', modes) as unknown) || 12
70
+ Number(getVariableByName('stepIndicator/label/fontSize', modes) as unknown)
73
71
  const labelFontFamily =
74
- (getVariableByName('stepIndicator/label/fontFamily', modes) as string) || undefined
72
+ (getVariableByName('stepIndicator/label/fontFamily', modes) as string)
75
73
  const labelLineHeight =
76
- Number(getVariableByName('stepIndicator/label/lineHeight', modes) as unknown) || 14
74
+ Number(getVariableByName('stepIndicator/label/lineHeight', modes) as unknown)
77
75
  const labelFontWeight =
78
- (getVariableByName('stepIndicator/label/fontWeight', modes) as string) || '500'
76
+ (getVariableByName('stepIndicator/label/fontWeight', modes) as string)
79
77
 
80
78
  const lineSize =
81
- Number(getVariableByName('steperItem/lineSize', modes) as unknown) || 2
79
+ Number(getVariableByName('steperItem/lineSize', modes) as unknown)
82
80
  const lineColor =
83
- (getVariableByName('steperItem/line', modes) as string) || '#5d00b5'
81
+ (getVariableByName('steperItem/line', modes) as string)
84
82
  const badgeWrapGap =
85
- Number(getVariableByName('steperItem/badgeWrap/gap', modes) as unknown) || 2
83
+ Number(getVariableByName('steperItem/badgeWrap/gap', modes) as unknown)
86
84
 
87
85
  const containerStyle: ViewStyle = {
88
86
  flexDirection: 'row',
@@ -24,17 +24,15 @@ export function StepLabel({
24
24
  style,
25
25
  }: StepLabelProps) {
26
26
  const titleColor =
27
- (getVariableByName('steperItem/title/color', modes) as string) || '#0d0d0f'
27
+ (getVariableByName('steperItem/title/color', modes) as string)
28
28
  const titleFontSize =
29
- Number(getVariableByName('steperItem/title/fontSize', modes) as unknown) || 14
29
+ Number(getVariableByName('steperItem/title/fontSize', modes) as unknown)
30
30
  const titleFontFamily =
31
- (getVariableByName('steperItem/title/fontFamily', modes) as string) ||
32
- undefined
31
+ (getVariableByName('steperItem/title/fontFamily', modes) as string)
33
32
  const titleLineHeight =
34
- Number(getVariableByName('steperItem/title/lineHeight', modes) as unknown) ||
35
- 18
33
+ Number(getVariableByName('steperItem/title/lineHeight', modes) as unknown)
36
34
  const titleFontWeight =
37
- (getVariableByName('steperItem/title/fontWeight', modes) as string) || '700'
35
+ (getVariableByName('steperItem/title/fontWeight', modes) as string)
38
36
 
39
37
  // The Subtitle (supportingText) and Meta both default to the "Neutral"
40
38
  // AppearanceBrand. A caller-supplied `AppearanceBrand` still wins (it is
@@ -44,40 +42,31 @@ export function StepLabel({
44
42
  const metaModes = { AppearanceBrand: 'Neutral', ...modes }
45
43
 
46
44
  const subtitleColor =
47
- (getVariableByName('steperItem/subtitle/color', subtitleModes) as string) ||
48
- '#3d4047'
45
+ (getVariableByName('steperItem/subtitle/color', subtitleModes) as string)
49
46
  const subtitleFontSize =
50
- Number(
51
- getVariableByName('steperItem/subtitle/fontSize', subtitleModes) as unknown
52
- ) || 12
47
+ Number(getVariableByName('steperItem/subtitle/fontSize', subtitleModes) as unknown)
53
48
  const subtitleFontFamily =
54
- (getVariableByName('steperItem/subtitle/fontFamily', subtitleModes) as string) ||
55
- undefined
49
+ (getVariableByName('steperItem/subtitle/fontFamily', subtitleModes) as string)
56
50
  const subtitleLineHeight =
57
- Number(
58
- getVariableByName('steperItem/subtitle/lineHeight', subtitleModes) as unknown
59
- ) || 16
51
+ Number(getVariableByName('steperItem/subtitle/lineHeight', subtitleModes) as unknown)
60
52
  const subtitleFontWeight =
61
- (getVariableByName('steperItem/subtitle/fontWeight', subtitleModes) as string) ||
62
- '400'
53
+ (getVariableByName('steperItem/subtitle/fontWeight', subtitleModes) as string)
63
54
 
64
55
  const metaColor =
65
- (getVariableByName('steperItem/meta/color', metaModes) as string) || '#f7ab21'
56
+ (getVariableByName('steperItem/meta/color', metaModes) as string)
66
57
  const metaFontSize =
67
- Number(getVariableByName('steperItem/meta/fontSize', metaModes) as unknown) || 10
58
+ Number(getVariableByName('steperItem/meta/fontSize', metaModes) as unknown)
68
59
  // The Figma variable is authored as "fontFamily Copy" (with a space + suffix).
69
60
  // Match the literal Figma name to avoid a missing-variable warning.
70
61
  const metaFontFamily =
71
- (getVariableByName('steperItem/meta/fontFamily Copy', metaModes) as string) ||
72
- undefined
62
+ (getVariableByName('steperItem/meta/fontFamily Copy', metaModes) as string)
73
63
  const metaLineHeight =
74
- Number(getVariableByName('steperItem/meta/lineHeight', metaModes) as unknown) ||
75
- 12
64
+ Number(getVariableByName('steperItem/meta/lineHeight', metaModes) as unknown)
76
65
  const metaFontWeight =
77
- (getVariableByName('steperItem/meta/fontWeight', metaModes) as string) || '700'
66
+ (getVariableByName('steperItem/meta/fontWeight', metaModes) as string)
78
67
 
79
68
  const textGap =
80
- Number(getVariableByName('steperItem/textWrap/gap', modes) as unknown) || 2
69
+ Number(getVariableByName('steperItem/textWrap/gap', modes) as unknown)
81
70
 
82
71
  const titleStyle: TextStyle = {
83
72
  color: titleColor,
@@ -22,11 +22,10 @@ export default function Stepper({
22
22
  style,
23
23
  }: StepperProps) {
24
24
  const paddingHorizontal =
25
- Number(getVariableByName('stepper/padding/horizontal', modes) as unknown) ||
26
- 8
25
+ Number(getVariableByName('stepper/padding/horizontal', modes) as unknown)
27
26
  const paddingVertical =
28
- Number(getVariableByName('stepper/padding/vertical', modes) as unknown) || 0
29
- const gap = Number(getVariableByName('stepper/gap', modes) as unknown) || 2
27
+ Number(getVariableByName('stepper/padding/vertical', modes) as unknown)
28
+ const gap = Number(getVariableByName('stepper/gap', modes) as unknown)
30
29
 
31
30
  const containerStyle: ViewStyle = {
32
31
  paddingHorizontal,