jfs-components 0.1.2 → 0.1.12

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 (287) hide show
  1. package/CHANGELOG.md +45 -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/AllocationComparisonChart/AllocationComparisonChart.js +9 -6
  6. package/lib/commonjs/components/AmountInput/AmountInput.js +8 -5
  7. package/lib/commonjs/components/AreaLineChart/AreaLineChart.js +11 -7
  8. package/lib/commonjs/components/Badge/Badge.js +47 -8
  9. package/lib/commonjs/components/BenefitCard/BenefitCard.js +231 -0
  10. package/lib/commonjs/components/BrandChip/BrandChip.js +3 -3
  11. package/lib/commonjs/components/Button/Button.js +2 -1
  12. package/lib/commonjs/components/CardAdvisory/CardAdvisory.js +2 -1
  13. package/lib/commonjs/components/CardBankAccount/CardBankAccount.js +3 -2
  14. package/lib/commonjs/components/CardCTA/CardCTA.js +197 -27
  15. package/lib/commonjs/components/CardInsight/CardInsight.js +5 -1
  16. package/lib/commonjs/components/CcCard/CcCard.js +470 -0
  17. package/lib/commonjs/components/Checkbox/Checkbox.js +4 -3
  18. package/lib/commonjs/components/CheckboxItem/CheckboxItem.js +4 -3
  19. package/lib/commonjs/components/CircularProgressBar/CircularProgressBar.js +7 -3
  20. package/lib/commonjs/components/CircularProgressBarDoted/CircularProgressBarDoted.js +3 -2
  21. package/lib/commonjs/components/CircularRating/CircularRating.js +2 -1
  22. package/lib/commonjs/components/ClusterBubble/ClusterBubble.js +3 -2
  23. package/lib/commonjs/components/CompareTable/CompareTable.js +401 -0
  24. package/lib/commonjs/components/ComparisonBar/ComparisonBar.js +266 -0
  25. package/lib/commonjs/components/CoverageBarComparison/CoverageBarComparison.js +3 -2
  26. package/lib/commonjs/components/DonutChart/DonutChart.js +4 -3
  27. package/lib/commonjs/components/Dropdown/Dropdown.js +3 -2
  28. package/lib/commonjs/components/DropdownInput/DropdownInput.js +38 -5
  29. package/lib/commonjs/components/ExpandableCheckbox/ExpandableCheckbox.js +2 -1
  30. package/lib/commonjs/components/FormField/FormField.js +45 -4
  31. package/lib/commonjs/components/Gauge/Gauge.js +1 -1
  32. package/lib/commonjs/components/HoldingsCard/HoldingsCard.js +3 -2
  33. package/lib/commonjs/components/InputSearch/InputSearch.js +6 -4
  34. package/lib/commonjs/components/InstitutionBadge/InstitutionBadge.js +2 -1
  35. package/lib/commonjs/components/ListGroup/ListGroup.js +2 -1
  36. package/lib/commonjs/components/ListItem/ListItem.js +3 -2
  37. package/lib/commonjs/components/MediaCard/MediaCard.js +4 -2
  38. package/lib/commonjs/components/MetricLegendItem/MetricLegendItem.js +3 -2
  39. package/lib/commonjs/components/MonthlyStatusGrid/MonthlyStatusGrid.js +6 -3
  40. package/lib/commonjs/components/NoteInput/NoteInput.js +6 -5
  41. package/lib/commonjs/components/PdpCcCard/PdpCcCard.js +273 -0
  42. package/lib/commonjs/components/PoweredByLabel/PoweredByLabel.js +3 -2
  43. package/lib/commonjs/components/ProductMerchandisingCard/ProductMerchandisingCard.js +427 -0
  44. package/lib/commonjs/components/ProductOverview/ProductOverview.js +4 -3
  45. package/lib/commonjs/components/ProgressBadge/ProgressBadge.js +2 -2
  46. package/lib/commonjs/components/ProjectionMarker/ProjectionMarker.js +162 -0
  47. package/lib/commonjs/components/Radio/Radio.js +5 -5
  48. package/lib/commonjs/components/Section/Section.js +3 -2
  49. package/lib/commonjs/components/Slider/Slider.js +474 -0
  50. package/lib/commonjs/components/Stack/Stack.js +86 -0
  51. package/lib/commonjs/components/SuggestiveSearch/SuggestiveSearch.js +10 -1
  52. package/lib/commonjs/components/SummaryTile/SummaryTile.js +3 -2
  53. package/lib/commonjs/components/Table/Table.js +324 -0
  54. package/lib/commonjs/components/Text/Text.js +2 -1
  55. package/lib/commonjs/components/TextInput/TextInput.js +22 -9
  56. package/lib/commonjs/components/TextSegment/TextSegment.js +119 -0
  57. package/lib/commonjs/components/ThreadHero/ThreadHero.js +4 -5
  58. package/lib/commonjs/components/Title/Title.js +2 -1
  59. package/lib/commonjs/components/Toast/Toast.js +3 -2
  60. package/lib/commonjs/components/TransactionBubble/TransactionBubble.js +2 -1
  61. package/lib/commonjs/components/TransactionStatus/TransactionStatus.js +3 -2
  62. package/lib/commonjs/components/UpiHandle/UpiHandle.js +2 -2
  63. package/lib/commonjs/components/index.js +107 -0
  64. package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
  65. package/lib/commonjs/design-tokens/figma-modes.generated.js +39 -9
  66. package/lib/commonjs/icons/registry.js +1 -1
  67. package/lib/commonjs/utils/GlassFill/GlassFill.js +271 -0
  68. package/lib/commonjs/utils/GlassFill/GlassFill.web.js +120 -0
  69. package/lib/commonjs/utils/react-utils.js +78 -0
  70. package/lib/commonjs/utils/web-platform-utils.js +59 -0
  71. package/lib/module/components/Accordion/Accordion.js +3 -2
  72. package/lib/module/components/AccordionCheckbox/AccordionCheckbox.js +5 -4
  73. package/lib/module/components/AccountCard/AccountCard.js +5 -4
  74. package/lib/module/components/AllocationComparisonChart/AllocationComparisonChart.js +10 -7
  75. package/lib/module/components/AmountInput/AmountInput.js +6 -4
  76. package/lib/module/components/AreaLineChart/AreaLineChart.js +12 -8
  77. package/lib/module/components/Badge/Badge.js +49 -10
  78. package/lib/module/components/BenefitCard/BenefitCard.js +225 -0
  79. package/lib/module/components/BrandChip/BrandChip.js +4 -4
  80. package/lib/module/components/Button/Button.js +3 -2
  81. package/lib/module/components/CardAdvisory/CardAdvisory.js +3 -2
  82. package/lib/module/components/CardBankAccount/CardBankAccount.js +4 -3
  83. package/lib/module/components/CardCTA/CardCTA.js +198 -28
  84. package/lib/module/components/CardInsight/CardInsight.js +5 -1
  85. package/lib/module/components/CcCard/CcCard.js +464 -0
  86. package/lib/module/components/Checkbox/Checkbox.js +5 -4
  87. package/lib/module/components/CheckboxItem/CheckboxItem.js +5 -4
  88. package/lib/module/components/CircularProgressBar/CircularProgressBar.js +8 -4
  89. package/lib/module/components/CircularProgressBarDoted/CircularProgressBarDoted.js +4 -3
  90. package/lib/module/components/CircularRating/CircularRating.js +3 -2
  91. package/lib/module/components/ClusterBubble/ClusterBubble.js +4 -3
  92. package/lib/module/components/CompareTable/CompareTable.js +396 -0
  93. package/lib/module/components/ComparisonBar/ComparisonBar.js +260 -0
  94. package/lib/module/components/CoverageBarComparison/CoverageBarComparison.js +4 -3
  95. package/lib/module/components/DonutChart/DonutChart.js +5 -4
  96. package/lib/module/components/Dropdown/Dropdown.js +4 -3
  97. package/lib/module/components/DropdownInput/DropdownInput.js +40 -7
  98. package/lib/module/components/ExpandableCheckbox/ExpandableCheckbox.js +2 -1
  99. package/lib/module/components/FormField/FormField.js +48 -7
  100. package/lib/module/components/Gauge/Gauge.js +1 -1
  101. package/lib/module/components/HoldingsCard/HoldingsCard.js +4 -3
  102. package/lib/module/components/InputSearch/InputSearch.js +6 -4
  103. package/lib/module/components/InstitutionBadge/InstitutionBadge.js +3 -2
  104. package/lib/module/components/ListGroup/ListGroup.js +3 -2
  105. package/lib/module/components/ListItem/ListItem.js +4 -3
  106. package/lib/module/components/MediaCard/MediaCard.js +4 -2
  107. package/lib/module/components/MetricLegendItem/MetricLegendItem.js +4 -3
  108. package/lib/module/components/MonthlyStatusGrid/MonthlyStatusGrid.js +7 -4
  109. package/lib/module/components/NoteInput/NoteInput.js +7 -6
  110. package/lib/module/components/PdpCcCard/PdpCcCard.js +267 -0
  111. package/lib/module/components/PoweredByLabel/PoweredByLabel.js +4 -3
  112. package/lib/module/components/ProductMerchandisingCard/ProductMerchandisingCard.js +421 -0
  113. package/lib/module/components/ProductOverview/ProductOverview.js +5 -4
  114. package/lib/module/components/ProgressBadge/ProgressBadge.js +3 -3
  115. package/lib/module/components/ProjectionMarker/ProjectionMarker.js +157 -0
  116. package/lib/module/components/Radio/Radio.js +5 -4
  117. package/lib/module/components/Section/Section.js +4 -3
  118. package/lib/module/components/Slider/Slider.js +469 -0
  119. package/lib/module/components/Stack/Stack.js +81 -0
  120. package/lib/module/components/SuggestiveSearch/SuggestiveSearch.js +10 -1
  121. package/lib/module/components/SummaryTile/SummaryTile.js +4 -3
  122. package/lib/module/components/Table/Table.js +315 -0
  123. package/lib/module/components/Text/Text.js +3 -2
  124. package/lib/module/components/TextInput/TextInput.js +24 -11
  125. package/lib/module/components/TextSegment/TextSegment.js +114 -0
  126. package/lib/module/components/ThreadHero/ThreadHero.js +5 -6
  127. package/lib/module/components/Title/Title.js +3 -2
  128. package/lib/module/components/Toast/Toast.js +4 -3
  129. package/lib/module/components/TransactionBubble/TransactionBubble.js +3 -2
  130. package/lib/module/components/TransactionStatus/TransactionStatus.js +4 -3
  131. package/lib/module/components/UpiHandle/UpiHandle.js +3 -3
  132. package/lib/module/components/index.js +11 -0
  133. package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
  134. package/lib/module/design-tokens/figma-modes.generated.js +39 -9
  135. package/lib/module/icons/registry.js +1 -1
  136. package/lib/module/utils/GlassFill/GlassFill.js +265 -0
  137. package/lib/module/utils/GlassFill/GlassFill.web.js +115 -0
  138. package/lib/module/utils/react-utils.js +75 -0
  139. package/lib/module/utils/web-platform-utils.js +58 -0
  140. package/lib/typescript/src/components/Accordion/Accordion.d.ts +7 -1
  141. package/lib/typescript/src/components/AccordionCheckbox/AccordionCheckbox.d.ts +7 -1
  142. package/lib/typescript/src/components/AccountCard/AccountCard.d.ts +7 -1
  143. package/lib/typescript/src/components/AllocationComparisonChart/AllocationComparisonChart.d.ts +7 -1
  144. package/lib/typescript/src/components/AmountInput/AmountInput.d.ts +3 -2
  145. package/lib/typescript/src/components/AreaLineChart/AreaLineChart.d.ts +8 -1
  146. package/lib/typescript/src/components/Badge/Badge.d.ts +32 -2
  147. package/lib/typescript/src/components/BenefitCard/BenefitCard.d.ts +93 -0
  148. package/lib/typescript/src/components/BrandChip/BrandChip.d.ts +7 -1
  149. package/lib/typescript/src/components/Button/Button.d.ts +7 -1
  150. package/lib/typescript/src/components/CardAdvisory/CardAdvisory.d.ts +7 -1
  151. package/lib/typescript/src/components/CardBankAccount/CardBankAccount.d.ts +7 -1
  152. package/lib/typescript/src/components/CardCTA/CardCTA.d.ts +27 -5
  153. package/lib/typescript/src/components/CcCard/CcCard.d.ts +137 -0
  154. package/lib/typescript/src/components/Checkbox/Checkbox.d.ts +3 -2
  155. package/lib/typescript/src/components/CheckboxItem/CheckboxItem.d.ts +2 -2
  156. package/lib/typescript/src/components/CircularProgressBar/CircularProgressBar.d.ts +7 -1
  157. package/lib/typescript/src/components/CircularProgressBarDoted/CircularProgressBarDoted.d.ts +7 -1
  158. package/lib/typescript/src/components/CircularRating/CircularRating.d.ts +7 -1
  159. package/lib/typescript/src/components/ClusterBubble/ClusterBubble.d.ts +7 -1
  160. package/lib/typescript/src/components/CompareTable/CompareTable.d.ts +94 -0
  161. package/lib/typescript/src/components/ComparisonBar/ComparisonBar.d.ts +118 -0
  162. package/lib/typescript/src/components/CoverageBarComparison/CoverageBarComparison.d.ts +7 -1
  163. package/lib/typescript/src/components/DonutChart/DonutChart.d.ts +7 -1
  164. package/lib/typescript/src/components/Dropdown/Dropdown.d.ts +7 -1
  165. package/lib/typescript/src/components/DropdownInput/DropdownInput.d.ts +26 -1
  166. package/lib/typescript/src/components/ExpandableCheckbox/ExpandableCheckbox.d.ts +7 -1
  167. package/lib/typescript/src/components/FormField/FormField.d.ts +2 -2
  168. package/lib/typescript/src/components/HoldingsCard/HoldingsCard.d.ts +7 -1
  169. package/lib/typescript/src/components/InputSearch/InputSearch.d.ts +23 -2
  170. package/lib/typescript/src/components/InstitutionBadge/InstitutionBadge.d.ts +7 -1
  171. package/lib/typescript/src/components/ListGroup/ListGroup.d.ts +7 -1
  172. package/lib/typescript/src/components/ListItem/ListItem.d.ts +7 -1
  173. package/lib/typescript/src/components/MetricLegendItem/MetricLegendItem.d.ts +7 -1
  174. package/lib/typescript/src/components/MonthlyStatusGrid/MonthlyStatusGrid.d.ts +14 -2
  175. package/lib/typescript/src/components/NoteInput/NoteInput.d.ts +19 -2
  176. package/lib/typescript/src/components/PdpCcCard/PdpCcCard.d.ts +84 -0
  177. package/lib/typescript/src/components/PoweredByLabel/PoweredByLabel.d.ts +7 -1
  178. package/lib/typescript/src/components/ProductMerchandisingCard/ProductMerchandisingCard.d.ts +87 -0
  179. package/lib/typescript/src/components/ProductOverview/ProductOverview.d.ts +7 -1
  180. package/lib/typescript/src/components/ProgressBadge/ProgressBadge.d.ts +7 -1
  181. package/lib/typescript/src/components/ProjectionMarker/ProjectionMarker.d.ts +88 -0
  182. package/lib/typescript/src/components/Radio/Radio.d.ts +3 -2
  183. package/lib/typescript/src/components/RadioButton/RadioButton.d.ts +2 -2
  184. package/lib/typescript/src/components/Section/Section.d.ts +7 -1
  185. package/lib/typescript/src/components/Slider/Slider.d.ts +105 -0
  186. package/lib/typescript/src/components/Stack/Stack.d.ts +81 -0
  187. package/lib/typescript/src/components/SummaryTile/SummaryTile.d.ts +7 -1
  188. package/lib/typescript/src/components/Table/Table.d.ts +139 -0
  189. package/lib/typescript/src/components/Text/Text.d.ts +7 -1
  190. package/lib/typescript/src/components/TextInput/TextInput.d.ts +9 -29
  191. package/lib/typescript/src/components/TextSegment/TextSegment.d.ts +106 -0
  192. package/lib/typescript/src/components/ThreadHero/ThreadHero.d.ts +7 -1
  193. package/lib/typescript/src/components/Title/Title.d.ts +7 -1
  194. package/lib/typescript/src/components/Toast/Toast.d.ts +7 -1
  195. package/lib/typescript/src/components/TransactionBubble/TransactionBubble.d.ts +7 -1
  196. package/lib/typescript/src/components/TransactionStatus/TransactionStatus.d.ts +7 -1
  197. package/lib/typescript/src/components/UpiHandle/UpiHandle.d.ts +7 -1
  198. package/lib/typescript/src/components/index.d.ts +14 -3
  199. package/lib/typescript/src/design-tokens/figma-modes.generated.d.ts +22 -2
  200. package/lib/typescript/src/icons/registry.d.ts +1 -1
  201. package/lib/typescript/src/utils/GlassFill/GlassFill.d.ts +84 -0
  202. package/lib/typescript/src/utils/GlassFill/GlassFill.web.d.ts +43 -0
  203. package/lib/typescript/src/utils/react-utils.d.ts +47 -0
  204. package/lib/typescript/src/utils/web-platform-utils.d.ts +36 -0
  205. package/package.json +2 -1
  206. package/src/components/Accordion/Accordion.tsx +9 -2
  207. package/src/components/AccordionCheckbox/AccordionCheckbox.tsx +10 -3
  208. package/src/components/AccountCard/AccountCard.tsx +10 -3
  209. package/src/components/AllocationComparisonChart/AllocationComparisonChart.tsx +14 -4
  210. package/src/components/AmountInput/AmountInput.tsx +7 -5
  211. package/src/components/AreaLineChart/AreaLineChart.tsx +15 -5
  212. package/src/components/Badge/Badge.tsx +78 -8
  213. package/src/components/BenefitCard/BenefitCard.tsx +309 -0
  214. package/src/components/BrandChip/BrandChip.tsx +9 -3
  215. package/src/components/Button/Button.tsx +9 -2
  216. package/src/components/CardAdvisory/CardAdvisory.tsx +9 -2
  217. package/src/components/CardBankAccount/CardBankAccount.tsx +9 -2
  218. package/src/components/CardCTA/CardCTA.tsx +214 -41
  219. package/src/components/CardInsight/CardInsight.tsx +7 -1
  220. package/src/components/CcCard/CcCard.tsx +598 -0
  221. package/src/components/Checkbox/Checkbox.tsx +5 -4
  222. package/src/components/CheckboxItem/CheckboxItem.tsx +5 -4
  223. package/src/components/CircularProgressBar/CircularProgressBar.tsx +14 -4
  224. package/src/components/CircularProgressBarDoted/CircularProgressBarDoted.tsx +10 -3
  225. package/src/components/CircularRating/CircularRating.tsx +9 -2
  226. package/src/components/ClusterBubble/ClusterBubble.tsx +9 -2
  227. package/src/components/CompareTable/CompareTable.tsx +525 -0
  228. package/src/components/ComparisonBar/ComparisonBar.tsx +356 -0
  229. package/src/components/CoverageBarComparison/CoverageBarComparison.tsx +9 -2
  230. package/src/components/DonutChart/DonutChart.tsx +10 -3
  231. package/src/components/Dropdown/Dropdown.tsx +9 -2
  232. package/src/components/DropdownInput/DropdownInput.tsx +64 -5
  233. package/src/components/ExpandableCheckbox/ExpandableCheckbox.tsx +8 -1
  234. package/src/components/FormField/FormField.tsx +52 -6
  235. package/src/components/Gauge/Gauge.tsx +1 -1
  236. package/src/components/HoldingsCard/HoldingsCard.tsx +9 -2
  237. package/src/components/InputSearch/InputSearch.tsx +8 -5
  238. package/src/components/InstitutionBadge/InstitutionBadge.tsx +9 -2
  239. package/src/components/ListGroup/ListGroup.tsx +9 -2
  240. package/src/components/ListItem/ListItem.tsx +10 -3
  241. package/src/components/MediaCard/MediaCard.tsx +2 -2
  242. package/src/components/MetricLegendItem/MetricLegendItem.tsx +9 -2
  243. package/src/components/MonthlyStatusGrid/MonthlyStatusGrid.tsx +17 -2
  244. package/src/components/NoteInput/NoteInput.tsx +8 -6
  245. package/src/components/PdpCcCard/PdpCcCard.tsx +356 -0
  246. package/src/components/PoweredByLabel/PoweredByLabel.tsx +9 -2
  247. package/src/components/ProductMerchandisingCard/ProductMerchandisingCard.tsx +490 -0
  248. package/src/components/ProductOverview/ProductOverview.tsx +10 -3
  249. package/src/components/ProgressBadge/ProgressBadge.tsx +9 -3
  250. package/src/components/ProjectionMarker/ProjectionMarker.tsx +284 -0
  251. package/src/components/Radio/Radio.tsx +5 -4
  252. package/src/components/Section/Section.tsx +10 -3
  253. package/src/components/Slider/Slider.tsx +635 -0
  254. package/src/components/Stack/Stack.tsx +131 -0
  255. package/src/components/SuggestiveSearch/SuggestiveSearch.tsx +10 -1
  256. package/src/components/SummaryTile/SummaryTile.tsx +9 -2
  257. package/src/components/Table/Table.tsx +449 -0
  258. package/src/components/Text/Text.tsx +9 -2
  259. package/src/components/TextInput/TextInput.tsx +22 -12
  260. package/src/components/TextSegment/TextSegment.tsx +173 -0
  261. package/src/components/ThreadHero/ThreadHero.tsx +10 -3
  262. package/src/components/Title/Title.tsx +9 -2
  263. package/src/components/Toast/Toast.tsx +9 -2
  264. package/src/components/TransactionBubble/TransactionBubble.tsx +9 -2
  265. package/src/components/TransactionStatus/TransactionStatus.tsx +9 -2
  266. package/src/components/UpiHandle/UpiHandle.tsx +9 -3
  267. package/src/components/index.ts +33 -3
  268. package/src/design-tokens/Coin Variables-variables-full.json +1 -1
  269. package/src/design-tokens/figma-modes.generated.ts +39 -9
  270. package/src/icons/registry.ts +1 -1
  271. package/src/utils/GlassFill/GlassFill.tsx +305 -0
  272. package/src/utils/GlassFill/GlassFill.web.tsx +148 -0
  273. package/src/utils/react-utils.ts +84 -0
  274. package/src/utils/web-platform-utils.ts +68 -0
  275. package/lib/commonjs/components/MediaCard/GlassFill.js +0 -62
  276. package/lib/commonjs/components/MediaCard/GlassFill.web.js +0 -48
  277. package/lib/module/components/MediaCard/GlassFill.js +0 -57
  278. package/lib/module/components/MediaCard/GlassFill.web.js +0 -43
  279. package/lib/typescript/scripts/extract-component-tokens.d.ts +0 -9
  280. package/lib/typescript/scripts/generate-component-docs.d.ts +0 -9
  281. package/lib/typescript/scripts/generate-icon-registry.d.ts +0 -3
  282. package/lib/typescript/scripts/generate-mode-types.d.ts +0 -2
  283. package/lib/typescript/scripts/retype-modes.d.cts +0 -2
  284. package/lib/typescript/src/components/MediaCard/GlassFill.d.ts +0 -47
  285. package/lib/typescript/src/components/MediaCard/GlassFill.web.d.ts +0 -20
  286. package/src/components/MediaCard/GlassFill.tsx +0 -89
  287. package/src/components/MediaCard/GlassFill.web.tsx +0 -53
