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,265 @@
1
+ "use strict";
2
+
3
+ import React, { useId } from 'react';
4
+ import { View, StyleSheet, Platform, UIManager } from 'react-native';
5
+ import { BlurView } from '@react-native-community/blur';
6
+ import MaskedView from '@react-native-masked-view/masked-view';
7
+ import Svg, { Defs, LinearGradient, Stop, Rect } from 'react-native-svg';
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const DEFAULT_FALLBACK_DARK = '#1414174a';
10
+ const DEFAULT_FALLBACK_LIGHT = '#ffffff66';
11
+
12
+ // The native view-manager name registered by `@react-native-community/blur`
13
+ // (`AndroidBlurView` on Android, `BlurView` on iOS).
14
+ const NATIVE_BLUR_NAME = Platform.OS === 'android' ? 'AndroidBlurView' : 'BlurView';
15
+
16
+ /**
17
+ * Alpha stop on a layer's vertical reveal mask. `offset` is the vertical
18
+ * position (0 = top of the surface, 1 = bottom); `opacity` is the mask alpha
19
+ * there (0 = layer hidden / fully clear, 1 = layer fully applied).
20
+ *
21
+ * Using several stops (rather than a single linear 0 → 1 ramp) lets each layer
22
+ * EASE in, so the blur swells smoothly toward the bottom instead of appearing
23
+ * along a hard horizontal seam. That soft S-curve is what gives the surface its
24
+ * "glass" feel rather than a flat translucent panel.
25
+ */
26
+
27
+ /**
28
+ * A single layer of the progressive ramp.
29
+ * - `stops` describe how this layer is revealed from top to bottom.
30
+ * - `amount` is this layer's share (0–1) of the max `blurAmount`.
31
+ *
32
+ * We stack just TWO layers on both platforms: a faint base blur that covers
33
+ * most of the footer and a slightly stronger accent concentrated near the
34
+ * bottom. Keeping the overlap shallow avoids compounding the dark tint of
35
+ * multiple `BlurView`s (which is what made the earlier 3-layer ramp read as a
36
+ * heavy block), while still giving a genuine variable-radius result — the blur
37
+ * radius grows toward the bottom where the two layers overlap.
38
+ */
39
+
40
+ // Base reveal: a faint trace of blur begins near the very top and grows
41
+ // steadily downward, so the upper half still carries visible glass rather than
42
+ // snapping clear. Also reused for the no-native-blur fallback scrim.
43
+ const BASE_MASK_STOPS = [{
44
+ offset: 0.0,
45
+ opacity: 0
46
+ }, {
47
+ offset: 0.08,
48
+ opacity: 0.12
49
+ }, {
50
+ offset: 0.35,
51
+ opacity: 0.4
52
+ }, {
53
+ offset: 0.65,
54
+ opacity: 0.8
55
+ }, {
56
+ offset: 1.0,
57
+ opacity: 1
58
+ }];
59
+ const PROGRESSIVE_LAYERS = [{
60
+ amount: 0.65,
61
+ stops: BASE_MASK_STOPS
62
+ },
63
+ // Accent: the strongest blur, gathering over the lower portion for depth.
64
+ {
65
+ amount: 1.0,
66
+ stops: [{
67
+ offset: 0.0,
68
+ opacity: 0
69
+ }, {
70
+ offset: 0.3,
71
+ opacity: 0.15
72
+ }, {
73
+ offset: 0.65,
74
+ opacity: 0.65
75
+ }, {
76
+ offset: 1.0,
77
+ opacity: 1
78
+ }]
79
+ }];
80
+
81
+ /**
82
+ * Probe ONCE whether the native blur view is actually present in this binary.
83
+ *
84
+ * `@react-native-community/blur` is a peer dependency so its JS always imports,
85
+ * but on a build where the native module was never linked (e.g. `pod install`
86
+ * wasn't run on iOS) rendering `<BlurView>` shows React Native's red
87
+ * "Unimplemented component <BlurView>" placeholder. Detecting availability up
88
+ * front lets us fall back to a tinted scrim instead of crashing the surface.
89
+ *
90
+ * - New architecture (bridgeless): `getViewManagerConfig` raises a soft error,
91
+ * so we MUST use `hasViewManagerConfig` -> Fabric component registry.
92
+ * - Old architecture (Paper): `getViewManagerConfig` returns null when the
93
+ * view manager isn't registered.
94
+ */
95
+ const NATIVE_BLUR_SUPPORTED = (() => {
96
+ try {
97
+ const um = UIManager;
98
+ if (typeof um.hasViewManagerConfig === 'function') {
99
+ return um.hasViewManagerConfig(NATIVE_BLUR_NAME) === true;
100
+ }
101
+ if (typeof um.getViewManagerConfig === 'function') {
102
+ return um.getViewManagerConfig(NATIVE_BLUR_NAME) != null;
103
+ }
104
+ } catch {
105
+ // Any probe failure -> treat blur as unavailable and use the fallback.
106
+ }
107
+ return false;
108
+ })();
109
+
110
+ /**
111
+ * Vertical alpha-gradient mask drawn with `react-native-svg`. `MaskedView`
112
+ * reveals its child in proportion to this mask's alpha, so feeding it an eased
113
+ * multi-stop gradient makes the layer's blur swell in smoothly from top to
114
+ * bottom instead of along a hard seam.
115
+ */
116
+ function GradientMask({
117
+ id,
118
+ stops
119
+ }) {
120
+ return /*#__PURE__*/_jsxs(Svg, {
121
+ width: "100%",
122
+ height: "100%",
123
+ children: [/*#__PURE__*/_jsx(Defs, {
124
+ children: /*#__PURE__*/_jsx(LinearGradient, {
125
+ id: id,
126
+ x1: "0",
127
+ y1: "0",
128
+ x2: "0",
129
+ y2: "1",
130
+ children: stops.map((s, i) => /*#__PURE__*/_jsx(Stop, {
131
+ offset: s.offset,
132
+ stopColor: "#000000",
133
+ stopOpacity: s.opacity
134
+ }, i))
135
+ })
136
+ }), /*#__PURE__*/_jsx(Rect, {
137
+ x: "0",
138
+ y: "0",
139
+ width: "100%",
140
+ height: "100%",
141
+ fill: `url(#${id})`
142
+ })]
143
+ });
144
+ }
145
+
146
+ /**
147
+ * Shared glass / frosted surface for native (iOS + Android).
148
+ *
149
+ * This is the single source of truth for the glass effect used by `MediaCard`,
150
+ * `ProductMerchandisingCard`, `Badge`, and any future consumer. It supersedes
151
+ * the per-component `GlassFill` copies that previously drifted apart.
152
+ *
153
+ * Why this lives in its own platform-split file:
154
+ * - `@react-native-community/blur` is a native-only module; importing it on
155
+ * web throws because it references native components not registered there.
156
+ * Metro's platform-extension resolution picks `GlassFill.tsx` for native
157
+ * and `GlassFill.web.tsx` for web, keeping the web bundle native-free.
158
+ * - Centralizes the `intensity` (0–100) -> `blurAmount` (0–32) mapping so the
159
+ * Figma `blur/minimal` token semantics survive across platforms.
160
+ *
161
+ * On iOS (with the pod installed) this is a real `UIVisualEffectView` (true
162
+ * OS-level live blur). On Android it uses the community blur view. When the
163
+ * native module isn't linked in the running binary, the component degrades to
164
+ * a translucent tinted scrim (`reducedTransparencyFallbackColor` / fallback
165
+ * color) instead of rendering the "Unimplemented component" placeholder.
166
+ *
167
+ * NOTE: the consumer MUST clip this with `overflow: 'hidden'` on a rounded
168
+ * parent — the native blur view does not honor `borderRadius` itself.
169
+ */
170
+ function GlassFill({
171
+ tint = 'dark',
172
+ intensity = 50,
173
+ overlayColor,
174
+ progressive = false,
175
+ androidTintWash = true,
176
+ style
177
+ }) {
178
+ const rawId = useId();
179
+ const maskId = `glass-mask-${rawId.replace(/[^a-zA-Z0-9_-]/g, '')}`;
180
+ const blurType = tint === 'light' ? 'light' : 'dark';
181
+ const uniformBlurAmount = Math.max(0, Math.min(32, Math.round(intensity * 0.32)));
182
+ const fallbackColor = overlayColor ?? (tint === 'light' ? DEFAULT_FALLBACK_LIGHT : DEFAULT_FALLBACK_DARK);
183
+
184
+ // ----- Progressive (variable) blur -------------------------------------
185
+ if (progressive) {
186
+ // Peak blur radius (at the bottom). Full strength so the frosted glass
187
+ // is clearly engaged where the layers overlap, while the eased masks
188
+ // keep the top of the surface fully clear.
189
+ const peakBlur = Math.max(1, Math.min(32, Math.round(intensity * 0.32)));
190
+
191
+ // Native blur not linked -> tint eases from transparent (top) to a soft
192
+ // fallback color (bottom) so the surface still reads as gentle glass.
193
+ if (!NATIVE_BLUR_SUPPORTED) {
194
+ return /*#__PURE__*/_jsx(View, {
195
+ style: [StyleSheet.absoluteFill, style],
196
+ pointerEvents: "none",
197
+ children: /*#__PURE__*/_jsx(MaskedView, {
198
+ style: StyleSheet.absoluteFill,
199
+ maskElement: /*#__PURE__*/_jsx(GradientMask, {
200
+ id: `${maskId}-fb`,
201
+ stops: BASE_MASK_STOPS
202
+ }),
203
+ children: /*#__PURE__*/_jsx(View, {
204
+ style: [StyleSheet.absoluteFill, {
205
+ backgroundColor: fallbackColor
206
+ }]
207
+ })
208
+ })
209
+ });
210
+ }
211
+ return /*#__PURE__*/_jsx(View, {
212
+ style: [StyleSheet.absoluteFill, style],
213
+ pointerEvents: "none",
214
+ children: PROGRESSIVE_LAYERS.map((layer, i) => {
215
+ const amount = Math.max(1, Math.round(peakBlur * layer.amount));
216
+ return /*#__PURE__*/_jsx(MaskedView, {
217
+ style: StyleSheet.absoluteFill,
218
+ maskElement: /*#__PURE__*/_jsx(GradientMask, {
219
+ id: `${maskId}-${i}`,
220
+ stops: layer.stops
221
+ }),
222
+ children: /*#__PURE__*/_jsx(BlurView, {
223
+ style: StyleSheet.absoluteFill,
224
+ blurType: blurType,
225
+ blurAmount: amount,
226
+ reducedTransparencyFallbackColor: fallbackColor
227
+ })
228
+ }, i);
229
+ })
230
+ });
231
+ }
232
+
233
+ // ----- Uniform blur (default) ------------------------------------------
234
+ // Native blur not linked in this build -> render a translucent tinted scrim
235
+ // so the surface still reads as frosted glass and never shows RN's
236
+ // "Unimplemented component <BlurView>" box.
237
+ if (!NATIVE_BLUR_SUPPORTED) {
238
+ return /*#__PURE__*/_jsx(View, {
239
+ style: [StyleSheet.absoluteFill, {
240
+ backgroundColor: fallbackColor
241
+ }, style],
242
+ pointerEvents: "none"
243
+ });
244
+ }
245
+ return /*#__PURE__*/_jsxs(View, {
246
+ style: [StyleSheet.absoluteFill, style],
247
+ pointerEvents: "none",
248
+ children: [/*#__PURE__*/_jsx(BlurView, {
249
+ style: StyleSheet.absoluteFill,
250
+ blurType: blurType,
251
+ blurAmount: uniformBlurAmount,
252
+ reducedTransparencyFallbackColor: fallbackColor
253
+ }), overlayColor != null ? /*#__PURE__*/_jsx(View, {
254
+ style: [StyleSheet.absoluteFill, {
255
+ backgroundColor: overlayColor
256
+ }]
257
+ }) : null, Platform.OS === 'android' && androidTintWash ? /*#__PURE__*/_jsx(View, {
258
+ style: [StyleSheet.absoluteFill, {
259
+ backgroundColor: 'rgba(255,255,255,0.03)',
260
+ opacity: 0.6
261
+ }]
262
+ }) : null]
263
+ });
264
+ }
265
+ export default GlassFill;
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ const DEFAULT_FALLBACK_DARK = '#1414174a';
7
+ const DEFAULT_FALLBACK_LIGHT = '#ffffff66';
8
+ const DEFAULT_WEB_BLUR_SCALE = 0.32;
9
+ const DEFAULT_WEB_BLUR_MAX_PX = 32;
10
+
11
+ // Mirror of the native ramp (see GlassFill.tsx). Each layer is a `mask-image`
12
+ // gradient whose alpha stops (0 = top, 1 = bottom) ease the blur in; `amount`
13
+ // is the layer's share of the max blur. Two gently-overlapping layers (faint
14
+ // base + bottom accent) keep the surface subtle and glass-like rather than a
15
+ // heavy frosted block.
16
+
17
+ const PROGRESSIVE_LAYERS = [{
18
+ amount: 0.65,
19
+ stops: [{
20
+ offset: 0.0,
21
+ opacity: 0
22
+ }, {
23
+ offset: 0.08,
24
+ opacity: 0.12
25
+ }, {
26
+ offset: 0.35,
27
+ opacity: 0.4
28
+ }, {
29
+ offset: 0.65,
30
+ opacity: 0.8
31
+ }, {
32
+ offset: 1.0,
33
+ opacity: 1
34
+ }]
35
+ }, {
36
+ amount: 1.0,
37
+ stops: [{
38
+ offset: 0.0,
39
+ opacity: 0
40
+ }, {
41
+ offset: 0.3,
42
+ opacity: 0.15
43
+ }, {
44
+ offset: 0.65,
45
+ opacity: 0.65
46
+ }, {
47
+ offset: 1.0,
48
+ opacity: 1
49
+ }]
50
+ }];
51
+ function toGradient(stops) {
52
+ const parts = stops.map(s => `rgba(0,0,0,${s.opacity}) ${Math.round(s.offset * 100)}%`).join(', ');
53
+ return `linear-gradient(to bottom, ${parts})`;
54
+ }
55
+
56
+ /**
57
+ * Web counterpart of the shared `GlassFill`.
58
+ *
59
+ * `@react-native-community/blur` ships no web implementation, so on web we
60
+ * render a translucent `View` with `backdrop-filter: blur()`. Native bundles
61
+ * pick up `GlassFill.tsx` instead via Metro's platform resolver; the web
62
+ * bundle picks up this file, so the native-only module is never imported here.
63
+ */
64
+ function GlassFill({
65
+ tint = 'dark',
66
+ intensity = 50,
67
+ overlayColor,
68
+ progressive = false,
69
+ webBlurScale = DEFAULT_WEB_BLUR_SCALE,
70
+ webBlurMaxPx = DEFAULT_WEB_BLUR_MAX_PX,
71
+ style
72
+ }) {
73
+ // intensity 0-100 -> ~0-maxPx CSS blur, kept in parity with the native scale.
74
+ const blurPx = Math.max(0, Math.min(webBlurMaxPx, Math.round(intensity * webBlurScale)));
75
+ const tintColor = overlayColor ?? (tint === 'light' ? DEFAULT_FALLBACK_LIGHT : DEFAULT_FALLBACK_DARK);
76
+ if (progressive) {
77
+ // Full peak blur (parity with native) so the frosted glass is clearly
78
+ // engaged at the bottom; the eased masks keep the top fully clear.
79
+ const peakPx = Math.max(1, Math.min(webBlurMaxPx, Math.round(intensity * webBlurScale)));
80
+ return /*#__PURE__*/_jsx(View, {
81
+ style: [StyleSheet.absoluteFill, style],
82
+ pointerEvents: "none",
83
+ children: PROGRESSIVE_LAYERS.map((layer, i) => {
84
+ const px = Math.max(1, Math.round(peakPx * layer.amount));
85
+ const gradient = toGradient(layer.stops);
86
+ // web-only CSS (backdrop-filter / mask-image); cast because
87
+ // these keys aren't in RN's ViewStyle.
88
+ const webStyle = {
89
+ backdropFilter: `blur(${px}px)`,
90
+ WebkitBackdropFilter: `blur(${px}px)`,
91
+ maskImage: gradient,
92
+ WebkitMaskImage: gradient
93
+ };
94
+ return /*#__PURE__*/_jsx(View, {
95
+ style: [StyleSheet.absoluteFill, webStyle],
96
+ pointerEvents: "none"
97
+ }, i);
98
+ })
99
+ });
100
+ }
101
+ return /*#__PURE__*/_jsx(View, {
102
+ style: [StyleSheet.absoluteFill, {
103
+ backgroundColor: tintColor
104
+ },
105
+ // backdrop-filter is web-only CSS; ignored by RN on native
106
+ // (we never bundle this file there anyway).
107
+ // @ts-ignore web-only style
108
+ {
109
+ backdropFilter: `blur(${blurPx}px)`,
110
+ WebkitBackdropFilter: `blur(${blurPx}px)`
111
+ }, style],
112
+ pointerEvents: "none"
113
+ });
114
+ }
115
+ export default GlassFill;
@@ -72,6 +72,81 @@ export function cloneChildrenWithModes(children, modes, forcedModes) {
72
72
  return React.Children.toArray(result);
73
73
  }
