@opensite/ui 0.7.0 → 0.7.2

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.
Files changed (71) hide show
  1. package/dist/blog-cards-read-time.cjs +1 -1
  2. package/dist/blog-cards-read-time.js +1 -1
  3. package/dist/blog-cards-tagline-cta.cjs +1 -1
  4. package/dist/blog-cards-tagline-cta.js +1 -1
  5. package/dist/blog-category-overlay.cjs +1 -1
  6. package/dist/blog-category-overlay.js +1 -1
  7. package/dist/blog-featured-popular.cjs +1 -1
  8. package/dist/blog-featured-popular.js +1 -1
  9. package/dist/blog-grid-author-cards.cjs +1 -1
  10. package/dist/blog-grid-author-cards.js +1 -1
  11. package/dist/blog-grid-nine-posts.cjs +1 -1
  12. package/dist/blog-grid-nine-posts.js +1 -1
  13. package/dist/blog-horizontal-cards.cjs +1 -1
  14. package/dist/blog-horizontal-cards.js +1 -1
  15. package/dist/blog-tech-insights.cjs +54 -45
  16. package/dist/blog-tech-insights.js +54 -45
  17. package/dist/carousel-animated-sections.cjs +1224 -0
  18. package/dist/carousel-animated-sections.d.cts +154 -0
  19. package/dist/carousel-animated-sections.d.ts +154 -0
  20. package/dist/carousel-animated-sections.js +1203 -0
  21. package/dist/carousel-auto-progress-slides.cjs +1156 -0
  22. package/dist/carousel-auto-progress-slides.d.cts +122 -0
  23. package/dist/carousel-auto-progress-slides.d.ts +122 -0
  24. package/dist/carousel-auto-progress-slides.js +1135 -0
  25. package/dist/carousel-autoplay-progress.cjs +1141 -0
  26. package/dist/carousel-autoplay-progress.d.cts +119 -0
  27. package/dist/carousel-autoplay-progress.d.ts +119 -0
  28. package/dist/carousel-autoplay-progress.js +1116 -0
  29. package/dist/carousel-feature-badge.cjs +1216 -0
  30. package/dist/carousel-feature-badge.d.cts +99 -0
  31. package/dist/carousel-feature-badge.d.ts +99 -0
  32. package/dist/carousel-feature-badge.js +1192 -0
  33. package/dist/carousel-fullscreen-scroll-fx.cjs +526 -0
  34. package/dist/carousel-fullscreen-scroll-fx.d.cts +122 -0
  35. package/dist/carousel-fullscreen-scroll-fx.d.ts +122 -0
  36. package/dist/carousel-fullscreen-scroll-fx.js +505 -0
  37. package/dist/carousel-gallery-thumbnails.cjs +1059 -0
  38. package/dist/carousel-gallery-thumbnails.d.cts +122 -0
  39. package/dist/carousel-gallery-thumbnails.d.ts +122 -0
  40. package/dist/carousel-gallery-thumbnails.js +1038 -0
  41. package/dist/carousel-horizontal-cards.cjs +1083 -0
  42. package/dist/carousel-horizontal-cards.d.cts +126 -0
  43. package/dist/carousel-horizontal-cards.d.ts +126 -0
  44. package/dist/carousel-horizontal-cards.js +1062 -0
  45. package/dist/carousel-image-hero.cjs +1075 -0
  46. package/dist/carousel-image-hero.d.cts +116 -0
  47. package/dist/carousel-image-hero.d.ts +116 -0
  48. package/dist/carousel-image-hero.js +1054 -0
  49. package/dist/carousel-multi-step-showcase.cjs +1146 -0
  50. package/dist/carousel-multi-step-showcase.d.cts +142 -0
  51. package/dist/carousel-multi-step-showcase.d.ts +142 -0
  52. package/dist/carousel-multi-step-showcase.js +1125 -0
  53. package/dist/carousel-portfolio-hero.cjs +1063 -0
  54. package/dist/carousel-portfolio-hero.d.cts +134 -0
  55. package/dist/carousel-portfolio-hero.d.ts +134 -0
  56. package/dist/carousel-portfolio-hero.js +1042 -0
  57. package/dist/carousel-product-feature-showcase.cjs +1127 -0
  58. package/dist/carousel-product-feature-showcase.d.cts +161 -0
  59. package/dist/carousel-product-feature-showcase.d.ts +161 -0
  60. package/dist/carousel-product-feature-showcase.js +1106 -0
  61. package/dist/carousel-progress-slider.cjs +597 -0
  62. package/dist/carousel-progress-slider.d.cts +122 -0
  63. package/dist/carousel-progress-slider.d.ts +122 -0
  64. package/dist/carousel-progress-slider.js +576 -0
  65. package/dist/carousel-scrolling-feature-showcase.cjs +530 -0
  66. package/dist/carousel-scrolling-feature-showcase.d.cts +126 -0
  67. package/dist/carousel-scrolling-feature-showcase.d.ts +126 -0
  68. package/dist/carousel-scrolling-feature-showcase.js +509 -0
  69. package/dist/registry.cjs +349 -238
  70. package/dist/registry.js +349 -238
  71. package/package.json +3 -2
