jfs-components 0.1.8 → 0.1.17

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 (704) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/lib/commonjs/components/Accordion/Accordion.js +2 -1
  3. package/lib/commonjs/components/AccordionCheckbox/AccordionCheckbox.js +4 -3
  4. package/lib/commonjs/components/AccountCard/AccountCard.js +4 -3
  5. package/lib/commonjs/components/ActionFooter/ActionFooter.js +7 -24
  6. package/lib/commonjs/components/ActionTile/ActionTile.js +10 -10
  7. package/lib/commonjs/components/AllocationComparisonChart/AllocationComparisonChart.js +9 -6
  8. package/lib/commonjs/components/AmountInput/AmountInput.js +3 -3
  9. package/lib/commonjs/components/AreaLineChart/AreaLineChart.js +13 -9
  10. package/lib/commonjs/components/Attached/Attached.js +1 -1
  11. package/lib/commonjs/components/Avatar/Avatar.js +10 -10
  12. package/lib/commonjs/components/AvatarGroup/AvatarGroup.js +9 -9
  13. package/lib/commonjs/components/Badge/Badge.js +55 -16
  14. package/lib/commonjs/components/BenefitCard/BenefitCard.js +95 -21
  15. package/lib/commonjs/components/BottomNav/BottomNav.js +2 -2
  16. package/lib/commonjs/components/BottomNavItem/BottomNavItem.js +3 -3
  17. package/lib/commonjs/components/BrandChip/BrandChip.js +3 -3
  18. package/lib/commonjs/components/Button/Button.js +32 -19
  19. package/lib/commonjs/components/Card/Card.js +20 -20
  20. package/lib/commonjs/components/CardAdvisory/CardAdvisory.js +8 -7
  21. package/lib/commonjs/components/CardBankAccount/CardBankAccount.js +3 -2
  22. package/lib/commonjs/components/CardCTA/CardCTA.js +215 -45
  23. package/lib/commonjs/components/CardFeedback/CardFeedback.js +18 -18
  24. package/lib/commonjs/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
  25. package/lib/commonjs/components/CardInsight/CardInsight.js +6 -3
  26. package/lib/commonjs/components/Carousel/Carousel.js +18 -12
  27. package/lib/commonjs/components/CarouselCardAccounts/CarouselCardAccounts.js +75 -0
  28. package/lib/commonjs/components/Checkbox/Checkbox.js +6 -13
  29. package/lib/commonjs/components/ChipGroup/ChipGroup.js +1 -1
  30. package/lib/commonjs/components/ChipSelect/ChipSelect.js +11 -11
  31. package/lib/commonjs/components/CircularProgressBar/CircularProgressBar.js +12 -8
  32. package/lib/commonjs/components/CircularProgressBarDoted/CircularProgressBarDoted.js +11 -10
  33. package/lib/commonjs/components/CircularRating/CircularRating.js +5 -4
  34. package/lib/commonjs/components/ClusterBubble/ClusterBubble.js +3 -2
  35. package/lib/commonjs/components/CompareTable/CompareTable.js +88 -59
  36. package/lib/commonjs/components/CoverageBarComparison/CoverageBarComparison.js +3 -2
  37. package/lib/commonjs/components/DebitCard/DebitCard.js +18 -18
  38. package/lib/commonjs/components/Disclaimer/Disclaimer.js +5 -5
  39. package/lib/commonjs/components/DonutChart/DonutChart.js +15 -14
  40. package/lib/commonjs/components/Drawer/Drawer.js +60 -60
  41. package/lib/commonjs/components/Dropdown/Dropdown.js +25 -25
  42. package/lib/commonjs/components/DropdownInput/DropdownInput.js +13 -12
  43. package/lib/commonjs/components/EmptyState/EmptyState.js +14 -14
  44. package/lib/commonjs/components/ExpandableCheckbox/ExpandableCheckbox.js +2 -1
  45. package/lib/commonjs/components/FilterBar/FilterBar.js +2 -2
  46. package/lib/commonjs/components/Form/Form.js +3 -3
  47. package/lib/commonjs/components/FormField/FormField.js +48 -8
  48. package/lib/commonjs/components/FullscreenModal/FullscreenModal.js +24 -24
  49. package/lib/commonjs/components/Gauge/Gauge.js +9 -9
  50. package/lib/commonjs/components/HoldingsCard/HoldingsCard.js +13 -12
  51. package/lib/commonjs/components/Icon/Icon.js +6 -6
  52. package/lib/commonjs/components/IconCapsule/IconCapsule.js +7 -7
  53. package/lib/commonjs/components/InputSearch/InputSearch.js +9 -9
  54. package/lib/commonjs/components/InstitutionBadge/InstitutionBadge.js +5 -4
  55. package/lib/commonjs/components/ListGroup/ListGroup.js +10 -9
  56. package/lib/commonjs/components/ListItem/ListItem.js +13 -12
  57. package/lib/commonjs/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
  58. package/lib/commonjs/components/LottiePlayer/LottiePlayer.js +2 -2
  59. package/lib/commonjs/components/LottiePlayer/LottiePlayer.web.js +2 -2
  60. package/lib/commonjs/components/MediaCard/MediaCard.js +25 -23
  61. package/lib/commonjs/components/MessageField/MessageField.js +8 -8
  62. package/lib/commonjs/components/MetricLegendItem/MetricLegendItem.js +3 -2
  63. package/lib/commonjs/components/MoneyValue/MoneyValue.js +7 -7
  64. package/lib/commonjs/components/MonthlyStatusGrid/MonthlyStatusGrid.js +6 -3
  65. package/lib/commonjs/components/NavArrow/NavArrow.js +8 -8
  66. package/lib/commonjs/components/NoteInput/NoteInput.js +12 -12
  67. package/lib/commonjs/components/Nudge/Nudge.js +20 -20
  68. package/lib/commonjs/components/OTP/OTP.js +15 -15
  69. package/lib/commonjs/components/PageHero/PageHero.js +16 -16
  70. package/lib/commonjs/components/PaymentFeedback/PaymentFeedback.js +23 -23
  71. package/lib/commonjs/components/Popup/Popup.js +1 -1
  72. package/lib/commonjs/components/PoweredByLabel/PoweredByLabel.js +3 -2
  73. package/lib/commonjs/components/ProductMerchandisingCard/ProductMerchandisingCard.js +107 -33
  74. package/lib/commonjs/components/ProductOverview/ProductOverview.js +4 -3
  75. package/lib/commonjs/components/ProgressBadge/ProgressBadge.js +7 -7
  76. package/lib/commonjs/components/ProjectionMarker/ProjectionMarker.js +3 -2
  77. package/lib/commonjs/components/Radio/Radio.js +8 -8
  78. package/lib/commonjs/components/RechargeCard/RechargeCard.js +31 -31
  79. package/lib/commonjs/components/SavingsGoalSummary/SavingsGoalSummary.js +59 -12
  80. package/lib/commonjs/components/ScrollArea/ScrollArea.js +126 -0
  81. package/lib/commonjs/components/Section/Section.js +27 -26
  82. package/lib/commonjs/components/Slider/Slider.js +3 -2
  83. package/lib/commonjs/components/Stack/Stack.js +86 -0
  84. package/lib/commonjs/components/StatusHero/StatusHero.js +14 -14
  85. package/lib/commonjs/components/Stepper/Step.js +16 -16
  86. package/lib/commonjs/components/Stepper/StepLabel.js +16 -16
  87. package/lib/commonjs/components/Stepper/Stepper.js +3 -3
  88. package/lib/commonjs/components/SuggestiveSearch/SuggestiveSearch.js +20 -11
  89. package/lib/commonjs/components/SummaryTile/SummaryTile.js +3 -2
  90. package/lib/commonjs/components/SupportText/SupportText.js +6 -6
  91. package/lib/commonjs/components/SupportText/SupportTextIcon.js +2 -2
  92. package/lib/commonjs/components/Table/Table.js +324 -0
  93. package/lib/commonjs/components/Text/Text.js +15 -2
  94. package/lib/commonjs/components/TextInput/TextInput.js +23 -15
  95. package/lib/commonjs/components/TextSegment/TextSegment.js +15 -2
  96. package/lib/commonjs/components/ThreadHero/ThreadHero.js +21 -22
  97. package/lib/commonjs/components/Title/Title.js +39 -16
  98. package/lib/commonjs/components/Toast/Toast.js +18 -17
  99. package/lib/commonjs/components/Toggle/Toggle.js +3 -11
  100. package/lib/commonjs/components/Tooltip/Tooltip.js +12 -12
  101. package/lib/commonjs/components/TransactionBubble/TransactionBubble.js +15 -14
  102. package/lib/commonjs/components/TransactionDetails/TransactionDetails.js +10 -10
  103. package/lib/commonjs/components/TransactionStatus/TransactionStatus.js +12 -11
  104. package/lib/commonjs/components/UpiHandle/UpiHandle.js +17 -17
  105. package/lib/commonjs/components/index.js +58 -0
  106. package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
  107. package/lib/commonjs/design-tokens/figma-modes.generated.js +51 -42
  108. package/lib/commonjs/icons/components/Icon4g.js +19 -0
  109. package/lib/commonjs/icons/components/Icon4gltedata.js +19 -0
  110. package/lib/commonjs/icons/components/Icon5g.js +19 -0
  111. package/lib/commonjs/icons/components/Icon5gdoubleplus.js +19 -0
  112. package/lib/commonjs/icons/components/Icon5gplus.js +19 -0
  113. package/lib/commonjs/icons/components/IconAdblocker.js +19 -0
  114. package/lib/commonjs/icons/components/IconAdblockplus.js +19 -0
  115. package/lib/commonjs/icons/components/IconAnalytics.js +19 -0
  116. package/lib/commonjs/icons/components/IconAnalyticsdata.js +19 -0
  117. package/lib/commonjs/icons/components/IconAnalyticspiechart.js +19 -0
  118. package/lib/commonjs/icons/components/IconAnalyticspiecharttree.js +19 -0
  119. package/lib/commonjs/icons/components/IconAnalyticspiecharttwo.js +19 -0
  120. package/lib/commonjs/icons/components/IconCompoundinterest.js +19 -0
  121. package/lib/commonjs/icons/components/IconConsumptionaccounted.js +19 -0
  122. package/lib/commonjs/icons/components/IconConsumptionaverage.js +19 -0
  123. package/lib/commonjs/icons/components/IconConsumptionhigh.js +19 -0
  124. package/lib/commonjs/icons/components/IconConsumptionlow.js +19 -0
  125. package/lib/commonjs/icons/components/IconConsumptionunaccounted.js +19 -0
  126. package/lib/commonjs/icons/components/IconCsvdoc.js +19 -0
  127. package/lib/commonjs/icons/components/IconDatabase.js +19 -0
  128. package/lib/commonjs/icons/components/IconDigitalecosystem.js +19 -0
  129. package/lib/commonjs/icons/components/IconDigitalselfservice.js +19 -0
  130. package/lib/commonjs/icons/components/IconDistribution.js +19 -0
  131. package/lib/commonjs/icons/components/IconDocument.js +19 -0
  132. package/lib/commonjs/icons/components/IconDocumentdoc.js +19 -0
  133. package/lib/commonjs/icons/components/IconDocumentjpg.js +19 -0
  134. package/lib/commonjs/icons/components/IconDocumentodt.js +19 -0
  135. package/lib/commonjs/icons/components/IconDocumentpdf.js +19 -0
  136. package/lib/commonjs/icons/components/IconDocumentpng.js +19 -0
  137. package/lib/commonjs/icons/components/IconDocumentraw.js +19 -0
  138. package/lib/commonjs/icons/components/IconDocumentrtf.js +19 -0
  139. package/lib/commonjs/icons/components/IconDocumentsettings.js +19 -0
  140. package/lib/commonjs/icons/components/IconDocumenttif.js +19 -0
  141. package/lib/commonjs/icons/components/IconDocumenttxt.js +19 -0
  142. package/lib/commonjs/icons/components/IconDocumentunknown.js +19 -0
  143. package/lib/commonjs/icons/components/IconDocumentxls.js +19 -0
  144. package/lib/commonjs/icons/components/IconDocumentxlsx.js +19 -0
  145. package/lib/commonjs/icons/components/IconFilerequest.js +19 -0
  146. package/lib/commonjs/icons/components/IconFilesend.js +19 -0
  147. package/lib/commonjs/icons/components/IconFileshare.js +19 -0
  148. package/lib/commonjs/icons/components/IconFindinpage.js +19 -0
  149. package/lib/commonjs/icons/components/IconFolder.js +19 -0
  150. package/lib/commonjs/icons/components/IconFolderbookmarks.js +19 -0
  151. package/lib/commonjs/icons/components/IconFolderfavorites.js +19 -0
  152. package/lib/commonjs/icons/components/IconFolderlocked.js +19 -0
  153. package/lib/commonjs/icons/components/IconFoldermovefiles.js +19 -0
  154. package/lib/commonjs/icons/components/IconFolderpublic.js +19 -0
  155. package/lib/commonjs/icons/components/IconFolderrated.js +19 -0
  156. package/lib/commonjs/icons/components/IconFolderrequest.js +19 -0
  157. package/lib/commonjs/icons/components/IconForm.js +19 -0
  158. package/lib/commonjs/icons/components/IconFormadd.js +19 -0
  159. package/lib/commonjs/icons/components/IconForms.js +19 -0
  160. package/lib/commonjs/icons/components/IconGraphincreasing.js +19 -0
  161. package/lib/commonjs/icons/components/IconGraphlow.js +19 -0
  162. package/lib/commonjs/icons/components/IconGraphtable.js +19 -0
  163. package/lib/commonjs/icons/components/IconHealthreport.js +19 -0
  164. package/lib/commonjs/icons/components/IconHubmode.js +19 -0
  165. package/lib/commonjs/icons/components/IconInfrastructure.js +19 -0
  166. package/lib/commonjs/icons/components/IconInterestlow.js +19 -0
  167. package/lib/commonjs/icons/components/IconLte.js +19 -0
  168. package/lib/commonjs/icons/components/IconNetworkfuture.js +19 -0
  169. package/lib/commonjs/icons/components/IconPagesettings.js +19 -0
  170. package/lib/commonjs/icons/components/IconPptxdoc.js +19 -0
  171. package/lib/commonjs/icons/components/IconPreferrednumber.js +19 -0
  172. package/lib/commonjs/icons/components/IconPremiumnumber.js +19 -0
  173. package/lib/commonjs/icons/components/IconProjection.js +19 -0
  174. package/lib/commonjs/icons/components/IconRequest.js +19 -0
  175. package/lib/commonjs/icons/components/IconRoutestraffic.js +19 -0
  176. package/lib/commonjs/icons/components/IconTechnology.js +19 -0
  177. package/lib/commonjs/icons/components/IconVolte.js +19 -0
  178. package/lib/commonjs/icons/components/IconVonr.js +19 -0
  179. package/lib/commonjs/icons/components/IconVowifi.js +19 -0
  180. package/lib/commonjs/icons/components/IconVpndata.js +19 -0
  181. package/lib/commonjs/icons/components/index.js +803 -0
  182. package/lib/commonjs/icons/registry.js +2 -2
  183. package/lib/commonjs/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.js +11 -3
  184. package/lib/commonjs/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.js +8 -4
  185. package/lib/commonjs/utils/index.js +25 -0
  186. package/lib/commonjs/utils/react-utils.js +118 -0
  187. package/lib/commonjs/utils/shadow.js +200 -0
  188. package/lib/commonjs/utils/web-platform-utils.js +59 -0
  189. package/lib/module/components/Accordion/Accordion.js +3 -2
  190. package/lib/module/components/AccordionCheckbox/AccordionCheckbox.js +5 -4
  191. package/lib/module/components/AccountCard/AccountCard.js +5 -4
  192. package/lib/module/components/ActionFooter/ActionFooter.js +7 -24
  193. package/lib/module/components/ActionTile/ActionTile.js +10 -10
  194. package/lib/module/components/AllocationComparisonChart/AllocationComparisonChart.js +10 -7
  195. package/lib/module/components/AmountInput/AmountInput.js +3 -3
  196. package/lib/module/components/AreaLineChart/AreaLineChart.js +14 -10
  197. package/lib/module/components/Attached/Attached.js +1 -1
  198. package/lib/module/components/Avatar/Avatar.js +10 -10
  199. package/lib/module/components/AvatarGroup/AvatarGroup.js +9 -9
  200. package/lib/module/components/Badge/Badge.js +57 -18
  201. package/lib/module/components/BenefitCard/BenefitCard.js +95 -21
  202. package/lib/module/components/BottomNav/BottomNav.js +2 -2
  203. package/lib/module/components/BottomNavItem/BottomNavItem.js +3 -3
  204. package/lib/module/components/BrandChip/BrandChip.js +4 -4
  205. package/lib/module/components/Button/Button.js +32 -19
  206. package/lib/module/components/Card/Card.js +20 -20
  207. package/lib/module/components/CardAdvisory/CardAdvisory.js +9 -8
  208. package/lib/module/components/CardBankAccount/CardBankAccount.js +4 -3
  209. package/lib/module/components/CardCTA/CardCTA.js +216 -46
  210. package/lib/module/components/CardFeedback/CardFeedback.js +18 -18
  211. package/lib/module/components/CardFinancialCondition/CardFinancialCondition.js +7 -7
  212. package/lib/module/components/CardInsight/CardInsight.js +6 -3
  213. package/lib/module/components/Carousel/Carousel.js +18 -12
  214. package/lib/module/components/CarouselCardAccounts/CarouselCardAccounts.js +71 -0
  215. package/lib/module/components/Checkbox/Checkbox.js +2 -9
  216. package/lib/module/components/ChipGroup/ChipGroup.js +1 -1
  217. package/lib/module/components/ChipSelect/ChipSelect.js +11 -11
  218. package/lib/module/components/CircularProgressBar/CircularProgressBar.js +13 -9
  219. package/lib/module/components/CircularProgressBarDoted/CircularProgressBarDoted.js +12 -11
  220. package/lib/module/components/CircularRating/CircularRating.js +6 -5
  221. package/lib/module/components/ClusterBubble/ClusterBubble.js +4 -3
  222. package/lib/module/components/CompareTable/CompareTable.js +89 -60
  223. package/lib/module/components/CoverageBarComparison/CoverageBarComparison.js +4 -3
  224. package/lib/module/components/DebitCard/DebitCard.js +18 -18
  225. package/lib/module/components/Disclaimer/Disclaimer.js +5 -5
  226. package/lib/module/components/DonutChart/DonutChart.js +16 -15
  227. package/lib/module/components/Drawer/Drawer.js +60 -60
  228. package/lib/module/components/Dropdown/Dropdown.js +26 -26
  229. package/lib/module/components/DropdownInput/DropdownInput.js +14 -13
  230. package/lib/module/components/EmptyState/EmptyState.js +14 -14
  231. package/lib/module/components/ExpandableCheckbox/ExpandableCheckbox.js +2 -1
  232. package/lib/module/components/FilterBar/FilterBar.js +2 -2
  233. package/lib/module/components/Form/Form.js +3 -3
  234. package/lib/module/components/FormField/FormField.js +51 -11
  235. package/lib/module/components/FullscreenModal/FullscreenModal.js +24 -24
  236. package/lib/module/components/Gauge/Gauge.js +9 -9
  237. package/lib/module/components/HoldingsCard/HoldingsCard.js +14 -13
  238. package/lib/module/components/Icon/Icon.js +6 -6
  239. package/lib/module/components/IconCapsule/IconCapsule.js +7 -7
  240. package/lib/module/components/InputSearch/InputSearch.js +9 -9
  241. package/lib/module/components/InstitutionBadge/InstitutionBadge.js +6 -5
  242. package/lib/module/components/ListGroup/ListGroup.js +11 -10
  243. package/lib/module/components/ListItem/ListItem.js +14 -13
  244. package/lib/module/components/LottieIntroBlock/LottieIntroBlock.js +13 -13
  245. package/lib/module/components/LottiePlayer/LottiePlayer.js +2 -2
  246. package/lib/module/components/LottiePlayer/LottiePlayer.web.js +2 -2
  247. package/lib/module/components/MediaCard/MediaCard.js +25 -23
  248. package/lib/module/components/MessageField/MessageField.js +8 -8
  249. package/lib/module/components/MetricLegendItem/MetricLegendItem.js +4 -3
  250. package/lib/module/components/MoneyValue/MoneyValue.js +7 -7
  251. package/lib/module/components/MonthlyStatusGrid/MonthlyStatusGrid.js +7 -4
  252. package/lib/module/components/NavArrow/NavArrow.js +8 -8
  253. package/lib/module/components/NoteInput/NoteInput.js +12 -12
  254. package/lib/module/components/Nudge/Nudge.js +20 -20
  255. package/lib/module/components/OTP/OTP.js +15 -15
  256. package/lib/module/components/PageHero/PageHero.js +16 -16
  257. package/lib/module/components/PaymentFeedback/PaymentFeedback.js +23 -23
  258. package/lib/module/components/Popup/Popup.js +1 -1
  259. package/lib/module/components/PoweredByLabel/PoweredByLabel.js +4 -3
  260. package/lib/module/components/ProductMerchandisingCard/ProductMerchandisingCard.js +109 -35
  261. package/lib/module/components/ProductOverview/ProductOverview.js +5 -4
  262. package/lib/module/components/ProgressBadge/ProgressBadge.js +8 -8
  263. package/lib/module/components/ProjectionMarker/ProjectionMarker.js +4 -3
  264. package/lib/module/components/Radio/Radio.js +9 -9
  265. package/lib/module/components/RechargeCard/RechargeCard.js +31 -31
  266. package/lib/module/components/SavingsGoalSummary/SavingsGoalSummary.js +60 -13
  267. package/lib/module/components/ScrollArea/ScrollArea.js +121 -0
  268. package/lib/module/components/Section/Section.js +28 -27
  269. package/lib/module/components/Slider/Slider.js +4 -3
  270. package/lib/module/components/Stack/Stack.js +81 -0
  271. package/lib/module/components/StatusHero/StatusHero.js +14 -14
  272. package/lib/module/components/Stepper/Step.js +16 -16
  273. package/lib/module/components/Stepper/StepLabel.js +16 -16
  274. package/lib/module/components/Stepper/Stepper.js +3 -3
  275. package/lib/module/components/SuggestiveSearch/SuggestiveSearch.js +20 -11
  276. package/lib/module/components/SummaryTile/SummaryTile.js +4 -3
  277. package/lib/module/components/SupportText/SupportText.js +6 -6
  278. package/lib/module/components/SupportText/SupportTextIcon.js +2 -2
  279. package/lib/module/components/Table/Table.js +315 -0
  280. package/lib/module/components/Text/Text.js +16 -3
  281. package/lib/module/components/TextInput/TextInput.js +23 -15
  282. package/lib/module/components/TextSegment/TextSegment.js +16 -3
  283. package/lib/module/components/ThreadHero/ThreadHero.js +22 -23
  284. package/lib/module/components/Title/Title.js +40 -17
  285. package/lib/module/components/Toast/Toast.js +19 -18
  286. package/lib/module/components/Toggle/Toggle.js +4 -12
  287. package/lib/module/components/Tooltip/Tooltip.js +12 -12
  288. package/lib/module/components/TransactionBubble/TransactionBubble.js +16 -15
  289. package/lib/module/components/TransactionDetails/TransactionDetails.js +10 -10
  290. package/lib/module/components/TransactionStatus/TransactionStatus.js +13 -12
  291. package/lib/module/components/UpiHandle/UpiHandle.js +18 -18
  292. package/lib/module/components/index.js +4 -0
  293. package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
  294. package/lib/module/design-tokens/figma-modes.generated.js +51 -42
  295. package/lib/module/icons/components/Icon4g.js +12 -0
  296. package/lib/module/icons/components/Icon4gltedata.js +12 -0
  297. package/lib/module/icons/components/Icon5g.js +12 -0
  298. package/lib/module/icons/components/Icon5gdoubleplus.js +12 -0
  299. package/lib/module/icons/components/Icon5gplus.js +12 -0
  300. package/lib/module/icons/components/IconAdblocker.js +12 -0
  301. package/lib/module/icons/components/IconAdblockplus.js +12 -0
  302. package/lib/module/icons/components/IconAnalytics.js +12 -0
  303. package/lib/module/icons/components/IconAnalyticsdata.js +12 -0
  304. package/lib/module/icons/components/IconAnalyticspiechart.js +12 -0
  305. package/lib/module/icons/components/IconAnalyticspiecharttree.js +12 -0
  306. package/lib/module/icons/components/IconAnalyticspiecharttwo.js +12 -0
  307. package/lib/module/icons/components/IconCompoundinterest.js +12 -0
  308. package/lib/module/icons/components/IconConsumptionaccounted.js +12 -0
  309. package/lib/module/icons/components/IconConsumptionaverage.js +12 -0
  310. package/lib/module/icons/components/IconConsumptionhigh.js +12 -0
  311. package/lib/module/icons/components/IconConsumptionlow.js +12 -0
  312. package/lib/module/icons/components/IconConsumptionunaccounted.js +12 -0
  313. package/lib/module/icons/components/IconCsvdoc.js +12 -0
  314. package/lib/module/icons/components/IconDatabase.js +12 -0
  315. package/lib/module/icons/components/IconDigitalecosystem.js +12 -0
  316. package/lib/module/icons/components/IconDigitalselfservice.js +12 -0
  317. package/lib/module/icons/components/IconDistribution.js +12 -0
  318. package/lib/module/icons/components/IconDocument.js +12 -0
  319. package/lib/module/icons/components/IconDocumentdoc.js +12 -0
  320. package/lib/module/icons/components/IconDocumentjpg.js +12 -0
  321. package/lib/module/icons/components/IconDocumentodt.js +12 -0
  322. package/lib/module/icons/components/IconDocumentpdf.js +12 -0
  323. package/lib/module/icons/components/IconDocumentpng.js +12 -0
  324. package/lib/module/icons/components/IconDocumentraw.js +12 -0
  325. package/lib/module/icons/components/IconDocumentrtf.js +12 -0
  326. package/lib/module/icons/components/IconDocumentsettings.js +12 -0
  327. package/lib/module/icons/components/IconDocumenttif.js +12 -0
  328. package/lib/module/icons/components/IconDocumenttxt.js +12 -0
  329. package/lib/module/icons/components/IconDocumentunknown.js +12 -0
  330. package/lib/module/icons/components/IconDocumentxls.js +12 -0
  331. package/lib/module/icons/components/IconDocumentxlsx.js +12 -0
  332. package/lib/module/icons/components/IconFilerequest.js +12 -0
  333. package/lib/module/icons/components/IconFilesend.js +12 -0
  334. package/lib/module/icons/components/IconFileshare.js +12 -0
  335. package/lib/module/icons/components/IconFindinpage.js +12 -0
  336. package/lib/module/icons/components/IconFolder.js +12 -0
  337. package/lib/module/icons/components/IconFolderbookmarks.js +12 -0
  338. package/lib/module/icons/components/IconFolderfavorites.js +12 -0
  339. package/lib/module/icons/components/IconFolderlocked.js +12 -0
  340. package/lib/module/icons/components/IconFoldermovefiles.js +12 -0
  341. package/lib/module/icons/components/IconFolderpublic.js +12 -0
  342. package/lib/module/icons/components/IconFolderrated.js +12 -0
  343. package/lib/module/icons/components/IconFolderrequest.js +12 -0
  344. package/lib/module/icons/components/IconForm.js +12 -0
  345. package/lib/module/icons/components/IconFormadd.js +12 -0
  346. package/lib/module/icons/components/IconForms.js +12 -0
  347. package/lib/module/icons/components/IconGraphincreasing.js +12 -0
  348. package/lib/module/icons/components/IconGraphlow.js +12 -0
  349. package/lib/module/icons/components/IconGraphtable.js +12 -0
  350. package/lib/module/icons/components/IconHealthreport.js +12 -0
  351. package/lib/module/icons/components/IconHubmode.js +12 -0
  352. package/lib/module/icons/components/IconInfrastructure.js +12 -0
  353. package/lib/module/icons/components/IconInterestlow.js +12 -0
  354. package/lib/module/icons/components/IconLte.js +12 -0
  355. package/lib/module/icons/components/IconNetworkfuture.js +12 -0
  356. package/lib/module/icons/components/IconPagesettings.js +12 -0
  357. package/lib/module/icons/components/IconPptxdoc.js +12 -0
  358. package/lib/module/icons/components/IconPreferrednumber.js +12 -0
  359. package/lib/module/icons/components/IconPremiumnumber.js +12 -0
  360. package/lib/module/icons/components/IconProjection.js +12 -0
  361. package/lib/module/icons/components/IconRequest.js +12 -0
  362. package/lib/module/icons/components/IconRoutestraffic.js +12 -0
  363. package/lib/module/icons/components/IconTechnology.js +12 -0
  364. package/lib/module/icons/components/IconVolte.js +12 -0
  365. package/lib/module/icons/components/IconVonr.js +12 -0
  366. package/lib/module/icons/components/IconVowifi.js +12 -0
  367. package/lib/module/icons/components/IconVpndata.js +12 -0
  368. package/lib/module/icons/components/index.js +73 -0
  369. package/lib/module/icons/registry.js +2 -2
  370. package/lib/module/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.js +11 -3
  371. package/lib/module/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.js +8 -4
  372. package/lib/module/utils/index.js +2 -1
  373. package/lib/module/utils/react-utils.js +115 -0
  374. package/lib/module/utils/shadow.js +194 -0
  375. package/lib/module/utils/web-platform-utils.js +58 -0
  376. package/lib/typescript/src/components/Accordion/Accordion.d.ts +7 -1
  377. package/lib/typescript/src/components/AccordionCheckbox/AccordionCheckbox.d.ts +7 -1
  378. package/lib/typescript/src/components/AccountCard/AccountCard.d.ts +7 -1
  379. package/lib/typescript/src/components/AllocationComparisonChart/AllocationComparisonChart.d.ts +7 -1
  380. package/lib/typescript/src/components/AreaLineChart/AreaLineChart.d.ts +8 -1
  381. package/lib/typescript/src/components/Badge/Badge.d.ts +32 -2
  382. package/lib/typescript/src/components/BenefitCard/BenefitCard.d.ts +33 -4
  383. package/lib/typescript/src/components/BrandChip/BrandChip.d.ts +7 -1
  384. package/lib/typescript/src/components/Button/Button.d.ts +7 -1
  385. package/lib/typescript/src/components/CardAdvisory/CardAdvisory.d.ts +7 -1
  386. package/lib/typescript/src/components/CardBankAccount/CardBankAccount.d.ts +7 -1
  387. package/lib/typescript/src/components/CardCTA/CardCTA.d.ts +27 -5
  388. package/lib/typescript/src/components/Carousel/Carousel.d.ts +11 -1
  389. package/lib/typescript/src/components/CarouselCardAccounts/CarouselCardAccounts.d.ts +57 -0
  390. package/lib/typescript/src/components/CircularProgressBar/CircularProgressBar.d.ts +7 -1
  391. package/lib/typescript/src/components/CircularProgressBarDoted/CircularProgressBarDoted.d.ts +7 -1
  392. package/lib/typescript/src/components/CircularRating/CircularRating.d.ts +7 -1
  393. package/lib/typescript/src/components/ClusterBubble/ClusterBubble.d.ts +7 -1
  394. package/lib/typescript/src/components/CompareTable/CompareTable.d.ts +7 -1
  395. package/lib/typescript/src/components/CoverageBarComparison/CoverageBarComparison.d.ts +7 -1
  396. package/lib/typescript/src/components/DonutChart/DonutChart.d.ts +7 -1
  397. package/lib/typescript/src/components/Dropdown/Dropdown.d.ts +7 -1
  398. package/lib/typescript/src/components/DropdownInput/DropdownInput.d.ts +6 -0
  399. package/lib/typescript/src/components/ExpandableCheckbox/ExpandableCheckbox.d.ts +7 -1
  400. package/lib/typescript/src/components/HoldingsCard/HoldingsCard.d.ts +7 -1
  401. package/lib/typescript/src/components/InstitutionBadge/InstitutionBadge.d.ts +7 -1
  402. package/lib/typescript/src/components/ListGroup/ListGroup.d.ts +7 -1
  403. package/lib/typescript/src/components/ListItem/ListItem.d.ts +7 -1
  404. package/lib/typescript/src/components/MetricLegendItem/MetricLegendItem.d.ts +7 -1
  405. package/lib/typescript/src/components/MonthlyStatusGrid/MonthlyStatusGrid.d.ts +14 -2
  406. package/lib/typescript/src/components/PoweredByLabel/PoweredByLabel.d.ts +7 -1
  407. package/lib/typescript/src/components/ProductMerchandisingCard/ProductMerchandisingCard.d.ts +7 -1
  408. package/lib/typescript/src/components/ProductOverview/ProductOverview.d.ts +7 -1
  409. package/lib/typescript/src/components/ProgressBadge/ProgressBadge.d.ts +7 -1
  410. package/lib/typescript/src/components/ProjectionMarker/ProjectionMarker.d.ts +7 -1
  411. package/lib/typescript/src/components/SavingsGoalSummary/SavingsGoalSummary.d.ts +11 -1
  412. package/lib/typescript/src/components/ScrollArea/ScrollArea.d.ts +77 -0
  413. package/lib/typescript/src/components/Section/Section.d.ts +7 -1
  414. package/lib/typescript/src/components/Slider/Slider.d.ts +6 -0
  415. package/lib/typescript/src/components/Stack/Stack.d.ts +81 -0
  416. package/lib/typescript/src/components/SummaryTile/SummaryTile.d.ts +7 -1
  417. package/lib/typescript/src/components/Table/Table.d.ts +139 -0
  418. package/lib/typescript/src/components/Text/Text.d.ts +16 -1
  419. package/lib/typescript/src/components/TextSegment/TextSegment.d.ts +16 -1
  420. package/lib/typescript/src/components/ThreadHero/ThreadHero.d.ts +7 -1
  421. package/lib/typescript/src/components/Title/Title.d.ts +17 -1
  422. package/lib/typescript/src/components/Toast/Toast.d.ts +7 -1
  423. package/lib/typescript/src/components/TransactionBubble/TransactionBubble.d.ts +7 -1
  424. package/lib/typescript/src/components/TransactionStatus/TransactionStatus.d.ts +7 -1
  425. package/lib/typescript/src/components/UpiHandle/UpiHandle.d.ts +7 -1
  426. package/lib/typescript/src/components/index.d.ts +6 -2
  427. package/lib/typescript/src/design-tokens/figma-modes.generated.d.ts +23 -15
  428. package/lib/typescript/src/icons/components/Icon4g.d.ts +3 -0
  429. package/lib/typescript/src/icons/components/Icon4gltedata.d.ts +3 -0
  430. package/lib/typescript/src/icons/components/Icon5g.d.ts +3 -0
  431. package/lib/typescript/src/icons/components/Icon5gdoubleplus.d.ts +3 -0
  432. package/lib/typescript/src/icons/components/Icon5gplus.d.ts +3 -0
  433. package/lib/typescript/src/icons/components/IconAdblocker.d.ts +3 -0
  434. package/lib/typescript/src/icons/components/IconAdblockplus.d.ts +3 -0
  435. package/lib/typescript/src/icons/components/IconAnalytics.d.ts +3 -0
  436. package/lib/typescript/src/icons/components/IconAnalyticsdata.d.ts +3 -0
  437. package/lib/typescript/src/icons/components/IconAnalyticspiechart.d.ts +3 -0
  438. package/lib/typescript/src/icons/components/IconAnalyticspiecharttree.d.ts +3 -0
  439. package/lib/typescript/src/icons/components/IconAnalyticspiecharttwo.d.ts +3 -0
  440. package/lib/typescript/src/icons/components/IconCompoundinterest.d.ts +3 -0
  441. package/lib/typescript/src/icons/components/IconConsumptionaccounted.d.ts +3 -0
  442. package/lib/typescript/src/icons/components/IconConsumptionaverage.d.ts +3 -0
  443. package/lib/typescript/src/icons/components/IconConsumptionhigh.d.ts +3 -0
  444. package/lib/typescript/src/icons/components/IconConsumptionlow.d.ts +3 -0
  445. package/lib/typescript/src/icons/components/IconConsumptionunaccounted.d.ts +3 -0
  446. package/lib/typescript/src/icons/components/IconCsvdoc.d.ts +3 -0
  447. package/lib/typescript/src/icons/components/IconDatabase.d.ts +3 -0
  448. package/lib/typescript/src/icons/components/IconDigitalecosystem.d.ts +3 -0
  449. package/lib/typescript/src/icons/components/IconDigitalselfservice.d.ts +3 -0
  450. package/lib/typescript/src/icons/components/IconDistribution.d.ts +3 -0
  451. package/lib/typescript/src/icons/components/IconDocument.d.ts +3 -0
  452. package/lib/typescript/src/icons/components/IconDocumentdoc.d.ts +3 -0
  453. package/lib/typescript/src/icons/components/IconDocumentjpg.d.ts +3 -0
  454. package/lib/typescript/src/icons/components/IconDocumentodt.d.ts +3 -0
  455. package/lib/typescript/src/icons/components/IconDocumentpdf.d.ts +3 -0
  456. package/lib/typescript/src/icons/components/IconDocumentpng.d.ts +3 -0
  457. package/lib/typescript/src/icons/components/IconDocumentraw.d.ts +3 -0
  458. package/lib/typescript/src/icons/components/IconDocumentrtf.d.ts +3 -0
  459. package/lib/typescript/src/icons/components/IconDocumentsettings.d.ts +3 -0
  460. package/lib/typescript/src/icons/components/IconDocumenttif.d.ts +3 -0
  461. package/lib/typescript/src/icons/components/IconDocumenttxt.d.ts +3 -0
  462. package/lib/typescript/src/icons/components/IconDocumentunknown.d.ts +3 -0
  463. package/lib/typescript/src/icons/components/IconDocumentxls.d.ts +3 -0
  464. package/lib/typescript/src/icons/components/IconDocumentxlsx.d.ts +3 -0
  465. package/lib/typescript/src/icons/components/IconFilerequest.d.ts +3 -0
  466. package/lib/typescript/src/icons/components/IconFilesend.d.ts +3 -0
  467. package/lib/typescript/src/icons/components/IconFileshare.d.ts +3 -0
  468. package/lib/typescript/src/icons/components/IconFindinpage.d.ts +3 -0
  469. package/lib/typescript/src/icons/components/IconFolder.d.ts +3 -0
  470. package/lib/typescript/src/icons/components/IconFolderbookmarks.d.ts +3 -0
  471. package/lib/typescript/src/icons/components/IconFolderfavorites.d.ts +3 -0
  472. package/lib/typescript/src/icons/components/IconFolderlocked.d.ts +3 -0
  473. package/lib/typescript/src/icons/components/IconFoldermovefiles.d.ts +3 -0
  474. package/lib/typescript/src/icons/components/IconFolderpublic.d.ts +3 -0
  475. package/lib/typescript/src/icons/components/IconFolderrated.d.ts +3 -0
  476. package/lib/typescript/src/icons/components/IconFolderrequest.d.ts +3 -0
  477. package/lib/typescript/src/icons/components/IconForm.d.ts +3 -0
  478. package/lib/typescript/src/icons/components/IconFormadd.d.ts +3 -0
  479. package/lib/typescript/src/icons/components/IconForms.d.ts +3 -0
  480. package/lib/typescript/src/icons/components/IconGraphincreasing.d.ts +3 -0
  481. package/lib/typescript/src/icons/components/IconGraphlow.d.ts +3 -0
  482. package/lib/typescript/src/icons/components/IconGraphtable.d.ts +3 -0
  483. package/lib/typescript/src/icons/components/IconHealthreport.d.ts +3 -0
  484. package/lib/typescript/src/icons/components/IconHubmode.d.ts +3 -0
  485. package/lib/typescript/src/icons/components/IconInfrastructure.d.ts +3 -0
  486. package/lib/typescript/src/icons/components/IconInterestlow.d.ts +3 -0
  487. package/lib/typescript/src/icons/components/IconLte.d.ts +3 -0
  488. package/lib/typescript/src/icons/components/IconNetworkfuture.d.ts +3 -0
  489. package/lib/typescript/src/icons/components/IconPagesettings.d.ts +3 -0
  490. package/lib/typescript/src/icons/components/IconPptxdoc.d.ts +3 -0
  491. package/lib/typescript/src/icons/components/IconPreferrednumber.d.ts +3 -0
  492. package/lib/typescript/src/icons/components/IconPremiumnumber.d.ts +3 -0
  493. package/lib/typescript/src/icons/components/IconProjection.d.ts +3 -0
  494. package/lib/typescript/src/icons/components/IconRequest.d.ts +3 -0
  495. package/lib/typescript/src/icons/components/IconRoutestraffic.d.ts +3 -0
  496. package/lib/typescript/src/icons/components/IconTechnology.d.ts +3 -0
  497. package/lib/typescript/src/icons/components/IconVolte.d.ts +3 -0
  498. package/lib/typescript/src/icons/components/IconVonr.d.ts +3 -0
  499. package/lib/typescript/src/icons/components/IconVowifi.d.ts +3 -0
  500. package/lib/typescript/src/icons/components/IconVpndata.d.ts +3 -0
  501. package/lib/typescript/src/icons/components/index.d.ts +73 -0
  502. package/lib/typescript/src/icons/registry.d.ts +1 -1
  503. package/lib/typescript/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.d.ts +31 -3
  504. package/lib/typescript/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.d.ts +18 -2
  505. package/lib/typescript/src/utils/index.d.ts +2 -0
  506. package/lib/typescript/src/utils/react-utils.d.ts +76 -0
  507. package/lib/typescript/src/utils/shadow.d.ts +72 -0
  508. package/lib/typescript/src/utils/web-platform-utils.d.ts +36 -0
  509. package/package.json +2 -1
  510. package/src/components/Accordion/Accordion.tsx +9 -2
  511. package/src/components/AccordionCheckbox/AccordionCheckbox.tsx +10 -3
  512. package/src/components/AccountCard/AccountCard.tsx +10 -3
  513. package/src/components/ActionFooter/ActionFooter.tsx +8 -26
  514. package/src/components/ActionTile/ActionTile.tsx +10 -10
  515. package/src/components/AllocationComparisonChart/AllocationComparisonChart.tsx +14 -4
  516. package/src/components/AmountInput/AmountInput.tsx +3 -3
  517. package/src/components/AreaLineChart/AreaLineChart.tsx +17 -7
  518. package/src/components/Attached/Attached.tsx +1 -1
  519. package/src/components/Avatar/Avatar.tsx +10 -10
  520. package/src/components/AvatarGroup/AvatarGroup.tsx +9 -9
  521. package/src/components/Badge/Badge.tsx +86 -17
  522. package/src/components/BenefitCard/BenefitCard.tsx +120 -27
  523. package/src/components/BottomNav/BottomNav.tsx +2 -2
  524. package/src/components/BottomNavItem/BottomNavItem.tsx +3 -3
  525. package/src/components/BrandChip/BrandChip.tsx +9 -3
  526. package/src/components/Button/Button.tsx +36 -19
  527. package/src/components/Card/Card.tsx +20 -20
  528. package/src/components/CardAdvisory/CardAdvisory.tsx +15 -8
  529. package/src/components/CardBankAccount/CardBankAccount.tsx +9 -2
  530. package/src/components/CardCTA/CardCTA.tsx +237 -64
  531. package/src/components/CardFeedback/CardFeedback.tsx +18 -18
  532. package/src/components/CardFinancialCondition/CardFinancialCondition.tsx +7 -10
  533. package/src/components/CardInsight/CardInsight.tsx +8 -4
  534. package/src/components/Carousel/Carousel.tsx +29 -12
  535. package/src/components/CarouselCardAccounts/CarouselCardAccounts.tsx +113 -0
  536. package/src/components/Checkbox/Checkbox.tsx +2 -8
  537. package/src/components/ChipGroup/ChipGroup.tsx +1 -1
  538. package/src/components/ChipSelect/ChipSelect.tsx +11 -11
  539. package/src/components/CircularProgressBar/CircularProgressBar.tsx +19 -9
  540. package/src/components/CircularProgressBarDoted/CircularProgressBarDoted.tsx +18 -11
  541. package/src/components/CircularRating/CircularRating.tsx +12 -5
  542. package/src/components/ClusterBubble/ClusterBubble.tsx +9 -2
  543. package/src/components/CompareTable/CompareTable.tsx +114 -66
  544. package/src/components/CoverageBarComparison/CoverageBarComparison.tsx +9 -2
  545. package/src/components/DebitCard/DebitCard.tsx +22 -22
  546. package/src/components/Disclaimer/Disclaimer.tsx +5 -5
  547. package/src/components/DonutChart/DonutChart.tsx +21 -48
  548. package/src/components/Drawer/Drawer.tsx +80 -71
  549. package/src/components/Dropdown/Dropdown.tsx +32 -30
  550. package/src/components/DropdownInput/DropdownInput.tsx +19 -19
  551. package/src/components/EmptyState/EmptyState.tsx +14 -14
  552. package/src/components/ExpandableCheckbox/ExpandableCheckbox.tsx +8 -1
  553. package/src/components/FilterBar/FilterBar.tsx +2 -2
  554. package/src/components/Form/Form.tsx +3 -3
  555. package/src/components/FormField/FormField.tsx +55 -15
  556. package/src/components/FullscreenModal/FullscreenModal.tsx +24 -24
  557. package/src/components/Gauge/Gauge.tsx +9 -9
  558. package/src/components/HoldingsCard/HoldingsCard.tsx +19 -12
  559. package/src/components/Icon/Icon.tsx +6 -6
  560. package/src/components/IconCapsule/IconCapsule.tsx +7 -7
  561. package/src/components/InputSearch/InputSearch.tsx +9 -9
  562. package/src/components/InstitutionBadge/InstitutionBadge.tsx +12 -8
  563. package/src/components/ListGroup/ListGroup.tsx +17 -10
  564. package/src/components/ListItem/ListItem.tsx +20 -13
  565. package/src/components/LottieIntroBlock/LottieIntroBlock.tsx +13 -16
  566. package/src/components/LottiePlayer/LottiePlayer.tsx +2 -2
  567. package/src/components/LottiePlayer/LottiePlayer.web.tsx +2 -2
  568. package/src/components/MediaCard/MediaCard.tsx +23 -23
  569. package/src/components/MessageField/MessageField.tsx +8 -16
  570. package/src/components/MetricLegendItem/MetricLegendItem.tsx +9 -2
  571. package/src/components/MoneyValue/MoneyValue.tsx +7 -7
  572. package/src/components/MonthlyStatusGrid/MonthlyStatusGrid.tsx +17 -2
  573. package/src/components/NavArrow/NavArrow.tsx +8 -8
  574. package/src/components/NoteInput/NoteInput.tsx +12 -12
  575. package/src/components/Nudge/Nudge.tsx +20 -20
  576. package/src/components/OTP/OTP.tsx +16 -16
  577. package/src/components/PageHero/PageHero.tsx +16 -16
  578. package/src/components/PaymentFeedback/PaymentFeedback.tsx +27 -27
  579. package/src/components/Popup/Popup.tsx +1 -1
  580. package/src/components/PoweredByLabel/PoweredByLabel.tsx +9 -2
  581. package/src/components/ProductMerchandisingCard/ProductMerchandisingCard.tsx +104 -37
  582. package/src/components/ProductOverview/ProductOverview.tsx +10 -3
  583. package/src/components/ProgressBadge/ProgressBadge.tsx +14 -8
  584. package/src/components/ProjectionMarker/ProjectionMarker.tsx +9 -2
  585. package/src/components/Radio/Radio.tsx +8 -9
  586. package/src/components/RechargeCard/RechargeCard.tsx +31 -31
  587. package/src/components/SavingsGoalSummary/SavingsGoalSummary.tsx +105 -13
  588. package/src/components/ScrollArea/ScrollArea.tsx +200 -0
  589. package/src/components/Section/Section.tsx +36 -29
  590. package/src/components/Slider/Slider.tsx +9 -2
  591. package/src/components/Stack/Stack.tsx +131 -0
  592. package/src/components/StatusHero/StatusHero.tsx +14 -14
  593. package/src/components/Stepper/Step.tsx +16 -18
  594. package/src/components/Stepper/StepLabel.tsx +16 -27
  595. package/src/components/Stepper/Stepper.tsx +3 -4
  596. package/src/components/SuggestiveSearch/SuggestiveSearch.tsx +20 -21
  597. package/src/components/SummaryTile/SummaryTile.tsx +9 -2
  598. package/src/components/SupportText/SupportText.tsx +6 -6
  599. package/src/components/SupportText/SupportTextIcon.tsx +2 -2
  600. package/src/components/Table/Table.tsx +449 -0
  601. package/src/components/Text/Text.tsx +28 -3
  602. package/src/components/TextInput/TextInput.tsx +21 -15
  603. package/src/components/TextSegment/TextSegment.tsx +27 -2
  604. package/src/components/ThreadHero/ThreadHero.tsx +27 -20
  605. package/src/components/Title/Title.tsx +50 -17
  606. package/src/components/Toast/Toast.tsx +24 -17
  607. package/src/components/Toggle/Toggle.tsx +5 -10
  608. package/src/components/Tooltip/Tooltip.tsx +12 -12
  609. package/src/components/TransactionBubble/TransactionBubble.tsx +22 -15
  610. package/src/components/TransactionDetails/TransactionDetails.tsx +10 -10
  611. package/src/components/TransactionStatus/TransactionStatus.tsx +18 -11
  612. package/src/components/UpiHandle/UpiHandle.tsx +24 -18
  613. package/src/components/index.ts +25 -2
  614. package/src/design-tokens/Coin Variables-variables-full.json +1 -1
  615. package/src/design-tokens/figma-modes.generated.ts +51 -42
  616. package/src/icons/components/Icon4g.tsx +11 -0
  617. package/src/icons/components/Icon4gltedata.tsx +11 -0
  618. package/src/icons/components/Icon5g.tsx +11 -0
  619. package/src/icons/components/Icon5gdoubleplus.tsx +11 -0
  620. package/src/icons/components/Icon5gplus.tsx +11 -0
  621. package/src/icons/components/IconAdblocker.tsx +11 -0
  622. package/src/icons/components/IconAdblockplus.tsx +11 -0
  623. package/src/icons/components/IconAnalytics.tsx +11 -0
  624. package/src/icons/components/IconAnalyticsdata.tsx +11 -0
  625. package/src/icons/components/IconAnalyticspiechart.tsx +11 -0
  626. package/src/icons/components/IconAnalyticspiecharttree.tsx +11 -0
  627. package/src/icons/components/IconAnalyticspiecharttwo.tsx +11 -0
  628. package/src/icons/components/IconCompoundinterest.tsx +11 -0
  629. package/src/icons/components/IconConsumptionaccounted.tsx +11 -0
  630. package/src/icons/components/IconConsumptionaverage.tsx +11 -0
  631. package/src/icons/components/IconConsumptionhigh.tsx +11 -0
  632. package/src/icons/components/IconConsumptionlow.tsx +11 -0
  633. package/src/icons/components/IconConsumptionunaccounted.tsx +11 -0
  634. package/src/icons/components/IconCsvdoc.tsx +11 -0
  635. package/src/icons/components/IconDatabase.tsx +11 -0
  636. package/src/icons/components/IconDigitalecosystem.tsx +11 -0
  637. package/src/icons/components/IconDigitalselfservice.tsx +11 -0
  638. package/src/icons/components/IconDistribution.tsx +11 -0
  639. package/src/icons/components/IconDocument.tsx +11 -0
  640. package/src/icons/components/IconDocumentdoc.tsx +11 -0
  641. package/src/icons/components/IconDocumentjpg.tsx +11 -0
  642. package/src/icons/components/IconDocumentodt.tsx +11 -0
  643. package/src/icons/components/IconDocumentpdf.tsx +11 -0
  644. package/src/icons/components/IconDocumentpng.tsx +11 -0
  645. package/src/icons/components/IconDocumentraw.tsx +11 -0
  646. package/src/icons/components/IconDocumentrtf.tsx +11 -0
  647. package/src/icons/components/IconDocumentsettings.tsx +11 -0
  648. package/src/icons/components/IconDocumenttif.tsx +11 -0
  649. package/src/icons/components/IconDocumenttxt.tsx +11 -0
  650. package/src/icons/components/IconDocumentunknown.tsx +11 -0
  651. package/src/icons/components/IconDocumentxls.tsx +11 -0
  652. package/src/icons/components/IconDocumentxlsx.tsx +11 -0
  653. package/src/icons/components/IconFilerequest.tsx +11 -0
  654. package/src/icons/components/IconFilesend.tsx +11 -0
  655. package/src/icons/components/IconFileshare.tsx +11 -0
  656. package/src/icons/components/IconFindinpage.tsx +11 -0
  657. package/src/icons/components/IconFolder.tsx +11 -0
  658. package/src/icons/components/IconFolderbookmarks.tsx +11 -0
  659. package/src/icons/components/IconFolderfavorites.tsx +11 -0
  660. package/src/icons/components/IconFolderlocked.tsx +11 -0
  661. package/src/icons/components/IconFoldermovefiles.tsx +11 -0
  662. package/src/icons/components/IconFolderpublic.tsx +11 -0
  663. package/src/icons/components/IconFolderrated.tsx +11 -0
  664. package/src/icons/components/IconFolderrequest.tsx +11 -0
  665. package/src/icons/components/IconForm.tsx +11 -0
  666. package/src/icons/components/IconFormadd.tsx +11 -0
  667. package/src/icons/components/IconForms.tsx +11 -0
  668. package/src/icons/components/IconGraphincreasing.tsx +11 -0
  669. package/src/icons/components/IconGraphlow.tsx +11 -0
  670. package/src/icons/components/IconGraphtable.tsx +11 -0
  671. package/src/icons/components/IconHealthreport.tsx +11 -0
  672. package/src/icons/components/IconHubmode.tsx +11 -0
  673. package/src/icons/components/IconInfrastructure.tsx +11 -0
  674. package/src/icons/components/IconInterestlow.tsx +11 -0
  675. package/src/icons/components/IconLte.tsx +11 -0
  676. package/src/icons/components/IconNetworkfuture.tsx +11 -0
  677. package/src/icons/components/IconPagesettings.tsx +11 -0
  678. package/src/icons/components/IconPptxdoc.tsx +11 -0
  679. package/src/icons/components/IconPreferrednumber.tsx +11 -0
  680. package/src/icons/components/IconPremiumnumber.tsx +11 -0
  681. package/src/icons/components/IconProjection.tsx +11 -0
  682. package/src/icons/components/IconRequest.tsx +11 -0
  683. package/src/icons/components/IconRoutestraffic.tsx +11 -0
  684. package/src/icons/components/IconTechnology.tsx +11 -0
  685. package/src/icons/components/IconVolte.tsx +11 -0
  686. package/src/icons/components/IconVonr.tsx +11 -0
  687. package/src/icons/components/IconVowifi.tsx +11 -0
  688. package/src/icons/components/IconVpndata.tsx +11 -0
  689. package/src/icons/components/index.ts +73 -0
  690. package/src/icons/registry.ts +293 -1
  691. package/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.tsx +32 -3
  692. package/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.tsx +25 -4
  693. package/src/utils/index.ts +2 -0
  694. package/src/utils/react-utils.ts +132 -0
  695. package/src/utils/shadow.ts +219 -0
  696. package/src/utils/web-platform-utils.ts +68 -0
  697. package/lib/commonjs/components/MediaCard/GlassFill.js +0 -62
  698. package/lib/commonjs/components/MediaCard/GlassFill.web.js +0 -48
  699. package/lib/module/components/MediaCard/GlassFill.js +0 -57
  700. package/lib/module/components/MediaCard/GlassFill.web.js +0 -43
  701. package/lib/typescript/src/components/MediaCard/GlassFill.d.ts +0 -47
  702. package/lib/typescript/src/components/MediaCard/GlassFill.web.d.ts +0 -20
  703. package/src/components/MediaCard/GlassFill.tsx +0 -89
  704. package/src/components/MediaCard/GlassFill.web.tsx +0 -53
