@retinalabsllc/zairusjs 5.1.85 → 5.1.90

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
@@ -290,13 +290,12 @@ var import_navigation = require("next/navigation");
290
290
  var NavLink = ({
291
291
  href,
292
292
  children,
293
- className = "",
294
- isDarkTheme
293
+ className = ""
295
294
  }) => {
296
295
  const pathname = (0, import_navigation.usePathname)();
297
296
  const isActive = pathname === href;
298
- const activeClass = isDarkTheme ? "text-white" : "text-neutral-900 font-medium";
299
- const inactiveClass = isDarkTheme ? "text-neutral-400 hover:text-white" : "text-neutral-500 hover:text-neutral-900";
297
+ const activeClass = "text-neutral-900 font-medium";
298
+ const inactiveClass = "text-neutral-500 hover:text-neutral-900";
300
299
  return /* @__PURE__ */ import_react5.default.createElement(
301
300
  import_link2.default,
302
301
  {
@@ -316,71 +315,38 @@ var Header = ({
316
315
  hideHeaderText = false,
317
316
  compact = false
318
317
  }) => {
319
- const headerRef = (0, import_react5.useRef)(null);
320
- const [isDarkTheme, setIsDarkTheme] = (0, import_react5.useState)(true);
318
+ const [mounted, setMounted] = (0, import_react5.useState)(false);
321
319
  (0, import_react5.useEffect)(() => {
322
- const checkBackgroundLuminance = () => {
323
- if (!headerRef.current) return;
324
- const rect = headerRef.current.getBoundingClientRect();
325
- const x = rect.left + rect.width / 2;
326
- const y = rect.top + rect.height / 2;
327
- const elementsAtPoint = document.elementsFromPoint(x, y);
328
- let foundDarkBackground = true;
329
- for (const el of elementsAtPoint) {
330
- if (headerRef.current.contains(el)) continue;
331
- const style = window.getComputedStyle(el);
332
- const bg = style.backgroundColor;
333
- if (bg && bg !== "rgba(0, 0, 0, 0)" && bg !== "transparent") {
334
- const rgbMatch = bg.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);
335
- if (rgbMatch) {
336
- const r = parseInt(rgbMatch[1], 10);
337
- const g = parseInt(rgbMatch[2], 10);
338
- const b = parseInt(rgbMatch[3], 10);
339
- const brightness = Math.round((r * 299 + g * 587 + b * 114) / 1e3);
340
- foundDarkBackground = brightness < 128;
341
- break;
342
- }
343
- }
344
- }
345
- setIsDarkTheme(foundDarkBackground);
346
- };
347
- checkBackgroundLuminance();
348
- window.addEventListener("scroll", checkBackgroundLuminance, { passive: true });
349
- window.addEventListener("resize", checkBackgroundLuminance, { passive: true });
350
- return () => {
351
- window.removeEventListener("scroll", checkBackgroundLuminance);
352
- window.removeEventListener("resize", checkBackgroundLuminance);
353
- };
320
+ setMounted(true);
354
321
  }, []);
355
322
  const headerLayoutWidth = compact ? "w-fit mx-auto gap-8 md:gap-16" : "w-full justify-between";
356
323
  const hasBrandSection = showLogo || !hideHeaderText;
357
- const headerBgClass = isDarkTheme ? "bg-black/40" : "bg-white/40";
358
- const brandTitleClass = isDarkTheme ? "text-white" : "text-neutral-900";
359
- const brandSubtitleClass = isDarkTheme ? "text-neutral-400" : "text-neutral-600";
360
- const shouldInvertLogo = isDarkTheme ? invert : !invert;
361
- return (
362
- // Upgraded to 'fixed' so the smart scroll detection actually follows the user down the page
363
- /* @__PURE__ */ import_react5.default.createElement("div", { className: "fixed inset-x-0 top-0 w-full z-50 pointer-events-none px-4 pt-4 sm:pt-6" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "max-w-5xl mx-auto w-full pointer-events-auto flex justify-center", ref: headerRef }, /* @__PURE__ */ import_react5.default.createElement("header", { className: `${headerLayoutWidth} ${headerBgClass} backdrop-blur-md rounded-full py-2 px-6 flex items-center transition-all duration-300` }, hasBrandSection && /* @__PURE__ */ import_react5.default.createElement("div", { className: "flex items-center shrink-0" }, /* @__PURE__ */ import_react5.default.createElement(import_link2.default, { href: "/", className: "flex items-center gap-3 transition-opacity hover:opacity-70 outline-none" }, showLogo && /* @__PURE__ */ import_react5.default.createElement(
364
- import_image.default,
365
- {
366
- src: logoSrc,
367
- alt: `${companyName} Logo`,
368
- width: 40,
369
- height: 40,
370
- className: `object-contain w-8 h-auto transition-all duration-300 ${shouldInvertLogo ? "invert" : ""}`,
371
- priority: true
372
- }
373
- ), !hideHeaderText && /* @__PURE__ */ import_react5.default.createElement("div", { className: "flex flex-col justify-center transition-colors duration-300" }, /* @__PURE__ */ import_react5.default.createElement("span", { className: `text-[11px] leading-none tracking-wide mb-1 ${brandTitleClass}` }, companyName), subtitle && /* @__PURE__ */ import_react5.default.createElement("span", { className: `text-[9px] tracking-widest leading-none ${brandSubtitleClass}` }, subtitle)))), /* @__PURE__ */ import_react5.default.createElement("nav", { className: "flex items-center gap-1 md:gap-2 shrink-0" }, links.map((link, index) => /* @__PURE__ */ import_react5.default.createElement(
374
- NavLink,
375
- {
376
- key: index,
377
- href: link.href,
378
- isDarkTheme,
379
- className: link.hideOnMobile ? "hidden sm:inline-flex" : ""
380
- },
381
- link.label
382
- ))))))
383
- );
324
+ const headerBgClass = "bg-white/80";
325
+ const brandTitleClass = "text-neutral-900";
326
+ const brandSubtitleClass = "text-neutral-500";
327
+ const shouldInvertLogo = !invert;
328
+ if (!mounted) {
329
+ return /* @__PURE__ */ import_react5.default.createElement("div", { className: "absolute inset-x-0 top-0 w-full h-20 z-50 pointer-events-none px-4 pt-4 sm:pt-6" });
330
+ }
331
+ return /* @__PURE__ */ import_react5.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_react5.default.createElement("div", { className: "max-w-5xl mx-auto w-full pointer-events-auto flex justify-center" }, /* @__PURE__ */ import_react5.default.createElement("header", { className: `${headerLayoutWidth} ${headerBgClass} backdrop-blur-md rounded-full py-2 px-6 flex items-center transition-all duration-300` }, hasBrandSection && /* @__PURE__ */ import_react5.default.createElement("div", { className: "flex items-center shrink-0" }, /* @__PURE__ */ import_react5.default.createElement(import_link2.default, { href: "/", className: "flex items-center gap-3 transition-opacity hover:opacity-70 outline-none" }, showLogo && /* @__PURE__ */ import_react5.default.createElement(
332
+ import_image.default,
333
+ {
334
+ src: logoSrc,
335
+ alt: `${companyName} Logo`,
336
+ width: 40,
337
+ height: 40,
338
+ className: `object-contain w-8 h-auto ${shouldInvertLogo ? "invert" : ""}`,
339
+ priority: true
340
+ }
341
+ ), !hideHeaderText && /* @__PURE__ */ import_react5.default.createElement("div", { className: "flex flex-col justify-center" }, /* @__PURE__ */ import_react5.default.createElement("span", { className: `text-[11px] leading-none tracking-wide mb-1 ${brandTitleClass}` }, companyName), subtitle && /* @__PURE__ */ import_react5.default.createElement("span", { className: `text-[9px] tracking-widest leading-none ${brandSubtitleClass}` }, subtitle)))), /* @__PURE__ */ import_react5.default.createElement("nav", { className: "flex items-center gap-1 md:gap-2 shrink-0" }, links.map((link, index) => /* @__PURE__ */ import_react5.default.createElement(
342
+ NavLink,
343
+ {
344
+ key: index,
345
+ href: link.href,
346
+ className: link.hideOnMobile ? "hidden sm:inline-flex" : ""
347
+ },
348
+ link.label
349
+ ))))));
384
350
  };
