@retinalabsllc/zairusjs 8.1.55 → 8.1.60
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/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +329 -308
- package/dist/index.mjs +300 -279
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -368,9 +368,152 @@ var Footer = ({
|
|
|
368
368
|
};
|
|
369
369
|
|
|
370
370
|
// src/components/HeroSection.tsx
|
|
371
|
-
var
|
|
371
|
+
var import_react10 = __toESM(require("react"));
|
|
372
372
|
var import_link4 = __toESM(require("next/link"));
|
|
373
373
|
var import_image2 = __toESM(require("next/image"));
|
|
374
|
+
|
|
375
|
+
// src/components/WaitlistDialog.tsx
|
|
376
|
+
var import_react9 = __toESM(require("react"));
|
|
377
|
+
var import_react_hot_toast = require("react-hot-toast");
|
|
378
|
+
|
|
379
|
+
// src/components/ReusableInputs.tsx
|
|
380
|
+
var import_react8 = __toESM(require("react"));
|
|
381
|
+
var TextInput = ({
|
|
382
|
+
label,
|
|
383
|
+
value,
|
|
384
|
+
onChange,
|
|
385
|
+
placeholder,
|
|
386
|
+
maxLength,
|
|
387
|
+
disabled,
|
|
388
|
+
readOnly,
|
|
389
|
+
type = "text",
|
|
390
|
+
onClick
|
|
391
|
+
}) => /* @__PURE__ */ import_react8.default.createElement("div", { className: "space-y-2 flex-1 w-full", onClick }, label && /* @__PURE__ */ import_react8.default.createElement("label", { className: "text-[11px] text-neutral-500 tracking-[0.2em] block " }, label), /* @__PURE__ */ import_react8.default.createElement(
|
|
392
|
+
"input",
|
|
393
|
+
{
|
|
394
|
+
type,
|
|
395
|
+
value,
|
|
396
|
+
onChange: (e) => onChange(e.target.value.substring(0, maxLength || 100)),
|
|
397
|
+
placeholder,
|
|
398
|
+
disabled,
|
|
399
|
+
readOnly,
|
|
400
|
+
autoComplete: "off",
|
|
401
|
+
spellCheck: "false",
|
|
402
|
+
className: `w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-800 text-white transition-all outline-none focus:border-white disabled:opacity-50 ${readOnly ? "cursor-pointer" : ""}`
|
|
403
|
+
}
|
|
404
|
+
));
|
|
405
|
+
var NumberInput = ({
|
|
406
|
+
label,
|
|
407
|
+
value,
|
|
408
|
+
onChange,
|
|
409
|
+
placeholder,
|
|
410
|
+
maxLength,
|
|
411
|
+
disabled
|
|
412
|
+
}) => /* @__PURE__ */ import_react8.default.createElement("div", { className: "space-y-2 flex-1 w-full" }, label && /* @__PURE__ */ import_react8.default.createElement("label", { className: "text-[11px] text-neutral-500 tracking-[0.2em] block " }, label), /* @__PURE__ */ import_react8.default.createElement(
|
|
413
|
+
"input",
|
|
414
|
+
{
|
|
415
|
+
type: "text",
|
|
416
|
+
value,
|
|
417
|
+
onChange: (e) => {
|
|
418
|
+
const numOnly = e.target.value.replace(/[^0-9]/g, "");
|
|
419
|
+
onChange(numOnly.substring(0, maxLength || 20));
|
|
420
|
+
},
|
|
421
|
+
placeholder,
|
|
422
|
+
disabled,
|
|
423
|
+
autoComplete: "off",
|
|
424
|
+
spellCheck: "false",
|
|
425
|
+
className: "w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-800 text-white transition-all outline-none focus:border-white disabled:opacity-50"
|
|
426
|
+
}
|
|
427
|
+
));
|
|
428
|
+
|
|
429
|
+
// src/components/WaitlistDialog.tsx
|
|
430
|
+
var WaitlistDialog = ({ isOpen, onClose }) => {
|
|
431
|
+
const [email, setEmail] = (0, import_react9.useState)("");
|
|
432
|
+
const [isLoading, setIsLoading] = (0, import_react9.useState)(false);
|
|
433
|
+
if (!isOpen) return null;
|
|
434
|
+
const handleSubmit = async (e) => {
|
|
435
|
+
e.preventDefault();
|
|
436
|
+
if (!email || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
|
|
437
|
+
import_react_hot_toast.toast.error("Please enter a valid email address.");
|
|
438
|
+
return;
|
|
439
|
+
}
|
|
440
|
+
setIsLoading(true);
|
|
441
|
+
try {
|
|
442
|
+
const response = await fetch("/api/waitlist", {
|
|
443
|
+
method: "POST",
|
|
444
|
+
headers: {
|
|
445
|
+
"Content-Type": "application/json"
|
|
446
|
+
},
|
|
447
|
+
body: JSON.stringify({ email })
|
|
448
|
+
});
|
|
449
|
+
const data = await response.json();
|
|
450
|
+
if (response.ok && data.success) {
|
|
451
|
+
import_react_hot_toast.toast.success(data.message || "You've been added to the waitlist!");
|
|
452
|
+
setEmail("");
|
|
453
|
+
onClose();
|
|
454
|
+
} else {
|
|
455
|
+
import_react_hot_toast.toast.error(data.error || "Something went wrong. Please try again.");
|
|
456
|
+
}
|
|
457
|
+
} catch (error) {
|
|
458
|
+
import_react_hot_toast.toast.error("Network error. Please check your connection.");
|
|
459
|
+
} finally {
|
|
460
|
+
setIsLoading(false);
|
|
461
|
+
}
|
|
462
|
+
};
|
|
463
|
+
return /* @__PURE__ */ import_react9.default.createElement("div", { className: "fixed inset-0 z-100 flex items-center justify-center p-4 bg-black/60 " }, /* @__PURE__ */ import_react9.default.createElement("div", { className: "absolute inset-0", onClick: !isLoading ? onClose : void 0 }), /* @__PURE__ */ import_react9.default.createElement(
|
|
464
|
+
"div",
|
|
465
|
+
{
|
|
466
|
+
className: "w-full max-w-md bg-[#212121] rounded-2xl shadow-2xl overflow-hidden relative z-10 animate-in fade-in zoom-in-95 duration-200"
|
|
467
|
+
},
|
|
468
|
+
/* @__PURE__ */ import_react9.default.createElement(
|
|
469
|
+
"button",
|
|
470
|
+
{
|
|
471
|
+
onClick: onClose,
|
|
472
|
+
disabled: isLoading,
|
|
473
|
+
className: "absolute top-4 right-4 p-2 text-neutral-500 hover:text-white transition-colors disabled:opacity-50 outline-none",
|
|
474
|
+
"aria-label": "Close dialog"
|
|
475
|
+
},
|
|
476
|
+
/* @__PURE__ */ import_react9.default.createElement(
|
|
477
|
+
"svg",
|
|
478
|
+
{
|
|
479
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
480
|
+
width: "20",
|
|
481
|
+
height: "20",
|
|
482
|
+
viewBox: "0 0 24 24",
|
|
483
|
+
fill: "none",
|
|
484
|
+
stroke: "currentColor",
|
|
485
|
+
strokeWidth: "2",
|
|
486
|
+
strokeLinecap: "round",
|
|
487
|
+
strokeLinejoin: "round"
|
|
488
|
+
},
|
|
489
|
+
/* @__PURE__ */ import_react9.default.createElement("path", { d: "M18 6 6 18" }),
|
|
490
|
+
/* @__PURE__ */ import_react9.default.createElement("path", { d: "m6 6 12 12" })
|
|
491
|
+
)
|
|
492
|
+
),
|
|
493
|
+
/* @__PURE__ */ import_react9.default.createElement("div", { className: "p-6 sm:p-8" }, /* @__PURE__ */ import_react9.default.createElement("div", { className: "mb-8 mt-2" }, /* @__PURE__ */ import_react9.default.createElement("h2", { className: "text-2xl font-light text-white tracking-tight mb-2" }, "Join the Waitlist"), /* @__PURE__ */ import_react9.default.createElement("p", { className: "text-[13px] text-neutral-400 font-light leading-relaxed" }, "Be the first to experience the future of natural language computing. Secure your early access spot today.")), /* @__PURE__ */ import_react9.default.createElement("form", { onSubmit: handleSubmit, className: "flex flex-col gap-8" }, /* @__PURE__ */ import_react9.default.createElement(
|
|
494
|
+
TextInput,
|
|
495
|
+
{
|
|
496
|
+
label: "Email ID",
|
|
497
|
+
type: "email",
|
|
498
|
+
value: email,
|
|
499
|
+
onChange: setEmail,
|
|
500
|
+
placeholder: "name@example.com",
|
|
501
|
+
disabled: isLoading
|
|
502
|
+
}
|
|
503
|
+
), /* @__PURE__ */ import_react9.default.createElement(
|
|
504
|
+
ThreeDActionButton,
|
|
505
|
+
{
|
|
506
|
+
type: "submit",
|
|
507
|
+
isLoading,
|
|
508
|
+
disabled: !email,
|
|
509
|
+
className: "w-full mt-2"
|
|
510
|
+
},
|
|
511
|
+
"Join Waitlist"
|
|
512
|
+
)))
|
|
513
|
+
));
|
|
514
|
+
};
|
|
515
|
+
|
|
516
|
+
// src/components/HeroSection.tsx
|
|
374
517
|
var HeroSection = ({
|
|
375
518
|
badgeText,
|
|
376
519
|
titlePrefix,
|
|
@@ -387,11 +530,13 @@ var HeroSection = ({
|
|
|
387
530
|
showImage = false,
|
|
388
531
|
imageSrc = "/assets/ai.avif",
|
|
389
532
|
bgVideoSrc,
|
|
390
|
-
bgImageSrc
|
|
533
|
+
bgImageSrc,
|
|
534
|
+
isWaitlist = false
|
|
391
535
|
}) => {
|
|
392
|
-
const [isAnimating, setIsAnimating] = (0,
|
|
393
|
-
const
|
|
394
|
-
(0,
|
|
536
|
+
const [isAnimating, setIsAnimating] = (0, import_react10.useState)(false);
|
|
537
|
+
const [isWaitlistOpen, setIsWaitlistOpen] = (0, import_react10.useState)(false);
|
|
538
|
+
const titleRef = (0, import_react10.useRef)(null);
|
|
539
|
+
(0, import_react10.useEffect)(() => {
|
|
395
540
|
const observer = new IntersectionObserver(
|
|
396
541
|
([entry]) => {
|
|
397
542
|
if (entry.isIntersecting) {
|
|
@@ -409,7 +554,7 @@ var HeroSection = ({
|
|
|
409
554
|
}
|
|
410
555
|
return () => observer.disconnect();
|
|
411
556
|
}, []);
|
|
412
|
-
return /* @__PURE__ */
|
|
557
|
+
return /* @__PURE__ */ import_react10.default.createElement("section", { className: "relative min-h-[85vh] pt-40 sm:pt-48 pb-20 flex flex-col items-center justify-center overflow-hidden w-full bg-black" }, /* @__PURE__ */ import_react10.default.createElement("div", { className: "absolute inset-0 w-full h-full z-0 overflow-hidden" }, bgVideoSrc ? /* @__PURE__ */ import_react10.default.createElement(
|
|
413
558
|
"video",
|
|
414
559
|
{
|
|
415
560
|
src: bgVideoSrc,
|
|
@@ -420,7 +565,7 @@ var HeroSection = ({
|
|
|
420
565
|
playsInline: true,
|
|
421
566
|
className: "absolute inset-0 w-full h-full object-cover z-0"
|
|
422
567
|
}
|
|
423
|
-
) : bgImageSrc ? /* @__PURE__ */
|
|
568
|
+
) : bgImageSrc ? /* @__PURE__ */ import_react10.default.createElement(
|
|
424
569
|
import_image2.default,
|
|
425
570
|
{
|
|
426
571
|
src: bgImageSrc,
|
|
@@ -429,7 +574,7 @@ var HeroSection = ({
|
|
|
429
574
|
priority: true,
|
|
430
575
|
className: "object-cover z-0"
|
|
431
576
|
}
|
|
432
|
-
) : null, /* @__PURE__ */
|
|
577
|
+
) : null, /* @__PURE__ */ import_react10.default.createElement(
|
|
433
578
|
"div",
|
|
434
579
|
{
|
|
435
580
|
className: "absolute inset-0 z-10 opacity-30 mix-blend-overlay pointer-events-none",
|
|
@@ -439,7 +584,7 @@ var HeroSection = ({
|
|
|
439
584
|
backgroundPosition: "center"
|
|
440
585
|
}
|
|
441
586
|
}
|
|
442
|
-
), /* @__PURE__ */
|
|
587
|
+
), /* @__PURE__ */ import_react10.default.createElement("div", { className: "absolute inset-0 bg-black/20 z-10" }), /* @__PURE__ */ import_react10.default.createElement(
|
|
443
588
|
"div",
|
|
444
589
|
{
|
|
445
590
|
className: "absolute inset-0 w-full h-full pointer-events-none z-10 opacity-10",
|
|
@@ -448,7 +593,7 @@ var HeroSection = ({
|
|
|
448
593
|
backgroundSize: "32px 32px"
|
|
449
594
|
}
|
|
450
595
|
}
|
|
451
|
-
), /* @__PURE__ */
|
|
596
|
+
), /* @__PURE__ */ import_react10.default.createElement(
|
|
452
597
|
"div",
|
|
453
598
|
{
|
|
454
599
|
className: "absolute inset-0 w-full h-full pointer-events-none z-10 opacity-[0.10] mix-blend-overlay",
|
|
@@ -456,24 +601,33 @@ var HeroSection = ({
|
|
|
456
601
|
backgroundImage: `url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")`
|
|
457
602
|
}
|
|
458
603
|
}
|
|
459
|
-
), /* @__PURE__ */
|
|
604
|
+
), /* @__PURE__ */ import_react10.default.createElement("div", { className: "absolute inset-x-0 bottom-0 h-40 bg-linear-to-t from-black to-transparent z-10 pointer-events-none" })), /* @__PURE__ */ import_react10.default.createElement("div", { className: "relative max-w-5xl mx-auto px-4 sm:px-6 w-full flex flex-col items-center text-center z-20" }, /* @__PURE__ */ import_react10.default.createElement(
|
|
460
605
|
"h1",
|
|
461
606
|
{
|
|
462
607
|
ref: titleRef,
|
|
463
608
|
className: `text-4xl sm:text-5xl lg:text-7xl font-light mb-6 text-white tracking-tight leading-[1.05] max-w-4xl drop-shadow-[0_4px_24px_rgba(0,0,0,0.5)]`,
|
|
464
609
|
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
465
610
|
},
|
|
466
|
-
titlePrefix,
|
|
467
|
-
" ",
|
|
468
|
-
|
|
469
|
-
|
|
611
|
+
/* @__PURE__ */ import_react10.default.createElement("span", { className: "block" }, titlePrefix),
|
|
612
|
+
/* @__PURE__ */ import_react10.default.createElement("span", { className: "block mt-2 font-medium gradient-text" }, highlightText)
|
|
613
|
+
), subtitle && /* @__PURE__ */ import_react10.default.createElement("p", { className: "text-[14px] md:text-[16px] text-neutral-200 max-w-xl mx-auto mb-10 font-light leading-relaxed drop-shadow-md" }, subtitle), /* @__PURE__ */ import_react10.default.createElement("div", { className: "flex flex-col sm:flex-row gap-4 justify-center items-center w-full px-2 sm:px-0 mx-auto mb-16" }, ctaText && (ctaHref || isWaitlist) && /* @__PURE__ */ import_react10.default.createElement("div", { className: "w-full sm:w-60 flex justify-center *:w-full" }, /* @__PURE__ */ import_react10.default.createElement(
|
|
614
|
+
ThreeDButton,
|
|
615
|
+
{
|
|
616
|
+
href: isWaitlist ? "#" : ctaHref || "#",
|
|
617
|
+
onClick: isWaitlist ? (e) => {
|
|
618
|
+
e.preventDefault();
|
|
619
|
+
setIsWaitlistOpen(true);
|
|
620
|
+
} : void 0
|
|
621
|
+
},
|
|
622
|
+
ctaText
|
|
623
|
+
)), secondaryCtaText && secondaryCtaHref && /* @__PURE__ */ import_react10.default.createElement(
|
|
470
624
|
import_link4.default,
|
|
471
625
|
{
|
|
472
626
|
href: secondaryCtaHref,
|
|
473
627
|
className: "w-full sm:w-60 inline-flex font-medium items-center justify-center text-[11px] tracking-widest rounded-full px-8 py-3 bg-black/40 backdrop-blur-md text-center text-white text-xs hover:bg-neutral-800 hover:border-neutral-500 outline-none transition-all drop-shadow-lg"
|
|
474
628
|
},
|
|
475
629
|
secondaryCtaText
|
|
476
|
-
)), showApps && appLogos && appLogos.length > 0 && /* @__PURE__ */
|
|
630
|
+
)), showApps && appLogos && appLogos.length > 0 && /* @__PURE__ */ import_react10.default.createElement("div", { className: "w-full flex flex-col items-center mt-4" }, appsText && /* @__PURE__ */ import_react10.default.createElement("p", { className: "text-[9px] tracking-[0.2em] text-neutral-300 mb-5 " }, appsText), /* @__PURE__ */ import_react10.default.createElement("div", { className: "flex flex-wrap justify-center items-center gap-6 opacity-90" }, appLogos.map((logo, idx) => /* @__PURE__ */ import_react10.default.createElement("div", { key: idx, className: "relative h-6 w-6 sm:h-8 sm:w-8 flex items-center justify-center cursor-default filter invert" }, /* @__PURE__ */ import_react10.default.createElement(
|
|
477
631
|
import_image2.default,
|
|
478
632
|
{
|
|
479
633
|
src: logo.src,
|
|
@@ -482,16 +636,22 @@ var HeroSection = ({
|
|
|
482
636
|
height: 50,
|
|
483
637
|
className: "object-contain h-full w-auto"
|
|
484
638
|
}
|
|
485
|
-
))))))
|
|
639
|
+
)))))), /* @__PURE__ */ import_react10.default.createElement(
|
|
640
|
+
WaitlistDialog,
|
|
641
|
+
{
|
|
642
|
+
isOpen: isWaitlistOpen,
|
|
643
|
+
onClose: () => setIsWaitlistOpen(false)
|
|
644
|
+
}
|
|
645
|
+
));
|
|
486
646
|
};
|
|
487
647
|
|
|
488
648
|
// src/components/AppBento2.tsx
|
|
489
|
-
var
|
|
490
|
-
var
|
|
649
|
+
var import_react11 = __toESM(require("react"));
|
|
650
|
+
var import_react12 = require("@hugeicons/react");
|
|
491
651
|
var AppBento2 = ({ tagline, headline, features }) => {
|
|
492
|
-
const [isAnimating, setIsAnimating] = (0,
|
|
493
|
-
const titleRef = (0,
|
|
494
|
-
(0,
|
|
652
|
+
const [isAnimating, setIsAnimating] = (0, import_react11.useState)(false);
|
|
653
|
+
const titleRef = (0, import_react11.useRef)(null);
|
|
654
|
+
(0, import_react11.useEffect)(() => {
|
|
495
655
|
const observer = new IntersectionObserver(
|
|
496
656
|
([entry]) => {
|
|
497
657
|
if (entry.isIntersecting) {
|
|
@@ -509,7 +669,7 @@ var AppBento2 = ({ tagline, headline, features }) => {
|
|
|
509
669
|
}
|
|
510
670
|
return () => observer.disconnect();
|
|
511
671
|
}, []);
|
|
512
|
-
return /* @__PURE__ */
|
|
672
|
+
return /* @__PURE__ */ import_react11.default.createElement("div", { className: "w-full py-16 bg-black" }, /* @__PURE__ */ import_react11.default.createElement("div", { className: "w-full flex justify-center px-4" }, /* @__PURE__ */ import_react11.default.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ import_react11.default.createElement("div", { className: "relative overflow-hidden mb-12 text-left" }, /* @__PURE__ */ import_react11.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react11.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4 " }, tagline), /* @__PURE__ */ import_react11.default.createElement(
|
|
513
673
|
"h2",
|
|
514
674
|
{
|
|
515
675
|
ref: titleRef,
|
|
@@ -517,7 +677,7 @@ var AppBento2 = ({ tagline, headline, features }) => {
|
|
|
517
677
|
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
518
678
|
},
|
|
519
679
|
headline
|
|
520
|
-
))), /* @__PURE__ */
|
|
680
|
+
))), /* @__PURE__ */ import_react11.default.createElement("div", { className: "grid grid-cols-1 lg:grid-cols-6 gap-6" }, features.map((f, i) => {
|
|
521
681
|
const isPrimary = i === 0;
|
|
522
682
|
const isHighlight = i === 1;
|
|
523
683
|
const isSecondary = i === 2;
|
|
@@ -539,36 +699,36 @@ var AppBento2 = ({ tagline, headline, features }) => {
|
|
|
539
699
|
const textColor = "text-white";
|
|
540
700
|
const subTextColor = "text-neutral-400";
|
|
541
701
|
const labelColor = "text-neutral-500";
|
|
542
|
-
return /* @__PURE__ */
|
|
702
|
+
return /* @__PURE__ */ import_react11.default.createElement(
|
|
543
703
|
"div",
|
|
544
704
|
{
|
|
545
705
|
key: i,
|
|
546
706
|
className: `relative rounded-2xl overflow-hidden p-8 flex flex-col min-h-75 transition-all duration-500 group text-left ${getBgStyle()} ${f.size}`,
|
|
547
707
|
style: { boxShadow: getShadowStyle() }
|
|
548
708
|
},
|
|
549
|
-
/* @__PURE__ */
|
|
709
|
+
/* @__PURE__ */ import_react11.default.createElement(
|
|
550
710
|
"div",
|
|
551
711
|
{
|
|
552
712
|
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
553
713
|
style: { backgroundImage: `url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")` }
|
|
554
714
|
}
|
|
555
715
|
),
|
|
556
|
-
isHighlight && /* @__PURE__ */
|
|
557
|
-
/* @__PURE__ */
|
|
558
|
-
/* @__PURE__ */
|
|
716
|
+
isHighlight && /* @__PURE__ */ import_react11.default.createElement("span", { className: "absolute inset-0 rounded-2xl bg-linear-to-b from-white/10 via-white/5 to-transparent pointer-events-none z-10" }),
|
|
717
|
+
/* @__PURE__ */ import_react11.default.createElement("div", { className: "absolute inset-0 overflow-hidden pointer-events-none z-0" }, /* @__PURE__ */ import_react11.default.createElement("div", { className: `absolute -bottom-8 -right-8 transform group-hover:scale-110 transition-transform duration-700 ease-out ${isHighlight ? "text-white/5" : "text-white/5"}` }, /* @__PURE__ */ import_react11.default.createElement(import_react12.HugeiconsIcon, { icon: f.icon, size: 180 }))),
|
|
718
|
+
/* @__PURE__ */ import_react11.default.createElement("div", { className: "relative z-10 w-full h-full flex flex-col pointer-events-auto" }, /* @__PURE__ */ import_react11.default.createElement("div", { className: "flex items-center justify-between mb-8" }, /* @__PURE__ */ import_react11.default.createElement("span", { className: `text-[9px] tracking-widest ${labelColor}` }, f.label), /* @__PURE__ */ import_react11.default.createElement("div", { className: `p-2 rounded-full transition-colors bg-white/10` }, /* @__PURE__ */ import_react11.default.createElement(import_react12.HugeiconsIcon, { icon: f.icon, size: 20, className: textColor }))), /* @__PURE__ */ import_react11.default.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ import_react11.default.createElement("h3", { className: `text-xl mb-2 tracking-tight ${textColor}` }, f.title), /* @__PURE__ */ import_react11.default.createElement("p", { className: `text-[13px] leading-relaxed max-w-sm ${subTextColor}` }, f.desc)))
|
|
559
719
|
);
|
|
560
720
|
})))));
|
|
561
721
|
};
|
|
562
722
|
|
|
563
723
|
// src/components/FeatureScroll.tsx
|
|
564
|
-
var
|
|
724
|
+
var import_react13 = __toESM(require("react"));
|
|
565
725
|
var import_image3 = __toESM(require("next/image"));
|
|
566
|
-
var
|
|
726
|
+
var import_react14 = require("@hugeicons/react");
|
|
567
727
|
var import_core_free_icons2 = require("@hugeicons/core-free-icons");
|
|
568
728
|
var FeatureCard = ({ feature, bgImage }) => {
|
|
569
|
-
const [isBgLoading, setIsBgLoading] = (0,
|
|
570
|
-
const [isFgLoading, setIsFgLoading] = (0,
|
|
571
|
-
return /* @__PURE__ */
|
|
729
|
+
const [isBgLoading, setIsBgLoading] = (0, import_react13.useState)(true);
|
|
730
|
+
const [isFgLoading, setIsFgLoading] = (0, import_react13.useState)(!!feature.image);
|
|
731
|
+
return /* @__PURE__ */ import_react13.default.createElement("div", { className: "flex flex-col shrink-0 w-[90vw] sm:w-150 snap-center md:snap-start group cursor-grab active:cursor-grabbing" }, /* @__PURE__ */ import_react13.default.createElement("div", { className: "relative w-full aspect-16/10 bg-neutral-900 rounded-2xl overflow-hidden mb-6 flex items-center justify-center " }, /* @__PURE__ */ import_react13.default.createElement(
|
|
572
732
|
import_image3.default,
|
|
573
733
|
{
|
|
574
734
|
src: bgImage,
|
|
@@ -581,7 +741,7 @@ var FeatureCard = ({ feature, bgImage }) => {
|
|
|
581
741
|
${isBgLoading ? "blur-xl scale-110" : "blur-0 scale-100"}
|
|
582
742
|
`
|
|
583
743
|
}
|
|
584
|
-
), /* @__PURE__ */
|
|
744
|
+
), /* @__PURE__ */ import_react13.default.createElement(
|
|
585
745
|
"div",
|
|
586
746
|
{
|
|
587
747
|
className: "absolute inset-0 w-full h-full pointer-events-none z-0 opacity-[0.25] mix-blend-overlay",
|
|
@@ -589,7 +749,7 @@ var FeatureCard = ({ feature, bgImage }) => {
|
|
|
589
749
|
backgroundImage: `url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")`
|
|
590
750
|
}
|
|
591
751
|
}
|
|
592
|
-
), isFgLoading && feature.image && /* @__PURE__ */
|
|
752
|
+
), isFgLoading && feature.image && /* @__PURE__ */ import_react13.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-neutral-900/50 backdrop-blur-sm transition-opacity duration-300" }, /* @__PURE__ */ import_react13.default.createElement(import_react14.HugeiconsIcon, { icon: import_core_free_icons2.Loading03Icon, size: 32, className: "animate-spin text-neutral-500" })), feature.image && /* @__PURE__ */ import_react13.default.createElement("div", { className: "absolute -bottom-6 -right-6 w-[85%] h-[85%] z-10 transition-transform duration-700 ease-out group-hover:-translate-x-2 group-hover:-translate-y-2" }, /* @__PURE__ */ import_react13.default.createElement(
|
|
593
753
|
import_image3.default,
|
|
594
754
|
{
|
|
595
755
|
src: feature.image,
|
|
@@ -602,12 +762,12 @@ var FeatureCard = ({ feature, bgImage }) => {
|
|
|
602
762
|
${isFgLoading ? "opacity-0 blur-xl" : "opacity-100 blur-0"}
|
|
603
763
|
`
|
|
604
764
|
}
|
|
605
|
-
))), /* @__PURE__ */
|
|
765
|
+
))), /* @__PURE__ */ import_react13.default.createElement("div", { className: "flex flex-col text-left pr-4" }, /* @__PURE__ */ import_react13.default.createElement("h3", { className: "text-xl tracking-tight text-white mb-2" }, feature.title), /* @__PURE__ */ import_react13.default.createElement("p", { className: "text-[13px] leading-relaxed text-neutral-400 max-w-[90%]" }, feature.desc)));
|
|
606
766
|
};
|
|
607
767
|
var FeatureScroll = ({ tagline, headline, features }) => {
|
|
608
|
-
const scrollRef = (0,
|
|
609
|
-
const [canScrollLeft, setCanScrollLeft] = (0,
|
|
610
|
-
const [canScrollRight, setCanScrollRight] = (0,
|
|
768
|
+
const scrollRef = (0, import_react13.useRef)(null);
|
|
769
|
+
const [canScrollLeft, setCanScrollLeft] = (0, import_react13.useState)(false);
|
|
770
|
+
const [canScrollRight, setCanScrollRight] = (0, import_react13.useState)(true);
|
|
611
771
|
const checkScroll = () => {
|
|
612
772
|
if (scrollRef.current) {
|
|
613
773
|
const { scrollLeft, scrollWidth, clientWidth } = scrollRef.current;
|
|
@@ -615,7 +775,7 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
615
775
|
setCanScrollRight(scrollLeft < scrollWidth - clientWidth - 2);
|
|
616
776
|
}
|
|
617
777
|
};
|
|
618
|
-
(0,
|
|
778
|
+
(0, import_react13.useEffect)(() => {
|
|
619
779
|
checkScroll();
|
|
620
780
|
window.addEventListener("resize", checkScroll);
|
|
621
781
|
return () => window.removeEventListener("resize", checkScroll);
|
|
@@ -631,7 +791,7 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
631
791
|
"https://retinalabs.company/assets/images/bg_6.avif",
|
|
632
792
|
"https://retinalabs.company/assets/images/bg_1.avif"
|
|
633
793
|
];
|
|
634
|
-
return /* @__PURE__ */
|
|
794
|
+
return /* @__PURE__ */ import_react13.default.createElement("section", { className: "py-24 w-full flex justify-center relative z-10 overflow-hidden bg-black" }, /* @__PURE__ */ import_react13.default.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ import_react13.default.createElement("div", { className: "flex flex-col md:flex-row md:items-end justify-between gap-6 mb-12" }, /* @__PURE__ */ import_react13.default.createElement("div", { className: "relative z-10 text-left" }, /* @__PURE__ */ import_react13.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4" }, tagline), /* @__PURE__ */ import_react13.default.createElement("h2", { className: "text-3xl tracking-tight text-white leading-[1.05]" }, headline)), /* @__PURE__ */ import_react13.default.createElement("div", { className: "hidden md:flex items-center gap-3" }, /* @__PURE__ */ import_react13.default.createElement(
|
|
635
795
|
"button",
|
|
636
796
|
{
|
|
637
797
|
onClick: () => scroll("left"),
|
|
@@ -639,8 +799,8 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
639
799
|
className: "p-4 border border-neutral-800 rounded-full text-neutral-500 hover:text-white hover:border-white disabled:opacity-30 disabled:hover:border-neutral-800 disabled:hover:text-neutral-500 disabled:cursor-not-allowed transition-all outline-none",
|
|
640
800
|
"aria-label": "Previous feature"
|
|
641
801
|
},
|
|
642
|
-
/* @__PURE__ */
|
|
643
|
-
), /* @__PURE__ */
|
|
802
|
+
/* @__PURE__ */ import_react13.default.createElement(import_react14.HugeiconsIcon, { icon: import_core_free_icons2.ArrowLeft01Icon, size: 20 })
|
|
803
|
+
), /* @__PURE__ */ import_react13.default.createElement(
|
|
644
804
|
"button",
|
|
645
805
|
{
|
|
646
806
|
onClick: () => scroll("right"),
|
|
@@ -648,57 +808,57 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
648
808
|
className: "p-4 border border-neutral-800 rounded-full text-neutral-500 hover:text-white hover:border-white disabled:opacity-30 disabled:hover:border-neutral-800 disabled:hover:text-neutral-500 disabled:cursor-not-allowed transition-all outline-none",
|
|
649
809
|
"aria-label": "Next feature"
|
|
650
810
|
},
|
|
651
|
-
/* @__PURE__ */
|
|
652
|
-
))), /* @__PURE__ */
|
|
811
|
+
/* @__PURE__ */ import_react13.default.createElement(import_react14.HugeiconsIcon, { icon: import_core_free_icons2.ArrowRight01Icon, size: 20 })
|
|
812
|
+
))), /* @__PURE__ */ import_react13.default.createElement(
|
|
653
813
|
"div",
|
|
654
814
|
{
|
|
655
815
|
ref: scrollRef,
|
|
656
816
|
onScroll: checkScroll,
|
|
657
817
|
className: "flex gap-6 overflow-x-auto snap-x snap-mandatory [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] scrollbar-none pb-8 -mx-4 px-4 md:mx-0 md:px-0"
|
|
658
818
|
},
|
|
659
|
-
features.slice(0, 3).map((feature, idx) => /* @__PURE__ */
|
|
660
|
-
), /* @__PURE__ */
|
|
819
|
+
features.slice(0, 3).map((feature, idx) => /* @__PURE__ */ import_react13.default.createElement(FeatureCard, { key: idx, feature, bgImage: bgImages[idx] }))
|
|
820
|
+
), /* @__PURE__ */ import_react13.default.createElement("div", { className: "flex md:hidden items-center justify-center gap-4 mt-2" }, /* @__PURE__ */ import_react13.default.createElement(
|
|
661
821
|
"button",
|
|
662
822
|
{
|
|
663
823
|
onClick: () => scroll("left"),
|
|
664
824
|
disabled: !canScrollLeft,
|
|
665
825
|
className: "p-4 border border-neutral-800 rounded-full text-neutral-500 hover:text-white hover:border-white disabled:opacity-30 transition-all outline-none"
|
|
666
826
|
},
|
|
667
|
-
/* @__PURE__ */
|
|
668
|
-
), /* @__PURE__ */
|
|
827
|
+
/* @__PURE__ */ import_react13.default.createElement(import_react14.HugeiconsIcon, { icon: import_core_free_icons2.ArrowLeft01Icon, size: 20 })
|
|
828
|
+
), /* @__PURE__ */ import_react13.default.createElement(
|
|
669
829
|
"button",
|
|
670
830
|
{
|
|
671
831
|
onClick: () => scroll("right"),
|
|
672
832
|
disabled: !canScrollRight,
|
|
673
833
|
className: "p-4 border border-neutral-800 rounded-full text-neutral-500 hover:text-white hover:border-white disabled:opacity-30 transition-all outline-none"
|
|
674
834
|
},
|
|
675
|
-
/* @__PURE__ */
|
|
835
|
+
/* @__PURE__ */ import_react13.default.createElement(import_react14.HugeiconsIcon, { icon: import_core_free_icons2.ArrowRight01Icon, size: 20 })
|
|
676
836
|
))));
|
|
677
837
|
};
|
|
678
838
|
|
|
679
839
|
// src/components/PlatformFeatures.tsx
|
|
680
|
-
var
|
|
681
|
-
var
|
|
840
|
+
var import_react15 = __toESM(require("react"));
|
|
841
|
+
var import_react16 = require("@hugeicons/react");
|
|
682
842
|
var PlatformFeatures = ({
|
|
683
843
|
tagline,
|
|
684
844
|
headline,
|
|
685
845
|
description,
|
|
686
846
|
features
|
|
687
847
|
}) => {
|
|
688
|
-
return /* @__PURE__ */
|
|
848
|
+
return /* @__PURE__ */ import_react15.default.createElement("section", { className: "w-full flex justify-center mb-15 relative z-10 bg-black" }, /* @__PURE__ */ import_react15.default.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ import_react15.default.createElement("div", { className: "flex flex-col items-start mb-16 relative z-10" }, /* @__PURE__ */ import_react15.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4" }, tagline), /* @__PURE__ */ import_react15.default.createElement("h2", { className: "text-3xl tracking-tight text-white leading-[1.05] mb-6" }, headline), /* @__PURE__ */ import_react15.default.createElement("p", { className: "text-[15px] leading-[1.8] text-neutral-400 max-w-2xl" }, description)), /* @__PURE__ */ import_react15.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-x-8 gap-y-12" }, features.map((feature, idx) => /* @__PURE__ */ import_react15.default.createElement(
|
|
689
849
|
"div",
|
|
690
850
|
{
|
|
691
851
|
key: idx,
|
|
692
852
|
className: "flex flex-col group animate-in fade-in slide-in-from-bottom-4 duration-700 fill-mode-both",
|
|
693
853
|
style: { animationDelay: feature.delay || "0ms" }
|
|
694
854
|
},
|
|
695
|
-
/* @__PURE__ */
|
|
696
|
-
/* @__PURE__ */
|
|
855
|
+
/* @__PURE__ */ import_react15.default.createElement("div", { className: "flex flex-row items-center gap-4 mb-4" }, /* @__PURE__ */ import_react15.default.createElement("div", { className: "w-14 h-14 shrink-0 rounded-xl border border-neutral-800 flex items-center justify-center text-white transition-colors duration-300" }, /* @__PURE__ */ import_react15.default.createElement(import_react16.HugeiconsIcon, { icon: feature.icon, size: 24 })), /* @__PURE__ */ import_react15.default.createElement("div", { className: "flex flex-col justify-center" }, /* @__PURE__ */ import_react15.default.createElement("span", { className: "text-[11px] tracking-widest text-neutral-500 mb-0.5" }, feature.label || "CAPABILITY"), /* @__PURE__ */ import_react15.default.createElement("h3", { className: "text-xl tracking-tight text-white" }, feature.title))),
|
|
856
|
+
/* @__PURE__ */ import_react15.default.createElement("div", null, /* @__PURE__ */ import_react15.default.createElement("p", { className: "text-[13px] leading-relaxed text-neutral-400 pr-4" }, feature.desc))
|
|
697
857
|
)))));
|
|
698
858
|
};
|
|
699
859
|
|
|
700
860
|
// src/components/ManagedDocument.tsx
|
|
701
|
-
var
|
|
861
|
+
var import_react17 = __toESM(require("react"));
|
|
702
862
|
var ManagedDocument = ({
|
|
703
863
|
tagline,
|
|
704
864
|
title,
|
|
@@ -706,9 +866,9 @@ var ManagedDocument = ({
|
|
|
706
866
|
contactText,
|
|
707
867
|
contactEmail
|
|
708
868
|
}) => {
|
|
709
|
-
const [isAnimating, setIsAnimating] = (0,
|
|
710
|
-
const titleRef = (0,
|
|
711
|
-
(0,
|
|
869
|
+
const [isAnimating, setIsAnimating] = (0, import_react17.useState)(false);
|
|
870
|
+
const titleRef = (0, import_react17.useRef)(null);
|
|
871
|
+
(0, import_react17.useEffect)(() => {
|
|
712
872
|
const observer = new IntersectionObserver(
|
|
713
873
|
([entry]) => {
|
|
714
874
|
if (entry.isIntersecting) {
|
|
@@ -728,7 +888,7 @@ var ManagedDocument = ({
|
|
|
728
888
|
}, []);
|
|
729
889
|
return (
|
|
730
890
|
// Outer layout wrapper (takes up available space, adds padding)
|
|
731
|
-
/* @__PURE__ */
|
|
891
|
+
/* @__PURE__ */ import_react17.default.createElement("div", { className: "grow pt-28 px-3 md:px-8 w-full flex justify-center z-10 relative bg-black" }, /* @__PURE__ */ import_react17.default.createElement("div", { className: "relative bg-neutral-900 rounded-2xl w-full max-w-7xl mx-auto overflow-hidden" }, /* @__PURE__ */ import_react17.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react17.default.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10" }, tagline && /* @__PURE__ */ import_react17.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 text-left block " }, tagline), /* @__PURE__ */ import_react17.default.createElement(
|
|
732
892
|
"h1",
|
|
733
893
|
{
|
|
734
894
|
ref: titleRef,
|
|
@@ -736,7 +896,7 @@ var ManagedDocument = ({
|
|
|
736
896
|
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
737
897
|
},
|
|
738
898
|
title
|
|
739
|
-
)), sections.map((section, index) => /* @__PURE__ */
|
|
899
|
+
)), sections.map((section, index) => /* @__PURE__ */ import_react17.default.createElement("div", { key: index, className: "relative px-5 md:px-12 py-8 md:py-10" }, section.heading && /* @__PURE__ */ import_react17.default.createElement("p", { className: "text-[11px] tracking-[0.2em] text-white mb-4 text-left " }, section.heading), section.paragraphs && section.paragraphs.length > 0 && /* @__PURE__ */ import_react17.default.createElement("div", { className: "text-[14px] leading-[1.8] text-neutral-400 space-y-4 text-left font-light" }, section.paragraphs.map((text, pIndex) => /* @__PURE__ */ import_react17.default.createElement("p", { key: pIndex }, text))), section.quote && /* @__PURE__ */ import_react17.default.createElement("div", { className: `border-neutral-800 bg-neutral-950 border rounded-xl p-6 ${section.paragraphs && section.paragraphs.length > 0 ? "mt-6" : ""}` }, /* @__PURE__ */ import_react17.default.createElement("p", { className: "text-white text-[14px] md:text-[14px] leading-relaxed" }, '"', section.quote, '"')))), (contactText || contactEmail) && /* @__PURE__ */ import_react17.default.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10 pb-12 md:pb-14" }, /* @__PURE__ */ import_react17.default.createElement("p", { className: "text-[11px] text-neutral-500 text-left" }, contactText, contactEmail && /* @__PURE__ */ import_react17.default.createElement(
|
|
740
900
|
"a",
|
|
741
901
|
{
|
|
742
902
|
href: `mailto:${contactEmail}`,
|
|
@@ -748,18 +908,18 @@ var ManagedDocument = ({
|
|
|
748
908
|
};
|
|
749
909
|
|
|
750
910
|
// src/components/ManagedContactBlock.tsx
|
|
751
|
-
var
|
|
752
|
-
var
|
|
911
|
+
var import_react18 = __toESM(require("react"));
|
|
912
|
+
var import_react19 = require("@hugeicons/react");
|
|
753
913
|
var SecureEmail = ({ user, domain, className }) => {
|
|
754
|
-
const [isMounted, setIsMounted] = (0,
|
|
755
|
-
(0,
|
|
914
|
+
const [isMounted, setIsMounted] = (0, import_react18.useState)(false);
|
|
915
|
+
(0, import_react18.useEffect)(() => {
|
|
756
916
|
setIsMounted(true);
|
|
757
917
|
}, []);
|
|
758
918
|
if (!isMounted) {
|
|
759
|
-
return /* @__PURE__ */
|
|
919
|
+
return /* @__PURE__ */ import_react18.default.createElement("span", { className, style: { opacity: 0 } }, "Loading");
|
|
760
920
|
}
|
|
761
921
|
const email = `${user}@${domain}`;
|
|
762
|
-
return /* @__PURE__ */
|
|
922
|
+
return /* @__PURE__ */ import_react18.default.createElement("a", { href: `mailto:${email}`, className }, email);
|
|
763
923
|
};
|
|
764
924
|
var ManagedContactBlock = ({
|
|
765
925
|
tagline,
|
|
@@ -768,7 +928,7 @@ var ManagedContactBlock = ({
|
|
|
768
928
|
emails,
|
|
769
929
|
socials
|
|
770
930
|
}) => {
|
|
771
|
-
return /* @__PURE__ */
|
|
931
|
+
return /* @__PURE__ */ import_react18.default.createElement("div", { className: "grow pt-28 pb-20 px-4 md:px-8 w-full flex justify-center z-10 relative bg-black" }, /* @__PURE__ */ import_react18.default.createElement("div", { className: "relative bg-neutral-900 rounded-2xl w-full max-w-7xl mx-auto overflow-hidden" }, /* @__PURE__ */ import_react18.default.createElement(
|
|
772
932
|
"div",
|
|
773
933
|
{
|
|
774
934
|
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
@@ -777,21 +937,21 @@ var ManagedContactBlock = ({
|
|
|
777
937
|
backgroundRepeat: "repeat"
|
|
778
938
|
}
|
|
779
939
|
}
|
|
780
|
-
), /* @__PURE__ */
|
|
940
|
+
), /* @__PURE__ */ import_react18.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react18.default.createElement("div", { className: "relative px-8 md:px-12 py-10" }, tagline && /* @__PURE__ */ import_react18.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 text-left block " }, tagline), /* @__PURE__ */ import_react18.default.createElement("h1", { className: "text-3xl mt-4 text-white tracking-tight text-left" }, title)), /* @__PURE__ */ import_react18.default.createElement("div", { className: "relative px-8 md:px-12 py-8 pb-14" }, /* @__PURE__ */ import_react18.default.createElement("div", { className: "flex flex-wrap gap-12 lg:gap-16 w-full" }, company && /* @__PURE__ */ import_react18.default.createElement("div", { className: "flex-1 min-w-65 space-y-6" }, /* @__PURE__ */ import_react18.default.createElement("p", { className: "text-[11px] tracking-[0.2em] text-white mb-4 " }, "Contact Details"), /* @__PURE__ */ import_react18.default.createElement("div", { className: "space-y-3 text-[13px] text-neutral-400 leading-[1.8]" }, company.name && /* @__PURE__ */ import_react18.default.createElement("p", { className: "text-white" }, company.name), company.lines && company.lines.map((line, idx) => /* @__PURE__ */ import_react18.default.createElement("p", { key: idx }, line)), company.phone && /* @__PURE__ */ import_react18.default.createElement("p", { className: "pt-2" }, /* @__PURE__ */ import_react18.default.createElement(
|
|
781
941
|
"a",
|
|
782
942
|
{
|
|
783
943
|
href: `tel:${company.phone.replace(/\s+/g, "")}`,
|
|
784
944
|
className: "transition-colors hover:text-white"
|
|
785
945
|
},
|
|
786
946
|
company.phone
|
|
787
|
-
)))), emails && emails.length > 0 && /* @__PURE__ */
|
|
947
|
+
)))), emails && emails.length > 0 && /* @__PURE__ */ import_react18.default.createElement("div", { className: "flex-1 min-w-65 space-y-6" }, /* @__PURE__ */ import_react18.default.createElement("p", { className: "text-[11px] tracking-[0.2em] text-white mb-4 " }, "Email Directory"), /* @__PURE__ */ import_react18.default.createElement("div", { className: "space-y-6 text-[13px]" }, emails.map((email, idx) => /* @__PURE__ */ import_react18.default.createElement("div", { key: idx }, /* @__PURE__ */ import_react18.default.createElement("p", { className: "text-[11px] tracking-[0.2em] mb-1.5 text-neutral-500 " }, email.label), /* @__PURE__ */ import_react18.default.createElement(
|
|
788
948
|
SecureEmail,
|
|
789
949
|
{
|
|
790
950
|
user: email.user,
|
|
791
951
|
domain: email.domain,
|
|
792
952
|
className: "text-neutral-400 transition-colors hover:text-white"
|
|
793
953
|
}
|
|
794
|
-
))))), socials && socials.length > 0 && /* @__PURE__ */
|
|
954
|
+
))))), socials && socials.length > 0 && /* @__PURE__ */ import_react18.default.createElement("div", { className: "flex-1 min-w-65 space-y-6" }, /* @__PURE__ */ import_react18.default.createElement("p", { className: "text-[11px] tracking-[0.2em] text-white mb-4 " }, "Find Us Online"), /* @__PURE__ */ import_react18.default.createElement("div", { className: "flex flex-col space-y-5 pt-1" }, socials.map((social, idx) => /* @__PURE__ */ import_react18.default.createElement(
|
|
795
955
|
"a",
|
|
796
956
|
{
|
|
797
957
|
key: idx,
|
|
@@ -801,27 +961,27 @@ var ManagedContactBlock = ({
|
|
|
801
961
|
className: "flex items-center gap-3 transition-colors group text-neutral-400 hover:text-white",
|
|
802
962
|
"aria-label": social.label
|
|
803
963
|
},
|
|
804
|
-
/* @__PURE__ */
|
|
805
|
-
/* @__PURE__ */
|
|
964
|
+
/* @__PURE__ */ import_react18.default.createElement(import_react19.HugeiconsIcon, { icon: social.icon, size: 18 }),
|
|
965
|
+
/* @__PURE__ */ import_react18.default.createElement("span", { className: "text-[13px]" }, social.label)
|
|
806
966
|
)))))))));
|
|
807
967
|
};
|
|
808
968
|
|
|
809
969
|
// src/components/ManagedPricingBlock.tsx
|
|
810
|
-
var
|
|
970
|
+
var import_react20 = __toESM(require("react"));
|
|
811
971
|
var import_link5 = __toESM(require("next/link"));
|
|
812
972
|
var import_image4 = __toESM(require("next/image"));
|
|
813
|
-
var CheckIcon = ({ className = "" }) => /* @__PURE__ */
|
|
814
|
-
var CrossIcon = ({ className = "" }) => /* @__PURE__ */
|
|
973
|
+
var CheckIcon = ({ className = "" }) => /* @__PURE__ */ import_react20.default.createElement("svg", { viewBox: "0 0 24 24", fill: "none", className: `w-4 h-4 shrink-0 ${className}`, xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ import_react20.default.createElement("circle", { cx: "12", cy: "12", r: "10", fill: "white" }), /* @__PURE__ */ import_react20.default.createElement("path", { d: "M8 12L11 15L16 9", stroke: "black", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }));
|
|
974
|
+
var CrossIcon = ({ className = "" }) => /* @__PURE__ */ import_react20.default.createElement("svg", { viewBox: "0 0 24 24", fill: "none", className: `w-4 h-4 shrink-0 ${className}`, xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ import_react20.default.createElement("circle", { cx: "12", cy: "12", r: "10", fill: "#262626" }), /* @__PURE__ */ import_react20.default.createElement("path", { d: "M15 9L9 15M9 9l6 6", stroke: "#737373", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }));
|
|
815
975
|
var ManagedPricingBlock = ({
|
|
816
976
|
tagline,
|
|
817
977
|
title,
|
|
818
978
|
plans = [],
|
|
819
979
|
tabs
|
|
820
980
|
}) => {
|
|
821
|
-
const [isAnimating, setIsAnimating] = (0,
|
|
822
|
-
const [activeTabIndex, setActiveTabIndex] = (0,
|
|
823
|
-
const titleRef = (0,
|
|
824
|
-
(0,
|
|
981
|
+
const [isAnimating, setIsAnimating] = (0, import_react20.useState)(false);
|
|
982
|
+
const [activeTabIndex, setActiveTabIndex] = (0, import_react20.useState)(0);
|
|
983
|
+
const titleRef = (0, import_react20.useRef)(null);
|
|
984
|
+
(0, import_react20.useEffect)(() => {
|
|
825
985
|
const observer = new IntersectionObserver(
|
|
826
986
|
([entry]) => {
|
|
827
987
|
if (entry.isIntersecting) {
|
|
@@ -841,7 +1001,7 @@ var ManagedPricingBlock = ({
|
|
|
841
1001
|
}, []);
|
|
842
1002
|
const hasTabs = tabs && tabs.length > 0;
|
|
843
1003
|
const currentPlans = hasTabs ? tabs[activeTabIndex].plans : plans;
|
|
844
|
-
return /* @__PURE__ */
|
|
1004
|
+
return /* @__PURE__ */ import_react20.default.createElement("div", { className: "grow pt-10 pb-20 px-4 md:px-8 w-full flex justify-center z-10 relative bg-black" }, /* @__PURE__ */ import_react20.default.createElement("div", { className: "w-full max-w-5xl mx-auto flex flex-col items-center" }, /* @__PURE__ */ import_react20.default.createElement("div", { className: "w-full flex flex-col items-center text-center mb-10 sm:mb-12" }, tagline && /* @__PURE__ */ import_react20.default.createElement("span", { className: "text-[9px] tracking-[0.4em] text-neutral-500 block" }, tagline), /* @__PURE__ */ import_react20.default.createElement(
|
|
845
1005
|
"h1",
|
|
846
1006
|
{
|
|
847
1007
|
ref: titleRef,
|
|
@@ -849,9 +1009,9 @@ var ManagedPricingBlock = ({
|
|
|
849
1009
|
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
850
1010
|
},
|
|
851
1011
|
title
|
|
852
|
-
)), hasTabs && /* @__PURE__ */
|
|
1012
|
+
)), hasTabs && /* @__PURE__ */ import_react20.default.createElement("div", { className: "flex items-center justify-center mb-8 sm:mb-10 w-full animate-in fade-in duration-300 px-2" }, /* @__PURE__ */ import_react20.default.createElement("div", { className: "flex items-center bg-neutral-900 rounded-full p-1 sm:p-1.5 max-w-full overflow-x-auto custom-scrollbar" }, tabs.map((tab, idx) => {
|
|
853
1013
|
const isActive = activeTabIndex === idx;
|
|
854
|
-
return /* @__PURE__ */
|
|
1014
|
+
return /* @__PURE__ */ import_react20.default.createElement(
|
|
855
1015
|
"button",
|
|
856
1016
|
{
|
|
857
1017
|
key: idx,
|
|
@@ -860,19 +1020,19 @@ var ManagedPricingBlock = ({
|
|
|
860
1020
|
},
|
|
861
1021
|
tab.label
|
|
862
1022
|
);
|
|
863
|
-
}))), /* @__PURE__ */
|
|
1023
|
+
}))), /* @__PURE__ */ import_react20.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-5 w-full max-w-3xl animate-in slide-in-from-bottom-2 fade-in duration-500" }, currentPlans.map((plan, planIdx) => /* @__PURE__ */ import_react20.default.createElement(
|
|
864
1024
|
"div",
|
|
865
1025
|
{
|
|
866
1026
|
key: `${activeTabIndex}-${planIdx}`,
|
|
867
1027
|
className: `bg-neutral-900 rounded-3xl p-6 flex flex-col relative overflow-hidden transition-all duration-300 ${plan.isPremium ? "border-neutral-700" : ""}`
|
|
868
1028
|
},
|
|
869
|
-
/* @__PURE__ */
|
|
1029
|
+
/* @__PURE__ */ import_react20.default.createElement("div", { className: "mb-6" }, /* @__PURE__ */ import_react20.default.createElement("span", { className: "text-white text-base block mb-1" }, plan.name), /* @__PURE__ */ import_react20.default.createElement("div", { className: "flex items-baseline gap-1" }, /* @__PURE__ */ import_react20.default.createElement("h3", { className: "text-3xl font-light text-white" }, plan.price), plan.period && /* @__PURE__ */ import_react20.default.createElement("span", { className: "text-xs text-neutral-500" }, plan.period)), /* @__PURE__ */ import_react20.default.createElement("p", { className: "text-xs text-neutral-400 mt-2 min-h-8" }, plan.description), plan.showApps && plan.appLogos && plan.appLogos.length > 0 && /* @__PURE__ */ import_react20.default.createElement("div", { className: "flex items-center gap-2 mt-4 opacity-90" }, plan.appLogos.map((logo, logoIdx) => /* @__PURE__ */ import_react20.default.createElement(
|
|
870
1030
|
"div",
|
|
871
1031
|
{
|
|
872
1032
|
key: logoIdx,
|
|
873
1033
|
className: "relative w-5 h-5 overflow-hidden flex items-center justify-center shrink-0"
|
|
874
1034
|
},
|
|
875
|
-
/* @__PURE__ */
|
|
1035
|
+
/* @__PURE__ */ import_react20.default.createElement(
|
|
876
1036
|
import_image4.default,
|
|
877
1037
|
{
|
|
878
1038
|
src: logo.src,
|
|
@@ -883,7 +1043,7 @@ var ManagedPricingBlock = ({
|
|
|
883
1043
|
}
|
|
884
1044
|
)
|
|
885
1045
|
)))),
|
|
886
|
-
plan.isPremium ? /* @__PURE__ */
|
|
1046
|
+
plan.isPremium ? /* @__PURE__ */ import_react20.default.createElement(ThreeDButton, { href: plan.ctaHref, className: "mb-6 w-full" }, plan.ctaText) : /* @__PURE__ */ import_react20.default.createElement(
|
|
887
1047
|
import_link5.default,
|
|
888
1048
|
{
|
|
889
1049
|
href: plan.ctaHref,
|
|
@@ -891,20 +1051,20 @@ var ManagedPricingBlock = ({
|
|
|
891
1051
|
},
|
|
892
1052
|
plan.ctaText
|
|
893
1053
|
),
|
|
894
|
-
/* @__PURE__ */
|
|
1054
|
+
/* @__PURE__ */ import_react20.default.createElement("div", { className: "flex flex-col gap-3" }, plan.features.map((feature, featureIdx) => {
|
|
895
1055
|
const isAvailable = feature.value !== false;
|
|
896
1056
|
const valueText = typeof feature.value === "string" ? feature.value : "";
|
|
897
|
-
return /* @__PURE__ */
|
|
1057
|
+
return /* @__PURE__ */ import_react20.default.createElement("div", { key: featureIdx, className: "flex items-center gap-2.5" }, isAvailable ? /* @__PURE__ */ import_react20.default.createElement(CheckIcon, null) : /* @__PURE__ */ import_react20.default.createElement(CrossIcon, null), /* @__PURE__ */ import_react20.default.createElement("span", { className: `text-xs truncate ${isAvailable ? "text-neutral-300" : "text-neutral-600"}` }, feature.name, valueText && /* @__PURE__ */ import_react20.default.createElement("span", { className: "text-neutral-500 ml-1" }, "(", valueText, ")")));
|
|
898
1058
|
}))
|
|
899
1059
|
)))));
|
|
900
1060
|
};
|
|
901
1061
|
|
|
902
1062
|
// src/components/ManagedBoardBlock.tsx
|
|
903
|
-
var
|
|
1063
|
+
var import_react21 = __toESM(require("react"));
|
|
904
1064
|
var import_image5 = __toESM(require("next/image"));
|
|
905
|
-
var
|
|
1065
|
+
var import_react22 = require("@hugeicons/react");
|
|
906
1066
|
var import_core_free_icons3 = require("@hugeicons/core-free-icons");
|
|
907
|
-
var MemberSocialLink = ({ href, icon, label, name }) => /* @__PURE__ */
|
|
1067
|
+
var MemberSocialLink = ({ href, icon, label, name }) => /* @__PURE__ */ import_react21.default.createElement(
|
|
908
1068
|
"a",
|
|
909
1069
|
{
|
|
910
1070
|
href,
|
|
@@ -913,7 +1073,7 @@ var MemberSocialLink = ({ href, icon, label, name }) => /* @__PURE__ */ import_r
|
|
|
913
1073
|
className: "text-neutral-500 hover:text-white transition-colors",
|
|
914
1074
|
"aria-label": `${name} on ${label}`
|
|
915
1075
|
},
|
|
916
|
-
/* @__PURE__ */
|
|
1076
|
+
/* @__PURE__ */ import_react21.default.createElement(import_react22.HugeiconsIcon, { icon, size: 16 })
|
|
917
1077
|
);
|
|
918
1078
|
var ManagedBoardBlock = ({
|
|
919
1079
|
tagline,
|
|
@@ -922,7 +1082,7 @@ var ManagedBoardBlock = ({
|
|
|
922
1082
|
contactText,
|
|
923
1083
|
contactEmail
|
|
924
1084
|
}) => {
|
|
925
|
-
return /* @__PURE__ */
|
|
1085
|
+
return /* @__PURE__ */ import_react21.default.createElement("div", { className: "grow pt-28 pb-20 px-3 md:px-8 w-full flex justify-center z-10 relative bg-black" }, /* @__PURE__ */ import_react21.default.createElement("div", { className: "relative w-full mx-auto overflow-hidden max-w-7xl" }, /* @__PURE__ */ import_react21.default.createElement(
|
|
926
1086
|
"div",
|
|
927
1087
|
{
|
|
928
1088
|
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
@@ -931,7 +1091,7 @@ var ManagedBoardBlock = ({
|
|
|
931
1091
|
backgroundRepeat: "repeat"
|
|
932
1092
|
}
|
|
933
1093
|
}
|
|
934
|
-
), /* @__PURE__ */
|
|
1094
|
+
), /* @__PURE__ */ import_react21.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react21.default.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10" }, tagline && /* @__PURE__ */ import_react21.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 text-left block " }, tagline), /* @__PURE__ */ import_react21.default.createElement("h1", { className: "text-3xl mt-4 text-white tracking-tight text-left" }, title)), /* @__PURE__ */ import_react21.default.createElement("div", { className: "relative px-5 md:px-12 py-4 md:py-8" }, /* @__PURE__ */ import_react21.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-5 md:gap-8" }, members.map((member, idx) => /* @__PURE__ */ import_react21.default.createElement("div", { key: idx, className: "relative p-6 md:p-8 rounded-2xl bg-neutral-900 flex flex-col transition-all group" }, /* @__PURE__ */ import_react21.default.createElement("div", { className: "flex items-start space-x-4 md:space-x-5 mb-5 md:mb-6" }, /* @__PURE__ */ import_react21.default.createElement("div", { className: "relative w-14 h-14 md:w-16 md:h-16 shrink-0 bg-neutral-800 overflow-hidden rounded-xl " }, /* @__PURE__ */ import_react21.default.createElement(
|
|
935
1095
|
import_image5.default,
|
|
936
1096
|
{
|
|
937
1097
|
src: member.imageSrc,
|
|
@@ -940,7 +1100,7 @@ var ManagedBoardBlock = ({
|
|
|
940
1100
|
sizes: "(max-width: 768px) 56px, 64px",
|
|
941
1101
|
className: "object-cover grayscale opacity-100 transition-opacity"
|
|
942
1102
|
}
|
|
943
|
-
)), /* @__PURE__ */
|
|
1103
|
+
)), /* @__PURE__ */ import_react21.default.createElement("div", { className: "pt-1" }, /* @__PURE__ */ import_react21.default.createElement("h3", { className: "text-[14px] md:text-[15px] text-white tracking-tight" }, member.name), /* @__PURE__ */ import_react21.default.createElement("p", { className: "text-[11px] tracking-[0.2em] text-neutral-500 mt-1.5 " }, member.title))), /* @__PURE__ */ import_react21.default.createElement("p", { className: "text-[13px] leading-[1.8] text-neutral-400 text-left grow mb-8" }, member.bio), /* @__PURE__ */ import_react21.default.createElement("div", { className: "space-y-6 mt-auto" }, /* @__PURE__ */ import_react21.default.createElement("div", { className: "w-full *:w-full" }, /* @__PURE__ */ import_react21.default.createElement(ThreeDButton, { href: member.website }, "Visit Website")), /* @__PURE__ */ import_react21.default.createElement("div", { className: "flex space-x-4 pt-5" }, member.twitterHandle && member.twitterHandle.length > 0 && /* @__PURE__ */ import_react21.default.createElement(
|
|
944
1104
|
MemberSocialLink,
|
|
945
1105
|
{
|
|
946
1106
|
href: `https://x.com/${member.twitterHandle}`,
|
|
@@ -948,7 +1108,7 @@ var ManagedBoardBlock = ({
|
|
|
948
1108
|
label: "X",
|
|
949
1109
|
name: member.name
|
|
950
1110
|
}
|
|
951
|
-
), member.linkedinHandle && member.linkedinHandle.length > 0 && /* @__PURE__ */
|
|
1111
|
+
), member.linkedinHandle && member.linkedinHandle.length > 0 && /* @__PURE__ */ import_react21.default.createElement(
|
|
952
1112
|
MemberSocialLink,
|
|
953
1113
|
{
|
|
954
1114
|
href: member.linkedinHandle,
|
|
@@ -956,11 +1116,11 @@ var ManagedBoardBlock = ({
|
|
|
956
1116
|
label: "LinkedIn",
|
|
957
1117
|
name: member.name
|
|
958
1118
|
}
|
|
959
|
-
))))))), (contactText || contactEmail) && /* @__PURE__ */
|
|
1119
|
+
))))))), (contactText || contactEmail) && /* @__PURE__ */ import_react21.default.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10 pb-12 md:pb-14" }, /* @__PURE__ */ import_react21.default.createElement("p", { className: "text-[11px] text-neutral-500 text-left" }, contactText, contactEmail && /* @__PURE__ */ import_react21.default.createElement("a", { href: `mailto:${contactEmail}`, className: "text-white decoration-white decoration-2 underline-offset-4 ml-1 transition-colors" }, contactEmail))))));
|
|
960
1120
|
};
|
|
961
1121
|
|
|
962
1122
|
// src/components/ManagedNotFoundBlock.tsx
|
|
963
|
-
var
|
|
1123
|
+
var import_react23 = __toESM(require("react"));
|
|
964
1124
|
var import_link6 = __toESM(require("next/link"));
|
|
965
1125
|
var ManagedNotFoundBlock = ({
|
|
966
1126
|
title = "404 - Page Not Found",
|
|
@@ -968,15 +1128,15 @@ var ManagedNotFoundBlock = ({
|
|
|
968
1128
|
backLinkText = "Go back to Homepage",
|
|
969
1129
|
backLinkHref = "/"
|
|
970
1130
|
}) => {
|
|
971
|
-
return /* @__PURE__ */
|
|
1131
|
+
return /* @__PURE__ */ import_react23.default.createElement("main", { className: "min-h-screen flex items-center justify-center relative z-20 bg-black" }, /* @__PURE__ */ import_react23.default.createElement("div", { className: "p-6 w-full max-w-md mx-auto text-center" }, /* @__PURE__ */ import_react23.default.createElement("div", { className: "mb-8 flex justify-center" }, /* @__PURE__ */ import_react23.default.createElement(
|
|
972
1132
|
"svg",
|
|
973
1133
|
{
|
|
974
1134
|
xmlns: "http://www.w3.org/2000/svg",
|
|
975
1135
|
viewBox: "0 0 24 24",
|
|
976
1136
|
className: "w-12 h-12 fill-neutral-700"
|
|
977
1137
|
},
|
|
978
|
-
/* @__PURE__ */
|
|
979
|
-
)), /* @__PURE__ */
|
|
1138
|
+
/* @__PURE__ */ import_react23.default.createElement("path", { fillRule: "evenodd", d: "M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z", clipRule: "evenodd" })
|
|
1139
|
+
)), /* @__PURE__ */ import_react23.default.createElement("h1", { className: "text-xl md:text-3xl text-white tracking-tight mb-4" }, title), /* @__PURE__ */ import_react23.default.createElement("p", { className: "text-[13px] leading-[1.8] text-neutral-400 mb-12" }, description), /* @__PURE__ */ import_react23.default.createElement(
|
|
980
1140
|
import_link6.default,
|
|
981
1141
|
{
|
|
982
1142
|
href: backLinkHref,
|
|
@@ -987,8 +1147,8 @@ var ManagedNotFoundBlock = ({
|
|
|
987
1147
|
};
|
|
988
1148
|
|
|
989
1149
|
// src/components/PageSpinner.tsx
|
|
990
|
-
var
|
|
991
|
-
var
|
|
1150
|
+
var import_react24 = __toESM(require("react"));
|
|
1151
|
+
var import_react25 = require("@hugeicons/react");
|
|
992
1152
|
var import_core_free_icons4 = require("@hugeicons/core-free-icons");
|
|
993
1153
|
var PageSpinner = ({
|
|
994
1154
|
className = "",
|
|
@@ -997,8 +1157,8 @@ var PageSpinner = ({
|
|
|
997
1157
|
}) => {
|
|
998
1158
|
return (
|
|
999
1159
|
// z-[100] ensures it sits above absolute headers and modals
|
|
1000
|
-
/* @__PURE__ */
|
|
1001
|
-
|
|
1160
|
+
/* @__PURE__ */ import_react24.default.createElement("div", { className: `fixed inset-0 z-100 flex flex-col items-center justify-center w-full h-full pointer-events-none ${className}` }, /* @__PURE__ */ import_react24.default.createElement(
|
|
1161
|
+
import_react25.HugeiconsIcon,
|
|
1002
1162
|
{
|
|
1003
1163
|
icon: import_core_free_icons4.Loading03Icon,
|
|
1004
1164
|
size,
|
|
@@ -1009,11 +1169,11 @@ var PageSpinner = ({
|
|
|
1009
1169
|
};
|
|
1010
1170
|
|
|
1011
1171
|
// src/components/ManagedToaster.tsx
|
|
1012
|
-
var
|
|
1013
|
-
var
|
|
1172
|
+
var import_react26 = __toESM(require("react"));
|
|
1173
|
+
var import_react_hot_toast2 = require("react-hot-toast");
|
|
1014
1174
|
var ManagedToaster = () => {
|
|
1015
|
-
return /* @__PURE__ */
|
|
1016
|
-
|
|
1175
|
+
return /* @__PURE__ */ import_react26.default.createElement(
|
|
1176
|
+
import_react_hot_toast2.Toaster,
|
|
1017
1177
|
{
|
|
1018
1178
|
position: "top-right",
|
|
1019
1179
|
toastOptions: {
|
|
@@ -1044,7 +1204,7 @@ var ManagedToaster = () => {
|
|
|
1044
1204
|
};
|
|
1045
1205
|
|
|
1046
1206
|
// src/components/ManagedNewsletterSplitBlock.tsx
|
|
1047
|
-
var
|
|
1207
|
+
var import_react27 = __toESM(require("react"));
|
|
1048
1208
|
var import_image6 = __toESM(require("next/image"));
|
|
1049
1209
|
var ManagedNewsletterSplitBlock = ({
|
|
1050
1210
|
tagline,
|
|
@@ -1058,7 +1218,7 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
1058
1218
|
ctaHref = "/contact-us",
|
|
1059
1219
|
children
|
|
1060
1220
|
}) => {
|
|
1061
|
-
return /* @__PURE__ */
|
|
1221
|
+
return /* @__PURE__ */ import_react27.default.createElement("div", { className: "grow flex flex-col md:flex-row relative w-full pt-32 md:pt-0 bg-black" }, /* @__PURE__ */ import_react27.default.createElement("div", { className: "hidden md:block md:w-1/2 relative min-h-screen overflow-hidden bg-neutral-900" }, /* @__PURE__ */ import_react27.default.createElement(
|
|
1062
1222
|
import_image6.default,
|
|
1063
1223
|
{
|
|
1064
1224
|
src: imageSrc,
|
|
@@ -1068,7 +1228,7 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
1068
1228
|
className: "object-cover object-top grayscale opacity-60",
|
|
1069
1229
|
quality: 100
|
|
1070
1230
|
}
|
|
1071
|
-
), /* @__PURE__ */
|
|
1231
|
+
), /* @__PURE__ */ import_react27.default.createElement(
|
|
1072
1232
|
"div",
|
|
1073
1233
|
{
|
|
1074
1234
|
className: "absolute inset-0 z-10 pointer-events-none",
|
|
@@ -1076,7 +1236,7 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
1076
1236
|
background: "linear-gradient(to right, rgba(0,0,0,0) 30%, #000000 100%)"
|
|
1077
1237
|
}
|
|
1078
1238
|
}
|
|
1079
|
-
), /* @__PURE__ */
|
|
1239
|
+
), /* @__PURE__ */ import_react27.default.createElement(
|
|
1080
1240
|
"div",
|
|
1081
1241
|
{
|
|
1082
1242
|
className: "absolute inset-x-0 bottom-0 h-40 z-10 pointer-events-none",
|
|
@@ -1084,7 +1244,7 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
1084
1244
|
background: "linear-gradient(to bottom, rgba(0,0,0,0) 0%, #000000 100%)"
|
|
1085
1245
|
}
|
|
1086
1246
|
}
|
|
1087
|
-
)), /* @__PURE__ */
|
|
1247
|
+
)), /* @__PURE__ */ import_react27.default.createElement("div", { className: "w-full md:w-1/2 flex mt-22 flex-col items-center justify-center p-4 md:p-12 relative z-20" }, /* @__PURE__ */ import_react27.default.createElement("div", { className: "relative w-full max-w-lg p-8 md:p-12 text-center md:text-left transition-all duration-700 ease-out" }, /* @__PURE__ */ import_react27.default.createElement(
|
|
1088
1248
|
"div",
|
|
1089
1249
|
{
|
|
1090
1250
|
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
@@ -1093,7 +1253,7 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
1093
1253
|
backgroundRepeat: "repeat"
|
|
1094
1254
|
}
|
|
1095
1255
|
}
|
|
1096
|
-
), /* @__PURE__ */
|
|
1256
|
+
), /* @__PURE__ */ import_react27.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react27.default.createElement("div", { className: "mb-10 border-b border-neutral-800 pb-8 text-center md:text-left" }, tagline && /* @__PURE__ */ import_react27.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500" }, tagline), /* @__PURE__ */ import_react27.default.createElement("h1", { className: "text-3xl mt-4 text-white tracking-tight mb-4" }, title), subtitle && /* @__PURE__ */ import_react27.default.createElement("p", { className: "text-[11px] tracking-[0.2em] text-neutral-500" }, subtitle)), /* @__PURE__ */ import_react27.default.createElement("p", { className: "text-[13px] leading-[1.8] text-neutral-400 mb-10 text-center md:text-left" }, description), children && /* @__PURE__ */ import_react27.default.createElement("div", { className: "mb-8 text-left" }, children), /* @__PURE__ */ import_react27.default.createElement("div", { className: "text-center md:text-left mt-10 space-y-6" }, dividerText && /* @__PURE__ */ import_react27.default.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ import_react27.default.createElement("div", { className: "grow h-px bg-neutral-800" }), /* @__PURE__ */ import_react27.default.createElement("span", { className: "shrink mx-4 text-[11px] tracking-[0.2em] text-neutral-600" }, dividerText), /* @__PURE__ */ import_react27.default.createElement("div", { className: "grow h-px bg-neutral-800" })), ctaText && ctaHref && /* @__PURE__ */ import_react27.default.createElement("div", { className: "w-full *:w-full" }, /* @__PURE__ */ import_react27.default.createElement(
|
|
1097
1257
|
ThreeDButton,
|
|
1098
1258
|
{
|
|
1099
1259
|
href: ctaHref,
|
|
@@ -1103,65 +1263,15 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
1103
1263
|
)))))));
|
|
1104
1264
|
};
|
|
1105
1265
|
|
|
1106
|
-
// src/components/ReusableInputs.tsx
|
|
1107
|
-
var import_react26 = __toESM(require("react"));
|
|
1108
|
-
var TextInput = ({
|
|
1109
|
-
label,
|
|
1110
|
-
value,
|
|
1111
|
-
onChange,
|
|
1112
|
-
placeholder,
|
|
1113
|
-
maxLength,
|
|
1114
|
-
disabled,
|
|
1115
|
-
readOnly,
|
|
1116
|
-
type = "text",
|
|
1117
|
-
onClick
|
|
1118
|
-
}) => /* @__PURE__ */ import_react26.default.createElement("div", { className: "space-y-2 flex-1 w-full", onClick }, label && /* @__PURE__ */ import_react26.default.createElement("label", { className: "text-[11px] text-neutral-500 tracking-[0.2em] block " }, label), /* @__PURE__ */ import_react26.default.createElement(
|
|
1119
|
-
"input",
|
|
1120
|
-
{
|
|
1121
|
-
type,
|
|
1122
|
-
value,
|
|
1123
|
-
onChange: (e) => onChange(e.target.value.substring(0, maxLength || 100)),
|
|
1124
|
-
placeholder,
|
|
1125
|
-
disabled,
|
|
1126
|
-
readOnly,
|
|
1127
|
-
autoComplete: "off",
|
|
1128
|
-
spellCheck: "false",
|
|
1129
|
-
className: `w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-800 text-white transition-all outline-none focus:border-white disabled:opacity-50 ${readOnly ? "cursor-pointer" : ""}`
|
|
1130
|
-
}
|
|
1131
|
-
));
|
|
1132
|
-
var NumberInput = ({
|
|
1133
|
-
label,
|
|
1134
|
-
value,
|
|
1135
|
-
onChange,
|
|
1136
|
-
placeholder,
|
|
1137
|
-
maxLength,
|
|
1138
|
-
disabled
|
|
1139
|
-
}) => /* @__PURE__ */ import_react26.default.createElement("div", { className: "space-y-2 flex-1 w-full" }, label && /* @__PURE__ */ import_react26.default.createElement("label", { className: "text-[11px] text-neutral-500 tracking-[0.2em] block " }, label), /* @__PURE__ */ import_react26.default.createElement(
|
|
1140
|
-
"input",
|
|
1141
|
-
{
|
|
1142
|
-
type: "text",
|
|
1143
|
-
value,
|
|
1144
|
-
onChange: (e) => {
|
|
1145
|
-
const numOnly = e.target.value.replace(/[^0-9]/g, "");
|
|
1146
|
-
onChange(numOnly.substring(0, maxLength || 20));
|
|
1147
|
-
},
|
|
1148
|
-
placeholder,
|
|
1149
|
-
disabled,
|
|
1150
|
-
autoComplete: "off",
|
|
1151
|
-
spellCheck: "false",
|
|
1152
|
-
className: "w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-800 text-white transition-all outline-none focus:border-white disabled:opacity-50"
|
|
1153
|
-
}
|
|
1154
|
-
));
|
|
1155
|
-
|
|
1156
1266
|
// src/components/PortfolioHero.tsx
|
|
1157
|
-
var
|
|
1267
|
+
var import_react28 = __toESM(require("react"));
|
|
1158
1268
|
var import_link7 = __toESM(require("next/link"));
|
|
1159
1269
|
var import_image7 = __toESM(require("next/image"));
|
|
1160
|
-
var
|
|
1270
|
+
var import_react29 = require("@hugeicons/react");
|
|
1161
1271
|
var import_core_free_icons5 = require("@hugeicons/core-free-icons");
|
|
1162
1272
|
var useScrollAnimation = () => {
|
|
1163
|
-
const elementRef = (0,
|
|
1164
|
-
(0,
|
|
1273
|
+
const elementRef = (0, import_react28.useRef)(null);
|
|
1274
|
+
(0, import_react28.useEffect)(() => {
|
|
1165
1275
|
const el = elementRef.current;
|
|
1166
1276
|
if (!el) return;
|
|
1167
1277
|
const observer = new IntersectionObserver(
|
|
@@ -1197,13 +1307,13 @@ var PortfolioHero = ({
|
|
|
1197
1307
|
secondaryCtaHref
|
|
1198
1308
|
}) => {
|
|
1199
1309
|
const heroContentRef = useScrollAnimation();
|
|
1200
|
-
return /* @__PURE__ */
|
|
1310
|
+
return /* @__PURE__ */ import_react28.default.createElement("section", { className: "pt-44 md:pt-52 pb-16 px-6 md:px-12 flex flex-col relative overflow-hidden z-10 w-full bg-black" }, /* @__PURE__ */ import_react28.default.createElement(
|
|
1201
1311
|
"div",
|
|
1202
1312
|
{
|
|
1203
1313
|
ref: heroContentRef,
|
|
1204
1314
|
className: "w-full opacity-0 translate-y-5 transition-all duration-1000 ease-out relative z-10"
|
|
1205
1315
|
},
|
|
1206
|
-
/* @__PURE__ */
|
|
1316
|
+
/* @__PURE__ */ import_react28.default.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center gap-5 sm:gap-8 mb-10" }, /* @__PURE__ */ import_react28.default.createElement("div", { className: "relative w-20 h-20 sm:w-32 sm:h-32 rounded-full overflow-hidden shrink-0 shadow-sm" }, /* @__PURE__ */ import_react28.default.createElement(
|
|
1207
1317
|
import_image7.default,
|
|
1208
1318
|
{
|
|
1209
1319
|
src: imageSrc,
|
|
@@ -1214,7 +1324,7 @@ var PortfolioHero = ({
|
|
|
1214
1324
|
sizes: "(max-width: 640px) 80px, 128px",
|
|
1215
1325
|
quality: 100
|
|
1216
1326
|
}
|
|
1217
|
-
)), /* @__PURE__ */
|
|
1327
|
+
)), /* @__PURE__ */ import_react28.default.createElement("div", { className: "flex flex-col text-left" }, /* @__PURE__ */ import_react28.default.createElement("h1", { className: "text-3xl sm:text-5xl lg:text-6xl tracking-tight text-white leading-none mb-3" }, name), socialLabel && /* @__PURE__ */ import_react28.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-500" }, socialLabel), socialLinkText && socialLinkHref && /* @__PURE__ */ import_react28.default.createElement(
|
|
1218
1328
|
"a",
|
|
1219
1329
|
{
|
|
1220
1330
|
href: socialLinkHref,
|
|
@@ -1224,30 +1334,30 @@ var PortfolioHero = ({
|
|
|
1224
1334
|
},
|
|
1225
1335
|
socialLinkText
|
|
1226
1336
|
))),
|
|
1227
|
-
/* @__PURE__ */
|
|
1228
|
-
/* @__PURE__ */
|
|
1337
|
+
/* @__PURE__ */ import_react28.default.createElement("p", { className: "text-[13px] leading-[1.8] max-w-4xl mb-12 text-neutral-400" }, bio),
|
|
1338
|
+
/* @__PURE__ */ import_react28.default.createElement("div", { className: "flex flex-col sm:flex-row gap-4 w-full sm:w-auto" }, primaryCtaText && primaryCtaHref && /* @__PURE__ */ import_react28.default.createElement("div", { className: "w-full sm:w-auto *:w-full" }, /* @__PURE__ */ import_react28.default.createElement(
|
|
1229
1339
|
ThreeDButton,
|
|
1230
1340
|
{
|
|
1231
1341
|
href: primaryCtaHref,
|
|
1232
1342
|
className: "py-2.5 tracking-widest text-[11px]"
|
|
1233
1343
|
},
|
|
1234
1344
|
primaryCtaText
|
|
1235
|
-
)), secondaryCtaText && secondaryCtaHref && /* @__PURE__ */
|
|
1345
|
+
)), secondaryCtaText && secondaryCtaHref && /* @__PURE__ */ import_react28.default.createElement(
|
|
1236
1346
|
import_link7.default,
|
|
1237
1347
|
{
|
|
1238
1348
|
href: secondaryCtaHref,
|
|
1239
1349
|
className: "w-full sm:w-auto inline-flex items-center justify-center gap-3 text-[11px] tracking-[0.2em] rounded-full px-8 py-2.5 border border-neutral-700 transition-colors text-white hover:bg-neutral-700 outline-none"
|
|
1240
1350
|
},
|
|
1241
1351
|
secondaryCtaText,
|
|
1242
|
-
/* @__PURE__ */
|
|
1352
|
+
/* @__PURE__ */ import_react28.default.createElement(import_react29.HugeiconsIcon, { icon: import_core_free_icons5.ArrowRight01Icon, size: 16 })
|
|
1243
1353
|
))
|
|
1244
1354
|
));
|
|
1245
1355
|
};
|
|
1246
1356
|
|
|
1247
1357
|
// src/components/GifFeatureCard.tsx
|
|
1248
|
-
var
|
|
1358
|
+
var import_react30 = __toESM(require("react"));
|
|
1249
1359
|
var import_image8 = __toESM(require("next/image"));
|
|
1250
|
-
var
|
|
1360
|
+
var import_react31 = require("@hugeicons/react");
|
|
1251
1361
|
var import_core_free_icons6 = require("@hugeicons/core-free-icons");
|
|
1252
1362
|
var GifFeatureCard = ({
|
|
1253
1363
|
gifSrc,
|
|
@@ -1256,20 +1366,20 @@ var GifFeatureCard = ({
|
|
|
1256
1366
|
alt = "Feature animation",
|
|
1257
1367
|
className = "aspect-video"
|
|
1258
1368
|
}) => {
|
|
1259
|
-
const [isLoading, setIsLoading] = (0,
|
|
1260
|
-
return /* @__PURE__ */
|
|
1261
|
-
|
|
1369
|
+
const [isLoading, setIsLoading] = (0, import_react30.useState)(true);
|
|
1370
|
+
return /* @__PURE__ */ import_react30.default.createElement("div", { className: `relative w-full bg-black overflow-hidden shadow-2xl ${className}` }, isLoading && /* @__PURE__ */ import_react30.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-black" }, /* @__PURE__ */ import_react30.default.createElement(
|
|
1371
|
+
import_react31.HugeiconsIcon,
|
|
1262
1372
|
{
|
|
1263
1373
|
icon: import_core_free_icons6.Loading03Icon,
|
|
1264
1374
|
size: 32,
|
|
1265
1375
|
className: "animate-spin text-white"
|
|
1266
1376
|
}
|
|
1267
|
-
)), /* @__PURE__ */
|
|
1377
|
+
)), /* @__PURE__ */ import_react30.default.createElement(
|
|
1268
1378
|
"div",
|
|
1269
1379
|
{
|
|
1270
1380
|
className: `absolute inset-0 z-0 transition-all duration-1000 ease-out ${isLoading ? "scale-105 blur-2xl opacity-0" : "scale-100 blur-0 opacity-100"}`
|
|
1271
1381
|
},
|
|
1272
|
-
/* @__PURE__ */
|
|
1382
|
+
/* @__PURE__ */ import_react30.default.createElement(
|
|
1273
1383
|
import_image8.default,
|
|
1274
1384
|
{
|
|
1275
1385
|
src: gifSrc,
|
|
@@ -1280,16 +1390,16 @@ var GifFeatureCard = ({
|
|
|
1280
1390
|
className: "object-cover object-center pointer-events-none"
|
|
1281
1391
|
}
|
|
1282
1392
|
)
|
|
1283
|
-
), /* @__PURE__ */
|
|
1393
|
+
), /* @__PURE__ */ import_react30.default.createElement(
|
|
1284
1394
|
"div",
|
|
1285
1395
|
{
|
|
1286
1396
|
className: "absolute inset-x-0 bottom-0 h-1/2 sm:h-2/3 bg-linear-to-t from-black/95 via-black/40 to-transparent z-10 pointer-events-none transition-opacity duration-700"
|
|
1287
1397
|
}
|
|
1288
|
-
), /* @__PURE__ */
|
|
1398
|
+
), /* @__PURE__ */ import_react30.default.createElement("div", { className: "absolute inset-x-0 bottom-0 p-6 sm:p-8 z-30 flex flex-col justify-end text-left pointer-events-none" }, title && /* @__PURE__ */ import_react30.default.createElement("h3", { className: "text-xl sm:text-2xl md:text-3xl text-white tracking-tight mb-2 sm:mb-3 drop-shadow-md" }, title), subtitle && /* @__PURE__ */ import_react30.default.createElement("p", { className: "text-[13px] sm:text-[15px] leading-relaxed text-neutral-300 max-w-2xl drop-shadow-sm" }, subtitle)));
|
|
1289
1399
|
};
|
|
1290
1400
|
|
|
1291
1401
|
// src/components/MedicalFeatureStatsBlock.tsx
|
|
1292
|
-
var
|
|
1402
|
+
var import_react32 = __toESM(require("react"));
|
|
1293
1403
|
var import_image9 = __toESM(require("next/image"));
|
|
1294
1404
|
var MedicalFeatureStatsBlock = ({
|
|
1295
1405
|
bottomHeadline,
|
|
@@ -1298,9 +1408,9 @@ var MedicalFeatureStatsBlock = ({
|
|
|
1298
1408
|
trustText,
|
|
1299
1409
|
stats
|
|
1300
1410
|
}) => {
|
|
1301
|
-
const [isAnimating, setIsAnimating] = (0,
|
|
1302
|
-
const titleRef = (0,
|
|
1303
|
-
(0,
|
|
1411
|
+
const [isAnimating, setIsAnimating] = (0, import_react32.useState)(false);
|
|
1412
|
+
const titleRef = (0, import_react32.useRef)(null);
|
|
1413
|
+
(0, import_react32.useEffect)(() => {
|
|
1304
1414
|
const observer = new IntersectionObserver(
|
|
1305
1415
|
([entry]) => {
|
|
1306
1416
|
if (entry.isIntersecting) {
|
|
@@ -1318,7 +1428,7 @@ var MedicalFeatureStatsBlock = ({
|
|
|
1318
1428
|
}
|
|
1319
1429
|
return () => observer.disconnect();
|
|
1320
1430
|
}, []);
|
|
1321
|
-
return /* @__PURE__ */
|
|
1431
|
+
return /* @__PURE__ */ import_react32.default.createElement("section", { className: "py-24 w-full flex justify-center relative z-10 bg-black" }, /* @__PURE__ */ import_react32.default.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ import_react32.default.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-10 mb-12" }, /* @__PURE__ */ import_react32.default.createElement("div", { className: "max-w-xl" }, /* @__PURE__ */ import_react32.default.createElement(
|
|
1322
1432
|
"h2",
|
|
1323
1433
|
{
|
|
1324
1434
|
ref: titleRef,
|
|
@@ -1326,7 +1436,7 @@ var MedicalFeatureStatsBlock = ({
|
|
|
1326
1436
|
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
1327
1437
|
},
|
|
1328
1438
|
bottomHeadline
|
|
1329
|
-
), /* @__PURE__ */
|
|
1439
|
+
), /* @__PURE__ */ import_react32.default.createElement("p", { className: "text-[14px] leading-relaxed text-neutral-400" }, bottomDescription)), /* @__PURE__ */ import_react32.default.createElement("div", { className: "flex items-center gap-4 shrink-0" }, /* @__PURE__ */ import_react32.default.createElement("div", { className: "flex -space-x-3" }, avatars.map((src, i) => /* @__PURE__ */ import_react32.default.createElement("div", { key: i, className: "relative w-12 h-12 rounded-full border-[3px] border-black overflow-hidden bg-neutral-900 z-1 hover:z-10 transition-all" }, /* @__PURE__ */ import_react32.default.createElement(
|
|
1330
1440
|
import_image9.default,
|
|
1331
1441
|
{
|
|
1332
1442
|
src,
|
|
@@ -1335,17 +1445,17 @@ var MedicalFeatureStatsBlock = ({
|
|
|
1335
1445
|
sizes: "48px",
|
|
1336
1446
|
className: "object-cover"
|
|
1337
1447
|
}
|
|
1338
|
-
)))), /* @__PURE__ */
|
|
1448
|
+
)))), /* @__PURE__ */ import_react32.default.createElement("p", { className: "text-[11px] text-neutral-400 leading-[1.4] max-w-55" }, trustText))), /* @__PURE__ */ import_react32.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6" }, stats.map((stat, idx) => /* @__PURE__ */ import_react32.default.createElement("div", { key: idx, className: "bg-neutral-900 rounded-4xl p-8 md:p-10 flex flex-col h-70" }, /* @__PURE__ */ import_react32.default.createElement("div", { className: "flex items-center p-0.5 mb-6" }, /* @__PURE__ */ import_react32.default.createElement("span", { className: "text-[14px] text-neutral-400 tracking-wide" }, stat.label)), /* @__PURE__ */ import_react32.default.createElement("div", { className: "text-6xl gradient-text md:text-[80px] font-light tracking-tighter text-white mt-auto leading-none" }, stat.value))))));
|
|
1339
1449
|
};
|
|
1340
1450
|
|
|
1341
1451
|
// src/components/ConsultantShowcase.tsx
|
|
1342
|
-
var
|
|
1452
|
+
var import_react33 = __toESM(require("react"));
|
|
1343
1453
|
var import_image10 = __toESM(require("next/image"));
|
|
1344
|
-
var
|
|
1454
|
+
var import_react34 = require("@hugeicons/react");
|
|
1345
1455
|
var import_core_free_icons7 = require("@hugeicons/core-free-icons");
|
|
1346
1456
|
var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
|
|
1347
|
-
const [isLoading, setIsLoading] = (0,
|
|
1348
|
-
return /* @__PURE__ */
|
|
1457
|
+
const [isLoading, setIsLoading] = (0, import_react33.useState)(true);
|
|
1458
|
+
return /* @__PURE__ */ import_react33.default.createElement("div", { className: `absolute inset-0 bg-neutral-900 ${className}` }, isLoading && /* @__PURE__ */ import_react33.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-neutral-900/50 backdrop-blur-md transition-opacity duration-300" }, /* @__PURE__ */ import_react33.default.createElement(import_react34.HugeiconsIcon, { icon: import_core_free_icons7.Loading03Icon, size: 24, className: "animate-spin text-white/50" })), /* @__PURE__ */ import_react33.default.createElement(
|
|
1349
1459
|
import_image10.default,
|
|
1350
1460
|
{
|
|
1351
1461
|
src,
|
|
@@ -1364,9 +1474,9 @@ var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
|
|
|
1364
1474
|
var ConsultantShowcase = ({
|
|
1365
1475
|
profiles
|
|
1366
1476
|
}) => {
|
|
1367
|
-
const [currentIndex, setCurrentIndex] = (0,
|
|
1368
|
-
const [touchStart, setTouchStart] = (0,
|
|
1369
|
-
const [touchEnd, setTouchEnd] = (0,
|
|
1477
|
+
const [currentIndex, setCurrentIndex] = (0, import_react33.useState)(0);
|
|
1478
|
+
const [touchStart, setTouchStart] = (0, import_react33.useState)(null);
|
|
1479
|
+
const [touchEnd, setTouchEnd] = (0, import_react33.useState)(null);
|
|
1370
1480
|
const nextSlide = () => {
|
|
1371
1481
|
setCurrentIndex((prev) => prev === profiles.length - 1 ? 0 : prev + 1);
|
|
1372
1482
|
};
|
|
@@ -1391,7 +1501,7 @@ var ConsultantShowcase = ({
|
|
|
1391
1501
|
}
|
|
1392
1502
|
};
|
|
1393
1503
|
if (!profiles || profiles.length === 0) return null;
|
|
1394
|
-
return /* @__PURE__ */
|
|
1504
|
+
return /* @__PURE__ */ import_react33.default.createElement("section", { className: "py-24 w-full flex justify-center px-4 md:px-8 z-10 relative bg-black" }, /* @__PURE__ */ import_react33.default.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ import_react33.default.createElement(
|
|
1395
1505
|
"div",
|
|
1396
1506
|
{
|
|
1397
1507
|
className: "relative w-full h-100 md:h-112.5 rounded-4xl overflow-hidden bg-neutral-900 group select-none",
|
|
@@ -1401,13 +1511,13 @@ var ConsultantShowcase = ({
|
|
|
1401
1511
|
},
|
|
1402
1512
|
profiles.map((profile, idx) => {
|
|
1403
1513
|
const isActive = idx === currentIndex;
|
|
1404
|
-
return /* @__PURE__ */
|
|
1514
|
+
return /* @__PURE__ */ import_react33.default.createElement(
|
|
1405
1515
|
"div",
|
|
1406
1516
|
{
|
|
1407
1517
|
key: profile.id,
|
|
1408
1518
|
className: `absolute inset-0 transition-opacity duration-700 ease-in-out ${isActive ? "opacity-100 z-10" : "opacity-0 z-0 pointer-events-none"}`
|
|
1409
1519
|
},
|
|
1410
|
-
/* @__PURE__ */
|
|
1520
|
+
/* @__PURE__ */ import_react33.default.createElement(
|
|
1411
1521
|
ImageWithLoader,
|
|
1412
1522
|
{
|
|
1413
1523
|
src: profile.imageSrc,
|
|
@@ -1415,14 +1525,14 @@ var ConsultantShowcase = ({
|
|
|
1415
1525
|
priority: idx === 0
|
|
1416
1526
|
}
|
|
1417
1527
|
),
|
|
1418
|
-
/* @__PURE__ */
|
|
1419
|
-
/* @__PURE__ */
|
|
1420
|
-
/* @__PURE__ */
|
|
1528
|
+
/* @__PURE__ */ import_react33.default.createElement("div", { className: "absolute inset-0 bg-black/40 z-10 pointer-events-none" }),
|
|
1529
|
+
/* @__PURE__ */ import_react33.default.createElement("div", { className: "absolute top-0 left-0 w-full h-[60%] bg-linear-to-b from-black/80 via-black/40 to-transparent z-20 pointer-events-none" }),
|
|
1530
|
+
/* @__PURE__ */ import_react33.default.createElement("div", { className: `absolute top-8 left-8 md:top-12 md:left-12 z-30 text-white max-w-lg transition-transform duration-700 ease-out ${isActive ? "translate-y-0" : "-translate-y-4"}` }, /* @__PURE__ */ import_react33.default.createElement("h2", { className: "text-[29px] tracking-tight mb-2 leading-none" }, profile.name), /* @__PURE__ */ import_react33.default.createElement("div", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ import_react33.default.createElement("p", { className: "text-[15px] text-neutral-300 font-light tracking-wide" }, profile.role), profile.description && /* @__PURE__ */ import_react33.default.createElement("p", { className: "text-[15px] text-neutral-400 font-light tracking-wide mt-1" }, profile.description)))
|
|
1421
1531
|
);
|
|
1422
1532
|
}),
|
|
1423
|
-
/* @__PURE__ */
|
|
1424
|
-
/* @__PURE__ */
|
|
1425
|
-
/* @__PURE__ */
|
|
1533
|
+
/* @__PURE__ */ import_react33.default.createElement("div", { className: "absolute top-0 left-0 w-[20%] h-full z-40 cursor-w-resize hidden md:block", onClick: prevSlide, "aria-label": "Previous image" }),
|
|
1534
|
+
/* @__PURE__ */ import_react33.default.createElement("div", { className: "absolute top-0 right-0 w-[20%] h-full z-40 cursor-e-resize hidden md:block", onClick: nextSlide, "aria-label": "Next image" }),
|
|
1535
|
+
/* @__PURE__ */ import_react33.default.createElement("div", { className: "absolute bottom-6 md:bottom-8 left-0 w-full px-4 z-30 flex justify-center items-center gap-2" }, profiles.map((_, idx) => /* @__PURE__ */ import_react33.default.createElement(
|
|
1426
1536
|
"button",
|
|
1427
1537
|
{
|
|
1428
1538
|
key: idx,
|
|
@@ -1435,9 +1545,9 @@ var ConsultantShowcase = ({
|
|
|
1435
1545
|
};
|
|
1436
1546
|
|
|
1437
1547
|
// src/components/ContentGridBlock.tsx
|
|
1438
|
-
var
|
|
1548
|
+
var import_react35 = __toESM(require("react"));
|
|
1439
1549
|
var import_image11 = __toESM(require("next/image"));
|
|
1440
|
-
var
|
|
1550
|
+
var import_react36 = require("@hugeicons/react");
|
|
1441
1551
|
var import_core_free_icons8 = require("@hugeicons/core-free-icons");
|
|
1442
1552
|
var ContentGridBlock = ({
|
|
1443
1553
|
header,
|
|
@@ -1446,23 +1556,23 @@ var ContentGridBlock = ({
|
|
|
1446
1556
|
middleBottomCard,
|
|
1447
1557
|
rightCards
|
|
1448
1558
|
}) => {
|
|
1449
|
-
return /* @__PURE__ */
|
|
1559
|
+
return /* @__PURE__ */ import_react35.default.createElement("section", { className: "w-full flex justify-center z-10 relative bg-black" }, /* @__PURE__ */ import_react35.default.createElement("div", { className: "max-w-300 w-full px-4 md:px-8 flex flex-col gap-12" }, /* @__PURE__ */ import_react35.default.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-6 w-full" }, /* @__PURE__ */ import_react35.default.createElement("h2", { className: "text-3xl tracking-tight text-white leading-[1.15] max-w-lg" }, header.titlePrefix, " ", /* @__PURE__ */ import_react35.default.createElement("span", { className: "gradient-text" }, header.highlightText))), /* @__PURE__ */ import_react35.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" }, /* @__PURE__ */ import_react35.default.createElement("div", { className: "flex flex-col justify-end" }, /* @__PURE__ */ import_react35.default.createElement("div", { className: "bg-neutral-900 rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ import_react35.default.createElement("p", { className: "text-[17px] text-white leading-snug mb-4" }, leftCard.mainText), leftCard.tag && /* @__PURE__ */ import_react35.default.createElement("span", { className: "mb-auto text-[11px] text-neutral-400 tracking-widest" }, leftCard.tag), /* @__PURE__ */ import_react35.default.createElement("div", { className: "flex items-center justify-between mt-8" }, /* @__PURE__ */ import_react35.default.createElement("div", null, /* @__PURE__ */ import_react35.default.createElement("h4", { className: "text-[15px] text-white" }, leftCard.title), /* @__PURE__ */ import_react35.default.createElement("p", { className: "text-[13px] text-neutral-400" }, leftCard.subtitle)), /* @__PURE__ */ import_react35.default.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ import_react35.default.createElement(import_image11.default, { src: leftCard.thumbnailSrc, alt: leftCard.title, fill: true, className: "object-cover" }))))), /* @__PURE__ */ import_react35.default.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ import_react35.default.createElement("div", { className: "border border-neutral-800 rounded-3xl p-8 flex flex-col relative h-75" }, /* @__PURE__ */ import_react35.default.createElement("div", { className: "absolute top-6 right-6 flex flex-col items-end gap-1" }, /* @__PURE__ */ import_react35.default.createElement("span", { className: "text-[11px] text-neutral-500 tracking-wide" }, middleTopCard.topRightLabel), /* @__PURE__ */ import_react35.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react35.default.createElement("div", { className: "flex -space-x-2" }, middleTopCard.topRightAvatars.map((src, i) => /* @__PURE__ */ import_react35.default.createElement("div", { key: i, className: "w-7 h-7 rounded-full border-2 border-black overflow-hidden relative z-10" }, /* @__PURE__ */ import_react35.default.createElement(import_image11.default, { src, alt: "Avatar", fill: true, className: "object-cover", sizes: "28px" })))), /* @__PURE__ */ import_react35.default.createElement("span", { className: "text-sm text-neutral-400" }, middleTopCard.topRightCount))), /* @__PURE__ */ import_react35.default.createElement("div", { className: "grow flex flex-col justify-center items-center py-6" }, /* @__PURE__ */ import_react35.default.createElement("div", { className: "px-5 py-2 rounded-full bg-neutral-900/50 border border-neutral-800 text-[13px] text-neutral-400" }, middleTopCard.badgePrefix, " ", /* @__PURE__ */ import_react35.default.createElement("span", { className: "text-white" }, middleTopCard.badgeHighlight), middleTopCard.badgeSuffix)), /* @__PURE__ */ import_react35.default.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ import_react35.default.createElement("p", { className: "text-[11px] text-neutral-500 tracking-wide mb-1" }, middleTopCard.title), /* @__PURE__ */ import_react35.default.createElement("p", { className: "text-[14px] text-white leading-snug pr-4" }, middleTopCard.description))), /* @__PURE__ */ import_react35.default.createElement("div", { className: "border border-neutral-800 rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ import_react35.default.createElement("div", { className: "flex justify-between items-start mb-6" }, /* @__PURE__ */ import_react35.default.createElement("div", null, /* @__PURE__ */ import_react35.default.createElement("h4", { className: "text-[15px] text-white leading-tight" }, middleBottomCard.title), /* @__PURE__ */ import_react35.default.createElement("p", { className: "text-[13px] text-neutral-500" }, middleBottomCard.subtitle)), /* @__PURE__ */ import_react35.default.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ import_react35.default.createElement(import_image11.default, { src: middleBottomCard.thumbnailSrc, alt: middleBottomCard.title, fill: true, className: "object-cover" }))), /* @__PURE__ */ import_react35.default.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ import_react35.default.createElement("p", { className: "text-[16px] text-white leading-snug mb-4" }, middleBottomCard.mainText), middleBottomCard.tag && /* @__PURE__ */ import_react35.default.createElement("span", { className: "text-[11px] text-neutral-500 tracking-widest" }, middleBottomCard.tag)))), /* @__PURE__ */ import_react35.default.createElement("div", { className: "flex flex-col gap-6" }, rightCards.slice(0, 2).map((card, idx) => /* @__PURE__ */ import_react35.default.createElement("div", { key: idx, className: "relative w-full h-80 bg-neutral-900 text-white rounded-3xl overflow-hidden group" }, /* @__PURE__ */ import_react35.default.createElement("div", { className: "absolute inset-0 z-20 pointer-events-none" }), /* @__PURE__ */ import_react35.default.createElement("div", { className: "absolute inset-0 z-30 p-6 flex flex-col justify-end text-white" }, /* @__PURE__ */ import_react35.default.createElement("p", { className: "text-[14px] leading-snug mb-3 pr-2 text-white/90" }, card.mainText), card.tag && /* @__PURE__ */ import_react35.default.createElement("span", { className: "mb-4 text-[11px] text-white/50 tracking-widest" }, card.tag), /* @__PURE__ */ import_react35.default.createElement("div", { className: "pt-3" }, /* @__PURE__ */ import_react35.default.createElement("h4", { className: "text-[15px] tracking-wide" }, card.title), /* @__PURE__ */ import_react35.default.createElement("p", { className: "text-[13px] text-white/60" }, card.subtitle)))))))));
|
|
1450
1560
|
};
|
|
1451
1561
|
|
|
1452
1562
|
// src/components/ManagedProjectsBlock.tsx
|
|
1453
|
-
var
|
|
1563
|
+
var import_react37 = __toESM(require("react"));
|
|
1454
1564
|
var import_link8 = __toESM(require("next/link"));
|
|
1455
1565
|
var GridSection = ({
|
|
1456
1566
|
children,
|
|
1457
1567
|
isLast = false,
|
|
1458
1568
|
className = "py-8 md:py-10"
|
|
1459
|
-
}) => /* @__PURE__ */
|
|
1569
|
+
}) => /* @__PURE__ */ import_react37.default.createElement("div", { className: `relative px-5 md:px-12 ${className} ${!isLast ? "" : ""}` }, children);
|
|
1460
1570
|
var ManagedProjectsBlock = ({
|
|
1461
1571
|
tagline,
|
|
1462
1572
|
title,
|
|
1463
1573
|
projects
|
|
1464
1574
|
}) => {
|
|
1465
|
-
return /* @__PURE__ */
|
|
1575
|
+
return /* @__PURE__ */ import_react37.default.createElement("div", { className: "grow pt-28 pb-20 px-3 md:px-8 w-full flex justify-center z-10 relative bg-black" }, /* @__PURE__ */ import_react37.default.createElement("div", { className: "relative bg-neutral-900 rounded-2xl w-full max-w-5xl mx-auto overflow-hidden shadow-2xl" }, /* @__PURE__ */ import_react37.default.createElement(
|
|
1466
1576
|
"div",
|
|
1467
1577
|
{
|
|
1468
1578
|
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
@@ -1471,101 +1581,12 @@ var ManagedProjectsBlock = ({
|
|
|
1471
1581
|
backgroundRepeat: "repeat"
|
|
1472
1582
|
}
|
|
1473
1583
|
}
|
|
1474
|
-
), /* @__PURE__ */
|
|
1584
|
+
), /* @__PURE__ */ import_react37.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react37.default.createElement(GridSection, null, tagline && /* @__PURE__ */ import_react37.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 text-left block" }, tagline), /* @__PURE__ */ import_react37.default.createElement("h1", { className: "text-3xl mt-4 text-white tracking-tight text-left" }, title)), projects.map((project, index) => {
|
|
1475
1585
|
const isLast = index === projects.length - 1;
|
|
1476
|
-
const projectContent = /* @__PURE__ */
|
|
1477
|
-
return /* @__PURE__ */
|
|
1586
|
+
const projectContent = /* @__PURE__ */ import_react37.default.createElement("div", { className: "group block w-full" }, /* @__PURE__ */ import_react37.default.createElement("div", { className: "flex flex-col md:flex-row md:items-center justify-between gap-3 md:gap-4 mb-4 md:mb-5" }, /* @__PURE__ */ import_react37.default.createElement("div", { className: "flex items-center gap-3 md:gap-4" }, /* @__PURE__ */ import_react37.default.createElement("h2", { className: "text-[16px] text-white transition-all flex items-center gap-2" }, project.title, /* @__PURE__ */ import_react37.default.createElement("span", { className: "text-[11px] text-neutral-500 opacity-0 -translate-x-2 group-hover:opacity-100 group-hover:translate-x-0 group-hover:text-white transition-all duration-300" }, project.isExternal ? "\u2197" : "\u2192")), /* @__PURE__ */ import_react37.default.createElement("span", { className: `text-[9px] px-2.5 py-1 rounded-full tracking-[0.15em] transition-colors ${project.status.toLowerCase() === "production" ? "bg-white text-black" : "bg-neutral-800 text-neutral-400 group-hover:bg-neutral-700 group-hover:text-white"}` }, project.status)), /* @__PURE__ */ import_react37.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-500 shrink-0" }, project.date)), /* @__PURE__ */ import_react37.default.createElement("p", { className: "text-[13px] leading-[1.8] text-neutral-400 max-w-4xl text-left transition-colors group-hover:text-neutral-300" }, project.description));
|
|
1587
|
+
return /* @__PURE__ */ import_react37.default.createElement(GridSection, { key: project.id || index, isLast, className: isLast ? "py-8 md:py-10 pb-12 md:pb-14" : "py-8 md:py-10" }, project.isExternal ? /* @__PURE__ */ import_react37.default.createElement("a", { href: project.link, target: "_blank", rel: "noopener noreferrer", className: "block outline-none" }, projectContent) : /* @__PURE__ */ import_react37.default.createElement(import_link8.default, { href: project.link, className: "block outline-none" }, projectContent));
|
|
1478
1588
|
}))));
|
|
1479
1589
|
};
|
|
1480
|
-
|
|
1481
|
-
// src/components/WaitlistDialog.tsx
|
|
1482
|
-
var import_react37 = __toESM(require("react"));
|
|
1483
|
-
var import_react_hot_toast2 = require("react-hot-toast");
|
|
1484
|
-
var WaitlistDialog = ({ isOpen, onClose }) => {
|
|
1485
|
-
const [email, setEmail] = (0, import_react37.useState)("");
|
|
1486
|
-
const [isLoading, setIsLoading] = (0, import_react37.useState)(false);
|
|
1487
|
-
if (!isOpen) return null;
|
|
1488
|
-
const handleSubmit = async (e) => {
|
|
1489
|
-
e.preventDefault();
|
|
1490
|
-
if (!email || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
|
|
1491
|
-
import_react_hot_toast2.toast.error("Please enter a valid email address.");
|
|
1492
|
-
return;
|
|
1493
|
-
}
|
|
1494
|
-
setIsLoading(true);
|
|
1495
|
-
try {
|
|
1496
|
-
const response = await fetch("/api/waitlist", {
|
|
1497
|
-
method: "POST",
|
|
1498
|
-
headers: {
|
|
1499
|
-
"Content-Type": "application/json"
|
|
1500
|
-
},
|
|
1501
|
-
body: JSON.stringify({ email })
|
|
1502
|
-
});
|
|
1503
|
-
const data = await response.json();
|
|
1504
|
-
if (response.ok && data.success) {
|
|
1505
|
-
import_react_hot_toast2.toast.success(data.message || "You've been added to the waitlist!");
|
|
1506
|
-
setEmail("");
|
|
1507
|
-
onClose();
|
|
1508
|
-
} else {
|
|
1509
|
-
import_react_hot_toast2.toast.error(data.error || "Something went wrong. Please try again.");
|
|
1510
|
-
}
|
|
1511
|
-
} catch (error) {
|
|
1512
|
-
import_react_hot_toast2.toast.error("Network error. Please check your connection.");
|
|
1513
|
-
} finally {
|
|
1514
|
-
setIsLoading(false);
|
|
1515
|
-
}
|
|
1516
|
-
};
|
|
1517
|
-
return /* @__PURE__ */ import_react37.default.createElement("div", { className: "fixed inset-0 z-100 flex items-center justify-center p-4 bg-black/60 " }, /* @__PURE__ */ import_react37.default.createElement("div", { className: "absolute inset-0", onClick: !isLoading ? onClose : void 0 }), /* @__PURE__ */ import_react37.default.createElement(
|
|
1518
|
-
"div",
|
|
1519
|
-
{
|
|
1520
|
-
className: "w-full max-w-md bg-[#0a0a0a] rounded-2xl shadow-2xl overflow-hidden relative z-10 animate-in fade-in zoom-in-95 duration-200"
|
|
1521
|
-
},
|
|
1522
|
-
/* @__PURE__ */ import_react37.default.createElement(
|
|
1523
|
-
"button",
|
|
1524
|
-
{
|
|
1525
|
-
onClick: onClose,
|
|
1526
|
-
disabled: isLoading,
|
|
1527
|
-
className: "absolute top-4 right-4 p-2 text-neutral-500 hover:text-white transition-colors disabled:opacity-50 outline-none",
|
|
1528
|
-
"aria-label": "Close dialog"
|
|
1529
|
-
},
|
|
1530
|
-
/* @__PURE__ */ import_react37.default.createElement(
|
|
1531
|
-
"svg",
|
|
1532
|
-
{
|
|
1533
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
1534
|
-
width: "20",
|
|
1535
|
-
height: "20",
|
|
1536
|
-
viewBox: "0 0 24 24",
|
|
1537
|
-
fill: "none",
|
|
1538
|
-
stroke: "currentColor",
|
|
1539
|
-
strokeWidth: "2",
|
|
1540
|
-
strokeLinecap: "round",
|
|
1541
|
-
strokeLinejoin: "round"
|
|
1542
|
-
},
|
|
1543
|
-
/* @__PURE__ */ import_react37.default.createElement("path", { d: "M18 6 6 18" }),
|
|
1544
|
-
/* @__PURE__ */ import_react37.default.createElement("path", { d: "m6 6 12 12" })
|
|
1545
|
-
)
|
|
1546
|
-
),
|
|
1547
|
-
/* @__PURE__ */ import_react37.default.createElement("div", { className: "p-6 sm:p-8" }, /* @__PURE__ */ import_react37.default.createElement("div", { className: "mb-8 mt-2" }, /* @__PURE__ */ import_react37.default.createElement("h2", { className: "text-2xl font-light text-white tracking-tight mb-2" }, "Join the Waitlist"), /* @__PURE__ */ import_react37.default.createElement("p", { className: "text-[13px] text-neutral-400 font-light leading-relaxed" }, "Be the first to experience the future of natural language computing. Secure your early access spot today.")), /* @__PURE__ */ import_react37.default.createElement("form", { onSubmit: handleSubmit, className: "flex flex-col gap-8" }, /* @__PURE__ */ import_react37.default.createElement(
|
|
1548
|
-
TextInput,
|
|
1549
|
-
{
|
|
1550
|
-
label: "EMAIL ADDRESS",
|
|
1551
|
-
type: "email",
|
|
1552
|
-
value: email,
|
|
1553
|
-
onChange: setEmail,
|
|
1554
|
-
placeholder: "name@example.com",
|
|
1555
|
-
disabled: isLoading
|
|
1556
|
-
}
|
|
1557
|
-
), /* @__PURE__ */ import_react37.default.createElement(
|
|
1558
|
-
ThreeDActionButton,
|
|
1559
|
-
{
|
|
1560
|
-
type: "submit",
|
|
1561
|
-
isLoading,
|
|
1562
|
-
disabled: !email,
|
|
1563
|
-
className: "w-full mt-2"
|
|
1564
|
-
},
|
|
1565
|
-
"Join Waitlist"
|
|
1566
|
-
)))
|
|
1567
|
-
));
|
|
1568
|
-
};
|
|
1569
1590
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1570
1591
|
0 && (module.exports = {
|
|
1571
1592
|
AppBento2,
|