@prosophia/lab-minimal 0.0.4 → 0.0.5

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.js CHANGED
@@ -49,6 +49,7 @@ __export(index_exports, {
49
49
  ContactCTA: () => ContactCTA,
50
50
  Footer: () => Footer,
51
51
  Header: () => Header,
52
+ HomePage: () => HomePage,
52
53
  ScrollRevealSection: () => ScrollRevealSection,
53
54
  StaggeredGrid: () => StaggeredGrid,
54
55
  ThemeToggle: () => ThemeToggle,
@@ -87,19 +88,13 @@ var import_next_themes2 = require("next-themes");
87
88
  var import_link = __toESM(require("next/link"));
88
89
  var import_react2 = require("react");
89
90
  var import_navigation = require("next/navigation");
90
-
91
- // src/components/Layout.module.css
92
- var Layout_default = {};
91
+ var import_Layout = __toESM(require("./Layout.module.css"));
93
92
 
94
93
  // src/components/ThemeToggle.tsx
95
94
  var import_next_themes = require("next-themes");
96
95
  var import_react = require("react");
97
96
  var import_framer_motion = require("framer-motion");
98
-
99
- // src/components/ThemeToggle.module.css
100
- var ThemeToggle_default = {};
101
-
102
- // src/components/ThemeToggle.tsx
97
+ var import_ThemeToggle = __toESM(require("./ThemeToggle.module.css"));
103
98
  var import_jsx_runtime = require("react/jsx-runtime");
104
99
  function ThemeToggle() {
105
100
  const { theme, setTheme, resolvedTheme } = (0, import_next_themes.useTheme)();
@@ -108,7 +103,7 @@ function ThemeToggle() {
108
103
  setMounted(true);
109
104
  }, []);
110
105
  if (!mounted) {
111
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: ThemeToggle_default.togglePlaceholder });
106
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: import_ThemeToggle.default.togglePlaceholder });
112
107
  }
113
108
  const isDark = resolvedTheme === "dark";
114
109
  const toggleTheme = () => {
@@ -117,12 +112,12 @@ function ThemeToggle() {
117
112
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
118
113
  import_framer_motion.motion.button,
119
114
  {
120
- className: ThemeToggle_default.toggle,
115
+ className: import_ThemeToggle.default.toggle,
121
116
  onClick: toggleTheme,
122
117
  "aria-label": `Switch to ${isDark ? "light" : "dark"} mode`,
123
118
  whileTap: { scale: 0.95 },
124
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: ThemeToggle_default.track, children: [
125
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: `${ThemeToggle_default.icon} ${ThemeToggle_default.sunIcon} ${!isDark ? ThemeToggle_default.iconActive : ""}`, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
119
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: import_ThemeToggle.default.track, children: [
120
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: `${import_ThemeToggle.default.icon} ${import_ThemeToggle.default.sunIcon} ${!isDark ? import_ThemeToggle.default.iconActive : ""}`, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
126
121
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "12", cy: "12", r: "5" }),
127
122
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("line", { x1: "12", y1: "1", x2: "12", y2: "3" }),
128
123
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("line", { x1: "12", y1: "21", x2: "12", y2: "23" }),
@@ -136,12 +131,12 @@ function ThemeToggle() {
136
131
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
137
132
  import_framer_motion.motion.span,
138
133
  {
139
- className: ThemeToggle_default.thumb,
134
+ className: import_ThemeToggle.default.thumb,
140
135
  animate: { x: isDark ? 26 : 0 },
141
136
  transition: { type: "spring", stiffness: 500, damping: 30 }
142
137
  }
143
138
  ),
144
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: `${ThemeToggle_default.icon} ${ThemeToggle_default.moonIcon} ${isDark ? ThemeToggle_default.iconActive : ""}`, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" }) }) })
139
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: `${import_ThemeToggle.default.icon} ${import_ThemeToggle.default.moonIcon} ${isDark ? import_ThemeToggle.default.iconActive : ""}`, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" }) }) })
145
140
  ] })
146
141
  }
147
142
  );
@@ -193,8 +188,8 @@ function Header({ settings }) {
193
188
  if (href === "/") return pathname === "/";
194
189
  return pathname.startsWith(href);
195
190
  };
