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
@@ -1,7 +1,7 @@
1
1
  import React, { isValidElement, cloneElement, type ReactNode } from 'react'
2
2
  import { View, Text, type ViewStyle, type TextStyle } from 'react-native'
3
3
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
4
- import { EMPTY_MODES } from '../../utils/react-utils'
4
+ import { EMPTY_MODES, resolveTruncation } from '../../utils/react-utils'
5
5
  import type { Modes } from '../../design-tokens'
6
6
 
7
7
  export type ThreadHeroProps = {
@@ -17,6 +17,12 @@ export type ThreadHeroProps = {
17
17
  modes?: Modes
18
18
  /** Optional container style */
19
19
  style?: ViewStyle
20
+ /**
21
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
22
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
23
+ * lines as it needs even when horizontal space is tight.
24
+ */
25
+ disableTruncation?: boolean
20
26
  }
21
27
 
22
28
  /**
@@ -29,31 +35,32 @@ export default function ThreadHero({
29
35
  renderAvatar,
30
36
  modes = EMPTY_MODES,
31
37
  style,
38
+ disableTruncation,
32
39
  }: ThreadHeroProps) {
33
40
  // Container Gaps
34
- const containerGap = Number(getVariableByName('threadHero/gap', modes)) || 8
35
- const detailsGap = Number(getVariableByName('threadHero/details/gap', modes)) || 2
41
+ const containerGap = Number(getVariableByName('threadHero/gap', modes))
42
+ const detailsGap = Number(getVariableByName('threadHero/details/gap', modes))
36
43
 
37
44
  // Title Styles
38
- const titleColor = getVariableByName('threadHero/title/color', modes) || '#191b1e'
39
- const titleFontSize = Number(getVariableByName('threadHero/title/fontSize', modes)) || 16
40
- const titleFontFamily = getVariableByName('threadHero/title/fontFamily', modes) || 'System'
41
- const titleLineHeight = Number(getVariableByName('threadHero/title/lineHeight', modes)) || 20
42
- const titleFontWeight = getVariableByName('threadHero/title/fontWeight', modes) || '600'
45
+ const titleColor = getVariableByName('threadHero/title/color', modes)
46
+ const titleFontSize = Number(getVariableByName('threadHero/title/fontSize', modes))
47
+ const titleFontFamily = getVariableByName('threadHero/title/fontFamily', modes)
48
+ const titleLineHeight = Number(getVariableByName('threadHero/title/lineHeight', modes))
49
+ const titleFontWeight = getVariableByName('threadHero/title/fontWeight', modes)
43
50
 
44
51
  // Subtitle Styles
45
- const subtitleColor = getVariableByName('threadHero/subtitle/color', modes) || '#5d5d61'
46
- const subtitleFontSize = Number(getVariableByName('threadHero/subtitle/fontSize', modes)) || 12
47
- const subtitleFontFamily = getVariableByName('threadHero/subtitle/fontFamily', modes) || 'System'
48
- const subtitleLineHeight = Number(getVariableByName('threadHero/subtitle/lineHeight', modes)) || 18
49
- const subtitleFontWeight = getVariableByName('threadHero/subtitle/fontWeight', modes) || '500'
52
+ const subtitleColor = getVariableByName('threadHero/subtitle/color', modes)
53
+ const subtitleFontSize = Number(getVariableByName('threadHero/subtitle/fontSize', modes))
54
+ const subtitleFontFamily = getVariableByName('threadHero/subtitle/fontFamily', modes)
55
+ const subtitleLineHeight = Number(getVariableByName('threadHero/subtitle/lineHeight', modes))
56
+ const subtitleFontWeight = getVariableByName('threadHero/subtitle/fontWeight', modes)
50
57
 
51
58
  // Caption Styles
52
- const captionColor = getVariableByName('threadHero/caption/color', modes) || '#5d5d61'
53
- const captionFontSize = Number(getVariableByName('threadHero/caption/fontSize', modes)) || 12
54
- const captionFontFamily = getVariableByName('threadHero/caption/fontFamily', modes) || 'System'
55
- const captionLineHeight = Number(getVariableByName('threadHero/caption/lineHeight', modes)) || 18
56
- const captionFontWeight = getVariableByName('threadHero/caption/fontWeight', modes) || '500'
59
+ const captionColor = getVariableByName('threadHero/caption/color', modes)
60
+ const captionFontSize = Number(getVariableByName('threadHero/caption/fontSize', modes))
61
+ const captionFontFamily = getVariableByName('threadHero/caption/fontFamily', modes)
62
+ const captionLineHeight = Number(getVariableByName('threadHero/caption/lineHeight', modes))
63
+ const captionFontWeight = getVariableByName('threadHero/caption/fontWeight', modes)
57
64
 
58
65
  // Styles
59
66
  const containerStyle: ViewStyle = {
@@ -111,13 +118,13 @@ export default function ThreadHero({
111
118
  {avatarContent}
112
119
  {title ? <Text style={titleStyle}>{title}</Text> : null}
113
120
  {subtitle ? (
114
- <Text style={subtitleStyle} numberOfLines={1} ellipsizeMode="tail">
121
+ <Text style={subtitleStyle} {...resolveTruncation(disableTruncation, 1, 'tail')}>
115
122
  {subtitle}
116
123
  </Text>
117
124
  ) : null}
118
125
  </View>
119
126
  {caption ? (
120
- <Text style={captionStyle} numberOfLines={1} ellipsizeMode="tail">
127
+ <Text style={captionStyle} {...resolveTruncation(disableTruncation, 1, 'tail')}>
121
128
  {caption}
122
129
  </Text>
123
130
  ) : null}
@@ -2,7 +2,7 @@ import React from 'react'
2
2
  import { View, Text, type StyleProp, type ViewStyle, type TextStyle } from 'react-native'
3
3
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
4
4
  import { useTokens } from '../../design-tokens/JFSThemeProvider'
5
- import { EMPTY_MODES } from '../../utils/react-utils'
5
+ import { EMPTY_MODES, resolveTextLayout } from '../../utils/react-utils'
6
6
  import type { Modes } from '../../design-tokens'
7
7
 
8
8
  export type TitleProps = {
@@ -17,6 +17,22 @@ export type TitleProps = {
17
17
  /** Optional style overrides for the subtitle text. */
18
18
  subtitleStyle?: StyleProp<TextStyle>;
19
19
  numberOfLines?: number;
20
+ /**
21
+ * When `true`, disables truncation for both the title and subtitle: the
22
+ * trailing ellipsis (`…`) is never shown and the `numberOfLines` clamp is
23
+ * ignored. The text is also never shrunk by a tight parent — it keeps its
24
+ * full intrinsic size and overflows (even breaking the parent layout) rather
25
+ * than ever clipping into an ellipsis. The text still wraps onto multiple
26
+ * lines.
27
+ */
28
+ disableTruncation?: boolean;
29
+ /**
30
+ * When `true`, forces both the title and subtitle onto a single line with no
31
+ * wrapping (implies {@link disableTruncation}). On web the line overflows
32
+ * horizontally — brutally breaking the parent layout if it has to — instead
33
+ * of wrapping or truncating.
34
+ */
35
+ singleLine?: boolean;
20
36
  accessibilityLabel?: string;
21
37
  accessibilityHint?: string;
22
38
  } & React.ComponentProps<typeof View>;