@@ -0,0 +1,87 @@
1
+ import React from 'react';
2
+ import { type ViewStyle, type StyleProp, type ImageSourcePropType } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
4
+ export interface ProductMerchandisingCardProps {
5
+ /**
6
+ * Background media for the card. Accepts a URL string or any RN
7
+ * `ImageSourcePropType` (same shape as `Avatar`, `MediaCard`, etc.). The
8
+ * image is rendered full-bleed behind the header and glass footer.
9
+ */
10
+ imageSource?: ImageSourcePropType | string;
11
+ /** Footer title (bold, white). */
12
+ title?: string;
13
+ /** Footer subtitle (muted). */
14
+ subtitle?: string;
15
+ /**
16
+ * Header badge label (top-right). The badge is hidden when this is
17
+ * `undefined` and no `badge` override is provided.
18
+ */
19
+ badgeLabel?: string;
20
+ /**
21
+ * Full override for the header badge. Takes precedence over `badgeLabel`.
22
+ */
23
+ badge?: React.ReactNode;
24
+ /** Show the header avatar (top-left). Defaults to `true`. */
25
+ showAvatar?: boolean;
26
+ /** Avatar image source. */
27
+ avatarSource?: ImageSourcePropType | string;
28
+ /** Avatar monogram fallback when no image is supplied. */
29
+ avatarMonogram?: string;
30
+ /** Full override for the header avatar. Takes precedence over avatar props. */
31
+ avatar?: React.ReactNode;
32
+ /**
33
+ * Footer "special badge" label (small frosted pill above the title). The
34
+ * badge is hidden when this is `undefined` and no `specialBadge` override
35
+ * is provided.
36
+ */
37
+ specialBadgeLabel?: string;
38
+ /** Optional leading node (icon/image) rendered inside the special badge. */
39
+ specialBadgeIcon?: React.ReactNode;
40
+ /** Full override for the special badge. Takes precedence over the props above. */
41
+ specialBadge?: React.ReactNode;
42
+ /** CTA button label. Defaults to `"CTA"`. */
43
+ ctaLabel?: string;
44
+ /** CTA button press handler. */
45
+ onCtaPress?: () => void;
46
+ /** Full override for the CTA. Takes precedence over `ctaLabel`/`onCtaPress`. */
47
+ cta?: React.ReactNode;
48
+ /** Press handler for the whole card. When set, the card becomes pressable. */
49
+ onPress?: () => void;
50
+ /** Card height in px. Defaults to `223` (Figma spec). */
51
+ height?: number;
52
+ /** Modes object for design-token resolution. Cascaded to all children. */
53
+ modes?: Modes;
54
+ /** Style overrides for the card container. */
55
+ style?: StyleProp<ViewStyle>;
56
+ /** Accessibility label for the card. */
57
+ accessibilityLabel?: string;
58
+ /**
59
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
60
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
61
+ * lines as it needs even when horizontal space is tight.
62
+ */
63
+ disableTruncation?: boolean;
64
+ }
65
+ /**
66
+ * ProductMerchandisingCard — a full-bleed image card (Figma node 5277:317)
67
+ * with a top header (avatar + badge) and a bottom **glass footer** that
68
+ * combines a real native background blur with a transparent→black gradient
69
+ * scrim for legible text over any image.
70
+ *
71
+ * Glass footer implementation (works on iOS, Android and Web):
72
+ * - **iOS / Android:** `<GlassFill>` wraps `@react-native-community/blur`'s
73
+ * `BlurView` — iOS gets a real `UIVisualEffectView` (live OS blur),
74
+ * Android gets the community `RealtimeBlurView` with a tinted scrim
75
+ * fallback. The native-only module is isolated in `GlassFill.tsx`.
76
+ * - **Web:** the platform-extension `GlassFill.web.tsx` renders a translucent
77
+ * `View` with `backdrop-filter: blur()` — Metro picks the right file so the
78
+ * web bundle never imports the native blur module.
79
+ * - The gradient scrim is drawn with `react-native-svg` (one renderer for all
80
+ * platforms) so the fade is identical everywhere.
81
+ *
82
+ * The blur strength is driven by the Figma `blur/minimal` token, mapped to the
83
+ * `GlassFill` 0–100 intensity scale the same way `MediaCard` does.
84
+ */
85
+ declare function ProductMerchandisingCard({ imageSource, title, subtitle, badgeLabel, badge, showAvatar, avatarSource, avatarMonogram, avatar, specialBadgeLabel, specialBadgeIcon, specialBadge, ctaLabel, onCtaPress, cta, onPress, height, modes, style, accessibilityLabel, disableTruncation, }: ProductMerchandisingCardProps): import("react/jsx-runtime").JSX.Element;
86
+ export default ProductMerchandisingCard;
87
+ //# sourceMappingURL=ProductMerchandisingCard.d.ts.map
@@ -34,7 +34,13 @@ export type ProductOverviewProps = {
34
34
  * for badges, callouts, etc. Receives the same `modes` as the parent.
35
35
  */
36
36
  children?: React.ReactNode;
37
+ /**
38
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
39
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
40
+ * lines as it needs even when horizontal space is tight.
41
+ */
42
+ disableTruncation?: boolean;
37
43
  };
