@bytebrand/fe-ui-core-autobahn 1.0.135 → 1.0.137

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 CHANGED
@@ -1,30 +1,30 @@
1
- {
2
- "name": "@bytebrand/fe-ui-core-autobahn",
3
- "version": "1.0.135",
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
- "main": "index.ts",
6
- "license": "UNLICENSED",
7
- "peerDependencies": {
8
- "react": "^18.0.0",
9
- "react-dom": "^18.0.0"
10
- },
11
- "dependencies": {
12
- "@bytebrand/car-schema-selectors": "^2.0.7",
13
- "@bytebrand/fe-financing": "^5.14.20",
14
- "classnames": "2.2.6",
15
- "clsx": "^2.1.1",
16
- "d3-format": "1.4.5",
17
- "js-cookie": "^2.2.0",
18
- "lodash": "^4.17.21",
19
- "lucide-react": "^0.288.0",
20
- "mobx-react": "^7.6.0",
21
- "moment": "^2.29.1",
22
- "qs": "^6.6.0",
23
- "react-device-detect": "^2.1.2",
24
- "react-grid-system": "^5.0.2",
25
- "react-lazyload": "^3.2.0",
26
- "react-scroll": "^1.9.3",
27
- "react-slick": "^0.29.0",
28
- "slick-carousel": "1.8.1"
29
- }
30
- }
1
+ {
2
+ "name": "@bytebrand/fe-ui-core-autobahn",
3
+ "version": "1.0.137",
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
+ "main": "index.ts",
6
+ "license": "UNLICENSED",
7
+ "peerDependencies": {
8
+ "react": "^18.0.0",
9
+ "react-dom": "^18.0.0"
10
+ },
11
+ "dependencies": {
12
+ "@bytebrand/car-schema-selectors": "^2.0.7",
13
+ "@bytebrand/fe-financing": "^5.14.20",
14
+ "classnames": "2.2.6",
15
+ "clsx": "^2.1.1",
16
+ "d3-format": "1.4.5",
17
+ "js-cookie": "^2.2.0",
18
+ "lodash": "^4.17.21",
19
+ "lucide-react": "^0.288.0",
20
+ "mobx-react": "^7.6.0",
21
+ "moment": "^2.29.1",
22
+ "qs": "^6.6.0",
23
+ "react-device-detect": "^2.1.2",
24
+ "react-grid-system": "^5.0.2",
25
+ "react-lazyload": "^3.2.0",
26
+ "react-scroll": "^1.9.3",
27
+ "react-slick": "^0.29.0",
28
+ "slick-carousel": "1.8.1"
29
+ }
30
+ }
package/ui/FormField.tsx CHANGED
@@ -21,7 +21,12 @@ export interface FormFieldProps {
21
21
  /** override the field's own type (e.g. force 'password'). */
22
22
  type?: string;
23
23
  id?: string;
24
- autoComplete?: 'on' | 'off';
24
+ /** Any WHATWG autofill-detail token ('given-name', 'family-name', 'email', 'tel', …), not
25
+ * just 'on'/'off' — narrower typing here previously blocked callers from disambiguating
26
+ * structurally-similar fields (e.g. firstName/lastName) for the browser's own autofill,
27
+ * which can otherwise fill the same value into both (confirmed live: Chrome's
28
+ * profile-autofill on RegistrationForm.tsx's firstName/lastName, corrupting Odoo leads). */
29
+ autoComplete?: string;
25
30
  disabled?: boolean;
26
31
  onKeyPress?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
27
32
  /** suppress the built-in label (for layouts that supply their own external label next to the field). */
@@ -2239,6 +2239,21 @@ export const FinanceDetailsModal: React.FunctionComponent<FinanceDetailsModalPro
2239
2239
  return () => window.clearTimeout(timer);
2240
2240
  // eslint-disable-next-line react-hooks/exhaustive-deps
2241
2241
  }, [open, initialShowBreakdown]);
2242
+ // in-sheet "Finanzierungs-/Leasingdetails" toggle (mobile): expanding the breakdown alone left
2243
+ // it below the fold — scroll the sheet body all the way down (same end state as opening via
2244
+ // the page's details link). Waits out .fin-modal--expanded's 0.35s min-height transition: a
2245
+ // smooth scroll started while the sheet is still growing gets cut short after a few px.
2246
+ // Collapsing doesn't scroll.
2247
+ const revealBreakdownRef = React.useRef(false);
2248
+ React.useEffect(() => {
2249
+ if (!showBreakdown || !revealBreakdownRef.current) return;
2250
+ revealBreakdownRef.current = false;
2251
+ const timer = window.setTimeout(() => {
2252
+ const body = mobileBreakdownRef.current?.closest('.fin-modal-body') as HTMLElement | null | undefined;
2253
+ if (body) body.scrollTo({ top: body.scrollHeight, behavior: 'smooth' });
2254
+ }, 400);
2255
+ return () => window.clearTimeout(timer);
2256
+ }, [showBreakdown]);
2242
2257
 
2243
2258
  // mobile-only: swipe-down-to-dismiss on the grabber/header (the mockup's drag handle).
2244
2259
  // The sheet follows the finger (imperative transform — no re-renders while dragging);
@@ -3411,7 +3426,13 @@ export const FinanceDetailsModal: React.FunctionComponent<FinanceDetailsModalPro
3411
3426
  </div>
3412
3427
 
3413
3428
  {/* centered ⓘ details toggle (mockup shows no chevron) */}
3414
- <button type="button" onClick={() => setShowBreakdown((v) => !v)} style={{ ...expanderBtnStyle, justifyContent: 'center', padding: '2px 0 20px' }}>
3429
+ <button
3430
+ type="button"
3431
+ onClick={() => {
3432
+ revealBreakdownRef.current = !showBreakdown;
3433
+ setShowBreakdown((v) => !v);
3434
+ }}
3435
+ style={{ ...expanderBtnStyle, justifyContent: 'center', padding: '2px 0 20px' }}>
3415
3436
  <span
3416
3437
  style={{
3417
3438
  display: 'inline-flex',