@opensite/ui 0.8.5 → 0.8.6

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 (75) hide show
  1. package/dist/faq-badge-support.cjs +18 -5
  2. package/dist/faq-badge-support.js +18 -5
  3. package/dist/faq-bordered-badge.cjs +23 -7
  4. package/dist/faq-bordered-badge.js +23 -7
  5. package/dist/faq-card-categories.cjs +20 -4
  6. package/dist/faq-card-categories.js +20 -4
  7. package/dist/faq-categorized-sections.cjs +19 -4
  8. package/dist/faq-categorized-sections.js +19 -4
  9. package/dist/faq-centered-accordion.cjs +18 -5
  10. package/dist/faq-centered-accordion.js +18 -5
  11. package/dist/faq-gradient-categories.cjs +19 -4
  12. package/dist/faq-gradient-categories.js +19 -4
  13. package/dist/faq-icon-benefits.cjs +11 -2
  14. package/dist/faq-icon-benefits.js +11 -2
  15. package/dist/faq-muted-cards.cjs +19 -6
  16. package/dist/faq-muted-cards.js +19 -6
  17. package/dist/faq-numbered-grid.cjs +11 -3
  18. package/dist/faq-numbered-grid.js +11 -3
  19. package/dist/faq-numbered-list.cjs +11 -3
  20. package/dist/faq-numbered-list.js +11 -3
  21. package/dist/faq-profile-sidebar.cjs +57 -20
  22. package/dist/faq-profile-sidebar.js +57 -20
  23. package/dist/faq-rounded-cards.cjs +26 -19
  24. package/dist/faq-rounded-cards.js +26 -19
  25. package/dist/faq-sidebar-navigation.cjs +48 -28
  26. package/dist/faq-sidebar-navigation.js +48 -28
  27. package/dist/faq-simple-accordion.cjs +17 -4
  28. package/dist/faq-simple-accordion.js +17 -4
  29. package/dist/faq-split-help.cjs +25 -6
  30. package/dist/faq-split-help.js +25 -6
  31. package/dist/faq-split-hero.cjs +85 -185
  32. package/dist/faq-split-hero.d.cts +16 -18
  33. package/dist/faq-split-hero.d.ts +16 -18
  34. package/dist/faq-split-hero.js +86 -186
  35. package/dist/faq-static-list.cjs +9 -2
  36. package/dist/faq-static-list.js +9 -2
  37. package/dist/feature-accordion-image.cjs +8 -2
  38. package/dist/feature-accordion-image.js +8 -2
  39. package/dist/feature-showcase.cjs +1 -2
  40. package/dist/feature-showcase.js +1 -2
  41. package/dist/feature-split-image-reverse.cjs +2 -8
  42. package/dist/feature-split-image-reverse.js +2 -8
  43. package/dist/feature-split-image.cjs +2 -2
  44. package/dist/feature-split-image.js +2 -2
  45. package/dist/feature-stats-highlight.cjs +50 -13
  46. package/dist/feature-stats-highlight.js +50 -13
  47. package/dist/feature-tabbed-content-image.cjs +5 -14
  48. package/dist/feature-tabbed-content-image.js +5 -14
  49. package/dist/feature-three-column-values.cjs +4 -44
  50. package/dist/feature-three-column-values.js +4 -44
  51. package/dist/feature-utility-cards-grid.cjs +83 -36
  52. package/dist/feature-utility-cards-grid.js +83 -36
  53. package/dist/navbar-animated-preview.cjs +8 -2
  54. package/dist/navbar-animated-preview.js +8 -2
  55. package/dist/navbar-centered-menu.cjs +8 -2
  56. package/dist/navbar-centered-menu.js +8 -2
  57. package/dist/navbar-dark-icons.cjs +8 -2
  58. package/dist/navbar-dark-icons.js +8 -2
  59. package/dist/navbar-dropdown-menu.cjs +8 -2
  60. package/dist/navbar-dropdown-menu.js +8 -2
  61. package/dist/navbar-education-platform.cjs +8 -2
  62. package/dist/navbar-education-platform.js +8 -2
  63. package/dist/navbar-enterprise-mega.cjs +8 -2
  64. package/dist/navbar-enterprise-mega.js +8 -2
  65. package/dist/navbar-feature-grid.cjs +8 -2
  66. package/dist/navbar-feature-grid.js +8 -2
  67. package/dist/navbar-multi-column-groups.cjs +8 -2
  68. package/dist/navbar-multi-column-groups.js +8 -2
  69. package/dist/navbar-platform-resources.cjs +8 -2
  70. package/dist/navbar-platform-resources.js +8 -2
  71. package/dist/navbar-sidebar-mobile.cjs +8 -2
  72. package/dist/navbar-sidebar-mobile.js +8 -2
  73. package/dist/registry.cjs +487 -293
  74. package/dist/registry.js +487 -293
  75. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import * as React from 'react';