38
- declare const ProductOverview: ({ imageSource, imageRatio, labelImageSource, label, productName, description, stats, modes, style, children, }: ProductOverviewProps) => import("react/jsx-runtime").JSX.Element;
44
+ declare const ProductOverview: ({ imageSource, imageRatio, labelImageSource, label, productName, description, stats, modes, style, children, disableTruncation, }: ProductOverviewProps) => import("react/jsx-runtime").JSX.Element;
39
45
  export default ProductOverview;
40
46
  //# sourceMappingURL=ProductOverview.d.ts.map
@@ -16,6 +16,12 @@ export type ProgressBadgeProps = {
16
16
  textStyle?: StyleProp<TextStyle>;
17
17
  /** Accessibility label for screen readers */
18
18
  accessibilityLabel?: string;
19
+ /**
20
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
21
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
22
+ * lines as it needs even when horizontal space is tight.
23
+ */
24
+ disableTruncation?: boolean;
19
25
  } & React.ComponentProps<typeof View>;
20
26
  /**
21
27
  * ProgressBadge component that displays an icon, text, and an internal progress bar.
@@ -32,6 +38,6 @@ export type ProgressBadgeProps = {
32
38
  * @param {Object} [props.textStyle] - Optional text style overrides.
33
39
  * @param {string} [props.accessibilityLabel] - Accessibility label.
34
40
  */