74
74
 
75
+ /**
76
+ * Merges a style onto each direct (top-level) child element, with the injected
77
+ * style taking precedence over the child's own style.
78
+ *
79
+ * Used by the Stack family to *enforce* cross-axis stretching from the container
80
+ * itself: a child can set its own `alignSelf` (which, per the flexbox spec,
81
+ * overrides the parent's `alignItems`), so to guarantee equal heights / full
82
+ * width regardless of what individual children declare, we append
83
+ * `{ alignSelf: 'stretch' }` to every direct child.
84
+ *
85
+ * @remarks
86
+ * - Only top-level children are touched. Grandchildren are intentionally left
87
+ * alone — we never want to leak layout styles deeper into the tree.
88
+ * - Non-element children (strings, numbers) are passed through untouched.
89
+ * - This relies on the child forwarding `style` to its outer/root view. Built-in
90
+ * RN primitives and components that spread `style` onto their root honour it;
91
+ * a child that fully ignores `style` cannot be forced (this is a hard React
92
+ * Native limitation, not something this helper can work around).
93
+ * - Per Yoga, stretch has no effect on an axis where the child has a *fixed*
94
+ * dimension (e.g. an explicit `height` for a row). Such children opt out by
95
+ * design; this helper does not strip explicit dimensions.
96
+ */
97
+ export function injectChildStyle(children, style) {
98
+ return React.Children.map(children, child => {
99
+ if (! /*#__PURE__*/React.isValidElement(child)) {
100
+ return child;
101
+ }
102
+ const existingStyle = child.props?.style;
103
+ return /*#__PURE__*/React.cloneElement(child, {
104
+ style: existingStyle != null ? [existingStyle, style] : style
105
+ });
106
+ });
107
+ }
108
+
109
+ /**
110
+ * Combines several refs (object refs and/or callback refs) into a single
111
+ * callback ref. Useful when a component needs to keep its own internal ref to a
112
+ * node while still honouring a ref forwarded by the consumer.
113
+ *
114
+ * @example
115
+ * const inputRef = useRef<RNTextInput>(null)
116
+ * <RNTextInput ref={mergeRefs(inputRef, forwardedRef)} />
117
+ */
118
+ export function mergeRefs(...refs) {
119
+ return value => {
120
+ refs.forEach(ref => {
121
+ if (typeof ref === 'function') {
122
+ ref(value);
123
+ } else if (ref != null) {
124
+ ref.current = value;
125
+ }
126
+ });
127
+ };
128
+ }
129
+ /**
130
+ * Resolves the `numberOfLines` / `ellipsizeMode` pair for a `<Text>` based on a
131
+ * `disableTruncation` flag.
132
+ *
133
+ * When `disableTruncation` is `true`, both values are returned as `undefined`
134
+ * so the text wraps to as many lines as it needs and never shows the trailing
135
+ * ellipsis. Otherwise the provided values are passed through unchanged.
136
+ */
137
+ export function resolveTruncation(disableTruncation, numberOfLines, ellipsizeMode) {
138
+ if (disableTruncation) {
139
+ return {
140
+ numberOfLines: undefined,
141
+ ellipsizeMode: undefined
142
+ };
143
+ }
144
+ return {
145
+ numberOfLines,
146
+ ellipsizeMode
147
+ };
148
+ }
149
+
75
150
  /**
76
151
  * Flattens React children, extracting them from Fragments.
77
152
  * Useful for Group components that need to process individual items (e.g., for layout or styling)
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ import { useEffect, useRef } from 'react';
3
4
  import { Platform } from 'react-native';
4
5
  /**
5
6
  * Web-specific props that should NOT be passed to React Native's Pressable component.
@@ -191,6 +192,63 @@ export function usePressableWebSupport({
191
192
  };
192
193
  }
193
194
 
195
+ /**
196
+ * Detects pointer presses (mouse / touch) that land OUTSIDE the node held by
197
+ * `containerRef` and invokes `onOutsidePress`.
198
+ *
199
+ * Why this exists:
200
+ * On web, React Native pressables (`Pressable`, `Button`, links, etc.) do not
201
+ * always claim DOM focus the way a native `<button>`/`<input>` does. As a
202
+ * result, tapping an *interactive* element outside a focused `<input>` may
203
+ * never trigger the input's native `blur` event, leaving a field stuck in its
204
+ * "Active" visual state. Listening for document-level pointer-down in the
205
+ * capture phase lets a component force a blur (or close a popover, etc.)
206
+ * regardless of whether the outside target takes focus.
207
+ *
208
+ * Behavior & safety:
209
+ * - **Web only.** On native (or when `document` is unavailable) this is a
210
+ * no-op, so it is safe to call unconditionally.
211
+ * - Listeners are attached only while `enabled` is `true`, and are removed on
212
+ * cleanup / when disabled — there is no standing global listener.
213
+ * - Uses the **capture** phase so it runs before element-level handlers, and
214
+ * listens to both `mousedown` and `touchstart` for parity across devices.
215
+ * - The latest `onOutsidePress` is read through a ref, so passing a fresh
216
+ * inline closure every render does NOT re-subscribe the listener.
217
+ *
218
+ * @param containerRef - Ref to the root host node to treat as "inside".
219
+ * @param onOutsidePress - Called when a pointer press occurs outside the node.
220
+ * @param enabled - When `false`, no listener is attached. Defaults to `true`.
221
+ *
222
+ * @example
223
+ * ```tsx
224
+ * const rootRef = useRef<View>(null)
225
+ * const inputRef = useRef<RNTextInput>(null)
226
+ * useWebOutsidePress(rootRef, () => inputRef.current?.blur(), isFocused)
227
+ * ```
228
+ */
229
+ export function useWebOutsidePress(containerRef, onOutsidePress, enabled = true) {
230
+ const callbackRef = useRef(onOutsidePress);
231
+ callbackRef.current = onOutsidePress;
232
+ useEffect(() => {
233
+ if (Platform.OS !== 'web' || typeof document === 'undefined' || !enabled) {
234
+ return;
235
+ }
236
+ const handlePointerDown = event => {
237
+ const node = containerRef.current;
238
+ const target = event.target;
239
+ if (node?.contains && !node.contains(target)) {
240
+ callbackRef.current();
241
+ }
242
+ };
243
+ document.addEventListener('mousedown', handlePointerDown, true);
244
+ document.addEventListener('touchstart', handlePointerDown, true);
245
+ return () => {
246
+ document.removeEventListener('mousedown', handlePointerDown, true);
247
+ document.removeEventListener('touchstart', handlePointerDown, true);
248
+ };
249
+ }, [containerRef, enabled]);
250
+ }
251
+
194
252
  /**
195
253
  * Type guard to check if running on web platform
196
254
  */