3
- import React__default, { useMemo } from 'react';
3
+ import { useMemo } from 'react';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
6
6
  import { Img } from '@page-speed/img';
@@ -129,7 +129,7 @@ function AccordionItem({
129
129
  AccordionPrimitive.Item,
130
130
  {
131
131
  "data-slot": "accordion-item",
132
- className: cn("border-b last:border-b-0", className),
132
+ className: cn("border-b ", className),
133
133
  ...props
134
134
  }
135
135
  );
@@ -150,7 +150,13 @@ function AccordionTrigger({
150
150
  ...props,
151
151
  children: [
152
152
  children,
153
- /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-down", className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })
153
+ /* @__PURE__ */ jsx(
154
+ DynamicIcon,
155
+ {
156
+ name: "lucide/chevron-down",
157
+ className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200"
158
+ }
159
+ )
154
160
  ]
155
161
  }
156
162
  ) });
@@ -170,34 +176,6 @@ function AccordionContent({
170
176
  }
171
177
  );
172
178
  }
173
- var maxWidthStyles = {
174
- sm: "max-w-screen-sm",
175
- md: "max-w-screen-md",
176
- lg: "max-w-screen-lg",
177
- xl: "max-w-7xl",
178
- "2xl": "max-w-screen-2xl",
179
- "4xl": "max-w-[1536px]",
180
- full: "max-w-full"
181
- };
182
- var Container = React__default.forwardRef(
183
- ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
184
- const Component = as;
185
- return /* @__PURE__ */ jsx(
186
- Component,
187
- {
188
- ref,
189
- className: cn(
190
- "mx-auto w-full px-2 sm:px-4 lg:px-8",
191
- maxWidthStyles[maxWidth],
192
- className
193
- ),
194
- ...props,
195
- children
196
- }
197
- );
198
- }
199
- );
200
- Container.displayName = "Container";
201
179
 
202
180
  // lib/patternSvgs.ts
203
181
  var patternSvgs = {
@@ -464,87 +442,6 @@ function PatternBackground({
464
442
  }
465
443
  );
466
444
  }