35
- declare function ProgressBadge({ taskName, iconName, value, modes, style, textStyle: textStyleOverride, accessibilityLabel, ...rest }: ProgressBadgeProps): import("react/jsx-runtime").JSX.Element;
41
+ declare function ProgressBadge({ taskName, iconName, value, modes, style, textStyle: textStyleOverride, accessibilityLabel, disableTruncation, ...rest }: ProgressBadgeProps): import("react/jsx-runtime").JSX.Element;
36
42
  export default ProgressBadge;
37
43
  //# sourceMappingURL=ProgressBadge.d.ts.map
@@ -0,0 +1,88 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle, type TextStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
4
+ /**
5
+ * A value rendered at either end of the marker. A `string`/`number` is rendered
6
+ * with the built-in title typography; any other `ReactNode` (e.g. a
7
+ * `MoneyValue`) is rendered as-is so consumers can fully control presentation.
8
+ */
9
+ type ProjectionMarkerEndValue = React.ReactNode;
10
+ export type ProjectionMarkerProps = {
11
+ /**
12
+ * Value shown on the leading (left) end of the marker — typically the
13
+ * invested/starting amount. Accepts a string for the default styling or any
14
+ * `ReactNode` (e.g. `MoneyValue`) for custom rendering.
15
+ */
16
+ startValue?: ProjectionMarkerEndValue;
17
+ /**
18
+ * Value shown on the trailing (right) end of the marker — typically the
19
+ * projected/ending amount.
20
+ */
21
+ endValue?: ProjectionMarkerEndValue;
22
+ /**
23
+ * Primary line inside the center badge — typically the duration
24
+ * (e.g. `"1Y 10M"`).
25
+ */
26
+ duration?: React.ReactNode;
27
+ /**
28
+ * Secondary line inside the center badge — typically the rate
29
+ * (e.g. `"@ 8.25 %"`).
30
+ */
31
+ rate?: React.ReactNode;
32
+ /**
33
+ * Whether to render the connector lines between the end values and the
34
+ * center badge. Defaults to `true`.
35
+ */
36
+ showConnectors?: boolean;
37
+ /** Design token modes for theming. */
38
+ modes?: Modes;
39
+ /** Override the root container styles. */
40
+ style?: StyleProp<ViewStyle>;
41
+ /** Override the leading value text styles (only applies to string values). */
42
+ startValueStyle?: StyleProp<TextStyle>;
43
+ /** Override the trailing value text styles (only applies to string values). */
44
+ endValueStyle?: StyleProp<TextStyle>;
45
+ /** Override the center badge container styles. */
46
+ badgeStyle?: StyleProp<ViewStyle>;
47
+ /** Override the duration text styles. */
48
+ durationStyle?: StyleProp<TextStyle>;
49
+ /** Override the rate text styles. */
50
+ rateStyle?: StyleProp<TextStyle>;
51
+ /** Accessibility label for the whole marker. */
52
+ accessibilityLabel?: string;
53
+ /**
54
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
55
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
56
+ * lines as it needs even when horizontal space is tight.
57
+ */
58
+ disableTruncation?: boolean;
59
+ };
60
+ /**
61
+ * ProjectionMarker renders a start value and an end value connected to a
62
+ * centered badge that summarizes the projection (e.g. a tenure and interest
63
+ * rate). It mirrors the Figma `projectionMarker` component and is commonly used
64
+ * inside "Potential returns" style cards.
65
+ *
66
+ * @example
67
+ * ```tsx
68
+ * <ProjectionMarker
69
+ * startValue="₹1,00,000"
70
+ * endValue="₹1,25,101"
71
+ * duration="1Y 10M"
72
+ * rate="@ 8.25 %"
73
+ * />
74
+ * ```
75
+ *
76
+ * @example Custom end values via MoneyValue
77
+ * ```tsx
78
+ * <ProjectionMarker
79
+ * startValue={<MoneyValue value="1,00,000" />}
80
+ * endValue={<MoneyValue value="1,25,101" />}
81
+ * duration="1Y 10M"
82
+ * rate="@ 8.25 %"
83
+ * />
84
+ * ```
85
+ */
86
+ declare function ProjectionMarker({ startValue, endValue, duration, rate, showConnectors, modes, style, startValueStyle, endValueStyle, badgeStyle, durationStyle, rateStyle, accessibilityLabel, disableTruncation, }: ProjectionMarkerProps): import("react/jsx-runtime").JSX.Element;
87
+ export default ProjectionMarker;
88
+ //# sourceMappingURL=ProjectionMarker.d.ts.map
@@ -1,4 +1,5 @@
1
- import { ViewStyle, StyleProp } from 'react-native';
1
+ import React from 'react';
2
+ import { View, ViewStyle, StyleProp } from 'react-native';
2
3
  import type { Modes } from '../../design-tokens';