@@ -33,6 +33,12 @@ export type AccordionProps = {
33
33
  accessibilityState?: AccessibilityState;
34
34
  /** Web-specific accessibility props (only used on web platform) */
35
35
  webAccessibilityProps?: WebAccessibilityProps;
36
+ /**
37
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
38
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
39
+ * lines as it needs even when horizontal space is tight.
40
+ */
41
+ disableTruncation?: boolean;
36
42
  } & React.ComponentProps<typeof View>;
37
43
  /**
38
44
  * Accordion component that mirrors the Figma "Accordion" component.
@@ -48,6 +54,6 @@ export type AccordionProps = {
48
54
  *
49
55
  * @component
50
56
  */
51
- declare function Accordion({ title, contained, defaultExpanded, expanded: controlledExpanded, onExpandedChange, disabled, children, modes, style, accessibilityLabel, accessibilityHint, accessibilityState, webAccessibilityProps, ...rest }: AccordionProps): import("react/jsx-runtime").JSX.Element;
57
+ declare function Accordion({ title, contained, defaultExpanded, expanded: controlledExpanded, onExpandedChange, disabled, children, modes, style, accessibilityLabel, accessibilityHint, accessibilityState, webAccessibilityProps, disableTruncation, ...rest }: AccordionProps): import("react/jsx-runtime").JSX.Element;
52
58
  export default Accordion;
