@opensite/ui 2.0.5 → 2.0.7

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/hero-adaptable-product-grid.cjs +11 -8
  2. package/dist/hero-adaptable-product-grid.d.cts +1 -1
  3. package/dist/hero-adaptable-product-grid.d.ts +1 -1
  4. package/dist/hero-adaptable-product-grid.js +11 -8
  5. package/dist/hero-business-operations-mosaic.cjs +542 -22
  6. package/dist/hero-business-operations-mosaic.d.cts +20 -8
  7. package/dist/hero-business-operations-mosaic.d.ts +20 -8
  8. package/dist/hero-business-operations-mosaic.js +542 -19
  9. package/dist/hero-centered-gradient-cta.cjs +3 -3
  10. package/dist/hero-centered-gradient-cta.js +3 -3
  11. package/dist/hero-community-survey-cta.cjs +3 -2
  12. package/dist/hero-community-survey-cta.js +3 -2
  13. package/dist/hero-conversion-video-play.cjs +1 -1
  14. package/dist/hero-conversion-video-play.js +1 -1
  15. package/dist/hero-crm-streamlined.cjs +4 -4
  16. package/dist/hero-crm-streamlined.js +4 -4
  17. package/dist/hero-design-showcase-logos.cjs +4 -1
  18. package/dist/hero-design-showcase-logos.js +4 -1
  19. package/dist/hero-design-system-3d.cjs +1 -1
  20. package/dist/hero-design-system-3d.js +1 -1
  21. package/dist/hero-feature-cards-grid.cjs +2 -2
  22. package/dist/hero-feature-cards-grid.js +2 -2
  23. package/dist/hero-fullscreen-background-image.cjs +4 -3
  24. package/dist/hero-fullscreen-background-image.js +4 -3
  25. package/dist/hero-fullscreen-logo-cta.cjs +7 -5
  26. package/dist/hero-fullscreen-logo-cta.js +7 -5
  27. package/dist/hero-gradient-avatars-rating.cjs +3 -3
  28. package/dist/hero-gradient-avatars-rating.js +3 -3
  29. package/dist/hero-gradient-client-focused.cjs +2 -2
  30. package/dist/hero-gradient-client-focused.js +2 -2
  31. package/dist/hero-grid-pattern-solutions.cjs +2 -2
  32. package/dist/hero-grid-pattern-solutions.d.cts +1 -1
  33. package/dist/hero-grid-pattern-solutions.d.ts +1 -1
  34. package/dist/hero-grid-pattern-solutions.js +2 -2
  35. package/dist/hero-innovation-image-grid.cjs +48 -42
  36. package/dist/hero-innovation-image-grid.js +48 -42
  37. package/dist/hero-mental-health-team.cjs +633 -89
  38. package/dist/hero-mental-health-team.d.cts +26 -6
  39. package/dist/hero-mental-health-team.d.ts +26 -6
  40. package/dist/hero-mental-health-team.js +614 -85
  41. package/dist/hero-minimal-centered-dark.cjs +841 -807
  42. package/dist/hero-minimal-centered-dark.d.cts +1 -1
  43. package/dist/hero-minimal-centered-dark.d.ts +1 -1
  44. package/dist/hero-minimal-centered-dark.js +840 -806
  45. package/dist/hero-presentation-platform-video.cjs +8 -2
  46. package/dist/hero-presentation-platform-video.js +8 -2
  47. package/dist/hero-product-showcase-floating.cjs +715 -612
  48. package/dist/hero-product-showcase-floating.d.cts +5 -1
  49. package/dist/hero-product-showcase-floating.d.ts +5 -1
  50. package/dist/hero-product-showcase-floating.js +712 -609
  51. package/dist/hero-saas-dashboard-preview.cjs +82 -107
  52. package/dist/hero-saas-dashboard-preview.d.cts +1 -1
  53. package/dist/hero-saas-dashboard-preview.d.ts +1 -1
  54. package/dist/hero-saas-dashboard-preview.js +82 -107
  55. package/dist/hero-software-growth-video-dialog.cjs +5 -5
  56. package/dist/hero-software-growth-video-dialog.js +5 -5
  57. package/dist/hero-split-image-newsletter.cjs +41 -32
  58. package/dist/hero-split-image-newsletter.js +41 -32
  59. package/dist/hero-stats-social-proof.cjs +1 -1
  60. package/dist/hero-stats-social-proof.js +1 -1
  61. package/dist/hero-testimonial-image-grid.cjs +2 -2
  62. package/dist/hero-testimonial-image-grid.js +2 -2
  63. package/dist/hero-therapy-testimonial-grid.cjs +682 -638
  64. package/dist/hero-therapy-testimonial-grid.d.cts +5 -1
  65. package/dist/hero-therapy-testimonial-grid.d.ts +5 -1
  66. package/dist/hero-therapy-testimonial-grid.js +671 -627
  67. package/dist/hero-ui-library-showcase.cjs +51 -42
  68. package/dist/hero-ui-library-showcase.js +51 -42
  69. package/dist/hero-video-dialog-gradient.cjs +2 -2
  70. package/dist/hero-video-dialog-gradient.js +2 -2
  71. package/dist/hero-video-overlay-stars.cjs +7 -15
  72. package/dist/hero-video-overlay-stars.js +7 -15
  73. package/dist/registry.cjs +608 -438
  74. package/dist/registry.js +608 -438
  75. package/package.json +1 -1