467
- var backgroundStyles = {
468
- default: "bg-background text-foreground",
469
- white: "bg-white text-dark",
470
- gray: "bg-muted/30 text-foreground",
471
- dark: "bg-foreground text-background",
472
- transparent: "bg-transparent text-foreground",
473
- gradient: "bg-linear-to-br from-primary via-primary/90 to-foreground text-primary-foreground",
474
- primary: "bg-primary text-primary-foreground",
475
- secondary: "bg-secondary text-secondary-foreground",
476
- muted: "bg-muted text-muted-foreground"
477
- };
478
- var spacingStyles = {
479
- none: "py-0 md:py-0",
480
- sm: "py-12 md:py-16",
481
- md: "py-16 md:py-24",
482
- lg: "py-20 md:py-32",
483
- xl: "py-24 md:py-40"
484
- };
485
- var predefinedSpacings = ["none", "sm", "md", "lg", "xl"];
486
- var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
487
- var Section = React__default.forwardRef(
488
- ({
489
- id,
490
- title,
491
- subtitle,
492
- children,
493
- className,
494
- style,
495
- background = "default",
496
- spacing = "lg",
497
- pattern,
498
- patternOpacity,
499
- patternClassName,
500
- containerClassName,
501
- containerMaxWidth = "xl",
502
- ...props
503
- }, ref) => {
504
- const effectivePatternOpacity = patternOpacity !== void 0 ? patternOpacity : pattern ? 1 : 0;
505
- return /* @__PURE__ */ jsxs(
506
- "section",
507
- {
508
- ref,
509
- id,
510
- className: cn(
511
- "relative",
512
- pattern ? "overflow-hidden" : null,
513
- backgroundStyles[background],
514
- isPredefinedSpacing(spacing) ? spacingStyles[spacing] : spacing,
515
- className
516
- ),
517
- style,
518
- ...props,
519
- children: [
520
- /* @__PURE__ */ jsx(
521
- PatternBackground,
522
- {
523
- pattern,
524
- opacity: effectivePatternOpacity,
525
- className: patternClassName
526
- }
527
- ),
528
- /* @__PURE__ */ jsxs(
529
- Container,
530
- {
531
- maxWidth: containerMaxWidth,
532
- className: cn("relative z-10", containerClassName),
533
- children: [
534
- (title || subtitle) && /* @__PURE__ */ jsxs("div", { className: "mb-6 text-center md:mb-16", children: [
535
- subtitle && /* @__PURE__ */ jsx("p", { className: "mb-2 text-sm font-semibold uppercase tracking-wider text-primary", children: subtitle }),
536
- title && /* @__PURE__ */ jsx("h2", { className: "text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", children: title })
537
- ] }),
538
- children
539
- ]
540
- }
541
- )
542
- ]
543
- }
544
- );
545
- }
546
- );
547
- Section.displayName = "Section";
548
445
  function FaqSplitHero({
549
446
  heading,
550
447
  subheading,
@@ -553,14 +450,11 @@ function FaqSplitHero({
553
450
  imageSlot,
554
451
  imageSrc,
555
452
  imageAlt,
556
- background,
557
- spacing,
453
+ background = "dark",
558
454
  pattern,
559
455
  patternOpacity,
560
- patternClassName,
561
456
  className,
562
- contentWrapperClassName,
563
- leftColumnClassName,
457
+ contentClassName,
564
458
  headerClassName,
565
459
  headingClassName,
566
460
  subheadingClassName,
@@ -569,8 +463,23 @@ function FaqSplitHero({
569
463
  accordionTriggerClassName,
570
464
  accordionContentClassName,
571
465
  imageClassName,
572
- optixFlowConfig
466
+ optixFlowConfig,
467
+ directionConfig = { desktop: "mediaRight", mobile: "mediaTop" }
573
468
  }) {
469
+ const bgColorClass = useMemo(() => {
470
+ switch (background) {
471
+ case "dark":
472
+ return "bg-gray-900 text-white";
473
+ case "gray":
474
+ return "bg-gray-100 text-gray-900";
475
+ case "white":
476
+ return "bg-white text-gray-900";
477
+ default:
478
+ return "bg-background text-foreground";
479
+ }
480
+ }, [background]);
481
+ const desktopOrder = directionConfig.desktop === "mediaRight" ? "lg:flex-row" : "lg:flex-row-reverse";
482
+ const mobileOrder = directionConfig.mobile === "mediaTop" ? "flex-col" : "flex-col-reverse";
574
483
  const itemsContent = useMemo(() => {
575
484
  if (itemsSlot) return itemsSlot;
576
485
  if (!items || items.length === 0) return null;
@@ -584,13 +493,13 @@ function FaqSplitHero({
584
493
  AccordionItem,
585
494
  {
586
495
  value: item.id,
587
- className: cn("border-b border-border/50", accordionItemClassName),
496
+ className: cn("border-b border-current/20", accordionItemClassName),
588
497
  children: [
589
498
  /* @__PURE__ */ jsx(
590
499
  AccordionTrigger,
591
500
  {
592
501
  className: cn(
593
- "py-4 text-left text-base font-medium text-foreground transition-colors hover:text-primary hover:no-underline lg:text-lg",
502
+ "py-4 text-left text-base font-medium transition-opacity hover:opacity-70 hover:no-underline lg:text-lg",
594
503
  accordionTriggerClassName
595
504
  ),
596
505
  children: item.question
@@ -599,10 +508,7 @@ function FaqSplitHero({
599
508
  /* @__PURE__ */ jsx(
600
509
  AccordionContent,
601
510
  {
602
- className: cn(
603
- "pb-4 text-muted-foreground",
604
- accordionContentClassName
605
- ),
511
+ className: cn("pb-4 opacity-80", accordionContentClassName),
606
512
  children: item.answer
607
513
  }
608
514
  )
@@ -612,71 +518,65 @@ function FaqSplitHero({
612
518
  ))
613
519
  }
614
520
  );
615
- }, [itemsSlot, items, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName]);
616
- const imageContent = useMemo(() => {
617
- if (imageSlot) return imageSlot;
618
- if (!imageSrc) return null;
619
- return /* @__PURE__ */ jsx(
620
- Img,
621
- {
622
- src: imageSrc,
623
- alt: imageAlt || "FAQ section image",
624
- className: cn(
625
- "hidden h-screen w-1/2 object-cover lg:block",
626
- imageClassName
627
- ),
628
- optixFlowConfig
629
- }
630
- );
631
- }, [imageSlot, imageSrc, imageAlt, imageClassName, optixFlowConfig]);
632
- return /* @__PURE__ */ jsx(
633
- Section,
521
+ }, [
522
+ itemsSlot,
523
+ items,
524
+ accordionClassName,
525
+ accordionItemClassName,
526
+ accordionTriggerClassName,
527
+ accordionContentClassName
528
+ ]);
529
+ const contentArea = /* @__PURE__ */ jsxs(
530
+ "div",
634
531
  {
635
- background,
636
- spacing,
637
- pattern,
638
- patternOpacity,
639
- patternClassName,
640
- className: cn("dark flex", className),
641
- children: /* @__PURE__ */ jsxs("div", { className: cn("flex", contentWrapperClassName), children: [
642
- /* @__PURE__ */ jsx(
643
- "div",
644
- {
645
- className: cn(
646
- "flex w-full items-center justify-center bg-background lg:w-1/2",
647
- leftColumnClassName
648
- ),
649
- children: /* @__PURE__ */ jsxs("div", { className: "container my-10 flex w-full max-w-[600px] flex-col gap-8 px-6 lg:px-10", children: [
650
- /* @__PURE__ */ jsxs("div", { className: cn("space-y-4", headerClassName), children: [
651
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
652
- "h2",
653
- {
654
- className: cn(
655
- "text-3xl font-bold text-foreground lg:text-4xl",
656
- headingClassName
657
- ),
658
- children: heading
659
- }
660
- ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
661
- subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsx(
662
- "p",
663
- {
664
- className: cn(
665
- "text-lg text-muted-foreground",
666
- subheadingClassName
667
- ),
668
- children: subheading
669
- }
670
- ) : /* @__PURE__ */ jsx("div", { className: subheadingClassName, children: subheading }))
671
- ] }),
672
- itemsContent
673
- ] })
674
- }
675
- ),
676
- imageContent
677
- ] })
532
+ className: cn(
533
+ "relative flex w-full items-center lg:w-1/2",
534
+ bgColorClass,
535
+ contentClassName
536
+ ),
537
+ children: [
538
+ pattern && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 overflow-hidden", children: /* @__PURE__ */ jsx(PatternBackground, { pattern, opacity: patternOpacity }) }),
539
+ /* @__PURE__ */ jsx("div", { className: "relative z-10 w-full px-8 py-16 sm:px-12 sm:py-20 lg:px-16 lg:py-24 xl:px-24", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-xl space-y-8", children: [
540
+ /* @__PURE__ */ jsxs("div", { className: cn("space-y-4", headerClassName), children: [
541
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
542
+ "h2",
543
+ {
544
+ className: cn(
545
+ "text-3xl font-bold leading-tight tracking-tight sm:text-4xl lg:text-5xl",
546
+ headingClassName
547
+ ),
548
+ children: heading
549
+ }
550
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
551
+ subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsx(
552
+ "p",
553
+ {
554
+ className: cn(
555
+ "text-base leading-relaxed opacity-80 sm:text-lg",
556
+ subheadingClassName
557
+ ),
558
+ children: subheading
559
+ }
560
+ ) : /* @__PURE__ */ jsx("div", { className: subheadingClassName, children: subheading }))
561
+ ] }),
562
+ itemsContent
563
+ ] }) })
564
+ ]
678
565
  }
679
566
  );
567
+ const imageArea = imageSlot ? /* @__PURE__ */ jsx("div", { className: "relative h-64 w-full sm:h-96 lg:h-auto lg:w-1/2", children: imageSlot }) : imageSrc ? /* @__PURE__ */ jsx("div", { className: "relative h-64 w-full sm:h-96 lg:h-auto lg:w-1/2", children: /* @__PURE__ */ jsx(
568
+ Img,
569
+ {
570
+ src: imageSrc,
571
+ alt: imageAlt || "FAQ section image",
572
+ className: cn("h-full w-full object-cover", imageClassName),
573
+ optixFlowConfig
574
+ }
575
+ ) }) : null;
576
+ return /* @__PURE__ */ jsx("section", { className: cn("relative w-full overflow-hidden", className), children: /* @__PURE__ */ jsxs("div", { className: cn("flex min-h-screen", mobileOrder, desktopOrder), children: [
577
+ contentArea,
578
+ imageArea
579
+ ] }) });
680
580
  }
681
581
 
682
582
  export { FaqSplitHero };
@@ -394,7 +394,7 @@ function FaqStaticList({
394
394
  items,
395
395
  itemsSlot,
396
396
  background,
397
- spacing,
397
+ spacing = "py-6 md:py-32",
398
398
  pattern,
399
399
  patternOpacity,
400
400
  patternClassName,
@@ -413,7 +413,14 @@ function FaqStaticList({
413
413
  typeof item.question === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-2 font-semibold", questionClassName), children: item.question }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: questionClassName, children: item.question }),
414
414
  typeof item.answer === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-muted-foreground", answerClassName), children: item.answer }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: answerClassName, children: item.answer })
415
415
  ] }, index)) });
416
- }, [itemsSlot, items, itemsWrapperClassName, itemClassName, questionClassName, answerClassName]);
416
+ }, [
417
+ itemsSlot,
418
+ items,
419
+ itemsWrapperClassName,
420
+ itemClassName,
421
+ questionClassName,
422
+ answerClassName
423
+ ]);
417
424
  return /* @__PURE__ */ jsxRuntime.jsx(
418
425
  Section,
419
426
  {
@@ -388,7 +388,7 @@ function FaqStaticList({
388
388
  items,
389
389
  itemsSlot,
390
390
  background,
391
- spacing,
391
+ spacing = "py-6 md:py-32",
392
392
  pattern,
393
393
  patternOpacity,
394
394
  patternClassName,
@@ -407,7 +407,14 @@ function FaqStaticList({
407
407
  typeof item.question === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("mb-2 font-semibold", questionClassName), children: item.question }) : /* @__PURE__ */ jsx("div", { className: questionClassName, children: item.question }),
408
408
  typeof item.answer === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground", answerClassName), children: item.answer }) : /* @__PURE__ */ jsx("div", { className: answerClassName, children: item.answer })
409
409
  ] }, index)) });