53
59
  //# sourceMappingURL=Accordion.d.ts.map
@@ -32,6 +32,12 @@ export type AccordionCheckboxProps = {
32
32
  style?: StyleProp<ViewStyle>;
33
33
  /** Accessibility label for the header press target. Defaults to `title`. */
34
34
  accessibilityLabel?: string;
35
+ /**
36
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
37
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
38
+ * lines as it needs even when horizontal space is tight.
39
+ */
40
+ disableTruncation?: boolean;
35
41
  };
36
42
  /**
37
43
  * AccordionCheckbox composes a header (with a `Checkbox`, title, subtitle and
@@ -67,6 +73,6 @@ export type AccordionCheckboxProps = {
67
73
  * </AccordionCheckbox>
68
74
  * ```
69
75
  */
70
- declare function AccordionCheckbox({ title, subtitle, defaultExpanded, expanded: controlledExpanded, onExpandedChange, defaultChecked, checked: controlledChecked, onCheckedChange, disabled, children, modes, style, accessibilityLabel, }: AccordionCheckboxProps): import("react/jsx-runtime").JSX.Element;
76
+ declare function AccordionCheckbox({ title, subtitle, defaultExpanded, expanded: controlledExpanded, onExpandedChange, defaultChecked, checked: controlledChecked, onCheckedChange, disabled, children, modes, style, accessibilityLabel, disableTruncation, }: AccordionCheckboxProps): import("react/jsx-runtime").JSX.Element;
71
77
  export default AccordionCheckbox;
