jfs-components 0.1.8 → 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 (704) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/lib/commonjs/components/Accordion/Accordion.js +2 -1
  3. package/lib/commonjs/components/AccordionCheckbox/AccordionCheckbox.js +4 -3
  4. package/lib/commonjs/components/AccountCard/AccountCard.js +4 -3
  5. package/lib/commonjs/components/ActionFooter/ActionFooter.js +7 -24
  6. package/lib/commonjs/components/ActionTile/ActionTile.js +10 -10
  7. package/lib/commonjs/components/AllocationComparisonChart/AllocationComparisonChart.js +9 -6
  8. package/lib/commonjs/components/AmountInput/AmountInput.js +3 -3
  9. package/lib/commonjs/components/AreaLineChart/AreaLineChart.js +13 -9
  10. package/lib/commonjs/components/Attached/Attached.js +1 -1
  11. package/lib/commonjs/components/Avatar/Avatar.js +10 -10
  12. package/lib/commonjs/components/AvatarGroup/AvatarGroup.js +9 -9
  13. package/lib/commonjs/components/Badge/Badge.js +55 -16
  14. package/lib/commonjs/components/BenefitCard/BenefitCard.js +95 -21
  15. package/lib/commonjs/components/BottomNav/BottomNav.js +2 -2
  16. package/lib/commonjs/components/BottomNavItem/BottomNavItem.js +3 -3
  17. package/lib/commonjs/components/BrandChip/BrandChip.js +3 -3
  18. package/lib/commonjs/components/Button/Button.js +32 -19
  19. package/lib/commonjs/components/Card/Card.js +20 -20
  20. package/lib/commonjs/components/CardAdvisory/CardAdvisory.js +8 -7
  21. package/lib/commonjs/components/CardBankAccount/CardBankAccount.js +3 -2
  22. package/lib/commonjs/components/CardCTA/CardCTA.js +215 -45
  23. package/lib/commonjs/components/CardFeedback/CardFeedback.js +18 -18
  24. package/lib/commonjs/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
  25. package/lib/commonjs/components/CardInsight/CardInsight.js +6 -3
  26. package/lib/commonjs/components/Carousel/Carousel.js +18 -12
  27. package/lib/commonjs/components/CarouselCardAccounts/CarouselCardAccounts.js +75 -0
  28. package/lib/commonjs/components/Checkbox/Checkbox.js +6 -13
  29. package/lib/commonjs/components/ChipGroup/ChipGroup.js +1 -1
  30. package/lib/commonjs/components/ChipSelect/ChipSelect.js +11 -11
  31. package/lib/commonjs/components/CircularProgressBar/CircularProgressBar.js +12 -8
  32. package/lib/commonjs/components/CircularProgressBarDoted/CircularProgressBarDoted.js +11 -10
  33. package/lib/commonjs/components/CircularRating/CircularRating.js +5 -4
  34. package/lib/commonjs/components/ClusterBubble/ClusterBubble.js +3 -2
  35. package/lib/commonjs/components/CompareTable/CompareTable.js +88 -59
  36. package/lib/commonjs/components/CoverageBarComparison/CoverageBarComparison.js +3 -2
  37. package/lib/commonjs/components/DebitCard/DebitCard.js +18 -18
  38. package/lib/commonjs/components/Disclaimer/Disclaimer.js +5 -5
  39. package/lib/commonjs/components/DonutChart/DonutChart.js +15 -14
  40. package/lib/commonjs/components/Drawer/Drawer.js +60 -60
  41. package/lib/commonjs/components/Dropdown/Dropdown.js +25 -25
  42. package/lib/commonjs/components/DropdownInput/DropdownInput.js +13 -12
  43. package/lib/commonjs/components/EmptyState/EmptyState.js +14 -14
  44. package/lib/commonjs/components/ExpandableCheckbox/ExpandableCheckbox.js +2 -1
  45. package/lib/commonjs/components/FilterBar/FilterBar.js +2 -2
  46. package/lib/commonjs/components/Form/Form.js +3 -3
  47. package/lib/commonjs/components/FormField/FormField.js +48 -8
  48. package/lib/commonjs/components/FullscreenModal/FullscreenModal.js +24 -24
  49. package/lib/commonjs/components/Gauge/Gauge.js +9 -9
  50. package/lib/commonjs/components/HoldingsCard/HoldingsCard.js +13 -12
  51. package/lib/commonjs/components/Icon/Icon.js +6 -6
  52. package/lib/commonjs/components/IconCapsule/IconCapsule.js +7 -7
  53. package/lib/commonjs/components/InputSearch/InputSearch.js +9 -9
  54. package/lib/commonjs/components/InstitutionBadge/InstitutionBadge.js +5 -4
  55. package/lib/commonjs/components/ListGroup/ListGroup.js +10 -9
  56. package/lib/commonjs/components/ListItem/ListItem.js +13 -12
  57. package/lib/commonjs/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
  58. package/lib/commonjs/components/LottiePlayer/LottiePlayer.js +2 -2
  59. package/lib/commonjs/components/LottiePlayer/LottiePlayer.web.js +2 -2
  60. package/lib/commonjs/components/MediaCard/MediaCard.js +25 -23
  61. package/lib/commonjs/components/MessageField/MessageField.js +8 -8
  62. package/lib/commonjs/components/MetricLegendItem/MetricLegendItem.js +3 -2
  63. package/lib/commonjs/components/MoneyValue/MoneyValue.js +7 -7
  64. package/lib/commonjs/components/MonthlyStatusGrid/MonthlyStatusGrid.js +6 -3
  65. package/lib/commonjs/components/NavArrow/NavArrow.js +8 -8
  66. package/lib/commonjs/components/NoteInput/NoteInput.js +12 -12
  67. package/lib/commonjs/components/Nudge/Nudge.js +20 -20
  68. package/lib/commonjs/components/OTP/OTP.js +15 -15
  69. package/lib/commonjs/components/PageHero/PageHero.js +16 -16
  70. package/lib/commonjs/components/PaymentFeedback/PaymentFeedback.js +23 -23
  71. package/lib/commonjs/components/Popup/Popup.js +1 -1
  72. package/lib/commonjs/components/PoweredByLabel/PoweredByLabel.js +3 -2
  73. package/lib/commonjs/components/ProductMerchandisingCard/ProductMerchandisingCard.js +107 -33
  74. package/lib/commonjs/components/ProductOverview/ProductOverview.js +4 -3
  75. package/lib/commonjs/components/ProgressBadge/ProgressBadge.js +7 -7
  76. package/lib/commonjs/components/ProjectionMarker/ProjectionMarker.js +3 -2
  77. package/lib/commonjs/components/Radio/Radio.js +8 -8
  78. package/lib/commonjs/components/RechargeCard/RechargeCard.js +31 -31
  79. package/lib/commonjs/components/SavingsGoalSummary/SavingsGoalSummary.js +59 -12
  80. package/lib/commonjs/components/ScrollArea/ScrollArea.js +126 -0
  81. package/lib/commonjs/components/Section/Section.js +27 -26
  82. package/lib/commonjs/components/Slider/Slider.js +3 -2
  83. package/lib/commonjs/components/Stack/Stack.js +86 -0
  84. package/lib/commonjs/components/StatusHero/StatusHero.js +14 -14
  85. package/lib/commonjs/components/Stepper/Step.js +16 -16
  86. package/lib/commonjs/components/Stepper/StepLabel.js +16 -16
  87. package/lib/commonjs/components/Stepper/Stepper.js +3 -3
  88. package/lib/commonjs/components/SuggestiveSearch/SuggestiveSearch.js +20 -11
  89. package/lib/commonjs/components/SummaryTile/SummaryTile.js +3 -2
  90. package/lib/commonjs/components/SupportText/SupportText.js +6 -6
  91. package/lib/commonjs/components/SupportText/SupportTextIcon.js +2 -2
  92. package/lib/commonjs/components/Table/Table.js +324 -0
  93. package/lib/commonjs/components/Text/Text.js +15 -2
  94. package/lib/commonjs/components/TextInput/TextInput.js +23 -15
  95. package/lib/commonjs/components/TextSegment/TextSegment.js +15 -2
  96. package/lib/commonjs/components/ThreadHero/ThreadHero.js +21 -22
  97. package/lib/commonjs/components/Title/Title.js +39 -16
  98. package/lib/commonjs/components/Toast/Toast.js +18 -17
  99. package/lib/commonjs/components/Toggle/Toggle.js +3 -11
  100. package/lib/commonjs/components/Tooltip/Tooltip.js +12 -12
  101. package/lib/commonjs/components/TransactionBubble/TransactionBubble.js +15 -14
  102. package/lib/commonjs/components/TransactionDetails/TransactionDetails.js +10 -10
  103. package/lib/commonjs/components/TransactionStatus/TransactionStatus.js +12 -11
  104. package/lib/commonjs/components/UpiHandle/UpiHandle.js +17 -17
  105. package/lib/commonjs/components/index.js +58 -0
  106. package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
  107. package/lib/commonjs/design-tokens/figma-modes.generated.js +51 -42
  108. package/lib/commonjs/icons/components/Icon4g.js +19 -0
  109. package/lib/commonjs/icons/components/Icon4gltedata.js +19 -0
  110. package/lib/commonjs/icons/components/Icon5g.js +19 -0
  111. package/lib/commonjs/icons/components/Icon5gdoubleplus.js +19 -0
  112. package/lib/commonjs/icons/components/Icon5gplus.js +19 -0
  113. package/lib/commonjs/icons/components/IconAdblocker.js +19 -0
  114. package/lib/commonjs/icons/components/IconAdblockplus.js +19 -0
  115. package/lib/commonjs/icons/components/IconAnalytics.js +19 -0
  116. package/lib/commonjs/icons/components/IconAnalyticsdata.js +19 -0
  117. package/lib/commonjs/icons/components/IconAnalyticspiechart.js +19 -0
  118. package/lib/commonjs/icons/components/IconAnalyticspiecharttree.js +19 -0
  119. package/lib/commonjs/icons/components/IconAnalyticspiecharttwo.js +19 -0
  120. package/lib/commonjs/icons/components/IconCompoundinterest.js +19 -0
  121. package/lib/commonjs/icons/components/IconConsumptionaccounted.js +19 -0
  122. package/lib/commonjs/icons/components/IconConsumptionaverage.js +19 -0
  123. package/lib/commonjs/icons/components/IconConsumptionhigh.js +19 -0
  124. package/lib/commonjs/icons/components/IconConsumptionlow.js +19 -0
  125. package/lib/commonjs/icons/components/IconConsumptionunaccounted.js +19 -0
  126. package/lib/commonjs/icons/components/IconCsvdoc.js +19 -0
  127. package/lib/commonjs/icons/components/IconDatabase.js +19 -0
  128. package/lib/commonjs/icons/components/IconDigitalecosystem.js +19 -0
  129. package/lib/commonjs/icons/components/IconDigitalselfservice.js +19 -0
  130. package/lib/commonjs/icons/components/IconDistribution.js +19 -0
  131. package/lib/commonjs/icons/components/IconDocument.js +19 -0
  132. package/lib/commonjs/icons/components/IconDocumentdoc.js +19 -0
  133. package/lib/commonjs/icons/components/IconDocumentjpg.js +19 -0
  134. package/lib/commonjs/icons/components/IconDocumentodt.js +19 -0
  135. package/lib/commonjs/icons/components/IconDocumentpdf.js +19 -0
  136. package/lib/commonjs/icons/components/IconDocumentpng.js +19 -0
  137. package/lib/commonjs/icons/components/IconDocumentraw.js +19 -0
  138. package/lib/commonjs/icons/components/IconDocumentrtf.js +19 -0
  139. package/lib/commonjs/icons/components/IconDocumentsettings.js +19 -0
  140. package/lib/commonjs/icons/components/IconDocumenttif.js +19 -0
  141. package/lib/commonjs/icons/components/IconDocumenttxt.js +19 -0
  142. package/lib/commonjs/icons/components/IconDocumentunknown.js +19 -0
  143. package/lib/commonjs/icons/components/IconDocumentxls.js +19 -0
  144. package/lib/commonjs/icons/components/IconDocumentxlsx.js +19 -0
  145. package/lib/commonjs/icons/components/IconFilerequest.js +19 -0
  146. package/lib/commonjs/icons/components/IconFilesend.js +19 -0
  147. package/lib/commonjs/icons/components/IconFileshare.js +19 -0
  148. package/lib/commonjs/icons/components/IconFindinpage.js +19 -0
  149. package/lib/commonjs/icons/components/IconFolder.js +19 -0
  150. package/lib/commonjs/icons/components/IconFolderbookmarks.js +19 -0
  151. package/lib/commonjs/icons/components/IconFolderfavorites.js +19 -0
  152. package/lib/commonjs/icons/components/IconFolderlocked.js +19 -0
  153. package/lib/commonjs/icons/components/IconFoldermovefiles.js +19 -0
  154. package/lib/commonjs/icons/components/IconFolderpublic.js +19 -0
  155. package/lib/commonjs/icons/components/IconFolderrated.js +19 -0
  156. package/lib/commonjs/icons/components/IconFolderrequest.js +19 -0
  157. package/lib/commonjs/icons/components/IconForm.js +19 -0
  158. package/lib/commonjs/icons/components/IconFormadd.js +19 -0
  159. package/lib/commonjs/icons/components/IconForms.js +19 -0
  160. package/lib/commonjs/icons/components/IconGraphincreasing.js +19 -0
  161. package/lib/commonjs/icons/components/IconGraphlow.js +19 -0
  162. package/lib/commonjs/icons/components/IconGraphtable.js +19 -0
  163. package/lib/commonjs/icons/components/IconHealthreport.js +19 -0
  164. package/lib/commonjs/icons/components/IconHubmode.js +19 -0
  165. package/lib/commonjs/icons/components/IconInfrastructure.js +19 -0
  166. package/lib/commonjs/icons/components/IconInterestlow.js +19 -0
  167. package/lib/commonjs/icons/components/IconLte.js +19 -0
  168. package/lib/commonjs/icons/components/IconNetworkfuture.js +19 -0
  169. package/lib/commonjs/icons/components/IconPagesettings.js +19 -0
  170. package/lib/commonjs/icons/components/IconPptxdoc.js +19 -0
  171. package/lib/commonjs/icons/components/IconPreferrednumber.js +19 -0
  172. package/lib/commonjs/icons/components/IconPremiumnumber.js +19 -0
  173. package/lib/commonjs/icons/components/IconProjection.js +19 -0
  174. package/lib/commonjs/icons/components/IconRequest.js +19 -0
  175. package/lib/commonjs/icons/components/IconRoutestraffic.js +19 -0
  176. package/lib/commonjs/icons/components/IconTechnology.js +19 -0
  177. package/lib/commonjs/icons/components/IconVolte.js +19 -0
  178. package/lib/commonjs/icons/components/IconVonr.js +19 -0
  179. package/lib/commonjs/icons/components/IconVowifi.js +19 -0
  180. package/lib/commonjs/icons/components/IconVpndata.js +19 -0
  181. package/lib/commonjs/icons/components/index.js +803 -0
  182. package/lib/commonjs/icons/registry.js +2 -2
  183. package/lib/commonjs/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.js +11 -3
  184. package/lib/commonjs/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.js +8 -4
  185. package/lib/commonjs/utils/index.js +25 -0
  186. package/lib/commonjs/utils/react-utils.js +118 -0
  187. package/lib/commonjs/utils/shadow.js +200 -0
  188. package/lib/commonjs/utils/web-platform-utils.js +59 -0
  189. package/lib/module/components/Accordion/Accordion.js +3 -2
  190. package/lib/module/components/AccordionCheckbox/AccordionCheckbox.js +5 -4
  191. package/lib/module/components/AccountCard/AccountCard.js +5 -4
  192. package/lib/module/components/ActionFooter/ActionFooter.js +7 -24
  193. package/lib/module/components/ActionTile/ActionTile.js +10 -10
  194. package/lib/module/components/AllocationComparisonChart/AllocationComparisonChart.js +10 -7
  195. package/lib/module/components/AmountInput/AmountInput.js +3 -3
  196. package/lib/module/components/AreaLineChart/AreaLineChart.js +14 -10
  197. package/lib/module/components/Attached/Attached.js +1 -1
  198. package/lib/module/components/Avatar/Avatar.js +10 -10
  199. package/lib/module/components/AvatarGroup/AvatarGroup.js +9 -9
  200. package/lib/module/components/Badge/Badge.js +57 -18
  201. package/lib/module/components/BenefitCard/BenefitCard.js +95 -21
  202. package/lib/module/components/BottomNav/BottomNav.js +2 -2
  203. package/lib/module/components/BottomNavItem/BottomNavItem.js +3 -3
  204. package/lib/module/components/BrandChip/BrandChip.js +4 -4
  205. package/lib/module/components/Button/Button.js +32 -19
  206. package/lib/module/components/Card/Card.js +20 -20
  207. package/lib/module/components/CardAdvisory/CardAdvisory.js +9 -8
  208. package/lib/module/components/CardBankAccount/CardBankAccount.js +4 -3
  209. package/lib/module/components/CardCTA/CardCTA.js +216 -46
  210. package/lib/module/components/CardFeedback/CardFeedback.js +18 -18
  211. package/lib/module/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
  212. package/lib/module/components/CardInsight/CardInsight.js +6 -3
  213. package/lib/module/components/Carousel/Carousel.js +18 -12
  214. package/lib/module/components/CarouselCardAccounts/CarouselCardAccounts.js +71 -0
  215. package/lib/module/components/Checkbox/Checkbox.js +2 -9
  216. package/lib/module/components/ChipGroup/ChipGroup.js +1 -1
  217. package/lib/module/components/ChipSelect/ChipSelect.js +11 -11
  218. package/lib/module/components/CircularProgressBar/CircularProgressBar.js +13 -9
  219. package/lib/module/components/CircularProgressBarDoted/CircularProgressBarDoted.js +12 -11
  220. package/lib/module/components/CircularRating/CircularRating.js +6 -5
  221. package/lib/module/components/ClusterBubble/ClusterBubble.js +4 -3
  222. package/lib/module/components/CompareTable/CompareTable.js +89 -60
  223. package/lib/module/components/CoverageBarComparison/CoverageBarComparison.js +4 -3
  224. package/lib/module/components/DebitCard/DebitCard.js +18 -18
  225. package/lib/module/components/Disclaimer/Disclaimer.js +5 -5
  226. package/lib/module/components/DonutChart/DonutChart.js +16 -15
  227. package/lib/module/components/Drawer/Drawer.js +60 -60
  228. package/lib/module/components/Dropdown/Dropdown.js +26 -26
  229. package/lib/module/components/DropdownInput/DropdownInput.js +14 -13
  230. package/lib/module/components/EmptyState/EmptyState.js +14 -14
  231. package/lib/module/components/ExpandableCheckbox/ExpandableCheckbox.js +2 -1
  232. package/lib/module/components/FilterBar/FilterBar.js +2 -2
  233. package/lib/module/components/Form/Form.js +3 -3
  234. package/lib/module/components/FormField/FormField.js +51 -11
  235. package/lib/module/components/FullscreenModal/FullscreenModal.js +24 -24
  236. package/lib/module/components/Gauge/Gauge.js +9 -9
  237. package/lib/module/components/HoldingsCard/HoldingsCard.js +14 -13
  238. package/lib/module/components/Icon/Icon.js +6 -6
  239. package/lib/module/components/IconCapsule/IconCapsule.js +7 -7
  240. package/lib/module/components/InputSearch/InputSearch.js +9 -9
  241. package/lib/module/components/InstitutionBadge/InstitutionBadge.js +6 -5
  242. package/lib/module/components/ListGroup/ListGroup.js +11 -10
  243. package/lib/module/components/ListItem/ListItem.js +14 -13
  244. package/lib/module/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
  245. package/lib/module/components/LottiePlayer/LottiePlayer.js +2 -2
  246. package/lib/module/components/LottiePlayer/LottiePlayer.web.js +2 -2
  247. package/lib/module/components/MediaCard/MediaCard.js +25 -23
  248. package/lib/module/components/MessageField/MessageField.js +8 -8
  249. package/lib/module/components/MetricLegendItem/MetricLegendItem.js +4 -3
  250. package/lib/module/components/MoneyValue/MoneyValue.js +7 -7
  251. package/lib/module/components/MonthlyStatusGrid/MonthlyStatusGrid.js +7 -4
  252. package/lib/module/components/NavArrow/NavArrow.js +8 -8
  253. package/lib/module/components/NoteInput/NoteInput.js +12 -12
  254. package/lib/module/components/Nudge/Nudge.js +20 -20
  255. package/lib/module/components/OTP/OTP.js +15 -15
  256. package/lib/module/components/PageHero/PageHero.js +16 -16
  257. package/lib/module/components/PaymentFeedback/PaymentFeedback.js +23 -23
  258. package/lib/module/components/Popup/Popup.js +1 -1
  259. package/lib/module/components/PoweredByLabel/PoweredByLabel.js +4 -3
  260. package/lib/module/components/ProductMerchandisingCard/ProductMerchandisingCard.js +109 -35
  261. package/lib/module/components/ProductOverview/ProductOverview.js +5 -4
  262. package/lib/module/components/ProgressBadge/ProgressBadge.js +8 -8
  263. package/lib/module/components/ProjectionMarker/ProjectionMarker.js +4 -3
  264. package/lib/module/components/Radio/Radio.js +9 -9
  265. package/lib/module/components/RechargeCard/RechargeCard.js +31 -31
  266. package/lib/module/components/SavingsGoalSummary/SavingsGoalSummary.js +60 -13
  267. package/lib/module/components/ScrollArea/ScrollArea.js +121 -0
  268. package/lib/module/components/Section/Section.js +28 -27
  269. package/lib/module/components/Slider/Slider.js +4 -3
  270. package/lib/module/components/Stack/Stack.js +81 -0
  271. package/lib/module/components/StatusHero/StatusHero.js +14 -14
  272. package/lib/module/components/Stepper/Step.js +16 -16
  273. package/lib/module/components/Stepper/StepLabel.js +16 -16
  274. package/lib/module/components/Stepper/Stepper.js +3 -3
  275. package/lib/module/components/SuggestiveSearch/SuggestiveSearch.js +20 -11
  276. package/lib/module/components/SummaryTile/SummaryTile.js +4 -3
  277. package/lib/module/components/SupportText/SupportText.js +6 -6
  278. package/lib/module/components/SupportText/SupportTextIcon.js +2 -2
  279. package/lib/module/components/Table/Table.js +315 -0
  280. package/lib/module/components/Text/Text.js +16 -3
  281. package/lib/module/components/TextInput/TextInput.js +23 -15
  282. package/lib/module/components/TextSegment/TextSegment.js +16 -3
  283. package/lib/module/components/ThreadHero/ThreadHero.js +22 -23
  284. package/lib/module/components/Title/Title.js +40 -17
  285. package/lib/module/components/Toast/Toast.js +19 -18
  286. package/lib/module/components/Toggle/Toggle.js +4 -12
  287. package/lib/module/components/Tooltip/Tooltip.js +12 -12
  288. package/lib/module/components/TransactionBubble/TransactionBubble.js +16 -15
  289. package/lib/module/components/TransactionDetails/TransactionDetails.js +10 -10
  290. package/lib/module/components/TransactionStatus/TransactionStatus.js +13 -12
  291. package/lib/module/components/UpiHandle/UpiHandle.js +18 -18
  292. package/lib/module/components/index.js +4 -0
  293. package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
  294. package/lib/module/design-tokens/figma-modes.generated.js +51 -42
  295. package/lib/module/icons/components/Icon4g.js +12 -0
  296. package/lib/module/icons/components/Icon4gltedata.js +12 -0
  297. package/lib/module/icons/components/Icon5g.js +12 -0
  298. package/lib/module/icons/components/Icon5gdoubleplus.js +12 -0
  299. package/lib/module/icons/components/Icon5gplus.js +12 -0
  300. package/lib/module/icons/components/IconAdblocker.js +12 -0
  301. package/lib/module/icons/components/IconAdblockplus.js +12 -0
  302. package/lib/module/icons/components/IconAnalytics.js +12 -0
  303. package/lib/module/icons/components/IconAnalyticsdata.js +12 -0
  304. package/lib/module/icons/components/IconAnalyticspiechart.js +12 -0
  305. package/lib/module/icons/components/IconAnalyticspiecharttree.js +12 -0
  306. package/lib/module/icons/components/IconAnalyticspiecharttwo.js +12 -0
  307. package/lib/module/icons/components/IconCompoundinterest.js +12 -0
  308. package/lib/module/icons/components/IconConsumptionaccounted.js +12 -0
  309. package/lib/module/icons/components/IconConsumptionaverage.js +12 -0
  310. package/lib/module/icons/components/IconConsumptionhigh.js +12 -0
  311. package/lib/module/icons/components/IconConsumptionlow.js +12 -0
  312. package/lib/module/icons/components/IconConsumptionunaccounted.js +12 -0
  313. package/lib/module/icons/components/IconCsvdoc.js +12 -0
  314. package/lib/module/icons/components/IconDatabase.js +12 -0
  315. package/lib/module/icons/components/IconDigitalecosystem.js +12 -0
  316. package/lib/module/icons/components/IconDigitalselfservice.js +12 -0
  317. package/lib/module/icons/components/IconDistribution.js +12 -0
  318. package/lib/module/icons/components/IconDocument.js +12 -0
  319. package/lib/module/icons/components/IconDocumentdoc.js +12 -0
  320. package/lib/module/icons/components/IconDocumentjpg.js +12 -0
  321. package/lib/module/icons/components/IconDocumentodt.js +12 -0
  322. package/lib/module/icons/components/IconDocumentpdf.js +12 -0
  323. package/lib/module/icons/components/IconDocumentpng.js +12 -0
  324. package/lib/module/icons/components/IconDocumentraw.js +12 -0
  325. package/lib/module/icons/components/IconDocumentrtf.js +12 -0
  326. package/lib/module/icons/components/IconDocumentsettings.js +12 -0
  327. package/lib/module/icons/components/IconDocumenttif.js +12 -0
  328. package/lib/module/icons/components/IconDocumenttxt.js +12 -0
  329. package/lib/module/icons/components/IconDocumentunknown.js +12 -0
  330. package/lib/module/icons/components/IconDocumentxls.js +12 -0
  331. package/lib/module/icons/components/IconDocumentxlsx.js +12 -0
  332. package/lib/module/icons/components/IconFilerequest.js +12 -0
  333. package/lib/module/icons/components/IconFilesend.js +12 -0
  334. package/lib/module/icons/components/IconFileshare.js +12 -0
  335. package/lib/module/icons/components/IconFindinpage.js +12 -0
  336. package/lib/module/icons/components/IconFolder.js +12 -0
  337. package/lib/module/icons/components/IconFolderbookmarks.js +12 -0
  338. package/lib/module/icons/components/IconFolderfavorites.js +12 -0
  339. package/lib/module/icons/components/IconFolderlocked.js +12 -0
  340. package/lib/module/icons/components/IconFoldermovefiles.js +12 -0
  341. package/lib/module/icons/components/IconFolderpublic.js +12 -0
  342. package/lib/module/icons/components/IconFolderrated.js +12 -0
  343. package/lib/module/icons/components/IconFolderrequest.js +12 -0
  344. package/lib/module/icons/components/IconForm.js +12 -0
  345. package/lib/module/icons/components/IconFormadd.js +12 -0
  346. package/lib/module/icons/components/IconForms.js +12 -0
  347. package/lib/module/icons/components/IconGraphincreasing.js +12 -0
  348. package/lib/module/icons/components/IconGraphlow.js +12 -0
  349. package/lib/module/icons/components/IconGraphtable.js +12 -0
  350. package/lib/module/icons/components/IconHealthreport.js +12 -0
  351. package/lib/module/icons/components/IconHubmode.js +12 -0
  352. package/lib/module/icons/components/IconInfrastructure.js +12 -0
  353. package/lib/module/icons/components/IconInterestlow.js +12 -0
  354. package/lib/module/icons/components/IconLte.js +12 -0
  355. package/lib/module/icons/components/IconNetworkfuture.js +12 -0
  356. package/lib/module/icons/components/IconPagesettings.js +12 -0
  357. package/lib/module/icons/components/IconPptxdoc.js +12 -0
  358. package/lib/module/icons/components/IconPreferrednumber.js +12 -0
  359. package/lib/module/icons/components/IconPremiumnumber.js +12 -0
  360. package/lib/module/icons/components/IconProjection.js +12 -0
  361. package/lib/module/icons/components/IconRequest.js +12 -0
  362. package/lib/module/icons/components/IconRoutestraffic.js +12 -0
  363. package/lib/module/icons/components/IconTechnology.js +12 -0
  364. package/lib/module/icons/components/IconVolte.js +12 -0
  365. package/lib/module/icons/components/IconVonr.js +12 -0
  366. package/lib/module/icons/components/IconVowifi.js +12 -0
  367. package/lib/module/icons/components/IconVpndata.js +12 -0
  368. package/lib/module/icons/components/index.js +73 -0
  369. package/lib/module/icons/registry.js +2 -2
  370. package/lib/module/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.js +11 -3
  371. package/lib/module/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.js +8 -4
  372. package/lib/module/utils/index.js +2 -1
  373. package/lib/module/utils/react-utils.js +115 -0
  374. package/lib/module/utils/shadow.js +194 -0
  375. package/lib/module/utils/web-platform-utils.js +58 -0
  376. package/lib/typescript/src/components/Accordion/Accordion.d.ts +7 -1
  377. package/lib/typescript/src/components/AccordionCheckbox/AccordionCheckbox.d.ts +7 -1
  378. package/lib/typescript/src/components/AccountCard/AccountCard.d.ts +7 -1
  379. package/lib/typescript/src/components/AllocationComparisonChart/AllocationComparisonChart.d.ts +7 -1
  380. package/lib/typescript/src/components/AreaLineChart/AreaLineChart.d.ts +8 -1
  381. package/lib/typescript/src/components/Badge/Badge.d.ts +32 -2
  382. package/lib/typescript/src/components/BenefitCard/BenefitCard.d.ts +33 -4
  383. package/lib/typescript/src/components/BrandChip/BrandChip.d.ts +7 -1
  384. package/lib/typescript/src/components/Button/Button.d.ts +7 -1
  385. package/lib/typescript/src/components/CardAdvisory/CardAdvisory.d.ts +7 -1
  386. package/lib/typescript/src/components/CardBankAccount/CardBankAccount.d.ts +7 -1
  387. package/lib/typescript/src/components/CardCTA/CardCTA.d.ts +27 -5
  388. package/lib/typescript/src/components/Carousel/Carousel.d.ts +11 -1
  389. package/lib/typescript/src/components/CarouselCardAccounts/CarouselCardAccounts.d.ts +57 -0
  390. package/lib/typescript/src/components/CircularProgressBar/CircularProgressBar.d.ts +7 -1
  391. package/lib/typescript/src/components/CircularProgressBarDoted/CircularProgressBarDoted.d.ts +7 -1
  392. package/lib/typescript/src/components/CircularRating/CircularRating.d.ts +7 -1
  393. package/lib/typescript/src/components/ClusterBubble/ClusterBubble.d.ts +7 -1
  394. package/lib/typescript/src/components/CompareTable/CompareTable.d.ts +7 -1
  395. package/lib/typescript/src/components/CoverageBarComparison/CoverageBarComparison.d.ts +7 -1
  396. package/lib/typescript/src/components/DonutChart/DonutChart.d.ts +7 -1
  397. package/lib/typescript/src/components/Dropdown/Dropdown.d.ts +7 -1
  398. package/lib/typescript/src/components/DropdownInput/DropdownInput.d.ts +6 -0
  399. package/lib/typescript/src/components/ExpandableCheckbox/ExpandableCheckbox.d.ts +7 -1
  400. package/lib/typescript/src/components/HoldingsCard/HoldingsCard.d.ts +7 -1
  401. package/lib/typescript/src/components/InstitutionBadge/InstitutionBadge.d.ts +7 -1
  402. package/lib/typescript/src/components/ListGroup/ListGroup.d.ts +7 -1
  403. package/lib/typescript/src/components/ListItem/ListItem.d.ts +7 -1
  404. package/lib/typescript/src/components/MetricLegendItem/MetricLegendItem.d.ts +7 -1
  405. package/lib/typescript/src/components/MonthlyStatusGrid/MonthlyStatusGrid.d.ts +14 -2
  406. package/lib/typescript/src/components/PoweredByLabel/PoweredByLabel.d.ts +7 -1
  407. package/lib/typescript/src/components/ProductMerchandisingCard/ProductMerchandisingCard.d.ts +7 -1
  408. package/lib/typescript/src/components/ProductOverview/ProductOverview.d.ts +7 -1
  409. package/lib/typescript/src/components/ProgressBadge/ProgressBadge.d.ts +7 -1
  410. package/lib/typescript/src/components/ProjectionMarker/ProjectionMarker.d.ts +7 -1
  411. package/lib/typescript/src/components/SavingsGoalSummary/SavingsGoalSummary.d.ts +11 -1
  412. package/lib/typescript/src/components/ScrollArea/ScrollArea.d.ts +77 -0
  413. package/lib/typescript/src/components/Section/Section.d.ts +7 -1
  414. package/lib/typescript/src/components/Slider/Slider.d.ts +6 -0
  415. package/lib/typescript/src/components/Stack/Stack.d.ts +81 -0
  416. package/lib/typescript/src/components/SummaryTile/SummaryTile.d.ts +7 -1
  417. package/lib/typescript/src/components/Table/Table.d.ts +139 -0
  418. package/lib/typescript/src/components/Text/Text.d.ts +16 -1
  419. package/lib/typescript/src/components/TextSegment/TextSegment.d.ts +16 -1
  420. package/lib/typescript/src/components/ThreadHero/ThreadHero.d.ts +7 -1
  421. package/lib/typescript/src/components/Title/Title.d.ts +17 -1
  422. package/lib/typescript/src/components/Toast/Toast.d.ts +7 -1
  423. package/lib/typescript/src/components/TransactionBubble/TransactionBubble.d.ts +7 -1
  424. package/lib/typescript/src/components/TransactionStatus/TransactionStatus.d.ts +7 -1
  425. package/lib/typescript/src/components/UpiHandle/UpiHandle.d.ts +7 -1
  426. package/lib/typescript/src/components/index.d.ts +6 -2
  427. package/lib/typescript/src/design-tokens/figma-modes.generated.d.ts +23 -15
  428. package/lib/typescript/src/icons/components/Icon4g.d.ts +3 -0
  429. package/lib/typescript/src/icons/components/Icon4gltedata.d.ts +3 -0
  430. package/lib/typescript/src/icons/components/Icon5g.d.ts +3 -0
  431. package/lib/typescript/src/icons/components/Icon5gdoubleplus.d.ts +3 -0
  432. package/lib/typescript/src/icons/components/Icon5gplus.d.ts +3 -0
  433. package/lib/typescript/src/icons/components/IconAdblocker.d.ts +3 -0
  434. package/lib/typescript/src/icons/components/IconAdblockplus.d.ts +3 -0
  435. package/lib/typescript/src/icons/components/IconAnalytics.d.ts +3 -0
  436. package/lib/typescript/src/icons/components/IconAnalyticsdata.d.ts +3 -0
  437. package/lib/typescript/src/icons/components/IconAnalyticspiechart.d.ts +3 -0
  438. package/lib/typescript/src/icons/components/IconAnalyticspiecharttree.d.ts +3 -0
  439. package/lib/typescript/src/icons/components/IconAnalyticspiecharttwo.d.ts +3 -0
  440. package/lib/typescript/src/icons/components/IconCompoundinterest.d.ts +3 -0
  441. package/lib/typescript/src/icons/components/IconConsumptionaccounted.d.ts +3 -0
  442. package/lib/typescript/src/icons/components/IconConsumptionaverage.d.ts +3 -0
  443. package/lib/typescript/src/icons/components/IconConsumptionhigh.d.ts +3 -0
  444. package/lib/typescript/src/icons/components/IconConsumptionlow.d.ts +3 -0
  445. package/lib/typescript/src/icons/components/IconConsumptionunaccounted.d.ts +3 -0
  446. package/lib/typescript/src/icons/components/IconCsvdoc.d.ts +3 -0
  447. package/lib/typescript/src/icons/components/IconDatabase.d.ts +3 -0
  448. package/lib/typescript/src/icons/components/IconDigitalecosystem.d.ts +3 -0
  449. package/lib/typescript/src/icons/components/IconDigitalselfservice.d.ts +3 -0
  450. package/lib/typescript/src/icons/components/IconDistribution.d.ts +3 -0
  451. package/lib/typescript/src/icons/components/IconDocument.d.ts +3 -0
  452. package/lib/typescript/src/icons/components/IconDocumentdoc.d.ts +3 -0
  453. package/lib/typescript/src/icons/components/IconDocumentjpg.d.ts +3 -0
  454. package/lib/typescript/src/icons/components/IconDocumentodt.d.ts +3 -0
  455. package/lib/typescript/src/icons/components/IconDocumentpdf.d.ts +3 -0
  456. package/lib/typescript/src/icons/components/IconDocumentpng.d.ts +3 -0
  457. package/lib/typescript/src/icons/components/IconDocumentraw.d.ts +3 -0
  458. package/lib/typescript/src/icons/components/IconDocumentrtf.d.ts +3 -0
  459. package/lib/typescript/src/icons/components/IconDocumentsettings.d.ts +3 -0
  460. package/lib/typescript/src/icons/components/IconDocumenttif.d.ts +3 -0
  461. package/lib/typescript/src/icons/components/IconDocumenttxt.d.ts +3 -0
  462. package/lib/typescript/src/icons/components/IconDocumentunknown.d.ts +3 -0
  463. package/lib/typescript/src/icons/components/IconDocumentxls.d.ts +3 -0
  464. package/lib/typescript/src/icons/components/IconDocumentxlsx.d.ts +3 -0
  465. package/lib/typescript/src/icons/components/IconFilerequest.d.ts +3 -0
  466. package/lib/typescript/src/icons/components/IconFilesend.d.ts +3 -0
  467. package/lib/typescript/src/icons/components/IconFileshare.d.ts +3 -0
  468. package/lib/typescript/src/icons/components/IconFindinpage.d.ts +3 -0
  469. package/lib/typescript/src/icons/components/IconFolder.d.ts +3 -0
  470. package/lib/typescript/src/icons/components/IconFolderbookmarks.d.ts +3 -0
  471. package/lib/typescript/src/icons/components/IconFolderfavorites.d.ts +3 -0
  472. package/lib/typescript/src/icons/components/IconFolderlocked.d.ts +3 -0
  473. package/lib/typescript/src/icons/components/IconFoldermovefiles.d.ts +3 -0
  474. package/lib/typescript/src/icons/components/IconFolderpublic.d.ts +3 -0
  475. package/lib/typescript/src/icons/components/IconFolderrated.d.ts +3 -0
  476. package/lib/typescript/src/icons/components/IconFolderrequest.d.ts +3 -0
  477. package/lib/typescript/src/icons/components/IconForm.d.ts +3 -0
  478. package/lib/typescript/src/icons/components/IconFormadd.d.ts +3 -0
  479. package/lib/typescript/src/icons/components/IconForms.d.ts +3 -0
  480. package/lib/typescript/src/icons/components/IconGraphincreasing.d.ts +3 -0
  481. package/lib/typescript/src/icons/components/IconGraphlow.d.ts +3 -0
  482. package/lib/typescript/src/icons/components/IconGraphtable.d.ts +3 -0
  483. package/lib/typescript/src/icons/components/IconHealthreport.d.ts +3 -0
  484. package/lib/typescript/src/icons/components/IconHubmode.d.ts +3 -0
  485. package/lib/typescript/src/icons/components/IconInfrastructure.d.ts +3 -0
  486. package/lib/typescript/src/icons/components/IconInterestlow.d.ts +3 -0
  487. package/lib/typescript/src/icons/components/IconLte.d.ts +3 -0
  488. package/lib/typescript/src/icons/components/IconNetworkfuture.d.ts +3 -0
  489. package/lib/typescript/src/icons/components/IconPagesettings.d.ts +3 -0
  490. package/lib/typescript/src/icons/components/IconPptxdoc.d.ts +3 -0
  491. package/lib/typescript/src/icons/components/IconPreferrednumber.d.ts +3 -0
  492. package/lib/typescript/src/icons/components/IconPremiumnumber.d.ts +3 -0
  493. package/lib/typescript/src/icons/components/IconProjection.d.ts +3 -0
  494. package/lib/typescript/src/icons/components/IconRequest.d.ts +3 -0
  495. package/lib/typescript/src/icons/components/IconRoutestraffic.d.ts +3 -0
  496. package/lib/typescript/src/icons/components/IconTechnology.d.ts +3 -0
  497. package/lib/typescript/src/icons/components/IconVolte.d.ts +3 -0
  498. package/lib/typescript/src/icons/components/IconVonr.d.ts +3 -0
  499. package/lib/typescript/src/icons/components/IconVowifi.d.ts +3 -0
  500. package/lib/typescript/src/icons/components/IconVpndata.d.ts +3 -0
  501. package/lib/typescript/src/icons/components/index.d.ts +73 -0
  502. package/lib/typescript/src/icons/registry.d.ts +1 -1
  503. package/lib/typescript/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.d.ts +31 -3
  504. package/lib/typescript/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.d.ts +18 -2
  505. package/lib/typescript/src/utils/index.d.ts +2 -0
  506. package/lib/typescript/src/utils/react-utils.d.ts +76 -0
  507. package/lib/typescript/src/utils/shadow.d.ts +72 -0
  508. package/lib/typescript/src/utils/web-platform-utils.d.ts +36 -0
  509. package/package.json +2 -1
  510. package/src/components/Accordion/Accordion.tsx +9 -2
  511. package/src/components/AccordionCheckbox/AccordionCheckbox.tsx +10 -3
  512. package/src/components/AccountCard/AccountCard.tsx +10 -3
  513. package/src/components/ActionFooter/ActionFooter.tsx +8 -26
  514. package/src/components/ActionTile/ActionTile.tsx +10 -10
  515. package/src/components/AllocationComparisonChart/AllocationComparisonChart.tsx +14 -4
  516. package/src/components/AmountInput/AmountInput.tsx +3 -3
  517. package/src/components/AreaLineChart/AreaLineChart.tsx +17 -7
  518. package/src/components/Attached/Attached.tsx +1 -1
  519. package/src/components/Avatar/Avatar.tsx +10 -10
  520. package/src/components/AvatarGroup/AvatarGroup.tsx +9 -9
  521. package/src/components/Badge/Badge.tsx +86 -17
  522. package/src/components/BenefitCard/BenefitCard.tsx +120 -27
  523. package/src/components/BottomNav/BottomNav.tsx +2 -2
  524. package/src/components/BottomNavItem/BottomNavItem.tsx +3 -3
  525. package/src/components/BrandChip/BrandChip.tsx +9 -3
  526. package/src/components/Button/Button.tsx +36 -19
  527. package/src/components/Card/Card.tsx +20 -20
  528. package/src/components/CardAdvisory/CardAdvisory.tsx +15 -8
  529. package/src/components/CardBankAccount/CardBankAccount.tsx +9 -2
  530. package/src/components/CardCTA/CardCTA.tsx +237 -64
  531. package/src/components/CardFeedback/CardFeedback.tsx +18 -18
  532. package/src/components/CardFinancialCondition/CardFinancialCondition.tsx +7 -10
  533. package/src/components/CardInsight/CardInsight.tsx +8 -4
  534. package/src/components/Carousel/Carousel.tsx +29 -12
  535. package/src/components/CarouselCardAccounts/CarouselCardAccounts.tsx +113 -0
  536. package/src/components/Checkbox/Checkbox.tsx +2 -8
  537. package/src/components/ChipGroup/ChipGroup.tsx +1 -1
  538. package/src/components/ChipSelect/ChipSelect.tsx +11 -11
  539. package/src/components/CircularProgressBar/CircularProgressBar.tsx +19 -9
  540. package/src/components/CircularProgressBarDoted/CircularProgressBarDoted.tsx +18 -11
  541. package/src/components/CircularRating/CircularRating.tsx +12 -5
  542. package/src/components/ClusterBubble/ClusterBubble.tsx +9 -2
  543. package/src/components/CompareTable/CompareTable.tsx +114 -66
  544. package/src/components/CoverageBarComparison/CoverageBarComparison.tsx +9 -2
  545. package/src/components/DebitCard/DebitCard.tsx +22 -22
  546. package/src/components/Disclaimer/Disclaimer.tsx +5 -5
  547. package/src/components/DonutChart/DonutChart.tsx +21 -48
  548. package/src/components/Drawer/Drawer.tsx +80 -71
  549. package/src/components/Dropdown/Dropdown.tsx +32 -30
  550. package/src/components/DropdownInput/DropdownInput.tsx +19 -19
  551. package/src/components/EmptyState/EmptyState.tsx +14 -14
  552. package/src/components/ExpandableCheckbox/ExpandableCheckbox.tsx +8 -1
  553. package/src/components/FilterBar/FilterBar.tsx +2 -2
  554. package/src/components/Form/Form.tsx +3 -3
  555. package/src/components/FormField/FormField.tsx +55 -15
  556. package/src/components/FullscreenModal/FullscreenModal.tsx +24 -24
  557. package/src/components/Gauge/Gauge.tsx +9 -9
  558. package/src/components/HoldingsCard/HoldingsCard.tsx +19 -12
  559. package/src/components/Icon/Icon.tsx +6 -6
  560. package/src/components/IconCapsule/IconCapsule.tsx +7 -7
  561. package/src/components/InputSearch/InputSearch.tsx +9 -9
  562. package/src/components/InstitutionBadge/InstitutionBadge.tsx +12 -8
  563. package/src/components/ListGroup/ListGroup.tsx +17 -10
  564. package/src/components/ListItem/ListItem.tsx +20 -13
  565. package/src/components/LottieIntroBlock/LottieIntroBlock.tsx +13 -16
  566. package/src/components/LottiePlayer/LottiePlayer.tsx +2 -2
  567. package/src/components/LottiePlayer/LottiePlayer.web.tsx +2 -2
  568. package/src/components/MediaCard/MediaCard.tsx +23 -23
  569. package/src/components/MessageField/MessageField.tsx +8 -16
  570. package/src/components/MetricLegendItem/MetricLegendItem.tsx +9 -2
  571. package/src/components/MoneyValue/MoneyValue.tsx +7 -7
  572. package/src/components/MonthlyStatusGrid/MonthlyStatusGrid.tsx +17 -2
  573. package/src/components/NavArrow/NavArrow.tsx +8 -8
  574. package/src/components/NoteInput/NoteInput.tsx +12 -12
  575. package/src/components/Nudge/Nudge.tsx +20 -20
  576. package/src/components/OTP/OTP.tsx +16 -16
  577. package/src/components/PageHero/PageHero.tsx +16 -16
  578. package/src/components/PaymentFeedback/PaymentFeedback.tsx +27 -27
  579. package/src/components/Popup/Popup.tsx +1 -1
  580. package/src/components/PoweredByLabel/PoweredByLabel.tsx +9 -2
  581. package/src/components/ProductMerchandisingCard/ProductMerchandisingCard.tsx +104 -37
  582. package/src/components/ProductOverview/ProductOverview.tsx +10 -3
  583. package/src/components/ProgressBadge/ProgressBadge.tsx +14 -8
  584. package/src/components/ProjectionMarker/ProjectionMarker.tsx +9 -2
  585. package/src/components/Radio/Radio.tsx +8 -9
  586. package/src/components/RechargeCard/RechargeCard.tsx +31 -31
  587. package/src/components/SavingsGoalSummary/SavingsGoalSummary.tsx +105 -13
  588. package/src/components/ScrollArea/ScrollArea.tsx +200 -0
  589. package/src/components/Section/Section.tsx +36 -29
  590. package/src/components/Slider/Slider.tsx +9 -2
  591. package/src/components/Stack/Stack.tsx +131 -0
  592. package/src/components/StatusHero/StatusHero.tsx +14 -14
  593. package/src/components/Stepper/Step.tsx +16 -18
  594. package/src/components/Stepper/StepLabel.tsx +16 -27
  595. package/src/components/Stepper/Stepper.tsx +3 -4
  596. package/src/components/SuggestiveSearch/SuggestiveSearch.tsx +20 -21
  597. package/src/components/SummaryTile/SummaryTile.tsx +9 -2
  598. package/src/components/SupportText/SupportText.tsx +6 -6
  599. package/src/components/SupportText/SupportTextIcon.tsx +2 -2
  600. package/src/components/Table/Table.tsx +449 -0
  601. package/src/components/Text/Text.tsx +28 -3
  602. package/src/components/TextInput/TextInput.tsx +21 -15
  603. package/src/components/TextSegment/TextSegment.tsx +27 -2
  604. package/src/components/ThreadHero/ThreadHero.tsx +27 -20
  605. package/src/components/Title/Title.tsx +50 -17
  606. package/src/components/Toast/Toast.tsx +24 -17
  607. package/src/components/Toggle/Toggle.tsx +5 -10
  608. package/src/components/Tooltip/Tooltip.tsx +12 -12
  609. package/src/components/TransactionBubble/TransactionBubble.tsx +22 -15
  610. package/src/components/TransactionDetails/TransactionDetails.tsx +10 -10
  611. package/src/components/TransactionStatus/TransactionStatus.tsx +18 -11
  612. package/src/components/UpiHandle/UpiHandle.tsx +24 -18
  613. package/src/components/index.ts +25 -2
  614. package/src/design-tokens/Coin Variables-variables-full.json +1 -1
  615. package/src/design-tokens/figma-modes.generated.ts +51 -42
  616. package/src/icons/components/Icon4g.tsx +11 -0
  617. package/src/icons/components/Icon4gltedata.tsx +11 -0
  618. package/src/icons/components/Icon5g.tsx +11 -0
  619. package/src/icons/components/Icon5gdoubleplus.tsx +11 -0
  620. package/src/icons/components/Icon5gplus.tsx +11 -0
  621. package/src/icons/components/IconAdblocker.tsx +11 -0
  622. package/src/icons/components/IconAdblockplus.tsx +11 -0
  623. package/src/icons/components/IconAnalytics.tsx +11 -0
  624. package/src/icons/components/IconAnalyticsdata.tsx +11 -0
  625. package/src/icons/components/IconAnalyticspiechart.tsx +11 -0
  626. package/src/icons/components/IconAnalyticspiecharttree.tsx +11 -0
  627. package/src/icons/components/IconAnalyticspiecharttwo.tsx +11 -0
  628. package/src/icons/components/IconCompoundinterest.tsx +11 -0
  629. package/src/icons/components/IconConsumptionaccounted.tsx +11 -0
  630. package/src/icons/components/IconConsumptionaverage.tsx +11 -0
  631. package/src/icons/components/IconConsumptionhigh.tsx +11 -0
  632. package/src/icons/components/IconConsumptionlow.tsx +11 -0
  633. package/src/icons/components/IconConsumptionunaccounted.tsx +11 -0
  634. package/src/icons/components/IconCsvdoc.tsx +11 -0
  635. package/src/icons/components/IconDatabase.tsx +11 -0
  636. package/src/icons/components/IconDigitalecosystem.tsx +11 -0
  637. package/src/icons/components/IconDigitalselfservice.tsx +11 -0
  638. package/src/icons/components/IconDistribution.tsx +11 -0
  639. package/src/icons/components/IconDocument.tsx +11 -0
  640. package/src/icons/components/IconDocumentdoc.tsx +11 -0
  641. package/src/icons/components/IconDocumentjpg.tsx +11 -0
  642. package/src/icons/components/IconDocumentodt.tsx +11 -0
  643. package/src/icons/components/IconDocumentpdf.tsx +11 -0
  644. package/src/icons/components/IconDocumentpng.tsx +11 -0
  645. package/src/icons/components/IconDocumentraw.tsx +11 -0
  646. package/src/icons/components/IconDocumentrtf.tsx +11 -0
  647. package/src/icons/components/IconDocumentsettings.tsx +11 -0
  648. package/src/icons/components/IconDocumenttif.tsx +11 -0
  649. package/src/icons/components/IconDocumenttxt.tsx +11 -0
  650. package/src/icons/components/IconDocumentunknown.tsx +11 -0
  651. package/src/icons/components/IconDocumentxls.tsx +11 -0
  652. package/src/icons/components/IconDocumentxlsx.tsx +11 -0
  653. package/src/icons/components/IconFilerequest.tsx +11 -0
  654. package/src/icons/components/IconFilesend.tsx +11 -0
  655. package/src/icons/components/IconFileshare.tsx +11 -0
  656. package/src/icons/components/IconFindinpage.tsx +11 -0
  657. package/src/icons/components/IconFolder.tsx +11 -0
  658. package/src/icons/components/IconFolderbookmarks.tsx +11 -0
  659. package/src/icons/components/IconFolderfavorites.tsx +11 -0
  660. package/src/icons/components/IconFolderlocked.tsx +11 -0
  661. package/src/icons/components/IconFoldermovefiles.tsx +11 -0
  662. package/src/icons/components/IconFolderpublic.tsx +11 -0
  663. package/src/icons/components/IconFolderrated.tsx +11 -0
  664. package/src/icons/components/IconFolderrequest.tsx +11 -0
  665. package/src/icons/components/IconForm.tsx +11 -0
  666. package/src/icons/components/IconFormadd.tsx +11 -0
  667. package/src/icons/components/IconForms.tsx +11 -0
  668. package/src/icons/components/IconGraphincreasing.tsx +11 -0
  669. package/src/icons/components/IconGraphlow.tsx +11 -0
  670. package/src/icons/components/IconGraphtable.tsx +11 -0
  671. package/src/icons/components/IconHealthreport.tsx +11 -0
  672. package/src/icons/components/IconHubmode.tsx +11 -0
  673. package/src/icons/components/IconInfrastructure.tsx +11 -0
  674. package/src/icons/components/IconInterestlow.tsx +11 -0
  675. package/src/icons/components/IconLte.tsx +11 -0
  676. package/src/icons/components/IconNetworkfuture.tsx +11 -0
  677. package/src/icons/components/IconPagesettings.tsx +11 -0
  678. package/src/icons/components/IconPptxdoc.tsx +11 -0
  679. package/src/icons/components/IconPreferrednumber.tsx +11 -0
  680. package/src/icons/components/IconPremiumnumber.tsx +11 -0
  681. package/src/icons/components/IconProjection.tsx +11 -0
  682. package/src/icons/components/IconRequest.tsx +11 -0
  683. package/src/icons/components/IconRoutestraffic.tsx +11 -0
  684. package/src/icons/components/IconTechnology.tsx +11 -0
  685. package/src/icons/components/IconVolte.tsx +11 -0
  686. package/src/icons/components/IconVonr.tsx +11 -0
  687. package/src/icons/components/IconVowifi.tsx +11 -0
  688. package/src/icons/components/IconVpndata.tsx +11 -0
  689. package/src/icons/components/index.ts +73 -0
  690. package/src/icons/registry.ts +293 -1
  691. package/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.tsx +32 -3
  692. package/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.tsx +25 -4
  693. package/src/utils/index.ts +2 -0
  694. package/src/utils/react-utils.ts +132 -0
  695. package/src/utils/shadow.ts +219 -0
  696. package/src/utils/web-platform-utils.ts +68 -0
  697. package/lib/commonjs/components/MediaCard/GlassFill.js +0 -62
  698. package/lib/commonjs/components/MediaCard/GlassFill.web.js +0 -48
  699. package/lib/module/components/MediaCard/GlassFill.js +0 -57
  700. package/lib/module/components/MediaCard/GlassFill.web.js +0 -43
  701. package/lib/typescript/src/components/MediaCard/GlassFill.d.ts +0 -47
  702. package/lib/typescript/src/components/MediaCard/GlassFill.web.d.ts +0 -20
  703. package/src/components/MediaCard/GlassFill.tsx +0 -89
  704. package/src/components/MediaCard/GlassFill.web.tsx +0 -53
