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
@@ -0,0 +1,81 @@
1
+ import React from 'react';
2
+ import { type ViewStyle, type StyleProp, type ImageSourcePropType } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
4
+ export interface ProductMerchandisingCardProps {
5
+ /**
6
+ * Background media for the card. Accepts a URL string or any RN
7
+ * `ImageSourcePropType` (same shape as `Avatar`, `MediaCard`, etc.). The
8
+ * image is rendered full-bleed behind the header and glass footer.
9
+ */
10
+ imageSource?: ImageSourcePropType | string;
11
+ /** Footer title (bold, white). */
12
+ title?: string;
13
+ /** Footer subtitle (muted). */
14
+ subtitle?: string;
15
+ /**
16
+ * Header badge label (top-right). The badge is hidden when this is
17
+ * `undefined` and no `badge` override is provided.
18
+ */
19
+ badgeLabel?: string;
20
+ /**
21
+ * Full override for the header badge. Takes precedence over `badgeLabel`.
22
+ */
23
+ badge?: React.ReactNode;
24
+ /** Show the header avatar (top-left). Defaults to `true`. */
25
+ showAvatar?: boolean;
26
+ /** Avatar image source. */
27
+ avatarSource?: ImageSourcePropType | string;
28
+ /** Avatar monogram fallback when no image is supplied. */
29
+ avatarMonogram?: string;
30
+ /** Full override for the header avatar. Takes precedence over avatar props. */
31
+ avatar?: React.ReactNode;
32
+ /**
33
+ * Footer "special badge" label (small frosted pill above the title). The
34
+ * badge is hidden when this is `undefined` and no `specialBadge` override
35
+ * is provided.
36
+ */
37
+ specialBadgeLabel?: string;
38
+ /** Optional leading node (icon/image) rendered inside the special badge. */
39
+ specialBadgeIcon?: React.ReactNode;
40
+ /** Full override for the special badge. Takes precedence over the props above. */
41
+ specialBadge?: React.ReactNode;
42
+ /** CTA button label. Defaults to `"CTA"`. */
43
+ ctaLabel?: string;
44
+ /** CTA button press handler. */
45
+ onCtaPress?: () => void;
46
+ /** Full override for the CTA. Takes precedence over `ctaLabel`/`onCtaPress`. */
47
+ cta?: React.ReactNode;
48
+ /** Press handler for the whole card. When set, the card becomes pressable. */
49
+ onPress?: () => void;
50
+ /** Card height in px. Defaults to `223` (Figma spec). */
51
+ height?: number;
52
+ /** Modes object for design-token resolution. Cascaded to all children. */
53
+ modes?: Modes;
54
+ /** Style overrides for the card container. */
55
+ style?: StyleProp<ViewStyle>;
56
+ /** Accessibility label for the card. */
57
+ accessibilityLabel?: string;
58
+ }
59
+ /**
60
+ * ProductMerchandisingCard — a full-bleed image card (Figma node 5277:317)
61
+ * with a top header (avatar + badge) and a bottom **glass footer** that
62
+ * combines a real native background blur with a transparent→black gradient
63
+ * scrim for legible text over any image.
64
+ *
65
+ * Glass footer implementation (works on iOS, Android and Web):
66
+ * - **iOS / Android:** `<GlassFill>` wraps `@react-native-community/blur`'s
67
+ * `BlurView` — iOS gets a real `UIVisualEffectView` (live OS blur),
68
+ * Android gets the community `RealtimeBlurView` with a tinted scrim
69
+ * fallback. The native-only module is isolated in `GlassFill.tsx`.
70
+ * - **Web:** the platform-extension `GlassFill.web.tsx` renders a translucent
71
+ * `View` with `backdrop-filter: blur()` — Metro picks the right file so the
72
+ * web bundle never imports the native blur module.
73
+ * - The gradient scrim is drawn with `react-native-svg` (one renderer for all
74
+ * platforms) so the fade is identical everywhere.
75
+ *
76
+ * The blur strength is driven by the Figma `blur/minimal` token, mapped to the
77
+ * `GlassFill` 0–100 intensity scale the same way `MediaCard` does.
78
+ */
79
+ declare function ProductMerchandisingCard({ imageSource, title, subtitle, badgeLabel, badge, showAvatar, avatarSource, avatarMonogram, avatar, specialBadgeLabel, specialBadgeIcon, specialBadge, ctaLabel, onCtaPress, cta, onPress, height, modes, style, accessibilityLabel, }: ProductMerchandisingCardProps): import("react/jsx-runtime").JSX.Element;
80
+ export default ProductMerchandisingCard;
81
+ //# sourceMappingURL=ProductMerchandisingCard.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type ViewStyle, type ImageSourcePropType } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export type ProductOverviewStat = {
4
5
  /** The large prominent value shown on top, e.g. "995", "3%". */
