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
@@ -35,16 +35,18 @@ export function Carousel({
35
35
  loop = true,
36
36
  gap: gapProp,
37
37
  itemWidth: itemWidthProp,
38
+ paddingHorizontal: paddingHorizontalProp,
39
+ paddingVertical: paddingVerticalProp,
38
40
  onIndexChange,
39
41
  style
40
42
  }) {
41
43
  // ---- Token resolution ----
42
- const tokenGap = parseFloat(getVariableByName('carousel/gap', modes) || '12');
44
+ const tokenGap = parseFloat(getVariableByName('carousel/gap', modes));
43
45
  const gap = gapProp ?? tokenGap;
44
- const containerPaddingH = parseFloat(getVariableByName('carousel/padding/horizontal', modes) || '0');
45
- const containerPaddingV = parseFloat(getVariableByName('carousel/padding/vertical', modes) || '0');
46
+ const containerPaddingH = parseFloat(getVariableByName('carousel/padding/horizontal', modes));
47
+ const containerPaddingV = parseFloat(getVariableByName('carousel/padding/vertical', modes));
46
48
  // Outer container max height per Figma (`carousel/maxHeight`).
47
- const maxHeight = parseFloat(getVariableByName('carousel/maxHeight', modes) || '280');
49
+ const maxHeight = parseFloat(getVariableByName('carousel/maxHeight', modes));
48
50
  // Spacing between the cards row and the pagination dots uses `carousel/gap`.
49
51
  const paginationOffset = gap;
50
52
 
@@ -155,12 +157,16 @@ export function Carousel({
155
157
  }), [modes, activeIndex, totalItems, goTo, goNext, goPrev]);
156
158
 
157
159
  // ---- Render ----
160
+ // Explicit padding props win verbatim; otherwise fall back to the
161
+ // token-derived values (horizontal keeps its legacy ×2 "peek" multiplier).
162
+ const effectivePaddingH = paddingHorizontalProp ?? containerPaddingH;
163
+ const effectivePaddingV = paddingVerticalProp ?? containerPaddingV;
158
164
  const outerStyle = {
159
- paddingVertical: containerPaddingV,
165
+ paddingVertical: effectivePaddingV,
160
166
  maxHeight
161
167
  };
