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,284 @@
1
+ /**
2
+ * Every design-token collection and its available modes, keyed by the exact
3
+ * collection name used by the resolver and the `modes` prop.
4
+ */
5
+ export declare const FIGMA_MODES: {
6
+ readonly "Accordion / Output": readonly ["Default"];
7
+ readonly "Accordion States": readonly ["Idle", "Hover", "Open", "Open Hover", "Disabled"];
8
+ readonly "AccordionCheckbox / Output": readonly ["Default"];
9
+ readonly "AccordionGroup / Output": readonly ["Default"];
10
+ readonly "AccountCard / Output": readonly ["Default"];
11
+ readonly Action: readonly ["True", "False"];
12
+ readonly "ActionFooter / Output": readonly ["Default"];
13
+ readonly "ActionNumpad / Output": readonly ["Default"];
14
+ readonly "ActionTile / Output": readonly ["Default"];
15
+ readonly "Allocation Comparison Chart / Output": readonly ["Default"];
16
+ readonly "AmountInput / Output": readonly ["Default"];
17
+ readonly "AppBar.MainPage / Output": readonly ["Default"];
18
+ readonly "AppBar.SubPage/ Output": readonly ["Default"];
19
+ readonly "Appearance / DataViz": readonly ["Primary", "Secondary", "Tertiary", "Quaternary", "Quinary", "Senary", "Neutral"];
20
+ readonly AppearanceBrand: readonly ["Primary", "Secondary", "Neutral", "Tertiary"];
21
+ readonly AppearanceSystem: readonly ["positive", "warning", "negative"];
22
+ readonly "Attached / Output": readonly ["Default"];
23
+ readonly "Avatar / Output": readonly ["Default"];
24
+ readonly "Avatar Group / Output": readonly ["Default"];
25
+ readonly "Avatar Size": readonly ["L", "M", "S", "XS"];
26
+ readonly "Avatar Type": readonly ["Avatar", "Icon", "Text"];
27
+ readonly "Axis / Output": readonly ["Default"];
28
+ readonly Background: readonly ["False", "True"];
29
+ readonly "Badge / Output": readonly ["Default"];
30
+ readonly "Badge Size": readonly ["Medium", "Small"];
31
+ readonly "Balance / Output": readonly ["Default"];
32
+ readonly "BankAccountCard / Output": readonly ["Default"];
33
+ readonly "Benefit Card": readonly ["Default"];
34
+ readonly Blur: readonly ["Default"];
35
+ readonly "bottomNav / Output": readonly ["Default"];
36
+ readonly "BottomNavItem / Output": readonly ["Default"];
37
+ readonly "BottomNavItem / State": readonly ["Idle", "Active"];
38
+ readonly Brand: readonly ["Jio Finance"];
39
+ readonly "Brand Chip / Output": readonly ["Default"];
40
+ readonly "Button / Output": readonly ["Default"];
41
+ readonly "Button / Size": readonly ["M", "S", "XS"];
42
+ readonly "Button / State": readonly ["Idle", "Hover", "Pressed", "Disabled"];
43
+ readonly "ButtonGroup / Output": readonly ["Default"];
44
+ readonly "Calendar Glyph / Output": readonly ["Default"];
45
+ readonly "Calendar Glyph State": readonly ["Idle", "notSaved", "saved"];
46
+ readonly "Card / Output": readonly ["Default"];
47
+ readonly "Card Feedback / Output": readonly ["Default"];
48
+ readonly "Card.Media": readonly ["Default"];
49
+ readonly "Card/CTA / Output": readonly ["Default"];
50
+ readonly "Card/Insight": readonly ["Mode 1"];
51
+ readonly "Card/ProviderInfo / Output": readonly ["Default"];
52
+ readonly "CardAdvisory / Output": readonly ["Default"];
53
+ readonly cardsShared: readonly ["Default"];
54
+ readonly "Carousel / Output": readonly ["Default"];
55
+ readonly "CarouselCardAccounts / Output": readonly ["Default"];
56
+ readonly "ccCard / Output": readonly ["Default"];
57
+ readonly "checkbox / Output": readonly ["Default"];
58
+ readonly "Checkbox / Output": readonly ["Default"];
59
+ readonly "Checkbox states": readonly ["Idle", "Hover", "Focus", "Focus Selected", "Selected Hover", "Disabled/Active", "Disabled", "Selected"];
60
+ readonly "CheckboxGroup / Output": readonly ["Default"];
61
+ readonly "CheckboxItem / Output": readonly ["Default"];
62
+ readonly "Chip / Output": readonly ["Default"];
63
+ readonly "Chip lineHeight": readonly ["Default"];
64
+ readonly "ChipGroup / Output": readonly ["Default"];
65
+ readonly "ChipSelect / Output": readonly ["Default"];
66
+ readonly "ChipSelect State": readonly ["Idle", "Active"];
67
+ readonly "Circular Progress Bar / Doted": readonly ["Default"];
68
+ readonly "Circular Rating / Output": readonly ["Defult"];
69
+ readonly "circularProgressBar / Output": readonly ["Default"];
70
+ readonly "circularProgressBar Size": readonly ["S", "M"];
71
+ readonly "clusterBubble / Output": readonly ["Default"];
72
+ readonly coincard: readonly ["Mode 1"];
73
+ readonly "Color Mode": readonly ["Light", "Dark"];
74
+ readonly comparetablecell: readonly ["Mode 1"];
75
+ readonly comparetableheader: readonly ["Mode 1"];
76
+ readonly "Comparison Floating card": readonly ["Default"];
77
+ readonly ComparisonCardItem: readonly ["Default"];
78
+ readonly Confidence: readonly ["High", "Medium", "Low", "None"];
79
+ readonly "ContentSheet / Output": readonly ["Default"];
80
+ readonly Context: readonly ["Default", "Nudge&Alert", "CTACard", "ListItem"];
81
+ readonly Context2: readonly ["Default", "AppBar"];
82
+ readonly Context3: readonly ["Default", "Transaction Bubble", "Balance & Cards", "Amount Input"];
83
+ readonly Context4: readonly ["Default", "Chip", "Button"];
84
+ readonly context5: readonly ["Default", "Fullscreen Modal"];
85
+ readonly context7: readonly ["Default", "Card"];
86
+ readonly "Contrast Context": readonly ["on dark", "on light"];
87
+ readonly "Conversation Feed / Output": readonly ["Default"];
88
+ readonly "Counter Badge / Output": readonly ["Mode 1"];
89
+ readonly "Coverage Bar Comparison / Output": readonly ["Default"];
90
+ readonly "CoverageRing / Output": readonly ["Mode 1"];
91
+ readonly "CTACard / Output": readonly ["Default"];
92
+ readonly "DataViz / Output": readonly ["Default"];
93
+ readonly "DebitCard / Output": readonly ["Default"];
94
+ readonly "DebitCard brand": readonly ["JFS", "SBI"];
95
+ readonly "DebitCardStack / Output": readonly ["Default"];
96
+ readonly "DetailItem / Output": readonly ["Default"];
97
+ readonly "Disclaimer / Output": readonly ["Default"];
98
+ readonly "Divider / Output": readonly ["Default"];
99
+ readonly "Donut Chart / Output": readonly ["Default"];
100
+ readonly "Drawer / Output": readonly ["Default"];
101
+ readonly "Dropdown / Output": readonly ["Default"];
102
+ readonly "Dropdown Item / Output": readonly ["Default"];
103
+ readonly "Dropdown Item State": readonly ["Idle", "Selected"];
104
+ readonly Emphasis: readonly ["High", "Medium", "Low"];
105
+ readonly "Emphasis / DataViz": readonly ["High", "Medium", "Low"];
106
+ readonly "EmptyState / Output": readonly ["Default"];
107
+ readonly "ExpandableCheckbox / Output": readonly ["Default"];
108
+ readonly "Feedback / Output": readonly ["Default"];
109
+ readonly "filterBar / Output": readonly ["Default"];
110
+ readonly "FinancialConditionCard / Output": readonly ["Default"];
111
+ readonly "Form / Output": readonly ["Default"];
112
+ readonly "FormField / Output": readonly ["Default"];
113
+ readonly "FormField States": readonly ["Idle", "Active", "Read Only", "Error", "Disabled"];
114
+ readonly FullScreenModal: readonly ["Default"];
115
+ readonly Gap: readonly ["S", "M", "L", "None"];
116
+ readonly "Gauge / Output": readonly ["Default"];
117
+ readonly "Handle Boolean": readonly ["False", "True"];
118
+ readonly "Heading / Output": readonly ["Default"];
119
+ readonly "Heading text": readonly ["Default", "Slot"];
120
+ readonly "Holdings card / Output": readonly ["Default"];
121
+ readonly "HStack / Output": readonly ["Default"];
122
+ readonly "Icon / Output": readonly ["Default"];
123
+ readonly "Icon Button / Output": readonly ["Default"];
124
+ readonly "Icon Capsule / Output": readonly ["Default"];
125
+ readonly "Icon Capsule Size": readonly ["M", "L", "S", "XS"];
126
+ readonly "Image / Output": readonly ["Default"];
127
+ readonly "Input / Output": readonly ["Default"];
128
+ readonly "Input/PINSlot States": readonly ["Idle", "Active", "Error"];
129
+ readonly "Input/PINSlot / Output": readonly ["Default"];
130
+ readonly "InputField / Output": readonly ["Default"];
131
+ readonly InputState: readonly ["Idle", "Active"];
132
+ readonly "Institution Badge / Output": readonly ["Default"];
133
+ readonly isActive: readonly ["False", "True"];
134
+ readonly "lazyList / Output": readonly ["Default"];
135
+ readonly "LinearMeter / Output": readonly ["Default"];
136
+ readonly "LinearProgress / Output": readonly ["Default"];
137
+ readonly "LinearProgress Size": readonly ["M", "L"];
138
+ readonly "Link / Output": readonly ["Default"];
139
+ readonly "List Item / Output": readonly ["Default"];
140
+ readonly "List Item Style": readonly ["Default", "Boxed", "Minimal"];
141
+ readonly "listGroup / Output": readonly ["Default"];
142
+ readonly "ListItem State": readonly ["Idle", "Active"];
143
+ readonly "LottieIntroBlock / Output": readonly ["Default"];
144
+ readonly "Media / Output": readonly ["L", "M", "S"];
145
+ readonly MediaBlock: readonly ["IconCapsule", "Image"];
146
+ readonly "MerchantProfile / Output": readonly ["Default"];
147
+ readonly "Message Direction": readonly ["Incoming (Left)", "Outgoing (Right)"];
148
+ readonly "Message Row / Output": readonly ["Default"];
149
+ readonly "MessageField / Output": readonly ["Default"];
150
+ readonly metricdata: readonly ["Mode 1"];
151
+ readonly "MetricLegendItem / Output": readonly ["Default"];
152
+ readonly "Money Value / Output": readonly ["Default"];
153
+ readonly "MonthlyStatusGrid / Output": readonly ["Default"];
154
+ readonly Multipliers: readonly ["Idle"];
155
+ readonly NavArrow: readonly ["Default"];
156
+ readonly "NavArrow / Output": readonly ["Default"];
157
+ readonly "NavArrow Direction": readonly ["Left&Right", "Top&Bottom"];
158
+ readonly "NoteInput / Output": readonly ["Default"];
159
+ readonly "Nudge / Output": readonly ["Default"];
160
+ readonly "Nudge padding": readonly ["Default", "None"];
161
+ readonly "Numpad / Output": readonly ["Default"];
162
+ readonly "OTP / Output": readonly ["Mode 1"];
163
+ readonly "Overlay / Output": readonly ["Mode 1"];
164
+ readonly Padding: readonly ["Default", "None"];
165
+ readonly "Page type": readonly ["MainPage", "SubPage", "JioPlus"];
166
+ readonly "PageHero / Output": readonly ["Default"];
167
+ readonly "PaymnetFeedback / Output": readonly ["Default"];
168
+ readonly "PDP cc card": readonly ["Mode 1"];
169
+ readonly peekOffset: readonly ["Medium", "Small", "Large", "None"];
170
+ readonly Placement: readonly ["Prefix", "Suffix"];
171
+ readonly "PlanComparisonCard / Output": readonly ["Default"];
172
+ readonly "Popup / Output": readonly ["Default"];
173
+ readonly "PortfolioHero / Output": readonly ["Default"];
174
+ readonly PoweredByLabel: readonly ["Default"];
175
+ readonly "Product Merchandising card": readonly ["Mode 1"];
176
+ readonly "ProductLabel / Output": readonly ["Default"];
177
+ readonly "ProductOverview / Output": readonly ["Default"];
178
+ readonly "ProgressBadge / Output": readonly ["Default"];
179
+ readonly ProjectionMarker: readonly ["Mode 1"];
180
+ readonly "QR code / Output": readonly ["Idle"];
181
+ readonly "Radio / Output": readonly ["Default"];
182
+ readonly Radius: readonly ["S", "M", "L", "None"];
183
+ readonly "RangeTrack / Output": readonly ["Default"];
184
+ readonly "RechargeCard / Output": readonly ["Default"];
185
+ readonly rotfl: readonly ["Default"];
186
+ readonly "SavingsGoalSummary / Output": readonly ["Default"];
187
+ readonly "Screen / Output": readonly ["Default"];
188
+ readonly "SearchFilterBar / Output": readonly ["Default"];
189
+ readonly "Section / Output": readonly ["Defult"];
190
+ readonly "SectionBentoGrid / Output": readonly ["Default"];
191
+ readonly "Segment Indicator / Output": readonly ["Default"];
192
+ readonly "SegmentedControl / Output": readonly ["Default"];
193
+ readonly "SegmentedControl/Segment": readonly ["Idle", "Active"];
194
+ readonly "SegmentedControl/Segment / Output": readonly ["Default"];
195
+ readonly "SegmentedTrack / Output": readonly ["Default"];
196
+ readonly Selectable: readonly ["False", "True"];
197
+ readonly selectioncard: readonly ["Mode 1"];
198
+ readonly "Semantic Intent": readonly ["Brand", "System"];
199
+ readonly Skeleton: readonly ["Mode 1"];
200
+ readonly "Slider / Output": readonly ["Default"];
201
+ readonly "Slot gap": readonly ["S", "M", "L", "XL"];
202
+ readonly "special button": readonly ["Default"];
203
+ readonly "Spinner / Output": readonly ["Default"];
204
+ readonly "statGroup / Output": readonly ["Default"];
205
+ readonly "StatItem / Output": readonly ["Default"];
206
+ readonly "StatItem Label Position ": readonly ["Top", "Bottom"];
207
+ readonly Status: readonly ["Auto", "Warning", "Error", "Success", "Loading", "Neutral"];
208
+ readonly "StatusHero / Output": readonly ["Default"];
209
+ readonly "Step Indicator / Output": readonly ["Default"];
210
+ readonly "Step Status": readonly ["active", "inactive", "complete", "error", "warning"];
211
+ readonly "Steper Item / Output": readonly ["Default"];
212
+ readonly "Stepper / Output": readonly ["Default"];
213
+ readonly "StrengthIndicator / Output": readonly ["Default"];
214
+ readonly Sufix: readonly ["False", "True"];
215
+ readonly "SummaryTile / Output": readonly ["Default"];
216
+ readonly "SupportText / Output": readonly ["Default"];
217
+ readonly "Swappable subComponent / Output": readonly ["Default"];
218
+ readonly "SwappableAmount / Output": readonly ["Default"];
219
+ readonly "tabItem / Output": readonly ["Default"];
220
+ readonly "Tabs / Output": readonly ["Default"];
221
+ readonly TestimonialsCard: readonly ["Default"];
222
+ readonly "Text / Output": readonly ["Default"];
223
+ readonly "Text Appearance": readonly ["Neutral", "Primary", "Secondary", "Tertiary"];
224
+ readonly "Text Sizes": readonly ["Medium", "Small"];
225
+ readonly "textInput / Output": readonly ["Default"];
226
+ readonly "TextSegment / Output": readonly ["Default"];
227
+ readonly "Thread Hero / Output": readonly ["Default"];
228
+ readonly "Title / Output": readonly ["Default"];
229
+ readonly "Title Level": readonly ["Default", "Bold"];
230
+ readonly "Toggle / Output": readonly ["Default"];
231
+ readonly "Toggle States": readonly ["Off", "On", "Disabled Off", "Disabled On"];
232
+ readonly "ToggleIconButton / Output": readonly ["Default"];
233
+ readonly Tooltip: readonly ["True", "False"];
234
+ readonly "tooltip / Output": readonly ["Default"];
235
+ readonly "Tost Output": readonly ["Default"];
236
+ readonly "Transaction Status": readonly ["Request", "Paid", "Declined", "Expired"];
237
+ readonly "Transaction Status / Output": readonly ["Default"];
238
+ readonly "TransactionBubble / Output": readonly ["Default"];
239
+ readonly "TransationDetails / Output": readonly ["Default"];
240
+ readonly "UPI Handle / Output": readonly ["Default"];
241
+ readonly "ValueBar / Output": readonly ["Default"];
242
+ readonly "VStack / Output": readonly ["Default"];
243
+ readonly Weight: readonly ["Medium", "Regular", "Bold"];
244
+ };
245
+ /**
246
+ * Multi-mode collections each component actually uses (derived from the token
247
+ * tracing in `.token-metadata.json`). Drives the per-component Storybook mode
248
+ * select controls. Empty until `extract-component-tokens.js` has run.
249
+ */
250
+ export declare const FIGMA_COMPONENT_MODES: Record<string, readonly string[]>;
251
+ /**
252
+ * Allow the known literal values to drive autocomplete while still accepting any
253
+ * `string` — this keeps the typing fully backward compatible with dynamically
254
+ * computed / forced mode values.
255
+ */
256
+ type LiteralUnion<T extends string> = T | (string & {});
257
+ /** Union of every valid collection name (the keys of a `modes` object). */
258
+ export type CollectionName = keyof typeof FIGMA_MODES;
259
+ /** Valid mode names for a given collection. */
260
+ export type ModeOf<C extends CollectionName> = (typeof FIGMA_MODES)[C][number];
261
+ /**
262
+ * The typed `modes` prop. Known collection-name keys and their mode values
263
+ * drive autocomplete, while an index signature (plus `boolean`/`number` values)
264
+ * keeps it fully backward compatible with dynamically-built, forced, or legacy
265
+ * `modes` objects — nothing that compiled before starts failing.
266
+ *
267
+ * @example
268
+ * const modes: Modes = { 'Color Mode': 'Dark', 'Page type': 'JioPlus' }
269
+ */
270
+ export type Modes = {
271
+ [K in CollectionName]?: LiteralUnion<ModeOf<K>> | boolean | number;
272
+ } & {
273
+ [collection: string]: string | boolean | number | undefined;
274
+ };
275
+ /**
276
+ * Strict variant: only real collection-name keys and exact mode values are
277
+ * allowed (no `string` escape hatch, no unknown keys). Opt in when you want
278
+ * typos in mode keys/values to be a compile error.
279
+ */
280
+ export type StrictModes = {
281
+ [K in CollectionName]?: ModeOf<K>;
282
+ };
283
+ export {};
284
+ //# sourceMappingURL=figma-modes.generated.d.ts.map
@@ -1,3 +1,4 @@
1
1
  export * from './figma-variables-resolver';
