jfs-components 0.1.12 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (592) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/lib/commonjs/components/ActionFooter/ActionFooter.js +7 -24
  3. package/lib/commonjs/components/ActionTile/ActionTile.js +10 -10
  4. package/lib/commonjs/components/AmountInput/AmountInput.js +3 -3
  5. package/lib/commonjs/components/AreaLineChart/AreaLineChart.js +2 -2
  6. package/lib/commonjs/components/Attached/Attached.js +1 -1
  7. package/lib/commonjs/components/Avatar/Avatar.js +10 -10
  8. package/lib/commonjs/components/AvatarGroup/AvatarGroup.js +50 -29
  9. package/lib/commonjs/components/Badge/Badge.js +12 -12
  10. package/lib/commonjs/components/BenefitCard/BenefitCard.js +95 -21
  11. package/lib/commonjs/components/BottomNav/BottomNav.js +2 -2
  12. package/lib/commonjs/components/BottomNavItem/BottomNavItem.js +3 -3
  13. package/lib/commonjs/components/Button/Button.js +31 -19
  14. package/lib/commonjs/components/Card/Card.js +20 -20
  15. package/lib/commonjs/components/CardAdvisory/CardAdvisory.js +6 -6
  16. package/lib/commonjs/components/CardCTA/CardCTA.js +21 -21
  17. package/lib/commonjs/components/CardFeedback/CardFeedback.js +18 -18
  18. package/lib/commonjs/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
  19. package/lib/commonjs/components/CardInsight/CardInsight.js +1 -2
  20. package/lib/commonjs/components/Carousel/Carousel.js +18 -12
  21. package/lib/commonjs/components/CarouselCardAccounts/CarouselCardAccounts.js +75 -0
  22. package/lib/commonjs/components/Checkbox/Checkbox.js +6 -13
  23. package/lib/commonjs/components/ChipGroup/ChipGroup.js +1 -1
  24. package/lib/commonjs/components/ChipSelect/ChipSelect.js +11 -11
  25. package/lib/commonjs/components/CircularProgressBar/CircularProgressBar.js +5 -5
  26. package/lib/commonjs/components/CircularProgressBarDoted/CircularProgressBarDoted.js +8 -8
  27. package/lib/commonjs/components/CircularRating/CircularRating.js +3 -3
  28. package/lib/commonjs/components/CompareTable/CompareTable.js +16 -16
  29. package/lib/commonjs/components/DebitCard/DebitCard.js +18 -18
  30. package/lib/commonjs/components/Disclaimer/Disclaimer.js +5 -5
  31. package/lib/commonjs/components/DonutChart/DonutChart.js +11 -11
  32. package/lib/commonjs/components/Drawer/Drawer.js +60 -60
  33. package/lib/commonjs/components/Dropdown/Dropdown.js +22 -23
  34. package/lib/commonjs/components/DropdownInput/DropdownInput.js +10 -10
  35. package/lib/commonjs/components/EmptyState/EmptyState.js +14 -14
  36. package/lib/commonjs/components/FilterBar/FilterBar.js +2 -2
  37. package/lib/commonjs/components/Form/Form.js +3 -3
  38. package/lib/commonjs/components/FormField/FormField.js +6 -6
  39. package/lib/commonjs/components/FullscreenModal/FullscreenModal.js +24 -24
  40. package/lib/commonjs/components/Gauge/Gauge.js +8 -8
  41. package/lib/commonjs/components/HoldingsCard/HoldingsCard.js +10 -10
  42. package/lib/commonjs/components/Icon/Icon.js +6 -6
  43. package/lib/commonjs/components/IconCapsule/IconCapsule.js +7 -7
  44. package/lib/commonjs/components/InputSearch/InputSearch.js +9 -9
  45. package/lib/commonjs/components/InstitutionBadge/InstitutionBadge.js +3 -3
  46. package/lib/commonjs/components/ListGroup/ListGroup.js +8 -8
  47. package/lib/commonjs/components/ListItem/ListItem.js +10 -10
  48. package/lib/commonjs/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
  49. package/lib/commonjs/components/LottiePlayer/LottiePlayer.js +2 -2
  50. package/lib/commonjs/components/LottiePlayer/LottiePlayer.web.js +2 -2
  51. package/lib/commonjs/components/MediaCard/MediaCard.js +21 -21
  52. package/lib/commonjs/components/MessageField/MessageField.js +8 -8
  53. package/lib/commonjs/components/MoneyValue/MoneyValue.js +7 -7
  54. package/lib/commonjs/components/NavArrow/NavArrow.js +8 -8
  55. package/lib/commonjs/components/NoteInput/NoteInput.js +12 -12
  56. package/lib/commonjs/components/Nudge/Nudge.js +20 -20
  57. package/lib/commonjs/components/OTP/OTP.js +15 -15
  58. package/lib/commonjs/components/PageHero/PageHero.js +16 -16
  59. package/lib/commonjs/components/PaymentFeedback/PaymentFeedback.js +23 -23
  60. package/lib/commonjs/components/Popup/Popup.js +1 -1
  61. package/lib/commonjs/components/ProductMerchandisingCard/ProductMerchandisingCard.js +64 -60
  62. package/lib/commonjs/components/ProgressBadge/ProgressBadge.js +5 -5
  63. package/lib/commonjs/components/Radio/Radio.js +8 -8
  64. package/lib/commonjs/components/RechargeCard/RechargeCard.js +31 -31
  65. package/lib/commonjs/components/SavingsGoalSummary/SavingsGoalSummary.js +59 -12
  66. package/lib/commonjs/components/ScrollArea/ScrollArea.js +126 -0
  67. package/lib/commonjs/components/Section/Section.js +24 -24
  68. package/lib/commonjs/components/StatusHero/StatusHero.js +14 -14
  69. package/lib/commonjs/components/Stepper/Step.js +16 -16
  70. package/lib/commonjs/components/Stepper/StepLabel.js +16 -16
  71. package/lib/commonjs/components/Stepper/Stepper.js +3 -3
  72. package/lib/commonjs/components/SuggestiveSearch/SuggestiveSearch.js +10 -10
  73. package/lib/commonjs/components/SupportText/SupportText.js +6 -6
  74. package/lib/commonjs/components/SupportText/SupportTextIcon.js +2 -2
  75. package/lib/commonjs/components/Text/Text.js +14 -2
  76. package/lib/commonjs/components/TextInput/TextInput.js +14 -14
  77. package/lib/commonjs/components/TextSegment/TextSegment.js +14 -2
  78. package/lib/commonjs/components/ThreadHero/ThreadHero.js +17 -17
  79. package/lib/commonjs/components/Title/Title.js +38 -16
  80. package/lib/commonjs/components/Toast/Toast.js +15 -15
  81. package/lib/commonjs/components/Toggle/Toggle.js +3 -11
  82. package/lib/commonjs/components/Tooltip/Tooltip.js +12 -12
  83. package/lib/commonjs/components/TransactionBubble/TransactionBubble.js +13 -13
  84. package/lib/commonjs/components/TransactionDetails/TransactionDetails.js +10 -10
  85. package/lib/commonjs/components/TransactionStatus/TransactionStatus.js +9 -9
  86. package/lib/commonjs/components/UpiHandle/UpiHandle.js +15 -15
  87. package/lib/commonjs/components/index.js +14 -0
  88. package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
  89. package/lib/commonjs/design-tokens/figma-modes.generated.js +50 -42
  90. package/lib/commonjs/icons/components/Icon4g.js +19 -0
  91. package/lib/commonjs/icons/components/Icon4gltedata.js +19 -0
  92. package/lib/commonjs/icons/components/Icon5g.js +19 -0
  93. package/lib/commonjs/icons/components/Icon5gdoubleplus.js +19 -0
  94. package/lib/commonjs/icons/components/Icon5gplus.js +19 -0
  95. package/lib/commonjs/icons/components/IconAdblocker.js +19 -0
  96. package/lib/commonjs/icons/components/IconAdblockplus.js +19 -0
  97. package/lib/commonjs/icons/components/IconAnalytics.js +19 -0
  98. package/lib/commonjs/icons/components/IconAnalyticsdata.js +19 -0
  99. package/lib/commonjs/icons/components/IconAnalyticspiechart.js +19 -0
  100. package/lib/commonjs/icons/components/IconAnalyticspiecharttree.js +19 -0
  101. package/lib/commonjs/icons/components/IconAnalyticspiecharttwo.js +19 -0
  102. package/lib/commonjs/icons/components/IconCompoundinterest.js +19 -0
  103. package/lib/commonjs/icons/components/IconConsumptionaccounted.js +19 -0
  104. package/lib/commonjs/icons/components/IconConsumptionaverage.js +19 -0
  105. package/lib/commonjs/icons/components/IconConsumptionhigh.js +19 -0
  106. package/lib/commonjs/icons/components/IconConsumptionlow.js +19 -0
  107. package/lib/commonjs/icons/components/IconConsumptionunaccounted.js +19 -0
  108. package/lib/commonjs/icons/components/IconCsvdoc.js +19 -0
  109. package/lib/commonjs/icons/components/IconDatabase.js +19 -0
  110. package/lib/commonjs/icons/components/IconDigitalecosystem.js +19 -0
  111. package/lib/commonjs/icons/components/IconDigitalselfservice.js +19 -0
  112. package/lib/commonjs/icons/components/IconDistribution.js +19 -0
  113. package/lib/commonjs/icons/components/IconDocument.js +19 -0
  114. package/lib/commonjs/icons/components/IconDocumentdoc.js +19 -0
  115. package/lib/commonjs/icons/components/IconDocumentjpg.js +19 -0
  116. package/lib/commonjs/icons/components/IconDocumentodt.js +19 -0
  117. package/lib/commonjs/icons/components/IconDocumentpdf.js +19 -0
  118. package/lib/commonjs/icons/components/IconDocumentpng.js +19 -0
  119. package/lib/commonjs/icons/components/IconDocumentraw.js +19 -0
  120. package/lib/commonjs/icons/components/IconDocumentrtf.js +19 -0
  121. package/lib/commonjs/icons/components/IconDocumentsettings.js +19 -0
  122. package/lib/commonjs/icons/components/IconDocumenttif.js +19 -0
  123. package/lib/commonjs/icons/components/IconDocumenttxt.js +19 -0
  124. package/lib/commonjs/icons/components/IconDocumentunknown.js +19 -0
  125. package/lib/commonjs/icons/components/IconDocumentxls.js +19 -0
  126. package/lib/commonjs/icons/components/IconDocumentxlsx.js +19 -0
  127. package/lib/commonjs/icons/components/IconFilerequest.js +19 -0
  128. package/lib/commonjs/icons/components/IconFilesend.js +19 -0
  129. package/lib/commonjs/icons/components/IconFileshare.js +19 -0
  130. package/lib/commonjs/icons/components/IconFindinpage.js +19 -0
  131. package/lib/commonjs/icons/components/IconFolder.js +19 -0
  132. package/lib/commonjs/icons/components/IconFolderbookmarks.js +19 -0
  133. package/lib/commonjs/icons/components/IconFolderfavorites.js +19 -0
  134. package/lib/commonjs/icons/components/IconFolderlocked.js +19 -0
  135. package/lib/commonjs/icons/components/IconFoldermovefiles.js +19 -0
  136. package/lib/commonjs/icons/components/IconFolderpublic.js +19 -0
  137. package/lib/commonjs/icons/components/IconFolderrated.js +19 -0
  138. package/lib/commonjs/icons/components/IconFolderrequest.js +19 -0
  139. package/lib/commonjs/icons/components/IconForm.js +19 -0
  140. package/lib/commonjs/icons/components/IconFormadd.js +19 -0
  141. package/lib/commonjs/icons/components/IconForms.js +19 -0
  142. package/lib/commonjs/icons/components/IconGraphincreasing.js +19 -0
  143. package/lib/commonjs/icons/components/IconGraphlow.js +19 -0
  144. package/lib/commonjs/icons/components/IconGraphtable.js +19 -0
  145. package/lib/commonjs/icons/components/IconHealthreport.js +19 -0
  146. package/lib/commonjs/icons/components/IconHubmode.js +19 -0
  147. package/lib/commonjs/icons/components/IconInfrastructure.js +19 -0
  148. package/lib/commonjs/icons/components/IconInterestlow.js +19 -0
  149. package/lib/commonjs/icons/components/IconLte.js +19 -0
  150. package/lib/commonjs/icons/components/IconNetworkfuture.js +19 -0
  151. package/lib/commonjs/icons/components/IconPagesettings.js +19 -0
  152. package/lib/commonjs/icons/components/IconPptxdoc.js +19 -0
  153. package/lib/commonjs/icons/components/IconPreferrednumber.js +19 -0
  154. package/lib/commonjs/icons/components/IconPremiumnumber.js +19 -0
  155. package/lib/commonjs/icons/components/IconProjection.js +19 -0
  156. package/lib/commonjs/icons/components/IconRequest.js +19 -0
  157. package/lib/commonjs/icons/components/IconRoutestraffic.js +19 -0
  158. package/lib/commonjs/icons/components/IconTechnology.js +19 -0
  159. package/lib/commonjs/icons/components/IconVolte.js +19 -0
  160. package/lib/commonjs/icons/components/IconVonr.js +19 -0
  161. package/lib/commonjs/icons/components/IconVowifi.js +19 -0
  162. package/lib/commonjs/icons/components/IconVpndata.js +19 -0
  163. package/lib/commonjs/icons/components/index.js +803 -0
  164. package/lib/commonjs/icons/registry.js +2 -2
  165. package/lib/commonjs/utils/GlassFill/GlassFill.js +69 -73
  166. package/lib/commonjs/utils/index.js +25 -0
  167. package/lib/commonjs/utils/react-utils.js +62 -0
  168. package/lib/commonjs/utils/shadow.js +200 -0
  169. package/lib/module/components/ActionFooter/ActionFooter.js +7 -24
  170. package/lib/module/components/ActionTile/ActionTile.js +10 -10
  171. package/lib/module/components/AmountInput/AmountInput.js +3 -3
  172. package/lib/module/components/AreaLineChart/AreaLineChart.js +2 -2
  173. package/lib/module/components/Attached/Attached.js +1 -1
  174. package/lib/module/components/Avatar/Avatar.js +10 -10
  175. package/lib/module/components/AvatarGroup/AvatarGroup.js +52 -30
  176. package/lib/module/components/Badge/Badge.js +12 -12
  177. package/lib/module/components/BenefitCard/BenefitCard.js +95 -21
  178. package/lib/module/components/BottomNav/BottomNav.js +2 -2
  179. package/lib/module/components/BottomNavItem/BottomNavItem.js +3 -3
  180. package/lib/module/components/Button/Button.js +32 -20
  181. package/lib/module/components/Card/Card.js +20 -20
  182. package/lib/module/components/CardAdvisory/CardAdvisory.js +6 -6
  183. package/lib/module/components/CardCTA/CardCTA.js +21 -21
  184. package/lib/module/components/CardFeedback/CardFeedback.js +18 -18
  185. package/lib/module/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
  186. package/lib/module/components/CardInsight/CardInsight.js +1 -2
  187. package/lib/module/components/Carousel/Carousel.js +18 -12
  188. package/lib/module/components/CarouselCardAccounts/CarouselCardAccounts.js +71 -0
  189. package/lib/module/components/Checkbox/Checkbox.js +2 -9
  190. package/lib/module/components/ChipGroup/ChipGroup.js +1 -1
  191. package/lib/module/components/ChipSelect/ChipSelect.js +11 -11
  192. package/lib/module/components/CircularProgressBar/CircularProgressBar.js +5 -5
  193. package/lib/module/components/CircularProgressBarDoted/CircularProgressBarDoted.js +8 -8
  194. package/lib/module/components/CircularRating/CircularRating.js +3 -3
  195. package/lib/module/components/CompareTable/CompareTable.js +16 -16
  196. package/lib/module/components/DebitCard/DebitCard.js +18 -18
  197. package/lib/module/components/Disclaimer/Disclaimer.js +5 -5
  198. package/lib/module/components/DonutChart/DonutChart.js +11 -11
  199. package/lib/module/components/Drawer/Drawer.js +60 -60
  200. package/lib/module/components/Dropdown/Dropdown.js +22 -23
  201. package/lib/module/components/DropdownInput/DropdownInput.js +10 -10
  202. package/lib/module/components/EmptyState/EmptyState.js +14 -14
  203. package/lib/module/components/FilterBar/FilterBar.js +2 -2
  204. package/lib/module/components/Form/Form.js +3 -3
  205. package/lib/module/components/FormField/FormField.js +6 -6
  206. package/lib/module/components/FullscreenModal/FullscreenModal.js +24 -24
  207. package/lib/module/components/Gauge/Gauge.js +8 -8
  208. package/lib/module/components/HoldingsCard/HoldingsCard.js +10 -10
  209. package/lib/module/components/Icon/Icon.js +6 -6
  210. package/lib/module/components/IconCapsule/IconCapsule.js +7 -7
  211. package/lib/module/components/InputSearch/InputSearch.js +9 -9
  212. package/lib/module/components/InstitutionBadge/InstitutionBadge.js +3 -3
  213. package/lib/module/components/ListGroup/ListGroup.js +8 -8
  214. package/lib/module/components/ListItem/ListItem.js +10 -10
  215. package/lib/module/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
  216. package/lib/module/components/LottiePlayer/LottiePlayer.js +2 -2
  217. package/lib/module/components/LottiePlayer/LottiePlayer.web.js +2 -2
  218. package/lib/module/components/MediaCard/MediaCard.js +21 -21
  219. package/lib/module/components/MessageField/MessageField.js +8 -8
  220. package/lib/module/components/MoneyValue/MoneyValue.js +7 -7
  221. package/lib/module/components/NavArrow/NavArrow.js +8 -8
  222. package/lib/module/components/NoteInput/NoteInput.js +12 -12
  223. package/lib/module/components/Nudge/Nudge.js +20 -20
  224. package/lib/module/components/OTP/OTP.js +15 -15
  225. package/lib/module/components/PageHero/PageHero.js +16 -16
  226. package/lib/module/components/PaymentFeedback/PaymentFeedback.js +23 -23
  227. package/lib/module/components/Popup/Popup.js +1 -1
  228. package/lib/module/components/ProductMerchandisingCard/ProductMerchandisingCard.js +66 -62
  229. package/lib/module/components/ProgressBadge/ProgressBadge.js +5 -5
  230. package/lib/module/components/Radio/Radio.js +9 -9
  231. package/lib/module/components/RechargeCard/RechargeCard.js +31 -31
  232. package/lib/module/components/SavingsGoalSummary/SavingsGoalSummary.js +60 -13
  233. package/lib/module/components/ScrollArea/ScrollArea.js +121 -0
  234. package/lib/module/components/Section/Section.js +24 -24
  235. package/lib/module/components/StatusHero/StatusHero.js +14 -14
  236. package/lib/module/components/Stepper/Step.js +16 -16
  237. package/lib/module/components/Stepper/StepLabel.js +16 -16
  238. package/lib/module/components/Stepper/Stepper.js +3 -3
  239. package/lib/module/components/SuggestiveSearch/SuggestiveSearch.js +10 -10
  240. package/lib/module/components/SupportText/SupportText.js +6 -6
  241. package/lib/module/components/SupportText/SupportTextIcon.js +2 -2
  242. package/lib/module/components/Text/Text.js +15 -3
  243. package/lib/module/components/TextInput/TextInput.js +14 -14
  244. package/lib/module/components/TextSegment/TextSegment.js +15 -3
  245. package/lib/module/components/ThreadHero/ThreadHero.js +17 -17
  246. package/lib/module/components/Title/Title.js +39 -17
  247. package/lib/module/components/Toast/Toast.js +15 -15
  248. package/lib/module/components/Toggle/Toggle.js +4 -12
  249. package/lib/module/components/Tooltip/Tooltip.js +12 -12
  250. package/lib/module/components/TransactionBubble/TransactionBubble.js +13 -13
  251. package/lib/module/components/TransactionDetails/TransactionDetails.js +10 -10
  252. package/lib/module/components/TransactionStatus/TransactionStatus.js +9 -9
  253. package/lib/module/components/UpiHandle/UpiHandle.js +15 -15
  254. package/lib/module/components/index.js +2 -0
  255. package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
  256. package/lib/module/design-tokens/figma-modes.generated.js +50 -42
  257. package/lib/module/icons/components/Icon4g.js +12 -0
  258. package/lib/module/icons/components/Icon4gltedata.js +12 -0
  259. package/lib/module/icons/components/Icon5g.js +12 -0
  260. package/lib/module/icons/components/Icon5gdoubleplus.js +12 -0
  261. package/lib/module/icons/components/Icon5gplus.js +12 -0
  262. package/lib/module/icons/components/IconAdblocker.js +12 -0
  263. package/lib/module/icons/components/IconAdblockplus.js +12 -0
  264. package/lib/module/icons/components/IconAnalytics.js +12 -0
  265. package/lib/module/icons/components/IconAnalyticsdata.js +12 -0
  266. package/lib/module/icons/components/IconAnalyticspiechart.js +12 -0
  267. package/lib/module/icons/components/IconAnalyticspiecharttree.js +12 -0
  268. package/lib/module/icons/components/IconAnalyticspiecharttwo.js +12 -0
  269. package/lib/module/icons/components/IconCompoundinterest.js +12 -0
  270. package/lib/module/icons/components/IconConsumptionaccounted.js +12 -0
  271. package/lib/module/icons/components/IconConsumptionaverage.js +12 -0
  272. package/lib/module/icons/components/IconConsumptionhigh.js +12 -0
  273. package/lib/module/icons/components/IconConsumptionlow.js +12 -0
  274. package/lib/module/icons/components/IconConsumptionunaccounted.js +12 -0
  275. package/lib/module/icons/components/IconCsvdoc.js +12 -0
  276. package/lib/module/icons/components/IconDatabase.js +12 -0
  277. package/lib/module/icons/components/IconDigitalecosystem.js +12 -0
  278. package/lib/module/icons/components/IconDigitalselfservice.js +12 -0
  279. package/lib/module/icons/components/IconDistribution.js +12 -0
  280. package/lib/module/icons/components/IconDocument.js +12 -0
  281. package/lib/module/icons/components/IconDocumentdoc.js +12 -0
  282. package/lib/module/icons/components/IconDocumentjpg.js +12 -0
  283. package/lib/module/icons/components/IconDocumentodt.js +12 -0
  284. package/lib/module/icons/components/IconDocumentpdf.js +12 -0
  285. package/lib/module/icons/components/IconDocumentpng.js +12 -0
  286. package/lib/module/icons/components/IconDocumentraw.js +12 -0
  287. package/lib/module/icons/components/IconDocumentrtf.js +12 -0
  288. package/lib/module/icons/components/IconDocumentsettings.js +12 -0
  289. package/lib/module/icons/components/IconDocumenttif.js +12 -0
  290. package/lib/module/icons/components/IconDocumenttxt.js +12 -0
  291. package/lib/module/icons/components/IconDocumentunknown.js +12 -0
  292. package/lib/module/icons/components/IconDocumentxls.js +12 -0
  293. package/lib/module/icons/components/IconDocumentxlsx.js +12 -0
  294. package/lib/module/icons/components/IconFilerequest.js +12 -0
  295. package/lib/module/icons/components/IconFilesend.js +12 -0
  296. package/lib/module/icons/components/IconFileshare.js +12 -0
  297. package/lib/module/icons/components/IconFindinpage.js +12 -0
  298. package/lib/module/icons/components/IconFolder.js +12 -0
  299. package/lib/module/icons/components/IconFolderbookmarks.js +12 -0
  300. package/lib/module/icons/components/IconFolderfavorites.js +12 -0
  301. package/lib/module/icons/components/IconFolderlocked.js +12 -0
  302. package/lib/module/icons/components/IconFoldermovefiles.js +12 -0
  303. package/lib/module/icons/components/IconFolderpublic.js +12 -0
  304. package/lib/module/icons/components/IconFolderrated.js +12 -0
  305. package/lib/module/icons/components/IconFolderrequest.js +12 -0
  306. package/lib/module/icons/components/IconForm.js +12 -0
  307. package/lib/module/icons/components/IconFormadd.js +12 -0
  308. package/lib/module/icons/components/IconForms.js +12 -0
  309. package/lib/module/icons/components/IconGraphincreasing.js +12 -0
  310. package/lib/module/icons/components/IconGraphlow.js +12 -0
  311. package/lib/module/icons/components/IconGraphtable.js +12 -0
  312. package/lib/module/icons/components/IconHealthreport.js +12 -0
  313. package/lib/module/icons/components/IconHubmode.js +12 -0
  314. package/lib/module/icons/components/IconInfrastructure.js +12 -0
  315. package/lib/module/icons/components/IconInterestlow.js +12 -0
  316. package/lib/module/icons/components/IconLte.js +12 -0
  317. package/lib/module/icons/components/IconNetworkfuture.js +12 -0
  318. package/lib/module/icons/components/IconPagesettings.js +12 -0
  319. package/lib/module/icons/components/IconPptxdoc.js +12 -0
  320. package/lib/module/icons/components/IconPreferrednumber.js +12 -0
  321. package/lib/module/icons/components/IconPremiumnumber.js +12 -0
  322. package/lib/module/icons/components/IconProjection.js +12 -0
  323. package/lib/module/icons/components/IconRequest.js +12 -0
  324. package/lib/module/icons/components/IconRoutestraffic.js +12 -0
  325. package/lib/module/icons/components/IconTechnology.js +12 -0
  326. package/lib/module/icons/components/IconVolte.js +12 -0
  327. package/lib/module/icons/components/IconVonr.js +12 -0
  328. package/lib/module/icons/components/IconVowifi.js +12 -0
  329. package/lib/module/icons/components/IconVpndata.js +12 -0
  330. package/lib/module/icons/components/index.js +73 -0
  331. package/lib/module/icons/registry.js +2 -2
  332. package/lib/module/utils/GlassFill/GlassFill.js +69 -72
  333. package/lib/module/utils/index.js +2 -1
  334. package/lib/module/utils/react-utils.js +61 -0
  335. package/lib/module/utils/shadow.js +194 -0
  336. package/lib/typescript/src/components/BenefitCard/BenefitCard.d.ts +33 -4
  337. package/lib/typescript/src/components/Carousel/Carousel.d.ts +11 -1
  338. package/lib/typescript/src/components/CarouselCardAccounts/CarouselCardAccounts.d.ts +57 -0
  339. package/lib/typescript/src/components/SavingsGoalSummary/SavingsGoalSummary.d.ts +11 -1
  340. package/lib/typescript/src/components/ScrollArea/ScrollArea.d.ts +77 -0
  341. package/lib/typescript/src/components/Text/Text.d.ts +12 -3
  342. package/lib/typescript/src/components/TextSegment/TextSegment.d.ts +12 -3
  343. package/lib/typescript/src/components/Title/Title.d.ts +12 -2
  344. package/lib/typescript/src/components/index.d.ts +2 -0
  345. package/lib/typescript/src/design-tokens/figma-modes.generated.d.ts +23 -15
  346. package/lib/typescript/src/icons/components/Icon4g.d.ts +3 -0
  347. package/lib/typescript/src/icons/components/Icon4gltedata.d.ts +3 -0
  348. package/lib/typescript/src/icons/components/Icon5g.d.ts +3 -0
  349. package/lib/typescript/src/icons/components/Icon5gdoubleplus.d.ts +3 -0
  350. package/lib/typescript/src/icons/components/Icon5gplus.d.ts +3 -0
  351. package/lib/typescript/src/icons/components/IconAdblocker.d.ts +3 -0
  352. package/lib/typescript/src/icons/components/IconAdblockplus.d.ts +3 -0
  353. package/lib/typescript/src/icons/components/IconAnalytics.d.ts +3 -0
  354. package/lib/typescript/src/icons/components/IconAnalyticsdata.d.ts +3 -0
  355. package/lib/typescript/src/icons/components/IconAnalyticspiechart.d.ts +3 -0
  356. package/lib/typescript/src/icons/components/IconAnalyticspiecharttree.d.ts +3 -0
  357. package/lib/typescript/src/icons/components/IconAnalyticspiecharttwo.d.ts +3 -0
  358. package/lib/typescript/src/icons/components/IconCompoundinterest.d.ts +3 -0
  359. package/lib/typescript/src/icons/components/IconConsumptionaccounted.d.ts +3 -0
  360. package/lib/typescript/src/icons/components/IconConsumptionaverage.d.ts +3 -0
  361. package/lib/typescript/src/icons/components/IconConsumptionhigh.d.ts +3 -0
  362. package/lib/typescript/src/icons/components/IconConsumptionlow.d.ts +3 -0
  363. package/lib/typescript/src/icons/components/IconConsumptionunaccounted.d.ts +3 -0
  364. package/lib/typescript/src/icons/components/IconCsvdoc.d.ts +3 -0
  365. package/lib/typescript/src/icons/components/IconDatabase.d.ts +3 -0
  366. package/lib/typescript/src/icons/components/IconDigitalecosystem.d.ts +3 -0
  367. package/lib/typescript/src/icons/components/IconDigitalselfservice.d.ts +3 -0
  368. package/lib/typescript/src/icons/components/IconDistribution.d.ts +3 -0
  369. package/lib/typescript/src/icons/components/IconDocument.d.ts +3 -0
  370. package/lib/typescript/src/icons/components/IconDocumentdoc.d.ts +3 -0
  371. package/lib/typescript/src/icons/components/IconDocumentjpg.d.ts +3 -0
  372. package/lib/typescript/src/icons/components/IconDocumentodt.d.ts +3 -0
  373. package/lib/typescript/src/icons/components/IconDocumentpdf.d.ts +3 -0
  374. package/lib/typescript/src/icons/components/IconDocumentpng.d.ts +3 -0
  375. package/lib/typescript/src/icons/components/IconDocumentraw.d.ts +3 -0
  376. package/lib/typescript/src/icons/components/IconDocumentrtf.d.ts +3 -0
  377. package/lib/typescript/src/icons/components/IconDocumentsettings.d.ts +3 -0
  378. package/lib/typescript/src/icons/components/IconDocumenttif.d.ts +3 -0
  379. package/lib/typescript/src/icons/components/IconDocumenttxt.d.ts +3 -0
  380. package/lib/typescript/src/icons/components/IconDocumentunknown.d.ts +3 -0
  381. package/lib/typescript/src/icons/components/IconDocumentxls.d.ts +3 -0
  382. package/lib/typescript/src/icons/components/IconDocumentxlsx.d.ts +3 -0
  383. package/lib/typescript/src/icons/components/IconFilerequest.d.ts +3 -0
  384. package/lib/typescript/src/icons/components/IconFilesend.d.ts +3 -0
  385. package/lib/typescript/src/icons/components/IconFileshare.d.ts +3 -0
  386. package/lib/typescript/src/icons/components/IconFindinpage.d.ts +3 -0
  387. package/lib/typescript/src/icons/components/IconFolder.d.ts +3 -0
  388. package/lib/typescript/src/icons/components/IconFolderbookmarks.d.ts +3 -0
  389. package/lib/typescript/src/icons/components/IconFolderfavorites.d.ts +3 -0
  390. package/lib/typescript/src/icons/components/IconFolderlocked.d.ts +3 -0
  391. package/lib/typescript/src/icons/components/IconFoldermovefiles.d.ts +3 -0
  392. package/lib/typescript/src/icons/components/IconFolderpublic.d.ts +3 -0
  393. package/lib/typescript/src/icons/components/IconFolderrated.d.ts +3 -0
  394. package/lib/typescript/src/icons/components/IconFolderrequest.d.ts +3 -0
  395. package/lib/typescript/src/icons/components/IconForm.d.ts +3 -0
  396. package/lib/typescript/src/icons/components/IconFormadd.d.ts +3 -0
  397. package/lib/typescript/src/icons/components/IconForms.d.ts +3 -0
  398. package/lib/typescript/src/icons/components/IconGraphincreasing.d.ts +3 -0
  399. package/lib/typescript/src/icons/components/IconGraphlow.d.ts +3 -0
  400. package/lib/typescript/src/icons/components/IconGraphtable.d.ts +3 -0
  401. package/lib/typescript/src/icons/components/IconHealthreport.d.ts +3 -0
  402. package/lib/typescript/src/icons/components/IconHubmode.d.ts +3 -0
  403. package/lib/typescript/src/icons/components/IconInfrastructure.d.ts +3 -0
  404. package/lib/typescript/src/icons/components/IconInterestlow.d.ts +3 -0
  405. package/lib/typescript/src/icons/components/IconLte.d.ts +3 -0
  406. package/lib/typescript/src/icons/components/IconNetworkfuture.d.ts +3 -0
  407. package/lib/typescript/src/icons/components/IconPagesettings.d.ts +3 -0
  408. package/lib/typescript/src/icons/components/IconPptxdoc.d.ts +3 -0
  409. package/lib/typescript/src/icons/components/IconPreferrednumber.d.ts +3 -0
  410. package/lib/typescript/src/icons/components/IconPremiumnumber.d.ts +3 -0
  411. package/lib/typescript/src/icons/components/IconProjection.d.ts +3 -0
  412. package/lib/typescript/src/icons/components/IconRequest.d.ts +3 -0
  413. package/lib/typescript/src/icons/components/IconRoutestraffic.d.ts +3 -0
  414. package/lib/typescript/src/icons/components/IconTechnology.d.ts +3 -0
  415. package/lib/typescript/src/icons/components/IconVolte.d.ts +3 -0
  416. package/lib/typescript/src/icons/components/IconVonr.d.ts +3 -0
  417. package/lib/typescript/src/icons/components/IconVowifi.d.ts +3 -0
  418. package/lib/typescript/src/icons/components/IconVpndata.d.ts +3 -0
  419. package/lib/typescript/src/icons/components/index.d.ts +73 -0
  420. package/lib/typescript/src/icons/registry.d.ts +1 -1
  421. package/lib/typescript/src/utils/GlassFill/GlassFill.d.ts +11 -4
  422. package/lib/typescript/src/utils/index.d.ts +2 -0
  423. package/lib/typescript/src/utils/react-utils.d.ts +40 -1
  424. package/lib/typescript/src/utils/shadow.d.ts +72 -0
  425. package/package.json +2 -2
  426. package/src/components/ActionFooter/ActionFooter.tsx +8 -26
  427. package/src/components/ActionTile/ActionTile.tsx +10 -10
  428. package/src/components/AmountInput/AmountInput.tsx +3 -3
  429. package/src/components/AreaLineChart/AreaLineChart.tsx +2 -2
  430. package/src/components/Attached/Attached.tsx +1 -1
  431. package/src/components/Avatar/Avatar.tsx +10 -10
  432. package/src/components/AvatarGroup/AvatarGroup.tsx +53 -27
  433. package/src/components/Badge/Badge.tsx +12 -13
  434. package/src/components/BenefitCard/BenefitCard.tsx +120 -27
  435. package/src/components/BottomNav/BottomNav.tsx +2 -2
  436. package/src/components/BottomNavItem/BottomNavItem.tsx +3 -3
  437. package/src/components/Button/Button.tsx +30 -20
  438. package/src/components/Card/Card.tsx +20 -20
  439. package/src/components/CardAdvisory/CardAdvisory.tsx +6 -6
  440. package/src/components/CardCTA/CardCTA.tsx +21 -21
  441. package/src/components/CardFeedback/CardFeedback.tsx +18 -18
  442. package/src/components/CardFinancialCondition/CardFinancialCondition.tsx +7 -10
  443. package/src/components/CardInsight/CardInsight.tsx +1 -3
  444. package/src/components/Carousel/Carousel.tsx +29 -12
  445. package/src/components/CarouselCardAccounts/CarouselCardAccounts.tsx +113 -0
  446. package/src/components/Checkbox/Checkbox.tsx +2 -8
  447. package/src/components/ChipGroup/ChipGroup.tsx +1 -1
  448. package/src/components/ChipSelect/ChipSelect.tsx +11 -11
  449. package/src/components/CircularProgressBar/CircularProgressBar.tsx +5 -5
  450. package/src/components/CircularProgressBarDoted/CircularProgressBarDoted.tsx +8 -8
  451. package/src/components/CircularRating/CircularRating.tsx +3 -3
  452. package/src/components/CompareTable/CompareTable.tsx +16 -16
  453. package/src/components/DebitCard/DebitCard.tsx +22 -22
  454. package/src/components/Disclaimer/Disclaimer.tsx +5 -5
  455. package/src/components/DonutChart/DonutChart.tsx +11 -45
  456. package/src/components/Drawer/Drawer.tsx +80 -71
  457. package/src/components/Dropdown/Dropdown.tsx +23 -28
  458. package/src/components/DropdownInput/DropdownInput.tsx +10 -17
  459. package/src/components/EmptyState/EmptyState.tsx +14 -14
  460. package/src/components/FilterBar/FilterBar.tsx +2 -2
  461. package/src/components/Form/Form.tsx +3 -3
  462. package/src/components/FormField/FormField.tsx +6 -11
  463. package/src/components/FullscreenModal/FullscreenModal.tsx +24 -24
  464. package/src/components/Gauge/Gauge.tsx +8 -8
  465. package/src/components/HoldingsCard/HoldingsCard.tsx +10 -10
  466. package/src/components/Icon/Icon.tsx +6 -6
  467. package/src/components/IconCapsule/IconCapsule.tsx +7 -7
  468. package/src/components/InputSearch/InputSearch.tsx +9 -9
  469. package/src/components/InstitutionBadge/InstitutionBadge.tsx +3 -6
  470. package/src/components/ListGroup/ListGroup.tsx +8 -8
  471. package/src/components/ListItem/ListItem.tsx +10 -10
  472. package/src/components/LottieIntroBlock/LottieIntroBlock.tsx +13 -16
  473. package/src/components/LottiePlayer/LottiePlayer.tsx +2 -2
  474. package/src/components/LottiePlayer/LottiePlayer.web.tsx +2 -2
  475. package/src/components/MediaCard/MediaCard.tsx +21 -21
  476. package/src/components/MessageField/MessageField.tsx +8 -16
  477. package/src/components/MoneyValue/MoneyValue.tsx +7 -7
  478. package/src/components/NavArrow/NavArrow.tsx +8 -8
  479. package/src/components/NoteInput/NoteInput.tsx +12 -12
  480. package/src/components/Nudge/Nudge.tsx +20 -20
  481. package/src/components/OTP/OTP.tsx +16 -16
  482. package/src/components/PageHero/PageHero.tsx +16 -16
  483. package/src/components/PaymentFeedback/PaymentFeedback.tsx +27 -27
  484. package/src/components/Popup/Popup.tsx +1 -1
  485. package/src/components/ProductMerchandisingCard/ProductMerchandisingCard.tsx +76 -47
  486. package/src/components/ProgressBadge/ProgressBadge.tsx +5 -5
  487. package/src/components/Radio/Radio.tsx +8 -9
  488. package/src/components/RechargeCard/RechargeCard.tsx +31 -31
  489. package/src/components/SavingsGoalSummary/SavingsGoalSummary.tsx +105 -13
  490. package/src/components/ScrollArea/ScrollArea.tsx +200 -0
  491. package/src/components/Section/Section.tsx +26 -26
  492. package/src/components/StatusHero/StatusHero.tsx +14 -14
  493. package/src/components/Stepper/Step.tsx +16 -18
  494. package/src/components/Stepper/StepLabel.tsx +16 -27
  495. package/src/components/Stepper/Stepper.tsx +3 -4
  496. package/src/components/SuggestiveSearch/SuggestiveSearch.tsx +10 -20
  497. package/src/components/SupportText/SupportText.tsx +6 -6
  498. package/src/components/SupportText/SupportTextIcon.tsx +2 -2
  499. package/src/components/Text/Text.tsx +23 -5
  500. package/src/components/TextInput/TextInput.tsx +14 -14
  501. package/src/components/TextSegment/TextSegment.tsx +22 -4
  502. package/src/components/ThreadHero/ThreadHero.tsx +17 -17
  503. package/src/components/Title/Title.tsx +44 -18
  504. package/src/components/Toast/Toast.tsx +15 -15
  505. package/src/components/Toggle/Toggle.tsx +5 -10
  506. package/src/components/Tooltip/Tooltip.tsx +12 -12
  507. package/src/components/TransactionBubble/TransactionBubble.tsx +15 -15
  508. package/src/components/TransactionDetails/TransactionDetails.tsx +10 -10
  509. package/src/components/TransactionStatus/TransactionStatus.tsx +9 -9
  510. package/src/components/UpiHandle/UpiHandle.tsx +15 -15
  511. package/src/components/index.ts +2 -0
  512. package/src/design-tokens/Coin Variables-variables-full.json +1 -1
  513. package/src/design-tokens/figma-modes.generated.ts +50 -42
  514. package/src/icons/components/Icon4g.tsx +11 -0
  515. package/src/icons/components/Icon4gltedata.tsx +11 -0
  516. package/src/icons/components/Icon5g.tsx +11 -0
  517. package/src/icons/components/Icon5gdoubleplus.tsx +11 -0
  518. package/src/icons/components/Icon5gplus.tsx +11 -0
  519. package/src/icons/components/IconAdblocker.tsx +11 -0
  520. package/src/icons/components/IconAdblockplus.tsx +11 -0
  521. package/src/icons/components/IconAnalytics.tsx +11 -0
  522. package/src/icons/components/IconAnalyticsdata.tsx +11 -0
  523. package/src/icons/components/IconAnalyticspiechart.tsx +11 -0
  524. package/src/icons/components/IconAnalyticspiecharttree.tsx +11 -0
  525. package/src/icons/components/IconAnalyticspiecharttwo.tsx +11 -0
  526. package/src/icons/components/IconCompoundinterest.tsx +11 -0
  527. package/src/icons/components/IconConsumptionaccounted.tsx +11 -0
  528. package/src/icons/components/IconConsumptionaverage.tsx +11 -0
  529. package/src/icons/components/IconConsumptionhigh.tsx +11 -0
  530. package/src/icons/components/IconConsumptionlow.tsx +11 -0
  531. package/src/icons/components/IconConsumptionunaccounted.tsx +11 -0
  532. package/src/icons/components/IconCsvdoc.tsx +11 -0
  533. package/src/icons/components/IconDatabase.tsx +11 -0
  534. package/src/icons/components/IconDigitalecosystem.tsx +11 -0
  535. package/src/icons/components/IconDigitalselfservice.tsx +11 -0
  536. package/src/icons/components/IconDistribution.tsx +11 -0
  537. package/src/icons/components/IconDocument.tsx +11 -0
  538. package/src/icons/components/IconDocumentdoc.tsx +11 -0
  539. package/src/icons/components/IconDocumentjpg.tsx +11 -0
  540. package/src/icons/components/IconDocumentodt.tsx +11 -0
  541. package/src/icons/components/IconDocumentpdf.tsx +11 -0
  542. package/src/icons/components/IconDocumentpng.tsx +11 -0
  543. package/src/icons/components/IconDocumentraw.tsx +11 -0
  544. package/src/icons/components/IconDocumentrtf.tsx +11 -0
  545. package/src/icons/components/IconDocumentsettings.tsx +11 -0
  546. package/src/icons/components/IconDocumenttif.tsx +11 -0
  547. package/src/icons/components/IconDocumenttxt.tsx +11 -0
  548. package/src/icons/components/IconDocumentunknown.tsx +11 -0
  549. package/src/icons/components/IconDocumentxls.tsx +11 -0
  550. package/src/icons/components/IconDocumentxlsx.tsx +11 -0
  551. package/src/icons/components/IconFilerequest.tsx +11 -0
  552. package/src/icons/components/IconFilesend.tsx +11 -0
  553. package/src/icons/components/IconFileshare.tsx +11 -0
  554. package/src/icons/components/IconFindinpage.tsx +11 -0
  555. package/src/icons/components/IconFolder.tsx +11 -0
  556. package/src/icons/components/IconFolderbookmarks.tsx +11 -0
  557. package/src/icons/components/IconFolderfavorites.tsx +11 -0
  558. package/src/icons/components/IconFolderlocked.tsx +11 -0
  559. package/src/icons/components/IconFoldermovefiles.tsx +11 -0
  560. package/src/icons/components/IconFolderpublic.tsx +11 -0
  561. package/src/icons/components/IconFolderrated.tsx +11 -0
  562. package/src/icons/components/IconFolderrequest.tsx +11 -0
  563. package/src/icons/components/IconForm.tsx +11 -0
  564. package/src/icons/components/IconFormadd.tsx +11 -0
  565. package/src/icons/components/IconForms.tsx +11 -0
  566. package/src/icons/components/IconGraphincreasing.tsx +11 -0
  567. package/src/icons/components/IconGraphlow.tsx +11 -0
  568. package/src/icons/components/IconGraphtable.tsx +11 -0
  569. package/src/icons/components/IconHealthreport.tsx +11 -0
  570. package/src/icons/components/IconHubmode.tsx +11 -0
  571. package/src/icons/components/IconInfrastructure.tsx +11 -0
  572. package/src/icons/components/IconInterestlow.tsx +11 -0
  573. package/src/icons/components/IconLte.tsx +11 -0
  574. package/src/icons/components/IconNetworkfuture.tsx +11 -0
  575. package/src/icons/components/IconPagesettings.tsx +11 -0
  576. package/src/icons/components/IconPptxdoc.tsx +11 -0
  577. package/src/icons/components/IconPreferrednumber.tsx +11 -0
  578. package/src/icons/components/IconPremiumnumber.tsx +11 -0
  579. package/src/icons/components/IconProjection.tsx +11 -0
  580. package/src/icons/components/IconRequest.tsx +11 -0
  581. package/src/icons/components/IconRoutestraffic.tsx +11 -0
  582. package/src/icons/components/IconTechnology.tsx +11 -0
  583. package/src/icons/components/IconVolte.tsx +11 -0
  584. package/src/icons/components/IconVonr.tsx +11 -0
  585. package/src/icons/components/IconVowifi.tsx +11 -0
  586. package/src/icons/components/IconVpndata.tsx +11 -0
  587. package/src/icons/components/index.ts +73 -0
  588. package/src/icons/registry.ts +293 -1
  589. package/src/utils/GlassFill/GlassFill.tsx +59 -56
  590. package/src/utils/index.ts +2 -0
  591. package/src/utils/react-utils.ts +72 -1
  592. package/src/utils/shadow.ts +219 -0
