@bytebrand/fe-ui-core-autobahn 1.0.46 → 1.0.48
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/package.json +1 -1
- package/theme/md3.css +7 -2
- package/vdp/FinanceCalculator.tsx +31 -20
- package/vdp/VdpModules.tsx +2 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bytebrand/fe-ui-core-autobahn",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.48",
|
|
4
4
|
"description": "auto.de md3 (Autobahn) design system — UI primitives, cards, chrome, VDP modules, theme CSS and locales. Ships raw TypeScript source (like fe-ui-core before it); each consumer's bundler compiles it.",
|
|
5
5
|
"main": "index.ts",
|
|
6
6
|
"license": "UNLICENSED",
|
package/theme/md3.css
CHANGED
|
@@ -1650,12 +1650,17 @@
|
|
|
1650
1650
|
/* sheet: no divider under the header; one under the rate row instead (Figma) */
|
|
1651
1651
|
.md3 .fin-modal-head { border-bottom: 0; padding-bottom: 8px; }
|
|
1652
1652
|
.md3 .fin-sheet-adjust { border-top: 1px solid var(--fig-tile-border); padding-top: 16px; }
|
|
1653
|
-
/* sheet cash rows (Zahlung/Garantie/Lieferung) — Figma sizes (round
|
|
1654
|
-
.md3 .fin-modal .calcrow { padding:
|
|
1653
|
+
/* sheet cash rows (Zahlung/Garantie/Lieferung) — Figma sizes (round 14: taller still) */
|
|
1654
|
+
.md3 .fin-modal .calcrow { padding: 20px 0; }
|
|
1655
1655
|
.md3 .fin-modal .calcrow-label { font-size: 15px; color: var(--fig-gray); }
|
|
1656
1656
|
.md3 .fin-modal .calcrow-value { font-size: 16px !important; color: var(--fig-navy); font-weight: 700 !important; }
|
|
1657
1657
|
/* breathing room at the sheet's bottom edge — content must not stick to the viewport lip */
|
|
1658
1658
|
.md3 .fin-modal-body { padding-bottom: 44px; }
|
|
1659
|
+
/* round 14: the sheet column stretches so the cash CTA row (margin-top:auto) can sink to
|
|
1660
|
+
the bottom with the Figma gap; taller-content modes just keep their natural height */
|
|
1661
|
+
.md3 .fin-modal-body > .show-mobile { min-height: 56vh; }
|
|
1662
|
+
/* inactive mode tabs are dark + bold on phone (Figma) */
|
|
1663
|
+
.md3 .fin-tab:not(.on) { color: var(--fig-navy); font-weight: 700; }
|
|
1659
1664
|
/* condition tiles: Figma value size + roomier gap to the pills above */
|
|
1660
1665
|
.md3 .zustand-tile .md-title-sm { font-size: 16.5px; }
|
|
1661
1666
|
.md3 .vdp-header-extras .zustand-grid { margin-top: 10px; }
|
|
@@ -94,25 +94,29 @@ export const EvalBar: React.FunctionComponent<{ tier: number; leftPct?: number }
|
|
|
94
94
|
/** Figma CTA icon — document with a check-in-circle badge over its bottom-right corner
|
|
95
95
|
* (no single lucide glyph matches; composed from file-text + a knocked-out check-circle).
|
|
96
96
|
* The badge backdrop assumes a filled (primary) button. */
|
|
97
|
-
export const DocCheckIcon: React.FunctionComponent<{ size?: number }> = ({ size = 19 }) =>
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
97
|
+
export const DocCheckIcon: React.FunctionComponent<{ size?: number }> = ({ size = 19 }) => {
|
|
98
|
+
// inline width/height on BOTH icons — `.mbtn .lucide { width/height: 18px }` otherwise
|
|
99
|
+
// inflates the badge to full icon size and it swallows the document
|
|
100
|
+
const badge = Math.max(9, Math.round(size * 0.5));
|
|
101
|
+
return (
|
|
102
|
+
<span style={{ position: 'relative', display: 'inline-flex', flex: 'none' }}>
|
|
103
|
+
<Icon name="file-text" size={size} stroke={2} style={{ width: size, height: size }} />
|
|
104
|
+
<span
|
|
105
|
+
style={{
|
|
106
|
+
position: 'absolute',
|
|
107
|
+
right: -3,
|
|
108
|
+
bottom: -2,
|
|
109
|
+
display: 'flex',
|
|
110
|
+
borderRadius: '50%',
|
|
111
|
+
background: 'var(--md-primary)',
|
|
112
|
+
padding: 1,
|
|
113
|
+
}}
|
|
114
|
+
>
|
|
115
|
+
<Icon name="check-circle" size={badge} stroke={2.8} style={{ width: badge, height: badge }} />
|
|
116
|
+
</span>
|
|
113
117
|
</span>
|
|
114
|
-
|
|
115
|
-
|
|
118
|
+
);
|
|
119
|
+
};
|
|
116
120
|
|
|
117
121
|
export interface TermChipsProps {
|
|
118
122
|
/** the selectable term values (months), e.g. [12,24,36,48,60,72]. */
|
|
@@ -391,6 +395,13 @@ const FinanceCalculator: React.FunctionComponent<FinanceCalculatorProps> = ({
|
|
|
391
395
|
{/* col 1 row 1: hero rate — Figma: "329 €" all-big, then a small stacked column with
|
|
392
396
|
the struck old rate ABOVE "/mtl." (round 11; was a single baseline row) */}
|
|
393
397
|
<div className="fin-rate-main">
|
|
398
|
+
{/* mobile Kaufen (Figma round 14): struck list price ABOVE the price, right-aligned —
|
|
399
|
+
replaces the Festpreis + UVP lines, which stay desktop-only */}
|
|
400
|
+
{isCash && showStrike && (
|
|
401
|
+
<div className="show-mobile" style={{ justifyContent: 'flex-end' }}>
|
|
402
|
+
<s className="num fin-rate-old">{eur(listPrice as number)} €</s>
|
|
403
|
+
</div>
|
|
404
|
+
)}
|
|
394
405
|
<div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>
|
|
395
406
|
<span
|
|
396
407
|
className="num"
|
|
@@ -409,9 +420,9 @@ const FinanceCalculator: React.FunctionComponent<FinanceCalculatorProps> = ({
|
|
|
409
420
|
</span>
|
|
410
421
|
)}
|
|
411
422
|
</div>
|
|
412
|
-
{isCash && <div className="md-label-sm">{t('autobahn:finance.fixedPrice')}</div>}
|
|
423
|
+
{isCash && <div className="md-label-sm hide-mobile">{t('autobahn:finance.fixedPrice')}</div>}
|
|
413
424
|
{isCash && showStrike && (
|
|
414
|
-
<div className="fin-kauf">
|
|
425
|
+
<div className="fin-kauf hide-mobile">
|
|
415
426
|
{t('autobahn:finance.uvp')} <s>{eur(listPrice as number)} €</s>
|
|
416
427
|
</div>
|
|
417
428
|
)}
|
package/vdp/VdpModules.tsx
CHANGED
|
@@ -1755,7 +1755,8 @@ export const FinanceDetailsModal: React.FunctionComponent<FinanceDetailsModalPro
|
|
|
1755
1755
|
onChange={(checked) => onToggleAddServices && onToggleAddServices(checked)}
|
|
1756
1756
|
/>
|
|
1757
1757
|
)}
|
|
1758
|
-
|
|
1758
|
+
{/* pushed to the sheet's bottom edge — Figma keeps a big breathing gap above */}
|
|
1759
|
+
<div style={{ display: 'flex', gap: 10, marginTop: 'auto' }}>
|
|
1759
1760
|
<Button variant="filled" size="lg" style={{ flex: 1 }} onClick={onSecure}>
|
|
1760
1761
|
<DocCheckIcon />
|
|
1761
1762
|
{t('autobahn:finance.secureOffer')}
|