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,470 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _figmaVariablesResolver = require("../../design-tokens/figma-variables-resolver");
10
+ var _reactUtils = require("../../utils/react-utils");
11
+ var _Badge = _interopRequireDefault(require("../Badge/Badge"));
12
+ var _Avatar = _interopRequireDefault(require("../Avatar/Avatar"));
13
+ var _Image = _interopRequireDefault(require("../Image/Image"));
14
+ var _Icon = _interopRequireDefault(require("../Icon/Icon"));
15
+ var _Title = _interopRequireDefault(require("../Title/Title"));
16
+ var _ListItem = _interopRequireDefault(require("../ListItem/ListItem"));
17
+ var _TextSegment = _interopRequireDefault(require("../TextSegment/TextSegment"));
18
+ var _Button = _interopRequireDefault(require("../Button/Button"));
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
22
+ /**
23
+ * A single coloured chip rendered in the card header. Each badge resolves its
24
+ * own design tokens through `modes`, so different appearances (brand, tonal,
25
+ * etc.) can sit side-by-side in the same group.
26
+ */
27
+
28
+ /**
29
+ * A single benefit row in the card's list, rendered through the shared
30
+ * {@link ListItem} primitive (leading icon + title).
31
+ */
32
+
33
+ /**
34
+ * CcCard — Figma node 5434:1992 ("Cc Card").
35
+ *
36
+ * A white, rounded credit-card product card composed entirely from the shared
37
+ * design-system primitives so it stays in sync with the rest of the library:
38
+ *
39
+ * - **Header** — two {@link Badge} groups (a leading group + a right-aligned
40
+ * trailing group), e.g. `Pre-qualified` / `Lifetime free`.
41
+ * - **Media** — a product `Image` + a {@link Title} (title + subtitle resolved
42
+ * through the `context7: Card` mode → 14px/12px).
43
+ * - **List** — a column of benefit {@link ListItem}s (`List Item Style:
44
+ * Minimal`) with leading icons.
45
+ * - **Nudge** — an inline upsell row: an {@link Avatar} + a {@link TextSegment}.
46
+ * - **Footer** — a headline + description + subtitle text block alongside a
47
+ * small {@link Button} (`Button / Size: S`, `AppearanceBrand: Secondary`).
48
+ *
49
+ * The {@link CcCardProps.compact} variant collapses the card to just the
50
+ * leading avatar slot + the footer text block (no CTA button). All defaults can
51
+ * be overridden via `modes`.
52
+ */
53
+ function CcCard({
54
+ compact = false,
55
+ showHeader = true,
56
+ badges = DEFAULT_BADGES,
57
+ trailingBadges,
58
+ header,
59
+ imageSource,
60
+ imageWidth = 88,
61
+ imageHeight = 54,
62
+ title = 'Title',
63
+ subtitle = 'Subtitle',
64
+ media,
65
+ items = DEFAULT_ITEMS,
66
+ showNudge = true,
67
+ nudgeSegments = DEFAULT_NUDGE_SEGMENTS,
68
+ nudgeAvatarSource,
69
+ nudge,
70
+ headline = 'Headline',
71
+ description = 'Description',
72
+ footerSubtitle = 'Subtitle',
73
+ footer,
74
+ buttonLabel = 'Button',
75
+ onButtonPress,
76
+ button,
77
+ showButton = true,
78
+ onPress,
79
+ width = 343,
80
+ modes = _reactUtils.EMPTY_MODES,
81
+ style,
82
+ accessibilityLabel
83
+ }) {
84
+ const tokens = (0, _react.useMemo)(() => resolveTokens(modes), [modes]);
85
+
86
+ // The product title uses the card-sized type ramp (14px bold + 12px
87
+ // subtitle) via the `context7: Card` mode. Consumer modes still win.
88
+ const titleModes = (0, _react.useMemo)(() => ({
89
+ context7: 'Card',
90
+ ...modes
91
+ }), [modes]);
92
+ // List rows use the minimal style (12px / regular, no padding).
93
+ const listItemModes = (0, _react.useMemo)(() => ({
94
+ 'List Item Style': 'Minimal',
95
+ ...modes
96
+ }), [modes]);
97
+ // The nudge avatar is the smallest size token.
98
+ const nudgeAvatarModes = (0, _react.useMemo)(() => ({
99
+ 'Avatar Size': 'XS',
100
+ ...modes
101
+ }), [modes]);
102
+ // The CTA is the small, brand-secondary (lilac→purple) button.
103
+ const ctaModes = (0, _react.useMemo)(() => ({
104
+ AppearanceBrand: 'Secondary',
105
+ 'Button / Size': 'S',
106
+ ...modes
107
+ }), [modes]);
108
+
109
+ // ---- Header -----------------------------------------------------------
110
+ const headerNode = header ? (0, _reactUtils.cloneChildrenWithModes)(header, modes) : showHeader && (badges?.length || trailingBadges?.length) ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
111
+ style: styles.header,
112
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(BadgeGroup, {
113
+ badges: badges,
114
+ modes: modes
115
+ }), trailingBadges?.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(BadgeGroup, {
116
+ badges: trailingBadges,
117
+ modes: modes
118
+ }) : null]
119
+ }) : null;
120
+
121
+ // ---- Media slot (shared by both compact + non-compact) ----------------
122
+ // Whatever lives in the slot is rendered identically in both variants; only
123
+ // the surrounding sections differ. The default is an Image driven by
124
+ // `imageSource`, but a consumer can pass an Avatar (or any node) via `media`.
125
+ const mediaSlotContent = media ? (0, _reactUtils.cloneChildrenWithModes)(media, modes) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Image.default, {
126
+ imageSource: imageSource,
127
+ width: imageWidth,
128
+ height: imageHeight,
129
+ borderRadius: tokens.imageRadius,
130
+ resizeMode: "cover",
131
+ accessibilityElementsHidden: true,
132
+ importantForAccessibility: "no"
133
+ });
134
+
135
+ // Non-compact lays the slot out in a row next to the product Title.
136
+ const mediaRow = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
137
+ style: styles.mediaSlot,
138
+ children: [mediaSlotContent, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
139
+ style: styles.titleWrap,
140
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Title.default, {
141
+ title: title,
142
+ subtitle: subtitle,
143
+ textAlign: "Left",
144
+ modes: titleModes,
145
+ style: styles.titleInner
146
+ })
147
+ })]
148
+ });
149
+
150
+ // ---- List -------------------------------------------------------------
151
+ const listNode = items.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
152
+ style: tokens.listGroup,
153
+ children: items.map((item, index) => {
154
+ const leading = item.leading ?? (item.icon !== null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
155
+ iconName: item.icon ?? 'ic_card',
156
+ color: item.iconColor,
157
+ modes: listItemModes
158
+ }) : null);
159
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItem.default, {
160
+ layout: "Horizontal",
161
+ navArrow: false,
162
+ showSupportText: false,
163
+ title: item.title,
164
+ leading: leading,
165
+ onPress: item.onPress,
166
+ modes: listItemModes
167
+ }, index);
168
+ })
169
+ }) : null;
170
+
171
+ // ---- Nudge ------------------------------------------------------------
172
+ const nudgeNode = nudge ? (0, _reactUtils.cloneChildrenWithModes)(nudge, modes) : showNudge ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
173
+ style: tokens.nudge,
174
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Avatar.default, {
175
+ imageSource: nudgeAvatarSource,
176
+ modes: nudgeAvatarModes
177
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
178
+ style: styles.nudgeContent,
179
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextSegment.default, {
180
+ segments: nudgeSegments,
181
+ modes: modes
182
+ })
183
+ })]
184
+ }) : null;
185
+
186
+ // ---- Footer -----------------------------------------------------------
187
+ const ctaNode = button ? (0, _reactUtils.cloneChildrenWithModes)(button, ctaModes) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
188
+ label: buttonLabel,
189
+ modes: ctaModes,
190
+ onPress: onButtonPress
191
+ });
192
+ const footerTextBlock = footer ? (0, _reactUtils.cloneChildrenWithModes)(footer, modes) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
193
+ style: tokens.footerTextWrap,
194
+ children: [headline != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
195
+ style: tokens.headline,
196
+ children: headline
197
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
198
+ style: compact ? tokens.titleWrapCompact : tokens.titleWrapDefault,
199
+ children: [description != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
200
+ style: tokens.footerTitle,
201
+ children: description
202
+ }) : null, footerSubtitle != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
203
+ style: tokens.footerSubtitle,
204
+ children: footerSubtitle
205
+ }) : null]
206
+ })]
207
+ });
208
+ const footerNode = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
209
+ style: compact ? tokens.footerRowCompact : tokens.footerRowDefault,
210
+ children: [footerTextBlock, !compact && showButton ? ctaNode : null]
211
+ });
212
+
213
+ // ---- Compose ----------------------------------------------------------
214
+ const content = compact ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
215
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
216
+ style: styles.compactSlot,
217
+ children: mediaSlotContent
218
+ }), footerNode]
219
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
220
+ children: [headerNode, mediaRow, listNode, nudgeNode, footerNode]
221
+ });
222
+ const containerStyle = (0, _react.useMemo)(() => ({
223
+ ...tokens.container,
224
+ width
225
+ }), [tokens.container, width]);
226
+ if (onPress) {
227
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
228
+ style: ({
229
+ pressed
230
+ }) => [containerStyle, pressed ? styles.pressed : null, style],
231
+ accessibilityRole: "button",
232
+ accessibilityLabel: accessibilityLabel ?? title,
233
+ onPress: onPress,
234
+ children: content
235
+ });
236
+ }
237
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
238
+ style: [containerStyle, style],
239
+ accessibilityLabel: accessibilityLabel,
240
+ children: content
241
+ });
242
+ }
243
+
244
+ // ---------------------------------------------------------------------------
245
+ // BadgeGroup — internal wrapping row of badges
246
+ // ---------------------------------------------------------------------------
247
+
248
+ function BadgeGroup({
249
+ badges,
250
+ modes
251
+ }) {
252
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
253
+ style: styles.badgeGroup,
254
+ children: badges.map((badge, index) => {
255
+ const badgeModes = badge.modes ? {
256
+ ...modes,
257
+ ...badge.modes
258
+ } : modes;
259
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Badge.default, {
260
+ label: badge.label,
261
+ modes: badgeModes,
262
+ style: badge.color ? {
263
+ backgroundColor: badge.color
264
+ } : undefined,
265
+ labelStyle: badge.labelColor ? {
266
+ color: badge.labelColor
267
+ } : undefined
268
+ }, index);
269
+ })
270
+ });
271
+ }
272
+
273
+ // ---------------------------------------------------------------------------
274
+ // Tokens / static styles
275
+ // ---------------------------------------------------------------------------
276
+
277
+ function asNum(raw, fallback) {
278
+ const n = typeof raw === 'number' ? raw : parseFloat(raw);
279
+ return Number.isFinite(n) ? n : fallback;
280
+ }
281
+ function asStr(raw, fallback) {
282
+ return raw != null ? String(raw) : fallback;
283
+ }
284
+ function resolveTokens(modes) {
285
+ // NOTE: token names are passed as string literals DIRECTLY to
286
+ // getVariableByName so the `extract-component-tokens` script can statically
287
+ // collect them for the generated docs. Do not refactor these into a helper
288
+ // that receives the name as a variable.
289
+ const background = asStr((0, _figmaVariablesResolver.getVariableByName)('ccCard/bg', modes), '#ffffff');
290
+ const borderColor = asStr((0, _figmaVariablesResolver.getVariableByName)('ccCard/border/color', modes), '#e3e4e4');
291
+ const borderWidth = asNum((0, _figmaVariablesResolver.getVariableByName)('ccCard/border/size', modes), 1);
292
+ const radius = asNum((0, _figmaVariablesResolver.getVariableByName)('ccCard/radius', modes), 12);
293
+ const paddingHorizontal = asNum((0, _figmaVariablesResolver.getVariableByName)('ccCard/padding/horizontal', modes), 12);
294
+ const paddingVertical = asNum((0, _figmaVariablesResolver.getVariableByName)('ccCard/padding/vertical', modes), 12);
295
+ const gap = asNum((0, _figmaVariablesResolver.getVariableByName)('ccCard/padding/gap', modes), 8);
296
+ const imageRadius = asNum((0, _figmaVariablesResolver.getVariableByName)('image/radius', modes), 0);
297
+ const listGroupGap = asNum((0, _figmaVariablesResolver.getVariableByName)('listGroup/gap', modes), 4);
298
+ const nudgeGap = asNum((0, _figmaVariablesResolver.getVariableByName)('nudge/gap', modes), 6);
299
+ const footerGap = asNum((0, _figmaVariablesResolver.getVariableByName)('ccCard/footer/gap', modes), 8);
300
+ const textWrapGap = asNum((0, _figmaVariablesResolver.getVariableByName)('ccCard/footer/textWrap/gap', modes), 4);
301
+ const titleWrapGap = asNum((0, _figmaVariablesResolver.getVariableByName)('ccCard/footer/titleWrap/gap', modes), 8);
302
+ const headlineColor = asStr((0, _figmaVariablesResolver.getVariableByName)('ccCard/headline/color', modes), '#707275');
303
+ const headlineSize = asNum((0, _figmaVariablesResolver.getVariableByName)('ccCard/headline/fontSize', modes), 10);
304
+ const headlineFamily = asStr((0, _figmaVariablesResolver.getVariableByName)('ccCard/headline/fontFamily', modes), 'JioType Var');
305
+ const headlineLineHeight = asNum((0, _figmaVariablesResolver.getVariableByName)('ccCard/headline/lineHeight', modes), 13);
306
+ const headlineWeight = asStr((0, _figmaVariablesResolver.getVariableByName)('ccCard/headline/fontWeight', modes), '500');
307
+ const titleColor = asStr((0, _figmaVariablesResolver.getVariableByName)('ccCard/title/color', modes), '#081007');
308
+ const titleSize = asNum((0, _figmaVariablesResolver.getVariableByName)('ccCard/title/fontSize', modes), 14);
309
+ const titleFamily = asStr((0, _figmaVariablesResolver.getVariableByName)('ccCard/title/fontFamily', modes), 'JioType Var');
310
+ const titleLineHeight = asNum((0, _figmaVariablesResolver.getVariableByName)('ccCard/title/lineHeight', modes), 15);
311
+ const titleWeight = asStr((0, _figmaVariablesResolver.getVariableByName)('ccCard/title/fontWeight', modes), '700');
312
+ const subtitleColor = asStr((0, _figmaVariablesResolver.getVariableByName)('ccCard/subtitle/color', modes), '#707275');
313
+ const subtitleSize = asNum((0, _figmaVariablesResolver.getVariableByName)('ccCard/subtitle/fontSize', modes), 10);
314
+ const subtitleFamily = asStr((0, _figmaVariablesResolver.getVariableByName)('ccCard/subtitle/fontFamily', modes), 'JioType Var');
315
+ const subtitleLineHeight = asNum((0, _figmaVariablesResolver.getVariableByName)('ccCard/subtitle/lineHeight', modes), 13);
316
+ const subtitleWeight = asStr((0, _figmaVariablesResolver.getVariableByName)('ccCard/subtitle/fontWeight', modes), '500');
317
+ return {
318
+ container: {
319
+ backgroundColor: background,
320
+ borderColor,
321
+ borderWidth,
322
+ borderRadius: radius,
323
+ paddingHorizontal,
324
+ paddingVertical,
325
+ gap,
326
+ flexDirection: 'column',
327
+ alignItems: 'flex-start',
328
+ overflow: 'hidden'
329
+ },
330
+ imageRadius,
331
+ listGroup: {
332
+ alignSelf: 'stretch',
333
+ gap: listGroupGap
334
+ },
335
+ nudge: {
336
+ alignSelf: 'stretch',
337
+ flexDirection: 'row',
338
+ alignItems: 'center',
339
+ gap: nudgeGap
340
+ },
341
+ footerRowDefault: {
342
+ alignSelf: 'stretch',
343
+ flexDirection: 'row',
344
+ alignItems: 'flex-end',
345
+ gap: footerGap
346
+ },
347
+ footerRowCompact: {
348
+ alignSelf: 'stretch',
349
+ flexDirection: 'row',
350
+ alignItems: 'center'
351
+ },
352
+ footerTextWrap: {
353
+ flex: 1,
354
+ minWidth: 1,
355
+ alignItems: 'flex-start',
356
+ gap: textWrapGap
357
+ },
358
+ titleWrapDefault: {
359
+ flexDirection: 'row',
360
+ alignItems: 'flex-end',
361
+ gap: textWrapGap
362
+ },
363
+ titleWrapCompact: {
364
+ flexDirection: 'row',
365
+ alignItems: 'flex-end',
366
+ gap: titleWrapGap
367
+ },
368
+ headline: {
369
+ color: headlineColor,
370
+ fontSize: headlineSize,
371
+ fontFamily: headlineFamily,
372
+ fontWeight: headlineWeight,
373
+ lineHeight: Math.max(headlineLineHeight, Math.ceil(headlineSize * 1.2)),
374
+ includeFontPadding: false
375
+ },
376
+ footerTitle: {
377
+ color: titleColor,
378
+ fontSize: titleSize,
379
+ fontFamily: titleFamily,
380
+ fontWeight: titleWeight,
381
+ lineHeight: Math.max(titleLineHeight, Math.ceil(titleSize * 1.2)),
382
+ includeFontPadding: false
383
+ },
384
+ footerSubtitle: {
385
+ color: subtitleColor,
386
+ fontSize: subtitleSize,
387
+ fontFamily: subtitleFamily,
388
+ fontWeight: subtitleWeight,
389
+ lineHeight: Math.max(subtitleLineHeight, Math.ceil(subtitleSize * 1.2)),
390
+ includeFontPadding: false
391
+ }
392
+ };
393
+ }
394
+ const DEFAULT_BADGES = [{
395
+ label: 'Pre-qualified',
396
+ modes: {
397
+ AppearanceBrand: 'Tertiary'
398
+ },
399
+ labelColor: '#ffffff'
400
+ }, {
401
+ label: 'Lifetime free',
402
+ modes: {
403
+ AppearanceBrand: 'Tertiary'
404
+ },
405
+ labelColor: '#ffffff'
406
+ }];
407
+ const DEFAULT_ITEMS = [{
408
+ icon: 'ic_card',
409
+ title: '4 domestic + 2 intl. lounge access yearly'
410
+ }, {
411
+ icon: 'ic_card',
412
+ title: '5% cashback on dining & travel'
413
+ }, {
414
+ icon: 'ic_card',
415
+ title: 'No annual fee for the first year'
416
+ }];
417
+ const DEFAULT_NUDGE_SEGMENTS = [{
418
+ text: 'Upsell message '
419
+ }, {
420
+ text: 'JioFinance+',
421
+ modes: {
422
+ 'Text Appearance': 'Primary'
423
+ }
424
+ }];
425
+ const styles = _reactNative.StyleSheet.create({
426
+ header: {
427
+ alignSelf: 'stretch',
428
+ flexDirection: 'row',
429
+ alignItems: 'flex-start',
430
+ justifyContent: 'space-between',
431
+ gap: 8
432
+ },
433
+ badgeGroup: {
434
+ flexDirection: 'row',
435
+ flexWrap: 'wrap',
436
+ alignItems: 'center',
437
+ gap: 4,
438
+ flexShrink: 1
439
+ },
440
+ mediaSlot: {
441
+ alignSelf: 'stretch',
442
+ flexDirection: 'row',
443
+ alignItems: 'center',
444
+ gap: 8
445
+ },
446
+ titleWrap: {
447
+ flex: 1,
448
+ minWidth: 1
449
+ },
450
+ // The shared Title falls back to 16/8 padding when its tokens resolve to 0
451
+ // (0 is falsy). Zero it out so the only horizontal gap to the media slot is
452
+ // the mediaSlot's hard-coded 8px.
453
+ titleInner: {
454
+ paddingHorizontal: 0,
455
+ paddingVertical: 0
456
+ },
457
+ // Compact media wrapper hugs its child so the slot sizes to the avatar /
458
+ // image's intrinsic dimensions instead of stretching to the card width.
459
+ compactSlot: {
460
+ alignSelf: 'flex-start'
461
+ },
462
+ nudgeContent: {
463
+ flex: 1,
464
+ minWidth: 1
465
+ },
466
+ pressed: {
467
+ opacity: 0.92
468
+ }
469
+ });
470
+ var _default = exports.default = CcCard;
@@ -83,7 +83,7 @@ function invisibleTouchHitSlop(checkboxSize) {
83
83
  * @component
84
84
  * @param {CheckboxProps} props
85
85
  */
86
- function Checkbox({
86
+ const Checkbox = /*#__PURE__*/(0, _react.forwardRef)(function Checkbox({
87
87
  checked: controlledChecked,
88
88
  defaultChecked = false,
89
89
  onValueChange,
@@ -91,7 +91,7 @@ function Checkbox({
91
91
  modes = _reactUtils.EMPTY_MODES,
92
92
  style,
93
93
  accessibilityLabel
94
- }) {
94
+ }, ref) {
95
95
  const isControlled = controlledChecked !== undefined;
96
96
  const [internalChecked, setInternalChecked] = (0, _react.useState)(defaultChecked);
97
97
  const isChecked = isControlled ? controlledChecked : internalChecked;
@@ -199,6 +199,7 @@ function Checkbox({
199
199
  const markColor = disabled && isChecked ? disabledActiveMark : selectedMarkColor;
200
200
  const hitSlop = invisibleTouchHitSlop(size);
201
201
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
202
+ ref: ref,
202
203
  style: [touchTargetStyle, style],
203
204
  hitSlop: hitSlop,
204
205
  onPress: handlePress,
@@ -226,7 +227,7 @@ function Checkbox({
226
227
  })
227
228
  })
228
229
  });
229
- }
230
+ });
230
231
  function boxShadow(value) {
231
232
  if (_reactNative.Platform.OS === 'web') {
232
233
  return {
@@ -39,7 +39,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
39
39
  * />
40
40
  * ```
41
41
  */
42
- function CheckboxItem({
42
+ const CheckboxItem = /*#__PURE__*/(0, _react.forwardRef)(function CheckboxItem({
43
43
  checked: controlledChecked,
44
44
  defaultChecked = false,
45
45
  onValueChange,
@@ -52,7 +52,7 @@ function CheckboxItem({
52
52
  style,
53
53
  labelStyle,
54
54
  accessibilityLabel
55
- }) {
55
+ }, ref) {
56
56
  const isTrailing = control === 'trailing';
57
57
  const isControlled = controlledChecked !== undefined;
58
58
  const [internalChecked, setInternalChecked] = (0, _react.useState)(defaultChecked);
@@ -121,6 +121,7 @@ function CheckboxItem({
121
121
  children: (0, _reactUtils.cloneChildrenWithModes)(endSlot, modes)
122
122
  }) : null;
123
123
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
124
+ ref: ref,
124
125
  style: [containerStyle, style],
125
126
  onPress: handleToggle,
126
127
  disabled: disabled,
@@ -136,5 +137,5 @@ function CheckboxItem({
136
137
  children: [checkboxNode, labelNode, endSlotNode]
137
138
  })
138
139
  });
139
- }
140
+ });
140
141
  var _default = exports.default = CheckboxItem;
@@ -36,8 +36,11 @@ const toFontWeight = (value, fallback) => {
36
36
  return fallback;
37
37
  };
38
38
  const getStrokeColor = (style, fallback) => {
39
+ // `StyleSheet.flatten(undefined)` returns `undefined`, so guard before
40
+ // reading `backgroundColor` — otherwise omitting the optional style prop
41
+ // crashes with "Cannot read property 'backgroundColor' of undefined".
39
42
  const flattened = _reactNative.StyleSheet.flatten(style);
40
- return typeof flattened.backgroundColor === 'string' ? flattened.backgroundColor : fallback;
43
+ return typeof flattened?.backgroundColor === 'string' ? flattened.backgroundColor : fallback;
41
44
  };
42
45
  function CircularProgressBar({
43
46
  value = 70,
@@ -51,6 +54,7 @@ function CircularProgressBar({
51
54
  valueStyle,
52
55
  supportTextStyle,
53
56
  accessibilityLabel,
57
+ disableTruncation,
54
58
  ...rest
55
59
  }) {
56
60
  const {
@@ -175,11 +179,11 @@ function CircularProgressBar({
175
179
  pointerEvents: "none",
176
180
  children: [hasSupportText ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
177
181
  style: [computedSupportTextStyle, supportTextStyle],
178
- numberOfLines: 1,
182
+ ...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
179
183
  children: supportText
180
184
  }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
181
185
  style: [computedValueStyle, valueStyle],
182
- numberOfLines: 1,
186
+ ...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
183
187
  children: displayValue
184
188
  })]
185
189
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconMinus.IconMinus, {
@@ -36,7 +36,7 @@ const toFontWeight = (value, fallback) => {
36
36
  };
37
37
  const getBackgroundColor = (style, fallback) => {
38
38
  const flattened = _reactNative.StyleSheet.flatten(style);
39
- return typeof flattened.backgroundColor === 'string' ? flattened.backgroundColor : fallback;
39
+ return flattened && typeof flattened.backgroundColor === 'string' ? flattened.backgroundColor : fallback;
40
40
  };
41
41
  function CircularProgressBarDoted({
42
42
  value = 72,
@@ -59,6 +59,7 @@ function CircularProgressBarDoted({
59
59
  scoreLabelStyle,
60
60
  tierLabelStyle,
61
61
  accessibilityLabel,
62
+ disableTruncation,
62
63
  onLayout,
63
64
  ...rest
64
65
  }) {
@@ -193,7 +194,7 @@ function CircularProgressBarDoted({
193
194
  };
194
195
  const trendContent = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
195
196
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
196
- numberOfLines: 1,
197
+ ...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
197
198
  style: [computedTierLabelStyle, tierLabelStyle],
198
199
  children: tierLabel
199
200
  }), showChevron ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconChevronright.IconChevronright, {
@@ -96,6 +96,7 @@ function CircularRating({
96
96
  footerTextStyle,
97
97
  nudgeStyle,
98
98
  accessibilityLabel,
99
+ disableTruncation,
99
100
  ...rest
100
101
  }) {
101
102
  const {
@@ -135,7 +136,7 @@ function CircularRating({
135
136
  style: [tokens.footerStyle, footerStyle],
136
137
  children: processedFooterSlot || /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
137
138
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
138
- numberOfLines: 1,
139
+ ...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
139
140
  style: [tokens.footerTextStyle, footerTextStyle],
140
141
  children: footerText
141
142
  }), showFooterIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
@@ -88,7 +88,8 @@ function ClusterBubble({
88
88
  circleStyle,
89
89
  style,
90
90
  modes: propModes = _reactUtils.EMPTY_MODES,
91
- accessibilityLabel
91
+ accessibilityLabel,
92
+ disableTruncation
92
93
  }) {
93
94
  const {
94
95
  modes: globalModes
@@ -135,7 +136,7 @@ function ClusterBubble({
135
136
  if (typeof node === 'string' || typeof node === 'number') {
136
137
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
137
138
  style: [baseStyle, override],
138
- numberOfLines: 2,
139
+ ...(0, _reactUtils.resolveTruncation)(disableTruncation, 2),
139
140
  children: node
140
141
  });
141
142
  }