72
78
  //# sourceMappingURL=AccordionCheckbox.d.ts.map
@@ -57,6 +57,12 @@ export type AccountCardProps = {
57
57
  accessibilityLabel?: string;
58
58
  /** Accessibility hint forwarded to the underlying `Pressable`. */
59
59
  accessibilityHint?: string;
60
+ /**
61
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
62
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
63
+ * lines as it needs even when horizontal space is tight.
64
+ */
65
+ disableTruncation?: boolean;
60
66
  };
61
67
  /**
62
68
  * `AccountCard` — a compact card preview used to represent a linked
@@ -76,7 +82,7 @@ export type AccountCardProps = {
76
82
  * @component
77
83
  * @param {AccountCardProps} props
78
84
  */
79
- declare function AccountCard({ state, title, subtitle, imageSource, imageRatio, cardSlot, addIcon, onPress, disabled, modes, style, accessibilityLabel, accessibilityHint, }: AccountCardProps): import("react/jsx-runtime").JSX.Element;
85
+ declare function AccountCard({ state, title, subtitle, imageSource, imageRatio, cardSlot, addIcon, onPress, disabled, modes, style, accessibilityLabel, accessibilityHint, disableTruncation, }: AccountCardProps): import("react/jsx-runtime").JSX.Element;
80
86
  declare const _default: React.MemoExoticComponent<typeof AccountCard>;
