@opensite/ui 1.6.7 → 1.6.8

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 (69) hide show
  1. package/dist/hero-architecture-fullscreen.cjs +7 -54
  2. package/dist/hero-architecture-fullscreen.js +7 -54
  3. package/dist/hero-badge-shadow-overlay.cjs +42 -45
  4. package/dist/hero-badge-shadow-overlay.d.cts +14 -2
  5. package/dist/hero-badge-shadow-overlay.d.ts +14 -2
  6. package/dist/hero-badge-shadow-overlay.js +42 -45
  7. package/dist/hero-billing-platform-logos.cjs +5 -9
  8. package/dist/hero-billing-platform-logos.d.cts +1 -5
  9. package/dist/hero-billing-platform-logos.d.ts +1 -5
  10. package/dist/hero-billing-platform-logos.js +5 -9
  11. package/dist/hero-centered-gradient-cta.cjs +12 -68
  12. package/dist/hero-centered-gradient-cta.js +12 -68
  13. package/dist/hero-conversion-video-play.cjs +13 -64
  14. package/dist/hero-conversion-video-play.js +13 -64
  15. package/dist/hero-customer-support-layered.cjs +1 -1
  16. package/dist/hero-customer-support-layered.js +1 -1
  17. package/dist/hero-dashed-border-features.cjs +8 -71
  18. package/dist/hero-dashed-border-features.js +8 -71
  19. package/dist/hero-design-showcase-logos.cjs +7 -32
  20. package/dist/hero-design-showcase-logos.js +7 -32
  21. package/dist/hero-floating-images.cjs +1 -1
  22. package/dist/hero-floating-images.js +1 -1
  23. package/dist/hero-grid-pattern-solutions.cjs +7 -66
  24. package/dist/hero-grid-pattern-solutions.js +7 -66
  25. package/dist/hero-hiring-animated-text.cjs +10 -5
  26. package/dist/hero-hiring-animated-text.js +10 -5
  27. package/dist/hero-marketplace-scattered-images.cjs +7 -32
  28. package/dist/hero-marketplace-scattered-images.js +7 -32
  29. package/dist/hero-mentorship-video-split.cjs +11 -14
  30. package/dist/hero-mentorship-video-split.js +11 -14
  31. package/dist/hero-mobile-app-download.cjs +2 -2
  32. package/dist/hero-mobile-app-download.d.cts +1 -1
  33. package/dist/hero-mobile-app-download.d.ts +1 -1
  34. package/dist/hero-mobile-app-download.js +2 -2
  35. package/dist/hero-premium-split-avatars.cjs +11 -9
  36. package/dist/hero-premium-split-avatars.d.cts +5 -1
  37. package/dist/hero-premium-split-avatars.d.ts +5 -1
  38. package/dist/hero-premium-split-avatars.js +11 -9
  39. package/dist/hero-presentation-platform-video.cjs +12 -9
  40. package/dist/hero-presentation-platform-video.d.cts +5 -1
  41. package/dist/hero-presentation-platform-video.d.ts +5 -1
  42. package/dist/hero-presentation-platform-video.js +12 -9
  43. package/dist/hero-productivity-launcher-video.cjs +11 -35
  44. package/dist/hero-productivity-launcher-video.js +11 -35
  45. package/dist/hero-spiral-pattern-cards.cjs +49 -92
  46. package/dist/hero-spiral-pattern-cards.d.cts +20 -3
  47. package/dist/hero-spiral-pattern-cards.d.ts +20 -3
  48. package/dist/hero-spiral-pattern-cards.js +49 -92
  49. package/dist/hero-split-spiral-shapes.cjs +43 -90
  50. package/dist/hero-split-spiral-shapes.d.cts +17 -4
  51. package/dist/hero-split-spiral-shapes.d.ts +17 -4
  52. package/dist/hero-split-spiral-shapes.js +43 -90
  53. package/dist/hero-startup-launch-cta.cjs +2 -2
  54. package/dist/hero-startup-launch-cta.js +2 -2
  55. package/dist/hero-task-timer-animated.cjs +64 -156
  56. package/dist/hero-task-timer-animated.d.cts +13 -1
  57. package/dist/hero-task-timer-animated.d.ts +13 -1
  58. package/dist/hero-task-timer-animated.js +64 -156
  59. package/dist/hero-testimonial-image-grid.cjs +10 -38
  60. package/dist/hero-testimonial-image-grid.js +10 -38
  61. package/dist/hero-therapy-testimonial-grid.cjs +11 -40
  62. package/dist/hero-therapy-testimonial-grid.js +11 -40
  63. package/dist/hero-video-background-dark.cjs +10 -34
  64. package/dist/hero-video-background-dark.d.cts +5 -1
  65. package/dist/hero-video-background-dark.d.ts +5 -1
  66. package/dist/hero-video-background-dark.js +10 -34
  67. package/dist/registry.cjs +353 -302
  68. package/dist/registry.js +353 -302
  69. package/package.json +1 -1
