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,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type TextStyle, 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
  *
@@ -20,7 +21,7 @@ export type DonutChartSegmentData = {
20
21
  * Per-segment design token mode overrides. Merged on top of parent
21
22
  * `modes` and the per-index `Appearance / DataViz` defaults.
22
23
  */
23
- modes?: Record<string, any>;
24
+ modes?: Modes;
24
25
  /** Per-segment accessibility label. */
25
26
  accessibilityLabel?: string;
26
27
  };
@@ -60,7 +61,7 @@ export type DonutChartProps = {
60
61
  */
61
62
  gap?: number;
62
63
  /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
63
- modes?: Record<string, any>;
64
+ modes?: Modes;
64
65
  /** Override container styles. */
65
66
  style?: StyleProp<ViewStyle>;
66
67
  /** Override default value text styles. */
@@ -79,7 +80,7 @@ type DonutChartSegmentProps = {
79
80
  * Design token modes for the segment. Merged with parent `modes` and
80
81
  * the per-index `Appearance / DataViz` defaults.
81
82
  */
82
- modes?: Record<string, any>;
83
+ modes?: Modes;
83
84
  /** Per-segment accessibility label. */
84
85
  accessibilityLabel?: string;
85
86
  };
@@ -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 the `DonutChartSummary`. Each item drives BOTH a donut
5
6
  * segment and the matching legend row, so the segment and indicator
@@ -36,7 +37,7 @@ export type DonutChartSummaryItem = {
36
37
  * (`Senary`, `Primary`, `Secondary`, `Tertiary`, `Quaternary`,
37
38
  * `Quinary`, then cycles).
38
39
  */
39
- modes?: Record<string, any>;
40
+ modes?: Modes;
40
41
  /** Accessibility label for the segment + legend row pairing. */
41
42
  accessibilityLabel?: string;
42
43
  };
@@ -73,7 +74,7 @@ export type DonutChartSummaryProps = {
73
74
  */
74
75
  donutGap?: number;
75
76
  /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
76
- modes?: Record<string, any>;
77
+ modes?: Modes;
77
78
  /** Override outer container styles. */
78
79
  style?: StyleProp<ViewStyle>;
79
80
  /** Override the legend container styles. */
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
+ import type { Modes } from '../../design-tokens';
2
3
  export type DrawerProps = {
3
- modes?: Record<string, any>;
4
+ modes?: Modes;
4
5
  style?: import('react-native').StyleProp<import('react-native').ViewStyle>;
5
6
  title?: string;
6
7
  /**
@@ -41,6 +42,19 @@ export type DrawerProps = {
41
42
  * expanded), so parent components can react programmatically.
42
43
  */
43
44
  onStateChange?: (state: 'collapsed' | 'expanded') => void;
45
+ /**
46
+ * When `true`, renders a full-screen semi-transparent {@link Overlay} scrim
47
+ * behind the drawer sheet (dimming everything else on screen). Defaults to
48
+ * `false`, in which case nothing is rendered behind the sheet and behaviour
49
+ * is unchanged.
50
+ */
51
+ showOverlay?: boolean;
52
+ /**
53
+ * Called when the overlay scrim (the area outside the sheet) is pressed.
54
+ * Only relevant when `showOverlay` is `true` — typically used to collapse
55
+ * or dismiss the drawer.
56
+ */
57
+ onOverlayPress?: () => void;
44
58
  };
45
59
  /**
46
60
  * Imperative handle exposed via `ref` for programmatic control of the drawer.
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export type DropdownItemProps = {
4
5
  /** Display text for the item. Ignored when `children` is provided. */
5
6
  label?: string;
@@ -25,7 +26,7 @@ export type DropdownItemProps = {
25
26
  /** Optional custom child content (overrides `label`). */
26
27
  children?: React.ReactNode;
27
28
  /** Modes for design token resolution. */
28
- modes?: Record<string, any>;
29
+ modes?: Modes;
29
30
  /** Style overrides for the item container. */
30
31
  style?: StyleProp<ViewStyle>;
31
32
  /** Style overrides for the item label text. */
@@ -45,7 +46,7 @@ export type DropdownProps = {
45
46
  */
46
47
  maxHeight?: number;
47
48
  /** Modes for design token resolution. */
48
- modes?: Record<string, any>;
49
+ modes?: Modes;
49
50
  /** Style overrides for the popup container. */
50
51
  style?: StyleProp<ViewStyle>;
51
52
  /** Accessibility label for the menu surface. */
@@ -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 DropdownInputOptionValue = string | number;
4
5
  export type DropdownInputOption = {
5
6
  /** Stable, unique value used to identify the option. */
@@ -13,6 +14,25 @@ export type DropdownInputOption = {
13
14
  /** Whether the option is non-selectable. */
14
15
  disabled?: boolean;
15
16
  };
17
+ /**
18
+ * Imperative handle exposed via `ref`. Lets the consumer drive the dropdown
19
+ * from outside — e.g. close it when an Android hardware/system button is
20
+ * pressed, or open it programmatically from a sibling control.
21
+ */
22
+ export type DropdownInputHandle = {
23
+ /** Opens the options menu (no-op when disabled / read-only). */
24
+ open: () => void;
25
+ /** Closes the options menu. */
26
+ close: () => void;
27
+ /** Toggles the options menu open/closed. */
28
+ toggle: () => void;
29
+ /** Moves focus to the trigger (web). */
30
+ focus: () => void;
31
+ /** Removes focus from the trigger (web). */
32
+ blur: () => void;
33
+ /** Measures the trigger in window coordinates. */
34
+ measureInWindow: (callback: (x: number, y: number, width: number, height: number) => void) => void;
35
+ };
16
36
  export type DropdownInputProps = {
17
37
  /** Label rendered above the input. */
18
38
  label?: string;
@@ -87,7 +107,7 @@ export type DropdownInputProps = {
87
107
  /** Whether tapping the backdrop closes the menu. */
88
108
  closeOnBackdropPress?: boolean;
89
109
  /** Modes for design token resolution. */
90
- modes?: Record<string, any>;
110
+ modes?: Modes;
91
111
  /** Style overrides for the outermost wrapper. */
92
112
  style?: StyleProp<ViewStyle>;
93
113
  /** Style overrides for the input row. */
@@ -103,6 +123,6 @@ export type DropdownInputProps = {
103
123
  /** Called when the trigger loses focus (web only). */
104
124
  onBlur?: (e: any) => void;
105
125
  };
106
- declare function DropdownInput({ label, placeholder, items, value, defaultValue, onValueChange, children, renderValue, open, defaultOpen, onOpenChange, placement, isRequired, isDisabled, isInvalid, isReadOnly, supportText, errorMessage, menuMaxHeight, menuOffset, matchTriggerWidth, closeOnBackdropPress, modes: propModes, style, inputStyle, menuStyle, accessibilityLabel, accessibilityHint, onFocus, onBlur, }: DropdownInputProps): import("react/jsx-runtime").JSX.Element;
126
+ declare const DropdownInput: React.ForwardRefExoticComponent<DropdownInputProps & React.RefAttributes<DropdownInputHandle>>;
107
127
  export default DropdownInput;
108
128
  //# sourceMappingURL=DropdownInput.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
  export type EmptyStateProps = {
4
5
  /**
5
6
  * Title text for the empty state
@@ -29,7 +30,7 @@ export type EmptyStateProps = {
29
30
  /**
30
31
  * Mode configuration for theming
31
32
  */
32
- modes?: Record<string, any>;
33
+ modes?: Modes;
33
34
  style?: StyleProp<ViewStyle>;
34
35
  testID?: string;
35
36
  };
@@ -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 ExpandableCheckboxProps = {
3
4
  /** Long text label rendered next to the checkbox. */
4
5
  label?: string;
@@ -23,7 +24,7 @@ export type ExpandableCheckboxProps = {
23
24
  /** Number of lines to show when collapsed. Defaults to `1`. */
24
25
  collapsedLines?: number;
25
26
  /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
26
- modes?: Record<string, any>;
27
+ modes?: Modes;
27
28
  /** Override outer container styles. */
28
29
  style?: StyleProp<ViewStyle>;
29
30
  /** Override the label text styles. */
@@ -1,10 +1,11 @@
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
  type RenderInputArgs = {
4
5
  placeholder: string;
5
6
  value: string;
6
7
  onChangeText?: ((text: string) => void) | undefined;
7
- modes: Record<string, any>;
8
+ modes: Modes;
8
9
  accessibilityLabel: string;
9
10
  accessibilityHint?: string | undefined;
10
11
  onFocus?: (e: any) => void;
@@ -25,7 +26,7 @@ type FilterBarProps = {
25
26
  * respect the higher-level FilterBar API.
26
27
  */
27
28
  renderInput?: (args: RenderInputArgs) => React.ReactNode;
28
- modes?: Record<string, any>;
29
+ modes?: Modes;
29
30
  style?: StyleProp<ViewStyle>;
30
31
  accessibilityLabel?: string;
31
32
  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
  type FormContextValue = {
4
5
  validationErrors: Record<string, string | string[]>;
5
6
  onFieldChange: (name: string) => void;
@@ -9,7 +10,7 @@ export type FormProps = {
9
10
  children: React.ReactNode;
10
11
  validationErrors?: Record<string, string | string[]>;
11
12
  onSubmit?: () => void;
12
- modes?: Record<string, any>;
13
+ modes?: Modes;
13
14
  style?: StyleProp<ViewStyle>;
14
15
  accessibilityLabel?: string;
15
16
  testID?: string;
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- import { type StyleProp, type TextInputProps as RNTextInputProps, type TextStyle, type ViewStyle } from 'react-native';
2
+ import { TextInput as RNTextInput, type StyleProp, type TextInputProps as RNTextInputProps, type TextStyle, type ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export type FormFieldType = 'text' | 'password' | 'email' | 'search' | 'number' | 'phone' | 'url';
4
5
  export type FormFieldProps = {
5
6
  /** Label rendered above the input. */
@@ -59,7 +60,7 @@ export type FormFieldProps = {
59
60
  /** When true, focuses the input on mount. */
60
61
  autoFocus?: boolean;
61
62
  /** Modes for design token resolution. */
62
- modes?: Record<string, any>;
63
+ modes?: Modes;
63
64
  /** Style overrides for the outermost wrapper. */
64
65
  style?: StyleProp<ViewStyle>;
65
66
  /** Style overrides for the input row container. */
@@ -79,6 +80,6 @@ export type FormFieldProps = {
79
80
  /** Test identifier. */
80
81
  testID?: string;
81
82
  };
82
- declare function FormField({ label, placeholder, value, onChangeText, type, name, leading, trailing, leadingIconName, isRequired, isDisabled, isInvalid, isReadOnly, supportText, errorMessage, maxLength, autoFocus, modes: propModes, style, inputStyle, inputTextStyle, onFocus, onBlur, onSubmitEditing, accessibilityLabel, accessibilityHint, testID, }: FormFieldProps): import("react/jsx-runtime").JSX.Element;
83
+ declare const FormField: React.ForwardRefExoticComponent<FormFieldProps & React.RefAttributes<RNTextInput>>;
83
84
  export default FormField;
84
85
  //# sourceMappingURL=FormField.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
  export type FullscreenModalProps = {
4
5
  /** Small eyebrow line above the headline. */
5
6
  eyebrow?: string;
@@ -57,7 +58,7 @@ export type FullscreenModalProps = {
57
58
  * and `context5` is always forced to `'Fullscreen Modal'` (non-overridable).
58
59
  * The resolved modes cascade to the body, hero media, and the `ActionFooter`.
59
60
  */
60
- modes?: Record<string, any>;
61
+ modes?: Modes;
61
62
  /** Style overrides for the outer container. */
62
63
  style?: StyleProp<ViewStyle>;
63
64
  /** Style overrides for the transparent body wrapper. */
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { View, type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
3
3
  import { type SupportTextProps } from '../SupportText/SupportText';
4
+ import type { Modes } from '../../design-tokens';
4
5
  type GaugeBaseProps = Omit<React.ComponentProps<typeof View>, 'children' | 'style'>;
5
6
  export type GaugeProps = GaugeBaseProps & {
6
7
  /** Current gauge value. Interpreted against `min` and `max`. */
@@ -26,7 +27,7 @@ export type GaugeProps = GaugeBaseProps & {
26
27
  /** Hides default support text when no custom readout slot is provided. */
27
28
  showSupportText?: boolean;
28
29
  /** Design token modes forwarded to token lookups and slot children. */
29
- modes?: Record<string, any>;
30
+ modes?: Modes;
30
31
  /** Slot rendered in the center of the gauge arc. Receives `modes` recursively. */
31
32
  children?: React.ReactNode;
32
33
  /** Container style override. */
@@ -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 HStackProps extends ViewProps {
4
5
  /**
5
6
  * The content to display inside the stack.
@@ -31,7 +32,7 @@ export interface HStackProps 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
  * HStack component for horizontal layout using design token spacing.
@@ -1,4 +1,5 @@
1
1
  import { type ViewStyle, type StyleProp, type ImageSourcePropType } from 'react-native';
2
+ import type { Modes } from '../../design-tokens';
2
3
  export interface HoldingsCardDetailItem {
3
4
  label: string;
4
5
  value: string;
@@ -19,7 +20,7 @@ export interface HoldingsCardProps {
19
20
  /** Called when the card is pressed (toggles selection). */
20
21
  onPress?: () => void;
21
22
  /** Modes object for design-token resolution. */
22
- modes?: Record<string, any>;
23
+ modes?: Modes;
23
24
  /** Custom style for the outer container. */
24
25
  style?: StyleProp<ViewStyle>;
25
26
  /** Test ID for testing. */
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { type AccessibilityProps, type StyleProp, type ViewStyle } from 'react-native';
3
3
  import type { UnifiedSource } from '../../utils/MediaSource';
4
+ import type { Modes } from '../../design-tokens';
4
5
  type IconProps = AccessibilityProps & {
5
6
  /**
6
7
  * Built-in icon name from the registry, in the `ic_something` format
@@ -33,7 +34,7 @@ type IconProps = AccessibilityProps & {
33
34
  * from the `icon/size` design token.
34
35
  */
35
36
  size?: number;
36
- modes?: Record<string, any>;
37
+ modes?: Modes;
37
38
  style?: StyleProp<ViewStyle>;
38
39
  };
39
40
  /**
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { type AccessibilityState, type StyleProp, type ViewStyle } from 'react-native';
3
3
  import { type SafePressableProps, type WebAccessibilityProps } from '../../utils/web-platform-utils';
4
4
  import type { UnifiedSource } from '../../utils/MediaSource';
5
+ import type { Modes } from '../../design-tokens';
5
6
  type IconButtonProps = SafePressableProps & {
6
7
  /** Built-in icon name from the registry (default state). */
7
8
  iconName?: string;
@@ -13,7 +14,7 @@ type IconButtonProps = SafePressableProps & {
13
14
  * follows design tokens just like a built-in icon. See {@link UnifiedSource}.
14
15
  */
15
16
  source?: UnifiedSource;
16
- modes?: Record<string, any>;
17
+ modes?: Modes;
17
18
  onPress?: () => void;
18
19
  disabled?: boolean;
19
20
  style?: StyleProp<ViewStyle>;
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { View } from 'react-native';
3
3
  import type { UnifiedSource } from '../../utils/MediaSource';
4
+ import type { Modes } from '../../design-tokens';
4
5
  type IconCapsuleProps = {
5
6
  iconName?: string;
6
7
  /**
@@ -12,7 +13,7 @@ type IconCapsuleProps = {
12
13
  * {@link UnifiedSource}.
13
14
  */
14
15
  source?: UnifiedSource;
15
- modes?: Record<string, any>;
16
+ modes?: Modes;
16
17
  accessibilityLabel?: string;
17
18
  accessibilityRole?: string;
18
19
  } & React.ComponentProps<typeof View>;
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type ImageSourcePropType, type ImageStyle, type StyleProp, type ViewStyle, type ImageResizeMode } from 'react-native';
3
+ type ImageResizeMethod = 'auto' | 'resize' | 'scale' | 'none';
3
4
  export type ImageProps = {
4
5
  /**
5
6
  * Image source. Accepts the same shapes as React Native's `<Image>` plus a
@@ -22,6 +23,21 @@ export type ImageProps = {
22
23
  ratio?: number | undefined;
23
24
  /** How the image is fit inside its box. Defaults to `'cover'`. */
24
25
  resizeMode?: ImageResizeMode | undefined;
26
+ /**
27
+ * (Android only) How the bitmap is resampled when the source resolution
28
+ * differs from the rendered box.
29
+ *
30
+ * RN's own default is `'auto'`, which for large source images silently picks
31
+ * `'resize'`: a pre-decode software downsample that DESTROYS detail and makes
32
+ * big hero/background images look soft/pixelated even when the asset is
33
+ * high-res. To avoid that, this component defaults to:
34
+ * - `'none'` when an explicit `width` + `height` box is set (full-bleed
35
+ * hero/background usage — full resolution, maximum sharpness), and
36
+ * - `'scale'` otherwise (GPU scaling — high quality and memory-safe for
37
+ * ordinary aspect-ratio images).
38
+ * Pass an explicit value to override. No-op on iOS/web.
39
+ */
40
+ resizeMethod?: ImageResizeMethod | undefined;
25
41
  /**
26
42
  * Optional explicit width. If omitted and a `ratio` is set, the image
27
43
  * defaults to `width: '100%'` so it fills its parent.
@@ -46,7 +62,7 @@ export type ImageProps = {
46
62
  */
47
63
  loading?: boolean | undefined;
48
64
  };
49
- declare function Image({ imageSource, ratio, resizeMode, width, height, borderRadius, style, accessibilityLabel, accessibilityElementsHidden, importantForAccessibility, loading, }: ImageProps): import("react/jsx-runtime").JSX.Element;
65
+ declare function Image({ imageSource, ratio, resizeMode, resizeMethod, width, height, borderRadius, style, accessibilityLabel, accessibilityElementsHidden, importantForAccessibility, loading, }: ImageProps): import("react/jsx-runtime").JSX.Element;
50
66
  declare const _default: React.MemoExoticComponent<typeof Image>;
51
67
  export default _default;
52
68
  //# sourceMappingURL=Image.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- import { type StyleProp, type ViewStyle, type TextStyle, type TextInputProps as RNTextInputProps } from 'react-native';
2
+ import { TextInput as RNTextInput, type StyleProp, type ViewStyle, type TextStyle, type TextInputProps as RNTextInputProps } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  export type InputSearchProps = {
4
5
  supportText?: boolean;
5
6
  supportTextLabel?: string;
@@ -8,7 +9,7 @@ export type InputSearchProps = {
8
9
  * (e.g. 'ic_info', 'ic_cart'). Defaults to 'ic_info'.
9
10
  */
10
11
  supportTextIcon?: string;
11
- modes?: Record<string, any>;
12
+ modes?: Modes;
12
13
  containerStyle?: StyleProp<ViewStyle>;
13
14
  placeholder?: string;
14
15
  value?: string;
@@ -21,5 +22,26 @@ export type InputSearchProps = {
21
22
  accessibilityLabel?: string;
22
23
  accessibilityHint?: string;
23
24
  } & Omit<RNTextInputProps, 'style' | 'onChangeText' | 'onFocus' | 'onBlur' | 'placeholder' | 'value'>;
24
- export default function InputSearch({ supportText, supportTextLabel, supportTextIcon, modes, containerStyle, placeholder, value, onChangeText, onFocus, onBlur, leading, trailing, inputStyle, ...rest }: InputSearchProps): import("react/jsx-runtime").JSX.Element;
25
+ declare const InputSearch: React.ForwardRefExoticComponent<{
26
+ supportText?: boolean;
27
+ supportTextLabel?: string;
28
+ /**
29
+ * Icon name from the icon registry to render inside the support text
30
+ * (e.g. 'ic_info', 'ic_cart'). Defaults to 'ic_info'.
31
+ */
32
+ supportTextIcon?: string;
33
+ modes?: Modes;
34
+ containerStyle?: StyleProp<ViewStyle>;
35
+ placeholder?: string;
36
+ value?: string;
37
+ onChangeText?: (text: string) => void;
38
+ onFocus?: (e: any) => void;
39
+ onBlur?: (e: any) => void;
40
+ leading?: React.ReactNode;
41
+ trailing?: React.ReactNode;
42
+ inputStyle?: StyleProp<TextStyle>;
43
+ accessibilityLabel?: string;
44
+ accessibilityHint?: string;
45
+ } & Omit<RNTextInputProps, "style" | "value" | "onFocus" | "onBlur" | "placeholder" | "onChangeText"> & React.RefAttributes<RNTextInput>>;
46
+ export default InputSearch;
25
47
  //# sourceMappingURL=InputSearch.d.ts.map
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { View, type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
3
3
  import { type UnifiedSource } from '../../utils/MediaSource';
4
+ import type { Modes } from '../../design-tokens';
4
5
  type InstitutionBadgeBaseProps = Omit<React.ComponentProps<typeof View>, 'children' | 'style'>;
5
6
  export type InstitutionBadgeProps = InstitutionBadgeBaseProps & {
6
7
  /** Visible label for the institution (e.g. bank name). */
@@ -16,7 +17,7 @@ export type InstitutionBadgeProps = InstitutionBadgeBaseProps & {
16
17
  /** Slot replacing the default Avatar (e.g. for monogram avatars). Receives `modes` recursively. */
17
18
  avatarSlot?: React.ReactNode;
18
19
  /** Design token modes forwarded to token lookups and the Avatar slot. */
19
- modes?: Record<string, any>;
20
+ modes?: Modes;
20
21
  /** Container style override. */
21
22
  style?: StyleProp<ViewStyle>;
22
23
  /** Label style override. */
@@ -1,8 +1,9 @@
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
  type LazyListProps = {
4
5
  listGroupsSlot?: React.ReactNode;
5
- modes?: Record<string, any>;
6
+ modes?: Modes;
6
7
  style?: StyleProp<ViewStyle>;
7
8
  accessibilityLabel?: string;
8
9
  accessibilityHint?: string;
@@ -1,13 +1,14 @@
1
1
  import React from 'react';
2
2
  import { View, Text, type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
3
4
  type LinearMeterLabelProps = {
4
5
  children: React.ReactNode;
5
- modes?: Record<string, any>;
6
+ modes?: Modes;
6
7
  style?: StyleProp<TextStyle>;
7
8
  } & React.ComponentProps<typeof Text>;
8
9
  export type LinearMeterProps = {
9
10
  value?: number;
10
- modes?: Record<string, any>;
11
+ modes?: Modes;
11
12
  style?: StyleProp<ViewStyle>;
12
13
  trackStyle?: StyleProp<ViewStyle>;
13
14
  indicatorStyle?: StyleProp<ViewStyle>;
@@ -1,10 +1,11 @@
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
  export type LinearProgressProps = {
4
5
  /** Progress value between 0 and 1. Values are clamped. */
5
6
  value?: number;
6
7
  /** Design token modes for theming */
7
- modes?: Record<string, any>;
8
+ modes?: Modes;
8
9
  /** Override container styles (the track wrapper) */
9
10
  style?: StyleProp<ViewStyle>;
10
11
  /** Override the track styles */
@@ -1,10 +1,11 @@
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
  type ListGroupProps = {
4
5
  label?: string;
5
6
  listGroupSlot?: React.ReactNode;
6
7
  children?: React.ReactNode;
7
- modes?: Record<string, any>;
8
+ modes?: Modes;
8
9
  style?: StyleProp<ViewStyle>;
9
10
  accessibilityLabel?: string;
10
11
  accessibilityHint?: string;
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { View, type StyleProp, type ViewStyle, type AccessibilityState } from 'react-native';
3
3
  import { type WebAccessibilityProps } from '../../utils/web-platform-utils';
4
+ import type { Modes } from '../../design-tokens';
4
5
  type ListItemProps = {
5
6
  layout?: 'Vertical' | 'Horizontal';
6
7
  title?: string;
@@ -19,7 +20,7 @@ type ListItemProps = {
19
20
  endSlot?: React.ReactNode;
20
21
  /** Whether to show the NavArrow on the far right (Horizontal layout only). Defaults to true. */
21
22
  navArrow?: boolean;
22
- modes?: Record<string, any>;
23
+ modes?: Modes;
23
24
  onPress?: () => void;
24
25
  style?: StyleProp<ViewStyle>;
25
26
  contentStyle?: StyleProp<ViewStyle>;
@@ -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 LottieIntroBlockProps = {
4
5
  /** Headline text shown below the media area. */
5
6
  title?: string;
@@ -27,7 +28,7 @@ export type LottieIntroBlockProps = {
27
28
  */
28
29
  buttonSlot?: React.ReactNode;
29
30
  /** Mode configuration for design-token theming. */
30
- modes?: Record<string, any>;
31
+ modes?: Modes;
31
32
  /** Style overrides applied to the outer container. */
32
33
  style?: StyleProp<ViewStyle>;
33
34
  testID?: 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
  /**
4
5
  * A parsed Lottie animation. The JSON object you get from
5
6
  * `require('./animation.json')` or `fetch().then(r => r.json())`. We keep the
@@ -36,7 +37,7 @@ export type LottiePlayerProps = {
36
37
  /** Loop the animation. Defaults to `true`. */
37
38
  loop?: boolean;
38
39
  /** Mode configuration for design-token theming. */
39
- modes?: Record<string, any>;
40
+ modes?: Modes;
40
41
  /** Style overrides applied to the underlying view. */
41
42
  style?: StyleProp<ViewStyle>;
42
43
  /** Accessibility label. Lottie is decorative by default. */
@@ -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 LottieAnimationSource = Record<string, unknown>;
4
5
  export type LottiePlayerProps = {
5
6
  source: LottieAnimationSource;
@@ -9,7 +10,7 @@ export type LottiePlayerProps = {
9
10
  };
10
11
  autoPlay?: boolean;
11
12
  loop?: boolean;
12
- modes?: Record<string, any>;
13
+ modes?: Modes;
13
14
  style?: StyleProp<ViewStyle>;
14
15
  accessibilityLabel?: string;
15
16
  testID?: string;