package/dist/registry.cjs CHANGED
@@ -17285,7 +17285,7 @@ function CarouselAnimatedSections({
17285
17285
  actionsSlot,
17286
17286
  actions,
17287
17287
  className,
17288
- containerClassName,
17288
+ containerClassName = "h-full",
17289
17289
  contentClassName,
17290
17290
  subtitleClassName,
17291
17291
  titleClassName,
@@ -17296,20 +17296,21 @@ function CarouselAnimatedSections({
17296
17296
  counterClassName,
17297
17297
  overlayClassName,
17298
17298
  optixFlowConfig,
17299
- background = "white",
17300
- spacing = "xl",
17301
- pattern,
17302
- patternOpacity
17299
+ background = "dark",
17300
+ spacing = "py-0",
17301
+ containerMaxWidth = "full",
17302
+ pattern = "diagonalCrossBasic",
17303
+ patternOpacity = 0.033
17303
17304
  }) {
17304
17305
  const [currentIndex, setCurrentIndex] = React52__namespace.useState(0);
17305
17306
  const [direction, setDirection] = React52__namespace.useState(0);
17306
17307
  const [isAnimating, setIsAnimating] = React52__namespace.useState(false);
17307
17308
  const goToNext = React52__namespace.useCallback(() => {
17308
- if (isAnimating || currentIndex >= sections.length - 1) return;
17309
+ if (isAnimating || currentIndex >= (sections?.length ?? 0) - 1) return;
17309
17310
  setIsAnimating(true);
17310
17311
  setDirection(1);
17311
17312
  setCurrentIndex((prev) => prev + 1);
17312
- }, [currentIndex, isAnimating, sections.length]);
17313
+ }, [currentIndex, isAnimating, sections?.length]);
17313
17314
  const goToPrev = React52__namespace.useCallback(() => {
17314
17315
  if (isAnimating || currentIndex <= 0) return;
17315
17316
  setIsAnimating(true);
@@ -17333,25 +17334,6 @@ function CarouselAnimatedSections({
17333
17334
  window.addEventListener("keydown", handleKeyDown);
17334
17335
  return () => window.removeEventListener("keydown", handleKeyDown);
17335
17336
  }, [goToNext, goToPrev]);
17336
- React52__namespace.useEffect(() => {
17337
- let timeout;
17338
- const handleWheel = (e) => {
17339
- e.preventDefault();
17340
- clearTimeout(timeout);
17341
- timeout = setTimeout(() => {
17342
- if (e.deltaY > 0) {
17343
- goToNext();
17344
- } else if (e.deltaY < 0) {
17345
- goToPrev();
17346
- }
17347
- }, 50);
17348
- };
17349
- window.addEventListener("wheel", handleWheel, { passive: false });
17350
- return () => {
17351
- window.removeEventListener("wheel", handleWheel);
17352
- clearTimeout(timeout);
17353
- };
17354
- }, [goToNext, goToPrev]);
17355
17337
  const slideVariants2 = {
17356
17338
  enter: (direction2) => ({
17357
17339
  y: direction2 > 0 ? "100%" : "-100%",
@@ -17366,7 +17348,7 @@ function CarouselAnimatedSections({
17366
17348
  opacity: 0
17367
17349
  })
17368
17350
  };
17369
- const currentSection = sections[currentIndex];
17351
+ const currentSection = sections?.[currentIndex];
17370
17352
  const renderActions = () => {
17371
17353
  if (actionsSlot) return actionsSlot;
17372
17354
  if (actions && actions.length > 0) {
@@ -17378,7 +17360,10 @@ function CarouselAnimatedSections({
17378
17360
  asButton: true,
17379
17361
  variant: action.variant,
17380
17362
  size: action.size || "lg",
17381
- className: cn("bg-white text-black hover:bg-white/90", action.className),
17363
+ className: cn(
17364
+ "bg-white text-black hover:bg-white/90",
17365
+ action.className
17366
+ ),
17382
17367
  children: [
17383
17368
  action.label,
17384
17369
  action.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2", children: action.icon }),
@@ -17398,8 +17383,10 @@ function CarouselAnimatedSections({
17398
17383
  className: cn("relative h-screen w-full overflow-hidden", className),
17399
17384
  pattern,
17400
17385
  patternOpacity,
17386
+ containerMaxWidth,
17387
+ containerClassName,
17401
17388
  children: [
17402
- sectionsSlot ? sectionsSlot : /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, custom: direction, mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsxs(
17389
+ sectionsSlot ? sectionsSlot : currentSection ? /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, custom: direction, mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsxs(
17403
17390
  framerMotion.motion.div,
17404
17391
  {
17405
17392
  custom: direction,
@@ -17409,103 +17396,174 @@ function CarouselAnimatedSections({
17409
17396
  exit: "exit",
17410
17397
  transition: { duration: 0.6, ease: [0.4, 0, 0.2, 1] },
17411
17398
  onAnimationComplete: () => setIsAnimating(false),
17412
- className: cn("absolute inset-0", currentSection.className),
17399
+ className: cn("absolute inset-0", currentSection?.className),
17413
17400
  children: [
17414
17401
  /* @__PURE__ */ jsxRuntime.jsx(
17415
17402
  img.Img,
17416
17403
  {
17417
- src: currentSection.image,
17418
- alt: typeof currentSection.title === "string" ? currentSection.title : `Section ${currentSection.id}`,
17419
- className: cn("h-full w-full object-cover", currentSection.imageClassName),
17404
+ src: currentSection?.image,
17405
+ alt: typeof currentSection?.title === "string" ? currentSection?.title : `Section ${currentSection?.id}`,
17406
+ className: cn(
17407
+ "h-full w-full object-cover",
17408
+ currentSection?.imageClassName
17409
+ ),
17420
17410
  optixFlowConfig
17421
17411
  }
17422
17412
  ),
17423
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("absolute inset-0 bg-black/50", overlayClassName) })
17413
+ /* @__PURE__ */ jsxRuntime.jsx(
17414
+ "div",
17415
+ {
17416
+ className: cn("absolute inset-0 bg-black/50", overlayClassName)
17417
+ }
17418
+ )
17424
17419
  ]
17425
17420
  },
17426
17421
  currentIndex
17427
- ) }),
17428
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative z-10 flex h-full items-center", contentClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container mx-auto px-6", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsxs(
17429
- framerMotion.motion.div,
17422
+ ) }) : null,
17423
+ /* @__PURE__ */ jsxRuntime.jsx(
17424
+ "div",
17430
17425
  {
17431
- initial: { opacity: 0, y: 40 },
17432
- animate: { opacity: 1, y: 0 },
17433
- exit: { opacity: 0, y: -40 },
17434
- transition: { duration: 0.4, delay: 0.2 },
17435
- className: "max-w-2xl text-white",
17426
+ className: cn(
17427
+ "relative z-10 flex h-full items-center",
17428
+ contentClassName
17429
+ ),
17430
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container mx-auto px-6", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsxs(
17431
+ framerMotion.motion.div,
17432
+ {
17433
+ initial: { opacity: 0, y: 40 },
17434
+ animate: { opacity: 1, y: 0 },
17435
+ exit: { opacity: 0, y: -40 },
17436
+ transition: { duration: 0.4, delay: 0.2 },
17437
+ className: "max-w-2xl text-white",
17438
+ children: [
17439
+ currentSection?.subtitle && (typeof currentSection?.subtitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
17440
+ "p",
17441
+ {
17442
+ className: cn(
17443
+ "mb-2 text-sm font-medium uppercase tracking-widest text-white/70",
17444
+ subtitleClassName
17445
+ ),
17446
+ children: currentSection?.subtitle
17447
+ }
17448
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-2", subtitleClassName), children: currentSection?.subtitle })),
17449
+ currentSection?.title && (typeof currentSection?.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
17450
+ "h2",
17451
+ {
17452
+ className: cn(
17453
+ "mb-4 text-4xl font-bold md:text-5xl lg:text-6xl",
17454
+ titleClassName
17455
+ ),
17456
+ children: currentSection?.title
17457
+ }
17458
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", titleClassName), children: currentSection?.title })),
17459
+ currentSection?.description && (typeof currentSection?.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
17460
+ "p",
17461
+ {
17462
+ className: cn(
17463
+ "mb-8 text-lg text-white/80 text-balance",
17464
+ descriptionClassName
17465
+ ),
17466
+ children: currentSection?.description
17467
+ }
17468
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-8", descriptionClassName), children: currentSection?.description })),
17469
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: renderActions() || currentSection?.ctaText && /* @__PURE__ */ jsxRuntime.jsxs(
17470
+ Pressable,
17471
+ {
17472
+ href: currentSection?.ctaHref,
17473
+ onClick: currentSection?.ctaOnClick,
17474
+ asButton: true,
17475
+ size: "lg",
17476
+ className: "bg-white text-black hover:bg-white/90",
17477
+ children: [
17478
+ currentSection?.ctaText,
17479
+ /* @__PURE__ */ jsxRuntime.jsx(
17480
+ DynamicIcon,
17481
+ {
17482
+ name: "lucide/arrow-right",
17483
+ size: 16,
17484
+ className: "ml-2"
17485
+ }
17486
+ )
17487
+ ]
17488
+ }
17489
+ ) })
17490
+ ]
17491
+ },
17492
+ currentIndex
17493
+ ) }) })
17494
+ }
17495
+ ),
17496
+ /* @__PURE__ */ jsxRuntime.jsx(
17497
+ "div",
17498
+ {
17499
+ className: cn(
17500
+ "absolute right-6 top-1/2 z-20 flex -translate-y-1/2 flex-col gap-3",
17501
+ navigationClassName
17502
+ ),
17503
+ children: sections?.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
17504
+ "button",
17505
+ {
17506
+ onClick: () => goToSlide(index),
17507
+ className: cn(
17508
+ "h-3 w-3 rounded-full border-2 transition-all",
17509
+ currentIndex === index ? "scale-125 border-white bg-white" : "border-white/50 bg-transparent hover:border-white"
17510
+ ),
17511
+ "aria-label": `Go to section ${index + 1}`
17512
+ },
17513
+ index
17514
+ ))
17515
+ }
17516
+ ),
17517
+ /* @__PURE__ */ jsxRuntime.jsxs(
17518
+ "div",
17519
+ {
17520
+ className: cn(
17521
+ "absolute bottom-8 left-1/2 z-20 flex -translate-x-1/2 gap-4",
17522
+ arrowsClassName
17523
+ ),
17436
17524
  children: [
17437
- currentSection.subtitle && (typeof currentSection.subtitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-2 text-sm font-medium uppercase tracking-widest text-white/70", subtitleClassName), children: currentSection.subtitle }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-2", subtitleClassName), children: currentSection.subtitle })),
17438
- currentSection.title && (typeof currentSection.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("mb-4 text-4xl font-bold md:text-5xl lg:text-6xl", titleClassName), children: currentSection.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", titleClassName), children: currentSection.title })),
17439
- currentSection.description && (typeof currentSection.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-8 text-lg text-white/80", descriptionClassName), children: currentSection.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-8", descriptionClassName), children: currentSection.description })),
17440
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: renderActions() || currentSection.ctaText && /* @__PURE__ */ jsxRuntime.jsxs(
17525
+ /* @__PURE__ */ jsxRuntime.jsx(
17441
17526
  Pressable,
17442
17527
  {
17443
- href: currentSection.ctaHref,
17444
- onClick: currentSection.ctaOnClick,
17528
+ onClick: goToPrev,
17445
17529
  asButton: true,
17446
- size: "lg",
17447
- className: "bg-white text-black hover:bg-white/90",
17448
- children: [
17449
- currentSection.ctaText,
17450
- /* @__PURE__ */ jsxRuntime.jsx(
17451
- DynamicIcon,
17452
- {
17453
- name: "lucide/arrow-right",
17454
- size: 16,
17455
- className: "ml-2"
17456
- }
17457
- )
17458
- ]
17530
+ variant: "ghost",
17531
+ size: "icon",
17532
+ disabled: currentIndex === 0,
17533
+ className: "rounded-full border border-white/30 text-white hover:bg-white/10 disabled:opacity-30",
17534
+ children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-up", size: 20 })
17459
17535
  }
17460
- ) })
17536
+ ),
17537
+ /* @__PURE__ */ jsxRuntime.jsx(
17538
+ Pressable,
17539
+ {
17540
+ onClick: goToNext,
17541
+ asButton: true,
17542
+ variant: "ghost",
17543
+ size: "icon",
17544
+ disabled: currentIndex === (sections?.length ?? 0) - 1,
17545
+ className: "rounded-full border border-white/30 text-white hover:bg-white/10 disabled:opacity-30",
17546
+ children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-down", size: 20 })
17547
+ }
17548
+ )
17461
17549
  ]