@@ -126,18 +126,18 @@ function CircularProgressBar({
126
126
 
127
127
  const trackColor = getStrokeColor(
128
128
  trackStyle,
129
- getVariableByName('circularProgressBar/track/color', trackModes) as string || '#ebebed'
129
+ getVariableByName('circularProgressBar/track/color', trackModes)
130
130
  )
131
131
  const progressColor = getStrokeColor(
132
132
  progressStyle,
133
- getVariableByName('circularProgressBar/progress/color', modes) as string || '#25ab21'
133
+ getVariableByName('circularProgressBar/progress/color', modes)
134
134
  )
135
- const iconColor = getVariableByName('circularProgressBar/icon/color', modes) as string || '#666666'
135
+ const iconColor = getVariableByName('circularProgressBar/icon/color', modes)
136
136
  const iconSize = toNumber(getVariableByName('circularProgressBar/icon/size', modes), 24)
137
137
 
138
- const foreground = getVariableByName('circularProgressBar/foreground', modes) as string || '#0d0d0f'
138
+ const foreground = getVariableByName('circularProgressBar/foreground', modes)
139
139
  const fontSize = toNumber(getVariableByName('circularProgressBar/value/fontSize', modes), 18)
140
- const fontFamily = getVariableByName('circularProgressBar/fontFamily', modes) as string || 'JioType Var'
140
+ const fontFamily = getVariableByName('circularProgressBar/fontFamily', modes)
141
141
  const lineHeight = toNumber(getVariableByName('circularProgressBar/value/lineHeight', modes), 21)
142
142
  const fontWeight = toFontWeight(getVariableByName('circularProgressBar/value/fontWeight', modes), '700')
143
143
 
@@ -147,11 +147,11 @@ function CircularProgressBarDoted({
147
147
 
148
148
  const trackDotColor = getBackgroundColor(
149
149
  trackDotStyle,
150
- getVariableByName('circularProgressBarDoted/trackDot/bg', modes) as string || '#ebebed'
150
+ getVariableByName('circularProgressBarDoted/trackDot/bg', modes)
151
151
  )
152
152
  const progressDotColor = getBackgroundColor(
153
153
  progressDotStyle,
154
- getVariableByName('circularProgressBarDoted/progressDot/bg', modes) as string || '#25ab21'
154
+ getVariableByName('circularProgressBarDoted/progressDot/bg', modes)
155
155
  )
156
156
 
157
157
  const contentGap = toNumber(getVariableByName('circularProgressBarDoted/gap', modes), 12)
@@ -160,21 +160,21 @@ function CircularProgressBarDoted({
160
160
  const scoreTrendGap = toNumber(getVariableByName('circularProgressBarDoted/scoreTrend/gap', modes), 2)
161
161
  const scoreTrendHeight = toNumber(getVariableByName('circularProgressBarDoted/scoreTrend/height', modes), 24)
162
162
 
163
- const typographyFontFamily = getVariableByName('Typography/Font Family', modes) as string || 'JioType Var'
164
- const labelColor = getVariableByName('circularProgressBarDoted/label/color', modes) as string || '#080d1a'
163
+ const typographyFontFamily = getVariableByName('Typography/Font Family', modes)
164
+ const labelColor = getVariableByName('circularProgressBarDoted/label/color', modes)
165
165
  const labelFontSize = toNumber(getVariableByName('Typography/Size/Body/XS', modes), 12)
166
166
  const labelFontWeight = toFontWeight(getVariableByName('Typography/Font Weight/Body Low (Regular)', modes), '400')
167
167
 
168
- const scoreColor = getVariableByName('circularProgressBarDoted/scoreLabel/color', modes) as string || '#080d1a'
168
+ const scoreColor = getVariableByName('circularProgressBarDoted/scoreLabel/color', modes)
169
169
  const scoreFontSize = toNumber(getVariableByName('circularProgressBarDoted/scoreLabel/fontSize', modes), 56)
170
- const scoreFontFamily = getVariableByName('circularProgressBarDoted/scoreLabel/fontFamily', modes) as string || 'JioType Var'
170
+ const scoreFontFamily = getVariableByName('circularProgressBarDoted/scoreLabel/fontFamily', modes)
171
171
  const scoreLineHeight = toNumber(getVariableByName('circularProgressBarDoted/scoreLabel/lineHeight', modes), 56)
172
172
  const scoreFontWeight = toFontWeight(getVariableByName('circularProgressBarDoted/scoreLabel/fontWeight', modes), '900')
173
173
 
174
- const tierColor = getVariableByName('circularProgressBarDoted/tierLabel/color', modes) as string || '#080d1a'
174
+ const tierColor = getVariableByName('circularProgressBarDoted/tierLabel/color', modes)
175
175
  const tierFontSize = toNumber(getVariableByName('Typography/Size/Body/M', modes), 16)
176
176
  const tierFontWeight = toFontWeight(getVariableByName('Typography/Font Weight/Body High', modes), '700')
177
- const iconColor = getVariableByName('circularProgressBarDoted/icon/color', modes) as string || '#303338'
177
+ const iconColor = getVariableByName('circularProgressBarDoted/icon/color', modes)
178
178
  const iconSize = toNumber(getVariableByName('circularProgressBarDoted/icon/size', modes), 24)
179
179
 
180
180
  const dots = useMemo(
@@ -105,9 +105,9 @@ function resolveCircularRatingTokens(modes: Modes): CircularRatingTokens {
105
105
 
106
106
  const footerGap = toNumber(getVariableByName('circularRating/footer/gap', modes), 4)
107
107
  const footerHeight = toNumber(getVariableByName('circularRating/footer/height', modes), 16)
108
- const footerTextColor = getVariableByName('circularRating/footer/text/color', modes) || '#0d0d0f'
108
+ const footerTextColor = getVariableByName('circularRating/footer/text/color', modes)
109
109
  const footerTextFontSize = toNumber(getVariableByName('circularRating/footer/text/fontSize', modes), 12)
110
- const footerTextFontFamily = getVariableByName('circularRating/footer/text/fontFamily', modes) || 'JioType Var'
110
+ const footerTextFontFamily = getVariableByName('circularRating/footer/text/fontFamily', modes)
111
111
  const footerTextLineHeight = toNumber(getVariableByName('circularRating/footer/text/lineHeight', modes), 16)
112
112
  const footerTextFontWeight = toFontWeight(
113
113
  getVariableByName('circularRating/footer/text/fontWeight', modes),
@@ -141,7 +141,7 @@ function resolveCircularRatingTokens(modes: Modes): CircularRatingTokens {
141
141
  lineHeight: footerTextLineHeight,
142
142
  textAlign: 'center',
143
143
  },
144
- footerIconColor: (getVariableByName('circularRating/footer/icon/color', modes) || '#1a1c1f') as string,
144
+ footerIconColor: (getVariableByName('circularRating/footer/icon/color', modes)) as string,
145
145
  footerIconSize: toNumber(getVariableByName('circularRating/footer/icon/size', modes), 16),
146
146
  }
147
147
  }
@@ -215,24 +215,24 @@ function CompareTable({
215
215
  const addIconColor = ADD_BUTTON_ICON_COLOR
216
216
 
217
217
  // --- table header tokens --------------------------------------------------
218
- const headerBg = (getVariableByName('comparetableHeader/background/color', modes) as string) ?? '#f5f5f5'
219
- const headerLabelColor = (getVariableByName('comparetableHeader/label/color', modes) as string) ?? '#000000'
220
- const headerFontSize = (getVariableByName('comparetableHeader/label/fontsize', modes) as number) ?? 14
221
- const headerFontFamily = (getVariableByName('comparetableHeader/label/fontfamily', modes) as string) ?? 'JioType Var'
222
- const headerFontWeight = (getVariableByName('comparetableHeader/label/fontweight', modes) as number | string) ?? 600
223
- const headerPaddingH = (getVariableByName('comparetableHeader/padding/horizontal', modes) as number) ?? 12
224
- const headerPaddingV = (getVariableByName('comparetableHeader/padding/vertical', modes) as number) ?? 12
218
+ const headerBg = (getVariableByName('tableHeader/background/color', modes) as string) ?? '#f5f5f5'
219
+ const headerLabelColor = (getVariableByName('tableHeader/label/color', modes) as string) ?? '#000000'
220
+ const headerFontSize = (getVariableByName('tableHeader/label/fontsize', modes) as number) ?? 14
221
+ const headerFontFamily = (getVariableByName('tableHeader/label/fontfamily', modes) as string) ?? 'JioType Var'
222
+ const headerFontWeight = (getVariableByName('tableHeader/label/fontweight', modes) as number | string) ?? 600
223
+ const headerPaddingH = (getVariableByName('tableHeader/padding/horizontal', modes) as number) ?? 12
224
+ const headerPaddingV = (getVariableByName('tableHeader/padding/vertical', modes) as number) ?? 12
225
225
 
226
226
  // --- table cell tokens ----------------------------------------------------
227
- const cellBorderColor = (getVariableByName('compareTableCell/border/color', modes) as string) ?? '#eeeeee'
228
- const cellBorderSize = (getVariableByName('compareTableCell/border/size', modes) as number) ?? 1
229
- const cellBg = (getVariableByName('compareTableCell/background/color', modes) as string) ?? '#ffffff'
230
- const cellLabelColor = (getVariableByName('compareTableCell/label/color', modes) as string) ?? '#000000'
231
- const cellFontSize = (getVariableByName('compareTableCell/label/fontsize', modes) as number) ?? 14
232
- const cellFontFamily = (getVariableByName('compareTableCell/label/fontfamily', modes) as string) ?? 'JioType Var'
233
- const cellFontWeight = (getVariableByName('compareTableCell/label/fontweight', modes) as number | string) ?? 400
234
- const cellPaddingH = (getVariableByName('compareTableCell/padding/horizontal', modes) as number) ?? 12
235
- const cellPaddingV = (getVariableByName('compareTableCell/padding/vertical', modes) as number) ?? 12
227
+ const cellBorderColor = (getVariableByName('tableCell/border/color', modes) as string) ?? '#eeeeee'
228
+ const cellBorderSize = (getVariableByName('tableCell/border/size', modes) as number) ?? 1
229
+ const cellBg = (getVariableByName('tableCell/background/color', modes) as string) ?? '#ffffff'
230
+ const cellLabelColor = (getVariableByName('tableCell/label/color', modes) as string) ?? '#000000'
231
+ const cellFontSize = (getVariableByName('tableCell/label/fontsize', modes) as number) ?? 14
232
+ const cellFontFamily = (getVariableByName('tableCell/label/fontfamily', modes) as string) ?? 'JioType Var'
233
+ const cellFontWeight = (getVariableByName('tableCell/label/fontweight', modes) as number | string) ?? 400
234
+ const cellPaddingH = (getVariableByName('tableCell/padding/horizontal', modes) as number) ?? 12
235
+ const cellPaddingV = (getVariableByName('tableCell/padding/vertical', modes) as number) ?? 12
236
236
 
237
237
  const columnCount = columns.length
238
238
  const showAddCard = onAddColumn != null && columnCount < maxColumns
@@ -45,28 +45,28 @@ function DebitCard({
45
45
  const { modes: globalModes } = useTokens()
46
46
  const modes = { ...globalModes, ...propModes }
47
47
 
48
- const background = getVariableByName('debitCard/background', modes) || '#cea15a'
49
- const radius = getVariableByName('debitCard/radius', modes) || 16
50
- const width = getVariableByName('debitCard/width', modes) || 328
51
- const height = getVariableByName('debitCard/height', modes) || 224
52
- const paddingBottom = getVariableByName('debitCard/padding/bottom', modes) || 24
53
-
54
- const headerPaddingH = getVariableByName('debitCard/header/padding/horizontal', modes) || 20
55
- const headerPaddingTop = getVariableByName('debitCard/header/padding/top', modes) || 16
56
- const headerPaddingBottom = getVariableByName('debitCard/header/padding/bottom', modes) || 28
57
-
58
- const cardArtHeight = getVariableByName('debitCard/cardArt/height', modes) || 50
59
- const cardArtRadius = getVariableByName('debitCard/cardArt/radius', modes) || 4
60
-
61
- const footerGap = getVariableByName('debitCard/footer/gap', modes) || 16
62
- const footerPaddingH = getVariableByName('debitCard/footer/padding/horizontal', modes) || 20
63
- const footerPaddingTop = getVariableByName('debitCard/footer/padding/top', modes) || 16
64
-
65
- const foreground = getVariableByName('debitCard/foreground', modes) || '#141414'
66
- const fontSize = getVariableByName('debitCard/fontSize', modes) || 14
67
- const fontFamily = getVariableByName('debitCard/fontFamily', modes) || 'JioType Var'
68
- const lineHeight = getVariableByName('debitCard/lineHeight', modes) || 17
69
- const fontWeightRaw = getVariableByName('debitCard/fontWeight', modes) || 500
48
+ const background = getVariableByName('debitCard/background', modes)
49
+ const radius = getVariableByName('debitCard/radius', modes)
50
+ const width = getVariableByName('debitCard/width', modes)
51
+ const height = getVariableByName('debitCard/height', modes)
52
+ const paddingBottom = getVariableByName('debitCard/padding/bottom', modes)
53
+
54
+ const headerPaddingH = getVariableByName('debitCard/header/padding/horizontal', modes)
55
+ const headerPaddingTop = getVariableByName('debitCard/header/padding/top', modes)
56
+ const headerPaddingBottom = getVariableByName('debitCard/header/padding/bottom', modes)
57
+
58
+ const cardArtHeight = getVariableByName('debitCard/cardArt/height', modes)
59
+ const cardArtRadius = getVariableByName('debitCard/cardArt/radius', modes)
60
+
61
+ const footerGap = getVariableByName('debitCard/footer/gap', modes)
62
+ const footerPaddingH = getVariableByName('debitCard/footer/padding/horizontal', modes)
63
+ const footerPaddingTop = getVariableByName('debitCard/footer/padding/top', modes)
64
+
65
+ const foreground = getVariableByName('debitCard/foreground', modes)
66
+ const fontSize = getVariableByName('debitCard/fontSize', modes)
67
+ const fontFamily = getVariableByName('debitCard/fontFamily', modes)
68
+ const lineHeight = getVariableByName('debitCard/lineHeight', modes)
69
+ const fontWeightRaw = getVariableByName('debitCard/fontWeight', modes)
70
70
  const fontWeight = typeof fontWeightRaw === 'number' ? fontWeightRaw.toString() : fontWeightRaw
71
71
 
72
72
  const containerStyle: ViewStyle = {
@@ -47,15 +47,15 @@ function Disclaimer({
47
47
  const { modes: globalModes } = useTokens()
48
48
  const modes = { ...globalModes, ...propModes }
49
49
  // Resolve typography and color from Figma variables
50
- const color = getVariableByName('disclaimer/color', modes) || '#24262b'
50
+ const color = getVariableByName('disclaimer/color', modes)
51
51
  const fontSize =
52
- getVariableByName('disclaimer/label/fontSize', modes) || 10
52
+ getVariableByName('disclaimer/label/fontSize', modes)
53
53
  const lineHeight =
54
- getVariableByName('disclaimer/label/lineHeight', modes) || 12
54
+ getVariableByName('disclaimer/label/lineHeight', modes)
55
55
  const fontFamily =
56
- getVariableByName('disclaimer/label/fontFamily', modes) || 'System'
56
+ getVariableByName('disclaimer/label/fontFamily', modes)
57
57
  const fontWeightRaw =
58
- getVariableByName('disclaimer/label/fontWeight', modes) || 500
58
+ getVariableByName('disclaimer/label/fontWeight', modes)
59
59
  const fontWeight =
60
60
  typeof fontWeightRaw === 'number'
61
61
  ? fontWeightRaw.toString()
@@ -285,59 +285,25 @@ function DonutChart({
285
285
  const showValueLabel = !hasChildrenSlot && shouldRenderText(value)
286
286
  const showLabel = !hasChildrenSlot && shouldRenderText(label)
287
287
 
288
- const valueColor =
289
- (getVariableByName('donutChart/value/color', modes) as string | null) ??
290
- (getVariableByName('value/fg', modes) as string | null) ??
291
- '#000000'
292
- const valueFontFamily =
293
- (getVariableByName('donutChart/value/fontFamily', modes) as string | null) ??
294
- (getVariableByName('value/fontFamily', modes) as string | null) ??
295
- 'JioType Var'
296
- const valueFontSize = toNumber(
297
- getVariableByName('donutChart/value/fontSize', modes) ??
298
- getVariableByName('value/fontSize', modes),
299
- 29
300
- )
301
- const valueLineHeight = toNumber(
302
- getVariableByName('donutChart/value/lineHeight', modes) ??
303
- getVariableByName('value/lineHeight', modes),
304
- 29
305
- )
288
+ const valueColor = getVariableByName('value/fg', modes) as string
289
+ const valueFontFamily = getVariableByName('value/fontFamily', modes) as string
290
+ const valueFontSize = toNumber(getVariableByName('value/fontSize', modes), 29)
291
+ const valueLineHeight = toNumber(getVariableByName('value/lineHeight', modes), 29)
306
292
  const valueFontWeight = toFontWeight(
307
- getVariableByName('donutChart/value/fontWeight', modes) ??
308
- getVariableByName('value/fontWeight', modes),
293
+ getVariableByName('value/fontWeight', modes),
309
294
  '900'
310
295
  )
311
296
 
312
- const labelColor =
313
- (getVariableByName('donutChart/label/color', modes) as string | null) ??
314
- (getVariableByName('label/fg', modes) as string | null) ??
315
- '#000000'
316
- const labelFontFamily =
317
- (getVariableByName('donutChart/label/fontFamily', modes) as string | null) ??
318
- (getVariableByName('label/fontFamily', modes) as string | null) ??
319
- 'JioType Var'
320
- const labelFontSize = toNumber(
321
- getVariableByName('donutChart/label/fontSize', modes) ??
322
- getVariableByName('label/fontSize', modes),
323
- 12
324
- )
325
- const labelLineHeight = toNumber(
326
- getVariableByName('donutChart/label/lineHeight', modes) ??
327
- getVariableByName('label/lineHeight', modes),
328
- 15.6
329
- )
297
+ const labelColor = getVariableByName('label/fg', modes) as string
298
+ const labelFontFamily = getVariableByName('label/fontFamily', modes) as string
299
+ const labelFontSize = toNumber(getVariableByName('label/fontSize', modes), 12)
300
+ const labelLineHeight = toNumber(getVariableByName('label/lineHeight', modes), 15.6)
330
301
  const labelFontWeight = toFontWeight(
331
- getVariableByName('donutChart/label/fontWeight', modes) ??
332
- getVariableByName('label/fontWeight', modes),
302
+ getVariableByName('label/fontWeight', modes),
333
303
  '400'
334
304
  )
335
305
 
336
- const textWrapGap = toNumber(
337
- getVariableByName('donutChart/textWrap/gap', modes) ??
338
- getVariableByName('textWrap/gap', modes),
339
- 7
340
- )
306
+ const textWrapGap = toNumber(getVariableByName('textWrap/gap', modes), 7)
341
307
 
342
308
  const containerStyle: ViewStyle = {
343
309
  alignItems: 'center',
@@ -15,6 +15,7 @@ import Animated, {
15
15
  } from 'react-native-reanimated'
16
16
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
17
17
  import { EMPTY_MODES } from '../../utils/react-utils'
18
+ import { boxShadow } from '../../utils/shadow'
18
19
  import type { Modes } from '../../design-tokens'
19
20
  import Overlay from '../Overlay/Overlay'
20
21
 
@@ -390,28 +391,29 @@ function DrawerInner({
390
391
  })
391
392
 
392
393
  // Design Tokens
393
- const backgroundColor = getVariableByName('drawer/background', modes) || '#f5f5f5'
394
- const radius = getVariableByName('drawer/radius/top', modes) || 12
394
+ const backgroundColor = getVariableByName('drawer/background', modes)
395
+ const radius = getVariableByName('drawer/radius/top', modes)
395
396
 
396
397
  // Handle
397
- const handleColor = getVariableByName('drawer/handlebar/background', modes) || '#e0e0e3'
398
- const handleWidth = getVariableByName('drawer/handlebar/width', modes) || 42
399
- const handleHeight = getVariableByName('drawer/handlebar/height', modes) || 6
400
- const handleRadius = getVariableByName('drawer/handlebar/radius', modes) || 999
398
+ const handleColor = getVariableByName('drawer/handlebar/background', modes)
399
+ const handleWidth = getVariableByName('drawer/handlebar/width', modes)
400
+ const handleHeight = getVariableByName('drawer/handlebar/height', modes)
401
+ const handleRadius = getVariableByName('drawer/handlebar/radius', modes)
401
402
 
402
403
  // Padding
403
- const paddingLeft = getVariableByName('drawer/padding/left', modes) || 8
404
- const paddingRight = getVariableByName('drawer/padding/right', modes) || 8
405
- const paddingBottom = getVariableByName('drawer/padding/bottom', modes) || 10
406
- const drawerGap = getVariableByName('drawer/gap', modes) || 8
407
- // Note: drawer/padding/top is 0 in tokens, but we keep the 8px visual spacing for the handle as requested.
404
+ const paddingLeft = getVariableByName('drawer/padding/left', modes)
405
+ const paddingRight = getVariableByName('drawer/padding/right', modes)
406
+ const paddingBottom = getVariableByName('drawer/padding/bottom', modes)
407
+ const drawerGap = getVariableByName('drawer/gap', modes)
408
408
 
409
409
  // Title
410
- const titleColor = getVariableByName('drawer/title/color', modes) || '#0d0d0f'
411
- const titleSize = getVariableByName('drawer/title/fontSize', modes) || 14
412
- const titleWeight = getVariableByName('drawer/title/fontWeight', modes) || '700'
413
- const titleLineHeight = getVariableByName('drawer/title/lineHeight', modes) || 17
414
- const titlePaddingBottom = getVariableByName('drawer/titleWrap/padding/bottom', modes) || 8
410
+ const titleColor = getVariableByName('drawer/title/color', modes)
411
+ const titleSize = getVariableByName('drawer/title/fontSize', modes)
412
+ const titleWeight = getVariableByName('drawer/title/fontWeight', modes)
413
+ const titleLineHeight = getVariableByName('drawer/title/lineHeight', modes)
414
+ const titleWrapPaddingTop = getVariableByName('drawer/titleWrap/padding/top', modes)
415
+ const titleWrapPaddingBottom = getVariableByName('drawer/titleWrap/padding/bottom', modes)
416
+ const titleWrapPaddingHorizontal = getVariableByName('drawer/titleWrap/padding/horizontal', modes)
415
417
 
416
418
  // Drop shadow — Figma layers two shadows (primary + secondary) sharing
417
419
  // the same offsetY/blur but with their own offsetX and color.
@@ -422,26 +424,15 @@ function DrawerInner({
422
424
  const shadowSecondaryOffsetX = (getVariableByName('drawer/shadow/secondary/offsetX', modes) ?? 0) as number
423
425
  const shadowSecondaryColor = (getVariableByName('drawer/shadow/secondary/color', modes) ?? 'rgba(12, 13, 16, 0.12)') as string
424
426
 
425
- // Cross-platform shadow style. Web supports stacking two shadows via
426
- // boxShadow. iOS only supports a single native shadow per view, so we
427
- // apply the more prominent (primary) one. Android uses elevation.
428
- const shadowStyle: ViewStyle = Platform.select({
429
- web: {
430
- boxShadow:
431
- `${shadowSecondaryOffsetX}px ${shadowPrimaryOffsetY}px ${shadowPrimaryBlur}px 0px ${shadowSecondaryColor}, ` +
432
- `${shadowPrimaryOffsetX}px ${shadowPrimaryOffsetY}px ${shadowPrimaryBlur}px 0px ${shadowPrimaryColor}`,
433
- } as ViewStyle,
434
- ios: {
435
- shadowColor: shadowPrimaryColor,
436
- shadowOffset: { width: shadowPrimaryOffsetX, height: shadowPrimaryOffsetY },
437
- shadowOpacity: 1,
438
- shadowRadius: shadowPrimaryBlur / 2,
439
- },
440
- android: {
441
- elevation: 16,
442
- },
443
- default: {},
444
- }) as ViewStyle
427
+ // Cross-platform shadow via the unified helper. Figma layers two shadows
428
+ // (secondary + primary) which stack natively as a single multi-layer
429
+ // boxShadow on web + RN 0.76+. On older RN the helper falls back to the most
430
+ // prominent layer (iOS shadow*) / a fixed elevation (Android).
431
+ const shadowStyle: ViewStyle = boxShadow(
432
+ `${shadowSecondaryOffsetX}px ${shadowPrimaryOffsetY}px ${shadowPrimaryBlur}px 0px ${shadowSecondaryColor}, ` +
433
+ `${shadowPrimaryOffsetX}px ${shadowPrimaryOffsetY}px ${shadowPrimaryBlur}px 0px ${shadowPrimaryColor}`,
434
+ { elevation: 16 },
435
+ )
445
436
 
446
437
  const defaultAccessibilityLabel = accessibilityLabel || title || 'Drawer'
447
438
 
@@ -491,44 +482,62 @@ function DrawerInner({
491
482
  paddingLeft,
492
483
  paddingRight,
493
484
  paddingBottom,
494
- rowGap: drawerGap,
495
485
  },
496
486
  ]}
497
487
  >
498
- {/* Handle Area */}
499
- <View style={[styles.handleArea, (!title && !header) && { paddingBottom: 0 }]}>
500
- <View
501
- style={[
502
- {
503
- backgroundColor: handleColor,
504
- width: handleWidth,
505
- height: handleHeight,
506
- borderRadius: handleRadius
507
- },
508
- ]}
509
- />
488
+ {/* Header unit — handle + optional header + title behave as ONE
489
+ block. The core gap (drawer/gap) is intentionally NOT applied
490
+ between the handle and the title; it is applied only once, below
491
+ this whole unit, to separate it from the scrollable content. */}
492
+ <View style={{ marginBottom: drawerGap }}>
493
+ {/* Handle Area. The handle owns an extra bottom margin ONLY when
494
+ it is the sole header element (no title / no header slot) so
495
+ that handle↔content resolves to handleMargin(8) + coreGap(8) =
496
+ 16. When a title/header follows, the title wrapper's own top
497
+ padding provides the handle↔title spacing instead. */}
498
+ <View style={[styles.handleArea, (!title && !header) && { marginBottom: drawerGap }]}>
499
+ <View
500
+ style={[
501
+ {
502
+ backgroundColor: handleColor,
503
+ width: handleWidth,
504
+ height: handleHeight,
505
+ borderRadius: handleRadius
506
+ },
507
+ ]}
508
+ />
509
+ </View>
510
+
511
+ {/* Custom Header Slot */}
512
+ {header}
513
+
514
+ {/* Title (Legacy/Simple Mode) — centered per design */}
515
+ {title && (
516
+ <View
517
+ style={{
518
+ paddingTop: titleWrapPaddingTop,
519
+ paddingBottom: titleWrapPaddingBottom,
520
+ paddingHorizontal: titleWrapPaddingHorizontal,
521
+ alignItems: 'center',
522
+ }}
523
+ >
524
+ <Text
525
+ style={[
526
+ {
527
+ color: titleColor,
528
+ fontSize: titleSize,
529
+ fontWeight: titleWeight as any,
530
+ lineHeight: titleLineHeight,
531
+ textAlign: 'center',
532
+ },
533
+ ]}
534
+ >
535
+ {title}
536
+ </Text>
537
+ </View>
538
+ )}
510
539
  </View>
511
540
 
512
- {/* Custom Header Slot */}
513
- {header}
514
-
515
- {/* Title (Legacy/Simple Mode) */}
516
- {title && (
517
- <Text
518
- style={[
519
- {
520
- color: titleColor,
521
- fontSize: titleSize,
522
- fontWeight: titleWeight as any,
523
- lineHeight: titleLineHeight,
524
- marginBottom: titlePaddingBottom,
525
- }
526
- ]}
527
- >
528
- {title}
529
- </Text>
530
- )}
531
-
532
541
  {/* Scrollable Content */}
533
542
  <AnimatedScrollView
534
543
  ref={scrollRef}
@@ -579,8 +588,8 @@ const styles = StyleSheet.create({
579
588
  },
580
589
  handleArea: {
581
590
  alignItems: 'center',
582
- paddingVertical: 8,
583
- width: '100%'
591
+ marginTop: 8,
592
+ width: '100%',
584
593
  },
585
594
 
586
595
  content: {
@@ -14,6 +14,7 @@ import {
14
14
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
15
15
  import { useTokens } from '../../design-tokens/JFSThemeProvider'
16
16
  import { EMPTY_MODES, cloneChildrenWithModes, resolveTruncation } from '../../utils/react-utils'
17
+ import { boxShadow } from '../../utils/shadow'
17
18
  import Icon from '../../icons/Icon'
18
19
  import type { Modes } from '../../design-tokens'
19
20
 
@@ -74,26 +75,23 @@ function useDropdownItemTokens(modes: Modes) {
74
75
  (getVariableByName('dropdownItem/background', {
75
76
  ...modes,
76
77
  'Dropdown Item State': 'Idle',
77
- }) as string) || '#ffffff'
78
+ }) as string)
78
79
  const selectedBackground =
79
80
  (getVariableByName('dropdownItem/background', {
80
81
  ...modes,
81
82
  'Dropdown Item State': 'Selected',
82
- }) as string) || '#f5f5f5'
83
+ }) as string)
83
84
  const foreground =
84
- (getVariableByName('dropdownItem/foreground', modes) as string) ||
85
- '#000000'
85
+ (getVariableByName('dropdownItem/foreground', modes) as string)
86
86
  const fontFamily =
87
- (getVariableByName('dropdownItem/fontFamily', modes) as string) ||
88
- 'JioType Var'
87
+ (getVariableByName('dropdownItem/fontFamily', modes) as string)
89
88
  const fontSize =
90
- parseInt(getVariableByName('dropdownItem/fontSize', modes), 10) || 16
89
+ parseInt(getVariableByName('dropdownItem/fontSize', modes), 10)
91
90
  const fontWeight =
92
- (getVariableByName('dropdownItem/fontWeight', modes) as string) ||
93
- '400'
91
+ (getVariableByName('dropdownItem/fontWeight', modes) as string)
94
92
  const lineHeight =
95
- parseInt(getVariableByName('dropdownItem/lineHeight', modes), 10) || 19
96
- const gap = parseInt(getVariableByName('dropdownItem/gap', modes), 10) || 8
93
+ parseInt(getVariableByName('dropdownItem/lineHeight', modes), 10)
94
+ const gap = parseInt(getVariableByName('dropdownItem/gap', modes), 10)
97
95
  const paddingHorizontal =
98
96
  parseInt(
99
97
  getVariableByName('dropdownItem/padding/horizontal', modes),
@@ -285,18 +283,17 @@ export function Dropdown({
285
283
  )
286
284
 
287
285
  const radius =
288
- parseInt(getVariableByName('dropdown/radius', modes), 10) || 8
286
+ parseInt(getVariableByName('dropdown/radius', modes), 10)
289
287
  const background =
290
- (getVariableByName('dropdown/background', modes) as string) || '#ffffff'
288
+ (getVariableByName('dropdown/background', modes) as string)
291
289
  const shadowColor =
292
- (getVariableByName('dropdown/shadow/color', modes) as string) ||
293
- 'rgba(0, 0, 0, 0.08)'
290
+ (getVariableByName('dropdown/shadow/color', modes) as string)
294
291
  const shadowOffsetX =
295
- parseInt(getVariableByName('dropdown/shadow/offsetX', modes), 10) || 0
292
+ parseInt(getVariableByName('dropdown/shadow/offsetX', modes), 10)
296
293
  const shadowOffsetY =
297
- parseInt(getVariableByName('dropdown/shadow/offsetY', modes), 10) || 4
294
+ parseInt(getVariableByName('dropdown/shadow/offsetY', modes), 10)
298
295
  const shadowBlur =
299
- parseInt(getVariableByName('dropdown/shadow/blur', modes), 10) || 16
296
+ parseInt(getVariableByName('dropdown/shadow/blur', modes), 10)
300
297
 
301
298
  // Shadow lives on the OUTER view, which must NOT set `overflow: 'hidden'`.
302
299
  // On native, clipping a view also clips its shadow (iOS clips the layer
@@ -305,18 +302,16 @@ export function Dropdown({
305
302
  // get cut off. The rounded-corner clipping is moved to a separate inner
306
303
  // view below.
307
304
  //
308
- // The `boxShadow` style prop (RN 0.76+ / react-native-web) is used as the
309
- // single source of truth so the designed color/offset/blur are honored on
310
- // iOS, Android AND web. We intentionally do NOT also set the legacy
311
- // `shadow*` / `elevation` props: on the new architecture (and web) those
312
- // are translated into a box-shadow internally, so combining them with an
313
- // explicit `boxShadow` would stack two shadows. Android's legacy
314
- // `elevation` is also undesirable here because it ignores the shadow color
315
- // and only paints a generic gray shadow.
316
- const shadowStyle: ViewStyle & { boxShadow?: string } = {
305
+ // The unified `boxShadow` helper is the single source of truth so the
306
+ // designed color/offset/blur are honored on iOS, Android AND web. On RN
307
+ // 0.76+ / web it emits the spec `boxShadow` prop; on older RN it translates
308
+ // to the legacy `shadow*` (iOS) / `elevation` (Android) API. We intentionally
309
+ // do NOT also set the legacy props manually on the supported path: those
310
+ // would stack a second shadow.
311
+ const shadowStyle: ViewStyle = {
317
312
  backgroundColor: background,
318
313
  borderRadius: radius,
319
- boxShadow: `${shadowOffsetX}px ${shadowOffsetY}px ${shadowBlur}px 0px ${shadowColor}`,
314
+ ...boxShadow(`${shadowOffsetX}px ${shadowOffsetY}px ${shadowBlur}px 0px ${shadowColor}`),
320
315
  }
321
316
 
322
317
  // Inner view carries the rounded corners + clipping so list/scroll content