@@ -33,66 +33,6 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
33
33
  function cn(...inputs) {
34
34
  return tailwindMerge.twMerge(clsx.clsx(inputs));
35
35
  }
36
- function getNestedCardBg(parentBg, variant = "muted", options) {
37
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
38
- if (isDark) {
39
- switch (variant) {
40
- case "muted":
41
- return "bg-background";
42
- case "card":
43
- return "bg-card";
44
- case "accent":
45
- return "bg-accent";
46
- case "subtle":
47
- return "bg-background/50";
48
- }
49
- } else {
50
- switch (variant) {
51
- case "muted":
52
- return "bg-muted";
53
- case "card":
54
- return "bg-card";
55
- case "accent":
56
- return "bg-accent";
57
- case "subtle":
58
- return "bg-muted/50";
59
- }
60
- }
61
- }
62
- function getNestedCardTextColor(parentBg, options) {
63
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
64
- return isDark ? "text-foreground" : "";
65
- }
66
- function getTextColor(parentBg, variant = "default", options) {
67
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
68
- if (isDark) {
69
- switch (variant) {
70
- case "default":
71
- return "text-foreground";
72
- case "muted":
73
- return "text-foreground/80";
74
- case "subtle":
75
- return "text-foreground/60";
76
- case "accent":
77
- return "text-accent-foreground";
78
- }
79
- } else {
80
- switch (variant) {
81
- case "default":
82
- return "text-foreground";
83
- case "muted":
84
- return "text-muted-foreground";
85
- case "subtle":
86
- return "text-muted-foreground/70";
87
- case "accent":
88
- return "text-primary";
89
- }
90
- }
91
- }
92
- function getAccentColor(parentBg, options) {
93
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
94
- return isDark ? "text-accent-foreground" : "text-primary";
95
- }
96
36
  function normalizePhoneNumber(input) {
97
37
  const trimmed = input.trim();
98
38
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -917,11 +857,11 @@ function HeroSaasDashboardPreview({
917
857
  browserPreview,
918
858
  browserPreviewSlot,
919
859
  background,
920
- spacing,
860
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
861
+ spacing = "xl",
921
862
  pattern,
922
863
  patternOpacity,
923
864
  className,
924
- containerClassName,
925
865
  headerClassName,
926
866
  headingClassName,
927
867
  descriptionClassName,
@@ -930,21 +870,18 @@ function HeroSaasDashboardPreview({
930
870
  }) {
931
871
  const renderBadge = React.useMemo(() => {
932
872
  if (badgeSlot) return badgeSlot;
933
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(
934
- "inline-flex items-center gap-2 rounded-full border border-border px-4 py-2 text-sm",
935
- getNestedCardBg(background, "muted"),
936
- getNestedCardTextColor(background)
937
- ), children: [
938
- badgeIcon && /* @__PURE__ */ jsxRuntime.jsx(
939
- DynamicIcon,
940
- {
941
- name: badgeIcon,
942
- size: 16,
943
- className: getAccentColor(background)
944
- }
945
- ),
946
- badgeText && /* @__PURE__ */ jsxRuntime.jsx("span", { children: badgeText })
947
- ] });
873
+ return /* @__PURE__ */ jsxRuntime.jsxs(
874
+ "div",
875
+ {
876
+ className: cn(
877
+ "inline-flex items-center gap-2 rounded-full border border-border px-4 py-2 text-sm bg-muted text-muted-foreground"
878
+ ),
879
+ children: [
880
+ badgeIcon && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: badgeIcon, size: 16 }),
881
+ badgeText && /* @__PURE__ */ jsxRuntime.jsx("span", { children: badgeText })
882
+ ]
883
+ }
884
+ );
948
885
  }, [badgeSlot, badgeIcon, badgeText]);
