jfs-components 0.1.48 → 0.1.50
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 +8 -1
- package/lib/commonjs/components/CardCTA/CardCTA.js +7 -4
- package/lib/commonjs/components/CardFeedback/CardFeedback.js +1 -1
- package/lib/commonjs/components/CategoryCard/CategoryCard.js +4 -4
- package/lib/commonjs/components/Checkbox/Checkbox.js +4 -6
- package/lib/commonjs/components/CircularProgressBarDoted/CircularProgressBarDoted.js +12 -9
- package/lib/commonjs/components/DonutChartSummary/DonutChartSummary.js +7 -2
- package/lib/commonjs/components/ProductMerchandisingCard/ProductMerchandisingCard.js +3 -1
- package/lib/commonjs/components/ProductOverview/ProductOverview.js +2 -2
- package/lib/commonjs/components/Radio/Radio.js +5 -3
- package/lib/commonjs/components/SavingsGoalSummary/SavingsGoalSummary.js +2 -2
- package/lib/commonjs/components/Section/Section.js +3 -1
- package/lib/commonjs/components/SegmentedControl/SegmentedControl.js +1 -1
- package/lib/commonjs/components/SegmentedTrack/SegmentedTrack.js +1 -1
- package/lib/commonjs/components/Slider/Slider.js +3 -2
- package/lib/commonjs/components/StatusHero/StatusHero.js +1 -1
- package/lib/commonjs/components/Tooltip/Tooltip.js +4 -2
- package/lib/commonjs/design-tokens/Coin Variables-variables-full.json +1 -1
- package/lib/commonjs/design-tokens/figma-modes.generated.js +38 -34
- package/lib/commonjs/icons/registry.js +1 -1
- package/lib/module/components/CardCTA/CardCTA.js +7 -4
- package/lib/module/components/CardFeedback/CardFeedback.js +1 -1
- package/lib/module/components/CategoryCard/CategoryCard.js +4 -4
- package/lib/module/components/Checkbox/Checkbox.js +4 -6
- package/lib/module/components/CircularProgressBarDoted/CircularProgressBarDoted.js +12 -9
- package/lib/module/components/DonutChartSummary/DonutChartSummary.js +7 -2
- package/lib/module/components/ProductMerchandisingCard/ProductMerchandisingCard.js +3 -1
- package/lib/module/components/ProductOverview/ProductOverview.js +2 -2
- package/lib/module/components/Radio/Radio.js +5 -3
- package/lib/module/components/SavingsGoalSummary/SavingsGoalSummary.js +2 -2
- package/lib/module/components/Section/Section.js +3 -1
- package/lib/module/components/SegmentedControl/SegmentedControl.js +1 -1
- package/lib/module/components/SegmentedTrack/SegmentedTrack.js +1 -1
- package/lib/module/components/Slider/Slider.js +3 -2
- package/lib/module/components/StatusHero/StatusHero.js +1 -1
- package/lib/module/components/Tooltip/Tooltip.js +4 -2
- package/lib/module/design-tokens/Coin Variables-variables-full.json +1 -1
- package/lib/module/design-tokens/figma-modes.generated.js +38 -34
- package/lib/module/icons/registry.js +1 -1
- package/lib/typescript/src/components/Section/Section.d.ts +2 -1
- package/lib/typescript/src/design-tokens/figma-modes.generated.d.ts +6 -2
- package/lib/typescript/src/icons/registry.d.ts +1 -1
- package/package.json +1 -1
- package/src/components/CardCTA/CardCTA.tsx +7 -4
- package/src/components/CardFeedback/CardFeedback.tsx +1 -1
- package/src/components/CategoryCard/CategoryCard.tsx +4 -4
- package/src/components/Checkbox/Checkbox.tsx +4 -6
- package/src/components/CircularProgressBarDoted/CircularProgressBarDoted.tsx +12 -9
- package/src/components/DonutChartSummary/DonutChartSummary.tsx +6 -6
- package/src/components/ProductMerchandisingCard/ProductMerchandisingCard.tsx +3 -1
- package/src/components/ProductOverview/ProductOverview.tsx +2 -2
- package/src/components/Radio/Radio.tsx +8 -3
- package/src/components/SavingsGoalSummary/SavingsGoalSummary.tsx +3 -3
- package/src/components/Section/Section.tsx +121 -156
- package/src/components/SegmentedControl/SegmentedControl.tsx +1 -1
- package/src/components/SegmentedTrack/SegmentedTrack.tsx +1 -2
- package/src/components/Slider/Slider.tsx +3 -2
- package/src/components/StatusHero/StatusHero.tsx +1 -1
- package/src/components/Tooltip/Tooltip.tsx +4 -2
- package/src/design-tokens/Coin Variables-variables-full.json +1 -1
- package/src/design-tokens/figma-modes.generated.ts +38 -34
- package/src/icons/registry.ts +1 -1
- package/D2C.md +0 -113
|
@@ -36,6 +36,7 @@ type BentoToggleRenderState = {
|
|
|
36
36
|
type SectionBentoProps = {
|
|
37
37
|
navSlot?: React.ReactNode;
|
|
38
38
|
upiSlot?: React.ReactNode;
|
|
39
|
+
upi?: boolean;
|
|
39
40
|
modes?: Modes;
|
|
40
41
|
style?: StyleProp<ViewStyle>;
|
|
41
42
|
accessibilityLabel?: string;
|
|
@@ -82,6 +83,6 @@ type SectionBentoProps = {
|
|
|
82
83
|
*/
|
|
83
84
|
renderToggle?: (state: BentoToggleRenderState) => React.ReactNode;
|
|
84
85
|
} & React.ComponentProps<typeof View>;
|
|
85
|
-
declare function SectionBento({ navSlot, upiSlot, modes, style, accessibilityLabel: _accessibilityLabel, accessibilityHint, collapsedCount, defaultExpanded, expanded: controlledExpanded, onExpandedChange, toggleMoreLabel, toggleLessLabel, toggleMoreIcon, toggleLessIcon, renderToggle, ...rest }: SectionBentoProps): import("react/jsx-runtime").JSX.Element;
|
|
86
|
+
declare function SectionBento({ navSlot, upiSlot, upi, modes, style, accessibilityLabel: _accessibilityLabel, accessibilityHint, collapsedCount, defaultExpanded, expanded: controlledExpanded, onExpandedChange, toggleMoreLabel, toggleLessLabel, toggleMoreIcon, toggleLessIcon, renderToggle, ...rest }: SectionBentoProps): import("react/jsx-runtime").JSX.Element;
|
|
86
87
|
export default Section;
|
|
87
88
|
//# sourceMappingURL=Section.d.ts.map
|
|
@@ -9,6 +9,7 @@ export declare const FIGMA_MODES: {
|
|
|
9
9
|
readonly "AccordionGroup / Output": readonly ["Default"];
|
|
10
10
|
readonly "AccountCard / Output": readonly ["Default"];
|
|
11
11
|
readonly Action: readonly ["True", "False"];
|
|
12
|
+
readonly "Action Footer Radius": readonly ["False", "True"];
|
|
12
13
|
readonly "ActionFooter / Output": readonly ["Default"];
|
|
13
14
|
readonly "ActionNumpad / Output": readonly ["Default"];
|
|
14
15
|
readonly "ActionTile / Output": readonly ["Default"];
|
|
@@ -42,11 +43,13 @@ export declare const FIGMA_MODES: {
|
|
|
42
43
|
readonly "Button / Output": readonly ["Default"];
|
|
43
44
|
readonly "Button / Size": readonly ["M", "S", "XS"];
|
|
44
45
|
readonly "Button / State": readonly ["Idle", "Hover", "Pressed", "Disabled"];
|
|
46
|
+
readonly "Button Glass State": readonly ["Idle", "Hover", "Pressed", "Disabled"];
|
|
47
|
+
readonly "Button type": readonly ["default", "glass"];
|
|
45
48
|
readonly "ButtonGroup / Output": readonly ["Default"];
|
|
46
49
|
readonly "Calendar Glyph / Output": readonly ["Default"];
|
|
47
50
|
readonly "Calendar Glyph State": readonly ["Idle", "notSaved", "saved"];
|
|
48
51
|
readonly "Card / Output": readonly ["Default"];
|
|
49
|
-
readonly "Card
|
|
52
|
+
readonly "Card Container": readonly ["Default", "Plain"];
|
|
50
53
|
readonly "Card Feedback / Output": readonly ["Default"];
|
|
51
54
|
readonly "Card Tab / output": readonly ["Default"];
|
|
52
55
|
readonly "Card Tab State": readonly ["Default", "Active"];
|
|
@@ -90,7 +93,7 @@ export declare const FIGMA_MODES: {
|
|
|
90
93
|
readonly Context2: readonly ["Default", "AppBar"];
|
|
91
94
|
readonly Context3: readonly ["Default", "Transaction Bubble", "Balance & Cards", "Amount Input"];
|
|
92
95
|
readonly Context4: readonly ["Default", "Chip", "Button", "Badge", "Badge/glass"];
|
|
93
|
-
readonly context5: readonly ["Default", "Fullscreen Modal"];
|
|
96
|
+
readonly context5: readonly ["Default", "Fullscreen Modal", "Mode 1"];
|
|
94
97
|
readonly context7: readonly ["Default", "Card", "Page Hero"];
|
|
95
98
|
readonly "Contrast Context": readonly ["on dark", "on light"];
|
|
96
99
|
readonly "Control Toggle ": readonly ["Default"];
|
|
@@ -231,6 +234,7 @@ export declare const FIGMA_MODES: {
|
|
|
231
234
|
readonly "Slot gap": readonly ["S", "M", "L", "XL", "XS"];
|
|
232
235
|
readonly "special button": readonly ["Default"];
|
|
233
236
|
readonly "Spinner / Output": readonly ["Default"];
|
|
237
|
+
readonly "Stack Context": readonly ["Root", "Nested"];
|
|
234
238
|
readonly "statGroup / Output": readonly ["Default"];
|
|
235
239
|
readonly "StatItem / Output": readonly ["Default"];
|
|
236
240
|
readonly "StatItem Label Position ": readonly ["Top", "Bottom"];
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Auto-generated from SVG files in src/icons/
|
|
5
5
|
* DO NOT EDIT MANUALLY - Run "npm run icons:generate" to regenerate
|
|
6
6
|
*
|
|
7
|
-
* Generated: 2026-07-
|
|
7
|
+
* Generated: 2026-07-25T10:59:52.406Z
|
|
8
8
|
*/
|
|
9
9
|
export declare const iconRegistry: Record<string, {
|
|
10
10
|
path: string;
|
package/package.json
CHANGED
|
@@ -126,7 +126,8 @@ function CardCTA({
|
|
|
126
126
|
const borderSize = getVariableByName('cardCTA/border/size', modes)
|
|
127
127
|
const borderColor = getVariableByName('cardCTA/border/color', modes)
|
|
128
128
|
|
|
129
|
-
const
|
|
129
|
+
const leftPaddingLeft = getVariableByName('cardCTA/left-wrap/padding/left', modes)
|
|
130
|
+
const leftPaddingRight = getVariableByName('cardCTA/left-wrap/padding/right', modes)
|
|
130
131
|
const leftPaddingV = getVariableByName('cardCTA/left-wrap/padding/vertical', modes)
|
|
131
132
|
const leftGap = getVariableByName('cardCTA/left-wrap/gap', modes)
|
|
132
133
|
|
|
@@ -272,7 +273,8 @@ function CardCTA({
|
|
|
272
273
|
flexShrink: 1,
|
|
273
274
|
flexBasis: 0,
|
|
274
275
|
minWidth: 0,
|
|
275
|
-
|
|
276
|
+
paddingLeft: leftPaddingLeft,
|
|
277
|
+
paddingRight: leftPaddingRight,
|
|
276
278
|
paddingVertical: leftPaddingV,
|
|
277
279
|
gap: leftGap,
|
|
278
280
|
alignItems: 'flex-start',
|
|
@@ -302,7 +304,7 @@ function CardCTA({
|
|
|
302
304
|
// an explicit computed floor — the resolved IconCapsule size plus the
|
|
303
305
|
// wrapper's own horizontal padding. The column is exactly 2fr whenever
|
|
304
306
|
// space allows and can never collapse below its content.
|
|
305
|
-
const iconCapsuleModes = { ...modes, '
|
|
307
|
+
const iconCapsuleModes = { ...modes, 'Icon Capsule Size': 'M', Emphasis: 'Medium', AppearanceBrand: 'Secondary' }
|
|
306
308
|
const rightWrapMinWidth =
|
|
307
309
|
((getVariableByName('iconCapsule/size', iconCapsuleModes) as number) || 0) +
|
|
308
310
|
((rightPaddingH as number) || 0) * 2
|
|
@@ -364,7 +366,8 @@ function CardCTA({
|
|
|
364
366
|
|
|
365
367
|
const sipWrapStyle: ViewStyle = {
|
|
366
368
|
width: '100%',
|
|
367
|
-
|
|
369
|
+
paddingLeft: leftPaddingLeft,
|
|
370
|
+
paddingRight: leftPaddingRight,
|
|
368
371
|
paddingVertical: leftPaddingV,
|
|
369
372
|
gap: leftGap,
|
|
370
373
|
alignItems: 'flex-start',
|
|
@@ -162,18 +162,18 @@ function resolveCategoryCardTokens(
|
|
|
162
162
|
)
|
|
163
163
|
|
|
164
164
|
const fontFamily =
|
|
165
|
-
(getVariableByName('
|
|
165
|
+
(getVariableByName('label/fontFamily', resolvedModes) as string | null) ??
|
|
166
166
|
'JioType Var'
|
|
167
167
|
const fontSize = toNumber(
|
|
168
|
-
getVariableByName('
|
|
168
|
+
getVariableByName('label/fontSize', resolvedModes),
|
|
169
169
|
12
|
|
170
170
|
)
|
|
171
171
|
const lineHeight = toNumber(
|
|
172
|
-
getVariableByName('
|
|
172
|
+
getVariableByName('label/lineHeight', resolvedModes),
|
|
173
173
|
Math.round(fontSize * 1.3)
|
|
174
174
|
)
|
|
175
175
|
const fontWeight = toFontWeight(
|
|
176
|
-
getVariableByName('
|
|
176
|
+
getVariableByName('label/fontWeight', resolvedModes),
|
|
177
177
|
'500'
|
|
178
178
|
)
|
|
179
179
|
const labelColor =
|
|
@@ -122,8 +122,8 @@ const Checkbox = forwardRef<View, CheckboxProps>(function Checkbox({
|
|
|
122
122
|
const idleStroke = getVariableByName('checkbox/idle/stroke/color', modes) ?? '#666666'
|
|
123
123
|
const hoverFill = getVariableByName('checkbox/hover/fill/color', modes) ?? 'rgba(0,0,0,0.1)'
|
|
124
124
|
const hoverStroke = getVariableByName('checkbox/hover/stroke/color', modes) ?? '#666666'
|
|
125
|
-
const
|
|
126
|
-
const hoverShadow = getVariableByName('hover/
|
|
125
|
+
const hoverSpread = getVariableByName('checkbox/hover/spread/effect1', modes) ?? 4
|
|
126
|
+
const hoverShadow = getVariableByName('checkbox/hover/shadow/color', modes) ?? 'rgba(0,0,0,0.1)'
|
|
127
127
|
const selectedFill = getVariableByName('checkbox/selected/fill/color', modes) ?? '#cea15a'
|
|
128
128
|
const selectedStroke = getVariableByName('checkbox/selected/stroke/color', modes) ?? '#0d0d0d'
|
|
129
129
|
const selectedMarkColor = getVariableByName('checkbox/selected/mark/color', modes) ?? '#0f0d0a'
|
|
@@ -135,8 +135,6 @@ const Checkbox = forwardRef<View, CheckboxProps>(function Checkbox({
|
|
|
135
135
|
const disabledActiveBg = getVariableByName('checkbox/disabledActive/background/color', modes) ?? '#f6d19a'
|
|
136
136
|
const disabledActiveBorder = getVariableByName('checkbox/disabledActive/border/color', modes) ?? '#f6d19a'
|
|
137
137
|
const disabledActiveMark = getVariableByName('checkbox/disabledActive/mark/color', modes) ?? '#474d54'
|
|
138
|
-
const selectedHoverShadow = getVariableByName('selected/hover/boxShadow', modes) ?? 'rgba(0,0,0,0.1)'
|
|
139
|
-
const hoverShadowSize = getVariableByName('hover/boxShadow/size', modes) ?? 4
|
|
140
138
|
|
|
141
139
|
const handlePress = useCallback(() => {
|
|
142
140
|
if (disabled) return
|
|
@@ -187,7 +185,7 @@ const Checkbox = forwardRef<View, CheckboxProps>(function Checkbox({
|
|
|
187
185
|
...base,
|
|
188
186
|
backgroundColor: selectedFill as string,
|
|
189
187
|
borderColor: selectedStroke as string,
|
|
190
|
-
...boxShadow(`0px 0px 0px ${
|
|
188
|
+
...boxShadow(`0px 0px 0px ${hoverSpread}px ${hoverShadow}`),
|
|
191
189
|
}
|
|
192
190
|
}
|
|
193
191
|
|
|
@@ -213,7 +211,7 @@ const Checkbox = forwardRef<View, CheckboxProps>(function Checkbox({
|
|
|
213
211
|
...base,
|
|
214
212
|
backgroundColor: hoverFill as string,
|
|
215
213
|
borderColor: hoverStroke as string,
|
|
216
|
-
...boxShadow(`0px 0px 0px ${
|
|
214
|
+
...boxShadow(`0px 0px 0px ${hoverSpread}px ${hoverShadow}`),
|
|
217
215
|
}
|
|
218
216
|
}
|
|
219
217
|
|
|
@@ -160,10 +160,11 @@ function CircularProgressBarDoted({
|
|
|
160
160
|
const scoreTrendGap = toNumber(getVariableByName('circularProgressBarDoted/scoreTrend/gap', modes), 2)
|
|
161
161
|
const scoreTrendHeight = toNumber(getVariableByName('circularProgressBarDoted/scoreTrend/height', modes), 24)
|
|
162
162
|
|
|
163
|
-
const typographyFontFamily = getVariableByName('Typography/Font Family', modes)
|
|
164
163
|
const labelColor = getVariableByName('circularProgressBarDoted/label/color', modes)
|
|
165
|
-
const labelFontSize = toNumber(getVariableByName('
|
|
166
|
-
const
|
|
164
|
+
const labelFontSize = toNumber(getVariableByName('circularProgressBarDoted/label/fontSize', modes), 12)
|
|
165
|
+
const labelFontFamily = getVariableByName('circularProgressBarDoted/label/fontFamily', modes)
|
|
166
|
+
const labelLineHeight = toNumber(getVariableByName('circularProgressBarDoted/label/lineHeight', modes), 15.6)
|
|
167
|
+
const labelFontWeight = toFontWeight(getVariableByName('circularProgressBarDoted/label/fontWeight', modes), '400')
|
|
167
168
|
|
|
168
169
|
const scoreColor = getVariableByName('circularProgressBarDoted/scoreLabel/color', modes)
|
|
169
170
|
const scoreFontSize = toNumber(getVariableByName('circularProgressBarDoted/scoreLabel/fontSize', modes), 56)
|
|
@@ -172,8 +173,10 @@ function CircularProgressBarDoted({
|
|
|
172
173
|
const scoreFontWeight = toFontWeight(getVariableByName('circularProgressBarDoted/scoreLabel/fontWeight', modes), '900')
|
|
173
174
|
|
|
174
175
|
const tierColor = getVariableByName('circularProgressBarDoted/tierLabel/color', modes)
|
|
175
|
-
const tierFontSize = toNumber(getVariableByName('
|
|
176
|
-
const
|
|
176
|
+
const tierFontSize = toNumber(getVariableByName('circularProgressBarDoted/tierLabel/fontSize', modes), 16)
|
|
177
|
+
const tierFontFamily = getVariableByName('circularProgressBarDoted/tierLabel/fontFamily', modes)
|
|
178
|
+
const tierLineHeight = toNumber(getVariableByName('circularProgressBarDoted/tierLabel/lineHeight', modes), 20.8)
|
|
179
|
+
const tierFontWeight = toFontWeight(getVariableByName('circularProgressBarDoted/tierLabel/fontWeight', modes), '700')
|
|
177
180
|
const iconColor = getVariableByName('circularProgressBarDoted/icon/color', modes)
|
|
178
181
|
const iconSize = toNumber(getVariableByName('circularProgressBarDoted/icon/size', modes), 24)
|
|
179
182
|
|
|
@@ -245,10 +248,10 @@ function CircularProgressBarDoted({
|
|
|
245
248
|
|
|
246
249
|
const computedLabelStyle: TextStyle = {
|
|
247
250
|
color: labelColor,
|
|
248
|
-
fontFamily:
|
|
251
|
+
fontFamily: labelFontFamily,
|
|
249
252
|
fontSize: labelFontSize,
|
|
250
253
|
fontWeight: labelFontWeight,
|
|
251
|
-
lineHeight:
|
|
254
|
+
lineHeight: labelLineHeight,
|
|
252
255
|
textAlign: 'center',
|
|
253
256
|
}
|
|
254
257
|
|
|
@@ -263,10 +266,10 @@ function CircularProgressBarDoted({
|
|
|
263
266
|
|
|
264
267
|
const computedTierLabelStyle: TextStyle = {
|
|
265
268
|
color: tierColor,
|
|
266
|
-
fontFamily:
|
|
269
|
+
fontFamily: tierFontFamily,
|
|
267
270
|
fontSize: tierFontSize,
|
|
268
271
|
fontWeight: tierFontWeight,
|
|
269
|
-
lineHeight:
|
|
272
|
+
lineHeight: tierLineHeight,
|
|
270
273
|
textAlign: 'center',
|
|
271
274
|
}
|
|
272
275
|
|
|
@@ -164,12 +164,12 @@ function DonutChartSummary({
|
|
|
164
164
|
const { modes: globalModes } = useTokens()
|
|
165
165
|
const modes = { ...globalModes, ...propModes }
|
|
166
166
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
167
|
+
// Figma DonutChartSummary (4203:51713) does not expose component-level
|
|
168
|
+
// gap variables — layout uses unbound 16px (donut→legend) and 8px
|
|
169
|
+
// (legend rows). Nested `textWrap/gap` / `metricLegendItem/gap` belong
|
|
170
|
+
// to child components and are not substitutes.
|
|
171
|
+
const gap = 16
|
|
172
|
+
const legendGap = 8
|
|
173
173
|
|
|
174
174
|
const resolvedItems = items && items.length > 0 ? items : DEFAULT_ITEMS
|
|
175
175
|
|
|
@@ -430,7 +430,9 @@ function resolveTokens(modes: Modes): ResolvedTokens {
|
|
|
430
430
|
const titleColor = asStr(getVariableByName('productMerchandisingcard/footer/title/font/color', modes), '#ffffff')
|
|
431
431
|
const titleSize = asNum(getVariableByName('productMerchandisingcard/footer/title/fontsize', modes), 14)
|
|
432
432
|
const titleFamily = asStr(getVariableByName('productMerchandisingcard/footer/title/fontfamily', modes), 'JioType Var')
|
|
433
|
-
|
|
433
|
+
// No `productMerchandisingcard/footer/title/fontweight` in Coin Variables (Figma
|
|
434
|
+
// binds 700). `typography/title/fontWeight/high` is 800; use body/high (=700).
|
|
435
|
+
const titleWeight = asStr(getVariableByName('typography/body/fontWeight/high', modes), '700')
|
|
434
436
|
|
|
435
437
|
const subtitleColor = asStr(getVariableByName('productMerchandisingcard/footer/subtitle/font/color', modes), '#c5bcb5')
|
|
436
438
|
const subtitleSize = asNum(getVariableByName('productMerchandisingcard/footer/subtitle/fontsize', modes), 12)
|
|
@@ -79,7 +79,7 @@ const ProductOverview = ({
|
|
|
79
79
|
(getVariableByName('productOverview/background', modes) as string | null) ?? '#ffffff'
|
|
80
80
|
|
|
81
81
|
const productNameColor =
|
|
82
|
-
(getVariableByName('
|
|
82
|
+
(getVariableByName('text/appearance/high/color', modes) as string | null) ??
|
|
83
83
|
'#0d0d0f'
|
|
84
84
|
const productNameFontFamily =
|
|
85
85
|
(getVariableByName('productOverview/productName/fontFamily', modes) as string | null) ??
|
|
@@ -92,7 +92,7 @@ const ProductOverview = ({
|
|
|
92
92
|
(getVariableByName('productOverview/productName/lineHeight', modes) as number | null) ?? 26
|
|
93
93
|
|
|
94
94
|
const descriptionColor =
|
|
95
|
-
(getVariableByName('
|
|
95
|
+
(getVariableByName('text/appearance/medium/color', modes) as string | null) ??
|
|
96
96
|
'#1a1c1f'
|
|
97
97
|
const descriptionFontFamily =
|
|
98
98
|
(getVariableByName('productOverview/description/fontFamily', modes) as string | null) ??
|
|
@@ -115,7 +115,12 @@ export const Radio = forwardRef<View, RadioProps>(function Radio({
|
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
// Border Color
|
|
118
|
-
|
|
118
|
+
// Coin Variables has no `radio/focus/border/color` — focus indication is
|
|
119
|
+
// the yellow boxShadow ring; stroke reuses the published idle border.
|
|
120
|
+
let borderColorVar =
|
|
121
|
+
visualState === 'focus' && !selected
|
|
122
|
+
? 'radio/idle/border/color'
|
|
123
|
+
: `${prefix}/border/color`
|
|
119
124
|
|
|
120
125
|
// Border Width
|
|
121
126
|
let borderWidthVar = `${prefix}/border/size`
|
|
@@ -174,7 +179,6 @@ export const Radio = forwardRef<View, RadioProps>(function Radio({
|
|
|
174
179
|
getVariableByName('radio/selector/size')
|
|
175
180
|
getVariableByName('radio/width')
|
|
176
181
|
getVariableByName('radio/height')
|
|
177
|
-
getVariableByName('radio/background/color')
|
|
178
182
|
getVariableByName('radio/hover/background/color')
|
|
179
183
|
getVariableByName('radio/hover/border/color')
|
|
180
184
|
getVariableByName('radio/hover/boxShadow/size')
|
|
@@ -188,13 +192,14 @@ export const Radio = forwardRef<View, RadioProps>(function Radio({
|
|
|
188
192
|
getVariableByName('radio/hoverSelected/shadow/color')
|
|
189
193
|
getVariableByName('radio/hoverSelected/selector/background/color')
|
|
190
194
|
getVariableByName('radio/focus/background/color')
|
|
191
|
-
getVariableByName('radio/focus/border/color')
|
|
192
195
|
getVariableByName('radio/focus/border/size')
|
|
193
196
|
getVariableByName('radio/focus/boxShadow/size')
|
|
194
197
|
getVariableByName('radio/focus/shadow/color')
|
|
195
198
|
getVariableByName('radio/focusSelected/background/color')
|
|
199
|
+
getVariableByName('radio/focusSelected/border/color')
|
|
196
200
|
getVariableByName('radio/focusSelected/selector/background/color')
|
|
197
201
|
getVariableByName('radio/focusSelected/border/size')
|
|
202
|
+
getVariableByName('radio/focusSelected/shadow/color')
|
|
198
203
|
getVariableByName('radio/disabled/radio/disabled/border/size')
|
|
199
204
|
getVariableByName('radio/disabled/background/color')
|
|
200
205
|
getVariableByName('radio/disabled/border/color')
|
|
@@ -211,7 +211,7 @@ function SavingsGoalSummary({
|
|
|
211
211
|
getVariableByName('savingsGoalSummary/value/fontWeight', mergedModes) ?? 900,
|
|
212
212
|
) as TextStyle['fontWeight']
|
|
213
213
|
const valueColor =
|
|
214
|
-
(getVariableByName('
|
|
214
|
+
(getVariableByName('text/appearance/high/color', mergedModes) as string | null) ??
|
|
215
215
|
'#0d0d0f'
|
|
216
216
|
|
|
217
217
|
// Caption ("Credit usage") typography — `savingsGoalSummary/label/*`
|
|
@@ -227,8 +227,8 @@ function SavingsGoalSummary({
|
|
|
227
227
|
getVariableByName('savingsGoalSummary/label/fontWeight', mergedModes) ?? 400,
|
|
228
228
|
) as TextStyle['fontWeight']
|
|
229
229
|
const labelColor =
|
|
230
|
-
(getVariableByName('
|
|
231
|
-
'#
|
|
230
|
+
(getVariableByName('text/appearance/medium/color', mergedModes) as string | null) ??
|
|
231
|
+
'#1a1c1f'
|
|
232
232
|
|
|
233
233
|
const labelNode =
|
|
234
234
|
label == null || label === false ? null : typeof label === 'string' ? (
|