196
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("header", { className: `${Layout_default.header} ${scrolled ? Layout_default.headerScrolled : ""}`, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: Layout_default.navContainer, children: [
197
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_link.default, { href: "/", className: Layout_default.navLogo, "aria-label": "Go to homepage", children: [
191
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("header", { className: `${import_Layout.default.header} ${scrolled ? import_Layout.default.headerScrolled : ""}`, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: import_Layout.default.navContainer, children: [
192
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_link.default, { href: "/", className: import_Layout.default.navLogo, "aria-label": "Go to homepage", children: [
198
193
  /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
199
194
  "svg",
200
195
  {
@@ -240,37 +235,37 @@ function Header({ settings }) {
240
235
  ),
241
236
  /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { children: [
242
237
  settings.labName || "Research",
243
- settings.labNameAccent && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { className: Layout_default.navLogoAccent, children: [
238
+ settings.labNameAccent && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { className: import_Layout.default.navLogoAccent, children: [
244
239
  " ",
245
240
  settings.labNameAccent
246
241
  ] })
247
242
  ] })
248
243
  ] }),
249
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("nav", { className: Layout_default.desktopNav, "aria-label": "Main navigation", children: navLinks.map((link) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
244
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("nav", { className: import_Layout.default.desktopNav, "aria-label": "Main navigation", children: navLinks.map((link) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
250
245
  import_link.default,
251
246
  {
252
247
  href: link.href,
253
- className: `${Layout_default.navLink} ${isActive(link.href) ? Layout_default.navLinkActive : ""}`,
248
+ className: `${import_Layout.default.navLink} ${isActive(link.href) ? import_Layout.default.navLinkActive : ""}`,
254
249
  children: link.label
255
250
  },
256
251
  link.href
257
252
  )) }),
258
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: Layout_default.navActions, children: [
253
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: import_Layout.default.navActions, children: [
259
254
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ThemeToggle, {}),
260
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_link.default, { href: "/contact", className: Layout_default.navCta, children: "Contact Us" })
255
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_link.default, { href: "/contact", className: import_Layout.default.navCta, children: "Contact Us" })
261
256
  ] }),
262
257
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
263
258
  "button",
264
259
  {
265
- className: Layout_default.menuButton,
260
+ className: import_Layout.default.menuButton,
266
261
  onClick: () => setMenuOpen(!menuOpen),
267
262
  "aria-label": menuOpen ? "Close menu" : "Open menu",
268
263
  "aria-expanded": menuOpen,
269
264
  "aria-controls": "mobile-menu",
270
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { className: Layout_default.menuButtonLines, children: [
271
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: `${Layout_default.menuLine} ${menuOpen ? Layout_default.menuLineOpen1 : ""}` }),
272
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: `${Layout_default.menuLine} ${menuOpen ? Layout_default.menuLineOpen2 : ""}` }),
273
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: `${Layout_default.menuLine} ${menuOpen ? Layout_default.menuLineOpen3 : ""}` })
265
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { className: import_Layout.default.menuButtonLines, children: [
266
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: `${import_Layout.default.menuLine} ${menuOpen ? import_Layout.default.menuLineOpen1 : ""}` }),
267
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: `${import_Layout.default.menuLine} ${menuOpen ? import_Layout.default.menuLineOpen2 : ""}` }),
268
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: `${import_Layout.default.menuLine} ${menuOpen ? import_Layout.default.menuLineOpen3 : ""}` })
274
269
  ] })
275
270
  }
276
271
  ),
