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
@@ -23,13 +23,13 @@ const focusOverlayStyle = {
23
23
  };
24
24
  function resolveBottomNavItemTokens(modes, disabled, iconColorOverride, iconSizeOverride) {
25
25
  const gap = getVariableByName('bottomNavItem/gap', modes) ?? 6;
26
- const fontFamily = getVariableByName('bottomNavItem/fontFamily', modes) || 'JioType_Var:Medium';
26
+ const fontFamily = getVariableByName('bottomNavItem/fontFamily', modes);
27
27
  const fontWeightRaw = getVariableByName('bottomNavItem/fontWeight', modes) ?? 500;
28
28
  const fontWeight = typeof fontWeightRaw === 'number' ? fontWeightRaw.toString() : fontWeightRaw;
29
29
  const fontSize = getVariableByName('bottomNavItem/fontSize', modes) ?? 11;
30
30
  const lineHeight = getVariableByName('bottomNavItem/lineHeight', modes) ?? 14;
31
- const labelColor = getVariableByName('bottomNavItem/label/color', modes) || '#0d0d0f';
32
- const resolvedIconColor = iconColorOverride || getVariableByName('bottomNavItem/icon/color', modes) || '#ad8545';
31
+ const labelColor = getVariableByName('bottomNavItem/label/color', modes);
32
+ const resolvedIconColor = iconColorOverride || getVariableByName('bottomNavItem/icon/color', modes);
33
33
  const resolvedIconSize = iconSizeOverride ?? getVariableByName('bottomNavItem/icon/size', modes) ?? 24;
34
34
  return {
35
35
  baseContainerStyle: {
@@ -4,7 +4,7 @@ import React, { useMemo } from 'react';
4
4
  import { Pressable, Text, View } from 'react-native';
5
5
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
6
6
  import { useTokens } from '../../design-tokens/JFSThemeProvider';
7
- import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils';
7
+ import { EMPTY_MODES, cloneChildrenWithModes, resolveTruncation } from '../../utils/react-utils';
8
8
  import Avatar from '../Avatar/Avatar';
9
9
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  const toNumber = (value, fallback) => {
@@ -89,7 +89,8 @@ function BrandChip({
89
89
  modes: propModes = EMPTY_MODES,
90
90
  style,
91
91
  labelStyle,
92
- accessibilityLabel
92
+ accessibilityLabel,
93
+ disableTruncation
93
94
  }) {
94
95
  const {
95
96
  modes: globalModes
@@ -120,8 +121,7 @@ function BrandChip({
120
121
  const content = /*#__PURE__*/_jsxs(_Fragment, {
121
122
  children: [avatarNode, /*#__PURE__*/_jsx(Text, {
122
123
  style: [tokens.labelStyle, labelStyle],
123
- numberOfLines: 1,
124
- ellipsizeMode: "tail",
124
+ ...resolveTruncation(disableTruncation, 1, 'tail'),
125
125
  children: label
126
126
  })]
127
127
  });
@@ -31,6 +31,17 @@ const containerLayoutStyle = {
31
31
  justifyContent: 'center'
32
32
  };
33
33
 
34
+ // Keeps the label on a single line. `flexShrink: 0` stops a tight flex parent
35
+ // from squeezing the text; on web `whiteSpace: 'nowrap'` is what actually
36
+ // prevents the line break (a bare `numberOfLines` line-clamp still allows the
37
+ // text to wrap inside a width-constrained pill in react-native-web).
38
+ const NO_WRAP_LABEL_STYLE = {
39
+ flexShrink: 0,
40
+ ...(IS_WEB ? {
41
+ whiteSpace: 'nowrap'
42
+ } : {})
43
+ };
44
+
34
45
  // ---------------------------------------------------------------------------
35
46
  // Token resolution
36
47
  // ---------------------------------------------------------------------------
@@ -42,19 +53,19 @@ const containerLayoutStyle = {
42
53
  // ---------------------------------------------------------------------------
43
54
 
44
55
  function resolveButtonTokens(modes, disabled) {
45
- const backgroundColor = getVariableByName('button/background', modes) || '#cfa159';
46
- const borderColor = getVariableByName('button/border/color', modes) || 'rgba(255,255,255,0)';
56
+ const backgroundColor = getVariableByName('button/background', modes);
57
+ const borderColor = getVariableByName('button/border/color', modes);
47
58
  const borderWidth = getVariableByName('button/border/size', modes);
48
- const radius = getVariableByName('button/radius', modes) || 9999;
49
- const paddingHorizontal = getVariableByName('button/padding/horizontal', modes) || 20;
50
- const paddingVertical = getVariableByName('button/padding/vertical', modes) || 12;
51
- const gap = getVariableByName('button/gap', modes) || 8;
52
- const fontFamily = getVariableByName('button/fontFamily', modes) || 'System';
53
- const fontWeightValue = getVariableByName('button/fontWeight', modes) || 700;
59
+ const radius = getVariableByName('button/radius', modes);
60
+ const paddingHorizontal = getVariableByName('button/padding/horizontal', modes);
61
+ const paddingVertical = getVariableByName('button/padding/vertical', modes);
62
+ const gap = getVariableByName('button/gap', modes);
63
+ const fontFamily = getVariableByName('button/fontFamily', modes);
64
+ const fontWeightValue = getVariableByName('button/fontWeight', modes);
54
65
  const fontWeight = typeof fontWeightValue === 'number' ? fontWeightValue.toString() : fontWeightValue;
55
- const lineHeight = getVariableByName('button/lineHeight', modes) || 19;
56
- const fontSize = getVariableByName('button/fontSize', modes) || 16;
57
- const textColor = getVariableByName('button/foreground', modes) || '#0f0d0a';
66
+ const lineHeight = getVariableByName('button/lineHeight', modes);
67
+ const fontSize = getVariableByName('button/fontSize', modes);
68
+ const textColor = getVariableByName('button/foreground', modes);
58
69
  const iconSize = getVariableByName('button/icon/size', modes) ?? 18;
59
70
 
60
71
  // Pressed tokens are always resolved so the Pressable `style` callback can
@@ -63,9 +74,9 @@ function resolveButtonTokens(modes, disabled) {
63
74
  ...modes,
64
75
  'Button / State': 'Pressed'
65
76
  };
66
- const pressedBg = getVariableByName('button/background', pressedModes) || backgroundColor;
67
- const pressedBorderColor = getVariableByName('button/border/color', pressedModes) || borderColor;
68
- const pressedTextColor = getVariableByName('button/foreground', pressedModes) || textColor;
77
+ const pressedBg = getVariableByName('button/background', pressedModes);
78
+ const pressedBorderColor = getVariableByName('button/border/color', pressedModes);
79
+ const pressedTextColor = getVariableByName('button/foreground', pressedModes);
69
80
 
70
81
  // Hover tokens are only meaningful on web. Skipping them on native saves
71
82
  // ~3 token lookups + an object spread per render on every Button.
@@ -76,9 +87,9 @@ function resolveButtonTokens(modes, disabled) {
76
87
  ...modes,
77
88
  'Button / State': 'Hover'
78
89
  };
79
- const hoverBg = getVariableByName('button/background', hoverModes) || backgroundColor;
80
- const hoverBorderColor = getVariableByName('button/border/color', hoverModes) || borderColor;
81
- hoverTextColor = getVariableByName('button/foreground', hoverModes) || textColor;
90
+ const hoverBg = getVariableByName('button/background', hoverModes);
91
+ const hoverBorderColor = getVariableByName('button/border/color', hoverModes);
92
+ hoverTextColor = getVariableByName('button/foreground', hoverModes);
82
93
  hoverContainer = {
83
94
  backgroundColor: hoverBg,
84
95
  borderColor: hoverBorderColor
@@ -170,6 +181,7 @@ function ButtonImpl({
170
181
  accessibilityState,
171
182
  webAccessibilityProps,
172
183
  loading,
184
+ disableTruncation,
173
185
  ...rest
174
186
  }) {
175
187
  // Hover state is web-only in practice; the setter is gated so native taps
@@ -213,8 +225,9 @@ function ButtonImpl({
213
225
  content = children;
214
226
  } else {
215
227
  content = /*#__PURE__*/_jsx(Text, {
216
- style: activeLabelStyle,
217
- numberOfLines: 1,
228
+ style: [activeLabelStyle, disableTruncation ? null : NO_WRAP_LABEL_STYLE],
229
+ numberOfLines: disableTruncation ? undefined : 1,
230
+ ellipsizeMode: disableTruncation ? undefined : 'tail',
218
231
  children: label
219
232
  });
220
233
  }
@@ -35,18 +35,18 @@ export function Card({
35
35
  style
36
36
  }) {
37
37
  // Resolve Card Container Tokens
38
- const backgroundColor = getVariableByName('card/background/color', modes) || '#ffffff';
39
- const borderColor = getVariableByName('card/border/color', modes) || '#ebebed';
40
- const borderWidth = parseFloat(getVariableByName('card/strokeWidth', modes) || '0.5'); // Ensure number
41
- const radius = parseFloat(getVariableByName('card/radius', modes) || '8');
42
- const gap = parseFloat(getVariableByName('card/gap', modes) || '4');
43
- const paddingHorizontal = parseFloat(getVariableByName('card/padding-horizontal', modes) || '0');
44
- const paddingVertical = parseFloat(getVariableByName('card/padding-vertical', modes) || '0');
38
+ const backgroundColor = getVariableByName('card/background/color', modes);
39
+ const borderColor = getVariableByName('card/border/color', modes);
40
+ const borderWidth = parseFloat(getVariableByName('card/strokeWidth', modes)); // Ensure number
41
+ const radius = parseFloat(getVariableByName('card/radius', modes));
42
+ const gap = parseFloat(getVariableByName('card/gap', modes));
43
+ const paddingHorizontal = parseFloat(getVariableByName('card/padding-horizontal', modes));
44
+ const paddingVertical = parseFloat(getVariableByName('card/padding-vertical', modes));
45
45
 
46
46
  // Resolve Content Wrapper Tokens
47
- const contentGap = parseFloat(getVariableByName('card/content/gap', modes) || '4');
48
- const contentPaddingHorizontal = parseFloat(getVariableByName('card/content/padding/horizontal', modes) || '12');
49
- const contentPaddingVertical = parseFloat(getVariableByName('card/content/padding/vertical', modes) || '16');
47
+ const contentGap = parseFloat(getVariableByName('card/content/gap', modes));
48
+ const contentPaddingHorizontal = parseFloat(getVariableByName('card/content/padding/horizontal', modes));
49
+ const contentPaddingVertical = parseFloat(getVariableByName('card/content/padding/vertical', modes));
50
50
 
51
51
  // Clone media to pass modes if it's a valid element, facilitating nested style resolution
52
52
  const mediaWithModes = /*#__PURE__*/isValidElement(media) ? /*#__PURE__*/cloneElement(media, {
@@ -131,14 +131,14 @@ function Title({
131
131
  }) {
132
132
  const context = useContext(CardContext);
133
133
  const modes = propModes || context.modes || {};
134
- const color = getVariableByName('card/title/color', modes) || '#081007';
135
- const fontSize = parseFloat(getVariableByName('card/title/fontSize', modes) || '16');
136
- const fontFamily = getVariableByName('card/title/fontFamily', modes) || 'JioType Var';
137
- const lineHeight = parseFloat(getVariableByName('card/title/lineHeight', modes) || '18');
134
+ const color = getVariableByName('card/title/color', modes);
135
+ const fontSize = parseFloat(getVariableByName('card/title/fontSize', modes));
136
+ const fontFamily = getVariableByName('card/title/fontFamily', modes);
137
+ const lineHeight = parseFloat(getVariableByName('card/title/lineHeight', modes));
138
138
 
139
139
  // Handling the potential typo in Figma variables "fonwWeight" vs "fontWeight"
140
140
  // We check both keys to be safe.
141
- const rawFontWeight = getVariableByName('card/title/fontWeight', modes) || getVariableByName('card/title/fonwWeight', modes) || '900';
141
+ const rawFontWeight = getVariableByName('card/title/fontWeight', modes);
142
142
  const fontWeight = typeof rawFontWeight === 'number' ? rawFontWeight.toString() : rawFontWeight;
143
143
  const textStyle = {
144
144
  color,
@@ -164,11 +164,11 @@ function SupportText({
164
164
  }) {
165
165
  const context = useContext(CardContext);
166
166
  const modes = propModes || context.modes || {};
167
- const color = getVariableByName('card/supportive-text/color', modes) || '#191b1e';
168
- const fontSize = parseFloat(getVariableByName('card/supportive-text/fontSize', modes) || '12');
169
- const fontFamily = getVariableByName('card/supportive-text/fontFamily', modes) || 'JioType Var';
170
- const lineHeight = parseFloat(getVariableByName('card/supportive-text/lineHeight', modes) || '16');
171
- const rawFontWeight = getVariableByName('card/supportive-text/fontWeight', modes) || '400';
167
+ const color = getVariableByName('card/supportive-text/color', modes);
168
+ const fontSize = parseFloat(getVariableByName('card/supportive-text/fontSize', modes));
169
+ const fontFamily = getVariableByName('card/supportive-text/fontFamily', modes);
170
+ const lineHeight = parseFloat(getVariableByName('card/supportive-text/lineHeight', modes));
171
+ const rawFontWeight = getVariableByName('card/supportive-text/fontWeight', modes);
172
172
  const fontWeight = typeof rawFontWeight === 'number' ? rawFontWeight.toString() : rawFontWeight;
173
173
  const textStyle = {
174
174
  color,
@@ -5,7 +5,7 @@ import { Text, View } from 'react-native';
5
5
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
6
6
  import { useTokens } from '../../design-tokens/JFSThemeProvider';
7
7
  import Icon from '../../icons/Icon';
8
- import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils';
8
+ import { EMPTY_MODES, cloneChildrenWithModes, resolveTruncation } from '../../utils/react-utils';
9
9
  import CircularProgressBar from '../CircularProgressBar/CircularProgressBar';
10
10
  import Nudge from '../Nudge/Nudge';
11
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -34,19 +34,19 @@ function resolveCardAdvisoryTokens(modes) {
34
34
  const paddingHorizontal = toNumber(getVariableByName('cardAdvisory/padding/horizontal', modes), 0);
35
35
  const paddingVertical = toNumber(getVariableByName('cardAdvisory/padding/vertical', modes), 0);
36
36
  const radius = toNumber(getVariableByName('cardAdvisory/radius', modes), 0);
37
- const background = getVariableByName('cardAdvisory/background', modes) || '#ffffff';
37
+ const background = getVariableByName('cardAdvisory/background', modes);
38
38
  const mainContentGap = toNumber(getVariableByName('cardAdvisory/mainContent/gap', modes), 16);
39
39
  const contentGap = toNumber(getVariableByName('cardAdvisory/content/gap', modes), 6);
40
40
  const headerGap = toNumber(getVariableByName('cardAdvisory/header/gap', modes), 8);
41
- const titleColor = getVariableByName('cardAdvisory/title/foreground', modes) || '#0d0d0f';
41
+ const titleColor = getVariableByName('cardAdvisory/title/foreground', modes);
42
42
  const titleFontSize = toNumber(getVariableByName('cardAdvisory/title/fontSize', modes), 26);
43
- const titleFontFamily = getVariableByName('cardAdvisory/title/fontFamily', modes) || 'JioType Var';
43
+ const titleFontFamily = getVariableByName('cardAdvisory/title/fontFamily', modes);
44
44
  const titleLineHeight = toNumber(getVariableByName('cardAdvisory/title/lineHeight', modes), 26);
45
45
  const titleFontWeight = toFontWeight(getVariableByName('cardAdvisory/title/fontWeight', modes), '900');
46
46
  const titleDescenderAllowance = Math.ceil(titleFontSize * 0.16);
47
- const descriptionColor = getVariableByName('cardAdvisory/description/foreground', modes) || '#24262b';
47
+ const descriptionColor = getVariableByName('cardAdvisory/description/foreground', modes);
48
48
  const descriptionFontSize = toNumber(getVariableByName('cardAdvisory/description/fontSize', modes), 12);
49
- const descriptionFontFamily = getVariableByName('cardAdvisory/description/fontFamily', modes) || 'JioType Var';
49
+ const descriptionFontFamily = getVariableByName('cardAdvisory/description/fontFamily', modes);
50
50
  const descriptionLineHeight = toNumber(getVariableByName('cardAdvisory/description/lineHeight', modes), 16);
51
51
  const descriptionFontWeight = toFontWeight(getVariableByName('cardAdvisory/description/fontWeight', modes), '500');
52
52
  return {
@@ -95,7 +95,7 @@ function resolveCardAdvisoryTokens(modes) {
95
95
  lineHeight: descriptionLineHeight,
96
96
  width: '100%'
97
97
  },
98
- iconColor: getVariableByName('cardAdvisory/icon/color', modes) || '#1a1c1f',
98
+ iconColor: getVariableByName('cardAdvisory/icon/color', modes),
99
99
  iconSize: toNumber(getVariableByName('cardAdvisory/icon/size', modes), 18)
100
100
  };
101
101
  }
@@ -120,6 +120,7 @@ function CardAdvisory({
120
120
  progressStyle,
121
121
  nudgeStyle,
122
122
  accessibilityLabel,
123
+ disableTruncation,
123
124
  ...rest
124
125
  }) {
125
126
  const {
@@ -157,7 +158,7 @@ function CardAdvisory({
157
158
  children: [/*#__PURE__*/_jsxs(View, {
158
159
  style: tokens.headerStyle,
159
160
  children: [/*#__PURE__*/_jsx(Text, {
160
- numberOfLines: 1,
161
+ ...resolveTruncation(disableTruncation, 1),
161
162
  style: [tokens.titleStyle, titleStyle],
162
163
  children: title
163
164
  }), processedTitleEndSlot || (showInfoIcon ? /*#__PURE__*/_jsx(Icon, {
@@ -3,7 +3,7 @@
3
3
  import React, { useMemo } from 'react';
4
4
  import { View, Text } from 'react-native';
5
5
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
6
- import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils';
6
+ import { EMPTY_MODES, cloneChildrenWithModes, resolveTruncation } from '../../utils/react-utils';
7
7
  import Badge from '../Badge/Badge';
8
8
  import Button from '../Button/Button';
9
9
  import InstitutionBadge from '../InstitutionBadge/InstitutionBadge';
@@ -66,7 +66,8 @@ function CardBankAccount({
66
66
  footer,
67
67
  modes: propModes = EMPTY_MODES,
68
68
  style,
69
- accessibilityLabel
69
+ accessibilityLabel,
70
+ disableTruncation
70
71
  }) {
71
72
  // Merge caller modes on top of `DEFAULT_MODES` so every default key
72
73
  // (e.g. `Button / Size`, `AppearanceBrand`, `Emphasis`) can be overridden
@@ -183,7 +184,7 @@ function CardBankAccount({
183
184
  })
184
185
  }), typeof item.value === 'string' || typeof item.value === 'number' ? /*#__PURE__*/_jsx(Text, {
185
186
  style: valueTextStyle,
186
- numberOfLines: 1,
187
+ ...resolveTruncation(disableTruncation, 1),
187
188
  children: item.value
188
189
  }) : cloneChildrenWithModes(item.value, modes)]
189
190
  }, `${item.label}-${index}`))
@@ -10,8 +10,17 @@ import Button from '../Button/Button';
10
10
  import Badge from '../Badge/Badge';
11
11
  import ButtonGroup from '../ButtonGroup/ButtonGroup';
12
12
  import IconButton from '../IconButton/IconButton';
13
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import Avatar from '../Avatar/Avatar';
14
+
15
+ /**
16
+ * Accepted `type` values. The canonical (and historical) values are lowercase
17
+ * (`'cta' | 'rating' | 'sip'`). The Figma variant names are PascalCase
18
+ * (`'CTA' | 'Rating' | 'Sip'`) — we accept those too and normalize internally
19
+ * so callers can pass either casing without a breaking change.
20
+ */
21
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
14
22
  const optionalTokenAvailability = new Map();
23
+ const toWeight = w => typeof w === 'number' ? `${w}` : w;
15
24
  function getOptionalVariableByName(name, modes, fallback) {
16
25
  let isAvailable = optionalTokenAvailability.get(name);
17
26
  if (isAvailable === undefined) {
@@ -34,11 +43,16 @@ function CardCTA({
34
43
  showRatingActions = true,
35
44
  onPressLike,
36
45
  onPressDislike,
46
+ headline = 'Headline',
47
+ description = 'Description',
48
+ subtitle = 'Subtitle',
49
+ avatarSource,
37
50
  modes: propModes = EMPTY_MODES,
38
51
  iconSlot,
39
52
  buttonSlot,
40
53
  ratingBadgeSlot,
41
54
  ratingActionsSlot,
55
+ avatarSlot,
42
56
  style
43
57
  }) {
44
58
  const {
@@ -48,28 +62,31 @@ function CardCTA({
48
62
  ...globalModes,
49
63
  ...propModes
50
64
  };
51
- const isRating = type === 'rating';
52
- const background = getVariableByName('cardCTA/background', modes) || '#ffffff';
53
- const radius = getVariableByName('cardCTA/radius', modes) || 12;
54
- const borderSize = getVariableByName('cardCTA/border/size', modes) || 1;
55
- const borderColor = getVariableByName('cardCTA/border/color', modes) || '#e3e4e4';
56
- const leftPaddingH = getVariableByName('cardCTA/left-wrap/padding/horizontal', modes) || 16;
57
- const leftPaddingV = getVariableByName('cardCTA/left-wrap/padding/vertical', modes) || 22;
58
- const leftGap = getVariableByName('cardCTA/left-wrap/gap', modes) || 16;
59
- const rightPaddingH = getVariableByName('cardCTA/right-wrap/padding/horizontal', modes) || 16;
60
- const rightPaddingV = getVariableByName('cardCTA/right-wrap/padding/vertical', modes) || 22;
61
- const textGap = getVariableByName('cardCTA/text-wrap/gap', modes) || 6;
62
- const titleColor = getVariableByName('cardCTA/title/color', modes) || '#0c0d10';
63
- const titleFontFamily = getVariableByName('cardCTA/title/fontFamily', modes) || 'JioType Var';
64
- const titleFontSize = getVariableByName('cardCTA/title/fontSize', modes) || 16;
65
- const titleLineHeight = getVariableByName('cardCTA/title/lineHeight', modes) || 17.6;
66
- const titleFontWeightRaw = getVariableByName('cardCTA/title/fontWeight', modes) || 700;
65
+ // Accept both lowercase (canonical) and Figma PascalCase variant names.
66
+ const normalizedType = typeof type === 'string' ? type.toLowerCase() : 'cta';
67
+ const isRating = normalizedType === 'rating';
68
+ const isSip = normalizedType === 'sip';
69
+ const background = getVariableByName('cardCTA/background', modes);
70
+ const radius = getVariableByName('cardCTA/radius', modes);
71
+ const borderSize = getVariableByName('cardCTA/border/size', modes);
72
+ const borderColor = getVariableByName('cardCTA/border/color', modes);
73
+ const leftPaddingH = getVariableByName('cardCTA/left-wrap/padding/horizontal', modes);
74
+ const leftPaddingV = getVariableByName('cardCTA/left-wrap/padding/vertical', modes);
75
+ const leftGap = getVariableByName('cardCTA/left-wrap/gap', modes);
76
+ const rightPaddingH = getVariableByName('cardCTA/right-wrap/padding/horizontal', modes);
77
+ const rightPaddingV = getVariableByName('cardCTA/right-wrap/padding/vertical', modes);
78
+ const textGap = getVariableByName('cardCTA/text-wrap/gap', modes);
79
+ const titleColor = getVariableByName('cardCTA/title/color', modes);
80
+ const titleFontFamily = getVariableByName('cardCTA/title/fontFamily', modes);
81
+ const titleFontSize = getVariableByName('cardCTA/title/fontSize', modes);
82
+ const titleLineHeight = getVariableByName('cardCTA/title/lineHeight', modes);
83
+ const titleFontWeightRaw = getVariableByName('cardCTA/title/fontWeight', modes);
67
84
  const titleFontWeight = typeof titleFontWeightRaw === 'number' ? titleFontWeightRaw.toString() : titleFontWeightRaw;
68
- const bodyColor = getVariableByName('cardCTA/body/color', modes) || '#13002d';
69
- const bodyFontFamily = getVariableByName('cardCTA/body/fontFamily', modes) || 'JioType Var';
70
- const bodyFontSize = getVariableByName('cardCTA/body/fontSize', modes) || 10;
71
- const bodyLineHeight = getVariableByName('cardCTA/body/lineHeight', modes) || 12;
72
- const bodyFontWeightRaw = getVariableByName('cardCTA/body/fontWeight', modes) || 400;
85
+ const bodyColor = getVariableByName('cardCTA/body/color', modes);
86
+ const bodyFontFamily = getVariableByName('cardCTA/body/fontFamily', modes);
87
+ const bodyFontSize = getVariableByName('cardCTA/body/fontSize', modes);
88
+ const bodyLineHeight = getVariableByName('cardCTA/body/lineHeight', modes);
89
+ const bodyFontWeightRaw = getVariableByName('cardCTA/body/fontWeight', modes);
73
90
  const bodyFontWeight = typeof bodyFontWeightRaw === 'number' ? bodyFontWeightRaw.toString() : bodyFontWeightRaw;
74
91
  const ratingContentGap = getOptionalVariableByName('cardCTA/rating/content/gap', modes, 12);
75
92
  const ratingContentPaddingH = getOptionalVariableByName('cardCTA/rating/content/padding/horizontal', modes, 16);
@@ -77,6 +94,33 @@ function CardCTA({
77
94
  const ratingFooterPaddingH = getOptionalVariableByName('cardCTA/rating/footer/horizontal', modes, 16);
78
95
  const ratingFooterPaddingTop = getOptionalVariableByName('cardCTA/rating/footer/top', modes, 0);
79
96
  const ratingFooterPaddingBottom = getOptionalVariableByName('cardCTA/rating/footer/bottom', modes, 12);
97
+
98
+ // Sip variant footer text block (Headline / Description / Subtitle). These
99
+ // `ccCard/*` tokens were introduced for the Sip layout — resolve them
100
+ // optionally so older token snapshots that lack them fall back gracefully.
101
+ const sipFooterGap = getOptionalVariableByName('ccCard/footer/textWrap/gap', modes, 4);
102
+ const sipHeadlineColor = getOptionalVariableByName('ccCard/headline/color', modes, '#707275');
103
+ const sipHeadlineFontFamily = getOptionalVariableByName('ccCard/headline/fontFamily', modes, 'JioType Var');
104
+ const sipHeadlineFontSize = getOptionalVariableByName('ccCard/headline/fontSize', modes, 10);
105
+ const sipHeadlineLineHeight = getOptionalVariableByName('ccCard/headline/lineHeight', modes, 13);
106
+ const sipHeadlineFontWeightRaw = getOptionalVariableByName('ccCard/headline/fontWeight', modes, 500);
107
+ const sipHeadlineFontWeight = typeof sipHeadlineFontWeightRaw === 'number' ? sipHeadlineFontWeightRaw.toString() : sipHeadlineFontWeightRaw;
108
+ const sipDescriptionColor = getOptionalVariableByName('ccCard/title/color', modes, '#081007');
109
+ const sipDescriptionFontFamily = getOptionalVariableByName('ccCard/title/fontFamily', modes, 'JioType Var');
110
+ const sipDescriptionFontSize = getOptionalVariableByName('ccCard/title/fontSize', modes, 14);
111
+ const sipDescriptionLineHeight = getOptionalVariableByName('ccCard/title/lineHeight', modes, 15);
112
+ const sipDescriptionFontWeightRaw = getOptionalVariableByName('ccCard/title/fontWeight', modes, 700);
113
+ const sipDescriptionFontWeight = typeof sipDescriptionFontWeightRaw === 'number' ? sipDescriptionFontWeightRaw.toString() : sipDescriptionFontWeightRaw;
114
+ const sipSubtitleColor = getOptionalVariableByName('ccCard/subtitle/color', modes, '#707275');
115
+ const sipSubtitleFontFamily = getOptionalVariableByName('ccCard/subtitle/fontFamily', modes, 'JioType Var');
116
+ const sipSubtitleFontSize = getOptionalVariableByName('ccCard/subtitle/fontSize', modes, 10);
117
+ const sipSubtitleLineHeight = getOptionalVariableByName('ccCard/subtitle/lineHeight', modes, 13);
118
+ const sipSubtitleFontWeightRaw = getOptionalVariableByName('ccCard/subtitle/fontWeight', modes, 500);
119
+ const sipSubtitleFontWeight = typeof sipSubtitleFontWeightRaw === 'number' ? sipSubtitleFontWeightRaw.toString() : sipSubtitleFontWeightRaw;
120
+ const avatarModes = {
121
+ ...modes,
122
+ 'Avatar Size': 'L'
123
+ };
80
124
  const buttonModes = {
81
125
  ...modes,
82
126
  AppearanceBrand: 'Secondary',
@@ -91,27 +135,74 @@ function CardCTA({
91
135
  const effectiveButtonLabel = buttonLabel ?? (isRating ? 'Save' : 'Button');
92
136
  const nonWrappingButtonLabel = effectiveButtonLabel.replace(/\s/g, '\u00A0');
93
137
  const [measuredButtonLabelWidth, setMeasuredButtonLabelWidth] = React.useState(null);
94
- const buttonPaddingH = getVariableByName('button/padding/horizontal', buttonModes) || 20;
138
+ const buttonPaddingH = getVariableByName('button/padding/horizontal', buttonModes);
95
139
  const buttonBorderSize = getVariableByName('button/border/size', buttonModes) ?? 1;
96
- const measuredButtonWidth = measuredButtonLabelWidth === null ? undefined : Math.ceil(measuredButtonLabelWidth + buttonPaddingH * 2 + buttonBorderSize * 2);
97
- const handleButtonLabelTextLayout = React.useCallback(event => {
98
- const lines = event?.nativeEvent?.lines;
99
- if (!Array.isArray(lines) || lines.length === 0) return;
100
- const nextWidth = Math.ceil(lines.reduce((sum, line) => sum + (typeof line?.width === 'number' ? line.width : 0), 0));
101
- if (nextWidth <= 0) return;
102
- setMeasuredButtonLabelWidth(currentWidth => {
103
- if (currentWidth !== null && Math.abs(currentWidth - nextWidth) < 1) {
104
- return currentWidth;
105
- }
106
- return nextWidth;
107
- });
140
+ // Small safety pad so sub-pixel rounding between the measure pass and the
141
+ // rendered glyph run can never clip the final character.
142
+ const measuredButtonWidth = measuredButtonLabelWidth === null ? undefined : Math.ceil(measuredButtonLabelWidth + buttonPaddingH * 2 + buttonBorderSize * 2 + 2);
143
+
144
+ // ROOT-CAUSE FIX for the Android "jumping button" feedback loop + clipping.
145
+ //
146
+ // Previously the *visible* label measured itself via `onTextLayout` and we
147
+ // fed that width straight back onto the same Button. Because the button is
148
+ // width-constrained by its parent, Android clamps the overflowing text and
149
+ // even character-breaks a single word ("Save" -> "Sav"/"e"); the re-applied
150
+ // width re-triggers layout, producing an endless ~60fps width oscillation.
151
+ //
152
+ // We now measure an *off-screen* copy of the label, laid out at an
153
+ // effectively unbounded width, so its reported single-line width is
154
+ // intrinsic and constant regardless of the button's applied width — the
155
+ // measurement can no longer depend on the value it produces, so the loop is
156
+ // impossible. Crucially the measurer reuses the Button's own resolved label
157
+ // styles (passed into `renderContent`), so the measured font matches the
158
+ // rendered font exactly and the width is never an under-estimate. The label
159
+ // is always a single line that overflows rather than wraps or truncates.
160
+ const handleMeasureTextLayout = React.useCallback(event => {
161
+ const line = event?.nativeEvent?.lines?.[0];
162
+ const width = line && typeof line.width === 'number' ? line.width : 0;
163
+ if (width <= 0) return;
164
+ setMeasuredButtonLabelWidth(currentWidth => currentWidth !== null && Math.abs(currentWidth - width) < 0.5 ? currentWidth : Math.ceil(width));
108
165
  }, []);
166
+
167
+ // Off-screen measurer wrapper: absolute + opacity 0 + pointerEvents none =>
168
+ // out of flow, invisible, never intercepts touches, zero layout impact.
169
+ const measurerWrapStyle = {
170
+ position: 'absolute',
171
+ left: 0,
172
+ top: 0,
173
+ opacity: 0
174
+ };
175
+
176
+ // Renders the visible single-line label (never wraps, never ellipsizes) plus
177
+ // the co-located off-screen measurer that shares the Button's exact label
178
+ // styles. `width: 9999` forces the measurer onto one line so `onTextLayout`
179
+ // reports the true intrinsic width.
180
+ const renderButtonContent = labelExtraStyle => labelStyles => /*#__PURE__*/_jsxs(_Fragment, {
181
+ children: [/*#__PURE__*/_jsx(Text, {
182
+ numberOfLines: 1,
183
+ ellipsizeMode: "clip",
184
+ style: [labelStyles, labelExtraStyle],
185
+ children: nonWrappingButtonLabel
186
+ }), /*#__PURE__*/_jsx(View, {
187
+ pointerEvents: "none",
188
+ accessibilityElementsHidden: true,
189
+ importantForAccessibility: "no",
190
+ style: measurerWrapStyle,
191
+ children: /*#__PURE__*/_jsx(Text, {
192
+ style: [labelStyles, {
193
+ width: 9999
194
+ }],
195
+ onTextLayout: handleMeasureTextLayout,
196
+ children: nonWrappingButtonLabel
197
+ })
198
+ })]
199
+ });
109
200
  const containerStyle = {
110
201
  backgroundColor: background,
111
202
  borderRadius: radius,
112
203
  borderWidth: borderSize,
113
204
  borderColor,
114
- flexDirection: isRating ? 'column' : 'row',
205
+ flexDirection: isRating || isSip ? 'column' : 'row',
115
206
  overflow: 'visible'
116
207
  };
117
208
 
@@ -197,6 +288,47 @@ function CardCTA({
197
288
  lineHeight: bodyLineHeight,
198
289
  fontWeight: bodyFontWeight
199
290
  };
291
+ const sipWrapStyle = {
292
+ width: '100%',
293
+ paddingHorizontal: leftPaddingH,
294
+ paddingVertical: leftPaddingV,
295
+ gap: leftGap,
296
+ alignItems: 'flex-start',
297
+ justifyContent: 'flex-start',
298
+ overflow: 'visible'
299
+ };
300
+ const sipFooterTextWrapStyle = {
301
+ gap: sipFooterGap,
302
+ alignItems: 'flex-start',
303
+ alignSelf: 'stretch',
304
+ minWidth: 0
305
+ };
306
+ const sipDescriptionWrapStyle = {
307
+ flexDirection: 'row',
308
+ gap: sipFooterGap,
309
+ alignItems: 'flex-end'
310
+ };
311
+ const sipHeadlineStyle = {
312
+ color: sipHeadlineColor,
313
+ fontFamily: sipHeadlineFontFamily,
314
+ fontSize: sipHeadlineFontSize,
315
+ lineHeight: sipHeadlineLineHeight,
316
+ fontWeight: toWeight(sipHeadlineFontWeightRaw)
317
+ };
318
+ const sipDescriptionStyle = {
319
+ color: sipDescriptionColor,
320
+ fontFamily: sipDescriptionFontFamily,
321
+ fontSize: sipDescriptionFontSize,
322
+ lineHeight: sipDescriptionLineHeight,
323
+ fontWeight: toWeight(sipDescriptionFontWeightRaw)
324
+ };
325
+ const sipSubtitleStyle = {
326
+ color: sipSubtitleColor,
327
+ fontFamily: sipSubtitleFontFamily,
328
+ fontSize: sipSubtitleFontSize,
329
+ lineHeight: sipSubtitleLineHeight,
330
+ fontWeight: toWeight(sipSubtitleFontWeightRaw)
331
+ };
200
332
  const ratingContentStyle = {
201
333
  paddingHorizontal: ratingContentPaddingH,
202
334
  paddingVertical: ratingContentPaddingV,
@@ -243,6 +375,52 @@ function CardCTA({
243
375
  flexShrink: 0,
244
376
  flexWrap: 'nowrap'
245
377
  };
378
+ if (isSip) {
379
+ return /*#__PURE__*/_jsx(View, {
380
+ style: [containerStyle, style],
381
+ children: /*#__PURE__*/_jsxs(View, {
382
+ style: sipWrapStyle,
383
+ children: [avatarSlot ? cloneChildrenWithModes(avatarSlot, avatarModes) : /*#__PURE__*/_jsx(Avatar, {
384
+ style: "Image",
385
+ imageSource: avatarSource,
386
+ modes: avatarModes
387
+ }), /*#__PURE__*/_jsxs(View, {
388
+ style: textWrapStyle,
389
+ children: [/*#__PURE__*/_jsx(Text, {
390
+ style: titleStyle,
391
+ children: title
392
+ }), /*#__PURE__*/_jsx(Text, {
393
+ style: bodyStyle,
394
+ children: body
395
+ })]
396
+ }), /*#__PURE__*/_jsxs(View, {
397
+ style: sipFooterTextWrapStyle,
398
+ children: [/*#__PURE__*/_jsx(Text, {
399
+ style: sipHeadlineStyle,
400
+ children: headline
401
+ }), /*#__PURE__*/_jsxs(View, {
402
+ style: sipDescriptionWrapStyle,
403
+ children: [/*#__PURE__*/_jsx(Text, {
404
+ style: sipDescriptionStyle,
405
+ children: description
406
+ }), /*#__PURE__*/_jsx(Text, {
407
+ style: sipSubtitleStyle,
408
+ children: subtitle
409
+ })]
410
+ })]
411
+ }), /*#__PURE__*/_jsx(View, {
412
+ style: buttonWrapStyle,
413
+ children: buttonSlot ? cloneChildrenWithModes(buttonSlot, buttonModes) : /*#__PURE__*/_jsx(Button, {
414
+ label: effectiveButtonLabel,
415
+ onPress: onPressButton || (() => {}),
416
+ modes: buttonModes,
417
+ style: buttonStyle,
418
+ renderContent: renderButtonContent(buttonLabelStyle)
419
+ })
420
+ })]
421
+ })
422
+ });
423
+ }
246
424
  if (isRating) {
247
425
  return /*#__PURE__*/_jsxs(View, {
248
426
  style: [containerStyle, style],
@@ -270,11 +448,7 @@ function CardCTA({
270
448
  onPress: onPressButton || (() => {}),
271
449
  modes: buttonModes,
272
450
  style: ratingButtonStyle,
273
- renderContent: labelStyles => /*#__PURE__*/_jsx(Text, {
274
- onTextLayout: handleButtonLabelTextLayout,
275
- style: [labelStyles, ratingButtonLabelStyle],
276
- children: nonWrappingButtonLabel
277
- })
451
+ renderContent: renderButtonContent(ratingButtonLabelStyle)
278
452
  })
279
453
  }), showRatingActions ? ratingActionsSlot ? cloneChildrenWithModes(ratingActionsSlot, iconButtonModes) : /*#__PURE__*/_jsxs(ButtonGroup, {
280
454
  modes: iconButtonModes,
@@ -315,11 +489,7 @@ function CardCTA({
315
489
  onPress: onPressButton || (() => {}),
316
490
  modes: buttonModes,
317
491
  style: buttonStyle,
318
- renderContent: labelStyles => /*#__PURE__*/_jsx(Text, {
319
- onTextLayout: handleButtonLabelTextLayout,
320
- style: [labelStyles, buttonLabelStyle],
321
- children: nonWrappingButtonLabel
322
- })
492
+ renderContent: renderButtonContent(buttonLabelStyle)
323
493
  })
324
494
  })]
325
495
  }), /*#__PURE__*/_jsx(View, {