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
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,22 @@ All notable changes to this project are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
6
6
|
|
|
7
|
+
## [0.1.12] - 2026-06-22
|
|
8
|
+
|
|
9
|
+
- Added `Stack` — token-driven vertical/horizontal layout container with `equalHeight` / `fullWidth` stretch enforcement, mode cascade to children, and `injectChildStyle` for cross-axis alignment that children cannot override.
|
|
10
|
+
- Added `Table` — compound data table (`TableHeader`, `TableHeaderCell`, `TableBody`, `TableRow`, `TableCell`) with token-driven header/body styling and horizontal scroll support.
|
|
11
|
+
- `CardCTA` — new `sip` variant (avatar-led card with headline / description / subtitle footer); accepts PascalCase Figma variant names (`CTA` / `Rating` / `Sip`) via `CardCTATypeInput`; body typography defaults aligned to Figma.
|
|
12
|
+
- `Badge` — new `glass` type (frosted pill via shared `GlassFill`); optional `leading` slot; `glassOverlayColor` / `glassIntensity` overrides; exported `BadgeProps` and `BadgeType`.
|
|
13
|
+
- `CompareTable` — feature rows now render through the shared `Table` primitive; selection cards pick up `selectionCard/radius`; `disableTruncation` support.
|
|
14
|
+
- `ProductMerchandisingCard` — footer special badge now uses `<Badge type="glass">`; progressive footer blur via `MaskedView` + gradient mask on native; `disableTruncation` support.
|
|
15
|
+
- `GlassFill` — consolidated into shared `src/utils/GlassFill/` (native blur + web `backdrop-filter`); removed per-component copies under `MediaCard` and `ProductMerchandisingCard`.
|
|
16
|
+
- `FormField` — iOS single-line input no longer applies row-height token as `lineHeight` (fixes vertically sunk text on iOS); web blur-on-outside-press via `useWebOutsidePress` so fields exit Active state when tapping buttons/links outside.
|
|
17
|
+
- Shared utilities — `injectChildStyle`, `resolveTruncation`, and `useWebOutsidePress` in `react-utils` / `web-platform-utils`.
|
|
18
|
+
- `disableTruncation` — opt-out of ellipsis / `numberOfLines` clamps rolled out across interactive and data-display components (e.g. `ListItem`, `Button`, `CompareTable`, charts, form controls).
|
|
19
|
+
- Figma/token sync pass; refreshed `.token-metadata.json`, `figma-modes.generated.ts`, icons registry, and Coin Variables tokens.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
7
23
|
## [0.1.8] - 2026-06-12
|
|
8
24
|
|
|
9
25
|
- Added `BenefitCard` — header highlight + body benefit rows with icon/title/trailing value and optional CTA.
|
|
@@ -67,6 +67,7 @@ function Accordion({
|
|
|
67
67
|
accessibilityHint,
|
|
68
68
|
accessibilityState,
|
|
69
69
|
webAccessibilityProps,
|
|
70
|
+
disableTruncation,
|
|
70
71
|
...rest
|
|
71
72
|
}) {
|
|
72
73
|
const [internalExpanded, setInternalExpanded] = (0, _react.useState)(defaultExpanded);
|
|
@@ -166,7 +167,7 @@ function Accordion({
|
|
|
166
167
|
...webProps,
|
|
167
168
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
168
169
|
style: titleStyle,
|
|
169
|
-
|
|
170
|
+
...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
|
|
170
171
|
children: title
|
|
171
172
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
|
|
172
173
|
name: isExpanded ? 'ic_minus' : 'ic_add',
|
|
@@ -64,7 +64,8 @@ function AccordionCheckbox({
|
|
|
64
64
|
children,
|
|
65
65
|
modes = _reactUtils.EMPTY_MODES,
|
|
66
66
|
style,
|
|
67
|
-
accessibilityLabel
|
|
67
|
+
accessibilityLabel,
|
|
68
|
+
disableTruncation
|
|
68
69
|
}) {
|
|
69
70
|
const isExpandedControlled = controlledExpanded !== undefined;
|
|
70
71
|
const [internalExpanded, setInternalExpanded] = (0, _react.useState)(defaultExpanded);
|
|
@@ -209,12 +210,12 @@ function AccordionCheckbox({
|
|
|
209
210
|
style: textWrapStyle,
|
|
210
211
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
211
212
|
style: titleStyle,
|
|
212
|
-
|
|
213
|
+
...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
|
|
213
214
|
selectable: false,
|
|
214
215
|
children: title
|
|
215
216
|
}), subtitle ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
216
217
|
style: subtitleStyle,
|
|
217
|
-
|
|
218
|
+
...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
|
|
218
219
|
selectable: false,
|
|
219
220
|
children: subtitle
|
|
220
221
|
}) : null]
|
|
@@ -78,7 +78,8 @@ function AccountCard({
|
|
|
78
78
|
modes = _reactUtils.EMPTY_MODES,
|
|
79
79
|
style,
|
|
80
80
|
accessibilityLabel,
|
|
81
|
-
accessibilityHint
|
|
81
|
+
accessibilityHint,
|
|
82
|
+
disableTruncation
|
|
82
83
|
}) {
|
|
83
84
|
const iconModes = (0, _react.useMemo)(() => modes === _reactUtils.EMPTY_MODES ? ADD_ICON_DEFAULT_MODES : {
|
|
84
85
|
...ADD_ICON_DEFAULT_MODES,
|
|
@@ -211,11 +212,11 @@ function AccountCard({
|
|
|
211
212
|
},
|
|
212
213
|
children: [title != null && title !== '' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
213
214
|
style: titleStyle,
|
|
214
|
-
|
|
215
|
+
...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
|
|
215
216
|
children: title
|
|
216
217
|
}) : null, showSubtitle ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
217
218
|
style: subtitleStyle,
|
|
218
|
-
|
|
219
|
+
...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
|
|
219
220
|
children: subtitle
|
|
220
221
|
}) : null]
|
|
221
222
|
}) : null]
|
|
@@ -67,7 +67,8 @@ function SegmentBar({
|
|
|
67
67
|
baselineHeightPx,
|
|
68
68
|
baselineLabel,
|
|
69
69
|
showMarker,
|
|
70
|
-
theme
|
|
70
|
+
theme,
|
|
71
|
+
disableTruncation
|
|
71
72
|
}) {
|
|
72
73
|
const {
|
|
73
74
|
barWidth,
|
|
@@ -94,7 +95,7 @@ function SegmentBar({
|
|
|
94
95
|
},
|
|
95
96
|
accessibilityLabel: segment.accessibilityLabel,
|
|
96
97
|
children: [showValueLabel ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
97
|
-
|
|
98
|
+
...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
|
|
98
99
|
style: labelStyle,
|
|
99
100
|
children: segment.valueLabel
|
|
100
101
|
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
@@ -140,7 +141,7 @@ function SegmentBar({
|
|
|
140
141
|
strokeDasharray: "2 2"
|
|
141
142
|
})
|
|
142
143
|
}), isShown(baselineLabel) ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
143
|
-
|
|
144
|
+
...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
|
|
144
145
|
style: [labelStyle, {
|
|
145
146
|
marginLeft: 6
|
|
146
147
|
}],
|
|
@@ -149,7 +150,7 @@ function SegmentBar({
|
|
|
149
150
|
}) : null]
|
|
150
151
|
}) : null
|
|
151
152
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
152
|
-
|
|
153
|
+
...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
|
|
153
154
|
style: labelStyle,
|
|
154
155
|
children: segment.label
|
|
155
156
|
})]
|
|
@@ -186,7 +187,8 @@ function AllocationComparisonChart({
|
|
|
186
187
|
style,
|
|
187
188
|
chartStyle,
|
|
188
189
|
legendStyle,
|
|
189
|
-
accessibilityLabel
|
|
190
|
+
accessibilityLabel,
|
|
191
|
+
disableTruncation
|
|
190
192
|
}) {
|
|
191
193
|
const {
|
|
192
194
|
modes: globalModes
|
|
@@ -290,7 +292,8 @@ function AllocationComparisonChart({
|
|
|
290
292
|
baselineHeightPx: baselineHeightPx,
|
|
291
293
|
baselineLabel: baselineLabel,
|
|
292
294
|
showMarker: showMarker,
|
|
293
|
-
theme: theme
|
|
295
|
+
theme: theme,
|
|
296
|
+
disableTruncation: disableTruncation
|
|
294
297
|
}, segment.key ?? `segment-${index}`);
|
|
295
298
|
})
|
|
296
299
|
})]
|
|
@@ -123,7 +123,8 @@ function AreaLineChart({
|
|
|
123
123
|
modes: propModes = _reactUtils.EMPTY_MODES,
|
|
124
124
|
style,
|
|
125
125
|
children,
|
|
126
|
-
accessibilityLabel
|
|
126
|
+
accessibilityLabel,
|
|
127
|
+
disableTruncation
|
|
127
128
|
}) {
|
|
128
129
|
const {
|
|
129
130
|
modes: globalModes
|
|
@@ -243,8 +244,9 @@ function AreaLineChart({
|
|
|
243
244
|
formatX,
|
|
244
245
|
formatY,
|
|
245
246
|
showDots,
|
|
246
|
-
modes
|
|
247
|
-
|
|
247
|
+
modes,
|
|
248
|
+
disableTruncation
|
|
249
|
+
}), [plotWidth, height, inset, xScale, yScale, yTicks, indexXs, count, resolvedSeries, curve, activeIndex, setActiveIndex, xLabels, formatX, formatY, showDots, modes, disableTruncation]);
|
|
248
250
|
const isMultiSeries = resolvedSeries.length > 1;
|
|
249
251
|
const resolvedFormatValue = formatValue ?? (v => formatY(v));
|
|
250
252
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ChartContext.Provider, {
|
|
@@ -385,7 +387,8 @@ function ChartYAxis({
|
|
|
385
387
|
yScale,
|
|
386
388
|
yTicks,
|
|
387
389
|
formatY,
|
|
388
|
-
modes
|
|
390
|
+
modes,
|
|
391
|
+
disableTruncation
|
|
389
392
|
} = useChart();
|
|
390
393
|
const typo = useAxisTypography(modes);
|
|
391
394
|
const format = formatLabel ?? formatY;
|
|
@@ -413,7 +416,7 @@ function ChartYAxis({
|
|
|
413
416
|
},
|
|
414
417
|
children: showLabels ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
415
418
|
style: typo.style,
|
|
416
|
-
|
|
419
|
+
...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
|
|
417
420
|
children: format(t)
|
|
418
421
|
}) : null
|
|
419
422
|
}, `yl-${t}`);
|
|
@@ -464,7 +467,8 @@ function ChartXAxis({
|
|
|
464
467
|
formatX,
|
|
465
468
|
modes,
|
|
466
469
|
activeIndex,
|
|
467
|
-
setActiveIndex
|
|
470
|
+
setActiveIndex,
|
|
471
|
+
disableTruncation
|
|
468
472
|
} = useChart();
|
|
469
473
|
const typo = useAxisTypography(modes);
|
|
470
474
|
const format = formatLabel ?? formatX;
|
|
@@ -510,7 +514,7 @@ function ChartXAxis({
|
|
|
510
514
|
color: activeColor,
|
|
511
515
|
fontWeight: '700'
|
|
512
516
|
} : null],
|
|
513
|
-
|
|
517
|
+
...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
|
|
514
518
|
children: format(label, i)
|
|
515
519
|
});
|
|
516
520
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
@@ -10,21 +10,34 @@ var _figmaVariablesResolver = require("../../design-tokens/figma-variables-resol
|
|
|
10
10
|
var _reactUtils = require("../../utils/react-utils");
|
|
11
11
|
var _Skeleton = _interopRequireDefault(require("../../skeleton/Skeleton"));
|
|
12
12
|
var _SkeletonGroup = require("../../skeleton/SkeletonGroup");
|
|
13
|
+
var _GlassFill = _interopRequireDefault(require("../../utils/GlassFill/GlassFill"));
|
|
13
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
15
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
16
|
function Badge({
|
|
16
17
|
label = 'Label',
|
|
18
|
+
type = 'default',
|
|
17
19
|
modes = _reactUtils.EMPTY_MODES,
|
|
18
20
|
onPress,
|
|
19
21
|
accessibilityLabel,
|
|
20
22
|
style,
|
|
21
23
|
labelStyle,
|
|
22
24
|
loading,
|
|
25
|
+
disableTruncation,
|
|
26
|
+
leading,
|
|
27
|
+
glassOverlayColor,
|
|
28
|
+
glassIntensity,
|
|
23
29
|
...rest
|
|
24
30
|
}) {
|
|
25
|
-
|
|
31
|
+
const isGlass = type === 'glass';
|
|
32
|
+
const hasLeading = leading != null;
|
|
33
|
+
|
|
34
|
+
// Resolve token values (fall back to sensible defaults). The glass type
|
|
35
|
+
// swaps the solid fill for a translucent overlay + white label, matching the
|
|
36
|
+
// Figma `badge/glass/*` tokens.
|
|
26
37
|
const backgroundColor = (0, _figmaVariablesResolver.getVariableByName)('badge/color/background', modes) || '#d8effe';
|
|
27
|
-
const
|
|
38
|
+
const glassBackground = (0, _figmaVariablesResolver.getVariableByName)('badge/glass/color/background', modes) || '#ffffff26';
|
|
39
|
+
const glassLabelColor = (0, _figmaVariablesResolver.getVariableByName)('badge/glass/color/label', modes) || '#ffffff';
|
|
40
|
+
const labelColor = isGlass ? glassLabelColor : (0, _figmaVariablesResolver.getVariableByName)('badge/color/label', modes) || '#000000';
|
|
28
41
|
const fontSize = Number((0, _figmaVariablesResolver.getVariableByName)('badge/label/fontSize', modes)) || 12;
|
|
29
42
|
const fontFamily = (0, _figmaVariablesResolver.getVariableByName)('badge/fontFamily', modes) || undefined;
|
|
30
43
|
const fontWeight = (0, _figmaVariablesResolver.getVariableByName)('badge/label/fontWeight', modes) || '600';
|
|
@@ -32,6 +45,9 @@ function Badge({
|
|
|
32
45
|
const paddingVertical = Number((0, _figmaVariablesResolver.getVariableByName)('badge/padding/vertical', modes)) || 4;
|
|
33
46
|
const borderRadius = Number((0, _figmaVariablesResolver.getVariableByName)('badge/radius', modes)) || 4;
|
|
34
47
|
const lineHeight = Number((0, _figmaVariablesResolver.getVariableByName)('badge/label/lineHeight', modes)) || Math.round(fontSize * 1.2);
|
|
48
|
+
// Figma `blur/minimal` (px radius) -> GlassFill's 0–100 intensity scale, the
|
|
49
|
+
// same 1:1 mapping the merchandising card footer uses.
|
|
50
|
+
const blurIntensity = Math.max(0, Math.min(100, Math.round(Number((0, _figmaVariablesResolver.getVariableByName)('blur/minimal', modes)) || 29)));
|
|
35
51
|
|
|
36
52
|
// Skeleton short-circuit. Size derived from the same tokens the loaded
|
|
37
53
|
// badge would use so the placeholder occupies the same box.
|
|
@@ -54,13 +70,25 @@ function Badge({
|
|
|
54
70
|
}
|
|
55
71
|
const Container = onPress ? _reactNative.Pressable : _reactNative.View;
|
|
56
72
|
const containerStyle = {
|
|
57
|
-
|
|
73
|
+
// Glass keeps the container transparent so the GlassFill blur shows through;
|
|
74
|
+
// `overflow: 'hidden'` clips the native blur view to the rounded pill (the
|
|
75
|
+
// blur view does not honor borderRadius itself).
|
|
76
|
+
backgroundColor: isGlass ? 'transparent' : backgroundColor,
|
|
58
77
|
paddingHorizontal,
|
|
59
78
|
paddingVertical,
|
|
60
79
|
borderRadius,
|
|
61
80
|
alignSelf: 'flex-start',
|
|
62
81
|
alignItems: 'center',
|
|
63
82
|
justifyContent: 'center',
|
|
83
|
+
// A leading node sits in-line before the label, so switch to a row with a
|
|
84
|
+
// small gap. Consumer `style` (spread last) can still override either.
|
|
85
|
+
...(hasLeading ? {
|
|
86
|
+
flexDirection: 'row',
|
|
87
|
+
gap: 4
|
|
88
|
+
} : null),
|
|
89
|
+
...(isGlass ? {
|
|
90
|
+
overflow: 'hidden'
|
|
91
|
+
} : null),
|
|
64
92
|
...(style || {})
|
|
65
93
|
};
|
|
66
94
|
const textStyle = {
|
|
@@ -73,19 +101,30 @@ function Badge({
|
|
|
73
101
|
...(labelStyle || {})
|
|
74
102
|
};
|
|
75
103
|
const defaultAccessibilityLabel = accessibilityLabel || label;
|
|
76
|
-
return /*#__PURE__*/(0, _jsxRuntime.
|
|
104
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Container, {
|
|
77
105
|
style: containerStyle,
|
|
78
106
|
accessibilityRole: onPress ? 'button' : 'text',
|
|
79
107
|
accessibilityLabel: undefined,
|
|
80
108
|
onPress: onPress,
|
|
81
109
|
...rest,
|
|
82
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
110
|
+
children: [isGlass ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_GlassFill.default, {
|
|
111
|
+
tint: "light",
|
|
112
|
+
intensity: glassIntensity ?? blurIntensity,
|
|
113
|
+
overlayColor: glassOverlayColor ?? glassBackground,
|
|
114
|
+
androidTintWash: false
|
|
115
|
+
}) : null, hasLeading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
116
|
+
style: LEADING_WRAP,
|
|
117
|
+
children: leading
|
|
118
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
83
119
|
style: textStyle,
|
|
84
|
-
|
|
85
|
-
ellipsizeMode: "tail",
|
|
120
|
+
...(0, _reactUtils.resolveTruncation)(disableTruncation, 1, 'tail'),
|
|
86
121
|
accessibilityElementsHidden: false,
|
|
87
122
|
children: label
|
|
88
|
-
})
|
|
123
|
+
})]
|
|
89
124
|
});
|
|
90
125
|
}
|
|
126
|
+
const LEADING_WRAP = {
|
|
127
|
+
justifyContent: 'center',
|
|
128
|
+
alignItems: 'center'
|
|
129
|
+
};
|
|
91
130
|
var _default = exports.default = Badge;
|
|
@@ -95,7 +95,8 @@ function BrandChip({
|
|
|
95
95
|
modes: propModes = _reactUtils.EMPTY_MODES,
|
|
96
96
|
style,
|
|
97
97
|
labelStyle,
|
|
98
|
-
accessibilityLabel
|
|
98
|
+
accessibilityLabel,
|
|
99
|
+
disableTruncation
|
|
99
100
|
}) {
|
|
100
101
|
const {
|
|
101
102
|
modes: globalModes
|
|
@@ -126,8 +127,7 @@ function BrandChip({
|
|
|
126
127
|
const content = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
127
128
|
children: [avatarNode, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
128
129
|
style: [tokens.labelStyle, labelStyle],
|
|
129
|
-
|
|
130
|
-
ellipsizeMode: "tail",
|
|
130
|
+
...(0, _reactUtils.resolveTruncation)(disableTruncation, 1, 'tail'),
|
|
131
131
|
children: label
|
|
132
132
|
})]
|
|
133
133
|
});
|
|
@@ -176,6 +176,7 @@ function ButtonImpl({
|
|
|
176
176
|
accessibilityState,
|
|
177
177
|
webAccessibilityProps,
|
|
178
178
|
loading,
|
|
179
|
+
disableTruncation,
|
|
179
180
|
...rest
|
|
180
181
|
}) {
|
|
181
182
|
// Hover state is web-only in practice; the setter is gated so native taps
|
|
@@ -220,7 +221,7 @@ function ButtonImpl({
|
|
|
220
221
|
} else {
|
|
221
222
|
content = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
222
223
|
style: activeLabelStyle,
|
|
223
|
-
|
|
224
|
+
...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
|
|
224
225
|
children: label
|
|
225
226
|
});
|
|
226
227
|
}
|
|
@@ -126,6 +126,7 @@ function CardAdvisory({
|
|
|
126
126
|
progressStyle,
|
|
127
127
|
nudgeStyle,
|
|
128
128
|
accessibilityLabel,
|
|
129
|
+
disableTruncation,
|
|
129
130
|
...rest
|
|
130
131
|
}) {
|
|
131
132
|
const {
|
|
@@ -163,7 +164,7 @@ function CardAdvisory({
|
|
|
163
164
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
164
165
|
style: tokens.headerStyle,
|
|
165
166
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
166
|
-
|
|
167
|
+
...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
|
|
167
168
|
style: [tokens.titleStyle, titleStyle],
|
|
168
169
|
children: title
|
|
169
170
|
}), processedTitleEndSlot || (showInfoIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
|
|
@@ -72,7 +72,8 @@ function CardBankAccount({
|
|
|
72
72
|
footer,
|
|
73
73
|
modes: propModes = _reactUtils.EMPTY_MODES,
|
|
74
74
|
style,
|
|
75
|
-
accessibilityLabel
|
|
75
|
+
accessibilityLabel,
|
|
76
|
+
disableTruncation
|
|
76
77
|
}) {
|
|
77
78
|
// Merge caller modes on top of `DEFAULT_MODES` so every default key
|
|
78
79
|
// (e.g. `Button / Size`, `AppearanceBrand`, `Emphasis`) can be overridden
|
|
@@ -189,7 +190,7 @@ function CardBankAccount({
|
|
|
189
190
|
})
|
|
190
191
|
}), typeof item.value === 'string' || typeof item.value === 'number' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
191
192
|
style: valueTextStyle,
|
|
192
|
-
|
|
193
|
+
...(0, _reactUtils.resolveTruncation)(disableTruncation, 1),
|
|
193
194
|
children: item.value
|
|
194
195
|
}) : (0, _reactUtils.cloneChildrenWithModes)(item.value, modes)]
|
|
195
196
|
}, `${item.label}-${index}`))
|