@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.
Files changed (49) hide show
  1. package/dist/link-page-bento-layout.cjs +56 -15
  2. package/dist/link-page-bento-layout.js +56 -15
  3. package/dist/link-tree-block.cjs +2 -87
  4. package/dist/link-tree-block.js +2 -87
  5. package/dist/navbar-animated-preview.cjs +1 -1
  6. package/dist/navbar-animated-preview.js +1 -1
  7. package/dist/navbar-centered-menu.cjs +1 -1
  8. package/dist/navbar-centered-menu.js +1 -1
  9. package/dist/navbar-dark-icons.cjs +1 -1
  10. package/dist/navbar-dark-icons.js +1 -1
  11. package/dist/navbar-dropdown-menu.cjs +1 -1
  12. package/dist/navbar-dropdown-menu.js +1 -1
  13. package/dist/navbar-education-platform.cjs +1 -1
  14. package/dist/navbar-education-platform.js +1 -1
  15. package/dist/navbar-enterprise-mega.cjs +11 -9
  16. package/dist/navbar-enterprise-mega.js +11 -9
  17. package/dist/navbar-feature-grid.cjs +1 -1
  18. package/dist/navbar-feature-grid.js +1 -1
  19. package/dist/navbar-floating-pill.cjs +1 -1
  20. package/dist/navbar-floating-pill.js +1 -1
  21. package/dist/navbar-fullscreen-menu.cjs +1 -1
  22. package/dist/navbar-fullscreen-menu.js +1 -1
  23. package/dist/navbar-icon-links.cjs +1 -1
  24. package/dist/navbar-icon-links.js +1 -1
  25. package/dist/navbar-image-preview.cjs +1 -1
  26. package/dist/navbar-image-preview.js +1 -1
  27. package/dist/navbar-mega-menu.cjs +17 -5
  28. package/dist/navbar-mega-menu.js +17 -5
  29. package/dist/navbar-multi-column-groups.cjs +1 -1
  30. package/dist/navbar-multi-column-groups.js +1 -1
  31. package/dist/navbar-platform-resources.cjs +1 -1
  32. package/dist/navbar-platform-resources.js +1 -1
  33. package/dist/navbar-search-focused.cjs +1 -1
  34. package/dist/navbar-search-focused.js +1 -1
  35. package/dist/navbar-sidebar-mobile.cjs +1 -1
  36. package/dist/navbar-sidebar-mobile.js +1 -1
  37. package/dist/navbar-simple-links.cjs +1 -1
  38. package/dist/navbar-simple-links.js +1 -1
  39. package/dist/navbar-split-cta.cjs +1 -1
  40. package/dist/navbar-split-cta.js +1 -1
  41. package/dist/navbar-sticky-compact.cjs +1 -1
  42. package/dist/navbar-sticky-compact.js +1 -1
  43. package/dist/navbar-tabbed-sections.cjs +1 -1
  44. package/dist/navbar-tabbed-sections.js +1 -1
  45. package/dist/navbar-transparent-overlay.cjs +1 -1
  46. package/dist/navbar-transparent-overlay.js +1 -1
  47. package/dist/registry.cjs +85 -37
  48. package/dist/registry.js +85 -37
  49. package/package.json +1 -1
@@ -1074,7 +1074,14 @@ function LinkPageBentoLayout({
1074
1074
  social.id ?? index
1075
1075
  );
1076
1076
  }) });
1077
- }, [socialLinksSlot, socialLinks, socialLinksClassName, socialIconClassName, resolvedBackground, socialLinkClassName]);
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
- }, [featuredLinksSlot, featuredLinks, resolvedBackground, featuredLinkClassName, featuredLinkImageClassName, optixFlowConfig, featuredLinkOverlayClassName, featuredLinkIconClassName, featuredLinkLabelClassName, featuredLinkDescriptionClassName]);
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
- }, [regularLinksSlot, regularLinks, resolvedBackground, regularLinkClassName, regularLinkIconWrapperClassName, regularLinkIconClassName, regularLinkLabelClassName]);
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
- }, [linksSlot, links, linksClassName, featuredLinksSlot, featuredLinks, featuredLinksClassName, renderFeaturedLinks, regularLinksSlot, regularLinks, regularLinksClassName, renderRegularLinks]);
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
- }, [profileSlot, resolvedAvatar, resolvedBackground, avatarClassName, optixFlowConfig, name, nameClassName, bio, bioClassName, renderSocialLinks, headerClassName]);
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
- }, [socialLinksSlot, socialLinks, socialLinksClassName, socialIconClassName, resolvedBackground, socialLinkClassName]);
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
- }, [featuredLinksSlot, featuredLinks, resolvedBackground, featuredLinkClassName, featuredLinkImageClassName, optixFlowConfig, featuredLinkOverlayClassName, featuredLinkIconClassName, featuredLinkLabelClassName, featuredLinkDescriptionClassName]);
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
- }, [regularLinksSlot, regularLinks, resolvedBackground, regularLinkClassName, regularLinkIconWrapperClassName, regularLinkIconClassName, regularLinkLabelClassName]);
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
- }, [linksSlot, links, linksClassName, featuredLinksSlot, featuredLinks, featuredLinksClassName, renderFeaturedLinks, regularLinksSlot, regularLinks, regularLinksClassName, renderRegularLinks]);
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
- }, [profileSlot, resolvedAvatar, resolvedBackground, avatarClassName, optixFlowConfig, name, nameClassName, bio, bioClassName, renderSocialLinks, headerClassName]);
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;
@@ -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" : getTextColor(resolvedBackground, "muted"),
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" : getTextColor(resolvedBackground, "muted"),
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(() => {
@@ -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" : getTextColor(resolvedBackground, "muted"),
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" : getTextColor(resolvedBackground, "muted"),
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",