jfs-components 0.1.0 → 0.1.8

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 (392) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/lib/commonjs/components/AmountInput/AmountInput.js +8 -5
  3. package/lib/commonjs/components/AreaLineChart/AreaLineChart.js +1 -1
  4. package/lib/commonjs/components/Balance/Balance.js +17 -12
  5. package/lib/commonjs/components/BenefitCard/BenefitCard.js +231 -0
  6. package/lib/commonjs/components/Card/Card.js +2 -1
  7. package/lib/commonjs/components/CardFeedback/CardFeedback.js +2 -1
  8. package/lib/commonjs/components/CcCard/CcCard.js +470 -0
  9. package/lib/commonjs/components/Checkbox/Checkbox.js +6 -4
  10. package/lib/commonjs/components/CheckboxItem/CheckboxItem.js +4 -3
  11. package/lib/commonjs/components/CompareTable/CompareTable.js +372 -0
  12. package/lib/commonjs/components/ComparisonBar/ComparisonBar.js +266 -0
  13. package/lib/commonjs/components/Drawer/Drawer.js +13 -4
  14. package/lib/commonjs/components/DropdownInput/DropdownInput.js +36 -4
  15. package/lib/commonjs/components/FormField/FormField.js +4 -3
  16. package/lib/commonjs/components/FullscreenModal/FullscreenModal.js +62 -2
  17. package/lib/commonjs/components/Image/Image.js +11 -5
  18. package/lib/commonjs/components/InputSearch/InputSearch.js +6 -4
  19. package/lib/commonjs/components/LottiePlayer/loadNativeLottieView.js +8 -13
  20. package/lib/commonjs/components/NoteInput/NoteInput.js +6 -5
  21. package/lib/commonjs/components/Overlay/Overlay.js +92 -0
  22. package/lib/commonjs/components/PdpCcCard/PdpCcCard.js +273 -0
  23. package/lib/commonjs/components/PlanComparisonCard/PlanComparisonCard.js +2 -1
  24. package/lib/commonjs/components/ProductMerchandisingCard/GlassFill.js +263 -0
  25. package/lib/commonjs/components/ProductMerchandisingCard/GlassFill.web.js +116 -0
  26. package/lib/commonjs/components/ProductMerchandisingCard/ProductMerchandisingCard.js +353 -0
  27. package/lib/commonjs/components/ProjectionMarker/ProjectionMarker.js +161 -0
  28. package/lib/commonjs/components/Radio/Radio.js +5 -5
  29. package/lib/commonjs/components/Slider/Slider.js +473 -0
  30. package/lib/commonjs/components/TextInput/TextInput.js +15 -9
  31. package/lib/commonjs/components/TextSegment/TextSegment.js +118 -0
  32. package/lib/commonjs/components/docs/modeControls.js +116 -0
  33. package/lib/commonjs/components/index.js +70 -0
  34. package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
  35. package/lib/commonjs/design-tokens/JFSThemeProvider.js +1 -1
  36. package/lib/commonjs/design-tokens/figma-modes.generated.js +420 -0
  37. package/lib/commonjs/design-tokens/index.js +11 -0
  38. package/lib/commonjs/icons/registry.js +1 -1
  39. package/lib/commonjs/utils/react-utils.js +22 -0
  40. package/lib/module/components/Accordion/Accordion.js +1 -2
  41. package/lib/module/components/AmountInput/AmountInput.js +6 -4
  42. package/lib/module/components/AreaLineChart/AreaLineChart.js +1 -1
  43. package/lib/module/components/Balance/Balance.js +18 -13
  44. package/lib/module/components/BenefitCard/BenefitCard.js +225 -0
  45. package/lib/module/components/Card/Card.js +1 -2
  46. package/lib/module/components/CardFeedback/CardFeedback.js +1 -2
  47. package/lib/module/components/CcCard/CcCard.js +464 -0
  48. package/lib/module/components/Checkbox/Checkbox.js +6 -6
  49. package/lib/module/components/CheckboxItem/CheckboxItem.js +5 -4
  50. package/lib/module/components/CompareTable/CompareTable.js +367 -0
  51. package/lib/module/components/ComparisonBar/ComparisonBar.js +260 -0
  52. package/lib/module/components/Drawer/Drawer.js +12 -4
  53. package/lib/module/components/DropdownInput/DropdownInput.js +37 -5
  54. package/lib/module/components/FormField/FormField.js +5 -4
  55. package/lib/module/components/FullscreenModal/FullscreenModal.js +64 -5
  56. package/lib/module/components/Image/Image.js +11 -5
  57. package/lib/module/components/InputSearch/InputSearch.js +6 -4
  58. package/lib/module/components/InstitutionBadge/InstitutionBadge.js +1 -2
  59. package/lib/module/components/LottiePlayer/loadNativeLottieView.js +8 -13
  60. package/lib/module/components/MoneyValue/MoneyValue.js +1 -2
  61. package/lib/module/components/NoteInput/NoteInput.js +7 -6
  62. package/lib/module/components/OTP/OTP.js +1 -2
  63. package/lib/module/components/Overlay/Overlay.js +87 -0
  64. package/lib/module/components/PdpCcCard/PdpCcCard.js +267 -0
  65. package/lib/module/components/PlanComparisonCard/PlanComparisonCard.js +1 -2
  66. package/lib/module/components/PoweredByLabel/PoweredByLabel.js +1 -2
  67. package/lib/module/components/ProductMerchandisingCard/GlassFill.js +257 -0
  68. package/lib/module/components/ProductMerchandisingCard/GlassFill.web.js +111 -0
  69. package/lib/module/components/ProductMerchandisingCard/ProductMerchandisingCard.js +347 -0
  70. package/lib/module/components/ProjectionMarker/ProjectionMarker.js +156 -0
  71. package/lib/module/components/Radio/Radio.js +5 -4
  72. package/lib/module/components/RechargeCard/RechargeCard.js +1 -2
  73. package/lib/module/components/Section/Section.js +1 -2
  74. package/lib/module/components/Slider/Slider.js +468 -0
  75. package/lib/module/components/TextInput/TextInput.js +16 -12
  76. package/lib/module/components/TextSegment/TextSegment.js +113 -0
  77. package/lib/module/components/UpiHandle/UpiHandle.js +1 -2
  78. package/lib/module/components/docs/modeControls.js +111 -0
  79. package/lib/module/components/index.js +10 -0
  80. package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
  81. package/lib/module/design-tokens/JFSThemeProvider.js +1 -1
  82. package/lib/module/design-tokens/figma-modes.generated.js +416 -0
  83. package/lib/module/design-tokens/index.js +2 -1
  84. package/lib/module/icons/registry.js +1 -1
  85. package/lib/module/utils/react-utils.js +21 -1
  86. package/lib/typescript/src/components/Accordion/Accordion.d.ts +2 -1
  87. package/lib/typescript/src/components/AccordionCheckbox/AccordionCheckbox.d.ts +2 -1
  88. package/lib/typescript/src/components/AccountCard/AccountCard.d.ts +2 -1
  89. package/lib/typescript/src/components/ActionFooter/ActionFooter.d.ts +2 -1
  90. package/lib/typescript/src/components/ActionTile/ActionTile.d.ts +2 -1
  91. package/lib/typescript/src/components/AllocationComparisonChart/AllocationComparisonChart.d.ts +2 -1
  92. package/lib/typescript/src/components/AmountInput/AmountInput.d.ts +5 -3
  93. package/lib/typescript/src/components/AppBar/AppBar.d.ts +2 -1
  94. package/lib/typescript/src/components/AreaLineChart/AreaLineChart.d.ts +3 -2
  95. package/lib/typescript/src/components/Attached/Attached.d.ts +2 -1
  96. package/lib/typescript/src/components/Avatar/Avatar.d.ts +2 -1
  97. package/lib/typescript/src/components/AvatarGroup/AvatarGroup.d.ts +2 -1
  98. package/lib/typescript/src/components/Badge/Badge.d.ts +2 -1
  99. package/lib/typescript/src/components/Balance/Balance.d.ts +2 -1
  100. package/lib/typescript/src/components/BenefitCard/BenefitCard.d.ts +93 -0
  101. package/lib/typescript/src/components/BottomNav/BottomNav.d.ts +2 -1
  102. package/lib/typescript/src/components/BottomNavItem/BottomNavItem.d.ts +2 -1
  103. package/lib/typescript/src/components/BrandChip/BrandChip.d.ts +2 -1
  104. package/lib/typescript/src/components/BubbleChart/BubbleChart.d.ts +2 -1
  105. package/lib/typescript/src/components/Button/Button.d.ts +2 -1
  106. package/lib/typescript/src/components/ButtonGroup/ButtonGroup.d.ts +2 -1
  107. package/lib/typescript/src/components/Card/Card.d.ts +3 -2
  108. package/lib/typescript/src/components/CardAdvisory/CardAdvisory.d.ts +2 -1
  109. package/lib/typescript/src/components/CardBankAccount/CardBankAccount.d.ts +2 -1
  110. package/lib/typescript/src/components/CardCTA/CardCTA.d.ts +2 -1
  111. package/lib/typescript/src/components/CardFeedback/CardFeedback.d.ts +7 -6
  112. package/lib/typescript/src/components/CardFinancialCondition/CardFinancialCondition.d.ts +2 -1
  113. package/lib/typescript/src/components/CardInsight/CardInsight.d.ts +2 -1
  114. package/lib/typescript/src/components/CardProviderInfo/CardProviderInfo.d.ts +2 -1
  115. package/lib/typescript/src/components/Carousel/Carousel.d.ts +4 -3
  116. package/lib/typescript/src/components/CcCard/CcCard.d.ts +137 -0
  117. package/lib/typescript/src/components/Checkbox/Checkbox.d.ts +5 -3
  118. package/lib/typescript/src/components/CheckboxGroup/CheckboxGroup.d.ts +2 -1
  119. package/lib/typescript/src/components/CheckboxItem/CheckboxItem.d.ts +4 -3
  120. package/lib/typescript/src/components/ChipGroup/ChipGroup.d.ts +2 -1
  121. package/lib/typescript/src/components/ChipSelect/ChipSelect.d.ts +2 -1
  122. package/lib/typescript/src/components/CircularProgressBar/CircularProgressBar.d.ts +2 -1
  123. package/lib/typescript/src/components/CircularProgressBarDoted/CircularProgressBarDoted.d.ts +2 -1
  124. package/lib/typescript/src/components/CircularRating/CircularRating.d.ts +2 -1
  125. package/lib/typescript/src/components/ClusterBubble/ClusterBubble.d.ts +2 -1
  126. package/lib/typescript/src/components/CompareTable/CompareTable.d.ts +88 -0
  127. package/lib/typescript/src/components/ComparisonBar/ComparisonBar.d.ts +118 -0
  128. package/lib/typescript/src/components/CoverageBarComparison/CoverageBarComparison.d.ts +3 -2
  129. package/lib/typescript/src/components/CoverageRing/CoverageRing.d.ts +2 -1
  130. package/lib/typescript/src/components/DebitCard/DebitCard.d.ts +2 -1
  131. package/lib/typescript/src/components/Disclaimer/Disclaimer.d.ts +2 -1
  132. package/lib/typescript/src/components/Divider/Divider.d.ts +2 -1
  133. package/lib/typescript/src/components/DonutChart/DonutChart.d.ts +4 -3
  134. package/lib/typescript/src/components/DonutChartSummary/DonutChartSummary.d.ts +3 -2
  135. package/lib/typescript/src/components/Drawer/Drawer.d.ts +15 -1
  136. package/lib/typescript/src/components/Dropdown/Dropdown.d.ts +3 -2
  137. package/lib/typescript/src/components/DropdownInput/DropdownInput.d.ts +22 -2
  138. package/lib/typescript/src/components/EmptyState/EmptyState.d.ts +2 -1
  139. package/lib/typescript/src/components/ExpandableCheckbox/ExpandableCheckbox.d.ts +2 -1
  140. package/lib/typescript/src/components/FilterBar/FilterBar.d.ts +3 -2
  141. package/lib/typescript/src/components/Form/Form.d.ts +2 -1
  142. package/lib/typescript/src/components/FormField/FormField.d.ts +4 -3
  143. package/lib/typescript/src/components/FullscreenModal/FullscreenModal.d.ts +2 -1
  144. package/lib/typescript/src/components/Gauge/Gauge.d.ts +2 -1
  145. package/lib/typescript/src/components/HStack/HStack.d.ts +2 -1
  146. package/lib/typescript/src/components/HoldingsCard/HoldingsCard.d.ts +2 -1
  147. package/lib/typescript/src/components/Icon/Icon.d.ts +2 -1
  148. package/lib/typescript/src/components/IconButton/IconButton.d.ts +2 -1
  149. package/lib/typescript/src/components/IconCapsule/IconCapsule.d.ts +2 -1
  150. package/lib/typescript/src/components/Image/Image.d.ts +17 -1
  151. package/lib/typescript/src/components/InputSearch/InputSearch.d.ts +25 -3
  152. package/lib/typescript/src/components/InstitutionBadge/InstitutionBadge.d.ts +2 -1
  153. package/lib/typescript/src/components/LazyList/LazyList.d.ts +2 -1
  154. package/lib/typescript/src/components/LinearMeter/LinearMeter.d.ts +3 -2
  155. package/lib/typescript/src/components/LinearProgress/LinearProgress.d.ts +2 -1
  156. package/lib/typescript/src/components/ListGroup/ListGroup.d.ts +2 -1
  157. package/lib/typescript/src/components/ListItem/ListItem.d.ts +2 -1
  158. package/lib/typescript/src/components/LottieIntroBlock/LottieIntroBlock.d.ts +2 -1
  159. package/lib/typescript/src/components/LottiePlayer/LottiePlayer.d.ts +2 -1
  160. package/lib/typescript/src/components/LottiePlayer/LottiePlayer.web.d.ts +2 -1
  161. package/lib/typescript/src/components/MediaCard/MediaCard.d.ts +6 -5
  162. package/lib/typescript/src/components/MerchantProfile/MerchantProfile.d.ts +2 -1
  163. package/lib/typescript/src/components/MessageField/MessageField.d.ts +2 -1
  164. package/lib/typescript/src/components/MetricLegendItem/MetricLegendItem.d.ts +2 -1
  165. package/lib/typescript/src/components/MoneyValue/MoneyValue.d.ts +2 -1
  166. package/lib/typescript/src/components/MonthlyStatusGrid/MonthlyStatusGrid.d.ts +4 -3
  167. package/lib/typescript/src/components/NavArrow/NavArrow.d.ts +2 -1
  168. package/lib/typescript/src/components/NoteInput/NoteInput.d.ts +21 -3
  169. package/lib/typescript/src/components/Nudge/Nudge.d.ts +2 -1
  170. package/lib/typescript/src/components/Numpad/Numpad.d.ts +2 -1
  171. package/lib/typescript/src/components/OTP/OTP.d.ts +3 -2
  172. package/lib/typescript/src/components/Overlay/Overlay.d.ts +52 -0
  173. package/lib/typescript/src/components/PageHero/PageHero.d.ts +2 -1
  174. package/lib/typescript/src/components/PaymentFeedback/PaymentFeedback.d.ts +2 -1
  175. package/lib/typescript/src/components/PdpCcCard/PdpCcCard.d.ts +84 -0
  176. package/lib/typescript/src/components/PlanComparisonCard/PlanComparisonCard.d.ts +2 -1
  177. package/lib/typescript/src/components/Popup/Popup.d.ts +2 -1
  178. package/lib/typescript/src/components/PortfolioHero/PortfolioHero.d.ts +2 -1
  179. package/lib/typescript/src/components/PoweredByLabel/PoweredByLabel.d.ts +2 -1
  180. package/lib/typescript/src/components/ProductLabel/ProductLabel.d.ts +2 -1
  181. package/lib/typescript/src/components/ProductMerchandisingCard/GlassFill.d.ts +56 -0
  182. package/lib/typescript/src/components/ProductMerchandisingCard/GlassFill.web.d.ts +27 -0
  183. package/lib/typescript/src/components/ProductMerchandisingCard/ProductMerchandisingCard.d.ts +81 -0
  184. package/lib/typescript/src/components/ProductOverview/ProductOverview.d.ts +2 -1
  185. package/lib/typescript/src/components/ProgressBadge/ProgressBadge.d.ts +2 -1
  186. package/lib/typescript/src/components/ProjectionMarker/ProjectionMarker.d.ts +82 -0
  187. package/lib/typescript/src/components/Radio/Radio.d.ts +5 -3
  188. package/lib/typescript/src/components/RadioButton/RadioButton.d.ts +2 -2
  189. package/lib/typescript/src/components/RangeTrack/RangeTrack.d.ts +3 -2
  190. package/lib/typescript/src/components/RechargeCard/RechargeCard.d.ts +2 -1
  191. package/lib/typescript/src/components/SavingsGoalSummary/SavingsGoalSummary.d.ts +2 -1
  192. package/lib/typescript/src/components/Screen/Screen.d.ts +2 -1
  193. package/lib/typescript/src/components/Section/Section.d.ts +3 -2
  194. package/lib/typescript/src/components/SegmentedControl/SegmentedControl.d.ts +2 -1
  195. package/lib/typescript/src/components/SegmentedTrack/SegmentedTrack.d.ts +4 -3
  196. package/lib/typescript/src/components/Slider/Slider.d.ts +99 -0
  197. package/lib/typescript/src/components/Slot/Slot.d.ts +2 -1
  198. package/lib/typescript/src/components/Spinner/Spinner.d.ts +2 -1
  199. package/lib/typescript/src/components/StatGroup/StatGroup.d.ts +2 -1
  200. package/lib/typescript/src/components/StatItem/StatItem.d.ts +2 -1
  201. package/lib/typescript/src/components/StatusHero/StatusHero.d.ts +2 -1
  202. package/lib/typescript/src/components/Stepper/Step.d.ts +2 -1
  203. package/lib/typescript/src/components/Stepper/StepLabel.d.ts +2 -1
  204. package/lib/typescript/src/components/Stepper/Stepper.d.ts +2 -1
  205. package/lib/typescript/src/components/StrengthIndicator/StrengthIndicator.d.ts +2 -1
  206. package/lib/typescript/src/components/SuggestiveSearch/SuggestiveSearch.d.ts +2 -1
  207. package/lib/typescript/src/components/SummaryTile/SummaryTile.d.ts +2 -1
  208. package/lib/typescript/src/components/SupportText/SupportText.d.ts +2 -1
  209. package/lib/typescript/src/components/SupportText/SupportTextIcon.d.ts +2 -1
  210. package/lib/typescript/src/components/SwappableAmount/SwappableAmount.d.ts +2 -1
  211. package/lib/typescript/src/components/Tabs/TabItem.d.ts +2 -1
  212. package/lib/typescript/src/components/Tabs/Tabs.d.ts +2 -1
  213. package/lib/typescript/src/components/TestimonialsCard/TestimonialsCard.d.ts +2 -1
  214. package/lib/typescript/src/components/Text/Text.d.ts +2 -1
  215. package/lib/typescript/src/components/TextInput/TextInput.d.ts +12 -31
  216. package/lib/typescript/src/components/TextSegment/TextSegment.d.ts +100 -0
  217. package/lib/typescript/src/components/ThreadHero/ThreadHero.d.ts +2 -1
  218. package/lib/typescript/src/components/Title/Title.d.ts +2 -1
  219. package/lib/typescript/src/components/Toast/Toast.d.ts +2 -1
  220. package/lib/typescript/src/components/Toast/ToastProvider.d.ts +2 -1
  221. package/lib/typescript/src/components/Toast/useToast.d.ts +3 -2
  222. package/lib/typescript/src/components/Toggle/Toggle.d.ts +2 -1
  223. package/lib/typescript/src/components/Tooltip/Tooltip.d.ts +2 -1
  224. package/lib/typescript/src/components/TransactionBubble/TransactionBubble.d.ts +2 -1
  225. package/lib/typescript/src/components/TransactionDetails/TransactionDetails.d.ts +3 -2
  226. package/lib/typescript/src/components/TransactionStatus/TransactionStatus.d.ts +2 -1
  227. package/lib/typescript/src/components/UpiHandle/UpiHandle.d.ts +2 -1
  228. package/lib/typescript/src/components/VStack/VStack.d.ts +2 -1
  229. package/lib/typescript/src/components/docs/modeControls.d.ts +28 -0
  230. package/lib/typescript/src/components/index.d.ts +11 -1
  231. package/lib/typescript/src/design-tokens/JFSThemeProvider.d.ts +4 -3
  232. package/lib/typescript/src/design-tokens/figma-modes.generated.d.ts +284 -0
  233. package/lib/typescript/src/design-tokens/index.d.ts +1 -0
  234. package/lib/typescript/src/icons/registry.d.ts +1 -1
  235. package/lib/typescript/src/skeleton/Skeleton.d.ts +2 -1
  236. package/lib/typescript/src/utils/react-utils.d.ts +12 -1
  237. package/package.json +4 -2
  238. package/src/components/Accordion/Accordion.tsx +2 -1
  239. package/src/components/AccordionCheckbox/AccordionCheckbox.tsx +2 -1
  240. package/src/components/AccountCard/AccountCard.tsx +2 -1
  241. package/src/components/ActionFooter/ActionFooter.tsx +2 -1
  242. package/src/components/ActionTile/ActionTile.tsx +2 -1
  243. package/src/components/AllocationComparisonChart/AllocationComparisonChart.tsx +2 -1
  244. package/src/components/AmountInput/AmountInput.tsx +9 -6
  245. package/src/components/AppBar/AppBar.tsx +2 -1
  246. package/src/components/AreaLineChart/AreaLineChart.tsx +8 -7
  247. package/src/components/Attached/Attached.tsx +2 -1
  248. package/src/components/Avatar/Avatar.tsx +3 -2
  249. package/src/components/AvatarGroup/AvatarGroup.tsx +2 -1
  250. package/src/components/Badge/Badge.tsx +2 -1
  251. package/src/components/Balance/Balance.tsx +18 -12
  252. package/src/components/BenefitCard/BenefitCard.tsx +309 -0
  253. package/src/components/BottomNav/BottomNav.tsx +2 -1
  254. package/src/components/BottomNavItem/BottomNavItem.tsx +3 -2
  255. package/src/components/BrandChip/BrandChip.tsx +3 -2
  256. package/src/components/BubbleChart/BubbleChart.tsx +2 -1
  257. package/src/components/Button/Button.tsx +3 -2
  258. package/src/components/ButtonGroup/ButtonGroup.tsx +2 -1
  259. package/src/components/Card/Card.tsx +4 -3
  260. package/src/components/CardAdvisory/CardAdvisory.tsx +3 -2
  261. package/src/components/CardBankAccount/CardBankAccount.tsx +2 -1
  262. package/src/components/CardCTA/CardCTA.tsx +3 -2
  263. package/src/components/CardFeedback/CardFeedback.tsx +11 -10
  264. package/src/components/CardFinancialCondition/CardFinancialCondition.tsx +3 -2
  265. package/src/components/CardInsight/CardInsight.tsx +2 -1
  266. package/src/components/CardProviderInfo/CardProviderInfo.tsx +2 -1
  267. package/src/components/Carousel/Carousel.tsx +5 -4
  268. package/src/components/CcCard/CcCard.tsx +598 -0
  269. package/src/components/Checkbox/Checkbox.tsx +7 -5
  270. package/src/components/CheckboxGroup/CheckboxGroup.tsx +2 -1
  271. package/src/components/CheckboxItem/CheckboxItem.tsx +7 -5
  272. package/src/components/ChipGroup/ChipGroup.tsx +2 -1
  273. package/src/components/ChipSelect/ChipSelect.tsx +2 -1
  274. package/src/components/CircularProgressBar/CircularProgressBar.tsx +2 -1
  275. package/src/components/CircularProgressBarDoted/CircularProgressBarDoted.tsx +2 -1
  276. package/src/components/CircularRating/CircularRating.tsx +3 -2
  277. package/src/components/ClusterBubble/ClusterBubble.tsx +2 -1
  278. package/src/components/CompareTable/CompareTable.tsx +477 -0
  279. package/src/components/ComparisonBar/ComparisonBar.tsx +356 -0
  280. package/src/components/CoverageBarComparison/CoverageBarComparison.tsx +3 -2
  281. package/src/components/CoverageRing/CoverageRing.tsx +2 -1
  282. package/src/components/DebitCard/DebitCard.tsx +2 -1
  283. package/src/components/Disclaimer/Disclaimer.tsx +2 -1
  284. package/src/components/Divider/Divider.tsx +2 -1
  285. package/src/components/DonutChart/DonutChart.tsx +6 -5
  286. package/src/components/DonutChartSummary/DonutChartSummary.tsx +3 -2
  287. package/src/components/Drawer/Drawer.tsx +21 -1
  288. package/src/components/Dropdown/Dropdown.tsx +4 -3
  289. package/src/components/DropdownInput/DropdownInput.tsx +60 -7
  290. package/src/components/EmptyState/EmptyState.tsx +2 -1
  291. package/src/components/ExpandableCheckbox/ExpandableCheckbox.tsx +2 -1
  292. package/src/components/FilterBar/FilterBar.tsx +3 -2
  293. package/src/components/Form/Form.tsx +2 -1
  294. package/src/components/FormField/FormField.tsx +8 -6
  295. package/src/components/FullscreenModal/FullscreenModal.tsx +68 -10
  296. package/src/components/Gauge/Gauge.tsx +2 -1
  297. package/src/components/HStack/HStack.tsx +2 -1
  298. package/src/components/HoldingsCard/HoldingsCard.tsx +2 -1
  299. package/src/components/Icon/Icon.tsx +3 -2
  300. package/src/components/IconButton/IconButton.tsx +3 -2
  301. package/src/components/IconCapsule/IconCapsule.tsx +3 -2
  302. package/src/components/Image/Image.tsx +29 -5
  303. package/src/components/InputSearch/InputSearch.tsx +11 -7
  304. package/src/components/InstitutionBadge/InstitutionBadge.tsx +3 -2
  305. package/src/components/LazyList/LazyList.tsx +2 -1
  306. package/src/components/LinearMeter/LinearMeter.tsx +3 -2
  307. package/src/components/LinearProgress/LinearProgress.tsx +2 -1
  308. package/src/components/ListGroup/ListGroup.tsx +2 -1
  309. package/src/components/ListItem/ListItem.tsx +3 -2
  310. package/src/components/LottieIntroBlock/LottieIntroBlock.tsx +2 -1
  311. package/src/components/LottiePlayer/LottiePlayer.tsx +3 -2
  312. package/src/components/LottiePlayer/LottiePlayer.web.tsx +3 -2
  313. package/src/components/LottiePlayer/loadNativeLottieView.tsx +9 -13
  314. package/src/components/MediaCard/MediaCard.tsx +7 -6
  315. package/src/components/MerchantProfile/MerchantProfile.tsx +2 -1
  316. package/src/components/MessageField/MessageField.tsx +3 -2
  317. package/src/components/MetricLegendItem/MetricLegendItem.tsx +2 -1
  318. package/src/components/MoneyValue/MoneyValue.tsx +2 -1
  319. package/src/components/MonthlyStatusGrid/MonthlyStatusGrid.tsx +5 -4
  320. package/src/components/NavArrow/NavArrow.tsx +3 -2
  321. package/src/components/NoteInput/NoteInput.tsx +10 -7
  322. package/src/components/Nudge/Nudge.tsx +3 -2
  323. package/src/components/Numpad/Numpad.tsx +2 -1
  324. package/src/components/OTP/OTP.tsx +3 -2
  325. package/src/components/Overlay/Overlay.tsx +114 -0
  326. package/src/components/PageHero/PageHero.tsx +2 -1
  327. package/src/components/PaymentFeedback/PaymentFeedback.tsx +2 -1
  328. package/src/components/PdpCcCard/PdpCcCard.tsx +356 -0
  329. package/src/components/PlanComparisonCard/PlanComparisonCard.tsx +2 -1
  330. package/src/components/Popup/Popup.tsx +2 -1
  331. package/src/components/PortfolioHero/PortfolioHero.tsx +2 -1
  332. package/src/components/PoweredByLabel/PoweredByLabel.tsx +2 -1
  333. package/src/components/ProductLabel/ProductLabel.tsx +2 -1
  334. package/src/components/ProductMerchandisingCard/GlassFill.tsx +276 -0
  335. package/src/components/ProductMerchandisingCard/GlassFill.web.tsx +127 -0
  336. package/src/components/ProductMerchandisingCard/ProductMerchandisingCard.tsx +423 -0
  337. package/src/components/ProductOverview/ProductOverview.tsx +2 -1
  338. package/src/components/ProgressBadge/ProgressBadge.tsx +2 -1
  339. package/src/components/ProjectionMarker/ProjectionMarker.tsx +277 -0
  340. package/src/components/Radio/Radio.tsx +7 -5
  341. package/src/components/RangeTrack/RangeTrack.tsx +3 -2
  342. package/src/components/RechargeCard/RechargeCard.tsx +2 -1
  343. package/src/components/SavingsGoalSummary/SavingsGoalSummary.tsx +2 -1
  344. package/src/components/Screen/Screen.tsx +2 -1
  345. package/src/components/Section/Section.tsx +6 -5
  346. package/src/components/SegmentedControl/SegmentedControl.tsx +3 -2
  347. package/src/components/SegmentedTrack/SegmentedTrack.tsx +5 -4
  348. package/src/components/Slider/Slider.tsx +628 -0
  349. package/src/components/Slot/Slot.tsx +2 -1
  350. package/src/components/Spinner/Spinner.tsx +2 -1
  351. package/src/components/StatGroup/StatGroup.tsx +3 -2
  352. package/src/components/StatItem/StatItem.tsx +2 -1
  353. package/src/components/StatusHero/StatusHero.tsx +2 -1
  354. package/src/components/Stepper/Step.tsx +2 -1
  355. package/src/components/Stepper/StepLabel.tsx +2 -1
  356. package/src/components/Stepper/Stepper.tsx +2 -1
  357. package/src/components/StrengthIndicator/StrengthIndicator.tsx +2 -1
  358. package/src/components/SuggestiveSearch/SuggestiveSearch.tsx +4 -3
  359. package/src/components/SummaryTile/SummaryTile.tsx +2 -1
  360. package/src/components/SupportText/SupportText.tsx +2 -1
  361. package/src/components/SupportText/SupportTextIcon.tsx +2 -1
  362. package/src/components/SwappableAmount/SwappableAmount.tsx +2 -1
  363. package/src/components/Tabs/TabItem.tsx +2 -1
  364. package/src/components/Tabs/Tabs.tsx +2 -1
  365. package/src/components/TestimonialsCard/TestimonialsCard.tsx +2 -1
  366. package/src/components/Text/Text.tsx +2 -1
  367. package/src/components/TextInput/TextInput.tsx +18 -13
  368. package/src/components/TextSegment/TextSegment.tsx +166 -0
  369. package/src/components/ThreadHero/ThreadHero.tsx +2 -1
  370. package/src/components/Title/Title.tsx +2 -1
  371. package/src/components/Toast/Toast.tsx +2 -1
  372. package/src/components/Toast/ToastProvider.tsx +2 -1
  373. package/src/components/Toast/useToast.ts +3 -2
  374. package/src/components/Toggle/Toggle.tsx +2 -1
  375. package/src/components/Tooltip/Tooltip.tsx +3 -2
  376. package/src/components/TransactionBubble/TransactionBubble.tsx +2 -1
  377. package/src/components/TransactionDetails/TransactionDetails.tsx +3 -2
  378. package/src/components/TransactionStatus/TransactionStatus.tsx +3 -2
  379. package/src/components/UpiHandle/UpiHandle.tsx +3 -2
  380. package/src/components/VStack/VStack.tsx +2 -1
  381. package/src/components/docs/modeControls.tsx +122 -0
  382. package/src/components/index.ts +11 -1
  383. package/src/design-tokens/Coin Variables-variables-full.json +1 -1
  384. package/src/design-tokens/JFSThemeProvider.tsx +4 -3
  385. package/src/design-tokens/figma-modes.generated.ts +425 -0
  386. package/src/design-tokens/index.ts +1 -0
  387. package/src/icons/registry.ts +1 -1
  388. package/src/skeleton/Skeleton.tsx +2 -1
  389. package/src/utils/react-utils.ts +26 -2
  390. package/lib/typescript/scripts/extract-component-tokens.d.ts +0 -9
  391. package/lib/typescript/scripts/generate-component-docs.d.ts +0 -9
  392. package/lib/typescript/scripts/generate-icon-registry.d.ts +0 -3
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
3
3
  import { type StrengthIndicatorConfidenceValue } from '../StrengthIndicator/StrengthIndicator';
