jfs-components 0.1.12 → 0.1.18

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 (592) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/lib/commonjs/components/ActionFooter/ActionFooter.js +7 -24
  3. package/lib/commonjs/components/ActionTile/ActionTile.js +10 -10
  4. package/lib/commonjs/components/AmountInput/AmountInput.js +3 -3
  5. package/lib/commonjs/components/AreaLineChart/AreaLineChart.js +2 -2
  6. package/lib/commonjs/components/Attached/Attached.js +1 -1
  7. package/lib/commonjs/components/Avatar/Avatar.js +10 -10
  8. package/lib/commonjs/components/AvatarGroup/AvatarGroup.js +50 -29
  9. package/lib/commonjs/components/Badge/Badge.js +12 -12
  10. package/lib/commonjs/components/BenefitCard/BenefitCard.js +95 -21
  11. package/lib/commonjs/components/BottomNav/BottomNav.js +2 -2
  12. package/lib/commonjs/components/BottomNavItem/BottomNavItem.js +3 -3
  13. package/lib/commonjs/components/Button/Button.js +31 -19
  14. package/lib/commonjs/components/Card/Card.js +20 -20
  15. package/lib/commonjs/components/CardAdvisory/CardAdvisory.js +6 -6
  16. package/lib/commonjs/components/CardCTA/CardCTA.js +21 -21
  17. package/lib/commonjs/components/CardFeedback/CardFeedback.js +18 -18
  18. package/lib/commonjs/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
  19. package/lib/commonjs/components/CardInsight/CardInsight.js +1 -2
  20. package/lib/commonjs/components/Carousel/Carousel.js +18 -12
  21. package/lib/commonjs/components/CarouselCardAccounts/CarouselCardAccounts.js +75 -0
  22. package/lib/commonjs/components/Checkbox/Checkbox.js +6 -13
  23. package/lib/commonjs/components/ChipGroup/ChipGroup.js +1 -1
  24. package/lib/commonjs/components/ChipSelect/ChipSelect.js +11 -11
  25. package/lib/commonjs/components/CircularProgressBar/CircularProgressBar.js +5 -5
  26. package/lib/commonjs/components/CircularProgressBarDoted/CircularProgressBarDoted.js +8 -8
  27. package/lib/commonjs/components/CircularRating/CircularRating.js +3 -3
  28. package/lib/commonjs/components/CompareTable/CompareTable.js +16 -16
  29. package/lib/commonjs/components/DebitCard/DebitCard.js +18 -18
  30. package/lib/commonjs/components/Disclaimer/Disclaimer.js +5 -5
  31. package/lib/commonjs/components/DonutChart/DonutChart.js +11 -11
  32. package/lib/commonjs/components/Drawer/Drawer.js +60 -60
  33. package/lib/commonjs/components/Dropdown/Dropdown.js +22 -23
  34. package/lib/commonjs/components/DropdownInput/DropdownInput.js +10 -10
  35. package/lib/commonjs/components/EmptyState/EmptyState.js +14 -14
  36. package/lib/commonjs/components/FilterBar/FilterBar.js +2 -2
  37. package/lib/commonjs/components/Form/Form.js +3 -3
  38. package/lib/commonjs/components/FormField/FormField.js +6 -6
  39. package/lib/commonjs/components/FullscreenModal/FullscreenModal.js +24 -24
  40. package/lib/commonjs/components/Gauge/Gauge.js +8 -8
  41. package/lib/commonjs/components/HoldingsCard/HoldingsCard.js +10 -10
  42. package/lib/commonjs/components/Icon/Icon.js +6 -6
  43. package/lib/commonjs/components/IconCapsule/IconCapsule.js +7 -7
  44. package/lib/commonjs/components/InputSearch/InputSearch.js +9 -9
  45. package/lib/commonjs/components/InstitutionBadge/InstitutionBadge.js +3 -3
  46. package/lib/commonjs/components/ListGroup/ListGroup.js +8 -8
  47. package/lib/commonjs/components/ListItem/ListItem.js +10 -10
  48. package/lib/commonjs/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
  49. package/lib/commonjs/components/LottiePlayer/LottiePlayer.js +2 -2
  50. package/lib/commonjs/components/LottiePlayer/LottiePlayer.web.js +2 -2
  51. package/lib/commonjs/components/MediaCard/MediaCard.js +21 -21
  52. package/lib/commonjs/components/MessageField/MessageField.js +8 -8
  53. package/lib/commonjs/components/MoneyValue/MoneyValue.js +7 -7
  54. package/lib/commonjs/components/NavArrow/NavArrow.js +8 -8
  55. package/lib/commonjs/components/NoteInput/NoteInput.js +12 -12
  56. package/lib/commonjs/components/Nudge/Nudge.js +20 -20
  57. package/lib/commonjs/components/OTP/OTP.js +15 -15
  58. package/lib/commonjs/components/PageHero/PageHero.js +16 -16
  59. package/lib/commonjs/components/PaymentFeedback/PaymentFeedback.js +23 -23
  60. package/lib/commonjs/components/Popup/Popup.js +1 -1
  61. package/lib/commonjs/components/ProductMerchandisingCard/ProductMerchandisingCard.js +64 -60
  62. package/lib/commonjs/components/ProgressBadge/ProgressBadge.js +5 -5
  63. package/lib/commonjs/components/Radio/Radio.js +8 -8
  64. package/lib/commonjs/components/RechargeCard/RechargeCard.js +31 -31
  65. package/lib/commonjs/components/SavingsGoalSummary/SavingsGoalSummary.js +59 -12
  66. package/lib/commonjs/components/ScrollArea/ScrollArea.js +126 -0
  67. package/lib/commonjs/components/Section/Section.js +24 -24
  68. package/lib/commonjs/components/StatusHero/StatusHero.js +14 -14
  69. package/lib/commonjs/components/Stepper/Step.js +16 -16
  70. package/lib/commonjs/components/Stepper/StepLabel.js +16 -16
  71. package/lib/commonjs/components/Stepper/Stepper.js +3 -3
  72. package/lib/commonjs/components/SuggestiveSearch/SuggestiveSearch.js +10 -10
  73. package/lib/commonjs/components/SupportText/SupportText.js +6 -6
  74. package/lib/commonjs/components/SupportText/SupportTextIcon.js +2 -2
  75. package/lib/commonjs/components/Text/Text.js +14 -2
  76. package/lib/commonjs/components/TextInput/TextInput.js +14 -14
  77. package/lib/commonjs/components/TextSegment/TextSegment.js +14 -2
  78. package/lib/commonjs/components/ThreadHero/ThreadHero.js +17 -17
  79. package/lib/commonjs/components/Title/Title.js +38 -16
  80. package/lib/commonjs/components/Toast/Toast.js +15 -15
  81. package/lib/commonjs/components/Toggle/Toggle.js +3 -11
  82. package/lib/commonjs/components/Tooltip/Tooltip.js +12 -12
  83. package/lib/commonjs/components/TransactionBubble/TransactionBubble.js +13 -13
  84. package/lib/commonjs/components/TransactionDetails/TransactionDetails.js +10 -10
  85. package/lib/commonjs/components/TransactionStatus/TransactionStatus.js +9 -9
  86. package/lib/commonjs/components/UpiHandle/UpiHandle.js +15 -15
  87. package/lib/commonjs/components/index.js +14 -0
  88. package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
  89. package/lib/commonjs/design-tokens/figma-modes.generated.js +50 -42
  90. package/lib/commonjs/icons/components/Icon4g.js +19 -0
  91. package/lib/commonjs/icons/components/Icon4gltedata.js +19 -0
  92. package/lib/commonjs/icons/components/Icon5g.js +19 -0
  93. package/lib/commonjs/icons/components/Icon5gdoubleplus.js +19 -0
  94. package/lib/commonjs/icons/components/Icon5gplus.js +19 -0
  95. package/lib/commonjs/icons/components/IconAdblocker.js +19 -0
  96. package/lib/commonjs/icons/components/IconAdblockplus.js +19 -0
  97. package/lib/commonjs/icons/components/IconAnalytics.js +19 -0
  98. package/lib/commonjs/icons/components/IconAnalyticsdata.js +19 -0
  99. package/lib/commonjs/icons/components/IconAnalyticspiechart.js +19 -0
  100. package/lib/commonjs/icons/components/IconAnalyticspiecharttree.js +19 -0
  101. package/lib/commonjs/icons/components/IconAnalyticspiecharttwo.js +19 -0
  102. package/lib/commonjs/icons/components/IconCompoundinterest.js +19 -0
  103. package/lib/commonjs/icons/components/IconConsumptionaccounted.js +19 -0
  104. package/lib/commonjs/icons/components/IconConsumptionaverage.js +19 -0
  105. package/lib/commonjs/icons/components/IconConsumptionhigh.js +19 -0
  106. package/lib/commonjs/icons/components/IconConsumptionlow.js +19 -0
  107. package/lib/commonjs/icons/components/IconConsumptionunaccounted.js +19 -0
  108. package/lib/commonjs/icons/components/IconCsvdoc.js +19 -0
  109. package/lib/commonjs/icons/components/IconDatabase.js +19 -0
  110. package/lib/commonjs/icons/components/IconDigitalecosystem.js +19 -0
  111. package/lib/commonjs/icons/components/IconDigitalselfservice.js +19 -0
  112. package/lib/commonjs/icons/components/IconDistribution.js +19 -0
  113. package/lib/commonjs/icons/components/IconDocument.js +19 -0
  114. package/lib/commonjs/icons/components/IconDocumentdoc.js +19 -0
  115. package/lib/commonjs/icons/components/IconDocumentjpg.js +19 -0
  116. package/lib/commonjs/icons/components/IconDocumentodt.js +19 -0
  117. package/lib/commonjs/icons/components/IconDocumentpdf.js +19 -0
  118. package/lib/commonjs/icons/components/IconDocumentpng.js +19 -0
  119. package/lib/commonjs/icons/components/IconDocumentraw.js +19 -0
  120. package/lib/commonjs/icons/components/IconDocumentrtf.js +19 -0
  121. package/lib/commonjs/icons/components/IconDocumentsettings.js +19 -0
  122. package/lib/commonjs/icons/components/IconDocumenttif.js +19 -0
  123. package/lib/commonjs/icons/components/IconDocumenttxt.js +19 -0
  124. package/lib/commonjs/icons/components/IconDocumentunknown.js +19 -0
  125. package/lib/commonjs/icons/components/IconDocumentxls.js +19 -0
  126. package/lib/commonjs/icons/components/IconDocumentxlsx.js +19 -0
  127. package/lib/commonjs/icons/components/IconFilerequest.js +19 -0
  128. package/lib/commonjs/icons/components/IconFilesend.js +19 -0
  129. package/lib/commonjs/icons/components/IconFileshare.js +19 -0
  130. package/lib/commonjs/icons/components/IconFindinpage.js +19 -0
  131. package/lib/commonjs/icons/components/IconFolder.js +19 -0
  132. package/lib/commonjs/icons/components/IconFolderbookmarks.js +19 -0
  133. package/lib/commonjs/icons/components/IconFolderfavorites.js +19 -0
  134. package/lib/commonjs/icons/components/IconFolderlocked.js +19 -0
  135. package/lib/commonjs/icons/components/IconFoldermovefiles.js +19 -0
  136. package/lib/commonjs/icons/components/IconFolderpublic.js +19 -0
  137. package/lib/commonjs/icons/components/IconFolderrated.js +19 -0
  138. package/lib/commonjs/icons/components/IconFolderrequest.js +19 -0
  139. package/lib/commonjs/icons/components/IconForm.js +19 -0
  140. package/lib/commonjs/icons/components/IconFormadd.js +19 -0
  141. package/lib/commonjs/icons/components/IconForms.js +19 -0
  142. package/lib/commonjs/icons/components/IconGraphincreasing.js +19 -0
  143. package/lib/commonjs/icons/components/IconGraphlow.js +19 -0
  144. package/lib/commonjs/icons/components/IconGraphtable.js +19 -0
  145. package/lib/commonjs/icons/components/IconHealthreport.js +19 -0
  146. package/lib/commonjs/icons/components/IconHubmode.js +19 -0
  147. package/lib/commonjs/icons/components/IconInfrastructure.js +19 -0
  148. package/lib/commonjs/icons/components/IconInterestlow.js +19 -0
  149. package/lib/commonjs/icons/components/IconLte.js +19 -0
  150. package/lib/commonjs/icons/components/IconNetworkfuture.js +19 -0
  151. package/lib/commonjs/icons/components/IconPagesettings.js +19 -0
  152. package/lib/commonjs/icons/components/IconPptxdoc.js +19 -0
  153. package/lib/commonjs/icons/components/IconPreferrednumber.js +19 -0
  154. package/lib/commonjs/icons/components/IconPremiumnumber.js +19 -0
  155. package/lib/commonjs/icons/components/IconProjection.js +19 -0
  156. package/lib/commonjs/icons/components/IconRequest.js +19 -0
  157. package/lib/commonjs/icons/components/IconRoutestraffic.js +19 -0
  158. package/lib/commonjs/icons/components/IconTechnology.js +19 -0
  159. package/lib/commonjs/icons/components/IconVolte.js +19 -0
  160. package/lib/commonjs/icons/components/IconVonr.js +19 -0
  161. package/lib/commonjs/icons/components/IconVowifi.js +19 -0
  162. package/lib/commonjs/icons/components/IconVpndata.js +19 -0
  163. package/lib/commonjs/icons/components/index.js +803 -0
  164. package/lib/commonjs/icons/registry.js +2 -2
  165. package/lib/commonjs/utils/GlassFill/GlassFill.js +69 -73
  166. package/lib/commonjs/utils/index.js +25 -0
  167. package/lib/commonjs/utils/react-utils.js +62 -0
  168. package/lib/commonjs/utils/shadow.js +200 -0
  169. package/lib/module/components/ActionFooter/ActionFooter.js +7 -24
  170. package/lib/module/components/ActionTile/ActionTile.js +10 -10
  171. package/lib/module/components/AmountInput/AmountInput.js +3 -3
  172. package/lib/module/components/AreaLineChart/AreaLineChart.js +2 -2
  173. package/lib/module/components/Attached/Attached.js +1 -1
  174. package/lib/module/components/Avatar/Avatar.js +10 -10
  175. package/lib/module/components/AvatarGroup/AvatarGroup.js +52 -30
  176. package/lib/module/components/Badge/Badge.js +12 -12
  177. package/lib/module/components/BenefitCard/BenefitCard.js +95 -21
  178. package/lib/module/components/BottomNav/BottomNav.js +2 -2
  179. package/lib/module/components/BottomNavItem/BottomNavItem.js +3 -3
  180. package/lib/module/components/Button/Button.js +32 -20
  181. package/lib/module/components/Card/Card.js +20 -20
  182. package/lib/module/components/CardAdvisory/CardAdvisory.js +6 -6
  183. package/lib/module/components/CardCTA/CardCTA.js +21 -21
  184. package/lib/module/components/CardFeedback/CardFeedback.js +18 -18
  185. package/lib/module/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
  186. package/lib/module/components/CardInsight/CardInsight.js +1 -2
  187. package/lib/module/components/Carousel/Carousel.js +18 -12
  188. package/lib/module/components/CarouselCardAccounts/CarouselCardAccounts.js +71 -0
  189. package/lib/module/components/Checkbox/Checkbox.js +2 -9
  190. package/lib/module/components/ChipGroup/ChipGroup.js +1 -1
  191. package/lib/module/components/ChipSelect/ChipSelect.js +11 -11
  192. package/lib/module/components/CircularProgressBar/CircularProgressBar.js +5 -5
  193. package/lib/module/components/CircularProgressBarDoted/CircularProgressBarDoted.js +8 -8
  194. package/lib/module/components/CircularRating/CircularRating.js +3 -3
  195. package/lib/module/components/CompareTable/CompareTable.js +16 -16
  196. package/lib/module/components/DebitCard/DebitCard.js +18 -18
  197. package/lib/module/components/Disclaimer/Disclaimer.js +5 -5
  198. package/lib/module/components/DonutChart/DonutChart.js +11 -11
  199. package/lib/module/components/Drawer/Drawer.js +60 -60
  200. package/lib/module/components/Dropdown/Dropdown.js +22 -23
  201. package/lib/module/components/DropdownInput/DropdownInput.js +10 -10
  202. package/lib/module/components/EmptyState/EmptyState.js +14 -14
  203. package/lib/module/components/FilterBar/FilterBar.js +2 -2
  204. package/lib/module/components/Form/Form.js +3 -3
  205. package/lib/module/components/FormField/FormField.js +6 -6
  206. package/lib/module/components/FullscreenModal/FullscreenModal.js +24 -24
  207. package/lib/module/components/Gauge/Gauge.js +8 -8
  208. package/lib/module/components/HoldingsCard/HoldingsCard.js +10 -10
  209. package/lib/module/components/Icon/Icon.js +6 -6
  210. package/lib/module/components/IconCapsule/IconCapsule.js +7 -7
  211. package/lib/module/components/InputSearch/InputSearch.js +9 -9
  212. package/lib/module/components/InstitutionBadge/InstitutionBadge.js +3 -3
  213. package/lib/module/components/ListGroup/ListGroup.js +8 -8
  214. package/lib/module/components/ListItem/ListItem.js +10 -10
  215. package/lib/module/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
  216. package/lib/module/components/LottiePlayer/LottiePlayer.js +2 -2
  217. package/lib/module/components/LottiePlayer/LottiePlayer.web.js +2 -2
  218. package/lib/module/components/MediaCard/MediaCard.js +21 -21
  219. package/lib/module/components/MessageField/MessageField.js +8 -8
  220. package/lib/module/components/MoneyValue/MoneyValue.js +7 -7
  221. package/lib/module/components/NavArrow/NavArrow.js +8 -8
  222. package/lib/module/components/NoteInput/NoteInput.js +12 -12
  223. package/lib/module/components/Nudge/Nudge.js +20 -20
  224. package/lib/module/components/OTP/OTP.js +15 -15
  225. package/lib/module/components/PageHero/PageHero.js +16 -16
  226. package/lib/module/components/PaymentFeedback/PaymentFeedback.js +23 -23
  227. package/lib/module/components/Popup/Popup.js +1 -1
  228. package/lib/module/components/ProductMerchandisingCard/ProductMerchandisingCard.js +66 -62
  229. package/lib/module/components/ProgressBadge/ProgressBadge.js +5 -5
  230. package/lib/module/components/Radio/Radio.js +9 -9
  231. package/lib/module/components/RechargeCard/RechargeCard.js +31 -31
  232. package/lib/module/components/SavingsGoalSummary/SavingsGoalSummary.js +60 -13
  233. package/lib/module/components/ScrollArea/ScrollArea.js +121 -0
  234. package/lib/module/components/Section/Section.js +24 -24
  235. package/lib/module/components/StatusHero/StatusHero.js +14 -14
  236. package/lib/module/components/Stepper/Step.js +16 -16
  237. package/lib/module/components/Stepper/StepLabel.js +16 -16
  238. package/lib/module/components/Stepper/Stepper.js +3 -3
  239. package/lib/module/components/SuggestiveSearch/SuggestiveSearch.js +10 -10
  240. package/lib/module/components/SupportText/SupportText.js +6 -6
  241. package/lib/module/components/SupportText/SupportTextIcon.js +2 -2
  242. package/lib/module/components/Text/Text.js +15 -3
  243. package/lib/module/components/TextInput/TextInput.js +14 -14
  244. package/lib/module/components/TextSegment/TextSegment.js +15 -3
  245. package/lib/module/components/ThreadHero/ThreadHero.js +17 -17
  246. package/lib/module/components/Title/Title.js +39 -17
  247. package/lib/module/components/Toast/Toast.js +15 -15
  248. package/lib/module/components/Toggle/Toggle.js +4 -12
  249. package/lib/module/components/Tooltip/Tooltip.js +12 -12
  250. package/lib/module/components/TransactionBubble/TransactionBubble.js +13 -13
  251. package/lib/module/components/TransactionDetails/TransactionDetails.js +10 -10
  252. package/lib/module/components/TransactionStatus/TransactionStatus.js +9 -9
  253. package/lib/module/components/UpiHandle/UpiHandle.js +15 -15
  254. package/lib/module/components/index.js +2 -0
  255. package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
  256. package/lib/module/design-tokens/figma-modes.generated.js +50 -42
  257. package/lib/module/icons/components/Icon4g.js +12 -0
  258. package/lib/module/icons/components/Icon4gltedata.js +12 -0
  259. package/lib/module/icons/components/Icon5g.js +12 -0
  260. package/lib/module/icons/components/Icon5gdoubleplus.js +12 -0
  261. package/lib/module/icons/components/Icon5gplus.js +12 -0
  262. package/lib/module/icons/components/IconAdblocker.js +12 -0
  263. package/lib/module/icons/components/IconAdblockplus.js +12 -0
  264. package/lib/module/icons/components/IconAnalytics.js +12 -0
  265. package/lib/module/icons/components/IconAnalyticsdata.js +12 -0
  266. package/lib/module/icons/components/IconAnalyticspiechart.js +12 -0
  267. package/lib/module/icons/components/IconAnalyticspiecharttree.js +12 -0
  268. package/lib/module/icons/components/IconAnalyticspiecharttwo.js +12 -0
  269. package/lib/module/icons/components/IconCompoundinterest.js +12 -0
  270. package/lib/module/icons/components/IconConsumptionaccounted.js +12 -0
  271. package/lib/module/icons/components/IconConsumptionaverage.js +12 -0
  272. package/lib/module/icons/components/IconConsumptionhigh.js +12 -0
  273. package/lib/module/icons/components/IconConsumptionlow.js +12 -0
  274. package/lib/module/icons/components/IconConsumptionunaccounted.js +12 -0
  275. package/lib/module/icons/components/IconCsvdoc.js +12 -0
  276. package/lib/module/icons/components/IconDatabase.js +12 -0
  277. package/lib/module/icons/components/IconDigitalecosystem.js +12 -0
  278. package/lib/module/icons/components/IconDigitalselfservice.js +12 -0
  279. package/lib/module/icons/components/IconDistribution.js +12 -0
  280. package/lib/module/icons/components/IconDocument.js +12 -0
  281. package/lib/module/icons/components/IconDocumentdoc.js +12 -0
  282. package/lib/module/icons/components/IconDocumentjpg.js +12 -0
  283. package/lib/module/icons/components/IconDocumentodt.js +12 -0
  284. package/lib/module/icons/components/IconDocumentpdf.js +12 -0
  285. package/lib/module/icons/components/IconDocumentpng.js +12 -0
  286. package/lib/module/icons/components/IconDocumentraw.js +12 -0
  287. package/lib/module/icons/components/IconDocumentrtf.js +12 -0
  288. package/lib/module/icons/components/IconDocumentsettings.js +12 -0
  289. package/lib/module/icons/components/IconDocumenttif.js +12 -0
  290. package/lib/module/icons/components/IconDocumenttxt.js +12 -0
  291. package/lib/module/icons/components/IconDocumentunknown.js +12 -0
  292. package/lib/module/icons/components/IconDocumentxls.js +12 -0
  293. package/lib/module/icons/components/IconDocumentxlsx.js +12 -0
  294. package/lib/module/icons/components/IconFilerequest.js +12 -0
  295. package/lib/module/icons/components/IconFilesend.js +12 -0
  296. package/lib/module/icons/components/IconFileshare.js +12 -0
  297. package/lib/module/icons/components/IconFindinpage.js +12 -0
  298. package/lib/module/icons/components/IconFolder.js +12 -0
  299. package/lib/module/icons/components/IconFolderbookmarks.js +12 -0
  300. package/lib/module/icons/components/IconFolderfavorites.js +12 -0
  301. package/lib/module/icons/components/IconFolderlocked.js +12 -0
  302. package/lib/module/icons/components/IconFoldermovefiles.js +12 -0
  303. package/lib/module/icons/components/IconFolderpublic.js +12 -0
  304. package/lib/module/icons/components/IconFolderrated.js +12 -0
  305. package/lib/module/icons/components/IconFolderrequest.js +12 -0
  306. package/lib/module/icons/components/IconForm.js +12 -0
  307. package/lib/module/icons/components/IconFormadd.js +12 -0
  308. package/lib/module/icons/components/IconForms.js +12 -0
  309. package/lib/module/icons/components/IconGraphincreasing.js +12 -0
  310. package/lib/module/icons/components/IconGraphlow.js +12 -0
  311. package/lib/module/icons/components/IconGraphtable.js +12 -0
  312. package/lib/module/icons/components/IconHealthreport.js +12 -0
  313. package/lib/module/icons/components/IconHubmode.js +12 -0
  314. package/lib/module/icons/components/IconInfrastructure.js +12 -0
  315. package/lib/module/icons/components/IconInterestlow.js +12 -0
  316. package/lib/module/icons/components/IconLte.js +12 -0
  317. package/lib/module/icons/components/IconNetworkfuture.js +12 -0
  318. package/lib/module/icons/components/IconPagesettings.js +12 -0
  319. package/lib/module/icons/components/IconPptxdoc.js +12 -0
  320. package/lib/module/icons/components/IconPreferrednumber.js +12 -0
  321. package/lib/module/icons/components/IconPremiumnumber.js +12 -0
  322. package/lib/module/icons/components/IconProjection.js +12 -0
  323. package/lib/module/icons/components/IconRequest.js +12 -0
  324. package/lib/module/icons/components/IconRoutestraffic.js +12 -0
  325. package/lib/module/icons/components/IconTechnology.js +12 -0
  326. package/lib/module/icons/components/IconVolte.js +12 -0
  327. package/lib/module/icons/components/IconVonr.js +12 -0
  328. package/lib/module/icons/components/IconVowifi.js +12 -0
  329. package/lib/module/icons/components/IconVpndata.js +12 -0
  330. package/lib/module/icons/components/index.js +73 -0
  331. package/lib/module/icons/registry.js +2 -2
  332. package/lib/module/utils/GlassFill/GlassFill.js +69 -72
  333. package/lib/module/utils/index.js +2 -1
  334. package/lib/module/utils/react-utils.js +61 -0
  335. package/lib/module/utils/shadow.js +194 -0
  336. package/lib/typescript/src/components/BenefitCard/BenefitCard.d.ts +33 -4
  337. package/lib/typescript/src/components/Carousel/Carousel.d.ts +11 -1
  338. package/lib/typescript/src/components/CarouselCardAccounts/CarouselCardAccounts.d.ts +57 -0
  339. package/lib/typescript/src/components/SavingsGoalSummary/SavingsGoalSummary.d.ts +11 -1
  340. package/lib/typescript/src/components/ScrollArea/ScrollArea.d.ts +77 -0
  341. package/lib/typescript/src/components/Text/Text.d.ts +12 -3
  342. package/lib/typescript/src/components/TextSegment/TextSegment.d.ts +12 -3
  343. package/lib/typescript/src/components/Title/Title.d.ts +12 -2
  344. package/lib/typescript/src/components/index.d.ts +2 -0
  345. package/lib/typescript/src/design-tokens/figma-modes.generated.d.ts +23 -15
  346. package/lib/typescript/src/icons/components/Icon4g.d.ts +3 -0
  347. package/lib/typescript/src/icons/components/Icon4gltedata.d.ts +3 -0
  348. package/lib/typescript/src/icons/components/Icon5g.d.ts +3 -0
  349. package/lib/typescript/src/icons/components/Icon5gdoubleplus.d.ts +3 -0
  350. package/lib/typescript/src/icons/components/Icon5gplus.d.ts +3 -0
  351. package/lib/typescript/src/icons/components/IconAdblocker.d.ts +3 -0
  352. package/lib/typescript/src/icons/components/IconAdblockplus.d.ts +3 -0
  353. package/lib/typescript/src/icons/components/IconAnalytics.d.ts +3 -0
  354. package/lib/typescript/src/icons/components/IconAnalyticsdata.d.ts +3 -0
  355. package/lib/typescript/src/icons/components/IconAnalyticspiechart.d.ts +3 -0
  356. package/lib/typescript/src/icons/components/IconAnalyticspiecharttree.d.ts +3 -0
  357. package/lib/typescript/src/icons/components/IconAnalyticspiecharttwo.d.ts +3 -0
  358. package/lib/typescript/src/icons/components/IconCompoundinterest.d.ts +3 -0
  359. package/lib/typescript/src/icons/components/IconConsumptionaccounted.d.ts +3 -0
  360. package/lib/typescript/src/icons/components/IconConsumptionaverage.d.ts +3 -0
  361. package/lib/typescript/src/icons/components/IconConsumptionhigh.d.ts +3 -0
  362. package/lib/typescript/src/icons/components/IconConsumptionlow.d.ts +3 -0
  363. package/lib/typescript/src/icons/components/IconConsumptionunaccounted.d.ts +3 -0
  364. package/lib/typescript/src/icons/components/IconCsvdoc.d.ts +3 -0
  365. package/lib/typescript/src/icons/components/IconDatabase.d.ts +3 -0
  366. package/lib/typescript/src/icons/components/IconDigitalecosystem.d.ts +3 -0
  367. package/lib/typescript/src/icons/components/IconDigitalselfservice.d.ts +3 -0
  368. package/lib/typescript/src/icons/components/IconDistribution.d.ts +3 -0
  369. package/lib/typescript/src/icons/components/IconDocument.d.ts +3 -0
  370. package/lib/typescript/src/icons/components/IconDocumentdoc.d.ts +3 -0
  371. package/lib/typescript/src/icons/components/IconDocumentjpg.d.ts +3 -0
  372. package/lib/typescript/src/icons/components/IconDocumentodt.d.ts +3 -0
  373. package/lib/typescript/src/icons/components/IconDocumentpdf.d.ts +3 -0
  374. package/lib/typescript/src/icons/components/IconDocumentpng.d.ts +3 -0
  375. package/lib/typescript/src/icons/components/IconDocumentraw.d.ts +3 -0
  376. package/lib/typescript/src/icons/components/IconDocumentrtf.d.ts +3 -0
  377. package/lib/typescript/src/icons/components/IconDocumentsettings.d.ts +3 -0
  378. package/lib/typescript/src/icons/components/IconDocumenttif.d.ts +3 -0
  379. package/lib/typescript/src/icons/components/IconDocumenttxt.d.ts +3 -0
  380. package/lib/typescript/src/icons/components/IconDocumentunknown.d.ts +3 -0
  381. package/lib/typescript/src/icons/components/IconDocumentxls.d.ts +3 -0
  382. package/lib/typescript/src/icons/components/IconDocumentxlsx.d.ts +3 -0
  383. package/lib/typescript/src/icons/components/IconFilerequest.d.ts +3 -0
  384. package/lib/typescript/src/icons/components/IconFilesend.d.ts +3 -0
  385. package/lib/typescript/src/icons/components/IconFileshare.d.ts +3 -0
  386. package/lib/typescript/src/icons/components/IconFindinpage.d.ts +3 -0
  387. package/lib/typescript/src/icons/components/IconFolder.d.ts +3 -0
  388. package/lib/typescript/src/icons/components/IconFolderbookmarks.d.ts +3 -0
  389. package/lib/typescript/src/icons/components/IconFolderfavorites.d.ts +3 -0
  390. package/lib/typescript/src/icons/components/IconFolderlocked.d.ts +3 -0
  391. package/lib/typescript/src/icons/components/IconFoldermovefiles.d.ts +3 -0
  392. package/lib/typescript/src/icons/components/IconFolderpublic.d.ts +3 -0
  393. package/lib/typescript/src/icons/components/IconFolderrated.d.ts +3 -0
  394. package/lib/typescript/src/icons/components/IconFolderrequest.d.ts +3 -0
  395. package/lib/typescript/src/icons/components/IconForm.d.ts +3 -0
  396. package/lib/typescript/src/icons/components/IconFormadd.d.ts +3 -0
  397. package/lib/typescript/src/icons/components/IconForms.d.ts +3 -0
  398. package/lib/typescript/src/icons/components/IconGraphincreasing.d.ts +3 -0
  399. package/lib/typescript/src/icons/components/IconGraphlow.d.ts +3 -0
  400. package/lib/typescript/src/icons/components/IconGraphtable.d.ts +3 -0
  401. package/lib/typescript/src/icons/components/IconHealthreport.d.ts +3 -0
  402. package/lib/typescript/src/icons/components/IconHubmode.d.ts +3 -0
  403. package/lib/typescript/src/icons/components/IconInfrastructure.d.ts +3 -0
  404. package/lib/typescript/src/icons/components/IconInterestlow.d.ts +3 -0
  405. package/lib/typescript/src/icons/components/IconLte.d.ts +3 -0
  406. package/lib/typescript/src/icons/components/IconNetworkfuture.d.ts +3 -0
  407. package/lib/typescript/src/icons/components/IconPagesettings.d.ts +3 -0
  408. package/lib/typescript/src/icons/components/IconPptxdoc.d.ts +3 -0
  409. package/lib/typescript/src/icons/components/IconPreferrednumber.d.ts +3 -0
  410. package/lib/typescript/src/icons/components/IconPremiumnumber.d.ts +3 -0
  411. package/lib/typescript/src/icons/components/IconProjection.d.ts +3 -0
  412. package/lib/typescript/src/icons/components/IconRequest.d.ts +3 -0
  413. package/lib/typescript/src/icons/components/IconRoutestraffic.d.ts +3 -0
  414. package/lib/typescript/src/icons/components/IconTechnology.d.ts +3 -0
  415. package/lib/typescript/src/icons/components/IconVolte.d.ts +3 -0
  416. package/lib/typescript/src/icons/components/IconVonr.d.ts +3 -0
  417. package/lib/typescript/src/icons/components/IconVowifi.d.ts +3 -0
  418. package/lib/typescript/src/icons/components/IconVpndata.d.ts +3 -0
  419. package/lib/typescript/src/icons/components/index.d.ts +73 -0
  420. package/lib/typescript/src/icons/registry.d.ts +1 -1
  421. package/lib/typescript/src/utils/GlassFill/GlassFill.d.ts +11 -4
  422. package/lib/typescript/src/utils/index.d.ts +2 -0
  423. package/lib/typescript/src/utils/react-utils.d.ts +40 -1
  424. package/lib/typescript/src/utils/shadow.d.ts +72 -0
  425. package/package.json +2 -2
  426. package/src/components/ActionFooter/ActionFooter.tsx +8 -26
  427. package/src/components/ActionTile/ActionTile.tsx +10 -10
  428. package/src/components/AmountInput/AmountInput.tsx +3 -3
  429. package/src/components/AreaLineChart/AreaLineChart.tsx +2 -2
  430. package/src/components/Attached/Attached.tsx +1 -1
  431. package/src/components/Avatar/Avatar.tsx +10 -10
  432. package/src/components/AvatarGroup/AvatarGroup.tsx +53 -27
  433. package/src/components/Badge/Badge.tsx +12 -13
  434. package/src/components/BenefitCard/BenefitCard.tsx +120 -27
  435. package/src/components/BottomNav/BottomNav.tsx +2 -2
  436. package/src/components/BottomNavItem/BottomNavItem.tsx +3 -3
  437. package/src/components/Button/Button.tsx +30 -20
  438. package/src/components/Card/Card.tsx +20 -20
  439. package/src/components/CardAdvisory/CardAdvisory.tsx +6 -6
  440. package/src/components/CardCTA/CardCTA.tsx +21 -21
  441. package/src/components/CardFeedback/CardFeedback.tsx +18 -18
  442. package/src/components/CardFinancialCondition/CardFinancialCondition.tsx +7 -10
  443. package/src/components/CardInsight/CardInsight.tsx +1 -3
  444. package/src/components/Carousel/Carousel.tsx +29 -12
  445. package/src/components/CarouselCardAccounts/CarouselCardAccounts.tsx +113 -0
  446. package/src/components/Checkbox/Checkbox.tsx +2 -8
  447. package/src/components/ChipGroup/ChipGroup.tsx +1 -1
  448. package/src/components/ChipSelect/ChipSelect.tsx +11 -11
  449. package/src/components/CircularProgressBar/CircularProgressBar.tsx +5 -5
  450. package/src/components/CircularProgressBarDoted/CircularProgressBarDoted.tsx +8 -8
  451. package/src/components/CircularRating/CircularRating.tsx +3 -3
  452. package/src/components/CompareTable/CompareTable.tsx +16 -16
  453. package/src/components/DebitCard/DebitCard.tsx +22 -22
  454. package/src/components/Disclaimer/Disclaimer.tsx +5 -5
  455. package/src/components/DonutChart/DonutChart.tsx +11 -45
  456. package/src/components/Drawer/Drawer.tsx +80 -71
  457. package/src/components/Dropdown/Dropdown.tsx +23 -28
  458. package/src/components/DropdownInput/DropdownInput.tsx +10 -17
  459. package/src/components/EmptyState/EmptyState.tsx +14 -14
  460. package/src/components/FilterBar/FilterBar.tsx +2 -2
  461. package/src/components/Form/Form.tsx +3 -3
  462. package/src/components/FormField/FormField.tsx +6 -11
  463. package/src/components/FullscreenModal/FullscreenModal.tsx +24 -24
  464. package/src/components/Gauge/Gauge.tsx +8 -8
  465. package/src/components/HoldingsCard/HoldingsCard.tsx +10 -10
  466. package/src/components/Icon/Icon.tsx +6 -6
  467. package/src/components/IconCapsule/IconCapsule.tsx +7 -7
  468. package/src/components/InputSearch/InputSearch.tsx +9 -9
  469. package/src/components/InstitutionBadge/InstitutionBadge.tsx +3 -6
  470. package/src/components/ListGroup/ListGroup.tsx +8 -8
  471. package/src/components/ListItem/ListItem.tsx +10 -10
  472. package/src/components/LottieIntroBlock/LottieIntroBlock.tsx +13 -16
  473. package/src/components/LottiePlayer/LottiePlayer.tsx +2 -2
  474. package/src/components/LottiePlayer/LottiePlayer.web.tsx +2 -2
  475. package/src/components/MediaCard/MediaCard.tsx +21 -21
  476. package/src/components/MessageField/MessageField.tsx +8 -16
  477. package/src/components/MoneyValue/MoneyValue.tsx +7 -7
  478. package/src/components/NavArrow/NavArrow.tsx +8 -8
  479. package/src/components/NoteInput/NoteInput.tsx +12 -12
  480. package/src/components/Nudge/Nudge.tsx +20 -20
  481. package/src/components/OTP/OTP.tsx +16 -16
  482. package/src/components/PageHero/PageHero.tsx +16 -16
  483. package/src/components/PaymentFeedback/PaymentFeedback.tsx +27 -27
  484. package/src/components/Popup/Popup.tsx +1 -1
  485. package/src/components/ProductMerchandisingCard/ProductMerchandisingCard.tsx +76 -47
  486. package/src/components/ProgressBadge/ProgressBadge.tsx +5 -5
  487. package/src/components/Radio/Radio.tsx +8 -9
  488. package/src/components/RechargeCard/RechargeCard.tsx +31 -31
  489. package/src/components/SavingsGoalSummary/SavingsGoalSummary.tsx +105 -13
  490. package/src/components/ScrollArea/ScrollArea.tsx +200 -0
  491. package/src/components/Section/Section.tsx +26 -26
  492. package/src/components/StatusHero/StatusHero.tsx +14 -14
  493. package/src/components/Stepper/Step.tsx +16 -18
  494. package/src/components/Stepper/StepLabel.tsx +16 -27
  495. package/src/components/Stepper/Stepper.tsx +3 -4
  496. package/src/components/SuggestiveSearch/SuggestiveSearch.tsx +10 -20
  497. package/src/components/SupportText/SupportText.tsx +6 -6
  498. package/src/components/SupportText/SupportTextIcon.tsx +2 -2
  499. package/src/components/Text/Text.tsx +23 -5
  500. package/src/components/TextInput/TextInput.tsx +14 -14
  501. package/src/components/TextSegment/TextSegment.tsx +22 -4
  502. package/src/components/ThreadHero/ThreadHero.tsx +17 -17
  503. package/src/components/Title/Title.tsx +44 -18
  504. package/src/components/Toast/Toast.tsx +15 -15
  505. package/src/components/Toggle/Toggle.tsx +5 -10
  506. package/src/components/Tooltip/Tooltip.tsx +12 -12
  507. package/src/components/TransactionBubble/TransactionBubble.tsx +15 -15
  508. package/src/components/TransactionDetails/TransactionDetails.tsx +10 -10
  509. package/src/components/TransactionStatus/TransactionStatus.tsx +9 -9
  510. package/src/components/UpiHandle/UpiHandle.tsx +15 -15
  511. package/src/components/index.ts +2 -0
  512. package/src/design-tokens/Coin Variables-variables-full.json +1 -1
  513. package/src/design-tokens/figma-modes.generated.ts +50 -42
  514. package/src/icons/components/Icon4g.tsx +11 -0
  515. package/src/icons/components/Icon4gltedata.tsx +11 -0
  516. package/src/icons/components/Icon5g.tsx +11 -0
  517. package/src/icons/components/Icon5gdoubleplus.tsx +11 -0
  518. package/src/icons/components/Icon5gplus.tsx +11 -0
  519. package/src/icons/components/IconAdblocker.tsx +11 -0
  520. package/src/icons/components/IconAdblockplus.tsx +11 -0
  521. package/src/icons/components/IconAnalytics.tsx +11 -0
  522. package/src/icons/components/IconAnalyticsdata.tsx +11 -0
  523. package/src/icons/components/IconAnalyticspiechart.tsx +11 -0
  524. package/src/icons/components/IconAnalyticspiecharttree.tsx +11 -0
  525. package/src/icons/components/IconAnalyticspiecharttwo.tsx +11 -0
  526. package/src/icons/components/IconCompoundinterest.tsx +11 -0
  527. package/src/icons/components/IconConsumptionaccounted.tsx +11 -0
  528. package/src/icons/components/IconConsumptionaverage.tsx +11 -0
  529. package/src/icons/components/IconConsumptionhigh.tsx +11 -0
  530. package/src/icons/components/IconConsumptionlow.tsx +11 -0
  531. package/src/icons/components/IconConsumptionunaccounted.tsx +11 -0
  532. package/src/icons/components/IconCsvdoc.tsx +11 -0
  533. package/src/icons/components/IconDatabase.tsx +11 -0
  534. package/src/icons/components/IconDigitalecosystem.tsx +11 -0
  535. package/src/icons/components/IconDigitalselfservice.tsx +11 -0
  536. package/src/icons/components/IconDistribution.tsx +11 -0
  537. package/src/icons/components/IconDocument.tsx +11 -0
  538. package/src/icons/components/IconDocumentdoc.tsx +11 -0
  539. package/src/icons/components/IconDocumentjpg.tsx +11 -0
  540. package/src/icons/components/IconDocumentodt.tsx +11 -0
  541. package/src/icons/components/IconDocumentpdf.tsx +11 -0
  542. package/src/icons/components/IconDocumentpng.tsx +11 -0
  543. package/src/icons/components/IconDocumentraw.tsx +11 -0
  544. package/src/icons/components/IconDocumentrtf.tsx +11 -0
  545. package/src/icons/components/IconDocumentsettings.tsx +11 -0
  546. package/src/icons/components/IconDocumenttif.tsx +11 -0
  547. package/src/icons/components/IconDocumenttxt.tsx +11 -0
  548. package/src/icons/components/IconDocumentunknown.tsx +11 -0
  549. package/src/icons/components/IconDocumentxls.tsx +11 -0
  550. package/src/icons/components/IconDocumentxlsx.tsx +11 -0
  551. package/src/icons/components/IconFilerequest.tsx +11 -0
  552. package/src/icons/components/IconFilesend.tsx +11 -0
  553. package/src/icons/components/IconFileshare.tsx +11 -0
  554. package/src/icons/components/IconFindinpage.tsx +11 -0
  555. package/src/icons/components/IconFolder.tsx +11 -0
  556. package/src/icons/components/IconFolderbookmarks.tsx +11 -0
  557. package/src/icons/components/IconFolderfavorites.tsx +11 -0
  558. package/src/icons/components/IconFolderlocked.tsx +11 -0
  559. package/src/icons/components/IconFoldermovefiles.tsx +11 -0
  560. package/src/icons/components/IconFolderpublic.tsx +11 -0
  561. package/src/icons/components/IconFolderrated.tsx +11 -0
  562. package/src/icons/components/IconFolderrequest.tsx +11 -0
  563. package/src/icons/components/IconForm.tsx +11 -0
  564. package/src/icons/components/IconFormadd.tsx +11 -0
  565. package/src/icons/components/IconForms.tsx +11 -0
  566. package/src/icons/components/IconGraphincreasing.tsx +11 -0
  567. package/src/icons/components/IconGraphlow.tsx +11 -0
  568. package/src/icons/components/IconGraphtable.tsx +11 -0
  569. package/src/icons/components/IconHealthreport.tsx +11 -0
  570. package/src/icons/components/IconHubmode.tsx +11 -0
  571. package/src/icons/components/IconInfrastructure.tsx +11 -0
  572. package/src/icons/components/IconInterestlow.tsx +11 -0
  573. package/src/icons/components/IconLte.tsx +11 -0
  574. package/src/icons/components/IconNetworkfuture.tsx +11 -0
  575. package/src/icons/components/IconPagesettings.tsx +11 -0
  576. package/src/icons/components/IconPptxdoc.tsx +11 -0
  577. package/src/icons/components/IconPreferrednumber.tsx +11 -0
  578. package/src/icons/components/IconPremiumnumber.tsx +11 -0
  579. package/src/icons/components/IconProjection.tsx +11 -0
  580. package/src/icons/components/IconRequest.tsx +11 -0
  581. package/src/icons/components/IconRoutestraffic.tsx +11 -0
  582. package/src/icons/components/IconTechnology.tsx +11 -0
  583. package/src/icons/components/IconVolte.tsx +11 -0
  584. package/src/icons/components/IconVonr.tsx +11 -0
  585. package/src/icons/components/IconVowifi.tsx +11 -0
  586. package/src/icons/components/IconVpndata.tsx +11 -0
  587. package/src/icons/components/index.ts +73 -0
  588. package/src/icons/registry.ts +293 -1
  589. package/src/utils/GlassFill/GlassFill.tsx +59 -56
  590. package/src/utils/index.ts +2 -0
  591. package/src/utils/react-utils.ts +72 -1
  592. package/src/utils/shadow.ts +219 -0