385
351
 
386
352
  // src/components/Footer.tsx
@@ -535,7 +501,7 @@ var HeroSection = ({
535
501
  import_link4.default,
536
502
  {
537
503
  href: secondaryCtaHref,
538
- className: "w-full sm:w-60 inline-flex font-medium items-center justify-center text-[11px] tracking-widest rounded-full px-8 py-3 bg-black/60 backdrop-blur-md text-center text-white text-xs hover:bg-black/80 outline-none transition-all"
504
+ className: "w-full sm:w-60 inline-flex font-medium items-center justify-center text-xs tracking-widest rounded-full px-8 py-2.5 border border-neutral-100 text-center text-white hover:bg-black/80 outline-none transition-all"
539
505
  },
540
506
  secondaryCtaText
541
507
  )), showApps && appLogos && appLogos.length > 0 && /* @__PURE__ */ import_react8.default.createElement("div", { className: "w-full flex flex-col items-center mt-4" }, appsText && /* @__PURE__ */ import_react8.default.createElement("p", { className: "text-[9px] tracking-[0.2em] text-neutral-500 mb-5 " }, appsText), /* @__PURE__ */ import_react8.default.createElement("div", { className: "flex flex-wrap justify-center items-center gap-6 opacity-90" }, appLogos.map((logo, idx) => /* @__PURE__ */ import_react8.default.createElement("div", { key: idx, className: "relative h-6 w-6 sm:h-8 sm:w-8 flex items-center justify-center cursor-default" }, /* @__PURE__ */ import_react8.default.createElement(
@@ -952,7 +918,7 @@ var ManagedPricingBlock = ({
952
918
  import_link5.default,
953
919
  {
954
920
  href: plan.ctaHref,
955
- 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 block"
921
+ className: "w-full py-2.5 px-5 rounded-full border border-neutral-100 text-center text-black text-xs hover:bg-neutral-50 transition-colors mb-6 outline-none block"
956
922
  },
957
923
  plan.ctaText
958
924
  ),
package/dist/index.mjs CHANGED
@@ -224,20 +224,19 @@ var ThreeDActionButton = ({
224
224
  };
225
225
 
226
226
  // src/components/Header.tsx
227
- import React4, { useState as useState2, useEffect as useEffect2, useRef as useRef2 } from "react";
227
+ import React4, { useState as useState2, useEffect as useEffect2 } from "react";
228
228
  import Link2 from "next/link";
229
229
  import Image from "next/image";
230
230
  import { usePathname } from "next/navigation";
231
231
  var NavLink = ({
232
232
  href,
233
233
  children,
234
- className = "",
235
- isDarkTheme
234
+ className = ""
236
235
  }) => {
237
236
  const pathname = usePathname();
238
237
  const isActive = pathname === href;
239
- const activeClass = isDarkTheme ? "text-white" : "text-neutral-900 font-medium";
240
- const inactiveClass = isDarkTheme ? "text-neutral-400 hover:text-white" : "text-neutral-500 hover:text-neutral-900";
238
+ const activeClass = "text-neutral-900 font-medium";
239
+ const inactiveClass = "text-neutral-500 hover:text-neutral-900";
241
240
  return /* @__PURE__ */ React4.createElement(
242
241
  Link2,
243
242
  {
@@ -257,71 +256,38 @@ var Header = ({
257
256
  hideHeaderText = false,
258
257
  compact = false
259
258
  }) => {
260
- const headerRef = useRef2(null);
261
- const [isDarkTheme, setIsDarkTheme] = useState2(true);
259
+ const [mounted, setMounted] = useState2(false);
262
260
  useEffect2(() => {
263
- const checkBackgroundLuminance = () => {
264
- if (!headerRef.current) return;
265
- const rect = headerRef.current.getBoundingClientRect();
266
- const x = rect.left + rect.width / 2;
267
- const y = rect.top + rect.height / 2;
268
- const elementsAtPoint = document.elementsFromPoint(x, y);
269
- let foundDarkBackground = true;
270
- for (const el of elementsAtPoint) {
271
- if (headerRef.current.contains(el)) continue;
272
- const style = window.getComputedStyle(el);
273
- const bg = style.backgroundColor;
274
- if (bg && bg !== "rgba(0, 0, 0, 0)" && bg !== "transparent") {
275
- const rgbMatch = bg.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);
276
- if (rgbMatch) {
277
- const r = parseInt(rgbMatch[1], 10);
278
- const g = parseInt(rgbMatch[2], 10);
279
- const b = parseInt(rgbMatch[3], 10);
280
- const brightness = Math.round((r * 299 + g * 587 + b * 114) / 1e3);
281
- foundDarkBackground = brightness < 128;
282
- break;
283
- }
284
- }
285
- }
286
- setIsDarkTheme(foundDarkBackground);
287
- };
288
- checkBackgroundLuminance();
289
- window.addEventListener("scroll", checkBackgroundLuminance, { passive: true });
290
- window.addEventListener("resize", checkBackgroundLuminance, { passive: true });
291
- return () => {
292
- window.removeEventListener("scroll", checkBackgroundLuminance);
293
- window.removeEventListener("resize", checkBackgroundLuminance);
294
- };
261
+ setMounted(true);
295
262
  }, []);
296
263
  const headerLayoutWidth = compact ? "w-fit mx-auto gap-8 md:gap-16" : "w-full justify-between";
297
264
  const hasBrandSection = showLogo || !hideHeaderText;
298
- const headerBgClass = isDarkTheme ? "bg-black/40" : "bg-white/40";
299
- const brandTitleClass = isDarkTheme ? "text-white" : "text-neutral-900";
300
- const brandSubtitleClass = isDarkTheme ? "text-neutral-400" : "text-neutral-600";
301
- const shouldInvertLogo = isDarkTheme ? invert : !invert;
302
- return (
303
- // Upgraded to 'fixed' so the smart scroll detection actually follows the user down the page
304
- /* @__PURE__ */ React4.createElement("div", { className: "fixed inset-x-0 top-0 w-full z-50 pointer-events-none px-4 pt-4 sm:pt-6" }, /* @__PURE__ */ React4.createElement("div", { className: "max-w-5xl mx-auto w-full pointer-events-auto flex justify-center", ref: headerRef }, /* @__PURE__ */ React4.createElement("header", { className: `${headerLayoutWidth} ${headerBgClass} backdrop-blur-md rounded-full py-2 px-6 flex items-center transition-all duration-300` }, hasBrandSection && /* @__PURE__ */ React4.createElement("div", { className: "flex items-center shrink-0" }, /* @__PURE__ */ React4.createElement(Link2, { href: "/", className: "flex items-center gap-3 transition-opacity hover:opacity-70 outline-none" }, showLogo && /* @__PURE__ */ React4.createElement(
305
- Image,
306
- {
307
- src: logoSrc,
308
- alt: `${companyName} Logo`,
309
- width: 40,
310
- height: 40,
311
- className: `object-contain w-8 h-auto transition-all duration-300 ${shouldInvertLogo ? "invert" : ""}`,
312
- priority: true
313
- }
314
- ), !hideHeaderText && /* @__PURE__ */ React4.createElement("div", { className: "flex flex-col justify-center transition-colors duration-300" }, /* @__PURE__ */ React4.createElement("span", { className: `text-[11px] leading-none tracking-wide mb-1 ${brandTitleClass}` }, companyName), subtitle && /* @__PURE__ */ React4.createElement("span", { className: `text-[9px] tracking-widest leading-none ${brandSubtitleClass}` }, subtitle)))), /* @__PURE__ */ React4.createElement("nav", { className: "flex items-center gap-1 md:gap-2 shrink-0" }, links.map((link, index) => /* @__PURE__ */ React4.createElement(
315
- NavLink,
316
- {
317
- key: index,
318
- href: link.href,
319
- isDarkTheme,
320
- className: link.hideOnMobile ? "hidden sm:inline-flex" : ""
321
- },
322
- link.label
323
- ))))))
324
- );
265
+ const headerBgClass = "bg-white/80";
266
+ const brandTitleClass = "text-neutral-900";
267
+ const brandSubtitleClass = "text-neutral-500";
268
+ const shouldInvertLogo = !invert;
269
+ if (!mounted) {
270
+ return /* @__PURE__ */ React4.createElement("div", { className: "absolute inset-x-0 top-0 w-full h-20 z-50 pointer-events-none px-4 pt-4 sm:pt-6" });
271
+ }
272
+ return /* @__PURE__ */ React4.createElement("div", { className: "absolute inset-x-0 top-0 w-full z-50 pointer-events-none px-4 pt-4 sm:pt-6" }, /* @__PURE__ */ React4.createElement("div", { className: "max-w-5xl mx-auto w-full pointer-events-auto flex justify-center" }, /* @__PURE__ */ React4.createElement("header", { className: `${headerLayoutWidth} ${headerBgClass} backdrop-blur-md rounded-full py-2 px-6 flex items-center transition-all duration-300` }, hasBrandSection && /* @__PURE__ */ React4.createElement("div", { className: "flex items-center shrink-0" }, /* @__PURE__ */ React4.createElement(Link2, { href: "/", className: "flex items-center gap-3 transition-opacity hover:opacity-70 outline-none" }, showLogo && /* @__PURE__ */ React4.createElement(
273
+ Image,
274
+ {
275
+ src: logoSrc,
276
+ alt: `${companyName} Logo`,
277
+ width: 40,
278
+ height: 40,
279
+ className: `object-contain w-8 h-auto ${shouldInvertLogo ? "invert" : ""}`,
280
+ priority: true
281
+ }
282
+ ), !hideHeaderText && /* @__PURE__ */ React4.createElement("div", { className: "flex flex-col justify-center" }, /* @__PURE__ */ React4.createElement("span", { className: `text-[11px] leading-none tracking-wide mb-1 ${brandTitleClass}` }, companyName), subtitle && /* @__PURE__ */ React4.createElement("span", { className: `text-[9px] tracking-widest leading-none ${brandSubtitleClass}` }, subtitle)))), /* @__PURE__ */ React4.createElement("nav", { className: "flex items-center gap-1 md:gap-2 shrink-0" }, links.map((link, index) => /* @__PURE__ */ React4.createElement(
283
+ NavLink,
284
+ {
285
+ key: index,
286
+ href: link.href,
287
+ className: link.hideOnMobile ? "hidden sm:inline-flex" : ""
288
+ },
289
+ link.label
290
+ ))))));
325
291
  };
326
292
 
327
293
  // src/components/Footer.tsx
@@ -374,7 +340,7 @@ var Footer = ({
374
340
  };
375
341
 
376
342
  // src/components/HeroSection.tsx
377
- import React6, { useState as useState4, useEffect as useEffect3, useRef as useRef3 } from "react";
343
+ import React6, { useState as useState4, useEffect as useEffect3, useRef as useRef2 } from "react";
378
344
  import Link4 from "next/link";
379
345
  import Image2 from "next/image";
380
346
  var HeroSection = ({
@@ -396,7 +362,7 @@ var HeroSection = ({
396
362
  bgImageSrc
397
363
  }) => {
398
364
  const [isAnimating, setIsAnimating] = useState4(false);
399
- const titleRef = useRef3(null);
365
+ const titleRef = useRef2(null);
400
366
  useEffect3(() => {
401
367
  const observer = new IntersectionObserver(
402
368
  ([entry]) => {
@@ -476,7 +442,7 @@ var HeroSection = ({
476
442
  Link4,
477
443
  {
478
444
  href: secondaryCtaHref,
479
- className: "w-full sm:w-60 inline-flex font-medium items-center justify-center text-[11px] tracking-widest rounded-full px-8 py-3 bg-black/60 backdrop-blur-md text-center text-white text-xs hover:bg-black/80 outline-none transition-all"
445
+ className: "w-full sm:w-60 inline-flex font-medium items-center justify-center text-xs tracking-widest rounded-full px-8 py-2.5 border border-neutral-100 text-center text-white hover:bg-black/80 outline-none transition-all"
480
446
  },
481
447
  secondaryCtaText
482
448
  )), showApps && appLogos && appLogos.length > 0 && /* @__PURE__ */ React6.createElement("div", { className: "w-full flex flex-col items-center mt-4" }, appsText && /* @__PURE__ */ React6.createElement("p", { className: "text-[9px] tracking-[0.2em] text-neutral-500 mb-5 " }, appsText), /* @__PURE__ */ React6.createElement("div", { className: "flex flex-wrap justify-center items-center gap-6 opacity-90" }, appLogos.map((logo, idx) => /* @__PURE__ */ React6.createElement("div", { key: idx, className: "relative h-6 w-6 sm:h-8 sm:w-8 flex items-center justify-center cursor-default" }, /* @__PURE__ */ React6.createElement(
@@ -492,11 +458,11 @@ var HeroSection = ({
492
458
  };
493
459
 
494
460
  // src/components/AppBento2.tsx
495
- import React7, { useState as useState5, useEffect as useEffect4, useRef as useRef4 } from "react";
461
+ import React7, { useState as useState5, useEffect as useEffect4, useRef as useRef3 } from "react";
496
462
  import { HugeiconsIcon as HugeiconsIcon3 } from "@hugeicons/react";
497
463
  var AppBento2 = ({ tagline, headline, features }) => {
498
464
  const [isAnimating, setIsAnimating] = useState5(false);
499
- const titleRef = useRef4(null);
465
+ const titleRef = useRef3(null);
500
466
  useEffect4(() => {
501
467
  const observer = new IntersectionObserver(
502
468
  ([entry]) => {
@@ -567,7 +533,7 @@ var AppBento2 = ({ tagline, headline, features }) => {
567
533
  };
568
534
 
569
535
  // src/components/FeatureScroll.tsx
570
- import React8, { useRef as useRef5, useState as useState6, useEffect as useEffect5 } from "react";
536
+ import React8, { useRef as useRef4, useState as useState6, useEffect as useEffect5 } from "react";
571
537
  import Image3 from "next/image";
572
538
  import { HugeiconsIcon as HugeiconsIcon4 } from "@hugeicons/react";
573
539
  import { ArrowLeft01Icon, ArrowRight01Icon, Loading03Icon as Loading03Icon2 } from "@hugeicons/core-free-icons";
@@ -611,7 +577,7 @@ var FeatureCard = ({ feature, bgImage }) => {
611
577
  ))), /* @__PURE__ */ React8.createElement("div", { className: "flex flex-col text-left pr-4" }, /* @__PURE__ */ React8.createElement("h3", { className: " text-xl tracking-tight text-black mb-2" }, feature.title), /* @__PURE__ */ React8.createElement("p", { className: "text-[13px] leading-relaxed text-neutral-600 max-w-[90%]" }, feature.desc)));
612
578
  };
613
579
  var FeatureScroll = ({ tagline, headline, features }) => {
614
- const scrollRef = useRef5(null);
580
+ const scrollRef = useRef4(null);
615
581
  const [canScrollLeft, setCanScrollLeft] = useState6(false);
616
582
  const [canScrollRight, setCanScrollRight] = useState6(true);
617
583
  const checkScroll = () => {
@@ -704,7 +670,7 @@ var PlatformFeatures = ({
704
670
  };
705
671
 
706
672
  // src/components/ManagedDocument.tsx
707
- import React10, { useState as useState7, useEffect as useEffect6, useRef as useRef6 } from "react";
673
+ import React10, { useState as useState7, useEffect as useEffect6, useRef as useRef5 } from "react";
708
674
  var ManagedDocument = ({
709
675
  tagline,
710
676
  title,
@@ -713,7 +679,7 @@ var ManagedDocument = ({
713
679
  contactEmail
714
680
  }) => {
715
681
  const [isAnimating, setIsAnimating] = useState7(false);
716
- const titleRef = useRef6(null);
682
+ const titleRef = useRef5(null);
717
683
  useEffect6(() => {
718
684
  const observer = new IntersectionObserver(
719
685
  ([entry]) => {
@@ -813,7 +779,7 @@ var ManagedContactBlock = ({
813
779
  };
814
780
 
815
781
  // src/components/ManagedPricingBlock.tsx
816
- import React12, { useState as useState9, useEffect as useEffect8, useRef as useRef7 } from "react";
782
+ import React12, { useState as useState9, useEffect as useEffect8, useRef as useRef6 } from "react";
817
783
  import Link5 from "next/link";
818
784
  import Image4 from "next/image";
819
785
  var CheckIcon = ({ className = "" }) => /* @__PURE__ */ React12.createElement("svg", { viewBox: "0 0 24 24", fill: "none", className: `w-4 h-4 shrink-0 ${className}`, xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ React12.createElement("circle", { cx: "12", cy: "12", r: "10", fill: "black" }), /* @__PURE__ */ React12.createElement("path", { d: "M8 12L11 15L16 9", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }));
@@ -826,7 +792,7 @@ var ManagedPricingBlock = ({
826
792
  }) => {
827
793
  const [isAnimating, setIsAnimating] = useState9(false);
828
794
  const [activeTabIndex, setActiveTabIndex] = useState9(0);
829
- const titleRef = useRef7(null);
795
+ const titleRef = useRef6(null);
830
796
  useEffect8(() => {
831
797
  const observer = new IntersectionObserver(
832
798
  ([entry]) => {
@@ -893,7 +859,7 @@ var ManagedPricingBlock = ({
893
859
  Link5,
894
860
  {
895
861
  href: plan.ctaHref,
896
- 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 block"
862
+ className: "w-full py-2.5 px-5 rounded-full border border-neutral-100 text-center text-black text-xs hover:bg-neutral-50 transition-colors mb-6 outline-none block"
897
863
  },
898
864
  plan.ctaText
899
865
  ),
@@ -1150,13 +1116,13 @@ var NumberInput = ({
1150
1116
  ));
1151
1117
 
1152
1118
  // src/components/PortfolioHero.tsx
1153
- import React19, { useEffect as useEffect9, useRef as useRef8 } from "react";
1119
+ import React19, { useEffect as useEffect9, useRef as useRef7 } from "react";
1154
1120
  import Link6 from "next/link";
1155
1121
  import Image7 from "next/image";
1156
1122
  import { HugeiconsIcon as HugeiconsIcon9 } from "@hugeicons/react";
1157
1123
  import { ArrowRight01Icon as ArrowRight01Icon2 } from "@hugeicons/core-free-icons";
1158
1124
  var useScrollAnimation = () => {
1159
- const elementRef = useRef8(null);
1125
+ const elementRef = useRef7(null);
1160
1126
  useEffect9(() => {
1161
1127
  const el = elementRef.current;
1162
1128
  if (!el) return;
@@ -1285,7 +1251,7 @@ var GifFeatureCard = ({
1285
1251
  };
1286
1252
 
1287
1253
  // src/components/MedicalFeatureStatsBlock.tsx
1288
- import React21, { useState as useState11, useEffect as useEffect10, useRef as useRef9 } from "react";
1254
+ import React21, { useState as useState11, useEffect as useEffect10, useRef as useRef8 } from "react";
1289
1255
  import Image9 from "next/image";
1290
1256
  var MedicalFeatureStatsBlock = ({
1291
1257
  bottomHeadline,
@@ -1295,7 +1261,7 @@ var MedicalFeatureStatsBlock = ({
1295
1261
  stats
1296
1262
  }) => {
1297
1263
  const [isAnimating, setIsAnimating] = useState11(false);
1298
- const titleRef = useRef9(null);
1264
+ const titleRef = useRef8(null);
1299
1265
  useEffect10(() => {
1300
1266
  const observer = new IntersectionObserver(
1301
1267
  ([entry]) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@retinalabsllc/zairusjs",
3
- "version": "5.1.85",
3
+ "version": "5.1.90",
4
4
  "description": "A perceptive, Ai data driven Next.js UI component library.",
5
5
  "author": "Retina Labs Company",
6
6
  "license": "MIT",