2
2
  export * from './JFSThemeProvider';
3
+ export * from './figma-modes.generated';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -4,7 +4,7 @@
4
4
  * Auto-generated from SVG files in src/icons/
5
5
  * DO NOT EDIT MANUALLY - Run "npm run icons:generate" to regenerate
6
6
  *
7
- * Generated: 2026-06-09T13:55:40.250Z
7
+ * Generated: 2026-06-12T12:48:07.304Z
8
8
  */
9
9
  export declare const iconRegistry: Record<string, {
10
10
  path: string;
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { type DimensionValue, type StyleProp, type ViewStyle } from 'react-native';
3
3
  import { type SkeletonKind } from './shimmer-tokens';
4
+ import type { Modes } from '../design-tokens';
4
5
  export interface SkeletonProps {
5
6
  /**
6
7
  * Visual category — controls only the corner-radius token. Sizes are still
@@ -21,7 +22,7 @@ export interface SkeletonProps {
21
22
  * Modes for token resolution (forwarded to `getVariableByName`). Most
22
23
  * consumers can omit this — defaults work for every standard mode.
23
24
  */
24
- modes?: Record<string, any>;
25
+ modes?: Modes;
25
26
  }
26
27
  /**
27
28
  * Atomic skeleton placeholder. Renders a base rectangle (background colour +
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import type { Modes } from '../design-tokens';
2
3
  /**
3
4
  * A shared, frozen empty modes object.
4
5
  *
@@ -18,7 +19,17 @@ export declare const EMPTY_MODES: Readonly<Record<string, any>>;
18
19
  * Helper function to recursively clone children and pass modes prop to components that accept it.
19
20
  * This ensures that all child components in slots receive the modes prop from the parent.
20
21
  */
21
- export declare function cloneChildrenWithModes(children: React.ReactNode, modes: Record<string, any>, forcedModes?: Record<string, any>): React.ReactNode[];
22
+ export declare function cloneChildrenWithModes(children: React.ReactNode, modes: Modes, forcedModes?: Modes): React.ReactNode[];
23
+ /**
24
+ * Combines several refs (object refs and/or callback refs) into a single
25
+ * callback ref. Useful when a component needs to keep its own internal ref to a
26
+ * node while still honouring a ref forwarded by the consumer.
27
+ *
28
+ * @example
29
+ * const inputRef = useRef<RNTextInput>(null)
30
+ * <RNTextInput ref={mergeRefs(inputRef, forwardedRef)} />
31
+ */
32
+ export declare function mergeRefs<T>(...refs: Array<React.Ref<T> | undefined | null>): React.RefCallback<T>;
22
33
  /**
23
34
  * Flattens React children, extracting them from Fragments.
24
35
  * Useful for Group components that need to process individual items (e.g., for layout or styling)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jfs-components",
3
- "version": "0.1.0",
3
+ "version": "0.1.8",
4
4
  "description": "React Native Jio Finance Components Library",
5
5
  "author": "sunshuaiqi@gmail.com",
6
6
  "license": "MIT",
@@ -30,9 +30,11 @@
30
30
  "lint": "eslint .",
31
31
  "build-react": "webpack --mode production",
32
32
  "start-react": "webpack-dev-server --config ./webpack.config.js --mode development",
33
+ "tokens": "node scripts/figma-token-explorer.js",
33
34
  "extract-tokens": "node scripts/extract-component-tokens.js",
35
+ "generate-mode-types": "node scripts/generate-mode-types.js",
34
36
  "generate-docs": "node scripts/generate-component-docs.js",
35
- "prestorybook-web": "npm run extract-tokens && npm run generate-docs",
37
+ "prestorybook-web": "npm run extract-tokens && npm run generate-mode-types && npm run generate-docs",
36
38
  "storybook-web": "storybook dev -p 6006",
37
39
  "build:storybook-web": "storybook build",
38
40
  "deploy:storybook": "vercel --prod",
@@ -15,6 +15,7 @@ import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
15
15
  import Icon from '../../icons/Icon'
16
16
  import { usePressableWebSupport, type WebAccessibilityProps } from '../../utils/web-platform-utils'
17
17
  import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
18
+ import type { Modes } from '../../design-tokens'
18
19
 
19
20
  // Enable LayoutAnimation on Android
20
21
  if (Platform.OS === 'android' && UIManager.setLayoutAnimationEnabledExperimental) {
@@ -75,7 +76,7 @@ export type AccordionProps = {
75
76
  /** Content to display when the accordion is expanded (Figma Slot: 'content') */
76
77
  children?: React.ReactNode;
77
78
  /** Modes object passed to getVariableByName for all design tokens */
78
- modes?: Record<string, any>;
79
+ modes?: Modes;
79
80
  /** Optional container style overrides */
80
81
  style?: StyleProp<ViewStyle>;
81
82
  /** Accessibility label for screen readers. If not provided, uses title */
@@ -15,6 +15,7 @@ import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
15
15
  import Checkbox from '../Checkbox/Checkbox'
16
16
  import Divider from '../Divider/Divider'
17
17
  import Icon from '../../icons/Icon'
18
+ import type { Modes } from '../../design-tokens'
18
19
 
19
20
  if (Platform.OS === 'android' && UIManager.setLayoutAnimationEnabledExperimental) {
20
21
  UIManager.setLayoutAnimationEnabledExperimental(true)
@@ -46,7 +47,7 @@ export type AccordionCheckboxProps = {
46
47
  */
47
48
  children?: React.ReactNode
48
49
  /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
49
- modes?: Record<string, any>
50
+ modes?: Modes
50
51
  /** Override outer container styles. */
51
52
  style?: StyleProp<ViewStyle>
52
53
  /** Accessibility label for the header press target. Defaults to `title`. */
@@ -15,6 +15,7 @@ import {
15
15
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
16
16
  import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
17
17
  import Icon from '../../icons/Icon'
18
+ import type { Modes } from '../../design-tokens'
18
19
 
19
20
  const IS_IOS = Platform.OS === 'ios'
20
21
  const PRESS_DELAY = IS_IOS ? 130 : 0
@@ -80,7 +81,7 @@ export type AccountCardProps = {
80
81
  /** Disable interaction (also dims the card). */
81
82
  disabled?: boolean
82
83
  /** Design token modes (e.g. `{ 'Color Mode': 'Light' }`). */
83
- modes?: Record<string, any>
84
+ modes?: Modes
84
85
  /** Container style override. */
85
86
  style?: StyleProp<ViewStyle>
86
87
  /** Accessibility label (defaults to `title`). */
@@ -11,6 +11,7 @@ import {
11
11
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
12
12
  import { EMPTY_MODES, cloneChildrenWithModes, flattenChildren } from '../../utils/react-utils'
13
13
  import IconButton from '../IconButton/IconButton'
14
+ import type { Modes } from '../../design-tokens'
14
15
 
15
16
  export type ActionFooterProps = {
16
17
  /**
@@ -25,7 +26,7 @@ export type ActionFooterProps = {
25
26
  * Automatically merged into every slot child via {@link cloneChildrenWithModes}
26
27
  * so callers don't have to thread modes down by hand.
27
28
  */
28
- modes?: Record<string, any>
29
+ modes?: Modes
29
30
  /**
30
31
  * Optional style overrides for the outer container.
31
32
  */
@@ -4,6 +4,7 @@ import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
4
4
  import { useTokens } from '../../design-tokens/JFSThemeProvider'
5
5
  import IconCapsule from '../IconCapsule/IconCapsule'
6
6
  import { EMPTY_MODES } from '../../utils/react-utils'
7
+ import type { Modes } from '../../design-tokens'
7
8
 
8
9
  export type ActionTileProps = {
9
10
  /** Label text, e.g. "Cards" */
@@ -15,7 +16,7 @@ export type ActionTileProps = {
15
16
  */
16
17
  icon?: React.ReactNode
17
18
  /** Modes for design token resolution */
18
- modes?: Record<string, any>
19
+ modes?: Modes
19
20
  /** Optional container style */
20
21
  style?: ViewStyle
21
22
  /** Callback when tile is pressed */
@@ -11,6 +11,7 @@ import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
11
11
  import { useTokens } from '../../design-tokens/JFSThemeProvider'
12
12
  import { EMPTY_MODES } from '../../utils/react-utils'
13
13
  import MetricLegendItem from '../MetricLegendItem/MetricLegendItem'
14
+ import type { Modes } from '../../design-tokens'
14
15
 
15
16
  /**
16
17
  * One vertical pill in the {@link AllocationComparisonChartProps.data} array.
@@ -99,7 +100,7 @@ export type AllocationComparisonChartProps = {
99
100
  */
100
101
  formatValue?: (value: number) => string
101
102
  /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
102
- modes?: Record<string, any>
103
+ modes?: Modes
103
104
  /** Container style override. */
104
105
  style?: StyleProp<ViewStyle>
105
106
  /** Style applied to the bars row. */
@@ -1,10 +1,11 @@
1
- import React from 'react'
1
+ import React, { forwardRef } from 'react'
2
2
  import { View, type ViewStyle } from 'react-native'
3
3
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
4
4
  import { useTokens } from '../../design-tokens/JFSThemeProvider'
5
5
  import MoneyValue from '../MoneyValue/MoneyValue'
6
6
  import NoteInput from '../NoteInput/NoteInput'
7
7
  import { EMPTY_MODES } from '../../utils/react-utils'
8
+ import type { Modes } from '../../design-tokens'
8
9
 
9
10
  export type AmountInputProps = {
10
11
  /**
@@ -16,7 +17,7 @@ export type AmountInputProps = {
16
17
  */
17
18
  noteInputSlot?: React.ReactNode
18
19
  /** Modes for design token resolution */
19
- modes?: Record<string, any>
20
+ modes?: Modes
20
21
  /** Optional container style */
21
22
  style?: ViewStyle
22
23
  }
@@ -26,12 +27,12 @@ export type AmountInputProps = {
26
27
  *
27
28
  * @component
28
29
  */
29
- export default function AmountInput({
30
+ const AmountInput = forwardRef<View, AmountInputProps>(function AmountInput({
30
31
  moneyValueSlot,
31
32
  noteInputSlot,
32
33
  modes: propModes = EMPTY_MODES,
33
34
  style,
34
- }: AmountInputProps) {
35
+ }: AmountInputProps, ref: React.Ref<View>) {
35
36
  const { modes: globalModes } = useTokens()
36
37
  const modes = { ...globalModes, ...propModes }
37
38
 
@@ -74,9 +75,11 @@ export default function AmountInput({
74
75
  }
75
76
 
76
77
  return (
77
- <View style={containerStyle}>
78
+ <View ref={ref} style={containerStyle}>
78
79
  {renderMoneyValueSlot()}
79
80
  {renderNoteInputSlot()}
80
81
  </View>
81
82
  )
82
- }
83
+ })
84
+
85
+ export default AmountInput
@@ -5,6 +5,7 @@ import { useTokens } from '../../design-tokens/JFSThemeProvider'
5
5
 
6
6
  import NavArrow from '../NavArrow/NavArrow'
7
7
  import { cloneChildrenWithModes, EMPTY_MODES } from '../../utils/react-utils'
8
+ import type { Modes } from '../../design-tokens'
8
9
 
9
10
  type AppBarType = 'MainPage' | 'SubPage'
10
11
 
@@ -54,7 +55,7 @@ export type AppBarProps = {
54
55
  /**
55
56
  * Token modes to override.
56
57
  */
57
- modes?: Record<string, any>;
58
+ modes?: Modes;
58
59
  /**
59
60
  * Callback for the default leading slot press (e.g. back button).
60
61
  */
@@ -25,6 +25,7 @@ import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
25
25
  import { useTokens } from '../../design-tokens/JFSThemeProvider'
26
26
  import { EMPTY_MODES } from '../../utils/react-utils'
27
27
  import MetricLegendItem from '../MetricLegendItem/MetricLegendItem'
28
+ import type { Modes } from '../../design-tokens'
28
29
  import {
29
30
  buildAreaPath,
30
31
  buildLineSegments,
@@ -141,7 +142,7 @@ export type AreaLineChartProps = {
141
142
  /** Enable hover/press-drag interaction + tooltip. Defaults to `true`. */
142
143
  interactive?: boolean
143
144
  /** Design token modes for theming (e.g. `{ 'Color Mode': 'Light' }`). */
144
- modes?: Record<string, any>
145
+ modes?: Modes
145
146
  /** Container style override. */
146
147
  style?: StyleProp<ViewStyle>
147
148
  /** Extra SVG-decorator children rendered on top of the default layers. */
@@ -182,7 +183,7 @@ type ChartContextValue = {
182
183
  formatX: (label: string | number, index: number) => React.ReactNode
183
184
  formatY: (value: number) => React.ReactNode
184
185
  showDots: boolean
185
- modes: Record<string, any>
186
+ modes: Modes
186
187
  }
187
188
 
188
189
  const ChartContext = createContext<ChartContextValue | null>(null)
@@ -231,7 +232,7 @@ const appearanceFor = (index: number) =>
231
232
  const resolveLineColor = (
232
233
  color: string | undefined,
233
234
  appearance: string,
234
- modes: Record<string, any>
235
+ modes: Modes
235
236
  ): string => {
236
237
  if (color) return color
237
238
  return (
@@ -248,7 +249,7 @@ const resolveAreaColor = (
248
249
  color: string | undefined,
249
250
  lineColor: string,
250
251
  appearance: string,
251
- modes: Record<string, any>
252
+ modes: Modes
252
253
  ): string => {
253
254
  if (color) return color
254
255
  return (
@@ -281,7 +282,7 @@ const defaultFormatX = (label: string | number): React.ReactNode => String(label
281
282
  * @component
282
283
  */
283
284
  function AreaLineChart({
284
- series,
285
+ series = [],
285
286
  xLabels,
286
287
  yMin,
287
288
  yMax,
@@ -1017,7 +1018,7 @@ function ChartTooltip({
1017
1018
  x: number
1018
1019
  width: number
1019
1020
  items: Array<{ key: string; label: string; value: React.ReactNode; color: string }>
1020
- modes: Record<string, any>
1021
+ modes: Modes
1021
1022
  }) {
1022
1023
  const [size, setSize] = useState<{ width: number; height: number } | null>(null)
1023
1024
 
@@ -1098,7 +1099,7 @@ function ChartLegend() {
1098
1099
  // --- Shared hooks / utils --------------------------------------------------
1099
1100
 
1100
1101
  /** Resolve `axisItem/*` typography tokens into a memoized text style. */
1101
- function useAxisTypography(modes: Record<string, any>) {
1102
+ function useAxisTypography(modes: Modes) {
1102
1103
  return useMemo(() => {
1103
1104
  const color = (getVariableByName('axisItem/color', modes) as string | null) ?? '#000000'
1104
1105
  const fontFamily =
@@ -9,6 +9,7 @@ import {
9
9
  import { useTokens } from '../../design-tokens/JFSThemeProvider'
10
10
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
11
11
  import { cloneChildrenWithModes, EMPTY_MODES } from '../../utils/react-utils'
12
+ import type { Modes } from '../../design-tokens'
12
13
 
13
14
  /**
14
15
  * Anchor point on the main content where the attached `badge` is centered.
@@ -75,7 +76,7 @@ export type AttachedProps = Omit<ViewProps, 'children'> & {
75
76
  */
76
77
  circular?: boolean
77
78
  /** Mode configuration cascaded to the token resolver and all children. */
78
- modes?: Record<string, any>
79
+ modes?: Modes
79
80
  style?: StyleProp<ViewStyle>
80
81
  }
81
82