@opensite/ui 2.2.3 → 2.2.5

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 (149) hide show
  1. package/dist/about-culture-tabs.cjs +83 -17
  2. package/dist/about-culture-tabs.js +83 -17
  3. package/dist/components.cjs +83 -17
  4. package/dist/components.js +83 -17
  5. package/dist/contact-callback.cjs +38 -552
  6. package/dist/contact-callback.d.cts +6 -74
  7. package/dist/contact-callback.d.ts +6 -74
  8. package/dist/contact-callback.js +36 -535
  9. package/dist/contact-careers.cjs +19 -555
  10. package/dist/contact-careers.d.cts +6 -62
  11. package/dist/contact-careers.d.ts +6 -62
  12. package/dist/contact-careers.js +18 -539
  13. package/dist/contact-catering.cjs +19 -531
  14. package/dist/contact-catering.d.cts +6 -61
  15. package/dist/contact-catering.d.ts +6 -61
  16. package/dist/contact-catering.js +18 -515
  17. package/dist/contact-consultation.cjs +87 -543
  18. package/dist/contact-consultation.d.cts +6 -61
  19. package/dist/contact-consultation.d.ts +6 -61
  20. package/dist/contact-consultation.js +88 -544
  21. package/dist/contact-demo.cjs +20 -563
  22. package/dist/contact-demo.d.cts +10 -50
  23. package/dist/contact-demo.d.ts +10 -50
  24. package/dist/contact-demo.js +19 -547
  25. package/dist/contact-emergency.cjs +1 -1
  26. package/dist/contact-emergency.js +1 -1
  27. package/dist/contact-event.cjs +19 -562
  28. package/dist/contact-event.d.cts +10 -50
  29. package/dist/contact-event.d.ts +10 -50
  30. package/dist/contact-event.js +19 -547
  31. package/dist/contact-feedback.cjs +19 -562
  32. package/dist/contact-feedback.d.cts +10 -50
  33. package/dist/contact-feedback.d.ts +10 -50
  34. package/dist/contact-feedback.js +19 -547
  35. package/dist/contact-fitness.cjs +19 -562
  36. package/dist/contact-fitness.d.cts +10 -50
  37. package/dist/contact-fitness.d.ts +10 -50
  38. package/dist/contact-fitness.js +19 -547
  39. package/dist/contact-guest.cjs +19 -562
  40. package/dist/contact-guest.d.cts +10 -50
  41. package/dist/contact-guest.d.ts +10 -50
  42. package/dist/contact-guest.js +19 -547
  43. package/dist/contact-insurance.cjs +19 -562
  44. package/dist/contact-insurance.d.cts +10 -50
  45. package/dist/contact-insurance.d.ts +10 -50
  46. package/dist/contact-insurance.js +19 -547
  47. package/dist/contact-interview.cjs +19 -562
  48. package/dist/contact-interview.d.cts +11 -51
  49. package/dist/contact-interview.d.ts +11 -51
  50. package/dist/contact-interview.js +19 -547
  51. package/dist/contact-locations.cjs +19 -562
  52. package/dist/contact-locations.d.cts +11 -51
  53. package/dist/contact-locations.d.ts +11 -51
  54. package/dist/contact-locations.js +19 -547
  55. package/dist/contact-maintenance.cjs +19 -562
  56. package/dist/contact-maintenance.d.cts +10 -50
  57. package/dist/contact-maintenance.d.ts +10 -50
  58. package/dist/contact-maintenance.js +19 -547
  59. package/dist/contact-map.cjs +19 -562
  60. package/dist/contact-map.d.cts +11 -51
  61. package/dist/contact-map.d.ts +11 -51
  62. package/dist/contact-map.js +19 -547
  63. package/dist/contact-minimal.cjs +19 -562
  64. package/dist/contact-minimal.d.cts +10 -50
  65. package/dist/contact-minimal.d.ts +10 -50
  66. package/dist/contact-minimal.js +19 -547
  67. package/dist/contact-moving.cjs +19 -562
  68. package/dist/contact-moving.d.cts +11 -51
  69. package/dist/contact-moving.d.ts +11 -51
  70. package/dist/contact-moving.js +19 -547
  71. package/dist/contact-multistep.cjs +19 -562
  72. package/dist/contact-multistep.d.cts +11 -51
  73. package/dist/contact-multistep.d.ts +11 -51
  74. package/dist/contact-multistep.js +19 -547
  75. package/dist/contact-partnership.cjs +22 -565
  76. package/dist/contact-partnership.d.cts +10 -50
  77. package/dist/contact-partnership.d.ts +10 -50
  78. package/dist/contact-partnership.js +22 -550
  79. package/dist/contact-photography.cjs +19 -562
  80. package/dist/contact-photography.d.cts +7 -50
  81. package/dist/contact-photography.d.ts +7 -50
  82. package/dist/contact-photography.js +18 -546
  83. package/dist/contact-press.cjs +19 -562
  84. package/dist/contact-press.d.cts +10 -50
  85. package/dist/contact-press.d.ts +10 -50
  86. package/dist/contact-press.js +19 -547
  87. package/dist/contact-quote.cjs +19 -562
  88. package/dist/contact-quote.d.cts +11 -51
  89. package/dist/contact-quote.d.ts +11 -51
  90. package/dist/contact-quote.js +19 -547
  91. package/dist/contact-referral.cjs +19 -562
  92. package/dist/contact-referral.d.cts +10 -50
  93. package/dist/contact-referral.d.ts +10 -50
  94. package/dist/contact-referral.js +19 -547
  95. package/dist/contact-report.cjs +19 -562
  96. package/dist/contact-report.d.cts +10 -50
  97. package/dist/contact-report.d.ts +10 -50
  98. package/dist/contact-report.js +19 -547
  99. package/dist/contact-reservation.cjs +19 -562
  100. package/dist/contact-reservation.d.cts +10 -50
  101. package/dist/contact-reservation.d.ts +10 -50
  102. package/dist/contact-reservation.js +19 -547
  103. package/dist/contact-retreat.cjs +88 -567
  104. package/dist/contact-retreat.d.cts +11 -51
  105. package/dist/contact-retreat.d.ts +11 -51
  106. package/dist/contact-retreat.js +90 -569
  107. package/dist/contact-rsvp.cjs +19 -562
  108. package/dist/contact-rsvp.d.cts +11 -51
  109. package/dist/contact-rsvp.d.ts +11 -51
  110. package/dist/contact-rsvp.js +19 -547
  111. package/dist/contact-sales.cjs +19 -562
  112. package/dist/contact-sales.d.cts +10 -50
  113. package/dist/contact-sales.d.ts +10 -50
  114. package/dist/contact-sales.js +19 -547
  115. package/dist/contact-schedule.cjs +19 -562
  116. package/dist/contact-schedule.d.cts +11 -51
  117. package/dist/contact-schedule.d.ts +11 -51
  118. package/dist/contact-schedule.js +19 -547
  119. package/dist/contact-sponsorship.cjs +19 -562
  120. package/dist/contact-sponsorship.d.cts +11 -51
  121. package/dist/contact-sponsorship.d.ts +11 -51
  122. package/dist/contact-sponsorship.js +19 -547
  123. package/dist/contact-support.cjs +19 -562
  124. package/dist/contact-support.d.cts +11 -51
  125. package/dist/contact-support.d.ts +11 -51
  126. package/dist/contact-support.js +19 -547
  127. package/dist/contact-tenant.cjs +19 -562
  128. package/dist/contact-tenant.d.cts +11 -51
  129. package/dist/contact-tenant.d.ts +11 -51
  130. package/dist/contact-tenant.js +19 -547
  131. package/dist/contact-volunteer.cjs +19 -562
  132. package/dist/contact-volunteer.d.cts +11 -51
  133. package/dist/contact-volunteer.d.ts +11 -51
  134. package/dist/contact-volunteer.js +19 -547
  135. package/dist/contact-warranty.cjs +19 -562
  136. package/dist/contact-warranty.d.cts +10 -50
  137. package/dist/contact-warranty.d.ts +10 -50
  138. package/dist/contact-warranty.js +19 -547
  139. package/dist/contact-wedding.cjs +19 -562
  140. package/dist/contact-wedding.d.cts +10 -50
  141. package/dist/contact-wedding.d.ts +10 -50
  142. package/dist/contact-wedding.js +19 -547
  143. package/dist/hero-presentation-platform-video.cjs +76 -27
  144. package/dist/hero-presentation-platform-video.js +76 -27
  145. package/dist/index.cjs +83 -17
  146. package/dist/index.js +83 -17
  147. package/dist/registry.cjs +768 -4196
  148. package/dist/registry.js +769 -4197
  149. package/package.json +12 -2