949
886
  const renderEmailForm = React.useMemo(() => {
950
887
  if (emailFormSlot) return emailFormSlot;
@@ -970,39 +907,49 @@ function HeroSaasDashboardPreview({
970
907
  }
971
908
  )
972
909
  ] }) }),
973
- emailForm.helperText && (typeof emailForm.helperText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 text-sm", getTextColor(background, "muted")), children: emailForm.helperText }) : emailForm.helperText)
910
+ emailForm.helperText && (typeof emailForm.helperText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-4 text-sm", children: emailForm.helperText }) : emailForm.helperText)
974
911
  ] });
975
912
  }, [emailFormSlot, emailForm]);
976
913
  const renderBrowserPreview = React.useMemo(() => {
977
914
  if (browserPreviewSlot) return browserPreviewSlot;
978
915
  if (!browserPreview) return null;
979
916
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative mt-20", previewClassName), children: [
980
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 bg-linear-to-t from-background via-transparent to-transparent z-10 pointer-events-none" }),
981
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(
982
- "overflow-hidden rounded-xl border border-border shadow-2xl",
983
- getNestedCardBg(background, "muted")
984
- ), children: [
985
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(
986
- "flex items-center gap-2 border-b border-border px-4 py-3",
987
- getNestedCardBg(background, "muted")
988
- ), children: [
989
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-1.5", children: [
990
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-3 w-3 rounded-full bg-destructive" }),
991
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-3 w-3 rounded-full bg-accent" }),
992
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-3 w-3 rounded-full bg-success" })
993
- ] }),
994
- browserPreview.url && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex-1 text-center text-sm", getTextColor(background, "muted")), children: browserPreview.url })
995
- ] }),
996
- browserPreview.image && /* @__PURE__ */ jsxRuntime.jsx(
997
- img.Img,
998
- {
999
- src: browserPreview.image.src,
1000
- alt: browserPreview.image.alt,
1001
- className: cn("w-full", browserPreview.image.className),
1002
- optixFlowConfig
1003
- }
1004
- )
1005
- ] })
917
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 z-10 pointer-events-none" }),
918
+ /* @__PURE__ */ jsxRuntime.jsxs(
919
+ "div",
920
+ {
921
+ className: cn(
922
+ "overflow-hidden rounded-xl border border-border shadow-2xl"
923
+ ),
924
+ children: [
925
+ /* @__PURE__ */ jsxRuntime.jsxs(
926
+ "div",
927
+ {
928
+ className: cn(
929
+ "flex items-center gap-2 border-b border-border px-4 py-3"
930
+ ),
931
+ children: [
932
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-1.5", children: [
933
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-3 w-3 rounded-full bg-destructive" }),
934
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-3 w-3 rounded-full bg-accent" }),
935
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-3 w-3 rounded-full bg-primary" })
936
+ ] }),
937
+ browserPreview.url && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex-1 text-center text-sm"), children: browserPreview.url })
938
+ ]
939
+ }
940
+ ),
941
+ browserPreview.image && /* @__PURE__ */ jsxRuntime.jsx(
942
+ img.Img,
943
+ {
944
+ src: browserPreview.image.src,
945
+ alt: browserPreview.image.alt,
946
+ className: cn("w-full", browserPreview.image.className),
947
+ optixFlowConfig
948
+ }
949
+ )
950
+ ]
951
+ }
952
+ )
1006
953
  ] });
1007
954
  }, [browserPreviewSlot, browserPreview, previewClassName, optixFlowConfig]);
