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,5 +1,6 @@
1
- import React, { forwardRef, useCallback, useMemo, useState } from 'react'
1
+ import React, { forwardRef, useCallback, useMemo, useRef, useState } from 'react'
2
2
  import {
3
+ Platform,
3
4
  View,
4
5
  Text,
5
6
  TextInput as RNTextInput,
@@ -10,7 +11,8 @@ import {
10
11
  } from 'react-native'
11
12
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
12
13
  import { useTokens } from '../../design-tokens/JFSThemeProvider'
13
- import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
14
+ import { EMPTY_MODES, cloneChildrenWithModes, mergeRefs } from '../../utils/react-utils'
15
+ import { useWebOutsidePress } from '../../utils/web-platform-utils'
14
16
  import SupportText from '../SupportText/SupportText'
15
17
  import type { SupportTextStatus } from '../SupportText/SupportTextIcon'
16
18
  import Icon from '../../icons/Icon'
@@ -124,10 +126,9 @@ function useFormFieldTokens(modes: Modes) {
124
126
 
125
127
  // Label (Figma: 14/17 medium, color #0c0d10)
126
128
  const labelColor =
127
- (getVariableByName('formField/label/color', modes) as string) || '#0c0d10'
129
+ (getVariableByName('formField/label/color', modes) as string)
128
130
  const labelFontFamily =
129
- (getVariableByName('formField/label/fontFamily', modes) as string) ||
130
- 'JioType Var'
131
+ (getVariableByName('formField/label/fontFamily', modes) as string)
131
132
  const labelFontSize = toNumber(
132
133
  getVariableByName('formField/label/fontSize', modes),
133
134
  14,
@@ -166,19 +167,16 @@ function useFormFieldTokens(modes: Modes) {
166
167
  45,
167
168
  )
168
169
  const inputFontFamily =
169
- (getVariableByName('formField/input/label/fontFamily', modes) as string) ||
170
- 'JioType Var'
170
+ (getVariableByName('formField/input/label/fontFamily', modes) as string)
171
171
  const inputFontWeight = toFontWeight(
172
172
  getVariableByName('formField/input/label/fontWeight', modes),
173
173
  '400',
174
174
  )
175
175
 
176
176
  const inputBackground =
177
- (getVariableByName('formField/input/background', modes) as string) ||
178
- '#ffffff'
177
+ (getVariableByName('formField/input/background', modes) as string)
179
178
  const inputBorderColor =
180
- (getVariableByName('formField/input/border/color', modes) as string) ||
181
- '#b5b6b7'
179
+ (getVariableByName('formField/input/border/color', modes) as string)
182
180
 
183
181
  if (__DEV__) {
184
182
  console.warn('[FormField] border color (modes changed)', {
@@ -192,8 +190,7 @@ function useFormFieldTokens(modes: Modes) {
192
190
  }
193
191
 
194
192
  const inputTextColor =
195
- (getVariableByName('formField/input/label/color', modes) as string) ||
196
- '#24262b'
193
+ (getVariableByName('formField/input/label/color', modes) as string)
197
194
 
198
195
  return {
199
196
  gap,
@@ -347,6 +344,25 @@ const FormField = forwardRef<RNTextInput, FormFieldProps>(function FormField({
347
344
  const [isFocused, setIsFocused] = useState(false)
348
345
  const interactive = !isDisabled && !isReadOnly
349
346
 
347
+ // Internal handles so we can (a) imperatively blur the input and (b) detect
348
+ // outside presses. The forwarded `ref` is merged in below, so the public
349
+ // ref API (focus/blur/clear/isFocused) is unchanged for consumers.
350
+ const inputRef = useRef<RNTextInput>(null)
351
+ const rootRef = useRef<View>(null)
352
+ // Stable merged ref so React doesn't detach/reattach (and momentarily null
353
+ // `inputRef.current`) on every render.
354
+ const mergedInputRef = useMemo(() => mergeRefs(inputRef, ref), [ref])
355
+
356
+ // Web: pressing an INTERACTIVE element outside the field (Button, link,
357
+ // another pressable) often does not move DOM focus, so the native `blur`
358
+ // never fires and the field stays visually "Active". Force a blur on any
359
+ // outside pointer press while focused. No-op on native.
360
+ useWebOutsidePress(
361
+ rootRef,
362
+ useCallback(() => inputRef.current?.blur(), []),
363
+ isFocused,
364
+ )
365
+
350
366
  // FormField States cascade — error > read only/disabled > active (focused) > idle.
351
367
  // Disabled maps to "Read Only" since there is no dedicated disabled mode and
352
368
  // the visual treatment is closest. This is only the DEFAULT — an explicit
@@ -478,7 +494,30 @@ const FormField = forwardRef<RNTextInput, FormFieldProps>(function FormField({
478
494
  color: tokens.inputTextColor,
479
495
  fontFamily: tokens.inputFontFamily,
480
496
  fontSize: tokens.inputFontSize,
481
- lineHeight: tokens.inputLineHeight,
497
+ // ⚠️ DO NOT change to an unconditional `lineHeight: tokens.inputLineHeight`.
498
+ // This has regressed twice — read this before "simplifying" it.
499
+ //
500
+ // `inputLineHeight` comes from the Figma token `formField/input/label`
501
+ // ("16/45"), which is a 16px font inside a 45px ROW, i.e. it is the row
502
+ // HEIGHT, not the text leading. The row height is already applied via
503
+ // `inputRowStyle.minHeight` + `alignItems: 'center'`, so the text never
504
+ // needs this value as its own `lineHeight`.
505
+ //
506
+ // Passing a `lineHeight` (45) that is much larger than `fontSize` (16)
507
+ // onto a single-line RNTextInput breaks ONLY iOS: iOS puts ALL the extra
508
+ // vertical space ABOVE the glyphs, so the text/placeholder sinks to the
509
+ // bottom of the box instead of centering. Android and Web distribute the
510
+ // space evenly and look correct. This is a long-standing iOS native
511
+ // font-metrics bug in UITextField — see facebook/react-native#39145 and
512
+ // #28012; the documented workaround is exactly "drop lineHeight on the
513
+ // single-line input and let a wrapper center it". A single-line UITextField
514
+ // with no lineHeight centers its text natively (see react-native#56774).
515
+ //
516
+ // So: omit lineHeight on iOS (native centering via the row), and keep the
517
+ // token value on Android/Web where it already renders correctly.
518
+ ...(Platform.OS === 'ios'
519
+ ? null
520
+ : { lineHeight: tokens.inputLineHeight }),
482
521
  fontWeight: tokens.inputFontWeight,
483
522
  padding: 0,
484
523
  margin: 0,
@@ -530,6 +569,7 @@ const FormField = forwardRef<RNTextInput, FormFieldProps>(function FormField({
530
569
 
531
570
  return (
532
571
  <View
572
+ ref={rootRef}
533
573
  style={[wrapperStyle, style]}
534
574
  pointerEvents={isDisabled ? 'none' : 'auto'}
535
575
  testID={testID}
@@ -552,7 +592,7 @@ const FormField = forwardRef<RNTextInput, FormFieldProps>(function FormField({
552
592
  </View>
553
593
  )}
554
594
  <RNTextInput
555
- ref={ref}
595
+ ref={mergedInputRef}
556
596
  style={[inputTextStyles, inputTextStyle]}
557
597
  value={value ?? ''}
558
598
  onChangeText={handleChangeText}
@@ -125,40 +125,40 @@ type HeroTextProps = {
125
125
 
126
126
  function HeroText({ eyebrow, headline, supportingText, priceText, modes }: HeroTextProps) {
127
127
  const styles = useMemo(() => {
128
- const gap = Number(getVariableByName('PageHero/gap', modes)) || 16
129
- const textWrapGap = Number(getVariableByName('PageHero/textWrap/gap', modes)) || 8
128
+ const gap = Number(getVariableByName('PageHero/gap', modes))
129
+ const textWrapGap = Number(getVariableByName('PageHero/textWrap/gap', modes))
130
130
 
131
131
  const eyebrowStyle: TextStyle = {
132
- color: (getVariableByName('PageHero/eyebrow/color', modes) as string) || '#ffffff',
133
- fontFamily: (getVariableByName('PageHero/eyebrow/fontFamily', modes) as string) || 'System',
134
- fontSize: Number(getVariableByName('PageHero/eyebrow/fontSize', modes)) || 18,
135
- fontWeight: String(getVariableByName('PageHero/eyebrow/fontWeight', modes) || 700) as TextStyle['fontWeight'],
136
- lineHeight: Number(getVariableByName('PageHero/eyebrow/lineHeight', modes)) || 20,
132
+ color: (getVariableByName('PageHero/eyebrow/color', modes) as string),
133
+ fontFamily: (getVariableByName('PageHero/eyebrow/fontFamily', modes) as string),
134
+ fontSize: Number(getVariableByName('PageHero/eyebrow/fontSize', modes)),
135
+ fontWeight: String(getVariableByName('PageHero/eyebrow/fontWeight', modes)) as TextStyle['fontWeight'],
136
+ lineHeight: Number(getVariableByName('PageHero/eyebrow/lineHeight', modes)),
137
137
  textAlign: 'center',
138
138
  }
139
139
  const headlineStyle: TextStyle = {
140
- color: (getVariableByName('PageHero/headline/color', modes) as string) || '#ffffff',
141
- fontFamily: (getVariableByName('PageHero/headline/fontFamily', modes) as string) || 'System',
142
- fontSize: Number(getVariableByName('PageHero/headline/fontSize', modes)) || 29,
143
- fontWeight: String(getVariableByName('PageHero/headline/fontWeight', modes) || 900) as TextStyle['fontWeight'],
144
- lineHeight: Number(getVariableByName('PageHero/headline/lineHeight', modes)) || 29,
140
+ color: (getVariableByName('PageHero/headline/color', modes) as string),
141
+ fontFamily: (getVariableByName('PageHero/headline/fontFamily', modes) as string),
142
+ fontSize: Number(getVariableByName('PageHero/headline/fontSize', modes)),
143
+ fontWeight: String(getVariableByName('PageHero/headline/fontWeight', modes)) as TextStyle['fontWeight'],
144
+ lineHeight: Number(getVariableByName('PageHero/headline/lineHeight', modes)),
145
145
  textAlign: 'center',
146
146
  width: '100%',
147
147
  }
148
148
  const supportingTextStyle: TextStyle = {
149
- color: (getVariableByName('PageHero/supportingText/color', modes) as string) || '#ffffff',
150
- fontFamily: (getVariableByName('PageHero/supportingText/fontFamily', modes) as string) || 'System',
151
- fontSize: Number(getVariableByName('PageHero/supportingText/fontSize', modes)) || 12,
152
- fontWeight: String(getVariableByName('PageHero/supportingText/fontWeight', modes) || 500) as TextStyle['fontWeight'],
153
- lineHeight: Number(getVariableByName('PageHero/supportingText/lineHeight', modes)) || 16,
149
+ color: (getVariableByName('PageHero/supportingText/color', modes) as string),
150
+ fontFamily: (getVariableByName('PageHero/supportingText/fontFamily', modes) as string),
151
+ fontSize: Number(getVariableByName('PageHero/supportingText/fontSize', modes)),
152
+ fontWeight: String(getVariableByName('PageHero/supportingText/fontWeight', modes)) as TextStyle['fontWeight'],
153
+ lineHeight: Number(getVariableByName('PageHero/supportingText/lineHeight', modes)),
154
154
  textAlign: 'center',
155
155
  }
156
156
  const priceTextStyle: TextStyle = {
157
- color: (getVariableByName('PageHero/body/color', modes) as string) || '#ffffff',
158
- fontFamily: (getVariableByName('PageHero/body/fontFamily', modes) as string) || 'System',
159
- fontSize: Number(getVariableByName('PageHero/body/fontSize', modes)) || 12,
160
- fontWeight: String(getVariableByName('PageHero/body/fontWeight', modes) || 500) as TextStyle['fontWeight'],
161
- lineHeight: Number(getVariableByName('PageHero/body/lineHeight', modes)) || 16,
157
+ color: (getVariableByName('PageHero/body/color', modes) as string),
158
+ fontFamily: (getVariableByName('PageHero/body/fontFamily', modes) as string),
159
+ fontSize: Number(getVariableByName('PageHero/body/fontSize', modes)),
160
+ fontWeight: String(getVariableByName('PageHero/body/fontWeight', modes)) as TextStyle['fontWeight'],
161
+ lineHeight: Number(getVariableByName('PageHero/body/lineHeight', modes)),
162
162
  textAlign: 'center',
163
163
  }
164
164
 
@@ -268,7 +268,7 @@ function FullscreenModal({
268
268
  [globalModes, propModes]
269
269
  )
270
270
 
271
- const rootGap = Number(getVariableByName('fullScreenModal/gap', modes)) || 16
271
+ const rootGap = Number(getVariableByName('fullScreenModal/gap', modes))
272
272
 
273
273
  // Safe-area insets so the floating chrome clears the system bars: the close
274
274
  // button drops below the status bar / notch, and the sticky footer keeps its
@@ -283,7 +283,7 @@ function FullscreenModal({
283
283
  // Extend (not replace) the footer's token bottom padding by the bottom inset
284
284
  // so the action button never sits under the system navigation area.
285
285
  const footerInsetStyle = useMemo<ViewStyle>(() => {
286
- const base = Number(getVariableByName('actionFooter/padding/bottom', modes)) || 41
286
+ const base = Number(getVariableByName('actionFooter/padding/bottom', modes))
287
287
  return { paddingBottom: base + insets.bottom }
288
288
  }, [modes, insets.bottom])
289
289
 
@@ -91,7 +91,7 @@ const toFontWeight = (value: unknown, fallback: TextStyle['fontWeight']) => {
91
91
 
92
92
  const getStrokeColor = (style: StyleProp<ViewStyle>, fallback: string) => {
93
93
  const flattened = StyleSheet.flatten(style)
94
- return typeof flattened.backgroundColor === 'string'
94
+ return flattened && typeof flattened.backgroundColor === 'string'
95
95
  ? flattened.backgroundColor
96
96
  : fallback
97
97
  }
@@ -145,34 +145,34 @@ function Gauge({
145
145
  const arcLength = Math.PI * radius
146
146
  const progress = clamp(value, min, max)
147
147
 
148
- const titleColor = getVariableByName('gauge/title/color', modes) || '#0c0d10'
148
+ const titleColor = getVariableByName('gauge/title/color', modes)
149
149
  const titleFontSize = toNumber(getVariableByName('gauge/title/fontSize', modes), 23)
150
150
  const titleLineHeight = toNumber(getVariableByName('gauge/title/lineHeight', modes), 23)
151
- const titleFontFamily = getVariableByName('gauge/title/fontFamily', modes) || 'JioType Var'
151
+ const titleFontFamily = getVariableByName('gauge/title/fontFamily', modes)
152
152
  const titleFontWeight = toFontWeight(getVariableByName('gauge/title/fontWeight', modes), '900')
153
153
  const titleHeight = toNumber(getVariableByName('gauge/title/height', modes), 46)
154
154
 
155
155
  const readoutGap = toNumber(getVariableByName('gauge/readout/gap', modes), 8)
156
156
  const readoutPadding = toNumber(getVariableByName('gauge/readout/padding', modes), 8)
157
- const valueColor = getVariableByName('gauge/readout/value/color', modes) || '#0c0d10'
157
+ const valueColor = getVariableByName('gauge/readout/value/color', modes)
158
158
  const valueFontSize = toNumber(getVariableByName('gauge/readout/value/fontSize', modes), 36)
159
159
  const valueLineHeight = toNumber(getVariableByName('gauge/readout/value/lineHeight', modes), 36)
160
- const valueFontFamily = getVariableByName('gauge/readout/value/fontFamily', modes) || 'JioType Var'
160
+ const valueFontFamily = getVariableByName('gauge/readout/value/fontFamily', modes)
161
161
  const valueFontWeight = toFontWeight(getVariableByName('gauge/readout/value/fontWeight', modes), '800')
162
162
 
163
- const captionColor = getVariableByName('gauge/caption/color', modes) || '#0c0d10'
163
+ const captionColor = getVariableByName('gauge/caption/color', modes)
164
164
  const captionFontSize = toNumber(getVariableByName('gauge/caption/fontSize', modes), 14)
165
165
  const captionLineHeight = toNumber(getVariableByName('gauge/caption/lineHeight', modes), 18)
166
- const captionFontFamily = getVariableByName('gauge/caption/fontFamily', modes) || 'JioType Var'
166
+ const captionFontFamily = getVariableByName('gauge/caption/fontFamily', modes)
167
167
  const captionFontWeight = toFontWeight(getVariableByName('gauge/caption/fontWeight', modes), '500')
168
168
 
169
169
  const trackColor = getStrokeColor(
170
170
  trackStyle,
171
- getVariableByName('gauge/track/color', modes) || '#f5f5f6'
171
+ getVariableByName('gauge/track/color', modes)
172
172
  )
173
173
  const progressColor = getStrokeColor(
174
174
  progressStyle,
175
- getVariableByName('gauge/progress/color', modes) || '#25ab21'
175
+ getVariableByName('gauge/progress/color', modes)
176
176
  )
177
177
 
178
178
  const containerStyle: ViewStyle = {
@@ -10,7 +10,7 @@ import {
10
10
  } from 'react-native'
11
11
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
12
12
  import Radio from '../Radio/Radio'
13
- import { EMPTY_MODES } from '../../utils/react-utils'
13
+ import { EMPTY_MODES, resolveTruncation } from '../../utils/react-utils'
14
14
  import type { Modes } from '../../design-tokens'
15
15
 
16
16
  export interface HoldingsCardDetailItem {
@@ -39,6 +39,12 @@ export interface HoldingsCardProps {
39
39
  style?: StyleProp<ViewStyle>
40
40
  /** Test ID for testing. */
41
41
  testID?: string
42
+ /**
43
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
44
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
45
+ * lines as it needs even when horizontal space is tight.
46
+ */
47
+ disableTruncation?: boolean
42
48
  }
43
49
 
44
50
  const GRID_COLUMNS = 3
@@ -62,10 +68,11 @@ export default function HoldingsCard({
62
68
  modes = EMPTY_MODES,
63
69
  style,
64
70
  testID,
71
+ disableTruncation,
65
72
  }: HoldingsCardProps) {
66
73
  // ---- Container tokens ----
67
- const containerFill = getVariableByName('holdingsCard/container/fill', modes) || '#fef4e5'
68
- const containerStroke = getVariableByName('holdingsCard/container/stroke', modes) || '#fde8c9'
74
+ const containerFill = getVariableByName('holdingsCard/container/fill', modes)
75
+ const containerStroke = getVariableByName('holdingsCard/container/stroke', modes)
69
76
  const containerStrokeWeight = parseFloat(
70
77
  (getVariableByName('holdingsCard/container/strokeWeight', modes) ?? 1).toString()
71
78
  )
@@ -94,24 +101,24 @@ export default function HoldingsCard({
94
101
  const heroGap = parseFloat(
95
102
  (getVariableByName('holdingsCard/hero/gap', modes) ?? 4).toString()
96
103
  )
97
- const heroLabelColor = getVariableByName('holdingsCard/hero/label/color', modes) || '#0f0d0a'
104
+ const heroLabelColor = getVariableByName('holdingsCard/hero/label/color', modes)
98
105
  const heroLabelFontSize = parseFloat(
99
106
  (getVariableByName('holdingsCard/hero/label/fontSize', modes) ?? 12).toString()
100
107
  )
101
108
  const heroLabelFontFamily =
102
- getVariableByName('holdingsCard/hero/label/fontFamily', modes) || 'JioType Var'
109
+ getVariableByName('holdingsCard/hero/label/fontFamily', modes)
103
110
  const heroLabelLineHeight = parseFloat(
104
111
  (getVariableByName('holdingsCard/hero/label/lineHeight', modes) ?? 16).toString()
105
112
  )
106
113
  const heroLabelFontWeight =
107
114
  (getVariableByName('holdingsCard/hero/label/fontWeight', modes) ?? '400').toString()
108
115
 
109
- const heroValueColor = getVariableByName('holdingsCard/hero/value/color', modes) || '#0f0d0a'
116
+ const heroValueColor = getVariableByName('holdingsCard/hero/value/color', modes)
110
117
  const heroValueFontSize = parseFloat(
111
118
  (getVariableByName('holdingsCard/hero/value/fontSize', modes) ?? 20).toString()
112
119
  )
113
120
  const heroValueFontFamily =
114
- getVariableByName('holdingsCard/hero/value/fontFamily', modes) || 'JioType Var'
121
+ getVariableByName('holdingsCard/hero/value/fontFamily', modes)
115
122
  const heroValueLineHeight = parseFloat(
116
123
  (getVariableByName('holdingsCard/hero/value/lineHeight', modes) ?? 22).toString()
117
124
  )
@@ -120,12 +127,12 @@ export default function HoldingsCard({
120
127
 
121
128
  // ---- Details grid tokens ----
122
129
  const detailLabelColor =
123
- getVariableByName('holdingsCard/detailsGrid/label/color', modes) || '#2c251b'
130
+ getVariableByName('holdingsCard/detailsGrid/label/color', modes)
124
131
  const detailLabelFontSize = parseFloat(
125
132
  (getVariableByName('holdingsCard/detailsGrid/label/fontSize', modes) ?? 10).toString()
126
133
  )
127
134
  const detailLabelFontFamily =
128
- getVariableByName('holdingsCard/detailsGrid/label/fontFamily', modes) || 'JioType Var'
135
+ getVariableByName('holdingsCard/detailsGrid/label/fontFamily', modes)
129
136
  const detailLabelLineHeight = parseFloat(
130
137
  (getVariableByName('holdingsCard/detailsGrid/label/lineHeight', modes) ?? 12).toString()
131
138
  )
@@ -133,12 +140,12 @@ export default function HoldingsCard({
133
140
  (getVariableByName('holdingsCard/detailsGrid/label/fontWeight', modes) ?? '500').toString()
134
141
 
135
142
  const detailValueColor =
136
- getVariableByName('holdingsCard/detailsGrid/value/color', modes) || '#0f0d0a'
143
+ getVariableByName('holdingsCard/detailsGrid/value/color', modes)
137
144
  const detailValueFontSize = parseFloat(
138
145
  (getVariableByName('holdingsCard/detailsGrid/value/fontSize', modes) ?? 12).toString()
139
146
  )
140
147
  const detailValueFontFamily =
141
- getVariableByName('holdingsCard/detailsGrid/value/fontFamily', modes) || 'JioType Var'
148
+ getVariableByName('holdingsCard/detailsGrid/value/fontFamily', modes)
142
149
  const detailValueLineHeight = parseFloat(
143
150
  (getVariableByName('holdingsCard/detailsGrid/value/lineHeight', modes) ?? 14).toString()
144
151
  )
@@ -268,7 +275,7 @@ export default function HoldingsCard({
268
275
  lineHeight: detailValueLineHeight,
269
276
  fontWeight: detailValueFontWeight as any,
270
277
  }}
271
- numberOfLines={1}
278
+ {...resolveTruncation(disableTruncation, 1)}
272
279
  >
273
280
  {item.value}
274
281
  </Text>
@@ -55,12 +55,12 @@ interface IconTokens {
55
55
  }
56
56
 
57
57
  function resolveIconTokens(modes: Modes): IconTokens {
58
- const iconColor = (getVariableByName('icon/color', modes) || '#ad8444') as string
59
- const iconSize = (getVariableByName('icon/size', modes) || 18) as number
60
- const paddingLeft = (getVariableByName('icon/padding/left', modes) || 0) as number
61
- const paddingTop = (getVariableByName('icon/padding/top', modes) || 0) as number
62
- const paddingRight = (getVariableByName('icon/padding/right', modes) || 0) as number
63
- const paddingBottom = (getVariableByName('icon/padding/bottom', modes) || 0) as number
58
+ const iconColor = (getVariableByName('icon/color', modes)) as string
59
+ const iconSize = (getVariableByName('icon/size', modes)) as number
60
+ const paddingLeft = (getVariableByName('icon/padding/left', modes)) as number
61
+ const paddingTop = (getVariableByName('icon/padding/top', modes)) as number
62
+ const paddingRight = (getVariableByName('icon/padding/right', modes)) as number
63
+ const paddingBottom = (getVariableByName('icon/padding/bottom', modes)) as number
64
64
 
65
65
  return {
66
66
  containerStyle: {
@@ -30,13 +30,13 @@ interface IconCapsuleTokens {
30
30
  }
31
31
 
32
32
  function resolveIconCapsuleTokens(modes: Modes): IconCapsuleTokens {
33
- const size = (getVariableByName('iconCapsule/size', modes) || 42) as number
34
- const radiusRaw = (getVariableByName('iconCapsule/radius', modes) || 9999) as number
35
- const backgroundColor = (getVariableByName('iconCapsule/background', modes) || '#cfa159') as string
36
- const borderColor = (getVariableByName('iconCapsule/border/color', modes) || 'rgba(255,255,255,0)') as string
37
- const borderSize = (getVariableByName('iconCapsule/border/size', modes) || 1) as number
38
- const iconColor = (getVariableByName('iconCapsule/icon/color', modes) || '#0f0d0a') as string
39
- const iconSize = (getVariableByName('iconCapsule/icon/size', modes) || 18) as number
33
+ const size = (getVariableByName('iconCapsule/size', modes)) as number
34
+ const radiusRaw = (getVariableByName('iconCapsule/radius', modes)) as number
35
+ const backgroundColor = (getVariableByName('iconCapsule/background', modes)) as string
36
+ const borderColor = (getVariableByName('iconCapsule/border/color', modes)) as string
37
+ const borderSize = (getVariableByName('iconCapsule/border/size', modes)) as number
38
+ const iconColor = (getVariableByName('iconCapsule/icon/color', modes)) as string
39
+ const iconSize = (getVariableByName('iconCapsule/icon/size', modes)) as number
40
40
 
41
41
  // 9999 is the design-token sentinel for "perfect circle"
42
42
  const borderRadius = radiusRaw === 9999 ? size / 2 : radiusRaw
@@ -27,13 +27,13 @@ function SupportText({
27
27
  style
28
28
  }: SupportTextProps) {
29
29
  // Resolve variables
30
- const gap = getVariableByName('supportText/gap', modes) || 4
31
- const foreground = getVariableByName('supportText/foreground', modes) || '#0c0d10'
32
- const iconSize = getVariableByName('supportText/icon/size', modes) || 16
33
- const fontSize = getVariableByName('supportText/fontSize', modes) || 12
34
- const fontFamily = getVariableByName('supportText/fontFamily', modes) || 'System'
35
- const fontWeightRaw = getVariableByName('supportText/fontWeight', modes) || 500
36
- const lineHeight = getVariableByName('supportText/lineHeight', modes) || 16
30
+ const gap = getVariableByName('supportText/gap', modes)
31
+ const foreground = getVariableByName('supportText/foreground', modes)
32
+ const iconSize = getVariableByName('supportText/icon/size', modes)
33
+ const fontSize = getVariableByName('supportText/fontSize', modes)
34
+ const fontFamily = getVariableByName('supportText/fontFamily', modes)
35
+ const fontWeightRaw = getVariableByName('supportText/fontWeight', modes)
36
+ const lineHeight = getVariableByName('supportText/lineHeight', modes)
37
37
 
38
38
  const fontWeight = (typeof fontWeightRaw === 'number' ? fontWeightRaw.toString() : fontWeightRaw) as TextStyle['fontWeight']
39
39
 
@@ -105,7 +105,7 @@ const InputSearch = forwardRef<RNTextInput, InputSearchProps>(function InputSear
105
105
  'InputState': isFocused ? 'Active' : 'Idle'
106
106
  }
107
107
 
108
- const formFieldGap = getVariableByName('formField/gap', componentModes) || 8
108
+ const formFieldGap = getVariableByName('formField/gap', componentModes)
109
109
 
110
110
  // If state is active (has text) and focused? Or just if it has text?
111
111
  // Design typically: Active state (focused) shows clear button if there is text.
@@ -131,7 +131,7 @@ const InputSearch = forwardRef<RNTextInput, InputSearchProps>(function InputSear
131
131
  <Icon
132
132
  name="ic_close"
133
133
  size={18}
134
- color={getVariableByName('textInput/icon/color', componentModes) || '#24262b'}
134
+ color={getVariableByName('textInput/icon/color', componentModes)}
135
135
  />
136
136
  </Pressable>
137
137
  </React.Fragment>
@@ -8,7 +8,7 @@ import {
8
8
  } from 'react-native'
9
9
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
10
10
  import { useTokens } from '../../design-tokens/JFSThemeProvider'
11
- import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
11
+ import { EMPTY_MODES, cloneChildrenWithModes, resolveTruncation } from '../../utils/react-utils'
12
12
  import MediaSource, { type UnifiedSource } from '../../utils/MediaSource'
13
13
  import type { Modes } from '../../design-tokens'
14
14
 
@@ -43,6 +43,12 @@ export type InstitutionBadgeProps = InstitutionBadgeBaseProps & {
43
43
  labelStyle?: StyleProp<TextStyle>
44
44
  /** Accessibility label. Defaults to `label`. */
45
45
  accessibilityLabel?: string
46
+ /**
47
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
48
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
49
+ * lines as it needs even when horizontal space is tight.
50
+ */
51
+ disableTruncation?: boolean
46
52
  }
47
53
 
48
54
  interface InstitutionBadgeTokens {
@@ -83,15 +89,13 @@ function resolveInstitutionBadgeTokens(
83
89
  const gap = toNumber(getVariableByName('institutionBadge/gap', modes), 8)
84
90
 
85
91
  const foreground =
86
- (getVariableByName('institutionBadge/foreground', modes) as string) ||
87
- '#080d1a'
92
+ (getVariableByName('institutionBadge/foreground', modes) as string)
88
93
  const fontSize = toNumber(
89
94
  getVariableByName('institutionBadge/fontSize', modes),
90
95
  14
91
96
  )
92
97
  const fontFamily =
93
- (getVariableByName('institutionBadge/fontFamily', modes) as string) ||
94
- 'JioType Var'
98
+ (getVariableByName('institutionBadge/fontFamily', modes) as string)
95
99
  const lineHeight = toNumber(
96
100
  getVariableByName('institutionBadge/lineHeight', modes),
97
101
  18
@@ -111,8 +115,7 @@ function resolveInstitutionBadgeTokens(
111
115
  // 9999 is the design-token sentinel for "perfect circle".
112
116
  const avatarRadius = avatarRadiusRaw === 9999 ? avatarSize / 2 : avatarRadiusRaw
113
117
  const avatarBorderColor =
114
- (getVariableByName('avatar/border/color', modes) as string) ||
115
- 'rgba(255,255,255,0)'
118
+ (getVariableByName('avatar/border/color', modes) as string)
116
119
  const avatarBorderSize = toNumber(
117
120
  getVariableByName('avatar/border/size', modes),
118
121
  1
@@ -155,6 +158,7 @@ function InstitutionBadge({
155
158
  style,
156
159
  labelStyle,
157
160
  accessibilityLabel,
161
+ disableTruncation,
158
162
  ...rest
159
163
  }: InstitutionBadgeProps) {
160
164
  const { modes: globalModes } = useTokens()
@@ -207,7 +211,7 @@ function InstitutionBadge({
207
211
  />
208
212
  </View>
209
213
  )}
210
- <Text style={[tokens.labelStyle, labelStyle]} numberOfLines={1}>
214
+ <Text style={[tokens.labelStyle, labelStyle]} {...resolveTruncation(disableTruncation, 1)}>
211
215
  {label}
212
216
  </Text>
213
217
  </View>
@@ -6,7 +6,7 @@ import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
6
6
  * Helper function to recursively clone children and pass modes prop to components that accept it.
7
7
  * This ensures that all child components in slots receive the modes prop from the parent.
8
8
  */
9
- import { EMPTY_MODES, cloneChildrenWithModes, flattenChildren } from '../../utils/react-utils'
9
+ import { EMPTY_MODES, cloneChildrenWithModes, flattenChildren, resolveTruncation } from '../../utils/react-utils'
10
10
  import type { Modes } from '../../design-tokens'
11
11
 
12
12
  type ListGroupProps = {
@@ -17,6 +17,12 @@ type ListGroupProps = {
17
17
  style?: StyleProp<ViewStyle>;
18
18
  accessibilityLabel?: string;
19
19
  accessibilityHint?: string;
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
  } & Omit<React.ComponentProps<typeof View>, 'children'>;
21
27
 
22
28
  /**
@@ -52,22 +58,23 @@ function ListGroup({
52
58
  style,
53
59
  accessibilityLabel,
54
60
  accessibilityHint,
61
+ disableTruncation,
55
62
  ...rest
56
63
  }: ListGroupProps) {
57
64
  // Resolve container tokens
58
- const backgroundColor = getVariableByName('listGroup/background', modes) || 'rgba(255,255,255,0)'
65
+ const backgroundColor = getVariableByName('listGroup/background', modes)
59
66
  // The current exported token aliases a missing Figma variable. Keep the
60
67
  // transparent fallback without logging the missing alias on every render.
61
68
  const borderColor = 'rgba(255,255,255,0)'
62
- const borderWidth = getVariableByName('listGroup/borderWidth', modes) || 0
63
- const gap = getVariableByName('listGroup/gap', modes) || 12
69
+ const borderWidth = getVariableByName('listGroup/borderWidth', modes)
70
+ const gap = getVariableByName('listGroup/gap', modes)
64
71
 
65
72
  // Resolve label typography tokens
66
- const labelColor = getVariableByName('listGroup/label/color', modes) || '#24262b'
67
- const labelFontSize = getVariableByName('listGroup/fontSize', modes) || 14
68
- const labelLineHeight = getVariableByName('listGroup/lineHeight', modes) || 18
69
- const labelFontFamily = getVariableByName('listGroup/fontFamily', modes) || 'System'
70
- const labelFontWeightRaw = getVariableByName('listGroup/fontWeight', modes) || 500
73
+ const labelColor = getVariableByName('listGroup/label/color', modes)
74
+ const labelFontSize = getVariableByName('listGroup/fontSize', modes)
75
+ const labelLineHeight = getVariableByName('listGroup/lineHeight', modes)
76
+ const labelFontFamily = getVariableByName('listGroup/fontFamily', modes)
77
+ const labelFontWeightRaw = getVariableByName('listGroup/fontWeight', modes)
71
78
  const labelFontWeight = typeof labelFontWeightRaw === 'number' ? labelFontWeightRaw.toString() : labelFontWeightRaw
72
79
 
73
80
  const containerStyle: ViewStyle = {
@@ -113,7 +120,7 @@ function ListGroup({
113
120
  {label ? (
114
121
  <Text
115
122
  style={[labelStyle, processedSlot && { marginBottom: gap }]}
116
- numberOfLines={1}
123
+ {...resolveTruncation(disableTruncation, 1)}
117
124
  accessibilityElementsHidden={true}
118
125
  importantForAccessibility="no"
119
126
  >