@bytebrand/fe-ui-core-autobahn 1.0.150 → 1.0.151

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/vdp/VdpModules.tsx +18 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bytebrand/fe-ui-core-autobahn",
3
- "version": "1.0.150",
3
+ "version": "1.0.151",
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",
@@ -2331,6 +2331,24 @@ export const FinanceDetailsModal: React.FunctionComponent<FinanceDetailsModalPro
2331
2331
  else animateSheetScroll(() => 0);
2332
2332
  }, [showBreakdown, scrollSheetToBreakdown, animateSheetScroll]);
2333
2333
 
2334
+ // iOS Safari (26+, "Allow Website Tinting") paints its bottom toolbar area with the page's
2335
+ // <meta name="theme-color"> (site-wide blue #005CCB) — under the open white sheet that showed
2336
+ // as a solid blue band right below the CTA. While the sheet is open, theme-color is white;
2337
+ // on close the previous value(s) are restored. Other pages/states are untouched.
2338
+ React.useEffect(() => {
2339
+ if (!open || typeof document === 'undefined') return;
2340
+ const metas = Array.from(document.querySelectorAll<HTMLMetaElement>('meta[name="theme-color"]'));
2341
+ const prev = metas.map((m) => m.getAttribute('content'));
2342
+ metas.forEach((m) => m.setAttribute('content', '#FFFFFF'));
2343
+ return () => {
2344
+ metas.forEach((m, i) => {
2345
+ const v = prev[i];
2346
+ if (v == null) m.removeAttribute('content');
2347
+ else m.setAttribute('content', v);
2348
+ });
2349
+ };
2350
+ }, [open]);
2351
+
2334
2352
  // mobile-only: swipe-down-to-dismiss on the grabber/header (the mockup's drag handle).
2335
2353
  // The sheet follows the finger (imperative transform — no re-renders while dragging);
2336
2354
  // released past 90px it slides out and closes, otherwise it springs back. The element