@@ -3,13 +3,13 @@ import {
3
3
  Pressable,
4
4
  View,
5
5
  StyleSheet,
6
- Platform,
7
6
  ViewStyle,
8
7
  DimensionValue,
9
8
  StyleProp,
10
9
  } from 'react-native'
11
10
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
12
11
  import { EMPTY_MODES } from '../../utils/react-utils'
12
+ import { boxShadow } from '../../utils/shadow'
13
13
  import type { Modes } from '../../design-tokens'
14
14
 
15
15
  // ---------------------------------------------------------------------------
@@ -61,9 +61,9 @@ export const Radio = forwardRef<View, RadioProps>(function Radio({
61
61
  const [pressed, setPressed] = useState(false)
62
62
 
63
63
  // ---- Dimensions ----
64
- const widthStr = getVariableByName('radio/width', modes) || '18'
65
- const heightStr = getVariableByName('radio/height', modes) || '18'
66
- const selectorSizeStr = getVariableByName('radio/selector/size', modes) || '10'
64
+ const widthStr = getVariableByName('radio/width', modes)
65
+ const heightStr = getVariableByName('radio/height', modes)
66
+ const selectorSizeStr = getVariableByName('radio/selector/size', modes)
67
67
 
68
68
  const width = parseFloat(widthStr?.toString() || '18')
69
69
  const height = parseFloat(heightStr?.toString() || '18')
@@ -101,7 +101,7 @@ export const Radio = forwardRef<View, RadioProps>(function Radio({
101
101
  // ---- Colors & Border ----
102
102
 
103
103
  const resolveColor = (path: string, fallback: string) => {
104
- return getVariableByName(path, modes) || fallback
104
+ return getVariableByName(path, modes)
105
105
  }
106
106
 
107
107
  // Background Color
@@ -155,10 +155,9 @@ export const Radio = forwardRef<View, RadioProps>(function Radio({
155
155
  backgroundColor,
156
156
  justifyContent: 'center',
157
157
  alignItems: 'center',
158
- // Web shadow (ring)
159
- ...(Platform.OS === 'web' && shadowSize > 0 ? {
160
- boxShadow: `0px 0px 0px ${shadowSize}px ${shadowColor}`,
161
- } : {}),
158
+ // Focus/selected glow ring. Rendered via the unified boxShadow helper
159
+ // so it works on web + RN 0.76+ and degrades gracefully on older RN.
160
+ ...(shadowSize > 0 ? boxShadow(`0px 0px 0px ${shadowSize}px ${shadowColor}`) : {}),
162
161
  }
163
162
 
164
163
  const selectorStyle: ViewStyle = {
@@ -83,47 +83,47 @@ export default function RechargeCard({
83
83
  style,
84
84
  }: RechargeCardProps) {
85
85
  // Container Tokens (defaults mirror Figma node 2235:937).
86
- const backgroundColor = getVariableByName('rechargeCard/background', modes) || '#ffffff';
87
- const paddingHorizontal = parseInt(getVariableByName('rechargeCard/padding/horizontal', modes) || 16, 10);
88
- const paddingVertical = parseInt(getVariableByName('rechargeCard/padding/vertical', modes) || 20, 10);
89
- const gap = parseInt(getVariableByName('rechargeCard/gap', modes) || 20, 10);
90
- const radius = parseInt(getVariableByName('rechargeCard/radius', modes) || 20, 10);
91
- const minWidth = parseInt(getVariableByName('rechargeCard/minWidth', modes) || 312, 10);
92
- const strokeWidth = parseInt(getVariableByName('rechargeCard/strokeWidth', modes) || 1, 10);
93
- const strokeColor = getVariableByName('rechargeCard/stroke/color', modes) || '#ebebed';
86
+ const backgroundColor = getVariableByName('rechargeCard/background', modes);
87
+ const paddingHorizontal = parseInt(getVariableByName('rechargeCard/padding/horizontal', modes), 10);
88
+ const paddingVertical = parseInt(getVariableByName('rechargeCard/padding/vertical', modes), 10);
89
+ const gap = parseInt(getVariableByName('rechargeCard/gap', modes), 10);
90
+ const radius = parseInt(getVariableByName('rechargeCard/radius', modes), 10);
91
+ const minWidth = parseInt(getVariableByName('rechargeCard/minWidth', modes), 10);
92
+ const strokeWidth = parseInt(getVariableByName('rechargeCard/strokeWidth', modes), 10);
93
+ const strokeColor = getVariableByName('rechargeCard/stroke/color', modes);
94
94
 
95
95
  // Header Tokens
96
- const headerGap = parseInt(getVariableByName('rechargeCard/header/gap', modes) || 4, 10);
97
- const titleColor = getVariableByName('rechargeCard/title/color', modes) || '#000000';
98
- const titleFontSize = parseInt(getVariableByName('rechargeCard/title/fontSize', modes) || 12, 10);
99
- const titleFontFamily = getVariableByName('rechargeCard/title/fontFamily', modes) || 'JioType Var';
100
- const titleLineHeight = parseInt(getVariableByName('rechargeCard/title/lineHeight', modes) || 14, 10);
101
- const titleFontWeight = getVariableByName('rechargeCard/title/fontWeight', modes) || '700';
96
+ const headerGap = parseInt(getVariableByName('rechargeCard/header/gap', modes), 10);
97
+ const titleColor = getVariableByName('rechargeCard/title/color', modes);
98
+ const titleFontSize = parseInt(getVariableByName('rechargeCard/title/fontSize', modes), 10);
99
+ const titleFontFamily = getVariableByName('rechargeCard/title/fontFamily', modes);
100
+ const titleLineHeight = parseInt(getVariableByName('rechargeCard/title/lineHeight', modes), 10);
101
+ const titleFontWeight = getVariableByName('rechargeCard/title/fontWeight', modes);
102
102
 
103
103
  // Specs Tokens
104
- const specsGap = parseInt(getVariableByName('rechargeCard/specs/gap', modes) || 0, 10);
105
- const specItemGap = parseInt(getVariableByName('rechargeCard/specItem/gap', modes) || 4, 10);
104
+ const specsGap = parseInt(getVariableByName('rechargeCard/specs/gap', modes), 10);
105
+ const specItemGap = parseInt(getVariableByName('rechargeCard/specItem/gap', modes), 10);
106
106
 
107
107
  // Spec Label Tokens
108
- const specLabelColor = getVariableByName('rechargeCard/specItem/label/color', modes) || '#000000';
109
- const specLabelFontSize = parseInt(getVariableByName('rechargeCard/specItem/label/fontSize', modes) || 12, 10);
110
- const specLabelFontFamily = getVariableByName('rechargeCard/specItem/label/fontFamily', modes) || 'JioType Var';
111
- const specLabelLineHeight = parseInt(getVariableByName('rechargeCard/specItem/label/lineHeight', modes) || 14, 10);
112
- const specLabelFontWeight = getVariableByName('rechargeCard/specItem/label/fontWeight', modes) || '500';
108
+ const specLabelColor = getVariableByName('rechargeCard/specItem/label/color', modes);
109
+ const specLabelFontSize = parseInt(getVariableByName('rechargeCard/specItem/label/fontSize', modes), 10);
110
+ const specLabelFontFamily = getVariableByName('rechargeCard/specItem/label/fontFamily', modes);
111
+ const specLabelLineHeight = parseInt(getVariableByName('rechargeCard/specItem/label/lineHeight', modes), 10);
112
+ const specLabelFontWeight = getVariableByName('rechargeCard/specItem/label/fontWeight', modes);
113
113
 
114
114
  // Spec Value Tokens
115
- const specValueColor = getVariableByName('rechargeCard/specItem/value/color', modes) || '#000000';
116
- const specValueFontSize = parseInt(getVariableByName('rechargeCard/specItem/value/fontSize', modes) || 14, 10);
117
- const specValueFontFamily = getVariableByName('rechargeCard/specItem/value/fontFamily', modes) || 'JioType Var';
118
- const specValueLineHeight = parseInt(getVariableByName('rechargeCard/specItem/value/lineHeight', modes) || 17, 10);
119
- const specValueFontWeight = getVariableByName('rechargeCard/specItem/value/fontWeight', modes) || '500';
115
+ const specValueColor = getVariableByName('rechargeCard/specItem/value/color', modes);
116
+ const specValueFontSize = parseInt(getVariableByName('rechargeCard/specItem/value/fontSize', modes), 10);
117
+ const specValueFontFamily = getVariableByName('rechargeCard/specItem/value/fontFamily', modes);
118
+ const specValueLineHeight = parseInt(getVariableByName('rechargeCard/specItem/value/lineHeight', modes), 10);
119
+ const specValueFontWeight = getVariableByName('rechargeCard/specItem/value/fontWeight', modes);
120
120
 
121
121
  // Disclaimer Tokens
122
- const disclaimerColor = getVariableByName('rechargeCard/disclaimer/color', modes) || '#000000';
123
- const disclaimerFontSize = parseInt(getVariableByName('rechargeCard/disclaimer/fontSize', modes) || 10, 10);
124
- const disclaimerFontFamily = getVariableByName('rechargeCard/disclaimer/fontFamily', modes) || 'JioType Var';
125
- const disclaimerLineHeight = parseInt(getVariableByName('rechargeCard/disclaimer/lineHeight', modes) || 13, 10);
126
- const disclaimerFontWeight = getVariableByName('rechargeCard/disclaimer/fontWeight', modes) || '400';
122
+ const disclaimerColor = getVariableByName('rechargeCard/disclaimer/color', modes);
123
+ const disclaimerFontSize = parseInt(getVariableByName('rechargeCard/disclaimer/fontSize', modes), 10);
124
+ const disclaimerFontFamily = getVariableByName('rechargeCard/disclaimer/fontFamily', modes);
125
+ const disclaimerLineHeight = parseInt(getVariableByName('rechargeCard/disclaimer/lineHeight', modes), 10);
126
+ const disclaimerFontWeight = getVariableByName('rechargeCard/disclaimer/fontWeight', modes);
127
127
 
128
128
  const resolveFontWeight = (weight: string | number) => typeof weight === 'number' ? weight.toString() : weight;
129
129
 
@@ -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
@@ -14,7 +14,7 @@ import NavArrow from '../NavArrow/NavArrow'
14
14
  import IconCapsule from '../IconCapsule/IconCapsule'
15
15
  import ListItem from '../ListItem/ListItem'
16
16
  import { usePressableWebSupport, type WebAccessibilityProps } from '../../utils/web-platform-utils'
17
- import { EMPTY_MODES, cloneChildrenWithModes, flattenChildren } from '../../utils/react-utils'
17
+ import { EMPTY_MODES, cloneChildrenWithModes, flattenChildren, resolveTruncation } from '../../utils/react-utils'
18
18
  import type { Modes } from '../../design-tokens'
19
19
 
20
20
  // Match Button: delay the press visual on iOS so a scroll-cancelled touch
@@ -366,6 +366,12 @@ type SectionProps = {
366
366
  * Web-specific accessibility props (only used on web platform)
367
367
  */
368
368
  webAccessibilityProps?: WebAccessibilityProps;
369
+ /**
370
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
371
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
372
+ * lines as it needs even when horizontal space is tight.
373
+ */
374
+ disableTruncation?: boolean;
369
375
  } & React.ComponentProps<typeof View>;
370
376
 
371
377
  /**
@@ -402,32 +408,32 @@ interface SectionTokens {
402
408
  }
403
409
 
404
410
  function resolveSectionTokens(modes: Modes): SectionTokens {
405
- const backgroundColor = getVariableByName('section/background/color', modes) || '#ffffff'
406
- const sectionGap = (getVariableByName('section/gap', modes) || 12) as number
407
- const slotGap = (getVariableByName('slot/gap', modes) || 12) as number
408
- const paddingHorizontal = getVariableByName('section/padding/horizontal', modes) || 12
409
- const paddingVertical = getVariableByName('section/padding/vertical', modes) || 16
410
- const radius = getVariableByName('section/radius', modes) || 12
411
-
412
- const headerGap = getVariableByName('section/header/gap', modes) || 8
413
- const headerPaddingHorizontal = getVariableByName('section/header/padding/horizontal', modes) || 0
414
- const headerPaddingVertical = getVariableByName('section/header/padding/vertical', modes) || 0
415
-
416
- const titleColor = getVariableByName('section/title/color', modes) || '#0f0d0a'
417
- const titleFontSize = getVariableByName('section/title/fontSize', modes) || 18
418
- const titleLineHeight = getVariableByName('section/title/lineHeight', modes) || 20
419
- const titleFontFamily = getVariableByName('section/title/fontFamily', modes) || 'System'
420
- 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)
421
427
  const titleFontWeight =
422
428
  typeof titleFontWeightRaw === 'number'
423
429
  ? titleFontWeightRaw.toString()
424
430
  : titleFontWeightRaw
425
431
 
426
- const supportTextColor = getVariableByName('section/supportText/color', modes) || '#1f1a14'
427
- const supportTextFontSize = getVariableByName('section/supportText/fontSize', modes) || 14
428
- const supportTextLineHeight = getVariableByName('section/supportText/lineHeight', modes) || 18
429
- const supportTextFontFamily = getVariableByName('section/supportText/fontFamily', modes) || 'System'
430
- 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)
431
437
  const supportTextFontWeight =
432
438
  typeof supportTextFontWeightRaw === 'number'
433
439
  ? supportTextFontWeightRaw.toString()
@@ -483,6 +489,7 @@ function Section({
483
489
  accessibilityLabel: _accessibilityLabel,
484
490
  accessibilityHint,
485
491
  webAccessibilityProps,
492
+ disableTruncation,
486
493
  ...rest
487
494
  }: SectionProps) {
488
495
  // Focus and hover are still mirrored in React because they are visible,
@@ -527,7 +534,7 @@ function Section({
527
534
  <View style={headerWrapStyle}>
528
535
  <Text
529
536
  style={tokens.titleStyle}
530
- numberOfLines={1}
537
+ {...resolveTruncation(disableTruncation, 1)}
531
538
  accessibilityElementsHidden={true}
532
539
  importantForAccessibility="no"
533
540
  >
@@ -540,7 +547,7 @@ function Section({
540
547
  {showSupportText && (
541
548
  <Text
542
549
  style={tokens.supportTextStyle}
543
- numberOfLines={2}
550
+ {...resolveTruncation(disableTruncation, 2)}
544
551
  accessibilityElementsHidden={true}
545
552
  importantForAccessibility="no"
546
553
  >
@@ -758,11 +765,11 @@ function SectionBento({
758
765
  renderToggle,
759
766
  ...rest
760
767
  }: SectionBentoProps) {
761
- const backgroundColor = getVariableByName('section/background/color', modes) || '#ffffff'
762
- const gap = getVariableByName('section/gap', modes) || 12
763
- const paddingHorizontal = getVariableByName('section/padding/horizontal', modes) || 12
764
- const paddingVertical = getVariableByName('section/padding/vertical', modes) || 16
765
- 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)
766
773
 
767
774
  const containerStyle = useMemo<ViewStyle>(
768
775
  () => ({