3
4
  export interface RadioProps {
4
5
  /**
@@ -26,6 +27,6 @@ export interface RadioProps {
26
27
  */
27
28
  testID?: string;
28
29
  }
29
- export declare function Radio({ selected, disabled, onPress, modes, style, testID, }: RadioProps): import("react/jsx-runtime").JSX.Element;
30
+ export declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<View>>;
30
31
  export default Radio;
31
32
  //# sourceMappingURL=Radio.d.ts.map
@@ -15,8 +15,8 @@
15
15
  * the new `Radio` component under the old `RadioButton` names; please migrate
16
16
  * existing usages to `Radio` at your earliest convenience.
17
17
  */
18
- import { Radio, type RadioProps } from '../Radio/Radio';
18
+ import { type RadioProps } from '../Radio/Radio';
19
19
  export type RadioButtonProps = RadioProps;
20
- export declare const RadioButton: typeof Radio;
20
+ export declare const RadioButton: import("react").ForwardRefExoticComponent<RadioProps & import("react").RefAttributes<import("react-native").View>>;
21
21
  export default RadioButton;
22
22
  //# sourceMappingURL=RadioButton.d.ts.map
@@ -18,8 +18,14 @@ type SectionProps = {
18
18
  * Web-specific accessibility props (only used on web platform)
19
19
  */
20
20
  webAccessibilityProps?: WebAccessibilityProps;
21
+ /**
22
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
23
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
24
+ * lines as it needs even when horizontal space is tight.
25
+ */
26
+ disableTruncation?: boolean;
21
27
  } & React.ComponentProps<typeof View>;
