@opensite/ui 0.6.2 → 0.6.3

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.
@@ -928,6 +928,7 @@ var Section = React__namespace.default.forwardRef(
928
928
  }
929
929
  );
930
930
  Section.displayName = "Section";
931
+ var ALL_TAB_VALUE = "__all__";
931
932
  function AboutStartupTeam({
932
933
  className,
933
934
  containerClassName,
@@ -949,19 +950,48 @@ function AboutStartupTeam({
949
950
  pattern,
950
951
  patternOpacity,
951
952
  defaultActiveTab,
952
- onTabChange
953
+ onTabChange,
954
+ allTabLabel = "All"
953
955
  }) {
956
+ const effectiveTabs = React.useMemo(() => {
957
+ if (!sidebarLinks || sidebarLinks.length === 0 || !teamMembers || teamMembers.length === 0) {
958
+ return sidebarLinks || [];
959
+ }
960
+ const allTab = {
961
+ label: allTabLabel,
962
+ value: ALL_TAB_VALUE
963
+ };
964
+ return [allTab, ...sidebarLinks];
965
+ }, [sidebarLinks, teamMembers, allTabLabel]);
954
966
  const [activeTab, setActiveTab] = React.useState(
955
- defaultActiveTab || (sidebarLinks && sidebarLinks.length > 0 ? sidebarLinks[0].value : "")
967
+ defaultActiveTab || (effectiveTabs.length > 0 ? effectiveTabs[0].value : "")
956
968
  );
957
969
  const handleTabChange = (value) => {
958
970
  setActiveTab(value);
959
971
  onTabChange?.(value);
960
972
  };
961
- const sidebarContent = React.useMemo(() => {
973
+ const activeTabLabel = React.useMemo(() => {
974
+ if (!effectiveTabs || effectiveTabs.length === 0) return null;
975
+ const currentTab = effectiveTabs.find((tab) => tab.value === activeTab);
976
+ return currentTab?.label || null;
977
+ }, [effectiveTabs, activeTab]);
978
+ const dynamicTeamTitle = React.useMemo(() => {
979
+ if (teamTitle) return teamTitle;
980
+ if (activeTabLabel) {
981
+ if (typeof activeTabLabel === "string") {
982
+ return `${activeTabLabel} Team`;
983
+ }
984
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
985
+ activeTabLabel,
986
+ " Team"
987
+ ] });
988
+ }
989
+ return null;
990
+ }, [teamTitle, activeTabLabel]);
991
+ const renderTabsNav = React.useMemo(() => {
962
992
  if (sidebarSlot) return sidebarSlot;
963
- if (!sidebarLinks || sidebarLinks.length === 0) return null;
964
- return /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "space-y-1", children: sidebarLinks.map((link, idx) => /* @__PURE__ */ jsxRuntime.jsx(
993
+ if (!effectiveTabs || effectiveTabs.length === 0) return null;
994
+ return /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "space-y-1", children: effectiveTabs.map((link, idx) => /* @__PURE__ */ jsxRuntime.jsx(
965
995
  Pressable,
966
996
  {
967
997
  componentType: "button",
@@ -974,10 +1004,10 @@ function AboutStartupTeam({
974
1004
  },
975
1005
  idx
976
1006
  )) });
977
- }, [sidebarSlot, sidebarLinks, activeTab]);
1007
+ }, [sidebarSlot, effectiveTabs, activeTab]);
978
1008
  const filteredTeamMembers = React.useMemo(() => {
979
1009
  if (!teamMembers || teamMembers.length === 0) return [];
980
- if (!activeTab) return teamMembers;
1010
+ if (!activeTab || activeTab === ALL_TAB_VALUE) return teamMembers;
981
1011
  return teamMembers.filter(
982
1012
  (member) => !member.tab || member.tab === activeTab
983
1013
  );
@@ -985,11 +1015,14 @@ function AboutStartupTeam({
985
1015
  const teamMembersContent = React.useMemo(() => {
986
1016
  if (teamMembersSlot) return teamMembersSlot;
987
1017
  if (filteredTeamMembers.length === 0) return null;
988
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-8 grid gap-8 sm:grid-cols-2 lg:grid-cols-3", teamMembersClassName), children: filteredTeamMembers.map((member, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
1018
+ return /* @__PURE__ */ jsxRuntime.jsx(
989
1019
  "div",
990
1020
  {
991
- className: "rounded-xl border bg-card p-6 text-center",
992
- children: [
1021
+ className: cn(
1022
+ "mt-8 grid gap-8 sm:grid-cols-2 lg:grid-cols-3",
1023
+ teamMembersClassName
1024
+ ),
1025
+ children: filteredTeamMembers.map((member, idx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border bg-card p-6 text-center", children: [
993
1026
  member.avatar ? /* @__PURE__ */ jsxRuntime.jsx(
994
1027
  img.Img,
995
1028
  {
@@ -1018,11 +1051,33 @@ function AboutStartupTeam({
1018
1051
  },
1019
1052
  linkIdx
1020
1053
  )) })
1021
- ]
1054
+ ] }, idx))
1055
+ }
1056
+ );
1057
+ }, [
1058
+ teamMembersSlot,
1059
+ filteredTeamMembers,
1060
+ teamMembersClassName,
1061
+ optixFlowConfig
1062
+ ]);
1063
+ const mobileTabsNav = React.useMemo(() => {
1064
+ if (sidebarSlot) return null;
1065
+ if (!effectiveTabs || effectiveTabs.length === 0) return null;
1066
+ if (!teamMembers || teamMembers.length === 0) return null;
1067
+ return /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "flex gap-2 overflow-x-auto pb-2 lg:hidden", children: effectiveTabs.map((link, idx) => /* @__PURE__ */ jsxRuntime.jsx(
1068
+ Pressable,
1069
+ {
1070
+ componentType: "button",
1071
+ onClick: () => handleTabChange(link.value),
1072
+ className: cn(
1073
+ "shrink-0 rounded-lg px-4 py-2 text-sm font-medium transition-colors",
1074
+ activeTab === link.value ? "bg-primary text-primary-foreground" : "bg-muted text-muted-foreground hover:bg-muted/80 hover:text-foreground"
1075
+ ),
1076
+ children: link.label
1022
1077
  },
1023
1078
  idx
1024
1079
  )) });
1025
- }, [teamMembersSlot, filteredTeamMembers, teamMembersClassName, optixFlowConfig]);
1080
+ }, [sidebarSlot, effectiveTabs, activeTab]);
1026
1081
  return /* @__PURE__ */ jsxRuntime.jsx(
1027
1082
  Section,
1028
1083
  {
@@ -1032,12 +1087,59 @@ function AboutStartupTeam({
1032
1087
  patternOpacity,
1033
1088
  className: cn(className),
1034
1089
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-12 lg:grid-cols-4", children: [
1035
- /* @__PURE__ */ jsxRuntime.jsx("aside", { className: cn("lg:sticky lg:top-24 lg:self-start", sidebarClassName), children: sidebarContent }),
1090
+ /* @__PURE__ */ jsxRuntime.jsx(
1091
+ "aside",
1092
+ {
1093
+ className: cn(
1094
+ "hidden lg:block lg:sticky lg:top-24 lg:self-start",
1095
+ sidebarClassName
1096
+ ),
1097
+ children: renderTabsNav
1098
+ }
1099
+ ),
1036
1100
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "lg:col-span-3", children: [
1037
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
1038
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-6 text-lg text-muted-foreground whitespace-pre-line", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-6", descriptionClassName), children: description })),
1039
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-16", children: [
1040
- teamTitle && (typeof teamTitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-2xl font-bold", teamTitleClassName), children: teamTitle }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: teamTitleClassName, children: teamTitle })),
1101
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1102
+ "h1",
1103
+ {
1104
+ className: cn(
1105
+ "text-4xl font-bold tracking-tight md:text-5xl",
1106
+ titleClassName
1107
+ ),
1108
+ children: title
1109
+ }
1110
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
1111
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1112
+ "p",
1113
+ {
1114
+ className: cn(
1115
+ "mt-6 text-lg text-muted-foreground whitespace-pre-line",
1116
+ descriptionClassName
1117
+ ),
1118
+ children: description
1119
+ }
1120
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-6", descriptionClassName), children: description })),
1121
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8 md:mt-16", children: [
1122
+ mobileTabsNav,
1123
+ dynamicTeamTitle && (typeof dynamicTeamTitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1124
+ "h2",
1125
+ {
1126
+ className: cn(
1127
+ "text-2xl font-bold",
1128
+ mobileTabsNav ? "mt-6" : "",
1129
+ teamTitleClassName
1130
+ ),
1131
+ children: dynamicTeamTitle
1132
+ }
1133
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
1134
+ "div",
1135
+ {
1136
+ className: cn(
1137
+ mobileTabsNav ? "mt-6" : "",
1138
+ teamTitleClassName
1139
+ ),
1140
+ children: dynamicTeamTitle
1141
+ }
1142
+ )),
1041
1143
  teamMembersContent
1042
1144
  ] })