@@ -824,6 +824,38 @@ var Section = React__namespace.default.forwardRef(
824
824
  }
825
825
  );
826
826
  Section.displayName = "Section";
827
+ function TextInner({ as, className, children, ...props }, ref) {
828
+ const Component = as || "span";
829
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, { ref, className: cn(className), ...props, children });
830
+ }
831
+ var Text = React__namespace.forwardRef(TextInner);
832
+ Text.displayName = "Text";
833
+ function isContentTextItem(item) {
834
+ return item !== null && typeof item === "object" && !React__namespace.isValidElement(item) && "_type" in item && item._type === "text";
835
+ }
836
+ var ContentGroup = React__namespace.forwardRef(
837
+ ({ items, className, children, ...props }, ref) => {
838
+ const hasContent = items && items.length > 0;
839
+ if (!hasContent) {
840
+ return null;
841
+ }
842
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: cn(className), ...props, children: [
843
+ items.map((item, idx) => {
844
+ if (isContentTextItem(item)) {
845
+ const { _type, ...textProps } = item;
846
+ return /* @__PURE__ */ jsxRuntime.jsx(Text, { ...textProps }, idx);
847
+ }
848
+ const reactNode = item;
849
+ if (React__namespace.isValidElement(reactNode)) {
850
+ return React__namespace.cloneElement(reactNode, { key: reactNode.key ?? idx });
851
+ }
852
+ return /* @__PURE__ */ jsxRuntime.jsx(React__namespace.Fragment, { children: reactNode }, idx);
853
+ }),
854
+ children
855
+ ] });
856
+ }
857
+ );
858
+ ContentGroup.displayName = "ContentGroup";
827
859
  var MOBILE_CLASSES = {
828
860
  "fit-left": "items-start md:items-center",
829
861
  "fit-center": "items-center",
@@ -908,6 +940,49 @@ function HeroPresentationPlatformVideo({
908
940
  descriptionClassName,
909
941
  videoClassName
910
942
  }) {
943
+ const contentItems = React.useMemo(() => {
944
+ const items = [];
945
+ if (subtitle) {
946
+ if (typeof subtitle === "string") {
947
+ items.push({
948
+ _type: "text",
949
+ as: "p",
950
+ className: "font-light uppercase",
951
+ children: subtitle
952
+ });
953
+ } else {
954
+ items.push(subtitle);
955
+ }
956
+ }
957
+ if (heading) {
958
+ if (typeof heading === "string") {
959
+ items.push({
960
+ _type: "text",
961
+ as: "h1",
962
+ className: cn(
963
+ "text-5xl font-medium md:text-6xl lg:text-7xl",
964
+ headingClassName
965
+ ),
966
+ children: heading
967
+ });
968
+ } else {
969
+ items.push(heading);
970
+ }
971
+ }
972
+ if (description) {
973
+ if (typeof description === "string") {
974
+ items.push({
975
+ _type: "text",
976
+ as: "p",
977
+ className: cn("my-0 md:my-8 md:text-xl", descriptionClassName),
978
+ children: description
979
+ });
980
+ } else {
981
+ items.push(description);
982
+ }
983
+ }
984
+ return items;
985
+ }, [subtitle, heading, headingClassName, description, descriptionClassName]);
911
986
  React.useMemo(() => {
912
987
  if (actionsSlot) return actionsSlot;
913
988
  if (!actions || actions.length === 0) return null;
@@ -979,33 +1054,7 @@ function HeroPresentationPlatformVideo({
979
1054
  contentClassName
980
1055
  ),
981
1056
  children: [
982
- subtitle && (typeof subtitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-light uppercase", children: subtitle }) : subtitle),
983
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
984
- "h1",
985
- {
986
- className: cn(
987
- "text-5xl font-medium md:text-6xl lg:text-7xl",
988
- headingClassName
989
- ),
990
- children: heading
991
- }
992
- ) : /* @__PURE__ */ jsxRuntime.jsx(
993
- "h1",
994
- {
995
- className: cn(
996
- "text-5xl font-medium md:text-6xl lg:text-7xl",
997
- headingClassName
998
- ),
999
- children: heading
1000
- }
1001
- )),
1002
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1003
- "p",
1004
- {
1005
- className: cn("my-0 md:my-8 md:text-xl", descriptionClassName),
1006
- children: description
1007
- }
1008
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
1057
+ /* @__PURE__ */ jsxRuntime.jsx(ContentGroup, { items: contentItems }),
1009
1058
  /* @__PURE__ */ jsxRuntime.jsx(
1010
1059
  BlockActions,
1011
1060
  {
@@ -803,6 +803,38 @@ var Section = React__default.forwardRef(
803
803
  }
804
804
  );
805
805
  Section.displayName = "Section";
806
+ function TextInner({ as, className, children, ...props }, ref) {
807
+ const Component = as || "span";
808
+ return /* @__PURE__ */ jsx(Component, { ref, className: cn(className), ...props, children });
809
+ }
810
+ var Text = React.forwardRef(TextInner);
811
+ Text.displayName = "Text";
812
+ function isContentTextItem(item) {
813
+ return item !== null && typeof item === "object" && !React.isValidElement(item) && "_type" in item && item._type === "text";
814
+ }
815
+ var ContentGroup = React.forwardRef(
816
+ ({ items, className, children, ...props }, ref) => {
817
+ const hasContent = items && items.length > 0;
818
+ if (!hasContent) {
819
+ return null;
820
+ }
821
+ return /* @__PURE__ */ jsxs("div", { ref, className: cn(className), ...props, children: [
822
+ items.map((item, idx) => {
823
+ if (isContentTextItem(item)) {
824
+ const { _type, ...textProps } = item;
825
+ return /* @__PURE__ */ jsx(Text, { ...textProps }, idx);
826
+ }
827
+ const reactNode = item;
828
+ if (React.isValidElement(reactNode)) {
829
+ return React.cloneElement(reactNode, { key: reactNode.key ?? idx });
830
+ }
831
+ return /* @__PURE__ */ jsx(React.Fragment, { children: reactNode }, idx);
832
+ }),
833
+ children
834
+ ] });
835
+ }
836
+ );
837
+ ContentGroup.displayName = "ContentGroup";
806
838
  var MOBILE_CLASSES = {
807
839
  "fit-left": "items-start md:items-center",
808
840
  "fit-center": "items-center",
@@ -887,6 +919,49 @@ function HeroPresentationPlatformVideo({
887
919
  descriptionClassName,
888
920
  videoClassName
889
921
  }) {
922
+ const contentItems = useMemo(() => {
923
+ const items = [];
924
+ if (subtitle) {
925
+ if (typeof subtitle === "string") {
926
+ items.push({
927
+ _type: "text",
928
+ as: "p",
929
+ className: "font-light uppercase",
930
+ children: subtitle
931
+ });
932
+ } else {
933
+ items.push(subtitle);
934
+ }
935
+ }
936
+ if (heading) {
937
+ if (typeof heading === "string") {
938
+ items.push({
939
+ _type: "text",
940
+ as: "h1",
941
+ className: cn(
942
+ "text-5xl font-medium md:text-6xl lg:text-7xl",
943
+ headingClassName
944
+ ),
945
+ children: heading
946
+ });
947
+ } else {
948
+ items.push(heading);
949
+ }
950
+ }
951
+ if (description) {
952
+ if (typeof description === "string") {
953
+ items.push({
954
+ _type: "text",
955
+ as: "p",
956
+ className: cn("my-0 md:my-8 md:text-xl", descriptionClassName),
957
+ children: description
958
+ });
959
+ } else {
960
+ items.push(description);
961
+ }
962
+ }
963
+ return items;
964
+ }, [subtitle, heading, headingClassName, description, descriptionClassName]);
890
965
  useMemo(() => {
891
966
  if (actionsSlot) return actionsSlot;
892
967
  if (!actions || actions.length === 0) return null;
@@ -958,33 +1033,7 @@ function HeroPresentationPlatformVideo({
958
1033
  contentClassName
959
1034
  ),
960
1035
  children: [
961
- subtitle && (typeof subtitle === "string" ? /* @__PURE__ */ jsx("p", { className: "font-light uppercase", children: subtitle }) : subtitle),
962
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
963
- "h1",
964
- {
965
- className: cn(
966
- "text-5xl font-medium md:text-6xl lg:text-7xl",
967
- headingClassName
968
- ),
969
- children: heading
970
- }
971
- ) : /* @__PURE__ */ jsx(
972
- "h1",
973
- {
974
- className: cn(
975
- "text-5xl font-medium md:text-6xl lg:text-7xl",
976
- headingClassName
977
- ),
978
- children: heading
979
- }
980
- )),
981
- description && (typeof description === "string" ? /* @__PURE__ */ jsx(
982
- "p",
983
- {
984
- className: cn("my-0 md:my-8 md:text-xl", descriptionClassName),
985
- children: description
986
- }
987
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
1036
+ /* @__PURE__ */ jsx(ContentGroup, { items: contentItems }),
988
1037
  /* @__PURE__ */ jsx(
989
1038
  BlockActions,
990
1039
  {
package/dist/index.cjs CHANGED
@@ -2704,6 +2704,38 @@ function ActionComponent({ action }) {
2704
2704
  }
2705
2705
  );
2706
2706
  }
2707
+ function TextInner({ as, className, children, ...props }, ref) {
2708
+ const Component = as || "span";
2709
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, { ref, className: cn(className), ...props, children });
2710
+ }
2711
+ var Text = React4__namespace.forwardRef(TextInner);
2712
+ Text.displayName = "Text";
2713
+ function isContentTextItem(item) {
2714
+ return item !== null && typeof item === "object" && !React4__namespace.isValidElement(item) && "_type" in item && item._type === "text";
2715
+ }
2716
+ var ContentGroup = React4__namespace.forwardRef(
2717
+ ({ items, className, children, ...props }, ref) => {
2718
+ const hasContent = items && items.length > 0;
2719
+ if (!hasContent) {
2720
+ return null;
2721
+ }
2722
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: cn(className), ...props, children: [
2723
+ items.map((item, idx) => {
2724
+ if (isContentTextItem(item)) {
2725
+ const { _type, ...textProps } = item;
2726
+ return /* @__PURE__ */ jsxRuntime.jsx(Text, { ...textProps }, idx);
2727
+ }
2728
+ const reactNode = item;
2729
+ if (React4__namespace.isValidElement(reactNode)) {
2730
+ return React4__namespace.cloneElement(reactNode, { key: reactNode.key ?? idx });
2731
+ }
2732
+ return /* @__PURE__ */ jsxRuntime.jsx(React4__namespace.Fragment, { children: reactNode }, idx);
2733
+ }),
2734
+ children
2735
+ ] });
2736
+ }
2737
+ );
2738
+ ContentGroup.displayName = "ContentGroup";
2707
2739
  function AboutCultureTabs({
2708
2740
  badgeText,
2709
2741
  heading,
@@ -2737,6 +2769,53 @@ function AboutCultureTabs({
2737
2769
  const [activeTab, setActiveTab] = React4__namespace.useState(
2738
2770
  resolvedAspects[0]?.id || ""
2739
2771
  );
2772
+ const headerItems = React4.useMemo(() => {
2773
+ const items = [];
2774
+ if (badgeText) {
2775
+ if (typeof badgeText === "string") {
2776
+ items.push(
2777
+ /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: cn("px-3 py-1", badgeClassName), children: badgeText }, "badge")
2778
+ );
2779
+ } else {
2780
+ items.push(badgeText);
2781
+ }
2782
+ }
2783
+ if (heading) {
2784
+ if (typeof heading === "string") {
2785
+ items.push({
2786
+ _type: "text",
2787
+ as: "h2",
2788
+ className: cn(
2789
+ "text-3xl font-bold tracking-tight md:text-4xl text-pretty",
2790
+ headingClassName
2791
+ ),
2792
+ children: heading
2793
+ });
2794
+ } else {
2795
+ items.push(heading);
2796
+ }
2797
+ }
2798
+ if (description) {
2799
+ if (typeof description === "string") {
2800
+ items.push({
2801
+ _type: "text",
2802
+ as: "p",
2803
+ className: cn("text-balance", descriptionClassName),
2804
+ children: description
2805
+ });
2806
+ } else {
2807
+ items.push(description);
2808
+ }
2809
+ }
2810
+ return items;
2811
+ }, [
2812
+ badgeText,
2813
+ badgeClassName,
2814
+ heading,
2815
+ headingClassName,
2816
+ description,
2817
+ descriptionClassName
2818
+ ]);
2740
2819
  const ctaImagesContent = React4.useMemo(() => {
2741
2820
  if (ctaImagesSlot) return ctaImagesSlot;
2742
2821
  if (!ctaImages || ctaImages.length === 0) return null;
@@ -2767,27 +2846,14 @@ function AboutCultureTabs({
2767
2846
  className,
2768
2847
  containerClassName,
2769
2848
  children: [
2770
- /* @__PURE__ */ jsxRuntime.jsxs(
2771
- "div",
2849
+ /* @__PURE__ */ jsxRuntime.jsx(
2850
+ ContentGroup,
2772
2851
  {
2852
+ items: headerItems,
2773
2853
  className: cn(
2774
2854
  "mx-auto mb-12 max-w-full md:max-w-md space-y-4 text-center flex flex-col items-center justify-center",
2775
2855
  headerClassName
2776
- ),
2777
- children: [
2778
- badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: cn("px-3 py-1", badgeClassName), children: badgeText }) : badgeText),
2779
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
2780
- "h2",
2781
- {
2782
- className: cn(
2783
- "text-3xl font-bold tracking-tight md:text-4xl text-pretty",
2784
- headingClassName
2785
- ),
2786
- children: heading
2787
- }
2788
- ) : heading),
2789
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-balance", descriptionClassName), children: description }) : description)
2790
- ]
2856
+ )
2791
2857
  }
2792
2858
  ),
2793
2859
  aspectsSlot ? aspectsSlot : resolvedAspects.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(
package/dist/index.js CHANGED
@@ -2682,6 +2682,38 @@ function ActionComponent({ action }) {
2682
2682
  }
2683
2683
  );
2684
2684
  }
2685
+ function TextInner({ as, className, children, ...props }, ref) {
2686
+ const Component = as || "span";
2687
+ return /* @__PURE__ */ jsx(Component, { ref, className: cn(className), ...props, children });
2688
+ }
2689
+ var Text = React4.forwardRef(TextInner);
2690
+ Text.displayName = "Text";
2691
+ function isContentTextItem(item) {
2692
+ return item !== null && typeof item === "object" && !React4.isValidElement(item) && "_type" in item && item._type === "text";
2693
+ }
2694
+ var ContentGroup = React4.forwardRef(
2695
+ ({ items, className, children, ...props }, ref) => {
2696
+ const hasContent = items && items.length > 0;
2697
+ if (!hasContent) {
2698
+ return null;
2699
+ }
2700
+ return /* @__PURE__ */ jsxs("div", { ref, className: cn(className), ...props, children: [
2701
+ items.map((item, idx) => {
2702
+ if (isContentTextItem(item)) {
2703
+ const { _type, ...textProps } = item;
2704
+ return /* @__PURE__ */ jsx(Text, { ...textProps }, idx);
2705
+ }
2706
+ const reactNode = item;
2707
+ if (React4.isValidElement(reactNode)) {
2708
+ return React4.cloneElement(reactNode, { key: reactNode.key ?? idx });
2709
+ }
2710
+ return /* @__PURE__ */ jsx(React4.Fragment, { children: reactNode }, idx);
2711
+ }),
2712
+ children
2713
+ ] });
2714
+ }
2715
+ );
2716
+ ContentGroup.displayName = "ContentGroup";
2685
2717
  function AboutCultureTabs({
2686
2718
  badgeText,
2687
2719
  heading,
@@ -2715,6 +2747,53 @@ function AboutCultureTabs({
2715
2747
  const [activeTab, setActiveTab] = React4.useState(
2716
2748
  resolvedAspects[0]?.id || ""
2717
2749
  );
2750
+ const headerItems = useMemo(() => {
2751
+ const items = [];
2752
+ if (badgeText) {
2753
+ if (typeof badgeText === "string") {
2754
+ items.push(
2755
+ /* @__PURE__ */ jsx(Badge, { className: cn("px-3 py-1", badgeClassName), children: badgeText }, "badge")
2756
+ );
2757
+ } else {
2758
+ items.push(badgeText);
2759
+ }
2760
+ }
2761
+ if (heading) {
2762
+ if (typeof heading === "string") {
2763
+ items.push({
2764
+ _type: "text",
2765
+ as: "h2",
2766
+ className: cn(
2767
+ "text-3xl font-bold tracking-tight md:text-4xl text-pretty",
2768
+ headingClassName
2769
+ ),
2770
+ children: heading
2771
+ });
2772
+ } else {
2773
+ items.push(heading);
2774
+ }
2775
+ }
2776
+ if (description) {
2777
+ if (typeof description === "string") {
2778
+ items.push({
2779
+ _type: "text",
2780
+ as: "p",
2781
+ className: cn("text-balance", descriptionClassName),
2782
+ children: description
2783
+ });
2784
+ } else {
2785
+ items.push(description);
2786
+ }
2787
+ }
2788
+ return items;
2789
+ }, [
2790
+ badgeText,
2791
+ badgeClassName,
2792
+ heading,
2793
+ headingClassName,
2794
+ description,
2795
+ descriptionClassName
2796
+ ]);
2718
2797
  const ctaImagesContent = useMemo(() => {
2719
2798
  if (ctaImagesSlot) return ctaImagesSlot;
2720
2799
  if (!ctaImages || ctaImages.length === 0) return null;
@@ -2745,27 +2824,14 @@ function AboutCultureTabs({
2745
2824
  className,
2746
2825
  containerClassName,
2747
2826
  children: [
2748
- /* @__PURE__ */ jsxs(
2749
- "div",
2827
+ /* @__PURE__ */ jsx(
2828
+ ContentGroup,
2750
2829
  {
2830
+ items: headerItems,
2751
2831
  className: cn(
2752
2832
  "mx-auto mb-12 max-w-full md:max-w-md space-y-4 text-center flex flex-col items-center justify-center",
2753
2833
  headerClassName
2754
- ),
2755
- children: [
2756
- badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsx(Badge, { className: cn("px-3 py-1", badgeClassName), children: badgeText }) : badgeText),
2757
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
2758
- "h2",
2759
- {
2760
- className: cn(
2761
- "text-3xl font-bold tracking-tight md:text-4xl text-pretty",
2762
- headingClassName
2763
- ),
2764
- children: heading
2765
- }
2766
- ) : heading),
2767
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-balance", descriptionClassName), children: description }) : description)
2768
- ]
2834
+ )
2769
2835
  }
2770
2836
  ),
2771
2837
  aspectsSlot ? aspectsSlot : resolvedAspects.length > 0 ? /* @__PURE__ */ jsxs(