@@ -51,17 +51,17 @@ const monogramContainerStyle = {
51
51
  // ---------------------------------------------------------------------------
52
52
 
53
53
  function resolveAvatarTokens(modes, isMonogram) {
54
- const size = getVariableByName('avatar/size', modes) || 29;
55
- const radiusRaw = getVariableByName('avatar/radius', modes) || 9999;
56
- const backgroundColor = getVariableByName('avatar/background', modes) || '#dbcfff';
57
- const borderColor = getVariableByName('avatar/border/color', modes) || 'rgba(255,255,255,0)';
58
- const borderSize = getVariableByName('avatar/border/size', modes) || 1;
59
- const labelColor = getVariableByName('avatar/label/color', modes) || '#5c00b5';
60
- const labelFontSize = getVariableByName('avatar/label/fontSize', modes) || 12;
61
- const labelLineHeight = getVariableByName('avatar/label/lineHeight', modes) || 14;
62
- const labelFontWeightRaw = getVariableByName('avatar/label/fontWeight', modes) || 500;
54
+ const size = getVariableByName('avatar/size', modes);
55
+ const radiusRaw = getVariableByName('avatar/radius', modes);
56
+ const backgroundColor = getVariableByName('avatar/background', modes);
57
+ const borderColor = getVariableByName('avatar/border/color', modes);
58
+ const borderSize = getVariableByName('avatar/border/size', modes);
59
+ const labelColor = getVariableByName('avatar/label/color', modes);
60
+ const labelFontSize = getVariableByName('avatar/label/fontSize', modes);
61
+ const labelLineHeight = getVariableByName('avatar/label/lineHeight', modes);
62
+ const labelFontWeightRaw = getVariableByName('avatar/label/fontWeight', modes);
63
63
  const labelFontWeight = typeof labelFontWeightRaw === 'number' ? labelFontWeightRaw.toString() : labelFontWeightRaw;
64
- const labelFontFamily = getVariableByName('avatar/label/fontFamily', modes) || 'Inter';
64
+ const labelFontFamily = getVariableByName('avatar/label/fontFamily', modes);
65
65
 
66
66
  // 9999 is the design-token sentinel for "perfect circle"
67
67
  const borderRadius = radiusRaw === 9999 ? size / 2 : radiusRaw;
@@ -1,27 +1,30 @@
1
1
  "use strict";
2
2
 
3
- import React from 'react';
3
+ import React, { useId } from 'react';
4
4
  import { View, Platform } from 'react-native';
5
- import MaskedView from '@react-native-masked-view/masked-view';
6
- import Svg, { Path } from 'react-native-svg';
5
+ import Svg, { Defs, Mask, Path, ForeignObject } from 'react-native-svg';
7
6
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
8
7
  import { EMPTY_MODES, flattenChildren } from '../../utils/react-utils';
9
- import { jsx as _jsx } from "react/jsx-runtime";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
9
  function AvatarGroup({
11
10
  modes = EMPTY_MODES,
12
11
  children,
13
12
  style,
14
13
  ...rest
15
14
  }) {
16
- const gap = getVariableByName('avatarGroup/gap', modes) || 0;
17
- const avatarSize = getVariableByName('avatar/size', modes) || 29;
18
- const avatarRadius = getVariableByName('avatar/radius', modes) || 9999;
19
- const borderSize = getVariableByName('avatar/border/size', modes) || 1;
20
- const borderColor = getVariableByName('avatar/border/color', modes) || 'rgba(255,255,255,0)';
21
- const paddingLeft = getVariableByName('avatarGroup/padding/left', modes) || 0;
22
- const paddingRight = getVariableByName('avatarGroup/padding/right', modes) || 0;
23
- const paddingTop = getVariableByName('avatarGroup/padding/top', modes) || 0;
24
- const paddingBottom = getVariableByName('avatarGroup/padding/bottom', modes) || 0;
15
+ // Stable, collision-free base for the per-avatar SVG mask ids so multiple
16
+ // groups on one screen (and multiple avatars in a group) never clash.
17
+ const rawId = useId();
18
+ const maskBaseId = `avatargroup-mask-${rawId.replace(/[^a-zA-Z0-9_-]/g, '')}`;
19
+ const gap = getVariableByName('avatarGroup/gap', modes);
20
+ const avatarSize = getVariableByName('avatar/size', modes);
21
+ const avatarRadius = getVariableByName('avatar/radius', modes);
22
+ const borderSize = getVariableByName('avatar/border/size', modes);
23
+ const borderColor = getVariableByName('avatar/border/color', modes);
24
+ const paddingLeft = getVariableByName('avatarGroup/padding/left', modes);
25
+ const paddingRight = getVariableByName('avatarGroup/padding/right', modes);
26
+ const paddingTop = getVariableByName('avatarGroup/padding/top', modes);
27
+ const paddingBottom = getVariableByName('avatarGroup/padding/bottom', modes);
25
28
  const validChildren = flattenChildren(children);
26
29
  const totalChildren = validChildren.length;
27
30
 
@@ -41,7 +44,11 @@ function AvatarGroup({
41
44
  y: r
42
45
  };
43
46
 
44
- // Native Mask Path
47
+ // Native mask path: the full avatar square MINUS a circular hole where the
48
+ // next (overlapping) avatar sits. Drawn as a single `evenodd` path so the
49
+ // hole is cut out of the square. Filled WHITE because react-native-svg's
50
+ // `<Mask>` is a *luminance* mask (white = visible, black/absent = hidden) —
51
+ // the inverse of the old `@react-native-masked-view` alpha convention.
45
52
  const rectPath = `M 0 0 h ${avatarSizeInt} v ${avatarSizeInt} h -${avatarSizeInt} z`;
46
53
  const circlePath = `M ${holeCenter.x},${holeCenter.y} m -${holeRadius},0 a ${holeRadius},${holeRadius} 0 1,0 ${holeRadius * 2},0 a ${holeRadius},${holeRadius} 0 1,0 -${holeRadius * 2},0`;
47
54
  const maskPath = `${rectPath} ${circlePath}`;
@@ -99,25 +106,40 @@ function AvatarGroup({
99
106
  }, index);
100
107
  }
101
108
 
102
- // Native MaskedView
109
+ // Native: mask the avatar with react-native-svg instead of the
110
+ // unmaintained `@react-native-masked-view/masked-view`, whose
111
+ // legacy `requireNativeComponent('RNCMaskedView')` resolves to a
112
+ // plain object (crashing "Element type is invalid") under the New
113
+ // Architecture interop. react-native-svg ships a Fabric/codegen
114
+ // `<Mask>` + `<ForeignObject>` that resolves on both architectures;
115
+ // the avatar is hosted inside the `<ForeignObject>` and revealed
116
+ // through the luminance mask.
117
+ const maskId = `${maskBaseId}-${index}`;
103
118
  return /*#__PURE__*/_jsx(View, {
104
119
  style: wrapperStyle,
105
- children: /*#__PURE__*/_jsx(MaskedView, {
106
- style: {
107
- flex: 1,
108
- height: '100%'
109
- },
110
- maskElement: /*#__PURE__*/_jsx(Svg, {
111
- height: "100%",
112
- width: "100%",
113
- viewBox: `0 0 ${avatarSizeInt} ${avatarSizeInt}`,
114
- children: /*#__PURE__*/_jsx(Path, {
115
- d: maskPath,
116
- fill: "black",
117
- fillRule: "evenodd"
120
+ children: /*#__PURE__*/_jsxs(Svg, {
121
+ height: "100%",
122
+ width: "100%",
123
+ viewBox: `0 0 ${avatarSizeInt} ${avatarSizeInt}`,
124
+ children: [/*#__PURE__*/_jsx(Defs, {
125
+ children: /*#__PURE__*/_jsx(Mask, {
126
+ id: maskId,
127
+ maskUnits: "userSpaceOnUse",
128
+ maskContentUnits: "userSpaceOnUse",
129
+ children: /*#__PURE__*/_jsx(Path, {
130
+ d: maskPath,
131
+ fill: "white",
132
+ fillRule: "evenodd"
133
+ })
118
134
  })
119
- }),
120
- children: clonedChild
135
+ }), /*#__PURE__*/_jsx(ForeignObject, {
136
+ x: "0",
137
+ y: "0",
138
+ width: avatarSizeInt,
139
+ height: avatarSizeInt,
140
+ mask: `url(#${maskId})`,
141
+ children: clonedChild
142
+ })]
121
143
  })
122
144
  }, index);
123
145
  })
@@ -29,20 +29,20 @@ function Badge({
29
29
  // Resolve token values (fall back to sensible defaults). The glass type
30
30
  // swaps the solid fill for a translucent overlay + white label, matching the
31
31
  // Figma `badge/glass/*` tokens.
32
- const backgroundColor = getVariableByName('badge/color/background', modes) || '#d8effe';
33
- const glassBackground = getVariableByName('badge/glass/color/background', modes) || '#ffffff26';
34
- const glassLabelColor = getVariableByName('badge/glass/color/label', modes) || '#ffffff';
35
- const labelColor = isGlass ? glassLabelColor : getVariableByName('badge/color/label', modes) || '#000000';
36
- const fontSize = Number(getVariableByName('badge/label/fontSize', modes)) || 12;
37
- const fontFamily = getVariableByName('badge/fontFamily', modes) || undefined;
38
- const fontWeight = getVariableByName('badge/label/fontWeight', modes) || '600';
39
- const paddingHorizontal = Number(getVariableByName('badge/padding/horizontal', modes)) || 6;
40
- const paddingVertical = Number(getVariableByName('badge/padding/vertical', modes)) || 4;
41
- const borderRadius = Number(getVariableByName('badge/radius', modes)) || 4;
42
- const lineHeight = Number(getVariableByName('badge/label/lineHeight', modes)) || Math.round(fontSize * 1.2);
32
+ const backgroundColor = getVariableByName('badge/color/background', modes);
33
+ const glassBackground = getVariableByName('badge/glass/color/background', modes);
34
+ const glassLabelColor = getVariableByName('badge/glass/color/label', modes);
35
+ const labelColor = isGlass ? glassLabelColor : getVariableByName('badge/color/label', modes);
36
+ const fontSize = Number(getVariableByName('badge/label/fontSize', modes));
37
+ const fontFamily = getVariableByName('badge/fontFamily', modes);
38
+ const fontWeight = getVariableByName('badge/label/fontWeight', modes);
39
+ const paddingHorizontal = Number(getVariableByName('badge/padding/horizontal', modes));
40
+ const paddingVertical = Number(getVariableByName('badge/padding/vertical', modes));
41
+ const borderRadius = Number(getVariableByName('badge/radius', modes));
42
+ const lineHeight = Number(getVariableByName('badge/label/lineHeight', modes));
43
43
  // Figma `blur/minimal` (px radius) -> GlassFill's 0–100 intensity scale, the
44
44
  // same 1:1 mapping the merchandising card footer uses.
45
- const blurIntensity = Math.max(0, Math.min(100, Math.round(Number(getVariableByName('blur/minimal', modes)) || 29)));
45
+ const blurIntensity = Math.max(0, Math.min(100, Math.round(Number(getVariableByName('blur/minimal', modes)))));
46
46
 
47
47
  // Skeleton short-circuit. Size derived from the same tokens the loaded
48
48
  // badge would use so the placeholder occupies the same box.
@@ -9,6 +9,9 @@ import Text from '../Text/Text';
9
9
  import ListItem from '../ListItem/ListItem';
10
10
  import Divider from '../Divider/Divider';
11
11
  import Button from '../Button/Button';
12
+ import Nudge from '../Nudge/Nudge';
13
+ import Avatar from '../Avatar/Avatar';
14
+ import TextSegment from '../TextSegment/TextSegment';
12
15
 
13
16
  /**
14
17
  * A single benefit row rendered with the shared `ListItem` primitive: a
@@ -38,8 +41,11 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
38
41
  function BenefitCard({
39
42
  headerTitle = 'You will earn',
40
43
  headerItem,
44
+ headerItems,
45
+ header,
41
46
  showHeader = true,
42
- bodyTitle = 'Upgrade to JioFinance+ and earn more',
47
+ bodyTitle,
48
+ bodyHeader,
43
49
  items,
44
50
  children,
45
51
  buttonLabel = 'Upgrade',
@@ -54,11 +60,16 @@ function BenefitCard({
54
60
  }) {
55
61
  const tokens = useMemo(() => resolveTokens(modes), [modes]);
56
62
 
57
- // Sub-component modes. Consumer-supplied `modes` always win via spread order.
58
- const listItemModes = useMemo(() => ({
63
+ // Component-level modes. `List Item Style: Minimal` and `Nudge padding: None`
64
+ // are BenefitCard's own defaults: they live on the card and cascade down into
65
+ // every child (the list-wrap rows and the upsell nudge) rather than being
66
+ // threaded onto each individual item. Consumer `modes` always win.
67
+ const cascadeModes = useMemo(() => ({
59
68
  'List Item Style': 'Minimal',
69
+ 'Nudge padding': 'None',
60
70
  ...modes
61
71
  }), [modes]);
72
+ // Sub-element modes layer their own specifics on top of the consumer modes.
62
73
  const iconModes = useMemo(() => ({
63
74
  AppearanceBrand: 'Secondary',
64
75
  ...modes
@@ -72,6 +83,13 @@ function BenefitCard({
72
83
  'Button / Size': 'S',
73
84
  ...modes
74
85
  }), [modes]);
86
+ // The upsell nudge keeps a white/transparent background (`AppearanceBrand:
87
+ // Neutral` → `nudge/background: #ffffff`); its `Nudge padding: None` cascades
88
+ // in from `cascadeModes` so it sits flush with the card.
89
+ const nudgeModes = useMemo(() => ({
90
+ AppearanceBrand: 'Neutral',
91
+ ...cascadeModes
92
+ }), [cascadeModes]);
75
93
  const renderItem = (item, key) => {
76
94
  const leading = item.leading ?? (item.icon != null ? /*#__PURE__*/_jsx(Icon, {
77
95
  iconName: item.icon,
@@ -89,23 +107,60 @@ function BenefitCard({
89
107
  title: item.title,
90
108
  leading: leading,
91
109
  trailing: trailing,
92
- onPress: item.onPress,
93
- modes: listItemModes
110
+ onPress: item.onPress
94
111
  }, key);
95
112
  };
96
- const headerNode = showHeader && (headerTitle != null || headerItem != null) ? /*#__PURE__*/_jsxs(View, {
113
+
114
+ // Header "list wrap" — slot-based. Precedence: `header` slot > `headerItems`
115
+ // array > legacy single `headerItem` > Figma default rows. The component-level
116
+ // `cascadeModes` are pushed into the whole group at once, so individual rows
117
+ // never carry their own list-item modes.
118
+ const headerListSource = header ? header : (headerItems ?? (headerItem ? [headerItem] : DEFAULT_HEADER_ITEMS)).map((item, index) => renderItem(item, `header-${index}`));
119
+ const headerListNodes = cloneChildrenWithModes(headerListSource, cascadeModes);
120
+ const headerNode = showHeader ? /*#__PURE__*/_jsxs(View, {
97
121
  style: styles.section,
98
122
  children: [/*#__PURE__*/_jsxs(View, {
99
123
  style: styles.cardHeader,
100
124
  children: [headerTitle != null ? /*#__PURE__*/_jsx(RNText, {
101
125
  style: tokens.title,
102
126
  children: headerTitle
103
- }) : null, headerItem != null ? renderItem(headerItem, 'header-item') : null]
127
+ }) : null, /*#__PURE__*/_jsx(View, {
128
+ style: tokens.listWrap,
129
+ children: headerListNodes
130
+ })]
104
131
  }), /*#__PURE__*/_jsx(Divider, {
105
132
  modes: modes
106
133
  })]
107
134
  }) : null;
108
- const bodyList = children ? cloneChildrenWithModes(children, listItemModes) : (items ?? DEFAULT_ITEMS).map((item, index) => renderItem(item, index));
135
+
136
+ // Body "header" slot (between the divider and the body list). Precedence:
137
+ // explicit `bodyHeader` slot > legacy `bodyTitle` text > Figma upsell nudge.
138
+ const bodyHeaderNode = bodyHeader === null || bodyHeader === false ? null : bodyHeader !== undefined ? renderSlot(bodyHeader, cascadeModes) : bodyTitle != null ? /*#__PURE__*/_jsx(RNText, {
139
+ style: tokens.title,
140
+ children: bodyTitle
141
+ }) : /*#__PURE__*/_jsx(Nudge, {
142
+ type: "inline-compact",
143
+ modes: {
144
+ ...nudgeModes,
145
+ ...cascadeModes
146
+ },
147
+ startSlot: DEFAULT_UPSELL_AVATAR,
148
+ children: /*#__PURE__*/_jsx(TextSegment, {
149
+ modes: cascadeModes,
150
+ segments: [{
151
+ text: 'Upgrade to '
152
+ }, {
153
+ text: 'JioFinance+',
154
+ modes: {
155
+ 'Text Appearance': 'Primary'
156
+ }
157
+ }, {
158
+ text: ' and earn more'
159
+ }]
160
+ })
161
+ });
162
+ const bodyListSource = children ? children : (items ?? DEFAULT_ITEMS).map((item, index) => renderItem(item, index));
163
+ const bodyList = cloneChildrenWithModes(bodyListSource, cascadeModes);
109
164
  const ctaNode = button ?? /*#__PURE__*/_jsx(Button, {
110
165
  label: buttonLabel,
111
166
  modes: ctaModes,
@@ -116,15 +171,9 @@ function BenefitCard({
116
171
  width
117
172
  }), [tokens.container, width]);
118
173
  const content = /*#__PURE__*/_jsxs(_Fragment, {
119
- children: [headerNode, /*#__PURE__*/_jsxs(View, {
120
- style: tokens.body,
121
- children: [bodyTitle != null ? /*#__PURE__*/_jsx(RNText, {
122
- style: tokens.title,
123
- children: bodyTitle
124
- }) : null, /*#__PURE__*/_jsx(View, {
125
- style: tokens.listWrap,
126
- children: bodyList
127
- })]
174
+ children: [headerNode, bodyHeaderNode, /*#__PURE__*/_jsx(View, {
175
+ style: tokens.listWrap,
176
+ children: bodyList
128
177
  }), showButton ? ctaNode : null]
129
178
  });
130
179
  if (onPress) {
@@ -183,10 +232,6 @@ function resolveTokens(modes) {
183
232
  flexDirection: 'column',
184
233
  alignItems: 'flex-start'
185
234
  },
186
- body: {
187
- alignSelf: 'stretch',
188
- gap
189
- },
190
235
  listWrap: {
191
236
  alignSelf: 'stretch',
192
237
  gap
@@ -202,6 +247,26 @@ function resolveTokens(modes) {
202
247
  }
203
248
  };
204
249
  }
250
+
251
+ // Cascades `modes` into a slot node and unwraps a single child so the slot can
252
+ // be rendered inline without an extra fragment.
253
+ function renderSlot(node, modes) {
254
+ const processed = cloneChildrenWithModes(node, modes);
255
+ return processed.length === 1 ? processed[0] : processed;
256
+ }
257
+
258
+ // Figma reference rows for the header list wrap (two highlighted "JioPoints"
259
+ // rows). Used only when no `header` slot / `headerItems` / legacy `headerItem`
260
+ // is supplied.
261
+ const DEFAULT_HEADER_ITEMS = [{
262
+ icon: 'ic_jewellery_diamond',
263
+ title: 'JioPoints',
264
+ trailingText: 'Up to 2000 pts'
265
+ }, {
266
+ icon: 'ic_jewellery_diamond',
267
+ title: 'JioPoints',
268
+ trailingText: 'Up to 2000 pts'
269
+ }];
205
270
  const DEFAULT_ITEMS = [{
206
271
  icon: 'ic_card',
207
272
  title: 'Up to ₹5000 cashback'
@@ -209,6 +274,15 @@ const DEFAULT_ITEMS = [{
209
274
  icon: 'ic_card',
210
275
  title: '25% extra JioPoints'
211
276
  }];
277
+
278
+ // Start-slot avatar for the default upsell nudge. `modes` cascade in from the
279
+ // nudge (XS keeps it compact next to the inline message).
280
+ const DEFAULT_UPSELL_AVATAR = /*#__PURE__*/_jsx(Avatar, {
281
+ style: "Image",
282
+ modes: {
283
+ 'Avatar Size': 'XS'
284
+ }
285
+ });
212
286
  const styles = StyleSheet.create({
213
287
  section: {
214
288
  alignSelf: 'stretch',
@@ -37,8 +37,8 @@ function BottomNav({
37
37
  };
38
38
 
39
39
  // Resolve container styling tokens
40
- const backgroundColor = getVariableByName('bottomNav/background', modes) || '#ffffff';
41
- const borderColor = getVariableByName('bottomNav/border/color', modes) || '#cccfd1';
40
+ const backgroundColor = getVariableByName('bottomNav/background', modes);
41
+ const borderColor = getVariableByName('bottomNav/border/color', modes);
42
42
  const borderWidth = getVariableByName('bottomNav/border/width', modes) ?? 1;
43
43
  const paddingTop = getVariableByName('bottomNav/padding/top', modes) ?? 10;
44
44
  const paddingBottom = getVariableByName('bottomNav/padding/bottom', modes) ?? 23;
@@ -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, { useCallback, useMemo, useRef, useState } from 'react';
4
4
  import { Platform, Pressable, Text, View } from 'react-native';
5
5
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
6
6
  import { usePressableWebSupport } from '../../utils/web-platform-utils';
7
- import { EMPTY_MODES, resolveTruncation } from '../../utils/react-utils';
7
+ import { EMPTY_MODES } from '../../utils/react-utils';
8
8
  import Icon from '../../icons/Icon';
9
9
  import Skeleton from '../../skeleton/Skeleton';
10
10
  import { useSkeleton } from '../../skeleton/SkeletonGroup';
@@ -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
@@ -214,8 +225,9 @@ function ButtonImpl({
214
225
  content = children;
215
226
  } else {
216
227
  content = /*#__PURE__*/_jsx(Text, {
217
- style: activeLabelStyle,
218
- ...resolveTruncation(disableTruncation, 1),
228
+ style: [activeLabelStyle, disableTruncation ? null : NO_WRAP_LABEL_STYLE],
229
+ numberOfLines: disableTruncation ? undefined : 1,
230
+ ellipsizeMode: disableTruncation ? undefined : 'tail',
219
231
  children: label
220
232
  });
221
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,
@@ -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
  }