4
+ import type { Modes } from '../../design-tokens';
4
5
  export type SummaryTileProps = {
5
6
  /** Bold heading shown at the top-left of the tile. */
6
7
  title?: string;
@@ -35,7 +36,7 @@ export type SummaryTileProps = {
35
36
  */
36
37
  onPress?: () => void;
37
38
  /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
38
- modes?: Record<string, any>;
39
+ modes?: Modes;
39
40
  /** Override container styles. */
40
41
  style?: StyleProp<ViewStyle>;
41
42
  /** Override the title text styles. */
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type ViewStyle } from 'react-native';
3
3
  import { type SupportTextStatus } from './SupportTextIcon';
4
+ import type { Modes } from '../../design-tokens';
4
5
  export type SupportTextProps = {
5
6
  /**
6
7
  * Text to display
@@ -23,7 +24,7 @@ export type SupportTextProps = {
23
24
  /**
24
25
  * Modes object for design token resolution.
25
26
  */
26
- modes?: Record<string, any>;
27
+ modes?: Modes;
27
28
  style?: StyleProp<ViewStyle>;
28
29
  };
29
30
  /**
@@ -1,8 +1,9 @@
1
1
  import { type ViewStyle } from 'react-native';
2
+ import type { Modes } from '../../design-tokens';
2
3
  export type SupportTextStatus = 'Neutral' | 'Warning' | 'Error' | 'Success' | 'Loading';
3
4
  export type SupportTextIconProps = {
4
5
  status?: SupportTextStatus;
5
- modes?: Record<string, any>;
6
+ modes?: Modes;
6
7
  style?: ViewStyle;
7
8
  };
8
9
  declare function SupportTextIcon({ status, modes, style, }: SupportTextIconProps): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import { type ViewStyle } from 'react-native';
2
+ import type { Modes } from '../../design-tokens';
2
3
  export type SwappableAmountProps = {
3
4
  /** Large display value (e.g. "49g"). */
4
5
  value?: string;
@@ -13,7 +14,7 @@ export type SwappableAmountProps = {
13
14
  /** Callback when the amount/swap button is pressed. */
14
15
  onAmountPress?: () => void;
15
16
  /** Modes configuration for design token resolution. */
16
- modes?: Record<string, any>;
17
+ modes?: Modes;
17
18
  /** Container style override. */
18
19
  style?: ViewStyle;
19
20
  };
@@ -1,4 +1,5 @@
1
1
  import { type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
2
+ import type { Modes } from '../../design-tokens';
2
3
  export interface TabItemProps {
3
4
  /** Label text to display */
4
5
  label?: string;
@@ -7,7 +8,7 @@ export interface TabItemProps {
7
8
  /** Callback when this tab item is pressed */
8
9
  onPress?: () => void;
9
10
  /** Design token modes for theming */
10
- modes?: Record<string, any>;
11
+ modes?: Modes;
11
12
  /** Override container styles */
12
13
  style?: StyleProp<ViewStyle>;
13
14
  /** Override label text styles */
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type ViewStyle } from 'react-native';
3
3
  import TabItem from './TabItem';
4
+ import type { Modes } from '../../design-tokens';
4
5
  export interface TabsProps {
5
6
  /**
6
7
  * Tab item children. Each child should be a <TabItem> component.
@@ -8,7 +9,7 @@ export interface TabsProps {
8
9
  */
9
10
  children: React.ReactNode;
10
11
  /** Design token modes for theming */
11
- modes?: Record<string, any>;
12
+ modes?: Modes;
12
13
  /**
13
14
  * When true, the tabs row scrolls horizontally (useful for many items).
14
15
  * @default false
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { type ViewStyle, type StyleProp } from 'react-native';
3
3
  import { type AvatarProps } from '../Avatar/Avatar';
4
+ import type { Modes } from '../../design-tokens';
4
5
  export type TestimonialsCardProps = {
5
6
  /**
6
7
  * The testimonial heading, typically the author's name.
@@ -14,7 +15,7 @@ export type TestimonialsCardProps = {
14
15
  * Mode configuration passed to the token resolver. Also forwarded to the
15
16
  * Avatar child for consistent theming.
16
17
  */
17
- modes?: Record<string, any>;
18
+ modes?: Modes;
18
19
  /**
19
20
  * Optional style overrides for the card container.
20
21
  */
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type TextStyle, type StyleProp } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export type TextProps = {
4
5
  /**
5
6
  * The text content to display. You may also pass content as JSX children
@@ -15,7 +16,7 @@ export type TextProps = {
15
16
  /** Horizontal alignment of the text. */
16
17
  textAlign?: 'Left' | 'Center';
17
18
  /** Modes configuration for design token resolution. */
18
- modes?: Record<string, any>;
19
+ modes?: Modes;
19
20
  /** Style override for the text. */
20
21
  style?: StyleProp<TextStyle>;
21
22
  /** Number of lines to limit the text to. */
@@ -1,56 +1,37 @@
1
1
  import React from 'react';
2
- import { type StyleProp, type ViewStyle, type TextInputProps as RNTextInputProps, type TextStyle } from 'react-native';
3
- type TextInputProps = {
2
+ import { TextInput as RNTextInput, type StyleProp, type ViewStyle, type TextInputProps as RNTextInputProps, type TextStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
4
+ declare const TextInputBase: React.ForwardRefExoticComponent<{
4
5
  placeholder?: string;
5
6
  value?: string;
6
7
  onChangeText?: (text: string) => void;
7
8
  leadingIconName?: string;
8
9
  leading?: React.ReactNode;
9
10
  trailing?: React.ReactNode;
10
- modes?: Record<string, any>;
11
+ modes?: Modes;
11
12
  style?: StyleProp<ViewStyle>;
12
13
  inputStyle?: StyleProp<TextStyle>;
13
14
  onFocus?: (e: any) => void;
14
15
  onBlur?: (e: any) => void;
15
16
  accessibilityLabel?: string;
16
17
  accessibilityHint?: string;
17
- } & Omit<RNTextInputProps, 'style' | 'onChangeText' | 'onFocus' | 'onBlur' | 'placeholder' | 'value'>;
18
- declare function TextInput({ placeholder, value, onChangeText, leadingIconName, leading, trailing, modes, style, inputStyle, onFocus, onBlur, accessibilityLabel, accessibilityHint, ...rest }: TextInputProps): import("react/jsx-runtime").JSX.Element;
19
- declare namespace TextInput {
20
- var Search: typeof TextInputSearch;
21
- }
22
- /**
23
- * TextInput.Search component that mirrors the Figma "textInput.search" component.
24
- *
25
- * This is a convenience variant that pre-configures the TextInput with:
26
- * - Default search icon in the leading slot
27
- * - No trailing slot
28
- * - Default placeholder text "Search"
29
- *
30
- * @component
31
- * @param {Object} props
32
- * @param {string} [props.placeholder='Search'] - Placeholder text (defaults to "Search")
33
- * @param {string} [props.value=''] - Current value of the input
34
- * @param {Function} [props.onChangeText] - Callback function called when text changes
35
- * @param {React.ReactNode} [props.leading] - Optional leading slot (defaults to search icon)
36
- * @param {Object} [props.modes={}] - Modes object passed to `getVariableByName` for all design tokens
37
- * @param {Object} [props.style] - Optional container style overrides
38
- * @param {Object} [props.inputStyle] - Optional text input style overrides
39
- * @param {Object} [props.rest] - Additional props passed to the underlying TextInput
40
- */
41
- type TextInputSearchProps = {
18
+ } & Omit<RNTextInputProps, "style" | "value" | "onFocus" | "onBlur" | "placeholder" | "onChangeText"> & React.RefAttributes<RNTextInput>>;
19
+ declare const TextInputSearch: React.ForwardRefExoticComponent<{
42
20
  placeholder?: string;
43
21
  value?: string;
44
22
  onChangeText?: (text: string) => void;
45
23
  leading?: React.ReactNode;
46
- modes?: Record<string, any>;
24
+ modes?: Modes;
47
25
  style?: StyleProp<ViewStyle>;
48
26
  inputStyle?: StyleProp<TextStyle>;
49
27
  accessibilityLabel?: string;
50
28
  accessibilityHint?: string;
51
29
  onFocus?: (e: any) => void;
52
30
  onBlur?: (e: any) => void;
53
- } & Omit<RNTextInputProps, 'style' | 'onChangeText' | 'onFocus' | 'onBlur' | 'placeholder' | 'value'>;
54
- declare function TextInputSearch({ placeholder, value, onChangeText, leading, modes, style, inputStyle, accessibilityLabel, accessibilityHint, onFocus, onBlur, ...rest }: TextInputSearchProps): import("react/jsx-runtime").JSX.Element;
31
+ } & Omit<RNTextInputProps, "style" | "value" | "onFocus" | "onBlur" | "placeholder" | "onChangeText"> & React.RefAttributes<RNTextInput>>;
32
+ type TextInputComponent = typeof TextInputBase & {
33
+ Search: typeof TextInputSearch;
34
+ };
35
+ declare const TextInput: TextInputComponent;
55
36
  export default TextInput;
56
37
  //# sourceMappingURL=TextInput.d.ts.map
@@ -0,0 +1,100 @@
1
+ import React from 'react';
2
+ import { type TextStyle, type StyleProp } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
4
+ /**
5
+ * A single coloured run inside a {@link TextSegment}. Each run can carry its own
6
+ * `modes`, so individual fragments of the same paragraph can resolve different
7
+ * design tokens (most commonly a different `text/foreground` colour) while still
8
+ * flowing — and wrapping — inline as one continuous line of text.
9
+ */
10
+ export type TextSegmentRun = {
11
+ /** The text for this run. Include trailing/leading spaces yourself when you want spacing between runs (inline text has no gap concept). */
12
+ text: string;
13
+ /**
14
+ * Per-run mode overrides. Merged on top of the parent `TextSegment` modes, so
15
+ * a run only needs to specify what differs (e.g. `{ 'Text Appearance': 'Primary' }`
16
+ * to recolour just that fragment). Everything else is inherited.
17
+ */
18
+ modes?: Modes;
19
+ /** Optional per-run style override applied last, on top of the token-resolved style. */
20
+ style?: StyleProp<TextStyle>;
21
+ };
22
+ export type TextSegmentProps = {
23
+ /**
24
+ * Declarative, data-driven way to compose a multi-colour string. Each entry
25
+ * becomes an inline run. This is the simplest API when the segments are known
26
+ * up front:
27
+ *
28
+ * ```tsx
29
+ * <TextSegment segments={[
30
+ * { text: 'Upsell message ' },
31
+ * { text: 'JioFinance+', modes: { 'Text Appearance': 'Primary' } },
32
+ * ]} />
33
+ * ```
34
+ *
35
+ * When both `segments` and `children` are provided, `children` win.
36
+ */
37
+ segments?: TextSegmentRun[];
38
+ /**
39
+ * Compositional alternative to {@link TextSegmentProps.segments}. Pass library
40
+ * `Text` elements (or plain strings) as children and they are rendered nested
41
+ * inside the same paragraph so they wrap together. The parent `modes` cascade
42
+ * down to every child via `cloneChildrenWithModes`, and each child may still
43
+ * override with its own `modes`:
44
+ *
45
+ * ```tsx
46
+ * <TextSegment>
47
+ * <Text>Upsell message </Text>
48
+ * <Text modes={{ 'Text Appearance': 'Primary' }}>JioFinance+</Text>
49
+ * </TextSegment>
50
+ * ```
51
+ */
52
+ children?: React.ReactNode;
53
+ /** Horizontal alignment of the whole paragraph. */
54
+ textAlign?: 'Left' | 'Center';
55
+ /** Clamp the paragraph to this many lines (truncates with an ellipsis). Applies to the whole composed line, not per-run. */
56
+ numberOfLines?: number;
57
+ /** Mode configuration used for the base style and cascaded to every run/child. */
58
+ modes?: Modes;
59
+ /** Style override applied to the outer paragraph (e.g. width constraints to force wrapping). */
60
+ style?: StyleProp<TextStyle>;
61
+ };
62
+ /**
63
+ * TextSegment — composes several differently-styled text runs into a single
64
+ * paragraph that wraps as one continuous line.
65
+ *
66
+ * On the web you would reach for `<span>`s inside a `<p>`; the React Native
67
+ * equivalent is nesting `<Text>` inside a parent `<Text>`. That nesting is the
68
+ * whole trick: sibling `<View>`s would lay out as flex blocks and break onto
69
+ * rigid rows, but nested `<Text>` nodes flow inline and wrap naturally at word
70
+ * boundaries — exactly like a real paragraph — while each nested run keeps its
71
+ * own colour/weight resolved from its own `modes`.
72
+ *
73
+ * Two equivalent ways to author content:
74
+ * - **`segments` prop** — declarative array of `{ text, modes }` runs.
75
+ * - **`children`** — pass library `Text` elements (or strings); the parent
76
+ * `modes` cascade down and each child may override its own.
77
+ *
78
+ * @example Data-driven
79
+ * ```tsx
80
+ * <TextSegment
81
+ * segments={[
82
+ * { text: 'Upsell message ' },
83
+ * { text: 'JioFinance+', modes: { 'Text Appearance': 'Primary' } },
84
+ * ]}
85
+ * />
86
+ * ```
87
+ *
88
+ * @example Compositional
89
+ * ```tsx
90
+ * <TextSegment numberOfLines={2}>
91
+ * <Text>Pay with </Text>
92
+ * <Text modes={{ 'Text Appearance': 'Primary' }}>JioFinance+</Text>
93
+ * <Text> and earn rewards on every transaction.</Text>
94
+ * </TextSegment>
95
+ * ```
96
+ */
97
+ declare function TextSegment({ segments, children, textAlign, numberOfLines, modes, style, }: TextSegmentProps): import("react/jsx-runtime").JSX.Element;
98
+ declare const _default: React.MemoExoticComponent<typeof TextSegment>;
99
+ export default _default;
100
+ //# sourceMappingURL=TextSegment.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import { type ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export type ThreadHeroProps = {
4
5
  /** Title text, e.g. "Subhash Rajan" */
5
6
  title?: string;
@@ -10,7 +11,7 @@ export type ThreadHeroProps = {
10
11
  /** Slot for Avatar component */
11
12
  renderAvatar?: ReactNode;
12
13
  /** Modes for design token resolution */
13
- modes?: Record<string, any>;
14
+ modes?: Modes;
14
15
  /** Optional container style */
15
16
  style?: ViewStyle;
16
17
  };
@@ -1,12 +1,13 @@
1
1
  import React from 'react';
2
2
  import { View, type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export type TitleProps = {
4
5
  title?: string;
5
6
  /** Optional subtitle displayed below the title. */
6
7
  subtitle?: string;
7
8
  /** Horizontal alignment of the title text. */
8
9
  textAlign?: 'Left' | 'Center';
9
- modes?: Record<string, any>;
10
+ modes?: Modes;
10
11
  style?: StyleProp<ViewStyle>;
11
12
  textStyle?: StyleProp<TextStyle>;
12
13
  /** Optional style overrides for the subtitle text. */
@@ -1,11 +1,12 @@
1
1
  import { type StyleProp, type ViewStyle } from 'react-native';
2
2
  import { type ToastPlacement } from './useToast';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export interface ToastProps {
4
5
  id: string;
5
6
  title: string;
6
7
  timeout?: number | undefined;
7
8
  onClose?: (() => void) | undefined;
8
- modes?: Record<string, any> | undefined;
9
+ modes?: Modes | undefined;
9
10
  placement?: ToastPlacement | undefined;
10
11
  style?: StyleProp<ViewStyle> | undefined;
11
12
  }
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
2
  import { type ToastPlacement } from './useToast';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export interface ToastProviderProps {
4
5
  children: React.ReactNode;
5
6
  maxVisibleToasts?: number;
6
7
  placement?: ToastPlacement;
7
- modes?: Record<string, any>;
8
+ modes?: Modes;
8
9
  }
9
10
  declare function ToastProvider({ children, maxVisibleToasts, placement, modes, }: ToastProviderProps): import("react/jsx-runtime").JSX.Element;
10
11
  export default ToastProvider;
@@ -1,16 +1,17 @@
1
+ import type { Modes } from '../../design-tokens';
1
2
  export type ToastPlacement = 'top' | 'bottom';
2
3
  export interface ToastOptions {
3
4
  title: string;
4
5
  timeout?: number;
5
6
  onClose?: () => void;
6
- modes?: Record<string, any>;
7
+ modes?: Modes;
7
8
  }
8
9
  export interface ToastEntry {
9
10
  id: string;
10
11
  title: string;
11
12
  timeout: number;
12
13
  onClose?: (() => void) | undefined;
13
- modes?: Record<string, any> | undefined;
14
+ modes?: Modes | undefined;
14
15
  }
15
16
  export declare function addToast(options: ToastOptions): string;
16
17
  export declare function closeToast(id: string): void;
@@ -1,4 +1,5 @@
1
1
  import { type StyleProp, type ViewStyle } from 'react-native';
2
+ import type { Modes } from '../../design-tokens';
2
3
  export interface ToggleProps {
3
4
  /** Whether the toggle is on (controlled) */
4
5
  value?: boolean;
@@ -9,7 +10,7 @@ export interface ToggleProps {
9
10
  /** Whether the toggle is disabled */
10
11
  disabled?: boolean;
11
12
  /** Design token modes for theming */
12
- modes?: Record<string, any>;
13
+ modes?: Modes;
13
14
  /** Override container styles */
14
15
  style?: StyleProp<ViewStyle>;
15
16
  /** Accessibility label for screen readers */
@@ -1,9 +1,10 @@
1
1
  import React, { ReactNode } from 'react';
2
2
  import { Pressable, ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export type Placement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
4
5
  export type TooltipProps = {
5
6
  children: ReactNode;
6
- modes?: Record<string, any>;
7
+ modes?: Modes;
7
8
  /** Initial visibility state (controlled) */
8
9
  open?: boolean;
9
10
  /** Callback when visibility changes */
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { type ViewStyle, type PressableProps } from 'react-native';
3
3
  import { type WebAccessibilityProps } from '../../utils/web-platform-utils';
4
+ import type { Modes } from '../../design-tokens';
4
5
  export type TransactionBubbleProps = {
5
6
  description?: string;
6
7
  value?: string | number;
@@ -10,7 +11,7 @@ export type TransactionBubbleProps = {
10
11
  /** Slot for the status area. When provided, replaces the default TransactionStatus + NavArrow. */
11
12
  statusSlot?: React.ReactNode;
12
13
  children?: React.ReactNode;
13
- modes?: Record<string, any>;
14
+ modes?: Modes;
14
15
  onPress?: () => void;
15
16
  style?: ViewStyle;
16
17
  accessibilityLabel?: string;
@@ -1,12 +1,13 @@
1
1
  import React from 'react';
2
2
  import { View, type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export type TransactionDetailsItemProps = {
4
5
  /** The label text displayed above the value (e.g., "UPI transaction ID") */
5
6
  label?: string;
6
7
  /** The value text displayed below the label (e.g., "101674916166") */
7
8
  value?: string;
8
9
  /** Modes object passed to `getVariableByName` for design token resolution */
9
- modes?: Record<string, any>;
10
+ modes?: Modes;
10
11
  /** Optional container style overrides */
11
12
  style?: StyleProp<ViewStyle>;
12
13
  /** Optional label text style overrides */
@@ -20,7 +21,7 @@ export type TransactionDetailsProps = {
20
21
  /** Slot for TransactionDetails.Item children */
21
22
  children?: React.ReactNode;
22
23
  /** Modes object passed to `getVariableByName` for design token resolution */
23
- modes?: Record<string, any>;
24
+ modes?: Modes;
24
25
  /** Optional container style overrides */
25
26
  style?: StyleProp<ViewStyle>;
26
27
  /** Accessibility label for screen readers */
@@ -1,11 +1,12 @@
1
1
  import { type ViewStyle } from 'react-native';
2
+ import type { Modes } from '../../design-tokens';
2
3
  export type TransactionStatusProps = {
3
4
  /** Status text, e.g. "Expired" */
4
5
  status?: string;
5
6
  /** Date text, e.g. "20 Mar 2025" */
6
7
  date?: string;
7
8
  /** Modes for design token resolution */
8
- modes?: Record<string, any>;
9
+ modes?: Modes;
9
10
  /** Optional container style */
10
11
  style?: ViewStyle;
11
12
  };
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
2
  import { View, type ImageSourcePropType } from 'react-native';
3
3
  import { type UnifiedSource } from '../../utils/MediaSource';
4
+ import type { Modes } from '../../design-tokens';
4
5
  type UpiHandleProps = {
5
6
  label?: string;
6
- modes?: Record<string, any>;
7
+ modes?: Modes;
7
8
  showIcon?: boolean;
8
9
  iconName?: string;
9
10
  /**
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ViewStyle, ViewProps } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export interface VStackProps extends ViewProps {
4
5
  /**
5
6
  * The content to display inside the stack.
@@ -31,7 +32,7 @@ export interface VStackProps extends ViewProps {
31
32
  /**
32
33
  * Modes object to override default variable values.
33
34
  */
34
- modes?: Record<string, any>;
35
+ modes?: Modes;
35
36
  }
36
37
  /**
37
38
  * VStack component for vertical layout using design token spacing.
@@ -0,0 +1,28 @@
1
+ type Collections = readonly string[];
2
+ /**
3
+ * Build `argTypes` entries — one `select` per multi-mode collection, grouped
4
+ * under a "Modes" category. Spread the result into your story `meta.argTypes`.
5
+ */
6
+ export declare function modeArgTypes(componentOrCollections: string | Collections, extra?: Collections): Record<string, unknown>;
7
+ /**
8
+ * A decorator that merges the picked collection modes into `args.modes` and
9
+ * strips the synthetic control args before they reach the component.
10
+ */
11
+ export declare function modeDecorator(componentOrCollections: string | Collections, extra?: Collections): (Story: any, context: any) => import("react/jsx-runtime").JSX.Element;
12
+ /**
13
+ * Convenience: returns `{ argTypes, decorators }` to spread directly into a
14
+ * story `meta`.
15
+ *
16
+ * @example
17
+ * const meta = {
18
+ * title: 'Components/Button',
19
+ * component: Button,
20
+ * ...withModeControls('Button'),
21
+ * }
22
+ */
23
+ export declare function withModeControls(componentOrCollections: string | Collections, extra?: Collections): {
24
+ argTypes: Record<string, unknown>;
25
+ decorators: unknown[];
26
+ };
27
+ export {};
28
+ //# sourceMappingURL=modeControls.d.ts.map
@@ -5,6 +5,7 @@ export { default as AppBar } from './AppBar/AppBar';
5
5
  export { default as Avatar, type AvatarProps } from './Avatar/Avatar';
6
6
  export { default as AvatarGroup } from './AvatarGroup/AvatarGroup';
7
7
  export { default as Badge } from './Badge/Badge';
8
+ export { default as BenefitCard, type BenefitCardProps, type BenefitCardItem } from './BenefitCard/BenefitCard';
8
9
  export { default as BottomNav } from './BottomNav/BottomNav';
9
10
  export { default as BottomNavItem } from './BottomNavItem/BottomNavItem';
10
11
  export { default as BrandChip, type BrandChipProps } from './BrandChip/BrandChip';
@@ -20,11 +21,12 @@ export { default as CheckboxGroup, type CheckboxGroupProps } from './CheckboxGro
20
21
  export { default as CardFeedback, type CardFeedbackProps } from './CardFeedback/CardFeedback';
21
22
  export { default as CardFinancialCondition, type CardFinancialConditionProps } from './CardFinancialCondition/CardFinancialCondition';
22
23
  export { default as CardInsight, type CardInsightProps } from './CardInsight/CardInsight';
24
+ export { default as CcCard, type CcCardProps, type CcCardBadge, type CcCardListItem } from './CcCard/CcCard';
23
25
  export { default as Disclaimer } from './Disclaimer/Disclaimer';
24
26
  export { default as Divider, type DividerProps, type DividerDirection } from './Divider/Divider';
25
27
  export { default as Drawer, type DrawerProps, type DrawerHandle } from './Drawer/Drawer';
26
28
  export { default as Dropdown, DropdownItem, type DropdownProps, type DropdownItemProps } from './Dropdown/Dropdown';
27
- export { default as DropdownInput, type DropdownInputProps, type DropdownInputOption, type DropdownInputOptionValue } from './DropdownInput/DropdownInput';
29
+ export { default as DropdownInput, type DropdownInputProps, type DropdownInputHandle, type DropdownInputOption, type DropdownInputOptionValue } from './DropdownInput/DropdownInput';
28
30
  export { default as SuggestiveSearch, type SuggestiveSearchProps, type SuggestiveSearchOption, type SuggestiveSearchOptionValue, type SuggestiveSearchItem } from './SuggestiveSearch/SuggestiveSearch';
29
31
  export { default as CardCTA, type CardCTAProps, type CardCTAType } from './CardCTA/CardCTA';
30
32
  export { default as DebitCard, type DebitCardProps } from './DebitCard/DebitCard';
@@ -38,6 +40,7 @@ export { default as CircularProgressBarDoted, type CircularProgressBarDotedProps
38
40
  export { default as CircularRating, type CircularRatingProps } from './CircularRating/CircularRating';
39
41
  export { default as CoverageRing, type CoverageRingProps } from './CoverageRing/CoverageRing';
40
42
  export { default as CoverageBarComparison, type CoverageBarComparisonProps, type CoverageBarComparisonItem } from './CoverageBarComparison/CoverageBarComparison';
43
+ export { default as ComparisonBar, type ComparisonBarProps, type ComparisonBarItem } from './ComparisonBar/ComparisonBar';
41
44
  export { default as AllocationComparisonChart, type AllocationComparisonChartProps, type AllocationSegment } from './AllocationComparisonChart/AllocationComparisonChart';
42
45
  export { default as MonthlyStatusGrid, CalendarGlyph, type MonthlyStatusGridProps, type MonthlyStatusGridMonth, type MonthlyStatus, type CalendarGlyphProps } from './MonthlyStatusGrid/MonthlyStatusGrid';
43
46
  export { default as Gauge, type GaugeProps } from './Gauge/Gauge';
@@ -63,9 +66,11 @@ export { default as NoteInput, type NoteInputProps } from './NoteInput/NoteInput
63
66
  export { default as Nudge, type NudgeProps } from './Nudge/Nudge';
64
67
  export { default as NavArrow } from './NavArrow/NavArrow';
65
68
  export { default as Numpad, type NumpadProps, type NumpadKeyValue } from './Numpad/Numpad';
69
+ export { default as Overlay, type OverlayProps } from './Overlay/Overlay';
66
70
  export { default as Title, type TitleProps } from './Title/Title';
67
71
  export { default as Screen, type ScreenProps } from './Screen/Screen';
68
72
  export { default as Section } from './Section/Section';
73
+ export { default as Slider, type SliderProps, type SliderHandle } from './Slider/Slider';
69
74
  export { default as Slot, type SlotProps, type SlotLayoutDirection } from './Slot/Slot';
70
75
  export { default as Spinner, type SpinnerProps, type SpinnerColors } from './Spinner/Spinner';
71
76
  export { default as Stepper, type StepperProps } from './Stepper/Stepper';
@@ -116,12 +121,16 @@ export { default as ToastProvider, type ToastProviderProps } from './Toast/Toast
116
121
  export { useToast, addToast, closeToast, closeAll, type ToastOptions, type ToastEntry, type ToastPlacement } from './Toast/useToast';
117
122
  export { default as AmountInput, type AmountInputProps } from './AmountInput/AmountInput';
118
123
  export { default as PageHero, type PageHeroProps } from './PageHero/PageHero';
124
+ export { default as PdpCcCard, type PdpCcCardProps, type PdpCcCardMetric } from './PdpCcCard/PdpCcCard';
119
125
  export { default as Popup, type PopupProps, type PopupRef } from './Popup/Popup';
120
126
  export { default as PortfolioHero, type PortfolioHeroProps } from './PortfolioHero/PortfolioHero';
121
127
  export { default as PlanComparisonCard, type PlanComparisonCardProps, type PlanComparisonColumn, type PlanComparisonRow, type PlanComparisonCellValue } from './PlanComparisonCard/PlanComparisonCard';
128
+ export { default as CompareTable, type CompareTableProps, type CompareTableColumn, type CompareTableRow, type CompareTableCellValue, type CompareTableSection } from './CompareTable/CompareTable';
122
129
  export { default as PoweredByLabel, type PoweredByLabelProps } from './PoweredByLabel/PoweredByLabel';
123
130
  export { default as ProductLabel, type ProductLabelProps } from './ProductLabel/ProductLabel';
131
+ export { default as ProductMerchandisingCard, type ProductMerchandisingCardProps } from './ProductMerchandisingCard/ProductMerchandisingCard';
124
132
  export { default as ProductOverview, type ProductOverviewProps, type ProductOverviewStat } from './ProductOverview/ProductOverview';
133
+ export { default as ProjectionMarker, type ProjectionMarkerProps } from './ProjectionMarker/ProjectionMarker';
125
134
  export { default as ProgressBadge, type ProgressBadgeProps } from './ProgressBadge/ProgressBadge';
126
135
  export { default as SwappableAmount, type SwappableAmountProps } from './SwappableAmount/SwappableAmount';
127
136
  export { default as OTP, OTPResend, useOtpResend, type OTPProps, type OTPResendProps, type OTPResendConfig, type UseOtpResendOptions, type UseOtpResendReturn, type OtpResendState, } from './OTP/OTP';
@@ -132,6 +141,7 @@ export { default as StrengthIndicator, type StrengthIndicatorProps, type Strengt
132
141
  export { default as SummaryTile, type SummaryTileProps } from './SummaryTile/SummaryTile';
133
142
  export { default as TestimonialsCard, type TestimonialsCardProps } from './TestimonialsCard/TestimonialsCard';
134
143
  export { default as Text, type TextProps } from './Text/Text';
144
+ export { default as TextSegment, type TextSegmentProps, type TextSegmentRun } from './TextSegment/TextSegment';
135
145
  export { default as SegmentedControl, type SegmentedControlProps, type SegmentedControlItem } from './SegmentedControl/SegmentedControl';
136
146
  export { default as Toggle, type ToggleProps } from './Toggle/Toggle';
137
147
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,5 @@
1
1
  import React, { ReactNode } from 'react';
2
+ import type { Modes } from './figma-modes.generated';
2
3
  /**
3
4
  * Shape of the TokenContext
4
5
  */
@@ -7,7 +8,7 @@ interface TokenContextType {
7
8
  * Current active modes map
8
9
  * @example { 'Color Mode': 'Dark', 'Platform': 'mobile' }
9
10
  */
10
- modes: Record<string, any>;
11
+ modes: Modes;
11
12
  /**
12
13
  * Helper to resolve variable by name using the current context modes.
13
14
  */
@@ -18,7 +19,7 @@ interface JFSThemeProviderProps {
18
19
  * Modes to apply globally.
19
20
  * Can be used to set 'Color Mode', 'Platform', 'Density', etc.
20
21
  */
21
- modes?: Record<string, any>;
22
+ modes?: Modes;
22
23
  children: ReactNode;
23
24
  }
24
25
  /**
@@ -35,7 +36,7 @@ export declare const JFSThemeProvider: React.FC<JFSThemeProviderProps>;
35
36
  * Hook to access the current design token context.
36
37
  *
37
38
  * returns {
38
- * modes: Record<string, any> - The current active modes
39
+ * modes: Modes - The current active modes
39
40
  * getVariable: (name: string) => any - Function to resolve a token value
40
41
  * }
41
42
  */