1008
955
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -1013,11 +960,39 @@ function HeroSaasDashboardPreview({
1013
960
  pattern,
1014
961
  patternOpacity,
1015
962
  className: cn(className),
1016
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
963
+ containerClassName,
964
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pt-10 md:pt-0", children: [
1017
965
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-4xl text-center", headerClassName), children: [
1018
966
  renderBadge,
1019
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mt-8 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mt-8 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", headingClassName), children: heading })),
1020
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-6 text-lg md:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
967
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
968
+ "h1",
969
+ {
970
+ className: cn(
971
+ "mt-8 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl text-balance",
972
+ headingClassName
973
+ ),
974
+ children: heading
975
+ }
976
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
977
+ "h1",
978
+ {
979
+ className: cn(
980
+ "mt-8 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl text-balance",
981
+ headingClassName
982
+ ),
983
+ children: heading
984
+ }
985
+ )),
986
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
987
+ "p",
988
+ {
989
+ className: cn(
990
+ "mt-6 text-lg md:text-xl text-balance",
991
+ descriptionClassName
992
+ ),
993
+ children: description
994
+ }
995
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
1021
996
  renderEmailForm
1022
997
  ] }),
1023
998
  renderBrowserPreview
@@ -111,6 +111,6 @@ interface HeroSaasDashboardPreviewProps {
111
111
  */
112
112
  optixFlowConfig?: OptixFlowConfig;
113
113
  }
114
- declare function HeroSaasDashboardPreview({ badgeText, badgeIcon, badgeSlot, heading, description, emailForm, emailFormSlot, browserPreview, browserPreviewSlot, background, spacing, pattern, patternOpacity, className, containerClassName, headerClassName, headingClassName, descriptionClassName, previewClassName, optixFlowConfig, }: HeroSaasDashboardPreviewProps): React.JSX.Element;
114
+ declare function HeroSaasDashboardPreview({ badgeText, badgeIcon, badgeSlot, heading, description, emailForm, emailFormSlot, browserPreview, browserPreviewSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headerClassName, headingClassName, descriptionClassName, previewClassName, optixFlowConfig, }: HeroSaasDashboardPreviewProps): React.JSX.Element;
115
115
 
116
116
  export { HeroSaasDashboardPreview, type HeroSaasDashboardPreviewProps };
@@ -111,6 +111,6 @@ interface HeroSaasDashboardPreviewProps {
111
111
  */
112
112
  optixFlowConfig?: OptixFlowConfig;
113
113
  }
114
- declare function HeroSaasDashboardPreview({ badgeText, badgeIcon, badgeSlot, heading, description, emailForm, emailFormSlot, browserPreview, browserPreviewSlot, background, spacing, pattern, patternOpacity, className, containerClassName, headerClassName, headingClassName, descriptionClassName, previewClassName, optixFlowConfig, }: HeroSaasDashboardPreviewProps): React.JSX.Element;
114
+ declare function HeroSaasDashboardPreview({ badgeText, badgeIcon, badgeSlot, heading, description, emailForm, emailFormSlot, browserPreview, browserPreviewSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headerClassName, headingClassName, descriptionClassName, previewClassName, optixFlowConfig, }: HeroSaasDashboardPreviewProps): React.JSX.Element;
115
115
 
116
116
  export { HeroSaasDashboardPreview, type HeroSaasDashboardPreviewProps };
@@ -12,66 +12,6 @@ import { Img } from '@page-speed/img';
12
12
  function cn(...inputs) {
13
13
  return twMerge(clsx(inputs));
14
14
  }
