@capy-vn/ui 0.1.1 → 0.1.2
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.
- package/dist/index.browser.js +83 -61
- package/dist/index.cjs +83 -61
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +83 -61
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.browser.js
CHANGED
|
@@ -45883,16 +45883,16 @@ Defaulting to \`null\`.`;
|
|
|
45883
45883
|
variant: "ghost",
|
|
45884
45884
|
size: "sm",
|
|
45885
45885
|
className: cn(
|
|
45886
|
-
"gap-1",
|
|
45887
|
-
link.active && "text-foreground"
|
|
45886
|
+
"gap-1.5 text-muted-foreground hover:bg-transparent hover:text-foreground",
|
|
45887
|
+
link.active && "text-foreground font-medium"
|
|
45888
45888
|
),
|
|
45889
45889
|
children: [
|
|
45890
45890
|
link.label,
|
|
45891
|
-
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ChevronDown, { className: "h-3.5 w-3.5 opacity-
|
|
45891
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ChevronDown, { className: "h-3.5 w-3.5 opacity-50", "aria-hidden": "true" })
|
|
45892
45892
|
]
|
|
45893
45893
|
}
|
|
45894
45894
|
) }),
|
|
45895
|
-
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(DropdownMenuContent2, { align: "
|
|
45895
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(DropdownMenuContent2, { align: "center", children: link.children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(DropdownMenuItem2, { asChild: !!child.href, children: child.href ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
45896
45896
|
"a",
|
|
45897
45897
|
{
|
|
45898
45898
|
href: child.href,
|
|
@@ -45911,7 +45911,10 @@ Defaulting to \`null\`.`;
|
|
|
45911
45911
|
variant: "ghost",
|
|
45912
45912
|
size: "sm",
|
|
45913
45913
|
asChild: !!link.href,
|
|
45914
|
-
className: cn(
|
|
45914
|
+
className: cn(
|
|
45915
|
+
"text-muted-foreground hover:bg-transparent hover:text-foreground",
|
|
45916
|
+
link.active && "text-foreground font-medium"
|
|
45917
|
+
),
|
|
45915
45918
|
onClick: !link.href ? link.onClick : void 0,
|
|
45916
45919
|
children: link.href ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
45917
45920
|
"a",
|
|
@@ -45943,9 +45946,9 @@ Defaulting to \`null\`.`;
|
|
|
45943
45946
|
onClose();
|
|
45944
45947
|
};
|
|
45945
45948
|
const baseClass = cn(
|
|
45946
|
-
"flex w-full items-center justify-between rounded-md px-3 py-2 text-sm font-medium transition-colors",
|
|
45949
|
+
"flex w-full items-center justify-between rounded-md px-3 py-2.5 text-sm font-medium transition-colors",
|
|
45947
45950
|
"hover:bg-accent hover:text-accent-foreground",
|
|
45948
|
-
link.active
|
|
45951
|
+
link.active ? "text-foreground bg-accent/60" : "text-muted-foreground",
|
|
45949
45952
|
depth > 0 && "pl-6 font-normal"
|
|
45950
45953
|
);
|
|
45951
45954
|
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("li", { children: [
|
|
@@ -45969,7 +45972,7 @@ Defaulting to \`null\`.`;
|
|
|
45969
45972
|
ChevronDown,
|
|
45970
45973
|
{
|
|
45971
45974
|
className: cn(
|
|
45972
|
-
"h-4 w-4 opacity-
|
|
45975
|
+
"h-4 w-4 opacity-50 transition-transform",
|
|
45973
45976
|
open && "rotate-180"
|
|
45974
45977
|
),
|
|
45975
45978
|
"aria-hidden": "true"
|
|
@@ -45996,8 +45999,7 @@ Defaulting to \`null\`.`;
|
|
|
45996
45999
|
const [scrolled, setScrolled] = React97.useState(false);
|
|
45997
46000
|
const [sheetOpen, setSheetOpen] = React97.useState(false);
|
|
45998
46001
|
React97.useEffect(() => {
|
|
45999
|
-
|
|
46000
|
-
const handler = () => setScrolled(window.scrollY > transparentThreshold);
|
|
46002
|
+
const handler = () => setScrolled(window.scrollY > (transparent ? transparentThreshold : 10));
|
|
46001
46003
|
window.addEventListener("scroll", handler, { passive: true });
|
|
46002
46004
|
handler();
|
|
46003
46005
|
return () => window.removeEventListener("scroll", handler);
|
|
@@ -46012,41 +46014,52 @@ Defaulting to \`null\`.`;
|
|
|
46012
46014
|
{
|
|
46013
46015
|
ref,
|
|
46014
46016
|
className: cn(
|
|
46015
|
-
"z-50 w-full transition-all duration-
|
|
46017
|
+
"z-50 w-full transition-all duration-300",
|
|
46016
46018
|
sticky && "sticky top-0",
|
|
46017
|
-
isTransparent ? "bg-transparent" :
|
|
46019
|
+
isTransparent ? "bg-transparent" : cn(
|
|
46020
|
+
"border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
|
46021
|
+
scrolled && "shadow-sm"
|
|
46022
|
+
),
|
|
46018
46023
|
className
|
|
46019
46024
|
),
|
|
46020
46025
|
...props,
|
|
46021
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Container, { size: containerSize, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "
|
|
46022
|
-
|
|
46023
|
-
|
|
46024
|
-
|
|
46025
|
-
|
|
46026
|
-
|
|
46027
|
-
|
|
46028
|
-
|
|
46029
|
-
|
|
46030
|
-
|
|
46031
|
-
|
|
46032
|
-
|
|
46033
|
-
|
|
46034
|
-
|
|
46035
|
-
|
|
46036
|
-
) }),
|
|
46037
|
-
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(SheetContent, { side: "left", className: "flex flex-col", children: [
|
|
46038
|
-
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SheetHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SheetTitle, { children: mobileMenuTitle }) }),
|
|
46039
|
-
links && links.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("nav", { className: "mt-4 flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("ul", { className: "space-y-1", children: links.map((link) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
46040
|
-
NavMobileLink,
|
|
46026
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Container, { size: containerSize, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "grid h-16 grid-cols-[auto_1fr_auto] items-center gap-4", children: [
|
|
46027
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "shrink-0", children: logo }),
|
|
46028
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
46029
|
+
"nav",
|
|
46030
|
+
{
|
|
46031
|
+
className: "hidden items-center justify-center gap-0.5 md:flex",
|
|
46032
|
+
"aria-label": "Main navigation",
|
|
46033
|
+
children: (links ?? []).map((link) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(NavDesktopLink, { link }, link.label))
|
|
46034
|
+
}
|
|
46035
|
+
),
|
|
46036
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
46037
|
+
cta && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "hidden items-center gap-3 md:flex", children: cta }),
|
|
46038
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "md:hidden", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Sheet, { open: sheetOpen, onOpenChange: handleSheetOpen, children: [
|
|
46039
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SheetTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
46040
|
+
Button,
|
|
46041
46041
|
{
|
|
46042
|
-
|
|
46043
|
-
|
|
46044
|
-
|
|
46045
|
-
|
|
46046
|
-
|
|
46047
|
-
|
|
46048
|
-
|
|
46049
|
-
|
|
46042
|
+
variant: "ghost",
|
|
46043
|
+
size: "icon",
|
|
46044
|
+
"aria-label": "M\u1EDF menu",
|
|
46045
|
+
className: "h-9 w-9",
|
|
46046
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Menu, { className: "h-5 w-5", "aria-hidden": "true" })
|
|
46047
|
+
}
|
|
46048
|
+
) }),
|
|
46049
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(SheetContent, { side: "right", className: "flex flex-col w-72", children: [
|
|
46050
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SheetHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SheetTitle, { children: mobileMenuTitle }) }),
|
|
46051
|
+
links && links.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("nav", { className: "mt-4 flex-1", "aria-label": "Mobile navigation", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("ul", { className: "space-y-0.5", children: links.map((link) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
46052
|
+
NavMobileLink,
|
|
46053
|
+
{
|
|
46054
|
+
link,
|
|
46055
|
+
onClose: () => handleSheetOpen(false)
|
|
46056
|
+
},
|
|
46057
|
+
link.label
|
|
46058
|
+
)) }) }),
|
|
46059
|
+
cta && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "mt-auto border-t pt-4", children: cta })
|
|
46060
|
+
] })
|
|
46061
|
+
] }) })
|
|
46062
|
+
] })
|
|
46050
46063
|
] }) })
|
|
46051
46064
|
}
|
|
46052
46065
|
);
|
|
@@ -46084,31 +46097,40 @@ Defaulting to \`null\`.`;
|
|
|
46084
46097
|
ref,
|
|
46085
46098
|
className: cn("border-t bg-background", className),
|
|
46086
46099
|
...props,
|
|
46087
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(Container, { size: containerSize, className: "py-
|
|
46088
|
-
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "
|
|
46089
|
-
(logo || tagline) && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "flex
|
|
46100
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(Container, { size: containerSize, className: "py-14", children: [
|
|
46101
|
+
(logo || tagline || linkGroups && linkGroups.length > 0) && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "grid grid-cols-1 gap-10 md:grid-cols-[2fr_3fr] md:gap-16", children: [
|
|
46102
|
+
(logo || tagline) && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "flex flex-col gap-4", children: [
|
|
46090
46103
|
logo,
|
|
46091
|
-
tagline && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "text-sm text-muted-foreground", children: tagline })
|
|
46104
|
+
tagline && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "max-w-xs text-sm leading-relaxed text-muted-foreground", children: tagline })
|
|
46092
46105
|
] }),
|
|
46093
|
-
linkGroups && linkGroups.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
46094
|
-
|
|
46095
|
-
|
|
46096
|
-
|
|
46097
|
-
|
|
46098
|
-
|
|
46099
|
-
|
|
46100
|
-
|
|
46101
|
-
className: "text-sm
|
|
46102
|
-
children: link.
|
|
46103
|
-
|
|
46104
|
-
|
|
46105
|
-
|
|
46106
|
+
linkGroups && linkGroups.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
46107
|
+
"div",
|
|
46108
|
+
{
|
|
46109
|
+
className: cn(
|
|
46110
|
+
"grid gap-8",
|
|
46111
|
+
linkGroups.length === 1 ? "grid-cols-1" : linkGroups.length === 2 ? "grid-cols-2" : "grid-cols-2 sm:grid-cols-3"
|
|
46112
|
+
),
|
|
46113
|
+
children: linkGroups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "flex flex-col gap-3", children: [
|
|
46114
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "text-sm font-semibold tracking-wide", children: group.heading }),
|
|
46115
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("ul", { className: "flex flex-col gap-2", children: group.links.map((link) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
46116
|
+
"a",
|
|
46117
|
+
{
|
|
46118
|
+
href: link.href,
|
|
46119
|
+
target: link.external ? "_blank" : void 0,
|
|
46120
|
+
rel: link.external ? "noopener noreferrer" : void 0,
|
|
46121
|
+
className: "text-sm text-muted-foreground transition-colors hover:text-foreground",
|
|
46122
|
+
children: link.label
|
|
46123
|
+
}
|
|
46124
|
+
) }, link.href)) })
|
|
46125
|
+
] }, group.heading))
|
|
46126
|
+
}
|
|
46127
|
+
)
|
|
46106
46128
|
] }),
|
|
46107
|
-
newsletter && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "mt-10", children: newsletter }),
|
|
46129
|
+
newsletter && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: cn((logo || tagline || linkGroups?.length) && "mt-10"), children: newsletter }),
|
|
46108
46130
|
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)(Separator2, { className: "my-8" }),
|
|
46109
|
-
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "flex flex-
|
|
46131
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "flex flex-col-reverse gap-4 sm:flex-row sm:items-center sm:justify-between", children: [
|
|
46110
46132
|
copyright && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("p", { className: "text-sm text-muted-foreground", children: copyright }),
|
|
46111
|
-
socialLinks && socialLinks.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "flex items-center gap-
|
|
46133
|
+
socialLinks && socialLinks.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "flex items-center gap-1", children: socialLinks.map((social) => {
|
|
46112
46134
|
const Icon2 = socialIconMap[social.platform];
|
|
46113
46135
|
return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
46114
46136
|
"a",
|
|
@@ -46117,7 +46139,7 @@ Defaulting to \`null\`.`;
|
|
|
46117
46139
|
target: "_blank",
|
|
46118
46140
|
rel: "noopener noreferrer",
|
|
46119
46141
|
"aria-label": social.label ?? social.platform,
|
|
46120
|
-
className: "flex h-
|
|
46142
|
+
className: "flex h-9 w-9 items-center justify-center rounded-full text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground",
|
|
46121
46143
|
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(Icon2, { className: "h-4 w-4", "aria-hidden": "true" })
|
|
46122
46144
|
},
|
|
46123
46145
|
social.platform
|
package/dist/index.cjs
CHANGED
|
@@ -3033,16 +3033,16 @@ function NavDesktopLink({ link }) {
|
|
|
3033
3033
|
variant: "ghost",
|
|
3034
3034
|
size: "sm",
|
|
3035
3035
|
className: cn(
|
|
3036
|
-
"gap-1",
|
|
3037
|
-
link.active && "text-foreground"
|
|
3036
|
+
"gap-1.5 text-muted-foreground hover:bg-transparent hover:text-foreground",
|
|
3037
|
+
link.active && "text-foreground font-medium"
|
|
3038
3038
|
),
|
|
3039
3039
|
children: [
|
|
3040
3040
|
link.label,
|
|
3041
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-3.5 w-3.5 opacity-
|
|
3041
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-3.5 w-3.5 opacity-50", "aria-hidden": "true" })
|
|
3042
3042
|
]
|
|
3043
3043
|
}
|
|
3044
3044
|
) }),
|
|
3045
|
-
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuContent, { align: "
|
|
3045
|
+
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuContent, { align: "center", children: link.children.map((child) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuItem, { asChild: !!child.href, children: child.href ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3046
3046
|
"a",
|
|
3047
3047
|
{
|
|
3048
3048
|
href: child.href,
|
|
@@ -3061,7 +3061,10 @@ function NavDesktopLink({ link }) {
|
|
|
3061
3061
|
variant: "ghost",
|
|
3062
3062
|
size: "sm",
|
|
3063
3063
|
asChild: !!link.href,
|
|
3064
|
-
className: cn(
|
|
3064
|
+
className: cn(
|
|
3065
|
+
"text-muted-foreground hover:bg-transparent hover:text-foreground",
|
|
3066
|
+
link.active && "text-foreground font-medium"
|
|
3067
|
+
),
|
|
3065
3068
|
onClick: !link.href ? link.onClick : void 0,
|
|
3066
3069
|
children: link.href ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3067
3070
|
"a",
|
|
@@ -3093,9 +3096,9 @@ function NavMobileLink({
|
|
|
3093
3096
|
onClose();
|
|
3094
3097
|
};
|
|
3095
3098
|
const baseClass = cn(
|
|
3096
|
-
"flex w-full items-center justify-between rounded-md px-3 py-2 text-sm font-medium transition-colors",
|
|
3099
|
+
"flex w-full items-center justify-between rounded-md px-3 py-2.5 text-sm font-medium transition-colors",
|
|
3097
3100
|
"hover:bg-accent hover:text-accent-foreground",
|
|
3098
|
-
link.active
|
|
3101
|
+
link.active ? "text-foreground bg-accent/60" : "text-muted-foreground",
|
|
3099
3102
|
depth > 0 && "pl-6 font-normal"
|
|
3100
3103
|
);
|
|
3101
3104
|
return /* @__PURE__ */ jsxRuntime.jsxs("li", { children: [
|
|
@@ -3119,7 +3122,7 @@ function NavMobileLink({
|
|
|
3119
3122
|
lucideReact.ChevronDown,
|
|
3120
3123
|
{
|
|
3121
3124
|
className: cn(
|
|
3122
|
-
"h-4 w-4 opacity-
|
|
3125
|
+
"h-4 w-4 opacity-50 transition-transform",
|
|
3123
3126
|
open && "rotate-180"
|
|
3124
3127
|
),
|
|
3125
3128
|
"aria-hidden": "true"
|
|
@@ -3146,8 +3149,7 @@ var PublicNavbar = React50__namespace.forwardRef(
|
|
|
3146
3149
|
const [scrolled, setScrolled] = React50__namespace.useState(false);
|
|
3147
3150
|
const [sheetOpen, setSheetOpen] = React50__namespace.useState(false);
|
|
3148
3151
|
React50__namespace.useEffect(() => {
|
|
3149
|
-
|
|
3150
|
-
const handler = () => setScrolled(window.scrollY > transparentThreshold);
|
|
3152
|
+
const handler = () => setScrolled(window.scrollY > (transparent ? transparentThreshold : 10));
|
|
3151
3153
|
window.addEventListener("scroll", handler, { passive: true });
|
|
3152
3154
|
handler();
|
|
3153
3155
|
return () => window.removeEventListener("scroll", handler);
|
|
@@ -3162,41 +3164,52 @@ var PublicNavbar = React50__namespace.forwardRef(
|
|
|
3162
3164
|
{
|
|
3163
3165
|
ref,
|
|
3164
3166
|
className: cn(
|
|
3165
|
-
"z-50 w-full transition-all duration-
|
|
3167
|
+
"z-50 w-full transition-all duration-300",
|
|
3166
3168
|
sticky && "sticky top-0",
|
|
3167
|
-
isTransparent ? "bg-transparent" :
|
|
3169
|
+
isTransparent ? "bg-transparent" : cn(
|
|
3170
|
+
"border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
|
3171
|
+
scrolled && "shadow-sm"
|
|
3172
|
+
),
|
|
3168
3173
|
className
|
|
3169
3174
|
),
|
|
3170
3175
|
...props,
|
|
3171
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Container, { size: containerSize, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
) }),
|
|
3187
|
-
/* @__PURE__ */ jsxRuntime.jsxs(SheetContent, { side: "left", className: "flex flex-col", children: [
|
|
3188
|
-
/* @__PURE__ */ jsxRuntime.jsx(SheetHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(SheetTitle, { children: mobileMenuTitle }) }),
|
|
3189
|
-
links && links.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "mt-4 flex-1", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-1", children: links.map((link) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3190
|
-
NavMobileLink,
|
|
3176
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Container, { size: containerSize, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid h-16 grid-cols-[auto_1fr_auto] items-center gap-4", children: [
|
|
3177
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: logo }),
|
|
3178
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3179
|
+
"nav",
|
|
3180
|
+
{
|
|
3181
|
+
className: "hidden items-center justify-center gap-0.5 md:flex",
|
|
3182
|
+
"aria-label": "Main navigation",
|
|
3183
|
+
children: (links ?? []).map((link) => /* @__PURE__ */ jsxRuntime.jsx(NavDesktopLink, { link }, link.label))
|
|
3184
|
+
}
|
|
3185
|
+
),
|
|
3186
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3187
|
+
cta && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden items-center gap-3 md:flex", children: cta }),
|
|
3188
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "md:hidden", children: /* @__PURE__ */ jsxRuntime.jsxs(Sheet, { open: sheetOpen, onOpenChange: handleSheetOpen, children: [
|
|
3189
|
+
/* @__PURE__ */ jsxRuntime.jsx(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3190
|
+
Button,
|
|
3191
3191
|
{
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3199
|
-
|
|
3192
|
+
variant: "ghost",
|
|
3193
|
+
size: "icon",
|
|
3194
|
+
"aria-label": "M\u1EDF menu",
|
|
3195
|
+
className: "h-9 w-9",
|
|
3196
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Menu, { className: "h-5 w-5", "aria-hidden": "true" })
|
|
3197
|
+
}
|
|
3198
|
+
) }),
|
|
3199
|
+
/* @__PURE__ */ jsxRuntime.jsxs(SheetContent, { side: "right", className: "flex flex-col w-72", children: [
|
|
3200
|
+
/* @__PURE__ */ jsxRuntime.jsx(SheetHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(SheetTitle, { children: mobileMenuTitle }) }),
|
|
3201
|
+
links && links.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "mt-4 flex-1", "aria-label": "Mobile navigation", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-0.5", children: links.map((link) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3202
|
+
NavMobileLink,
|
|
3203
|
+
{
|
|
3204
|
+
link,
|
|
3205
|
+
onClose: () => handleSheetOpen(false)
|
|
3206
|
+
},
|
|
3207
|
+
link.label
|
|
3208
|
+
)) }) }),
|
|
3209
|
+
cta && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto border-t pt-4", children: cta })
|
|
3210
|
+
] })
|
|
3211
|
+
] }) })
|
|
3212
|
+
] })
|
|
3200
3213
|
] }) })
|
|
3201
3214
|
}
|
|
3202
3215
|
);
|
|
@@ -3230,31 +3243,40 @@ var PublicFooter = React50__namespace.forwardRef(
|
|
|
3230
3243
|
ref,
|
|
3231
3244
|
className: cn("border-t bg-background", className),
|
|
3232
3245
|
...props,
|
|
3233
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { size: containerSize, className: "py-
|
|
3234
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "
|
|
3235
|
-
(logo || tagline) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex
|
|
3246
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { size: containerSize, className: "py-14", children: [
|
|
3247
|
+
(logo || tagline || linkGroups && linkGroups.length > 0) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-10 md:grid-cols-[2fr_3fr] md:gap-16", children: [
|
|
3248
|
+
(logo || tagline) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
3236
3249
|
logo,
|
|
3237
|
-
tagline && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: tagline })
|
|
3250
|
+
tagline && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "max-w-xs text-sm leading-relaxed text-muted-foreground", children: tagline })
|
|
3238
3251
|
] }),
|
|
3239
|
-
linkGroups && linkGroups.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3240
|
-
|
|
3241
|
-
|
|
3242
|
-
|
|
3243
|
-
|
|
3244
|
-
|
|
3245
|
-
|
|
3246
|
-
|
|
3247
|
-
className: "text-sm
|
|
3248
|
-
children: link.
|
|
3249
|
-
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
|
+
linkGroups && linkGroups.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3253
|
+
"div",
|
|
3254
|
+
{
|
|
3255
|
+
className: cn(
|
|
3256
|
+
"grid gap-8",
|
|
3257
|
+
linkGroups.length === 1 ? "grid-cols-1" : linkGroups.length === 2 ? "grid-cols-2" : "grid-cols-2 sm:grid-cols-3"
|
|
3258
|
+
),
|
|
3259
|
+
children: linkGroups.map((group) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-3", children: [
|
|
3260
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold tracking-wide", children: group.heading }),
|
|
3261
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-2", children: group.links.map((link) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3262
|
+
"a",
|
|
3263
|
+
{
|
|
3264
|
+
href: link.href,
|
|
3265
|
+
target: link.external ? "_blank" : void 0,
|
|
3266
|
+
rel: link.external ? "noopener noreferrer" : void 0,
|
|
3267
|
+
className: "text-sm text-muted-foreground transition-colors hover:text-foreground",
|
|
3268
|
+
children: link.label
|
|
3269
|
+
}
|
|
3270
|
+
) }, link.href)) })
|
|
3271
|
+
] }, group.heading))
|
|
3272
|
+
}
|
|
3273
|
+
)
|
|
3252
3274
|
] }),
|
|
3253
|
-
newsletter && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-10", children: newsletter }),
|
|
3275
|
+
newsletter && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn((logo || tagline || linkGroups?.length) && "mt-10"), children: newsletter }),
|
|
3254
3276
|
/* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "my-8" }),
|
|
3255
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-
|
|
3277
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col-reverse gap-4 sm:flex-row sm:items-center sm:justify-between", children: [
|
|
3256
3278
|
copyright && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: copyright }),
|
|
3257
|
-
socialLinks && socialLinks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-
|
|
3279
|
+
socialLinks && socialLinks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-1", children: socialLinks.map((social) => {
|
|
3258
3280
|
const Icon2 = socialIconMap[social.platform];
|
|
3259
3281
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3260
3282
|
"a",
|
|
@@ -3263,7 +3285,7 @@ var PublicFooter = React50__namespace.forwardRef(
|
|
|
3263
3285
|
target: "_blank",
|
|
3264
3286
|
rel: "noopener noreferrer",
|
|
3265
3287
|
"aria-label": social.label ?? social.platform,
|
|
3266
|
-
className: "flex h-
|
|
3288
|
+
className: "flex h-9 w-9 items-center justify-center rounded-full text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground",
|
|
3267
3289
|
children: /* @__PURE__ */ jsxRuntime.jsx(Icon2, { className: "h-4 w-4", "aria-hidden": "true" })
|
|
3268
3290
|
},
|
|
3269
3291
|
social.platform
|