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
@@ -0,0 +1,200 @@
1
+ import React, { forwardRef } from 'react'
2
+ import {
3
+ ScrollView,
4
+ type ScrollViewProps,
5
+ type StyleProp,
6
+ type ViewStyle,
7
+ } from 'react-native'
8
+ import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
9
+ import type { Modes } from '../../design-tokens'
10
+
11
+ /**
12
+ * Axis (or axes) along which the content can be scrolled.
13
+ *
14
+ * - `vertical` (default) — content taller than the viewport scrolls up/down.
15
+ * - `horizontal` — content wider than the viewport scrolls left/right.
16
+ * - `both` — content larger on either axis scrolls in both directions
17
+ * (implemented as a horizontal `ScrollView` nested in a vertical one).
18
+ */
19
+ export type ScrollDirection = 'vertical' | 'horizontal' | 'both'
20
+
21
+ export interface ScrollAreaProps
22
+ extends Omit<
23
+ ScrollViewProps,
24
+ 'horizontal' | 'contentContainerStyle' | 'children'
25
+ > {
26
+ /** Content that may be larger than the viewport. */
27
+ children?: React.ReactNode
28
+ /**
29
+ * Scroll axis. Defaults to `vertical`.
30
+ * @default 'vertical'
31
+ */
32
+ direction?: ScrollDirection
33
+ /**
34
+ * Whether to show the native scroll indicator (scrollbar). Mirrors the Figma
35
+ * design, which has no visible scrollbar, so this defaults to `false`.
36
+ * @default false
37
+ */
38
+ showScrollIndicator?: boolean
39
+ /**
40
+ * Padding applied to all sides of the scrollable content. Individual sides
41
+ * (`paddingHorizontal`, `paddingTop`, …) take precedence when provided.
42
+ * @default 0
43
+ */
44
+ padding?: number
45
+ /** Left + right padding of the scrollable content. */
46
+ paddingHorizontal?: number
47
+ /** Top + bottom padding of the scrollable content. */
48
+ paddingVertical?: number
49
+ /** Top padding of the scrollable content. */
50
+ paddingTop?: number
51
+ /** Right padding of the scrollable content. */
52
+ paddingRight?: number
53
+ /** Bottom padding of the scrollable content. */
54
+ paddingBottom?: number
55
+ /** Left padding of the scrollable content. */
56
+ paddingLeft?: number
57
+ /**
58
+ * Style for the viewport (the visible, clipping window). Constrain the
59
+ * scroll area's size here, e.g. `{ height: 240 }` or `{ flex: 1 }`. The
60
+ * component intentionally has no background of its own.
61
+ */
62
+ style?: StyleProp<ViewStyle>
63
+ /** Style for the scrollable content wrapper (sits inside the viewport). */
64
+ contentContainerStyle?: StyleProp<ViewStyle>
65
+ /** Modes object for design-token resolution, cascaded to all children. */
66
+ modes?: Modes
67
+ }
68
+
69
+ /**
70
+ * Build a padding style fragment, letting the more specific props win over the
71
+ * broader ones (`paddingTop` > `paddingVertical` > `padding`). Only defined
72
+ * values are emitted so consumer `contentContainerStyle` overrides survive.
73
+ */
74
+ function resolvePadding({
75
+ padding,
76
+ paddingHorizontal,
77
+ paddingVertical,
78
+ paddingTop,
79
+ paddingRight,
80
+ paddingBottom,
81
+ paddingLeft,
82
+ }: Pick<
83
+ ScrollAreaProps,
84
+ | 'padding'
85
+ | 'paddingHorizontal'
86
+ | 'paddingVertical'
87
+ | 'paddingTop'
88
+ | 'paddingRight'
89
+ | 'paddingBottom'
90
+ | 'paddingLeft'
91
+ >): ViewStyle {
92
+ const top = paddingTop ?? paddingVertical ?? padding
93
+ const right = paddingRight ?? paddingHorizontal ?? padding
94
+ const bottom = paddingBottom ?? paddingVertical ?? padding
95
+ const left = paddingLeft ?? paddingHorizontal ?? padding
96
+
97
+ const style: ViewStyle = {}
98
+ if (top != null) style.paddingTop = top
99
+ if (right != null) style.paddingRight = right
100
+ if (bottom != null) style.paddingBottom = bottom
101
+ if (left != null) style.paddingLeft = left
102
+ return style
103
+ }
104
+
105
+ /**
106
+ * ScrollArea — a transparent, size-constrained viewport that makes content
107
+ * larger than itself smoothly scrollable (Figma node 6319:46886).
108
+ *
109
+ * It has no background of its own; constrain its size through `style`
110
+ * (`height`, `maxHeight`, or `flex`) and drop any over-sized content inside.
111
+ *
112
+ * @example
113
+ * // Vertical (default): a tall column inside a fixed-height window.
114
+ * <ScrollArea style={{ height: 240 }}>
115
+ * <LongContent />
116
+ * </ScrollArea>
117
+ *
118
+ * @example
119
+ * // Horizontal: a wide row of cards inside a full-width window.
120
+ * <ScrollArea direction="horizontal">
121
+ * <Card /> <Card /> <Card />
122
+ * </ScrollArea>
123
+ */
124
+ export const ScrollArea = forwardRef<ScrollView, ScrollAreaProps>(
125
+ function ScrollArea(
126
+ {
127
+ children,
128
+ direction = 'vertical',
129
+ showScrollIndicator = false,
130
+ padding,
131
+ paddingHorizontal,
132
+ paddingVertical,
133
+ paddingTop,
134
+ paddingRight,
135
+ paddingBottom,
136
+ paddingLeft,
137
+ style,
138
+ contentContainerStyle,
139
+ modes = EMPTY_MODES,
140
+ scrollEventThrottle = 16,
141
+ ...rest
142
+ },
143
+ ref,
144
+ ) {
145
+ const paddingStyle = resolvePadding({
146
+ padding,
147
+ paddingHorizontal,
148
+ paddingVertical,
149
+ paddingTop,
150
+ paddingRight,
151
+ paddingBottom,
152
+ paddingLeft,
153
+ })
154
+
155
+ // Cascade modes into every child so slotted tokens resolve correctly.
156
+ const content = cloneChildrenWithModes(children, modes)
157
+
158
+ if (direction === 'both') {
159
+ // Outer vertical scroll, inner horizontal scroll. Padding lives on the
160
+ // inner content container so it scrolls with the content on both axes.
161
+ return (
162
+ <ScrollView
163
+ ref={ref}
164
+ style={style}
165
+ showsVerticalScrollIndicator={showScrollIndicator}
166
+ scrollEventThrottle={scrollEventThrottle}
167
+ {...rest}
168
+ >
169
+ <ScrollView
170
+ horizontal
171
+ showsHorizontalScrollIndicator={showScrollIndicator}
172
+ scrollEventThrottle={scrollEventThrottle}
173
+ contentContainerStyle={[paddingStyle, contentContainerStyle]}
174
+ >
175
+ {content}
176
+ </ScrollView>
177
+ </ScrollView>
178
+ )
179
+ }
180
+
181
+ const isHorizontal = direction === 'horizontal'
182
+
183
+ return (
184
+ <ScrollView
185
+ ref={ref}
186
+ horizontal={isHorizontal}
187
+ style={style}
188
+ showsVerticalScrollIndicator={isHorizontal ? undefined : showScrollIndicator}
189
+ showsHorizontalScrollIndicator={isHorizontal ? showScrollIndicator : undefined}
190
+ scrollEventThrottle={scrollEventThrottle}
191
+ contentContainerStyle={[paddingStyle, contentContainerStyle]}
192
+ {...rest}
193
+ >
194
+ {content}
195
+ </ScrollView>
196
+ )
197
+ },
198
+ )
199
+
200
+ export default ScrollArea
@@ -408,32 +408,32 @@ interface SectionTokens {
408
408
  }