22
- declare function Section({ title, supportText, showSupportText, slot, slotDirection, modes, onPress, style, accessibilityLabel: _accessibilityLabel, accessibilityHint, webAccessibilityProps, ...rest }: SectionProps): import("react/jsx-runtime").JSX.Element;
28
+ declare function Section({ title, supportText, showSupportText, slot, slotDirection, modes, onPress, style, accessibilityLabel: _accessibilityLabel, accessibilityHint, webAccessibilityProps, disableTruncation, ...rest }: SectionProps): import("react/jsx-runtime").JSX.Element;
23
29
  declare namespace Section {
24
30
  var Bento: typeof SectionBento;
25
31
  }
@@ -0,0 +1,105 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
4
+ /**
5
+ * Imperative handle exposed via `ref`. The primary way to read a slider's value
6
+ * is still the controlled `value` + `onChange` pair (each `<Slider />` reports
7
+ * its own value, so multiple sliders are disambiguated by their own handlers).
8
+ * The ref is a convenience for reading the latest value on demand (e.g. on a
9
+ * button press) or imperatively nudging an uncontrolled slider.
10
+ *
11
+ * @example
12
+ * const slider = useRef<SliderHandle>(null)
13
+ * slider.current?.setValue(50)
14
+ * const v = slider.current?.getValue()
15
+ */
16
+ export interface SliderHandle {
17
+ /** Returns the slider's current (clamped, step-snapped) value. */
18
+ getValue: () => number;
19
+ /** Sets the value. Fires `onChange` + `onChangeEnd`. */
20
+ setValue: (value: number) => void;
21
+ /** Steps the value up by one `step` (or `by`, snapped to `step`). */
22
+ increment: (by?: number) => void;
23
+ /** Steps the value down by one `step` (or `by`, snapped to `step`). */
24
+ decrement: (by?: number) => void;
25
+ }
26
+ export interface SliderProps {
27
+ /** Current value (controlled). Pair with `onChange`. */
28
+ value?: number;
29
+ /** Initial value (uncontrolled). Defaults to `minValue`. */
30
+ defaultValue?: number;
31
+ /** Called continuously while the value changes (drag / keypress / track press). */
32
+ onChange?: (value: number) => void;
33
+ /** Called once when the interaction ends (drag release / keypress). */
34
+ onChangeEnd?: (value: number) => void;
35
+ /** Minimum selectable value. Defaults to `0`. */
36
+ minValue?: number;
37
+ /** Maximum selectable value. Defaults to `100`. */
38
+ maxValue?: number;
39
+ /** Snap increment. Defaults to `1`. Use a smaller value for finer control. */
40
+ step?: number;
41
+ /** Disables interaction and dims the control. */
42
+ isDisabled?: boolean;
43
+ /**
44
+ * `Intl.NumberFormat` options used to format the value bubble and the
45
+ * min/max labels (e.g. `{ style: 'currency', currency: 'USD' }`).
46
+ */
47
+ formatOptions?: Intl.NumberFormatOptions;
48
+ /** BCP-47 locale used with `formatOptions`. Defaults to the runtime locale. */
49
+ locale?: string;
50
+ /**
51
+ * Full override for value formatting. Takes precedence over `formatOptions`.
52
+ * Receives the raw numeric value, returns the string to display.
53
+ */
54
+ formatValue?: (value: number) => string;
55
+ /** Renders fully custom value-bubble content. Takes precedence over `formatValue`. */
56
+ renderTooltip?: (value: number) => React.ReactNode;
57
+ /**
58
+ * When `true` (default, matches the Figma design) the value bubble is
59
+ * always visible. When `false` it behaves like a normal tooltip — hidden at
60
+ * rest and revealed only while the user interacts (dragging on touch, or
61
+ * hovering/dragging on web), then dismissed as soon as the finger lifts.
62
+ *
63
+ * Either way the bubble floats above the track and never occupies layout
64
+ * space, so it will overlap content above the slider — leave room for it.
65
+ */
66
+ alwaysShowTooltip?: boolean;
67
+ /** Toggles the min/max labels below the track. Defaults to `true`. */
68
+ showLabels?: boolean;
69
+ /** Override for the left (min) label. Defaults to the formatted `minValue`. */
70
+ minLabel?: React.ReactNode;
71
+ /** Override for the right (max) label. Defaults to the formatted `maxValue`. */
72
+ maxLabel?: React.ReactNode;
73
+ /** Slider width. Defaults to `'100%'` so it fills its parent. */
74
+ width?: number | `${number}%`;
75
+ /** Design-token modes for theming. */
76
+ modes?: Modes;
77
+ /** Style override for the outer container. */
78
+ style?: StyleProp<ViewStyle>;
79
+ /** Accessibility label for screen readers. */
80
+ accessibilityLabel?: string;
81
+ /**
82
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
83
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
84
+ * lines as it needs even when horizontal space is tight.
85
+ */
86
+ disableTruncation?: boolean;
87
+ }
88
+ /**
89
+ * Slider — Figma node 5373:446 ("Slider").
90
+ *
91
+ * A horizontal, single-thumb slider driven entirely by design tokens. It maps a
92
+ * numeric range (`minValue`–`maxValue`) onto a track with a filled indicator, a
93
+ * draggable handle, a value bubble pinned above the handle, and optional min/max
94
+ * labels beneath the track. Built on `PanResponder` so the one code path works
95
+ * on iOS, Android and the web.
96
+ *
97
+ * The design only labels the range bounds, but a slider's purpose is to bind a
98
+ * value — so the live value is surfaced through the bubble (formatted via
99
+ * `formatOptions` / `formatValue`) and reported through `onChange` /
100
+ * `onChangeEnd`. Supports controlled and uncontrolled usage, web keyboard
101
+ * control, and an imperative {@link SliderHandle} `ref` for on-demand reads.
102
+ */
103
+ declare const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<SliderHandle>>;
104
+ export default Slider;
105
+ //# sourceMappingURL=Slider.d.ts.map
@@ -0,0 +1,81 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewProps, type ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
4
+ export type StackLayoutDirection = 'vertical' | 'horizontal';
5
+ export type StackProps = ViewProps & {
6
+ /**
7
+ * Content laid out inside the stack. `modes` are cascaded to every child via
8
+ * {@link cloneChildrenWithModes}.
9
+ */
10
+ children?: React.ReactNode;
11
+ /**
12
+ * Main-axis direction for stack children. Matches the Figma Slot variant:
13
+ * - `vertical` (default): stacks children in a column
14
+ * - `horizontal`: arranges children in a row
15
+ */
16
+ layoutDirection?: StackLayoutDirection;
17
+ /**
18
+ * Alignment along the cross axis.
19
+ * Defaults to `stretch` for vertical and `flex-start` for horizontal.
20
+ */
21
+ alignCrossAxis?: ViewStyle['alignItems'];
22
+ /**
23
+ * Distribution along the main axis (maps to `justifyContent`).
24
+ */
25
+ justifyMainAxis?: ViewStyle['justifyContent'];
26
+ /**
27
+ * Only meaningful when `layoutDirection` is `horizontal`.
28
+ *
29
+ * When true, forces every child to share the height of the tallest child. The
30
+ * height is enforced by the stack itself (`alignItems: 'stretch'` plus an
31
+ * injected `alignSelf: 'stretch'` on each child), so children can no longer
32
+ * opt out via their own `alignSelf`. Children with an explicit `height` keep
33
+ * that height, since a fixed cross-axis dimension defeats stretch in Yoga.
34
+ *
35
+ * Overrides `alignCrossAxis` when it applies.
36
+ */
37
+ equalHeight?: boolean;
38
+ /**
39
+ * Only meaningful when `layoutDirection` is `vertical`.
40
+ *
41
+ * When true, forces every child to fill the full width of the stack. The width
42
+ * is enforced by the stack itself (`alignItems: 'stretch'` plus an injected
43
+ * `alignSelf: 'stretch'` on each child), so children can no longer opt out via
44
+ * their own `alignSelf`. Children with an explicit `width` keep that width,
45
+ * since a fixed cross-axis dimension defeats stretch in Yoga.
46
+ *
47
+ * Overrides `alignCrossAxis` when it applies.
48
+ */
49
+ fillWidth?: boolean;
50
+ /**
51
+ * Mode configuration passed to the token resolver and cascaded to children.
52
+ */
53
+ modes?: Modes;
54
+ style?: StyleProp<ViewStyle>;
55
+ };
56
+ /**
57
+ * Stack — a token-driven layout container for grouped content.
58
+ *
59
+ * Use `Stack` instead of a raw `View` when you need a vertical or horizontal
60
+ * stack with design-token gap spacing and automatic `modes` propagation to
61
+ * children. Typical usage is nesting a column of actions inside a
62
+ * direction-locked parent such as `ActionFooter`:
63
+ *
64
+ * @example
65
+ * ```tsx
66
+ * <ActionFooter modes={modes}>
67
+ * <Stack layoutDirection="vertical" modes={modes}>
68
+ * <Button label="Continue" modes={primaryModes} />
69
+ * <Disclaimer disclaimer="Terms apply." modes={modes} />
70
+ * </Stack>
71
+ * </ActionFooter>
72
+ * ```
73
+ *
74
+ * @remarks
75
+ * Previously named `Slot`. The `Slot` export is preserved as a deprecated alias
76
+ * for backward compatibility.
77
+ */
78
+ declare function Stack({ children, layoutDirection, alignCrossAxis, justifyMainAxis, equalHeight, fillWidth, modes: propModes, style, ...rest }: StackProps): import("react/jsx-runtime").JSX.Element;
79
+ declare const _default: React.MemoExoticComponent<typeof Stack>;
80
+ export default _default;
81
+ //# sourceMappingURL=Stack.d.ts.map
@@ -45,6 +45,12 @@ export type SummaryTileProps = {
45
45
  descriptionStyle?: StyleProp<TextStyle>;
46
46
  /** Accessibility label override (defaults to `title`). */
47
47
  accessibilityLabel?: string;
48
+ /**
49
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
50
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
51
+ * lines as it needs even when horizontal space is tight.
52
+ */
53
+ disableTruncation?: boolean;
48
54
  };