81
87
  export default _default;
82
88
  //# sourceMappingURL=AccountCard.d.ts.map
@@ -96,6 +96,12 @@ export type AllocationComparisonChartProps = {
96
96
  legendStyle?: StyleProp<ViewStyle>;
97
97
  /** Accessibility label for the whole chart. */
98
98
  accessibilityLabel?: string;
99
+ /**
100
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
101
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
102
+ * lines as it needs even when horizontal space is tight.
103
+ */
104
+ disableTruncation?: boolean;
99
105
  };
100
106
  /**
101
107
  * `AllocationComparisonChart` plots a row of vertical pill bars that compare a
@@ -114,6 +120,6 @@ export type AllocationComparisonChartProps = {
114
120
  *
115
121
  * @component
116
122
  */
117
- declare function AllocationComparisonChart({ data, max, height, barWidth, showLegend, valueLegendLabel, baselineLegendLabel, formatValue, modes: propModes, style, chartStyle, legendStyle, accessibilityLabel, }: AllocationComparisonChartProps): import("react/jsx-runtime").JSX.Element;
123
+ declare function AllocationComparisonChart({ data, max, height, barWidth, showLegend, valueLegendLabel, baselineLegendLabel, formatValue, modes: propModes, style, chartStyle, legendStyle, accessibilityLabel, disableTruncation, }: AllocationComparisonChartProps): import("react/jsx-runtime").JSX.Element;
118
124
  export default AllocationComparisonChart;
