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