@@ -278,13 +273,13 @@ function Header({ settings }) {
278
273
  "div",
279
274
  {
280
275
  id: "mobile-menu",
281
- className: `${Layout_default.mobileMenu} ${menuOpen ? Layout_default.mobileMenuOpen : ""}`,
276
+ className: `${import_Layout.default.mobileMenu} ${menuOpen ? import_Layout.default.mobileMenuOpen : ""}`,
282
277
  "aria-hidden": !menuOpen,
283
278
  children: [
284
279
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
285
280
  "div",
286
281
  {
287
- className: Layout_default.mobileMenuOverlay,
282
+ className: import_Layout.default.mobileMenuOverlay,
288
283
  onClick: () => setMenuOpen(false),
289
284
  "aria-hidden": "true"
290
285
  }
@@ -292,14 +287,14 @@ function Header({ settings }) {
292
287
  /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
293
288
  "nav",
294
289
  {
295
- className: Layout_default.mobileMenuContent,
290
+ className: import_Layout.default.mobileMenuContent,
296
291
  "aria-label": "Mobile navigation",
297
292
  children: [
298
293
  navLinks.map((link, index) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
299
294
  import_link.default,
300
295
  {
301
296
  href: link.href,
302
- className: `${Layout_default.mobileNavLink} ${isActive(link.href) ? Layout_default.mobileNavLinkActive : ""}`,
297
+ className: `${import_Layout.default.mobileNavLink} ${isActive(link.href) ? import_Layout.default.mobileNavLinkActive : ""}`,
303
298
  style: { animationDelay: `${index * 50}ms` },
304
299
  tabIndex: menuOpen ? 0 : -1,
305
300
  children: link.label
@@ -310,7 +305,7 @@ function Header({ settings }) {
310
305
  import_link.default,
311
306
  {
312
307
  href: "/contact",
313
- className: Layout_default.mobileNavCta,
308
+ className: import_Layout.default.mobileNavCta,
314
309
  style: { animationDelay: `${navLinks.length * 50}ms` },
315
310
  tabIndex: menuOpen ? 0 : -1,
316
311
  children: "Contact Us"
@@ -327,9 +322,7 @@ function Header({ settings }) {
327
322
 
328
323
  // src/components/Footer.tsx
329
324
  var import_link2 = __toESM(require("next/link"));
330
-
331
- // src/components/Footer.module.css
332
- var Footer_default = {};
325
+ var import_Footer = __toESM(require("./Footer.module.css"));
333
326
 
334
327
  // src/lib/utils.ts
335
328
  function isValidExternalUrl(url) {
@@ -384,49 +377,49 @@ function isValidSlug(slug) {
384
377
 
385
378
  // src/components/Footer.tsx
386
379
  var import_jsx_runtime3 = require("react/jsx-runtime");
387
- var SocialIcon = ({ href, children }) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("a", { href, target: "_blank", rel: "noopener noreferrer", className: Footer_default.socialIcon, children });
380
+ var SocialIcon = ({ href, children }) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("a", { href, target: "_blank", rel: "noopener noreferrer", className: import_Footer.default.socialIcon, children });
388
381
  function Footer({ settings }) {
389
382
  const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
390
383
  const showPrivacy = settings?.showPrivacyPolicy !== false;
391
384
  const showTerms = settings?.showTerms !== false;
392
385
  const hasLegalLinks = showPrivacy || showTerms;
393
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("footer", { className: Footer_default.footerWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: Footer_default.footerContainer, children: [
394
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: Footer_default.mainFooter, children: [
395
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: Footer_default.footerAbout, children: [
396
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_link2.default, { href: "/", className: Footer_default.footerLogo, children: [
386
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("footer", { className: import_Footer.default.footerWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: import_Footer.default.footerContainer, children: [
387
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: import_Footer.default.mainFooter, children: [
388
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: import_Footer.default.footerAbout, children: [
389
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_link2.default, { href: "/", className: import_Footer.default.footerLogo, children: [
397
390
  settings?.labName || "Cavendish",
398
391
  " ",
399
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: Footer_default.logoAccent, children: settings?.labNameAccent || "Lab" })
392
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: import_Footer.default.logoAccent, children: settings?.labNameAccent || "Lab" })
400
393
  ] }),
401
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: Footer_default.footerDescription, children: settings?.labNameDescription || "Advancing the frontiers of physics and our understanding of the universe." }),
402
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: Footer_default.socials, children: [
394
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: import_Footer.default.footerDescription, children: settings?.labNameDescription || "Advancing the frontiers of physics and our understanding of the universe." }),
395
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: import_Footer.default.socials, children: [
403
396
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(SocialIcon, { href: "#", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z" }) }) }),
404
397
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(SocialIcon, { href: "#", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M18.244 2.25h3.308l-7.227 8.26 8.502 11.24h-6.617l-5.21-6.817-6.044 6.817h-3.308l7.73-8.835-7.73-10.668h6.78l4.522 6.312 5.59-6.312z" }) }) })
405
398
  ] })
406
399
  ] }),
407
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: Footer_default.footerLinksGrid, children: [
408
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: Footer_default.footerColumn, children: [
400
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: import_Footer.default.footerLinksGrid, children: [
401
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: import_Footer.default.footerColumn, children: [
409
402
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h4", { children: "Quick Links" }),
410
403
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_link2.default, { href: "/research", children: "Research" }),
411
404
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_link2.default, { href: "/publications", children: "Publications" }),
412
405
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_link2.default, { href: "/pictures", children: "Gallery" })
413
406
  ] }),
414
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: Footer_default.footerColumn, children: [
407
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: import_Footer.default.footerColumn, children: [
415
408
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h4", { children: "About" }),
416
409
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_link2.default, { href: "/news", children: "News" }),
417
410
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_link2.default, { href: "/people", children: "Our Team" }),
418
411
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_link2.default, { href: "/contact", children: "Contact" })
419
412
  ] }),
420
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: Footer_default.footerColumn, children: [
413
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: import_Footer.default.footerColumn, children: [
421
414
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h4", { children: "Resources" }),
422
415
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_link2.default, { href: "https://www.cam.ac.uk/", children: "University" }),
423
416
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_link2.default, { href: "#", children: "Careers" })
424
417
  ] })
425
418
  ] })
426
419
  ] }),
427
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: Footer_default.footerBottomBar, children: [
420
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: import_Footer.default.footerBottomBar, children: [
428
421
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { children: settings?.footerText || `\xA9 ${currentYear} The Research Group. All Rights Reserved.` }),
429
- hasLegalLinks && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: Footer_default.legalLinks, children: [
422
+ hasLegalLinks && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: import_Footer.default.legalLinks, children: [
430
423
  showPrivacy && (settings?.privacyPolicyUrl && isValidExternalUrl(settings.privacyPolicyUrl) ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("a", { href: settings.privacyPolicyUrl, target: "_blank", rel: "noopener noreferrer", children: "Privacy Policy" }) : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_link2.default, { href: "/privacy", children: "Privacy Policy" })),
431
424
  showTerms && (settings?.termsUrl && isValidExternalUrl(settings.termsUrl) ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("a", { href: settings.termsUrl, target: "_blank", rel: "noopener noreferrer", children: "Terms & Conditions" }) : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_link2.default, { href: "/terms", children: "Terms & Conditions" }))
432
425
  ] })
