jfs-components 0.1.12 → 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 (585) hide show
  1. package/CHANGELOG.md +15 -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 +9 -9
  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/ProgressBadge/ProgressBadge.js +5 -5
  62. package/lib/commonjs/components/Radio/Radio.js +8 -8
  63. package/lib/commonjs/components/RechargeCard/RechargeCard.js +31 -31
  64. package/lib/commonjs/components/SavingsGoalSummary/SavingsGoalSummary.js +59 -12
  65. package/lib/commonjs/components/ScrollArea/ScrollArea.js +126 -0
  66. package/lib/commonjs/components/Section/Section.js +24 -24
  67. package/lib/commonjs/components/StatusHero/StatusHero.js +14 -14
  68. package/lib/commonjs/components/Stepper/Step.js +16 -16
  69. package/lib/commonjs/components/Stepper/StepLabel.js +16 -16
  70. package/lib/commonjs/components/Stepper/Stepper.js +3 -3
  71. package/lib/commonjs/components/SuggestiveSearch/SuggestiveSearch.js +10 -10
  72. package/lib/commonjs/components/SupportText/SupportText.js +6 -6
  73. package/lib/commonjs/components/SupportText/SupportTextIcon.js +2 -2
  74. package/lib/commonjs/components/Text/Text.js +14 -2
  75. package/lib/commonjs/components/TextInput/TextInput.js +14 -14
  76. package/lib/commonjs/components/TextSegment/TextSegment.js +14 -2
  77. package/lib/commonjs/components/ThreadHero/ThreadHero.js +17 -17
  78. package/lib/commonjs/components/Title/Title.js +38 -16
  79. package/lib/commonjs/components/Toast/Toast.js +15 -15
  80. package/lib/commonjs/components/Toggle/Toggle.js +3 -11
  81. package/lib/commonjs/components/Tooltip/Tooltip.js +12 -12
  82. package/lib/commonjs/components/TransactionBubble/TransactionBubble.js +13 -13
  83. package/lib/commonjs/components/TransactionDetails/TransactionDetails.js +10 -10
  84. package/lib/commonjs/components/TransactionStatus/TransactionStatus.js +9 -9
  85. package/lib/commonjs/components/UpiHandle/UpiHandle.js +15 -15
  86. package/lib/commonjs/components/index.js +14 -0
  87. package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
  88. package/lib/commonjs/design-tokens/figma-modes.generated.js +50 -42
  89. package/lib/commonjs/icons/components/Icon4g.js +19 -0
  90. package/lib/commonjs/icons/components/Icon4gltedata.js +19 -0
  91. package/lib/commonjs/icons/components/Icon5g.js +19 -0
  92. package/lib/commonjs/icons/components/Icon5gdoubleplus.js +19 -0
  93. package/lib/commonjs/icons/components/Icon5gplus.js +19 -0
  94. package/lib/commonjs/icons/components/IconAdblocker.js +19 -0
  95. package/lib/commonjs/icons/components/IconAdblockplus.js +19 -0
  96. package/lib/commonjs/icons/components/IconAnalytics.js +19 -0
  97. package/lib/commonjs/icons/components/IconAnalyticsdata.js +19 -0
  98. package/lib/commonjs/icons/components/IconAnalyticspiechart.js +19 -0
  99. package/lib/commonjs/icons/components/IconAnalyticspiecharttree.js +19 -0
  100. package/lib/commonjs/icons/components/IconAnalyticspiecharttwo.js +19 -0
  101. package/lib/commonjs/icons/components/IconCompoundinterest.js +19 -0
  102. package/lib/commonjs/icons/components/IconConsumptionaccounted.js +19 -0
  103. package/lib/commonjs/icons/components/IconConsumptionaverage.js +19 -0
  104. package/lib/commonjs/icons/components/IconConsumptionhigh.js +19 -0
  105. package/lib/commonjs/icons/components/IconConsumptionlow.js +19 -0
  106. package/lib/commonjs/icons/components/IconConsumptionunaccounted.js +19 -0
  107. package/lib/commonjs/icons/components/IconCsvdoc.js +19 -0
  108. package/lib/commonjs/icons/components/IconDatabase.js +19 -0
  109. package/lib/commonjs/icons/components/IconDigitalecosystem.js +19 -0
  110. package/lib/commonjs/icons/components/IconDigitalselfservice.js +19 -0
  111. package/lib/commonjs/icons/components/IconDistribution.js +19 -0
  112. package/lib/commonjs/icons/components/IconDocument.js +19 -0
  113. package/lib/commonjs/icons/components/IconDocumentdoc.js +19 -0
  114. package/lib/commonjs/icons/components/IconDocumentjpg.js +19 -0
  115. package/lib/commonjs/icons/components/IconDocumentodt.js +19 -0
  116. package/lib/commonjs/icons/components/IconDocumentpdf.js +19 -0
  117. package/lib/commonjs/icons/components/IconDocumentpng.js +19 -0
  118. package/lib/commonjs/icons/components/IconDocumentraw.js +19 -0
  119. package/lib/commonjs/icons/components/IconDocumentrtf.js +19 -0
  120. package/lib/commonjs/icons/components/IconDocumentsettings.js +19 -0
  121. package/lib/commonjs/icons/components/IconDocumenttif.js +19 -0
  122. package/lib/commonjs/icons/components/IconDocumenttxt.js +19 -0
  123. package/lib/commonjs/icons/components/IconDocumentunknown.js +19 -0
  124. package/lib/commonjs/icons/components/IconDocumentxls.js +19 -0
  125. package/lib/commonjs/icons/components/IconDocumentxlsx.js +19 -0
  126. package/lib/commonjs/icons/components/IconFilerequest.js +19 -0
  127. package/lib/commonjs/icons/components/IconFilesend.js +19 -0
  128. package/lib/commonjs/icons/components/IconFileshare.js +19 -0
  129. package/lib/commonjs/icons/components/IconFindinpage.js +19 -0
  130. package/lib/commonjs/icons/components/IconFolder.js +19 -0
  131. package/lib/commonjs/icons/components/IconFolderbookmarks.js +19 -0
  132. package/lib/commonjs/icons/components/IconFolderfavorites.js +19 -0
  133. package/lib/commonjs/icons/components/IconFolderlocked.js +19 -0
  134. package/lib/commonjs/icons/components/IconFoldermovefiles.js +19 -0
  135. package/lib/commonjs/icons/components/IconFolderpublic.js +19 -0
  136. package/lib/commonjs/icons/components/IconFolderrated.js +19 -0
  137. package/lib/commonjs/icons/components/IconFolderrequest.js +19 -0
  138. package/lib/commonjs/icons/components/IconForm.js +19 -0
  139. package/lib/commonjs/icons/components/IconFormadd.js +19 -0
  140. package/lib/commonjs/icons/components/IconForms.js +19 -0
  141. package/lib/commonjs/icons/components/IconGraphincreasing.js +19 -0
  142. package/lib/commonjs/icons/components/IconGraphlow.js +19 -0
  143. package/lib/commonjs/icons/components/IconGraphtable.js +19 -0
  144. package/lib/commonjs/icons/components/IconHealthreport.js +19 -0
  145. package/lib/commonjs/icons/components/IconHubmode.js +19 -0
  146. package/lib/commonjs/icons/components/IconInfrastructure.js +19 -0
  147. package/lib/commonjs/icons/components/IconInterestlow.js +19 -0
  148. package/lib/commonjs/icons/components/IconLte.js +19 -0
  149. package/lib/commonjs/icons/components/IconNetworkfuture.js +19 -0
  150. package/lib/commonjs/icons/components/IconPagesettings.js +19 -0
  151. package/lib/commonjs/icons/components/IconPptxdoc.js +19 -0
  152. package/lib/commonjs/icons/components/IconPreferrednumber.js +19 -0
  153. package/lib/commonjs/icons/components/IconPremiumnumber.js +19 -0
  154. package/lib/commonjs/icons/components/IconProjection.js +19 -0
  155. package/lib/commonjs/icons/components/IconRequest.js +19 -0
  156. package/lib/commonjs/icons/components/IconRoutestraffic.js +19 -0
  157. package/lib/commonjs/icons/components/IconTechnology.js +19 -0
  158. package/lib/commonjs/icons/components/IconVolte.js +19 -0
  159. package/lib/commonjs/icons/components/IconVonr.js +19 -0
  160. package/lib/commonjs/icons/components/IconVowifi.js +19 -0
  161. package/lib/commonjs/icons/components/IconVpndata.js +19 -0
  162. package/lib/commonjs/icons/components/index.js +803 -0
  163. package/lib/commonjs/icons/registry.js +2 -2
  164. package/lib/commonjs/utils/index.js +25 -0
  165. package/lib/commonjs/utils/react-utils.js +62 -0
  166. package/lib/commonjs/utils/shadow.js +200 -0
  167. package/lib/module/components/ActionFooter/ActionFooter.js +7 -24
  168. package/lib/module/components/ActionTile/ActionTile.js +10 -10
  169. package/lib/module/components/AmountInput/AmountInput.js +3 -3
  170. package/lib/module/components/AreaLineChart/AreaLineChart.js +2 -2
  171. package/lib/module/components/Attached/Attached.js +1 -1
  172. package/lib/module/components/Avatar/Avatar.js +10 -10
  173. package/lib/module/components/AvatarGroup/AvatarGroup.js +9 -9
  174. package/lib/module/components/Badge/Badge.js +12 -12
  175. package/lib/module/components/BenefitCard/BenefitCard.js +95 -21
  176. package/lib/module/components/BottomNav/BottomNav.js +2 -2
  177. package/lib/module/components/BottomNavItem/BottomNavItem.js +3 -3
  178. package/lib/module/components/Button/Button.js +32 -20
  179. package/lib/module/components/Card/Card.js +20 -20
  180. package/lib/module/components/CardAdvisory/CardAdvisory.js +6 -6
  181. package/lib/module/components/CardCTA/CardCTA.js +21 -21
  182. package/lib/module/components/CardFeedback/CardFeedback.js +18 -18
  183. package/lib/module/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
  184. package/lib/module/components/CardInsight/CardInsight.js +1 -2
  185. package/lib/module/components/Carousel/Carousel.js +18 -12
  186. package/lib/module/components/CarouselCardAccounts/CarouselCardAccounts.js +71 -0
  187. package/lib/module/components/Checkbox/Checkbox.js +2 -9
  188. package/lib/module/components/ChipGroup/ChipGroup.js +1 -1
  189. package/lib/module/components/ChipSelect/ChipSelect.js +11 -11
  190. package/lib/module/components/CircularProgressBar/CircularProgressBar.js +5 -5
  191. package/lib/module/components/CircularProgressBarDoted/CircularProgressBarDoted.js +8 -8
  192. package/lib/module/components/CircularRating/CircularRating.js +3 -3
  193. package/lib/module/components/CompareTable/CompareTable.js +16 -16
  194. package/lib/module/components/DebitCard/DebitCard.js +18 -18
  195. package/lib/module/components/Disclaimer/Disclaimer.js +5 -5
  196. package/lib/module/components/DonutChart/DonutChart.js +11 -11
  197. package/lib/module/components/Drawer/Drawer.js +60 -60
  198. package/lib/module/components/Dropdown/Dropdown.js +22 -23
  199. package/lib/module/components/DropdownInput/DropdownInput.js +10 -10
  200. package/lib/module/components/EmptyState/EmptyState.js +14 -14
  201. package/lib/module/components/FilterBar/FilterBar.js +2 -2
  202. package/lib/module/components/Form/Form.js +3 -3
  203. package/lib/module/components/FormField/FormField.js +6 -6
  204. package/lib/module/components/FullscreenModal/FullscreenModal.js +24 -24
  205. package/lib/module/components/Gauge/Gauge.js +8 -8
  206. package/lib/module/components/HoldingsCard/HoldingsCard.js +10 -10
  207. package/lib/module/components/Icon/Icon.js +6 -6
  208. package/lib/module/components/IconCapsule/IconCapsule.js +7 -7
  209. package/lib/module/components/InputSearch/InputSearch.js +9 -9
  210. package/lib/module/components/InstitutionBadge/InstitutionBadge.js +3 -3
  211. package/lib/module/components/ListGroup/ListGroup.js +8 -8
  212. package/lib/module/components/ListItem/ListItem.js +10 -10
  213. package/lib/module/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
  214. package/lib/module/components/LottiePlayer/LottiePlayer.js +2 -2
  215. package/lib/module/components/LottiePlayer/LottiePlayer.web.js +2 -2
  216. package/lib/module/components/MediaCard/MediaCard.js +21 -21
  217. package/lib/module/components/MessageField/MessageField.js +8 -8
  218. package/lib/module/components/MoneyValue/MoneyValue.js +7 -7
  219. package/lib/module/components/NavArrow/NavArrow.js +8 -8
  220. package/lib/module/components/NoteInput/NoteInput.js +12 -12
  221. package/lib/module/components/Nudge/Nudge.js +20 -20
  222. package/lib/module/components/OTP/OTP.js +15 -15
  223. package/lib/module/components/PageHero/PageHero.js +16 -16
  224. package/lib/module/components/PaymentFeedback/PaymentFeedback.js +23 -23
  225. package/lib/module/components/Popup/Popup.js +1 -1
  226. package/lib/module/components/ProgressBadge/ProgressBadge.js +5 -5
  227. package/lib/module/components/Radio/Radio.js +9 -9
  228. package/lib/module/components/RechargeCard/RechargeCard.js +31 -31
  229. package/lib/module/components/SavingsGoalSummary/SavingsGoalSummary.js +60 -13
  230. package/lib/module/components/ScrollArea/ScrollArea.js +121 -0
  231. package/lib/module/components/Section/Section.js +24 -24
  232. package/lib/module/components/StatusHero/StatusHero.js +14 -14
  233. package/lib/module/components/Stepper/Step.js +16 -16
  234. package/lib/module/components/Stepper/StepLabel.js +16 -16
  235. package/lib/module/components/Stepper/Stepper.js +3 -3
  236. package/lib/module/components/SuggestiveSearch/SuggestiveSearch.js +10 -10
  237. package/lib/module/components/SupportText/SupportText.js +6 -6
  238. package/lib/module/components/SupportText/SupportTextIcon.js +2 -2
  239. package/lib/module/components/Text/Text.js +15 -3
  240. package/lib/module/components/TextInput/TextInput.js +14 -14
  241. package/lib/module/components/TextSegment/TextSegment.js +15 -3
  242. package/lib/module/components/ThreadHero/ThreadHero.js +17 -17
  243. package/lib/module/components/Title/Title.js +39 -17
  244. package/lib/module/components/Toast/Toast.js +15 -15
  245. package/lib/module/components/Toggle/Toggle.js +4 -12
  246. package/lib/module/components/Tooltip/Tooltip.js +12 -12
  247. package/lib/module/components/TransactionBubble/TransactionBubble.js +13 -13
  248. package/lib/module/components/TransactionDetails/TransactionDetails.js +10 -10
  249. package/lib/module/components/TransactionStatus/TransactionStatus.js +9 -9
  250. package/lib/module/components/UpiHandle/UpiHandle.js +15 -15
  251. package/lib/module/components/index.js +2 -0
  252. package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
  253. package/lib/module/design-tokens/figma-modes.generated.js +50 -42
  254. package/lib/module/icons/components/Icon4g.js +12 -0
  255. package/lib/module/icons/components/Icon4gltedata.js +12 -0
  256. package/lib/module/icons/components/Icon5g.js +12 -0
  257. package/lib/module/icons/components/Icon5gdoubleplus.js +12 -0
  258. package/lib/module/icons/components/Icon5gplus.js +12 -0
  259. package/lib/module/icons/components/IconAdblocker.js +12 -0
  260. package/lib/module/icons/components/IconAdblockplus.js +12 -0
  261. package/lib/module/icons/components/IconAnalytics.js +12 -0
  262. package/lib/module/icons/components/IconAnalyticsdata.js +12 -0
  263. package/lib/module/icons/components/IconAnalyticspiechart.js +12 -0
  264. package/lib/module/icons/components/IconAnalyticspiecharttree.js +12 -0
  265. package/lib/module/icons/components/IconAnalyticspiecharttwo.js +12 -0
  266. package/lib/module/icons/components/IconCompoundinterest.js +12 -0
  267. package/lib/module/icons/components/IconConsumptionaccounted.js +12 -0
  268. package/lib/module/icons/components/IconConsumptionaverage.js +12 -0
  269. package/lib/module/icons/components/IconConsumptionhigh.js +12 -0
  270. package/lib/module/icons/components/IconConsumptionlow.js +12 -0
  271. package/lib/module/icons/components/IconConsumptionunaccounted.js +12 -0
  272. package/lib/module/icons/components/IconCsvdoc.js +12 -0
  273. package/lib/module/icons/components/IconDatabase.js +12 -0
  274. package/lib/module/icons/components/IconDigitalecosystem.js +12 -0
  275. package/lib/module/icons/components/IconDigitalselfservice.js +12 -0
  276. package/lib/module/icons/components/IconDistribution.js +12 -0
  277. package/lib/module/icons/components/IconDocument.js +12 -0
  278. package/lib/module/icons/components/IconDocumentdoc.js +12 -0
  279. package/lib/module/icons/components/IconDocumentjpg.js +12 -0
  280. package/lib/module/icons/components/IconDocumentodt.js +12 -0
  281. package/lib/module/icons/components/IconDocumentpdf.js +12 -0
  282. package/lib/module/icons/components/IconDocumentpng.js +12 -0
  283. package/lib/module/icons/components/IconDocumentraw.js +12 -0
  284. package/lib/module/icons/components/IconDocumentrtf.js +12 -0
  285. package/lib/module/icons/components/IconDocumentsettings.js +12 -0
  286. package/lib/module/icons/components/IconDocumenttif.js +12 -0
  287. package/lib/module/icons/components/IconDocumenttxt.js +12 -0
  288. package/lib/module/icons/components/IconDocumentunknown.js +12 -0
  289. package/lib/module/icons/components/IconDocumentxls.js +12 -0
  290. package/lib/module/icons/components/IconDocumentxlsx.js +12 -0
  291. package/lib/module/icons/components/IconFilerequest.js +12 -0
  292. package/lib/module/icons/components/IconFilesend.js +12 -0
  293. package/lib/module/icons/components/IconFileshare.js +12 -0
  294. package/lib/module/icons/components/IconFindinpage.js +12 -0
  295. package/lib/module/icons/components/IconFolder.js +12 -0
  296. package/lib/module/icons/components/IconFolderbookmarks.js +12 -0
  297. package/lib/module/icons/components/IconFolderfavorites.js +12 -0
  298. package/lib/module/icons/components/IconFolderlocked.js +12 -0
  299. package/lib/module/icons/components/IconFoldermovefiles.js +12 -0
  300. package/lib/module/icons/components/IconFolderpublic.js +12 -0
  301. package/lib/module/icons/components/IconFolderrated.js +12 -0
  302. package/lib/module/icons/components/IconFolderrequest.js +12 -0
  303. package/lib/module/icons/components/IconForm.js +12 -0
  304. package/lib/module/icons/components/IconFormadd.js +12 -0
  305. package/lib/module/icons/components/IconForms.js +12 -0
  306. package/lib/module/icons/components/IconGraphincreasing.js +12 -0
  307. package/lib/module/icons/components/IconGraphlow.js +12 -0
  308. package/lib/module/icons/components/IconGraphtable.js +12 -0
  309. package/lib/module/icons/components/IconHealthreport.js +12 -0
  310. package/lib/module/icons/components/IconHubmode.js +12 -0
  311. package/lib/module/icons/components/IconInfrastructure.js +12 -0
  312. package/lib/module/icons/components/IconInterestlow.js +12 -0
  313. package/lib/module/icons/components/IconLte.js +12 -0
  314. package/lib/module/icons/components/IconNetworkfuture.js +12 -0
  315. package/lib/module/icons/components/IconPagesettings.js +12 -0
  316. package/lib/module/icons/components/IconPptxdoc.js +12 -0
  317. package/lib/module/icons/components/IconPreferrednumber.js +12 -0
  318. package/lib/module/icons/components/IconPremiumnumber.js +12 -0
  319. package/lib/module/icons/components/IconProjection.js +12 -0
  320. package/lib/module/icons/components/IconRequest.js +12 -0
  321. package/lib/module/icons/components/IconRoutestraffic.js +12 -0
  322. package/lib/module/icons/components/IconTechnology.js +12 -0
  323. package/lib/module/icons/components/IconVolte.js +12 -0
  324. package/lib/module/icons/components/IconVonr.js +12 -0
  325. package/lib/module/icons/components/IconVowifi.js +12 -0
  326. package/lib/module/icons/components/IconVpndata.js +12 -0
  327. package/lib/module/icons/components/index.js +73 -0
  328. package/lib/module/icons/registry.js +2 -2
  329. package/lib/module/utils/index.js +2 -1
  330. package/lib/module/utils/react-utils.js +61 -0
  331. package/lib/module/utils/shadow.js +194 -0
  332. package/lib/typescript/src/components/BenefitCard/BenefitCard.d.ts +33 -4
  333. package/lib/typescript/src/components/Carousel/Carousel.d.ts +11 -1
  334. package/lib/typescript/src/components/CarouselCardAccounts/CarouselCardAccounts.d.ts +57 -0
  335. package/lib/typescript/src/components/SavingsGoalSummary/SavingsGoalSummary.d.ts +11 -1
  336. package/lib/typescript/src/components/ScrollArea/ScrollArea.d.ts +77 -0
  337. package/lib/typescript/src/components/Text/Text.d.ts +12 -3
  338. package/lib/typescript/src/components/TextSegment/TextSegment.d.ts +12 -3
  339. package/lib/typescript/src/components/Title/Title.d.ts +12 -2
  340. package/lib/typescript/src/components/index.d.ts +2 -0
  341. package/lib/typescript/src/design-tokens/figma-modes.generated.d.ts +23 -15
  342. package/lib/typescript/src/icons/components/Icon4g.d.ts +3 -0
  343. package/lib/typescript/src/icons/components/Icon4gltedata.d.ts +3 -0
  344. package/lib/typescript/src/icons/components/Icon5g.d.ts +3 -0
  345. package/lib/typescript/src/icons/components/Icon5gdoubleplus.d.ts +3 -0
  346. package/lib/typescript/src/icons/components/Icon5gplus.d.ts +3 -0
  347. package/lib/typescript/src/icons/components/IconAdblocker.d.ts +3 -0
  348. package/lib/typescript/src/icons/components/IconAdblockplus.d.ts +3 -0
  349. package/lib/typescript/src/icons/components/IconAnalytics.d.ts +3 -0
  350. package/lib/typescript/src/icons/components/IconAnalyticsdata.d.ts +3 -0
  351. package/lib/typescript/src/icons/components/IconAnalyticspiechart.d.ts +3 -0
  352. package/lib/typescript/src/icons/components/IconAnalyticspiecharttree.d.ts +3 -0
  353. package/lib/typescript/src/icons/components/IconAnalyticspiecharttwo.d.ts +3 -0
  354. package/lib/typescript/src/icons/components/IconCompoundinterest.d.ts +3 -0
  355. package/lib/typescript/src/icons/components/IconConsumptionaccounted.d.ts +3 -0
  356. package/lib/typescript/src/icons/components/IconConsumptionaverage.d.ts +3 -0
  357. package/lib/typescript/src/icons/components/IconConsumptionhigh.d.ts +3 -0
  358. package/lib/typescript/src/icons/components/IconConsumptionlow.d.ts +3 -0
  359. package/lib/typescript/src/icons/components/IconConsumptionunaccounted.d.ts +3 -0
  360. package/lib/typescript/src/icons/components/IconCsvdoc.d.ts +3 -0
  361. package/lib/typescript/src/icons/components/IconDatabase.d.ts +3 -0
  362. package/lib/typescript/src/icons/components/IconDigitalecosystem.d.ts +3 -0
  363. package/lib/typescript/src/icons/components/IconDigitalselfservice.d.ts +3 -0
  364. package/lib/typescript/src/icons/components/IconDistribution.d.ts +3 -0
  365. package/lib/typescript/src/icons/components/IconDocument.d.ts +3 -0
  366. package/lib/typescript/src/icons/components/IconDocumentdoc.d.ts +3 -0
  367. package/lib/typescript/src/icons/components/IconDocumentjpg.d.ts +3 -0
  368. package/lib/typescript/src/icons/components/IconDocumentodt.d.ts +3 -0
  369. package/lib/typescript/src/icons/components/IconDocumentpdf.d.ts +3 -0
  370. package/lib/typescript/src/icons/components/IconDocumentpng.d.ts +3 -0
  371. package/lib/typescript/src/icons/components/IconDocumentraw.d.ts +3 -0
  372. package/lib/typescript/src/icons/components/IconDocumentrtf.d.ts +3 -0
  373. package/lib/typescript/src/icons/components/IconDocumentsettings.d.ts +3 -0
  374. package/lib/typescript/src/icons/components/IconDocumenttif.d.ts +3 -0
  375. package/lib/typescript/src/icons/components/IconDocumenttxt.d.ts +3 -0
  376. package/lib/typescript/src/icons/components/IconDocumentunknown.d.ts +3 -0
  377. package/lib/typescript/src/icons/components/IconDocumentxls.d.ts +3 -0
  378. package/lib/typescript/src/icons/components/IconDocumentxlsx.d.ts +3 -0
  379. package/lib/typescript/src/icons/components/IconFilerequest.d.ts +3 -0
  380. package/lib/typescript/src/icons/components/IconFilesend.d.ts +3 -0
  381. package/lib/typescript/src/icons/components/IconFileshare.d.ts +3 -0
  382. package/lib/typescript/src/icons/components/IconFindinpage.d.ts +3 -0
  383. package/lib/typescript/src/icons/components/IconFolder.d.ts +3 -0
  384. package/lib/typescript/src/icons/components/IconFolderbookmarks.d.ts +3 -0
  385. package/lib/typescript/src/icons/components/IconFolderfavorites.d.ts +3 -0
  386. package/lib/typescript/src/icons/components/IconFolderlocked.d.ts +3 -0
  387. package/lib/typescript/src/icons/components/IconFoldermovefiles.d.ts +3 -0
  388. package/lib/typescript/src/icons/components/IconFolderpublic.d.ts +3 -0
  389. package/lib/typescript/src/icons/components/IconFolderrated.d.ts +3 -0
  390. package/lib/typescript/src/icons/components/IconFolderrequest.d.ts +3 -0
  391. package/lib/typescript/src/icons/components/IconForm.d.ts +3 -0
  392. package/lib/typescript/src/icons/components/IconFormadd.d.ts +3 -0
  393. package/lib/typescript/src/icons/components/IconForms.d.ts +3 -0
  394. package/lib/typescript/src/icons/components/IconGraphincreasing.d.ts +3 -0
  395. package/lib/typescript/src/icons/components/IconGraphlow.d.ts +3 -0
  396. package/lib/typescript/src/icons/components/IconGraphtable.d.ts +3 -0
  397. package/lib/typescript/src/icons/components/IconHealthreport.d.ts +3 -0
  398. package/lib/typescript/src/icons/components/IconHubmode.d.ts +3 -0
  399. package/lib/typescript/src/icons/components/IconInfrastructure.d.ts +3 -0
  400. package/lib/typescript/src/icons/components/IconInterestlow.d.ts +3 -0
  401. package/lib/typescript/src/icons/components/IconLte.d.ts +3 -0
  402. package/lib/typescript/src/icons/components/IconNetworkfuture.d.ts +3 -0
  403. package/lib/typescript/src/icons/components/IconPagesettings.d.ts +3 -0
  404. package/lib/typescript/src/icons/components/IconPptxdoc.d.ts +3 -0
  405. package/lib/typescript/src/icons/components/IconPreferrednumber.d.ts +3 -0
  406. package/lib/typescript/src/icons/components/IconPremiumnumber.d.ts +3 -0
  407. package/lib/typescript/src/icons/components/IconProjection.d.ts +3 -0
  408. package/lib/typescript/src/icons/components/IconRequest.d.ts +3 -0
  409. package/lib/typescript/src/icons/components/IconRoutestraffic.d.ts +3 -0
  410. package/lib/typescript/src/icons/components/IconTechnology.d.ts +3 -0
  411. package/lib/typescript/src/icons/components/IconVolte.d.ts +3 -0
  412. package/lib/typescript/src/icons/components/IconVonr.d.ts +3 -0
  413. package/lib/typescript/src/icons/components/IconVowifi.d.ts +3 -0
  414. package/lib/typescript/src/icons/components/IconVpndata.d.ts +3 -0
  415. package/lib/typescript/src/icons/components/index.d.ts +73 -0
  416. package/lib/typescript/src/icons/registry.d.ts +1 -1
  417. package/lib/typescript/src/utils/index.d.ts +2 -0
  418. package/lib/typescript/src/utils/react-utils.d.ts +40 -1
  419. package/lib/typescript/src/utils/shadow.d.ts +72 -0
  420. package/package.json +2 -1
  421. package/src/components/ActionFooter/ActionFooter.tsx +8 -26
  422. package/src/components/ActionTile/ActionTile.tsx +10 -10
  423. package/src/components/AmountInput/AmountInput.tsx +3 -3
  424. package/src/components/AreaLineChart/AreaLineChart.tsx +2 -2
  425. package/src/components/Attached/Attached.tsx +1 -1
  426. package/src/components/Avatar/Avatar.tsx +10 -10
  427. package/src/components/AvatarGroup/AvatarGroup.tsx +9 -9
  428. package/src/components/Badge/Badge.tsx +12 -13
  429. package/src/components/BenefitCard/BenefitCard.tsx +120 -27
  430. package/src/components/BottomNav/BottomNav.tsx +2 -2
  431. package/src/components/BottomNavItem/BottomNavItem.tsx +3 -3
  432. package/src/components/Button/Button.tsx +30 -20
  433. package/src/components/Card/Card.tsx +20 -20
  434. package/src/components/CardAdvisory/CardAdvisory.tsx +6 -6
  435. package/src/components/CardCTA/CardCTA.tsx +21 -21
  436. package/src/components/CardFeedback/CardFeedback.tsx +18 -18
  437. package/src/components/CardFinancialCondition/CardFinancialCondition.tsx +7 -10
  438. package/src/components/CardInsight/CardInsight.tsx +1 -3
  439. package/src/components/Carousel/Carousel.tsx +29 -12
  440. package/src/components/CarouselCardAccounts/CarouselCardAccounts.tsx +113 -0
  441. package/src/components/Checkbox/Checkbox.tsx +2 -8
  442. package/src/components/ChipGroup/ChipGroup.tsx +1 -1
  443. package/src/components/ChipSelect/ChipSelect.tsx +11 -11
  444. package/src/components/CircularProgressBar/CircularProgressBar.tsx +5 -5
  445. package/src/components/CircularProgressBarDoted/CircularProgressBarDoted.tsx +8 -8
  446. package/src/components/CircularRating/CircularRating.tsx +3 -3
  447. package/src/components/CompareTable/CompareTable.tsx +16 -16
  448. package/src/components/DebitCard/DebitCard.tsx +22 -22
  449. package/src/components/Disclaimer/Disclaimer.tsx +5 -5
  450. package/src/components/DonutChart/DonutChart.tsx +11 -45
  451. package/src/components/Drawer/Drawer.tsx +80 -71
  452. package/src/components/Dropdown/Dropdown.tsx +23 -28
  453. package/src/components/DropdownInput/DropdownInput.tsx +10 -17
  454. package/src/components/EmptyState/EmptyState.tsx +14 -14
  455. package/src/components/FilterBar/FilterBar.tsx +2 -2
  456. package/src/components/Form/Form.tsx +3 -3
  457. package/src/components/FormField/FormField.tsx +6 -11
  458. package/src/components/FullscreenModal/FullscreenModal.tsx +24 -24
  459. package/src/components/Gauge/Gauge.tsx +8 -8
  460. package/src/components/HoldingsCard/HoldingsCard.tsx +10 -10
  461. package/src/components/Icon/Icon.tsx +6 -6
  462. package/src/components/IconCapsule/IconCapsule.tsx +7 -7
  463. package/src/components/InputSearch/InputSearch.tsx +9 -9
  464. package/src/components/InstitutionBadge/InstitutionBadge.tsx +3 -6
  465. package/src/components/ListGroup/ListGroup.tsx +8 -8
  466. package/src/components/ListItem/ListItem.tsx +10 -10
  467. package/src/components/LottieIntroBlock/LottieIntroBlock.tsx +13 -16
  468. package/src/components/LottiePlayer/LottiePlayer.tsx +2 -2
  469. package/src/components/LottiePlayer/LottiePlayer.web.tsx +2 -2
  470. package/src/components/MediaCard/MediaCard.tsx +21 -21
  471. package/src/components/MessageField/MessageField.tsx +8 -16
  472. package/src/components/MoneyValue/MoneyValue.tsx +7 -7
  473. package/src/components/NavArrow/NavArrow.tsx +8 -8
  474. package/src/components/NoteInput/NoteInput.tsx +12 -12
  475. package/src/components/Nudge/Nudge.tsx +20 -20
  476. package/src/components/OTP/OTP.tsx +16 -16
  477. package/src/components/PageHero/PageHero.tsx +16 -16
  478. package/src/components/PaymentFeedback/PaymentFeedback.tsx +27 -27
  479. package/src/components/Popup/Popup.tsx +1 -1
  480. package/src/components/ProgressBadge/ProgressBadge.tsx +5 -5
  481. package/src/components/Radio/Radio.tsx +8 -9
  482. package/src/components/RechargeCard/RechargeCard.tsx +31 -31
  483. package/src/components/SavingsGoalSummary/SavingsGoalSummary.tsx +105 -13
  484. package/src/components/ScrollArea/ScrollArea.tsx +200 -0
  485. package/src/components/Section/Section.tsx +26 -26
  486. package/src/components/StatusHero/StatusHero.tsx +14 -14
  487. package/src/components/Stepper/Step.tsx +16 -18
  488. package/src/components/Stepper/StepLabel.tsx +16 -27
  489. package/src/components/Stepper/Stepper.tsx +3 -4
  490. package/src/components/SuggestiveSearch/SuggestiveSearch.tsx +10 -20
  491. package/src/components/SupportText/SupportText.tsx +6 -6
  492. package/src/components/SupportText/SupportTextIcon.tsx +2 -2
  493. package/src/components/Text/Text.tsx +23 -5
  494. package/src/components/TextInput/TextInput.tsx +14 -14
  495. package/src/components/TextSegment/TextSegment.tsx +22 -4
  496. package/src/components/ThreadHero/ThreadHero.tsx +17 -17
  497. package/src/components/Title/Title.tsx +44 -18
  498. package/src/components/Toast/Toast.tsx +15 -15
  499. package/src/components/Toggle/Toggle.tsx +5 -10
  500. package/src/components/Tooltip/Tooltip.tsx +12 -12
  501. package/src/components/TransactionBubble/TransactionBubble.tsx +15 -15
  502. package/src/components/TransactionDetails/TransactionDetails.tsx +10 -10
  503. package/src/components/TransactionStatus/TransactionStatus.tsx +9 -9
  504. package/src/components/UpiHandle/UpiHandle.tsx +15 -15
  505. package/src/components/index.ts +2 -0
  506. package/src/design-tokens/Coin Variables-variables-full.json +1 -1
  507. package/src/design-tokens/figma-modes.generated.ts +50 -42
  508. package/src/icons/components/Icon4g.tsx +11 -0
  509. package/src/icons/components/Icon4gltedata.tsx +11 -0
  510. package/src/icons/components/Icon5g.tsx +11 -0
  511. package/src/icons/components/Icon5gdoubleplus.tsx +11 -0
  512. package/src/icons/components/Icon5gplus.tsx +11 -0
  513. package/src/icons/components/IconAdblocker.tsx +11 -0
  514. package/src/icons/components/IconAdblockplus.tsx +11 -0
  515. package/src/icons/components/IconAnalytics.tsx +11 -0
  516. package/src/icons/components/IconAnalyticsdata.tsx +11 -0
  517. package/src/icons/components/IconAnalyticspiechart.tsx +11 -0
  518. package/src/icons/components/IconAnalyticspiecharttree.tsx +11 -0
  519. package/src/icons/components/IconAnalyticspiecharttwo.tsx +11 -0
  520. package/src/icons/components/IconCompoundinterest.tsx +11 -0
  521. package/src/icons/components/IconConsumptionaccounted.tsx +11 -0
  522. package/src/icons/components/IconConsumptionaverage.tsx +11 -0
  523. package/src/icons/components/IconConsumptionhigh.tsx +11 -0
  524. package/src/icons/components/IconConsumptionlow.tsx +11 -0
  525. package/src/icons/components/IconConsumptionunaccounted.tsx +11 -0
  526. package/src/icons/components/IconCsvdoc.tsx +11 -0
  527. package/src/icons/components/IconDatabase.tsx +11 -0
  528. package/src/icons/components/IconDigitalecosystem.tsx +11 -0
  529. package/src/icons/components/IconDigitalselfservice.tsx +11 -0
  530. package/src/icons/components/IconDistribution.tsx +11 -0
  531. package/src/icons/components/IconDocument.tsx +11 -0
  532. package/src/icons/components/IconDocumentdoc.tsx +11 -0
  533. package/src/icons/components/IconDocumentjpg.tsx +11 -0
  534. package/src/icons/components/IconDocumentodt.tsx +11 -0
  535. package/src/icons/components/IconDocumentpdf.tsx +11 -0
  536. package/src/icons/components/IconDocumentpng.tsx +11 -0
  537. package/src/icons/components/IconDocumentraw.tsx +11 -0
  538. package/src/icons/components/IconDocumentrtf.tsx +11 -0
  539. package/src/icons/components/IconDocumentsettings.tsx +11 -0
  540. package/src/icons/components/IconDocumenttif.tsx +11 -0
  541. package/src/icons/components/IconDocumenttxt.tsx +11 -0
  542. package/src/icons/components/IconDocumentunknown.tsx +11 -0
  543. package/src/icons/components/IconDocumentxls.tsx +11 -0
  544. package/src/icons/components/IconDocumentxlsx.tsx +11 -0
  545. package/src/icons/components/IconFilerequest.tsx +11 -0
  546. package/src/icons/components/IconFilesend.tsx +11 -0
  547. package/src/icons/components/IconFileshare.tsx +11 -0
  548. package/src/icons/components/IconFindinpage.tsx +11 -0
  549. package/src/icons/components/IconFolder.tsx +11 -0
  550. package/src/icons/components/IconFolderbookmarks.tsx +11 -0
  551. package/src/icons/components/IconFolderfavorites.tsx +11 -0
  552. package/src/icons/components/IconFolderlocked.tsx +11 -0
  553. package/src/icons/components/IconFoldermovefiles.tsx +11 -0
  554. package/src/icons/components/IconFolderpublic.tsx +11 -0
  555. package/src/icons/components/IconFolderrated.tsx +11 -0
  556. package/src/icons/components/IconFolderrequest.tsx +11 -0
  557. package/src/icons/components/IconForm.tsx +11 -0
  558. package/src/icons/components/IconFormadd.tsx +11 -0
  559. package/src/icons/components/IconForms.tsx +11 -0
  560. package/src/icons/components/IconGraphincreasing.tsx +11 -0
  561. package/src/icons/components/IconGraphlow.tsx +11 -0
  562. package/src/icons/components/IconGraphtable.tsx +11 -0
  563. package/src/icons/components/IconHealthreport.tsx +11 -0
  564. package/src/icons/components/IconHubmode.tsx +11 -0
  565. package/src/icons/components/IconInfrastructure.tsx +11 -0
  566. package/src/icons/components/IconInterestlow.tsx +11 -0
  567. package/src/icons/components/IconLte.tsx +11 -0
  568. package/src/icons/components/IconNetworkfuture.tsx +11 -0
  569. package/src/icons/components/IconPagesettings.tsx +11 -0
  570. package/src/icons/components/IconPptxdoc.tsx +11 -0
  571. package/src/icons/components/IconPreferrednumber.tsx +11 -0
  572. package/src/icons/components/IconPremiumnumber.tsx +11 -0
  573. package/src/icons/components/IconProjection.tsx +11 -0
  574. package/src/icons/components/IconRequest.tsx +11 -0
  575. package/src/icons/components/IconRoutestraffic.tsx +11 -0
  576. package/src/icons/components/IconTechnology.tsx +11 -0
  577. package/src/icons/components/IconVolte.tsx +11 -0
  578. package/src/icons/components/IconVonr.tsx +11 -0
  579. package/src/icons/components/IconVowifi.tsx +11 -0
  580. package/src/icons/components/IconVpndata.tsx +11 -0
  581. package/src/icons/components/index.ts +73 -0
  582. package/src/icons/registry.ts +293 -1
  583. package/src/utils/index.ts +2 -0
  584. package/src/utils/react-utils.ts +72 -1
  585. package/src/utils/shadow.ts +219 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,21 @@ All notable changes to this project are documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