409
409
 
410
410
  function resolveSectionTokens(modes: Modes): SectionTokens {
411
- const backgroundColor = getVariableByName('section/background/color', modes) || '#ffffff'
412
- const sectionGap = (getVariableByName('section/gap', modes) || 12) as number
413
- const slotGap = (getVariableByName('slot/gap', modes) || 12) as number
414
- const paddingHorizontal = getVariableByName('section/padding/horizontal', modes) || 12
415
- const paddingVertical = getVariableByName('section/padding/vertical', modes) || 16
416
- const radius = getVariableByName('section/radius', modes) || 12
417
-
418
- const headerGap = getVariableByName('section/header/gap', modes) || 8
419
- const headerPaddingHorizontal = getVariableByName('section/header/padding/horizontal', modes) || 0
420
- const headerPaddingVertical = getVariableByName('section/header/padding/vertical', modes) || 0
421
-
422
- const titleColor = getVariableByName('section/title/color', modes) || '#0f0d0a'
423
- const titleFontSize = getVariableByName('section/title/fontSize', modes) || 18
424
- const titleLineHeight = getVariableByName('section/title/lineHeight', modes) || 20
425
- const titleFontFamily = getVariableByName('section/title/fontFamily', modes) || 'System'
426
- const titleFontWeightRaw = getVariableByName('section/title/fontWeight', modes) || 800
411
+ const backgroundColor = getVariableByName('section/background/color', modes)
412
+ const sectionGap = (getVariableByName('section/gap', modes)) as number
413
+ const slotGap = (getVariableByName('slot/gap', modes)) as number
414
+ const paddingHorizontal = getVariableByName('section/padding/horizontal', modes)
415
+ const paddingVertical = getVariableByName('section/padding/vertical', modes)
416
+ const radius = getVariableByName('section/radius', modes)
417
+
418
+ const headerGap = getVariableByName('section/header/gap', modes)
419
+ const headerPaddingHorizontal = getVariableByName('section/header/padding/horizontal', modes)
420
+ const headerPaddingVertical = getVariableByName('section/header/padding/vertical', modes)
421
+
422
+ const titleColor = getVariableByName('section/title/color', modes)
423
+ const titleFontSize = getVariableByName('section/title/fontSize', modes)
424
+ const titleLineHeight = getVariableByName('section/title/lineHeight', modes)
425
+ const titleFontFamily = getVariableByName('section/title/fontFamily', modes)
426
+ const titleFontWeightRaw = getVariableByName('section/title/fontWeight', modes)
427
427
  const titleFontWeight =
428
428
  typeof titleFontWeightRaw === 'number'
429
429
  ? titleFontWeightRaw.toString()
430
430
  : titleFontWeightRaw
431
431
 
432
- const supportTextColor = getVariableByName('section/supportText/color', modes) || '#1f1a14'
433
- const supportTextFontSize = getVariableByName('section/supportText/fontSize', modes) || 14
434
- const supportTextLineHeight = getVariableByName('section/supportText/lineHeight', modes) || 18
435
- const supportTextFontFamily = getVariableByName('section/supportText/fontFamily', modes) || 'System'
436
- const supportTextFontWeightRaw = getVariableByName('section/supportText/fontWeight', modes) || 500
432
+ const supportTextColor = getVariableByName('section/supportText/color', modes)
433
+ const supportTextFontSize = getVariableByName('section/supportText/fontSize', modes)
434
+ const supportTextLineHeight = getVariableByName('section/supportText/lineHeight', modes)
435
+ const supportTextFontFamily = getVariableByName('section/supportText/fontFamily', modes)
436
+ const supportTextFontWeightRaw = getVariableByName('section/supportText/fontWeight', modes)
437
437
  const supportTextFontWeight =
438
438
  typeof supportTextFontWeightRaw === 'number'
439
439
  ? supportTextFontWeightRaw.toString()
@@ -765,11 +765,11 @@ function SectionBento({
765
765
  renderToggle,
766
766
  ...rest
767
767
  }: SectionBentoProps) {
768
- const backgroundColor = getVariableByName('section/background/color', modes) || '#ffffff'
769
- const gap = getVariableByName('section/gap', modes) || 12
770
- const paddingHorizontal = getVariableByName('section/padding/horizontal', modes) || 12
771
- const paddingVertical = getVariableByName('section/padding/vertical', modes) || 16
772
- const radius = getVariableByName('section/radius', modes) || 12
768
+ const backgroundColor = getVariableByName('section/background/color', modes)
769
+ const gap = getVariableByName('section/gap', modes)
770
+ const paddingHorizontal = getVariableByName('section/padding/horizontal', modes)
771
+ const paddingVertical = getVariableByName('section/padding/vertical', modes)
772
+ const radius = getVariableByName('section/radius', modes)
773
773
 
774
774
  const containerStyle = useMemo<ViewStyle>(
775
775
  () => ({
@@ -66,28 +66,28 @@ export default function StatusHero({
66
66
  const modes = { ...globalModes, ...propModes }
67
67
 
68
68
  // Container
69
- const gap = Number(getVariableByName('statusHero/gap', modes)) || 12
70
- const padding = Number(getVariableByName('statusHero/padding', modes)) || 8
69
+ const gap = Number(getVariableByName('statusHero/gap', modes))
70
+ const padding = Number(getVariableByName('statusHero/padding', modes))
71
71
 
72
72
  // Media slot wrap (gap between icon and money value in default slot)
73
- const slotWrapGap = Number(getVariableByName('statusHero/slotWrap/gap', modes)) || 46
73
+ const slotWrapGap = Number(getVariableByName('statusHero/slotWrap/gap', modes))
74
74
 
75
75
  // Content wrap
76
- const contentWrapGap = Number(getVariableByName('statusHero/contentWrap/gap', modes)) || 12
76
+ const contentWrapGap = Number(getVariableByName('statusHero/contentWrap/gap', modes))
77
77
 
78
78
  // Title
79
- const titleColor = getVariableByName('statusHero/title/foreground', modes) || '#0c0d10'
80
- const titleFontSize = Number(getVariableByName('statusHero/title/fontSize', modes)) || 20
81
- const titleFontFamily = getVariableByName('statusHero/title/fontFamily', modes) || 'System'
82
- const titleLineHeight = Number(getVariableByName('statusHero/title/lineHeight', modes)) || 22
83
- const titleFontWeight = getVariableByName('statusHero/title/fontWeight', modes) || '700'
79
+ const titleColor = getVariableByName('statusHero/title/foreground', modes)
80
+ const titleFontSize = Number(getVariableByName('statusHero/title/fontSize', modes))
81
+ const titleFontFamily = getVariableByName('statusHero/title/fontFamily', modes)
82
+ const titleLineHeight = Number(getVariableByName('statusHero/title/lineHeight', modes))
83
+ const titleFontWeight = getVariableByName('statusHero/title/fontWeight', modes)
84
84
 
85
85
  // Body
86
- const bodyColor = getVariableByName('statusHero/body/foreground', modes) || '#24262b'
87
- const bodyFontSize = Number(getVariableByName('statusHero/body/fontSize', modes)) || 14
88
- const bodyFontFamily = getVariableByName('statusHero/body/fontFamily', modes) || 'System'
89
- const bodyLineHeight = Number(getVariableByName('statusHero/body/lineHeight', modes)) || 17
90
- const bodyFontWeight = getVariableByName('statusHero/body/fontWeight', modes) || '500'
86
+ const bodyColor = getVariableByName('statusHero/body/foreground', modes)
87
+ const bodyFontSize = Number(getVariableByName('statusHero/body/fontSize', modes))
88
+ const bodyFontFamily = getVariableByName('statusHero/body/fontFamily', modes)
89
+ const bodyLineHeight = Number(getVariableByName('statusHero/body/lineHeight', modes))
90
+ const bodyFontWeight = getVariableByName('statusHero/body/fontWeight', modes)
91
91
 
92
92
  const containerStyle: ViewStyle = {
93
93
  flexDirection: 'column',
@@ -47,42 +47,40 @@ export function Step({
47
47
  status = 'number',
48
48
  }: StepProps) {
49
49
  const minHeight =
50
- Number(getVariableByName('steperItem/minHeight', modes) as unknown) || 52
50
+ Number(getVariableByName('steperItem/minHeight', modes) as unknown)
51
51
  const gap =
52
- Number(getVariableByName('steperItem/gap', modes) as unknown) || 16
52
+ Number(getVariableByName('steperItem/gap', modes) as unknown)
53
53
 
54
54
  const indicatorSize =
55
- Number(getVariableByName('stepIndicator/size', modes) as unknown) || 36
55
+ Number(getVariableByName('stepIndicator/size', modes) as unknown)
56
56
  const indicatorRadius =
57
- Number(getVariableByName('stepIndicator/radius', modes) as unknown) || 9999
57
+ Number(getVariableByName('stepIndicator/radius', modes) as unknown)
58
58
  const indicatorBg =
59
- (getVariableByName('stepIndicator/background', modes) as string) ||
60
- '#5d00b5'
59
+ (getVariableByName('stepIndicator/background', modes) as string)
61
60
  const indicatorBorderColor =
62
- (getVariableByName('stepIndicator/border/color', modes) as string) ||
63
- '#5d00b5'
61
+ (getVariableByName('stepIndicator/border/color', modes) as string)
64
62
  const indicatorBorderSize =
65
- Number(getVariableByName('stepIndicator/border/size', modes) as unknown) || 1
63
+ Number(getVariableByName('stepIndicator/border/size', modes) as unknown)
66
64
  const iconColor =
67
- (getVariableByName('stepIndicator/icon/color', modes) as string) || '#ffffff'
65
+ (getVariableByName('stepIndicator/icon/color', modes) as string)
68
66
  const stepStatusSize =
69
- Number(getVariableByName('stepStatus/size', modes) as unknown) || 18
67
+ Number(getVariableByName('stepStatus/size', modes) as unknown)
70
68
 
71
69
  const labelFontSize =
72
- Number(getVariableByName('stepIndicator/label/fontSize', modes) as unknown) || 12
70
+ Number(getVariableByName('stepIndicator/label/fontSize', modes) as unknown)
73
71
  const labelFontFamily =
74
- (getVariableByName('stepIndicator/label/fontFamily', modes) as string) || undefined
72
+ (getVariableByName('stepIndicator/label/fontFamily', modes) as string)
75
73
  const labelLineHeight =
76
- Number(getVariableByName('stepIndicator/label/lineHeight', modes) as unknown) || 14
74
+ Number(getVariableByName('stepIndicator/label/lineHeight', modes) as unknown)
77
75
  const labelFontWeight =
78
- (getVariableByName('stepIndicator/label/fontWeight', modes) as string) || '500'
76
+ (getVariableByName('stepIndicator/label/fontWeight', modes) as string)
79
77
 
80
78
  const lineSize =
81
- Number(getVariableByName('steperItem/lineSize', modes) as unknown) || 2
79
+ Number(getVariableByName('steperItem/lineSize', modes) as unknown)
82
80
  const lineColor =
83
- (getVariableByName('steperItem/line', modes) as string) || '#5d00b5'
81
+ (getVariableByName('steperItem/line', modes) as string)
84
82
  const badgeWrapGap =
85
- Number(getVariableByName('steperItem/badgeWrap/gap', modes) as unknown) || 2
83
+ Number(getVariableByName('steperItem/badgeWrap/gap', modes) as unknown)
86
84
 
87
85
  const containerStyle: ViewStyle = {
88
86
  flexDirection: 'row',
@@ -24,17 +24,15 @@ export function StepLabel({
24
24
  style,
25
25
  }: StepLabelProps) {
26
26
  const titleColor =
27
- (getVariableByName('steperItem/title/color', modes) as string) || '#0d0d0f'
27
+ (getVariableByName('steperItem/title/color', modes) as string)
28
28
  const titleFontSize =
29
- Number(getVariableByName('steperItem/title/fontSize', modes) as unknown) || 14
29
+ Number(getVariableByName('steperItem/title/fontSize', modes) as unknown)
30
30
  const titleFontFamily =
31
- (getVariableByName('steperItem/title/fontFamily', modes) as string) ||
32
- undefined
31
+ (getVariableByName('steperItem/title/fontFamily', modes) as string)
33
32
  const titleLineHeight =
34
- Number(getVariableByName('steperItem/title/lineHeight', modes) as unknown) ||
35
- 18
33
+ Number(getVariableByName('steperItem/title/lineHeight', modes) as unknown)
36
34
  const titleFontWeight =
37
- (getVariableByName('steperItem/title/fontWeight', modes) as string) || '700'
35
+ (getVariableByName('steperItem/title/fontWeight', modes) as string)
38
36
 
39
37
  // The Subtitle (supportingText) and Meta both default to the "Neutral"
40
38
  // AppearanceBrand. A caller-supplied `AppearanceBrand` still wins (it is
@@ -44,40 +42,31 @@ export function StepLabel({
44
42
  const metaModes = { AppearanceBrand: 'Neutral', ...modes }
45
43
 
46
44
  const subtitleColor =
47
- (getVariableByName('steperItem/subtitle/color', subtitleModes) as string) ||
48
- '#3d4047'
45
+ (getVariableByName('steperItem/subtitle/color', subtitleModes) as string)
49
46
  const subtitleFontSize =
50
- Number(
51
- getVariableByName('steperItem/subtitle/fontSize', subtitleModes) as unknown
52
- ) || 12
47
+ Number(getVariableByName('steperItem/subtitle/fontSize', subtitleModes) as unknown)
53
48
  const subtitleFontFamily =
54
- (getVariableByName('steperItem/subtitle/fontFamily', subtitleModes) as string) ||
55
- undefined
49
+ (getVariableByName('steperItem/subtitle/fontFamily', subtitleModes) as string)
56
50
  const subtitleLineHeight =
57
- Number(
58
- getVariableByName('steperItem/subtitle/lineHeight', subtitleModes) as unknown
59
- ) || 16
51
+ Number(getVariableByName('steperItem/subtitle/lineHeight', subtitleModes) as unknown)
60
52
  const subtitleFontWeight =
61
- (getVariableByName('steperItem/subtitle/fontWeight', subtitleModes) as string) ||
62
- '400'
53
+ (getVariableByName('steperItem/subtitle/fontWeight', subtitleModes) as string)
63
54
 
64
55
  const metaColor =
65
- (getVariableByName('steperItem/meta/color', metaModes) as string) || '#f7ab21'
56
+ (getVariableByName('steperItem/meta/color', metaModes) as string)
66
57
  const metaFontSize =
67
- Number(getVariableByName('steperItem/meta/fontSize', metaModes) as unknown) || 10
58
+ Number(getVariableByName('steperItem/meta/fontSize', metaModes) as unknown)
68
59
  // The Figma variable is authored as "fontFamily Copy" (with a space + suffix).
69
60
  // Match the literal Figma name to avoid a missing-variable warning.
70
61
  const metaFontFamily =
71
- (getVariableByName('steperItem/meta/fontFamily Copy', metaModes) as string) ||
72
- undefined
62
+ (getVariableByName('steperItem/meta/fontFamily Copy', metaModes) as string)
73
63
  const metaLineHeight =
74
- Number(getVariableByName('steperItem/meta/lineHeight', metaModes) as unknown) ||
75
- 12
64
+ Number(getVariableByName('steperItem/meta/lineHeight', metaModes) as unknown)
76
65
  const metaFontWeight =
77
- (getVariableByName('steperItem/meta/fontWeight', metaModes) as string) || '700'
66
+ (getVariableByName('steperItem/meta/fontWeight', metaModes) as string)
78
67
 
79
68
  const textGap =
80
- Number(getVariableByName('steperItem/textWrap/gap', modes) as unknown) || 2
69
+ Number(getVariableByName('steperItem/textWrap/gap', modes) as unknown)
81
70
 
82
71
  const titleStyle: TextStyle = {
83
72
  color: titleColor,
@@ -22,11 +22,10 @@ export default function Stepper({
22
22
  style,
23
23
  }: StepperProps) {
24
24
  const paddingHorizontal =
25
- Number(getVariableByName('stepper/padding/horizontal', modes) as unknown) ||
26
- 8
25
+ Number(getVariableByName('stepper/padding/horizontal', modes) as unknown)
27
26
  const paddingVertical =
28
- Number(getVariableByName('stepper/padding/vertical', modes) as unknown) || 0
29
- const gap = Number(getVariableByName('stepper/gap', modes) as unknown) || 2
27
+ Number(getVariableByName('stepper/padding/vertical', modes) as unknown)
28
+ const gap = Number(getVariableByName('stepper/gap', modes) as unknown)
30
29
 
31
30
  const containerStyle: ViewStyle = {
32
31
  paddingHorizontal,
@@ -184,11 +184,9 @@ const defaultFilter = (query: string, option: SuggestiveSearchOption) =>
184
184
  function useFormFieldTokens(modes: Modes) {
185
185
  return useMemo(() => {
186
186
  const labelColor =
187
- (getVariableByName('formField/label/color', modes) as string) ||
188
- '#000000'
187
+ (getVariableByName('formField/label/color', modes) as string)
189
188
  const labelFontFamily =
190
- (getVariableByName('formField/label/fontFamily', modes) as string) ||
191
- 'JioType Var'
189
+ (getVariableByName('formField/label/fontFamily', modes) as string)
192
190
  const labelFontSize = toNumber(
193
191
  getVariableByName('formField/label/fontSize', modes),
194
192
  14
@@ -198,8 +196,7 @@ function useFormFieldTokens(modes: Modes) {
198
196
  17
199
197
  )
200
198
  const labelFontWeight =
201
- (getVariableByName('formField/label/fontWeight', modes) as string) ||
202
- '500'
199
+ (getVariableByName('formField/label/fontWeight', modes) as string)
203
200
 
204
201
  const gap = toNumber(getVariableByName('formField/gap', modes), 8)
205
202
 
@@ -217,11 +214,9 @@ function useFormFieldTokens(modes: Modes) {
217
214
  1.5
218
215
  )
219
216
  const inputBackground =
220
- (getVariableByName('formField/input/background', modes) as string) ||
221
- '#ffffff'
217
+ (getVariableByName('formField/input/background', modes) as string)
222
218
  const inputBorderColor =
223
- (getVariableByName('formField/input/border/color', modes) as string) ||
224
- '#b5b6b7'
219
+ (getVariableByName('formField/input/border/color', modes) as string)
225
220
  const inputFontSize = toNumber(
226
221
  getVariableByName('formField/input/label/fontSize', modes),
227
222
  16
@@ -231,14 +226,11 @@ function useFormFieldTokens(modes: Modes) {
231
226
  45
232
227
  )
233
228
  const inputFontFamily =
234
- (getVariableByName('formField/input/label/fontFamily', modes) as string) ||
235
- 'JioType Var'
229
+ (getVariableByName('formField/input/label/fontFamily', modes) as string)
236
230
  const inputFontWeight =
237
- (getVariableByName('formField/input/label/fontWeight', modes) as string) ||
238
- '400'
231
+ (getVariableByName('formField/input/label/fontWeight', modes) as string)
239
232
  const inputTextColor =
240
- (getVariableByName('formField/input/label/color', modes) as string) ||
241
- '#24262b'
233
+ (getVariableByName('formField/input/label/color', modes) as string)
242
234
 
243
235
  return {
244
236
  labelColor,
@@ -265,11 +257,9 @@ function useFormFieldTokens(modes: Modes) {
265
257
  function useDropdownItemTextTokens(modes: Modes) {
266
258
  return useMemo(() => {
267
259
  const foreground =
268
- (getVariableByName('dropdownItem/foreground', modes) as string) ||
269
- '#000000'
260
+ (getVariableByName('dropdownItem/foreground', modes) as string)
270
261
  const fontFamily =
271
- (getVariableByName('dropdownItem/fontFamily', modes) as string) ||
272
- 'JioType Var'
262
+ (getVariableByName('dropdownItem/fontFamily', modes) as string)
273
263
  const fontSize = toNumber(
274
264
  getVariableByName('dropdownItem/fontSize', modes),
275
265
  16
@@ -53,13 +53,13 @@ function SupportText({
53
53
  const modes = { ...globalModes, ...propModes };
54
54
 
55
55
  // --- Token Resolution ---
56
- const gap = parseInt(getVariableByName('supportText/gap', modes), 10) || 4;
56
+ const gap = parseInt(getVariableByName('supportText/gap', modes), 10);
57
57
 
58
- const textColor = getVariableByName('supportText/foreground', modes) || '#0c0d10';
59
- const fontFamily = getVariableByName('supportText/fontFamily', modes) || 'JioType Var';
60
- const fontSize = parseInt(getVariableByName('supportText/fontSize', modes), 10) || 12;
61
- const lineHeight = parseInt(getVariableByName('supportText/lineHeight', modes), 10) || 16;
62
- const fontWeight = getVariableByName('supportText/fontWeight', modes) || '500';
58
+ const textColor = getVariableByName('supportText/foreground', modes);
59
+ const fontFamily = getVariableByName('supportText/fontFamily', modes);
60
+ const fontSize = parseInt(getVariableByName('supportText/fontSize', modes), 10);
61
+ const lineHeight = parseInt(getVariableByName('supportText/lineHeight', modes), 10);
62
+ const fontWeight = getVariableByName('supportText/fontWeight', modes);
63
63
 
64
64
  // --- Styles ---
65
65
  const containerStyle: ViewStyle = {
@@ -29,14 +29,14 @@ function SupportTextIcon({
29
29
  const iconName = STATUS_ICON_MAP[status] || 'ic_info';
30
30
 
31
31
  // Resolve icon size
32
- const size = parseInt(getVariableByName('supportText/icon/size', modes), 10) || 16;
32
+ const size = parseInt(getVariableByName('supportText/icon/size', modes), 10);
33
33
 
34
34
  // Resolve icon color
35
35
  // Assuming supportText/foreground applies to icon as well, or there might be specific icon color tokens.
36
36
  // Using supportText/foreground as default based on common patterns if no specific icon token.
37
37
  // If specific tokens exist like 'supportText/icon/color', they should be used.
38
38
  // Detailed variables only showed supportText/foreground.
39
- const color = getVariableByName('supportText/foreground', modes) || '#0c0d10';
39
+ const color = getVariableByName('supportText/foreground', modes);
40
40
 
41
41
  return (
42
42
  <View style={style}>
@@ -1,7 +1,7 @@
1
1
  import React from 'react'
2
2
  import { Text as RNText, type TextStyle, type StyleProp } from 'react-native'
3
3
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
4
- import { EMPTY_MODES, resolveTruncation } from '../../utils/react-utils'
4
+ import { EMPTY_MODES, resolveTextLayout } from '../../utils/react-utils'
5
5
  import Skeleton from '../../skeleton/Skeleton'
6
6
  import { useSkeleton } from '../../skeleton/SkeletonGroup'
7
7
  import type { Modes } from '../../design-tokens'
@@ -28,10 +28,19 @@ export type TextProps = {
28
28
  numberOfLines?: number
29
29
  /**
30
30
  * When `true`, disables text truncation entirely: the trailing ellipsis (`…`)
31
- * is never shown and any `numberOfLines` clamp is ignored, so the text wraps
32
- * to as many lines as it needs even when horizontal space is tight.
31
+ * is never shown and any `numberOfLines` clamp is ignored. The text is also
32
+ * never shrunk by a tight parent — it keeps its full intrinsic size and
33
+ * overflows (even breaking the parent layout) rather than clipping into an
34
+ * ellipsis. It still wraps onto multiple lines.
33
35
  */
34
36
  disableTruncation?: boolean
37
+ /**
38
+ * When `true`, forces the text onto a single line with no wrapping (implies
39
+ * {@link disableTruncation}). On web the line overflows horizontally —
40
+ * brutally breaking the parent layout if it has to — instead of wrapping or
41
+ * truncating.
42
+ */
43
+ singleLine?: boolean
35
44
  /**
36
45
  * Explicit per-instance loading override. When `true`, this `Text` renders
37
46
  * a skeleton placeholder regardless of any surrounding `<SkeletonGroup>`.
@@ -66,6 +75,7 @@ function Text({
66
75
  style,
67
76
  numberOfLines,
68
77
  disableTruncation,
78
+ singleLine,
69
79
  loading,
70
80
  skeletonWidth,
71
81
  skeletonLines,
@@ -128,10 +138,18 @@ function Text({
128
138
  ? text
129
139
  : 'Korem ipsum '
130
140
 
141
+ // Layout `style` is merged after the consumer `style` so the brutal overflow
142
+ // / no-wrap behaviour always wins.
143
+ const { style: layoutStyle, ...truncation } = resolveTextLayout({
144
+ disableTruncation,
145
+ singleLine,
146
+ numberOfLines,
147
+ })
148
+
131
149
  return (
132
150
  <RNText
133
- style={[textStyle, style]}
134
- {...resolveTruncation(disableTruncation, numberOfLines)}
151
+ style={[textStyle, style, layoutStyle]}
152
+ {...truncation}
135
153
  >
136
154
  {content}
137
155
  </RNText>