17462
- },
17463
- currentIndex
17464
- ) }) }) }),
17465
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("absolute right-6 top-1/2 z-20 flex -translate-y-1/2 flex-col gap-3", navigationClassName), children: sections.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
17466
- "button",
17550
+ }
17551
+ ),
17552
+ /* @__PURE__ */ jsxRuntime.jsxs(
17553
+ "div",
17467
17554
  {
17468
- onClick: () => goToSlide(index),
17469
17555
  className: cn(
17470
- "h-3 w-3 rounded-full border-2 transition-all",
17471
- currentIndex === index ? "scale-125 border-white bg-white" : "border-white/50 bg-transparent hover:border-white"
17556
+ "absolute bottom-8 right-8 z-20 text-sm text-white/50",
17557
+ counterClassName
17472
17558
  ),
17473
- "aria-label": `Go to section ${index + 1}`
17474
- },
17475
- index
17476
- )) }),
17477
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("absolute bottom-8 left-1/2 z-20 flex -translate-x-1/2 gap-4", arrowsClassName), children: [
17478
- /* @__PURE__ */ jsxRuntime.jsx(
17479
- Pressable,
17480
- {
17481
- onClick: goToPrev,
17482
- asButton: true,
17483
- variant: "ghost",
17484
- size: "icon",
17485
- disabled: currentIndex === 0,
17486
- className: "rounded-full border border-white/30 text-white hover:bg-white/10 disabled:opacity-30",
17487
- children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-up", size: 20 })
17488
- }
17489
- ),
17490
- /* @__PURE__ */ jsxRuntime.jsx(
17491
- Pressable,
17492
- {
17493
- onClick: goToNext,
17494
- asButton: true,
17495
- variant: "ghost",
17496
- size: "icon",
17497
- disabled: currentIndex === sections.length - 1,
17498
- className: "rounded-full border border-white/30 text-white hover:bg-white/10 disabled:opacity-30",
17499
- children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-down", size: 20 })
17500
- }
17501
- )
17502
- ] }),
17503
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("absolute bottom-8 right-8 z-20 text-sm text-white/50", counterClassName), children: [
17504
- String(currentIndex + 1).padStart(2, "0"),
17505
- " /",
17506
- " ",
17507
- String(sections.length).padStart(2, "0")
17508
- ] })
17559
+ children: [
17560
+ String(currentIndex + 1).padStart(2, "0"),
17561
+ " /",
17562
+ " ",
17563
+ String(sections?.length ?? 0).padStart(2, "0")
17564
+ ]
17565
+ }
17566
+ )
17509
17567
  ]
