@bigz-app/booking-widget 0.3.9 → 0.3.11
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/dist/booking-widget.js +26 -5
- package/dist/booking-widget.js.map +1 -1
- package/dist/components/PromoDialog.d.ts +1 -1
- package/dist/components/PromoDialog.d.ts.map +1 -1
- package/dist/components/UniversalBookingWidget.d.ts.map +1 -1
- package/dist/index.cjs +26 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +26 -5
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/booking-widget.js
CHANGED
|
@@ -12313,8 +12313,21 @@
|
|
|
12313
12313
|
function PromoDialog({ onClose, onCtaClick }) {
|
|
12314
12314
|
const [copied, setCopied] = d$1(false);
|
|
12315
12315
|
const [isVisible, setIsVisible] = d$1(false);
|
|
12316
|
+
const [portalContainer, setPortalContainer] = d$1(null);
|
|
12316
12317
|
// Hardcoded Xmas surf school content
|
|
12317
12318
|
const discountCode = "X-MAS";
|
|
12319
|
+
// Create portal container on mount to escape stacking context issues
|
|
12320
|
+
y$1(() => {
|
|
12321
|
+
const container = document.createElement("div");
|
|
12322
|
+
container.id = "bigz-promo-dialog-portal";
|
|
12323
|
+
container.style.position = "relative";
|
|
12324
|
+
container.style.zIndex = "2147483647"; // Maximum z-index value
|
|
12325
|
+
document.body.appendChild(container);
|
|
12326
|
+
setPortalContainer(container);
|
|
12327
|
+
return () => {
|
|
12328
|
+
document.body.removeChild(container);
|
|
12329
|
+
};
|
|
12330
|
+
}, []);
|
|
12318
12331
|
// Animate in on mount
|
|
12319
12332
|
y$1(() => {
|
|
12320
12333
|
const timer = setTimeout(() => setIsVisible(true), 50);
|
|
@@ -12346,7 +12359,11 @@
|
|
|
12346
12359
|
setIsVisible(false);
|
|
12347
12360
|
setTimeout(onCtaClick, 200);
|
|
12348
12361
|
};
|
|
12349
|
-
|
|
12362
|
+
// Don't render until portal container is ready
|
|
12363
|
+
if (!portalContainer) {
|
|
12364
|
+
return null;
|
|
12365
|
+
}
|
|
12366
|
+
const dialogContent = (u$2(k$3, { children: [u$2("style", { children: `
|
|
12350
12367
|
@keyframes promo-wave {
|
|
12351
12368
|
0%, 100% { transform: translateX(0) translateY(0); }
|
|
12352
12369
|
25% { transform: translateX(5px) translateY(-3px); }
|
|
@@ -12376,7 +12393,7 @@
|
|
|
12376
12393
|
inset: 0,
|
|
12377
12394
|
backgroundColor: "rgba(0, 20, 40, 0.85)",
|
|
12378
12395
|
backdropFilter: "blur(8px)",
|
|
12379
|
-
zIndex:
|
|
12396
|
+
zIndex: 60,
|
|
12380
12397
|
opacity: isVisible ? 1 : 0,
|
|
12381
12398
|
transition: "opacity 300ms ease-out",
|
|
12382
12399
|
} }), u$2("div", { style: {
|
|
@@ -12384,7 +12401,7 @@
|
|
|
12384
12401
|
top: "50%",
|
|
12385
12402
|
left: "50%",
|
|
12386
12403
|
transform: `translate(-50%, -50%) scale(${isVisible ? 1 : 0.9})`,
|
|
12387
|
-
zIndex:
|
|
12404
|
+
zIndex: 61,
|
|
12388
12405
|
width: "92%",
|
|
12389
12406
|
maxWidth: "440px",
|
|
12390
12407
|
opacity: isVisible ? 1 : 0,
|
|
@@ -12565,6 +12582,8 @@
|
|
|
12565
12582
|
fontSize: "12px",
|
|
12566
12583
|
color: "rgba(255,255,255,0.6)",
|
|
12567
12584
|
}, children: "G\u00FCltig f\u00FCr alle Buchungen bis 31. Dezember 2025" })] })] }) })] }));
|
|
12585
|
+
// Use portal to render at document body level, escaping any stacking context
|
|
12586
|
+
return $$1(dialogContent, portalContainer);
|
|
12568
12587
|
}
|
|
12569
12588
|
|
|
12570
12589
|
// Predefined themes & Style Provider have been moved to ../styles/StyleProvider.tsx
|
|
@@ -12688,10 +12707,12 @@
|
|
|
12688
12707
|
}, [currentStep, shouldRenderInstanceSelection, shouldRenderBookingForm]);
|
|
12689
12708
|
// Promo dialog: show Xmas promo once per user during holiday season, prevent double-opening across multiple widgets
|
|
12690
12709
|
y$1(() => {
|
|
12691
|
-
// Only show during holiday season (December and January)
|
|
12710
|
+
// Only show during holiday season (December and early January - New Years week)
|
|
12692
12711
|
const now = new Date();
|
|
12693
12712
|
const month = now.getMonth(); // 0 = January, 11 = December
|
|
12694
|
-
const
|
|
12713
|
+
const day = now.getDate();
|
|
12714
|
+
// Show in December (entire month) or January 1-2 (New Years holiday)
|
|
12715
|
+
const isHolidaySeason = month === 11 || (month === 0 && day <= 2);
|
|
12695
12716
|
if (!isHolidaySeason) {
|
|
12696
12717
|
return;
|
|
12697
12718
|
}
|