49
55
  /**
50
56
  * SummaryTile composes a title (with an inline `StrengthIndicator`), a
@@ -56,6 +62,6 @@ export type SummaryTileProps = {
56
62
  * @component
57
63
  * @param {SummaryTileProps} props
58
64
  */
59
- declare function SummaryTile({ title, description, confidence, chevron, children, onPress, modes, style, titleStyle, descriptionStyle, accessibilityLabel, }: SummaryTileProps): import("react/jsx-runtime").JSX.Element;
65
+ declare function SummaryTile({ title, description, confidence, chevron, children, onPress, modes, style, titleStyle, descriptionStyle, accessibilityLabel, disableTruncation, }: SummaryTileProps): import("react/jsx-runtime").JSX.Element;
60
66
  export default SummaryTile;
61
67
  //# sourceMappingURL=SummaryTile.d.ts.map
@@ -0,0 +1,139 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ import type { Modes } from '../../design-tokens';
4
+ export type TableCellAlign = 'left' | 'center' | 'right';
5
+ export type TableCellProps = {
6
+ children?: React.ReactNode;
7
+ /** Horizontal alignment of the cell content. @default 'left' */
8
+ align?: TableCellAlign;
9
+ /** Fixed cell width. Omit to let the cell flex. */
10
+ width?: number;
11
+ /** Flex-grow weight when `width` is not set. @default 1 */
12
+ flex?: number;
13
+ /** Drop the right divider (used for the last column). @default false */
14
+ isLastColumn?: boolean;
15
+ /** Drop the bottom divider (used for the last row). @default false */
16
+ isLastRow?: boolean;
17
+ modes?: Modes;
18
+ style?: StyleProp<ViewStyle>;
19
+ };
20
+ /**
21
+ * A single body cell. White background with a bottom + right divider, matching
22
+ * the Figma `table-cell` sub-component. String/number children are rendered
23
+ * with the token label style; any element is rendered as-is.
24
+ */
25
+ declare function TableCell({ children, align, width, flex, isLastColumn, isLastRow, modes, style, }: TableCellProps): import("react/jsx-runtime").JSX.Element;
26
+ export type TableHeaderCellProps = {
27
+ children?: React.ReactNode;
28
+ /** Horizontal alignment of the header content. @default 'left' */
29
+ align?: TableCellAlign;
30
+ /** Fixed cell width. Omit to let the cell flex. */
31
+ width?: number;
32
+ /** Flex-grow weight when `width` is not set. @default 1 */
33
+ flex?: number;
34
+ modes?: Modes;
35
+ style?: StyleProp<ViewStyle>;
36
+ };
37
+ /**
38
+ * A single header cell. Muted background with the bold token label style,
39
+ * matching the Figma `table header wrap` sub-component. Header cells carry no
40
+ * dividers; the header row draws a single bottom divider beneath them.
41
+ */
42
+ declare function TableHeaderCell({ children, align, width, flex, modes, style, }: TableHeaderCellProps): import("react/jsx-runtime").JSX.Element;
43
+ export type TableHeaderProps = {
44
+ children?: React.ReactNode;
45
+ modes?: Modes;
46
+ style?: StyleProp<ViewStyle>;
47
+ };
48
+ declare function TableHeader({ children, modes, style }: TableHeaderProps): import("react/jsx-runtime").JSX.Element;
49
+ export type TableRowProps = {
50
+ children?: React.ReactNode;
51
+ /** When provided, the whole row becomes pressable. */
52
+ onPress?: () => void;
53
+ modes?: Modes;
54
+ style?: StyleProp<ViewStyle>;
55
+ };
56
+ declare function TableRow({ children, onPress, modes, style }: TableRowProps): import("react/jsx-runtime").JSX.Element;
57
+ export type TableBodyProps = {
58
+ children?: React.ReactNode;
59
+ modes?: Modes;
60
+ style?: StyleProp<ViewStyle>;
61
+ };
62
+ declare function TableBody({ children, modes, style }: TableBodyProps): import("react/jsx-runtime").JSX.Element;
63
+ /**
64
+ * Column definition for the data-driven `Table` API. `T` is the shape of one
65
+ * row record.
66
+ */
67
+ export type TableColumn<T> = {
68
+ /** Stable key; also used to read `row[key]` when no `render` is provided. */
69
+ key: string;
70
+ /** Header label. Defaults to `key`. */
71
+ header?: React.ReactNode;
72
+ /** Cell + header horizontal alignment. @default 'left' */
73
+ align?: TableCellAlign;
74
+ /** Header-only alignment override. Defaults to `align`. */
75
+ headerAlign?: TableCellAlign;
76
+ /** Fixed column width. Omit to let the column flex. */
77
+ width?: number;
78
+ /** Flex-grow weight when `width` is not set. @default 1 */
79
+ flex?: number;
80
+ /** Custom cell renderer. Falls back to `row[key]` as text. */
81
+ render?: (row: T, rowIndex: number) => React.ReactNode;
82
+ };
83
+ export type TableProps<T = Record<string, unknown>> = {
84
+ /** Column definitions for the data-driven API. */
85
+ columns?: TableColumn<T>[];
86
+ /** Row records, one per table row. */
87
+ data?: T[];
88
+ /**
89
+ * Composition children (`Table.Header`, `Table.Body`, `Table.Row`,
90
+ * `Table.Cell`, `Table.HeaderCell`). When provided, `columns`/`data` are
91
+ * ignored and the children are rendered as-is.
92
+ */
93
+ children?: React.ReactNode;
94
+ /** Show the header row in the data-driven API. @default true */
95
+ showHeader?: boolean;
96
+ /** Resolve a stable key per row. Defaults to the row index. */
97
+ getRowKey?: (row: T, index: number) => React.Key;
98
+ /** Called when a row is pressed (data-driven API). Makes rows pressable. */
99
+ onRowPress?: (row: T, index: number) => void;
100
+ /**
101
+ * Wrap the table in a horizontal `ScrollView`. Use with fixed-width columns
102
+ * for wide tables that exceed the viewport on mobile. @default false
103
+ */
104
+ scrollable?: boolean;
105
+ /** Accessibility label for the table container. */
106
+ accessibilityLabel?: string;
107
+ /** Design token modes for theming (e.g. `{ "Color Mode": "Light" }`). */
108
+ modes?: Modes;
109
+ /** Override the outer container style. */
110
+ style?: StyleProp<ViewStyle>;
111
+ };
112
+ /**
113
+ * Table renders structured rows and columns. It supports two complementary
114
+ * usage styles that share the same token-driven styling:
115
+ *
116
+ * 1. **Data-driven** (recommended): pass `columns` + `data`. The header and body
117
+ * are built for you, columns stay aligned, and per-column `align`/`width`/
118
+ * `flex`/`render` give full control.
119
+ *
120
+ * 2. **Composition**: pass `Table.Header` / `Table.Body` / `Table.Row` /
121
+ * `Table.Cell` / `Table.HeaderCell` as children for bespoke layouts. These
122
+ * sub-components are also exported standalone.
123
+ *
124
+ * Implementation of Figma node `5732:3710` (`Table`) with sub-components
125
+ * `603:23` (`table-cell`) and `603:21` (`table header wrap`).
126
+ *
127
+ * @component
128
+ */
129
+ declare function Table<T = Record<string, unknown>>({ columns, data, children, showHeader, getRowKey, onRowPress, scrollable, accessibilityLabel, modes, style, }: TableProps<T>): import("react/jsx-runtime").JSX.Element;
130
+ declare namespace Table {
131
+ var Header: typeof TableHeader;
132
+ var HeaderCell: typeof TableHeaderCell;
133
+ var Body: typeof TableBody;
134
+ var Row: typeof TableRow;
135
+ var Cell: typeof TableCell;
136
+ }
137
+ export { TableHeader, TableHeaderCell, TableBody, TableRow, TableCell };
138
+ export default Table;
139
+ //# sourceMappingURL=Table.d.ts.map
@@ -21,6 +21,12 @@ export type TextProps = {
21
21
  style?: StyleProp<TextStyle>;
22
22
  /** Number of lines to limit the text to. */
23
23
  numberOfLines?: number;
24
+ /**
25
+ * When `true`, disables text truncation entirely: the trailing ellipsis (`…`)
26
+ * is never shown and any `numberOfLines` clamp is ignored, so the text wraps
27
+ * to as many lines as it needs even when horizontal space is tight.
28
+ */
29
+ disableTruncation?: boolean;
24
30
  /**
25
31
  * Explicit per-instance loading override. When `true`, this `Text` renders
26
32
  * a skeleton placeholder regardless of any surrounding `<SkeletonGroup>`.
@@ -41,6 +47,6 @@ export type TextProps = {
41
47
  */
42
48
  skeletonLines?: number;
43
49
  };
44
- declare function Text({ text, children, textAlign, modes, style, numberOfLines, loading, skeletonWidth, skeletonLines, }: TextProps): import("react/jsx-runtime").JSX.Element;
50
+ declare function Text({ text, children, textAlign, modes, style, numberOfLines, disableTruncation, loading, skeletonWidth, skeletonLines, }: TextProps): import("react/jsx-runtime").JSX.Element;
45
51
  export default Text;
46
52
  //# sourceMappingURL=Text.d.ts.map