@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.js CHANGED
@@ -17245,7 +17245,7 @@ function CarouselAnimatedSections({
17245
17245
  actionsSlot,
17246
17246
  actions,
17247
17247
  className,
17248
- containerClassName,
17248
+ containerClassName = "h-full",
17249
17249
  contentClassName,
17250
17250
  subtitleClassName,
17251
17251
  titleClassName,
@@ -17256,20 +17256,21 @@ function CarouselAnimatedSections({
17256
17256
  counterClassName,
17257
17257
  overlayClassName,
17258
17258
  optixFlowConfig,
17259
- background = "white",
17260
- spacing = "xl",
17261
- pattern,
17262
- patternOpacity
17259
+ background = "dark",
17260
+ spacing = "py-0",
17261
+ containerMaxWidth = "full",
17262
+ pattern = "diagonalCrossBasic",
17263
+ patternOpacity = 0.033
17263
17264
  }) {
17264
17265
  const [currentIndex, setCurrentIndex] = React52.useState(0);
17265
17266
  const [direction, setDirection] = React52.useState(0);
17266
17267
  const [isAnimating, setIsAnimating] = React52.useState(false);
17267
17268
  const goToNext = React52.useCallback(() => {
17268
- if (isAnimating || currentIndex >= sections.length - 1) return;
17269
+ if (isAnimating || currentIndex >= (sections?.length ?? 0) - 1) return;
17269
17270
  setIsAnimating(true);
17270
17271
  setDirection(1);
17271
17272
  setCurrentIndex((prev) => prev + 1);
17272
- }, [currentIndex, isAnimating, sections.length]);
17273
+ }, [currentIndex, isAnimating, sections?.length]);
17273
17274
  const goToPrev = React52.useCallback(() => {
17274
17275
  if (isAnimating || currentIndex <= 0) return;
17275
17276
  setIsAnimating(true);
@@ -17293,25 +17294,6 @@ function CarouselAnimatedSections({
17293
17294
  window.addEventListener("keydown", handleKeyDown);
17294
17295
  return () => window.removeEventListener("keydown", handleKeyDown);
17295
17296
  }, [goToNext, goToPrev]);
17296
- React52.useEffect(() => {
17297
- let timeout;
17298
- const handleWheel = (e) => {
17299
- e.preventDefault();
17300
- clearTimeout(timeout);
17301
- timeout = setTimeout(() => {
17302
- if (e.deltaY > 0) {
17303
- goToNext();
17304
- } else if (e.deltaY < 0) {
17305
- goToPrev();
17306
- }
17307
- }, 50);
17308
- };
17309
- window.addEventListener("wheel", handleWheel, { passive: false });
17310
- return () => {
17311
- window.removeEventListener("wheel", handleWheel);
17312
- clearTimeout(timeout);
17313
- };
17314
- }, [goToNext, goToPrev]);
17315
17297
  const slideVariants2 = {
17316
17298
  enter: (direction2) => ({
17317
17299
  y: direction2 > 0 ? "100%" : "-100%",
@@ -17326,7 +17308,7 @@ function CarouselAnimatedSections({
17326
17308
  opacity: 0
17327
17309
  })
17328
17310
  };
17329
- const currentSection = sections[currentIndex];
17311
+ const currentSection = sections?.[currentIndex];
17330
17312
  const renderActions = () => {
17331
17313
  if (actionsSlot) return actionsSlot;
17332
17314
  if (actions && actions.length > 0) {
@@ -17338,7 +17320,10 @@ function CarouselAnimatedSections({
17338
17320
  asButton: true,
17339
17321
  variant: action.variant,
17340
17322
  size: action.size || "lg",
17341
- className: cn("bg-white text-black hover:bg-white/90", action.className),
17323
+ className: cn(
17324
+ "bg-white text-black hover:bg-white/90",
17325
+ action.className
17326
+ ),
17342
17327
  children: [
17343
17328
  action.label,
17344
17329
  action.icon && /* @__PURE__ */ jsx("span", { className: "ml-2", children: action.icon }),
@@ -17358,8 +17343,10 @@ function CarouselAnimatedSections({
17358
17343
  className: cn("relative h-screen w-full overflow-hidden", className),
17359
17344
  pattern,
17360
17345
  patternOpacity,
17346
+ containerMaxWidth,
17347
+ containerClassName,
17361
17348
  children: [
17362
- sectionsSlot ? sectionsSlot : /* @__PURE__ */ jsx(AnimatePresence, { initial: false, custom: direction, mode: "wait", children: /* @__PURE__ */ jsxs(
17349
+ sectionsSlot ? sectionsSlot : currentSection ? /* @__PURE__ */ jsx(AnimatePresence, { initial: false, custom: direction, mode: "wait", children: /* @__PURE__ */ jsxs(
17363
17350
  motion.div,
17364
17351
  {
17365
17352
  custom: direction,
@@ -17369,103 +17356,174 @@ function CarouselAnimatedSections({
17369
17356
  exit: "exit",
17370
17357
  transition: { duration: 0.6, ease: [0.4, 0, 0.2, 1] },
17371
17358
  onAnimationComplete: () => setIsAnimating(false),
17372
- className: cn("absolute inset-0", currentSection.className),
17359
+ className: cn("absolute inset-0", currentSection?.className),
17373
17360
  children: [
17374
17361
  /* @__PURE__ */ jsx(
17375
17362
  Img,
17376
17363
  {
17377
- src: currentSection.image,
17378
- alt: typeof currentSection.title === "string" ? currentSection.title : `Section ${currentSection.id}`,
17379
- className: cn("h-full w-full object-cover", currentSection.imageClassName),
17364
+ src: currentSection?.image,
17365
+ alt: typeof currentSection?.title === "string" ? currentSection?.title : `Section ${currentSection?.id}`,
17366
+ className: cn(
17367
+ "h-full w-full object-cover",
17368
+ currentSection?.imageClassName
17369
+ ),
17380
17370
  optixFlowConfig
17381
17371
  }
17382
17372
  ),
17383
- /* @__PURE__ */ jsx("div", { className: cn("absolute inset-0 bg-black/50", overlayClassName) })
17373
+ /* @__PURE__ */ jsx(
17374
+ "div",
17375
+ {
17376
+ className: cn("absolute inset-0 bg-black/50", overlayClassName)
17377
+ }
17378
+ )
17384
17379
  ]
17385
17380
  },
17386
17381
  currentIndex
17387
- ) }),
17388
- /* @__PURE__ */ jsx("div", { className: cn("relative z-10 flex h-full items-center", contentClassName), children: /* @__PURE__ */ jsx("div", { className: cn("container mx-auto px-6", containerClassName), children: /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxs(
17389
- motion.div,
17382
+ ) }) : null,
17383
+ /* @__PURE__ */ jsx(
17384
+ "div",
17390
17385
  {
17391
- initial: { opacity: 0, y: 40 },
17392
- animate: { opacity: 1, y: 0 },
17393
- exit: { opacity: 0, y: -40 },
17394
- transition: { duration: 0.4, delay: 0.2 },
17395
- className: "max-w-2xl text-white",
17386
+ className: cn(
17387
+ "relative z-10 flex h-full items-center",
17388
+ contentClassName
17389
+ ),
17390
+ children: /* @__PURE__ */ jsx("div", { className: cn("container mx-auto px-6", containerClassName), children: /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxs(
17391
+ motion.div,
17392
+ {
17393
+ initial: { opacity: 0, y: 40 },
17394
+ animate: { opacity: 1, y: 0 },
17395
+ exit: { opacity: 0, y: -40 },
17396
+ transition: { duration: 0.4, delay: 0.2 },
17397
+ className: "max-w-2xl text-white",
17398
+ children: [
17399
+ currentSection?.subtitle && (typeof currentSection?.subtitle === "string" ? /* @__PURE__ */ jsx(
17400
+ "p",
17401
+ {
17402
+ className: cn(
17403
+ "mb-2 text-sm font-medium uppercase tracking-widest text-white/70",
17404
+ subtitleClassName
17405
+ ),
17406
+ children: currentSection?.subtitle
17407
+ }
17408
+ ) : /* @__PURE__ */ jsx("div", { className: cn("mb-2", subtitleClassName), children: currentSection?.subtitle })),
17409
+ currentSection?.title && (typeof currentSection?.title === "string" ? /* @__PURE__ */ jsx(
17410
+ "h2",
17411
+ {
17412
+ className: cn(
17413
+ "mb-4 text-4xl font-bold md:text-5xl lg:text-6xl",
17414
+ titleClassName
17415
+ ),
17416
+ children: currentSection?.title
17417
+ }
17418
+ ) : /* @__PURE__ */ jsx("div", { className: cn("mb-4", titleClassName), children: currentSection?.title })),
17419
+ currentSection?.description && (typeof currentSection?.description === "string" ? /* @__PURE__ */ jsx(
17420
+ "p",
17421
+ {
17422
+ className: cn(
17423
+ "mb-8 text-lg text-white/80 text-balance",
17424
+ descriptionClassName
17425
+ ),
17426
+ children: currentSection?.description
17427
+ }
17428
+ ) : /* @__PURE__ */ jsx("div", { className: cn("mb-8", descriptionClassName), children: currentSection?.description })),
17429
+ /* @__PURE__ */ jsx("div", { className: actionsClassName, children: renderActions() || currentSection?.ctaText && /* @__PURE__ */ jsxs(
17430
+ Pressable,
17431
+ {
17432
+ href: currentSection?.ctaHref,
17433
+ onClick: currentSection?.ctaOnClick,
17434
+ asButton: true,
17435
+ size: "lg",
17436
+ className: "bg-white text-black hover:bg-white/90",
17437
+ children: [
17438
+ currentSection?.ctaText,
17439
+ /* @__PURE__ */ jsx(
17440
+ DynamicIcon,
17441
+ {
17442
+ name: "lucide/arrow-right",
17443
+ size: 16,
17444
+ className: "ml-2"
17445
+ }
17446
+ )
17447
+ ]
17448
+ }
17449
+ ) })
17450
+ ]
17451
+ },
17452
+ currentIndex
17453
+ ) }) })
17454
+ }
17455
+ ),
17456
+ /* @__PURE__ */ jsx(
17457
+ "div",
17458
+ {
17459
+ className: cn(
17460
+ "absolute right-6 top-1/2 z-20 flex -translate-y-1/2 flex-col gap-3",
17461
+ navigationClassName
17462
+ ),
17463
+ children: sections?.map((_, index) => /* @__PURE__ */ jsx(
17464
+ "button",
17465
+ {
17466
+ onClick: () => goToSlide(index),
17467
+ className: cn(
17468
+ "h-3 w-3 rounded-full border-2 transition-all",
17469
+ currentIndex === index ? "scale-125 border-white bg-white" : "border-white/50 bg-transparent hover:border-white"
17470
+ ),
17471
+ "aria-label": `Go to section ${index + 1}`
17472
+ },
17473
+ index
17474
+ ))
17475
+ }
17476
+ ),
17477
+ /* @__PURE__ */ jsxs(
17478
+ "div",
17479
+ {
17480
+ className: cn(
17481
+ "absolute bottom-8 left-1/2 z-20 flex -translate-x-1/2 gap-4",
17482
+ arrowsClassName
17483
+ ),
17396
17484
  children: [
17397
- currentSection.subtitle && (typeof currentSection.subtitle === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-2 text-sm font-medium uppercase tracking-widest text-white/70", subtitleClassName), children: currentSection.subtitle }) : /* @__PURE__ */ jsx("div", { className: cn("mb-2", subtitleClassName), children: currentSection.subtitle })),
17398
- currentSection.title && (typeof currentSection.title === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-4xl font-bold md:text-5xl lg:text-6xl", titleClassName), children: currentSection.title }) : /* @__PURE__ */ jsx("div", { className: cn("mb-4", titleClassName), children: currentSection.title })),
17399
- currentSection.description && (typeof currentSection.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-lg text-white/80", descriptionClassName), children: currentSection.description }) : /* @__PURE__ */ jsx("div", { className: cn("mb-8", descriptionClassName), children: currentSection.description })),
17400
- /* @__PURE__ */ jsx("div", { className: actionsClassName, children: renderActions() || currentSection.ctaText && /* @__PURE__ */ jsxs(
17485
+ /* @__PURE__ */ jsx(
17401
17486
  Pressable,
17402
17487
  {
17403
- href: currentSection.ctaHref,
17404
- onClick: currentSection.ctaOnClick,
17488
+ onClick: goToPrev,
17405
17489
  asButton: true,
17406
- size: "lg",
17407
- className: "bg-white text-black hover:bg-white/90",
17408
- children: [
17409
- currentSection.ctaText,
17410
- /* @__PURE__ */ jsx(
17411
- DynamicIcon,
17412
- {
17413
- name: "lucide/arrow-right",
17414
- size: 16,
17415
- className: "ml-2"
17416
- }
17417
- )
17418
- ]
17490
+ variant: "ghost",
17491
+ size: "icon",
17492
+ disabled: currentIndex === 0,
17493
+ className: "rounded-full border border-white/30 text-white hover:bg-white/10 disabled:opacity-30",
17494
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-up", size: 20 })
17419
17495
  }
17420
- ) })
17496
+ ),
17497
+ /* @__PURE__ */ jsx(
17498
+ Pressable,
17499
+ {
17500
+ onClick: goToNext,
17501
+ asButton: true,
17502
+ variant: "ghost",
17503
+ size: "icon",
17504
+ disabled: currentIndex === (sections?.length ?? 0) - 1,
17505
+ className: "rounded-full border border-white/30 text-white hover:bg-white/10 disabled:opacity-30",
17506
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-down", size: 20 })
17507
+ }
17508
+ )
17421
17509
  ]
17422
- },
17423
- currentIndex
17424
- ) }) }) }),
17425
- /* @__PURE__ */ 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__ */ jsx(
17426
- "button",
17510
+ }
17511
+ ),
17512
+ /* @__PURE__ */ jsxs(
17513
+ "div",
17427
17514
  {
17428
- onClick: () => goToSlide(index),
17429
17515
  className: cn(
17430
- "h-3 w-3 rounded-full border-2 transition-all",
17431
- currentIndex === index ? "scale-125 border-white bg-white" : "border-white/50 bg-transparent hover:border-white"
17516
+ "absolute bottom-8 right-8 z-20 text-sm text-white/50",
17517
+ counterClassName
17432
17518
  ),
17433
- "aria-label": `Go to section ${index + 1}`
17434
- },
17435
- index
17436
- )) }),
17437
- /* @__PURE__ */ jsxs("div", { className: cn("absolute bottom-8 left-1/2 z-20 flex -translate-x-1/2 gap-4", arrowsClassName), children: [
17438
- /* @__PURE__ */ jsx(
17439
- Pressable,
17440
- {
17441
- onClick: goToPrev,
17442
- asButton: true,
17443
- variant: "ghost",
17444
- size: "icon",
17445
- disabled: currentIndex === 0,
17446
- className: "rounded-full border border-white/30 text-white hover:bg-white/10 disabled:opacity-30",
17447
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-up", size: 20 })
17448
- }
17449
- ),
17450
- /* @__PURE__ */ jsx(
17451
- Pressable,
17452
- {
17453
- onClick: goToNext,
17454
- asButton: true,
17455
- variant: "ghost",
17456
- size: "icon",
17457
- disabled: currentIndex === sections.length - 1,
17458
- className: "rounded-full border border-white/30 text-white hover:bg-white/10 disabled:opacity-30",
17459
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-down", size: 20 })
17460
- }
17461
- )
17462
- ] }),
17463
- /* @__PURE__ */ jsxs("div", { className: cn("absolute bottom-8 right-8 z-20 text-sm text-white/50", counterClassName), children: [
17464
- String(currentIndex + 1).padStart(2, "0"),
17465
- " /",
17466
- " ",
17467
- String(sections.length).padStart(2, "0")
17468
- ] })
17519
+ children: [
17520
+ String(currentIndex + 1).padStart(2, "0"),
17521
+ " /",
17522
+ " ",
17523
+ String(sections?.length ?? 0).padStart(2, "0")
17524
+ ]
17525
+ }
17526
+ )
17469
17527
  ]
17470
17528
  }
17471
17529
  );
@@ -17492,11 +17550,11 @@ var variants = {
17492
17550
  function CarouselAutoProgressSlides({
17493
17551
  heading,
17494
17552
  subheading,
17495
- slideLabel,
17496
17553
  items,
17497
17554
  slidesSlot,
17498
- autoAdvanceInterval = 50,
17555
+ autoAdvanceInterval = 4200,
17499
17556
  className,
17557
+ containerClassName = "flex flex-col items-center justify-center gap-6 md:gap-12",
17500
17558
  headerClassName,
17501
17559
  headingClassName,
17502
17560
  subheadingClassName,
@@ -17505,8 +17563,8 @@ function CarouselAutoProgressSlides({
17505
17563
  slideContainerClassName,
17506
17564
  imageClassName,
17507
17565
  optixFlowConfig,
17508
- background = "white",
17509
- spacing = "xl",
17566
+ background,
17567
+ spacing,
17510
17568
  pattern,
17511
17569
  patternOpacity
17512
17570
  }) {
@@ -17562,54 +17620,73 @@ function CarouselAutoProgressSlides({
17562
17620
  ),
17563
17621
  pattern,
17564
17622
  patternOpacity,
17623
+ containerClassName,
17565
17624
  children: [
17566
17625
  /* @__PURE__ */ jsxs("div", { className: cn("text-center", headerClassName), children: [
17567
17626
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-6xl tracking-tighter", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
17568
- subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-2xl text-foreground/50", subheadingClassName), children: subheading }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", subheadingClassName), children: subheading }))
17569
- ] }),
17570
- /* @__PURE__ */ jsxs("div", { className: cn("flex items-center justify-center gap-5", navigationClassName), children: [
17571
- /* @__PURE__ */ jsx(
17572
- Pressable,
17627
+ subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsx(
17628
+ "p",
17573
17629
  {
17574
- onClick: handlePrev,
17575
- asButton: true,
17576
- variant: "ghost",
17577
- size: "icon",
17578
- 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",
17579
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-left", size: 16 })
17630
+ className: cn(
17631
+ "mt-4 text-2xl text-foreground/50",
17632
+ subheadingClassName
17633
+ ),
17634
+ children: subheading
17580
17635
  }
17581
- ),
17582
- /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center gap-1", children: items?.map((_, index) => /* @__PURE__ */ jsx(
17583
- motion.button,
17584
- {
17585
- initial: false,
17586
- onClick: () => handleDotClick(index),
17587
- animate: {
17588
- width: index === currentIndex ? "30px" : "8px"
17589
- },
17590
- className: "relative flex h-2 cursor-pointer items-center justify-center overflow-hidden rounded-full bg-foreground/15 p-0.5 text-foreground/50",
17591
- children: currentIndex === index && /* @__PURE__ */ jsx(
17592
- motion.div,
17636
+ ) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", subheadingClassName), children: subheading }))
17637
+ ] }),
17638
+ /* @__PURE__ */ jsxs(
17639
+ "div",
17640
+ {
17641
+ className: cn(
17642
+ "flex items-center justify-center gap-5",
17643
+ navigationClassName
17644
+ ),
17645
+ children: [
17646
+ /* @__PURE__ */ jsx(
17647
+ Pressable,
17593
17648
  {
17594
- style: { clipPath },
17595
- className: "absolute left-0 top-0 h-full w-full origin-left rounded-full bg-foreground"
17649
+ onClick: handlePrev,
17650
+ asButton: true,
17651
+ variant: "ghost",
17652
+ size: "icon",
17653
+ 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",
17654
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-left", size: 16 })
17655
+ }
17656
+ ),
17657
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center gap-1", children: items?.map((_, index) => /* @__PURE__ */ jsx(
17658
+ motion.button,
17659
+ {
17660
+ initial: false,
17661
+ onClick: () => handleDotClick(index),
17662
+ animate: {
17663
+ width: index === currentIndex ? "30px" : "8px"
17664
+ },
17665
+ className: "relative flex h-2 cursor-pointer items-center justify-center overflow-hidden rounded-full bg-foreground/15 p-0.5 text-foreground/50",
17666
+ children: currentIndex === index && /* @__PURE__ */ jsx(
17667
+ motion.div,
17668
+ {
17669
+ style: { clipPath },
17670
+ className: "absolute left-0 top-0 h-full w-full origin-left rounded-full bg-foreground"
17671
+ }
17672
+ )
17673
+ },
17674
+ index
17675
+ )) }),
17676
+ /* @__PURE__ */ jsx(
17677
+ Pressable,
17678
+ {
17679
+ onClick: handleNext,
17680
+ asButton: true,
17681
+ variant: "ghost",
17682
+ size: "icon",
17683
+ 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",
17684
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 16 })
17596
17685
  }
17597
17686
  )
17598
- },
17599
- index
17600
- )) }),
17601
- /* @__PURE__ */ jsx(
17602
- Pressable,
17603
- {
17604
- onClick: handleNext,
17605
- asButton: true,
17606
- variant: "ghost",
17607
- size: "icon",
17608
- 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",
17609
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 16 })
17610
- }
17611
- )
17612
- ] }),
17687
+ ]
17688
+ }
17689
+ ),
17613
17690
  slidesSlot ? slidesSlot : /* @__PURE__ */ jsx(AnimatePresence, { initial: false, mode: "popLayout", custom: direction, children: currentIndex !== null && /* @__PURE__ */ jsxs(
17614
17691
  motion.div,
17615
17692
  {
@@ -17619,26 +17696,51 @@ function CarouselAutoProgressSlides({
17619
17696
  exit: "exit",
17620
17697
  custom: direction,
17621
17698
  transition: { type: "spring", stiffness: 100, damping: 30 },
17622
- className: cn("flex w-full max-w-3xl flex-col items-center justify-center", items?.[currentIndex]?.className),
17699
+ className: cn(
17700
+ "flex w-full max-w-3xl flex-col items-center justify-center",
17701
+ items?.[currentIndex]?.className
17702
+ ),
17623
17703
  children: [
17624
- slideLabel && (typeof slideLabel === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-6 text-2xl text-foreground/50", slideLabelClassName), children: slideLabel }) : /* @__PURE__ */ jsx("div", { className: cn("mb-6", slideLabelClassName), children: slideLabel })),
17625
- /* @__PURE__ */ jsx("div", { className: cn("h-[550px] w-full overflow-hidden rounded-3xl bg-foreground/10 p-1", slideContainerClassName), children: /* @__PURE__ */ jsx(
17626
- motion.div,
17704
+ typeof items?.[currentIndex]?.label === "string" && /* @__PURE__ */ jsx(
17705
+ "p",
17627
17706
  {
17628
- initial: { scale: 0.9 },
17629
- animate: { scale: 1 },
17630
- className: "h-full w-full",
17707
+ className: cn(
17708
+ "mb-6 font-medium text-center text-lg text-foreground/50",
17709
+ slideLabelClassName
17710
+ ),
17711
+ children: items?.[currentIndex]?.label
17712
+ }
17713
+ ),
17714
+ /* @__PURE__ */ jsx(
17715
+ "div",
17716
+ {
17717
+ className: cn(
17718
+ "h-[550px] w-full overflow-hidden rounded-3xl bg-foreground/10 p-1",
17719
+ slideContainerClassName
17720
+ ),
17631
17721
  children: /* @__PURE__ */ jsx(
17632
- Img,
17722
+ motion.div,
17633
17723
  {
17634
- src: items?.[currentIndex]?.src ?? "",
17635
- alt: typeof items?.[currentIndex]?.label === "string" ? items[currentIndex].label : `Slide ${currentIndex + 1}`,
17636
- className: cn("h-full w-full rounded-3xl object-cover", imageClassName, items?.[currentIndex]?.imageClassName),
17637
- optixFlowConfig
17724
+ initial: { scale: 0.9 },
17725
+ animate: { scale: 1 },
17726
+ className: "h-full w-full",
17727
+ children: /* @__PURE__ */ jsx(
17728
+ Img,
17729
+ {
17730
+ src: items?.[currentIndex]?.src ?? "",
17731
+ alt: typeof items?.[currentIndex]?.label === "string" ? items[currentIndex].label : `Slide ${currentIndex + 1}`,
17732
+ className: cn(
17733
+ "h-full w-full rounded-3xl object-cover",
17734
+ imageClassName,
17735
+ items?.[currentIndex]?.imageClassName
17736
+ ),
17737
+ optixFlowConfig
17738
+ }
17739
+ )
17638
17740
  }
17639
17741
  )
17640
17742
  }
17641
- ) })
17743
+ )
17642
17744
  ]
17643
17745
  },
17644
17746
  currentIndex
@@ -17770,7 +17872,7 @@ function CarouselAutoplayProgress({
17770
17872
  pattern,
17771
17873
  patternOpacity,
17772
17874
  children: [
17773
- /* @__PURE__ */ jsx("div", { className: cn("overflow-hidden", containerClassName), ref: emblaRef, children: /* @__PURE__ */ jsx("div", { className: cn("ml-auto mr-3 flex touch-pan-y touch-pinch-zoom", trackClassName), children: slidesSlot ? slidesSlot : slides.map((slide, index) => /* @__PURE__ */ jsxs(
17875
+ /* @__PURE__ */ jsx("div", { className: cn("overflow-hidden", containerClassName), ref: emblaRef, children: /* @__PURE__ */ jsx("div", { className: cn("ml-auto mr-3 flex touch-pan-y touch-pinch-zoom", trackClassName), children: slidesSlot ? slidesSlot : slides?.map((slide, index) => /* @__PURE__ */ jsxs(
17774
17876
  "div",
17775
17877
  {
17776
17878
  className: cn("flex-[0_0_70%] transform-gpu pl-3", slideClassName, slide.className),
@@ -17834,7 +17936,7 @@ function CarouselAutoplayProgress({
17834
17936
  }
17835
17937
  )
17836
17938
  ] }),
17837
- /* @__PURE__ */ jsx("style", { jsx: true, children: `
17939
+ /* @__PURE__ */ jsx("style", { children: `
17838
17940
  @keyframes autoplay-progress {
17839
17941
  from {
17840
17942
  transform: translateX(0);
@@ -18114,7 +18216,7 @@ function CarouselFullscreenScrollFx({
18114
18216
  const [activeIndex, setActiveIndex] = React52.useState(0);
18115
18217
  React52.useEffect(() => {
18116
18218
  const observers = [];
18117
- slides.forEach((slide, index) => {
18219
+ slides?.forEach((slide, index) => {
18118
18220
  const element = document.getElementById(`fullscreen-${slide.id}`);
18119
18221
  if (element) {
18120
18222
  const observer = new IntersectionObserver(
@@ -18145,7 +18247,7 @@ function CarouselFullscreenScrollFx({
18145
18247
  pattern,
18146
18248
  patternOpacity,
18147
18249
  children: [
18148
- /* @__PURE__ */ 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__ */ jsx(
18250
+ /* @__PURE__ */ 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__ */ jsx(
18149
18251
  "button",
18150
18252
  {
18151
18253
  onClick: () => {
@@ -18160,7 +18262,7 @@ function CarouselFullscreenScrollFx({
18160
18262
  },
18161
18263
  slide.id
18162
18264
  )) }),
18163
- slidesSlot ? slidesSlot : slides.map((slide, index) => /* @__PURE__ */ jsxs(
18265
+ slidesSlot ? slidesSlot : slides?.map((slide, index) => /* @__PURE__ */ jsxs(
18164
18266
  "div",
18165
18267
  {
18166
18268
  id: `fullscreen-${slide.id}`,
@@ -18190,7 +18292,7 @@ function CarouselFullscreenScrollFx({
18190
18292
  slide.subtitle && (typeof slide.subtitle === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-4 text-sm font-medium uppercase tracking-widest text-white/70", subtitleClassName), children: slide.subtitle }) : /* @__PURE__ */ jsx("div", { className: subtitleClassName, children: slide.subtitle })),
18191
18293
  slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("mb-6 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", titleClassName), children: slide.title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: slide.title })),
18192
18294
  slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-2xl text-lg text-white/80 md:text-xl", descriptionClassName), children: slide.description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: slide.description })),
18193
- index < slides.length - 1 && /* @__PURE__ */ jsx("div", { className: cn("absolute bottom-8 left-1/2 -translate-x-1/2", scrollIndicatorClassName), children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2", children: [
18295
+ index < (slides?.length ?? 0) - 1 && /* @__PURE__ */ jsx("div", { className: cn("absolute bottom-8 left-1/2 -translate-x-1/2", scrollIndicatorClassName), children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2", children: [
18194
18296
  /* @__PURE__ */ jsx("span", { className: "text-xs uppercase tracking-widest text-white/50", children: "Scroll" }),
18195
18297
  /* @__PURE__ */ jsx("div", { className: "h-12 w-px animate-pulse bg-gradient-to-b from-white/50 to-transparent" })
18196
18298
  ] }) })
@@ -18199,7 +18301,7 @@ function CarouselFullscreenScrollFx({
18199
18301
  String(index + 1).padStart(2, "0"),
18200
18302
  " /",
18201
18303
  " ",
18202
- String(slides.length).padStart(2, "0")
18304
+ String(slides?.length ?? 0).padStart(2, "0")
18203
18305
  ] })
18204
18306
  ]
18205
18307
  },
@@ -18231,14 +18333,14 @@ function CarouselGalleryThumbnails({
18231
18333
  const [currentIndex, setCurrentIndex] = React52.useState(0);
18232
18334
  const prevSlide = React52.useCallback(() => {
18233
18335
  setCurrentIndex(
18234
- (prev) => prev === 0 ? images.length - 1 : prev - 1
18336
+ (prev) => prev === 0 ? (images?.length ?? 0) - 1 : prev - 1
18235
18337
  );
18236
- }, [images.length]);
18338
+ }, [images?.length]);
18237
18339
  const nextSlide = React52.useCallback(() => {
18238
18340
  setCurrentIndex(
18239
- (prev) => prev === images.length - 1 ? 0 : prev + 1
18341
+ (prev) => prev === (images?.length ?? 0) - 1 ? 0 : prev + 1
18240
18342
  );
18241
- }, [images.length]);
18343
+ }, [images?.length]);
18242
18344
  React52.useEffect(() => {
18243
18345
  if (!autoPlay) return;
18244
18346
  const interval = setInterval(() => {
@@ -18267,7 +18369,7 @@ function CarouselGalleryThumbnails({
18267
18369
  patternOpacity,
18268
18370
  children: [
18269
18371
  /* @__PURE__ */ jsxs("div", { className: cn("relative overflow-hidden rounded-lg", containerClassName), children: [
18270
- /* @__PURE__ */ jsx("div", { className: cn("relative aspect-video w-full overflow-hidden", slideClassName), children: imagesSlot ? imagesSlot : images.map((image, index) => /* @__PURE__ */ jsx(
18372
+ /* @__PURE__ */ jsx("div", { className: cn("relative aspect-video w-full overflow-hidden", slideClassName), children: imagesSlot ? imagesSlot : images?.map((image, index) => /* @__PURE__ */ jsx(
18271
18373
  "div",
18272
18374
  {
18273
18375
  className: cn(
@@ -18307,9 +18409,9 @@ function CarouselGalleryThumbnails({
18307
18409
  children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 24 })
18308
18410
  }
18309
18411
  ),
18310
- /* @__PURE__ */ 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__ */ jsx("div", { children: images[currentIndex].alt })) })
18412
+ /* @__PURE__ */ 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__ */ jsx("div", { children: images?.[currentIndex].alt })) })
18311
18413
  ] }),
18312
- showThumbnails && /* @__PURE__ */ jsx("div", { className: cn("mt-4 flex gap-2 overflow-x-auto px-2 py-2", thumbnailsClassName), children: images.map((image, index) => /* @__PURE__ */ jsx(
18414
+ showThumbnails && /* @__PURE__ */ jsx("div", { className: cn("mt-4 flex gap-2 overflow-x-auto px-2 py-2", thumbnailsClassName), children: images?.map((image, index) => /* @__PURE__ */ jsx(
18313
18415
  "button",
18314
18416
  {
18315
18417
  className: cn(
@@ -19237,18 +19339,18 @@ function CarouselProgressSlider({
19237
19339
  pattern,
19238
19340
  patternOpacity
19239
19341
  }) {
19240
- const [active, setActive] = React52.useState(slides[0].id);
19342
+ const [active, setActive] = React52.useState(slides?.[0]?.id ?? "");
19241
19343
  const [progress, setProgress] = React52.useState(0);
19242
19344
  const [isFastForward, setIsFastForward] = React52.useState(false);
19243
19345
  const frame = React52.useRef(0);
19244
19346
  const firstFrameTime = React52.useRef(performance.now());
19245
19347
  const targetValue = React52.useRef(null);
19246
19348
  const sliderValues = React52.useMemo(
19247
- () => slides.map((slide) => slide.id),
19349
+ () => slides?.map((slide) => slide.id),
19248
19350
  [slides]
19249
19351
  );
19250
19352
  React52.useEffect(() => {
19251
- if (sliderValues.length > 0) {
19353
+ if ((sliderValues?.length ?? 0) > 0) {
19252
19354
  firstFrameTime.current = performance.now();
19253
19355
  frame.current = requestAnimationFrame(animate);
19254
19356
  }
@@ -19273,9 +19375,10 @@ function CarouselProgressSlider({
19273
19375
  targetValue.current = null;
19274
19376
  }
19275
19377
  } else {
19276
- const currentIndex = sliderValues.indexOf(active);
19277
- const nextIndex = (currentIndex + 1) % sliderValues.length;
19278
- setActive(sliderValues[nextIndex]);
19378
+ const currentIndex = sliderValues?.indexOf(active) ?? -1;
19379
+ const nextIndex = (currentIndex + 1) % (sliderValues?.length ?? 1);
19380
+ const nextValue = sliderValues?.[nextIndex];
19381
+ if (nextValue) setActive(nextValue);
19279
19382
  }
19280
19383
  setProgress(0);
19281
19384
  firstFrameTime.current = performance.now();
@@ -19304,7 +19407,7 @@ function CarouselProgressSlider({
19304
19407
  pattern,
19305
19408
  patternOpacity,
19306
19409
  children: /* @__PURE__ */ jsx("div", { className: cn("container mx-auto px-4", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("grid gap-8 lg:grid-cols-2", contentClassName), children: [
19307
- /* @__PURE__ */ jsx("div", { className: cn("relative min-h-[300px]", imageClassName), children: slidesSlot ? slidesSlot : slides.map((slide) => /* @__PURE__ */ jsx(
19410
+ /* @__PURE__ */ jsx("div", { className: cn("relative min-h-[300px]", imageClassName), children: slidesSlot ? slidesSlot : slides?.map((slide) => /* @__PURE__ */ jsx(
19308
19411
  SliderWrapper,
19309
19412
  {
19310
19413
  value: slide.id,
@@ -19321,7 +19424,7 @@ function CarouselProgressSlider({
19321
19424
  },
19322
19425
  slide.id
19323
19426
  )) }),
19324
- /* @__PURE__ */ jsx("div", { className: cn("flex flex-col justify-center gap-4", navigationClassName), children: slides.map((slide) => /* @__PURE__ */ jsxs(
19427
+ /* @__PURE__ */ jsx("div", { className: cn("flex flex-col justify-center gap-4", navigationClassName), children: slides?.map((slide) => /* @__PURE__ */ jsxs(
19325
19428
  SliderBtn,
19326
19429
  {
19327
19430
  value: slide.id,
@@ -32135,7 +32238,7 @@ function BlogGridAuthorCardsComponent({
32135
32238
  pattern,
32136
32239
  patternOpacity,
32137
32240
  children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
32138
- (heading || description) && /* @__PURE__ */ jsxs("div", { className: cn("mb-8 md:mb-14 lg:mb-16", headerClassName), children: [
32241
+ (heading || description) && /* @__PURE__ */ jsxs("div", { className: cn("mb-6 md:mb-14 lg:mb-16", headerClassName), children: [
32139
32242
  /* @__PURE__ */ jsx("div", { className: "flex items-start justify-between gap-8", children: /* @__PURE__ */ jsx("div", { children: heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
32140
32243
  "h2",
32141
32244
  {
@@ -32302,7 +32405,7 @@ function BlogCardsTaglineCta({
32302
32405
  "div",
32303
32406
  {
32304
32407
  className: cn(
32305
- "text-center flex flex-col items-center px-6 md:px-0",
32408
+ "text-center flex flex-col items-center px-4 md:px-0",
32306
32409
  headerClassName
32307
32410
  ),
32308
32411
  children: [
@@ -32445,7 +32548,7 @@ function BlogCardsReadTime({
32445
32548
  "div",
32446
32549
  {
32447
32550
  className: cn(
32448
- "mx-auto flex max-w-3xl flex-col items-center gap-4 text-center px-8 md:px-0",
32551
+ "mx-auto flex max-w-3xl flex-col items-center gap-4 text-center px-4 md:px-0",
32449
32552
  headerClassName
32450
32553
  ),
32451
32554
  children: [
@@ -32631,7 +32734,7 @@ function BlogCategoryOverlay({
32631
32734
  "div",
32632
32735
  {
32633
32736
  className: cn(
32634
- "mx-auto flex max-w-3xl flex-col items-center gap-6 text-center px-8 md:px-0",
32737
+ "mx-auto flex max-w-3xl flex-col items-center gap-6 text-center px-4 md:px-0",
32635
32738
  headerClassName
32636
32739
  ),
32637
32740
  children: [
@@ -32797,7 +32900,7 @@ function BlogFeaturedPopular({
32797
32900
  "div",
32798
32901
  {
32799
32902
  className: cn(
32800
- "mb-6 md:mb-16 text-center px-8 md:px-0",
32903
+ "mb-6 md:mb-16 text-center px-4 md:px-0",
32801
32904
  headerClassName
32802
32905
  ),
32803
32906
  children: [
@@ -33121,55 +33224,64 @@ function BlogTechInsights({
33121
33224
  className: cn("dark relative", className),
33122
33225
  pattern,
33123
33226
  patternOpacity,
33124
- children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
33125
- /* @__PURE__ */ jsxs("div", { className: cn("mb-8", headerClassName), children: [
33126
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
33127
- "h1",
33128
- {
33129
- className: cn(
33130
- "text-3xl font-bold text-foreground md:text-4xl lg:text-5xl",
33131
- headingClassName
33132
- ),
33133
- children: heading
33134
- }
33135
- ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
33136
- /* @__PURE__ */ jsxs("div", { className: "mt-4 flex justify-start", children: [
33137
- description && (typeof description === "string" ? /* @__PURE__ */ jsx(
33138
- "span",
33139
- {
33140
- className: cn(
33141
- "mt-2 block text-sm text-muted-foreground md:text-base",
33142
- descriptionClassName
33143
- ),
33144
- children: description
33145
- }
33146
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
33147
- readMoreActionContent
33148
- ] })
33149
- ] }),
33150
- /* @__PURE__ */ jsxs(
33151
- "div",
33152
- {
33153
- className: cn(
33154
- "mt-12 grid grid-cols-1 gap-8 md:grid-cols-2 lg:gap-12",
33155
- contentClassName
33156
- ),
33157
- children: [
33158
- featuredPostContent,
33159
- /* @__PURE__ */ jsx(
33160
- "div",
33227
+ children: /* @__PURE__ */ jsxs(
33228
+ "div",
33229
+ {
33230
+ className: cn(
33231
+ "flex flex-col items-center gap-8 md:gap-14",
33232
+ containerClassName
33233
+ ),
33234
+ children: [
33235
+ /* @__PURE__ */ jsxs("div", { className: cn("w-full", headerClassName), children: [
33236
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
33237
+ "h1",
33161
33238
  {
33162
33239
  className: cn(
33163
- "space-y-6 text-foreground md:space-y-8",
33164
- secondaryPostsClassName
33240
+ "text-3xl font-bold text-foreground md:text-4xl lg:text-5xl",
33241
+ headingClassName
33165
33242
  ),
33166
- children: secondaryPostsContent
33243
+ children: heading
33167
33244
  }
33168
- )
33169
- ]
33170
- }
33171
- )
33172
- ] })
33245
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
33246
+ /* @__PURE__ */ jsxs("div", { className: "mt-4 flex justify-start", children: [
33247
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
33248
+ "span",
33249
+ {
33250
+ className: cn(
33251
+ "mt-2 block text-sm text-muted-foreground md:text-base",
33252
+ descriptionClassName
33253
+ ),
33254
+ children: description
33255
+ }
33256
+ ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
33257
+ readMoreActionContent
33258
+ ] })
33259
+ ] }),
33260
+ /* @__PURE__ */ jsxs(
33261
+ "div",
33262
+ {
33263
+ className: cn(
33264
+ "grid grid-cols-1 gap-8 md:grid-cols-2 lg:gap-12",
33265
+ contentClassName
33266
+ ),
33267
+ children: [
33268
+ featuredPostContent,
33269
+ /* @__PURE__ */ jsx(
33270
+ "div",
33271
+ {
33272
+ className: cn(
33273
+ "space-y-6 text-foreground md:space-y-8",
33274
+ secondaryPostsClassName
33275
+ ),
33276
+ children: secondaryPostsContent
33277
+ }
33278
+ )
33279
+ ]
33280
+ }
33281
+ )
33282
+ ]
33283
+ }
33284
+ )
33173
33285
  }
33174
33286
  );
33175
33287
  }
@@ -33297,7 +33409,7 @@ function BlogHorizontalCards({
33297
33409
  className: cn(className),
33298
33410
  pattern,
33299
33411
  patternOpacity,
33300
- children: /* @__PURE__ */ jsxs("div", { className: cn("container mx-auto", containerClassName), children: [
33412
+ children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center", containerClassName), children: [
33301
33413
  /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-3xl text-center", headerClassName), children: [
33302
33414
  badge && (typeof badge === "string" ? /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: cn("mb-6", badgeClassName), children: badge }) : /* @__PURE__ */ jsx("div", { className: cn("mb-6", badgeClassName), children: badge })),
33303
33415
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
@@ -34075,7 +34187,7 @@ function BlogGridNinePosts({
34075
34187
  pattern,
34076
34188
  patternOpacity,
34077
34189
  children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
34078
- /* @__PURE__ */ jsxs("div", { className: cn("mb-8 md:mb-14 lg:mb-16", headerClassName), children: [
34190
+ /* @__PURE__ */ jsxs("div", { className: cn("mb-6 md:mb-14 lg:mb-16", headerClassName), children: [
34079
34191
  /* @__PURE__ */ jsx("div", { className: "flex items-start justify-between gap:4 md:gap-8", children: /* @__PURE__ */ jsx("div", { children: heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
34080
34192
  "h2",
34081
34193
  {
@@ -97777,7 +97889,6 @@ var BLOCK_REGISTRY = {
97777
97889
  <CarouselAutoProgressSlides
97778
97890
  heading="Featured Products"
97779
97891
  subheading="Discover our latest collection"
97780
- slideLabel="Explore"
97781
97892
  items={[
97782
97893
  { src: "/images/product-1.jpg", label: "Product 1" },
97783
97894
  { src: "/images/product-2.jpg", label: "Product 2" }