@@ -462,17 +455,13 @@ function ClientLayout({ children, settings }) {
462
455
 
463
456
  // src/components/ContactCTA.tsx
464
457
  var import_link3 = __toESM(require("next/link"));
465
-
466
- // src/components/ContactCTA.module.css
467
- var ContactCTA_default = {};
468
-
469
- // src/components/ContactCTA.tsx
458
+ var import_ContactCTA = __toESM(require("./ContactCTA.module.css"));
470
459
  var import_jsx_runtime5 = require("react/jsx-runtime");
471
460
  function ContactCTA() {
472
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("section", { className: ContactCTA_default.ctaContainer, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: ContactCTA_default.ctaContent, children: [
473
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("h2", { className: ContactCTA_default.ctaHeading, children: "Interested in Our Research?" }),
474
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: ContactCTA_default.ctaText, children: "Follow our work, explore our publications, or get in touch to discuss potential collaborations." }),
475
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_link3.default, { href: "/contact", className: ContactCTA_default.ctaButton, children: "Contact Us" })
461
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("section", { className: import_ContactCTA.default.ctaContainer, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: import_ContactCTA.default.ctaContent, children: [
462
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("h2", { className: import_ContactCTA.default.ctaHeading, children: "Interested in Our Research?" }),
463
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: import_ContactCTA.default.ctaText, children: "Follow our work, explore our publications, or get in touch to discuss potential collaborations." }),
464
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_link3.default, { href: "/contact", className: import_ContactCTA.default.ctaButton, children: "Contact Us" })
476
465
  ] }) });
477
466
  }
478
467
 
@@ -481,9 +470,7 @@ var import_framer_motion2 = require("framer-motion");
481
470
  var import_react4 = require("react");
482
471
  var import_image = __toESM(require("next/image"));
483
472
  var import_link4 = __toESM(require("next/link"));
484
-
485
- // src/components/HomePage.module.css
486
- var HomePage_default = {};
473
+ var import_HomePage = __toESM(require("./HomePage.module.css"));
487
474
 
488
475
  // src/lib/animations.ts