17510
17568
  }
17511
17569
  );
@@ -17532,11 +17590,11 @@ var variants = {
17532
17590
  function CarouselAutoProgressSlides({
17533
17591
  heading,
17534
17592
  subheading,
17535
- slideLabel,
17536
17593
  items,
17537
17594
  slidesSlot,
17538
- autoAdvanceInterval = 50,
17595
+ autoAdvanceInterval = 4200,
17539
17596
  className,
17597
+ containerClassName = "flex flex-col items-center justify-center gap-6 md:gap-12",
17540
17598
  headerClassName,
17541
17599
  headingClassName,
17542
17600
  subheadingClassName,
@@ -17545,8 +17603,8 @@ function CarouselAutoProgressSlides({
17545
17603
  slideContainerClassName,
17546
17604
  imageClassName,
17547
17605
  optixFlowConfig,
17548
- background = "white",
17549
- spacing = "xl",
17606
+ background,
17607
+ spacing,
17550
17608
  pattern,
17551
17609
  patternOpacity
17552
17610
  }) {
@@ -17602,54 +17660,73 @@ function CarouselAutoProgressSlides({
17602
17660
  ),
17603
17661
  pattern,
17604
17662
  patternOpacity,
17663
+ containerClassName,
17605
17664
  children: [
17606
17665
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("text-center", headerClassName), children: [
17607
17666
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-6xl tracking-tighter", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
17608
- subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 text-2xl text-foreground/50", subheadingClassName), children: subheading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", subheadingClassName), children: subheading }))
17609
- ] }),
17610
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center justify-center gap-5", navigationClassName), children: [
17611
- /* @__PURE__ */ jsxRuntime.jsx(
17612
- Pressable,
17667
+ subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
17668
+ "p",
17613
17669
  {
17614
- onClick: handlePrev,
17615
- asButton: true,
17616
- variant: "ghost",
17617
- size: "icon",
17618
- className: "flex size-6 cursor-pointer items-center justify-center rounded-full bg-foreground/10 p-0.5 text-foreground/50 hover:bg-foreground/20 active:scale-95",
17619
- children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-left", size: 16 })
17670
+ className: cn(
17671
+ "mt-4 text-2xl text-foreground/50",
17672
+ subheadingClassName
17673
+ ),
17674
+ children: subheading
17620
17675
  }
17621
- ),
17622
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center gap-1", children: items?.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
17623
- framerMotion.motion.button,
17624
- {
17625
- initial: false,
17626
- onClick: () => handleDotClick(index),
17627
- animate: {
17628
- width: index === currentIndex ? "30px" : "8px"
17629
- },
17630
- className: "relative flex h-2 cursor-pointer items-center justify-center overflow-hidden rounded-full bg-foreground/15 p-0.5 text-foreground/50",
17631
- children: currentIndex === index && /* @__PURE__ */ jsxRuntime.jsx(
17632
- framerMotion.motion.div,
17676
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", subheadingClassName), children: subheading }))
17677
+ ] }),
17678
+ /* @__PURE__ */ jsxRuntime.jsxs(
17679
+ "div",
17680
+ {
17681
+ className: cn(
17682
+ "flex items-center justify-center gap-5",
17683
+ navigationClassName
17684
+ ),
17685
+ children: [
17686
+ /* @__PURE__ */ jsxRuntime.jsx(
17687
+ Pressable,
17633
17688
  {
17634
- style: { clipPath },
17635
- className: "absolute left-0 top-0 h-full w-full origin-left rounded-full bg-foreground"
17689
+ onClick: handlePrev,
17690
+ asButton: true,
17691
+ variant: "ghost",
17692
+ size: "icon",
17693
+ className: "flex size-6 cursor-pointer items-center justify-center rounded-full bg-foreground/10 p-0.5 text-foreground/50 hover:bg-foreground/20 active:scale-95",
17694
+ children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-left", size: 16 })
17695
+ }
17696
+ ),
17697
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center gap-1", children: items?.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
17698
+ framerMotion.motion.button,
17699
+ {
17700
+ initial: false,
17701
+ onClick: () => handleDotClick(index),
17702
+ animate: {
17703
+ width: index === currentIndex ? "30px" : "8px"
17704
+ },
17705
+ className: "relative flex h-2 cursor-pointer items-center justify-center overflow-hidden rounded-full bg-foreground/15 p-0.5 text-foreground/50",
17706
+ children: currentIndex === index && /* @__PURE__ */ jsxRuntime.jsx(
17707
+ framerMotion.motion.div,
17708
+ {
17709
+ style: { clipPath },
17710
+ className: "absolute left-0 top-0 h-full w-full origin-left rounded-full bg-foreground"
17711
+ }
17712
+ )
17713
+ },
17714
+ index
17715
+ )) }),
17716
+ /* @__PURE__ */ jsxRuntime.jsx(
17717
+ Pressable,
17718
+ {
17719
+ onClick: handleNext,
17720
+ asButton: true,
17721
+ variant: "ghost",
17722
+ size: "icon",
17723
+ className: "flex size-6 cursor-pointer items-center justify-center rounded-full bg-foreground/10 p-0.5 text-neutral-400 hover:bg-foreground/20 active:scale-95",
17724
+ children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-right", size: 16 })
17636
17725
  }
17637
17726
  )
