@snow-labs/brutal-ui 0.2.0 → 0.3.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/AGENTS.md +1244 -0
- package/dist/components/brutal/cta-section.js +8 -7
- package/dist/components/brutal/cta-section.js.map +1 -1
- package/dist/components/brutal/faq.d.ts +1 -1
- package/dist/components/brutal/faq.js +2 -5
- 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 +13 -47
- package/dist/components/brutal/feature-grid.js.map +1 -1
- package/dist/components/brutal/hero.d.ts +1 -1
- package/dist/components/brutal/hero.js +4 -7
- package/dist/components/brutal/hero.js.map +1 -1
- package/dist/components/brutal/index.js +28 -58
- package/dist/components/brutal/index.js.map +1 -1
- package/dist/components/brutal/integration-grid.d.ts +1 -1
- package/dist/components/brutal/integration-grid.js +0 -3
- package/dist/components/brutal/integration-grid.js.map +1 -1
- package/dist/components/brutal/logo-cloud.d.ts +1 -1
- package/dist/components/brutal/logo-cloud.js +0 -3
- package/dist/components/brutal/logo-cloud.js.map +1 -1
- package/dist/components/brutal/newsletter.d.ts +1 -1
- package/dist/components/brutal/newsletter.js +0 -3
- package/dist/components/brutal/newsletter.js.map +1 -1
- package/dist/components/brutal/pricing-table.d.ts +1 -1
- package/dist/components/brutal/pricing-table.js +0 -3
- package/dist/components/brutal/pricing-table.js.map +1 -1
- package/dist/components/brutal/section.d.ts +1 -1
- package/dist/components/brutal/section.js +0 -3
- package/dist/components/brutal/section.js.map +1 -1
- package/dist/components/brutal/stats-bar.d.ts +1 -1
- package/dist/components/brutal/stats-bar.js +0 -3
- package/dist/components/brutal/stats-bar.js.map +1 -1
- package/dist/components/brutal/testimonials.js +1 -4
- package/dist/components/brutal/testimonials.js.map +1 -1
- package/dist/components/ui/badge.d.ts +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/tabs.d.ts +1 -1
- package/dist/index.js +35 -65
- package/dist/index.js.map +1 -1
- package/dist/templates/index.js +35 -65
- package/dist/templates/index.js.map +1 -1
- package/dist/templates/saas-launch.js +32 -62
- package/dist/templates/saas-launch.js.map +1 -1
- package/dist/templates/studio.js +29 -59
- package/dist/templates/studio.js.map +1 -1
- package/dist/theme.css +5 -15
- package/package.json +3 -2
package/dist/templates/index.js
CHANGED
|
@@ -268,9 +268,6 @@ var colorMap = {
|
|
|
268
268
|
white: "bg-background text-foreground",
|
|
269
269
|
brand: "bg-brand",
|
|
270
270
|
"brand-muted": "bg-brand-muted text-foreground",
|
|
271
|
-
blue: "bg-section-blue",
|
|
272
|
-
gray: "bg-section-gray text-foreground",
|
|
273
|
-
cream: "bg-section-cream text-foreground",
|
|
274
271
|
black: "bg-foreground text-background",
|
|
275
272
|
cta: "bg-cta"
|
|
276
273
|
};
|
|
@@ -364,11 +361,11 @@ function BrutalHero({
|
|
|
364
361
|
variant === "centered" && "mx-auto"
|
|
365
362
|
), children: description }),
|
|
366
363
|
/* @__PURE__ */ jsxs("div", { className: cn(
|
|
367
|
-
"flex flex-
|
|
368
|
-
variant === "centered" && "justify-center"
|
|
364
|
+
"flex flex-col gap-4 sm:flex-row sm:flex-wrap",
|
|
365
|
+
variant === "centered" && "sm:justify-center"
|
|
369
366
|
), children: [
|
|
370
|
-
/* @__PURE__ */ jsx(Button, { variant: ctaVariant, size: "xl", render: /* @__PURE__ */ jsx("a", { href: ctaHref }), children: ctaText }),
|
|
371
|
-
secondaryText && /* @__PURE__ */ jsx(Button, { variant: "outline", size: "xl", render: /* @__PURE__ */ jsx("a", { href: secondaryHref || "#" }), children: secondaryText })
|
|
367
|
+
/* @__PURE__ */ jsx(Button, { variant: ctaVariant, size: "xl", className: "w-full sm:w-auto", render: /* @__PURE__ */ jsx("a", { href: ctaHref }), children: ctaText }),
|
|
368
|
+
secondaryText && /* @__PURE__ */ jsx(Button, { variant: "outline", size: "xl", className: "w-full sm:w-auto", render: /* @__PURE__ */ jsx("a", { href: secondaryHref || "#" }), children: secondaryText })
|
|
372
369
|
] }),
|
|
373
370
|
proof && /* @__PURE__ */ jsxs("p", { className: "flex items-center gap-2 text-sm font-medium opacity-70", children: [
|
|
374
371
|
/* @__PURE__ */ jsx("span", { className: "inline-flex size-5 items-center justify-center border border-current text-xs", children: "\u2713" }),
|
|
@@ -532,14 +529,6 @@ function CardContent({ className, ...props }) {
|
|
|
532
529
|
}
|
|
533
530
|
);
|
|
534
531
|
}
|
|
535
|
-
var accentColors = [
|
|
536
|
-
"hsl(var(--brand))",
|
|
537
|
-
"hsl(var(--cta))",
|
|
538
|
-
"hsl(var(--section-blue))",
|
|
539
|
-
"hsl(12 85% 62%)",
|
|
540
|
-
"hsl(260 55% 68%)",
|
|
541
|
-
"hsl(25 75% 48%)"
|
|
542
|
-
];
|
|
543
532
|
var colMap = {
|
|
544
533
|
2: "sm:grid-cols-2",
|
|
545
534
|
3: "sm:grid-cols-2 lg:grid-cols-3",
|
|
@@ -557,7 +546,7 @@ function BrutalFeatureGrid({
|
|
|
557
546
|
}) {
|
|
558
547
|
return /* @__PURE__ */ jsxs(BrutalSection, { color, className, children: [
|
|
559
548
|
/* @__PURE__ */ jsxs("div", { className: "mb-12 max-w-2xl", children: [
|
|
560
|
-
badge && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-4 text-
|
|
549
|
+
badge && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-4 text-brand", children: badge }),
|
|
561
550
|
/* @__PURE__ */ jsx("h2", { className: "brutal-h2 mb-4", children: headline }),
|
|
562
551
|
description && /* @__PURE__ */ jsx("p", { className: "brutal-body text-muted-foreground", children: description })
|
|
563
552
|
] }),
|
|
@@ -573,8 +562,7 @@ function BrutalFeatureGrid({
|
|
|
573
562
|
{
|
|
574
563
|
feature,
|
|
575
564
|
variant,
|
|
576
|
-
index: i
|
|
577
|
-
accentColor: accentColors[i % accentColors.length]
|
|
565
|
+
index: i
|
|
578
566
|
},
|
|
579
567
|
feature.title
|
|
580
568
|
))
|
|
@@ -585,38 +573,23 @@ function BrutalFeatureGrid({
|
|
|
585
573
|
function FeatureCard({
|
|
586
574
|
feature,
|
|
587
575
|
variant,
|
|
588
|
-
index
|
|
589
|
-
accentColor
|
|
576
|
+
index
|
|
590
577
|
}) {
|
|
591
578
|
const isBentoFeatured = variant === "bento" && feature.featured;
|
|
592
579
|
if (variant === "icon-left") {
|
|
593
|
-
return /* @__PURE__ */ jsxs(
|
|
594
|
-
"div",
|
|
595
|
-
{
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
children:
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
feature.stat && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-1 text-brand", children: feature.stat }),
|
|
602
|
-
/* @__PURE__ */ jsx("h3", { className: "brutal-h4 mb-1", children: feature.title }),
|
|
603
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: feature.description })
|
|
604
|
-
] })
|
|
605
|
-
]
|
|
606
|
-
}
|
|
607
|
-
);
|
|
580
|
+
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: [
|
|
581
|
+
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 }),
|
|
582
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
583
|
+
feature.stat && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-1 text-brand", children: feature.stat }),
|
|
584
|
+
/* @__PURE__ */ jsx("h3", { className: "brutal-h4 mb-1", children: feature.title }),
|
|
585
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: feature.description })
|
|
586
|
+
] })
|
|
587
|
+
] });
|
|
608
588
|
}
|
|
609
589
|
if (variant === "numbered") {
|
|
610
590
|
return /* @__PURE__ */ jsxs(Card, { children: [
|
|
611
591
|
/* @__PURE__ */ jsxs(CardHeader, { children: [
|
|
612
|
-
/* @__PURE__ */ jsx(
|
|
613
|
-
"span",
|
|
614
|
-
{
|
|
615
|
-
className: "brutal-display mb-2 block opacity-15",
|
|
616
|
-
style: { color: accentColor },
|
|
617
|
-
children: String(index + 1).padStart(2, "0")
|
|
618
|
-
}
|
|
619
|
-
),
|
|
592
|
+
/* @__PURE__ */ jsx("span", { className: "brutal-display mb-2 block text-brand opacity-20", children: String(index + 1).padStart(2, "0") }),
|
|
620
593
|
feature.stat && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-1 text-brand", children: feature.stat }),
|
|
621
594
|
/* @__PURE__ */ jsx(CardTitle, { children: feature.title })
|
|
622
595
|
] }),
|
|
@@ -631,14 +604,7 @@ function FeatureCard({
|
|
|
631
604
|
),
|
|
632
605
|
children: [
|
|
633
606
|
/* @__PURE__ */ jsxs(CardHeader, { children: [
|
|
634
|
-
feature.icon && /* @__PURE__ */ jsx(
|
|
635
|
-
"div",
|
|
636
|
-
{
|
|
637
|
-
className: "mb-2 inline-flex size-12 items-center justify-center border-brutal border-foreground bg-brand-muted text-2xl shadow-brutal-sm",
|
|
638
|
-
style: { borderBottomColor: accentColor },
|
|
639
|
-
children: feature.icon
|
|
640
|
-
}
|
|
641
|
-
),
|
|
607
|
+
feature.icon && /* @__PURE__ */ jsx("div", { className: "mb-2 inline-flex size-12 items-center justify-center border-brutal border-foreground border-b-brand bg-brand-muted text-2xl shadow-brutal-sm", children: feature.icon }),
|
|
642
608
|
feature.stat && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-1 text-brand", children: feature.stat }),
|
|
643
609
|
/* @__PURE__ */ jsx(CardTitle, { children: feature.title })
|
|
644
610
|
] }),
|
|
@@ -818,7 +784,7 @@ function BrutalTestimonials({
|
|
|
818
784
|
headline,
|
|
819
785
|
testimonials,
|
|
820
786
|
variant = "masonry",
|
|
821
|
-
color = "
|
|
787
|
+
color = "brand-muted",
|
|
822
788
|
pattern,
|
|
823
789
|
className
|
|
824
790
|
}) {
|
|
@@ -1032,8 +998,8 @@ function FAQ({
|
|
|
1032
998
|
className
|
|
1033
999
|
}) {
|
|
1034
1000
|
return /* @__PURE__ */ jsxs(BrutalSection, { color, className, children: [
|
|
1035
|
-
(headline || badge) && /* @__PURE__ */ jsxs("div", { className: "mb-10 max-w-2xl", children: [
|
|
1036
|
-
badge && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-4 text-
|
|
1001
|
+
(headline || badge) && /* @__PURE__ */ jsxs("div", { className: "mb-10 mx-auto max-w-2xl", children: [
|
|
1002
|
+
badge && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-4 text-brand", children: badge }),
|
|
1037
1003
|
headline && /* @__PURE__ */ jsx("h2", { className: "brutal-h2", children: headline })
|
|
1038
1004
|
] }),
|
|
1039
1005
|
/* @__PURE__ */ jsx(Accordion, { className: "mx-auto max-w-2xl", children: items.map((item, i) => /* @__PURE__ */ jsxs(
|
|
@@ -1060,12 +1026,13 @@ function CTAButtons({
|
|
|
1060
1026
|
secondaryText,
|
|
1061
1027
|
secondaryHref
|
|
1062
1028
|
}) {
|
|
1063
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-center
|
|
1029
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 sm:flex-row sm:flex-wrap sm:items-center sm:justify-center", children: [
|
|
1064
1030
|
/* @__PURE__ */ jsx(
|
|
1065
1031
|
Button,
|
|
1066
1032
|
{
|
|
1067
1033
|
variant: ctaVariant,
|
|
1068
1034
|
size: "xl",
|
|
1035
|
+
className: "w-full sm:w-auto",
|
|
1069
1036
|
render: /* @__PURE__ */ jsx("a", { href: ctaHref }),
|
|
1070
1037
|
children: ctaText
|
|
1071
1038
|
}
|
|
@@ -1074,7 +1041,8 @@ function CTAButtons({
|
|
|
1074
1041
|
Button,
|
|
1075
1042
|
{
|
|
1076
1043
|
variant: "outline",
|
|
1077
|
-
size: "
|
|
1044
|
+
size: "xl",
|
|
1045
|
+
className: "w-full sm:w-auto",
|
|
1078
1046
|
render: /* @__PURE__ */ jsx("a", { href: secondaryHref || "#" }),
|
|
1079
1047
|
children: secondaryText
|
|
1080
1048
|
}
|
|
@@ -1104,12 +1072,13 @@ function SplitCTA(props) {
|
|
|
1104
1072
|
/* @__PURE__ */ jsx("h2", { className: "brutal-h1 mb-6", children: props.headline }),
|
|
1105
1073
|
props.description && /* @__PURE__ */ jsx("p", { className: "brutal-body mb-4 opacity-80", children: props.description }),
|
|
1106
1074
|
props.stats && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-8 opacity-60", children: props.stats }),
|
|
1107
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-
|
|
1075
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 sm:flex-row sm:flex-wrap", children: [
|
|
1108
1076
|
/* @__PURE__ */ jsx(
|
|
1109
1077
|
Button,
|
|
1110
1078
|
{
|
|
1111
1079
|
variant: props.ctaVariant || "cta",
|
|
1112
1080
|
size: "xl",
|
|
1081
|
+
className: "w-full sm:w-auto",
|
|
1113
1082
|
render: /* @__PURE__ */ jsx("a", { href: props.ctaHref || "#" }),
|
|
1114
1083
|
children: props.ctaText
|
|
1115
1084
|
}
|
|
@@ -1118,7 +1087,8 @@ function SplitCTA(props) {
|
|
|
1118
1087
|
Button,
|
|
1119
1088
|
{
|
|
1120
1089
|
variant: "outline",
|
|
1121
|
-
size: "
|
|
1090
|
+
size: "xl",
|
|
1091
|
+
className: "w-full sm:w-auto",
|
|
1122
1092
|
render: /* @__PURE__ */ jsx("a", { href: props.secondaryHref || "#" }),
|
|
1123
1093
|
children: props.secondaryText
|
|
1124
1094
|
}
|
|
@@ -1373,7 +1343,7 @@ function SaaSLaunchTemplate({
|
|
|
1373
1343
|
}
|
|
1374
1344
|
),
|
|
1375
1345
|
stats && stats.length > 0 && /* @__PURE__ */ jsx(StatsBar, { stats, color: "brand" }),
|
|
1376
|
-
/* @__PURE__ */ jsx(SectionDivider, { from: "hsl(var(--brand))", to: "hsl(var(--
|
|
1346
|
+
/* @__PURE__ */ jsx(SectionDivider, { from: "hsl(var(--brand))", to: "hsl(var(--brand-muted))", variant: "torn-paper" }),
|
|
1377
1347
|
/* @__PURE__ */ jsx(
|
|
1378
1348
|
BrutalTestimonials,
|
|
1379
1349
|
{
|
|
@@ -1381,10 +1351,10 @@ function SaaSLaunchTemplate({
|
|
|
1381
1351
|
badge: testimonials.badge,
|
|
1382
1352
|
headline: testimonials.headline,
|
|
1383
1353
|
testimonials: testimonials.items,
|
|
1384
|
-
color: "
|
|
1354
|
+
color: "brand-muted"
|
|
1385
1355
|
}
|
|
1386
1356
|
),
|
|
1387
|
-
/* @__PURE__ */ jsx(SectionDivider, { from: "hsl(var(--
|
|
1357
|
+
/* @__PURE__ */ jsx(SectionDivider, { from: "hsl(var(--brand-muted))", to: "hsl(var(--background))", variant: "wave" }),
|
|
1388
1358
|
pricing && /* @__PURE__ */ jsx(
|
|
1389
1359
|
PricingTable,
|
|
1390
1360
|
{
|
|
@@ -1396,7 +1366,7 @@ function SaaSLaunchTemplate({
|
|
|
1396
1366
|
color: "white"
|
|
1397
1367
|
}
|
|
1398
1368
|
),
|
|
1399
|
-
faq && faq.length > 0 && /* @__PURE__ */ jsx(FAQ, { badge: "FAQ", headline: "Common Questions", items: faq, color: "
|
|
1369
|
+
faq && faq.length > 0 && /* @__PURE__ */ jsx(FAQ, { badge: "FAQ", headline: "Common Questions", items: faq, color: "white" }),
|
|
1400
1370
|
/* @__PURE__ */ jsx(
|
|
1401
1371
|
BrutalCTA,
|
|
1402
1372
|
{
|
|
@@ -1493,7 +1463,7 @@ function StudioTemplate({
|
|
|
1493
1463
|
}
|
|
1494
1464
|
),
|
|
1495
1465
|
testimonials && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1496
|
-
/* @__PURE__ */ jsx(SectionDivider, { from: "hsl(var(--background))", to: "hsl(var(--
|
|
1466
|
+
/* @__PURE__ */ jsx(SectionDivider, { from: "hsl(var(--background))", to: "hsl(var(--brand-muted))", variant: "diagonal" }),
|
|
1497
1467
|
/* @__PURE__ */ jsx(
|
|
1498
1468
|
BrutalTestimonials,
|
|
1499
1469
|
{
|
|
@@ -1501,10 +1471,10 @@ function StudioTemplate({
|
|
|
1501
1471
|
badge: testimonials.badge,
|
|
1502
1472
|
headline: testimonials.headline,
|
|
1503
1473
|
testimonials: testimonials.items,
|
|
1504
|
-
color: "
|
|
1474
|
+
color: "brand-muted"
|
|
1505
1475
|
}
|
|
1506
1476
|
),
|
|
1507
|
-
/* @__PURE__ */ jsx(SectionDivider, { from: "hsl(var(--
|
|
1477
|
+
/* @__PURE__ */ jsx(SectionDivider, { from: "hsl(var(--brand-muted))", to: "hsl(var(--background))", variant: "diagonal", flip: true })
|
|
1508
1478
|
] }),
|
|
1509
1479
|
newsletter && /* @__PURE__ */ jsx(
|
|
1510
1480
|
Newsletter,
|