5
6
  value: string;
@@ -25,7 +26,7 @@ export type ProductOverviewProps = {
25
26
  */
26
27
  stats?: ProductOverviewStat[];
27
28
  /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
28
- modes?: Record<string, any>;
29
+ modes?: Modes;
29
30
  /** Container style override. */
30
31
  style?: StyleProp<ViewStyle>;
31
32
  /**
@@ -1,5 +1,6 @@
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 ProgressBadgeProps = {
4
5
  /** The text displayed in the badge (e.g. "Live price...") */
5
6
  taskName?: string;
@@ -8,7 +9,7 @@ export type ProgressBadgeProps = {
8
9
  /** The progress value between 0 and 100 */
9
10
  value?: number;
10
11
  /** Modes object passed to `getVariableByName` for design token resolution */
11
- modes?: Record<string, any>;
12
+ modes?: Modes;
12
13
  /** Optional container style overrides */
13
14
  style?: StyleProp<ViewStyle>;
14
15
  /** Optional text style overrides */
@@ -0,0 +1,82 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
4
+ /**
5
+ * A value rendered at either end of the marker. A `string`/`number` is rendered
6
+ * with the built-in title typography; any other `ReactNode` (e.g. a
7
+ * `MoneyValue`) is rendered as-is so consumers can fully control presentation.
8
+ */
9
+ type ProjectionMarkerEndValue = React.ReactNode;
10
+ export type ProjectionMarkerProps = {
11
+ /**
12
+ * Value shown on the leading (left) end of the marker — typically the
13
+ * invested/starting amount. Accepts a string for the default styling or any
14
+ * `ReactNode` (e.g. `MoneyValue`) for custom rendering.
15
+ */
16
+ startValue?: ProjectionMarkerEndValue;
17
+ /**
18
+ * Value shown on the trailing (right) end of the marker — typically the
19
+ * projected/ending amount.
20
+ */
21
+ endValue?: ProjectionMarkerEndValue;
22
+ /**
23
+ * Primary line inside the center badge — typically the duration
24
+ * (e.g. `"1Y 10M"`).
25
+ */
26
+ duration?: React.ReactNode;
27
+ /**
28
+ * Secondary line inside the center badge — typically the rate
29
+ * (e.g. `"@ 8.25 %"`).
30
+ */
31
+ rate?: React.ReactNode;
32
+ /**
33
+ * Whether to render the connector lines between the end values and the
34
+ * center badge. Defaults to `true`.
35
+ */
36
+ showConnectors?: boolean;
37
+ /** Design token modes for theming. */
38
+ modes?: Modes;
39
+ /** Override the root container styles. */
40
+ style?: StyleProp<ViewStyle>;
41
+ /** Override the leading value text styles (only applies to string values). */
42
+ startValueStyle?: StyleProp<TextStyle>;
43
+ /** Override the trailing value text styles (only applies to string values). */
44
+ endValueStyle?: StyleProp<TextStyle>;
45
+ /** Override the center badge container styles. */
46
+ badgeStyle?: StyleProp<ViewStyle>;
47
+ /** Override the duration text styles. */
48
+ durationStyle?: StyleProp<TextStyle>;
49
+ /** Override the rate text styles. */
50
+ rateStyle?: StyleProp<TextStyle>;
51
+ /** Accessibility label for the whole marker. */
52
+ accessibilityLabel?: string;
53
+ };
54
+ /**
55
+ * ProjectionMarker renders a start value and an end value connected to a
56
+ * centered badge that summarizes the projection (e.g. a tenure and interest
57
+ * rate). It mirrors the Figma `projectionMarker` component and is commonly used
58
+ * inside "Potential returns" style cards.
59
+ *
60
+ * @example
61
+ * ```tsx
62
+ * <ProjectionMarker
63
+ * startValue="₹1,00,000"
64
+ * endValue="₹1,25,101"
65
+ * duration="1Y 10M"
66
+ * rate="@ 8.25 %"
67
+ * />
68
+ * ```
69
+ *
70
+ * @example Custom end values via MoneyValue
71
+ * ```tsx
72
+ * <ProjectionMarker
73
+ * startValue={<MoneyValue value="1,00,000" />}
74
+ * endValue={<MoneyValue value="1,25,101" />}
75
+ * duration="1Y 10M"
76
+ * rate="@ 8.25 %"
77
+ * />
78
+ * ```
79
+ */
80
+ declare function ProjectionMarker({ startValue, endValue, duration, rate, showConnectors, modes, style, startValueStyle, endValueStyle, badgeStyle, durationStyle, rateStyle, accessibilityLabel, }: ProjectionMarkerProps): import("react/jsx-runtime").JSX.Element;
81
+ export default ProjectionMarker;
82
+ //# sourceMappingURL=ProjectionMarker.d.ts.map
@@ -1,4 +1,6 @@
1
- import { ViewStyle, StyleProp } from 'react-native';
1
+ import React from 'react';
2
+ import { View, ViewStyle, StyleProp } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
2
4
  export interface RadioProps {
3
5
  /**
4
6
  * Whether the radio is selected.
@@ -15,7 +17,7 @@ export interface RadioProps {
15
17
  /**
16
18
  * Modes object for design-token resolution.
17
19
  */
18
- modes?: Record<string, any>;
20
+ modes?: Modes;
19
21
  /**
20
22
  * Custom style for the radio container.
21
23
  */
@@ -25,6 +27,6 @@ export interface RadioProps {
25
27
  */
26
28
  testID?: string;
27
29
  }
28
- export declare function Radio({ selected, disabled, onPress, modes, style, testID, }: RadioProps): import("react/jsx-runtime").JSX.Element;
30
+ export declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<View>>;
29
31
  export default Radio;
30
32
  //# sourceMappingURL=Radio.d.ts.map
@@ -15,8 +15,8 @@
15
15
  * the new `Radio` component under the old `RadioButton` names; please migrate
16
16
  * existing usages to `Radio` at your earliest convenience.
17
17
  */
18
- import { Radio, type RadioProps } from '../Radio/Radio';
18
+ import { type RadioProps } from '../Radio/Radio';
19
19
  export type RadioButtonProps = RadioProps;
20
- export declare const RadioButton: typeof Radio;
20
+ export declare const RadioButton: import("react").ForwardRefExoticComponent<RadioProps & import("react").RefAttributes<import("react-native").View>>;
21
21
  export default RadioButton;
22
22
  //# sourceMappingURL=RadioButton.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  /**
4
5
  * One row of data inside a `RangeTrack` tab.
5
6
  *
@@ -38,7 +39,7 @@ export type RangeTrackItem = {
38
39
  * `modes` and the per-index `Emphasis / DataViz` defaults
39
40
  * (`High`, `Medium`, `Low`, then cycles).
40
41
  */
41
- modes?: Record<string, any>;
42
+ modes?: Modes;
42
43
  /** Accessibility label for the segment + legend row pairing. */
43
44
  accessibilityLabel?: string;
44
45
  };
@@ -107,7 +108,7 @@ export type RangeTrackProps = {
107
108
  */
108
109
  scrollableTabs?: boolean;
109
110
  /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
110
- modes?: Record<string, any>;
111
+ modes?: Modes;
111
112
  /** Override the outer container styles. */
112
113
  style?: StyleProp<ViewStyle>;
113
114
  /** Override the tab row styles. */
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export type RechargeCardProps = {
4
5
  /**
5
6
  * Title of the card.
@@ -39,7 +40,7 @@ export type RechargeCardProps = {
39
40
  /**
40
41
  * Mode configuration for design tokens.
41
42
  */
42
- modes?: Record<string, any>;
43
+ modes?: Modes;
43
44
  style?: ViewStyle;
44
45
  };
45
46
  /**
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  /**
4
5
  * A single row in the savings-goal legend (current vs. target).
5
6
  *
@@ -59,7 +60,7 @@ export type SavingsGoalSummaryProps = {
59
60
  * which renders the thicker progress bar from the Figma reference. Caller
60
61
  * modes are merged on top and can override every default key.
61
62
  */
62
- modes?: Record<string, any>;
63
+ modes?: Modes;
63
64
  /** Override container styles. */
64
65
  style?: StyleProp<ViewStyle>;
65
66
  /**
@@ -1,5 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export interface ScreenProps {
4
5
  /**
5
6
  * The content to display inside the screen.
@@ -8,7 +9,7 @@ export interface ScreenProps {
8
9
  /**
9
10
  * Modes object to override default variable values.
10
11
  */
11
- modes?: Record<string, any>;
12
+ modes?: Modes;
12
13
  /**
13
14
  * Optional style overrides for the container.
14
15
  */
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { View, type StyleProp, type ViewStyle } from 'react-native';
3
3
  import { type WebAccessibilityProps } from '../../utils/web-platform-utils';
4
+ import type { Modes } from '../../design-tokens';
4
5
  type SectionProps = {
5
6
  title?: string;
6
7
  supportText?: string;
@@ -8,7 +9,7 @@ type SectionProps = {
8
9
  slot?: React.ReactNode;
9
10
  /** Layout direction of the slot's children. Defaults to 'row' (horizontal). */
10
11
  slotDirection?: 'row' | 'column';
11
- modes?: Record<string, any>;
12
+ modes?: Modes;
12
13
  onPress?: () => void;
13
14
  style?: StyleProp<ViewStyle>;
14
15
  accessibilityLabel?: string;
@@ -29,7 +30,7 @@ type BentoToggleRenderState = {
29
30
  type SectionBentoProps = {
30
31
  navSlot?: React.ReactNode;
31
32
  upiSlot?: React.ReactNode;
32
- modes?: Record<string, any>;
33
+ modes?: Modes;
33
34
  style?: StyleProp<ViewStyle>;
34
35
  accessibilityLabel?: string;
35
36
  accessibilityHint?: string;
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export type SegmentedControlItem = {
4
5
  key: React.Key;
5
6
  label: string;
@@ -14,7 +15,7 @@ export type SegmentedControlProps = {
14
15
  /** Callback fired when the selected segment changes */
15
16
  onSelectionChange?: (key: React.Key) => void;
16
17
  /** Design token modes for theming */
17
- modes?: Record<string, any>;
18
+ modes?: Modes;
18
19
  /** Override container styles */
19
20
  style?: StyleProp<ViewStyle>;
20
21
  };
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  /**
4
5
  * Per-segment data definition for the data-driven `segments` prop.
5
6
  *
@@ -31,7 +32,7 @@ export type SegmentedTrackSegmentData = {
31
32
  * Per-segment design token mode overrides. Merged on top of the parent
32
33
  * `modes` and the per-index Emphasis defaults.
33
34
  */
34
- modes?: Record<string, any>;
35
+ modes?: Modes;
35
36
  /** Override individual segment styles. */
36
37
  style?: StyleProp<ViewStyle>;
37
38
  /** Per-segment accessibility label. */
@@ -51,7 +52,7 @@ export type SegmentedTrackProps = {
51
52
  */
52
53
  children?: React.ReactNode;
53
54
  /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
54
- modes?: Record<string, any>;
55
+ modes?: Modes;
55
56
  /** Override the container styles. */
56
57
  style?: StyleProp<ViewStyle>;
57
58
  /** Style applied to every segment (data-driven mode only). */
@@ -73,7 +74,7 @@ type SegmentedTrackSegmentProps = {
73
74
  * Design token modes for the segment. Merged with parent `modes` and the
74
75
  * per-index Emphasis defaults injected by the parent `SegmentedTrack`.
75
76
  */
76
- modes?: Record<string, any> | undefined;
77
+ modes?: Modes | undefined;
77
78
  /** Override the segment styles. */
78
79
  style?: StyleProp<ViewStyle> | undefined;
79
80
  /** Per-segment accessibility label. */
@@ -0,0 +1,99 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
4
+ /**
5
+ * Imperative handle exposed via `ref`. The primary way to read a slider's value
6
+ * is still the controlled `value` + `onChange` pair (each `<Slider />` reports
7
+ * its own value, so multiple sliders are disambiguated by their own handlers).
8
+ * The ref is a convenience for reading the latest value on demand (e.g. on a
9
+ * button press) or imperatively nudging an uncontrolled slider.
10
+ *
11
+ * @example
12
+ * const slider = useRef<SliderHandle>(null)
13
+ * slider.current?.setValue(50)
14
+ * const v = slider.current?.getValue()
15
+ */
16
+ export interface SliderHandle {
17
+ /** Returns the slider's current (clamped, step-snapped) value. */
18
+ getValue: () => number;
19
+ /** Sets the value. Fires `onChange` + `onChangeEnd`. */
20
+ setValue: (value: number) => void;
21
+ /** Steps the value up by one `step` (or `by`, snapped to `step`). */
22
+ increment: (by?: number) => void;
23
+ /** Steps the value down by one `step` (or `by`, snapped to `step`). */
24
+ decrement: (by?: number) => void;
25
+ }
26
+ export interface SliderProps {
27
+ /** Current value (controlled). Pair with `onChange`. */
28
+ value?: number;
29
+ /** Initial value (uncontrolled). Defaults to `minValue`. */
30
+ defaultValue?: number;
31
+ /** Called continuously while the value changes (drag / keypress / track press). */
32
+ onChange?: (value: number) => void;
33
+ /** Called once when the interaction ends (drag release / keypress). */
34
+ onChangeEnd?: (value: number) => void;
35
+ /** Minimum selectable value. Defaults to `0`. */
36
+ minValue?: number;
37
+ /** Maximum selectable value. Defaults to `100`. */
38
+ maxValue?: number;
39
+ /** Snap increment. Defaults to `1`. Use a smaller value for finer control. */
40
+ step?: number;
41
+ /** Disables interaction and dims the control. */
42
+ isDisabled?: boolean;
43
+ /**
44
+ * `Intl.NumberFormat` options used to format the value bubble and the
45
+ * min/max labels (e.g. `{ style: 'currency', currency: 'USD' }`).
46
+ */
47
+ formatOptions?: Intl.NumberFormatOptions;
48
+ /** BCP-47 locale used with `formatOptions`. Defaults to the runtime locale. */
49
+ locale?: string;
50
+ /**
51
+ * Full override for value formatting. Takes precedence over `formatOptions`.
52
+ * Receives the raw numeric value, returns the string to display.
53
+ */
54
+ formatValue?: (value: number) => string;
55
+ /** Renders fully custom value-bubble content. Takes precedence over `formatValue`. */
56
+ renderTooltip?: (value: number) => React.ReactNode;
57
+ /**
58
+ * When `true` (default, matches the Figma design) the value bubble is
59
+ * always visible. When `false` it behaves like a normal tooltip — hidden at
60
+ * rest and revealed only while the user interacts (dragging on touch, or
61
+ * hovering/dragging on web), then dismissed as soon as the finger lifts.
62
+ *
63
+ * Either way the bubble floats above the track and never occupies layout
64
+ * space, so it will overlap content above the slider — leave room for it.
65
+ */
66
+ alwaysShowTooltip?: boolean;
67
+ /** Toggles the min/max labels below the track. Defaults to `true`. */
68
+ showLabels?: boolean;
69
+ /** Override for the left (min) label. Defaults to the formatted `minValue`. */
70
+ minLabel?: React.ReactNode;
71
+ /** Override for the right (max) label. Defaults to the formatted `maxValue`. */
72
+ maxLabel?: React.ReactNode;
73
+ /** Slider width. Defaults to `'100%'` so it fills its parent. */
74
+ width?: number | `${number}%`;
75
+ /** Design-token modes for theming. */
76
+ modes?: Modes;
77
+ /** Style override for the outer container. */
78
+ style?: StyleProp<ViewStyle>;
79
+ /** Accessibility label for screen readers. */
80
+ accessibilityLabel?: string;
81
+ }
82
+ /**
83
+ * Slider — Figma node 5373:446 ("Slider").
84
+ *
85
+ * A horizontal, single-thumb slider driven entirely by design tokens. It maps a
86
+ * numeric range (`minValue`–`maxValue`) onto a track with a filled indicator, a
87
+ * draggable handle, a value bubble pinned above the handle, and optional min/max
88
+ * labels beneath the track. Built on `PanResponder` so the one code path works
89
+ * on iOS, Android and the web.
90
+ *
91
+ * The design only labels the range bounds, but a slider's purpose is to bind a
92
+ * value — so the live value is surfaced through the bubble (formatted via
93
+ * `formatOptions` / `formatValue`) and reported through `onChange` /
94
+ * `onChangeEnd`. Supports controlled and uncontrolled usage, web keyboard
95
+ * control, and an imperative {@link SliderHandle} `ref` for on-demand reads.
96
+ */
97
+ declare const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<SliderHandle>>;
98
+ export default Slider;
99
+ //# sourceMappingURL=Slider.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type ViewProps, type ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export type SlotLayoutDirection = 'vertical' | 'horizontal';
4
5
  export type SlotProps = ViewProps & {
5
6
  /**
@@ -25,7 +26,7 @@ export type SlotProps = ViewProps & {
25
26
  /**
26
27
  * Mode configuration passed to the token resolver and cascaded to children.
27
28
  */
28
- modes?: Record<string, any>;
29
+ modes?: Modes;
29
30
  style?: StyleProp<ViewStyle>;
30
31
  };
31
32
  /**
@@ -1,4 +1,5 @@
1
1
  import { type StyleProp, type ViewProps, type ViewStyle } from 'react-native';
2
+ import type { Modes } from '../../design-tokens';
2
3
  /**
3
4
  * Per-segment colours, resolved from the Figma `spiner/*` tokens. Consumers can
4
5
  * override any subset via the `colors` prop.
@@ -34,7 +35,7 @@ export type SpinnerProps = SpinnerBaseProps & {
34
35
  /** When false, renders a static resting spinner (also honoured for reduced motion). Defaults to true. */
35
36
  animating?: boolean;
36
37
  /** Design token modes forwarded to token lookups. */
37
- modes?: Record<string, any>;
38
+ modes?: Modes;
38
39
  /** Container style override. */
39
40
  style?: StyleProp<ViewStyle>;
40
41
  /** Accessibility label announced to assistive tech. Defaults to "Loading". */
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export type StatGroupItem = {
4
5
  /** Stable key for the item. Falls back to the label / index. */
5
6
  key?: React.Key;
@@ -24,7 +25,7 @@ export type StatGroupProps = {
24
25
  */
25
26
  children?: React.ReactNode;
26
27
  /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
27
- modes?: Record<string, any>;
28
+ modes?: Modes;
28
29
  /** Override container styles. */
29
30
  style?: StyleProp<ViewStyle>;
30
31
  };
@@ -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 type StatItemLabelPosition = 'Top' | 'Bottom';
3
4
  export type StatItemProps = {
4
5
  /** The small descriptive label. */
@@ -14,7 +15,7 @@ export type StatItemProps = {
14
15
  */
15
16
  labelPosition?: StatItemLabelPosition;
16
17
  /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
17
- modes?: Record<string, any>;
18
+ modes?: Modes;
18
19
  /** Override container styles. */
19
20
  style?: StyleProp<ViewStyle>;
20
21
  /** Override the label text styles. */
@@ -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 StatusHeroProps = {
4
5
  /**
5
6
  * Custom media slot content.
@@ -20,7 +21,7 @@ export type StatusHeroProps = {
20
21
  /** Currency symbol or ISO code for the default MoneyValue */
21
22
  currency?: string;
22
23
  /** Mode configuration for design tokens */
23
- modes?: Record<string, any>;
24
+ modes?: Modes;
24
25
  style?: ViewStyle;
25
26
  };
26
27
  /**
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
2
  import { type ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export type StepStatus = 'number' | 'complete' | 'error' | 'warning';
4
5
  export type StepProps = {
5
6
  children?: React.ReactNode;
6
- modes?: Record<string, any>;
7
+ modes?: Modes;
7
8
  style?: ViewStyle;
8
9
  index?: number;
9
10
  showLine?: boolean;
@@ -1,11 +1,12 @@
1
1
  import { type ViewStyle } from 'react-native';
2
+ import type { Modes } from '../../design-tokens';
2
3
  export type StepLabelProps = {
3
4
  title?: string;
4
5
  supportingText?: string;
5
6
  metaText?: string;
6
7
  subtitle?: boolean;
7
8
  meta?: boolean;
8
- modes?: Record<string, any>;
9
+ modes?: Modes;
9
10
  style?: ViewStyle;
10
11
  };
11
12
  export declare function StepLabel({ title, supportingText, metaText, subtitle, meta, modes, style, }: StepLabelProps): import("react/jsx-runtime").JSX.Element;
@@ -2,12 +2,13 @@ import React from 'react';
2
2
  import { type ViewStyle } from 'react-native';
3
3
  import { Step } from './Step';
4
4
  import { StepLabel } from './StepLabel';
5
+ import type { Modes } from '../../design-tokens';
5
6
  export { Step, StepLabel };
6
7
  export type { StepProps, StepStatus } from './Step';
7
8
  export type { StepLabelProps } from './StepLabel';
8
9
  export type StepperProps = {
9
10
  children?: React.ReactNode;
10
- modes?: Record<string, any>;
11
+ modes?: Modes;
11
12
  style?: ViewStyle;
12
13
  };
13
14
  export default function Stepper({ children, modes, style, }: StepperProps): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { View, type StyleProp, type ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  /**
4
5
  * Confidence levels supported by the indicator. Mirrors the Figma `Confidence`
5
6
  * mode collection exactly (`High` | `Medium` | `Low` | `None`).
@@ -33,7 +34,7 @@ export type StrengthIndicatorProps = {
33
34
  */
34
35
  confidence?: StrengthIndicatorConfidenceValue;
35
36
  /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
36
- modes?: Record<string, any>;
37
+ modes?: Modes;
37
38
  /** Override container styles. */
38
39
  style?: StyleProp<ViewStyle>;
39
40
  } & Omit<React.ComponentProps<typeof View>, 'style'>;
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type TextInputProps as RNTextInputProps, type TextStyle, type ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export type SuggestiveSearchOptionValue = string | number;
4
5
  export type SuggestiveSearchOption = {
5
6
  /** Stable, unique value used to identify the suggestion. */
@@ -98,7 +99,7 @@ export type SuggestiveSearchProps = {
98
99
  /** Replaces `supportText` when `isInvalid` is true. */
99
100
  errorMessage?: string;
100
101
  /** Modes for design token resolution. */
101
- modes?: Record<string, any>;
102
+ modes?: Modes;
102
103
  /** Style overrides for the outermost wrapper. */
103
104
  style?: StyleProp<ViewStyle>;
104
105
  /** Style overrides for the input row. */