489
476
  var fadeIn = {
@@ -641,11 +628,11 @@ function AnimatedHero({ heroData, ArrowRightIcon }) {
641
628
  const ref = (0, import_react4.useRef)(null);
642
629
  const { scrollY } = (0, import_framer_motion2.useScroll)();
643
630
  const y = (0, import_framer_motion2.useTransform)(scrollY, [0, 500], [0, 150]);
644
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("section", { className: HomePage_default.heroSection, ref, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: HomePage_default.heroContainer, children: [
631
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("section", { className: import_HomePage.default.heroSection, ref, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: import_HomePage.default.heroContainer, children: [
645
632
  /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
646
633
  import_framer_motion2.motion.div,
647
634
  {
648
- className: HomePage_default.heroContent,
635
+ className: import_HomePage.default.heroContent,
649
636
  initial: "hidden",
650
637
  animate: "visible",
651
638
  variants: fadeInUp,
@@ -653,7 +640,7 @@ function AnimatedHero({ heroData, ArrowRightIcon }) {
653
640
  /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
654
641
  import_framer_motion2.motion.span,
655
642
  {
656
- className: HomePage_default.heroTagline,
643
+ className: import_HomePage.default.heroTagline,
657
644
  initial: { opacity: 0 },
658
645
  animate: { opacity: 1 },
659
646
  transition: { duration: 0.6, delay: 0.2 },
@@ -663,21 +650,21 @@ function AnimatedHero({ heroData, ArrowRightIcon }) {
663
650
  /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
664
651
  import_framer_motion2.motion.h1,
665
652
  {
666
- className: HomePage_default.heroHeading,
653
+ className: import_HomePage.default.heroHeading,
667
654
  initial: { opacity: 0, y: 20 },
668
655
  animate: { opacity: 1, y: 0 },
669
656
  transition: { duration: 0.8, delay: 0.3 },
670
657
  children: [
671
658
  heroData.heading,
672
659
  " ",
673
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: HomePage_default.heroHeadingAccent, children: heroData.headingAccent })
660
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: import_HomePage.default.heroHeadingAccent, children: heroData.headingAccent })
674
661
  ]
675
662
  }
676
663
  ),
677
664
  /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
678
665
  import_framer_motion2.motion.p,
679
666
  {
680
- className: HomePage_default.heroDescription,
667
+ className: import_HomePage.default.heroDescription,
681
668
  initial: { opacity: 0, y: 20 },
682
669
  animate: { opacity: 1, y: 0 },
683
670
  transition: { duration: 0.8, delay: 0.4 },
@@ -687,16 +674,16 @@ function AnimatedHero({ heroData, ArrowRightIcon }) {
687
674
  /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
688
675
  import_framer_motion2.motion.div,
689
676
  {
690
- className: HomePage_default.heroCtas,
677
+ className: import_HomePage.default.heroCtas,
691
678
  initial: { opacity: 0, y: 20 },
692
679
  animate: { opacity: 1, y: 0 },
693
680
  transition: { duration: 0.8, delay: 0.5 },
694
681
  children: [
695
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_link4.default, { href: heroData.ctaLink, className: HomePage_default.heroPrimaryCta, children: [
682
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_link4.default, { href: heroData.ctaLink, className: import_HomePage.default.heroPrimaryCta, children: [
696
683
  heroData.ctaText,
697
684
  /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(ArrowRightIcon, {})
698
685
  ] }),
699
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_link4.default, { href: "/publications", className: HomePage_default.heroSecondaryCta, children: "View Publications" })
686
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_link4.default, { href: "/publications", className: import_HomePage.default.heroSecondaryCta, children: "View Publications" })
700
687
  ]
701
688
  }
702
689
  )
@@ -706,7 +693,7 @@ function AnimatedHero({ heroData, ArrowRightIcon }) {
706
693
  /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
707
694
  import_framer_motion2.motion.div,
708
695
  {
709
- className: HomePage_default.heroImageWrapper,
696
+ className: import_HomePage.default.heroImageWrapper,
710
697
  style: { y },
711
698
  initial: "hidden",
712
699
  animate: "visible",
@@ -720,12 +707,12 @@ function AnimatedHero({ heroData, ArrowRightIcon }) {
720
707
  alt: "Research lab",
721
708
  width: 800,
722
709
  height: 600,
723
- className: HomePage_default.heroImage,
710
+ className: import_HomePage.default.heroImage,
724
711
  priority: true
725
712
  }
726
713
  ),
727
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: HomePage_default.heroImageOverlay })
728
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: HomePage_default.heroImagePlaceholder, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
714
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: import_HomePage.default.heroImageOverlay })
715
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: import_HomePage.default.heroImagePlaceholder, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
729
716
  "svg",
730
717
  {
731
718
  width: "120",
@@ -746,11 +733,26 @@ function AnimatedHero({ heroData, ArrowRightIcon }) {
746
733
  ] }) });
747
734
  }