1043
1145
  ] })
@@ -121,7 +121,11 @@ interface AboutStartupTeamProps {
121
121
  * Callback when tab changes
122
122
  */
123
123
  onTabChange?: (value: string) => void;
124
+ /**
125
+ * Label for the "All" tab (defaults to "All")
126
+ */
127
+ allTabLabel?: React.ReactNode;
124
128
  }
125
- declare function AboutStartupTeam({ className, containerClassName, title, titleClassName, description, descriptionClassName, sidebarLinks, sidebarSlot, sidebarClassName, teamTitle, teamTitleClassName, teamMembers, teamMembersSlot, teamMembersClassName, optixFlowConfig, background, spacing, pattern, patternOpacity, defaultActiveTab, onTabChange, }: AboutStartupTeamProps): React.JSX.Element;
129
+ declare function AboutStartupTeam({ className, containerClassName, title, titleClassName, description, descriptionClassName, sidebarLinks, sidebarSlot, sidebarClassName, teamTitle, teamTitleClassName, teamMembers, teamMembersSlot, teamMembersClassName, optixFlowConfig, background, spacing, pattern, patternOpacity, defaultActiveTab, onTabChange, allTabLabel, }: AboutStartupTeamProps): React.JSX.Element;
126
130
 
127
131
  export { AboutStartupTeam, type AboutStartupTeamProps };
