@opensite/ui 0.9.1 → 0.9.4
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/link-page-bento-layout.cjs +56 -15
- package/dist/link-page-bento-layout.js +56 -15
- package/dist/link-tree-block.cjs +2 -87
- package/dist/link-tree-block.js +2 -87
- package/dist/navbar-animated-preview.cjs +1 -1
- package/dist/navbar-animated-preview.js +1 -1
- package/dist/navbar-centered-menu.cjs +1 -1
- package/dist/navbar-centered-menu.js +1 -1
- package/dist/navbar-dark-icons.cjs +1 -1
- package/dist/navbar-dark-icons.js +1 -1
- package/dist/navbar-dropdown-menu.cjs +1 -1
- package/dist/navbar-dropdown-menu.js +1 -1
- package/dist/navbar-education-platform.cjs +1 -1
- package/dist/navbar-education-platform.js +1 -1
- package/dist/navbar-enterprise-mega.cjs +11 -9
- package/dist/navbar-enterprise-mega.js +11 -9
- package/dist/navbar-feature-grid.cjs +1 -1
- package/dist/navbar-feature-grid.js +1 -1
- package/dist/navbar-floating-pill.cjs +1 -1
- package/dist/navbar-floating-pill.js +1 -1
- package/dist/navbar-fullscreen-menu.cjs +1 -1
- package/dist/navbar-fullscreen-menu.js +1 -1
- package/dist/navbar-icon-links.cjs +1 -1
- package/dist/navbar-icon-links.js +1 -1
- package/dist/navbar-image-preview.cjs +1 -1
- package/dist/navbar-image-preview.js +1 -1
- package/dist/navbar-mega-menu.cjs +17 -5
- package/dist/navbar-mega-menu.js +17 -5
- package/dist/navbar-multi-column-groups.cjs +1 -1
- package/dist/navbar-multi-column-groups.js +1 -1
- package/dist/navbar-platform-resources.cjs +1 -1
- package/dist/navbar-platform-resources.js +1 -1
- package/dist/navbar-search-focused.cjs +1 -1
- package/dist/navbar-search-focused.js +1 -1
- package/dist/navbar-sidebar-mobile.cjs +1 -1
- package/dist/navbar-sidebar-mobile.js +1 -1
- package/dist/navbar-simple-links.cjs +1 -1
- package/dist/navbar-simple-links.js +1 -1
- package/dist/navbar-split-cta.cjs +1 -1
- package/dist/navbar-split-cta.js +1 -1
- package/dist/navbar-sticky-compact.cjs +1 -1
- package/dist/navbar-sticky-compact.js +1 -1
- package/dist/navbar-tabbed-sections.cjs +1 -1
- package/dist/navbar-tabbed-sections.js +1 -1
- package/dist/navbar-transparent-overlay.cjs +1 -1
- package/dist/navbar-transparent-overlay.js +1 -1
- package/dist/registry.cjs +85 -37
- package/dist/registry.js +85 -37
- package/package.json +1 -1
|
@@ -1074,7 +1074,14 @@ function LinkPageBentoLayout({
|
|
|
1074
1074
|
social.id ?? index
|
|
1075
1075
|
);
|
|
1076
1076
|
}) });
|
|
1077
|
-
}, [
|
|
1077
|
+
}, [
|
|
1078
|
+
socialLinksSlot,
|
|
1079
|
+
socialLinks,
|
|
1080
|
+
socialLinksClassName,
|
|
1081
|
+
socialIconClassName,
|
|
1082
|
+
resolvedBackground,
|
|
1083
|
+
socialLinkClassName
|
|
1084
|
+
]);
|
|
1078
1085
|
const renderFeaturedLinks = React.useMemo(() => {
|
|
1079
1086
|
if (featuredLinksSlot) return featuredLinksSlot;
|
|
1080
1087
|
if (!featuredLinks || featuredLinks.length === 0) return null;
|
|
@@ -1183,7 +1190,18 @@ function LinkPageBentoLayout({
|
|
|
1183
1190
|
link.id ?? index
|
|
1184
1191
|
);
|
|
1185
1192
|
});
|
|
1186
|
-
}, [
|
|
1193
|
+
}, [
|
|
1194
|
+
featuredLinksSlot,
|
|
1195
|
+
featuredLinks,
|
|
1196
|
+
resolvedBackground,
|
|
1197
|
+
featuredLinkClassName,
|
|
1198
|
+
featuredLinkImageClassName,
|
|
1199
|
+
optixFlowConfig,
|
|
1200
|
+
featuredLinkOverlayClassName,
|
|
1201
|
+
featuredLinkIconClassName,
|
|
1202
|
+
featuredLinkLabelClassName,
|
|
1203
|
+
featuredLinkDescriptionClassName
|
|
1204
|
+
]);
|
|
1187
1205
|
const renderRegularLinks = React.useMemo(() => {
|
|
1188
1206
|
if (regularLinksSlot) return regularLinksSlot;
|
|
1189
1207
|
if (!regularLinks || regularLinks.length === 0) return null;
|
|
@@ -1260,7 +1278,15 @@ function LinkPageBentoLayout({
|
|
|
1260
1278
|
link.id ?? index
|
|
1261
1279
|
);
|
|
1262
1280
|
});
|
|
1263
|
-
}, [
|
|
1281
|
+
}, [
|
|
1282
|
+
regularLinksSlot,
|
|
1283
|
+
regularLinks,
|
|
1284
|
+
resolvedBackground,
|
|
1285
|
+
regularLinkClassName,
|
|
1286
|
+
regularLinkIconWrapperClassName,
|
|
1287
|
+
regularLinkIconClassName,
|
|
1288
|
+
regularLinkLabelClassName
|
|
1289
|
+
]);
|
|
1264
1290
|
const renderLinks = React.useMemo(() => {
|
|
1265
1291
|
if (linksSlot) return linksSlot;
|
|
1266
1292
|
if (!links || links.length === 0) return null;
|
|
@@ -1270,7 +1296,19 @@ function LinkPageBentoLayout({
|
|
|
1270
1296
|
hasFeatured && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid grid-cols-2 gap-3", featuredLinksClassName), children: renderFeaturedLinks }),
|
|
1271
1297
|
hasRegular && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid grid-cols-2 gap-3", regularLinksClassName), children: renderRegularLinks })
|
|
1272
1298
|
] });
|
|
1273
|
-
}, [
|
|
1299
|
+
}, [
|
|
1300
|
+
linksSlot,
|
|
1301
|
+
links,
|
|
1302
|
+
linksClassName,
|
|
1303
|
+
featuredLinksSlot,
|
|
1304
|
+
featuredLinks,
|
|
1305
|
+
featuredLinksClassName,
|
|
1306
|
+
renderFeaturedLinks,
|
|
1307
|
+
regularLinksSlot,
|
|
1308
|
+
regularLinks,
|
|
1309
|
+
regularLinksClassName,
|
|
1310
|
+
renderRegularLinks
|
|
1311
|
+
]);
|
|
1274
1312
|
const renderProfile = React.useMemo(() => {
|
|
1275
1313
|
if (profileSlot) return profileSlot;
|
|
1276
1314
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -1300,16 +1338,7 @@ function LinkPageBentoLayout({
|
|
|
1300
1338
|
}
|
|
1301
1339
|
),
|
|
1302
1340
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
|
|
1303
|
-
name && (typeof name === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1304
|
-
"h1",
|
|
1305
|
-
{
|
|
1306
|
-
className: cn(
|
|
1307
|
-
"text-xl font-bold",
|
|
1308
|
-
nameClassName
|
|
1309
|
-
),
|
|
1310
|
-
children: name
|
|
1311
|
-
}
|
|
1312
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: nameClassName, children: name })),
|
|
1341
|
+
name && (typeof name === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-xl font-bold", nameClassName), children: name }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: nameClassName, children: name })),
|
|
1313
1342
|
bio && (typeof bio === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1314
1343
|
"p",
|
|
1315
1344
|
{
|
|
@@ -1326,7 +1355,19 @@ function LinkPageBentoLayout({
|
|
|
1326
1355
|
]
|
|
1327
1356
|
}
|
|
1328
1357
|
);
|
|
1329
|
-
}, [
|
|
1358
|
+
}, [
|
|
1359
|
+
profileSlot,
|
|
1360
|
+
resolvedAvatar,
|
|
1361
|
+
resolvedBackground,
|
|
1362
|
+
avatarClassName,
|
|
1363
|
+
optixFlowConfig,
|
|
1364
|
+
name,
|
|
1365
|
+
nameClassName,
|
|
1366
|
+
bio,
|
|
1367
|
+
bioClassName,
|
|
1368
|
+
renderSocialLinks,
|
|
1369
|
+
headerClassName
|
|
1370
|
+
]);
|
|
1330
1371
|
const renderFooter = React.useMemo(() => {
|
|
1331
1372
|
if (footerSlot) return footerSlot;
|
|
1332
1373
|
if (!footerAction) return null;
|
|
@@ -1053,7 +1053,14 @@ function LinkPageBentoLayout({
|
|
|
1053
1053
|
social.id ?? index
|
|
1054
1054
|
);
|
|
1055
1055
|
}) });
|
|
1056
|
-
}, [
|
|
1056
|
+
}, [
|
|
1057
|
+
socialLinksSlot,
|
|
1058
|
+
socialLinks,
|
|
1059
|
+
socialLinksClassName,
|
|
1060
|
+
socialIconClassName,
|
|
1061
|
+
resolvedBackground,
|
|
1062
|
+
socialLinkClassName
|
|
1063
|
+
]);
|
|
1057
1064
|
const renderFeaturedLinks = useMemo(() => {
|
|
1058
1065
|
if (featuredLinksSlot) return featuredLinksSlot;
|
|
1059
1066
|
if (!featuredLinks || featuredLinks.length === 0) return null;
|
|
@@ -1162,7 +1169,18 @@ function LinkPageBentoLayout({
|
|
|
1162
1169
|
link.id ?? index
|
|
1163
1170
|
);
|
|
1164
1171
|
});
|
|
1165
|
-
}, [
|
|
1172
|
+
}, [
|
|
1173
|
+
featuredLinksSlot,
|
|
1174
|
+
featuredLinks,
|
|
1175
|
+
resolvedBackground,
|
|
1176
|
+
featuredLinkClassName,
|
|
1177
|
+
featuredLinkImageClassName,
|
|
1178
|
+
optixFlowConfig,
|
|
1179
|
+
featuredLinkOverlayClassName,
|
|
1180
|
+
featuredLinkIconClassName,
|
|
1181
|
+
featuredLinkLabelClassName,
|
|
1182
|
+
featuredLinkDescriptionClassName
|
|
1183
|
+
]);
|
|
1166
1184
|
const renderRegularLinks = useMemo(() => {
|
|
1167
1185
|
if (regularLinksSlot) return regularLinksSlot;
|
|
1168
1186
|
if (!regularLinks || regularLinks.length === 0) return null;
|
|
@@ -1239,7 +1257,15 @@ function LinkPageBentoLayout({
|
|
|
1239
1257
|
link.id ?? index
|
|
1240
1258
|
);
|
|
1241
1259
|
});
|
|
1242
|
-
}, [
|
|
1260
|
+
}, [
|
|
1261
|
+
regularLinksSlot,
|
|
1262
|
+
regularLinks,
|
|
1263
|
+
resolvedBackground,
|
|
1264
|
+
regularLinkClassName,
|
|
1265
|
+
regularLinkIconWrapperClassName,
|
|
1266
|
+
regularLinkIconClassName,
|
|
1267
|
+
regularLinkLabelClassName
|
|
1268
|
+
]);
|
|
1243
1269
|
const renderLinks = useMemo(() => {
|
|
1244
1270
|
if (linksSlot) return linksSlot;
|
|
1245
1271
|
if (!links || links.length === 0) return null;
|
|
@@ -1249,7 +1275,19 @@ function LinkPageBentoLayout({
|
|
|
1249
1275
|
hasFeatured && /* @__PURE__ */ jsx("div", { className: cn("grid grid-cols-2 gap-3", featuredLinksClassName), children: renderFeaturedLinks }),
|
|
1250
1276
|
hasRegular && /* @__PURE__ */ jsx("div", { className: cn("grid grid-cols-2 gap-3", regularLinksClassName), children: renderRegularLinks })
|
|
1251
1277
|
] });
|
|
1252
|
-
}, [
|
|
1278
|
+
}, [
|
|
1279
|
+
linksSlot,
|
|
1280
|
+
links,
|
|
1281
|
+
linksClassName,
|
|
1282
|
+
featuredLinksSlot,
|
|
1283
|
+
featuredLinks,
|
|
1284
|
+
featuredLinksClassName,
|
|
1285
|
+
renderFeaturedLinks,
|
|
1286
|
+
regularLinksSlot,
|
|
1287
|
+
regularLinks,
|
|
1288
|
+
regularLinksClassName,
|
|
1289
|
+
renderRegularLinks
|
|
1290
|
+
]);
|
|
1253
1291
|
const renderProfile = useMemo(() => {
|
|
1254
1292
|
if (profileSlot) return profileSlot;
|
|
1255
1293
|
return /* @__PURE__ */ jsxs(
|
|
@@ -1279,16 +1317,7 @@ function LinkPageBentoLayout({
|
|
|
1279
1317
|
}
|
|
1280
1318
|
),
|
|
1281
1319
|
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
1282
|
-
name && (typeof name === "string" ? /* @__PURE__ */ jsx(
|
|
1283
|
-
"h1",
|
|
1284
|
-
{
|
|
1285
|
-
className: cn(
|
|
1286
|
-
"text-xl font-bold",
|
|
1287
|
-
nameClassName
|
|
1288
|
-
),
|
|
1289
|
-
children: name
|
|
1290
|
-
}
|
|
1291
|
-
) : /* @__PURE__ */ jsx("div", { className: nameClassName, children: name })),
|
|
1320
|
+
name && (typeof name === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-xl font-bold", nameClassName), children: name }) : /* @__PURE__ */ jsx("div", { className: nameClassName, children: name })),
|
|
1292
1321
|
bio && (typeof bio === "string" ? /* @__PURE__ */ jsx(
|
|
1293
1322
|
"p",
|
|
1294
1323
|
{
|
|
@@ -1305,7 +1334,19 @@ function LinkPageBentoLayout({
|
|
|
1305
1334
|
]
|
|
1306
1335
|
}
|
|
1307
1336
|
);
|
|
1308
|
-
}, [
|
|
1337
|
+
}, [
|
|
1338
|
+
profileSlot,
|
|
1339
|
+
resolvedAvatar,
|
|
1340
|
+
resolvedBackground,
|
|
1341
|
+
avatarClassName,
|
|
1342
|
+
optixFlowConfig,
|
|
1343
|
+
name,
|
|
1344
|
+
nameClassName,
|
|
1345
|
+
bio,
|
|
1346
|
+
bioClassName,
|
|
1347
|
+
renderSocialLinks,
|
|
1348
|
+
headerClassName
|
|
1349
|
+
]);
|
|
1309
1350
|
const renderFooter = useMemo(() => {
|
|
1310
1351
|
if (footerSlot) return footerSlot;
|
|
1311
1352
|
if (!footerAction) return null;
|
package/dist/link-tree-block.cjs
CHANGED
|
@@ -34,84 +34,6 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
|
34
34
|
function cn(...inputs) {
|
|
35
35
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
36
36
|
}
|
|
37
|
-
function getNestedCardBg(parentBg, variant = "muted", options) {
|
|
38
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
39
|
-
if (isDark) {
|
|
40
|
-
switch (variant) {
|
|
41
|
-
case "muted":
|
|
42
|
-
return "bg-background";
|
|
43
|
-
case "card":
|
|
44
|
-
return "bg-card";
|
|
45
|
-
case "accent":
|
|
46
|
-
return "bg-accent";
|
|
47
|
-
case "subtle":
|
|
48
|
-
return "bg-background/50";
|
|
49
|
-
}
|
|
50
|
-
} else {
|
|
51
|
-
switch (variant) {
|
|
52
|
-
case "muted":
|
|
53
|
-
return "bg-muted";
|
|
54
|
-
case "card":
|
|
55
|
-
return "bg-card";
|
|
56
|
-
case "accent":
|
|
57
|
-
return "bg-accent";
|
|
58
|
-
case "subtle":
|
|
59
|
-
return "bg-muted/50";
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
function getNestedCardTextColor(parentBg, options) {
|
|
64
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
65
|
-
return isDark ? "text-foreground" : "";
|
|
66
|
-
}
|
|
67
|
-
function getTextColor(parentBg, variant = "default", options) {
|
|
68
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
69
|
-
if (isDark) {
|
|
70
|
-
switch (variant) {
|
|
71
|
-
case "default":
|
|
72
|
-
return "text-foreground";
|
|
73
|
-
case "muted":
|
|
74
|
-
return "text-foreground/80";
|
|
75
|
-
case "subtle":
|
|
76
|
-
return "text-foreground/60";
|
|
77
|
-
case "accent":
|
|
78
|
-
return "text-accent-foreground";
|
|
79
|
-
}
|
|
80
|
-
} else {
|
|
81
|
-
switch (variant) {
|
|
82
|
-
case "default":
|
|
83
|
-
return "text-foreground";
|
|
84
|
-
case "muted":
|
|
85
|
-
return "text-muted-foreground";
|
|
86
|
-
case "subtle":
|
|
87
|
-
return "text-muted-foreground/70";
|
|
88
|
-
case "accent":
|
|
89
|
-
return "text-primary";
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
function getBorderColor(parentBg, variant = "default", options) {
|
|
94
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
95
|
-
if (isDark) {
|
|
96
|
-
switch (variant) {
|
|
97
|
-
case "default":
|
|
98
|
-
return "border-foreground/20";
|
|
99
|
-
case "muted":
|
|
100
|
-
return "border-foreground/10";
|
|
101
|
-
case "accent":
|
|
102
|
-
return "border-accent-foreground";
|
|
103
|
-
}
|
|
104
|
-
} else {
|
|
105
|
-
switch (variant) {
|
|
106
|
-
case "default":
|
|
107
|
-
return "border-border";
|
|
108
|
-
case "muted":
|
|
109
|
-
return "border-muted";
|
|
110
|
-
case "accent":
|
|
111
|
-
return "border-primary";
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
37
|
function normalizePhoneNumber(input) {
|
|
116
38
|
const trimmed = input.trim();
|
|
117
39
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -1196,7 +1118,6 @@ function LinkTreeBlock({
|
|
|
1196
1118
|
{
|
|
1197
1119
|
className: cn(
|
|
1198
1120
|
"max-w-xs text-balance text-sm",
|
|
1199
|
-
getTextColor(resolvedBackground, "muted"),
|
|
1200
1121
|
taglineClassName
|
|
1201
1122
|
),
|
|
1202
1123
|
children: brandTagline
|
|
@@ -1217,7 +1138,6 @@ function LinkTreeBlock({
|
|
|
1217
1138
|
verifiedIcon,
|
|
1218
1139
|
verifiedIconClassName,
|
|
1219
1140
|
brandName,
|
|
1220
|
-
resolvedBackground,
|
|
1221
1141
|
nameClassName,
|
|
1222
1142
|
brandTagline,
|
|
1223
1143
|
taglineClassName
|
|
@@ -1295,7 +1215,7 @@ function LinkTreeBlock({
|
|
|
1295
1215
|
{
|
|
1296
1216
|
className: cn(
|
|
1297
1217
|
"mt-0.5 block truncate text-xs",
|
|
1298
|
-
isFeatured ? "text-primary-foreground/70" :
|
|
1218
|
+
isFeatured ? "text-primary-foreground/70" : "",
|
|
1299
1219
|
linkDescriptionClassName
|
|
1300
1220
|
),
|
|
1301
1221
|
children: description
|
|
@@ -1317,7 +1237,7 @@ function LinkTreeBlock({
|
|
|
1317
1237
|
size: 16,
|
|
1318
1238
|
className: cn(
|
|
1319
1239
|
"shrink-0 transition-transform group-hover:translate-x-0.5",
|
|
1320
|
-
isFeatured ? "text-primary-foreground/70" :
|
|
1240
|
+
isFeatured ? "text-primary-foreground/70" : "",
|
|
1321
1241
|
linkChevronClassName
|
|
1322
1242
|
)
|
|
1323
1243
|
}
|
|
@@ -1332,7 +1252,6 @@ function LinkTreeBlock({
|
|
|
1332
1252
|
links,
|
|
1333
1253
|
linksClassName,
|
|
1334
1254
|
linkIconClassName,
|
|
1335
|
-
resolvedBackground,
|
|
1336
1255
|
linkClassName,
|
|
1337
1256
|
featuredLinkClassName,
|
|
1338
1257
|
linkLabelClassName,
|
|
@@ -1366,7 +1285,6 @@ function LinkTreeBlock({
|
|
|
1366
1285
|
"group relative aspect-square overflow-hidden rounded-lg cursor-pointer",
|
|
1367
1286
|
"transition-all duration-200 hover:scale-[1.02]",
|
|
1368
1287
|
"ring-1",
|
|
1369
|
-
getBorderColor(resolvedBackground, "muted"),
|
|
1370
1288
|
mediaGalleryItemClassName,
|
|
1371
1289
|
item.className
|
|
1372
1290
|
),
|
|
@@ -1484,8 +1402,6 @@ function LinkTreeBlock({
|
|
|
1484
1402
|
className: cn(
|
|
1485
1403
|
"flex h-12 w-12 items-center justify-center rounded-full p-2.5 transition-all duration-200",
|
|
1486
1404
|
"hover:scale-110 active:scale-95",
|
|
1487
|
-
getNestedCardBg(resolvedBackground),
|
|
1488
|
-
getNestedCardTextColor(resolvedBackground),
|
|
1489
1405
|
socialLinkClassName,
|
|
1490
1406
|
social.className
|
|
1491
1407
|
),
|
|
@@ -1501,7 +1417,6 @@ function LinkTreeBlock({
|
|
|
1501
1417
|
socialLinks,
|
|
1502
1418
|
socialLinksClassName,
|
|
1503
1419
|
socialIconClassName,
|
|
1504
|
-
resolvedBackground,
|
|
1505
1420
|
socialLinkClassName
|
|
1506
1421
|
]);
|
|
1507
1422
|
const renderFooter = React.useMemo(() => {
|
package/dist/link-tree-block.js
CHANGED
|
@@ -13,84 +13,6 @@ import { Lightbox } from '@page-speed/lightbox';
|
|
|
13
13
|
function cn(...inputs) {
|
|
14
14
|
return twMerge(clsx(inputs));
|
|
15
15
|
}
|
|
16
|
-
function getNestedCardBg(parentBg, variant = "muted", options) {
|
|
17
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
18
|
-
if (isDark) {
|
|
19
|
-
switch (variant) {
|
|
20
|
-
case "muted":
|
|
21
|
-
return "bg-background";
|
|
22
|
-
case "card":
|
|
23
|
-
return "bg-card";
|
|
24
|
-
case "accent":
|
|
25
|
-
return "bg-accent";
|
|
26
|
-
case "subtle":
|
|
27
|
-
return "bg-background/50";
|
|
28
|
-
}
|
|
29
|
-
} else {
|
|
30
|
-
switch (variant) {
|
|
31
|
-
case "muted":
|
|
32
|
-
return "bg-muted";
|
|
33
|
-
case "card":
|
|
34
|
-
return "bg-card";
|
|
35
|
-
case "accent":
|
|
36
|
-
return "bg-accent";
|
|
37
|
-
case "subtle":
|
|
38
|
-
return "bg-muted/50";
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
function getNestedCardTextColor(parentBg, options) {
|
|
43
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
44
|
-
return isDark ? "text-foreground" : "";
|
|
45
|
-
}
|
|
46
|
-
function getTextColor(parentBg, variant = "default", options) {
|
|
47
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
48
|
-
if (isDark) {
|
|
49
|
-
switch (variant) {
|
|
50
|
-
case "default":
|
|
51
|
-
return "text-foreground";
|
|
52
|
-
case "muted":
|
|
53
|
-
return "text-foreground/80";
|
|
54
|
-
case "subtle":
|
|
55
|
-
return "text-foreground/60";
|
|
56
|
-
case "accent":
|
|
57
|
-
return "text-accent-foreground";
|
|
58
|
-
}
|
|
59
|
-
} else {
|
|
60
|
-
switch (variant) {
|
|
61
|
-
case "default":
|
|
62
|
-
return "text-foreground";
|
|
63
|
-
case "muted":
|
|
64
|
-
return "text-muted-foreground";
|
|
65
|
-
case "subtle":
|
|
66
|
-
return "text-muted-foreground/70";
|
|
67
|
-
case "accent":
|
|
68
|
-
return "text-primary";
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
function getBorderColor(parentBg, variant = "default", options) {
|
|
73
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
74
|
-
if (isDark) {
|
|
75
|
-
switch (variant) {
|
|
76
|
-
case "default":
|
|
77
|
-
return "border-foreground/20";
|
|
78
|
-
case "muted":
|
|
79
|
-
return "border-foreground/10";
|
|
80
|
-
case "accent":
|
|
81
|
-
return "border-accent-foreground";
|
|
82
|
-
}
|
|
83
|
-
} else {
|
|
84
|
-
switch (variant) {
|
|
85
|
-
case "default":
|
|
86
|
-
return "border-border";
|
|
87
|
-
case "muted":
|
|
88
|
-
return "border-muted";
|
|
89
|
-
case "accent":
|
|
90
|
-
return "border-primary";
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
16
|
function normalizePhoneNumber(input) {
|
|
95
17
|
const trimmed = input.trim();
|
|
96
18
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -1175,7 +1097,6 @@ function LinkTreeBlock({
|
|
|
1175
1097
|
{
|
|
1176
1098
|
className: cn(
|
|
1177
1099
|
"max-w-xs text-balance text-sm",
|
|
1178
|
-
getTextColor(resolvedBackground, "muted"),
|
|
1179
1100
|
taglineClassName
|
|
1180
1101
|
),
|
|
1181
1102
|
children: brandTagline
|
|
@@ -1196,7 +1117,6 @@ function LinkTreeBlock({
|
|
|
1196
1117
|
verifiedIcon,
|
|
1197
1118
|
verifiedIconClassName,
|
|
1198
1119
|
brandName,
|
|
1199
|
-
resolvedBackground,
|
|
1200
1120
|
nameClassName,
|
|
1201
1121
|
brandTagline,
|
|
1202
1122
|
taglineClassName
|
|
@@ -1274,7 +1194,7 @@ function LinkTreeBlock({
|
|
|
1274
1194
|
{
|
|
1275
1195
|
className: cn(
|
|
1276
1196
|
"mt-0.5 block truncate text-xs",
|
|
1277
|
-
isFeatured ? "text-primary-foreground/70" :
|
|
1197
|
+
isFeatured ? "text-primary-foreground/70" : "",
|
|
1278
1198
|
linkDescriptionClassName
|
|
1279
1199
|
),
|
|
1280
1200
|
children: description
|
|
@@ -1296,7 +1216,7 @@ function LinkTreeBlock({
|
|
|
1296
1216
|
size: 16,
|
|
1297
1217
|
className: cn(
|
|
1298
1218
|
"shrink-0 transition-transform group-hover:translate-x-0.5",
|
|
1299
|
-
isFeatured ? "text-primary-foreground/70" :
|
|
1219
|
+
isFeatured ? "text-primary-foreground/70" : "",
|
|
1300
1220
|
linkChevronClassName
|
|
1301
1221
|
)
|
|
1302
1222
|
}
|
|
@@ -1311,7 +1231,6 @@ function LinkTreeBlock({
|
|
|
1311
1231
|
links,
|
|
1312
1232
|
linksClassName,
|
|
1313
1233
|
linkIconClassName,
|
|
1314
|
-
resolvedBackground,
|
|
1315
1234
|
linkClassName,
|
|
1316
1235
|
featuredLinkClassName,
|
|
1317
1236
|
linkLabelClassName,
|
|
@@ -1345,7 +1264,6 @@ function LinkTreeBlock({
|
|
|
1345
1264
|
"group relative aspect-square overflow-hidden rounded-lg cursor-pointer",
|
|
1346
1265
|
"transition-all duration-200 hover:scale-[1.02]",
|
|
1347
1266
|
"ring-1",
|
|
1348
|
-
getBorderColor(resolvedBackground, "muted"),
|
|
1349
1267
|
mediaGalleryItemClassName,
|
|
1350
1268
|
item.className
|
|
1351
1269
|
),
|
|
@@ -1463,8 +1381,6 @@ function LinkTreeBlock({
|
|
|
1463
1381
|
className: cn(
|
|
1464
1382
|
"flex h-12 w-12 items-center justify-center rounded-full p-2.5 transition-all duration-200",
|
|
1465
1383
|
"hover:scale-110 active:scale-95",
|
|
1466
|
-
getNestedCardBg(resolvedBackground),
|
|
1467
|
-
getNestedCardTextColor(resolvedBackground),
|
|
1468
1384
|
socialLinkClassName,
|
|
1469
1385
|
social.className
|
|
1470
1386
|
),
|
|
@@ -1480,7 +1396,6 @@ function LinkTreeBlock({
|
|
|
1480
1396
|
socialLinks,
|
|
1481
1397
|
socialLinksClassName,
|
|
1482
1398
|
socialIconClassName,
|
|
1483
|
-
resolvedBackground,
|
|
1484
1399
|
socialLinkClassName
|
|
1485
1400
|
]);
|
|
1486
1401
|
const renderFooter = useMemo(() => {
|
|
@@ -1418,7 +1418,7 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
|
|
|
1418
1418
|
// Navigation wrapper classes (for border and shadow)
|
|
1419
1419
|
navWrapperClasses: cn(
|
|
1420
1420
|
"w-full",
|
|
1421
|
-
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1421
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm flex justify-center"
|
|
1422
1422
|
),
|
|
1423
1423
|
// Section container configuration for full-width navbars
|
|
1424
1424
|
sectionContainerClassName: "px-0 sm:px-0 lg:px-0",
|
|
@@ -1392,7 +1392,7 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
|
|
|
1392
1392
|
// Navigation wrapper classes (for border and shadow)
|
|
1393
1393
|
navWrapperClasses: cn(
|
|
1394
1394
|
"w-full",
|
|
1395
|
-
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1395
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm flex justify-center"
|
|
1396
1396
|
),
|
|
1397
1397
|
// Section container configuration for full-width navbars
|
|
1398
1398
|
sectionContainerClassName: "px-0 sm:px-0 lg:px-0",
|
|
@@ -1202,7 +1202,7 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
|
|
|
1202
1202
|
// Navigation wrapper classes (for border and shadow)
|
|
1203
1203
|
navWrapperClasses: cn(
|
|
1204
1204
|
"w-full",
|
|
1205
|
-
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1205
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm flex justify-center"
|
|
1206
1206
|
),
|
|
1207
1207
|
// Section container configuration for full-width navbars
|
|
1208
1208
|
sectionContainerClassName: "px-0 sm:px-0 lg:px-0",
|
|
@@ -1178,7 +1178,7 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
|
|
|
1178
1178
|
// Navigation wrapper classes (for border and shadow)
|
|
1179
1179
|
navWrapperClasses: cn(
|
|
1180
1180
|
"w-full",
|
|
1181
|
-
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1181
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm flex justify-center"
|
|
1182
1182
|
),
|
|
1183
1183
|
// Section container configuration for full-width navbars
|
|
1184
1184
|
sectionContainerClassName: "px-0 sm:px-0 lg:px-0",
|
|
@@ -1234,7 +1234,7 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
|
|
|
1234
1234
|
// Navigation wrapper classes (for border and shadow)
|
|
1235
1235
|
navWrapperClasses: cn(
|
|
1236
1236
|
"w-full",
|
|
1237
|
-
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1237
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm flex justify-center"
|
|
1238
1238
|
),
|
|
1239
1239
|
// Section container configuration for full-width navbars
|
|
1240
1240
|
sectionContainerClassName: "px-0 sm:px-0 lg:px-0",
|
|
@@ -1210,7 +1210,7 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
|
|
|
1210
1210
|
// Navigation wrapper classes (for border and shadow)
|
|
1211
1211
|
navWrapperClasses: cn(
|
|
1212
1212
|
"w-full",
|
|
1213
|
-
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1213
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm flex justify-center"
|
|
1214
1214
|
),
|
|
1215
1215
|
// Section container configuration for full-width navbars
|
|
1216
1216
|
sectionContainerClassName: "px-0 sm:px-0 lg:px-0",
|
|
@@ -1249,7 +1249,7 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
|
|
|
1249
1249
|
// Navigation wrapper classes (for border and shadow)
|
|
1250
1250
|
navWrapperClasses: cn(
|
|
1251
1251
|
"w-full",
|
|
1252
|
-
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1252
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm flex justify-center"
|
|
1253
1253
|
),
|
|
1254
1254
|
// Section container configuration for full-width navbars
|
|
1255
1255
|
sectionContainerClassName: "px-0 sm:px-0 lg:px-0",
|
|
@@ -1225,7 +1225,7 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
|
|
|
1225
1225
|
// Navigation wrapper classes (for border and shadow)
|
|
1226
1226
|
navWrapperClasses: cn(
|
|
1227
1227
|
"w-full",
|
|
1228
|
-
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1228
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm flex justify-center"
|
|
1229
1229
|
),
|
|
1230
1230
|
// Section container configuration for full-width navbars
|
|
1231
1231
|
sectionContainerClassName: "px-0 sm:px-0 lg:px-0",
|
|
@@ -1302,7 +1302,7 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
|
|
|
1302
1302
|
// Navigation wrapper classes (for border and shadow)
|
|
1303
1303
|
navWrapperClasses: cn(
|
|
1304
1304
|
"w-full",
|
|
1305
|
-
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1305
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm flex justify-center"
|
|
1306
1306
|
),
|
|
1307
1307
|
// Section container configuration for full-width navbars
|
|
1308
1308
|
sectionContainerClassName: "px-0 sm:px-0 lg:px-0",
|
|
@@ -1278,7 +1278,7 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
|
|
|
1278
1278
|
// Navigation wrapper classes (for border and shadow)
|
|
1279
1279
|
navWrapperClasses: cn(
|
|
1280
1280
|
"w-full",
|
|
1281
|
-
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1281
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm flex justify-center"
|
|
1282
1282
|
),
|
|
1283
1283
|
// Section container configuration for full-width navbars
|
|
1284
1284
|
sectionContainerClassName: "px-0 sm:px-0 lg:px-0",
|