jfs-components 0.1.8 → 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.
- package/CHANGELOG.md +16 -0
- package/lib/commonjs/components/Accordion/Accordion.js +2 -1
- package/lib/commonjs/components/AccordionCheckbox/AccordionCheckbox.js +4 -3
- package/lib/commonjs/components/AccountCard/AccountCard.js +4 -3
- package/lib/commonjs/components/AllocationComparisonChart/AllocationComparisonChart.js +9 -6
- package/lib/commonjs/components/AreaLineChart/AreaLineChart.js +11 -7
- package/lib/commonjs/components/Badge/Badge.js +47 -8
- package/lib/commonjs/components/BrandChip/BrandChip.js +3 -3
- package/lib/commonjs/components/Button/Button.js +2 -1
- package/lib/commonjs/components/CardAdvisory/CardAdvisory.js +2 -1
- package/lib/commonjs/components/CardBankAccount/CardBankAccount.js +3 -2
- package/lib/commonjs/components/CardCTA/CardCTA.js +197 -27
- package/lib/commonjs/components/CardInsight/CardInsight.js +5 -1
- package/lib/commonjs/components/CircularProgressBar/CircularProgressBar.js +7 -3
- package/lib/commonjs/components/CircularProgressBarDoted/CircularProgressBarDoted.js +3 -2
- package/lib/commonjs/components/CircularRating/CircularRating.js +2 -1
- package/lib/commonjs/components/ClusterBubble/ClusterBubble.js +3 -2
- package/lib/commonjs/components/CompareTable/CompareTable.js +72 -43
- package/lib/commonjs/components/CoverageBarComparison/CoverageBarComparison.js +3 -2
- package/lib/commonjs/components/DonutChart/DonutChart.js +4 -3
- package/lib/commonjs/components/Dropdown/Dropdown.js +3 -2
- package/lib/commonjs/components/DropdownInput/DropdownInput.js +3 -2
- package/lib/commonjs/components/ExpandableCheckbox/ExpandableCheckbox.js +2 -1
- package/lib/commonjs/components/FormField/FormField.js +42 -2
- package/lib/commonjs/components/Gauge/Gauge.js +1 -1
- package/lib/commonjs/components/HoldingsCard/HoldingsCard.js +3 -2
- package/lib/commonjs/components/InstitutionBadge/InstitutionBadge.js +2 -1
- package/lib/commonjs/components/ListGroup/ListGroup.js +2 -1
- package/lib/commonjs/components/ListItem/ListItem.js +3 -2
- package/lib/commonjs/components/MediaCard/MediaCard.js +4 -2
- package/lib/commonjs/components/MetricLegendItem/MetricLegendItem.js +3 -2
- package/lib/commonjs/components/MonthlyStatusGrid/MonthlyStatusGrid.js +6 -3
- package/lib/commonjs/components/PoweredByLabel/PoweredByLabel.js +3 -2
- package/lib/commonjs/components/ProductMerchandisingCard/ProductMerchandisingCard.js +107 -33
- package/lib/commonjs/components/ProductOverview/ProductOverview.js +4 -3
- package/lib/commonjs/components/ProgressBadge/ProgressBadge.js +2 -2
- package/lib/commonjs/components/ProjectionMarker/ProjectionMarker.js +3 -2
- package/lib/commonjs/components/Section/Section.js +3 -2
- package/lib/commonjs/components/Slider/Slider.js +3 -2
- package/lib/commonjs/components/Stack/Stack.js +86 -0
- package/lib/commonjs/components/SuggestiveSearch/SuggestiveSearch.js +10 -1
- package/lib/commonjs/components/SummaryTile/SummaryTile.js +3 -2
- package/lib/commonjs/components/Table/Table.js +324 -0
- package/lib/commonjs/components/Text/Text.js +2 -1
- package/lib/commonjs/components/TextInput/TextInput.js +9 -1
- package/lib/commonjs/components/TextSegment/TextSegment.js +2 -1
- package/lib/commonjs/components/ThreadHero/ThreadHero.js +4 -5
- package/lib/commonjs/components/Title/Title.js +2 -1
- package/lib/commonjs/components/Toast/Toast.js +3 -2
- package/lib/commonjs/components/TransactionBubble/TransactionBubble.js +2 -1
- package/lib/commonjs/components/TransactionStatus/TransactionStatus.js +3 -2
- package/lib/commonjs/components/UpiHandle/UpiHandle.js +2 -2
- package/lib/commonjs/components/index.js +44 -0
- package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
- package/lib/commonjs/design-tokens/figma-modes.generated.js +1 -0
- package/lib/commonjs/icons/registry.js +1 -1
- package/lib/commonjs/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.js +11 -3
- package/lib/commonjs/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.js +8 -4
- package/lib/commonjs/utils/react-utils.js +56 -0
- package/lib/commonjs/utils/web-platform-utils.js +59 -0
- package/lib/module/components/Accordion/Accordion.js +3 -2
- package/lib/module/components/AccordionCheckbox/AccordionCheckbox.js +5 -4
- package/lib/module/components/AccountCard/AccountCard.js +5 -4
- package/lib/module/components/AllocationComparisonChart/AllocationComparisonChart.js +10 -7
- package/lib/module/components/AreaLineChart/AreaLineChart.js +12 -8
- package/lib/module/components/Badge/Badge.js +49 -10
- package/lib/module/components/BrandChip/BrandChip.js +4 -4
- package/lib/module/components/Button/Button.js +3 -2
- package/lib/module/components/CardAdvisory/CardAdvisory.js +3 -2
- package/lib/module/components/CardBankAccount/CardBankAccount.js +4 -3
- package/lib/module/components/CardCTA/CardCTA.js +198 -28
- package/lib/module/components/CardInsight/CardInsight.js +5 -1
- package/lib/module/components/CircularProgressBar/CircularProgressBar.js +8 -4
- package/lib/module/components/CircularProgressBarDoted/CircularProgressBarDoted.js +4 -3
- package/lib/module/components/CircularRating/CircularRating.js +3 -2
- package/lib/module/components/ClusterBubble/ClusterBubble.js +4 -3
- package/lib/module/components/CompareTable/CompareTable.js +73 -44
- package/lib/module/components/CoverageBarComparison/CoverageBarComparison.js +4 -3
- package/lib/module/components/DonutChart/DonutChart.js +5 -4
- package/lib/module/components/Dropdown/Dropdown.js +4 -3
- package/lib/module/components/DropdownInput/DropdownInput.js +4 -3
- package/lib/module/components/ExpandableCheckbox/ExpandableCheckbox.js +2 -1
- package/lib/module/components/FormField/FormField.js +45 -5
- package/lib/module/components/Gauge/Gauge.js +1 -1
- package/lib/module/components/HoldingsCard/HoldingsCard.js +4 -3
- package/lib/module/components/InstitutionBadge/InstitutionBadge.js +3 -2
- package/lib/module/components/ListGroup/ListGroup.js +3 -2
- package/lib/module/components/ListItem/ListItem.js +4 -3
- package/lib/module/components/MediaCard/MediaCard.js +4 -2
- package/lib/module/components/MetricLegendItem/MetricLegendItem.js +4 -3
- package/lib/module/components/MonthlyStatusGrid/MonthlyStatusGrid.js +7 -4
- package/lib/module/components/PoweredByLabel/PoweredByLabel.js +4 -3
- package/lib/module/components/ProductMerchandisingCard/ProductMerchandisingCard.js +109 -35
- package/lib/module/components/ProductOverview/ProductOverview.js +5 -4
- package/lib/module/components/ProgressBadge/ProgressBadge.js +3 -3
- package/lib/module/components/ProjectionMarker/ProjectionMarker.js +4 -3
- package/lib/module/components/Section/Section.js +4 -3
- package/lib/module/components/Slider/Slider.js +4 -3
- package/lib/module/components/Stack/Stack.js +81 -0
- package/lib/module/components/SuggestiveSearch/SuggestiveSearch.js +10 -1
- package/lib/module/components/SummaryTile/SummaryTile.js +4 -3
- package/lib/module/components/Table/Table.js +315 -0
- package/lib/module/components/Text/Text.js +3 -2
- package/lib/module/components/TextInput/TextInput.js +9 -1
- package/lib/module/components/TextSegment/TextSegment.js +3 -2
- package/lib/module/components/ThreadHero/ThreadHero.js +5 -6
- package/lib/module/components/Title/Title.js +3 -2
- package/lib/module/components/Toast/Toast.js +4 -3
- package/lib/module/components/TransactionBubble/TransactionBubble.js +3 -2
- package/lib/module/components/TransactionStatus/TransactionStatus.js +4 -3
- package/lib/module/components/UpiHandle/UpiHandle.js +3 -3
- package/lib/module/components/index.js +2 -0
- package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
- package/lib/module/design-tokens/figma-modes.generated.js +1 -0
- package/lib/module/icons/registry.js +1 -1
- package/lib/module/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.js +11 -3
- package/lib/module/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.js +8 -4
- package/lib/module/utils/react-utils.js +54 -0
- package/lib/module/utils/web-platform-utils.js +58 -0
- package/lib/typescript/src/components/Accordion/Accordion.d.ts +7 -1
- package/lib/typescript/src/components/AccordionCheckbox/AccordionCheckbox.d.ts +7 -1
- package/lib/typescript/src/components/AccountCard/AccountCard.d.ts +7 -1
- package/lib/typescript/src/components/AllocationComparisonChart/AllocationComparisonChart.d.ts +7 -1
- package/lib/typescript/src/components/AreaLineChart/AreaLineChart.d.ts +8 -1
- package/lib/typescript/src/components/Badge/Badge.d.ts +32 -2
- package/lib/typescript/src/components/BrandChip/BrandChip.d.ts +7 -1
- package/lib/typescript/src/components/Button/Button.d.ts +7 -1
- package/lib/typescript/src/components/CardAdvisory/CardAdvisory.d.ts +7 -1
- package/lib/typescript/src/components/CardBankAccount/CardBankAccount.d.ts +7 -1
- package/lib/typescript/src/components/CardCTA/CardCTA.d.ts +27 -5
- package/lib/typescript/src/components/CircularProgressBar/CircularProgressBar.d.ts +7 -1
- package/lib/typescript/src/components/CircularProgressBarDoted/CircularProgressBarDoted.d.ts +7 -1
- package/lib/typescript/src/components/CircularRating/CircularRating.d.ts +7 -1
- package/lib/typescript/src/components/ClusterBubble/ClusterBubble.d.ts +7 -1
- package/lib/typescript/src/components/CompareTable/CompareTable.d.ts +7 -1
- package/lib/typescript/src/components/CoverageBarComparison/CoverageBarComparison.d.ts +7 -1
- package/lib/typescript/src/components/DonutChart/DonutChart.d.ts +7 -1
- package/lib/typescript/src/components/Dropdown/Dropdown.d.ts +7 -1
- package/lib/typescript/src/components/DropdownInput/DropdownInput.d.ts +6 -0
- package/lib/typescript/src/components/ExpandableCheckbox/ExpandableCheckbox.d.ts +7 -1
- package/lib/typescript/src/components/HoldingsCard/HoldingsCard.d.ts +7 -1
- package/lib/typescript/src/components/InstitutionBadge/InstitutionBadge.d.ts +7 -1
- package/lib/typescript/src/components/ListGroup/ListGroup.d.ts +7 -1
- package/lib/typescript/src/components/ListItem/ListItem.d.ts +7 -1
- package/lib/typescript/src/components/MetricLegendItem/MetricLegendItem.d.ts +7 -1
- package/lib/typescript/src/components/MonthlyStatusGrid/MonthlyStatusGrid.d.ts +14 -2
- package/lib/typescript/src/components/PoweredByLabel/PoweredByLabel.d.ts +7 -1
- package/lib/typescript/src/components/ProductMerchandisingCard/ProductMerchandisingCard.d.ts +7 -1
- package/lib/typescript/src/components/ProductOverview/ProductOverview.d.ts +7 -1
- package/lib/typescript/src/components/ProgressBadge/ProgressBadge.d.ts +7 -1
- package/lib/typescript/src/components/ProjectionMarker/ProjectionMarker.d.ts +7 -1
- package/lib/typescript/src/components/Section/Section.d.ts +7 -1
- package/lib/typescript/src/components/Slider/Slider.d.ts +6 -0
- package/lib/typescript/src/components/Stack/Stack.d.ts +81 -0
- package/lib/typescript/src/components/SummaryTile/SummaryTile.d.ts +7 -1
- package/lib/typescript/src/components/Table/Table.d.ts +139 -0
- package/lib/typescript/src/components/Text/Text.d.ts +7 -1
- package/lib/typescript/src/components/TextSegment/TextSegment.d.ts +7 -1
- package/lib/typescript/src/components/ThreadHero/ThreadHero.d.ts +7 -1
- package/lib/typescript/src/components/Title/Title.d.ts +7 -1
- package/lib/typescript/src/components/Toast/Toast.d.ts +7 -1
- package/lib/typescript/src/components/TransactionBubble/TransactionBubble.d.ts +7 -1
- package/lib/typescript/src/components/TransactionStatus/TransactionStatus.d.ts +7 -1
- package/lib/typescript/src/components/UpiHandle/UpiHandle.d.ts +7 -1
- package/lib/typescript/src/components/index.d.ts +4 -2
- package/lib/typescript/src/icons/registry.d.ts +1 -1
- package/lib/typescript/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.d.ts +31 -3
- package/lib/typescript/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.d.ts +18 -2
- package/lib/typescript/src/utils/react-utils.d.ts +37 -0
- package/lib/typescript/src/utils/web-platform-utils.d.ts +36 -0
- package/package.json +1 -1
- package/src/components/Accordion/Accordion.tsx +9 -2
- package/src/components/AccordionCheckbox/AccordionCheckbox.tsx +10 -3
- package/src/components/AccountCard/AccountCard.tsx +10 -3
- package/src/components/AllocationComparisonChart/AllocationComparisonChart.tsx +14 -4
- package/src/components/AreaLineChart/AreaLineChart.tsx +15 -5
- package/src/components/Badge/Badge.tsx +78 -8
- package/src/components/BrandChip/BrandChip.tsx +9 -3
- package/src/components/Button/Button.tsx +9 -2
- package/src/components/CardAdvisory/CardAdvisory.tsx +9 -2
- package/src/components/CardBankAccount/CardBankAccount.tsx +9 -2
- package/src/components/CardCTA/CardCTA.tsx +214 -41
- package/src/components/CardInsight/CardInsight.tsx +7 -1
- package/src/components/CircularProgressBar/CircularProgressBar.tsx +14 -4
- package/src/components/CircularProgressBarDoted/CircularProgressBarDoted.tsx +10 -3
- package/src/components/CircularRating/CircularRating.tsx +9 -2
- package/src/components/ClusterBubble/ClusterBubble.tsx +9 -2
- package/src/components/CompareTable/CompareTable.tsx +98 -50
- package/src/components/CoverageBarComparison/CoverageBarComparison.tsx +9 -2
- package/src/components/DonutChart/DonutChart.tsx +10 -3
- package/src/components/Dropdown/Dropdown.tsx +9 -2
- package/src/components/DropdownInput/DropdownInput.tsx +9 -2
- package/src/components/ExpandableCheckbox/ExpandableCheckbox.tsx +8 -1
- package/src/components/FormField/FormField.tsx +49 -4
- package/src/components/Gauge/Gauge.tsx +1 -1
- package/src/components/HoldingsCard/HoldingsCard.tsx +9 -2
- package/src/components/InstitutionBadge/InstitutionBadge.tsx +9 -2
- package/src/components/ListGroup/ListGroup.tsx +9 -2
- package/src/components/ListItem/ListItem.tsx +10 -3
- package/src/components/MediaCard/MediaCard.tsx +2 -2
- package/src/components/MetricLegendItem/MetricLegendItem.tsx +9 -2
- package/src/components/MonthlyStatusGrid/MonthlyStatusGrid.tsx +17 -2
- package/src/components/PoweredByLabel/PoweredByLabel.tsx +9 -2
- package/src/components/ProductMerchandisingCard/ProductMerchandisingCard.tsx +104 -37
- package/src/components/ProductOverview/ProductOverview.tsx +10 -3
- package/src/components/ProgressBadge/ProgressBadge.tsx +9 -3
- package/src/components/ProjectionMarker/ProjectionMarker.tsx +9 -2
- package/src/components/Section/Section.tsx +10 -3
- package/src/components/Slider/Slider.tsx +9 -2
- package/src/components/Stack/Stack.tsx +131 -0
- package/src/components/SuggestiveSearch/SuggestiveSearch.tsx +10 -1
- package/src/components/SummaryTile/SummaryTile.tsx +9 -2
- package/src/components/Table/Table.tsx +449 -0
- package/src/components/Text/Text.tsx +9 -2
- package/src/components/TextInput/TextInput.tsx +7 -1
- package/src/components/TextSegment/TextSegment.tsx +9 -2
- package/src/components/ThreadHero/ThreadHero.tsx +10 -3
- package/src/components/Title/Title.tsx +9 -2
- package/src/components/Toast/Toast.tsx +9 -2
- package/src/components/TransactionBubble/TransactionBubble.tsx +9 -2
- package/src/components/TransactionStatus/TransactionStatus.tsx +9 -2
- package/src/components/UpiHandle/UpiHandle.tsx +9 -3
- package/src/components/index.ts +23 -2
- package/src/design-tokens/Coin Variables-variables-full.json +1 -1
- package/src/design-tokens/figma-modes.generated.ts +1 -0
- package/src/icons/registry.ts +1 -1
- package/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.tsx +32 -3
- package/src/{components/ProductMerchandisingCard → utils/GlassFill}/GlassFill.web.tsx +25 -4
- package/src/utils/react-utils.ts +61 -0
- package/src/utils/web-platform-utils.ts +68 -0
- package/lib/commonjs/components/MediaCard/GlassFill.js +0 -62
- package/lib/commonjs/components/MediaCard/GlassFill.web.js +0 -48
- package/lib/module/components/MediaCard/GlassFill.js +0 -57
- package/lib/module/components/MediaCard/GlassFill.web.js +0 -43
- package/lib/typescript/src/components/MediaCard/GlassFill.d.ts +0 -47
- package/lib/typescript/src/components/MediaCard/GlassFill.web.d.ts +0 -20
- package/src/components/MediaCard/GlassFill.tsx +0 -89
- package/src/components/MediaCard/GlassFill.web.tsx +0 -53
|
@@ -144,9 +144,13 @@ function GradientMask({
|
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
/**
|
|
147
|
-
*
|
|
147
|
+
* Shared glass / frosted surface for native (iOS + Android).
|
|
148
148
|
*
|
|
149
|
-
*
|
|
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:
|
|
150
154
|
* - `@react-native-community/blur` is a native-only module; importing it on
|
|
151
155
|
* web throws because it references native components not registered there.
|
|
152
156
|
* Metro's platform-extension resolution picks `GlassFill.tsx` for native
|
|
@@ -159,12 +163,16 @@ function GradientMask({
|
|
|
159
163
|
* native module isn't linked in the running binary, the component degrades to
|
|
160
164
|
* a translucent tinted scrim (`reducedTransparencyFallbackColor` / fallback
|
|
161
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.
|
|
162
169
|
*/
|
|
163
170
|
function GlassFill({
|
|
164
171
|
tint = 'dark',
|
|
165
172
|
intensity = 50,
|
|
166
173
|
overlayColor,
|
|
167
174
|
progressive = false,
|
|
175
|
+
androidTintWash = true,
|
|
168
176
|
style
|
|
169
177
|
}) {
|
|
170
178
|
const rawId = useId();
|
|
@@ -246,7 +254,7 @@ function GlassFill({
|
|
|
246
254
|
style: [StyleSheet.absoluteFill, {
|
|
247
255
|
backgroundColor: overlayColor
|
|
248
256
|
}]
|
|
249
|
-
}) : null, Platform.OS === 'android' ? /*#__PURE__*/_jsx(View, {
|
|
257
|
+
}) : null, Platform.OS === 'android' && androidTintWash ? /*#__PURE__*/_jsx(View, {
|
|
250
258
|
style: [StyleSheet.absoluteFill, {
|
|
251
259
|
backgroundColor: 'rgba(255,255,255,0.03)',
|
|
252
260
|
opacity: 0.6
|
|
@@ -5,6 +5,8 @@ import { View, StyleSheet } from 'react-native';
|
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
6
|
const DEFAULT_FALLBACK_DARK = '#1414174a';
|
|
7
7
|
const DEFAULT_FALLBACK_LIGHT = '#ffffff66';
|
|
8
|
+
const DEFAULT_WEB_BLUR_SCALE = 0.32;
|
|
9
|
+
const DEFAULT_WEB_BLUR_MAX_PX = 32;
|
|
8
10
|
|
|
9
11
|
// Mirror of the native ramp (see GlassFill.tsx). Each layer is a `mask-image`
|
|
10
12
|
// gradient whose alpha stops (0 = top, 1 = bottom) ease the blur in; `amount`
|
|
@@ -52,7 +54,7 @@ function toGradient(stops) {
|
|
|
52
54
|
}
|
|
53
55
|
|
|
54
56
|
/**
|
|
55
|
-
* Web counterpart of `GlassFill`.
|
|
57
|
+
* Web counterpart of the shared `GlassFill`.
|
|
56
58
|
*
|
|
57
59
|
* `@react-native-community/blur` ships no web implementation, so on web we
|
|
58
60
|
* render a translucent `View` with `backdrop-filter: blur()`. Native bundles
|
|
@@ -64,15 +66,17 @@ function GlassFill({
|
|
|
64
66
|
intensity = 50,
|
|
65
67
|
overlayColor,
|
|
66
68
|
progressive = false,
|
|
69
|
+
webBlurScale = DEFAULT_WEB_BLUR_SCALE,
|
|
70
|
+
webBlurMaxPx = DEFAULT_WEB_BLUR_MAX_PX,
|
|
67
71
|
style
|
|
68
72
|
}) {
|
|
69
|
-
// intensity 0-100 -> ~0-
|
|
70
|
-
const blurPx = Math.max(0, Math.min(
|
|
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)));
|
|
71
75
|
const tintColor = overlayColor ?? (tint === 'light' ? DEFAULT_FALLBACK_LIGHT : DEFAULT_FALLBACK_DARK);
|
|
72
76
|
if (progressive) {
|
|
73
77
|
// Full peak blur (parity with native) so the frosted glass is clearly
|
|
74
78
|
// engaged at the bottom; the eased masks keep the top fully clear.
|
|
75
|
-
const peakPx = Math.max(1, Math.min(
|
|
79
|
+
const peakPx = Math.max(1, Math.min(webBlurMaxPx, Math.round(intensity * webBlurScale)));
|
|
76
80
|
return /*#__PURE__*/_jsx(View, {
|
|
77
81
|
style: [StyleSheet.absoluteFill, style],
|
|
78
82
|
pointerEvents: "none",
|
|
@@ -72,6 +72,40 @@ 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
|
+
|
|
75
109
|
/**
|
|
76
110
|
* Combines several refs (object refs and/or callback refs) into a single
|
|
77
111
|
* callback ref. Useful when a component needs to keep its own internal ref to a
|
|
@@ -92,6 +126,26 @@ export function mergeRefs(...refs) {
|
|
|
92
126
|
});
|
|
93
127
|
};
|
|
94
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
|
+
}
|
|
95
149
|
|
|
96
150
|
/**
|
|
97
151
|
* Flattens React children, extracting them from Fragments.
|
|
@@ -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
|
package/lib/typescript/src/components/AllocationComparisonChart/AllocationComparisonChart.d.ts
CHANGED
|
@@ -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
|
|
@@ -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;
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { View, type ViewStyle, type TextStyle } from 'react-native';
|
|
3
3
|
import type { Modes } from '../../design-tokens';
|
|
4
|
-
type
|
|
4
|
+
export type BadgeType = 'default' | 'glass';
|
|
5
|
+
export type BadgeProps = {
|
|
5
6
|
/** Visible label text shown inside the badge */
|
|
6
7
|
label?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Visual style (matches the Figma `type` property). `'default'` is a solid
|
|
10
|
+
* token-colored pill; `'glass'` is a frosted, translucent pill backed by a
|
|
11
|
+
* real background blur (`GlassFill`) — the same glass surface used at the
|
|
12
|
+
* bottom of media/merchandising cards.
|
|
13
|
+
*/
|
|
14
|
+
type?: BadgeType;
|
|
7
15
|
/** Modes used to resolve design tokens (e.g. Appearance, Size) */
|
|
8
16
|
modes?: Modes;
|
|
9
17
|
/** Optional press handler to make the badge interactive */
|
|
@@ -11,13 +19,35 @@ type BadgeProps = {
|
|
|
11
19
|
accessibilityLabel?: string;
|
|
12
20
|
style?: ViewStyle;
|
|
13
21
|
labelStyle?: TextStyle;
|
|
22
|
+
/**
|
|
23
|
+
* Optional leading node (icon/image) rendered before the label, inside the
|
|
24
|
+
* badge surface. When present, the badge lays its contents out in a row.
|
|
25
|
+
*/
|
|
26
|
+
leading?: React.ReactNode;
|
|
27
|
+
/**
|
|
28
|
+
* Glass-only override for the translucent overlay color painted over the live
|
|
29
|
+
* blur. Defaults to the `badge/glass/color/background` token. Ignored for the
|
|
30
|
+
* `'default'` type.
|
|
31
|
+
*/
|
|
32
|
+
glassOverlayColor?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Glass-only override for the blur intensity on the 0–100 scale. Defaults to
|
|
35
|
+
* the `blur/minimal` token. Ignored for the `'default'` type.
|
|
36
|
+
*/
|
|
37
|
+
glassIntensity?: number;
|
|
14
38
|
/**
|
|
15
39
|
* Explicit per-instance loading override. When `true`, renders a
|
|
16
40
|
* badge-shaped skeleton placeholder instead of the badge. Defaults to
|
|
17
41
|
* inheriting from the surrounding `<SkeletonGroup>`.
|
|
18
42
|
*/
|
|
19
43
|
loading?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
46
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
47
|
+
* lines as it needs even when horizontal space is tight.
|
|
48
|
+
*/
|
|
49
|
+
disableTruncation?: boolean;
|
|
20
50
|
} & Omit<React.ComponentProps<typeof View>, 'style' | 'accessibilityLabel' | 'accessibilityRole'>;
|
|
21
|
-
declare function Badge({ label, modes, onPress, accessibilityLabel, style, labelStyle, loading, ...rest }: BadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
51
|
+
declare function Badge({ label, type, modes, onPress, accessibilityLabel, style, labelStyle, loading, disableTruncation, leading, glassOverlayColor, glassIntensity, ...rest }: BadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
22
52
|
export default Badge;
|
|
23
53
|
//# sourceMappingURL=Badge.d.ts.map
|
|
@@ -25,6 +25,12 @@ export type BrandChipProps = {
|
|
|
25
25
|
labelStyle?: StyleProp<TextStyle>;
|
|
26
26
|
/** Accessibility label. Defaults to `label`. */
|
|
27
27
|
accessibilityLabel?: string;
|
|
28
|
+
/**
|
|
29
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
30
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
31
|
+
* lines as it needs even when horizontal space is tight.
|
|
32
|
+
*/
|
|
33
|
+
disableTruncation?: boolean;
|
|
28
34
|
};
|
|
29
35
|
/**
|
|
30
36
|
* `BrandChip` renders a compact pill that pairs a small institution avatar
|
|
@@ -38,7 +44,7 @@ export type BrandChipProps = {
|
|
|
38
44
|
* @component
|
|
39
45
|
* @param {BrandChipProps} props
|
|
40
46
|
*/
|
|
41
|
-
declare function BrandChip({ label, imageSource, avatarSlot, onPress, modes: propModes, style, labelStyle, accessibilityLabel, }: BrandChipProps): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
declare function BrandChip({ label, imageSource, avatarSlot, onPress, modes: propModes, style, labelStyle, accessibilityLabel, disableTruncation, }: BrandChipProps): import("react/jsx-runtime").JSX.Element;
|
|
42
48
|
declare const _default: React.MemoExoticComponent<typeof BrandChip>;
|
|
43
49
|
export default _default;
|
|
44
50
|
//# sourceMappingURL=BrandChip.d.ts.map
|
|
@@ -48,6 +48,12 @@ export type ButtonProps = SafePressableProps & {
|
|
|
48
48
|
* the group.
|
|
49
49
|
*/
|
|
50
50
|
loading?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
53
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
54
|
+
* lines as it needs even when horizontal space is tight.
|
|
55
|
+
*/
|
|
56
|
+
disableTruncation?: boolean;
|
|
51
57
|
};
|
|
52
58
|
/**
|
|
53
59
|
* Button component that maps directly to the Figma design using design tokens.
|
|
@@ -84,7 +90,7 @@ export type ButtonProps = SafePressableProps & {
|
|
|
84
90
|
* advantage of this should pass stable `modes` (the default `EMPTY_MODES`
|
|
85
91
|
* is already stable) and stable callback props.
|
|
86
92
|
*/
|
|
87
|
-
declare function ButtonImpl({ label, children, renderContent, leading, trailing, icon, modes, onPress, disabled, style, labelStyle, accessibilityLabel, accessibilityHint, accessibilityState, webAccessibilityProps, loading, ...rest }: ButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
93
|
+
declare function ButtonImpl({ label, children, renderContent, leading, trailing, icon, modes, onPress, disabled, style, labelStyle, accessibilityLabel, accessibilityHint, accessibilityState, webAccessibilityProps, loading, disableTruncation, ...rest }: ButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
88
94
|
declare const Button: React.MemoExoticComponent<typeof ButtonImpl>;
|
|
89
95
|
export default Button;
|
|
90
96
|
//# sourceMappingURL=Button.d.ts.map
|
|
@@ -43,8 +43,14 @@ export type CardAdvisoryProps = CardAdvisoryBaseProps & {
|
|
|
43
43
|
nudgeStyle?: StyleProp<ViewStyle>;
|
|
44
44
|
/** Accessibility label for the full card. */
|
|
45
45
|
accessibilityLabel?: string;
|
|
46
|
+
/**
|
|
47
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
48
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
49
|
+
* lines as it needs even when horizontal space is tight.
|
|
50
|
+
*/
|
|
51
|
+
disableTruncation?: boolean;
|
|
46
52
|
};
|
|
47
|
-
declare function CardAdvisory({ title, description, value, valueLabel, showInfoIcon, showNudge, nudgeBody, nudgeButtonLabel, onPressNudgeButton, titleEndSlot, progressSlot, nudgeSlot, modes: propModes, style, mainContentStyle, titleStyle, descriptionStyle, progressStyle, nudgeStyle, accessibilityLabel, ...rest }: CardAdvisoryProps): import("react/jsx-runtime").JSX.Element;
|
|
53
|
+
declare function CardAdvisory({ title, description, value, valueLabel, showInfoIcon, showNudge, nudgeBody, nudgeButtonLabel, onPressNudgeButton, titleEndSlot, progressSlot, nudgeSlot, modes: propModes, style, mainContentStyle, titleStyle, descriptionStyle, progressStyle, nudgeStyle, accessibilityLabel, disableTruncation, ...rest }: CardAdvisoryProps): import("react/jsx-runtime").JSX.Element;
|
|
48
54
|
declare const _default: React.MemoExoticComponent<typeof CardAdvisory>;
|
|
49
55
|
export default _default;
|
|
50
56
|
//# sourceMappingURL=CardAdvisory.d.ts.map
|
|
@@ -67,6 +67,12 @@ export type CardBankAccountProps = {
|
|
|
67
67
|
style?: StyleProp<ViewStyle>;
|
|
68
68
|
/** Accessibility label for the card region. */
|
|
69
69
|
accessibilityLabel?: string;
|
|
70
|
+
/**
|
|
71
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
72
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
73
|
+
* lines as it needs even when horizontal space is tight.
|
|
74
|
+
*/
|
|
75
|
+
disableTruncation?: boolean;
|
|
70
76
|
};
|
|
71
77
|
/**
|
|
72
78
|
* `CardBankAccount` renders a bank account summary card composed of:
|
|
@@ -82,6 +88,6 @@ export type CardBankAccountProps = {
|
|
|
82
88
|
* @component
|
|
83
89
|
* @param {CardBankAccountProps} props
|
|
84
90
|
*/
|
|
85
|
-
declare function CardBankAccount({ institutionName, institutionAvatar, badge, headerSlot, items, children, buttonLabel, onButtonPress, footer, modes: propModes, style, accessibilityLabel, }: CardBankAccountProps): import("react/jsx-runtime").JSX.Element;
|
|
91
|
+
declare function CardBankAccount({ institutionName, institutionAvatar, badge, headerSlot, items, children, buttonLabel, onButtonPress, footer, modes: propModes, style, accessibilityLabel, disableTruncation, }: CardBankAccountProps): import("react/jsx-runtime").JSX.Element;
|
|
86
92
|
export default CardBankAccount;
|
|
87
93
|
//# sourceMappingURL=CardBankAccount.d.ts.map
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { type ViewStyle, type StyleProp } from 'react-native';
|
|
2
|
+
import { type ViewStyle, type StyleProp, type ImageSourcePropType } from 'react-native';
|
|
3
3
|
import type { Modes } from '../../design-tokens';
|
|
4
|
-
export type CardCTAType = 'cta' | 'rating';
|
|
4
|
+
export type CardCTAType = 'cta' | 'rating' | 'sip';
|
|
5
|
+
/**
|
|
6
|
+
* Accepted `type` values. The canonical (and historical) values are lowercase
|
|
7
|
+
* (`'cta' | 'rating' | 'sip'`). The Figma variant names are PascalCase
|
|
8
|
+
* (`'CTA' | 'Rating' | 'Sip'`) — we accept those too and normalize internally
|
|
9
|
+
* so callers can pass either casing without a breaking change.
|
|
10
|
+
*/
|
|
11
|
+
export type CardCTATypeInput = CardCTAType | 'CTA' | 'Rating' | 'Sip';
|
|
5
12
|
export type CardCTAProps = {
|
|
6
|
-
/**
|
|
7
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Visual layout variant. `'cta'` (default) is the horizontal CTA card,
|
|
15
|
+
* `'rating'` is the rating card, and `'sip'` is the avatar-led card with a
|
|
16
|
+
* headline/description/subtitle footer. PascalCase Figma names
|
|
17
|
+
* (`'CTA' | 'Rating' | 'Sip'`) are also accepted.
|
|
18
|
+
*/
|
|
19
|
+
type?: CardCTATypeInput;
|
|
8
20
|
/** Title text */
|
|
9
21
|
title?: string;
|
|
10
22
|
/** Body / subtitle text */
|
|
@@ -23,6 +35,14 @@ export type CardCTAProps = {
|
|
|
23
35
|
onPressLike?: () => void;
|
|
24
36
|
/** Callback for the default dislike action */
|
|
25
37
|
onPressDislike?: () => void;
|
|
38
|
+
/** [sip] Headline text shown above the description row */
|
|
39
|
+
headline?: string;
|
|
40
|
+
/** [sip] Description text (left of subtitle) */
|
|
41
|
+
description?: string;
|
|
42
|
+
/** [sip] Subtitle text (right of description) */
|
|
43
|
+
subtitle?: string;
|
|
44
|
+
/** [sip] Image source for the default Avatar */
|
|
45
|
+
avatarSource?: ImageSourcePropType | string;
|
|
26
46
|
/** Mode configuration for design token resolution */
|
|
27
47
|
modes?: Modes;
|
|
28
48
|
/** Slot: replaces the default icon area (right side) */
|
|
@@ -33,9 +53,11 @@ export type CardCTAProps = {
|
|
|
33
53
|
ratingBadgeSlot?: React.ReactNode;
|
|
34
54
|
/** Slot: replaces the default like/dislike action group */
|
|
35
55
|
ratingActionsSlot?: React.ReactNode;
|
|
56
|
+
/** [sip] Slot: replaces the default Avatar */
|
|
57
|
+
avatarSlot?: React.ReactNode;
|
|
36
58
|
/** Container style overrides */
|
|
37
59
|
style?: StyleProp<ViewStyle>;
|
|
38
60
|
};
|
|
39
|
-
declare function CardCTA({ type, title, body, iconName, buttonLabel, onPressButton, ratingLabel, showRatingActions, onPressLike, onPressDislike, modes: propModes, iconSlot, buttonSlot, ratingBadgeSlot, ratingActionsSlot, style, }: CardCTAProps): import("react/jsx-runtime").JSX.Element;
|
|
61
|
+
declare function CardCTA({ type, title, body, iconName, buttonLabel, onPressButton, ratingLabel, showRatingActions, onPressLike, onPressDislike, headline, description, subtitle, avatarSource, modes: propModes, iconSlot, buttonSlot, ratingBadgeSlot, ratingActionsSlot, avatarSlot, style, }: CardCTAProps): import("react/jsx-runtime").JSX.Element;
|
|
40
62
|
export default CardCTA;
|
|
41
63
|
//# sourceMappingURL=CardCTA.d.ts.map
|
|
@@ -32,7 +32,13 @@ export type CircularProgressBarProps = CircularProgressBarBaseProps & {
|
|
|
32
32
|
supportTextStyle?: StyleProp<TextStyle>;
|
|
33
33
|
/** Accessibility label for the whole progress component. */
|
|
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
|
-
declare function CircularProgressBar({ value, state, valueLabel, supportText, modes: propModes, style, trackStyle, progressStyle, valueStyle, supportTextStyle, accessibilityLabel, ...rest }: CircularProgressBarProps): import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
declare function CircularProgressBar({ value, state, valueLabel, supportText, modes: propModes, style, trackStyle, progressStyle, valueStyle, supportTextStyle, accessibilityLabel, disableTruncation, ...rest }: CircularProgressBarProps): import("react/jsx-runtime").JSX.Element;
|
|
37
43
|
export default CircularProgressBar;
|
|
38
44
|
//# sourceMappingURL=CircularProgressBar.d.ts.map
|
package/lib/typescript/src/components/CircularProgressBarDoted/CircularProgressBarDoted.d.ts
CHANGED
|
@@ -43,7 +43,13 @@ export type CircularProgressBarDotedProps = CircularProgressBarDotedBaseProps &
|
|
|
43
43
|
tierLabelStyle?: StyleProp<TextStyle>;
|
|
44
44
|
/** Accessibility label for the whole progress component. */
|
|
45
45
|
accessibilityLabel?: string;
|
|
46
|
+
/**
|
|
47
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
48
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
49
|
+
* lines as it needs even when horizontal space is tight.
|
|
50
|
+
*/
|
|
51
|
+
disableTruncation?: boolean;
|
|
46
52
|
};
|
|
47
|
-
declare function CircularProgressBarDoted({ value, dotCount, label, tierLabel, showChevron, onPress, onTierPress, modes: propModes, children, style, ringStyle, trackDotStyle, progressDotStyle, contentStyle, scoreTierStyle, scoreTrendStyle, labelStyle, scoreLabelStyle, tierLabelStyle, accessibilityLabel, onLayout, ...rest }: CircularProgressBarDotedProps): import("react/jsx-runtime").JSX.Element;
|
|
53
|
+
declare function CircularProgressBarDoted({ value, dotCount, label, tierLabel, showChevron, onPress, onTierPress, modes: propModes, children, style, ringStyle, trackDotStyle, progressDotStyle, contentStyle, scoreTierStyle, scoreTrendStyle, labelStyle, scoreLabelStyle, tierLabelStyle, accessibilityLabel, disableTruncation, onLayout, ...rest }: CircularProgressBarDotedProps): import("react/jsx-runtime").JSX.Element;
|
|
48
54
|
export default CircularProgressBarDoted;
|
|
49
55
|
//# sourceMappingURL=CircularProgressBarDoted.d.ts.map
|
|
@@ -43,8 +43,14 @@ export type CircularRatingProps = CircularRatingBaseProps & {
|
|
|
43
43
|
nudgeStyle?: StyleProp<ViewStyle>;
|
|
44
44
|
/** Accessibility label for the whole component. */
|
|
45
45
|
accessibilityLabel?: string;
|
|
46
|
+
/**
|
|
47
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
48
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
49
|
+
* lines as it needs even when horizontal space is tight.
|
|
50
|
+
*/
|
|
51
|
+
disableTruncation?: boolean;
|
|
46
52
|
};
|
|
47
|
-
declare function CircularRating({ value, dotCount, label, tierLabel, footerText, showFooterIcon, showNudge, nudgeBody, nudgeButtonLabel, onPressNudgeButton, onTierPress, footerSlot, nudgeSlot, modes: propModes, style, ratingStyle, footerStyle, footerTextStyle, nudgeStyle, accessibilityLabel, ...rest }: CircularRatingProps): import("react/jsx-runtime").JSX.Element;
|
|
53
|
+
declare function CircularRating({ value, dotCount, label, tierLabel, footerText, showFooterIcon, showNudge, nudgeBody, nudgeButtonLabel, onPressNudgeButton, onTierPress, footerSlot, nudgeSlot, modes: propModes, style, ratingStyle, footerStyle, footerTextStyle, nudgeStyle, accessibilityLabel, disableTruncation, ...rest }: CircularRatingProps): import("react/jsx-runtime").JSX.Element;
|
|
48
54
|
declare const _default: React.MemoExoticComponent<typeof CircularRating>;
|
|
49
55
|
export default _default;
|
|
50
56
|
//# sourceMappingURL=CircularRating.d.ts.map
|
|
@@ -61,6 +61,12 @@ export type ClusterBubbleProps = {
|
|
|
61
61
|
modes?: Modes;
|
|
62
62
|
/** Accessibility label. Defaults to a `value + label` composite. */
|
|
63
63
|
accessibilityLabel?: string;
|
|
64
|
+
/**
|
|
65
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
66
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
67
|
+
* lines as it needs even when horizontal space is tight.
|
|
68
|
+
*/
|
|
69
|
+
disableTruncation?: boolean;
|
|
64
70
|
};
|
|
65
71
|
/**
|
|
66
72
|
* `ClusterBubble` is the atomic circle that composes a `BubbleChart`. It renders
|
|
@@ -72,6 +78,6 @@ export type ClusterBubbleProps = {
|
|
|
72
78
|
*
|
|
73
79
|
* @component
|
|
74
80
|
*/
|
|
75
|
-
declare function ClusterBubble({ value, label, size, appearance, color, labelPlacement, labelDirection, labelGap, autoInsideMinSize, insideTextColor, onPress, valueStyle, labelStyle, circleStyle, style, modes: propModes, accessibilityLabel, }: ClusterBubbleProps): import("react/jsx-runtime").JSX.Element;
|
|
81
|
+
declare function ClusterBubble({ value, label, size, appearance, color, labelPlacement, labelDirection, labelGap, autoInsideMinSize, insideTextColor, onPress, valueStyle, labelStyle, circleStyle, style, modes: propModes, accessibilityLabel, disableTruncation, }: ClusterBubbleProps): import("react/jsx-runtime").JSX.Element;
|
|
76
82
|
export default ClusterBubble;
|
|
77
83
|
//# sourceMappingURL=ClusterBubble.d.ts.map
|
|
@@ -70,6 +70,12 @@ export type CompareTableProps = {
|
|
|
70
70
|
modes?: Modes;
|
|
71
71
|
/** Override the outer container style. */
|
|
72
72
|
style?: StyleProp<ViewStyle>;
|
|
73
|
+
/**
|
|
74
|
+
* When `true`, disables text truncation: the trailing ellipsis (`…`) is never
|
|
75
|
+
* shown and any `numberOfLines` clamp is ignored, so the text wraps to as many
|
|
76
|
+
* lines as it needs even when horizontal space is tight.
|
|
77
|
+
*/
|
|
78
|
+
disableTruncation?: boolean;
|
|
73
79
|
};
|
|
74
80
|
/**
|
|
75
81
|
* CompareTable renders a product comparison surface: a row of selection cards
|
|
@@ -83,6 +89,6 @@ export type CompareTableProps = {
|
|
|
83
89
|
*
|
|
84
90
|
* @component
|
|
85
91
|
*/
|
|
86
|
-
declare function CompareTable({ columns, sections, onAddColumn, addColumnLabel, maxColumns, modes, style, }: CompareTableProps): import("react/jsx-runtime").JSX.Element;
|
|
92
|
+
declare function CompareTable({ columns, sections, onAddColumn, addColumnLabel, maxColumns, modes, style, disableTruncation, }: CompareTableProps): import("react/jsx-runtime").JSX.Element;
|
|
87
93
|
export default CompareTable;
|
|
88
94
|
//# sourceMappingURL=CompareTable.d.ts.map
|