@@ -121,7 +121,11 @@ interface AboutStartupTeamProps {
121
121
  * Callback when tab changes
122
122
  */
123
123
  onTabChange?: (value: string) => void;
124
+ /**
125
+ * Label for the "All" tab (defaults to "All")
126
+ */
127
+ allTabLabel?: React.ReactNode;
124
128
  }
125
- declare function AboutStartupTeam({ className, containerClassName, title, titleClassName, description, descriptionClassName, sidebarLinks, sidebarSlot, sidebarClassName, teamTitle, teamTitleClassName, teamMembers, teamMembersSlot, teamMembersClassName, optixFlowConfig, background, spacing, pattern, patternOpacity, defaultActiveTab, onTabChange, }: AboutStartupTeamProps): React.JSX.Element;
129
+ declare function AboutStartupTeam({ className, containerClassName, title, titleClassName, description, descriptionClassName, sidebarLinks, sidebarSlot, sidebarClassName, teamTitle, teamTitleClassName, teamMembers, teamMembersSlot, teamMembersClassName, optixFlowConfig, background, spacing, pattern, patternOpacity, defaultActiveTab, onTabChange, allTabLabel, }: AboutStartupTeamProps): React.JSX.Element;
126
130
 
127
131
  export { AboutStartupTeam, type AboutStartupTeamProps };
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import * as React from 'react';
3
- import React__default, { useState, useMemo } from 'react';
3
+ import React__default, { useMemo, useState } from 'react';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
6
6
  import { Img } from '@page-speed/img';