+ ## [0.1.16] - 2026-06-26
8
+
9
+ - Added `CarouselCardAccounts` — horizontally scrollable account-card strip built on `Carousel` with token-driven gap and snap-aligned card slots.
10
+ - Added `ScrollArea` — token-aware scroll container with `direction` (`vertical` / `horizontal` / `both`), padding props, and hidden scroll indicators by default.
11
+ - Shared `boxShadow` utility — cross-platform drop-shadow helper (`boxShadow`, `parseBoxShadow`, `supportsNativeBoxShadow`) with legacy iOS/Android fallback for pre–RN 0.76; exported from the package barrel. Adopted by `Drawer`, `Dropdown`, `Checkbox`, `Radio`, `Toggle`, and `ActionFooter`.
12
+ - Library-wide token audit — removed hardcoded `|| fallback` defaults from component token resolution so missing tokens are visible at runtime; added `npm run audit:tokens` (`scripts/audit-tokens.js`) to verify every referenced Figma variable exists and resolves before publish.
13
+ - `Text` / `Title` — new `singleLine` prop to force single-line layout (web uses `whiteSpace: nowrap` so text overflows instead of wrapping inside constrained parents).
14
+ - `Button` — web label no-wrap fix for pill buttons in tight flex layouts.
15
+ - `Drawer` — title-wrap padding driven by `drawer/titleWrap/padding/*` tokens; layered shadow routed through shared `boxShadow`.
16
+ - `SavingsGoalSummary` — optional `label` caption above the percentage value with dedicated `savingsGoalSummary/label/*` and `savingsGoalSummary/value/*` typography tokens.
17
+ - Icons — 73 new icons (analytics, documents, network/connectivity, folders, and related glyphs); refreshed icon registry.
18
+ - Figma/token sync pass; refreshed `.token-metadata.json`, `figma-modes.generated.ts`, and Coin Variables tokens.
19
+
20
+ ---
21
+
7
22
  ## [0.1.12] - 2026-06-22