@@ -35,6 +51,8 @@ function Title({
35
51
  textStyle,
36
52
  subtitleStyle,
37
53
  numberOfLines,
54
+ disableTruncation,
55
+ singleLine,
38
56
  accessibilityLabel,
39
57
  accessibilityHint,
40
58
  ...rest
@@ -43,16 +61,16 @@ function Title({
43
61
  const modes = { ...globalModes, ...propModes }
44
62
 
45
63
  const paddingHorizontal =
46
- getVariableByName('title/padding/horizontal', modes) || 16
64
+ getVariableByName('title/padding/horizontal', modes)
47
65
  const paddingVertical =
48
- getVariableByName('title/padding/vertical', modes) || 8
49
- const gap = getVariableByName('title/gap', modes) || 8
66
+ getVariableByName('title/padding/vertical', modes)
67
+ const gap = getVariableByName('title/gap', modes)
50
68
 
51
69
  const labelColor =
52
- getVariableByName('title/label/color', modes) || '#0d0d0f'
53
- const fontSize = getVariableByName('title/fontSize', modes) || 26
70
+ getVariableByName('title/label/color', modes)
71
+ const fontSize = getVariableByName('title/fontSize', modes)
54
72
  const rawLineHeight =
55
- getVariableByName('title/lineHeight', modes) || 26
73
+ getVariableByName('title/lineHeight', modes)
56
74
  // The Figma title tokens ship with `lineHeight === fontSize` (26/26). On
57
75
  // native (especially Android) that produces a Text box exactly `lineHeight`
58
76
  // tall, which clips descenders like p/g/y/q/j at the bottom — particularly
@@ -61,28 +79,28 @@ function Title({
61
79
  // the original value is preserved.
62
80
  const lineHeight = Math.max(rawLineHeight, Math.ceil(fontSize * 1.2))
63
81
  const fontFamily =
64
- getVariableByName('title/fontFamily', modes) || 'System'
82
+ getVariableByName('title/fontFamily', modes)
65
83
  const fontWeightRaw =
66
- getVariableByName('title/fontWeight', modes) || 900
84
+ getVariableByName('title/fontWeight', modes)
67
85
  const fontWeight =
68
86
  typeof fontWeightRaw === 'number'
69
87
  ? fontWeightRaw.toString()
70
88
  : fontWeightRaw
71
89
 
72
90
  const subtitleColor =
73
- getVariableByName('pageSubtitle/label/color', modes) || '#0d0d0f'
91
+ getVariableByName('pageSubtitle/label/color', modes)
74
92
  const subtitleFontSize =
75
- getVariableByName('pageSubtitle/fontSize', modes) || 14
93
+ getVariableByName('pageSubtitle/fontSize', modes)
76
94
  const subtitleRawLineHeight =
77
- getVariableByName('pageSubtitle/lineHeight', modes) || 18
95
+ getVariableByName('pageSubtitle/lineHeight', modes)
78
96
  const subtitleLineHeight = Math.max(
79
97
  subtitleRawLineHeight,
80
98
  Math.ceil(subtitleFontSize * 1.2)
81
99
  )
82
100
  const subtitleFontFamily =
83
- getVariableByName('pageSubtitle/fontFamily', modes) || 'System'
101
+ getVariableByName('pageSubtitle/fontFamily', modes)
84
102
  const subtitleFontWeightRaw =
85
- getVariableByName('pageSubtitle/fontWeight', modes) || 500
103
+ getVariableByName('pageSubtitle/fontWeight', modes)
86
104
  const subtitleFontWeight =
87
105
  typeof subtitleFontWeightRaw === 'number'
88
106
  ? subtitleFontWeightRaw.toString()
@@ -118,6 +136,20 @@ function Title({
118
136
  textAlign: TEXT_ALIGN_MAP[textAlign],
119
137
  }
120
138
 
139
+ // `style` from the layout helper must be merged AFTER the consumer override
140
+ // so the brutal overflow / no-wrap behaviour always wins.
141
+ const { style: titleLayoutStyle, ...titleTruncation } = resolveTextLayout({
142
+ disableTruncation,
143
+ singleLine,
144
+ numberOfLines: numberOfLines !== undefined ? numberOfLines : 1,
145
+ })
146
+ // The subtitle has never been line-clamped, so it only picks up the escape
147
+ // hatches (overflow / single-line) — `numberOfLines` is intentionally omitted.
148
+ const { style: subtitleLayoutStyle, ...subtitleTruncation } = resolveTextLayout({
149
+ disableTruncation,
150
+ singleLine,
151
+ })
152
+
121
153
  return (
122
154
  <View
123
155
  style={[containerStyle, style]}
@@ -127,8 +159,8 @@ function Title({
127
159
  {...rest}
128
160
  >
129
161
  <Text
130
- style={[titleTextStyle, textStyle]}
131
- numberOfLines={numberOfLines !== undefined ? numberOfLines : 1}
162
+ style={[titleTextStyle, textStyle, titleLayoutStyle]}
163
+ {...titleTruncation}
132
164
  accessibilityElementsHidden={true}
133
165
  importantForAccessibility="no"
134
166
  >
@@ -136,7 +168,8 @@ function Title({
136
168
  </Text>
137
169
  {subtitle != null && (
138
170
  <Text
139
- style={[subtitleTextStyle, subtitleStyle]}
171
+ style={[subtitleTextStyle, subtitleStyle, subtitleLayoutStyle]}
172
+ {...subtitleTruncation}
140
173
  accessibilityElementsHidden={true}
141
174
  importantForAccessibility="no"
142
175
  >
@@ -3,7 +3,7 @@ import { StyleSheet, Text, type StyleProp, type ViewStyle } from 'react-native'
3
3
  import Animated, { FadeIn, FadeOut, SlideInDown, SlideInUp } from 'react-native-reanimated'
4
4
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
5
5
  import { closeToast, type ToastPlacement } from './useToast'
6
- import { EMPTY_MODES } from '../../utils/react-utils'
6
+ import { EMPTY_MODES, resolveTruncation } from '../../utils/react-utils'
7
7
  import type { Modes } from '../../design-tokens'
8
8
 
9
9
  export interface ToastProps {
@@ -14,6 +14,12 @@ export interface ToastProps {
14
14
  modes?: Modes | undefined
15
15
  placement?: ToastPlacement | undefined
16
16
  style?: StyleProp<ViewStyle> | undefined
17
+ /**
18
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
19
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
20
+ * lines as it needs even when horizontal space is tight.
21
+ */
22
+ disableTruncation?: boolean
17
23
  }
18
24
 
19
25
  const ANIMATION_DURATION = 250
@@ -26,6 +32,7 @@ function Toast({
26
32
  modes = EMPTY_MODES,
27
33
  placement = 'bottom',
28
34
  style,
35
+ disableTruncation,
29
36
  }: ToastProps) {
30
37
  const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null)
31
38
 
@@ -37,21 +44,21 @@ function Toast({
37
44
  }
38
45
  }, [id, timeout])
39
46
 
40
- const backgroundColor = getVariableByName('toast/background', modes) || '#303338'
41
- const foreground = getVariableByName('toast/foreground', modes) || '#ffffff'
42
- const fontSize = getVariableByName('toast/fontSize', modes) || 14
43
- const fontFamily = getVariableByName('toast/fontFamily', modes) || undefined
44
- const fontWeight = getVariableByName('toast/fontWeight', modes) || '500'
45
- const lineHeight = getVariableByName('toast/lineHeight', modes) || 18
46
- const radius = getVariableByName('toast/radius', modes) || 14
47
- const paddingHorizontal = getVariableByName('toast/padding/horizontal', modes) || 16
48
- const paddingVertical = getVariableByName('toast/padding/vertical', modes) || 14
49
- const gap = getVariableByName('toast/gap', modes) || 8
50
- const borderWidth = getVariableByName('toast/border/size', modes) || 1
51
- const borderColor = getVariableByName('toast/border/color', modes) || 'rgba(255,255,255,0.1)'
52
- const shadowBlurPrimary = getVariableByName('toast/shadow/primary/blur', modes) || 48
53
- const shadowOffsetYPrimary = getVariableByName('toast/shadow/primary/offsetY', modes) || 16
54
- const shadowColorPrimary = getVariableByName('toast/shadow/primary/color', modes) || 'rgba(13,13,15,0.16)'
47
+ const backgroundColor = getVariableByName('toast/background', modes)
48
+ const foreground = getVariableByName('toast/foreground', modes)
49
+ const fontSize = getVariableByName('toast/fontSize', modes)
50
+ const fontFamily = getVariableByName('toast/fontFamily', modes)
51
+ const fontWeight = getVariableByName('toast/fontWeight', modes)
52
+ const lineHeight = getVariableByName('toast/lineHeight', modes)
53
+ const radius = getVariableByName('toast/radius', modes)
54
+ const paddingHorizontal = getVariableByName('toast/padding/horizontal', modes)
55
+ const paddingVertical = getVariableByName('toast/padding/vertical', modes)
56
+ const gap = getVariableByName('toast/gap', modes)
57
+ const borderWidth = getVariableByName('toast/border/size', modes)
58
+ const borderColor = getVariableByName('toast/border/color', modes)
59
+ const shadowBlurPrimary = getVariableByName('toast/shadow/primary/blur', modes)
60
+ const shadowOffsetYPrimary = getVariableByName('toast/shadow/primary/offsetY', modes)
61
+ const shadowColorPrimary = getVariableByName('toast/shadow/primary/color', modes)
55
62
 
56
63
  const enterAnimation = placement === 'top'
57
64
  ? SlideInUp.duration(ANIMATION_DURATION)
@@ -88,7 +95,7 @@ function Toast({
88
95
  accessibilityRole="alert"
89
96
  accessibilityLiveRegion="assertive"
90
97
  >
91
- <Text style={textStyle} numberOfLines={2}>
98
+ <Text style={textStyle} {...resolveTruncation(disableTruncation, 2)}>
92
99
  {title}
93
100
  </Text>
94
101
  </Animated.View>
@@ -2,12 +2,12 @@ import React, { useCallback, useState } from 'react'
2
2
  import {
3
3
  Pressable,
4
4
  View,
5
- Platform,
6
5
  type StyleProp,
7
6
  type ViewStyle,
8
7
  } from 'react-native'
9
8
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
10
9
  import { EMPTY_MODES } from '../../utils/react-utils'
10
+ import { boxShadow } from '../../utils/shadow'
11
11
  import type { Modes } from '../../design-tokens'
12
12
 
13
13
  export interface ToggleProps {
@@ -89,15 +89,10 @@ function Toggle({
89
89
  opacity: disabled ? 0.5 : 1,
90
90
  }
91
91
 
92
- const thumbShadow: ViewStyle = Platform.OS === 'web'
93
- ? { boxShadow: `${thumbShadowOffsetX}px ${thumbShadowOffsetY}px ${thumbShadowRadius}px 0px ${thumbShadowColor}` } as ViewStyle
94
- : {
95
- shadowColor: thumbShadowColor as string,
96
- shadowOffset: { width: thumbShadowOffsetX as number, height: thumbShadowOffsetY as number },
97
- shadowRadius: thumbShadowRadius as number,
98
- shadowOpacity: 1,
99
- elevation: 4,
100
- }
92
+ const thumbShadow: ViewStyle = boxShadow(
93
+ `${thumbShadowOffsetX}px ${thumbShadowOffsetY}px ${thumbShadowRadius}px 0px ${thumbShadowColor}`,
94
+ { elevation: 4 },
95
+ )
101
96
 
102
97
  const thumbStyle: ViewStyle = {
103
98
  width: thumbSize as number,
@@ -263,18 +263,18 @@ export function TooltipContent({
263
263
  const { width: windowWidth, height: windowHeight } = Dimensions.get('window')
264
264
 
265
265
  // Tokens
266
- const bgColor = (getVariableByName('tooltip/background', modes) as string) || '#0f0d0a'
267
- const paddingH = Number(getVariableByName('tooltip/padding/horizontal', modes) || 12)
268
- const paddingV = Number(getVariableByName('tooltip/padding/vertical', modes) || 8)
269
- const radius = Number(getVariableByName('radius', modes) || 8)
270
- const maxWidthToken = Number(getVariableByName('maxWidth', modes) || 280)
271
- const arrowWidth = Number(getVariableByName('tooltip/tipItem/width', modes) || 16)
272
- const arrowHeight = Number(getVariableByName('tooltip/tipItem/height', modes) || 8)
273
- const labelColor = (getVariableByName('tooltip/label/color', modes) as string) || '#ffffff'
274
- const fontSize = Number(getVariableByName('tooltip/label/fontSize', modes) || 14)
275
- const fontWeight = (getVariableByName('tooltip/label/fontWeight', modes) as string) || '500'
276
- const lineHeight = Number(getVariableByName('tooltip/label/lineHeight', modes) || 18)
277
- const fontFamily = (getVariableByName('tooltip/lable/fontFamily', modes) as string) || undefined
266
+ const bgColor = (getVariableByName('tooltip/background', modes) as string)
267
+ const paddingH = Number(getVariableByName('tooltip/padding/horizontal', modes))
268
+ const paddingV = Number(getVariableByName('tooltip/padding/vertical', modes))
269
+ const radius = Number(getVariableByName('radius', modes))
270
+ const maxWidthToken = Number(getVariableByName('maxWidth', modes))
271
+ const arrowWidth = Number(getVariableByName('tooltip/tipItem/width', modes))
272
+ const arrowHeight = Number(getVariableByName('tooltip/tipItem/height', modes))
273
+ const labelColor = (getVariableByName('tooltip/label/color', modes) as string)
274
+ const fontSize = Number(getVariableByName('tooltip/label/fontSize', modes))
275
+ const fontWeight = (getVariableByName('tooltip/label/fontWeight', modes) as string)
276
+ const lineHeight = Number(getVariableByName('tooltip/label/lineHeight', modes))
277
+ const fontFamily = (getVariableByName('tooltip/lable/fontFamily', modes) as string)
278
278
 
279
279
  if (!isVisible) return null
280
280
 
@@ -4,7 +4,7 @@ import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
4
4
  import MoneyValue from '../MoneyValue/MoneyValue'
5
5
  import TransactionStatus from '../TransactionStatus/TransactionStatus'
6
6
  import NavArrow from '../NavArrow/NavArrow'
7
- import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
7
+ import { EMPTY_MODES, cloneChildrenWithModes, resolveTruncation } from '../../utils/react-utils'
8
8
  import { usePressableWebSupport, type WebAccessibilityProps } from '../../utils/web-platform-utils'
9
9
  import type { Modes } from '../../design-tokens'
10
10
 
@@ -23,6 +23,12 @@ export type TransactionBubbleProps = {
23
23
  accessibilityLabel?: string
24
24
  accessibilityHint?: string
25
25
  webAccessibilityProps?: WebAccessibilityProps
26
+ /**
27
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
28
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
29
+ * lines as it needs even when horizontal space is tight.
30
+ */
31
+ disableTruncation?: boolean
26
32
  } & Omit<PressableProps, 'style' | 'children' | 'onPress'>
27
33
 
28
34
  /**
@@ -56,6 +62,7 @@ function TransactionBubble({
56
62
  accessibilityLabel,
57
63
  accessibilityHint,
58
64
  webAccessibilityProps,
65
+ disableTruncation,
59
66
  ...rest
60
67
  }: TransactionBubbleProps) {
61
68
  const resolvedModes = {
@@ -63,21 +70,21 @@ function TransactionBubble({
63
70
  'Context3': 'Transaction Bubble',
64
71
  }
65
72
 
66
- const padding = Number(getVariableByName('transactionBubble/padding', resolvedModes)) || 16
67
- const radius = Number(getVariableByName('transactionBubble/radius', resolvedModes)) || 23
68
- const borderSize = Number(getVariableByName('transactionBubble/border/size', resolvedModes)) || 1
69
- const backgroundColor = getVariableByName('transactionBubble/background', resolvedModes) || '#ffffff'
70
- const borderColor = getVariableByName('transactionBubble/border/color', resolvedModes) || '#e5e5e5'
71
- const bubbleGap = Number(getVariableByName('transactionBubble/gap', resolvedModes)) || 8
72
- const moneyValueWrapGap = Number(getVariableByName('transactionBubble/wrap/gap', resolvedModes)) || 8
73
+ const padding = Number(getVariableByName('transactionBubble/padding', resolvedModes))
74
+ const radius = Number(getVariableByName('transactionBubble/radius', resolvedModes))
75
+ const borderSize = Number(getVariableByName('transactionBubble/border/size', resolvedModes))
76
+ const backgroundColor = getVariableByName('transactionBubble/background', resolvedModes)
77
+ const borderColor = getVariableByName('transactionBubble/border/color', resolvedModes)
78
+ const bubbleGap = Number(getVariableByName('transactionBubble/gap', resolvedModes))
79
+ const moneyValueWrapGap = Number(getVariableByName('transactionBubble/wrap/gap', resolvedModes))
73
80
 
74
- const descriptionColor = getVariableByName('transactionBubble/description/color', resolvedModes) || '#24262b'
75
- const descriptionFontSize = Number(getVariableByName('transactionBubble/description/fontSize', resolvedModes)) || 14
76
- const descriptionLineHeight = Number(getVariableByName('transactionBubble/description/lineHeight', resolvedModes)) || 17
77
- const descriptionFontFamily = getVariableByName('transactionBubble/description/fontFamily', resolvedModes) || 'JioType Var'
81
+ const descriptionColor = getVariableByName('transactionBubble/description/color', resolvedModes)
82
+ const descriptionFontSize = Number(getVariableByName('transactionBubble/description/fontSize', resolvedModes))
83
+ const descriptionLineHeight = Number(getVariableByName('transactionBubble/description/lineHeight', resolvedModes))
84
+ const descriptionFontFamily = getVariableByName('transactionBubble/description/fontFamily', resolvedModes)
78
85
 
79
- const statusWrapGap = Number(getVariableByName('transactionBubble/statusWrap/gap', resolvedModes)) || 4
80
- const statusWrapHeight = Number(getVariableByName('transactionBubble/statusWrap/height', resolvedModes)) || 18
86
+ const statusWrapGap = Number(getVariableByName('transactionBubble/statusWrap/gap', resolvedModes))
87
+ const statusWrapHeight = Number(getVariableByName('transactionBubble/statusWrap/height', resolvedModes))
81
88
 
82
89
  const containerStyle: ViewStyle = {
83
90
  padding,
@@ -122,7 +129,7 @@ function TransactionBubble({
122
129
  const mainContent = (
123
130
  <View style={{ gap: bubbleGap }}>
124
131
  <View style={{ gap: moneyValueWrapGap }}>
125
- <Text style={descriptionStyle} numberOfLines={1}>{description}</Text>
132
+ <Text style={descriptionStyle} {...resolveTruncation(disableTruncation, 1)}>{description}</Text>
126
133
  <MoneyValue value={value} currency={currency} modes={resolvedModes} />
127
134
  </View>
128
135
  {processedChildren}
@@ -52,21 +52,21 @@ function Item({
52
52
  const gap = getVariableByName('detailItem/gap', modes) ?? 4
53
53
 
54
54
  // Label typography tokens
55
- const labelColor = getVariableByName('detailItem/label/color', modes) || '#0c0d10'
56
- const labelFontSize = getVariableByName('detailItem/label/fontSize', modes) || 14
57
- const labelFontFamily = getVariableByName('detailItem/label/fontFamily', modes) || 'System'
58
- const labelLineHeight = getVariableByName('detailItem/label/lineHeight', modes) || 17
59
- const labelFontWeightRaw = getVariableByName('detailItem/label/fontWeight', modes) || 500
55
+ const labelColor = getVariableByName('detailItem/label/color', modes)
56
+ const labelFontSize = getVariableByName('detailItem/label/fontSize', modes)
57
+ const labelFontFamily = getVariableByName('detailItem/label/fontFamily', modes)
58
+ const labelLineHeight = getVariableByName('detailItem/label/lineHeight', modes)
59
+ const labelFontWeightRaw = getVariableByName('detailItem/label/fontWeight', modes)
60
60
  const labelFontWeight = typeof labelFontWeightRaw === 'number'
61
61
  ? labelFontWeightRaw.toString()
62
62
  : labelFontWeightRaw
63
63
 
64
64
  // Value typography tokens
65
- const valueColor = getVariableByName('detailItem/value/color', modes) || '#24262b'
66
- const valueFontSize = getVariableByName('detailItem/value/fontSize', modes) || 14
67
- const valueFontFamily = getVariableByName('detailItem/value/fontFamily', modes) || 'System'
68
- const valueLineHeight = getVariableByName('detailItem/value/lineHeight', modes) || 17
69
- const valueFontWeightRaw = getVariableByName('detailItem/value/fontWeight', modes) || 'Medium'
65
+ const valueColor = getVariableByName('detailItem/value/color', modes)
66
+ const valueFontSize = getVariableByName('detailItem/value/fontSize', modes)
67
+ const valueFontFamily = getVariableByName('detailItem/value/fontFamily', modes)
68
+ const valueLineHeight = getVariableByName('detailItem/value/lineHeight', modes)
69
+ const valueFontWeightRaw = getVariableByName('detailItem/value/fontWeight', modes)
70
70
  const valueFontWeight = typeof valueFontWeightRaw === 'number'
71
71
  ? valueFontWeightRaw.toString()
72
72
  : valueFontWeightRaw === 'Medium' ? '500' : valueFontWeightRaw
@@ -2,7 +2,7 @@ import React from 'react'
2
2
  import { View, Text, type ViewStyle, type TextStyle } from 'react-native'
3
3
  import { Svg, Path } from 'react-native-svg'
4
4
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
5
- import { EMPTY_MODES } from '../../utils/react-utils'
5
+ import { EMPTY_MODES, resolveTruncation } from '../../utils/react-utils'
6
6
  import type { Modes } from '../../design-tokens'
7
7
 
8
8
  // --- Internal Icon Component ---
@@ -19,7 +19,7 @@ const StatusIcon = ({
19
19
  height = 15,
20
20
  color,
21
21
  }: StatusIconProps) => {
22
- const resolvedColor = color || getVariableByName('transactionStatus/icon/color', modes) || '#F06D0F'
22
+ const resolvedColor = color || getVariableByName('transactionStatus/icon/color', modes)
23
23
 
24
24
  return (
25
25
  <Svg
@@ -48,6 +48,12 @@ export type TransactionStatusProps = {
48
48
  modes?: Modes
49
49
  /** Optional container style */
50
50
  style?: ViewStyle
51
+ /**
52
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
53
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
54
+ * lines as it needs even when horizontal space is tight.
55
+ */
56
+ disableTruncation?: boolean
51
57
  }
52
58
 
53
59
  /**
@@ -58,17 +64,18 @@ export default function TransactionStatus({
58
64
  date = '20 Mar 2025',
59
65
  modes = EMPTY_MODES,
60
66
  style,
67
+ disableTruncation,
61
68
  }: TransactionStatusProps) {
62
- const gap = Number(getVariableByName('transactionBubble/statusWrap/gap', modes)) || 4
69
+ const gap = Number(getVariableByName('transactionBubble/statusWrap/gap', modes))
63
70
  // Using 'transactionStatus' tokens for text
64
- const textColor = getVariableByName('transactionStatus/color', modes) || '#191b1e'
65
- const fontSize = Number(getVariableByName('transactionStatus/fontSize', modes)) || 12
66
- const lineHeight = Number(getVariableByName('transactionStatus/lineHeight', modes)) || 16
67
- const fontFamily = getVariableByName('transactionStatus/fontFamily', modes) || 'System'
68
- const fontWeight = getVariableByName('transactionStatus/fontWeight2', modes) || '500'
71
+ const textColor = getVariableByName('transactionStatus/color', modes)
72
+ const fontSize = Number(getVariableByName('transactionStatus/fontSize', modes))
73
+ const lineHeight = Number(getVariableByName('transactionStatus/lineHeight', modes))
74
+ const fontFamily = getVariableByName('transactionStatus/fontFamily', modes)
75
+ const fontWeight = getVariableByName('transactionStatus/fontWeight2', modes)
69
76
 
70
- const iconColor = getVariableByName('transactionStatus/icon/color', modes) || '#f06d0f'
71
- const iconSize = Number(getVariableByName('transactionStatus/iconSize', modes)) || 18
77
+ const iconColor = getVariableByName('transactionStatus/icon/color', modes)
78
+ const iconSize = Number(getVariableByName('transactionStatus/iconSize', modes))
72
79
 
73
80
  const containerStyle: ViewStyle = {
74
81
  flexDirection: 'row',
@@ -88,7 +95,7 @@ export default function TransactionStatus({
88
95
  return (
89
96
  <View style={containerStyle}>
90
97
  <StatusIcon width={iconSize} height={iconSize} color={iconColor} modes={modes} />
91
- <Text style={textStyle} numberOfLines={1}>
98
+ <Text style={textStyle} {...resolveTruncation(disableTruncation, 1)}>
92
99
  {status} · {date}
93
100
  </Text>
94
101
  </View>
@@ -13,7 +13,7 @@ import {
13
13
  } from 'react-native'
14
14
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
15
15
  import { useTokens } from '../../design-tokens/JFSThemeProvider'
16
- import { EMPTY_MODES } from '../../utils/react-utils'
16
+ import { EMPTY_MODES, resolveTruncation } from '../../utils/react-utils'
17
17
  import MediaSource, { type UnifiedSource } from '../../utils/MediaSource'
18
18
  import Icon from '../../icons/Icon'
19
19
  import type { Modes } from '../../design-tokens'
@@ -52,6 +52,12 @@ type UpiHandleProps = {
52
52
  onPress?: () => void;
53
53
  onClick?: () => void;
54
54
  disabled?: boolean;
55
+ /**
56
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
57
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
58
+ * lines as it needs even when horizontal space is tight.
59
+ */
60
+ disableTruncation?: boolean;
55
61
  } & Omit<React.ComponentProps<typeof View>, 'style' | 'accessibilityRole' | 'accessibilityLabel' | 'accessibilityHint'>;
56
62
 
57
63
  interface UpiHandleTokens {
@@ -64,26 +70,26 @@ interface UpiHandleTokens {
64
70
  }
65
71
 
66
72
  function resolveUpiHandleTokens(modes: Modes): UpiHandleTokens {
67
- const backgroundColor = (getVariableByName('upiHandle/background', modes) || '#f5f5f5') as string
68
- const radius = (getVariableByName('upiHandle/radius', modes) || 99999) as number
69
- const paddingLeft = (getVariableByName('upiHandle/padding/left', modes) || 4) as number
70
- const paddingRight = (getVariableByName('upiHandle/padding/right', modes) || 14) as number
71
- const paddingVertical = (getVariableByName('upiHandle/padding/vertical', modes) || 3) as number
72
- const gap = (getVariableByName('upiHandle/gap', modes) || 6) as number
73
+ const backgroundColor = (getVariableByName('upiHandle/background', modes)) as string
74
+ const radius = (getVariableByName('upiHandle/radius', modes)) as number
75
+ const paddingLeft = (getVariableByName('upiHandle/padding/left', modes)) as number
76
+ const paddingRight = (getVariableByName('upiHandle/padding/right', modes)) as number
77
+ const paddingVertical = (getVariableByName('upiHandle/padding/vertical', modes)) as number
78
+ const gap = (getVariableByName('upiHandle/gap', modes)) as number
73
79
 
74
- const avatarSize = (getVariableByName('upiHandle/image/size', modes) || 23) as number
75
- const avatarRadius = (getVariableByName('upiHandle/image/radius', modes) || 99999) as number
80
+ const avatarSize = (getVariableByName('upiHandle/image/size', modes)) as number
81
+ const avatarRadius = (getVariableByName('upiHandle/image/radius', modes)) as number
76
82
 
77
- const labelColor = (getVariableByName('upiHandle/label/color', modes) || '#0d0d0f') as string
78
- const labelFontSize = (getVariableByName('upiHandle/label/fontSize', modes) || 12) as number
79
- const labelLineHeight = (getVariableByName('upiHandle/label/lineHeight', modes) || 23) as number
80
- const labelFontFamily = (getVariableByName('upiHandle/label/fontFamily', modes) || 'System') as string
81
- const labelFontWeightRaw = getVariableByName('upiHandle/label/fontWeight', modes) || 500
83
+ const labelColor = (getVariableByName('upiHandle/label/color', modes)) as string
84
+ const labelFontSize = (getVariableByName('upiHandle/label/fontSize', modes)) as number
85
+ const labelLineHeight = (getVariableByName('upiHandle/label/lineHeight', modes)) as number
86
+ const labelFontFamily = (getVariableByName('upiHandle/label/fontFamily', modes)) as string
87
+ const labelFontWeightRaw = getVariableByName('upiHandle/label/fontWeight', modes)
82
88
  const labelFontWeight =
83
89
  typeof labelFontWeightRaw === 'number' ? labelFontWeightRaw.toString() : labelFontWeightRaw
84
90
 
85
- const iconColor = (getVariableByName('upiHandle/icon/color', modes) || '#0d0d0f') as string
86
- const iconSize = (getVariableByName('upiHandle/icon/size', modes) || 12) as number
91
+ const iconColor = (getVariableByName('upiHandle/icon/color', modes)) as string
92
+ const iconSize = (getVariableByName('upiHandle/icon/size', modes)) as number
87
93
 
88
94
  return {
89
95
  containerStyle: {
@@ -152,6 +158,7 @@ function UpiHandle({
152
158
  onPress,
153
159
  onClick,
154
160
  disabled,
161
+ disableTruncation,
155
162
  // accessibilityLabel is accepted on the type for API back-compat; the
156
163
  // wrapper renders `accessibilityLabel={undefined}` because the inner Text
157
164
  // already carries the label.
@@ -240,8 +247,7 @@ function UpiHandle({
240
247
  </View>
241
248
  <Text
242
249
  style={tokens.labelStyle}
243
- numberOfLines={1}
244
- ellipsizeMode="tail"
250
+ {...resolveTruncation(disableTruncation, 1, 'tail')}
245
251
  accessibilityElementsHidden={true}
246
252
  importantForAccessibility="no"
247
253
  >