7
7
  import { cva } from 'class-variance-authority';
8
- import { jsx, jsxs } from 'react/jsx-runtime';
8
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
9
9
 
10
10
  // components/blocks/about/about-startup-team.tsx
11
11
  function cn(...inputs) {
@@ -907,6 +907,7 @@ var Section = React__default.forwardRef(
907
907
  }
908
908
  );
909
909
  Section.displayName = "Section";
910
+ var ALL_TAB_VALUE = "__all__";
910
911
  function AboutStartupTeam({
911
912
  className,
912
913
  containerClassName,
@@ -928,19 +929,48 @@ function AboutStartupTeam({
928
929
  pattern,
929
930
  patternOpacity,
930
931
  defaultActiveTab,
931
- onTabChange
932
+ onTabChange,
933
+ allTabLabel = "All"
932
934
  }) {
935
+ const effectiveTabs = useMemo(() => {
936
+ if (!sidebarLinks || sidebarLinks.length === 0 || !teamMembers || teamMembers.length === 0) {
937
+ return sidebarLinks || [];
938
+ }
939
+ const allTab = {
940
+ label: allTabLabel,
941
+ value: ALL_TAB_VALUE
942
+ };
943
+ return [allTab, ...sidebarLinks];
944
+ }, [sidebarLinks, teamMembers, allTabLabel]);
933
945
  const [activeTab, setActiveTab] = useState(
934
- defaultActiveTab || (sidebarLinks && sidebarLinks.length > 0 ? sidebarLinks[0].value : "")
946
+ defaultActiveTab || (effectiveTabs.length > 0 ? effectiveTabs[0].value : "")
935
947
  );
936
948
  const handleTabChange = (value) => {
937
949
  setActiveTab(value);
938
950
  onTabChange?.(value);
939
951
  };
940
- const sidebarContent = useMemo(() => {
952
+ const activeTabLabel = useMemo(() => {
953
+ if (!effectiveTabs || effectiveTabs.length === 0) return null;
954
+ const currentTab = effectiveTabs.find((tab) => tab.value === activeTab);
955
+ return currentTab?.label || null;
956
+ }, [effectiveTabs, activeTab]);
957
+ const dynamicTeamTitle = useMemo(() => {
958
+ if (teamTitle) return teamTitle;
959
+ if (activeTabLabel) {
960
+ if (typeof activeTabLabel === "string") {
961
+ return `${activeTabLabel} Team`;
962
+ }
963
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
964
+ activeTabLabel,
965
+ " Team"
966
+ ] });
967
+ }
968
+ return null;
969
+ }, [teamTitle, activeTabLabel]);
970
+ const renderTabsNav = useMemo(() => {
941
971
  if (sidebarSlot) return sidebarSlot;
942
- if (!sidebarLinks || sidebarLinks.length === 0) return null;
943
- return /* @__PURE__ */ jsx("nav", { className: "space-y-1", children: sidebarLinks.map((link, idx) => /* @__PURE__ */ jsx(
972
+ if (!effectiveTabs || effectiveTabs.length === 0) return null;
973
+ return /* @__PURE__ */ jsx("nav", { className: "space-y-1", children: effectiveTabs.map((link, idx) => /* @__PURE__ */ jsx(
944
974
  Pressable,
945
975
  {
946
976
  componentType: "button",
@@ -953,10 +983,10 @@ function AboutStartupTeam({
953
983
  },
954
984
  idx
955
985
  )) });
956
- }, [sidebarSlot, sidebarLinks, activeTab]);
986
+ }, [sidebarSlot, effectiveTabs, activeTab]);
957
987
  const filteredTeamMembers = useMemo(() => {
958
988
  if (!teamMembers || teamMembers.length === 0) return [];
959
- if (!activeTab) return teamMembers;
989
+ if (!activeTab || activeTab === ALL_TAB_VALUE) return teamMembers;
960
990
  return teamMembers.filter(
961
991
  (member) => !member.tab || member.tab === activeTab
962
992
  );
@@ -964,11 +994,14 @@ function AboutStartupTeam({
964
994
  const teamMembersContent = useMemo(() => {
965
995
  if (teamMembersSlot) return teamMembersSlot;
966
996
  if (filteredTeamMembers.length === 0) return null;
967
- return /* @__PURE__ */ jsx("div", { className: cn("mt-8 grid gap-8 sm:grid-cols-2 lg:grid-cols-3", teamMembersClassName), children: filteredTeamMembers.map((member, idx) => /* @__PURE__ */ jsxs(
997
+ return /* @__PURE__ */ jsx(
968
998
  "div",
969
999
  {
970
- className: "rounded-xl border bg-card p-6 text-center",
971
- children: [
1000
+ className: cn(
1001
+ "mt-8 grid gap-8 sm:grid-cols-2 lg:grid-cols-3",
1002
+ teamMembersClassName
1003
+ ),
1004
+ children: filteredTeamMembers.map((member, idx) => /* @__PURE__ */ jsxs("div", { className: "rounded-xl border bg-card p-6 text-center", children: [
972
1005
  member.avatar ? /* @__PURE__ */ jsx(
973
1006
  Img,
974
1007
  {
@@ -997,11 +1030,33 @@ function AboutStartupTeam({
997
1030
  },
998
1031
  linkIdx
999
1032
  )) })
1000
- ]
1033
+ ] }, idx))
1034
+ }
1035
+ );
1036
+ }, [
1037
+ teamMembersSlot,
1038
+ filteredTeamMembers,
1039
+ teamMembersClassName,
1040
+ optixFlowConfig
1041
+ ]);
1042
+ const mobileTabsNav = useMemo(() => {
1043
+ if (sidebarSlot) return null;
1044
+ if (!effectiveTabs || effectiveTabs.length === 0) return null;
1045
+ if (!teamMembers || teamMembers.length === 0) return null;
1046
+ return /* @__PURE__ */ jsx("nav", { className: "flex gap-2 overflow-x-auto pb-2 lg:hidden", children: effectiveTabs.map((link, idx) => /* @__PURE__ */ jsx(
1047
+ Pressable,
1048
+ {
1049
+ componentType: "button",
1050
+ onClick: () => handleTabChange(link.value),
1051
+ className: cn(
1052
+ "shrink-0 rounded-lg px-4 py-2 text-sm font-medium transition-colors",
1053
+ activeTab === link.value ? "bg-primary text-primary-foreground" : "bg-muted text-muted-foreground hover:bg-muted/80 hover:text-foreground"
1054
+ ),
1055
+ children: link.label
1001
1056
  },
1002
1057
  idx
1003
1058
  )) });
1004
- }, [teamMembersSlot, filteredTeamMembers, teamMembersClassName, optixFlowConfig]);
1059
+ }, [sidebarSlot, effectiveTabs, activeTab]);
1005
1060
  return /* @__PURE__ */ jsx(
1006
1061
  Section,
1007
1062
  {
@@ -1011,12 +1066,59 @@ function AboutStartupTeam({
1011
1066
  patternOpacity,
1012
1067
  className: cn(className),
1013
1068
  children: /* @__PURE__ */ jsx("div", { className: cn(containerClassName), children: /* @__PURE__ */ jsxs("div", { className: "grid gap-12 lg:grid-cols-4", children: [
1014
- /* @__PURE__ */ jsx("aside", { className: cn("lg:sticky lg:top-24 lg:self-start", sidebarClassName), children: sidebarContent }),
1069
+ /* @__PURE__ */ jsx(
1070
+ "aside",
1071
+ {
1072
+ className: cn(
1073
+ "hidden lg:block lg:sticky lg:top-24 lg:self-start",
1074
+ sidebarClassName
1075
+ ),
1076
+ children: renderTabsNav
1077
+ }
1078
+ ),
1015
1079
  /* @__PURE__ */ jsxs("div", { className: "lg:col-span-3", children: [
1016
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
1017
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-6 text-lg text-muted-foreground whitespace-pre-line", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mt-6", descriptionClassName), children: description })),
1018
- /* @__PURE__ */ jsxs("div", { className: "mt-16", children: [
1019
- teamTitle && (typeof teamTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-2xl font-bold", teamTitleClassName), children: teamTitle }) : /* @__PURE__ */ jsx("div", { className: teamTitleClassName, children: teamTitle })),
1080
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx(
1081
+ "h1",
1082
+ {
1083
+ className: cn(
1084
+ "text-4xl font-bold tracking-tight md:text-5xl",
1085
+ titleClassName
1086
+ ),
1087
+ children: title
1088
+ }
1089
+ ) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
1090
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
1091
+ "p",
1092
+ {
1093
+ className: cn(
1094
+ "mt-6 text-lg text-muted-foreground whitespace-pre-line",
1095
+ descriptionClassName
1096
+ ),
1097
+ children: description
1098
+ }
1099
+ ) : /* @__PURE__ */ jsx("div", { className: cn("mt-6", descriptionClassName), children: description })),
1100
+ /* @__PURE__ */ jsxs("div", { className: "mt-8 md:mt-16", children: [
1101
+ mobileTabsNav,
1102
+ dynamicTeamTitle && (typeof dynamicTeamTitle === "string" ? /* @__PURE__ */ jsx(
1103
+ "h2",
1104
+ {
1105
+ className: cn(
1106
+ "text-2xl font-bold",
1107
+ mobileTabsNav ? "mt-6" : "",
1108
+ teamTitleClassName
1109
+ ),
1110
+ children: dynamicTeamTitle
1111
+ }
1112
+ ) : /* @__PURE__ */ jsx(
1113
+ "div",
1114
+ {
1115
+ className: cn(
1116
+ mobileTabsNav ? "mt-6" : "",
1117
+ teamTitleClassName
1118
+ ),
1119
+ children: dynamicTeamTitle
1120
+ }
1121
+ )),
1020
1122
  teamMembersContent
1021
1123
  ] })
1022
1124
  ] })
@@ -1775,20 +1775,29 @@ function AboutMissionPrinciples({
1775
1775
  const principlesContent = React4.useMemo(() => {
1776
1776
  if (principlesSlot) return principlesSlot;
1777
1777
  if (!principles || principles.length === 0) return null;
1778
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid grid-cols-1 gap-6 sm:grid-cols-2", principlesClassName), children: principles.map((principle, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
1778
+ return /* @__PURE__ */ jsxRuntime.jsx(
1779
1779
  "div",
1780
1780
  {
1781
- className: "relative rounded-lg border p-6 transition-colors hover:bg-muted",
1782
- children: [
1783
- principle.number && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute right-4 top-4 text-3xl font-bold text-primary/20", children: principle.number }),
1784
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
1785
- principle.title && (typeof principle.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl font-bold", children: principle.title }) : principle.title),
1786
- principle.description && (typeof principle.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: principle.description }) : principle.description)
1787
- ] })
1788
- ]
1789
- },
1790
- idx
1791
- )) });
1781
+ className: cn(
1782
+ "grid grid-cols-1 gap-6 sm:grid-cols-2",
1783
+ principlesClassName
1784
+ ),
1785
+ children: principles.map((principle, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
1786
+ "div",
1787
+ {
1788
+ className: "relative rounded-lg border p-6 transition-colors hover:bg-muted",
1789
+ children: [
1790
+ principle.number && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute right-4 top-4 text-3xl font-bold text-primary/20", children: principle.number }),
1791
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
1792
+ principle.title && (typeof principle.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl font-bold", children: principle.title }) : principle.title),
1793
+ principle.description && (typeof principle.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: principle.description }) : principle.description)
1794
+ ] })
1795
+ ]
1796
+ },
1797
+ idx
1798
+ ))
1799
+ }
1800
+ );
1792
1801
  }, [principlesSlot, principles, principlesClassName]);
1793
1802
  const visionActionContent = React4.useMemo(() => {
1794
1803
  if (visionActionSlot) return visionActionSlot;
@@ -1827,21 +1836,75 @@ function AboutMissionPrinciples({
1827
1836
  containerClassName,
1828
1837
  children: [
1829
1838
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 items-center gap-12 lg:grid-cols-2 lg:gap-24", children: [
1830
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-8", children: [
1831
- badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm text-primary", badgeClassName), children: badgeText }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: badgeClassName, children: badgeText })),
1832
- missionHeading && (typeof missionHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-4xl font-bold leading-tight tracking-tight lg:text-5xl", missionHeadingClassName), children: missionHeading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: missionHeadingClassName, children: missionHeading })),
1833
- missionDescription && (typeof missionDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-xl text-muted-foreground", missionDescriptionClassName), children: missionDescription }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: missionDescriptionClassName, children: missionDescription })),
1839
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4 md:space-y-8", children: [
1840
+ badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1841
+ "div",
1842
+ {
1843
+ className: cn(
1844
+ "inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm text-primary",
1845
+ badgeClassName
1846
+ ),
1847
+ children: badgeText
1848
+ }
1849
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: badgeClassName, children: badgeText })),
1850
+ missionHeading && (typeof missionHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1851
+ "h2",
1852
+ {
1853
+ className: cn(
1854
+ "text-4xl font-bold leading-tight tracking-tight lg:text-5xl",
1855
+ missionHeadingClassName
1856
+ ),
1857
+ children: missionHeading
1858
+ }
1859
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: missionHeadingClassName, children: missionHeading })),
1860
+ missionDescription && (typeof missionDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1861
+ "p",
1862
+ {
1863
+ className: cn(
1864
+ "text-xl text-muted-foreground",
1865
+ missionDescriptionClassName
1866
+ ),
1867
+ children: missionDescription
1868
+ }
1869
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: missionDescriptionClassName, children: missionDescription })),
1834
1870
  missionActionContent
1835
1871
  ] }),
1836
1872
  principlesContent
1837
1873
  ] }),
1838
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-24 rounded-lg bg-muted p-8 lg:p-12", visionClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 items-center gap-8 lg:grid-cols-3", children: [
1839
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "lg:col-span-2", children: [
1840
- visionHeading && (typeof visionHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 text-2xl font-bold", visionHeadingClassName), children: visionHeading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", visionHeadingClassName), children: visionHeading })),
1841
- visionDescription && (typeof visionDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-4 text-foreground/80", visionDescriptionClassName), children: visionDescription }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", visionDescriptionClassName), children: visionDescription }))
1842
- ] }),
1843
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center lg:col-span-1 lg:justify-end", children: visionActionContent })
1844
- ] }) })
1874
+ /* @__PURE__ */ jsxRuntime.jsx(
1875
+ "div",
1876
+ {
1877
+ className: cn(
1878
+ "mt-6 md:mt-24 rounded-lg bg-muted p-8 lg:p-12",
1879
+ visionClassName
1880
+ ),
1881
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 items-center gap-8 lg:grid-cols-3", children: [
1882
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "lg:col-span-2", children: [
1883
+ visionHeading && (typeof visionHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1884
+ "h3",
1885
+ {
1886
+ className: cn(
1887
+ "mb-4 text-2xl font-bold",
1888
+ visionHeadingClassName
1889
+ ),
1890
+ children: visionHeading
1891
+ }
1892
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", visionHeadingClassName), children: visionHeading })),
1893
+ visionDescription && (typeof visionDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1894
+ "p",
1895
+ {
1896
+ className: cn(
1897
+ "mb-4 text-foreground/80",
1898
+ visionDescriptionClassName
1899
+ ),
1900
+ children: visionDescription
1901
+ }
1902
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", visionDescriptionClassName), children: visionDescription }))
1903
+ ] }),
1904
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center lg:col-span-1 lg:justify-end", children: visionActionContent })
1905
+ ] })
1906
+ }
1907
+ )
1845
1908
  ]
1846
1909
  }
1847
1910
  );