8
23
 
9
24
  - Added `Stack` — token-driven vertical/horizontal layout container with `equalHeight` / `fullWidth` stretch enforcement, mode cascade to children, and `injectChildStyle` for cross-axis alignment that children cannot override.
@@ -8,12 +8,11 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
9
  var _figmaVariablesResolver = require("../../design-tokens/figma-variables-resolver");
10
10
  var _reactUtils = require("../../utils/react-utils");
11
+ var _shadow = require("../../utils/shadow");
11
12
  var _IconButton = _interopRequireDefault(require("../IconButton/IconButton"));
12
13
  var _jsxRuntime = require("react/jsx-runtime");
13
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
15
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
- const IS_WEB = _reactNative.Platform.OS === 'web';
16
-
17
16
  // ---------------------------------------------------------------------------
18
17
  // Yoga-safe stretch
19
18
  // ---------------------------------------------------------------------------
@@ -42,27 +41,11 @@ const STRETCH_STYLE = {
42
41
  minWidth: 0
43
42
  };
44
43
 
45
- // Platform-specific drop shadow. Web boxShadow can't go through
46
- // Platform.select (RN's typed surface doesn't include it) so we keep it as a
47
- // separate constant and append it below.
48
- const NATIVE_SHADOW = _reactNative.Platform.select({
49
- ios: {
50
- shadowColor: '#0c0d10',
51
- shadowOffset: {
52
- width: 0,
53
- height: -12
54
- },
55
- shadowOpacity: 0.16,
56
- shadowRadius: 24
57
- },
58
- android: {
59
- elevation: 16
60
- },
61
- default: {}
44
+ // Upward drop shadow routed through the unified helper: native `boxShadow` on
45
+ // web + RN 0.76+, legacy `shadow*` (iOS) / `elevation` (Android) on older RN.
46
+ const SHADOW = (0, _shadow.boxShadow)('0px -12px 24px 0px rgba(12, 13, 16, 0.12), 0px -16px 48px 0px rgba(12, 13, 16, 0.16)', {
47
+ elevation: 16
62
48
  });
63
- const WEB_SHADOW = IS_WEB ? {
64
- boxShadow: '0px -12px 24px 0px rgba(12, 13, 16, 0.12), 0px -16px 48px 0px rgba(12, 13, 16, 0.16)'
65
- } : null;
66
49
 
67
50
  // The runtime token a slot child must equal (by reference) to be treated as
68
51
  // an IconButton. `IconButton` is exported wrapped in `React.memo`, so the
@@ -171,7 +154,7 @@ function ActionFooter({
171
154
  paddingRight: paddingHorizontal,
172
155
  paddingTop,
173
156
  paddingBottom,
174
- ...NATIVE_SHADOW
157
+ ...SHADOW
175
158
  };
176
159
  const slot = {
177
160
  flexDirection: 'row',
@@ -208,7 +191,7 @@ function ActionFooter({
208
191
  });
209
192
  }, [children, modes]);
210
193
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
211
- style: [containerStyle, WEB_SHADOW, style,
194
+ style: [containerStyle, style,
212
195
  // Counter-translate by the keyboard height on Android so `adjustResize`
213
196
  // can't lift the footer above the keyboard (no-op on iOS/web where the
214
197
  // value stays at 0).
@@ -34,18 +34,18 @@ function ActionTile({
34
34
  };
35
35
 
36
36
  // Resolve tokens
37
- const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('actionTile/background', modes) || '#ffffff';
38
- const gap = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/gap', modes)) || 8;
39
- const paddingHorizontal = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/padding/horizontal', modes)) || 12;
40
- const paddingVertical = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/padding/vertical', modes)) || 16;
41
- const radius = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/radius', modes)) || 16;
37
+ const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('actionTile/background', modes);
38
+ const gap = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/gap', modes));
39
+ const paddingHorizontal = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/padding/horizontal', modes));
40
+ const paddingVertical = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/padding/vertical', modes));
41
+ const radius = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/radius', modes));
42
42
 
43
43
  // Text tokens
44
- const textColor = (0, _figmaVariablesResolver.getVariableByName)('actionTile/foreground', modes) || '#0d0d0f';
45
- const fontSize = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/fontSize', modes)) || 14;
46
- const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('actionTile/fontFamily', modes) || 'JioType Var';
47
- const fontWeightStr = (0, _figmaVariablesResolver.getVariableByName)('actionTile/fontWeight', modes) || '500';
48
- const lineHeight = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/lineHeight', modes)) || 17;
44
+ const textColor = (0, _figmaVariablesResolver.getVariableByName)('actionTile/foreground', modes);
45
+ const fontSize = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/fontSize', modes));
46
+ const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('actionTile/fontFamily', modes);
47
+ const fontWeightStr = (0, _figmaVariablesResolver.getVariableByName)('actionTile/fontWeight', modes);
48
+ const lineHeight = Number((0, _figmaVariablesResolver.getVariableByName)('actionTile/lineHeight', modes));
49
49
  const containerStyle = {
50
50
  backgroundColor,
51
51
  borderRadius: radius,
@@ -34,9 +34,9 @@ const AmountInput = /*#__PURE__*/(0, _react.forwardRef)(function AmountInput({
34
34
  };
35
35
 
36
36
  // Resolve tokens
37
- const gap = Number((0, _figmaVariablesResolver.getVariableByName)('amountInput/gap', modes)) || 16;
38
- const paddingHorizontal = Number((0, _figmaVariablesResolver.getVariableByName)('amountInput/padding/horizontal', modes)) || 0;
39
- const paddingVertical = Number((0, _figmaVariablesResolver.getVariableByName)('amountInput/padding/vertical', modes)) || 0;
37
+ const gap = Number((0, _figmaVariablesResolver.getVariableByName)('amountInput/gap', modes));
38
+ const paddingHorizontal = Number((0, _figmaVariablesResolver.getVariableByName)('amountInput/padding/horizontal', modes));
39
+ const paddingVertical = Number((0, _figmaVariablesResolver.getVariableByName)('amountInput/padding/vertical', modes));
40
40
  const containerStyle = {
41
41
  flexDirection: 'column',
42
42
  alignItems: 'center',
@@ -727,7 +727,7 @@ function ChartTooltip({
727
727
  const bg = (0, _figmaVariablesResolver.getVariableByName)('tooltip/background', modes) ?? '#0f0d0a';
728
728
  const paddingH = toNumber((0, _figmaVariablesResolver.getVariableByName)('tooltip/padding/horizontal', modes), 12);
729
729
  const paddingV = toNumber((0, _figmaVariablesResolver.getVariableByName)('tooltip/padding/vertical', modes), 8);
730
- const radius = toNumber((0, _figmaVariablesResolver.getVariableByName)('radius', modes), 8);
730
+ const radius = 8;
731
731
  const labelColor = (0, _figmaVariablesResolver.getVariableByName)('tooltip/label/color', modes) ?? '#ffffff';
732
732
  if (items.length === 0) return null;
733
733
 
@@ -805,7 +805,7 @@ function ChartLegend() {
805
805
  /** Resolve `axisItem/*` typography tokens into a memoized text style. */
806
806
  function useAxisTypography(modes) {
807
807
  return (0, _react.useMemo)(() => {
808
- const color = (0, _figmaVariablesResolver.getVariableByName)('axisItem/color', modes) ?? '#000000';
808
+ const color = (0, _figmaVariablesResolver.getVariableByName)('axisItem/fg', modes) ?? '#000000';
809
809
  const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('axisItem/fontFamily', modes) ?? 'JioType Var';
810
810
  const fontSize = toNumber((0, _figmaVariablesResolver.getVariableByName)('axisItem/fontSize', modes), 12);
811
811
  const lineHeight = toNumber((0, _figmaVariablesResolver.getVariableByName)('axisItem/lineHeight', modes), 16);
@@ -129,7 +129,7 @@ function Attached({
129
129
  // anchor centering intact).
130
130
  const slotBorderStyle = (0, _react.useMemo)(() => {
131
131
  const borderColor = (0, _figmaVariablesResolver.getVariableByName)('attached/slot/border', modes);
132
- const borderWidth = parseFloat((0, _figmaVariablesResolver.getVariableByName)('attached/slot/borderWidth', modes) || '0');
132
+ const borderWidth = parseFloat((0, _figmaVariablesResolver.getVariableByName)('attached/slot/borderWidth', modes));
133
133
  if (!borderColor || !(borderWidth > 0)) return null;
134
134
 
135
135
  // Match the inner clip radius so the ring stays concentric. The outer edge
@@ -57,17 +57,17 @@ const monogramContainerStyle = {
57
57
  // ---------------------------------------------------------------------------
58
58
 
59
59
  function resolveAvatarTokens(modes, isMonogram) {
60
- const size = (0, _figmaVariablesResolver.getVariableByName)('avatar/size', modes) || 29;
61
- const radiusRaw = (0, _figmaVariablesResolver.getVariableByName)('avatar/radius', modes) || 9999;
62
- const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/background', modes) || '#dbcfff';
63
- const borderColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/color', modes) || 'rgba(255,255,255,0)';
64
- const borderSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/size', modes) || 1;
65
- const labelColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/color', modes) || '#5c00b5';
66
- const labelFontSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/fontSize', modes) || 12;
67
- const labelLineHeight = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/lineHeight', modes) || 14;
68
- const labelFontWeightRaw = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/fontWeight', modes) || 500;
60
+ const size = (0, _figmaVariablesResolver.getVariableByName)('avatar/size', modes);
61
+ const radiusRaw = (0, _figmaVariablesResolver.getVariableByName)('avatar/radius', modes);
62
+ const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/background', modes);
63
+ const borderColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/color', modes);
64
+ const borderSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/size', modes);
65
+ const labelColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/color', modes);
66
+ const labelFontSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/fontSize', modes);
67
+ const labelLineHeight = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/lineHeight', modes);
68
+ const labelFontWeightRaw = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/fontWeight', modes);
69
69
  const labelFontWeight = typeof labelFontWeightRaw === 'number' ? labelFontWeightRaw.toString() : labelFontWeightRaw;
70
- const labelFontFamily = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/fontFamily', modes) || 'Inter';
70
+ const labelFontFamily = (0, _figmaVariablesResolver.getVariableByName)('avatar/label/fontFamily', modes);
71
71
 
72
72
  // 9999 is the design-token sentinel for "perfect circle"
73
73
  const borderRadius = radiusRaw === 9999 ? size / 2 : radiusRaw;
@@ -19,15 +19,15 @@ function AvatarGroup({
19
19
  style,
20
20
  ...rest
21
21
  }) {
22
- const gap = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/gap', modes) || 0;
23
- const avatarSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/size', modes) || 29;
24
- const avatarRadius = (0, _figmaVariablesResolver.getVariableByName)('avatar/radius', modes) || 9999;
25
- const borderSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/size', modes) || 1;
26
- const borderColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/color', modes) || 'rgba(255,255,255,0)';
27
- const paddingLeft = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/left', modes) || 0;
28
- const paddingRight = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/right', modes) || 0;
29
- const paddingTop = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/top', modes) || 0;
30
- const paddingBottom = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/bottom', modes) || 0;
22
+ const gap = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/gap', modes);
23
+ const avatarSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/size', modes);
24
+ const avatarRadius = (0, _figmaVariablesResolver.getVariableByName)('avatar/radius', modes);
25
+ const borderSize = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/size', modes);
26
+ const borderColor = (0, _figmaVariablesResolver.getVariableByName)('avatar/border/color', modes);
27
+ const paddingLeft = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/left', modes);
28
+ const paddingRight = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/right', modes);
29
+ const paddingTop = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/top', modes);
30
+ const paddingBottom = (0, _figmaVariablesResolver.getVariableByName)('avatarGroup/padding/bottom', modes);
31
31
  const validChildren = (0, _reactUtils.flattenChildren)(children);
32
32
  const totalChildren = validChildren.length;
33
33
 
@@ -34,20 +34,20 @@ function Badge({
34
34
  // Resolve token values (fall back to sensible defaults). The glass type
35
35
  // swaps the solid fill for a translucent overlay + white label, matching the
36
36
  // Figma `badge/glass/*` tokens.
37
- const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('badge/color/background', modes) || '#d8effe';
38
- const glassBackground = (0, _figmaVariablesResolver.getVariableByName)('badge/glass/color/background', modes) || '#ffffff26';
39
- const glassLabelColor = (0, _figmaVariablesResolver.getVariableByName)('badge/glass/color/label', modes) || '#ffffff';
40
- const labelColor = isGlass ? glassLabelColor : (0, _figmaVariablesResolver.getVariableByName)('badge/color/label', modes) || '#000000';
41
- const fontSize = Number((0, _figmaVariablesResolver.getVariableByName)('badge/label/fontSize', modes)) || 12;
42
- const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('badge/fontFamily', modes) || undefined;
43
- const fontWeight = (0, _figmaVariablesResolver.getVariableByName)('badge/label/fontWeight', modes) || '600';
44
- const paddingHorizontal = Number((0, _figmaVariablesResolver.getVariableByName)('badge/padding/horizontal', modes)) || 6;
45
- const paddingVertical = Number((0, _figmaVariablesResolver.getVariableByName)('badge/padding/vertical', modes)) || 4;
46
- const borderRadius = Number((0, _figmaVariablesResolver.getVariableByName)('badge/radius', modes)) || 4;
47
- const lineHeight = Number((0, _figmaVariablesResolver.getVariableByName)('badge/label/lineHeight', modes)) || Math.round(fontSize * 1.2);
37
+ const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('badge/color/background', modes);
38
+ const glassBackground = (0, _figmaVariablesResolver.getVariableByName)('badge/glass/color/background', modes);
39
+ const glassLabelColor = (0, _figmaVariablesResolver.getVariableByName)('badge/glass/color/label', modes);
40
+ const labelColor = isGlass ? glassLabelColor : (0, _figmaVariablesResolver.getVariableByName)('badge/color/label', modes);
41
+ const fontSize = Number((0, _figmaVariablesResolver.getVariableByName)('badge/label/fontSize', modes));
42
+ const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('badge/fontFamily', modes);
43
+ const fontWeight = (0, _figmaVariablesResolver.getVariableByName)('badge/label/fontWeight', modes);
44
+ const paddingHorizontal = Number((0, _figmaVariablesResolver.getVariableByName)('badge/padding/horizontal', modes));
45
+ const paddingVertical = Number((0, _figmaVariablesResolver.getVariableByName)('badge/padding/vertical', modes));
46
+ const borderRadius = Number((0, _figmaVariablesResolver.getVariableByName)('badge/radius', modes));
47
+ const lineHeight = Number((0, _figmaVariablesResolver.getVariableByName)('badge/label/lineHeight', modes));
48
48
  // Figma `blur/minimal` (px radius) -> GlassFill's 0–100 intensity scale, the
49
49
  // same 1:1 mapping the merchandising card footer uses.
50
- const blurIntensity = Math.max(0, Math.min(100, Math.round(Number((0, _figmaVariablesResolver.getVariableByName)('blur/minimal', modes)) || 29)));
50
+ const blurIntensity = Math.max(0, Math.min(100, Math.round(Number((0, _figmaVariablesResolver.getVariableByName)('blur/minimal', modes)))));
51
51
 
52
52
  // Skeleton short-circuit. Size derived from the same tokens the loaded
53
53
  // badge would use so the placeholder occupies the same box.
@@ -13,6 +13,9 @@ var _Text = _interopRequireDefault(require("../Text/Text"));
13
13
  var _ListItem = _interopRequireDefault(require("../ListItem/ListItem"));
14
14
  var _Divider = _interopRequireDefault(require("../Divider/Divider"));
15
15
  var _Button = _interopRequireDefault(require("../Button/Button"));
16
+ var _Nudge = _interopRequireDefault(require("../Nudge/Nudge"));
17
+ var _Avatar = _interopRequireDefault(require("../Avatar/Avatar"));
18
+ var _TextSegment = _interopRequireDefault(require("../TextSegment/TextSegment"));
16
19
  var _jsxRuntime = require("react/jsx-runtime");
17
20
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
21
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
@@ -44,8 +47,11 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
44
47
  function BenefitCard({
45
48
  headerTitle = 'You will earn',
46
49
  headerItem,
50
+ headerItems,
51
+ header,
47
52
  showHeader = true,
48
- bodyTitle = 'Upgrade to JioFinance+ and earn more',
53
+ bodyTitle,
54
+ bodyHeader,
49
55
  items,
50
56
  children,
51
57
  buttonLabel = 'Upgrade',
@@ -60,11 +66,16 @@ function BenefitCard({
60
66
  }) {
61
67
  const tokens = (0, _react.useMemo)(() => resolveTokens(modes), [modes]);
62
68
 
63
- // Sub-component modes. Consumer-supplied `modes` always win via spread order.
64
- const listItemModes = (0, _react.useMemo)(() => ({
69
+ // Component-level modes. `List Item Style: Minimal` and `Nudge padding: None`
70
+ // are BenefitCard's own defaults: they live on the card and cascade down into
71
+ // every child (the list-wrap rows and the upsell nudge) rather than being
72
+ // threaded onto each individual item. Consumer `modes` always win.
73
+ const cascadeModes = (0, _react.useMemo)(() => ({
65
74
  'List Item Style': 'Minimal',
75
+ 'Nudge padding': 'None',
66
76
  ...modes
67
77
  }), [modes]);
78
+ // Sub-element modes layer their own specifics on top of the consumer modes.
68
79
  const iconModes = (0, _react.useMemo)(() => ({
69
80
  AppearanceBrand: 'Secondary',
70
81
  ...modes
@@ -78,6 +89,13 @@ function BenefitCard({
78
89
  'Button / Size': 'S',
79
90
  ...modes
80
91
  }), [modes]);
92
+ // The upsell nudge keeps a white/transparent background (`AppearanceBrand:
93
+ // Neutral` → `nudge/background: #ffffff`); its `Nudge padding: None` cascades
94
+ // in from `cascadeModes` so it sits flush with the card.
95
+ const nudgeModes = (0, _react.useMemo)(() => ({
96
+ AppearanceBrand: 'Neutral',
97
+ ...cascadeModes
98
+ }), [cascadeModes]);
81
99
  const renderItem = (item, key) => {
82
100
  const leading = item.leading ?? (item.icon != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
83
101
  iconName: item.icon,
@@ -95,23 +113,60 @@ function BenefitCard({
95
113
  title: item.title,
96
114
  leading: leading,
97
115
  trailing: trailing,
98
- onPress: item.onPress,
99
- modes: listItemModes
116
+ onPress: item.onPress
100
117
  }, key);
101
118
  };
102
- const headerNode = showHeader && (headerTitle != null || headerItem != null) ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
119
+
120
+ // Header "list wrap" — slot-based. Precedence: `header` slot > `headerItems`
121
+ // array > legacy single `headerItem` > Figma default rows. The component-level
122
+ // `cascadeModes` are pushed into the whole group at once, so individual rows
123
+ // never carry their own list-item modes.
124
+ const headerListSource = header ? header : (headerItems ?? (headerItem ? [headerItem] : DEFAULT_HEADER_ITEMS)).map((item, index) => renderItem(item, `header-${index}`));
125
+ const headerListNodes = (0, _reactUtils.cloneChildrenWithModes)(headerListSource, cascadeModes);
126
+ const headerNode = showHeader ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
103
127
  style: styles.section,
104
128
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
105
129
  style: styles.cardHeader,
106
130
  children: [headerTitle != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
107
131
  style: tokens.title,
108
132
  children: headerTitle
109
- }) : null, headerItem != null ? renderItem(headerItem, 'header-item') : null]
133
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
134
+ style: tokens.listWrap,
135
+ children: headerListNodes
136
+ })]
110
137
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Divider.default, {
111
138
  modes: modes
112
139
  })]
113
140
  }) : null;
114
- const bodyList = children ? (0, _reactUtils.cloneChildrenWithModes)(children, listItemModes) : (items ?? DEFAULT_ITEMS).map((item, index) => renderItem(item, index));
141
+
142
+ // Body "header" slot (between the divider and the body list). Precedence:
143
+ // explicit `bodyHeader` slot > legacy `bodyTitle` text > Figma upsell nudge.
144
+ const bodyHeaderNode = bodyHeader === null || bodyHeader === false ? null : bodyHeader !== undefined ? renderSlot(bodyHeader, cascadeModes) : bodyTitle != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
145
+ style: tokens.title,
146
+ children: bodyTitle
147
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Nudge.default, {
148
+ type: "inline-compact",
149
+ modes: {
150
+ ...nudgeModes,
151
+ ...cascadeModes
152
+ },
153
+ startSlot: DEFAULT_UPSELL_AVATAR,
154
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextSegment.default, {
155
+ modes: cascadeModes,
156
+ segments: [{
157
+ text: 'Upgrade to '
158
+ }, {
159
+ text: 'JioFinance+',
160
+ modes: {
161
+ 'Text Appearance': 'Primary'
162
+ }
163
+ }, {
164
+ text: ' and earn more'
165
+ }]
166
+ })
167
+ });
168
+ const bodyListSource = children ? children : (items ?? DEFAULT_ITEMS).map((item, index) => renderItem(item, index));
169
+ const bodyList = (0, _reactUtils.cloneChildrenWithModes)(bodyListSource, cascadeModes);
115
170
  const ctaNode = button ?? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
116
171
  label: buttonLabel,
117
172
  modes: ctaModes,
@@ -122,15 +177,9 @@ function BenefitCard({
122
177
  width
123
178
  }), [tokens.container, width]);
124
179
  const content = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
125
- children: [headerNode, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
126
- style: tokens.body,
127
- children: [bodyTitle != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
128
- style: tokens.title,
129
- children: bodyTitle
130
- }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
131
- style: tokens.listWrap,
132
- children: bodyList
133
- })]
180
+ children: [headerNode, bodyHeaderNode, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
181
+ style: tokens.listWrap,
182
+ children: bodyList
134
183
  }), showButton ? ctaNode : null]
135
184
  });
136
185
  if (onPress) {
@@ -189,10 +238,6 @@ function resolveTokens(modes) {
189
238
  flexDirection: 'column',
190
239
  alignItems: 'flex-start'
191
240
  },
192
- body: {
193
- alignSelf: 'stretch',
194
- gap
195
- },
196
241
  listWrap: {
197
242
  alignSelf: 'stretch',
198
243
  gap
@@ -208,6 +253,26 @@ function resolveTokens(modes) {
208
253
  }
209
254
  };
210
255
  }
256
+
257
+ // Cascades `modes` into a slot node and unwraps a single child so the slot can
258
+ // be rendered inline without an extra fragment.
259
+ function renderSlot(node, modes) {
260
+ const processed = (0, _reactUtils.cloneChildrenWithModes)(node, modes);
261
+ return processed.length === 1 ? processed[0] : processed;
262
+ }
263
+
264
+ // Figma reference rows for the header list wrap (two highlighted "JioPoints"
265
+ // rows). Used only when no `header` slot / `headerItems` / legacy `headerItem`
266
+ // is supplied.
267
+ const DEFAULT_HEADER_ITEMS = [{
268
+ icon: 'ic_jewellery_diamond',
269
+ title: 'JioPoints',
270
+ trailingText: 'Up to 2000 pts'
271
+ }, {
272
+ icon: 'ic_jewellery_diamond',
273
+ title: 'JioPoints',
274
+ trailingText: 'Up to 2000 pts'
275
+ }];
211
276
  const DEFAULT_ITEMS = [{
212
277
  icon: 'ic_card',
213
278
  title: 'Up to ₹5000 cashback'
@@ -215,6 +280,15 @@ const DEFAULT_ITEMS = [{
215
280
  icon: 'ic_card',
216
281
  title: '25% extra JioPoints'
217
282
  }];
283
+
284
+ // Start-slot avatar for the default upsell nudge. `modes` cascade in from the
285
+ // nudge (XS keeps it compact next to the inline message).
286
+ const DEFAULT_UPSELL_AVATAR = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Avatar.default, {
287
+ style: "Image",
288
+ modes: {
289
+ 'Avatar Size': 'XS'
290
+ }
291
+ });
218
292
  const styles = _reactNative.StyleSheet.create({
219
293
  section: {
220
294
  alignSelf: 'stretch',
@@ -42,8 +42,8 @@ function BottomNav({
42
42
  };
43
43
 
44
44
  // Resolve container styling tokens
45
- const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('bottomNav/background', modes) || '#ffffff';
46
- const borderColor = (0, _figmaVariablesResolver.getVariableByName)('bottomNav/border/color', modes) || '#cccfd1';
45
+ const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('bottomNav/background', modes);
46
+ const borderColor = (0, _figmaVariablesResolver.getVariableByName)('bottomNav/border/color', modes);
47
47
  const borderWidth = (0, _figmaVariablesResolver.getVariableByName)('bottomNav/border/width', modes) ?? 1;
48
48
  const paddingTop = (0, _figmaVariablesResolver.getVariableByName)('bottomNav/padding/top', modes) ?? 10;
49
49
  const paddingBottom = (0, _figmaVariablesResolver.getVariableByName)('bottomNav/padding/bottom', modes) ?? 23;
@@ -29,13 +29,13 @@ const focusOverlayStyle = {
29
29
  };
30
30
  function resolveBottomNavItemTokens(modes, disabled, iconColorOverride, iconSizeOverride) {
31
31
  const gap = (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/gap', modes) ?? 6;
32
- const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/fontFamily', modes) || 'JioType_Var:Medium';
32
+ const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/fontFamily', modes);
33
33
  const fontWeightRaw = (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/fontWeight', modes) ?? 500;
34
34
  const fontWeight = typeof fontWeightRaw === 'number' ? fontWeightRaw.toString() : fontWeightRaw;
35
35
  const fontSize = (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/fontSize', modes) ?? 11;
36
36
  const lineHeight = (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/lineHeight', modes) ?? 14;
37
- const labelColor = (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/label/color', modes) || '#0d0d0f';
38
- const resolvedIconColor = iconColorOverride || (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/icon/color', modes) || '#ad8545';
37
+ const labelColor = (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/label/color', modes);
38
+ const resolvedIconColor = iconColorOverride || (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/icon/color', modes);
39
39
  const resolvedIconSize = iconSizeOverride ?? (0, _figmaVariablesResolver.getVariableByName)('bottomNavItem/icon/size', modes) ?? 24;
40
40
  return {
41
41
  baseContainerStyle: {
@@ -37,6 +37,17 @@ const containerLayoutStyle = {
37
37
  justifyContent: 'center'
38
38
  };
39
39
 
40
+ // Keeps the label on a single line. `flexShrink: 0` stops a tight flex parent
41
+ // from squeezing the text; on web `whiteSpace: 'nowrap'` is what actually
42
+ // prevents the line break (a bare `numberOfLines` line-clamp still allows the
43
+ // text to wrap inside a width-constrained pill in react-native-web).
44
+ const NO_WRAP_LABEL_STYLE = {
45
+ flexShrink: 0,
46
+ ...(IS_WEB ? {
47
+ whiteSpace: 'nowrap'
48
+ } : {})
49
+ };
50
+
40
51
  // ---------------------------------------------------------------------------
41
52
  // Token resolution
42
53
  // ---------------------------------------------------------------------------
@@ -48,19 +59,19 @@ const containerLayoutStyle = {
48
59
  // ---------------------------------------------------------------------------
49
60
 
50
61
  function resolveButtonTokens(modes, disabled) {
51
- const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('button/background', modes) || '#cfa159';
52
- const borderColor = (0, _figmaVariablesResolver.getVariableByName)('button/border/color', modes) || 'rgba(255,255,255,0)';
62
+ const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('button/background', modes);
63
+ const borderColor = (0, _figmaVariablesResolver.getVariableByName)('button/border/color', modes);
53
64
  const borderWidth = (0, _figmaVariablesResolver.getVariableByName)('button/border/size', modes);
54
- const radius = (0, _figmaVariablesResolver.getVariableByName)('button/radius', modes) || 9999;
55
- const paddingHorizontal = (0, _figmaVariablesResolver.getVariableByName)('button/padding/horizontal', modes) || 20;
56
- const paddingVertical = (0, _figmaVariablesResolver.getVariableByName)('button/padding/vertical', modes) || 12;
57
- const gap = (0, _figmaVariablesResolver.getVariableByName)('button/gap', modes) || 8;
58
- const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('button/fontFamily', modes) || 'System';
59
- const fontWeightValue = (0, _figmaVariablesResolver.getVariableByName)('button/fontWeight', modes) || 700;
65
+ const radius = (0, _figmaVariablesResolver.getVariableByName)('button/radius', modes);
66
+ const paddingHorizontal = (0, _figmaVariablesResolver.getVariableByName)('button/padding/horizontal', modes);
67
+ const paddingVertical = (0, _figmaVariablesResolver.getVariableByName)('button/padding/vertical', modes);
68
+ const gap = (0, _figmaVariablesResolver.getVariableByName)('button/gap', modes);
69
+ const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('button/fontFamily', modes);
70
+ const fontWeightValue = (0, _figmaVariablesResolver.getVariableByName)('button/fontWeight', modes);
60
71
  const fontWeight = typeof fontWeightValue === 'number' ? fontWeightValue.toString() : fontWeightValue;
61
- const lineHeight = (0, _figmaVariablesResolver.getVariableByName)('button/lineHeight', modes) || 19;
62
- const fontSize = (0, _figmaVariablesResolver.getVariableByName)('button/fontSize', modes) || 16;
63
- const textColor = (0, _figmaVariablesResolver.getVariableByName)('button/foreground', modes) || '#0f0d0a';
72
+ const lineHeight = (0, _figmaVariablesResolver.getVariableByName)('button/lineHeight', modes);
73
+ const fontSize = (0, _figmaVariablesResolver.getVariableByName)('button/fontSize', modes);
74
+ const textColor = (0, _figmaVariablesResolver.getVariableByName)('button/foreground', modes);
64
75
  const iconSize = (0, _figmaVariablesResolver.getVariableByName)('button/icon/size', modes) ?? 18;
65
76
 
66
77
  // Pressed tokens are always resolved so the Pressable `style` callback can
@@ -69,9 +80,9 @@ function resolveButtonTokens(modes, disabled) {
69
80
  ...modes,
70
81
  'Button / State': 'Pressed'
71
82
  };
72
- const pressedBg = (0, _figmaVariablesResolver.getVariableByName)('button/background', pressedModes) || backgroundColor;
73
- const pressedBorderColor = (0, _figmaVariablesResolver.getVariableByName)('button/border/color', pressedModes) || borderColor;
74
- const pressedTextColor = (0, _figmaVariablesResolver.getVariableByName)('button/foreground', pressedModes) || textColor;
83
+ const pressedBg = (0, _figmaVariablesResolver.getVariableByName)('button/background', pressedModes);
84
+ const pressedBorderColor = (0, _figmaVariablesResolver.getVariableByName)('button/border/color', pressedModes);
85
+ const pressedTextColor = (0, _figmaVariablesResolver.getVariableByName)('button/foreground', pressedModes);
75
86
 
76
87
  // Hover tokens are only meaningful on web. Skipping them on native saves
77
88
  // ~3 token lookups + an object spread per render on every Button.
@@ -82,9 +93,9 @@ function resolveButtonTokens(modes, disabled) {
82
93
  ...modes,
83
94
  'Button / State': 'Hover'
84
95
  };
85
- const hoverBg = (0, _figmaVariablesResolver.getVariableByName)('button/background', hoverModes) || backgroundColor;
86
- const hoverBorderColor = (0, _figmaVariablesResolver.getVariableByName)('button/border/color', hoverModes) || borderColor;
87
- hoverTextColor = (0, _figmaVariablesResolver.getVariableByName)('button/foreground', hoverModes) || textColor;
96
+ const hoverBg = (0, _figmaVariablesResolver.getVariableByName)('button/background', hoverModes);
97
+ const hoverBorderColor = (0, _figmaVariablesResolver.getVariableByName)('button/border/color', hoverModes);
98
+ hoverTextColor = (0, _figmaVariablesResolver.getVariableByName)('button/foreground', hoverModes);
88
99
  hoverContainer = {
89
100
  backgroundColor: hoverBg,
90
101
  borderColor: hoverBorderColor
@@ -220,8 +231,9 @@ function ButtonImpl({
220
231
  content = children;
221
232
  } else {
222
233
  content = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
223
- style: activeLabelStyle,
224
- ...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
234
+ style: [activeLabelStyle, disableTruncation ? null : NO_WRAP_LABEL_STYLE],
235
+ numberOfLines: disableTruncation ? undefined : 1,
236
+ ellipsizeMode: disableTruncation ? undefined : 'tail',
225
237
  children: label
226
238
  });
227
239
  }