15
- function getNestedCardBg(parentBg, variant = "muted", options) {
16
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
17
- if (isDark) {
18
- switch (variant) {
19
- case "muted":
20
- return "bg-background";
21
- case "card":
22
- return "bg-card";
23
- case "accent":
24
- return "bg-accent";
25
- case "subtle":
26
- return "bg-background/50";
27
- }
28
- } else {
29
- switch (variant) {
30
- case "muted":
31
- return "bg-muted";
32
- case "card":
33
- return "bg-card";
34
- case "accent":
35
- return "bg-accent";
36
- case "subtle":
37
- return "bg-muted/50";
38
- }
39
- }
40
- }
41
- function getNestedCardTextColor(parentBg, options) {
42
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
43
- return isDark ? "text-foreground" : "";
44
- }
45
- function getTextColor(parentBg, variant = "default", options) {
46
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
47
- if (isDark) {
48
- switch (variant) {
49
- case "default":
50
- return "text-foreground";
51
- case "muted":
52
- return "text-foreground/80";
53
- case "subtle":
54
- return "text-foreground/60";
55
- case "accent":
56
- return "text-accent-foreground";
57
- }
58
- } else {
59
- switch (variant) {
60
- case "default":
61
- return "text-foreground";
62
- case "muted":
63
- return "text-muted-foreground";
64
- case "subtle":
65
- return "text-muted-foreground/70";
66
- case "accent":
67
- return "text-primary";
68
- }
69
- }
70
- }
71
- function getAccentColor(parentBg, options) {
72
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
73
- return isDark ? "text-accent-foreground" : "text-primary";
74
- }
75
15
  function normalizePhoneNumber(input) {
76
16
  const trimmed = input.trim();
77
17
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -896,11 +836,11 @@ function HeroSaasDashboardPreview({
896
836
  browserPreview,
897
837
  browserPreviewSlot,
898
838
  background,
899
- spacing,
839
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
840
+ spacing = "xl",
900
841
  pattern,
901
842
  patternOpacity,
902
843
  className,
903
- containerClassName,
904
844
  headerClassName,
905
845
  headingClassName,
906
846
  descriptionClassName,
@@ -909,21 +849,18 @@ function HeroSaasDashboardPreview({
909
849
  }) {
910
850
  const renderBadge = useMemo(() => {
911
851
  if (badgeSlot) return badgeSlot;
912
- return /* @__PURE__ */ jsxs("div", { className: cn(
913
- "inline-flex items-center gap-2 rounded-full border border-border px-4 py-2 text-sm",
914
- getNestedCardBg(background, "muted"),
915
- getNestedCardTextColor(background)
916
- ), children: [
917
- badgeIcon && /* @__PURE__ */ jsx(
918
- DynamicIcon,
919
- {
920
- name: badgeIcon,
921
- size: 16,
922
- className: getAccentColor(background)
923
- }
924
- ),
925
- badgeText && /* @__PURE__ */ jsx("span", { children: badgeText })
926
- ] });
852
+ return /* @__PURE__ */ jsxs(
853
+ "div",
854
+ {
855
+ className: cn(
856
+ "inline-flex items-center gap-2 rounded-full border border-border px-4 py-2 text-sm bg-muted text-muted-foreground"
857
+ ),
858
+ children: [
859
+ badgeIcon && /* @__PURE__ */ jsx(DynamicIcon, { name: badgeIcon, size: 16 }),
860
+ badgeText && /* @__PURE__ */ jsx("span", { children: badgeText })
861
+ ]
862
+ }
863
+ );
927
864
  }, [badgeSlot, badgeIcon, badgeText]);
928
865
  const renderEmailForm = useMemo(() => {
929
866
  if (emailFormSlot) return emailFormSlot;
@@ -949,39 +886,49 @@ function HeroSaasDashboardPreview({
949
886
  }
950
887
  )
951
888
  ] }) }),
952
- emailForm.helperText && (typeof emailForm.helperText === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-sm", getTextColor(background, "muted")), children: emailForm.helperText }) : emailForm.helperText)
889
+ emailForm.helperText && (typeof emailForm.helperText === "string" ? /* @__PURE__ */ jsx("p", { className: "mt-4 text-sm", children: emailForm.helperText }) : emailForm.helperText)
953
890
  ] });
954
891
  }, [emailFormSlot, emailForm]);
955
892
  const renderBrowserPreview = useMemo(() => {
956
893
  if (browserPreviewSlot) return browserPreviewSlot;
957
894
  if (!browserPreview) return null;
958
895
  return /* @__PURE__ */ jsxs("div", { className: cn("relative mt-20", previewClassName), children: [
959
- /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-linear-to-t from-background via-transparent to-transparent z-10 pointer-events-none" }),
960
- /* @__PURE__ */ jsxs("div", { className: cn(
961
- "overflow-hidden rounded-xl border border-border shadow-2xl",
962
- getNestedCardBg(background, "muted")
963
- ), children: [
964
- /* @__PURE__ */ jsxs("div", { className: cn(
965
- "flex items-center gap-2 border-b border-border px-4 py-3",
966
- getNestedCardBg(background, "muted")
967
- ), children: [
968
- /* @__PURE__ */ jsxs("div", { className: "flex gap-1.5", children: [
969
- /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-destructive" }),
970
- /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-accent" }),
971
- /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-success" })
972
- ] }),
973
- browserPreview.url && /* @__PURE__ */ jsx("div", { className: cn("flex-1 text-center text-sm", getTextColor(background, "muted")), children: browserPreview.url })
974
- ] }),
975
- browserPreview.image && /* @__PURE__ */ jsx(
976
- Img,
977
- {
978
- src: browserPreview.image.src,
979
- alt: browserPreview.image.alt,
980
- className: cn("w-full", browserPreview.image.className),
981
- optixFlowConfig
982
- }
983
- )
984
- ] })
896
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 z-10 pointer-events-none" }),
897
+ /* @__PURE__ */ jsxs(
898
+ "div",
899
+ {
900
+ className: cn(
901
+ "overflow-hidden rounded-xl border border-border shadow-2xl"
902
+ ),
903
+ children: [
904
+ /* @__PURE__ */ jsxs(
905
+ "div",
906
+ {
907
+ className: cn(
908
+ "flex items-center gap-2 border-b border-border px-4 py-3"
909
+ ),
910
+ children: [
911
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-1.5", children: [
912
+ /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-destructive" }),
913
+ /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-accent" }),
914
+ /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-primary" })
915
+ ] }),
916
+ browserPreview.url && /* @__PURE__ */ jsx("div", { className: cn("flex-1 text-center text-sm"), children: browserPreview.url })
917
+ ]
918
+ }
919
+ ),
920
+ browserPreview.image && /* @__PURE__ */ jsx(
921
+ Img,
922
+ {
923
+ src: browserPreview.image.src,
924
+ alt: browserPreview.image.alt,
925
+ className: cn("w-full", browserPreview.image.className),
926
+ optixFlowConfig
927
+ }
928
+ )
929
+ ]
930
+ }
931
+ )
985
932
  ] });