119
125
  //# sourceMappingURL=AllocationComparisonChart.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { type ViewStyle } from 'react-native';
2
+ import { View, type ViewStyle } from 'react-native';
3
3
  import type { Modes } from '../../design-tokens';
4
4
  export type AmountInputProps = {
5
5
  /**
@@ -20,5 +20,6 @@ export type AmountInputProps = {
20
20
  *
21
21
  * @component
22
22
  */
23
- export default function AmountInput({ moneyValueSlot, noteInputSlot, modes: propModes, style, }: AmountInputProps): import("react/jsx-runtime").JSX.Element;
23
+ declare const AmountInput: React.ForwardRefExoticComponent<AmountInputProps & React.RefAttributes<View>>;
24
+ export default AmountInput;
24
25
  //# sourceMappingURL=AmountInput.d.ts.map
@@ -105,6 +105,12 @@ export type AreaLineChartProps = {
105
105
  children?: React.ReactNode;
106
106
  /** Accessibility label for the whole chart. */
107
107
  accessibilityLabel?: string;
108
+ /**
109
+ * When `true`, disables text truncation: the trailing ellipsis (`…`) is never
110
+ * shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
111
+ * lines as it needs even when horizontal space is tight.
112
+ */
113
+ disableTruncation?: boolean;
108
114
  };
109
115
  type ResolvedSeries = {
110
116
  key: React.Key;
@@ -136,6 +142,7 @@ type ChartContextValue = {
136
142
  formatY: (value: number) => React.ReactNode;
137
143
  showDots: boolean;
138
144
  modes: Modes;
145
+ disableTruncation?: boolean;
139
146
  };
140
147
  /** Access the surrounding chart geometry from a decorator/sub-component. */
141
148
  export declare function useChart(): ChartContextValue;
@@ -154,7 +161,7 @@ export declare function useChart(): ChartContextValue;
154
161
  *
155
162
  * @component
156
163
  */
157
- declare function AreaLineChart({ series, xLabels, yMin, yMax, numberOfTicks, curve, height, contentInset, showGrid, showXAxis, showYAxis, showLegend, showDots, formatX, formatY, formatValue, goalPin, activeIndex: activeIndexProp, defaultActiveIndex, onActiveIndexChange, interactive, modes: propModes, style, children, accessibilityLabel, }: AreaLineChartProps): import("react/jsx-runtime").JSX.Element;
164
+ declare function AreaLineChart({ series, xLabels, yMin, yMax, numberOfTicks, curve, height, contentInset, showGrid, showXAxis, showYAxis, showLegend, showDots, formatX, formatY, formatValue, goalPin, activeIndex: activeIndexProp, defaultActiveIndex, onActiveIndexChange, interactive, modes: propModes, style, children, accessibilityLabel, disableTruncation, }: AreaLineChartProps): import("react/jsx-runtime").JSX.Element;
158
165
  declare namespace AreaLineChart {
159
166
  var Grid: typeof ChartGrid;
160
167
  var XAxis: typeof ChartXAxis;