@@ -0,0 +1,449 @@
1
+ import React from 'react'
2
+ import {
3
+ View,
4
+ Text,
5
+ Pressable,
6
+ ScrollView,
7
+ Platform,
8
+ type StyleProp,
9
+ type ViewStyle,
10
+ type TextStyle,
11
+ } from 'react-native'
12
+ import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
13
+ import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
14
+ import type { Modes } from '../../design-tokens'
15
+
16
+ /* -------------------------------------------------------------------------------------------------
17
+ * Shared types & token resolution
18
+ * -----------------------------------------------------------------------------------------------*/
19
+
20
+ export type TableCellAlign = 'left' | 'center' | 'right'
21
+
22
+ /** Resolved styling for a header cell and a body cell, derived from design tokens. */
23
+ type ResolvedTableTokens = {
24
+ headerBg: string
25
+ headerText: TextStyle
26
+ headerPaddingH: number
27
+ headerPaddingV: number
28
+ cellBg: string
29
+ cellText: TextStyle
30
+ cellPaddingH: number
31
+ cellPaddingV: number
32
+ borderColor: string
33
+ borderSize: number
34
+ }
35
+
36
+ const toWeight = (w: number | string): TextStyle['fontWeight'] =>
37
+ (typeof w === 'number' ? `${w}` : w) as TextStyle['fontWeight']
38
+
39
+ /**
40
+ * Resolve every token the table family needs in one place. Sub-components call
41
+ * this with their cascaded `modes` so they render correctly both inside a
42
+ * `Table` and when used standalone. Fallbacks mirror the Figma node values
43
+ * (`tableCell/*`, `tableHeader/*`) so the component is faithful even before the
44
+ * tokens are published to the local store.
45
+ */
46
+ function resolveTableTokens(modes: Modes): ResolvedTableTokens {
47
+ const headerFontFamily =
48
+ (getVariableByName('tableHeader/label/fontfamily', modes) as string) ?? 'JioType Var'
49
+ const headerFontSize = (getVariableByName('tableHeader/label/fontsize', modes) as number) ?? 14
50
+ const headerFontWeight =
51
+ (getVariableByName('tableHeader/label/fontweight', modes) as number | string) ?? 600
52
+
53
+ const cellFontFamily =
54
+ (getVariableByName('tableCell/label/fontfamily', modes) as string) ?? 'JioType Var'
55
+ const cellFontSize = (getVariableByName('tableCell/label/fontsize', modes) as number) ?? 14
56
+ const cellFontWeight =
57
+ (getVariableByName('tableCell/label/fontweight', modes) as number | string) ?? 400
58
+
59
+ return {
60
+ headerBg: (getVariableByName('tableHeader/background/color', modes) as string) ?? '#f5f5f5',
61
+ headerPaddingH: (getVariableByName('tableHeader/padding/horizontal', modes) as number) ?? 12,
62
+ headerPaddingV: (getVariableByName('tableHeader/padding/vertical', modes) as number) ?? 12,
63
+ headerText: {
64
+ color: (getVariableByName('tableHeader/label/color', modes) as string) ?? '#000000',
65
+ fontFamily: headerFontFamily,
66
+ fontSize: headerFontSize,
67
+ fontWeight: toWeight(headerFontWeight),
68
+ lineHeight: 20,
69
+ },
70
+ cellBg: (getVariableByName('tableCell/background/color', modes) as string) ?? '#ffffff',
71
+ cellPaddingH: (getVariableByName('tableCell/padding/horizontal', modes) as number) ?? 12,
72
+ cellPaddingV: (getVariableByName('tableCell/padding/vertical', modes) as number) ?? 12,
73
+ cellText: {
74
+ color: (getVariableByName('tableCell/label/color', modes) as string) ?? '#000000',
75
+ fontFamily: cellFontFamily,
76
+ fontSize: cellFontSize,
77
+ fontWeight: toWeight(cellFontWeight),
78
+ lineHeight: 20,
79
+ },
80
+ borderColor: (getVariableByName('tableCell/border/color', modes) as string) ?? '#eeeeee',
81
+ borderSize: (getVariableByName('tableCell/border/size', modes) as number) ?? 1,
82
+ }
83
+ }
84
+
85
+ const alignToJustify = (align: TableCellAlign): ViewStyle['justifyContent'] =>
86
+ align === 'center' ? 'center' : align === 'right' ? 'flex-end' : 'flex-start'
87
+
88
+ /** Renders text children through the resolved label style; passes elements through untouched. */
89
+ function renderCellContent(
90
+ children: React.ReactNode,
91
+ textStyle: TextStyle,
92
+ align: TableCellAlign,
93
+ modes: Modes,
94
+ ): React.ReactNode {
95
+ if (children == null || children === false) return null
96
+ if (typeof children === 'string' || typeof children === 'number') {
97
+ return <Text style={[textStyle, { textAlign: align }]}>{children}</Text>
98
+ }
99
+ return cloneChildrenWithModes(children, modes)
100
+ }
101
+
102
+ /* -------------------------------------------------------------------------------------------------
103
+ * Table.Cell — body cell (Figma `table-cell`, node 603:23)
104
+ * -----------------------------------------------------------------------------------------------*/
105
+
106
+ export type TableCellProps = {
107
+ children?: React.ReactNode
108
+ /** Horizontal alignment of the cell content. @default 'left' */
109
+ align?: TableCellAlign
110
+ /** Fixed cell width. Omit to let the cell flex. */
111
+ width?: number
112
+ /** Flex-grow weight when `width` is not set. @default 1 */
113
+ flex?: number
114
+ /** Drop the right divider (used for the last column). @default false */
115
+ isLastColumn?: boolean
116
+ /** Drop the bottom divider (used for the last row). @default false */
117
+ isLastRow?: boolean
118
+ modes?: Modes
119
+ style?: StyleProp<ViewStyle>
120
+ }
121
+
122
+ /**
123
+ * A single body cell. White background with a bottom + right divider, matching
124
+ * the Figma `table-cell` sub-component. String/number children are rendered
125
+ * with the token label style; any element is rendered as-is.
126
+ */
127
+ function TableCell({
128
+ children,
129
+ align = 'left',
130
+ width,
131
+ flex = 1,
132
+ isLastColumn = false,
133
+ isLastRow = false,
134
+ modes = EMPTY_MODES,
135
+ style,
136
+ }: TableCellProps) {
137
+ const t = resolveTableTokens(modes)
138
+ return (
139
+ <View
140
+ style={[
141
+ {
142
+ backgroundColor: t.cellBg,
143
+ flexDirection: 'row',
144
+ alignItems: 'center',
145
+ justifyContent: alignToJustify(align),
146
+ paddingHorizontal: t.cellPaddingH,
147
+ paddingVertical: t.cellPaddingV,
148
+ borderColor: t.borderColor,
149
+ borderBottomWidth: isLastRow ? 0 : t.borderSize,
150
+ borderRightWidth: isLastColumn ? 0 : t.borderSize,
151
+ ...(width != null ? { width } : { flex, minWidth: 0 }),
152
+ },
153
+ style,
154
+ ]}
155
+ >
156
+ {renderCellContent(children, t.cellText, align, modes)}
157
+ </View>
158
+ )
159
+ }
160
+
161
+ /* -------------------------------------------------------------------------------------------------
162
+ * Table.HeaderCell — header cell (Figma `table header wrap`, node 603:21)
163
+ * -----------------------------------------------------------------------------------------------*/
164
+
165
+ export type TableHeaderCellProps = {
166
+ children?: React.ReactNode
167
+ /** Horizontal alignment of the header content. @default 'left' */
168
+ align?: TableCellAlign
169
+ /** Fixed cell width. Omit to let the cell flex. */
170
+ width?: number
171
+ /** Flex-grow weight when `width` is not set. @default 1 */
172
+ flex?: number
173
+ modes?: Modes
174
+ style?: StyleProp<ViewStyle>
175
+ }
176
+
177
+ /**
178
+ * A single header cell. Muted background with the bold token label style,
179
+ * matching the Figma `table header wrap` sub-component. Header cells carry no
180
+ * dividers; the header row draws a single bottom divider beneath them.
181
+ */
182
+ function TableHeaderCell({
183
+ children,
184
+ align = 'left',
185
+ width,
186
+ flex = 1,
187
+ modes = EMPTY_MODES,
188
+ style,
189
+ }: TableHeaderCellProps) {
190
+ const t = resolveTableTokens(modes)
191
+ return (
192
+ <View
193
+ style={[
194
+ {
195
+ backgroundColor: t.headerBg,
196
+ flexDirection: 'row',
197
+ alignItems: 'center',
198
+ justifyContent: alignToJustify(align),
199
+ paddingHorizontal: t.headerPaddingH,
200
+ paddingVertical: t.headerPaddingV,
201
+ ...(width != null ? { width } : { flex, minWidth: 0 }),
202
+ },
203
+ style,
204
+ ]}
205
+ >
206
+ {renderCellContent(children, t.headerText, align, modes)}
207
+ </View>
208
+ )
209
+ }
210
+
211
+ /* -------------------------------------------------------------------------------------------------
212
+ * Table.Header — row of header cells with a bottom divider
213
+ * -----------------------------------------------------------------------------------------------*/
214
+
215
+ export type TableHeaderProps = {
216
+ children?: React.ReactNode
217
+ modes?: Modes
218
+ style?: StyleProp<ViewStyle>
219
+ }
220
+
221
+ function TableHeader({ children, modes = EMPTY_MODES, style }: TableHeaderProps) {
222
+ const t = resolveTableTokens(modes)
223
+ return (
224
+ <View
225
+ style={[
226
+ {
227
+ flexDirection: 'row',
228
+ width: '100%',
229
+ borderBottomWidth: t.borderSize,
230
+ borderBottomColor: t.borderColor,
231
+ },
232
+ style,
233
+ ]}
234
+ >
235
+ {cloneChildrenWithModes(children, modes)}
236
+ </View>
237
+ )
238
+ }
239
+
240
+ /* -------------------------------------------------------------------------------------------------
241
+ * Table.Row — row of body cells
242
+ * -----------------------------------------------------------------------------------------------*/
243
+
244
+ export type TableRowProps = {
245
+ children?: React.ReactNode
246
+ /** When provided, the whole row becomes pressable. */
247
+ onPress?: () => void
248
+ modes?: Modes
249
+ style?: StyleProp<ViewStyle>
250
+ }
251
+
252
+ function TableRow({ children, onPress, modes = EMPTY_MODES, style }: TableRowProps) {
253
+ const rowStyle: ViewStyle = { flexDirection: 'row', width: '100%' }
254
+ const content = cloneChildrenWithModes(children, modes)
255
+ if (onPress) {
256
+ return (
257
+ <Pressable
258
+ onPress={onPress}
259
+ accessibilityRole="button"
260
+ style={({ pressed }) => [rowStyle, pressed ? { opacity: 0.6 } : null, style]}
261
+ >
262
+ {content}
263
+ </Pressable>
264
+ )
265
+ }
266
+ return <View style={[rowStyle, style]}>{content}</View>
267
+ }
268
+
269
+ /* -------------------------------------------------------------------------------------------------
270
+ * Table.Body — column container for rows
271
+ * -----------------------------------------------------------------------------------------------*/
272
+
273
+ export type TableBodyProps = {
274
+ children?: React.ReactNode
275
+ modes?: Modes
276
+ style?: StyleProp<ViewStyle>
277
+ }
278
+
279
+ function TableBody({ children, modes = EMPTY_MODES, style }: TableBodyProps) {
280
+ return <View style={[{ width: '100%' }, style]}>{cloneChildrenWithModes(children, modes)}</View>
281
+ }
282
+
283
+ /* -------------------------------------------------------------------------------------------------
284
+ * Table — root (Figma `Table`, node 5732:3710)
285
+ * -----------------------------------------------------------------------------------------------*/
286
+
287
+ /**
288
+ * Column definition for the data-driven `Table` API. `T` is the shape of one
289
+ * row record.
290
+ */
291
+ export type TableColumn<T> = {
292
+ /** Stable key; also used to read `row[key]` when no `render` is provided. */
293
+ key: string
294
+ /** Header label. Defaults to `key`. */
295
+ header?: React.ReactNode
296
+ /** Cell + header horizontal alignment. @default 'left' */
297
+ align?: TableCellAlign
298
+ /** Header-only alignment override. Defaults to `align`. */
299
+ headerAlign?: TableCellAlign
300
+ /** Fixed column width. Omit to let the column flex. */
301
+ width?: number
302
+ /** Flex-grow weight when `width` is not set. @default 1 */
303
+ flex?: number
304
+ /** Custom cell renderer. Falls back to `row[key]` as text. */
305
+ render?: (row: T, rowIndex: number) => React.ReactNode
306
+ }
307
+
308
+ export type TableProps<T = Record<string, unknown>> = {
309
+ /** Column definitions for the data-driven API. */
310
+ columns?: TableColumn<T>[]
311
+ /** Row records, one per table row. */
312
+ data?: T[]
313
+ /**
314
+ * Composition children (`Table.Header`, `Table.Body`, `Table.Row`,
315
+ * `Table.Cell`, `Table.HeaderCell`). When provided, `columns`/`data` are
316
+ * ignored and the children are rendered as-is.
317
+ */
318
+ children?: React.ReactNode
319
+ /** Show the header row in the data-driven API. @default true */
320
+ showHeader?: boolean
321
+ /** Resolve a stable key per row. Defaults to the row index. */
322
+ getRowKey?: (row: T, index: number) => React.Key
323
+ /** Called when a row is pressed (data-driven API). Makes rows pressable. */
324
+ onRowPress?: (row: T, index: number) => void
325
+ /**
326
+ * Wrap the table in a horizontal `ScrollView`. Use with fixed-width columns
327
+ * for wide tables that exceed the viewport on mobile. @default false
328
+ */
329
+ scrollable?: boolean
330
+ /** Accessibility label for the table container. */
331
+ accessibilityLabel?: string
332
+ /** Design token modes for theming (e.g. `{ "Color Mode": "Light" }`). */
333
+ modes?: Modes
334
+ /** Override the outer container style. */
335
+ style?: StyleProp<ViewStyle>
336
+ }
337
+
338
+ /**
339
+ * Table renders structured rows and columns. It supports two complementary
340
+ * usage styles that share the same token-driven styling:
341
+ *
342
+ * 1. **Data-driven** (recommended): pass `columns` + `data`. The header and body
343
+ * are built for you, columns stay aligned, and per-column `align`/`width`/
344
+ * `flex`/`render` give full control.
345
+ *
346
+ * 2. **Composition**: pass `Table.Header` / `Table.Body` / `Table.Row` /
347
+ * `Table.Cell` / `Table.HeaderCell` as children for bespoke layouts. These
348
+ * sub-components are also exported standalone.
349
+ *
350
+ * Implementation of Figma node `5732:3710` (`Table`) with sub-components
351
+ * `603:23` (`table-cell`) and `603:21` (`table header wrap`).
352
+ *
353
+ * @component
354
+ */
355
+ function Table<T = Record<string, unknown>>({
356
+ columns,
357
+ data,
358
+ children,
359
+ showHeader = true,
360
+ getRowKey,
361
+ onRowPress,
362
+ scrollable = false,
363
+ accessibilityLabel,
364
+ modes = EMPTY_MODES,
365
+ style,
366
+ }: TableProps<T>) {
367
+ const isComposition = children != null
368
+
369
+ const body = isComposition ? (
370
+ cloneChildrenWithModes(children, modes)
371
+ ) : (
372
+ <>
373
+ {showHeader && columns && columns.length > 0 && (
374
+ <TableHeader modes={modes}>
375
+ {columns.map((col) => (
376
+ <TableHeaderCell
377
+ key={col.key}
378
+ align={col.headerAlign ?? col.align ?? 'left'}
379
+ width={col.width}
380
+ flex={col.flex ?? 1}
381
+ modes={modes}
382
+ >
383
+ {col.header ?? col.key}
384
+ </TableHeaderCell>
385
+ ))}
386
+ </TableHeader>
387
+ )}
388
+ {columns && data && data.length > 0 && (
389
+ <TableBody modes={modes}>
390
+ {data.map((row, rowIndex) => {
391
+ const isLastRow = rowIndex === data.length - 1
392
+ return (
393
+ <TableRow
394
+ key={getRowKey?.(row, rowIndex) ?? rowIndex}
395
+ onPress={onRowPress ? () => onRowPress(row, rowIndex) : undefined}
396
+ modes={modes}
397
+ >
398
+ {columns.map((col, colIndex) => (
399
+ <TableCell
400
+ key={col.key}
401
+ align={col.align ?? 'left'}
402
+ width={col.width}
403
+ flex={col.flex ?? 1}
404
+ isLastColumn={colIndex === columns.length - 1}
405
+ isLastRow={isLastRow}
406
+ modes={modes}
407
+ >
408
+ {col.render
409
+ ? col.render(row, rowIndex)
410
+ : (row as Record<string, unknown>)[col.key] as React.ReactNode}
411
+ </TableCell>
412
+ ))}
413
+ </TableRow>
414
+ )
415
+ })}
416
+ </TableBody>
417
+ )}
418
+ </>
419
+ )
420
+
421
+ const container = (
422
+ <View
423
+ accessibilityRole={Platform.OS === 'web' ? ('table' as any) : undefined}
424
+ accessibilityLabel={accessibilityLabel}
425
+ style={[{ overflow: 'hidden' }, !scrollable && { width: '100%' }, style]}
426
+ >
427
+ {body}
428
+ </View>
429
+ )
430
+
431
+ if (scrollable) {
432
+ return (
433
+ <ScrollView horizontal showsHorizontalScrollIndicator={false}>
434
+ {container}
435
+ </ScrollView>
436
+ )
437
+ }
438
+ return container
439
+ }
440
+
441
+ Table.Header = TableHeader
442
+ Table.HeaderCell = TableHeaderCell
443
+ Table.Body = TableBody
444
+ Table.Row = TableRow
445
+ Table.Cell = TableCell
446
+
447
+ export { TableHeader, TableHeaderCell, TableBody, TableRow, TableCell }
448
+
449
+ export default Table
@@ -1,7 +1,7 @@
1
1
  import React from 'react'