410
- }, [itemsSlot, items, itemsWrapperClassName, itemClassName, questionClassName, answerClassName]);
410
+ }, [
411
+ itemsSlot,
412
+ items,
413
+ itemsWrapperClassName,
414
+ itemClassName,
415
+ questionClassName,
416
+ answerClassName
417
+ ]);
411
418
  return /* @__PURE__ */ jsx(
412
419
  Section,
413
420
  {
@@ -151,7 +151,7 @@ function AccordionItem({
151
151
  AccordionPrimitive__namespace.Item,
152
152
  {
153
153
  "data-slot": "accordion-item",
154
- className: cn("border-b last:border-b-0", className),
154
+ className: cn("border-b ", className),
155
155
  ...props
156
156
  }
157
157
  );
@@ -172,7 +172,13 @@ function AccordionTrigger({
172
172
  ...props,
173
173
  children: [
174
174
  children,
175
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-down", className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })
175
+ /* @__PURE__ */ jsxRuntime.jsx(
176
+ DynamicIcon,
177
+ {
178
+ name: "lucide/chevron-down",
179
+ className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200"
180
+ }
181
+ )
176
182
  ]
177
183
  }
178
184
  ) });
@@ -129,7 +129,7 @@ function AccordionItem({
129
129
  AccordionPrimitive.Item,
130
130
  {
131
131
  "data-slot": "accordion-item",
132
- className: cn("border-b last:border-b-0", className),
132
+ className: cn("border-b ", className),
133
133
  ...props
134
134
  }
135
135
  );
@@ -150,7 +150,13 @@ function AccordionTrigger({
150
150
  ...props,
151
151
  children: [
152
152
  children,
153
- /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-down", className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })
153
+ /* @__PURE__ */ jsx(
154
+ DynamicIcon,
155
+ {
156
+ name: "lucide/chevron-down",
157
+ className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200"
158
+ }
159
+ )
154
160
  ]
155
161
  }
156
162
  ) });