@@ -12,62 +12,6 @@ import * as AvatarPrimitive from '@radix-ui/react-avatar';
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
15
  var badgeVariants = cva(
72
16
  "inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
73
17
  {
@@ -1040,11 +984,11 @@ function HeroDashedBorderFeatures({
1040
984
  features,
1041
985
  featuresSlot,
1042
986
  background,
1043
- spacing,
987
+ spacing = "py-32 md:py-32",
1044
988
  pattern,
1045
989
  patternOpacity,
1046
990
  className,
1047
- containerClassName,
991
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
1048
992
  contentClassName,
1049
993
  headingClassName,
1050
994
  descriptionClassName,
@@ -1057,11 +1001,7 @@ function HeroDashedBorderFeatures({
1057
1001
  Pressable,
1058
1002
  {
1059
1003
  href: announcementHref,
1060
- className: cn(
1061
- "mx-auto mb-4 flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm",
1062
- getNestedCardBg(background),
1063
- getNestedCardTextColor(background)
1064
- ),
1004
+ className: "mx-auto mb-4 flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm bg-card",
1065
1005
  children: [
1066
1006
  /* @__PURE__ */ jsx(Badge, { children: badgeText }),
1067
1007
  announcementText,
@@ -1124,11 +1064,7 @@ function HeroDashedBorderFeatures({
1124
1064
  index === 1 && "border-x"
1125
1065
  ),
1126
1066
  children: [
1127
- /* @__PURE__ */ jsx("span", { className: cn(
1128
- "flex size-10 shrink-0 items-center justify-center rounded-md text-sm lg:size-12 lg:text-base",
1129
- getNestedCardBg(background),
1130
- getNestedCardTextColor(background)
1131
- ), children: feature.icon ?? /* @__PURE__ */ jsx(DynamicIcon, { name: feature.iconName || "lucide/check", size: 20 }) }),
1067
+ /* @__PURE__ */ jsx("span", { className: "flex size-10 shrink-0 items-center justify-center rounded-md text-sm lg:size-12 lg:text-base bg-card", children: feature.icon ?? /* @__PURE__ */ jsx(DynamicIcon, { name: feature.iconName || "lucide/check", size: 20 }) }),
1132
1068
  feature.title
1133
1069
  ]
1134
1070
  },
@@ -1142,12 +1078,13 @@ function HeroDashedBorderFeatures({
1142
1078
  spacing,
1143
1079
  pattern,
1144
1080
  patternOpacity,
1145
- className,
1146
- children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
1081
+ className: cn("relative flex items-center justify-center", className),
1082
+ containerClassName,
1083
+ children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
1147
1084
  /* @__PURE__ */ jsx("div", { className: cn("border-x border-t border-dashed px-4 py-20 md:px-16", contentClassName), children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-3xl", children: [
1148
1085
  renderAnnouncement,
1149
1086
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("my-4 mb-6 text-center text-3xl font-semibold lg:text-8xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
1150
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto mb-6 max-w-2xl text-center lg:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
1087
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto mb-6 max-w-2xl text-center lg:text-xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
1151
1088
  /* @__PURE__ */ jsx("div", { className: cn("flex flex-col justify-center gap-2 sm:flex-row", actionsClassName), children: renderActions })
1152
1089
  ] }) }),
1153
1090
  /* @__PURE__ */ jsxs("div", { className: cn("relative grid border-x border-dashed md:grid-cols-3", featuresClassName), children: [
@@ -32,32 +32,6 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
32
  function cn(...inputs) {
33
33
  return tailwindMerge.twMerge(clsx.clsx(inputs));
34
34
  }
35
- function getTextColor(parentBg, variant = "default", options) {
36
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
37
- if (isDark) {
38
- switch (variant) {
39
- case "default":
40
- return "text-foreground";
41
- case "muted":
42
- return "text-foreground/80";
43
- case "subtle":
44
- return "text-foreground/60";
45
- case "accent":
46
- return "text-accent-foreground";
47
- }
48
- } else {
49
- switch (variant) {
50
- case "default":
51
- return "text-foreground";
52
- case "muted":
53
- return "text-muted-foreground";
54
- case "subtle":
55
- return "text-muted-foreground/70";
56
- case "accent":
57
- return "text-primary";
58
- }
59
- }
60
- }
61
35
  function normalizePhoneNumber(input) {
62
36
  const trimmed = input.trim();
63
37
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -856,17 +830,17 @@ function HeroDesignShowcaseLogos({
856
830
  description,
857
831
  actions,
858
832
  actionsSlot,
859
- logosLabel = "Trusted by design teams at",
833
+ logosLabel,
860
834
  logos,
861
835
  logosSlot,
862
836
  showcaseImage,
863
837
  showcaseSlot,
864
838
  background,
865
- spacing,
839
+ spacing = "py-32 md:py-32",
866
840
  pattern,
867
841
  patternOpacity,
868
842
  className,
869
- containerClassName,
843
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
870
844
  contentClassName,
871
845
  headingClassName,
872
846
  descriptionClassName,
@@ -936,12 +910,13 @@ function HeroDesignShowcaseLogos({
936
910
  spacing,
937
911
  pattern,
938
912
  patternOpacity,
939
- className,
913
+ className: cn("relative flex items-center justify-center", className),
914
+ containerClassName,
940
915
  children: [
941
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col items-center gap-8", contentClassName), children: [
916
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col items-center gap-8", contentClassName), children: [
942
917
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex max-w-[920px] flex-col items-center gap-6", children: [
943
918
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mb-6 text-center text-[2.75rem] leading-tight font-semibold md:text-[3.5rem] lg:text-[4.375rem]", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mb-6 text-center text-[2.75rem] leading-tight font-semibold md:text-[3.5rem] lg:text-[4.375rem]", headingClassName), children: heading })),
944
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-center text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
919
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-center text-xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
945
920
  ] }),
946
921
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: renderActions }),
947
922
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: renderLogos })
@@ -11,32 +11,6 @@ import { Img } from '@page-speed/img';
11
11
  function cn(...inputs) {
12
12
  return twMerge(clsx(inputs));
13
13
  }
14
- function getTextColor(parentBg, variant = "default", options) {
15
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
16
- if (isDark) {
17
- switch (variant) {
18
- case "default":
19
- return "text-foreground";
20
- case "muted":
21
- return "text-foreground/80";
22
- case "subtle":
23
- return "text-foreground/60";
24
- case "accent":
25
- return "text-accent-foreground";
26
- }
27
- } else {
28
- switch (variant) {
29
- case "default":
30
- return "text-foreground";
31
- case "muted":
32
- return "text-muted-foreground";
33
- case "subtle":
34
- return "text-muted-foreground/70";
35
- case "accent":
36
- return "text-primary";
37
- }
38
- }
39
- }
40
14
  function normalizePhoneNumber(input) {
41
15
  const trimmed = input.trim();
42
16
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -835,17 +809,17 @@ function HeroDesignShowcaseLogos({
835
809
  description,
836
810
  actions,
837
811
  actionsSlot,
838
- logosLabel = "Trusted by design teams at",
812
+ logosLabel,
839
813
  logos,
840
814
  logosSlot,
841
815
  showcaseImage,
842
816
  showcaseSlot,
843
817
  background,
844
- spacing,
818
+ spacing = "py-32 md:py-32",
845
819
  pattern,
846
820
  patternOpacity,
847
821
  className,
848
- containerClassName,
822
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
849
823
  contentClassName,
850
824
  headingClassName,
851
825
  descriptionClassName,
@@ -915,12 +889,13 @@ function HeroDesignShowcaseLogos({
915
889
  spacing,
916
890
  pattern,
917
891
  patternOpacity,
918
- className,
892
+ className: cn("relative flex items-center justify-center", className),
893
+ containerClassName,
919
894
  children: [
920
- /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center gap-8", contentClassName), children: [
895
+ /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center gap-8", contentClassName), children: [
921
896
  /* @__PURE__ */ jsxs("div", { className: "flex max-w-[920px] flex-col items-center gap-6", children: [
922
897
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("mb-6 text-center text-[2.75rem] leading-tight font-semibold md:text-[3.5rem] lg:text-[4.375rem]", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("mb-6 text-center text-[2.75rem] leading-tight font-semibold md:text-[3.5rem] lg:text-[4.375rem]", headingClassName), children: heading })),
923
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-center text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
898
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-center text-xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
924
899
  ] }),
925
900
  /* @__PURE__ */ jsx("div", { children: renderActions }),
926
901
  /* @__PURE__ */ jsx("div", { children: renderLogos })
@@ -531,7 +531,7 @@ function HeroFloatingImages({
531
531
  zoomIndicatorClassName,
532
532
  optixFlowConfig,
533
533
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
534
- spacing = "py-6 md:py-32"
534
+ spacing = "py-32 md:py-32"
535
535
  }) {
536
536
  const [lightboxOpen, setLightboxOpen] = React3.useState(false);
537
537
  const [lightboxIndex, setLightboxIndex] = React3.useState(0);
@@ -510,7 +510,7 @@ function HeroFloatingImages({
510
510
  zoomIndicatorClassName,
511
511
  optixFlowConfig,
512
512
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
513
- spacing = "py-6 md:py-32"
513
+ spacing = "py-32 md:py-32"
514
514
  }) {
515
515
  const [lightboxOpen, setLightboxOpen] = useState(false);
516
516
  const [lightboxIndex, setLightboxIndex] = useState(0);
@@ -32,62 +32,6 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
32
  function cn(...inputs) {
33
33
  return tailwindMerge.twMerge(clsx.clsx(inputs));
34
34
  }
35
- function getNestedCardBg(parentBg, variant = "muted", options) {
36
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
37
- if (isDark) {
38
- switch (variant) {
39
- case "muted":
40
- return "bg-background";
41
- case "card":
42
- return "bg-card";
43
- case "accent":
44
- return "bg-accent";
45
- case "subtle":
46
- return "bg-background/50";
47
- }
48
- } else {
49
- switch (variant) {
50
- case "muted":
51
- return "bg-muted";
52
- case "card":
53
- return "bg-card";
54
- case "accent":
55
- return "bg-accent";
56
- case "subtle":
57
- return "bg-muted/50";
58
- }
59
- }
60
- }
61
- function getNestedCardTextColor(parentBg, options) {
62
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
63
- return isDark ? "text-foreground" : "";
64
- }
65
- function getTextColor(parentBg, variant = "default", options) {
66
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
67
- if (isDark) {
68
- switch (variant) {
69
- case "default":
70
- return "text-foreground";
71
- case "muted":
72
- return "text-foreground/80";
73
- case "subtle":
74
- return "text-foreground/60";
75
- case "accent":
76
- return "text-accent-foreground";
77
- }
78
- } else {
79
- switch (variant) {
80
- case "default":
81
- return "text-foreground";
82
- case "muted":
83
- return "text-muted-foreground";
84
- case "subtle":
85
- return "text-muted-foreground/70";
86
- case "accent":
87
- return "text-primary";
88
- }
89
- }
90
- }
91
35
  function normalizePhoneNumber(input) {
92
36
  const trimmed = input.trim();
93
37
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -998,11 +942,11 @@ function HeroGridPatternSolutions({
998
942
  imagesSlot,
999
943
  showGridPattern = true,
1000
944
  background,
1001
- spacing,
945
+ spacing = "py-32 md:py-32",
1002
946
  pattern,
1003
947
  patternOpacity,
1004
948
  className,
1005
- containerClassName,
949
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
1006
950
  contentClassName,
1007
951
  headingClassName,
1008
952
  descriptionClassName,
@@ -1016,11 +960,7 @@ function HeroGridPatternSolutions({
1016
960
  Pressable,
1017
961
  {
1018
962
  href: badgeHref,
1019
- className: cn(
1020
- "mx-auto mb-4 flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm",
1021
- getNestedCardBg(background),
1022
- getNestedCardTextColor(background)
1023
- ),
963
+ className: "mx-auto mb-4 flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm bg-card",
1024
964
  children: [
1025
965
  badgeText,
1026
966
  /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-right", size: 16 })
@@ -1070,14 +1010,15 @@ function HeroGridPatternSolutions({
1070
1010
  spacing,
1071
1011
  pattern,
1072
1012
  patternOpacity,
1073
- className: cn(className),
1074
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
1013
+ className: cn("relative flex items-center justify-center", className),
1014
+ containerClassName,
1015
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
1075
1016
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative overflow-hidden", children: [
1076
1017
  showGridPattern && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 -top-1 -left-1 -z-10 h-full w-full bg-[linear-gradient(to_right,hsl(var(--muted-foreground))_1px,transparent_1px),linear-gradient(to_bottom,hsl(var(--muted-foreground))_1px,transparent_1px)] mask-[radial-gradient(ellipse_50%_100%_at_50%_50%,transparent_60%,#000_100%)] bg-size-[92px_92px] opacity-15" }),
1077
1018
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-4xl", contentClassName), children: [
1078
1019
  renderBadge,
1079
1020
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("my-4 mb-6 text-center text-3xl font-semibold lg:text-8xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("my-4 mb-6 text-center text-3xl font-semibold lg:text-8xl", headingClassName), children: heading })),
1080
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto mb-8 max-w-2xl text-center lg:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
1021
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto mb-8 max-w-2xl text-center lg:text-xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
1081
1022
  renderActions
1082
1023
  ] })
1083
1024
  ] }),
@@ -11,62 +11,6 @@ import { Img } from '@page-speed/img';
11
11
  function cn(...inputs) {
12
12
  return twMerge(clsx(inputs));
13
13
  }
14
- function getNestedCardBg(parentBg, variant = "muted", options) {
15
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
16
- if (isDark) {
17
- switch (variant) {
18
- case "muted":
19
- return "bg-background";
20
- case "card":
21
- return "bg-card";
22
- case "accent":
23
- return "bg-accent";
24
- case "subtle":
25
- return "bg-background/50";
26
- }
27
- } else {
28
- switch (variant) {
29
- case "muted":
30
- return "bg-muted";
31
- case "card":
32
- return "bg-card";
33
- case "accent":
34
- return "bg-accent";
35
- case "subtle":
36
- return "bg-muted/50";
37
- }
38
- }
39
- }
40
- function getNestedCardTextColor(parentBg, options) {
41
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
42
- return isDark ? "text-foreground" : "";
43
- }
44
- function getTextColor(parentBg, variant = "default", options) {
45
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
46
- if (isDark) {
47
- switch (variant) {
48
- case "default":
49
- return "text-foreground";
50
- case "muted":
51
- return "text-foreground/80";
52
- case "subtle":
53
- return "text-foreground/60";
54
- case "accent":
55
- return "text-accent-foreground";
56
- }
57
- } else {
58
- switch (variant) {
59
- case "default":
60
- return "text-foreground";
61
- case "muted":
62
- return "text-muted-foreground";
63
- case "subtle":
64
- return "text-muted-foreground/70";
65
- case "accent":
66
- return "text-primary";
67
- }
68
- }
69
- }
70
14
  function normalizePhoneNumber(input) {
71
15
  const trimmed = input.trim();
72
16
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -977,11 +921,11 @@ function HeroGridPatternSolutions({
977
921
  imagesSlot,
978
922
  showGridPattern = true,
979
923
  background,
980
- spacing,
924
+ spacing = "py-32 md:py-32",
981
925
  pattern,
982
926
  patternOpacity,
983
927
  className,
984
- containerClassName,
928
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
985
929
  contentClassName,
986
930
  headingClassName,
987
931
  descriptionClassName,
@@ -995,11 +939,7 @@ function HeroGridPatternSolutions({
995
939
  Pressable,
996
940
  {
997
941
  href: badgeHref,
998
- className: cn(
999
- "mx-auto mb-4 flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm",
1000
- getNestedCardBg(background),
1001
- getNestedCardTextColor(background)
1002
- ),
942
+ className: "mx-auto mb-4 flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm bg-card",
1003
943
  children: [
1004
944
  badgeText,
1005
945
  /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-right", size: 16 })
@@ -1049,14 +989,15 @@ function HeroGridPatternSolutions({
1049
989
  spacing,
1050
990
  pattern,
1051
991
  patternOpacity,
1052
- className: cn(className),
1053
- children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
992
+ className: cn("relative flex items-center justify-center", className),
993
+ containerClassName,
994
+ children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
1054
995
  /* @__PURE__ */ jsxs("div", { className: "relative overflow-hidden", children: [
1055
996
  showGridPattern && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 -top-1 -left-1 -z-10 h-full w-full bg-[linear-gradient(to_right,hsl(var(--muted-foreground))_1px,transparent_1px),linear-gradient(to_bottom,hsl(var(--muted-foreground))_1px,transparent_1px)] mask-[radial-gradient(ellipse_50%_100%_at_50%_50%,transparent_60%,#000_100%)] bg-size-[92px_92px] opacity-15" }),
1056
997
  /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-4xl", contentClassName), children: [
1057
998
  renderBadge,
1058
999
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("my-4 mb-6 text-center text-3xl font-semibold lg:text-8xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("my-4 mb-6 text-center text-3xl font-semibold lg:text-8xl", headingClassName), children: heading })),
1059
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto mb-8 max-w-2xl text-center lg:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
1000
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto mb-8 max-w-2xl text-center lg:text-xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
1060
1001
  renderActions
1061
1002
  ] })
1062
1003
  ] }),
@@ -825,7 +825,7 @@ var Section = React__namespace.default.forwardRef(
825
825
  );
826
826
  Section.displayName = "Section";
827
827
  function HeroHiringAnimatedText({
828
- headingPrefix = "We help you to hire top",
828
+ headingPrefix,
829
829
  animatedTexts,
830
830
  headingSlot,
831
831
  description,
@@ -835,11 +835,11 @@ function HeroHiringAnimatedText({
835
835
  scrollActionSlot,
836
836
  backgroundImage,
837
837
  background,
838
- spacing,
838
+ spacing = "py-32 md:py-32",
839
839
  pattern,
840
840
  patternOpacity,
841
841
  className,
842
- containerClassName,
842
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
843
843
  contentClassName,
844
844
  headingClassName,
845
845
  descriptionClassName,
@@ -900,12 +900,17 @@ function HeroHiringAnimatedText({
900
900
  return /* @__PURE__ */ jsxRuntime.jsx(
901
901
  Section,
902
902
  {
903
+ background,
904
+ spacing,
905
+ pattern,
906
+ patternOpacity,
903
907
  className: cn(
904
- "dark relative h-svh max-h-[1400px] w-full bg-cover bg-position-[100%] bg-no-repeat before:absolute before:top-0 before:left-0 before:size-full before:bg-[radial-gradient(circle_at_100%_-100%,transparent_40%,rgba(0,0,0,.75)_85%)] before:content-['']",
908
+ "relative flex items-center justify-center dark h-svh max-h-[1400px] w-full bg-cover bg-position-[100%] bg-no-repeat before:absolute before:top-0 before:left-0 before:size-full before:bg-[radial-gradient(circle_at_100%_-100%,transparent_40%,rgba(0,0,0,.75)_85%)] before:content-['']",
905
909
  className
906
910
  ),
911
+ containerClassName,
907
912
  style: { backgroundImage: `url('${backgroundImage}')` },
908
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative z-10 container flex size-full max-w-412.5 flex-col justify-between pt-24 pb-14 md:justify-end", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex h-full flex-col justify-between gap-6 md:justify-end", contentClassName), children: [
913
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative z-10 flex size-full max-w-412.5 flex-col justify-between pt-24 pb-14 md:justify-end", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex h-full flex-col justify-between gap-6 md:justify-end", contentClassName), children: [
909
914
  renderHeading,
910
915
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-8", children: [
911
916
  description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg lg:text-2xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
@@ -804,7 +804,7 @@ var Section = React__default.forwardRef(
804
804
  );
805
805
  Section.displayName = "Section";
806
806
  function HeroHiringAnimatedText({
807
- headingPrefix = "We help you to hire top",
807
+ headingPrefix,
808
808
  animatedTexts,
809
809
  headingSlot,
810
810
  description,
@@ -814,11 +814,11 @@ function HeroHiringAnimatedText({
814
814
  scrollActionSlot,
815
815
  backgroundImage,
816
816
  background,
817
- spacing,
817
+ spacing = "py-32 md:py-32",
818
818
  pattern,
819
819
  patternOpacity,
820
820
  className,
821
- containerClassName,
821
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
822
822
  contentClassName,
823
823
  headingClassName,
824
824
  descriptionClassName,
@@ -879,12 +879,17 @@ function HeroHiringAnimatedText({
879
879
  return /* @__PURE__ */ jsx(
880
880
  Section,
881
881
  {
882
+ background,
883
+ spacing,
884
+ pattern,
885
+ patternOpacity,
882
886
  className: cn(
883
- "dark relative h-svh max-h-[1400px] w-full bg-cover bg-position-[100%] bg-no-repeat before:absolute before:top-0 before:left-0 before:size-full before:bg-[radial-gradient(circle_at_100%_-100%,transparent_40%,rgba(0,0,0,.75)_85%)] before:content-['']",
887
+ "relative flex items-center justify-center dark h-svh max-h-[1400px] w-full bg-cover bg-position-[100%] bg-no-repeat before:absolute before:top-0 before:left-0 before:size-full before:bg-[radial-gradient(circle_at_100%_-100%,transparent_40%,rgba(0,0,0,.75)_85%)] before:content-['']",
884
888
  className
885
889
  ),
890
+ containerClassName,
886
891
  style: { backgroundImage: `url('${backgroundImage}')` },
887
- children: /* @__PURE__ */ jsx("div", { className: cn("relative z-10 container flex size-full max-w-412.5 flex-col justify-between pt-24 pb-14 md:justify-end", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("flex h-full flex-col justify-between gap-6 md:justify-end", contentClassName), children: [
892
+ children: /* @__PURE__ */ jsx("div", { className: "relative z-10 flex size-full max-w-412.5 flex-col justify-between pt-24 pb-14 md:justify-end", children: /* @__PURE__ */ jsxs("div", { className: cn("flex h-full flex-col justify-between gap-6 md:justify-end", contentClassName), children: [
888
893
  renderHeading,
889
894
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-8", children: [
890
895
  description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg lg:text-2xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
@@ -32,32 +32,6 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
32
  function cn(...inputs) {
33
33
  return tailwindMerge.twMerge(clsx.clsx(inputs));
34
34
  }
35
- function getTextColor(parentBg, variant = "default", options) {
36
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
37
- if (isDark) {
38
- switch (variant) {
39
- case "default":
40
- return "text-foreground";
41
- case "muted":
42
- return "text-foreground/80";
43
- case "subtle":
44
- return "text-foreground/60";
45
- case "accent":
46
- return "text-accent-foreground";
47
- }
48
- } else {
49
- switch (variant) {
50
- case "default":
51
- return "text-foreground";
52
- case "muted":
53
- return "text-muted-foreground";
54
- case "subtle":
55
- return "text-muted-foreground/70";
56
- case "accent":
57
- return "text-primary";
58
- }
59
- }
60
- }
61
35
  function normalizePhoneNumber(input) {
62
36
  const trimmed = input.trim();
63
37
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -968,11 +942,11 @@ function HeroMarketplaceScatteredImages({
968
942
  imagesSlot,
969
943
  showGridPattern = true,
970
944
  background,
971
- spacing,
945
+ spacing = "py-32 md:py-32",
972
946
  pattern,
973
947
  patternOpacity,
974
948
  className,
975
- containerClassName,
949
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
976
950
  contentClassName,
977
951
  headingClassName,
978
952
  descriptionClassName,
@@ -1017,12 +991,13 @@ function HeroMarketplaceScatteredImages({
1017
991
  spacing,
1018
992
  pattern,
1019
993
  patternOpacity,
1020
- className: cn(className),
1021
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: containerClassName, children: [
1022
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative container mx-auto max-w-xl py-10 text-center", contentClassName), children: [
994
+ className: cn("relative flex items-center justify-center", className),
995
+ containerClassName,
996
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
997
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative mx-auto max-w-xl py-10 text-center", contentClassName), children: [
1023
998
  showGridPattern && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 -z-10 h-full w-full bg-[linear-gradient(to_right,hsl(var(--muted))_1px,transparent_1px),linear-gradient(to_bottom,hsl(var(--muted))_1px,transparent_1px)] mask-[radial-gradient(ellipse_50%_100%_at_50%_50%,#000_60%,transparent_100%)] bg-size-[64px_64px]" }),
1024
999
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mb-3 text-4xl lg:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mb-3 text-4xl lg:text-7xl", headingClassName), children: heading })),
1025
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-5 text-sm md:text-base", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
1000
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-5 text-sm md:text-base text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
1026
1001
  renderAction,
1027
1002
  renderTagline
1028
1003
  ] }),