748
735
 
736
+ // src/components/HomePage.tsx
737
+ var import_jsx_runtime7 = require("react/jsx-runtime");
738
+ function HomePage({
739
+ children,
740
+ settings = null,
741
+ header,
742
+ footer
743
+ }) {
744
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
745
+ header ?? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Header, { settings: settings || {} }),
746
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("main", { children }),
747
+ footer ?? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Footer, { settings: settings || {} })
748
+ ] });
749
+ }
750
+
749
751
  // src/components/AnimatedCard.tsx
750
752
  var import_framer_motion3 = require("framer-motion");
751
- var import_jsx_runtime7 = require("react/jsx-runtime");
753
+ var import_jsx_runtime8 = require("react/jsx-runtime");
752
754
  function AnimatedCard({ children, className, delay = 0 }) {
753
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
755
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
754
756
  import_framer_motion3.motion.div,
755
757
  {
756
758
  className,
@@ -775,10 +777,10 @@ function AnimatedCard({ children, className, delay = 0 }) {
775
777
  );
776
778
  }
777
779
  function AnimatedImage({ children, className }) {
778
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_framer_motion3.motion.div, { className, variants: imageZoom, children });
780
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_framer_motion3.motion.div, { className, variants: imageZoom, children });
779
781
  }
780
782
  function AnimatedSection({ children, className }) {
781
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
783
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
782
784
  import_framer_motion3.motion.section,
783
785
  {
784
786
  className,
@@ -795,12 +797,8 @@ function AnimatedSection({ children, className }) {
795
797
  var import_framer_motion4 = require("framer-motion");
796
798
  var import_image2 = __toESM(require("next/image"));
797
799
  var import_react5 = require("react");
798
-
799
- // src/components/PicturesPage.module.css
800
- var PicturesPage_default = {};
801
-
802
- // src/components/AnimatedGallery.tsx
803
- var import_jsx_runtime8 = require("react/jsx-runtime");
800
+ var import_PicturesPage = __toESM(require("./PicturesPage.module.css"));
801
+ var import_jsx_runtime9 = require("react/jsx-runtime");
804
802
  function useMounted() {
805
803
  const [mounted, setMounted] = (0, import_react5.useState)(false);
806
804
  (0, import_react5.useEffect)(() => {
@@ -811,9 +809,9 @@ function useMounted() {
811
809
  function AnimatedGalleryHeader({ children, className }) {
812
810
  const mounted = useMounted();
813
811
  if (!mounted) {
814
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("header", { className, children });
812
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("header", { className, children });
815
813
  }
816
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
814
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
817
815
  import_framer_motion4.motion.header,
818
816
  {
819
817
  className,
@@ -827,8 +825,8 @@ function AnimatedGalleryHeader({ children, className }) {
827
825
  function AnimatedGalleryGrid({ images }) {
828
826
  const mounted = useMounted();
829
827
  if (!mounted) {
830
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: PicturesPage_default.photosGrid, children: images.map((pic) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: PicturesPage_default.photoCard, children: [
831
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: PicturesPage_default.photoImageWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
828
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: import_PicturesPage.default.photosGrid, children: images.map((pic) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: import_PicturesPage.default.photoCard, children: [
829
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: import_PicturesPage.default.photoImageWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
832
830
  import_image2.default,
833
831
  {
834
832
  src: pic.imageUrl,
@@ -836,16 +834,16 @@ function AnimatedGalleryGrid({ images }) {
836
834
  width: pic.width,
837
835
  height: pic.height,
838
836
  sizes: "(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw",
839
- className: PicturesPage_default.photoImage
837
+ className: import_PicturesPage.default.photoImage
840
838
  }
841
839
  ) }),
842
- pic.caption && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: PicturesPage_default.photoCaption, children: pic.caption })
840
+ pic.caption && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { className: import_PicturesPage.default.photoCaption, children: pic.caption })
843
841
  ] }, pic._id)) });
844
842
  }
845
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
843
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
846
844
  import_framer_motion4.motion.div,
847
845
  {
848
- className: PicturesPage_default.photosGrid,
846
+ className: import_PicturesPage.default.photosGrid,
849
847
  initial: "hidden",
850
848
  animate: "visible",
851
849
  variants: {
@@ -858,10 +856,10 @@ function AnimatedGalleryGrid({ images }) {
858
856
  }
859
857
  }
860
858
  },
861
- children: images.map((pic) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
859
+ children: images.map((pic) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
862
860
  import_framer_motion4.motion.div,
863
861
  {
864
- className: PicturesPage_default.photoCard,
862
+ className: import_PicturesPage.default.photoCard,
865
863
  variants: {
866
864
  hidden: { opacity: 0, y: 40, scale: 0.95 },
867
865
  visible: {
@@ -879,7 +877,7 @@ function AnimatedGalleryGrid({ images }) {
879
877
  transition: { duration: 0.3 }
880
878
  },
881
879
  children: [
882
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: PicturesPage_default.photoImageWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
880
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: import_PicturesPage.default.photoImageWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
883
881
  import_image2.default,
884
882
  {
885
883
  src: pic.imageUrl,
@@ -887,10 +885,10 @@ function AnimatedGalleryGrid({ images }) {
887
885
  width: pic.width,
888
886
  height: pic.height,
889
887
  sizes: "(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw",
890
- className: PicturesPage_default.photoImage
888
+ className: import_PicturesPage.default.photoImage
891
889
  }
892
890
  ) }),
893
- pic.caption && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: PicturesPage_default.photoCaption, children: pic.caption })
891
+ pic.caption && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { className: import_PicturesPage.default.photoCaption, children: pic.caption })
894
892
  ]
895
893
  },
896
894
  pic._id
@@ -902,7 +900,7 @@ function AnimatedGalleryGrid({ images }) {
902
900
  // src/components/AnimatedPage.tsx
903
901
  var import_framer_motion5 = require("framer-motion");
904
902
  var import_react6 = require("react");
905
- var import_jsx_runtime9 = require("react/jsx-runtime");
903
+ var import_jsx_runtime10 = require("react/jsx-runtime");
906
904
  function useMounted2() {
907
905
  const [mounted, setMounted] = (0, import_react6.useState)(false);
908
906
  (0, import_react6.useEffect)(() => {
@@ -913,9 +911,9 @@ function useMounted2() {
913
911
  function AnimatedPage({ children, className }) {
914
912
  const mounted = useMounted2();
915
913
  if (!mounted) {
916
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className, children });
914
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className, children });
917
915
  }
918
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
916
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
919
917
  import_framer_motion5.motion.div,
920
918
  {
921
919
  className,
@@ -929,9 +927,9 @@ function AnimatedPage({ children, className }) {
929
927
  function AnimatedHeader({ children, className }) {
930
928
  const mounted = useMounted2();
931
929
  if (!mounted) {
932
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("header", { className, children });
930
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("header", { className, children });
933
931
  }
934
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
932
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
935
933
  import_framer_motion5.motion.header,
936
934
  {
937
935
  className,
@@ -945,9 +943,9 @@ function AnimatedHeader({ children, className }) {
945
943
  function AnimatedMain({ children, className }) {
946
944
  const mounted = useMounted2();
947
945
  if (!mounted) {
948
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("main", { className, children });
946
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("main", { className, children });
949
947
  }
950
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
948
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
951
949
  import_framer_motion5.motion.main,
952
950
  {
953
951
  className,
@@ -962,9 +960,9 @@ function StaggeredGrid({ children, className }) {
962
960
  const mounted = useMounted2();
963
961
  const childArray = Array.isArray(children) ? children : [children];
964
962
  if (!mounted) {
965
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className, children });
963
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className, children });
966
964
  }
967
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
965
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
968
966
  import_framer_motion5.motion.div,
969
967
  {
970
968
  className,
@@ -981,7 +979,7 @@ function StaggeredGrid({ children, className }) {
981
979
  }
982
980
  }
983
981
  },
984
- children: childArray.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
982
+ children: childArray.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
985
983
  import_framer_motion5.motion.div,
986
984
  {
987
985
  variants: {
@@ -1005,9 +1003,9 @@ function StaggeredGrid({ children, className }) {
1005
1003
  function AnimatedItem({ children, className, delay = 0, index = 0 }) {
1006
1004
  const mounted = useMounted2();
1007
1005
  if (!mounted) {
1008
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className, children });
1006
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className, children });
1009
1007
  }
1010
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1008
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1011
1009
  import_framer_motion5.motion.div,
1012
1010
  {
1013
1011
  className,
@@ -1026,9 +1024,9 @@ function AnimatedItem({ children, className, delay = 0, index = 0 }) {
1026
1024
  function ScrollRevealSection({ children, className }) {
1027
1025
  const mounted = useMounted2();
1028
1026
  if (!mounted) {
1029
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("section", { className, children });
1027
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("section", { className, children });
1030
1028
  }
1031
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1029
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1032
1030
  import_framer_motion5.motion.section,
1033
1031
  {
1034
1032
  className,
@@ -1044,9 +1042,9 @@ function AnimatedHeroContent({ children, className }) {
1044
1042
  const mounted = useMounted2();
1045
1043
  const childArray = Array.isArray(children) ? children : [children];
1046
1044
  if (!mounted) {
1047
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className, children });
1045
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className, children });
1048
1046
  }
1049
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1047
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1050
1048
  import_framer_motion5.motion.div,
1051
1049
  {
1052
1050
  className,
@@ -1062,7 +1060,7 @@ function AnimatedHeroContent({ children, className }) {
1062
1060
  }
1063
1061
  }
1064
1062
  },
1065
- children: childArray.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1063
+ children: childArray.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1066
1064
  import_framer_motion5.motion.div,
1067
1065
  {
1068
1066
  variants: {
@@ -1086,10 +1084,10 @@ function AnimatedHeroContent({ children, className }) {
1086
1084
 
1087
1085
  // src/components/AnimatedSections.tsx
1088
1086
  var import_framer_motion6 = require("framer-motion");
1089
- var import_jsx_runtime10 = require("react/jsx-runtime");
1087
+ var import_jsx_runtime11 = require("react/jsx-runtime");
1090
1088
  function AnimatedGrid({ children, className }) {
1091
1089
  const childArray = Array.isArray(children) ? children : [children];
1092
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1090
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1093
1091
  import_framer_motion6.motion.div,
1094
1092
  {
1095
1093
  className,
@@ -1097,13 +1095,13 @@ function AnimatedGrid({ children, className }) {
1097
1095
  whileInView: "visible",
1098
1096
  viewport: viewportSettings,
1099
1097
  variants: staggerContainer,
1100
- children: childArray.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_framer_motion6.motion.div, { variants: staggerItem, children: child }, index))
1098
+ children: childArray.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_framer_motion6.motion.div, { variants: staggerItem, children: child }, index))
1101
1099
  }
1102
1100
  );
1103
1101
  }
1104
1102
  function AnimatedStats({ children, className }) {
1105
1103
  const childArray = Array.isArray(children) ? children : [children];
1106
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1104
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1107
1105
  import_framer_motion6.motion.div,
1108
1106
  {
1109
1107
  className,
@@ -1120,7 +1118,7 @@ function AnimatedStats({ children, className }) {
1120
1118
  }
1121
1119
  }
1122
1120
  },
1123
- children: childArray.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1121
+ children: childArray.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1124
1122
  import_framer_motion6.motion.div,
1125
1123
  {
1126
1124
  variants: {
@@ -1142,7 +1140,7 @@ function AnimatedStats({ children, className }) {
1142
1140
  );
1143
1141
  }
1144
1142
  function AnimatedSectionHeader({ children, className }) {
1145
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1143
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1146
1144
  import_framer_motion6.motion.header,
1147
1145
  {
1148
1146
  className,
@@ -1156,7 +1154,7 @@ function AnimatedSectionHeader({ children, className }) {
1156
1154
  }
1157
1155
  function AnimatedList({ children, className }) {
1158
1156
  const childArray = Array.isArray(children) ? children : [children];
1159
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1157
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1160
1158
  import_framer_motion6.motion.div,
1161
1159
  {
1162
1160
  className,
@@ -1173,7 +1171,7 @@ function AnimatedList({ children, className }) {
1173
1171
  }
1174
1172
  }
1175
1173
  },
1176
- children: childArray.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1174
+ children: childArray.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1177
1175
  import_framer_motion6.motion.div,
1178
1176
  {
1179
1177
  variants: {
@@ -1267,6 +1265,7 @@ function urlFor(source) {
1267
1265
  ContactCTA,
1268
1266
  Footer,
1269
1267
  Header,
1268
+ HomePage,
1270
1269
  ScrollRevealSection,
1271
1270
  StaggeredGrid,
1272
1271
  ThemeToggle,