2
2
  import { Text as RNText, type TextStyle, type StyleProp } from 'react-native'
3
3
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
4
- import { EMPTY_MODES } from '../../utils/react-utils'
4
+ import { EMPTY_MODES, resolveTextLayout } from '../../utils/react-utils'
5
5
  import Skeleton from '../../skeleton/Skeleton'
6
6
  import { useSkeleton } from '../../skeleton/SkeletonGroup'
7
7
  import type { Modes } from '../../design-tokens'
@@ -26,6 +26,21 @@ export type TextProps = {
26
26
  style?: StyleProp<TextStyle>
27
27
  /** Number of lines to limit the text to. */
28
28
  numberOfLines?: number
29
+ /**
30
+ * When `true`, disables text truncation entirely: the trailing ellipsis (`…`)
31
+ * is never shown and any `numberOfLines` clamp is ignored. The text is also
32
+ * never shrunk by a tight parent — it keeps its full intrinsic size and
33
+ * overflows (even breaking the parent layout) rather than clipping into an
34
+ * ellipsis. It still wraps onto multiple lines.
35
+ */
36
+ disableTruncation?: boolean
37
+ /**
38
+ * When `true`, forces the text onto a single line with no wrapping (implies
39
+ * {@link disableTruncation}). On web the line overflows horizontally —
40
+ * brutally breaking the parent layout if it has to — instead of wrapping or
41
+ * truncating.
42
+ */
43
+ singleLine?: boolean
29
44
  /**
30
45
  * Explicit per-instance loading override. When `true`, this `Text` renders
31
46
  * a skeleton placeholder regardless of any surrounding `<SkeletonGroup>`.
@@ -59,6 +74,8 @@ function Text({
59
74
  modes = EMPTY_MODES,
60
75
  style,
61
76
  numberOfLines,
77
+ disableTruncation,
78
+ singleLine,
62
79
  loading,
63
80
  skeletonWidth,
64
81
  skeletonLines,
@@ -121,10 +138,18 @@ function Text({
121
138
  ? text
122
139
  : 'Korem ipsum '
123
140
 
141
+ // Layout `style` is merged after the consumer `style` so the brutal overflow
142
+ // / no-wrap behaviour always wins.
143
+ const { style: layoutStyle, ...truncation } = resolveTextLayout({
144
+ disableTruncation,
145
+ singleLine,
146
+ numberOfLines,
147
+ })
148
+
124
149
  return (
125
150
  <RNText
126
- style={[textStyle, style]}
127
- numberOfLines={numberOfLines}
151
+ style={[textStyle, style, layoutStyle]}
152
+ {...truncation}
128
153
  >
129
154
  {content}
130
155
  </RNText>
@@ -137,18 +137,18 @@ const TextInputBase = forwardRef<RNTextInput, TextInputProps>(function TextInput
137
137
  const inputRef = useRef<RNTextInput>(null)
138
138
 
139
139
  // Resolve container tokens
140
- const backgroundColor = getVariableByName('textInput/background', modes) || '#f5f5f5'
141
- const borderColor = getVariableByName('textInput/border/color', modes) || '#f5f5f5'
142
- const paddingHorizontal = getVariableByName('textInput/horizontal/padding', modes) || 14
143
- const paddingVertical = getVariableByName('textInput/vertical/padding', modes) || 14
144
- const radius = getVariableByName('textInput/radius', modes) || 99999
140
+ const backgroundColor = getVariableByName('textInput/background', modes)
141
+ const borderColor = getVariableByName('textInput/border/color', modes)
142
+ const paddingHorizontal = getVariableByName('textInput/horizontal/padding', modes)
143
+ const paddingVertical = getVariableByName('textInput/vertical/padding', modes)
144
+ const radius = getVariableByName('textInput/radius', modes)
145
145
 
146
146
  // Resolve text input typography tokens
147
- const textColor = getVariableByName('textInput/label/color', modes) || '#24262b'
148
- const fontSize = getVariableByName('textInput/fontSize', modes) || 14
149
- const lineHeight = getVariableByName('textInput/lineHeight', modes) || 18
150
- const fontFamily = getVariableByName('textInput/fontFamily', modes) || 'System'
151
- const fontWeightRaw = getVariableByName('textInput/fontWeight', modes) || 400
147
+ const textColor = getVariableByName('textInput/label/color', modes)
148
+ const fontSize = getVariableByName('textInput/fontSize', modes)
149
+ const lineHeight = getVariableByName('textInput/lineHeight', modes)
150
+ const fontFamily = getVariableByName('textInput/fontFamily', modes)
151
+ const fontWeightRaw = getVariableByName('textInput/fontWeight', modes)
152
152
  const fontWeight =
153
153
  typeof fontWeightRaw === 'number' ? fontWeightRaw.toString() : fontWeightRaw
154
154
 
@@ -156,8 +156,8 @@ const TextInputBase = forwardRef<RNTextInput, TextInputProps>(function TextInput
156
156
  const placeholderColor = makePlaceholderColor(textColor, 0.6)
157
157
 
158
158
  // Resolve icon tokens (for default icon rendering if needed)
159
- const iconColor = getVariableByName('textInput/icon/color', modes) || '#24262b'
160
- const iconSize = getVariableByName('textInput/icon/size', modes) || 18
159
+ const iconColor = getVariableByName('textInput/icon/color', modes)
160
+ const iconSize = getVariableByName('textInput/icon/size', modes)
161
161
 
162
162
  // Convert radius to React Native format (if 99999, use a large value for fully rounded)
163
163
  const borderRadius = radius === 99999 ? 99999 : radius
@@ -182,7 +182,13 @@ const TextInputBase = forwardRef<RNTextInput, TextInputProps>(function TextInput
182
182
  flex: 1,
183
183
  color: textColor,
184
184
  fontSize,
185
- lineHeight,
185
+ // iOS-only quirk: a single-line RNTextInput with an explicit `lineHeight`
186
+ // larger than `fontSize` puts all the extra space ABOVE the glyphs, so the
187
+ // text/placeholder sits below center (iOS native font-metrics bug — see
188
+ // facebook/react-native#39145 / #28012). The container centers via
189
+ // `alignItems: 'center'` + `minHeight`, so omit lineHeight on iOS
190
+ // (UITextField centers natively) and keep it on Android/Web where it's fine.
191
+ ...(Platform.OS === 'ios' ? null : { lineHeight }),
186
192
  fontFamily,
187
193
  fontWeight,
188
194
  padding: 0,
@@ -340,8 +346,8 @@ const TextInputSearch = forwardRef<RNTextInput, TextInputSearchProps>(function T
340
346
  ...rest
341
347
  }: TextInputSearchProps, ref: React.Ref<RNTextInput>) {
342
348
  // Resolve icon tokens for default search icon
343
- const iconColor = getVariableByName('textInput/icon/color', modes) || '#24262b'
344
- const iconSize = getVariableByName('textInput/icon/size', modes) || 18
349
+ const iconColor = getVariableByName('textInput/icon/color', modes)
350
+ const iconSize = getVariableByName('textInput/icon/size', modes)
345
351
 
346
352
  // Use provided leading or default to search icon
347
353
  const defaultLeading = (
@@ -1,7 +1,7 @@
1
1
  import React, { useMemo } from 'react'
2
2
  import { Text as RNText, type TextStyle, type StyleProp } from 'react-native'
3
3
  import { getVariableByName } from '../../design-tokens/figma-variables-resolver'
4
- import { EMPTY_MODES, cloneChildrenWithModes } from '../../utils/react-utils'
4
+ import { EMPTY_MODES, cloneChildrenWithModes, resolveTextLayout } from '../../utils/react-utils'
5
5
  import type { Modes } from '../../design-tokens'
6
6
 
7
7
  /**
@@ -58,6 +58,21 @@ export type TextSegmentProps = {
58
58
  textAlign?: 'Left' | 'Center'
59
59
  /** Clamp the paragraph to this many lines (truncates with an ellipsis). Applies to the whole composed line, not per-run. */
60
60
  numberOfLines?: number
61
+ /**
62
+ * When `true`, disables truncation entirely: the trailing ellipsis (`…`) is
63
+ * never shown and the `numberOfLines` clamp is ignored. The paragraph is also
64
+ * never shrunk by a tight parent — it keeps its full intrinsic size and
65
+ * overflows (even breaking the parent layout) rather than clipping into an
66
+ * ellipsis. It still wraps onto multiple lines.
67
+ */
68
+ disableTruncation?: boolean
69
+ /**
70
+ * When `true`, forces the whole paragraph onto a single line with no wrapping
71
+ * (implies {@link disableTruncation}). On web the line overflows horizontally
72
+ * — brutally breaking the parent layout if it has to — instead of wrapping or
73
+ * truncating.
74
+ */
75
+ singleLine?: boolean
61
76
  /** Mode configuration used for the base style and cascaded to every run/child. */
62
77
  modes?: Modes
63
78
  /** Style override applied to the outer paragraph (e.g. width constraints to force wrapping). */
@@ -125,6 +140,8 @@ function TextSegment({
125
140
  children,
126
141
  textAlign = 'Left',
127
142
  numberOfLines,
143
+ disableTruncation,
144
+ singleLine,
128
145
  modes = EMPTY_MODES,
129
146
  style,
130
147
  }: TextSegmentProps) {
@@ -156,8 +173,16 @@ function TextSegment({
156
173
  // while still honouring any per-child `modes` override.
157
174
  const content = hasChildren ? cloneChildrenWithModes(children, modes) : renderedSegments
158
175
 
176
+ // Layout `style` is merged after the consumer `style` so the brutal overflow
177
+ // / no-wrap behaviour always wins.
178
+ const { style: layoutStyle, ...truncation } = resolveTextLayout({
179
+ disableTruncation,
180
+ singleLine,
181
+ numberOfLines,
182
+ })
183
+
159
184
  return (
160
- <RNText style={[baseStyle, style]} numberOfLines={numberOfLines}>
185
+ <RNText style={[baseStyle, style, layoutStyle]} {...truncation}>
161
186
  {content}
162
187
  </RNText>
163
188
  )