@@ -1214,8 +1214,7 @@ function FeatureShowcase({
1214
1214
  onNext: () => api?.scrollNext(),
1215
1215
  canScrollPrevious,
1216
1216
  canScrollNext,
1217
- className: "absolute bottom-4 right-0 md:bottom-6",
1218
- buttonClassName: "size-12 rounded-full border border-current bg-transparent text-current shadow-sm hover:bg-current/10"
1217
+ className: "absolute bottom-4 right-0 md:bottom-6"
1219
1218
  }
1220
1219
  )
1221
1220
  ] });
@@ -1190,8 +1190,7 @@ function FeatureShowcase({
1190
1190
  onNext: () => api?.scrollNext(),
1191
1191
  canScrollPrevious,
1192
1192
  canScrollNext,
1193
- className: "absolute bottom-4 right-0 md:bottom-6",
1194
- buttonClassName: "size-12 rounded-full border border-current bg-transparent text-current shadow-sm hover:bg-current/10"
1193
+ className: "absolute bottom-4 right-0 md:bottom-6"
1195
1194
  }
1196
1195
  )
1197
1196
  ] });
@@ -942,19 +942,13 @@ function FeatureSplitImageReverse({
942
942
  description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
943
943
  "p",
944
944
  {
945
- className: cn(
946
- "mb-8 max-w-xl text-muted-foreground lg:text-lg",
947
- descriptionClassName
948
- ),
945
+ className: cn("mb-8 max-w-xl lg:text-lg", descriptionClassName),
949
946
  children: description
950
947
  }
951
948
  ) : /* @__PURE__ */ jsxRuntime.jsx(
952
949
  "div",
953
950
  {
954
- className: cn(
955
- "mb-8 max-w-xl text-muted-foreground lg:text-lg",
956
- descriptionClassName
957
- ),
951
+ className: cn("mb-8 max-w-xl lg:text-lg", descriptionClassName),
958
952
  children: description
959
953
  }
960
954
  )),
