@bytebrand/fe-ui-core-autobahn 1.0.18 → 1.0.20

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.
@@ -54,11 +54,12 @@
54
54
  },
55
55
  "finance": {
56
56
  "termSelection": "Laufzeit",
57
+ "exampleLabel": "z.B.",
57
58
  "headerTitle": "Dein Angebot",
58
59
  "adjustRate": "Rate anpassen",
59
60
  "secureOffer": "Angebot anfragen",
60
61
  "trustLine": "Unverbindlich · kostenlos · 14 Tage Rückgaberecht",
61
- "downPaymentLabel": "€ Anzahlung",
62
+ "downPaymentLabel": "{{value}} € Anzahlung",
62
63
  "monthsLabel": "{{months}} Monat",
63
64
  "monthsLabel_plural": "{{months}} Monate",
64
65
  "monthUnit": "Mon.",
@@ -54,11 +54,12 @@
54
54
  },
55
55
  "finance": {
56
56
  "termSelection": "Term",
57
+ "exampleLabel": "e.g.",
57
58
  "headerTitle": "Your offer",
58
59
  "adjustRate": "Adjust rate",
59
60
  "secureOffer": "Request offer",
60
61
  "trustLine": "Non-binding · free · 14-day return right",
61
- "downPaymentLabel": "€ down payment",
62
+ "downPaymentLabel": "{{value}} € down payment",
62
63
  "monthsLabel": "{{months}} month",
63
64
  "monthsLabel_plural": "{{months}} months",
64
65
  "monthUnit": "mo.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bytebrand/fe-ui-core-autobahn",
3
- "version": "1.0.18",
3
+ "version": "1.0.20",
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
@@ -1356,16 +1356,20 @@
1356
1356
  .md3 .vdp-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 11px 14px; margin-top: 14px; }
1357
1357
  .md3 .vdp-meta > span + span::before { content: none; }
1358
1358
  .md3 .vdp-meta > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
1359
- /* mobile-only "first screen" identity block: compact single dot-separated line,
1360
- rating chip inline next to the title (not stacked above it) — overrides the
1361
- structured-phone-layout rules above, which only make sense for the bulkier
1362
- desktop card shown at tablet widths. */
1363
- .md3 .vdp-header-summary .vdp-headrow { flex-direction: row; align-items: center; gap: 10px; }
1359
+ /* mobile-only "first screen" identity block (per mockup): bare title (no rating
1360
+ chip — that lives next to the price in the finance card instead), one muted
1361
+ compact dot-separated fact line (km/EZ/Getriebe/Kraftstoff only, no "1. Hand",
1362
+ no icons) — overrides the structured-phone-layout rules above, which only
1363
+ make sense for the bulkier desktop card shown at tablet widths. */
1364
+ .md3 .vdp-header-summary .vdp-headrow { flex-direction: row; align-items: flex-start; gap: 10px; }
1365
+ .md3 .vdp-header-summary .vdp-headrow .statchip { display: none; }
1364
1366
  .md3 .vdp-header-summary .vdp-trim { display: none; }
1365
- .md3 .vdp-header-summary .vdp-meta { display: flex; flex-wrap: wrap; grid-template-columns: none; margin-top: 8px; }
1367
+ .md3 .vdp-header-summary .vdp-meta { display: flex; flex-wrap: wrap; grid-template-columns: none; margin-top: 6px;
1368
+ font-size: 13.5px; font-weight: 400; color: var(--md-on-surface-variant); }
1366
1369
  .md3 .vdp-header-summary .vdp-meta > span + span::before { content: ''; }
1367
1370
  .md3 .vdp-header-summary .vdp-meta > span { overflow: visible; text-overflow: clip; }
1368
1371
  .md3 .vdp-header-summary .vdp-meta .lucide { display: none; }
1372
+ .md3 .vdp-header-summary .vdp-meta > span:nth-child(5) { display: none; }
1369
1373
  /* highlights: one swipeable line, no ragged wrap */
1370
1374
  .md3 .vdp-highlights { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none;
1371
1375
  width: 0; min-width: 100%; }
@@ -271,12 +271,13 @@ const FinanceCalculator: React.FunctionComponent<FinanceCalculatorProps> = ({
271
271
  );
272
272
  condParts.push(t('autobahn:finance.monthsLabel', { months: term, count: term }));
273
273
  }
274
- const condLine = condParts.join(' · ');
274
+ const condLine = condParts.length ? `${t('autobahn:finance.exampleLabel')} ${condParts.join(' · ')}` : '';
275
275
 
276
276
  return (
277
277
  <div className="mcard mcard--elevated" style={{ padding: 20 }}>
278
- {/* header */}
279
- <div style={{ display: 'flex', alignItems: 'center', gap: 10, marginBottom: 14 }}>
278
+ {/* header — desktop only; mobile goes straight into the tabs (see mockup: no card
279
+ title above Finanzierung/Leasing/Kaufen on phone). */}
280
+ <div className="fin-card-header hide-mobile" style={{ display: 'flex', alignItems: 'center', gap: 10, marginBottom: 14 }}>
280
281
  <span
281
282
  style={{
282
283
  width: 34,
@@ -478,6 +479,21 @@ const FinanceCalculator: React.FunctionComponent<FinanceCalculatorProps> = ({
478
479
  </Button>
479
480
  </div>
480
481
 
482
+ {/* auto.de-ID (left) · Finanzierungs-/Leasingdetails (right) — same row desktop shows,
483
+ restored here per the mockup (round 1 had dropped it in favor of Persönliche Beratung
484
+ alone; the mockup wants both rows, not one replacing the other). */}
485
+ {(autoDeId || (!isCash && onShowDetails)) && (
486
+ <div className="fin-info">
487
+ {autoDeId && <span className="fin-id">auto.de-ID {autoDeId}</span>}
488
+ {!isCash && onShowDetails && (
489
+ <DetailsLink
490
+ label={mode === 'leasing' ? t('autobahn:finance.leasingDetails') : t('autobahn:finance.financingDetails')}
491
+ onClick={onShowDetails}
492
+ />
493
+ )}
494
+ </div>
495
+ )}
496
+
481
497
  {/* Persönliche Beratung (left) · Finanzierungs-/Leasingdetails or hint (right) */}
482
498
  <div className="fin-info">
483
499
  <div style={{ display: 'flex', alignItems: 'center', gap: 8, minWidth: 0 }}>