17638
- },
17639
- index
17640
- )) }),
17641
- /* @__PURE__ */ jsxRuntime.jsx(
17642
- Pressable,
17643
- {
17644
- onClick: handleNext,
17645
- asButton: true,
17646
- variant: "ghost",
17647
- size: "icon",
17648
- className: "flex size-6 cursor-pointer items-center justify-center rounded-full bg-foreground/10 p-0.5 text-neutral-400 hover:bg-foreground/20 active:scale-95",
17649
- children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-right", size: 16 })
17650
- }
17651
- )
17652
- ] }),
17727
+ ]
17728
+ }
17729
+ ),
17653
17730
  slidesSlot ? slidesSlot : /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, mode: "popLayout", custom: direction, children: currentIndex !== null && /* @__PURE__ */ jsxRuntime.jsxs(
17654
17731
  framerMotion.motion.div,
17655
17732
  {
@@ -17659,26 +17736,51 @@ function CarouselAutoProgressSlides({
17659
17736
  exit: "exit",
17660
17737
  custom: direction,
17661
17738
  transition: { type: "spring", stiffness: 100, damping: 30 },
17662
- className: cn("flex w-full max-w-3xl flex-col items-center justify-center", items?.[currentIndex]?.className),
17739
+ className: cn(
17740
+ "flex w-full max-w-3xl flex-col items-center justify-center",
17741
+ items?.[currentIndex]?.className
17742
+ ),
17663
17743
  children: [
17664
- slideLabel && (typeof slideLabel === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-6 text-2xl text-foreground/50", slideLabelClassName), children: slideLabel }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-6", slideLabelClassName), children: slideLabel })),
17665
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("h-[550px] w-full overflow-hidden rounded-3xl bg-foreground/10 p-1", slideContainerClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
17666
- framerMotion.motion.div,
17744
+ typeof items?.[currentIndex]?.label === "string" && /* @__PURE__ */ jsxRuntime.jsx(
17745
+ "p",
17667
17746
  {
17668
- initial: { scale: 0.9 },
17669
- animate: { scale: 1 },
17670
- className: "h-full w-full",
17747
+ className: cn(
17748
+ "mb-6 font-medium text-center text-lg text-foreground/50",
17749
+ slideLabelClassName
17750
+ ),
17751
+ children: items?.[currentIndex]?.label
17752
+ }
17753
+ ),
17754
+ /* @__PURE__ */ jsxRuntime.jsx(
17755
+ "div",
17756
+ {
17757
+ className: cn(
17758
+ "h-[550px] w-full overflow-hidden rounded-3xl bg-foreground/10 p-1",
17759
+ slideContainerClassName
17760
+ ),
17671
17761
  children: /* @__PURE__ */ jsxRuntime.jsx(
17672
- img.Img,
17762
+ framerMotion.motion.div,
17673
17763
  {
17674
- src: items?.[currentIndex]?.src ?? "",
17675
- alt: typeof items?.[currentIndex]?.label === "string" ? items[currentIndex].label : `Slide ${currentIndex + 1}`,
17676
- className: cn("h-full w-full rounded-3xl object-cover", imageClassName, items?.[currentIndex]?.imageClassName),
17677
- optixFlowConfig
17764
+ initial: { scale: 0.9 },
17765
+ animate: { scale: 1 },
17766
+ className: "h-full w-full",
17767
+ children: /* @__PURE__ */ jsxRuntime.jsx(
17768
+ img.Img,
17769
+ {
17770
+ src: items?.[currentIndex]?.src ?? "",
17771
+ alt: typeof items?.[currentIndex]?.label === "string" ? items[currentIndex].label : `Slide ${currentIndex + 1}`,
17772
+ className: cn(
17773
+ "h-full w-full rounded-3xl object-cover",
17774
+ imageClassName,
17775
+ items?.[currentIndex]?.imageClassName
17776
+ ),
17777
+ optixFlowConfig
17778
+ }
17779
+ )
17678
17780
  }
17679
17781
  )
17680
17782
  }
17681
- ) })
17783
+ )
17682
17784
  ]