@@ -921,19 +921,13 @@ function FeatureSplitImageReverse({
921
921
  description && (typeof description === "string" ? /* @__PURE__ */ jsx(
922
922
  "p",
923
923
  {
924
- className: cn(
925
- "mb-8 max-w-xl text-muted-foreground lg:text-lg",
926
- descriptionClassName
927
- ),
924
+ className: cn("mb-8 max-w-xl lg:text-lg", descriptionClassName),
928
925
  children: description
929
926
  }
930
927
  ) : /* @__PURE__ */ jsx(
931
928
  "div",
932
929
  {
933
- className: cn(
934
- "mb-8 max-w-xl text-muted-foreground lg:text-lg",
935
- descriptionClassName
936
- ),
930
+ className: cn("mb-8 max-w-xl lg:text-lg", descriptionClassName),
937
931
  children: description
938
932
  }
939
933
  )),
@@ -939,7 +939,7 @@ function FeatureSplitImage({
939
939
  "p",
940
940
  {
941
941
  className: cn(
942
- "mb-8 max-w-xl text-muted-foreground lg:text-lg",
942
+ "mb-8 max-w-xl lg:text-lg",
943
943
  descriptionClassName
944
944
  ),
945
945
  children: description
@@ -948,7 +948,7 @@ function FeatureSplitImage({
948
948
  "div",
949
949
  {
950
950
  className: cn(
951
- "mb-8 max-w-xl text-muted-foreground lg:text-lg",
951
+ "mb-8 max-w-xl lg:text-lg",
952
952
  descriptionClassName
953
953
  ),
954
954
  children: description
@@ -918,7 +918,7 @@ function FeatureSplitImage({
918
918
  "p",
919
919
  {
920
920
  className: cn(
921
- "mb-8 max-w-xl text-muted-foreground lg:text-lg",
921
+ "mb-8 max-w-xl lg:text-lg",
922
922
  descriptionClassName
923
923
  ),
924
924
  children: description
@@ -927,7 +927,7 @@ function FeatureSplitImage({
927
927
  "div",
928
928
  {
929
929
  className: cn(
930
- "mb-8 max-w-xl text-muted-foreground lg:text-lg",
930
+ "mb-8 max-w-xl lg:text-lg",
931
931
  descriptionClassName
932
932
  ),
933
933
  children: description
@@ -876,7 +876,7 @@ function FeatureStatsHighlight({
876
876
  statsGridClassName,
877
877
  statCardClassName,
878
878
  background,
879
- spacing,
879
+ spacing = "py-6 md:py-32",
880
880
  pattern,
881
881
  patternOpacity,
882
882
  patternClassName
@@ -915,10 +915,23 @@ function FeatureStatsHighlight({
915
915
  return stats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsxs(
916
916
  "div",
917
917
  {
918
- className: cn("flex flex-col gap-2 rounded-xl border bg-card p-6", statCardClassName, stat.className),
918
+ className: cn(
919
+ "flex flex-col gap-2 rounded-xl border bg-card p-6",
920
+ statCardClassName,
921
+ stat.className
922
+ ),
919
923
  children: [
920
- stat.value && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-4xl font-bold lg:text-5xl", stat.valueClassName), children: stat.value }),
921
- stat.label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-muted-foreground", stat.labelClassName), children: stat.label })
924
+ stat.value && /* @__PURE__ */ jsxRuntime.jsx(
925
+ "span",
926
+ {
927
+ className: cn(
928
+ "text-4xl font-bold lg:text-5xl",
929
+ stat.valueClassName
930
+ ),
931
+ children: stat.value
932
+ }
933
+ ),
934
+ stat.label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("", stat.labelClassName), children: stat.label })
922
935
  ]
923
936
  },
924
937
  index
@@ -934,15 +947,39 @@ function FeatureStatsHighlight({
934
947
  patternClassName,
935
948
  className,
936
949
  containerClassName,
937
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid gap-10 lg:grid-cols-2 lg:gap-20", gridClassName), children: [
938
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-5", contentClassName), children: [
939
- badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "outline", className: cn("w-fit", badgeClassName), children: badge }),
940
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-semibold lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-3xl font-semibold lg:text-5xl", titleClassName), children: title })),
941
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-muted-foreground lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-muted-foreground lg:text-lg", descriptionClassName), children: description })),
942
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actionsContent })
943
- ] }),
944
- (statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid grid-cols-2 gap-6", statsGridClassName), children: statsContent })
945
- ] })
950
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
951
+ "div",
952
+ {
953
+ className: cn("grid gap-10 lg:grid-cols-2 lg:gap-20", gridClassName),
954
+ children: [
955
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-5", contentClassName), children: [
956
+ badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "outline", className: cn("w-fit", badgeClassName), children: badge }),
957
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
958
+ "h2",
959
+ {
960
+ className: cn(
961
+ "text-3xl font-semibold lg:text-5xl",
962
+ titleClassName
963
+ ),
964
+ children: title
965
+ }
966
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
967
+ "div",
968
+ {
969
+ className: cn(
970
+ "text-3xl font-semibold lg:text-5xl",
971
+ titleClassName
972
+ ),
973
+ children: title
974
+ }
975
+ )),
976
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(" lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(" lg:text-lg", descriptionClassName), children: description })),
977
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actionsContent })
978
+ ] }),
979
+ (statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid grid-cols-2 gap-6", statsGridClassName), children: statsContent })
980
+ ]
981
+ }
982
+ )
946
983
  }
947
984
  );
948
985
  }