162
168
  const contentContainerStyle = {
163
- paddingHorizontal: containerPaddingH * 2,
169
+ paddingHorizontal: effectivePaddingH,
164
170
  gap,
165
171
  // Align items to the start so snap works correctly
166
172
  alignItems: 'flex-start'
@@ -266,12 +272,12 @@ export function Pagination({
266
272
 
267
273
  // Token resolution for dots — matches Figma tokens
268
274
  // (carousel/pagination/gap, carousel/pagination/indicator/{activeColor,inactiveColor,radius,size,activeWidth}).
269
- const dotSize = parseFloat(getVariableByName('carousel/pagination/indicator/size', modes) || '6');
270
- const dotActiveWidth = parseFloat(getVariableByName('carousel/pagination/indicator/activeWidth', modes) || '16');
271
- const dotGap = parseFloat(getVariableByName('carousel/pagination/gap', modes) || '4');
272
- const dotColor = getVariableByName('carousel/pagination/indicator/inactiveColor', modes) || 'rgba(0,0,0,0.3)';
273
- const dotActiveColor = getVariableByName('carousel/pagination/indicator/activeColor', modes) || '#170d0a';
274
- const dotRadius = parseFloat(getVariableByName('carousel/pagination/indicator/radius', modes) || '9999');
275
+ const dotSize = parseFloat(getVariableByName('carousel/pagination/indicator/size', modes));
276
+ const dotActiveWidth = parseFloat(getVariableByName('carousel/pagination/indicator/activeWidth', modes));
277
+ const dotGap = parseFloat(getVariableByName('carousel/pagination/gap', modes));
278
+ const dotColor = getVariableByName('carousel/pagination/indicator/inactiveColor', modes);
279
+ const dotActiveColor = getVariableByName('carousel/pagination/indicator/activeColor', modes);
280
+ const dotRadius = parseFloat(getVariableByName('carousel/pagination/indicator/radius', modes));
275
281
  const containerStyle = {
276
282
  flexDirection: 'row',
277
283
  justifyContent: 'center',
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
5
+ import { EMPTY_MODES } from '../../utils/react-utils';
6
+ import Carousel from '../Carousel/Carousel';
7
+
8
+ // Figma reference width for a single Account Card slot (`Carousel / Card Accounts`).
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ const DEFAULT_ITEM_WIDTH = 125;
11
+ const toNumber = (value, fallback) => {
12
+ if (typeof value === 'number') return Number.isFinite(value) ? value : fallback;
13
+ if (typeof value === 'string') {
14
+ const parsed = parseFloat(value);
15
+ return Number.isFinite(parsed) ? parsed : fallback;
16
+ }
17
+ return fallback;
18
+ };
19
+ /**
20
+ * `CarouselCardAccounts` — a horizontally scrollable strip of compact
21
+ * `AccountCard`s (the Figma "Carousel / Card Accounts" component).
22
+ *
23
+ * It is a thin, opinionated preset over the shared {@link Carousel} scroll
24
+ * engine — so the snap/scroll/modes-cascade behaviour is **not** duplicated.
25
+ * Its niche is the account-selection strip: fixed-width card slots, flush
26
+ * (no peek) padding, per-card snapping, and no pagination by default.
27
+ *
28
+ * The cards are a real slot: pass any number of `AccountCard` children
29
+ * (typically a list of `connected` cards followed by a single `add` card).
30
+ *
31
+ * @example
32
+ * <CarouselCardAccounts modes={modes}>
33
+ * <AccountCard title="Personal account" subtitle="**** 5651" imageSource={art} />
34
+ * <AccountCard title="Salary account" subtitle="**** 1180" imageSource={art} />
35
+ * <AccountCard state="add" title="Add a card" onPress={openLinkFlow} />
36
+ * </CarouselCardAccounts>
37
+ */
38
+ function CarouselCardAccounts({
39
+ children,
40
+ modes = EMPTY_MODES,
41
+ itemWidth = DEFAULT_ITEM_WIDTH,
42
+ gap: gapProp,
43
+ showPagination = false,
44
+ loop = false,
45
+ onIndexChange,
46
+ style
47
+ }) {
48
+ const gap = gapProp ?? toNumber(getVariableByName('carouselCardAccounts/gap', modes), 8);
49
+
50
+ // Outer-container padding is driven by the design's own tokens
51
+ // (`carouselCardAccounts/padding/*`) rather than the generic `carousel/*`
52
+ // padding, matching the Figma "Carousel / Card Accounts" frame.
53
+ const paddingHorizontal = toNumber(getVariableByName('carouselCardAccounts/padding/horizontal', modes), 0);
54
+ const paddingVertical = toNumber(getVariableByName('carouselCardAccounts/padding/vertical', modes), 0);
55
+ return /*#__PURE__*/_jsx(Carousel, {
56
+ modes: modes,
57
+ itemWidth: itemWidth,
58
+ gap: gap,
59
+ showPagination: showPagination,
60
+ loop: loop,
61
+ autoPlay: false,
62
+ paddingHorizontal: paddingHorizontal,
63
+ paddingVertical: paddingVertical,
64
+ ...(onIndexChange ? {
65
+ onIndexChange
66
+ } : {}),
67
+ style: style,
68
+ children: children
69
+ });
70
+ }
71
+ export default /*#__PURE__*/React.memo(CarouselCardAccounts);
@@ -5,6 +5,7 @@ import { Pressable, Platform, View } from 'react-native';
5
5
  import Svg, { Path } from 'react-native-svg';
6
6
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
7
7
  import { EMPTY_MODES } from '../../utils/react-utils';
8
+ import { boxShadow } from '../../utils/shadow';
8
9
  import { jsx as _jsx } from "react/jsx-runtime";
9
10
  /**
10
11
  * Tracks whether the last user interaction was a keyboard event (Tab).
@@ -97,7 +98,7 @@ const Checkbox = /*#__PURE__*/forwardRef(function Checkbox({
97
98
  } = useFocusVisible();
98
99
  const size = getVariableByName('checkbox/size', modes) ?? 18;
99
100
  const radius = getVariableByName('checkbox/radius', modes) ?? 4;
100
- const strokeWidth = getVariableByName('strokeWidth', modes) ?? 1;
101
+ const strokeWidth = 1;
101
102
  const idleStroke = getVariableByName('checkbox/idle/stroke/color', modes) ?? '#666666';
102
103
  const hoverFill = getVariableByName('checkbox/hover/fill/color', modes) ?? 'rgba(0,0,0,0.1)';
103
104
  const hoverStroke = getVariableByName('checkbox/hover/stroke/color', modes) ?? '#666666';
@@ -223,12 +224,4 @@ const Checkbox = /*#__PURE__*/forwardRef(function Checkbox({
223
224
  })
224
225
  });
225
226
  });
226
- function boxShadow(value) {
227
- if (Platform.OS === 'web') {
228
- return {
229
- boxShadow: value
230
- };
231
- }
232
- return {};
233
- }
234
227
  export default Checkbox;
@@ -16,7 +16,7 @@ function ChipGroup({
16
16
  testID
17
17
  }) {
18
18
  // --- Token Resolution ---
19
- const gap = parseInt(getVariableByName('chipGroup/gap', modes), 10) || 8;
19
+ const gap = parseInt(getVariableByName('chipGroup/gap', modes), 10);
20
20
 
21
21
  // --- Styles ---
22
22
  const containerStyle = {
@@ -27,23 +27,23 @@ function ChipSelect({
27
27
  };
28
28
 
29
29
  // --- Token Resolution ---
30
- const gap = parseInt(getVariableByName('chipSelect/gap', resolvedModes), 10) || 4;
31
- const paddingHorizontal = parseInt(getVariableByName('chipSelect/padding/horizontal', resolvedModes), 10) || 16;
32
- const paddingVertical = parseInt(getVariableByName('chipSelect/padding/vertical', resolvedModes), 10) || 0;
33
- const radius = parseInt(getVariableByName('chipSelect/radius', resolvedModes), 10) || 999;
30
+ const gap = parseInt(getVariableByName('chipSelect/gap', resolvedModes), 10);
31
+ const paddingHorizontal = parseInt(getVariableByName('chipSelect/padding/horizontal', resolvedModes), 10);
32
+ const paddingVertical = parseInt(getVariableByName('chipSelect/padding/vertical', resolvedModes), 10);
33
+ const radius = parseInt(getVariableByName('chipSelect/radius', resolvedModes), 10);
34
34
 
35
35
  // Background
36
- const backgroundColor = getVariableByName('chipSelect/background', resolvedModes) || '#f5f5f5';
36
+ const backgroundColor = getVariableByName('chipSelect/background', resolvedModes);
37
37
 
38
38
  // Text Styles
39
- const textColor = getVariableByName('chipSelect/foreground', resolvedModes) || '#0d0d0f';
40
- const fontSize = parseInt(getVariableByName('chipSelect/fontSize', resolvedModes), 10) || 14;
41
- const fontFamily = getVariableByName('chipSelect/fontFamily', resolvedModes) || 'JioType Var';
42
- const lineHeight = parseInt(getVariableByName('chipSelect/lineHeight', resolvedModes), 10) || 32;
43
- const fontWeight = getVariableByName('chipSelect/fontWeight', resolvedModes) || '700';
39
+ const textColor = getVariableByName('chipSelect/foreground', resolvedModes);
40
+ const fontSize = parseInt(getVariableByName('chipSelect/fontSize', resolvedModes), 10);
41
+ const fontFamily = getVariableByName('chipSelect/fontFamily', resolvedModes);
42
+ const lineHeight = parseInt(getVariableByName('chipSelect/lineHeight', resolvedModes), 10);
43
+ const fontWeight = getVariableByName('chipSelect/fontWeight', resolvedModes);
44
44
 
45
45
  // Icon Styles
46
- const iconSize = parseInt(getVariableByName('chipSelect/icon/size', resolvedModes), 10) || 16;
46
+ const iconSize = parseInt(getVariableByName('chipSelect/icon/size', resolvedModes), 10);
47
47
 
48
48
  // --- Styles ---
49
49
  const containerStyle = {
@@ -76,13 +76,13 @@ function CircularProgressBar({
76
76
  const radius = Math.max(0, (size - strokeWidth) / 2);
77
77
  const center = size / 2;
78
78
  const circumference = 2 * Math.PI * radius;
79
- const trackColor = getStrokeColor(trackStyle, getVariableByName('circularProgressBar/track/color', trackModes) || '#ebebed');
80
- const progressColor = getStrokeColor(progressStyle, getVariableByName('circularProgressBar/progress/color', modes) || '#25ab21');
81
- const iconColor = getVariableByName('circularProgressBar/icon/color', modes) || '#666666';
79
+ const trackColor = getStrokeColor(trackStyle, getVariableByName('circularProgressBar/track/color', trackModes));
80
+ const progressColor = getStrokeColor(progressStyle, getVariableByName('circularProgressBar/progress/color', modes));
81
+ const iconColor = getVariableByName('circularProgressBar/icon/color', modes);
82
82
  const iconSize = toNumber(getVariableByName('circularProgressBar/icon/size', modes), 24);
83
- const foreground = getVariableByName('circularProgressBar/foreground', modes) || '#0d0d0f';
83
+ const foreground = getVariableByName('circularProgressBar/foreground', modes);
84
84
  const fontSize = toNumber(getVariableByName('circularProgressBar/value/fontSize', modes), 18);
85
- const fontFamily = getVariableByName('circularProgressBar/fontFamily', modes) || 'JioType Var';
85
+ const fontFamily = getVariableByName('circularProgressBar/fontFamily', modes);
86
86
  const lineHeight = toNumber(getVariableByName('circularProgressBar/value/lineHeight', modes), 21);
87
87
  const fontWeight = toFontWeight(getVariableByName('circularProgressBar/value/fontWeight', modes), '700');
88
88
  const supportFontSize = toNumber(getVariableByName('circularProgressBar/supportText/fontSize', modes), 11);
@@ -75,26 +75,26 @@ function CircularProgressBarDoted({
75
75
  const outerDotSize = dotSize;
76
76
  const ringSize = layoutSize;
77
77
  const ringRadius = Math.max(0, (ringSize - outerDotSize) / 2);
78
- const trackDotColor = getBackgroundColor(trackDotStyle, getVariableByName('circularProgressBarDoted/trackDot/bg', modes) || '#ebebed');
79
- const progressDotColor = getBackgroundColor(progressDotStyle, getVariableByName('circularProgressBarDoted/progressDot/bg', modes) || '#25ab21');
78
+ const trackDotColor = getBackgroundColor(trackDotStyle, getVariableByName('circularProgressBarDoted/trackDot/bg', modes));
79
+ const progressDotColor = getBackgroundColor(progressDotStyle, getVariableByName('circularProgressBarDoted/progressDot/bg', modes));
80
80
  const contentGap = toNumber(getVariableByName('circularProgressBarDoted/gap', modes), 12);
81
81
  const scoreTierGap = toNumber(getVariableByName('circularProgressBarDoted/scoreTier/gap', modes), 6);
82
82
  const scoreTierWidth = toNumber(getVariableByName('circularProgressBarDoted/scoreTier/width', modes), 116);
83
83
  const scoreTrendGap = toNumber(getVariableByName('circularProgressBarDoted/scoreTrend/gap', modes), 2);
84
84
  const scoreTrendHeight = toNumber(getVariableByName('circularProgressBarDoted/scoreTrend/height', modes), 24);
85
- const typographyFontFamily = getVariableByName('Typography/Font Family', modes) || 'JioType Var';
86
- const labelColor = getVariableByName('circularProgressBarDoted/label/color', modes) || '#080d1a';
85
+ const typographyFontFamily = getVariableByName('Typography/Font Family', modes);
86
+ const labelColor = getVariableByName('circularProgressBarDoted/label/color', modes);
87
87
  const labelFontSize = toNumber(getVariableByName('Typography/Size/Body/XS', modes), 12);
88
88
  const labelFontWeight = toFontWeight(getVariableByName('Typography/Font Weight/Body Low (Regular)', modes), '400');
89
- const scoreColor = getVariableByName('circularProgressBarDoted/scoreLabel/color', modes) || '#080d1a';
89
+ const scoreColor = getVariableByName('circularProgressBarDoted/scoreLabel/color', modes);
90
90
  const scoreFontSize = toNumber(getVariableByName('circularProgressBarDoted/scoreLabel/fontSize', modes), 56);
91
- const scoreFontFamily = getVariableByName('circularProgressBarDoted/scoreLabel/fontFamily', modes) || 'JioType Var';
91
+ const scoreFontFamily = getVariableByName('circularProgressBarDoted/scoreLabel/fontFamily', modes);
92
92
  const scoreLineHeight = toNumber(getVariableByName('circularProgressBarDoted/scoreLabel/lineHeight', modes), 56);
93
93
  const scoreFontWeight = toFontWeight(getVariableByName('circularProgressBarDoted/scoreLabel/fontWeight', modes), '900');
94
- const tierColor = getVariableByName('circularProgressBarDoted/tierLabel/color', modes) || '#080d1a';
94
+ const tierColor = getVariableByName('circularProgressBarDoted/tierLabel/color', modes);
95
95
  const tierFontSize = toNumber(getVariableByName('Typography/Size/Body/M', modes), 16);
96
96
  const tierFontWeight = toFontWeight(getVariableByName('Typography/Font Weight/Body High', modes), '700');
97
- const iconColor = getVariableByName('circularProgressBarDoted/icon/color', modes) || '#303338';
97
+ const iconColor = getVariableByName('circularProgressBarDoted/icon/color', modes);
98
98
  const iconSize = toNumber(getVariableByName('circularProgressBarDoted/icon/size', modes), 24);
99
99
  const dots = useMemo(() => Array.from({
100
100
  length: resolvedDotCount
@@ -33,9 +33,9 @@ function resolveCircularRatingTokens(modes) {
33
33
  const padding = toNumber(getVariableByName('circularRating/padding', modes), 10);
34
34
  const footerGap = toNumber(getVariableByName('circularRating/footer/gap', modes), 4);
35
35
  const footerHeight = toNumber(getVariableByName('circularRating/footer/height', modes), 16);
36
- const footerTextColor = getVariableByName('circularRating/footer/text/color', modes) || '#0d0d0f';
36
+ const footerTextColor = getVariableByName('circularRating/footer/text/color', modes);
37
37
  const footerTextFontSize = toNumber(getVariableByName('circularRating/footer/text/fontSize', modes), 12);
38
- const footerTextFontFamily = getVariableByName('circularRating/footer/text/fontFamily', modes) || 'JioType Var';
38
+ const footerTextFontFamily = getVariableByName('circularRating/footer/text/fontFamily', modes);
39
39
  const footerTextLineHeight = toNumber(getVariableByName('circularRating/footer/text/lineHeight', modes), 16);
40
40
  const footerTextFontWeight = toFontWeight(getVariableByName('circularRating/footer/text/fontWeight', modes), '400');
41
41
  return {
@@ -65,7 +65,7 @@ function resolveCircularRatingTokens(modes) {
65
65
  lineHeight: footerTextLineHeight,
66
66
  textAlign: 'center'
67
67
  },
68
- footerIconColor: getVariableByName('circularRating/footer/icon/color', modes) || '#1a1c1f',
68
+ footerIconColor: getVariableByName('circularRating/footer/icon/color', modes),
69
69
  footerIconSize: toNumber(getVariableByName('circularRating/footer/icon/size', modes), 16)
70
70
  };
71
71
  }
@@ -141,24 +141,24 @@ function CompareTable({
141
141
  const addIconColor = ADD_BUTTON_ICON_COLOR;
142
142
 
143
143
  // --- table header tokens --------------------------------------------------
144
- const headerBg = getVariableByName('comparetableHeader/background/color', modes) ?? '#f5f5f5';
145
- const headerLabelColor = getVariableByName('comparetableHeader/label/color', modes) ?? '#000000';
146
- const headerFontSize = getVariableByName('comparetableHeader/label/fontsize', modes) ?? 14;
147
- const headerFontFamily = getVariableByName('comparetableHeader/label/fontfamily', modes) ?? 'JioType Var';
148
- const headerFontWeight = getVariableByName('comparetableHeader/label/fontweight', modes) ?? 600;
149
- const headerPaddingH = getVariableByName('comparetableHeader/padding/horizontal', modes) ?? 12;
150
- const headerPaddingV = getVariableByName('comparetableHeader/padding/vertical', modes) ?? 12;
144
+ const headerBg = getVariableByName('tableHeader/background/color', modes) ?? '#f5f5f5';
145
+ const headerLabelColor = getVariableByName('tableHeader/label/color', modes) ?? '#000000';
146
+ const headerFontSize = getVariableByName('tableHeader/label/fontsize', modes) ?? 14;
147
+ const headerFontFamily = getVariableByName('tableHeader/label/fontfamily', modes) ?? 'JioType Var';
148
+ const headerFontWeight = getVariableByName('tableHeader/label/fontweight', modes) ?? 600;
149
+ const headerPaddingH = getVariableByName('tableHeader/padding/horizontal', modes) ?? 12;
150
+ const headerPaddingV = getVariableByName('tableHeader/padding/vertical', modes) ?? 12;
151
151
 
152
152
  // --- table cell tokens ----------------------------------------------------
153
- const cellBorderColor = getVariableByName('compareTableCell/border/color', modes) ?? '#eeeeee';
154
- const cellBorderSize = getVariableByName('compareTableCell/border/size', modes) ?? 1;
155
- const cellBg = getVariableByName('compareTableCell/background/color', modes) ?? '#ffffff';
156
- const cellLabelColor = getVariableByName('compareTableCell/label/color', modes) ?? '#000000';
157
- const cellFontSize = getVariableByName('compareTableCell/label/fontsize', modes) ?? 14;
158
- const cellFontFamily = getVariableByName('compareTableCell/label/fontfamily', modes) ?? 'JioType Var';
159
- const cellFontWeight = getVariableByName('compareTableCell/label/fontweight', modes) ?? 400;
160
- const cellPaddingH = getVariableByName('compareTableCell/padding/horizontal', modes) ?? 12;
161
- const cellPaddingV = getVariableByName('compareTableCell/padding/vertical', modes) ?? 12;
153
+ const cellBorderColor = getVariableByName('tableCell/border/color', modes) ?? '#eeeeee';
154
+ const cellBorderSize = getVariableByName('tableCell/border/size', modes) ?? 1;
155
+ const cellBg = getVariableByName('tableCell/background/color', modes) ?? '#ffffff';
156
+ const cellLabelColor = getVariableByName('tableCell/label/color', modes) ?? '#000000';
157
+ const cellFontSize = getVariableByName('tableCell/label/fontsize', modes) ?? 14;
158
+ const cellFontFamily = getVariableByName('tableCell/label/fontfamily', modes) ?? 'JioType Var';
159
+ const cellFontWeight = getVariableByName('tableCell/label/fontweight', modes) ?? 400;
160
+ const cellPaddingH = getVariableByName('tableCell/padding/horizontal', modes) ?? 12;
161
+ const cellPaddingV = getVariableByName('tableCell/padding/vertical', modes) ?? 12;
162
162
  const columnCount = columns.length;
163
163
  const showAddCard = onAddColumn != null && columnCount < maxColumns;
164
164
  /** Grid columns shared by the selection-card row and every table row. */
@@ -26,24 +26,24 @@ function DebitCard({
26
26
  ...globalModes,
27
27
  ...propModes
28
28
  };
29
- const background = getVariableByName('debitCard/background', modes) || '#cea15a';
30
- const radius = getVariableByName('debitCard/radius', modes) || 16;
31
- const width = getVariableByName('debitCard/width', modes) || 328;
32
- const height = getVariableByName('debitCard/height', modes) || 224;
33
- const paddingBottom = getVariableByName('debitCard/padding/bottom', modes) || 24;
34
- const headerPaddingH = getVariableByName('debitCard/header/padding/horizontal', modes) || 20;
35
- const headerPaddingTop = getVariableByName('debitCard/header/padding/top', modes) || 16;
36
- const headerPaddingBottom = getVariableByName('debitCard/header/padding/bottom', modes) || 28;
37
- const cardArtHeight = getVariableByName('debitCard/cardArt/height', modes) || 50;
38
- const cardArtRadius = getVariableByName('debitCard/cardArt/radius', modes) || 4;
39
- const footerGap = getVariableByName('debitCard/footer/gap', modes) || 16;
40
- const footerPaddingH = getVariableByName('debitCard/footer/padding/horizontal', modes) || 20;
41
- const footerPaddingTop = getVariableByName('debitCard/footer/padding/top', modes) || 16;
42
- const foreground = getVariableByName('debitCard/foreground', modes) || '#141414';
43
- const fontSize = getVariableByName('debitCard/fontSize', modes) || 14;
44
- const fontFamily = getVariableByName('debitCard/fontFamily', modes) || 'JioType Var';
45
- const lineHeight = getVariableByName('debitCard/lineHeight', modes) || 17;
46
- const fontWeightRaw = getVariableByName('debitCard/fontWeight', modes) || 500;
29
+ const background = getVariableByName('debitCard/background', modes);
30
+ const radius = getVariableByName('debitCard/radius', modes);
31
+ const width = getVariableByName('debitCard/width', modes);
32
+ const height = getVariableByName('debitCard/height', modes);
33
+ const paddingBottom = getVariableByName('debitCard/padding/bottom', modes);
34
+ const headerPaddingH = getVariableByName('debitCard/header/padding/horizontal', modes);
35
+ const headerPaddingTop = getVariableByName('debitCard/header/padding/top', modes);
36
+ const headerPaddingBottom = getVariableByName('debitCard/header/padding/bottom', modes);
37
+ const cardArtHeight = getVariableByName('debitCard/cardArt/height', modes);
38
+ const cardArtRadius = getVariableByName('debitCard/cardArt/radius', modes);
39
+ const footerGap = getVariableByName('debitCard/footer/gap', modes);
40
+ const footerPaddingH = getVariableByName('debitCard/footer/padding/horizontal', modes);
41
+ const footerPaddingTop = getVariableByName('debitCard/footer/padding/top', modes);
42
+ const foreground = getVariableByName('debitCard/foreground', modes);
43
+ const fontSize = getVariableByName('debitCard/fontSize', modes);
44
+ const fontFamily = getVariableByName('debitCard/fontFamily', modes);
45
+ const lineHeight = getVariableByName('debitCard/lineHeight', modes);
46
+ const fontWeightRaw = getVariableByName('debitCard/fontWeight', modes);
47
47
  const fontWeight = typeof fontWeightRaw === 'number' ? fontWeightRaw.toString() : fontWeightRaw;
48
48
  const containerStyle = {
49
49
  backgroundColor: background,
@@ -44,11 +44,11 @@ function Disclaimer({
44
44
  ...propModes
45
45
  };
46
46
  // Resolve typography and color from Figma variables
47
- const color = getVariableByName('disclaimer/color', modes) || '#24262b';
48
- const fontSize = getVariableByName('disclaimer/label/fontSize', modes) || 10;
49
- const lineHeight = getVariableByName('disclaimer/label/lineHeight', modes) || 12;
50
- const fontFamily = getVariableByName('disclaimer/label/fontFamily', modes) || 'System';
51
- const fontWeightRaw = getVariableByName('disclaimer/label/fontWeight', modes) || 500;
47
+ const color = getVariableByName('disclaimer/color', modes);
48
+ const fontSize = getVariableByName('disclaimer/label/fontSize', modes);
49
+ const lineHeight = getVariableByName('disclaimer/label/lineHeight', modes);
50
+ const fontFamily = getVariableByName('disclaimer/label/fontFamily', modes);
51
+ const fontWeightRaw = getVariableByName('disclaimer/label/fontWeight', modes);
52
52
  const fontWeight = typeof fontWeightRaw === 'number' ? fontWeightRaw.toString() : fontWeightRaw;
53
53
  const baseTextStyle = {
54
54
  color,
@@ -164,17 +164,17 @@ function DonutChart({
164
164
  const hasChildrenSlot = customCenterChildren.length > 0;
165
165
  const showValueLabel = !hasChildrenSlot && shouldRenderText(value);
166
166
  const showLabel = !hasChildrenSlot && shouldRenderText(label);
167
- const valueColor = getVariableByName('donutChart/value/color', modes) ?? getVariableByName('value/fg', modes) ?? '#000000';
168
- const valueFontFamily = getVariableByName('donutChart/value/fontFamily', modes) ?? getVariableByName('value/fontFamily', modes) ?? 'JioType Var';
169
- const valueFontSize = toNumber(getVariableByName('donutChart/value/fontSize', modes) ?? getVariableByName('value/fontSize', modes), 29);
170
- const valueLineHeight = toNumber(getVariableByName('donutChart/value/lineHeight', modes) ?? getVariableByName('value/lineHeight', modes), 29);
171
- const valueFontWeight = toFontWeight(getVariableByName('donutChart/value/fontWeight', modes) ?? getVariableByName('value/fontWeight', modes), '900');
172
- const labelColor = getVariableByName('donutChart/label/color', modes) ?? getVariableByName('label/fg', modes) ?? '#000000';
173
- const labelFontFamily = getVariableByName('donutChart/label/fontFamily', modes) ?? getVariableByName('label/fontFamily', modes) ?? 'JioType Var';
174
- const labelFontSize = toNumber(getVariableByName('donutChart/label/fontSize', modes) ?? getVariableByName('label/fontSize', modes), 12);
175
- const labelLineHeight = toNumber(getVariableByName('donutChart/label/lineHeight', modes) ?? getVariableByName('label/lineHeight', modes), 15.6);
176
- const labelFontWeight = toFontWeight(getVariableByName('donutChart/label/fontWeight', modes) ?? getVariableByName('label/fontWeight', modes), '400');
177
- const textWrapGap = toNumber(getVariableByName('donutChart/textWrap/gap', modes) ?? getVariableByName('textWrap/gap', modes), 7);
167
+ const valueColor = getVariableByName('value/fg', modes);
168
+ const valueFontFamily = getVariableByName('value/fontFamily', modes);
169
+ const valueFontSize = toNumber(getVariableByName('value/fontSize', modes), 29);
170
+ const valueLineHeight = toNumber(getVariableByName('value/lineHeight', modes), 29);
171
+ const valueFontWeight = toFontWeight(getVariableByName('value/fontWeight', modes), '900');
172
+ const labelColor = getVariableByName('label/fg', modes);
173
+ const labelFontFamily = getVariableByName('label/fontFamily', modes);
174
+ const labelFontSize = toNumber(getVariableByName('label/fontSize', modes), 12);
175
+ const labelLineHeight = toNumber(getVariableByName('label/lineHeight', modes), 15.6);
176
+ const labelFontWeight = toFontWeight(getVariableByName('label/fontWeight', modes), '400');
177
+ const textWrapGap = toNumber(getVariableByName('textWrap/gap', modes), 7);
178
178
  const containerStyle = {
179
179
  alignItems: 'center',
180
180
  height: size,
@@ -6,6 +6,7 @@ import { Gesture, GestureDetector, ScrollView } from 'react-native-gesture-handl
6
6
  import Animated, { runOnJS, useAnimatedProps, useAnimatedScrollHandler, useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';
7
7
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver';
8
8
  import { EMPTY_MODES } from '../../utils/react-utils';
9
+ import { boxShadow } from '../../utils/shadow';
9
10
  import Overlay from '../Overlay/Overlay';
10
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
12
  const AnimatedScrollView = Animated.createAnimatedComponent(ScrollView);
@@ -303,28 +304,29 @@ function DrawerInner({
303
304
  });
304
305
 
305
306
  // Design Tokens
306
- const backgroundColor = getVariableByName('drawer/background', modes) || '#f5f5f5';
307
- const radius = getVariableByName('drawer/radius/top', modes) || 12;
307
+ const backgroundColor = getVariableByName('drawer/background', modes);
308
+ const radius = getVariableByName('drawer/radius/top', modes);
308
309
 
309
310
  // Handle
310
- const handleColor = getVariableByName('drawer/handlebar/background', modes) || '#e0e0e3';
311
- const handleWidth = getVariableByName('drawer/handlebar/width', modes) || 42;
312
- const handleHeight = getVariableByName('drawer/handlebar/height', modes) || 6;
313
- const handleRadius = getVariableByName('drawer/handlebar/radius', modes) || 999;
311
+ const handleColor = getVariableByName('drawer/handlebar/background', modes);
312
+ const handleWidth = getVariableByName('drawer/handlebar/width', modes);
313
+ const handleHeight = getVariableByName('drawer/handlebar/height', modes);
314
+ const handleRadius = getVariableByName('drawer/handlebar/radius', modes);
314
315
 
315
316
  // Padding
316
- const paddingLeft = getVariableByName('drawer/padding/left', modes) || 8;
317
- const paddingRight = getVariableByName('drawer/padding/right', modes) || 8;
318
- const paddingBottom = getVariableByName('drawer/padding/bottom', modes) || 10;
319
- const drawerGap = getVariableByName('drawer/gap', modes) || 8;
320
- // Note: drawer/padding/top is 0 in tokens, but we keep the 8px visual spacing for the handle as requested.
317
+ const paddingLeft = getVariableByName('drawer/padding/left', modes);
318
+ const paddingRight = getVariableByName('drawer/padding/right', modes);
319
+ const paddingBottom = getVariableByName('drawer/padding/bottom', modes);
320
+ const drawerGap = getVariableByName('drawer/gap', modes);
321
321
 
322
322
  // Title
323
- const titleColor = getVariableByName('drawer/title/color', modes) || '#0d0d0f';
324
- const titleSize = getVariableByName('drawer/title/fontSize', modes) || 14;
325
- const titleWeight = getVariableByName('drawer/title/fontWeight', modes) || '700';
326
- const titleLineHeight = getVariableByName('drawer/title/lineHeight', modes) || 17;
327
- const titlePaddingBottom = getVariableByName('drawer/titleWrap/padding/bottom', modes) || 8;
323
+ const titleColor = getVariableByName('drawer/title/color', modes);
324
+ const titleSize = getVariableByName('drawer/title/fontSize', modes);
325
+ const titleWeight = getVariableByName('drawer/title/fontWeight', modes);
326
+ const titleLineHeight = getVariableByName('drawer/title/lineHeight', modes);
327
+ const titleWrapPaddingTop = getVariableByName('drawer/titleWrap/padding/top', modes);
328
+ const titleWrapPaddingBottom = getVariableByName('drawer/titleWrap/padding/bottom', modes);
329
+ const titleWrapPaddingHorizontal = getVariableByName('drawer/titleWrap/padding/horizontal', modes);
328
330
 
329
331
  // Drop shadow — Figma layers two shadows (primary + secondary) sharing
330
332
  // the same offsetY/blur but with their own offsetX and color.
@@ -335,26 +337,12 @@ function DrawerInner({
335
337
  const shadowSecondaryOffsetX = getVariableByName('drawer/shadow/secondary/offsetX', modes) ?? 0;
336
338
  const shadowSecondaryColor = getVariableByName('drawer/shadow/secondary/color', modes) ?? 'rgba(12, 13, 16, 0.12)';
337
339
 
338
- // Cross-platform shadow style. Web supports stacking two shadows via
339
- // boxShadow. iOS only supports a single native shadow per view, so we
340
- // apply the more prominent (primary) one. Android uses elevation.
341
- const shadowStyle = Platform.select({
342
- web: {
343
- boxShadow: `${shadowSecondaryOffsetX}px ${shadowPrimaryOffsetY}px ${shadowPrimaryBlur}px 0px ${shadowSecondaryColor}, ` + `${shadowPrimaryOffsetX}px ${shadowPrimaryOffsetY}px ${shadowPrimaryBlur}px 0px ${shadowPrimaryColor}`
344
- },
345
- ios: {
346
- shadowColor: shadowPrimaryColor,
347
- shadowOffset: {
348
- width: shadowPrimaryOffsetX,
349
- height: shadowPrimaryOffsetY
350
- },
351
- shadowOpacity: 1,
352
- shadowRadius: shadowPrimaryBlur / 2
353
- },
354
- android: {
355
- elevation: 16
356
- },
357
- default: {}
340
+ // Cross-platform shadow via the unified helper. Figma layers two shadows
341
+ // (secondary + primary) which stack natively as a single multi-layer
342
+ // boxShadow on web + RN 0.76+. On older RN the helper falls back to the most
343
+ // prominent layer (iOS shadow*) / a fixed elevation (Android).
344
+ const shadowStyle = boxShadow(`${shadowSecondaryOffsetX}px ${shadowPrimaryOffsetY}px ${shadowPrimaryBlur}px 0px ${shadowSecondaryColor}, ` + `${shadowPrimaryOffsetX}px ${shadowPrimaryOffsetY}px ${shadowPrimaryBlur}px 0px ${shadowPrimaryColor}`, {
345
+ elevation: 16
358
346
  });
359
347
  const defaultAccessibilityLabel = accessibilityLabel || title || 'Drawer';
360
348
  return (
@@ -399,30 +387,42 @@ function DrawerInner({
399
387
  borderTopRightRadius: radius,
400
388
  paddingLeft,
401
389
  paddingRight,
402
- paddingBottom,
403
- rowGap: drawerGap
390
+ paddingBottom
404
391
  }],
405
- children: [/*#__PURE__*/_jsx(View, {
406
- style: [styles.handleArea, !title && !header && {
407
- paddingBottom: 0
408
- }],
409
- children: /*#__PURE__*/_jsx(View, {
410
- style: [{
411
- backgroundColor: handleColor,
412
- width: handleWidth,
413
- height: handleHeight,
414
- borderRadius: handleRadius
415
- }]
416
- })
417
- }), header, title && /*#__PURE__*/_jsx(Text, {
418
- style: [{
419
- color: titleColor,
420
- fontSize: titleSize,
421
- fontWeight: titleWeight,
422
- lineHeight: titleLineHeight,
423
- marginBottom: titlePaddingBottom
424
- }],
425
- children: title
392
+ children: [/*#__PURE__*/_jsxs(View, {
393
+ style: {
394
+ marginBottom: drawerGap
395
+ },
396
+ children: [/*#__PURE__*/_jsx(View, {
397
+ style: [styles.handleArea, !title && !header && {
398
+ marginBottom: drawerGap
399
+ }],
400
+ children: /*#__PURE__*/_jsx(View, {
401
+ style: [{
402
+ backgroundColor: handleColor,
403
+ width: handleWidth,
404
+ height: handleHeight,
405
+ borderRadius: handleRadius
406
+ }]
407
+ })
408
+ }), header, title && /*#__PURE__*/_jsx(View, {
409
+ style: {
410
+ paddingTop: titleWrapPaddingTop,
411
+ paddingBottom: titleWrapPaddingBottom,
412
+ paddingHorizontal: titleWrapPaddingHorizontal,
413
+ alignItems: 'center'
414
+ },
415
+ children: /*#__PURE__*/_jsx(Text, {
416
+ style: [{
417
+ color: titleColor,
418
+ fontSize: titleSize,
419
+ fontWeight: titleWeight,
420
+ lineHeight: titleLineHeight,
421
+ textAlign: 'center'
422
+ }],
423
+ children: title
424
+ })
425
+ })]
426
426
  }), /*#__PURE__*/_jsx(AnimatedScrollView, {
427
427
  ref: scrollRef,
428
428
  style: [styles.content, contentStyle],
@@ -474,7 +474,7 @@ const styles = StyleSheet.create({
474
474
  },
475
475
  handleArea: {
476
476
  alignItems: 'center',
477
- paddingVertical: 8,
477
+ marginTop: 8,
478
478
  width: '100%'
479
479
  },
480
480
  content: {