@retinalabsllc/zairusjs 6.1.9 → 8.1.55
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 +8 -4
- package/dist/index.d.ts +8 -4
- package/dist/index.js +328 -237
- package/dist/index.mjs +364 -274
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -21,7 +21,6 @@ var Faq = ({
|
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
{ threshold: 0.1 }
|
|
24
|
-
// Triggers when 10% of the title is visible
|
|
25
24
|
);
|
|
26
25
|
if (titleRef.current) {
|
|
27
26
|
observer.observe(titleRef.current);
|
|
@@ -31,11 +30,11 @@ var Faq = ({
|
|
|
31
30
|
const toggleFaq = (index) => {
|
|
32
31
|
setActiveFaq(activeFaq === index ? null : index);
|
|
33
32
|
};
|
|
34
|
-
return /* @__PURE__ */ React.createElement("div", { className: "py-24 w-full flex justify-center px-4 md:px-8 z-10 relative" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-10 max-w-4xl w-full" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col items-center w-full" }, title && /* @__PURE__ */ React.createElement(
|
|
33
|
+
return /* @__PURE__ */ React.createElement("div", { className: "py-24 w-full flex justify-center px-4 md:px-8 z-10 relative bg-black" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-10 max-w-4xl w-full" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col items-center w-full" }, title && /* @__PURE__ */ React.createElement(
|
|
35
34
|
"h2",
|
|
36
35
|
{
|
|
37
36
|
ref: titleRef,
|
|
38
|
-
className: `text-3xl
|
|
37
|
+
className: `text-3xl text-white tracking-tight leading-[1.15] ${isAnimating ? "" : ""}`,
|
|
39
38
|
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
40
39
|
},
|
|
41
40
|
"FAQ"
|
|
@@ -43,10 +42,10 @@ var Faq = ({
|
|
|
43
42
|
const isOpen = activeFaq === index;
|
|
44
43
|
const getShadowStyle = () => {
|
|
45
44
|
if (isOpen) return `
|
|
46
|
-
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.
|
|
47
|
-
inset 0 -3px 0 0 rgba(0, 0, 0, 0.
|
|
48
|
-
0 4px 0 0 #
|
|
49
|
-
0 12px 24px rgba(0, 0, 0, 0.
|
|
45
|
+
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.05),
|
|
46
|
+
inset 0 -3px 0 0 rgba(0, 0, 0, 0.5),
|
|
47
|
+
0 4px 0 0 #000000,
|
|
48
|
+
0 12px 24px rgba(0, 0, 0, 0.5)
|
|
50
49
|
`;
|
|
51
50
|
return "none";
|
|
52
51
|
};
|
|
@@ -54,7 +53,7 @@ var Faq = ({
|
|
|
54
53
|
"div",
|
|
55
54
|
{
|
|
56
55
|
key: index,
|
|
57
|
-
className: `relative transition-all duration-500 rounded-4xl overflow-hidden ${isOpen ? "bg-
|
|
56
|
+
className: `relative transition-all duration-500 rounded-4xl overflow-hidden border ${isOpen ? "bg-neutral-900 border-neutral-800" : "bg-black border-neutral-800 hover:border-neutral-700"}`,
|
|
58
57
|
style: { boxShadow: getShadowStyle() }
|
|
59
58
|
},
|
|
60
59
|
isOpen && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
@@ -73,19 +72,19 @@ var Faq = ({
|
|
|
73
72
|
/* @__PURE__ */ React.createElement(
|
|
74
73
|
"span",
|
|
75
74
|
{
|
|
76
|
-
className: `text-[15px] transition-colors duration-300 flex items-center gap-2 ${isOpen ? "text-white" : "text-
|
|
75
|
+
className: `text-[15px] transition-colors duration-300 flex items-center gap-2 ${isOpen ? "text-white" : "text-neutral-300"}`
|
|
77
76
|
},
|
|
78
|
-
/* @__PURE__ */ React.createElement("span", { className:
|
|
77
|
+
/* @__PURE__ */ React.createElement("span", { className: "text-neutral-500" }, index + 1, "."),
|
|
79
78
|
faq.question
|
|
80
79
|
),
|
|
81
|
-
/* @__PURE__ */ React.createElement("div", { className: `shrink-0 transition-colors duration-300 ${isOpen ? "text-white" : "text-
|
|
80
|
+
/* @__PURE__ */ React.createElement("div", { className: `shrink-0 transition-colors duration-300 ${isOpen ? "text-white" : "text-neutral-400 group-hover:text-white"}` }, isOpen ? /* @__PURE__ */ React.createElement("svg", { width: "22", height: "22", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5" }, /* @__PURE__ */ React.createElement("circle", { cx: "12", cy: "12", r: "10" }), /* @__PURE__ */ React.createElement("path", { d: "M8 12h8", strokeLinecap: "round" })) : /* @__PURE__ */ React.createElement("svg", { width: "22", height: "22", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5" }, /* @__PURE__ */ React.createElement("circle", { cx: "12", cy: "12", r: "10" }), /* @__PURE__ */ React.createElement("path", { d: "M12 8v8M8 12h8", strokeLinecap: "round" })))
|
|
82
81
|
),
|
|
83
82
|
/* @__PURE__ */ React.createElement(
|
|
84
83
|
"div",
|
|
85
84
|
{
|
|
86
85
|
className: `relative z-20 grid transition-all duration-300 ease-in-out ${isOpen ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"}`
|
|
87
86
|
},
|
|
88
|
-
/* @__PURE__ */ React.createElement("div", { className: "overflow-hidden" }, /* @__PURE__ */ React.createElement("p", { className: `text-[14px] leading-relaxed px-6 pb-6 pt-0 pr-12 transition-colors duration-300 ${isOpen ? "text-neutral-
|
|
87
|
+
/* @__PURE__ */ React.createElement("div", { className: "overflow-hidden" }, /* @__PURE__ */ React.createElement("p", { className: `text-[14px] leading-relaxed px-6 pb-6 pt-0 pr-12 transition-colors duration-300 ${isOpen ? "text-neutral-400" : "text-transparent"}` }, faq.answer))
|
|
89
88
|
)
|
|
90
89
|
);
|
|
91
90
|
}))));
|
|
@@ -100,31 +99,23 @@ var ThreeDButton = ({
|
|
|
100
99
|
className = "",
|
|
101
100
|
onClick
|
|
102
101
|
}) => {
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
0 6px 10px rgba(0, 0, 0, 0.3)
|
|
108
|
-
`;
|
|
109
|
-
const hoverShadow = `
|
|
110
|
-
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.35),
|
|
111
|
-
inset 0 -2px 0 0 rgba(0, 0, 0, 0.5),
|
|
112
|
-
0 4px 0 0 #0c0c0c,
|
|
113
|
-
0 8px 12px rgba(0, 0, 0, 0.35)
|
|
114
|
-
`;
|
|
115
|
-
const activeShadow = `
|
|
116
|
-
inset 0 1px 0 0 rgba(255, 255, 255, 0.1),
|
|
117
|
-
inset 0 -1px 0 0 rgba(0, 0, 0, 0.5),
|
|
118
|
-
0 1px 0 0 #0c0c0c,
|
|
119
|
-
0 2px 4px rgba(0, 0, 0, 0.2)
|
|
120
|
-
`;
|
|
102
|
+
const silverBg = `linear-gradient(110deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0) 35%, rgba(0,0,0,0.1) 60%, rgba(255,255,255,0.6) 80%, rgba(0,0,0,0.2) 100%), url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2MDAnIGhlaWdodD0nODAnPjxmaWx0ZXIgaWQ9J2JydXNoZWQnIHg9JzAlJyB5PScwJScgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJSc+PGZlVHVyYnVsZW5jZSB0eXBlPSdmcmFjdGFsTm9pc2UnIGJhc2VGcmVxdWVuY3k9JzAuMDA1IDAuOCcgbnVtT2N0YXZlcz0nNCcgc2VlZD0nNScgcmVzdWx0PSdub2lzZScvPjxmZUNvbG9yTWF0cml4IHR5cGU9J3NhdHVyYXRlJyB2YWx1ZXM9JzAnIHJlc3VsdD0nbW9ubycvPjxmZUNvbXBvbmVudFRyYW5zZmVyIHJlc3VsdD0nYWRqdXN0ZWQnPjxmZUZ1bmNSIHR5cGU9J2xpbmVhcicgc2xvcGU9JzAuNCcgaW50ZXJjZXB0PScwLjMnLz48ZmVGdW5jRyB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjQnIGludGVyY2VwdD0nMC4zJy8+PGZlRnVuY0IgdHlwZT0nbGluZWFyJyBzbG9wZT0nMC40JyBpbnRlcmNlcHQ9JzAuMycvPjxmZUZ1bmNBIHR5cGU9J2xpbmVhcicgc2xvcGU9JzAuMTUnIGludGVyY2VwdD0nMCcvPjwvZmVDb21wb25lbnRUcmFuc2Zlcj48L2ZpbHRlcj48cmVjdCB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJyBmaWxsPScjZDFkNWRiJy8+PHJlY3Qgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJScgZmlsdGVyPSd1cmwoI2JydXNoZWQpJyBvcGFjaXR5PScwLjgnLz48L3N2Zz4=")`;
|
|
103
|
+
const baseShadow = "inset 0 1px 2px rgba(255,255,255,1), inset 0 -2px 3px rgba(0,0,0,0.3), 0 4px 10px rgba(0,0,0,0.5)";
|
|
104
|
+
const hoverShadow = "inset 0 1px 2px rgba(255,255,255,1), inset 0 -2px 3px rgba(0,0,0,0.3), 0 6px 14px rgba(0,0,0,0.7)";
|
|
105
|
+
const activeShadow = "inset 0 2px 4px rgba(0,0,0,0.4), inset 0 -1px 2px rgba(255,255,255,0.5), 0 2px 4px rgba(0,0,0,0.3)";
|
|
121
106
|
return /* @__PURE__ */ React2.createElement(
|
|
122
107
|
Link,
|
|
123
108
|
{
|
|
124
109
|
href,
|
|
125
110
|
onClick,
|
|
126
|
-
className: `relative inline-flex items-center justify-center py-2.5 px-8 rounded-full
|
|
127
|
-
style: {
|
|
111
|
+
className: `relative inline-flex items-center justify-center py-2.5 px-8 rounded-full text-neutral-900 text-xs font-medium transition-all duration-150 select-none group overflow-hidden ${className}`,
|
|
112
|
+
style: {
|
|
113
|
+
backgroundImage: silverBg,
|
|
114
|
+
backgroundSize: "cover",
|
|
115
|
+
backgroundPosition: "center right",
|
|
116
|
+
boxShadow: baseShadow,
|
|
117
|
+
textShadow: "0 1px 1px rgba(255,255,255,0.6)"
|
|
118
|
+
},
|
|
128
119
|
onMouseEnter: (e) => {
|
|
129
120
|
e.currentTarget.style.boxShadow = hoverShadow;
|
|
130
121
|
e.currentTarget.style.transform = "translateY(-1px)";
|
|
@@ -141,8 +132,8 @@ var ThreeDButton = ({
|
|
|
141
132
|
e.currentTarget.style.transform = "translateY(-1px)";
|
|
142
133
|
}
|
|
143
134
|
},
|
|
144
|
-
/* @__PURE__ */ React2.createElement("span", { className: "absolute inset-0
|
|
145
|
-
/* @__PURE__ */ React2.createElement("span", { className: "relative z-10 pt-1 tracking-wide text-
|
|
135
|
+
/* @__PURE__ */ React2.createElement("span", { className: "absolute inset-0 bg-linear-to-r from-white/30 to-transparent pointer-events-none" }),
|
|
136
|
+
/* @__PURE__ */ React2.createElement("span", { className: "relative z-10 pt-1 tracking-wide text-neutral-900/95 group-hover:text-neutral-950 transition-colors duration-150 flex items-center justify-center leading-none drop-shadow-[0_1px_1px_rgba(255,255,255,0.8)]" }, children)
|
|
146
137
|
);
|
|
147
138
|
};
|
|
148
139
|
|
|
@@ -160,29 +151,11 @@ var ThreeDActionButton = ({
|
|
|
160
151
|
ariaLabel
|
|
161
152
|
}) => {
|
|
162
153
|
const isInteractionDisabled = disabled || isLoading;
|
|
163
|
-
const
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
`;
|
|
169
|
-
const hoverShadow = `
|
|
170
|
-
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.35),
|
|
171
|
-
inset 0 -2px 0 0 rgba(0, 0, 0, 0.5),
|
|
172
|
-
0 4px 0 0 #0c0c0c,
|
|
173
|
-
0 8px 12px rgba(0, 0, 0, 0.35)
|
|
174
|
-
`;
|
|
175
|
-
const activeShadow = `
|
|
176
|
-
inset 0 1px 0 0 rgba(255, 255, 255, 0.1),
|
|
177
|
-
inset 0 -1px 0 0 rgba(0, 0, 0, 0.5),
|
|
178
|
-
0 1px 0 0 #0c0c0c,
|
|
179
|
-
0 2px 4px rgba(0, 0, 0, 0.2)
|
|
180
|
-
`;
|
|
181
|
-
const disabledShadow = `
|
|
182
|
-
inset 0 1px 0 0 rgba(255, 255, 255, 0.15),
|
|
183
|
-
inset 0 -1px 0 0 rgba(0, 0, 0, 0.3),
|
|
184
|
-
0 1px 0 0 #1c1c1c
|
|
185
|
-
`;
|
|
154
|
+
const silverBg = `linear-gradient(110deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0) 35%, rgba(0,0,0,0.1) 60%, rgba(255,255,255,0.6) 80%, rgba(0,0,0,0.2) 100%), url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2MDAnIGhlaWdodD0nODAnPjxmaWx0ZXIgaWQ9J2JydXNoZWQnIHg9JzAlJyB5PScwJScgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJSc+PGZlVHVyYnVsZW5jZSB0eXBlPSdmcmFjdGFsTm9pc2UnIGJhc2VGcmVxdWVuY3k9JzAuMDA1IDAuOCcgbnVtT2N0YXZlcz0nNCcgc2VlZD0nNScgcmVzdWx0PSdub2lzZScvPjxmZUNvbG9yTWF0cml4IHR5cGU9J3NhdHVyYXRlJyB2YWx1ZXM9JzAnIHJlc3VsdD0nbW9ubycvPjxmZUNvbXBvbmVudFRyYW5zZmVyIHJlc3VsdD0nYWRqdXN0ZWQnPjxmZUZ1bmNSIHR5cGU9J2xpbmVhcicgc2xvcGU9JzAuNCcgaW50ZXJjZXB0PScwLjMnLz48ZmVGdW5jRyB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjQnIGludGVyY2VwdD0nMC4zJy8+PGZlRnVuY0IgdHlwZT0nbGluZWFyJyBzbG9wZT0nMC40JyBpbnRlcmNlcHQ9JzAuMycvPjxmZUZ1bmNBIHR5cGU9J2xpbmVhcicgc2xvcGU9JzAuMTUnIGludGVyY2VwdD0nMCcvPjwvZmVDb21wb25lbnRUcmFuc2Zlcj48L2ZpbHRlcj48cmVjdCB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJyBmaWxsPScjZDFkNWRiJy8+PHJlY3Qgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJScgZmlsdGVyPSd1cmwoI2JydXNoZWQpJyBvcGFjaXR5PScwLjgnLz48L3N2Zz4=")`;
|
|
155
|
+
const baseShadow = "inset 0 1px 2px rgba(255,255,255,1), inset 0 -2px 3px rgba(0,0,0,0.3), 0 4px 10px rgba(0,0,0,0.5)";
|
|
156
|
+
const hoverShadow = "inset 0 1px 2px rgba(255,255,255,1), inset 0 -2px 3px rgba(0,0,0,0.3), 0 6px 14px rgba(0,0,0,0.7)";
|
|
157
|
+
const activeShadow = "inset 0 2px 4px rgba(0,0,0,0.4), inset 0 -1px 2px rgba(255,255,255,0.5), 0 2px 4px rgba(0,0,0,0.3)";
|
|
158
|
+
const disabledShadow = "inset 0 1px 2px rgba(255,255,255,0.5), inset 0 -1px 2px rgba(0,0,0,0.2), 0 2px 4px rgba(0,0,0,0.2)";
|
|
186
159
|
return /* @__PURE__ */ React3.createElement(
|
|
187
160
|
"button",
|
|
188
161
|
{
|
|
@@ -192,12 +165,18 @@ var ThreeDActionButton = ({
|
|
|
192
165
|
"aria-label": ariaLabel,
|
|
193
166
|
className: `
|
|
194
167
|
relative inline-flex items-center justify-center py-2.5 px-8 rounded-full
|
|
195
|
-
|
|
196
|
-
transition-all duration-150 select-none group outline-none
|
|
197
|
-
${isInteractionDisabled ? "opacity-
|
|
168
|
+
text-neutral-900 text-xs font-medium tracking-widest
|
|
169
|
+
transition-all duration-150 select-none group outline-none overflow-hidden
|
|
170
|
+
${isInteractionDisabled ? "opacity-70 cursor-not-allowed" : "active:translate-y-0.5"}
|
|
198
171
|
${className}
|
|
199
172
|
`,
|
|
200
|
-
style: {
|
|
173
|
+
style: {
|
|
174
|
+
backgroundImage: silverBg,
|
|
175
|
+
backgroundSize: "cover",
|
|
176
|
+
backgroundPosition: "center right",
|
|
177
|
+
boxShadow: isInteractionDisabled ? disabledShadow : baseShadow,
|
|
178
|
+
textShadow: "0 1px 1px rgba(255,255,255,0.6)"
|
|
179
|
+
},
|
|
201
180
|
onMouseEnter: (e) => {
|
|
202
181
|
if (isInteractionDisabled) return;
|
|
203
182
|
e.currentTarget.style.boxShadow = hoverShadow;
|
|
@@ -218,13 +197,13 @@ var ThreeDActionButton = ({
|
|
|
218
197
|
e.currentTarget.style.transform = "translateY(-1px)";
|
|
219
198
|
}
|
|
220
199
|
},
|
|
221
|
-
/* @__PURE__ */ React3.createElement("span", { className: "absolute inset-0
|
|
222
|
-
/* @__PURE__ */ React3.createElement("span", { className: "relative z-10 flex items-center justify-center gap-2 leading-none" }, isLoading ? /* @__PURE__ */ React3.createElement(HugeiconsIcon, { icon: Loading03Icon, size: 16, className: "animate-spin text-
|
|
200
|
+
/* @__PURE__ */ React3.createElement("span", { className: "absolute inset-0 bg-linear-to-r from-white/30 to-transparent pointer-events-none" }),
|
|
201
|
+
/* @__PURE__ */ React3.createElement("span", { className: "relative z-10 flex items-center justify-center gap-2 leading-none drop-shadow-[0_1px_1px_rgba(255,255,255,0.8)]" }, isLoading ? /* @__PURE__ */ React3.createElement(HugeiconsIcon, { icon: Loading03Icon, size: 16, className: "animate-spin text-neutral-900" }) : children)
|
|
223
202
|
);
|
|
224
203
|
};
|
|
225
204
|
|
|
226
205
|
// src/components/Header.tsx
|
|
227
|
-
import React4
|
|
206
|
+
import React4 from "react";
|
|
228
207
|
import Link2 from "next/link";
|
|
229
208
|
import Image from "next/image";
|
|
230
209
|
import { usePathname } from "next/navigation";
|
|
@@ -235,8 +214,8 @@ var NavLink = ({
|
|
|
235
214
|
}) => {
|
|
236
215
|
const pathname = usePathname();
|
|
237
216
|
const isActive = pathname === href;
|
|
238
|
-
const activeClass = "text-
|
|
239
|
-
const inactiveClass = "text-neutral-
|
|
217
|
+
const activeClass = "text-white";
|
|
218
|
+
const inactiveClass = "text-neutral-400 hover:text-white";
|
|
240
219
|
return /* @__PURE__ */ React4.createElement(
|
|
241
220
|
Link2,
|
|
242
221
|
{
|
|
@@ -256,30 +235,19 @@ var Header = ({
|
|
|
256
235
|
hideHeaderText = false,
|
|
257
236
|
compact = false
|
|
258
237
|
}) => {
|
|
259
|
-
const [mounted, setMounted] = useState2(false);
|
|
260
|
-
useEffect2(() => {
|
|
261
|
-
setMounted(true);
|
|
262
|
-
}, []);
|
|
263
238
|
const headerLayoutWidth = compact ? "w-fit mx-auto gap-8 md:gap-16" : "w-full justify-between";
|
|
264
239
|
const hasBrandSection = showLogo || !hideHeaderText;
|
|
265
|
-
|
|
266
|
-
const brandTitleClass = "text-neutral-900";
|
|
267
|
-
const brandSubtitleClass = "text-neutral-500";
|
|
268
|
-
const shouldInvertLogo = !invert;
|
|
269
|
-
if (!mounted) {
|
|
270
|
-
return /* @__PURE__ */ React4.createElement("div", { className: "absolute inset-x-0 top-0 w-full h-20 z-50 pointer-events-none px-4 pt-4 sm:pt-6" });
|
|
271
|
-
}
|
|
272
|
-
return /* @__PURE__ */ React4.createElement("div", { className: "absolute inset-x-0 top-0 w-full z-50 pointer-events-none px-4 pt-4 sm:pt-6" }, /* @__PURE__ */ React4.createElement("div", { className: "max-w-5xl mx-auto w-full pointer-events-auto flex justify-center" }, /* @__PURE__ */ React4.createElement("header", { className: `${headerLayoutWidth} ${headerBgClass} backdrop-blur-md rounded-full py-2 px-6 flex items-center transition-all duration-300` }, hasBrandSection && /* @__PURE__ */ React4.createElement("div", { className: "flex items-center shrink-0" }, /* @__PURE__ */ React4.createElement(Link2, { href: "/", className: "flex items-center gap-3 transition-opacity hover:opacity-70 outline-none" }, showLogo && /* @__PURE__ */ React4.createElement(
|
|
240
|
+
return /* @__PURE__ */ React4.createElement("div", { className: "absolute inset-x-0 top-0 w-full z-50 pointer-events-none px-4 pt-4 sm:pt-6" }, /* @__PURE__ */ React4.createElement("div", { className: "max-w-5xl mx-auto w-full pointer-events-auto flex justify-center" }, /* @__PURE__ */ React4.createElement("header", { className: `${headerLayoutWidth} bg-black/40 backdrop-blur-md rounded-full py-2 px-6 flex items-center transition-all duration-300` }, hasBrandSection && /* @__PURE__ */ React4.createElement("div", { className: "flex items-center shrink-0" }, /* @__PURE__ */ React4.createElement(Link2, { href: "/", className: "flex items-center gap-3 transition-opacity hover:opacity-70 outline-none" }, showLogo && /* @__PURE__ */ React4.createElement(
|
|
273
241
|
Image,
|
|
274
242
|
{
|
|
275
243
|
src: logoSrc,
|
|
276
244
|
alt: `${companyName} Logo`,
|
|
277
245
|
width: 40,
|
|
278
246
|
height: 40,
|
|
279
|
-
className: `object-contain w-8 h-auto ${
|
|
247
|
+
className: `object-contain w-8 h-auto ${invert ? "invert" : ""}`,
|
|
280
248
|
priority: true
|
|
281
249
|
}
|
|
282
|
-
), !hideHeaderText && /* @__PURE__ */ React4.createElement("div", { className: "flex flex-col justify-center" }, /* @__PURE__ */ React4.createElement("span", { className:
|
|
250
|
+
), !hideHeaderText && /* @__PURE__ */ React4.createElement("div", { className: "flex flex-col justify-center" }, /* @__PURE__ */ React4.createElement("span", { className: "text-[11px] leading-none tracking-wide mb-1 transition-colors text-white" }, companyName), subtitle && /* @__PURE__ */ React4.createElement("span", { className: "text-[9px] tracking-widest leading-none transition-colors text-neutral-400" }, subtitle)))), /* @__PURE__ */ React4.createElement("nav", { className: "flex items-center gap-1 md:gap-2 shrink-0" }, links.map((link, index) => /* @__PURE__ */ React4.createElement(
|
|
283
251
|
NavLink,
|
|
284
252
|
{
|
|
285
253
|
key: index,
|
|
@@ -291,7 +259,7 @@ var Header = ({
|
|
|
291
259
|
};
|
|
292
260
|
|
|
293
261
|
// src/components/Footer.tsx
|
|
294
|
-
import React5, { useState as
|
|
262
|
+
import React5, { useState as useState2 } from "react";
|
|
295
263
|
import Link3 from "next/link";
|
|
296
264
|
import { HugeiconsIcon as HugeiconsIcon2 } from "@hugeicons/react";
|
|
297
265
|
var Footer = ({
|
|
@@ -301,38 +269,38 @@ var Footer = ({
|
|
|
301
269
|
copyrightText,
|
|
302
270
|
topSection
|
|
303
271
|
}) => {
|
|
304
|
-
const [openCol, setOpenCol] =
|
|
272
|
+
const [openCol, setOpenCol] = useState2(null);
|
|
305
273
|
const toggleColumn = (idx) => {
|
|
306
274
|
setOpenCol(openCol === idx ? null : idx);
|
|
307
275
|
};
|
|
308
|
-
return /* @__PURE__ */ React5.createElement("div", { className: "" }, topSection && topSection, /* @__PURE__ */ React5.createElement("footer", { className: "relative px-6 overflow-hidden flex flex-col" }, /* @__PURE__ */ React5.createElement("div", { className: "relative w-full max-w-7xl mx-auto z-20 flex flex-col" }, /* @__PURE__ */ React5.createElement("div", { className: "relative py-12 md:py-16" }, /* @__PURE__ */ React5.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start gap-12 lg:gap-16 mb-12 text-left" }, /* @__PURE__ */ React5.createElement("div", { className: "w-full lg:max-w-sm flex flex-col items-start justify-between shrink-0" }, /* @__PURE__ */ React5.createElement("div", { className: "flex items-center gap-4 mb-4" }, /* @__PURE__ */ React5.createElement("img", { src: "https://retinalabs.company/assets/images/ndpr.avif", alt: "NDPR", className: "w-28 h-auto object-contain filter grayscale opacity-80" }), /* @__PURE__ */ React5.createElement("img", { src: "https://retinalabs.company/assets/images/gdpr.avif", alt: "GDPR", className: "w-12 h-12 object-contain filter grayscale opacity-80" })), /* @__PURE__ */ React5.createElement("div", null, /* @__PURE__ */ React5.createElement("p", { className: "text-[11px]
|
|
276
|
+
return /* @__PURE__ */ React5.createElement("div", { className: "bg-black" }, topSection && topSection, /* @__PURE__ */ React5.createElement("footer", { className: "relative px-6 overflow-hidden flex flex-col" }, /* @__PURE__ */ React5.createElement("div", { className: "relative w-full max-w-7xl mx-auto z-20 flex flex-col" }, /* @__PURE__ */ React5.createElement("div", { className: "relative py-12 md:py-16" }, /* @__PURE__ */ React5.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start gap-12 lg:gap-16 mb-12 text-left" }, /* @__PURE__ */ React5.createElement("div", { className: "w-full lg:max-w-sm flex flex-col items-start justify-between shrink-0" }, /* @__PURE__ */ React5.createElement("div", { className: "flex items-center gap-4 mb-4" }, /* @__PURE__ */ React5.createElement("img", { src: "https://retinalabs.company/assets/images/ndpr.avif", alt: "NDPR", className: "w-28 h-auto object-contain filter grayscale invert opacity-80" }), /* @__PURE__ */ React5.createElement("img", { src: "https://retinalabs.company/assets/images/gdpr.avif", alt: "GDPR", className: "w-12 h-12 object-contain filter grayscale invert opacity-80" })), /* @__PURE__ */ React5.createElement("div", null, /* @__PURE__ */ React5.createElement("p", { className: "text-[11px] text-neutral-400 leading-relaxed pr-4" }, description))), /* @__PURE__ */ React5.createElement("div", { className: "w-full lg:flex-1 lg:max-w-2xl" }, /* @__PURE__ */ React5.createElement("div", { className: "hidden md:grid grid-cols-2 gap-x-16 lg:gap-x-24 gap-y-12" }, columns.map((col, idx) => /* @__PURE__ */ React5.createElement("div", { key: idx, className: "flex flex-col" }, /* @__PURE__ */ React5.createElement("h4", { className: "text-[11px] tracking-[0.2em] text-white mb-6 " }, col.title), /* @__PURE__ */ React5.createElement("ul", { className: "space-y-4 text-[13px] text-neutral-500" }, col.links.map((link, lIdx) => /* @__PURE__ */ React5.createElement("li", { key: lIdx }, link.isExternal ? /* @__PURE__ */ React5.createElement("a", { href: link.href, target: "_blank", rel: "noopener noreferrer", className: "hover:text-white transition-colors block truncate" }, link.label) : /* @__PURE__ */ React5.createElement(Link3, { href: link.href, className: "hover:text-white transition-colors block truncate" }, link.label))))))), /* @__PURE__ */ React5.createElement("div", { className: "flex flex-col md:hidden w-full border-t border-neutral-800 mt-4" }, columns.map((col, idx) => {
|
|
309
277
|
const isOpen = openCol === idx;
|
|
310
|
-
return /* @__PURE__ */ React5.createElement("div", { key: idx, className: "border-b border-neutral-
|
|
278
|
+
return /* @__PURE__ */ React5.createElement("div", { key: idx, className: "border-b border-neutral-800" }, /* @__PURE__ */ React5.createElement(
|
|
311
279
|
"button",
|
|
312
280
|
{
|
|
313
281
|
onClick: () => toggleColumn(idx),
|
|
314
282
|
className: "w-full flex items-center justify-between py-5 text-left outline-none"
|
|
315
283
|
},
|
|
316
|
-
/* @__PURE__ */ React5.createElement("span", { className: "text-[11px] tracking-[0.2em] text-
|
|
284
|
+
/* @__PURE__ */ React5.createElement("span", { className: "text-[11px] tracking-[0.2em] text-white " }, col.title),
|
|
317
285
|
/* @__PURE__ */ React5.createElement(
|
|
318
286
|
"svg",
|
|
319
287
|
{
|
|
320
|
-
className: `w-4 h-4 text-neutral-
|
|
288
|
+
className: `w-4 h-4 text-neutral-500 transition-transform duration-300 ${isOpen ? "rotate-180" : ""}`,
|
|
321
289
|
fill: "none",
|
|
322
290
|
viewBox: "0 0 24 24",
|
|
323
291
|
stroke: "currentColor"
|
|
324
292
|
},
|
|
325
293
|
/* @__PURE__ */ React5.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M19 9l-7 7-7-7" })
|
|
326
294
|
)
|
|
327
|
-
), /* @__PURE__ */ React5.createElement("div", { className: `grid transition-all duration-300 ease-in-out ${isOpen ? "grid-rows-[1fr] pb-6 opacity-100" : "grid-rows-[0fr] opacity-0"}` }, /* @__PURE__ */ React5.createElement("div", { className: "overflow-hidden" }, /* @__PURE__ */ React5.createElement("ul", { className: "space-y-4 text-[13px] text-neutral-500 pt-2" }, col.links.map((link, lIdx) => /* @__PURE__ */ React5.createElement("li", { key: lIdx }, link.isExternal ? /* @__PURE__ */ React5.createElement("a", { href: link.href, target: "_blank", rel: "noopener noreferrer", className: "hover:text-
|
|
328
|
-
})))), /* @__PURE__ */ React5.createElement("div", { className: "pt-8 mt-4
|
|
295
|
+
), /* @__PURE__ */ React5.createElement("div", { className: `grid transition-all duration-300 ease-in-out ${isOpen ? "grid-rows-[1fr] pb-6 opacity-100" : "grid-rows-[0fr] opacity-0"}` }, /* @__PURE__ */ React5.createElement("div", { className: "overflow-hidden" }, /* @__PURE__ */ React5.createElement("ul", { className: "space-y-4 text-[13px] text-neutral-500 pt-2" }, col.links.map((link, lIdx) => /* @__PURE__ */ React5.createElement("li", { key: lIdx }, link.isExternal ? /* @__PURE__ */ React5.createElement("a", { href: link.href, target: "_blank", rel: "noopener noreferrer", className: "hover:text-white transition-colors" }, link.label) : /* @__PURE__ */ React5.createElement(Link3, { href: link.href, className: "hover:text-white transition-colors" }, link.label)))))));
|
|
296
|
+
})))), /* @__PURE__ */ React5.createElement("div", { className: "pt-8 mt-4 flex flex-col-reverse md:flex-row justify-between items-start md:items-center gap-6 relative z-20" }, /* @__PURE__ */ React5.createElement("p", { className: "text-[11px] text-neutral-500 tracking-widest text-left" }, copyrightText), socialLinks && socialLinks.length > 0 && /* @__PURE__ */ React5.createElement("div", { className: "flex items-center gap-6" }, socialLinks.map((social, idx) => /* @__PURE__ */ React5.createElement(
|
|
329
297
|
"a",
|
|
330
298
|
{
|
|
331
299
|
key: idx,
|
|
332
300
|
href: social.href,
|
|
333
301
|
target: "_blank",
|
|
334
302
|
rel: "noopener noreferrer",
|
|
335
|
-
className: "text-neutral-
|
|
303
|
+
className: "text-neutral-500 hover:text-white transition-colors",
|
|
336
304
|
"aria-label": social.name
|
|
337
305
|
},
|
|
338
306
|
/* @__PURE__ */ React5.createElement(HugeiconsIcon2, { icon: social.icon, size: 20 })
|
|
@@ -340,7 +308,7 @@ var Footer = ({
|
|
|
340
308
|
};
|
|
341
309
|
|
|
342
310
|
// src/components/HeroSection.tsx
|
|
343
|
-
import React6, { useState as
|
|
311
|
+
import React6, { useState as useState3, useEffect as useEffect2, useRef as useRef2 } from "react";
|
|
344
312
|
import Link4 from "next/link";
|
|
345
313
|
import Image2 from "next/image";
|
|
346
314
|
var HeroSection = ({
|
|
@@ -361,9 +329,9 @@ var HeroSection = ({
|
|
|
361
329
|
bgVideoSrc,
|
|
362
330
|
bgImageSrc
|
|
363
331
|
}) => {
|
|
364
|
-
const [isAnimating, setIsAnimating] =
|
|
332
|
+
const [isAnimating, setIsAnimating] = useState3(false);
|
|
365
333
|
const titleRef = useRef2(null);
|
|
366
|
-
|
|
334
|
+
useEffect2(() => {
|
|
367
335
|
const observer = new IntersectionObserver(
|
|
368
336
|
([entry]) => {
|
|
369
337
|
if (entry.isIntersecting) {
|
|
@@ -381,67 +349,89 @@ var HeroSection = ({
|
|
|
381
349
|
}
|
|
382
350
|
return () => observer.disconnect();
|
|
383
351
|
}, []);
|
|
384
|
-
return (
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
352
|
+
return /* @__PURE__ */ React6.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__ */ React6.createElement("div", { className: "absolute inset-0 w-full h-full z-0 overflow-hidden" }, bgVideoSrc ? /* @__PURE__ */ React6.createElement(
|
|
353
|
+
"video",
|
|
354
|
+
{
|
|
355
|
+
src: bgVideoSrc,
|
|
356
|
+
poster: bgImageSrc,
|
|
357
|
+
autoPlay: true,
|
|
358
|
+
loop: true,
|
|
359
|
+
muted: true,
|
|
360
|
+
playsInline: true,
|
|
361
|
+
className: "absolute inset-0 w-full h-full object-cover z-0"
|
|
362
|
+
}
|
|
363
|
+
) : bgImageSrc ? /* @__PURE__ */ React6.createElement(
|
|
364
|
+
Image2,
|
|
365
|
+
{
|
|
366
|
+
src: bgImageSrc,
|
|
367
|
+
alt: "Hero Background",
|
|
368
|
+
fill: true,
|
|
369
|
+
priority: true,
|
|
370
|
+
className: "object-cover z-0"
|
|
371
|
+
}
|
|
372
|
+
) : null, /* @__PURE__ */ React6.createElement(
|
|
373
|
+
"div",
|
|
374
|
+
{
|
|
375
|
+
className: "absolute inset-0 z-10 opacity-30 mix-blend-overlay pointer-events-none",
|
|
376
|
+
style: {
|
|
377
|
+
backgroundImage: `linear-gradient(110deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0) 35%, rgba(0,0,0,0.2) 60%, rgba(255,255,255,0.4) 80%, rgba(0,0,0,0.4) 100%), url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2MDAnIGhlaWdodD0nODAnPjxmaWx0ZXIgaWQ9J2JydXNoZWQnIHg9JzAlJyB5PScwJScgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJSc+PGZlVHVyYnVsZW5jZSB0eXBlPSdmcmFjdGFsTm9pc2UnIGJhc2VGcmVxdWVuY3k9JzAuMDA1IDAuOCcgbnVtT2N0YXZlcz0nNCcgc2VlZD0nNScgcmVzdWx0PSdub2lzZScvPjxmZUNvbG9yTWF0cml4IHR5cGU9J3NhdHVyYXRlJyB2YWx1ZXM9JzAnIHJlc3VsdD0nbW9ubycvPjxmZUNvbXBvbmVudFRyYW5zZmVyIHJlc3VsdD0nYWRqdXN0ZWQnPjxmZUZ1bmNSIHR5cGU9J2xpbmVhcicgc2xvcGU9JzAuNCcgaW50ZXJjZXB0PScwLjMnLz48ZmVGdW5jRyB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjQnIGludGVyY2VwdD0nMC4zJy8+PGZlRnVuY0IgdHlwZT0nbGluZWFyJyBzbG9wZT0nMC40JyBpbnRlcmNlcHQ9JzAuMycvPjxmZUZ1bmNBIHR5cGU9J2xpbmVhcicgc2xvcGU9JzAuMTUnIGludGVyY2VwdD0nMCcvPjwvZmVDb21wb25lbnRUcmFuc2Zlcj48L2ZpbHRlcj48cmVjdCB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJyBmaWxsPScjZDFkNWRiJy8+PHJlY3Qgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJScgZmlsdGVyPSd1cmwoI2JydXNoZWQpJyBvcGFjaXR5PScwLjgnLz48L3N2Zz4=")`,
|
|
378
|
+
backgroundSize: "cover",
|
|
379
|
+
backgroundPosition: "center"
|
|
412
380
|
}
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
muted: true,
|
|
422
|
-
playsInline: true,
|
|
423
|
-
className: "absolute inset-0 w-full h-full object-cover"
|
|
381
|
+
}
|
|
382
|
+
), /* @__PURE__ */ React6.createElement("div", { className: "absolute inset-0 bg-black/20 z-10" }), /* @__PURE__ */ React6.createElement(
|
|
383
|
+
"div",
|
|
384
|
+
{
|
|
385
|
+
className: "absolute inset-0 w-full h-full pointer-events-none z-10 opacity-10",
|
|
386
|
+
style: {
|
|
387
|
+
backgroundImage: "radial-gradient(circle at center, rgba(255,255,255,0.2) 1px, transparent 1px)",
|
|
388
|
+
backgroundSize: "32px 32px"
|
|
424
389
|
}
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
className: "object-cover"
|
|
390
|
+
}
|
|
391
|
+
), /* @__PURE__ */ React6.createElement(
|
|
392
|
+
"div",
|
|
393
|
+
{
|
|
394
|
+
className: "absolute inset-0 w-full h-full pointer-events-none z-10 opacity-[0.10] mix-blend-overlay",
|
|
395
|
+
style: {
|
|
396
|
+
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")`
|
|
433
397
|
}
|
|
434
|
-
|
|
435
|
-
)
|
|
398
|
+
}
|
|
399
|
+
), /* @__PURE__ */ React6.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__ */ React6.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__ */ React6.createElement(
|
|
400
|
+
"h1",
|
|
401
|
+
{
|
|
402
|
+
ref: titleRef,
|
|
403
|
+
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)]`,
|
|
404
|
+
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
405
|
+
},
|
|
406
|
+
titlePrefix,
|
|
407
|
+
" ",
|
|
408
|
+
/* @__PURE__ */ React6.createElement("span", { className: "font-medium gradient-text" }, highlightText)
|
|
409
|
+
), subtitle && /* @__PURE__ */ React6.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__ */ React6.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 && /* @__PURE__ */ React6.createElement("div", { className: "w-full sm:w-60 flex justify-center *:w-full" }, /* @__PURE__ */ React6.createElement(ThreeDButton, { href: ctaHref }, ctaText)), secondaryCtaText && secondaryCtaHref && /* @__PURE__ */ React6.createElement(
|
|
410
|
+
Link4,
|
|
411
|
+
{
|
|
412
|
+
href: secondaryCtaHref,
|
|
413
|
+
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"
|
|
414
|
+
},
|
|
415
|
+
secondaryCtaText
|
|
416
|
+
)), showApps && appLogos && appLogos.length > 0 && /* @__PURE__ */ React6.createElement("div", { className: "w-full flex flex-col items-center mt-4" }, appsText && /* @__PURE__ */ React6.createElement("p", { className: "text-[9px] tracking-[0.2em] text-neutral-300 mb-5 " }, appsText), /* @__PURE__ */ React6.createElement("div", { className: "flex flex-wrap justify-center items-center gap-6 opacity-90" }, appLogos.map((logo, idx) => /* @__PURE__ */ React6.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__ */ React6.createElement(
|
|
417
|
+
Image2,
|
|
418
|
+
{
|
|
419
|
+
src: logo.src,
|
|
420
|
+
alt: logo.alt,
|
|
421
|
+
width: 50,
|
|
422
|
+
height: 50,
|
|
423
|
+
className: "object-contain h-full w-auto"
|
|
424
|
+
}
|
|
425
|
+
)))))));
|
|
436
426
|
};
|
|
437
427
|
|
|
438
428
|
// src/components/AppBento2.tsx
|
|
439
|
-
import React7, { useState as
|
|
429
|
+
import React7, { useState as useState4, useEffect as useEffect3, useRef as useRef3 } from "react";
|
|
440
430
|
import { HugeiconsIcon as HugeiconsIcon3 } from "@hugeicons/react";
|
|
441
431
|
var AppBento2 = ({ tagline, headline, features }) => {
|
|
442
|
-
const [isAnimating, setIsAnimating] =
|
|
432
|
+
const [isAnimating, setIsAnimating] = useState4(false);
|
|
443
433
|
const titleRef = useRef3(null);
|
|
444
|
-
|
|
434
|
+
useEffect3(() => {
|
|
445
435
|
const observer = new IntersectionObserver(
|
|
446
436
|
([entry]) => {
|
|
447
437
|
if (entry.isIntersecting) {
|
|
@@ -459,36 +449,36 @@ var AppBento2 = ({ tagline, headline, features }) => {
|
|
|
459
449
|
}
|
|
460
450
|
return () => observer.disconnect();
|
|
461
451
|
}, []);
|
|
462
|
-
return /* @__PURE__ */ React7.createElement("div", { className: "w-full py-16" }, /* @__PURE__ */ React7.createElement("div", { className: "w-full flex justify-center px-4" }, /* @__PURE__ */ React7.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ React7.createElement("div", { className: "relative overflow-hidden mb-12 text-left" }, /* @__PURE__ */ React7.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ React7.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4 " }, tagline), /* @__PURE__ */ React7.createElement(
|
|
452
|
+
return /* @__PURE__ */ React7.createElement("div", { className: "w-full py-16 bg-black" }, /* @__PURE__ */ React7.createElement("div", { className: "w-full flex justify-center px-4" }, /* @__PURE__ */ React7.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ React7.createElement("div", { className: "relative overflow-hidden mb-12 text-left" }, /* @__PURE__ */ React7.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ React7.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4 " }, tagline), /* @__PURE__ */ React7.createElement(
|
|
463
453
|
"h2",
|
|
464
454
|
{
|
|
465
455
|
ref: titleRef,
|
|
466
|
-
className: `
|
|
456
|
+
className: `text-3xl tracking-tight text-white leading-[1.1] ${isAnimating ? "" : ""}`,
|
|
467
457
|
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
468
458
|
},
|
|
469
459
|
headline
|
|
470
460
|
))), /* @__PURE__ */ React7.createElement("div", { className: "grid grid-cols-1 lg:grid-cols-6 gap-6" }, features.map((f, i) => {
|
|
471
|
-
const
|
|
472
|
-
const
|
|
473
|
-
const
|
|
461
|
+
const isPrimary = i === 0;
|
|
462
|
+
const isHighlight = i === 1;
|
|
463
|
+
const isSecondary = i === 2;
|
|
474
464
|
const getBgStyle = () => {
|
|
475
|
-
if (
|
|
476
|
-
if (
|
|
477
|
-
if (
|
|
478
|
-
return "bg-neutral-
|
|
465
|
+
if (isPrimary) return "bg-neutral-900 ";
|
|
466
|
+
if (isHighlight) return "bg-black";
|
|
467
|
+
if (isSecondary) return "bg-neutral-800";
|
|
468
|
+
return "bg-neutral-900 ";
|
|
479
469
|
};
|
|
480
470
|
const getShadowStyle = () => {
|
|
481
|
-
if (
|
|
482
|
-
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.
|
|
483
|
-
inset 0 -3px 0 0 rgba(0, 0, 0, 0.
|
|
484
|
-
0 4px 0 0 #
|
|
485
|
-
0 12px 24px rgba(0, 0, 0, 0.
|
|
471
|
+
if (isHighlight) return `
|
|
472
|
+
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.05),
|
|
473
|
+
inset 0 -3px 0 0 rgba(0, 0, 0, 0.5),
|
|
474
|
+
0 4px 0 0 #000000,
|
|
475
|
+
0 12px 24px rgba(0, 0, 0, 0.5)
|
|
486
476
|
`;
|
|
487
477
|
return "none";
|
|
488
478
|
};
|
|
489
|
-
const textColor =
|
|
490
|
-
const subTextColor =
|
|
491
|
-
const labelColor =
|
|
479
|
+
const textColor = "text-white";
|
|
480
|
+
const subTextColor = "text-neutral-400";
|
|
481
|
+
const labelColor = "text-neutral-500";
|
|
492
482
|
return /* @__PURE__ */ React7.createElement(
|
|
493
483
|
"div",
|
|
494
484
|
{
|
|
@@ -503,22 +493,22 @@ var AppBento2 = ({ tagline, headline, features }) => {
|
|
|
503
493
|
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")` }
|
|
504
494
|
}
|
|
505
495
|
),
|
|
506
|
-
|
|
507
|
-
/* @__PURE__ */ React7.createElement("div", { className: "absolute inset-0 overflow-hidden pointer-events-none z-0" }, /* @__PURE__ */ React7.createElement("div", { className: `absolute -bottom-8 -right-8 transform group-hover:scale-110 transition-transform duration-700 ease-out ${
|
|
508
|
-
/* @__PURE__ */ React7.createElement("div", { className: "relative z-10 w-full h-full flex flex-col pointer-events-auto" }, /* @__PURE__ */ React7.createElement("div", { className: "flex items-center justify-between mb-8" }, /* @__PURE__ */ React7.createElement("span", { className: `text-[9px]
|
|
496
|
+
isHighlight && /* @__PURE__ */ React7.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" }),
|
|
497
|
+
/* @__PURE__ */ React7.createElement("div", { className: "absolute inset-0 overflow-hidden pointer-events-none z-0" }, /* @__PURE__ */ React7.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__ */ React7.createElement(HugeiconsIcon3, { icon: f.icon, size: 180 }))),
|
|
498
|
+
/* @__PURE__ */ React7.createElement("div", { className: "relative z-10 w-full h-full flex flex-col pointer-events-auto" }, /* @__PURE__ */ React7.createElement("div", { className: "flex items-center justify-between mb-8" }, /* @__PURE__ */ React7.createElement("span", { className: `text-[9px] tracking-widest ${labelColor}` }, f.label), /* @__PURE__ */ React7.createElement("div", { className: `p-2 rounded-full transition-colors bg-white/10` }, /* @__PURE__ */ React7.createElement(HugeiconsIcon3, { icon: f.icon, size: 20, className: textColor }))), /* @__PURE__ */ React7.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ React7.createElement("h3", { className: `text-xl mb-2 tracking-tight ${textColor}` }, f.title), /* @__PURE__ */ React7.createElement("p", { className: `text-[13px] leading-relaxed max-w-sm ${subTextColor}` }, f.desc)))
|
|
509
499
|
);
|
|
510
500
|
})))));
|
|
511
501
|
};
|
|
512
502
|
|
|
513
503
|
// src/components/FeatureScroll.tsx
|
|
514
|
-
import React8, { useRef as useRef4, useState as
|
|
504
|
+
import React8, { useRef as useRef4, useState as useState5, useEffect as useEffect4 } from "react";
|
|
515
505
|
import Image3 from "next/image";
|
|
516
506
|
import { HugeiconsIcon as HugeiconsIcon4 } from "@hugeicons/react";
|
|
517
507
|
import { ArrowLeft01Icon, ArrowRight01Icon, Loading03Icon as Loading03Icon2 } from "@hugeicons/core-free-icons";
|
|
518
508
|
var FeatureCard = ({ feature, bgImage }) => {
|
|
519
|
-
const [isBgLoading, setIsBgLoading] =
|
|
520
|
-
const [isFgLoading, setIsFgLoading] =
|
|
521
|
-
return /* @__PURE__ */ React8.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__ */ React8.createElement("div", { className: "relative w-full aspect-16/10 bg-neutral-
|
|
509
|
+
const [isBgLoading, setIsBgLoading] = useState5(true);
|
|
510
|
+
const [isFgLoading, setIsFgLoading] = useState5(!!feature.image);
|
|
511
|
+
return /* @__PURE__ */ React8.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__ */ React8.createElement("div", { className: "relative w-full aspect-16/10 bg-neutral-900 rounded-2xl overflow-hidden mb-6 flex items-center justify-center " }, /* @__PURE__ */ React8.createElement(
|
|
522
512
|
Image3,
|
|
523
513
|
{
|
|
524
514
|
src: bgImage,
|
|
@@ -539,7 +529,7 @@ var FeatureCard = ({ feature, bgImage }) => {
|
|
|
539
529
|
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")`
|
|
540
530
|
}
|
|
541
531
|
}
|
|
542
|
-
), isFgLoading && feature.image && /* @__PURE__ */ React8.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-neutral-
|
|
532
|
+
), isFgLoading && feature.image && /* @__PURE__ */ React8.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__ */ React8.createElement(HugeiconsIcon4, { icon: Loading03Icon2, size: 32, className: "animate-spin text-neutral-500" })), feature.image && /* @__PURE__ */ React8.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__ */ React8.createElement(
|
|
543
533
|
Image3,
|
|
544
534
|
{
|
|
545
535
|
src: feature.image,
|
|
@@ -548,16 +538,16 @@ var FeatureCard = ({ feature, bgImage }) => {
|
|
|
548
538
|
sizes: "(max-width: 768px) 90vw, 600px",
|
|
549
539
|
onLoad: () => setIsFgLoading(false),
|
|
550
540
|
className: `
|
|
551
|
-
object-cover object-top-left rounded-tl-2xl shadow-[-12px_-12px_30px_rgba(0,0,0,0.
|
|
541
|
+
object-cover object-top-left rounded-tl-2xl shadow-[-12px_-12px_30px_rgba(0,0,0,0.5)] transition-all duration-700 ease-out
|
|
552
542
|
${isFgLoading ? "opacity-0 blur-xl" : "opacity-100 blur-0"}
|
|
553
543
|
`
|
|
554
544
|
}
|
|
555
|
-
))), /* @__PURE__ */ React8.createElement("div", { className: "flex flex-col text-left pr-4" }, /* @__PURE__ */ React8.createElement("h3", { className: "
|
|
545
|
+
))), /* @__PURE__ */ React8.createElement("div", { className: "flex flex-col text-left pr-4" }, /* @__PURE__ */ React8.createElement("h3", { className: "text-xl tracking-tight text-white mb-2" }, feature.title), /* @__PURE__ */ React8.createElement("p", { className: "text-[13px] leading-relaxed text-neutral-400 max-w-[90%]" }, feature.desc)));
|
|
556
546
|
};
|
|
557
547
|
var FeatureScroll = ({ tagline, headline, features }) => {
|
|
558
548
|
const scrollRef = useRef4(null);
|
|
559
|
-
const [canScrollLeft, setCanScrollLeft] =
|
|
560
|
-
const [canScrollRight, setCanScrollRight] =
|
|
549
|
+
const [canScrollLeft, setCanScrollLeft] = useState5(false);
|
|
550
|
+
const [canScrollRight, setCanScrollRight] = useState5(true);
|
|
561
551
|
const checkScroll = () => {
|
|
562
552
|
if (scrollRef.current) {
|
|
563
553
|
const { scrollLeft, scrollWidth, clientWidth } = scrollRef.current;
|
|
@@ -565,7 +555,7 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
565
555
|
setCanScrollRight(scrollLeft < scrollWidth - clientWidth - 2);
|
|
566
556
|
}
|
|
567
557
|
};
|
|
568
|
-
|
|
558
|
+
useEffect4(() => {
|
|
569
559
|
checkScroll();
|
|
570
560
|
window.addEventListener("resize", checkScroll);
|
|
571
561
|
return () => window.removeEventListener("resize", checkScroll);
|
|
@@ -581,12 +571,12 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
581
571
|
"https://retinalabs.company/assets/images/bg_6.avif",
|
|
582
572
|
"https://retinalabs.company/assets/images/bg_1.avif"
|
|
583
573
|
];
|
|
584
|
-
return /* @__PURE__ */ React8.createElement("section", { className: "py-24 w-full flex justify-center relative z-10 overflow-hidden" }, /* @__PURE__ */ React8.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ React8.createElement("div", { className: "flex flex-col md:flex-row md:items-end justify-between gap-6 mb-12" }, /* @__PURE__ */ React8.createElement("div", { className: "relative z-10 text-left" }, /* @__PURE__ */ React8.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4" }, tagline), /* @__PURE__ */ React8.createElement("h2", { className: "
|
|
574
|
+
return /* @__PURE__ */ React8.createElement("section", { className: "py-24 w-full flex justify-center relative z-10 overflow-hidden bg-black" }, /* @__PURE__ */ React8.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ React8.createElement("div", { className: "flex flex-col md:flex-row md:items-end justify-between gap-6 mb-12" }, /* @__PURE__ */ React8.createElement("div", { className: "relative z-10 text-left" }, /* @__PURE__ */ React8.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4" }, tagline), /* @__PURE__ */ React8.createElement("h2", { className: "text-3xl tracking-tight text-white leading-[1.05]" }, headline)), /* @__PURE__ */ React8.createElement("div", { className: "hidden md:flex items-center gap-3" }, /* @__PURE__ */ React8.createElement(
|
|
585
575
|
"button",
|
|
586
576
|
{
|
|
587
577
|
onClick: () => scroll("left"),
|
|
588
578
|
disabled: !canScrollLeft,
|
|
589
|
-
className: "p-4 border border-neutral-
|
|
579
|
+
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",
|
|
590
580
|
"aria-label": "Previous feature"
|
|
591
581
|
},
|
|
592
582
|
/* @__PURE__ */ React8.createElement(HugeiconsIcon4, { icon: ArrowLeft01Icon, size: 20 })
|
|
@@ -595,7 +585,7 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
595
585
|
{
|
|
596
586
|
onClick: () => scroll("right"),
|
|
597
587
|
disabled: !canScrollRight,
|
|
598
|
-
className: "p-4 border border-neutral-
|
|
588
|
+
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",
|
|
599
589
|
"aria-label": "Next feature"
|
|
600
590
|
},
|
|
601
591
|
/* @__PURE__ */ React8.createElement(HugeiconsIcon4, { icon: ArrowRight01Icon, size: 20 })
|
|
@@ -612,7 +602,7 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
612
602
|
{
|
|
613
603
|
onClick: () => scroll("left"),
|
|
614
604
|
disabled: !canScrollLeft,
|
|
615
|
-
className: "p-4 border border-neutral-
|
|
605
|
+
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"
|
|
616
606
|
},
|
|
617
607
|
/* @__PURE__ */ React8.createElement(HugeiconsIcon4, { icon: ArrowLeft01Icon, size: 20 })
|
|
618
608
|
), /* @__PURE__ */ React8.createElement(
|
|
@@ -620,7 +610,7 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
620
610
|
{
|
|
621
611
|
onClick: () => scroll("right"),
|
|
622
612
|
disabled: !canScrollRight,
|
|
623
|
-
className: "p-4 border border-neutral-
|
|
613
|
+
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"
|
|
624
614
|
},
|
|
625
615
|
/* @__PURE__ */ React8.createElement(HugeiconsIcon4, { icon: ArrowRight01Icon, size: 20 })
|
|
626
616
|
))));
|
|
@@ -635,20 +625,20 @@ var PlatformFeatures = ({
|
|
|
635
625
|
description,
|
|
636
626
|
features
|
|
637
627
|
}) => {
|
|
638
|
-
return /* @__PURE__ */ React9.createElement("section", { className: "w-full flex justify-center mb-15 relative z-10" }, /* @__PURE__ */ React9.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ React9.createElement("div", { className: "flex flex-col items-start mb-16 relative z-10" }, /* @__PURE__ */ React9.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4" }, tagline), /* @__PURE__ */ React9.createElement("h2", { className: "text-3xl tracking-tight text-
|
|
628
|
+
return /* @__PURE__ */ React9.createElement("section", { className: "w-full flex justify-center mb-15 relative z-10 bg-black" }, /* @__PURE__ */ React9.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ React9.createElement("div", { className: "flex flex-col items-start mb-16 relative z-10" }, /* @__PURE__ */ React9.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4" }, tagline), /* @__PURE__ */ React9.createElement("h2", { className: "text-3xl tracking-tight text-white leading-[1.05] mb-6" }, headline), /* @__PURE__ */ React9.createElement("p", { className: "text-[15px] leading-[1.8] text-neutral-400 max-w-2xl" }, description)), /* @__PURE__ */ React9.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__ */ React9.createElement(
|
|
639
629
|
"div",
|
|
640
630
|
{
|
|
641
631
|
key: idx,
|
|
642
632
|
className: "flex flex-col group animate-in fade-in slide-in-from-bottom-4 duration-700 fill-mode-both",
|
|
643
633
|
style: { animationDelay: feature.delay || "0ms" }
|
|
644
634
|
},
|
|
645
|
-
/* @__PURE__ */ React9.createElement("div", { className: "flex flex-row items-center gap-4 mb-4" }, /* @__PURE__ */ React9.createElement("div", { className: "w-14 h-14 shrink-0 rounded-xl border border-neutral-
|
|
646
|
-
/* @__PURE__ */ React9.createElement("div", null, /* @__PURE__ */ React9.createElement("p", { className: "text-[13px] leading-relaxed text-neutral-
|
|
635
|
+
/* @__PURE__ */ React9.createElement("div", { className: "flex flex-row items-center gap-4 mb-4" }, /* @__PURE__ */ React9.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__ */ React9.createElement(HugeiconsIcon5, { icon: feature.icon, size: 24 })), /* @__PURE__ */ React9.createElement("div", { className: "flex flex-col justify-center" }, /* @__PURE__ */ React9.createElement("span", { className: "text-[11px] tracking-widest text-neutral-500 mb-0.5" }, feature.label || "CAPABILITY"), /* @__PURE__ */ React9.createElement("h3", { className: "text-xl tracking-tight text-white" }, feature.title))),
|
|
636
|
+
/* @__PURE__ */ React9.createElement("div", null, /* @__PURE__ */ React9.createElement("p", { className: "text-[13px] leading-relaxed text-neutral-400 pr-4" }, feature.desc))
|
|
647
637
|
)))));
|
|
648
638
|
};
|
|
649
639
|
|
|
650
640
|
// src/components/ManagedDocument.tsx
|
|
651
|
-
import React10, { useState as
|
|
641
|
+
import React10, { useState as useState6, useEffect as useEffect5, useRef as useRef5 } from "react";
|
|
652
642
|
var ManagedDocument = ({
|
|
653
643
|
tagline,
|
|
654
644
|
title,
|
|
@@ -656,9 +646,9 @@ var ManagedDocument = ({
|
|
|
656
646
|
contactText,
|
|
657
647
|
contactEmail
|
|
658
648
|
}) => {
|
|
659
|
-
const [isAnimating, setIsAnimating] =
|
|
649
|
+
const [isAnimating, setIsAnimating] = useState6(false);
|
|
660
650
|
const titleRef = useRef5(null);
|
|
661
|
-
|
|
651
|
+
useEffect5(() => {
|
|
662
652
|
const observer = new IntersectionObserver(
|
|
663
653
|
([entry]) => {
|
|
664
654
|
if (entry.isIntersecting) {
|
|
@@ -678,19 +668,19 @@ var ManagedDocument = ({
|
|
|
678
668
|
}, []);
|
|
679
669
|
return (
|
|
680
670
|
// Outer layout wrapper (takes up available space, adds padding)
|
|
681
|
-
/* @__PURE__ */ React10.createElement("div", { className: "grow pt-28 px-3 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ React10.createElement("div", { className: "relative bg-
|
|
671
|
+
/* @__PURE__ */ React10.createElement("div", { className: "grow pt-28 px-3 md:px-8 w-full flex justify-center z-10 relative bg-black" }, /* @__PURE__ */ React10.createElement("div", { className: "relative bg-neutral-900 rounded-2xl w-full max-w-7xl mx-auto overflow-hidden" }, /* @__PURE__ */ React10.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ React10.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10" }, tagline && /* @__PURE__ */ React10.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 text-left block " }, tagline), /* @__PURE__ */ React10.createElement(
|
|
682
672
|
"h1",
|
|
683
673
|
{
|
|
684
674
|
ref: titleRef,
|
|
685
|
-
className: `
|
|
675
|
+
className: `text-3xl mt-4 text-white tracking-tight text-left ${isAnimating ? "" : ""}`,
|
|
686
676
|
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
687
677
|
},
|
|
688
678
|
title
|
|
689
|
-
)), sections.map((section, index) => /* @__PURE__ */ React10.createElement("div", { key: index, className: "relative px-5 md:px-12 py-8 md:py-10" }, section.heading && /* @__PURE__ */ React10.createElement("p", { className: "
|
|
679
|
+
)), sections.map((section, index) => /* @__PURE__ */ React10.createElement("div", { key: index, className: "relative px-5 md:px-12 py-8 md:py-10" }, section.heading && /* @__PURE__ */ React10.createElement("p", { className: "text-[11px] tracking-[0.2em] text-white mb-4 text-left " }, section.heading), section.paragraphs && section.paragraphs.length > 0 && /* @__PURE__ */ React10.createElement("div", { className: "text-[14px] leading-[1.8] text-neutral-400 space-y-4 text-left font-light" }, section.paragraphs.map((text, pIndex) => /* @__PURE__ */ React10.createElement("p", { key: pIndex }, text))), section.quote && /* @__PURE__ */ React10.createElement("div", { className: `border-neutral-800 bg-neutral-950 border rounded-xl p-6 ${section.paragraphs && section.paragraphs.length > 0 ? "mt-6" : ""}` }, /* @__PURE__ */ React10.createElement("p", { className: "text-white text-[14px] md:text-[14px] leading-relaxed" }, '"', section.quote, '"')))), (contactText || contactEmail) && /* @__PURE__ */ React10.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10 pb-12 md:pb-14" }, /* @__PURE__ */ React10.createElement("p", { className: "text-[11px] text-neutral-500 text-left" }, contactText, contactEmail && /* @__PURE__ */ React10.createElement(
|
|
690
680
|
"a",
|
|
691
681
|
{
|
|
692
682
|
href: `mailto:${contactEmail}`,
|
|
693
|
-
className: "text-
|
|
683
|
+
className: "text-white decoration-neutral-600 decoration-1 underline-offset-4 ml-1 transition-colors hover:decoration-white"
|
|
694
684
|
},
|
|
695
685
|
contactEmail
|
|
696
686
|
))))))
|
|
@@ -698,11 +688,11 @@ var ManagedDocument = ({
|
|
|
698
688
|
};
|
|
699
689
|
|
|
700
690
|
// src/components/ManagedContactBlock.tsx
|
|
701
|
-
import React11, { useState as
|
|
691
|
+
import React11, { useState as useState7, useEffect as useEffect6 } from "react";
|
|
702
692
|
import { HugeiconsIcon as HugeiconsIcon6 } from "@hugeicons/react";
|
|
703
693
|
var SecureEmail = ({ user, domain, className }) => {
|
|
704
|
-
const [isMounted, setIsMounted] =
|
|
705
|
-
|
|
694
|
+
const [isMounted, setIsMounted] = useState7(false);
|
|
695
|
+
useEffect6(() => {
|
|
706
696
|
setIsMounted(true);
|
|
707
697
|
}, []);
|
|
708
698
|
if (!isMounted) {
|
|
@@ -718,7 +708,7 @@ var ManagedContactBlock = ({
|
|
|
718
708
|
emails,
|
|
719
709
|
socials
|
|
720
710
|
}) => {
|
|
721
|
-
return /* @__PURE__ */ React11.createElement("div", { className: "grow pt-28 pb-20 px-4 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ React11.createElement("div", { className: "relative bg-
|
|
711
|
+
return /* @__PURE__ */ React11.createElement("div", { className: "grow pt-28 pb-20 px-4 md:px-8 w-full flex justify-center z-10 relative bg-black" }, /* @__PURE__ */ React11.createElement("div", { className: "relative bg-neutral-900 rounded-2xl w-full max-w-7xl mx-auto overflow-hidden" }, /* @__PURE__ */ React11.createElement(
|
|
722
712
|
"div",
|
|
723
713
|
{
|
|
724
714
|
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
@@ -727,28 +717,28 @@ var ManagedContactBlock = ({
|
|
|
727
717
|
backgroundRepeat: "repeat"
|
|
728
718
|
}
|
|
729
719
|
}
|
|
730
|
-
), /* @__PURE__ */ React11.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ React11.createElement("div", { className: "relative px-8 md:px-12 py-10" }, tagline && /* @__PURE__ */ React11.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 text-left block " }, tagline), /* @__PURE__ */ React11.createElement("h1", { className: "
|
|
720
|
+
), /* @__PURE__ */ React11.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ React11.createElement("div", { className: "relative px-8 md:px-12 py-10" }, tagline && /* @__PURE__ */ React11.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 text-left block " }, tagline), /* @__PURE__ */ React11.createElement("h1", { className: "text-3xl mt-4 text-white tracking-tight text-left" }, title)), /* @__PURE__ */ React11.createElement("div", { className: "relative px-8 md:px-12 py-8 pb-14" }, /* @__PURE__ */ React11.createElement("div", { className: "flex flex-wrap gap-12 lg:gap-16 w-full" }, company && /* @__PURE__ */ React11.createElement("div", { className: "flex-1 min-w-65 space-y-6" }, /* @__PURE__ */ React11.createElement("p", { className: "text-[11px] tracking-[0.2em] text-white mb-4 " }, "Contact Details"), /* @__PURE__ */ React11.createElement("div", { className: "space-y-3 text-[13px] text-neutral-400 leading-[1.8]" }, company.name && /* @__PURE__ */ React11.createElement("p", { className: "text-white" }, company.name), company.lines && company.lines.map((line, idx) => /* @__PURE__ */ React11.createElement("p", { key: idx }, line)), company.phone && /* @__PURE__ */ React11.createElement("p", { className: "pt-2" }, /* @__PURE__ */ React11.createElement(
|
|
731
721
|
"a",
|
|
732
722
|
{
|
|
733
723
|
href: `tel:${company.phone.replace(/\s+/g, "")}`,
|
|
734
|
-
className: "transition-colors hover:text-
|
|
724
|
+
className: "transition-colors hover:text-white"
|
|
735
725
|
},
|
|
736
726
|
company.phone
|
|
737
|
-
)))), emails && emails.length > 0 && /* @__PURE__ */ React11.createElement("div", { className: "flex-1 min-w-65 space-y-6" }, /* @__PURE__ */ React11.createElement("p", { className: "text-[11px] tracking-[0.2em] text-
|
|
727
|
+
)))), emails && emails.length > 0 && /* @__PURE__ */ React11.createElement("div", { className: "flex-1 min-w-65 space-y-6" }, /* @__PURE__ */ React11.createElement("p", { className: "text-[11px] tracking-[0.2em] text-white mb-4 " }, "Email Directory"), /* @__PURE__ */ React11.createElement("div", { className: "space-y-6 text-[13px]" }, emails.map((email, idx) => /* @__PURE__ */ React11.createElement("div", { key: idx }, /* @__PURE__ */ React11.createElement("p", { className: "text-[11px] tracking-[0.2em] mb-1.5 text-neutral-500 " }, email.label), /* @__PURE__ */ React11.createElement(
|
|
738
728
|
SecureEmail,
|
|
739
729
|
{
|
|
740
730
|
user: email.user,
|
|
741
731
|
domain: email.domain,
|
|
742
|
-
className: "text-neutral-
|
|
732
|
+
className: "text-neutral-400 transition-colors hover:text-white"
|
|
743
733
|
}
|
|
744
|
-
))))), socials && socials.length > 0 && /* @__PURE__ */ React11.createElement("div", { className: "flex-1 min-w-65 space-y-6" }, /* @__PURE__ */ React11.createElement("p", { className: "text-[11px] tracking-[0.2em] text-
|
|
734
|
+
))))), socials && socials.length > 0 && /* @__PURE__ */ React11.createElement("div", { className: "flex-1 min-w-65 space-y-6" }, /* @__PURE__ */ React11.createElement("p", { className: "text-[11px] tracking-[0.2em] text-white mb-4 " }, "Find Us Online"), /* @__PURE__ */ React11.createElement("div", { className: "flex flex-col space-y-5 pt-1" }, socials.map((social, idx) => /* @__PURE__ */ React11.createElement(
|
|
745
735
|
"a",
|
|
746
736
|
{
|
|
747
737
|
key: idx,
|
|
748
738
|
href: social.href,
|
|
749
739
|
target: "_blank",
|
|
750
740
|
rel: "noopener noreferrer",
|
|
751
|
-
className: "flex items-center gap-3 transition-colors group text-neutral-
|
|
741
|
+
className: "flex items-center gap-3 transition-colors group text-neutral-400 hover:text-white",
|
|
752
742
|
"aria-label": social.label
|
|
753
743
|
},
|
|
754
744
|
/* @__PURE__ */ React11.createElement(HugeiconsIcon6, { icon: social.icon, size: 18 }),
|
|
@@ -757,21 +747,21 @@ var ManagedContactBlock = ({
|
|
|
757
747
|
};
|
|
758
748
|
|
|
759
749
|
// src/components/ManagedPricingBlock.tsx
|
|
760
|
-
import React12, { useState as
|
|
750
|
+
import React12, { useState as useState8, useEffect as useEffect7, useRef as useRef6 } from "react";
|
|
761
751
|
import Link5 from "next/link";
|
|
762
752
|
import Image4 from "next/image";
|
|
763
|
-
var CheckIcon = ({ className = "" }) => /* @__PURE__ */ React12.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__ */ React12.createElement("circle", { cx: "12", cy: "12", r: "10", fill: "
|
|
764
|
-
var CrossIcon = ({ className = "" }) => /* @__PURE__ */ React12.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__ */ React12.createElement("circle", { cx: "12", cy: "12", r: "10", fill: "#
|
|
753
|
+
var CheckIcon = ({ className = "" }) => /* @__PURE__ */ React12.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__ */ React12.createElement("circle", { cx: "12", cy: "12", r: "10", fill: "white" }), /* @__PURE__ */ React12.createElement("path", { d: "M8 12L11 15L16 9", stroke: "black", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }));
|
|
754
|
+
var CrossIcon = ({ className = "" }) => /* @__PURE__ */ React12.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__ */ React12.createElement("circle", { cx: "12", cy: "12", r: "10", fill: "#262626" }), /* @__PURE__ */ React12.createElement("path", { d: "M15 9L9 15M9 9l6 6", stroke: "#737373", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }));
|
|
765
755
|
var ManagedPricingBlock = ({
|
|
766
756
|
tagline,
|
|
767
757
|
title,
|
|
768
758
|
plans = [],
|
|
769
759
|
tabs
|
|
770
760
|
}) => {
|
|
771
|
-
const [isAnimating, setIsAnimating] =
|
|
772
|
-
const [activeTabIndex, setActiveTabIndex] =
|
|
761
|
+
const [isAnimating, setIsAnimating] = useState8(false);
|
|
762
|
+
const [activeTabIndex, setActiveTabIndex] = useState8(0);
|
|
773
763
|
const titleRef = useRef6(null);
|
|
774
|
-
|
|
764
|
+
useEffect7(() => {
|
|
775
765
|
const observer = new IntersectionObserver(
|
|
776
766
|
([entry]) => {
|
|
777
767
|
if (entry.isIntersecting) {
|
|
@@ -791,22 +781,22 @@ var ManagedPricingBlock = ({
|
|
|
791
781
|
}, []);
|
|
792
782
|
const hasTabs = tabs && tabs.length > 0;
|
|
793
783
|
const currentPlans = hasTabs ? tabs[activeTabIndex].plans : plans;
|
|
794
|
-
return /* @__PURE__ */ React12.createElement("div", { className: "grow pt-10 pb-20 px-4 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ React12.createElement("div", { className: "w-full max-w-5xl mx-auto flex flex-col items-center" }, /* @__PURE__ */ React12.createElement("div", { className: "w-full flex flex-col items-center text-center mb-10 sm:mb-12" }, tagline && /* @__PURE__ */ React12.createElement("span", { className: "text-[9px] tracking-[0.4em] text-
|
|
784
|
+
return /* @__PURE__ */ React12.createElement("div", { className: "grow pt-10 pb-20 px-4 md:px-8 w-full flex justify-center z-10 relative bg-black" }, /* @__PURE__ */ React12.createElement("div", { className: "w-full max-w-5xl mx-auto flex flex-col items-center" }, /* @__PURE__ */ React12.createElement("div", { className: "w-full flex flex-col items-center text-center mb-10 sm:mb-12" }, tagline && /* @__PURE__ */ React12.createElement("span", { className: "text-[9px] tracking-[0.4em] text-neutral-500 block" }, tagline), /* @__PURE__ */ React12.createElement(
|
|
795
785
|
"h1",
|
|
796
786
|
{
|
|
797
787
|
ref: titleRef,
|
|
798
|
-
className: `text-2xl sm:text-3xl mt-3 text-
|
|
788
|
+
className: `text-2xl sm:text-3xl mt-3 text-white tracking-tight ${isAnimating ? "" : ""}`,
|
|
799
789
|
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
800
790
|
},
|
|
801
791
|
title
|
|
802
|
-
)), hasTabs && /* @__PURE__ */ React12.createElement("div", { className: "flex items-center justify-center mb-8 sm:mb-10 w-full animate-in fade-in duration-300 px-2" }, /* @__PURE__ */ React12.createElement("div", { className: "flex items-center bg-
|
|
792
|
+
)), hasTabs && /* @__PURE__ */ React12.createElement("div", { className: "flex items-center justify-center mb-8 sm:mb-10 w-full animate-in fade-in duration-300 px-2" }, /* @__PURE__ */ React12.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) => {
|
|
803
793
|
const isActive = activeTabIndex === idx;
|
|
804
794
|
return /* @__PURE__ */ React12.createElement(
|
|
805
795
|
"button",
|
|
806
796
|
{
|
|
807
797
|
key: idx,
|
|
808
798
|
onClick: () => setActiveTabIndex(idx),
|
|
809
|
-
className: `px-4 sm:px-6 py-1.5 sm:py-2 rounded-full text-[11px] sm:text-xs transition-all duration-200 outline-none whitespace-nowrap shrink-0 ${isActive ? "bg-neutral-
|
|
799
|
+
className: `px-4 sm:px-6 py-1.5 sm:py-2 rounded-full text-[11px] sm:text-xs transition-all duration-200 outline-none whitespace-nowrap shrink-0 ${isActive ? "bg-neutral-800 text-white" : "text-neutral-500 hover:text-white hover:bg-neutral-800/50"}`
|
|
810
800
|
},
|
|
811
801
|
tab.label
|
|
812
802
|
);
|
|
@@ -814,9 +804,9 @@ var ManagedPricingBlock = ({
|
|
|
814
804
|
"div",
|
|
815
805
|
{
|
|
816
806
|
key: `${activeTabIndex}-${planIdx}`,
|
|
817
|
-
className: `bg-
|
|
807
|
+
className: `bg-neutral-900 rounded-3xl p-6 flex flex-col relative overflow-hidden transition-all duration-300 ${plan.isPremium ? "border-neutral-700" : ""}`
|
|
818
808
|
},
|
|
819
|
-
/* @__PURE__ */ React12.createElement("div", { className: "mb-6" }, /* @__PURE__ */ React12.createElement("span", { className: "text-
|
|
809
|
+
/* @__PURE__ */ React12.createElement("div", { className: "mb-6" }, /* @__PURE__ */ React12.createElement("span", { className: "text-white text-base block mb-1" }, plan.name), /* @__PURE__ */ React12.createElement("div", { className: "flex items-baseline gap-1" }, /* @__PURE__ */ React12.createElement("h3", { className: "text-3xl font-light text-white" }, plan.price), plan.period && /* @__PURE__ */ React12.createElement("span", { className: "text-xs text-neutral-500" }, plan.period)), /* @__PURE__ */ React12.createElement("p", { className: "text-xs text-neutral-400 mt-2 min-h-8" }, plan.description), plan.showApps && plan.appLogos && plan.appLogos.length > 0 && /* @__PURE__ */ React12.createElement("div", { className: "flex items-center gap-2 mt-4 opacity-90" }, plan.appLogos.map((logo, logoIdx) => /* @__PURE__ */ React12.createElement(
|
|
820
810
|
"div",
|
|
821
811
|
{
|
|
822
812
|
key: logoIdx,
|
|
@@ -829,7 +819,7 @@ var ManagedPricingBlock = ({
|
|
|
829
819
|
alt: logo.alt,
|
|
830
820
|
width: 16,
|
|
831
821
|
height: 16,
|
|
832
|
-
className: "object-contain"
|
|
822
|
+
className: "object-contain filter invert"
|
|
833
823
|
}
|
|
834
824
|
)
|
|
835
825
|
)))),
|
|
@@ -837,14 +827,14 @@ var ManagedPricingBlock = ({
|
|
|
837
827
|
Link5,
|
|
838
828
|
{
|
|
839
829
|
href: plan.ctaHref,
|
|
840
|
-
className: "w-full py-2.5 px-5 rounded-full border border-neutral-
|
|
830
|
+
className: "w-full py-2.5 px-5 rounded-full font-medium border border-neutral-700 text-center text-white text-xs hover:bg-neutral-800 hover:border-neutral-600 transition-colors mb-6 outline-none block"
|
|
841
831
|
},
|
|
842
832
|
plan.ctaText
|
|
843
833
|
),
|
|
844
834
|
/* @__PURE__ */ React12.createElement("div", { className: "flex flex-col gap-3" }, plan.features.map((feature, featureIdx) => {
|
|
845
835
|
const isAvailable = feature.value !== false;
|
|
846
836
|
const valueText = typeof feature.value === "string" ? feature.value : "";
|
|
847
|
-
return /* @__PURE__ */ React12.createElement("div", { key: featureIdx, className: "flex items-center gap-2.5
|
|
837
|
+
return /* @__PURE__ */ React12.createElement("div", { key: featureIdx, className: "flex items-center gap-2.5" }, isAvailable ? /* @__PURE__ */ React12.createElement(CheckIcon, null) : /* @__PURE__ */ React12.createElement(CrossIcon, null), /* @__PURE__ */ React12.createElement("span", { className: `text-xs truncate ${isAvailable ? "text-neutral-300" : "text-neutral-600"}` }, feature.name, valueText && /* @__PURE__ */ React12.createElement("span", { className: "text-neutral-500 ml-1" }, "(", valueText, ")")));
|
|
848
838
|
}))
|
|
849
839
|
)))));
|
|
850
840
|
};
|
|
@@ -860,7 +850,7 @@ var MemberSocialLink = ({ href, icon, label, name }) => /* @__PURE__ */ React13.
|
|
|
860
850
|
href,
|
|
861
851
|
target: "_blank",
|
|
862
852
|
rel: "noopener noreferrer",
|
|
863
|
-
className: "text-neutral-
|
|
853
|
+
className: "text-neutral-500 hover:text-white transition-colors",
|
|
864
854
|
"aria-label": `${name} on ${label}`
|
|
865
855
|
},
|
|
866
856
|
/* @__PURE__ */ React13.createElement(HugeiconsIcon7, { icon, size: 16 })
|
|
@@ -872,7 +862,7 @@ var ManagedBoardBlock = ({
|
|
|
872
862
|
contactText,
|
|
873
863
|
contactEmail
|
|
874
864
|
}) => {
|
|
875
|
-
return /* @__PURE__ */ React13.createElement("div", { className: "grow pt-28 pb-20 px-3 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ React13.createElement("div", { className: "relative w-full mx-auto overflow-hidden max-w-7xl" }, /* @__PURE__ */ React13.createElement(
|
|
865
|
+
return /* @__PURE__ */ React13.createElement("div", { className: "grow pt-28 pb-20 px-3 md:px-8 w-full flex justify-center z-10 relative bg-black" }, /* @__PURE__ */ React13.createElement("div", { className: "relative w-full mx-auto overflow-hidden max-w-7xl" }, /* @__PURE__ */ React13.createElement(
|
|
876
866
|
"div",
|
|
877
867
|
{
|
|
878
868
|
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
@@ -881,7 +871,7 @@ var ManagedBoardBlock = ({
|
|
|
881
871
|
backgroundRepeat: "repeat"
|
|
882
872
|
}
|
|
883
873
|
}
|
|
884
|
-
), /* @__PURE__ */ React13.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ React13.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10" }, tagline && /* @__PURE__ */ React13.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 text-left block " }, tagline), /* @__PURE__ */ React13.createElement("h1", { className: "
|
|
874
|
+
), /* @__PURE__ */ React13.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ React13.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10" }, tagline && /* @__PURE__ */ React13.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 text-left block " }, tagline), /* @__PURE__ */ React13.createElement("h1", { className: "text-3xl mt-4 text-white tracking-tight text-left" }, title)), /* @__PURE__ */ React13.createElement("div", { className: "relative px-5 md:px-12 py-4 md:py-8" }, /* @__PURE__ */ React13.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__ */ React13.createElement("div", { key: idx, className: "relative p-6 md:p-8 rounded-2xl bg-neutral-900 flex flex-col transition-all group" }, /* @__PURE__ */ React13.createElement("div", { className: "flex items-start space-x-4 md:space-x-5 mb-5 md:mb-6" }, /* @__PURE__ */ React13.createElement("div", { className: "relative w-14 h-14 md:w-16 md:h-16 shrink-0 bg-neutral-800 overflow-hidden rounded-xl " }, /* @__PURE__ */ React13.createElement(
|
|
885
875
|
Image5,
|
|
886
876
|
{
|
|
887
877
|
src: member.imageSrc,
|
|
@@ -890,7 +880,7 @@ var ManagedBoardBlock = ({
|
|
|
890
880
|
sizes: "(max-width: 768px) 56px, 64px",
|
|
891
881
|
className: "object-cover grayscale opacity-100 transition-opacity"
|
|
892
882
|
}
|
|
893
|
-
)), /* @__PURE__ */ React13.createElement("div", { className: "pt-1" }, /* @__PURE__ */ React13.createElement("h3", { className: "
|
|
883
|
+
)), /* @__PURE__ */ React13.createElement("div", { className: "pt-1" }, /* @__PURE__ */ React13.createElement("h3", { className: "text-[14px] md:text-[15px] text-white tracking-tight" }, member.name), /* @__PURE__ */ React13.createElement("p", { className: "text-[11px] tracking-[0.2em] text-neutral-500 mt-1.5 " }, member.title))), /* @__PURE__ */ React13.createElement("p", { className: "text-[13px] leading-[1.8] text-neutral-400 text-left grow mb-8" }, member.bio), /* @__PURE__ */ React13.createElement("div", { className: "space-y-6 mt-auto" }, /* @__PURE__ */ React13.createElement("div", { className: "w-full *:w-full" }, /* @__PURE__ */ React13.createElement(ThreeDButton, { href: member.website }, "Visit Website")), /* @__PURE__ */ React13.createElement("div", { className: "flex space-x-4 pt-5" }, member.twitterHandle && member.twitterHandle.length > 0 && /* @__PURE__ */ React13.createElement(
|
|
894
884
|
MemberSocialLink,
|
|
895
885
|
{
|
|
896
886
|
href: `https://x.com/${member.twitterHandle}`,
|
|
@@ -906,24 +896,34 @@ var ManagedBoardBlock = ({
|
|
|
906
896
|
label: "LinkedIn",
|
|
907
897
|
name: member.name
|
|
908
898
|
}
|
|
909
|
-
))))))), (contactText || contactEmail) && /* @__PURE__ */ React13.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10 pb-12 md:pb-14" }, /* @__PURE__ */ React13.createElement("p", { className: "text-[11px] text-neutral-
|
|
899
|
+
))))))), (contactText || contactEmail) && /* @__PURE__ */ React13.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10 pb-12 md:pb-14" }, /* @__PURE__ */ React13.createElement("p", { className: "text-[11px] text-neutral-500 text-left" }, contactText, contactEmail && /* @__PURE__ */ React13.createElement("a", { href: `mailto:${contactEmail}`, className: "text-white decoration-white decoration-2 underline-offset-4 ml-1 transition-colors" }, contactEmail))))));
|
|
910
900
|
};
|
|
911
901
|
|
|
912
902
|
// src/components/ManagedNotFoundBlock.tsx
|
|
913
903
|
import React14 from "react";
|
|
904
|
+
import Link6 from "next/link";
|
|
914
905
|
var ManagedNotFoundBlock = ({
|
|
915
906
|
title = "404 - Page Not Found",
|
|
916
|
-
description = "The page you are looking for does not exist or has been moved."
|
|
907
|
+
description = "The page you are looking for does not exist or has been moved.",
|
|
908
|
+
backLinkText = "Go back to Homepage",
|
|
909
|
+
backLinkHref = "/"
|
|
917
910
|
}) => {
|
|
918
|
-
return /* @__PURE__ */ React14.createElement("main", { className: "min-h-screen flex items-center justify-center relative z-20 bg-
|
|
911
|
+
return /* @__PURE__ */ React14.createElement("main", { className: "min-h-screen flex items-center justify-center relative z-20 bg-black" }, /* @__PURE__ */ React14.createElement("div", { className: "p-6 w-full max-w-md mx-auto text-center" }, /* @__PURE__ */ React14.createElement("div", { className: "mb-8 flex justify-center" }, /* @__PURE__ */ React14.createElement(
|
|
919
912
|
"svg",
|
|
920
913
|
{
|
|
921
914
|
xmlns: "http://www.w3.org/2000/svg",
|
|
922
915
|
viewBox: "0 0 24 24",
|
|
923
|
-
className: "w-12 h-12 fill-neutral-
|
|
916
|
+
className: "w-12 h-12 fill-neutral-700"
|
|
924
917
|
},
|
|
925
918
|
/* @__PURE__ */ React14.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" })
|
|
926
|
-
)), /* @__PURE__ */ React14.createElement("h1", { className: "
|
|
919
|
+
)), /* @__PURE__ */ React14.createElement("h1", { className: "text-xl md:text-3xl text-white tracking-tight mb-4" }, title), /* @__PURE__ */ React14.createElement("p", { className: "text-[13px] leading-[1.8] text-neutral-400 mb-12" }, description), /* @__PURE__ */ React14.createElement(
|
|
920
|
+
Link6,
|
|
921
|
+
{
|
|
922
|
+
href: backLinkHref,
|
|
923
|
+
className: "inline-flex items-center justify-center px-8 py-2.5 border border-neutral-800 text-white hover:bg-neutral-800 transition-colors rounded-full text-[11px] tracking-widest outline-none"
|
|
924
|
+
},
|
|
925
|
+
backLinkText
|
|
926
|
+
)));
|
|
927
927
|
};
|
|
928
928
|
|
|
929
929
|
// src/components/PageSpinner.tsx
|
|
@@ -942,7 +942,7 @@ var PageSpinner = ({
|
|
|
942
942
|
{
|
|
943
943
|
icon: Loading03Icon3,
|
|
944
944
|
size,
|
|
945
|
-
className: `animate-spin
|
|
945
|
+
className: `animate-spin mb-4 ${iconClassName}`
|
|
946
946
|
}
|
|
947
947
|
))
|
|
948
948
|
);
|
|
@@ -998,7 +998,7 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
998
998
|
ctaHref = "/contact-us",
|
|
999
999
|
children
|
|
1000
1000
|
}) => {
|
|
1001
|
-
return /* @__PURE__ */ React17.createElement("div", { className: "grow flex flex-col md:flex-row relative w-full pt-32 md:pt-0" }, /* @__PURE__ */ React17.createElement("div", { className: "hidden md:block md:w-1/2 relative min-h-screen overflow-hidden" }, /* @__PURE__ */ React17.createElement(
|
|
1001
|
+
return /* @__PURE__ */ React17.createElement("div", { className: "grow flex flex-col md:flex-row relative w-full pt-32 md:pt-0 bg-black" }, /* @__PURE__ */ React17.createElement("div", { className: "hidden md:block md:w-1/2 relative min-h-screen overflow-hidden bg-neutral-900" }, /* @__PURE__ */ React17.createElement(
|
|
1002
1002
|
Image6,
|
|
1003
1003
|
{
|
|
1004
1004
|
src: imageSrc,
|
|
@@ -1013,7 +1013,7 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
1013
1013
|
{
|
|
1014
1014
|
className: "absolute inset-0 z-10 pointer-events-none",
|
|
1015
1015
|
style: {
|
|
1016
|
-
background: "linear-gradient(to right, rgba(
|
|
1016
|
+
background: "linear-gradient(to right, rgba(0,0,0,0) 30%, #000000 100%)"
|
|
1017
1017
|
}
|
|
1018
1018
|
}
|
|
1019
1019
|
), /* @__PURE__ */ React17.createElement(
|
|
@@ -1021,7 +1021,7 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
1021
1021
|
{
|
|
1022
1022
|
className: "absolute inset-x-0 bottom-0 h-40 z-10 pointer-events-none",
|
|
1023
1023
|
style: {
|
|
1024
|
-
background: "linear-gradient(to bottom, rgba(
|
|
1024
|
+
background: "linear-gradient(to bottom, rgba(0,0,0,0) 0%, #000000 100%)"
|
|
1025
1025
|
}
|
|
1026
1026
|
}
|
|
1027
1027
|
)), /* @__PURE__ */ React17.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__ */ React17.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__ */ React17.createElement(
|
|
@@ -1033,11 +1033,11 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
1033
1033
|
backgroundRepeat: "repeat"
|
|
1034
1034
|
}
|
|
1035
1035
|
}
|
|
1036
|
-
), /* @__PURE__ */ React17.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ React17.createElement("div", { className: "mb-10 border-b border-neutral-
|
|
1036
|
+
), /* @__PURE__ */ React17.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ React17.createElement("div", { className: "mb-10 border-b border-neutral-800 pb-8 text-center md:text-left" }, tagline && /* @__PURE__ */ React17.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500" }, tagline), /* @__PURE__ */ React17.createElement("h1", { className: "text-3xl mt-4 text-white tracking-tight mb-4" }, title), subtitle && /* @__PURE__ */ React17.createElement("p", { className: "text-[11px] tracking-[0.2em] text-neutral-500" }, subtitle)), /* @__PURE__ */ React17.createElement("p", { className: "text-[13px] leading-[1.8] text-neutral-400 mb-10 text-center md:text-left" }, description), children && /* @__PURE__ */ React17.createElement("div", { className: "mb-8 text-left" }, children), /* @__PURE__ */ React17.createElement("div", { className: "text-center md:text-left mt-10 space-y-6" }, dividerText && /* @__PURE__ */ React17.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ React17.createElement("div", { className: "grow h-px bg-neutral-800" }), /* @__PURE__ */ React17.createElement("span", { className: "shrink mx-4 text-[11px] tracking-[0.2em] text-neutral-600" }, dividerText), /* @__PURE__ */ React17.createElement("div", { className: "grow h-px bg-neutral-800" })), ctaText && ctaHref && /* @__PURE__ */ React17.createElement("div", { className: "w-full *:w-full" }, /* @__PURE__ */ React17.createElement(
|
|
1037
1037
|
ThreeDButton,
|
|
1038
1038
|
{
|
|
1039
1039
|
href: ctaHref,
|
|
1040
|
-
className: "py-
|
|
1040
|
+
className: "py-2.5 tracking-widest text-[11px]"
|
|
1041
1041
|
},
|
|
1042
1042
|
ctaText
|
|
1043
1043
|
)))))));
|
|
@@ -1055,7 +1055,7 @@ var TextInput = ({
|
|
|
1055
1055
|
readOnly,
|
|
1056
1056
|
type = "text",
|
|
1057
1057
|
onClick
|
|
1058
|
-
}) => /* @__PURE__ */ React18.createElement("div", { className: "space-y-2 flex-1 w-full", onClick }, label && /* @__PURE__ */ React18.createElement("label", { className: "text-[11px] text-neutral-
|
|
1058
|
+
}) => /* @__PURE__ */ React18.createElement("div", { className: "space-y-2 flex-1 w-full", onClick }, label && /* @__PURE__ */ React18.createElement("label", { className: "text-[11px] text-neutral-500 tracking-[0.2em] block " }, label), /* @__PURE__ */ React18.createElement(
|
|
1059
1059
|
"input",
|
|
1060
1060
|
{
|
|
1061
1061
|
type,
|
|
@@ -1066,7 +1066,7 @@ var TextInput = ({
|
|
|
1066
1066
|
readOnly,
|
|
1067
1067
|
autoComplete: "off",
|
|
1068
1068
|
spellCheck: "false",
|
|
1069
|
-
className: `w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-
|
|
1069
|
+
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" : ""}`
|
|
1070
1070
|
}
|
|
1071
1071
|
));
|
|
1072
1072
|
var NumberInput = ({
|
|
@@ -1076,7 +1076,7 @@ var NumberInput = ({
|
|
|
1076
1076
|
placeholder,
|
|
1077
1077
|
maxLength,
|
|
1078
1078
|
disabled
|
|
1079
|
-
}) => /* @__PURE__ */ React18.createElement("div", { className: "space-y-2 flex-1 w-full" }, label && /* @__PURE__ */ React18.createElement("label", { className: "text-[11px] text-neutral-
|
|
1079
|
+
}) => /* @__PURE__ */ React18.createElement("div", { className: "space-y-2 flex-1 w-full" }, label && /* @__PURE__ */ React18.createElement("label", { className: "text-[11px] text-neutral-500 tracking-[0.2em] block " }, label), /* @__PURE__ */ React18.createElement(
|
|
1080
1080
|
"input",
|
|
1081
1081
|
{
|
|
1082
1082
|
type: "text",
|
|
@@ -1089,19 +1089,19 @@ var NumberInput = ({
|
|
|
1089
1089
|
disabled,
|
|
1090
1090
|
autoComplete: "off",
|
|
1091
1091
|
spellCheck: "false",
|
|
1092
|
-
className: "w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-
|
|
1092
|
+
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"
|
|
1093
1093
|
}
|
|
1094
1094
|
));
|
|
1095
1095
|
|
|
1096
1096
|
// src/components/PortfolioHero.tsx
|
|
1097
|
-
import React19, { useEffect as
|
|
1098
|
-
import
|
|
1097
|
+
import React19, { useEffect as useEffect8, useRef as useRef7 } from "react";
|
|
1098
|
+
import Link7 from "next/link";
|
|
1099
1099
|
import Image7 from "next/image";
|
|
1100
1100
|
import { HugeiconsIcon as HugeiconsIcon9 } from "@hugeicons/react";
|
|
1101
1101
|
import { ArrowRight01Icon as ArrowRight01Icon2 } from "@hugeicons/core-free-icons";
|
|
1102
1102
|
var useScrollAnimation = () => {
|
|
1103
1103
|
const elementRef = useRef7(null);
|
|
1104
|
-
|
|
1104
|
+
useEffect8(() => {
|
|
1105
1105
|
const el = elementRef.current;
|
|
1106
1106
|
if (!el) return;
|
|
1107
1107
|
const observer = new IntersectionObserver(
|
|
@@ -1137,13 +1137,13 @@ var PortfolioHero = ({
|
|
|
1137
1137
|
secondaryCtaHref
|
|
1138
1138
|
}) => {
|
|
1139
1139
|
const heroContentRef = useScrollAnimation();
|
|
1140
|
-
return /* @__PURE__ */ React19.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" }, /* @__PURE__ */ React19.createElement(
|
|
1140
|
+
return /* @__PURE__ */ React19.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__ */ React19.createElement(
|
|
1141
1141
|
"div",
|
|
1142
1142
|
{
|
|
1143
1143
|
ref: heroContentRef,
|
|
1144
1144
|
className: "w-full opacity-0 translate-y-5 transition-all duration-1000 ease-out relative z-10"
|
|
1145
1145
|
},
|
|
1146
|
-
/* @__PURE__ */ React19.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center gap-5 sm:gap-8 mb-10" }, /* @__PURE__ */ React19.createElement("div", { className: "relative w-20 h-20 sm:w-32 sm:h-32 rounded-full overflow-hidden
|
|
1146
|
+
/* @__PURE__ */ React19.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center gap-5 sm:gap-8 mb-10" }, /* @__PURE__ */ React19.createElement("div", { className: "relative w-20 h-20 sm:w-32 sm:h-32 rounded-full overflow-hidden shrink-0 shadow-sm" }, /* @__PURE__ */ React19.createElement(
|
|
1147
1147
|
Image7,
|
|
1148
1148
|
{
|
|
1149
1149
|
src: imageSrc,
|
|
@@ -1154,29 +1154,29 @@ var PortfolioHero = ({
|
|
|
1154
1154
|
sizes: "(max-width: 640px) 80px, 128px",
|
|
1155
1155
|
quality: 100
|
|
1156
1156
|
}
|
|
1157
|
-
)), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col text-left" }, /* @__PURE__ */ React19.createElement("h1", { className: "
|
|
1157
|
+
)), /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col text-left" }, /* @__PURE__ */ React19.createElement("h1", { className: "text-3xl sm:text-5xl lg:text-6xl tracking-tight text-white leading-none mb-3" }, name), socialLabel && /* @__PURE__ */ React19.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-500" }, socialLabel), socialLinkText && socialLinkHref && /* @__PURE__ */ React19.createElement(
|
|
1158
1158
|
"a",
|
|
1159
1159
|
{
|
|
1160
1160
|
href: socialLinkHref,
|
|
1161
1161
|
target: "_blank",
|
|
1162
1162
|
rel: "noopener noreferrer",
|
|
1163
|
-
className: "text-[11px] md:text-[14px] text-
|
|
1163
|
+
className: "text-[11px] md:text-[14px] text-neutral-300 hover:text-white transition-colors mt-1 underline underline-offset-4 decoration-neutral-700 hover:decoration-white"
|
|
1164
1164
|
},
|
|
1165
1165
|
socialLinkText
|
|
1166
1166
|
))),
|
|
1167
|
-
/* @__PURE__ */ React19.createElement("p", { className: "text-[13px]
|
|
1167
|
+
/* @__PURE__ */ React19.createElement("p", { className: "text-[13px] leading-[1.8] max-w-4xl mb-12 text-neutral-400" }, bio),
|
|
1168
1168
|
/* @__PURE__ */ React19.createElement("div", { className: "flex flex-col sm:flex-row gap-4 w-full sm:w-auto" }, primaryCtaText && primaryCtaHref && /* @__PURE__ */ React19.createElement("div", { className: "w-full sm:w-auto *:w-full" }, /* @__PURE__ */ React19.createElement(
|
|
1169
1169
|
ThreeDButton,
|
|
1170
1170
|
{
|
|
1171
1171
|
href: primaryCtaHref,
|
|
1172
|
-
className: "py-
|
|
1172
|
+
className: "py-2.5 tracking-widest text-[11px]"
|
|
1173
1173
|
},
|
|
1174
1174
|
primaryCtaText
|
|
1175
1175
|
)), secondaryCtaText && secondaryCtaHref && /* @__PURE__ */ React19.createElement(
|
|
1176
|
-
|
|
1176
|
+
Link7,
|
|
1177
1177
|
{
|
|
1178
1178
|
href: secondaryCtaHref,
|
|
1179
|
-
className: "w-full sm:w-auto inline-flex items-center justify-center gap-3 text-[11px] tracking-[0.2em]
|
|
1179
|
+
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"
|
|
1180
1180
|
},
|
|
1181
1181
|
secondaryCtaText,
|
|
1182
1182
|
/* @__PURE__ */ React19.createElement(HugeiconsIcon9, { icon: ArrowRight01Icon2, size: 16 })
|
|
@@ -1185,7 +1185,7 @@ var PortfolioHero = ({
|
|
|
1185
1185
|
};
|
|
1186
1186
|
|
|
1187
1187
|
// src/components/GifFeatureCard.tsx
|
|
1188
|
-
import React20, { useState as
|
|
1188
|
+
import React20, { useState as useState9 } from "react";
|
|
1189
1189
|
import Image8 from "next/image";
|
|
1190
1190
|
import { HugeiconsIcon as HugeiconsIcon10 } from "@hugeicons/react";
|
|
1191
1191
|
import { Loading03Icon as Loading03Icon4 } from "@hugeicons/core-free-icons";
|
|
@@ -1196,8 +1196,8 @@ var GifFeatureCard = ({
|
|
|
1196
1196
|
alt = "Feature animation",
|
|
1197
1197
|
className = "aspect-video"
|
|
1198
1198
|
}) => {
|
|
1199
|
-
const [isLoading, setIsLoading] =
|
|
1200
|
-
return /* @__PURE__ */ React20.createElement("div", { className: `relative w-full bg-black
|
|
1199
|
+
const [isLoading, setIsLoading] = useState9(true);
|
|
1200
|
+
return /* @__PURE__ */ React20.createElement("div", { className: `relative w-full bg-black overflow-hidden shadow-2xl ${className}` }, isLoading && /* @__PURE__ */ React20.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-black" }, /* @__PURE__ */ React20.createElement(
|
|
1201
1201
|
HugeiconsIcon10,
|
|
1202
1202
|
{
|
|
1203
1203
|
icon: Loading03Icon4,
|
|
@@ -1225,11 +1225,11 @@ var GifFeatureCard = ({
|
|
|
1225
1225
|
{
|
|
1226
1226
|
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"
|
|
1227
1227
|
}
|
|
1228
|
-
), /* @__PURE__ */ React20.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__ */ React20.createElement("h3", { className: "
|
|
1228
|
+
), /* @__PURE__ */ React20.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__ */ React20.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__ */ React20.createElement("p", { className: "text-[13px] sm:text-[15px] leading-relaxed text-neutral-300 max-w-2xl drop-shadow-sm" }, subtitle)));
|
|
1229
1229
|
};
|
|
1230
1230
|
|
|
1231
1231
|
// src/components/MedicalFeatureStatsBlock.tsx
|
|
1232
|
-
import React21, { useState as
|
|
1232
|
+
import React21, { useState as useState10, useEffect as useEffect9, useRef as useRef8 } from "react";
|
|
1233
1233
|
import Image9 from "next/image";
|
|
1234
1234
|
var MedicalFeatureStatsBlock = ({
|
|
1235
1235
|
bottomHeadline,
|
|
@@ -1238,9 +1238,9 @@ var MedicalFeatureStatsBlock = ({
|
|
|
1238
1238
|
trustText,
|
|
1239
1239
|
stats
|
|
1240
1240
|
}) => {
|
|
1241
|
-
const [isAnimating, setIsAnimating] =
|
|
1241
|
+
const [isAnimating, setIsAnimating] = useState10(false);
|
|
1242
1242
|
const titleRef = useRef8(null);
|
|
1243
|
-
|
|
1243
|
+
useEffect9(() => {
|
|
1244
1244
|
const observer = new IntersectionObserver(
|
|
1245
1245
|
([entry]) => {
|
|
1246
1246
|
if (entry.isIntersecting) {
|
|
@@ -1258,15 +1258,15 @@ var MedicalFeatureStatsBlock = ({
|
|
|
1258
1258
|
}
|
|
1259
1259
|
return () => observer.disconnect();
|
|
1260
1260
|
}, []);
|
|
1261
|
-
return /* @__PURE__ */ React21.createElement("section", { className: "py-24 w-full flex justify-center relative z-10" }, /* @__PURE__ */ React21.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-10 mb-12" }, /* @__PURE__ */ React21.createElement("div", { className: "max-w-xl" }, /* @__PURE__ */ React21.createElement(
|
|
1261
|
+
return /* @__PURE__ */ React21.createElement("section", { className: "py-24 w-full flex justify-center relative z-10 bg-black" }, /* @__PURE__ */ React21.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-10 mb-12" }, /* @__PURE__ */ React21.createElement("div", { className: "max-w-xl" }, /* @__PURE__ */ React21.createElement(
|
|
1262
1262
|
"h2",
|
|
1263
1263
|
{
|
|
1264
1264
|
ref: titleRef,
|
|
1265
|
-
className: `text-3xl text-
|
|
1265
|
+
className: `text-3xl text-white tracking-tight leading-[1.1] mb-5 ${isAnimating ? "" : ""}`,
|
|
1266
1266
|
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
1267
1267
|
},
|
|
1268
1268
|
bottomHeadline
|
|
1269
|
-
), /* @__PURE__ */ React21.createElement("p", { className: "text-[14px] leading-relaxed text-neutral-
|
|
1269
|
+
), /* @__PURE__ */ React21.createElement("p", { className: "text-[14px] leading-relaxed text-neutral-400" }, bottomDescription)), /* @__PURE__ */ React21.createElement("div", { className: "flex items-center gap-4 shrink-0" }, /* @__PURE__ */ React21.createElement("div", { className: "flex -space-x-3" }, avatars.map((src, i) => /* @__PURE__ */ React21.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__ */ React21.createElement(
|
|
1270
1270
|
Image9,
|
|
1271
1271
|
{
|
|
1272
1272
|
src,
|
|
@@ -1275,17 +1275,17 @@ var MedicalFeatureStatsBlock = ({
|
|
|
1275
1275
|
sizes: "48px",
|
|
1276
1276
|
className: "object-cover"
|
|
1277
1277
|
}
|
|
1278
|
-
)))), /* @__PURE__ */ React21.createElement("p", { className: "text-[11px] text-neutral-
|
|
1278
|
+
)))), /* @__PURE__ */ React21.createElement("p", { className: "text-[11px] text-neutral-400 leading-[1.4] max-w-55" }, trustText))), /* @__PURE__ */ React21.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6" }, stats.map((stat, idx) => /* @__PURE__ */ React21.createElement("div", { key: idx, className: "bg-neutral-900 rounded-4xl p-8 md:p-10 flex flex-col h-70" }, /* @__PURE__ */ React21.createElement("div", { className: "flex items-center p-0.5 mb-6" }, /* @__PURE__ */ React21.createElement("span", { className: "text-[14px] text-neutral-400 tracking-wide" }, stat.label)), /* @__PURE__ */ React21.createElement("div", { className: "text-6xl gradient-text md:text-[80px] font-light tracking-tighter text-white mt-auto leading-none" }, stat.value))))));
|
|
1279
1279
|
};
|
|
1280
1280
|
|
|
1281
1281
|
// src/components/ConsultantShowcase.tsx
|
|
1282
|
-
import React22, { useState as
|
|
1282
|
+
import React22, { useState as useState11 } from "react";
|
|
1283
1283
|
import Image10 from "next/image";
|
|
1284
1284
|
import { HugeiconsIcon as HugeiconsIcon11 } from "@hugeicons/react";
|
|
1285
1285
|
import { Loading03Icon as Loading03Icon5 } from "@hugeicons/core-free-icons";
|
|
1286
1286
|
var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
|
|
1287
|
-
const [isLoading, setIsLoading] =
|
|
1288
|
-
return /* @__PURE__ */ React22.createElement("div", { className: `absolute inset-0 bg-neutral-
|
|
1287
|
+
const [isLoading, setIsLoading] = useState11(true);
|
|
1288
|
+
return /* @__PURE__ */ React22.createElement("div", { className: `absolute inset-0 bg-neutral-900 ${className}` }, isLoading && /* @__PURE__ */ React22.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__ */ React22.createElement(HugeiconsIcon11, { icon: Loading03Icon5, size: 24, className: "animate-spin text-white/50" })), /* @__PURE__ */ React22.createElement(
|
|
1289
1289
|
Image10,
|
|
1290
1290
|
{
|
|
1291
1291
|
src,
|
|
@@ -1304,9 +1304,9 @@ var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
|
|
|
1304
1304
|
var ConsultantShowcase = ({
|
|
1305
1305
|
profiles
|
|
1306
1306
|
}) => {
|
|
1307
|
-
const [currentIndex, setCurrentIndex] =
|
|
1308
|
-
const [touchStart, setTouchStart] =
|
|
1309
|
-
const [touchEnd, setTouchEnd] =
|
|
1307
|
+
const [currentIndex, setCurrentIndex] = useState11(0);
|
|
1308
|
+
const [touchStart, setTouchStart] = useState11(null);
|
|
1309
|
+
const [touchEnd, setTouchEnd] = useState11(null);
|
|
1310
1310
|
const nextSlide = () => {
|
|
1311
1311
|
setCurrentIndex((prev) => prev === profiles.length - 1 ? 0 : prev + 1);
|
|
1312
1312
|
};
|
|
@@ -1331,10 +1331,10 @@ var ConsultantShowcase = ({
|
|
|
1331
1331
|
}
|
|
1332
1332
|
};
|
|
1333
1333
|
if (!profiles || profiles.length === 0) return null;
|
|
1334
|
-
return /* @__PURE__ */ React22.createElement("section", { className: "py-24 w-full flex justify-center px-4 md:px-8 z-10 relative" }, /* @__PURE__ */ React22.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ React22.createElement(
|
|
1334
|
+
return /* @__PURE__ */ React22.createElement("section", { className: "py-24 w-full flex justify-center px-4 md:px-8 z-10 relative bg-black" }, /* @__PURE__ */ React22.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ React22.createElement(
|
|
1335
1335
|
"div",
|
|
1336
1336
|
{
|
|
1337
|
-
className: "relative w-full h-100 md:h-112.5 rounded-4xl overflow-hidden bg-neutral-900
|
|
1337
|
+
className: "relative w-full h-100 md:h-112.5 rounded-4xl overflow-hidden bg-neutral-900 group select-none",
|
|
1338
1338
|
onTouchStart,
|
|
1339
1339
|
onTouchMove,
|
|
1340
1340
|
onTouchEnd
|
|
@@ -1355,9 +1355,9 @@ var ConsultantShowcase = ({
|
|
|
1355
1355
|
priority: idx === 0
|
|
1356
1356
|
}
|
|
1357
1357
|
),
|
|
1358
|
-
/* @__PURE__ */ React22.createElement("div", { className: "absolute inset-0 bg-black/
|
|
1359
|
-
/* @__PURE__ */ React22.createElement("div", { className: "absolute top-0 left-0 w-full h-[60%] bg-linear-to-b from-black/80 via-black/
|
|
1360
|
-
/* @__PURE__ */ React22.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__ */ React22.createElement("h2", { className: "text-[29px]
|
|
1358
|
+
/* @__PURE__ */ React22.createElement("div", { className: "absolute inset-0 bg-black/40 z-10 pointer-events-none" }),
|
|
1359
|
+
/* @__PURE__ */ React22.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" }),
|
|
1360
|
+
/* @__PURE__ */ React22.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__ */ React22.createElement("h2", { className: "text-[29px] tracking-tight mb-2 leading-none" }, profile.name), /* @__PURE__ */ React22.createElement("div", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ React22.createElement("p", { className: "text-[15px] text-neutral-300 font-light tracking-wide" }, profile.role), profile.description && /* @__PURE__ */ React22.createElement("p", { className: "text-[15px] text-neutral-400 font-light tracking-wide mt-1" }, profile.description)))
|
|
1361
1361
|
);
|
|
1362
1362
|
}),
|
|
1363
1363
|
/* @__PURE__ */ React22.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" }),
|
|
@@ -1375,7 +1375,7 @@ var ConsultantShowcase = ({
|
|
|
1375
1375
|
};
|
|
1376
1376
|
|
|
1377
1377
|
// src/components/ContentGridBlock.tsx
|
|
1378
|
-
import React23, { useState as
|
|
1378
|
+
import React23, { useState as useState12 } from "react";
|
|
1379
1379
|
import Image11 from "next/image";
|
|
1380
1380
|
import { HugeiconsIcon as HugeiconsIcon12 } from "@hugeicons/react";
|
|
1381
1381
|
import { Loading03Icon as Loading03Icon6 } from "@hugeicons/core-free-icons";
|
|
@@ -1386,12 +1386,12 @@ var ContentGridBlock = ({
|
|
|
1386
1386
|
middleBottomCard,
|
|
1387
1387
|
rightCards
|
|
1388
1388
|
}) => {
|
|
1389
|
-
return /* @__PURE__ */ React23.createElement("section", { className: "
|
|
1389
|
+
return /* @__PURE__ */ React23.createElement("section", { className: "w-full flex justify-center z-10 relative bg-black" }, /* @__PURE__ */ React23.createElement("div", { className: "max-w-300 w-full px-4 md:px-8 flex flex-col gap-12" }, /* @__PURE__ */ React23.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-6 w-full" }, /* @__PURE__ */ React23.createElement("h2", { className: "text-3xl tracking-tight text-white leading-[1.15] max-w-lg" }, header.titlePrefix, " ", /* @__PURE__ */ React23.createElement("span", { className: "gradient-text" }, header.highlightText))), /* @__PURE__ */ React23.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" }, /* @__PURE__ */ React23.createElement("div", { className: "flex flex-col justify-end" }, /* @__PURE__ */ React23.createElement("div", { className: "bg-neutral-900 rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ React23.createElement("p", { className: "text-[17px] text-white leading-snug mb-4" }, leftCard.mainText), leftCard.tag && /* @__PURE__ */ React23.createElement("span", { className: "mb-auto text-[11px] text-neutral-400 tracking-widest" }, leftCard.tag), /* @__PURE__ */ React23.createElement("div", { className: "flex items-center justify-between mt-8" }, /* @__PURE__ */ React23.createElement("div", null, /* @__PURE__ */ React23.createElement("h4", { className: "text-[15px] text-white" }, leftCard.title), /* @__PURE__ */ React23.createElement("p", { className: "text-[13px] text-neutral-400" }, leftCard.subtitle)), /* @__PURE__ */ React23.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ React23.createElement(Image11, { src: leftCard.thumbnailSrc, alt: leftCard.title, fill: true, className: "object-cover" }))))), /* @__PURE__ */ React23.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React23.createElement("div", { className: "border border-neutral-800 rounded-3xl p-8 flex flex-col relative h-75" }, /* @__PURE__ */ React23.createElement("div", { className: "absolute top-6 right-6 flex flex-col items-end gap-1" }, /* @__PURE__ */ React23.createElement("span", { className: "text-[11px] text-neutral-500 tracking-wide" }, middleTopCard.topRightLabel), /* @__PURE__ */ React23.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React23.createElement("div", { className: "flex -space-x-2" }, middleTopCard.topRightAvatars.map((src, i) => /* @__PURE__ */ React23.createElement("div", { key: i, className: "w-7 h-7 rounded-full border-2 border-black overflow-hidden relative z-10" }, /* @__PURE__ */ React23.createElement(Image11, { src, alt: "Avatar", fill: true, className: "object-cover", sizes: "28px" })))), /* @__PURE__ */ React23.createElement("span", { className: "text-sm text-neutral-400" }, middleTopCard.topRightCount))), /* @__PURE__ */ React23.createElement("div", { className: "grow flex flex-col justify-center items-center py-6" }, /* @__PURE__ */ React23.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__ */ React23.createElement("span", { className: "text-white" }, middleTopCard.badgeHighlight), middleTopCard.badgeSuffix)), /* @__PURE__ */ React23.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ React23.createElement("p", { className: "text-[11px] text-neutral-500 tracking-wide mb-1" }, middleTopCard.title), /* @__PURE__ */ React23.createElement("p", { className: "text-[14px] text-white leading-snug pr-4" }, middleTopCard.description))), /* @__PURE__ */ React23.createElement("div", { className: "border border-neutral-800 rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ React23.createElement("div", { className: "flex justify-between items-start mb-6" }, /* @__PURE__ */ React23.createElement("div", null, /* @__PURE__ */ React23.createElement("h4", { className: "text-[15px] text-white leading-tight" }, middleBottomCard.title), /* @__PURE__ */ React23.createElement("p", { className: "text-[13px] text-neutral-500" }, middleBottomCard.subtitle)), /* @__PURE__ */ React23.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ React23.createElement(Image11, { src: middleBottomCard.thumbnailSrc, alt: middleBottomCard.title, fill: true, className: "object-cover" }))), /* @__PURE__ */ React23.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ React23.createElement("p", { className: "text-[16px] text-white leading-snug mb-4" }, middleBottomCard.mainText), middleBottomCard.tag && /* @__PURE__ */ React23.createElement("span", { className: "text-[11px] text-neutral-500 tracking-widest" }, middleBottomCard.tag)))), /* @__PURE__ */ React23.createElement("div", { className: "flex flex-col gap-6" }, rightCards.slice(0, 2).map((card, idx) => /* @__PURE__ */ React23.createElement("div", { key: idx, className: "relative w-full h-80 bg-neutral-900 text-white rounded-3xl overflow-hidden group" }, /* @__PURE__ */ React23.createElement("div", { className: "absolute inset-0 z-20 pointer-events-none" }), /* @__PURE__ */ React23.createElement("div", { className: "absolute inset-0 z-30 p-6 flex flex-col justify-end text-white" }, /* @__PURE__ */ React23.createElement("p", { className: "text-[14px] leading-snug mb-3 pr-2 text-white/90" }, card.mainText), card.tag && /* @__PURE__ */ React23.createElement("span", { className: "mb-4 text-[11px] text-white/50 tracking-widest" }, card.tag), /* @__PURE__ */ React23.createElement("div", { className: "pt-3" }, /* @__PURE__ */ React23.createElement("h4", { className: "text-[15px] tracking-wide" }, card.title), /* @__PURE__ */ React23.createElement("p", { className: "text-[13px] text-white/60" }, card.subtitle)))))))));
|
|
1390
1390
|
};
|
|
1391
1391
|
|
|
1392
1392
|
// src/components/ManagedProjectsBlock.tsx
|
|
1393
1393
|
import React24 from "react";
|
|
1394
|
-
import
|
|
1394
|
+
import Link8 from "next/link";
|
|
1395
1395
|
var GridSection = ({
|
|
1396
1396
|
children,
|
|
1397
1397
|
isLast = false,
|
|
@@ -1402,7 +1402,7 @@ var ManagedProjectsBlock = ({
|
|
|
1402
1402
|
title,
|
|
1403
1403
|
projects
|
|
1404
1404
|
}) => {
|
|
1405
|
-
return /* @__PURE__ */ React24.createElement("div", { className: "grow pt-28 pb-20 px-3 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ React24.createElement("div", { className: "relative bg-
|
|
1405
|
+
return /* @__PURE__ */ React24.createElement("div", { className: "grow pt-28 pb-20 px-3 md:px-8 w-full flex justify-center z-10 relative bg-black" }, /* @__PURE__ */ React24.createElement("div", { className: "relative bg-neutral-900 rounded-2xl w-full max-w-5xl mx-auto overflow-hidden shadow-2xl" }, /* @__PURE__ */ React24.createElement(
|
|
1406
1406
|
"div",
|
|
1407
1407
|
{
|
|
1408
1408
|
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
@@ -1411,12 +1411,101 @@ var ManagedProjectsBlock = ({
|
|
|
1411
1411
|
backgroundRepeat: "repeat"
|
|
1412
1412
|
}
|
|
1413
1413
|
}
|
|
1414
|
-
), /* @__PURE__ */ React24.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ React24.createElement(GridSection, null, tagline && /* @__PURE__ */ React24.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 text-left block
|
|
1414
|
+
), /* @__PURE__ */ React24.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ React24.createElement(GridSection, null, tagline && /* @__PURE__ */ React24.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 text-left block" }, tagline), /* @__PURE__ */ React24.createElement("h1", { className: "text-3xl mt-4 text-white tracking-tight text-left" }, title)), projects.map((project, index) => {
|
|
1415
1415
|
const isLast = index === projects.length - 1;
|
|
1416
|
-
const projectContent = /* @__PURE__ */ React24.createElement("div", { className: "group block w-full" }, /* @__PURE__ */ React24.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__ */ React24.createElement("div", { className: "flex items-center gap-3 md:gap-4" }, /* @__PURE__ */ React24.createElement("h2", { className: "
|
|
1417
|
-
return /* @__PURE__ */ React24.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__ */ React24.createElement("a", { href: project.link, target: "_blank", rel: "noopener noreferrer", className: "block outline-none" }, projectContent) : /* @__PURE__ */ React24.createElement(
|
|
1416
|
+
const projectContent = /* @__PURE__ */ React24.createElement("div", { className: "group block w-full" }, /* @__PURE__ */ React24.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__ */ React24.createElement("div", { className: "flex items-center gap-3 md:gap-4" }, /* @__PURE__ */ React24.createElement("h2", { className: "text-[16px] text-white transition-all flex items-center gap-2" }, project.title, /* @__PURE__ */ React24.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__ */ React24.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__ */ React24.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-500 shrink-0" }, project.date)), /* @__PURE__ */ React24.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));
|
|
1417
|
+
return /* @__PURE__ */ React24.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__ */ React24.createElement("a", { href: project.link, target: "_blank", rel: "noopener noreferrer", className: "block outline-none" }, projectContent) : /* @__PURE__ */ React24.createElement(Link8, { href: project.link, className: "block outline-none" }, projectContent));
|
|
1418
1418
|
}))));
|
|
1419
1419
|
};
|
|
1420
|
+
|
|
1421
|
+
// src/components/WaitlistDialog.tsx
|
|
1422
|
+
import React25, { useState as useState13 } from "react";
|
|
1423
|
+
import { toast } from "react-hot-toast";
|
|
1424
|
+
var WaitlistDialog = ({ isOpen, onClose }) => {
|
|
1425
|
+
const [email, setEmail] = useState13("");
|
|
1426
|
+
const [isLoading, setIsLoading] = useState13(false);
|
|
1427
|
+
if (!isOpen) return null;
|
|
1428
|
+
const handleSubmit = async (e) => {
|
|
1429
|
+
e.preventDefault();
|
|
1430
|
+
if (!email || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
|
|
1431
|
+
toast.error("Please enter a valid email address.");
|
|
1432
|
+
return;
|
|
1433
|
+
}
|
|
1434
|
+
setIsLoading(true);
|
|
1435
|
+
try {
|
|
1436
|
+
const response = await fetch("/api/waitlist", {
|
|
1437
|
+
method: "POST",
|
|
1438
|
+
headers: {
|
|
1439
|
+
"Content-Type": "application/json"
|
|
1440
|
+
},
|
|
1441
|
+
body: JSON.stringify({ email })
|
|
1442
|
+
});
|
|
1443
|
+
const data = await response.json();
|
|
1444
|
+
if (response.ok && data.success) {
|
|
1445
|
+
toast.success(data.message || "You've been added to the waitlist!");
|
|
1446
|
+
setEmail("");
|
|
1447
|
+
onClose();
|
|
1448
|
+
} else {
|
|
1449
|
+
toast.error(data.error || "Something went wrong. Please try again.");
|
|
1450
|
+
}
|
|
1451
|
+
} catch (error) {
|
|
1452
|
+
toast.error("Network error. Please check your connection.");
|
|
1453
|
+
} finally {
|
|
1454
|
+
setIsLoading(false);
|
|
1455
|
+
}
|
|
1456
|
+
};
|
|
1457
|
+
return /* @__PURE__ */ React25.createElement("div", { className: "fixed inset-0 z-100 flex items-center justify-center p-4 bg-black/60 " }, /* @__PURE__ */ React25.createElement("div", { className: "absolute inset-0", onClick: !isLoading ? onClose : void 0 }), /* @__PURE__ */ React25.createElement(
|
|
1458
|
+
"div",
|
|
1459
|
+
{
|
|
1460
|
+
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"
|
|
1461
|
+
},
|
|
1462
|
+
/* @__PURE__ */ React25.createElement(
|
|
1463
|
+
"button",
|
|
1464
|
+
{
|
|
1465
|
+
onClick: onClose,
|
|
1466
|
+
disabled: isLoading,
|
|
1467
|
+
className: "absolute top-4 right-4 p-2 text-neutral-500 hover:text-white transition-colors disabled:opacity-50 outline-none",
|
|
1468
|
+
"aria-label": "Close dialog"
|
|
1469
|
+
},
|
|
1470
|
+
/* @__PURE__ */ React25.createElement(
|
|
1471
|
+
"svg",
|
|
1472
|
+
{
|
|
1473
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1474
|
+
width: "20",
|
|
1475
|
+
height: "20",
|
|
1476
|
+
viewBox: "0 0 24 24",
|
|
1477
|
+
fill: "none",
|
|
1478
|
+
stroke: "currentColor",
|
|
1479
|
+
strokeWidth: "2",
|
|
1480
|
+
strokeLinecap: "round",
|
|
1481
|
+
strokeLinejoin: "round"
|
|
1482
|
+
},
|
|
1483
|
+
/* @__PURE__ */ React25.createElement("path", { d: "M18 6 6 18" }),
|
|
1484
|
+
/* @__PURE__ */ React25.createElement("path", { d: "m6 6 12 12" })
|
|
1485
|
+
)
|
|
1486
|
+
),
|
|
1487
|
+
/* @__PURE__ */ React25.createElement("div", { className: "p-6 sm:p-8" }, /* @__PURE__ */ React25.createElement("div", { className: "mb-8 mt-2" }, /* @__PURE__ */ React25.createElement("h2", { className: "text-2xl font-light text-white tracking-tight mb-2" }, "Join the Waitlist"), /* @__PURE__ */ React25.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__ */ React25.createElement("form", { onSubmit: handleSubmit, className: "flex flex-col gap-8" }, /* @__PURE__ */ React25.createElement(
|
|
1488
|
+
TextInput,
|
|
1489
|
+
{
|
|
1490
|
+
label: "EMAIL ADDRESS",
|
|
1491
|
+
type: "email",
|
|
1492
|
+
value: email,
|
|
1493
|
+
onChange: setEmail,
|
|
1494
|
+
placeholder: "name@example.com",
|
|
1495
|
+
disabled: isLoading
|
|
1496
|
+
}
|
|
1497
|
+
), /* @__PURE__ */ React25.createElement(
|
|
1498
|
+
ThreeDActionButton,
|
|
1499
|
+
{
|
|
1500
|
+
type: "submit",
|
|
1501
|
+
isLoading,
|
|
1502
|
+
disabled: !email,
|
|
1503
|
+
className: "w-full mt-2"
|
|
1504
|
+
},
|
|
1505
|
+
"Join Waitlist"
|
|
1506
|
+
)))
|
|
1507
|
+
));
|
|
1508
|
+
};
|
|
1420
1509
|
export {
|
|
1421
1510
|
AppBento2,
|
|
1422
1511
|
ConsultantShowcase,
|
|
@@ -1442,5 +1531,6 @@ export {
|
|
|
1442
1531
|
PortfolioHero,
|
|
1443
1532
|
TextInput,
|
|
1444
1533
|
ThreeDActionButton,
|
|
1445
|
-
ThreeDButton
|
|
1534
|
+
ThreeDButton,
|
|
1535
|
+
WaitlistDialog
|
|
1446
1536
|
};
|