@snow-labs/brutal-ui 0.3.2 → 0.5.0
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/components/brutal/comparison-table.d.ts +23 -0
- package/dist/components/brutal/comparison-table.js +117 -0
- package/dist/components/brutal/comparison-table.js.map +1 -0
- package/dist/components/brutal/cta-section.js +2 -2
- package/dist/components/brutal/cta-section.js.map +1 -1
- package/dist/components/brutal/faq.js +2 -2
- package/dist/components/brutal/faq.js.map +1 -1
- package/dist/components/brutal/feature-grid.d.ts +1 -1
- package/dist/components/brutal/feature-grid.js +10 -2
- package/dist/components/brutal/feature-grid.js.map +1 -1
- package/dist/components/brutal/feature-showcase.d.ts +20 -0
- package/dist/components/brutal/feature-showcase.js +158 -0
- package/dist/components/brutal/feature-showcase.js.map +1 -0
- package/dist/components/brutal/footer.js +1 -2
- package/dist/components/brutal/footer.js.map +1 -1
- package/dist/components/brutal/hero.js +2 -2
- package/dist/components/brutal/hero.js.map +1 -1
- package/dist/components/brutal/index.d.ts +4 -0
- package/dist/components/brutal/index.js +275 -59
- package/dist/components/brutal/index.js.map +1 -1
- package/dist/components/brutal/integration-grid.js +3 -3
- package/dist/components/brutal/integration-grid.js.map +1 -1
- package/dist/components/brutal/logo-cloud.js +2 -2
- package/dist/components/brutal/logo-cloud.js.map +1 -1
- package/dist/components/brutal/marquee.d.ts +17 -0
- package/dist/components/brutal/marquee.js +66 -0
- package/dist/components/brutal/marquee.js.map +1 -0
- package/dist/components/brutal/mockup-window.d.ts +11 -0
- package/dist/components/brutal/mockup-window.js +80 -0
- package/dist/components/brutal/mockup-window.js.map +1 -0
- package/dist/components/brutal/nav.js +1 -1
- package/dist/components/brutal/nav.js.map +1 -1
- package/dist/components/brutal/newsletter.js +2 -2
- package/dist/components/brutal/newsletter.js.map +1 -1
- package/dist/components/brutal/pricing-table.js +2 -2
- package/dist/components/brutal/pricing-table.js.map +1 -1
- package/dist/components/brutal/section.js +2 -2
- package/dist/components/brutal/section.js.map +1 -1
- package/dist/components/brutal/stats-bar.js +3 -3
- package/dist/components/brutal/stats-bar.js.map +1 -1
- package/dist/components/brutal/testimonials.js +6 -11
- package/dist/components/brutal/testimonials.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +233 -17
- package/dist/index.js.map +1 -1
- package/dist/templates/index.js +17 -15
- package/dist/templates/index.js.map +1 -1
- package/dist/templates/saas-launch.js +17 -15
- package/dist/templates/saas-launch.js.map +1 -1
- package/dist/templates/studio.js +16 -14
- package/dist/templates/studio.js.map +1 -1
- package/dist/theme.css +41 -4
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2901,8 +2901,8 @@ var colorMap = {
|
|
|
2901
2901
|
brand: "bg-brand",
|
|
2902
2902
|
"brand-muted": "bg-brand-muted text-foreground",
|
|
2903
2903
|
blue: "bg-section-blue",
|
|
2904
|
-
gray: "bg-
|
|
2905
|
-
cream: "bg-
|
|
2904
|
+
gray: "bg-muted text-foreground",
|
|
2905
|
+
cream: "bg-secondary text-foreground",
|
|
2906
2906
|
black: "bg-foreground text-background",
|
|
2907
2907
|
cta: "bg-cta"
|
|
2908
2908
|
};
|
|
@@ -3128,6 +3128,14 @@ function FeatureCard({
|
|
|
3128
3128
|
index
|
|
3129
3129
|
}) {
|
|
3130
3130
|
const isBentoFeatured = variant === "bento" && feature.featured;
|
|
3131
|
+
if (variant === "minimal") {
|
|
3132
|
+
return /* @__PURE__ */ jsxs("div", { className: "group flex flex-col gap-3 border-l-4 border-l-brand py-1 pl-5", children: [
|
|
3133
|
+
feature.icon && /* @__PURE__ */ jsx("div", { className: "text-2xl", children: feature.icon }),
|
|
3134
|
+
feature.stat && /* @__PURE__ */ jsx("p", { className: "brutal-label text-brand", children: feature.stat }),
|
|
3135
|
+
/* @__PURE__ */ jsx("h3", { className: "text-lg font-bold", children: feature.title }),
|
|
3136
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm leading-relaxed text-muted-foreground", children: feature.description })
|
|
3137
|
+
] });
|
|
3138
|
+
}
|
|
3131
3139
|
if (variant === "icon-left") {
|
|
3132
3140
|
return /* @__PURE__ */ jsxs("div", { className: "flex gap-4 border-brutal border-foreground border-l-4 border-l-brand bg-background p-5 shadow-brutal transition-all duration-150 hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg", children: [
|
|
3133
3141
|
feature.icon && /* @__PURE__ */ jsx("div", { className: "flex size-12 shrink-0 items-center justify-center border-brutal border-foreground bg-brand-muted text-2xl shadow-brutal-sm", children: feature.icon }),
|
|
@@ -3165,13 +3173,59 @@ function FeatureCard({
|
|
|
3165
3173
|
}
|
|
3166
3174
|
);
|
|
3167
3175
|
}
|
|
3176
|
+
function BrutalFeatureShowcase({
|
|
3177
|
+
badge,
|
|
3178
|
+
headline,
|
|
3179
|
+
description,
|
|
3180
|
+
visual,
|
|
3181
|
+
features,
|
|
3182
|
+
reversed = false,
|
|
3183
|
+
color = "white",
|
|
3184
|
+
pattern,
|
|
3185
|
+
className
|
|
3186
|
+
}) {
|
|
3187
|
+
return /* @__PURE__ */ jsx(BrutalSection, { color, pattern, className, children: /* @__PURE__ */ jsxs(
|
|
3188
|
+
"div",
|
|
3189
|
+
{
|
|
3190
|
+
className: cn(
|
|
3191
|
+
"grid items-center gap-12 lg:grid-cols-2 lg:gap-20",
|
|
3192
|
+
reversed && "lg:[&>*:first-child]:order-2"
|
|
3193
|
+
),
|
|
3194
|
+
children: [
|
|
3195
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6", children: [
|
|
3196
|
+
badge && /* @__PURE__ */ jsx(Badge, { variant: "outline", className: "w-fit font-mono text-xs uppercase tracking-widest", children: badge }),
|
|
3197
|
+
/* @__PURE__ */ jsx("h2", { className: "brutal-h2", children: headline }),
|
|
3198
|
+
/* @__PURE__ */ jsx("p", { className: "brutal-body text-muted-foreground", children: description }),
|
|
3199
|
+
features && features.length > 0 && /* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-3 pt-2", children: features.map((f, i) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-3", children: [
|
|
3200
|
+
f.icon ? /* @__PURE__ */ jsx("span", { className: "mt-0.5 flex size-6 shrink-0 items-center justify-center border-brutal border-foreground bg-brand-muted text-sm", children: f.icon }) : /* @__PURE__ */ jsx("span", { className: "mt-0.5 flex size-6 shrink-0 items-center justify-center border-brutal border-foreground bg-brand text-sm text-brand-foreground font-bold", children: "\u2713" }),
|
|
3201
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: f.text })
|
|
3202
|
+
] }, i)) })
|
|
3203
|
+
] }),
|
|
3204
|
+
/* @__PURE__ */ jsxs(
|
|
3205
|
+
"div",
|
|
3206
|
+
{
|
|
3207
|
+
className: cn(
|
|
3208
|
+
"relative",
|
|
3209
|
+
reversed ? "-rotate-1" : "rotate-1",
|
|
3210
|
+
"transform transition-transform duration-300 hover:rotate-0"
|
|
3211
|
+
),
|
|
3212
|
+
children: [
|
|
3213
|
+
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 translate-x-3 translate-y-3 border-brutal border-foreground bg-brand opacity-20" }),
|
|
3214
|
+
/* @__PURE__ */ jsx("div", { className: "relative border-brutal border-foreground bg-background shadow-brutal-lg", children: visual })
|
|
3215
|
+
]
|
|
3216
|
+
}
|
|
3217
|
+
)
|
|
3218
|
+
]
|
|
3219
|
+
}
|
|
3220
|
+
) });
|
|
3221
|
+
}
|
|
3168
3222
|
function StarRating({ rating }) {
|
|
3169
3223
|
return /* @__PURE__ */ jsx("div", { className: "flex gap-0.5", children: Array.from({ length: 5 }, (_, i) => /* @__PURE__ */ jsx(
|
|
3170
3224
|
"span",
|
|
3171
3225
|
{
|
|
3172
3226
|
className: cn(
|
|
3173
3227
|
"text-sm",
|
|
3174
|
-
i < rating ? "text-
|
|
3228
|
+
i < rating ? "text-brand" : "text-foreground/20"
|
|
3175
3229
|
),
|
|
3176
3230
|
children: "\u2605"
|
|
3177
3231
|
},
|
|
@@ -3199,17 +3253,12 @@ function TestimonialCard({
|
|
|
3199
3253
|
{
|
|
3200
3254
|
src: t.avatar,
|
|
3201
3255
|
alt: t.name,
|
|
3202
|
-
className: "size-9 border-2 object-cover"
|
|
3203
|
-
style: { borderColor: "hsl(var(--brand))" }
|
|
3256
|
+
className: "size-9 border-2 border-brand object-cover"
|
|
3204
3257
|
}
|
|
3205
3258
|
) : /* @__PURE__ */ jsx(
|
|
3206
3259
|
"div",
|
|
3207
3260
|
{
|
|
3208
|
-
className: "flex size-9 items-center justify-center border-2 font-bold text-brand-foreground",
|
|
3209
|
-
style: {
|
|
3210
|
-
borderColor: "hsl(var(--brand))",
|
|
3211
|
-
backgroundColor: "hsl(var(--brand))"
|
|
3212
|
-
},
|
|
3261
|
+
className: "flex size-9 items-center justify-center border-2 border-brand bg-brand font-bold text-brand-foreground",
|
|
3213
3262
|
children: t.name[0]
|
|
3214
3263
|
}
|
|
3215
3264
|
),
|
|
@@ -3275,7 +3324,7 @@ function BrutalTestimonials({
|
|
|
3275
3324
|
headline,
|
|
3276
3325
|
testimonials,
|
|
3277
3326
|
variant = "masonry",
|
|
3278
|
-
color = "
|
|
3327
|
+
color = "white",
|
|
3279
3328
|
pattern,
|
|
3280
3329
|
className
|
|
3281
3330
|
}) {
|
|
@@ -3302,7 +3351,7 @@ function BrutalIntegrationGrid({
|
|
|
3302
3351
|
/* @__PURE__ */ jsxs("div", { className: "mb-12 text-center", children: [
|
|
3303
3352
|
badge && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-4 opacity-70", children: badge }),
|
|
3304
3353
|
/* @__PURE__ */ jsx("h2", { className: "brutal-h2 mb-4", children: headline }),
|
|
3305
|
-
description && /* @__PURE__ */ jsx("p", { className: "brutal-body mx-auto max-w-lg
|
|
3354
|
+
description && /* @__PURE__ */ jsx("p", { className: "brutal-body mx-auto max-w-lg opacity-80", children: description })
|
|
3306
3355
|
] }),
|
|
3307
3356
|
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center justify-center gap-6", children: integrations.map((item) => {
|
|
3308
3357
|
const inner = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -3460,6 +3509,54 @@ function BrutalCTA({
|
|
|
3460
3509
|
variant === "with-visual" && /* @__PURE__ */ jsx(WithVisualCTA, { ...props, variant, color })
|
|
3461
3510
|
] });
|
|
3462
3511
|
}
|
|
3512
|
+
function CellValue({ value }) {
|
|
3513
|
+
if (typeof value === "boolean") {
|
|
3514
|
+
return value ? /* @__PURE__ */ jsx("span", { className: "inline-flex size-7 items-center justify-center border-brutal border-foreground bg-brand font-bold text-brand-foreground text-sm", children: "\u2713" }) : /* @__PURE__ */ jsx("span", { className: "inline-flex size-7 items-center justify-center border-brutal border-foreground/20 text-sm text-muted-foreground", children: "\u2014" });
|
|
3515
|
+
}
|
|
3516
|
+
return /* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: value });
|
|
3517
|
+
}
|
|
3518
|
+
function BrutalComparisonTable({
|
|
3519
|
+
badge,
|
|
3520
|
+
headline,
|
|
3521
|
+
description,
|
|
3522
|
+
usName,
|
|
3523
|
+
themName,
|
|
3524
|
+
features,
|
|
3525
|
+
color = "white",
|
|
3526
|
+
pattern,
|
|
3527
|
+
className
|
|
3528
|
+
}) {
|
|
3529
|
+
return /* @__PURE__ */ jsxs(BrutalSection, { color, pattern, className, children: [
|
|
3530
|
+
/* @__PURE__ */ jsxs("div", { className: "mb-12 max-w-2xl", children: [
|
|
3531
|
+
badge && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-4 text-brand", children: badge }),
|
|
3532
|
+
/* @__PURE__ */ jsx("h2", { className: "brutal-h2 mb-4", children: headline }),
|
|
3533
|
+
description && /* @__PURE__ */ jsx("p", { className: "brutal-body text-muted-foreground", children: description })
|
|
3534
|
+
] }),
|
|
3535
|
+
/* @__PURE__ */ jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs("table", { className: "w-full border-collapse", children: [
|
|
3536
|
+
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
3537
|
+
/* @__PURE__ */ jsx("th", { className: "border-b-brutal border-foreground px-4 py-3 text-left text-sm font-medium text-muted-foreground", children: "Feature" }),
|
|
3538
|
+
/* @__PURE__ */ jsx("th", { className: "border-b-brutal border-foreground bg-brand-muted px-4 py-3 text-center", children: /* @__PURE__ */ jsx("span", { className: "brutal-label text-brand", children: usName }) }),
|
|
3539
|
+
/* @__PURE__ */ jsx("th", { className: "border-b-brutal border-foreground px-4 py-3 text-center", children: /* @__PURE__ */ jsx("span", { className: "brutal-label text-muted-foreground", children: themName }) })
|
|
3540
|
+
] }) }),
|
|
3541
|
+
/* @__PURE__ */ jsx("tbody", { children: features.map((f, i) => /* @__PURE__ */ jsxs(
|
|
3542
|
+
"tr",
|
|
3543
|
+
{
|
|
3544
|
+
className: cn(
|
|
3545
|
+
"transition-colors",
|
|
3546
|
+
f.highlight && "bg-brand-muted/50",
|
|
3547
|
+
i % 2 === 0 && !f.highlight && "bg-muted/30"
|
|
3548
|
+
),
|
|
3549
|
+
children: [
|
|
3550
|
+
/* @__PURE__ */ jsx("td", { className: "border-b border-foreground/10 px-4 py-3 text-sm font-medium", children: f.name }),
|
|
3551
|
+
/* @__PURE__ */ jsx("td", { className: "border-b border-foreground/10 bg-brand-muted/30 px-4 py-3 text-center", children: /* @__PURE__ */ jsx(CellValue, { value: f.us }) }),
|
|
3552
|
+
/* @__PURE__ */ jsx("td", { className: "border-b border-foreground/10 px-4 py-3 text-center", children: /* @__PURE__ */ jsx(CellValue, { value: f.them }) })
|
|
3553
|
+
]
|
|
3554
|
+
},
|
|
3555
|
+
i
|
|
3556
|
+
)) })
|
|
3557
|
+
] }) })
|
|
3558
|
+
] });
|
|
3559
|
+
}
|
|
3463
3560
|
function BrutalNav({
|
|
3464
3561
|
logo,
|
|
3465
3562
|
links,
|
|
@@ -3481,7 +3578,7 @@ function BrutalNav({
|
|
|
3481
3578
|
solid: "sticky top-0 z-50 w-full border-b-brutal border-foreground bg-brand",
|
|
3482
3579
|
transparent: cn(
|
|
3483
3580
|
"fixed top-0 left-0 right-0 z-50 w-full transition-all duration-200",
|
|
3484
|
-
isScrolled ? "bg-background/80 text-foreground backdrop-blur-md border-b border-
|
|
3581
|
+
isScrolled ? "bg-background/80 text-foreground backdrop-blur-md border-b border-border/30" : "bg-transparent text-foreground"
|
|
3485
3582
|
),
|
|
3486
3583
|
"floating-pill": "fixed top-0 left-0 right-0 z-50 mx-4 mt-4 rounded-full border-brutal border-foreground bg-background shadow-brutal"
|
|
3487
3584
|
};
|
|
@@ -3676,10 +3773,9 @@ function BrutalFooter({
|
|
|
3676
3773
|
"footer",
|
|
3677
3774
|
{
|
|
3678
3775
|
className: cn(
|
|
3679
|
-
"w-full border-t-4 bg-background px-6 py-12 text-foreground",
|
|
3776
|
+
"w-full border-t-4 border-t-brand bg-background px-6 py-12 text-foreground",
|
|
3680
3777
|
className
|
|
3681
3778
|
),
|
|
3682
|
-
style: { borderTopColor: "hsl(var(--brand))" },
|
|
3683
3779
|
children: /* @__PURE__ */ jsxs("div", { className: "brutal-container", children: [
|
|
3684
3780
|
variant === "newsletter" && newsletter && /* @__PURE__ */ jsx(NewsletterSection, { newsletter }),
|
|
3685
3781
|
variant === "minimal" ? /* @__PURE__ */ jsx(MinimalContent, { logo, columns, socials }) : /* @__PURE__ */ jsx(
|
|
@@ -3838,7 +3934,7 @@ function StatItem({ stat, inView }) {
|
|
|
3838
3934
|
count.toLocaleString(),
|
|
3839
3935
|
stat.suffix
|
|
3840
3936
|
] }),
|
|
3841
|
-
/* @__PURE__ */ jsx("p", { className: "brutal-label mt-2
|
|
3937
|
+
/* @__PURE__ */ jsx("p", { className: "brutal-label mt-2 opacity-70", children: stat.label })
|
|
3842
3938
|
] });
|
|
3843
3939
|
}
|
|
3844
3940
|
function StatsBar({ stats, color = "white", className }) {
|
|
@@ -3931,6 +4027,126 @@ function Newsletter({
|
|
|
3931
4027
|
)
|
|
3932
4028
|
] }) });
|
|
3933
4029
|
}
|
|
4030
|
+
function MockupWindow({
|
|
4031
|
+
children,
|
|
4032
|
+
title = "app.example.com",
|
|
4033
|
+
variant = "browser",
|
|
4034
|
+
className
|
|
4035
|
+
}) {
|
|
4036
|
+
if (variant === "phone") {
|
|
4037
|
+
return /* @__PURE__ */ jsxs(
|
|
4038
|
+
"div",
|
|
4039
|
+
{
|
|
4040
|
+
className: cn(
|
|
4041
|
+
"mx-auto w-[280px] overflow-hidden rounded-[2rem] border-brutal border-foreground bg-background shadow-brutal-lg",
|
|
4042
|
+
className
|
|
4043
|
+
),
|
|
4044
|
+
children: [
|
|
4045
|
+
/* @__PURE__ */ jsx("div", { className: "flex justify-center bg-foreground py-2", children: /* @__PURE__ */ jsx("div", { className: "h-5 w-28 rounded-full bg-background/20" }) }),
|
|
4046
|
+
/* @__PURE__ */ jsx("div", { className: "overflow-hidden", children }),
|
|
4047
|
+
/* @__PURE__ */ jsx("div", { className: "flex justify-center bg-foreground py-3", children: /* @__PURE__ */ jsx("div", { className: "h-1 w-24 rounded-full bg-background/30" }) })
|
|
4048
|
+
]
|
|
4049
|
+
}
|
|
4050
|
+
);
|
|
4051
|
+
}
|
|
4052
|
+
if (variant === "terminal") {
|
|
4053
|
+
return /* @__PURE__ */ jsxs(
|
|
4054
|
+
"div",
|
|
4055
|
+
{
|
|
4056
|
+
className: cn(
|
|
4057
|
+
"overflow-hidden rounded-lg border-brutal border-foreground shadow-brutal-lg",
|
|
4058
|
+
className
|
|
4059
|
+
),
|
|
4060
|
+
children: [
|
|
4061
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 border-b-brutal border-foreground bg-foreground px-4 py-2.5", children: [
|
|
4062
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-1.5", children: [
|
|
4063
|
+
/* @__PURE__ */ jsx("div", { className: "size-3 rounded-full bg-red-500" }),
|
|
4064
|
+
/* @__PURE__ */ jsx("div", { className: "size-3 rounded-full bg-yellow-500" }),
|
|
4065
|
+
/* @__PURE__ */ jsx("div", { className: "size-3 rounded-full bg-green-500" })
|
|
4066
|
+
] }),
|
|
4067
|
+
/* @__PURE__ */ jsx("span", { className: "ml-2 font-mono text-xs text-background/60", children: title })
|
|
4068
|
+
] }),
|
|
4069
|
+
/* @__PURE__ */ jsx("div", { className: "bg-foreground text-background", children })
|
|
4070
|
+
]
|
|
4071
|
+
}
|
|
4072
|
+
);
|
|
4073
|
+
}
|
|
4074
|
+
return /* @__PURE__ */ jsxs(
|
|
4075
|
+
"div",
|
|
4076
|
+
{
|
|
4077
|
+
className: cn(
|
|
4078
|
+
"overflow-hidden rounded-lg border-brutal border-foreground shadow-brutal-lg",
|
|
4079
|
+
className
|
|
4080
|
+
),
|
|
4081
|
+
children: [
|
|
4082
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 border-b-brutal border-foreground bg-muted px-4 py-2.5", children: [
|
|
4083
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-1.5", children: [
|
|
4084
|
+
/* @__PURE__ */ jsx("div", { className: "size-3 rounded-full border border-foreground/20 bg-red-400" }),
|
|
4085
|
+
/* @__PURE__ */ jsx("div", { className: "size-3 rounded-full border border-foreground/20 bg-yellow-400" }),
|
|
4086
|
+
/* @__PURE__ */ jsx("div", { className: "size-3 rounded-full border border-foreground/20 bg-green-400" })
|
|
4087
|
+
] }),
|
|
4088
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx("div", { className: "mx-auto max-w-sm rounded-md border border-foreground/10 bg-background px-3 py-1 text-center font-mono text-xs text-muted-foreground", children: title }) }),
|
|
4089
|
+
/* @__PURE__ */ jsx("div", { className: "w-[54px]" }),
|
|
4090
|
+
" "
|
|
4091
|
+
] }),
|
|
4092
|
+
/* @__PURE__ */ jsx("div", { className: "bg-background", children })
|
|
4093
|
+
]
|
|
4094
|
+
}
|
|
4095
|
+
);
|
|
4096
|
+
}
|
|
4097
|
+
var speedMap = {
|
|
4098
|
+
slow: "60s",
|
|
4099
|
+
normal: "30s",
|
|
4100
|
+
fast: "15s"
|
|
4101
|
+
};
|
|
4102
|
+
function Marquee({
|
|
4103
|
+
children,
|
|
4104
|
+
speed = "normal",
|
|
4105
|
+
direction = "left",
|
|
4106
|
+
pauseOnHover = true,
|
|
4107
|
+
className
|
|
4108
|
+
}) {
|
|
4109
|
+
return /* @__PURE__ */ jsx(
|
|
4110
|
+
"div",
|
|
4111
|
+
{
|
|
4112
|
+
className: cn(
|
|
4113
|
+
"group flex overflow-hidden border-y-brutal border-foreground bg-foreground py-3",
|
|
4114
|
+
className
|
|
4115
|
+
),
|
|
4116
|
+
children: [0, 1].map((copy) => /* @__PURE__ */ jsxs(
|
|
4117
|
+
"div",
|
|
4118
|
+
{
|
|
4119
|
+
"aria-hidden": copy === 1,
|
|
4120
|
+
className: cn(
|
|
4121
|
+
"flex shrink-0 items-center gap-8",
|
|
4122
|
+
pauseOnHover && "group-hover:[animation-play-state:paused]"
|
|
4123
|
+
),
|
|
4124
|
+
style: {
|
|
4125
|
+
animation: `marquee ${speedMap[speed]} linear infinite`,
|
|
4126
|
+
animationDirection: direction === "right" ? "reverse" : "normal"
|
|
4127
|
+
},
|
|
4128
|
+
children: [
|
|
4129
|
+
children,
|
|
4130
|
+
/* @__PURE__ */ jsx("span", { className: "mx-4 text-background/30 select-none", children: "\u2022" })
|
|
4131
|
+
]
|
|
4132
|
+
},
|
|
4133
|
+
copy
|
|
4134
|
+
))
|
|
4135
|
+
}
|
|
4136
|
+
);
|
|
4137
|
+
}
|
|
4138
|
+
function MarqueeItem({ children, className }) {
|
|
4139
|
+
return /* @__PURE__ */ jsx(
|
|
4140
|
+
"span",
|
|
4141
|
+
{
|
|
4142
|
+
className: cn(
|
|
4143
|
+
"inline-flex shrink-0 items-center gap-2 whitespace-nowrap font-bold text-background",
|
|
4144
|
+
className
|
|
4145
|
+
),
|
|
4146
|
+
children
|
|
4147
|
+
}
|
|
4148
|
+
);
|
|
4149
|
+
}
|
|
3934
4150
|
var AppShellContext = createContext({
|
|
3935
4151
|
collapsed: false,
|
|
3936
4152
|
setCollapsed: () => {
|
|
@@ -4927,6 +5143,6 @@ function DashboardTemplate({
|
|
|
4927
5143
|
);
|
|
4928
5144
|
}
|
|
4929
5145
|
|
|
4930
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityFeed, Alert, AlertDescription, AlertTitle, AppShell, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BrutalCTA, BrutalFeatureGrid, BrutalFooter, BrutalHero, BrutalIntegrationGrid, BrutalNav, BrutalSection, BrutalTestimonials, Button, CalendarView, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DashboardTemplate, DataTable, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, FAQ, FileUpload, GridView, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupTextarea, KanbanBoard, Label, ListView, LogoCloud, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Newsletter, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, PricingTable, Progress, RadioGroup, RadioGroupItem, SaaSLaunchTemplate, ScrollArea, ScrollBar, SearchBar, SectionDivider, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, Skeleton, Slider, StatCard, StatsBar, StudioTemplate, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UserMenu, ViewSwitcher, SectionDivider as WaveDivider, badgeVariants, buttonVariants, cn, defaultTransition, fadeIn, fadeInUp, navigationMenuTriggerStyle, scaleIn, slideInLeft, slideInRight, springTransition, staggerContainer, tabsListVariants, toggleVariants, useAppShell };
|
|
5146
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityFeed, Alert, AlertDescription, AlertTitle, AppShell, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BrutalCTA, BrutalComparisonTable, BrutalFeatureGrid, BrutalFeatureShowcase, BrutalFooter, BrutalHero, BrutalIntegrationGrid, BrutalNav, BrutalSection, BrutalTestimonials, Button, CalendarView, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DashboardTemplate, DataTable, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, FAQ, FileUpload, GridView, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupTextarea, KanbanBoard, Label, ListView, LogoCloud, Marquee, MarqueeItem, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MockupWindow, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Newsletter, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, PricingTable, Progress, RadioGroup, RadioGroupItem, SaaSLaunchTemplate, ScrollArea, ScrollBar, SearchBar, SectionDivider, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, Skeleton, Slider, StatCard, StatsBar, StudioTemplate, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UserMenu, ViewSwitcher, SectionDivider as WaveDivider, badgeVariants, buttonVariants, cn, defaultTransition, fadeIn, fadeInUp, navigationMenuTriggerStyle, scaleIn, slideInLeft, slideInRight, springTransition, staggerContainer, tabsListVariants, toggleVariants, useAppShell };
|
|
4931
5147
|
//# sourceMappingURL=index.js.map
|
|
4932
5148
|
//# sourceMappingURL=index.js.map
|