17683
17785
  },
17684
17786
  currentIndex
@@ -17810,7 +17912,7 @@ function CarouselAutoplayProgress({
17810
17912
  pattern,
17811
17913
  patternOpacity,
17812
17914
  children: [
17813
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("overflow-hidden", containerClassName), ref: emblaRef, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("ml-auto mr-3 flex touch-pan-y touch-pinch-zoom", trackClassName), children: slidesSlot ? slidesSlot : slides.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsxs(
17915
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("overflow-hidden", containerClassName), ref: emblaRef, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("ml-auto mr-3 flex touch-pan-y touch-pinch-zoom", trackClassName), children: slidesSlot ? slidesSlot : slides?.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsxs(
17814
17916
  "div",
17815
17917
  {
17816
17918
  className: cn("flex-[0_0_70%] transform-gpu pl-3", slideClassName, slide.className),
@@ -17874,7 +17976,7 @@ function CarouselAutoplayProgress({
17874
17976
  }
17875
17977
  )
17876
17978
  ] }),
17877
- /* @__PURE__ */ jsxRuntime.jsx("style", { jsx: true, children: `
17979
+ /* @__PURE__ */ jsxRuntime.jsx("style", { children: `
17878
17980
  @keyframes autoplay-progress {
17879
17981
  from {
17880
17982
  transform: translateX(0);
@@ -18154,7 +18256,7 @@ function CarouselFullscreenScrollFx({
18154
18256
  const [activeIndex, setActiveIndex] = React52__namespace.useState(0);
18155
18257
  React52__namespace.useEffect(() => {
18156
18258
  const observers = [];
18157
- slides.forEach((slide, index) => {
18259
+ slides?.forEach((slide, index) => {
18158
18260
  const element = document.getElementById(`fullscreen-${slide.id}`);
18159
18261
  if (element) {
18160
18262
  const observer = new IntersectionObserver(
@@ -18185,7 +18287,7 @@ function CarouselFullscreenScrollFx({
18185
18287
  pattern,
18186
18288
  patternOpacity,
18187
18289
  children: [
18188
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("fixed right-6 top-1/2 z-50 hidden -translate-y-1/2 flex-col gap-3 lg:flex", navigationClassName), children: slides.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsx(
18290
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("fixed right-6 top-1/2 z-50 hidden -translate-y-1/2 flex-col gap-3 lg:flex", navigationClassName), children: slides?.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsx(
18189
18291
  "button",
18190
18292
  {
18191
18293
  onClick: () => {
@@ -18200,7 +18302,7 @@ function CarouselFullscreenScrollFx({
18200
18302
  },
18201
18303
  slide.id
18202
18304
  )) }),
18203
- slidesSlot ? slidesSlot : slides.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsxs(
18305
+ slidesSlot ? slidesSlot : slides?.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsxs(
18204
18306
  "div",
18205
18307
  {
18206
18308
  id: `fullscreen-${slide.id}`,
@@ -18230,7 +18332,7 @@ function CarouselFullscreenScrollFx({
18230
18332
  slide.subtitle && (typeof slide.subtitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-4 text-sm font-medium uppercase tracking-widest text-white/70", subtitleClassName), children: slide.subtitle }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: subtitleClassName, children: slide.subtitle })),
18231
18333
  slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("mb-6 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", titleClassName), children: slide.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: slide.title })),
18232
18334
  slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto max-w-2xl text-lg text-white/80 md:text-xl", descriptionClassName), children: slide.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: slide.description })),
18233
- index < slides.length - 1 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("absolute bottom-8 left-1/2 -translate-x-1/2", scrollIndicatorClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-2", children: [
18335
+ index < (slides?.length ?? 0) - 1 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("absolute bottom-8 left-1/2 -translate-x-1/2", scrollIndicatorClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-2", children: [
18234
18336
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs uppercase tracking-widest text-white/50", children: "Scroll" }),
18235
18337
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-12 w-px animate-pulse bg-gradient-to-b from-white/50 to-transparent" })
18236
18338
  ] }) })
@@ -18239,7 +18341,7 @@ function CarouselFullscreenScrollFx({
18239
18341
  String(index + 1).padStart(2, "0"),
18240
18342
  " /",
18241
18343
  " ",
18242
- String(slides.length).padStart(2, "0")
18344
+ String(slides?.length ?? 0).padStart(2, "0")
18243
18345
  ] })
18244
18346
  ]
18245
18347
  },
@@ -18271,14 +18373,14 @@ function CarouselGalleryThumbnails({
18271
18373
  const [currentIndex, setCurrentIndex] = React52__namespace.useState(0);
18272
18374
  const prevSlide = React52__namespace.useCallback(() => {
18273
18375
  setCurrentIndex(
18274
- (prev) => prev === 0 ? images.length - 1 : prev - 1
18376
+ (prev) => prev === 0 ? (images?.length ?? 0) - 1 : prev - 1
18275
18377
  );
18276
- }, [images.length]);
18378
+ }, [images?.length]);
18277
18379
  const nextSlide = React52__namespace.useCallback(() => {
18278
18380
  setCurrentIndex(
18279
- (prev) => prev === images.length - 1 ? 0 : prev + 1
18381
+ (prev) => prev === (images?.length ?? 0) - 1 ? 0 : prev + 1
18280
18382
  );
18281
- }, [images.length]);
18383
+ }, [images?.length]);
18282
18384
  React52__namespace.useEffect(() => {
18283
18385
  if (!autoPlay) return;
18284
18386
  const interval = setInterval(() => {
@@ -18307,7 +18409,7 @@ function CarouselGalleryThumbnails({
18307
18409
  patternOpacity,
18308
18410
  children: [
18309
18411
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative overflow-hidden rounded-lg", containerClassName), children: [
18310
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative aspect-video w-full overflow-hidden", slideClassName), children: imagesSlot ? imagesSlot : images.map((image, index) => /* @__PURE__ */ jsxRuntime.jsx(
18412
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative aspect-video w-full overflow-hidden", slideClassName), children: imagesSlot ? imagesSlot : images?.map((image, index) => /* @__PURE__ */ jsxRuntime.jsx(
18311
18413
  "div",
18312
18414
  {
18313
18415
  className: cn(
@@ -18347,9 +18449,9 @@ function CarouselGalleryThumbnails({
18347
18449
  children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-right", size: 24 })
18348
18450
  }
18349
18451
  ),
18350
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/60 to-transparent p-4 text-sm text-white", captionClassName), children: images[currentIndex].alt && (typeof images[currentIndex].alt === "string" ? images[currentIndex].alt : /* @__PURE__ */ jsxRuntime.jsx("div", { children: images[currentIndex].alt })) })
18452
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/60 to-transparent p-4 text-sm text-white", captionClassName), children: images?.[currentIndex].alt && (typeof images?.[currentIndex].alt === "string" ? images?.[currentIndex].alt : /* @__PURE__ */ jsxRuntime.jsx("div", { children: images?.[currentIndex].alt })) })
18351
18453
  ] }),
18352
- showThumbnails && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4 flex gap-2 overflow-x-auto px-2 py-2", thumbnailsClassName), children: images.map((image, index) => /* @__PURE__ */ jsxRuntime.jsx(
18454
+ showThumbnails && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4 flex gap-2 overflow-x-auto px-2 py-2", thumbnailsClassName), children: images?.map((image, index) => /* @__PURE__ */ jsxRuntime.jsx(
18353
18455
  "button",
18354
18456
  {
18355
18457
  className: cn(
@@ -19277,18 +19379,18 @@ function CarouselProgressSlider({
19277
19379
  pattern,
19278
19380
  patternOpacity
19279
19381
  }) {
19280
- const [active, setActive] = React52__namespace.useState(slides[0].id);
19382
+ const [active, setActive] = React52__namespace.useState(slides?.[0]?.id ?? "");
19281
19383
  const [progress, setProgress] = React52__namespace.useState(0);
19282
19384
  const [isFastForward, setIsFastForward] = React52__namespace.useState(false);
19283
19385
  const frame = React52__namespace.useRef(0);
19284
19386
  const firstFrameTime = React52__namespace.useRef(performance.now());
19285
19387
  const targetValue = React52__namespace.useRef(null);
19286
19388
  const sliderValues = React52__namespace.useMemo(
19287
- () => slides.map((slide) => slide.id),
19389
+ () => slides?.map((slide) => slide.id),
19288
19390
  [slides]
19289
19391
  );
19290
19392
  React52__namespace.useEffect(() => {
19291
- if (sliderValues.length > 0) {
19393
+ if ((sliderValues?.length ?? 0) > 0) {
19292
19394
  firstFrameTime.current = performance.now();
19293
19395
  frame.current = requestAnimationFrame(animate);
19294
19396
  }
@@ -19313,9 +19415,10 @@ function CarouselProgressSlider({
19313
19415
  targetValue.current = null;
19314
19416
  }
19315
19417
  } else {
19316
- const currentIndex = sliderValues.indexOf(active);
19317
- const nextIndex = (currentIndex + 1) % sliderValues.length;
19318
- setActive(sliderValues[nextIndex]);
19418
+ const currentIndex = sliderValues?.indexOf(active) ?? -1;
19419
+ const nextIndex = (currentIndex + 1) % (sliderValues?.length ?? 1);
19420
+ const nextValue = sliderValues?.[nextIndex];
19421
+ if (nextValue) setActive(nextValue);
19319
19422
  }
19320
19423
  setProgress(0);
19321
19424
  firstFrameTime.current = performance.now();
@@ -19344,7 +19447,7 @@ function CarouselProgressSlider({
19344
19447
  pattern,
19345
19448
  patternOpacity,
19346
19449
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container mx-auto px-4", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid gap-8 lg:grid-cols-2", contentClassName), children: [
19347
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative min-h-[300px]", imageClassName), children: slidesSlot ? slidesSlot : slides.map((slide) => /* @__PURE__ */ jsxRuntime.jsx(
19450
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative min-h-[300px]", imageClassName), children: slidesSlot ? slidesSlot : slides?.map((slide) => /* @__PURE__ */ jsxRuntime.jsx(
19348
19451
  SliderWrapper,
19349
19452
  {
19350
19453
  value: slide.id,
@@ -19361,7 +19464,7 @@ function CarouselProgressSlider({
19361
19464
  },
19362
19465
  slide.id
19363
19466
  )) }),
19364
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col justify-center gap-4", navigationClassName), children: slides.map((slide) => /* @__PURE__ */ jsxRuntime.jsxs(
19467
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col justify-center gap-4", navigationClassName), children: slides?.map((slide) => /* @__PURE__ */ jsxRuntime.jsxs(
19365
19468
  SliderBtn,
19366
19469
  {
19367
19470
  value: slide.id,
@@ -32175,7 +32278,7 @@ function BlogGridAuthorCardsComponent({
32175
32278
  pattern,
32176
32279
  patternOpacity,
32177
32280
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
32178
- (heading || description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-8 md:mb-14 lg:mb-16", headerClassName), children: [
32281
+ (heading || description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-6 md:mb-14 lg:mb-16", headerClassName), children: [
32179
32282
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-start justify-between gap-8", children: /* @__PURE__ */ jsxRuntime.jsx("div", { children: heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
32180
32283
  "h2",
32181
32284
  {
@@ -32342,7 +32445,7 @@ function BlogCardsTaglineCta({
32342
32445
  "div",
32343
32446
  {
32344
32447
  className: cn(
32345
- "text-center flex flex-col items-center px-6 md:px-0",
32448
+ "text-center flex flex-col items-center px-4 md:px-0",
32346
32449
  headerClassName
32347
32450
  ),
32348
32451
  children: [
@@ -32485,7 +32588,7 @@ function BlogCardsReadTime({
32485
32588
  "div",
32486
32589
  {
32487
32590
  className: cn(
32488
- "mx-auto flex max-w-3xl flex-col items-center gap-4 text-center px-8 md:px-0",
32591
+ "mx-auto flex max-w-3xl flex-col items-center gap-4 text-center px-4 md:px-0",
32489
32592
  headerClassName
32490
32593
  ),
32491
32594
  children: [
@@ -32671,7 +32774,7 @@ function BlogCategoryOverlay({
32671
32774
  "div",
32672
32775
  {
32673
32776
  className: cn(
32674
- "mx-auto flex max-w-3xl flex-col items-center gap-6 text-center px-8 md:px-0",
32777
+ "mx-auto flex max-w-3xl flex-col items-center gap-6 text-center px-4 md:px-0",
32675
32778
  headerClassName
32676
32779
  ),
32677
32780
  children: [
@@ -32837,7 +32940,7 @@ function BlogFeaturedPopular({
32837
32940
  "div",
32838
32941
  {
32839
32942
  className: cn(
32840
- "mb-6 md:mb-16 text-center px-8 md:px-0",
32943
+ "mb-6 md:mb-16 text-center px-4 md:px-0",
32841
32944
  headerClassName
32842
32945
  ),
32843
32946
  children: [
@@ -33161,55 +33264,64 @@ function BlogTechInsights({
33161
33264
  className: cn("dark relative", className),
33162
33265
  pattern,
33163
33266
  patternOpacity,
33164
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
33165
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-8", headerClassName), children: [
33166
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
33167
- "h1",
33168
- {
33169
- className: cn(
33170
- "text-3xl font-bold text-foreground md:text-4xl lg:text-5xl",
33171
- headingClassName
33172
- ),
33173
- children: heading
33174
- }
33175
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
33176
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex justify-start", children: [
33177
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
33178
- "span",
33179
- {
33180
- className: cn(
33181
- "mt-2 block text-sm text-muted-foreground md:text-base",
33182
- descriptionClassName
33183
- ),
33184
- children: description
33185
- }
33186
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
33187
- readMoreActionContent
33188
- ] })
33189
- ] }),
33190
- /* @__PURE__ */ jsxRuntime.jsxs(
33191
- "div",
33192
- {
33193
- className: cn(
33194
- "mt-12 grid grid-cols-1 gap-8 md:grid-cols-2 lg:gap-12",
33195
- contentClassName
33196
- ),
33197
- children: [
33198
- featuredPostContent,
33199
- /* @__PURE__ */ jsxRuntime.jsx(
33200
- "div",
33267
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
33268
+ "div",
33269
+ {
33270
+ className: cn(
33271
+ "flex flex-col items-center gap-8 md:gap-14",
33272
+ containerClassName
33273
+ ),
33274
+ children: [
33275
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("w-full", headerClassName), children: [
33276
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
33277
+ "h1",
33201
33278
  {
33202
33279
  className: cn(
33203
- "space-y-6 text-foreground md:space-y-8",
33204
- secondaryPostsClassName
33280
+ "text-3xl font-bold text-foreground md:text-4xl lg:text-5xl",
33281
+ headingClassName
33205
33282
  ),
33206
- children: secondaryPostsContent
33283
+ children: heading
33207
33284
  }
33208
- )
33209
- ]
33210
- }
33211
- )
33212
- ] })
33285
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
33286
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex justify-start", children: [
33287
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
33288
+ "span",
33289
+ {
33290
+ className: cn(
33291
+ "mt-2 block text-sm text-muted-foreground md:text-base",
33292
+ descriptionClassName
33293
+ ),
33294
+ children: description
33295
+ }
33296
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
33297
+ readMoreActionContent
33298
+ ] })
33299
+ ] }),
33300
+ /* @__PURE__ */ jsxRuntime.jsxs(
33301
+ "div",
33302
+ {
33303
+ className: cn(
33304
+ "grid grid-cols-1 gap-8 md:grid-cols-2 lg:gap-12",
33305
+ contentClassName
33306
+ ),
33307
+ children: [
33308
+ featuredPostContent,
33309
+ /* @__PURE__ */ jsxRuntime.jsx(
33310
+ "div",
33311
+ {
33312
+ className: cn(
33313
+ "space-y-6 text-foreground md:space-y-8",
33314
+ secondaryPostsClassName
33315
+ ),
33316
+ children: secondaryPostsContent
33317
+ }
33318
+ )
33319
+ ]
33320
+ }
33321
+ )
33322
+ ]
33323
+ }
33324
+ )
33213
33325
  }
33214
33326
  );
33215
33327
  }
@@ -33337,7 +33449,7 @@ function BlogHorizontalCards({
33337
33449
  className: cn(className),
33338
33450
  pattern,
33339
33451
  patternOpacity,
33340
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container mx-auto", containerClassName), children: [
33452
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col items-center", containerClassName), children: [
33341
33453
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-3xl text-center", headerClassName), children: [
33342
33454
  badge && (typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "secondary", className: cn("mb-6", badgeClassName), children: badge }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-6", badgeClassName), children: badge })),
33343
33455
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -34115,7 +34227,7 @@ function BlogGridNinePosts({
34115
34227
  pattern,
34116
34228
  patternOpacity,
34117
34229
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
34118
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-8 md:mb-14 lg:mb-16", headerClassName), children: [
34230
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-6 md:mb-14 lg:mb-16", headerClassName), children: [
34119
34231
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-start justify-between gap:4 md:gap-8", children: /* @__PURE__ */ jsxRuntime.jsx("div", { children: heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
34120
34232
  "h2",
34121
34233
  {
@@ -97817,7 +97929,6 @@ var BLOCK_REGISTRY = {
97817
97929
  <CarouselAutoProgressSlides
97818
97930
  heading="Featured Products"
97819
97931
  subheading="Discover our latest collection"
97820
- slideLabel="Explore"
97821
97932
  items={[
97822
97933
  { src: "/images/product-1.jpg", label: "Product 1" },
97823
97934
  { src: "/images/product-2.jpg", label: "Product 2" }