@retinalabsllc/zairusjs 0.1.0
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/README.md +10 -0
- package/dist/index.d.mts +341 -0
- package/dist/index.d.ts +341 -0
- package/dist/index.js +983 -0
- package/dist/index.mjs +926 -0
- package/package.json +56 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,983 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/index.ts
|
|
31
|
+
var index_exports = {};
|
|
32
|
+
__export(index_exports, {
|
|
33
|
+
AITranscriptionFeature: () => AITranscriptionFeature,
|
|
34
|
+
AppBento2: () => AppBento2,
|
|
35
|
+
Faq: () => Faq,
|
|
36
|
+
FeatureScroll: () => FeatureScroll,
|
|
37
|
+
Footer: () => Footer,
|
|
38
|
+
Header: () => Header,
|
|
39
|
+
HeroSection: () => HeroSection,
|
|
40
|
+
ManagedBoardBlock: () => ManagedBoardBlock,
|
|
41
|
+
ManagedContactBlock: () => ManagedContactBlock,
|
|
42
|
+
ManagedDocument: () => ManagedDocument,
|
|
43
|
+
ManagedNewsletterSplitBlock: () => ManagedNewsletterSplitBlock,
|
|
44
|
+
ManagedNotFoundBlock: () => ManagedNotFoundBlock,
|
|
45
|
+
ManagedPricingBlock: () => ManagedPricingBlock,
|
|
46
|
+
ManagedProjectsBlock: () => ManagedProjectsBlock,
|
|
47
|
+
ManagedToaster: () => ManagedToaster,
|
|
48
|
+
NumberInput: () => NumberInput,
|
|
49
|
+
PageSpinner: () => PageSpinner,
|
|
50
|
+
PlatformFeatures: () => PlatformFeatures,
|
|
51
|
+
PortfolioHero: () => PortfolioHero,
|
|
52
|
+
TextInput: () => TextInput,
|
|
53
|
+
ThreeDButton: () => ThreeDButton
|
|
54
|
+
});
|
|
55
|
+
module.exports = __toCommonJS(index_exports);
|
|
56
|
+
|
|
57
|
+
// src/components/Faq.tsx
|
|
58
|
+
var import_react = __toESM(require("react"));
|
|
59
|
+
var import_react2 = require("@hugeicons/react");
|
|
60
|
+
var import_core_free_icons = require("@hugeicons/core-free-icons");
|
|
61
|
+
var Faq = ({
|
|
62
|
+
title = "Frequently Asked Questions",
|
|
63
|
+
subtitle = "Infrastructure Architecture",
|
|
64
|
+
items
|
|
65
|
+
}) => {
|
|
66
|
+
const [activeFaq, setActiveFaq] = (0, import_react.useState)(null);
|
|
67
|
+
const toggleFaq = (index) => {
|
|
68
|
+
setActiveFaq(activeFaq === index ? null : index);
|
|
69
|
+
};
|
|
70
|
+
return /* @__PURE__ */ import_react.default.createElement("div", { className: "w-full flex justify-center mt-10 px-3 md:px-8 z-10 relative" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "relative max-w-4xl w-full mx-auto flex flex-col z-10" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "mb-10 md:mb-12 relative z-10" }, subtitle && /* @__PURE__ */ import_react.default.createElement("span", { className: "text-[10px] tracking-[0.4em] text-neutral-500 text-left block uppercase" }, subtitle), title && /* @__PURE__ */ import_react.default.createElement("h2", { className: "text-3xl md:text-4xl tracking-tight text-black leading-[1.1] mt-4" }, title)), /* @__PURE__ */ import_react.default.createElement("div", { className: "flex flex-col relative z-10 bg-transparent" }, items.map((faq, index) => {
|
|
71
|
+
const isOpen = activeFaq === index;
|
|
72
|
+
const isLast = index === items.length - 1;
|
|
73
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
74
|
+
"div",
|
|
75
|
+
{
|
|
76
|
+
key: index,
|
|
77
|
+
className: `transition-all duration-300 ${!isLast ? "border-b border-neutral-200" : ""}`
|
|
78
|
+
},
|
|
79
|
+
/* @__PURE__ */ import_react.default.createElement(
|
|
80
|
+
"button",
|
|
81
|
+
{
|
|
82
|
+
className: "flex items-center justify-between w-full gap-4 text-left py-5 md:py-6 group outline-none cursor-pointer bg-transparent",
|
|
83
|
+
onClick: () => toggleFaq(index)
|
|
84
|
+
},
|
|
85
|
+
/* @__PURE__ */ import_react.default.createElement(
|
|
86
|
+
"span",
|
|
87
|
+
{
|
|
88
|
+
className: `text-[13px] md:text-[14px] transition-colors ${isOpen ? "text-black " : "text-neutral-700 group-hover:text-black"}`
|
|
89
|
+
},
|
|
90
|
+
faq.question
|
|
91
|
+
),
|
|
92
|
+
/* @__PURE__ */ import_react.default.createElement(
|
|
93
|
+
"div",
|
|
94
|
+
{
|
|
95
|
+
className: `shrink-0 flex items-center justify-center w-8 h-8 rounded-full border transition-all duration-300 ${isOpen ? "rotate-180 border-black text-black" : "border-neutral-300 text-neutral-500 group-hover:border-neutral-400 group-hover:text-black"}`
|
|
96
|
+
},
|
|
97
|
+
/* @__PURE__ */ import_react.default.createElement(import_react2.HugeiconsIcon, { icon: import_core_free_icons.ArrowDown01Icon, size: 16 })
|
|
98
|
+
)
|
|
99
|
+
),
|
|
100
|
+
/* @__PURE__ */ import_react.default.createElement(
|
|
101
|
+
"div",
|
|
102
|
+
{
|
|
103
|
+
className: `grid transition-all duration-300 ease-in-out ${isOpen ? "grid-rows-[1fr] pb-6 md:pb-8 opacity-100" : "grid-rows-[0fr] opacity-0"}`
|
|
104
|
+
},
|
|
105
|
+
/* @__PURE__ */ import_react.default.createElement("div", { className: "overflow-hidden" }, /* @__PURE__ */ import_react.default.createElement("p", { className: "text-[12px] md:text-[13px] leading-[1.8] text-neutral-600 pt-2 pr-4 md:pr-12" }, faq.answer))
|
|
106
|
+
)
|
|
107
|
+
);
|
|
108
|
+
}))));
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
// src/components/ThreeDButton.tsx
|
|
112
|
+
var import_react3 = __toESM(require("react"));
|
|
113
|
+
var import_link = __toESM(require("next/link"));
|
|
114
|
+
var ThreeDButton = ({
|
|
115
|
+
href,
|
|
116
|
+
children,
|
|
117
|
+
className = "",
|
|
118
|
+
onClick
|
|
119
|
+
}) => {
|
|
120
|
+
const baseShadow = `
|
|
121
|
+
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.3),
|
|
122
|
+
inset 0 -2px 0 0 rgba(0, 0, 0, 0.5),
|
|
123
|
+
0 3px 0 0 #0c0c0c,
|
|
124
|
+
0 6px 10px rgba(0, 0, 0, 0.3)
|
|
125
|
+
`;
|
|
126
|
+
const hoverShadow = `
|
|
127
|
+
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.35),
|
|
128
|
+
inset 0 -2px 0 0 rgba(0, 0, 0, 0.5),
|
|
129
|
+
0 4px 0 0 #0c0c0c,
|
|
130
|
+
0 8px 12px rgba(0, 0, 0, 0.35)
|
|
131
|
+
`;
|
|
132
|
+
const activeShadow = `
|
|
133
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.1),
|
|
134
|
+
inset 0 -1px 0 0 rgba(0, 0, 0, 0.5),
|
|
135
|
+
0 1px 0 0 #0c0c0c,
|
|
136
|
+
0 2px 4px rgba(0, 0, 0, 0.2)
|
|
137
|
+
`;
|
|
138
|
+
return /* @__PURE__ */ import_react3.default.createElement(
|
|
139
|
+
import_link.default,
|
|
140
|
+
{
|
|
141
|
+
href,
|
|
142
|
+
onClick,
|
|
143
|
+
className: `relative inline-flex items-center justify-center py-2.5 px-8 rounded-full bg-neutral-950 text-white text-xs transition-all duration-150 select-none group ${className}`,
|
|
144
|
+
style: { boxShadow: baseShadow },
|
|
145
|
+
onMouseEnter: (e) => {
|
|
146
|
+
e.currentTarget.style.boxShadow = hoverShadow;
|
|
147
|
+
e.currentTarget.style.transform = "translateY(-1px)";
|
|
148
|
+
},
|
|
149
|
+
onMouseLeave: (e) => {
|
|
150
|
+
e.currentTarget.style.boxShadow = baseShadow;
|
|
151
|
+
e.currentTarget.style.transform = "translateY(0px)";
|
|
152
|
+
},
|
|
153
|
+
onMouseDown: (e) => {
|
|
154
|
+
e.currentTarget.style.boxShadow = activeShadow;
|
|
155
|
+
e.currentTarget.style.transform = "translateY(2px)";
|
|
156
|
+
},
|
|
157
|
+
onMouseUp: (e) => {
|
|
158
|
+
e.currentTarget.style.transform = "translateY(-1px)";
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
/* @__PURE__ */ import_react3.default.createElement("span", { className: "absolute inset-0 rounded-full bg-linear-to-b from-white/10 via-white/5 to-transparent pointer-events-none" }),
|
|
162
|
+
/* @__PURE__ */ import_react3.default.createElement("span", { className: "relative z-10 pt-1 tracking-wide text-white/95 group-hover:text-white transition-colors duration-150 flex items-center justify-center leading-none" }, children)
|
|
163
|
+
);
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
// src/components/Header.tsx
|
|
167
|
+
var import_react4 = __toESM(require("react"));
|
|
168
|
+
var import_link2 = __toESM(require("next/link"));
|
|
169
|
+
var import_image = __toESM(require("next/image"));
|
|
170
|
+
var import_navigation = require("next/navigation");
|
|
171
|
+
var NavLink = ({ href, children, className = "" }) => {
|
|
172
|
+
const pathname = (0, import_navigation.usePathname)();
|
|
173
|
+
const isActive = pathname === href;
|
|
174
|
+
return /* @__PURE__ */ import_react4.default.createElement(
|
|
175
|
+
import_link2.default,
|
|
176
|
+
{
|
|
177
|
+
href,
|
|
178
|
+
className: `px-3 py-1.5 text-xs transition-colors duration-200 rounded-full ${isActive ? "text-neutral-950 font-medium" : "text-neutral-600 hover:text-neutral-950"} ${className}`
|
|
179
|
+
},
|
|
180
|
+
children
|
|
181
|
+
);
|
|
182
|
+
};
|
|
183
|
+
var Header = ({ logoSrc, companyName, subtitle, links }) => {
|
|
184
|
+
return /* @__PURE__ */ import_react4.default.createElement("div", { className: "absolute inset-x-0 top-0 w-full z-50 pointer-events-none px-4 pt-4 sm:pt-6" }, /* @__PURE__ */ import_react4.default.createElement("div", { className: "max-w-5xl mx-auto w-full pointer-events-auto" }, /* @__PURE__ */ import_react4.default.createElement("header", { className: "w-full bg-white/95 backdrop-blur-md rounded-full py-2 px-6 flex justify-between items-center shadow-[0_8px_60px_rgba(0,0,0,0.06)] border border-white/40" }, /* @__PURE__ */ import_react4.default.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ import_react4.default.createElement(import_link2.default, { href: "/", className: "flex items-center gap-3 transition-opacity hover:opacity-70" }, /* @__PURE__ */ import_react4.default.createElement(
|
|
185
|
+
import_image.default,
|
|
186
|
+
{
|
|
187
|
+
src: logoSrc,
|
|
188
|
+
alt: `${companyName} Logo`,
|
|
189
|
+
width: 40,
|
|
190
|
+
height: 40,
|
|
191
|
+
className: "object-contain w-5 h-auto invert",
|
|
192
|
+
priority: true
|
|
193
|
+
}
|
|
194
|
+
), /* @__PURE__ */ import_react4.default.createElement("div", { className: "flex flex-col justify-center" }, /* @__PURE__ */ import_react4.default.createElement("span", { className: "text-[12px] text-black leading-none tracking-wide mb-1" }, companyName), subtitle && /* @__PURE__ */ import_react4.default.createElement("span", { className: "text-[9px] text-neutral-500 tracking-widest leading-none" }, subtitle)))), /* @__PURE__ */ import_react4.default.createElement("nav", { className: "flex items-center gap-1 md:gap-2" }, links.map((link, index) => /* @__PURE__ */ import_react4.default.createElement(
|
|
195
|
+
NavLink,
|
|
196
|
+
{
|
|
197
|
+
key: index,
|
|
198
|
+
href: link.href,
|
|
199
|
+
className: link.hideOnMobile ? "hidden sm:inline-flex" : ""
|
|
200
|
+
},
|
|
201
|
+
link.label
|
|
202
|
+
))))));
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
// src/components/Footer.tsx
|
|
206
|
+
var import_react5 = __toESM(require("react"));
|
|
207
|
+
var import_link3 = __toESM(require("next/link"));
|
|
208
|
+
var import_react6 = require("@hugeicons/react");
|
|
209
|
+
var Footer = ({
|
|
210
|
+
description,
|
|
211
|
+
columns,
|
|
212
|
+
socialLinks = [],
|
|
213
|
+
copyrightText,
|
|
214
|
+
topSection
|
|
215
|
+
}) => {
|
|
216
|
+
return /* @__PURE__ */ import_react5.default.createElement("div", { className: "" }, topSection && topSection, /* @__PURE__ */ import_react5.default.createElement("footer", { className: "relative px-6 overflow-hidden flex flex-col" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "relative w-full max-w-7xl mx-auto z-20 flex flex-col" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "relative py-12 md:py-16" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start gap-16 mb-12 text-left" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "max-w-sm flex flex-col items-start justify-between" }, /* @__PURE__ */ import_react5.default.createElement("div", null, /* @__PURE__ */ import_react5.default.createElement("p", { className: "text-[14px] text-neutral-600 leading-relaxed " }, description))), /* @__PURE__ */ import_react5.default.createElement("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-x-8 gap-y-12 w-full lg:w-auto text-left" }, columns.map((col, idx) => /* @__PURE__ */ import_react5.default.createElement("div", { key: idx }, /* @__PURE__ */ import_react5.default.createElement("h4", { className: "text-[11px] tracking-[0.2em] text-black mb-6" }, col.title), /* @__PURE__ */ import_react5.default.createElement("ul", { className: "space-y-4 text-[13px] text-neutral-500" }, col.links.map((link, lIdx) => /* @__PURE__ */ import_react5.default.createElement("li", { key: lIdx }, link.isExternal ? /* @__PURE__ */ import_react5.default.createElement("a", { href: link.href, target: "_blank", rel: "noopener noreferrer", className: "hover:text-black transition-colors" }, link.label) : /* @__PURE__ */ import_react5.default.createElement(import_link3.default, { href: link.href, className: "hover:text-black transition-colors" }, link.label)))))))), /* @__PURE__ */ import_react5.default.createElement("div", { className: "pt-8 mt-4 border-t border-neutral-200 flex flex-col-reverse md:flex-row justify-between items-start md:items-center gap-6 relative z-20" }, /* @__PURE__ */ import_react5.default.createElement("p", { className: "text-[11px] text-neutral-400 tracking-widest text-left" }, copyrightText), socialLinks && socialLinks.length > 0 && /* @__PURE__ */ import_react5.default.createElement("div", { className: "flex items-center gap-6" }, socialLinks.map((social, idx) => /* @__PURE__ */ import_react5.default.createElement(
|
|
217
|
+
"a",
|
|
218
|
+
{
|
|
219
|
+
key: idx,
|
|
220
|
+
href: social.href,
|
|
221
|
+
target: "_blank",
|
|
222
|
+
rel: "noopener noreferrer",
|
|
223
|
+
className: "text-neutral-400 hover:text-black transition-colors",
|
|
224
|
+
"aria-label": social.name
|
|
225
|
+
},
|
|
226
|
+
/* @__PURE__ */ import_react5.default.createElement(import_react6.HugeiconsIcon, { icon: social.icon, size: 20 })
|
|
227
|
+
))))))));
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
// src/components/HeroSection.tsx
|
|
231
|
+
var import_react7 = __toESM(require("react"));
|
|
232
|
+
var import_image2 = __toESM(require("next/image"));
|
|
233
|
+
var HeroSection = ({
|
|
234
|
+
badgeText,
|
|
235
|
+
titlePrefix,
|
|
236
|
+
highlightText,
|
|
237
|
+
cursorLabel,
|
|
238
|
+
subtitle,
|
|
239
|
+
ctaText,
|
|
240
|
+
ctaHref,
|
|
241
|
+
showImage = true,
|
|
242
|
+
imageSrc = "/assets/ai.avif"
|
|
243
|
+
}) => {
|
|
244
|
+
return /* @__PURE__ */ import_react7.default.createElement("section", { className: "relative pt-32 sm:pt-40 pb-16 flex flex-col items-center overflow-hidden w-full" }, /* @__PURE__ */ import_react7.default.createElement(
|
|
245
|
+
"div",
|
|
246
|
+
{
|
|
247
|
+
className: "absolute inset-0 w-full h-full pointer-events-none z-0",
|
|
248
|
+
style: {
|
|
249
|
+
background: `radial-gradient(120% 100% at 50% 0%, #043324 0%, #21a473 45%, #e0f6ce 80%, #ffffff 100%)`
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
), /* @__PURE__ */ import_react7.default.createElement(
|
|
253
|
+
"div",
|
|
254
|
+
{
|
|
255
|
+
className: "absolute inset-0 w-full h-full pointer-events-none z-0 opacity-[0.25] mix-blend-overlay",
|
|
256
|
+
style: {
|
|
257
|
+
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")`
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
), /* @__PURE__ */ import_react7.default.createElement("div", { className: "relative max-w-5xl mx-auto px-4 sm:px-6 w-full flex flex-col items-center text-center z-10" }, /* @__PURE__ */ import_react7.default.createElement("div", { className: "inline-flex items-center gap-1.5 mb-6 px-3.5 py-1.5 rounded-full bg-white/10 backdrop-blur-md shadow-xs" }, /* @__PURE__ */ import_react7.default.createElement("span", { className: "flex h-2 w-2 rounded-full bg-[#3ae9a8]" }), /* @__PURE__ */ import_react7.default.createElement("span", { className: "text-[11px] tracking-wider text-white" }, badgeText)), /* @__PURE__ */ import_react7.default.createElement("h1", { className: "text-4xl sm:text-5xl md:text-6xl text-white tracking-tight leading-[1.3] max-w-3xl mb-6" }, titlePrefix, /* @__PURE__ */ import_react7.default.createElement("span", { className: "relative inline-block mx-1.5 px-3 py-1 bg-[#21a473]/25 border border-[#3ae9a8] rounded-sm text-white select-none whitespace-nowrap" }, /* @__PURE__ */ import_react7.default.createElement("span", { className: "absolute -top-[3.5px] -left-[3.5px] w-2 h-2 bg-white border border-[#21a473] rounded-[1px] z-10" }), /* @__PURE__ */ import_react7.default.createElement("span", { className: "absolute -top-[3.5px] -right-[3.5px] w-2 h-2 bg-white border border-[#21a473] rounded-[1px] z-10" }), /* @__PURE__ */ import_react7.default.createElement("span", { className: "absolute -bottom-[3.5px] -left-[3.5px] w-2 h-2 bg-white border border-[#21a473] rounded-[1px] z-10" }), /* @__PURE__ */ import_react7.default.createElement("span", { className: "absolute -bottom-[3.5px] -right-[3.5px] w-2 h-2 bg-white border border-[#21a473] rounded-[1px] z-10" }), highlightText, /* @__PURE__ */ import_react7.default.createElement("span", { className: "absolute -bottom-5 -right-5 flex items-center z-20 pointer-events-none select-none filter drop-shadow-[0_2px_4px_rgba(0,0,0,0.25)]" }, /* @__PURE__ */ import_react7.default.createElement("svg", { width: "16", height: "20", viewBox: "0 0 16 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "transform -rotate-12" }, /* @__PURE__ */ import_react7.default.createElement("path", { d: "M1 1V17.8L5.8 13.1H12.8L1 1Z", fill: "#21a473", stroke: "white", strokeWidth: "1.8", strokeLinejoin: "round" })), /* @__PURE__ */ import_react7.default.createElement("span", { className: "ml-1 bg-[#21a473] text-[10px] text-white font-mono font-medium px-2 py-0.5 rounded-full border border-white tracking-wide" }, cursorLabel)))), /* @__PURE__ */ import_react7.default.createElement("p", { className: "text-sm sm:text-base md:text-lg text-[#bbf7df]/90 max-w-xl mx-auto mb-8 font-light leading-relaxed" }, subtitle), /* @__PURE__ */ import_react7.default.createElement("div", { className: "mb-4" }, /* @__PURE__ */ import_react7.default.createElement(ThreeDButton, { href: ctaHref }, ctaText)), showImage && /* @__PURE__ */ import_react7.default.createElement("div", { className: "w-full max-w-4xl mx-auto px-2 sm:px-6" }, /* @__PURE__ */ import_react7.default.createElement("div", { className: "relative w-full flex flex-col items-center" }, /* @__PURE__ */ import_react7.default.createElement("div", { className: "relative w-full rounded-t-xl overflow-hidden border-[5px] border-[#1c1c1e] bg-[#1c1c1e] shadow-2xl aspect-video" }, /* @__PURE__ */ import_react7.default.createElement("div", { className: "absolute top-1.5 left-1/2 -translate-x-1/2 w-2.5 h-2.5 bg-[#0a0a0b] rounded-full flex items-center justify-center z-30" }, /* @__PURE__ */ import_react7.default.createElement("div", { className: "w-1 h-1 bg-[#1a2d42] rounded-full" })), /* @__PURE__ */ import_react7.default.createElement("div", { className: "relative w-full h-full rounded-sm overflow-hidden" }, /* @__PURE__ */ import_react7.default.createElement(
|
|
261
|
+
import_image2.default,
|
|
262
|
+
{
|
|
263
|
+
src: imageSrc,
|
|
264
|
+
alt: "Dashboard Preview",
|
|
265
|
+
fill: true,
|
|
266
|
+
sizes: "(max-w-1024px) 100vw, 1024px",
|
|
267
|
+
className: "object-cover object-top",
|
|
268
|
+
priority: true
|
|
269
|
+
}
|
|
270
|
+
))), /* @__PURE__ */ import_react7.default.createElement("div", { className: "relative w-[105%] h-2 md:h-2.5 bg-linear-to-b from-[#e2e8f0] via-[#cbd5e1] to-[#94a3b8] rounded-b-xl border-t border-slate-300 shadow-xl flex justify-center" }, /* @__PURE__ */ import_react7.default.createElement("div", { className: "w-16 md:w-24 h-1 md:h-1.5 bg-slate-400/30 rounded-b-md" }))))));
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
// src/components/AppBento2.tsx
|
|
274
|
+
var import_react8 = __toESM(require("react"));
|
|
275
|
+
var import_react9 = require("@hugeicons/react");
|
|
276
|
+
var AppBento2 = ({ tagline, headline, features }) => {
|
|
277
|
+
return /* @__PURE__ */ import_react8.default.createElement("div", null, /* @__PURE__ */ import_react8.default.createElement("div", { className: "w-full flex justify-center px-4" }, /* @__PURE__ */ import_react8.default.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ import_react8.default.createElement("div", { className: "relative overflow-hidden mb-8 text-left" }, /* @__PURE__ */ import_react8.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react8.default.createElement("span", { className: "text-[10px] tracking-[0.4em] text-neutral-500 block mb-4" }, tagline), /* @__PURE__ */ import_react8.default.createElement("h2", { className: "text-3xl md:text-4xl tracking-tight text-black leading-[1.1]" }, headline))), /* @__PURE__ */ import_react8.default.createElement("div", { className: "grid grid-cols-1 lg:grid-cols-6 gap-6" }, features.map((f, i) => {
|
|
278
|
+
const isHighlight = f.isWhite !== void 0 ? f.isWhite : f.isBrand || i === 1;
|
|
279
|
+
return /* @__PURE__ */ import_react8.default.createElement(
|
|
280
|
+
"div",
|
|
281
|
+
{
|
|
282
|
+
key: i,
|
|
283
|
+
className: `relative rounded-2xl overflow-hidden p-8 flex flex-col min-h-70 transition-all duration-500 group text-left ${isHighlight ? "bg-black hover:-translate-y-1.5 active:translate-y-0.5" : "bg-neutral-100 hover:-translate-y-1"} ${f.size}`,
|
|
284
|
+
style: {
|
|
285
|
+
boxShadow: isHighlight ? `
|
|
286
|
+
inset 0 1.5px 0 0 rgba(255, 255, 255, 0.35),
|
|
287
|
+
inset 0 -3px 0 0 rgba(0, 0, 0, 0.6),
|
|
288
|
+
0 4px 0 0 #0c0c0c,
|
|
289
|
+
0 12px 24px rgba(0, 0, 0, 0.15)
|
|
290
|
+
` : "none"
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
|
+
/* @__PURE__ */ import_react8.default.createElement(
|
|
294
|
+
"div",
|
|
295
|
+
{
|
|
296
|
+
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
297
|
+
style: {
|
|
298
|
+
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")`,
|
|
299
|
+
backgroundRepeat: "repeat"
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
),
|
|
303
|
+
isHighlight && /* @__PURE__ */ import_react8.default.createElement("span", { className: "absolute inset-0 rounded-2xl bg-linear-to-b from-white/10 via-white/5 to-transparent pointer-events-none z-10" }),
|
|
304
|
+
/* @__PURE__ */ import_react8.default.createElement("div", { className: "absolute inset-0 overflow-hidden pointer-events-none z-0" }, /* @__PURE__ */ import_react8.default.createElement("div", { className: `absolute -bottom-8 -right-8 transform group-hover:scale-110 transition-transform duration-700 ease-out ${isHighlight ? "text-white/5" : "text-black/5"}` }, /* @__PURE__ */ import_react8.default.createElement(import_react9.HugeiconsIcon, { icon: f.icon, size: 180 }))),
|
|
305
|
+
/* @__PURE__ */ import_react8.default.createElement("div", { className: "relative z-10 w-full h-full flex flex-col pointer-events-auto" }, /* @__PURE__ */ import_react8.default.createElement("div", { className: "flex items-center justify-between mb-8" }, /* @__PURE__ */ import_react8.default.createElement("span", { className: `text-[9px] tracking-widest ${isHighlight ? "text-neutral-400" : "text-neutral-500"}` }, f.label), /* @__PURE__ */ import_react8.default.createElement("div", { className: `p-2 rounded-full transition-colors ${isHighlight ? "bg-white/10" : "bg-white"}` }, /* @__PURE__ */ import_react8.default.createElement(import_react9.HugeiconsIcon, { icon: f.icon, size: 20, className: `transition-colors ${isHighlight ? "text-white" : "text-neutral-600 group-hover:text-black"}` }))), /* @__PURE__ */ import_react8.default.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ import_react8.default.createElement("h3", { className: `text-xl mb-2 tracking-tight ${isHighlight ? "text-white" : "text-black"}` }, f.title), /* @__PURE__ */ import_react8.default.createElement("p", { className: `text-[13px] leading-relaxed max-w-sm ${isHighlight ? "text-neutral-300" : "text-neutral-600"}` }, f.desc)))
|
|
306
|
+
);
|
|
307
|
+
})))));
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
// src/components/FeatureScroll.tsx
|
|
311
|
+
var import_react10 = __toESM(require("react"));
|
|
312
|
+
var import_image3 = __toESM(require("next/image"));
|
|
313
|
+
var import_react11 = require("@hugeicons/react");
|
|
314
|
+
var import_core_free_icons2 = require("@hugeicons/core-free-icons");
|
|
315
|
+
var FeatureCard = ({ feature }) => {
|
|
316
|
+
const [isLoading, setIsLoading] = (0, import_react10.useState)(!!feature.image);
|
|
317
|
+
return /* @__PURE__ */ import_react10.default.createElement("div", { className: "flex flex-col shrink-0 w-[90vw] sm:w-150 snap-center md:snap-start group cursor-grab active:cursor-grabbing" }, /* @__PURE__ */ import_react10.default.createElement("div", { className: "relative w-full aspect-16/10 bg-neutral-100 rounded-2xl overflow-hidden mb-6 flex items-center justify-center" }, /* @__PURE__ */ import_react10.default.createElement(
|
|
318
|
+
"div",
|
|
319
|
+
{
|
|
320
|
+
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-20 mix-blend-overlay",
|
|
321
|
+
style: {
|
|
322
|
+
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")`,
|
|
323
|
+
backgroundRepeat: "repeat"
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
), isLoading && feature.image && /* @__PURE__ */ import_react10.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-50/50 backdrop-blur-sm" }, /* @__PURE__ */ import_react10.default.createElement(import_react11.HugeiconsIcon, { icon: import_core_free_icons2.Loading03Icon, size: 32, className: "animate-spin text-neutral-400" })), feature.image ? /* @__PURE__ */ import_react10.default.createElement(
|
|
327
|
+
import_image3.default,
|
|
328
|
+
{
|
|
329
|
+
src: feature.image,
|
|
330
|
+
alt: feature.title,
|
|
331
|
+
fill: true,
|
|
332
|
+
sizes: "(max-width: 768px) 90vw, 600px",
|
|
333
|
+
onLoad: () => setIsLoading(false),
|
|
334
|
+
className: `
|
|
335
|
+
object-cover transition-all duration-700 ease-out z-0
|
|
336
|
+
${isLoading ? "scale-110 blur-xl opacity-0" : "scale-100 blur-0 opacity-100"}
|
|
337
|
+
group-hover:scale-105
|
|
338
|
+
`
|
|
339
|
+
}
|
|
340
|
+
) : /* @__PURE__ */ import_react10.default.createElement("div", { className: "absolute inset-0 bg-white z-0 transition-transform duration-700 ease-out group-hover:scale-105" })), /* @__PURE__ */ import_react10.default.createElement("div", { className: "flex flex-col text-left pr-4" }, /* @__PURE__ */ import_react10.default.createElement("h3", { className: "text-xl tracking-tight text-black mb-2" }, feature.title), /* @__PURE__ */ import_react10.default.createElement("p", { className: "text-[13px] leading-relaxed text-neutral-600 max-w-[90%]" }, feature.desc)));
|
|
341
|
+
};
|
|
342
|
+
var FeatureScroll = ({ tagline, headline, features }) => {
|
|
343
|
+
const scrollRef = (0, import_react10.useRef)(null);
|
|
344
|
+
const [canScrollLeft, setCanScrollLeft] = (0, import_react10.useState)(false);
|
|
345
|
+
const [canScrollRight, setCanScrollRight] = (0, import_react10.useState)(true);
|
|
346
|
+
const checkScroll = () => {
|
|
347
|
+
if (scrollRef.current) {
|
|
348
|
+
const { scrollLeft, scrollWidth, clientWidth } = scrollRef.current;
|
|
349
|
+
setCanScrollLeft(scrollLeft > 0);
|
|
350
|
+
setCanScrollRight(scrollLeft < scrollWidth - clientWidth - 2);
|
|
351
|
+
}
|
|
352
|
+
};
|
|
353
|
+
(0, import_react10.useEffect)(() => {
|
|
354
|
+
checkScroll();
|
|
355
|
+
window.addEventListener("resize", checkScroll);
|
|
356
|
+
return () => window.removeEventListener("resize", checkScroll);
|
|
357
|
+
}, []);
|
|
358
|
+
const scroll = (direction) => {
|
|
359
|
+
if (scrollRef.current) {
|
|
360
|
+
const scrollAmount = direction === "left" ? -624 : 624;
|
|
361
|
+
scrollRef.current.scrollBy({ left: scrollAmount, behavior: "smooth" });
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
return /* @__PURE__ */ import_react10.default.createElement("section", { className: "py-24 w-full flex justify-center relative z-10 overflow-hidden" }, /* @__PURE__ */ import_react10.default.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ import_react10.default.createElement("div", { className: "flex flex-col md:flex-row md:items-end justify-between gap-6 mb-12" }, /* @__PURE__ */ import_react10.default.createElement("div", { className: "relative z-10 text-left" }, /* @__PURE__ */ import_react10.default.createElement("span", { className: "text-[10px] tracking-[0.4em] text-neutral-500 block mb-4" }, tagline), /* @__PURE__ */ import_react10.default.createElement("h2", { className: "text-3xl md:text-5xl tracking-tight text-black leading-[1.05]" }, headline)), /* @__PURE__ */ import_react10.default.createElement("div", { className: "hidden md:flex items-center gap-3" }, /* @__PURE__ */ import_react10.default.createElement(
|
|
365
|
+
"button",
|
|
366
|
+
{
|
|
367
|
+
onClick: () => scroll("left"),
|
|
368
|
+
disabled: !canScrollLeft,
|
|
369
|
+
className: "p-4 border border-neutral-200 rounded-full text-neutral-500 hover:text-black hover:border-black disabled:opacity-30 disabled:hover:border-neutral-200 disabled:hover:text-neutral-500 disabled:cursor-not-allowed transition-all outline-none",
|
|
370
|
+
"aria-label": "Previous feature"
|
|
371
|
+
},
|
|
372
|
+
/* @__PURE__ */ import_react10.default.createElement(import_react11.HugeiconsIcon, { icon: import_core_free_icons2.ArrowLeft01Icon, size: 20 })
|
|
373
|
+
), /* @__PURE__ */ import_react10.default.createElement(
|
|
374
|
+
"button",
|
|
375
|
+
{
|
|
376
|
+
onClick: () => scroll("right"),
|
|
377
|
+
disabled: !canScrollRight,
|
|
378
|
+
className: "p-4 border border-neutral-200 rounded-full text-neutral-500 hover:text-black hover:border-black disabled:opacity-30 disabled:hover:border-neutral-200 disabled:hover:text-neutral-500 disabled:cursor-not-allowed transition-all outline-none",
|
|
379
|
+
"aria-label": "Next feature"
|
|
380
|
+
},
|
|
381
|
+
/* @__PURE__ */ import_react10.default.createElement(import_react11.HugeiconsIcon, { icon: import_core_free_icons2.ArrowRight01Icon, size: 20 })
|
|
382
|
+
))), /* @__PURE__ */ import_react10.default.createElement(
|
|
383
|
+
"div",
|
|
384
|
+
{
|
|
385
|
+
ref: scrollRef,
|
|
386
|
+
onScroll: checkScroll,
|
|
387
|
+
className: "flex gap-6 overflow-x-auto snap-x snap-mandatory [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] scrollbar-none pb-8 -mx-4 px-4 md:mx-0 md:px-0"
|
|
388
|
+
},
|
|
389
|
+
features.map((feature, idx) => /* @__PURE__ */ import_react10.default.createElement(FeatureCard, { key: idx, feature }))
|
|
390
|
+
), /* @__PURE__ */ import_react10.default.createElement("div", { className: "flex md:hidden items-center justify-center gap-4 mt-2" }, /* @__PURE__ */ import_react10.default.createElement(
|
|
391
|
+
"button",
|
|
392
|
+
{
|
|
393
|
+
onClick: () => scroll("left"),
|
|
394
|
+
disabled: !canScrollLeft,
|
|
395
|
+
className: "p-4 border border-neutral-200 rounded-full text-neutral-500 hover:text-black hover:border-black disabled:opacity-30 transition-all outline-none"
|
|
396
|
+
},
|
|
397
|
+
/* @__PURE__ */ import_react10.default.createElement(import_react11.HugeiconsIcon, { icon: import_core_free_icons2.ArrowLeft01Icon, size: 20 })
|
|
398
|
+
), /* @__PURE__ */ import_react10.default.createElement(
|
|
399
|
+
"button",
|
|
400
|
+
{
|
|
401
|
+
onClick: () => scroll("right"),
|
|
402
|
+
disabled: !canScrollRight,
|
|
403
|
+
className: "p-4 border border-neutral-200 rounded-full text-neutral-500 hover:text-black hover:border-black disabled:opacity-30 transition-all outline-none"
|
|
404
|
+
},
|
|
405
|
+
/* @__PURE__ */ import_react10.default.createElement(import_react11.HugeiconsIcon, { icon: import_core_free_icons2.ArrowRight01Icon, size: 20 })
|
|
406
|
+
))));
|
|
407
|
+
};
|
|
408
|
+
|
|
409
|
+
// src/components/AITranscriptionFeature.tsx
|
|
410
|
+
var import_react12 = __toESM(require("react"));
|
|
411
|
+
var import_image4 = __toESM(require("next/image"));
|
|
412
|
+
var import_react13 = require("@hugeicons/react");
|
|
413
|
+
var import_core_free_icons3 = require("@hugeicons/core-free-icons");
|
|
414
|
+
var AITranscriptionFeature = ({
|
|
415
|
+
tagline,
|
|
416
|
+
headline,
|
|
417
|
+
description,
|
|
418
|
+
imagePath = "",
|
|
419
|
+
detailTextPrefix,
|
|
420
|
+
highlightText,
|
|
421
|
+
cursorLabel,
|
|
422
|
+
detailTextSuffix
|
|
423
|
+
}) => {
|
|
424
|
+
const [isLoading, setIsLoading] = (0, import_react12.useState)(!!imagePath);
|
|
425
|
+
return /* @__PURE__ */ import_react12.default.createElement("section", { className: "py-24 w-full flex justify-center bg-white relative z-10" }, /* @__PURE__ */ import_react12.default.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ import_react12.default.createElement("div", { className: "flex flex-col items-center text-center mb-12 relative z-10 animate-in fade-in slide-in-from-bottom-4 duration-700" }, /* @__PURE__ */ import_react12.default.createElement("span", { className: "text-[10px] tracking-[0.4em] text-neutral-500 block mb-4" }, tagline), /* @__PURE__ */ import_react12.default.createElement("h2", { className: "text-3xl md:text-5xl tracking-tight animate-gradient-wipe leading-[1.05] mb-4" }, headline), /* @__PURE__ */ import_react12.default.createElement("p", { className: "text-[15px] md:text-[16px] leading-[1.8] text-neutral-600 max-w-xl mx-auto" }, description)), /* @__PURE__ */ import_react12.default.createElement("div", { className: "relative w-full max-w-5xl mx-auto aspect-video sm:aspect-21/9 bg-neutral-100 rounded-2xl overflow-hidden mb-12 flex items-center justify-center shadow-[0_0_40px_rgba(0,0,0,0.03)] animate-in fade-in zoom-in-95 duration-700 delay-150 fill-mode-both" }, /* @__PURE__ */ import_react12.default.createElement(
|
|
426
|
+
"div",
|
|
427
|
+
{
|
|
428
|
+
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-20 mix-blend-overlay",
|
|
429
|
+
style: {
|
|
430
|
+
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")`,
|
|
431
|
+
backgroundRepeat: "repeat"
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
), isLoading && imagePath && /* @__PURE__ */ import_react12.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-50/50 backdrop-blur-sm transition-opacity duration-300" }, /* @__PURE__ */ import_react12.default.createElement(import_react13.HugeiconsIcon, { icon: import_core_free_icons3.Loading03Icon, size: 32, className: "animate-spin text-neutral-400" })), imagePath ? /* @__PURE__ */ import_react12.default.createElement(
|
|
435
|
+
import_image4.default,
|
|
436
|
+
{
|
|
437
|
+
src: imagePath,
|
|
438
|
+
alt: "Feature Interface",
|
|
439
|
+
fill: true,
|
|
440
|
+
sizes: "(max-width: 768px) 100vw, 1024px",
|
|
441
|
+
onLoad: () => setIsLoading(false),
|
|
442
|
+
className: `
|
|
443
|
+
object-cover transition-all duration-1000 ease-out z-0
|
|
444
|
+
${isLoading ? "scale-105 blur-2xl opacity-0" : "scale-100 blur-0 opacity-100"}
|
|
445
|
+
`
|
|
446
|
+
}
|
|
447
|
+
) : /* @__PURE__ */ import_react12.default.createElement("div", { className: "absolute inset-0 bg-white z-0" })), /* @__PURE__ */ import_react12.default.createElement("div", { className: "max-w-3xl mx-auto text-center animate-in fade-in slide-in-from-bottom-4 duration-700 delay-300 fill-mode-both" }, /* @__PURE__ */ import_react12.default.createElement("p", { className: "text-[22px] md:text-[25px] leading-[1.8] text-neutral-800" }, detailTextPrefix, " ", /* @__PURE__ */ import_react12.default.createElement("span", { className: "relative inline-block mx-1 px-2.5 py-0.5 bg-[#20A272]/10 border border-[#20A272] rounded-[3px] text-[#1C3D36] transition-all duration-300 whitespace-nowrap" }, /* @__PURE__ */ import_react12.default.createElement("span", { className: "absolute top-[-3.5px] left-[-3.5px] w-2 h-2 bg-white border border-[#20A272] rounded-[1px] z-10" }), /* @__PURE__ */ import_react12.default.createElement("span", { className: "absolute top-[-3.5px] right-[-3.5px] w-2 h-2 bg-white border border-[#20A272] rounded-[1px] z-10" }), /* @__PURE__ */ import_react12.default.createElement("span", { className: "absolute bottom-[-3.5px] left-[-3.5px] w-2 h-2 bg-white border border-[#20A272] rounded-[1px] z-10" }), /* @__PURE__ */ import_react12.default.createElement("span", { className: "absolute bottom-[-3.5px] right-[-3.5px] w-2 h-2 bg-white border border-[#20A272] rounded-[1px] z-10" }), highlightText, /* @__PURE__ */ import_react12.default.createElement("span", { className: "absolute -bottom-6 -right-6 flex items-center z-20 pointer-events-none select-none filter drop-shadow-[0_2px_4px_rgba(0,0,0,0.15)]" }, /* @__PURE__ */ import_react12.default.createElement("svg", { width: "16", height: "20", viewBox: "0 0 16 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "transform -rotate-12" }, /* @__PURE__ */ import_react12.default.createElement("path", { d: "M1 1V17.8L5.8 13.1H12.8L1 1Z", fill: "#20A272", stroke: "white", strokeWidth: "1.8", strokeLinejoin: "round" })), /* @__PURE__ */ import_react12.default.createElement("span", { className: "ml-1 bg-[#20A272] text-[10px] text-white font-mono px-2 py-0.5 rounded-full border border-white tracking-wide" }, cursorLabel))), " ", detailTextSuffix))));
|
|
448
|
+
};
|
|
449
|
+
|
|
450
|
+
// src/components/PlatformFeatures.tsx
|
|
451
|
+
var import_react14 = __toESM(require("react"));
|
|
452
|
+
var import_react15 = require("@hugeicons/react");
|
|
453
|
+
var PlatformFeatures = ({
|
|
454
|
+
tagline,
|
|
455
|
+
headline,
|
|
456
|
+
description,
|
|
457
|
+
features
|
|
458
|
+
}) => {
|
|
459
|
+
return /* @__PURE__ */ import_react14.default.createElement("section", { className: "w-full flex justify-center mb-15 relative z-10" }, /* @__PURE__ */ import_react14.default.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ import_react14.default.createElement("div", { className: "flex flex-col items-start mb-16 relative z-10" }, /* @__PURE__ */ import_react14.default.createElement("span", { className: "text-[10px] tracking-[0.4em] text-neutral-500 block mb-4" }, tagline), /* @__PURE__ */ import_react14.default.createElement("h2", { className: "text-3xl md:text-5xl tracking-tight text-black leading-[1.05] mb-6" }, headline), /* @__PURE__ */ import_react14.default.createElement("p", { className: "text-[15px] md:text-[16px] leading-[1.8] text-neutral-600 max-w-2xl" }, description)), /* @__PURE__ */ import_react14.default.createElement("div", { className: "w-full h-px bg-neutral-100 mb-16", "aria-hidden": "true" }), /* @__PURE__ */ import_react14.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-x-8 gap-y-12" }, features.map((feature, idx) => /* @__PURE__ */ import_react14.default.createElement(
|
|
460
|
+
"div",
|
|
461
|
+
{
|
|
462
|
+
key: idx,
|
|
463
|
+
className: "flex flex-col group animate-in fade-in slide-in-from-bottom-4 duration-700 fill-mode-both",
|
|
464
|
+
style: { animationDelay: feature.delay || "0ms" }
|
|
465
|
+
},
|
|
466
|
+
/* @__PURE__ */ import_react14.default.createElement("div", { className: "w-12 h-12 rounded-full bg-neutral-100 flex items-center justify-center text-neutral-600 mb-5 transition-colors duration-300" }, /* @__PURE__ */ import_react14.default.createElement(import_react15.HugeiconsIcon, { icon: feature.icon, size: 24 })),
|
|
467
|
+
/* @__PURE__ */ import_react14.default.createElement("div", null, /* @__PURE__ */ import_react14.default.createElement("h3", { className: "text-xl tracking-tight text-black mb-2" }, feature.title), /* @__PURE__ */ import_react14.default.createElement("p", { className: "text-[13px] leading-relaxed text-neutral-600 pr-4" }, feature.desc))
|
|
468
|
+
)))));
|
|
469
|
+
};
|
|
470
|
+
|
|
471
|
+
// src/components/ManagedDocument.tsx
|
|
472
|
+
var import_react16 = __toESM(require("react"));
|
|
473
|
+
var ManagedDocument = ({
|
|
474
|
+
tagline,
|
|
475
|
+
title,
|
|
476
|
+
sections,
|
|
477
|
+
contactText,
|
|
478
|
+
contactEmail
|
|
479
|
+
}) => {
|
|
480
|
+
return (
|
|
481
|
+
// Outer layout wrapper (takes up available space, adds padding)
|
|
482
|
+
/* @__PURE__ */ import_react16.default.createElement("div", { className: "grow pt-28 px-3 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ import_react16.default.createElement("div", { className: "relative bg-white rounded-2xl w-full max-w-7xl mx-auto overflow-hidden" }, /* @__PURE__ */ import_react16.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react16.default.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10" }, tagline && /* @__PURE__ */ import_react16.default.createElement("span", { className: "text-[10px] tracking-[0.4em] text-neutral-500 text-left block uppercase" }, tagline), /* @__PURE__ */ import_react16.default.createElement("h1", { className: "text-4xl md:text-5xl mt-4 text-black tracking-tight text-left" }, title)), sections.map((section, index) => /* @__PURE__ */ import_react16.default.createElement("div", { key: index, className: "relative px-5 md:px-12 py-8 md:py-10" }, section.heading && /* @__PURE__ */ import_react16.default.createElement("h2", { className: "text-[11px] tracking-[0.2em] text-black mb-4 text-left uppercase" }, section.heading), section.paragraphs && section.paragraphs.length > 0 && /* @__PURE__ */ import_react16.default.createElement("div", { className: "text-[14px] leading-[1.8] text-neutral-700 space-y-4 text-left font-light" }, section.paragraphs.map((text, pIndex) => /* @__PURE__ */ import_react16.default.createElement("p", { key: pIndex }, text))), section.quote && /* @__PURE__ */ import_react16.default.createElement("div", { className: `bg-neutral-100 rounded-xl p-6 ${section.paragraphs && section.paragraphs.length > 0 ? "mt-6" : ""}` }, /* @__PURE__ */ import_react16.default.createElement("p", { className: "italic text-neutral-900 text-[13px] md:text-[14px] leading-relaxed" }, '"', section.quote, '"')))), (contactText || contactEmail) && /* @__PURE__ */ import_react16.default.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10 pb-12 md:pb-14" }, /* @__PURE__ */ import_react16.default.createElement("p", { className: "text-[12px] text-neutral-600 text-left" }, contactText, contactEmail && /* @__PURE__ */ import_react16.default.createElement(
|
|
483
|
+
"a",
|
|
484
|
+
{
|
|
485
|
+
href: `mailto:${contactEmail}`,
|
|
486
|
+
className: "text-black decoration-black decoration-2 underline-offset-4 ml-1 transition-colors"
|
|
487
|
+
},
|
|
488
|
+
contactEmail
|
|
489
|
+
))))))
|
|
490
|
+
);
|
|
491
|
+
};
|
|
492
|
+
|
|
493
|
+
// src/components/ManagedContactBlock.tsx
|
|
494
|
+
var import_react17 = __toESM(require("react"));
|
|
495
|
+
var import_react18 = require("@hugeicons/react");
|
|
496
|
+
var SecureEmail = ({ user, domain, className }) => {
|
|
497
|
+
const [isMounted, setIsMounted] = (0, import_react17.useState)(false);
|
|
498
|
+
(0, import_react17.useEffect)(() => {
|
|
499
|
+
setIsMounted(true);
|
|
500
|
+
}, []);
|
|
501
|
+
if (!isMounted) {
|
|
502
|
+
return /* @__PURE__ */ import_react17.default.createElement("span", { className, style: { opacity: 0 } }, "Loading");
|
|
503
|
+
}
|
|
504
|
+
const email = `${user}@${domain}`;
|
|
505
|
+
return /* @__PURE__ */ import_react17.default.createElement("a", { href: `mailto:${email}`, className }, email);
|
|
506
|
+
};
|
|
507
|
+
var ManagedContactBlock = ({
|
|
508
|
+
tagline,
|
|
509
|
+
title,
|
|
510
|
+
company,
|
|
511
|
+
emails,
|
|
512
|
+
socials
|
|
513
|
+
}) => {
|
|
514
|
+
return /* @__PURE__ */ import_react17.default.createElement("div", { className: "grow pt-28 pb-20 px-4 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ import_react17.default.createElement("div", { className: "relative bg-white rounded-2xl w-full max-w-7xl mx-auto overflow-hidden" }, /* @__PURE__ */ import_react17.default.createElement(
|
|
515
|
+
"div",
|
|
516
|
+
{
|
|
517
|
+
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
518
|
+
style: {
|
|
519
|
+
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")`,
|
|
520
|
+
backgroundRepeat: "repeat"
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
), /* @__PURE__ */ import_react17.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react17.default.createElement("div", { className: "relative px-8 md:px-12 py-10" }, tagline && /* @__PURE__ */ import_react17.default.createElement("span", { className: "text-[10px] tracking-[0.4em] text-neutral-500 text-left block uppercase" }, tagline), /* @__PURE__ */ import_react17.default.createElement("h1", { className: "text-4xl md:text-5xl mt-4 text-black tracking-tight text-left" }, title)), /* @__PURE__ */ import_react17.default.createElement("div", { className: "relative px-8 md:px-12 py-8 pb-14" }, /* @__PURE__ */ import_react17.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-12" }, company && /* @__PURE__ */ import_react17.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ import_react17.default.createElement("h2", { className: "text-[11px] tracking-[0.2em] text-black mb-4 uppercase" }, "Contact Details"), /* @__PURE__ */ import_react17.default.createElement("div", { className: "space-y-3 text-[13px] text-neutral-600 leading-[1.8]" }, company.name && /* @__PURE__ */ import_react17.default.createElement("p", { className: "text-black" }, company.name), company.lines && company.lines.map((line, idx) => /* @__PURE__ */ import_react17.default.createElement("p", { key: idx }, line)), company.phone && /* @__PURE__ */ import_react17.default.createElement("p", { className: "pt-2" }, /* @__PURE__ */ import_react17.default.createElement(
|
|
524
|
+
"a",
|
|
525
|
+
{
|
|
526
|
+
href: `tel:${company.phone.replace(/\s+/g, "")}`,
|
|
527
|
+
className: "transition-colors hover:text-black"
|
|
528
|
+
},
|
|
529
|
+
company.phone
|
|
530
|
+
)))), emails && emails.length > 0 && /* @__PURE__ */ import_react17.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ import_react17.default.createElement("h2", { className: "text-[11px] tracking-[0.2em] text-black mb-4 uppercase" }, "Email Directory"), /* @__PURE__ */ import_react17.default.createElement("div", { className: "space-y-6 text-[13px]" }, emails.map((email, idx) => /* @__PURE__ */ import_react17.default.createElement("div", { key: idx }, /* @__PURE__ */ import_react17.default.createElement("p", { className: "text-[10px] tracking-[0.2em] mb-1.5 text-neutral-500 uppercase" }, email.label), /* @__PURE__ */ import_react17.default.createElement(
|
|
531
|
+
SecureEmail,
|
|
532
|
+
{
|
|
533
|
+
user: email.user,
|
|
534
|
+
domain: email.domain,
|
|
535
|
+
className: "text-neutral-600 transition-colors hover:text-black"
|
|
536
|
+
}
|
|
537
|
+
))))), socials && socials.length > 0 && /* @__PURE__ */ import_react17.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ import_react17.default.createElement("h2", { className: "text-[11px] tracking-[0.2em] text-black mb-4 uppercase" }, "Find Us Online"), /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex flex-col space-y-5 pt-1" }, socials.map((social, idx) => /* @__PURE__ */ import_react17.default.createElement(
|
|
538
|
+
"a",
|
|
539
|
+
{
|
|
540
|
+
key: idx,
|
|
541
|
+
href: social.href,
|
|
542
|
+
target: "_blank",
|
|
543
|
+
rel: "noopener noreferrer",
|
|
544
|
+
className: "flex items-center gap-3 transition-colors group text-neutral-600 hover:text-black",
|
|
545
|
+
"aria-label": social.label
|
|
546
|
+
},
|
|
547
|
+
/* @__PURE__ */ import_react17.default.createElement(import_react18.HugeiconsIcon, { icon: social.icon, size: 18 }),
|
|
548
|
+
/* @__PURE__ */ import_react17.default.createElement("span", { className: "text-[13px]" }, social.label)
|
|
549
|
+
)))))))));
|
|
550
|
+
};
|
|
551
|
+
|
|
552
|
+
// src/components/ManagedPricingBlock.tsx
|
|
553
|
+
var import_react19 = __toESM(require("react"));
|
|
554
|
+
var import_link4 = __toESM(require("next/link"));
|
|
555
|
+
var CheckIcon = ({ className = "" }) => /* @__PURE__ */ import_react19.default.createElement("svg", { viewBox: "0 0 24 24", fill: "none", className: `w-4 h-4 shrink-0 ${className}`, xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ import_react19.default.createElement("circle", { cx: "12", cy: "12", r: "10", fill: "black" }), /* @__PURE__ */ import_react19.default.createElement("path", { d: "M8 12L11 15L16 9", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }));
|
|
556
|
+
var CrossIcon = ({ className = "" }) => /* @__PURE__ */ import_react19.default.createElement("svg", { viewBox: "0 0 24 24", fill: "none", className: `w-4 h-4 shrink-0 ${className}`, xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ import_react19.default.createElement("circle", { cx: "12", cy: "12", r: "10", fill: "#F5F5F5" }), /* @__PURE__ */ import_react19.default.createElement("path", { d: "M15 9L9 15M9 9l6 6", stroke: "#D4D4D4", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }));
|
|
557
|
+
var ManagedPricingBlock = ({
|
|
558
|
+
tagline,
|
|
559
|
+
title,
|
|
560
|
+
plans
|
|
561
|
+
}) => {
|
|
562
|
+
return /* @__PURE__ */ import_react19.default.createElement("div", { className: "grow pt-40 pb-20 px-4 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ import_react19.default.createElement("div", { className: "w-full max-w-5xl mx-auto flex flex-col items-center" }, /* @__PURE__ */ import_react19.default.createElement("div", { className: "w-full flex flex-col items-center text-center mb-12" }, tagline && /* @__PURE__ */ import_react19.default.createElement("span", { className: "text-[9px] tracking-[0.4em] text-black block uppercase" }, tagline), /* @__PURE__ */ import_react19.default.createElement("h1", { className: "text-2xl sm:text-3xl mt-3 text-black tracking-tight" }, title)), /* @__PURE__ */ import_react19.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-5 w-full max-w-3xl" }, plans.map((plan, planIdx) => /* @__PURE__ */ import_react19.default.createElement(
|
|
563
|
+
"div",
|
|
564
|
+
{
|
|
565
|
+
key: planIdx,
|
|
566
|
+
className: `bg-white rounded-3xl p-6 flex flex-col relative overflow-hidden ${plan.isPremium ? "border border-neutral-100" : ""}`
|
|
567
|
+
},
|
|
568
|
+
/* @__PURE__ */ import_react19.default.createElement("div", { className: "mb-6" }, /* @__PURE__ */ import_react19.default.createElement("span", { className: "text-black text-base block mb-1" }, plan.name), /* @__PURE__ */ import_react19.default.createElement("div", { className: "flex items-baseline gap-1" }, /* @__PURE__ */ import_react19.default.createElement("span", { className: "text-3xl text-black" }, plan.price), plan.period && /* @__PURE__ */ import_react19.default.createElement("span", { className: "text-xs text-neutral-500" }, plan.period)), /* @__PURE__ */ import_react19.default.createElement("p", { className: "text-xs text-neutral-500 mt-2" }, plan.description)),
|
|
569
|
+
plan.isPremium ? /* @__PURE__ */ import_react19.default.createElement(ThreeDButton, { href: plan.ctaHref, className: "mb-6 w-full" }, plan.ctaText) : /* @__PURE__ */ import_react19.default.createElement(
|
|
570
|
+
import_link4.default,
|
|
571
|
+
{
|
|
572
|
+
href: plan.ctaHref,
|
|
573
|
+
className: "w-full py-2 px-5 rounded-full border border-neutral-100 text-center text-black text-xs hover:bg-neutral-50 transition-colors mb-6 outline-none"
|
|
574
|
+
},
|
|
575
|
+
plan.ctaText
|
|
576
|
+
),
|
|
577
|
+
/* @__PURE__ */ import_react19.default.createElement("div", { className: "flex flex-col gap-3" }, plan.features.map((feature, featureIdx) => {
|
|
578
|
+
const isAvailable = feature.value !== false;
|
|
579
|
+
const valueText = typeof feature.value === "string" ? feature.value : "";
|
|
580
|
+
return /* @__PURE__ */ import_react19.default.createElement("div", { key: featureIdx, className: "flex items-center gap-2.5" }, isAvailable ? /* @__PURE__ */ import_react19.default.createElement(CheckIcon, null) : /* @__PURE__ */ import_react19.default.createElement(CrossIcon, null), /* @__PURE__ */ import_react19.default.createElement("span", { className: `text-xs ${isAvailable ? "text-neutral-800" : "text-neutral-400"}` }, feature.name, valueText && /* @__PURE__ */ import_react19.default.createElement("span", { className: "text-neutral-500 ml-1" }, "(", valueText, ")")));
|
|
581
|
+
}))
|
|
582
|
+
)))));
|
|
583
|
+
};
|
|
584
|
+
|
|
585
|
+
// src/components/ManagedBoardBlock.tsx
|
|
586
|
+
var import_react20 = __toESM(require("react"));
|
|
587
|
+
var import_image5 = __toESM(require("next/image"));
|
|
588
|
+
var import_react21 = require("@hugeicons/react");
|
|
589
|
+
var import_core_free_icons4 = require("@hugeicons/core-free-icons");
|
|
590
|
+
var MemberSocialLink = ({ href, icon, label, name }) => /* @__PURE__ */ import_react20.default.createElement(
|
|
591
|
+
"a",
|
|
592
|
+
{
|
|
593
|
+
href,
|
|
594
|
+
target: "_blank",
|
|
595
|
+
rel: "noopener noreferrer",
|
|
596
|
+
className: "text-neutral-400 hover:text-black transition-colors",
|
|
597
|
+
"aria-label": `${name} on ${label}`
|
|
598
|
+
},
|
|
599
|
+
/* @__PURE__ */ import_react20.default.createElement(import_react21.HugeiconsIcon, { icon, size: 16 })
|
|
600
|
+
);
|
|
601
|
+
var ManagedBoardBlock = ({
|
|
602
|
+
tagline,
|
|
603
|
+
title,
|
|
604
|
+
members,
|
|
605
|
+
contactText,
|
|
606
|
+
contactEmail
|
|
607
|
+
}) => {
|
|
608
|
+
return /* @__PURE__ */ import_react20.default.createElement("div", { className: "grow pt-28 pb-20 px-3 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ import_react20.default.createElement("div", { className: "relative w-full mx-auto overflow-hidden max-w-7xl" }, /* @__PURE__ */ import_react20.default.createElement(
|
|
609
|
+
"div",
|
|
610
|
+
{
|
|
611
|
+
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
612
|
+
style: {
|
|
613
|
+
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")`,
|
|
614
|
+
backgroundRepeat: "repeat"
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
), /* @__PURE__ */ import_react20.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react20.default.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10" }, tagline && /* @__PURE__ */ import_react20.default.createElement("span", { className: "text-[10px] tracking-[0.4em] text-neutral-500 text-left block uppercase" }, tagline), /* @__PURE__ */ import_react20.default.createElement("h1", { className: "text-4xl md:text-5xl mt-4 text-black tracking-tight text-left" }, title)), /* @__PURE__ */ import_react20.default.createElement("div", { className: "relative px-5 md:px-12 py-4 md:py-8" }, /* @__PURE__ */ import_react20.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-5 md:gap-8" }, members.map((member, idx) => /* @__PURE__ */ import_react20.default.createElement("div", { key: idx, className: "relative p-6 md:p-8 rounded-2xl bg-white flex flex-col transition-all group" }, /* @__PURE__ */ import_react20.default.createElement("div", { className: "flex items-start space-x-4 md:space-x-5 mb-5 md:mb-6" }, /* @__PURE__ */ import_react20.default.createElement("div", { className: "relative w-14 h-14 md:w-16 md:h-16 shrink-0 bg-white overflow-hidden rounded-xl" }, /* @__PURE__ */ import_react20.default.createElement(
|
|
618
|
+
import_image5.default,
|
|
619
|
+
{
|
|
620
|
+
src: member.imageSrc,
|
|
621
|
+
alt: member.name,
|
|
622
|
+
fill: true,
|
|
623
|
+
sizes: "(max-width: 768px) 56px, 64px",
|
|
624
|
+
className: "object-cover grayscale opacity-100 transition-opacity"
|
|
625
|
+
}
|
|
626
|
+
)), /* @__PURE__ */ import_react20.default.createElement("div", { className: "pt-1" }, /* @__PURE__ */ import_react20.default.createElement("h3", { className: "text-[14px] md:text-[15px] text-black tracking-tight" }, member.name), /* @__PURE__ */ import_react20.default.createElement("p", { className: "text-[10px] tracking-[0.2em] text-neutral-500 mt-1.5 uppercase" }, member.title))), /* @__PURE__ */ import_react20.default.createElement("p", { className: "text-[13px] leading-[1.8] text-neutral-600 text-left grow mb-8" }, member.bio), /* @__PURE__ */ import_react20.default.createElement("div", { className: "space-y-6 mt-auto" }, /* @__PURE__ */ import_react20.default.createElement("div", { className: "w-full *:w-full" }, /* @__PURE__ */ import_react20.default.createElement(ThreeDButton, { href: member.website }, "Visit Website")), /* @__PURE__ */ import_react20.default.createElement("div", { className: "flex space-x-4 pt-5" }, member.twitterHandle && member.twitterHandle.length > 0 && /* @__PURE__ */ import_react20.default.createElement(
|
|
627
|
+
MemberSocialLink,
|
|
628
|
+
{
|
|
629
|
+
href: `https://x.com/${member.twitterHandle}`,
|
|
630
|
+
icon: import_core_free_icons4.TwitterIcon,
|
|
631
|
+
label: "X",
|
|
632
|
+
name: member.name
|
|
633
|
+
}
|
|
634
|
+
), member.linkedinHandle && member.linkedinHandle.length > 0 && /* @__PURE__ */ import_react20.default.createElement(
|
|
635
|
+
MemberSocialLink,
|
|
636
|
+
{
|
|
637
|
+
href: member.linkedinHandle,
|
|
638
|
+
icon: import_core_free_icons4.LinkedinIcon,
|
|
639
|
+
label: "LinkedIn",
|
|
640
|
+
name: member.name
|
|
641
|
+
}
|
|
642
|
+
))))))), (contactText || contactEmail) && /* @__PURE__ */ import_react20.default.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10 pb-12 md:pb-14" }, /* @__PURE__ */ import_react20.default.createElement("p", { className: "text-[12px] text-neutral-600 text-left" }, contactText, contactEmail && /* @__PURE__ */ import_react20.default.createElement("a", { href: `mailto:${contactEmail}`, className: "text-black decoration-black decoration-2 underline-offset-4 ml-1 transition-colors" }, contactEmail))))));
|
|
643
|
+
};
|
|
644
|
+
|
|
645
|
+
// src/components/ManagedProjectsBlock.tsx
|
|
646
|
+
var import_react22 = __toESM(require("react"));
|
|
647
|
+
var import_link5 = __toESM(require("next/link"));
|
|
648
|
+
var GridSection = ({
|
|
649
|
+
children,
|
|
650
|
+
isLast = false,
|
|
651
|
+
className = "py-8 md:py-10"
|
|
652
|
+
}) => /* @__PURE__ */ import_react22.default.createElement("div", { className: `relative px-5 md:px-12 ${className} ${!isLast ? "border-b border-neutral-100" : ""}` }, children);
|
|
653
|
+
var ManagedProjectsBlock = ({
|
|
654
|
+
tagline,
|
|
655
|
+
title,
|
|
656
|
+
projects
|
|
657
|
+
}) => {
|
|
658
|
+
return /* @__PURE__ */ import_react22.default.createElement("div", { className: "grow pt-28 pb-20 px-3 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ import_react22.default.createElement("div", { className: "relative bg-white rounded-2xl w-full max-w-5xl mx-auto overflow-hidden" }, /* @__PURE__ */ import_react22.default.createElement(
|
|
659
|
+
"div",
|
|
660
|
+
{
|
|
661
|
+
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
662
|
+
style: {
|
|
663
|
+
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")`,
|
|
664
|
+
backgroundRepeat: "repeat"
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
), /* @__PURE__ */ import_react22.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react22.default.createElement(GridSection, null, tagline && /* @__PURE__ */ import_react22.default.createElement("span", { className: "text-[10px] tracking-[0.4em] text-neutral-500 text-left block uppercase" }, tagline), /* @__PURE__ */ import_react22.default.createElement("h1", { className: "text-4xl md:text-5xl mt-4 text-black tracking-tight text-left" }, title)), projects.map((project, index) => {
|
|
668
|
+
const isLast = index === projects.length - 1;
|
|
669
|
+
const projectContent = /* @__PURE__ */ import_react22.default.createElement("div", { className: "group block w-full" }, /* @__PURE__ */ import_react22.default.createElement("div", { className: "flex flex-col md:flex-row md:items-center justify-between gap-3 md:gap-4 mb-4 md:mb-5" }, /* @__PURE__ */ import_react22.default.createElement("div", { className: "flex items-center gap-3 md:gap-4" }, /* @__PURE__ */ import_react22.default.createElement("h2", { className: "text-[16px] text-black transition-all flex items-center gap-2" }, project.title, /* @__PURE__ */ import_react22.default.createElement("span", { className: "text-[12px] opacity-0 -translate-x-2 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-300" }, project.isExternal ? "\u2197" : "\u2192")), /* @__PURE__ */ import_react22.default.createElement("span", { className: `text-[9px] px-2.5 py-1 rounded-full tracking-[0.15em] uppercase transition-colors ${project.status.toLowerCase() === "production" ? "bg-black text-white" : "bg-neutral-100 text-neutral-500 group-hover:bg-neutral-200 group-hover:text-black"}` }, project.status)), /* @__PURE__ */ import_react22.default.createElement("span", { className: "text-[10px] tracking-[0.2em] text-neutral-500 shrink-0 uppercase" }, project.date)), /* @__PURE__ */ import_react22.default.createElement("p", { className: "text-[13px] leading-[1.8] text-neutral-600 max-w-4xl text-left transition-colors group-hover:text-black" }, project.description));
|
|
670
|
+
return /* @__PURE__ */ import_react22.default.createElement(GridSection, { key: project.id || index, isLast, className: isLast ? "py-8 md:py-10 pb-12 md:pb-14" : "py-8 md:py-10" }, project.isExternal ? /* @__PURE__ */ import_react22.default.createElement("a", { href: project.link, target: "_blank", rel: "noopener noreferrer", className: "block outline-none" }, projectContent) : /* @__PURE__ */ import_react22.default.createElement(import_link5.default, { href: project.link, className: "block outline-none" }, projectContent));
|
|
671
|
+
}))));
|
|
672
|
+
};
|
|
673
|
+
|
|
674
|
+
// src/components/ManagedNotFoundBlock.tsx
|
|
675
|
+
var import_react23 = __toESM(require("react"));
|
|
676
|
+
var import_link6 = __toESM(require("next/link"));
|
|
677
|
+
var ManagedNotFoundBlock = ({
|
|
678
|
+
title = "404 - Page Not Found",
|
|
679
|
+
description = "The page you are looking for does not exist or has been moved.",
|
|
680
|
+
backLinkText = "\u2190 Go back to Homepage",
|
|
681
|
+
backLinkHref = "/"
|
|
682
|
+
}) => {
|
|
683
|
+
return /* @__PURE__ */ import_react23.default.createElement("main", { className: "min-h-screen flex items-center justify-center relative z-20 bg-transparent" }, /* @__PURE__ */ import_react23.default.createElement("div", { className: "p-6 w-full max-w-md mx-auto text-center" }, /* @__PURE__ */ import_react23.default.createElement("div", { className: "mb-8 flex justify-center" }, /* @__PURE__ */ import_react23.default.createElement(
|
|
684
|
+
"svg",
|
|
685
|
+
{
|
|
686
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
687
|
+
viewBox: "0 0 24 24",
|
|
688
|
+
className: "w-12 h-12 fill-neutral-200"
|
|
689
|
+
},
|
|
690
|
+
/* @__PURE__ */ import_react23.default.createElement("path", { fillRule: "evenodd", d: "M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z", clipRule: "evenodd" })
|
|
691
|
+
)), /* @__PURE__ */ import_react23.default.createElement("h1", { className: "text-xl md:text-3xl text-black tracking-tight mb-4" }, title), /* @__PURE__ */ import_react23.default.createElement("p", { className: "text-[13px] leading-[1.8] text-neutral-600 mb-12" }, description), /* @__PURE__ */ import_react23.default.createElement(
|
|
692
|
+
import_link6.default,
|
|
693
|
+
{
|
|
694
|
+
href: backLinkHref,
|
|
695
|
+
className: "text-[11px] tracking-[0.2em] text-neutral-400 hover:text-black transition-colors pb-1 uppercase"
|
|
696
|
+
},
|
|
697
|
+
backLinkText
|
|
698
|
+
)));
|
|
699
|
+
};
|
|
700
|
+
|
|
701
|
+
// src/components/PageSpinner.tsx
|
|
702
|
+
var import_react24 = __toESM(require("react"));
|
|
703
|
+
var import_react25 = require("@hugeicons/react");
|
|
704
|
+
var import_core_free_icons5 = require("@hugeicons/core-free-icons");
|
|
705
|
+
var PageSpinner = ({
|
|
706
|
+
className = "",
|
|
707
|
+
iconClassName = "text-black",
|
|
708
|
+
size = 32
|
|
709
|
+
}) => {
|
|
710
|
+
return (
|
|
711
|
+
// z-[100] ensures it sits above absolute headers and modals
|
|
712
|
+
/* @__PURE__ */ import_react24.default.createElement("div", { className: `fixed inset-0 z-100 flex flex-col items-center justify-center w-full h-full pointer-events-none ${className}` }, /* @__PURE__ */ import_react24.default.createElement(
|
|
713
|
+
import_react25.HugeiconsIcon,
|
|
714
|
+
{
|
|
715
|
+
icon: import_core_free_icons5.Loading03Icon,
|
|
716
|
+
size,
|
|
717
|
+
className: `animate-spin mb-4 ${iconClassName}`
|
|
718
|
+
}
|
|
719
|
+
))
|
|
720
|
+
);
|
|
721
|
+
};
|
|
722
|
+
|
|
723
|
+
// src/components/ManagedToaster.tsx
|
|
724
|
+
var import_react26 = __toESM(require("react"));
|
|
725
|
+
var import_react_hot_toast = require("react-hot-toast");
|
|
726
|
+
var ManagedToaster = (props) => {
|
|
727
|
+
return /* @__PURE__ */ import_react26.default.createElement(
|
|
728
|
+
import_react_hot_toast.Toaster,
|
|
729
|
+
{
|
|
730
|
+
position: "top-right",
|
|
731
|
+
...props,
|
|
732
|
+
toastOptions: {
|
|
733
|
+
style: {
|
|
734
|
+
background: "#171717",
|
|
735
|
+
color: "#fafafa",
|
|
736
|
+
fontSize: "11px",
|
|
737
|
+
padding: "8px 12px",
|
|
738
|
+
borderRadius: "8px",
|
|
739
|
+
minWidth: "fit-content",
|
|
740
|
+
boxShadow: "0 4px 6px -1px rgba(0, 0, 0, 0.5)"
|
|
741
|
+
},
|
|
742
|
+
success: {
|
|
743
|
+
iconTheme: {
|
|
744
|
+
primary: "#fafafa",
|
|
745
|
+
secondary: "#171717"
|
|
746
|
+
}
|
|
747
|
+
},
|
|
748
|
+
error: {
|
|
749
|
+
iconTheme: {
|
|
750
|
+
primary: "#fafafa",
|
|
751
|
+
secondary: "#171717"
|
|
752
|
+
}
|
|
753
|
+
},
|
|
754
|
+
...props.toastOptions
|
|
755
|
+
// Allows overriding specific toast styles if needed
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
);
|
|
759
|
+
};
|
|
760
|
+
|
|
761
|
+
// src/components/ManagedNewsletterSplitBlock.tsx
|
|
762
|
+
var import_react27 = __toESM(require("react"));
|
|
763
|
+
var import_image6 = __toESM(require("next/image"));
|
|
764
|
+
var ManagedNewsletterSplitBlock = ({
|
|
765
|
+
tagline,
|
|
766
|
+
title,
|
|
767
|
+
subtitle,
|
|
768
|
+
description,
|
|
769
|
+
imageSrc,
|
|
770
|
+
imageAlt = "Profile Image",
|
|
771
|
+
dividerText = "CONTACT",
|
|
772
|
+
ctaText = "Connect With Me",
|
|
773
|
+
ctaHref = "/contact-us",
|
|
774
|
+
children
|
|
775
|
+
}) => {
|
|
776
|
+
return /* @__PURE__ */ import_react27.default.createElement("div", { className: "grow flex flex-col md:flex-row relative w-full pt-32 md:pt-0 bg-white" }, /* @__PURE__ */ import_react27.default.createElement("div", { className: "hidden md:block md:w-1/2 relative min-h-screen overflow-hidden" }, /* @__PURE__ */ import_react27.default.createElement(
|
|
777
|
+
import_image6.default,
|
|
778
|
+
{
|
|
779
|
+
src: imageSrc,
|
|
780
|
+
alt: imageAlt,
|
|
781
|
+
fill: true,
|
|
782
|
+
priority: true,
|
|
783
|
+
className: "object-cover object-top grayscale opacity-60",
|
|
784
|
+
quality: 100
|
|
785
|
+
}
|
|
786
|
+
), /* @__PURE__ */ import_react27.default.createElement(
|
|
787
|
+
"div",
|
|
788
|
+
{
|
|
789
|
+
className: "absolute inset-0 z-10 pointer-events-none",
|
|
790
|
+
style: {
|
|
791
|
+
background: "linear-gradient(to right, rgba(255,255,255,0) 30%, #ffffff 100%)"
|
|
792
|
+
}
|
|
793
|
+
}
|
|
794
|
+
), /* @__PURE__ */ import_react27.default.createElement(
|
|
795
|
+
"div",
|
|
796
|
+
{
|
|
797
|
+
className: "absolute inset-x-0 bottom-0 h-40 z-10 pointer-events-none",
|
|
798
|
+
style: {
|
|
799
|
+
background: "linear-gradient(to bottom, rgba(255,255,255,0) 0%, #ffffff 100%)"
|
|
800
|
+
}
|
|
801
|
+
}
|
|
802
|
+
)), /* @__PURE__ */ import_react27.default.createElement("div", { className: "w-full md:w-1/2 flex mt-22 flex-col items-center justify-center p-4 md:p-12 relative z-20" }, /* @__PURE__ */ import_react27.default.createElement("div", { className: "relative w-full max-w-lg p-8 md:p-12 text-center md:text-left transition-all duration-700 ease-out" }, /* @__PURE__ */ import_react27.default.createElement(
|
|
803
|
+
"div",
|
|
804
|
+
{
|
|
805
|
+
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
806
|
+
style: {
|
|
807
|
+
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")`,
|
|
808
|
+
backgroundRepeat: "repeat"
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
), /* @__PURE__ */ import_react27.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react27.default.createElement("div", { className: "mb-10 border-b border-neutral-200 pb-8 text-center md:text-left" }, tagline && /* @__PURE__ */ import_react27.default.createElement("span", { className: "text-[10px] tracking-[0.4em] text-neutral-500 uppercase" }, tagline), /* @__PURE__ */ import_react27.default.createElement("h1", { className: "text-4xl md:text-5xl mt-4 text-black tracking-tight mb-4" }, title), subtitle && /* @__PURE__ */ import_react27.default.createElement("p", { className: "text-[11px] tracking-[0.2em] text-neutral-500 uppercase" }, subtitle)), /* @__PURE__ */ import_react27.default.createElement("p", { className: "text-[13px] leading-[1.8] text-neutral-600 mb-10 text-center md:text-left" }, description), children && /* @__PURE__ */ import_react27.default.createElement("div", { className: "mb-8 text-left" }, children), /* @__PURE__ */ import_react27.default.createElement("div", { className: "text-center md:text-left mt-10 space-y-6" }, dividerText && /* @__PURE__ */ import_react27.default.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ import_react27.default.createElement("div", { className: "grow h-px bg-neutral-200" }), /* @__PURE__ */ import_react27.default.createElement("span", { className: "shrink mx-4 text-[10px] tracking-[0.2em] text-neutral-400 uppercase" }, dividerText), /* @__PURE__ */ import_react27.default.createElement("div", { className: "grow h-px bg-neutral-200" })), ctaText && ctaHref && /* @__PURE__ */ import_react27.default.createElement("div", { className: "w-full *:w-full" }, /* @__PURE__ */ import_react27.default.createElement(
|
|
812
|
+
ThreeDButton,
|
|
813
|
+
{
|
|
814
|
+
href: ctaHref,
|
|
815
|
+
className: "py-3 uppercase tracking-widest text-[11px]"
|
|
816
|
+
},
|
|
817
|
+
ctaText
|
|
818
|
+
)))))));
|
|
819
|
+
};
|
|
820
|
+
|
|
821
|
+
// src/components/ReusableInputs.tsx
|
|
822
|
+
var import_react28 = __toESM(require("react"));
|
|
823
|
+
var TextInput = ({
|
|
824
|
+
label,
|
|
825
|
+
value,
|
|
826
|
+
onChange,
|
|
827
|
+
placeholder,
|
|
828
|
+
maxLength,
|
|
829
|
+
disabled,
|
|
830
|
+
readOnly,
|
|
831
|
+
onClick
|
|
832
|
+
}) => /* @__PURE__ */ import_react28.default.createElement("div", { className: "space-y-2 flex-1 w-full", onClick }, /* @__PURE__ */ import_react28.default.createElement("label", { className: "text-[10px] text-neutral-400 tracking-[0.2em] block uppercase" }, label), /* @__PURE__ */ import_react28.default.createElement(
|
|
833
|
+
"input",
|
|
834
|
+
{
|
|
835
|
+
type: "text",
|
|
836
|
+
value,
|
|
837
|
+
onChange: (e) => onChange(e.target.value.substring(0, maxLength || 100)),
|
|
838
|
+
placeholder,
|
|
839
|
+
disabled,
|
|
840
|
+
readOnly,
|
|
841
|
+
autoComplete: "off",
|
|
842
|
+
spellCheck: "false",
|
|
843
|
+
className: `w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-200 text-black transition-all outline-none focus:border-black disabled:opacity-50 ${readOnly ? "cursor-pointer" : ""}`
|
|
844
|
+
}
|
|
845
|
+
));
|
|
846
|
+
var NumberInput = ({
|
|
847
|
+
label,
|
|
848
|
+
value,
|
|
849
|
+
onChange,
|
|
850
|
+
placeholder,
|
|
851
|
+
maxLength,
|
|
852
|
+
disabled
|
|
853
|
+
}) => /* @__PURE__ */ import_react28.default.createElement("div", { className: "space-y-2 flex-1 w-full" }, /* @__PURE__ */ import_react28.default.createElement("label", { className: "text-[10px] text-neutral-400 tracking-[0.2em] block uppercase" }, label), /* @__PURE__ */ import_react28.default.createElement(
|
|
854
|
+
"input",
|
|
855
|
+
{
|
|
856
|
+
type: "text",
|
|
857
|
+
value,
|
|
858
|
+
onChange: (e) => {
|
|
859
|
+
const numOnly = e.target.value.replace(/[^0-9]/g, "");
|
|
860
|
+
onChange(numOnly.substring(0, maxLength || 20));
|
|
861
|
+
},
|
|
862
|
+
placeholder,
|
|
863
|
+
disabled,
|
|
864
|
+
autoComplete: "off",
|
|
865
|
+
spellCheck: "false",
|
|
866
|
+
className: "w-full px-2 py-3 text-sm bg-transparent border-b border-neutral-200 text-black transition-all outline-none focus:border-black disabled:opacity-50"
|
|
867
|
+
}
|
|
868
|
+
));
|
|
869
|
+
|
|
870
|
+
// src/components/PortfolioHero.tsx
|
|
871
|
+
var import_react29 = __toESM(require("react"));
|
|
872
|
+
var import_link7 = __toESM(require("next/link"));
|
|
873
|
+
var import_image7 = __toESM(require("next/image"));
|
|
874
|
+
var import_react30 = require("@hugeicons/react");
|
|
875
|
+
var import_core_free_icons6 = require("@hugeicons/core-free-icons");
|
|
876
|
+
var useScrollAnimation = () => {
|
|
877
|
+
const elementRef = (0, import_react29.useRef)(null);
|
|
878
|
+
(0, import_react29.useEffect)(() => {
|
|
879
|
+
const el = elementRef.current;
|
|
880
|
+
if (!el) return;
|
|
881
|
+
const observer = new IntersectionObserver(
|
|
882
|
+
(entries) => {
|
|
883
|
+
entries.forEach((entry) => {
|
|
884
|
+
if (entry.isIntersecting) {
|
|
885
|
+
entry.target.classList.add("opacity-100", "translate-y-0");
|
|
886
|
+
entry.target.classList.remove("opacity-0", "translate-y-5");
|
|
887
|
+
observer.unobserve(entry.target);
|
|
888
|
+
}
|
|
889
|
+
});
|
|
890
|
+
},
|
|
891
|
+
{ threshold: 0.1 }
|
|
892
|
+
);
|
|
893
|
+
observer.observe(el);
|
|
894
|
+
return () => {
|
|
895
|
+
if (el) observer.unobserve(el);
|
|
896
|
+
};
|
|
897
|
+
}, []);
|
|
898
|
+
return elementRef;
|
|
899
|
+
};
|
|
900
|
+
var PortfolioHero = ({
|
|
901
|
+
imageSrc,
|
|
902
|
+
imageAlt = "Profile Avatar",
|
|
903
|
+
name,
|
|
904
|
+
socialLabel,
|
|
905
|
+
socialLinkText,
|
|
906
|
+
socialLinkHref,
|
|
907
|
+
bio,
|
|
908
|
+
primaryCtaText,
|
|
909
|
+
primaryCtaHref,
|
|
910
|
+
secondaryCtaText,
|
|
911
|
+
secondaryCtaHref
|
|
912
|
+
}) => {
|
|
913
|
+
const heroContentRef = useScrollAnimation();
|
|
914
|
+
return /* @__PURE__ */ import_react29.default.createElement("section", { className: "pt-44 md:pt-52 pb-16 px-6 md:px-12 flex flex-col relative overflow-hidden z-10 w-full bg-white" }, /* @__PURE__ */ import_react29.default.createElement(
|
|
915
|
+
"div",
|
|
916
|
+
{
|
|
917
|
+
ref: heroContentRef,
|
|
918
|
+
className: "w-full opacity-0 translate-y-5 transition-all duration-1000 ease-out relative z-10"
|
|
919
|
+
},
|
|
920
|
+
/* @__PURE__ */ import_react29.default.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center gap-5 sm:gap-8 mb-10" }, /* @__PURE__ */ import_react29.default.createElement("div", { className: "relative w-20 h-20 sm:w-32 sm:h-32 rounded-full overflow-hidden border border-neutral-200 shrink-0 shadow-sm" }, /* @__PURE__ */ import_react29.default.createElement(
|
|
921
|
+
import_image7.default,
|
|
922
|
+
{
|
|
923
|
+
src: imageSrc,
|
|
924
|
+
alt: imageAlt,
|
|
925
|
+
fill: true,
|
|
926
|
+
priority: true,
|
|
927
|
+
className: "object-cover object-top grayscale",
|
|
928
|
+
sizes: "(max-width: 640px) 80px, 128px",
|
|
929
|
+
quality: 100
|
|
930
|
+
}
|
|
931
|
+
)), /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex flex-col text-left" }, /* @__PURE__ */ import_react29.default.createElement("h1", { className: "text-3xl sm:text-5xl animate-gradient-wipe lg:text-6xl tracking-tight text-black leading-none mb-3" }, name), socialLabel && /* @__PURE__ */ import_react29.default.createElement("span", { className: "text-[10px] tracking-[0.2em] text-neutral-500 uppercase" }, socialLabel), socialLinkText && socialLinkHref && /* @__PURE__ */ import_react29.default.createElement(
|
|
932
|
+
"a",
|
|
933
|
+
{
|
|
934
|
+
href: socialLinkHref,
|
|
935
|
+
target: "_blank",
|
|
936
|
+
rel: "noopener noreferrer",
|
|
937
|
+
className: "text-[12px] md:text-[14px] text-black hover:text-neutral-500 transition-colors mt-1 underline underline-offset-4 decoration-neutral-300"
|
|
938
|
+
},
|
|
939
|
+
socialLinkText
|
|
940
|
+
))),
|
|
941
|
+
/* @__PURE__ */ import_react29.default.createElement("p", { className: "text-[13px] md:text-[16px] leading-[1.8] max-w-4xl mb-12 text-neutral-600" }, bio),
|
|
942
|
+
/* @__PURE__ */ import_react29.default.createElement("div", { className: "flex flex-col sm:flex-row gap-4 w-full sm:w-auto" }, primaryCtaText && primaryCtaHref && /* @__PURE__ */ import_react29.default.createElement("div", { className: "w-full sm:w-auto *:w-full" }, /* @__PURE__ */ import_react29.default.createElement(
|
|
943
|
+
ThreeDButton,
|
|
944
|
+
{
|
|
945
|
+
href: primaryCtaHref,
|
|
946
|
+
className: "py-3 uppercase tracking-widest text-[11px]"
|
|
947
|
+
},
|
|
948
|
+
primaryCtaText
|
|
949
|
+
)), secondaryCtaText && secondaryCtaHref && /* @__PURE__ */ import_react29.default.createElement(
|
|
950
|
+
import_link7.default,
|
|
951
|
+
{
|
|
952
|
+
href: secondaryCtaHref,
|
|
953
|
+
className: "w-full sm:w-auto inline-flex items-center justify-center gap-3 text-[11px] tracking-[0.2em] uppercase rounded-full px-8 py-3.5 bg-neutral-100 transition-colors text-black hover:bg-neutral-200 outline-none"
|
|
954
|
+
},
|
|
955
|
+
secondaryCtaText,
|
|
956
|
+
/* @__PURE__ */ import_react29.default.createElement(import_react30.HugeiconsIcon, { icon: import_core_free_icons6.ArrowRight01Icon, size: 16 })
|
|
957
|
+
))
|
|
958
|
+
));
|
|
959
|
+
};
|
|
960
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
961
|
+
0 && (module.exports = {
|
|
962
|
+
AITranscriptionFeature,
|
|
963
|
+
AppBento2,
|
|
964
|
+
Faq,
|
|
965
|
+
FeatureScroll,
|
|
966
|
+
Footer,
|
|
967
|
+
Header,
|
|
968
|
+
HeroSection,
|
|
969
|
+
ManagedBoardBlock,
|
|
970
|
+
ManagedContactBlock,
|
|
971
|
+
ManagedDocument,
|
|
972
|
+
ManagedNewsletterSplitBlock,
|
|
973
|
+
ManagedNotFoundBlock,
|
|
974
|
+
ManagedPricingBlock,
|
|
975
|
+
ManagedProjectsBlock,
|
|
976
|
+
ManagedToaster,
|
|
977
|
+
NumberInput,
|
|
978
|
+
PageSpinner,
|
|
979
|
+
PlatformFeatures,
|
|
980
|
+
PortfolioHero,
|
|
981
|
+
TextInput,
|
|
982
|
+
ThreeDButton
|
|
983
|
+
});
|