@opensite/ui 2.4.7 → 2.4.9
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/about-developer-profile.cjs +1 -1
- package/dist/about-developer-profile.js +1 -1
- package/dist/about-stats-sidebar.cjs +5 -3
- package/dist/about-stats-sidebar.js +5 -3
- package/dist/about-story-hero.cjs +119 -105
- package/dist/about-story-hero.js +101 -102
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/cta-accent-background.cjs +8 -69
- package/dist/cta-accent-background.d.cts +1 -1
- package/dist/cta-accent-background.d.ts +1 -1
- package/dist/cta-accent-background.js +8 -69
- package/dist/cta-app-download-newsletter.cjs +4 -81
- package/dist/cta-app-download-newsletter.js +4 -81
- package/dist/faq-badge-support.cjs +97 -84
- package/dist/faq-badge-support.d.cts +1 -1
- package/dist/faq-badge-support.d.ts +1 -1
- package/dist/faq-badge-support.js +97 -83
- package/dist/faq-sidebar-navigation.cjs +106 -72
- package/dist/faq-sidebar-navigation.d.cts +1 -1
- package/dist/faq-sidebar-navigation.d.ts +1 -1
- package/dist/faq-sidebar-navigation.js +104 -70
- package/dist/faq-simple-accordion.cjs +83 -50
- package/dist/faq-simple-accordion.d.cts +13 -1
- package/dist/faq-simple-accordion.d.ts +13 -1
- package/dist/faq-simple-accordion.js +82 -46
- package/dist/feature-accordion-image.cjs +115 -85
- package/dist/feature-accordion-image.js +113 -83
- package/dist/feature-animated-carousel.cjs +2 -2
- package/dist/feature-animated-carousel.js +2 -2
- package/dist/feature-image-cards-three-column.cjs +2 -2
- package/dist/feature-image-cards-three-column.js +2 -2
- package/dist/footer-accordion-social.cjs +1 -1
- package/dist/footer-accordion-social.js +1 -1
- package/dist/footer-animated-social.cjs +1 -1
- package/dist/footer-animated-social.js +1 -1
- package/dist/footer-brand-description.cjs +1 -1
- package/dist/footer-brand-description.js +1 -1
- package/dist/footer-brand-links-contact.cjs +1 -1
- package/dist/footer-brand-links-contact.js +1 -1
- package/dist/footer-comprehensive-links.cjs +1 -1
- package/dist/footer-comprehensive-links.js +1 -1
- package/dist/footer-contact-card.cjs +1 -1
- package/dist/footer-contact-card.js +1 -1
- package/dist/footer-cta-banner.cjs +1 -1
- package/dist/footer-cta-banner.js +1 -1
- package/dist/footer-cta-social.cjs +1 -1
- package/dist/footer-cta-social.js +1 -1
- package/dist/footer-info-cards-accordion.cjs +1 -1
- package/dist/footer-info-cards-accordion.js +1 -1
- package/dist/footer-nav-social.cjs +1 -1
- package/dist/footer-nav-social.js +1 -1
- package/dist/footer-newsletter-contact.cjs +1 -1
- package/dist/footer-newsletter-contact.js +1 -1
- package/dist/footer-newsletter-grid.cjs +1 -1
- package/dist/footer-newsletter-grid.js +1 -1
- package/dist/footer-newsletter-minimal.cjs +1 -1
- package/dist/footer-newsletter-minimal.js +1 -1
- package/dist/footer-social-apps.cjs +1 -1
- package/dist/footer-social-apps.js +1 -1
- package/dist/footer-social-newsletter.cjs +1 -1
- package/dist/footer-social-newsletter.js +1 -1
- package/dist/footer-split-image-accordion.cjs +1 -1
- package/dist/footer-split-image-accordion.js +1 -1
- package/dist/hero-coming-soon-countdown.cjs +1 -1
- package/dist/hero-coming-soon-countdown.js +1 -1
- package/dist/hero-event-registration.cjs +1 -1
- package/dist/hero-event-registration.js +1 -1
- package/dist/hero-product-showcase-floating.cjs +120 -90
- package/dist/hero-product-showcase-floating.d.cts +5 -1
- package/dist/hero-product-showcase-floating.d.ts +5 -1
- package/dist/hero-product-showcase-floating.js +120 -90
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/link-page-bento-layout.cjs +1 -1
- package/dist/link-page-bento-layout.js +1 -1
- package/dist/link-page-grid-cards.cjs +1 -1
- package/dist/link-page-grid-cards.js +1 -1
- package/dist/link-page-minimal-profile.cjs +1 -1
- package/dist/link-page-minimal-profile.js +1 -1
- package/dist/link-page-newsletter-social.cjs +1 -1
- package/dist/link-page-newsletter-social.js +1 -1
- package/dist/link-tree-block.cjs +1 -1
- package/dist/link-tree-block.js +1 -1
- package/dist/navbar-fullscreen-menu.cjs +1 -1
- package/dist/navbar-fullscreen-menu.js +1 -1
- package/dist/navbar-transparent-overlay.cjs +1 -1
- package/dist/navbar-transparent-overlay.js +1 -1
- package/dist/registry.cjs +397 -290
- package/dist/registry.js +397 -290
- package/dist/social-link-icon.cjs +1 -1
- package/dist/social-link-icon.js +1 -1
- package/package.json +2 -2
|
@@ -1001,7 +1001,7 @@ var platformIconMap = {
|
|
|
1001
1001
|
yelp: "cib/yelp",
|
|
1002
1002
|
spotify: "cib/spotify",
|
|
1003
1003
|
apple: "cib/apple",
|
|
1004
|
-
x: "
|
|
1004
|
+
x: "prime/twitter",
|
|
1005
1005
|
github: "cib/github",
|
|
1006
1006
|
snapchat: "cib/snapchat",
|
|
1007
1007
|
discord: "cib/discord",
|
|
@@ -1001,7 +1001,7 @@ var platformIconMap = {
|
|
|
1001
1001
|
yelp: "cib/yelp",
|
|
1002
1002
|
spotify: "cib/spotify",
|
|
1003
1003
|
apple: "cib/apple",
|
|
1004
|
-
x: "
|
|
1004
|
+
x: "prime/twitter",
|
|
1005
1005
|
github: "cib/github",
|
|
1006
1006
|
snapchat: "cib/snapchat",
|
|
1007
1007
|
discord: "cib/discord",
|
|
@@ -1447,7 +1447,7 @@ var platformIconMap = {
|
|
|
1447
1447
|
yelp: "cib/yelp",
|
|
1448
1448
|
spotify: "cib/spotify",
|
|
1449
1449
|
apple: "cib/apple",
|
|
1450
|
-
x: "
|
|
1450
|
+
x: "prime/twitter",
|
|
1451
1451
|
github: "cib/github",
|
|
1452
1452
|
snapchat: "cib/snapchat",
|
|
1453
1453
|
discord: "cib/discord",
|
|
@@ -1426,7 +1426,7 @@ var platformIconMap = {
|
|
|
1426
1426
|
yelp: "cib/yelp",
|
|
1427
1427
|
spotify: "cib/spotify",
|
|
1428
1428
|
apple: "cib/apple",
|
|
1429
|
-
x: "
|
|
1429
|
+
x: "prime/twitter",
|
|
1430
1430
|
github: "cib/github",
|
|
1431
1431
|
snapchat: "cib/snapchat",
|
|
1432
1432
|
discord: "cib/discord",
|
|
@@ -1447,7 +1447,7 @@ var platformIconMap = {
|
|
|
1447
1447
|
yelp: "cib/yelp",
|
|
1448
1448
|
spotify: "cib/spotify",
|
|
1449
1449
|
apple: "cib/apple",
|
|
1450
|
-
x: "
|
|
1450
|
+
x: "prime/twitter",
|
|
1451
1451
|
github: "cib/github",
|
|
1452
1452
|
snapchat: "cib/snapchat",
|
|
1453
1453
|
discord: "cib/discord",
|
|
@@ -1426,7 +1426,7 @@ var platformIconMap = {
|
|
|
1426
1426
|
yelp: "cib/yelp",
|
|
1427
1427
|
spotify: "cib/spotify",
|
|
1428
1428
|
apple: "cib/apple",
|
|
1429
|
-
x: "
|
|
1429
|
+
x: "prime/twitter",
|
|
1430
1430
|
github: "cib/github",
|
|
1431
1431
|
snapchat: "cib/snapchat",
|
|
1432
1432
|
discord: "cib/discord",
|
|
@@ -1375,7 +1375,7 @@ var platformIconMap = {
|
|
|
1375
1375
|
yelp: "cib/yelp",
|
|
1376
1376
|
spotify: "cib/spotify",
|
|
1377
1377
|
apple: "cib/apple",
|
|
1378
|
-
x: "
|
|
1378
|
+
x: "prime/twitter",
|
|
1379
1379
|
github: "cib/github",
|
|
1380
1380
|
snapchat: "cib/snapchat",
|
|
1381
1381
|
discord: "cib/discord",
|
|
@@ -1354,7 +1354,7 @@ var platformIconMap = {
|
|
|
1354
1354
|
yelp: "cib/yelp",
|
|
1355
1355
|
spotify: "cib/spotify",
|
|
1356
1356
|
apple: "cib/apple",
|
|
1357
|
-
x: "
|
|
1357
|
+
x: "prime/twitter",
|
|
1358
1358
|
github: "cib/github",
|
|
1359
1359
|
snapchat: "cib/snapchat",
|
|
1360
1360
|
discord: "cib/discord",
|
|
@@ -1118,7 +1118,7 @@ var platformIconMap = {
|
|
|
1118
1118
|
yelp: "cib/yelp",
|
|
1119
1119
|
spotify: "cib/spotify",
|
|
1120
1120
|
apple: "cib/apple",
|
|
1121
|
-
x: "
|
|
1121
|
+
x: "prime/twitter",
|
|
1122
1122
|
github: "cib/github",
|
|
1123
1123
|
snapchat: "cib/snapchat",
|
|
1124
1124
|
discord: "cib/discord",
|
|
@@ -1096,7 +1096,7 @@ var platformIconMap = {
|
|
|
1096
1096
|
yelp: "cib/yelp",
|
|
1097
1097
|
spotify: "cib/spotify",
|
|
1098
1098
|
apple: "cib/apple",
|
|
1099
|
-
x: "
|
|
1099
|
+
x: "prime/twitter",
|
|
1100
1100
|
github: "cib/github",
|
|
1101
1101
|
snapchat: "cib/snapchat",
|
|
1102
1102
|
discord: "cib/discord",
|
|
@@ -1447,7 +1447,7 @@ var platformIconMap = {
|
|
|
1447
1447
|
yelp: "cib/yelp",
|
|
1448
1448
|
spotify: "cib/spotify",
|
|
1449
1449
|
apple: "cib/apple",
|
|
1450
|
-
x: "
|
|
1450
|
+
x: "prime/twitter",
|
|
1451
1451
|
github: "cib/github",
|
|
1452
1452
|
snapchat: "cib/snapchat",
|
|
1453
1453
|
discord: "cib/discord",
|
|
@@ -1426,7 +1426,7 @@ var platformIconMap = {
|
|
|
1426
1426
|
yelp: "cib/yelp",
|
|
1427
1427
|
spotify: "cib/spotify",
|
|
1428
1428
|
apple: "cib/apple",
|
|
1429
|
-
x: "
|
|
1429
|
+
x: "prime/twitter",
|
|
1430
1430
|
github: "cib/github",
|
|
1431
1431
|
snapchat: "cib/snapchat",
|
|
1432
1432
|
discord: "cib/discord",
|
|
@@ -1078,7 +1078,7 @@ var platformIconMap = {
|
|
|
1078
1078
|
yelp: "cib/yelp",
|
|
1079
1079
|
spotify: "cib/spotify",
|
|
1080
1080
|
apple: "cib/apple",
|
|
1081
|
-
x: "
|
|
1081
|
+
x: "prime/twitter",
|
|
1082
1082
|
github: "cib/github",
|
|
1083
1083
|
snapchat: "cib/snapchat",
|
|
1084
1084
|
discord: "cib/discord",
|
|
@@ -1056,7 +1056,7 @@ var platformIconMap = {
|
|
|
1056
1056
|
yelp: "cib/yelp",
|
|
1057
1057
|
spotify: "cib/spotify",
|
|
1058
1058
|
apple: "cib/apple",
|
|
1059
|
-
x: "
|
|
1059
|
+
x: "prime/twitter",
|
|
1060
1060
|
github: "cib/github",
|
|
1061
1061
|
snapchat: "cib/snapchat",
|
|
1062
1062
|
discord: "cib/discord",
|
|
@@ -1447,7 +1447,7 @@ var platformIconMap = {
|
|
|
1447
1447
|
yelp: "cib/yelp",
|
|
1448
1448
|
spotify: "cib/spotify",
|
|
1449
1449
|
apple: "cib/apple",
|
|
1450
|
-
x: "
|
|
1450
|
+
x: "prime/twitter",
|
|
1451
1451
|
github: "cib/github",
|
|
1452
1452
|
snapchat: "cib/snapchat",
|
|
1453
1453
|
discord: "cib/discord",
|
|
@@ -1426,7 +1426,7 @@ var platformIconMap = {
|
|
|
1426
1426
|
yelp: "cib/yelp",
|
|
1427
1427
|
spotify: "cib/spotify",
|
|
1428
1428
|
apple: "cib/apple",
|
|
1429
|
-
x: "
|
|
1429
|
+
x: "prime/twitter",
|
|
1430
1430
|
github: "cib/github",
|
|
1431
1431
|
snapchat: "cib/snapchat",
|
|
1432
1432
|
discord: "cib/discord",
|
|
@@ -1005,7 +1005,7 @@ var platformIconMap = {
|
|
|
1005
1005
|
yelp: "cib/yelp",
|
|
1006
1006
|
spotify: "cib/spotify",
|
|
1007
1007
|
apple: "cib/apple",
|
|
1008
|
-
x: "
|
|
1008
|
+
x: "prime/twitter",
|
|
1009
1009
|
github: "cib/github",
|
|
1010
1010
|
snapchat: "cib/snapchat",
|
|
1011
1011
|
discord: "cib/discord",
|
|
@@ -1447,7 +1447,7 @@ var platformIconMap = {
|
|
|
1447
1447
|
yelp: "cib/yelp",
|
|
1448
1448
|
spotify: "cib/spotify",
|
|
1449
1449
|
apple: "cib/apple",
|
|
1450
|
-
x: "
|
|
1450
|
+
x: "prime/twitter",
|
|
1451
1451
|
github: "cib/github",
|
|
1452
1452
|
snapchat: "cib/snapchat",
|
|
1453
1453
|
discord: "cib/discord",
|
|
@@ -1426,7 +1426,7 @@ var platformIconMap = {
|
|
|
1426
1426
|
yelp: "cib/yelp",
|
|
1427
1427
|
spotify: "cib/spotify",
|
|
1428
1428
|
apple: "cib/apple",
|
|
1429
|
-
x: "
|
|
1429
|
+
x: "prime/twitter",
|
|
1430
1430
|
github: "cib/github",
|
|
1431
1431
|
snapchat: "cib/snapchat",
|
|
1432
1432
|
discord: "cib/discord",
|
|
@@ -1449,7 +1449,7 @@ var platformIconMap = {
|
|
|
1449
1449
|
yelp: "cib/yelp",
|
|
1450
1450
|
spotify: "cib/spotify",
|
|
1451
1451
|
apple: "cib/apple",
|
|
1452
|
-
x: "
|
|
1452
|
+
x: "prime/twitter",
|
|
1453
1453
|
github: "cib/github",
|
|
1454
1454
|
snapchat: "cib/snapchat",
|
|
1455
1455
|
discord: "cib/discord",
|
|
@@ -1428,7 +1428,7 @@ var platformIconMap = {
|
|
|
1428
1428
|
yelp: "cib/yelp",
|
|
1429
1429
|
spotify: "cib/spotify",
|
|
1430
1430
|
apple: "cib/apple",
|
|
1431
|
-
x: "
|
|
1431
|
+
x: "prime/twitter",
|
|
1432
1432
|
github: "cib/github",
|
|
1433
1433
|
snapchat: "cib/snapchat",
|
|
1434
1434
|
discord: "cib/discord",
|
|
@@ -1117,7 +1117,7 @@ var platformIconMap = {
|
|
|
1117
1117
|
yelp: "cib/yelp",
|
|
1118
1118
|
spotify: "cib/spotify",
|
|
1119
1119
|
apple: "cib/apple",
|
|
1120
|
-
x: "
|
|
1120
|
+
x: "prime/twitter",
|
|
1121
1121
|
github: "cib/github",
|
|
1122
1122
|
snapchat: "cib/snapchat",
|
|
1123
1123
|
discord: "cib/discord",
|
|
@@ -1096,7 +1096,7 @@ var platformIconMap = {
|
|
|
1096
1096
|
yelp: "cib/yelp",
|
|
1097
1097
|
spotify: "cib/spotify",
|
|
1098
1098
|
apple: "cib/apple",
|
|
1099
|
-
x: "
|
|
1099
|
+
x: "prime/twitter",
|
|
1100
1100
|
github: "cib/github",
|
|
1101
1101
|
snapchat: "cib/snapchat",
|
|
1102
1102
|
discord: "cib/discord",
|
|
@@ -1015,7 +1015,7 @@ function HeroEventRegistration({
|
|
|
1015
1015
|
className: cn(
|
|
1016
1016
|
"bg-card text-card-foreground",
|
|
1017
1017
|
"rounded-2xl p-2 md:p-4 shadow-lg",
|
|
1018
|
-
"absolute
|
|
1018
|
+
"absolute bottom-0 translate-y-1/2",
|
|
1019
1019
|
"left-1/2 -translate-x-1/2 w-[90%]",
|
|
1020
1020
|
"md:-left-4 md:translate-x-0 md:w-auto",
|
|
1021
1021
|
"ring-4 ring-primary"
|
|
@@ -994,7 +994,7 @@ function HeroEventRegistration({
|
|
|
994
994
|
className: cn(
|
|
995
995
|
"bg-card text-card-foreground",
|
|
996
996
|
"rounded-2xl p-2 md:p-4 shadow-lg",
|
|
997
|
-
"absolute
|
|
997
|
+
"absolute bottom-0 translate-y-1/2",
|
|
998
998
|
"left-1/2 -translate-x-1/2 w-[90%]",
|
|
999
999
|
"md:-left-4 md:translate-x-0 md:w-auto",
|
|
1000
1000
|
"ring-4 ring-primary"
|
|
@@ -8,6 +8,7 @@ var icon = require('@page-speed/icon');
|
|
|
8
8
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
9
|
var img = require('@page-speed/img');
|
|
10
10
|
var classVarianceAuthority = require('class-variance-authority');
|
|
11
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
11
12
|
|
|
12
13
|
function _interopNamespace(e) {
|
|
13
14
|
if (e && e.__esModule) return e;
|
|
@@ -33,36 +34,6 @@ var React3__namespace = /*#__PURE__*/_interopNamespace(React3);
|
|
|
33
34
|
function cn(...inputs) {
|
|
34
35
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
35
36
|
}
|
|
36
|
-
function getTextColor(parentBg, variant = "default", options) {
|
|
37
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
38
|
-
if (isDark) {
|
|
39
|
-
switch (variant) {
|
|
40
|
-
case "default":
|
|
41
|
-
return "text-foreground";
|
|
42
|
-
case "muted":
|
|
43
|
-
return "text-foreground/80";
|
|
44
|
-
case "subtle":
|
|
45
|
-
return "text-foreground/60";
|
|
46
|
-
case "accent":
|
|
47
|
-
return "text-accent-foreground";
|
|
48
|
-
}
|
|
49
|
-
} else {
|
|
50
|
-
switch (variant) {
|
|
51
|
-
case "default":
|
|
52
|
-
return "text-foreground";
|
|
53
|
-
case "muted":
|
|
54
|
-
return "text-muted-foreground";
|
|
55
|
-
case "subtle":
|
|
56
|
-
return "text-muted-foreground/70";
|
|
57
|
-
case "accent":
|
|
58
|
-
return "text-primary";
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
function getAccentColor(parentBg, options) {
|
|
63
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
64
|
-
return isDark ? "text-accent-foreground" : "text-primary";
|
|
65
|
-
}
|
|
66
37
|
var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
|
|
67
38
|
function DynamicIcon({ apiKey, ...props }) {
|
|
68
39
|
return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
|
|
@@ -584,6 +555,38 @@ var buttonVariants = classVarianceAuthority.cva(baseStyles, {
|
|
|
584
555
|
size: "default"
|
|
585
556
|
}
|
|
586
557
|
});
|
|
558
|
+
var badgeVariants = classVarianceAuthority.cva(
|
|
559
|
+
"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
|
|
560
|
+
{
|
|
561
|
+
variants: {
|
|
562
|
+
variant: {
|
|
563
|
+
default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
|
|
564
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
|
|
565
|
+
destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
|
|
566
|
+
outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
|
|
567
|
+
}
|
|
568
|
+
},
|
|
569
|
+
defaultVariants: {
|
|
570
|
+
variant: "default"
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
);
|
|
574
|
+
function Badge({
|
|
575
|
+
className,
|
|
576
|
+
variant,
|
|
577
|
+
asChild = false,
|
|
578
|
+
...props
|
|
579
|
+
}) {
|
|
580
|
+
const Comp = asChild ? reactSlot.Slot : "span";
|
|
581
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
582
|
+
Comp,
|
|
583
|
+
{
|
|
584
|
+
"data-slot": "badge",
|
|
585
|
+
className: cn(badgeVariants({ variant }), className),
|
|
586
|
+
...props
|
|
587
|
+
}
|
|
588
|
+
);
|
|
589
|
+
}
|
|
587
590
|
function normalizePhoneNumber(input) {
|
|
588
591
|
const trimmed = input.trim();
|
|
589
592
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -860,6 +863,38 @@ var Pressable = React3__namespace.forwardRef(
|
|
|
860
863
|
}
|
|
861
864
|
);
|
|
862
865
|
Pressable.displayName = "Pressable";
|
|
866
|
+
function TextInner({ as, className, children, ...props }, ref) {
|
|
867
|
+
const Component = as || "span";
|
|
868
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Component, { ref, className: cn(className), ...props, children });
|
|
869
|
+
}
|
|
870
|
+
var Text = React3__namespace.forwardRef(TextInner);
|
|
871
|
+
Text.displayName = "Text";
|
|
872
|
+
function isContentTextItem(item) {
|
|
873
|
+
return item !== null && typeof item === "object" && !React3__namespace.isValidElement(item) && "_type" in item && item._type === "text";
|
|
874
|
+
}
|
|
875
|
+
var ContentGroup = React3__namespace.forwardRef(
|
|
876
|
+
({ items, className, children, ...props }, ref) => {
|
|
877
|
+
const hasContent = items && items.length > 0;
|
|
878
|
+
if (!hasContent) {
|
|
879
|
+
return null;
|
|
880
|
+
}
|
|
881
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: cn(className), ...props, children: [
|
|
882
|
+
items.map((item, idx) => {
|
|
883
|
+
if (isContentTextItem(item)) {
|
|
884
|
+
const { _type, ...textProps } = item;
|
|
885
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Text, { ...textProps }, idx);
|
|
886
|
+
}
|
|
887
|
+
const reactNode = item;
|
|
888
|
+
if (React3__namespace.isValidElement(reactNode)) {
|
|
889
|
+
return React3__namespace.cloneElement(reactNode, { key: reactNode.key ?? idx });
|
|
890
|
+
}
|
|
891
|
+
return /* @__PURE__ */ jsxRuntime.jsx(React3__namespace.Fragment, { children: reactNode }, idx);
|
|
892
|
+
}),
|
|
893
|
+
children
|
|
894
|
+
] });
|
|
895
|
+
}
|
|
896
|
+
);
|
|
897
|
+
ContentGroup.displayName = "ContentGroup";
|
|
863
898
|
var MOBILE_CLASSES = {
|
|
864
899
|
"fit-left": "items-start md:items-center",
|
|
865
900
|
"fit-center": "items-center",
|
|
@@ -947,56 +982,40 @@ function HeroProductShowcaseFloating({
|
|
|
947
982
|
spacing = "xl",
|
|
948
983
|
contentClassName,
|
|
949
984
|
headingClassName,
|
|
985
|
+
headerClassName,
|
|
950
986
|
descriptionClassName,
|
|
951
987
|
showcaseClassName,
|
|
952
988
|
optixFlowConfig
|
|
953
989
|
}) {
|
|
954
990
|
const renderBadge = React3.useMemo(() => {
|
|
955
991
|
if (badgeSlot) return badgeSlot;
|
|
956
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
957
|
-
|
|
958
|
-
{
|
|
959
|
-
|
|
960
|
-
"inline-flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm font-medium",
|
|
961
|
-
`${getAccentColor(background)}/10`,
|
|
962
|
-
getAccentColor(background)
|
|
963
|
-
),
|
|
964
|
-
children: [
|
|
965
|
-
badgeIcon && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: badgeIcon, size: 16 }),
|
|
966
|
-
badgeText && /* @__PURE__ */ jsxRuntime.jsx("span", { children: badgeText })
|
|
967
|
-
]
|
|
968
|
-
}
|
|
969
|
-
);
|
|
992
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Badge, { className: cn("px-2"), children: [
|
|
993
|
+
badgeIcon && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: badgeIcon, size: 16 }),
|
|
994
|
+
badgeText && /* @__PURE__ */ jsxRuntime.jsx("span", { children: badgeText })
|
|
995
|
+
] });
|
|
970
996
|
}, [badgeSlot, badgeIcon, badgeText]);
|
|
971
997
|
const renderFloatingStat = React3.useMemo(() => {
|
|
972
998
|
if (floatingStatSlot) return floatingStatSlot;
|
|
973
999
|
if (!floatingStat) return null;
|
|
974
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -top-4 -right-4 rounded-xl bg-
|
|
975
|
-
floatingStat.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex
|
|
976
|
-
|
|
977
|
-
{
|
|
978
|
-
|
|
979
|
-
size: 20,
|
|
980
|
-
className: "text-success"
|
|
981
|
-
}
|
|
982
|
-
) }),
|
|
983
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
984
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-2xl font-bold ", children: floatingStat.value }),
|
|
985
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-xs", getTextColor(background, "muted")), children: floatingStat.label })
|
|
1000
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -top-4 -right-4 rounded-xl bg-card text-card-foreground p-4 shadow-lg border", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
1001
|
+
floatingStat.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 size-10 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: floatingStat.icon }) }),
|
|
1002
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-sm", children: [
|
|
1003
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-semibold", children: floatingStat.value }),
|
|
1004
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-normal opacity-70", children: floatingStat.label })
|
|
986
1005
|
] })
|
|
987
1006
|
] }) });
|
|
988
1007
|
}, [floatingStatSlot, floatingStat]);
|
|
989
1008
|
const renderUserCount = React3.useMemo(() => {
|
|
990
1009
|
if (userCountSlot) return userCountSlot;
|
|
991
1010
|
if (!userCount) return null;
|
|
992
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -bottom-4 -left-4 rounded-xl bg-
|
|
1011
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -bottom-4 -left-4 rounded-xl bg-card text-card-foreground p-4 shadow-lg border", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
993
1012
|
userCount.avatars && userCount.avatars.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex -space-x-2", children: userCount.avatars.map((avatar, idx) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
994
1013
|
img.Img,
|
|
995
1014
|
{
|
|
996
1015
|
src: avatar.src,
|
|
997
1016
|
alt: avatar.alt,
|
|
998
1017
|
className: cn(
|
|
999
|
-
"
|
|
1018
|
+
"size-8 rounded-full border-2 border-background object-cover",
|
|
1000
1019
|
avatar.className
|
|
1001
1020
|
),
|
|
1002
1021
|
optixFlowConfig
|
|
@@ -1004,8 +1023,8 @@ function HeroProductShowcaseFloating({
|
|
|
1004
1023
|
idx
|
|
1005
1024
|
)) }),
|
|
1006
1025
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-sm", children: [
|
|
1007
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-semibold
|
|
1008
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
1026
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-semibold", children: userCount.count }),
|
|
1027
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-normal opacity-70", children: userCount.label })
|
|
1009
1028
|
] })
|
|
1010
1029
|
] }) });
|
|
1011
1030
|
}, [userCountSlot, userCount, optixFlowConfig]);
|
|
@@ -1013,7 +1032,7 @@ function HeroProductShowcaseFloating({
|
|
|
1013
1032
|
if (productImageSlot) return productImageSlot;
|
|
1014
1033
|
if (!productImage) return null;
|
|
1015
1034
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("order-1", showcaseClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
1016
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-
|
|
1035
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-square overflow-hidden rounded-2xl bg-linear-to-br from-primary/20 to-primary/80 p-8", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1017
1036
|
img.Img,
|
|
1018
1037
|
{
|
|
1019
1038
|
src: productImage.src,
|
|
@@ -1036,6 +1055,37 @@ function HeroProductShowcaseFloating({
|
|
|
1036
1055
|
renderFloatingStat,
|
|
1037
1056
|
renderUserCount
|
|
1038
1057
|
]);
|
|
1058
|
+
const contentItems = React3.useMemo(() => {
|
|
1059
|
+
const items = [];
|
|
1060
|
+
if (heading) {
|
|
1061
|
+
if (typeof heading === "string") {
|
|
1062
|
+
items.push({
|
|
1063
|
+
_type: "text",
|
|
1064
|
+
as: "h2",
|
|
1065
|
+
className: cn(
|
|
1066
|
+
"text-2xl font-semibold md:text-3xl lg:text-4xl",
|
|
1067
|
+
headingClassName
|
|
1068
|
+
),
|
|
1069
|
+
children: heading
|
|
1070
|
+
});
|
|
1071
|
+
} else {
|
|
1072
|
+
items.push(heading);
|
|
1073
|
+
}
|
|
1074
|
+
}
|
|
1075
|
+
if (description) {
|
|
1076
|
+
if (typeof description === "string") {
|
|
1077
|
+
items.push({
|
|
1078
|
+
_type: "text",
|
|
1079
|
+
as: "p",
|
|
1080
|
+
className: cn("text-lg opacity-70", descriptionClassName),
|
|
1081
|
+
children: description
|
|
1082
|
+
});
|
|
1083
|
+
} else {
|
|
1084
|
+
items.push(description);
|
|
1085
|
+
}
|
|
1086
|
+
}
|
|
1087
|
+
return items;
|
|
1088
|
+
}, [heading, headingClassName, description, descriptionClassName]);
|
|
1039
1089
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1040
1090
|
Section,
|
|
1041
1091
|
{
|
|
@@ -1043,42 +1093,22 @@ function HeroProductShowcaseFloating({
|
|
|
1043
1093
|
spacing,
|
|
1044
1094
|
pattern,
|
|
1045
1095
|
patternOpacity,
|
|
1046
|
-
className
|
|
1096
|
+
className,
|
|
1047
1097
|
containerClassName,
|
|
1048
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
1098
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid items-center gap-12 grid-cols-1 md:grid-cols-2 lg:gap-20", children: [
|
|
1049
1099
|
renderProductShowcase,
|
|
1050
1100
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-8 order-2", contentClassName), children: [
|
|
1051
1101
|
renderBadge,
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
{
|
|
1055
|
-
className: cn(
|
|
1056
|
-
"text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl",
|
|
1057
|
-
headingClassName
|
|
1058
|
-
),
|
|
1059
|
-
children: heading
|
|
1060
|
-
}
|
|
1061
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1062
|
-
"h1",
|
|
1063
|
-
{
|
|
1064
|
-
className: cn(
|
|
1065
|
-
"text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl",
|
|
1066
|
-
headingClassName
|
|
1067
|
-
),
|
|
1068
|
-
children: heading
|
|
1069
|
-
}
|
|
1070
|
-
)),
|
|
1071
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1072
|
-
"p",
|
|
1102
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1103
|
+
ContentGroup,
|
|
1073
1104
|
{
|
|
1105
|
+
items: contentItems,
|
|
1074
1106
|
className: cn(
|
|
1075
|
-
"text-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
),
|
|
1079
|
-
children: description
|
|
1107
|
+
"text-left text-balance space-y-0 md:space-y-2",
|
|
1108
|
+
headerClassName
|
|
1109
|
+
)
|
|
1080
1110
|
}
|
|
1081
|
-
)
|
|
1111
|
+
),
|
|
1082
1112
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1083
1113
|
BlockActions,
|
|
1084
1114
|
{
|
|
@@ -123,6 +123,10 @@ interface HeroProductShowcaseFloatingProps {
|
|
|
123
123
|
* Additional CSS classes for the heading
|
|
124
124
|
*/
|
|
125
125
|
headingClassName?: string;
|
|
126
|
+
/**
|
|
127
|
+
* Additional CSS classes for the header wrapper
|
|
128
|
+
*/
|
|
129
|
+
headerClassName?: string;
|
|
126
130
|
/**
|
|
127
131
|
* Additional CSS classes for the description
|
|
128
132
|
*/
|
|
@@ -140,6 +144,6 @@ interface HeroProductShowcaseFloatingProps {
|
|
|
140
144
|
*/
|
|
141
145
|
actionsClassName?: string;
|
|
142
146
|
}
|
|
143
|
-
declare function HeroProductShowcaseFloating({ badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, actionsClassName, productImage, productImageSlot, floatingStat, floatingStatSlot, userCount, userCountSlot, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, showcaseClassName, optixFlowConfig, }: HeroProductShowcaseFloatingProps): React.JSX.Element;
|
|
147
|
+
declare function HeroProductShowcaseFloating({ badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, actionsClassName, productImage, productImageSlot, floatingStat, floatingStatSlot, userCount, userCountSlot, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, headerClassName, descriptionClassName, showcaseClassName, optixFlowConfig, }: HeroProductShowcaseFloatingProps): React.JSX.Element;
|
|
144
148
|
|
|
145
149
|
export { HeroProductShowcaseFloating, type HeroProductShowcaseFloatingProps };
|
|
@@ -123,6 +123,10 @@ interface HeroProductShowcaseFloatingProps {
|
|
|
123
123
|
* Additional CSS classes for the heading
|
|
124
124
|
*/
|
|
125
125
|
headingClassName?: string;
|
|
126
|
+
/**
|
|
127
|
+
* Additional CSS classes for the header wrapper
|
|
128
|
+
*/
|
|
129
|
+
headerClassName?: string;
|
|
126
130
|
/**
|
|
127
131
|
* Additional CSS classes for the description
|
|
128
132
|
*/
|
|
@@ -140,6 +144,6 @@ interface HeroProductShowcaseFloatingProps {
|
|
|
140
144
|
*/
|
|
141
145
|
actionsClassName?: string;
|
|
142
146
|
}
|
|
143
|
-
declare function HeroProductShowcaseFloating({ badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, actionsClassName, productImage, productImageSlot, floatingStat, floatingStatSlot, userCount, userCountSlot, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, showcaseClassName, optixFlowConfig, }: HeroProductShowcaseFloatingProps): React.JSX.Element;
|
|
147
|
+
declare function HeroProductShowcaseFloating({ badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, actionsClassName, productImage, productImageSlot, floatingStat, floatingStatSlot, userCount, userCountSlot, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, headerClassName, descriptionClassName, showcaseClassName, optixFlowConfig, }: HeroProductShowcaseFloatingProps): React.JSX.Element;
|
|
144
148
|
|
|
145
149
|
export { HeroProductShowcaseFloating, type HeroProductShowcaseFloatingProps };
|