986
933
  }, [browserPreviewSlot, browserPreview, previewClassName, optixFlowConfig]);
987
934
  return /* @__PURE__ */ jsx(
@@ -992,11 +939,39 @@ function HeroSaasDashboardPreview({
992
939
  pattern,
993
940
  patternOpacity,
994
941
  className: cn(className),
995
- children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
942
+ containerClassName,
943
+ children: /* @__PURE__ */ jsxs("div", { className: "pt-10 md:pt-0", children: [
996
944
  /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-4xl text-center", headerClassName), children: [
997
945
  renderBadge,
998
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("mt-8 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("mt-8 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", headingClassName), children: heading })),
999
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-6 text-lg md:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
946
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
947
+ "h1",
948
+ {
949
+ className: cn(
950
+ "mt-8 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl text-balance",
951
+ headingClassName
952
+ ),
953
+ children: heading
954
+ }
955
+ ) : /* @__PURE__ */ jsx(
956
+ "h1",
957
+ {
958
+ className: cn(
959
+ "mt-8 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl text-balance",
960
+ headingClassName
961
+ ),
962
+ children: heading
963
+ }
964
+ )),
965
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
966
+ "p",
967
+ {
968
+ className: cn(
969
+ "mt-6 text-lg md:text-xl text-balance",
970
+ descriptionClassName
971
+ ),
972
+ children: description
973
+ }
974
+ ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
1000
975
  renderEmailForm
1001
976
  ] }),
1002
977
  renderBrowserPreview
@@ -1016,7 +1016,7 @@ function HeroSoftwareGrowthVideoDialog({
1016
1016
  src: showcaseImages[index].src,
1017
1017
  alt: showcaseImages[index].alt,
1018
1018
  className: cn(
1019
- "size-full object-cover object-center",
1019
+ "size-full object-cover object-center rounded-xl shadow-xl",
1020
1020
  showcaseImages[index].className
1021
1021
  ),
1022
1022
  optixFlowConfig
@@ -1035,13 +1035,13 @@ function HeroSoftwareGrowthVideoDialog({
1035
1035
  patternOpacity,
1036
1036
  className,
1037
1037
  containerClassName,
1038
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
1039
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center gap-8", children: [
1038
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-10 md:gap-6", children: [
1039
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center gap-8 pt-6 md:pt-0", children: [
1040
1040
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1041
1041
  "h1",
1042
1042
  {
1043
1043
  className: cn(
1044
- "max-w-[1000px] text-center text-[3.125rem] leading-none md:text-[4.25rem] lg:text-[5.5rem] text-balance",
1044
+ "max-w-[1000px] text-center text-[3.125rem] leading-none md:text-[4.25rem] lg:text-[5.5rem] text-balance font-semibold",
1045
1045
  headingClassName
1046
1046
  ),
1047
1047
  children: heading
@@ -1050,7 +1050,7 @@ function HeroSoftwareGrowthVideoDialog({
1050
1050
  "h1",
1051
1051
  {
1052
1052
  className: cn(
1053
- "max-w-[1000px] text-center text-[3.125rem] leading-none md:text-[4.25rem] lg:text-[5.5rem] text-balance",
1053
+ "max-w-[1000px] text-center text-[3.125rem] leading-none md:text-[4.25rem] lg:text-[5.5rem] text-balance font-semibold",
1054
1054
  headingClassName
1055
1055
  ),
1056
1056
  children: heading
@@ -993,7 +993,7 @@ function HeroSoftwareGrowthVideoDialog({
993
993
  src: showcaseImages[index].src,
994
994
  alt: showcaseImages[index].alt,
995
995
  className: cn(
996
- "size-full object-cover object-center",
996
+ "size-full object-cover object-center rounded-xl shadow-xl",
997
997
  showcaseImages[index].className
998
998
  ),
999
999
  optixFlowConfig
@@ -1012,13 +1012,13 @@ function HeroSoftwareGrowthVideoDialog({
1012
1012
  patternOpacity,
1013
1013
  className,
1014
1014
  containerClassName,
1015
- children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
1016
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center gap-8", children: [
1015
+ children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-10 md:gap-6", children: [
1016
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center gap-8 pt-6 md:pt-0", children: [
1017
1017
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
1018
1018
  "h1",
1019
1019
  {
1020
1020
  className: cn(
1021
- "max-w-[1000px] text-center text-[3.125rem] leading-none md:text-[4.25rem] lg:text-[5.5rem] text-balance",
1021
+ "max-w-[1000px] text-center text-[3.125rem] leading-none md:text-[4.25rem] lg:text-[5.5rem] text-balance font-semibold",
1022
1022
  headingClassName
1023
1023
  ),
1024
1024
  children: heading
@@ -1027,7 +1027,7 @@ function HeroSoftwareGrowthVideoDialog({
1027
1027
  "h1",
1028
1028
  {
1029
1029
  className: cn(
1030
- "max-w-[1000px] text-center text-[3.125rem] leading-none md:text-[4.25rem] lg:text-[5.5rem] text-balance",
1030
+ "max-w-[1000px] text-center text-[3.125rem] leading-none md:text-[4.25rem] lg:text-[5.5rem] text-balance font-semibold",
1031
1031
  headingClassName
1032
1032
  ),
1033
1033
  children: heading
@@ -917,38 +917,47 @@ function HeroSplitImageNewsletter({
917
917
  className: cn("relative flex items-center justify-center", className),
918
918
  containerClassName,
919
919
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-10 lg:flex-row lg:gap-20", children: [
920
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-8 lg:w-1/2", contentClassName), children: [
921
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
922
- "h1",
923
- {
924
- className: cn(
925
- "text-5xl font-bold md:text-6xl lg:text-7xl text-balance",
926
- headingClassName
927
- ),
928
- children: heading
929
- }
930
- ) : /* @__PURE__ */ jsxRuntime.jsx(
931
- "h1",
932
- {
933
- className: cn(
934
- "text-5xl font-bold md:text-6xl lg:text-7xl text-balance",
935
- headingClassName
936
- ),
937
- children: heading
938
- }
939
- )),
940
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
941
- "p",
942
- {
943
- className: cn(
944
- "text-lg md:text-xl text-balance",
945
- descriptionClassName
946
- ),
947
- children: description
948
- }
949
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
950
- renderNewsletterForm
951
- ] }),
920
+ /* @__PURE__ */ jsxRuntime.jsxs(
921
+ "div",
922
+ {
923
+ className: cn(
924
+ "flex flex-col gap-8 lg:w-1/2 pt-8 md:pt-0",
925
+ contentClassName
926
+ ),
927
+ children: [
928
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
929
+ "h1",
930
+ {
931
+ className: cn(
932
+ "text-5xl font-bold md:text-6xl lg:text-7xl text-balance",
933
+ headingClassName
934
+ ),
935
+ children: heading
936
+ }
937
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
938
+ "h1",
939
+ {
940
+ className: cn(
941
+ "text-5xl font-bold md:text-6xl lg:text-7xl text-balance",
942
+ headingClassName
943
+ ),
944
+ children: heading
945
+ }
946
+ )),
947
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
948
+ "p",
949
+ {
950
+ className: cn(
951
+ "text-lg md:text-xl text-balance",
952
+ descriptionClassName
953
+ ),
954
+ children: description
955
+ }
956
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
957
+ renderNewsletterForm
958
+ ]
959
+ }
960
+ ),
952
961
  renderImage
953
962
  ] })
954
963
  }