@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/studio.js
CHANGED
|
@@ -260,9 +260,6 @@ var colorMap = {
|
|
|
260
260
|
white: "bg-background text-foreground",
|
|
261
261
|
brand: "bg-brand",
|
|
262
262
|
"brand-muted": "bg-brand-muted text-foreground",
|
|
263
|
-
blue: "bg-section-blue",
|
|
264
|
-
gray: "bg-section-gray text-foreground",
|
|
265
|
-
cream: "bg-section-cream text-foreground",
|
|
266
263
|
black: "bg-foreground text-background",
|
|
267
264
|
cta: "bg-cta"
|
|
268
265
|
};
|
|
@@ -356,11 +353,11 @@ function BrutalHero({
|
|
|
356
353
|
variant === "centered" && "mx-auto"
|
|
357
354
|
), children: description }),
|
|
358
355
|
/* @__PURE__ */ jsxs("div", { className: cn(
|
|
359
|
-
"flex flex-
|
|
360
|
-
variant === "centered" && "justify-center"
|
|
356
|
+
"flex flex-col gap-4 sm:flex-row sm:flex-wrap",
|
|
357
|
+
variant === "centered" && "sm:justify-center"
|
|
361
358
|
), children: [
|
|
362
|
-
/* @__PURE__ */ jsx(Button, { variant: ctaVariant, size: "xl", render: /* @__PURE__ */ jsx("a", { href: ctaHref }), children: ctaText }),
|
|
363
|
-
secondaryText && /* @__PURE__ */ jsx(Button, { variant: "outline", size: "xl", render: /* @__PURE__ */ jsx("a", { href: secondaryHref || "#" }), children: secondaryText })
|
|
359
|
+
/* @__PURE__ */ jsx(Button, { variant: ctaVariant, size: "xl", className: "w-full sm:w-auto", render: /* @__PURE__ */ jsx("a", { href: ctaHref }), children: ctaText }),
|
|
360
|
+
secondaryText && /* @__PURE__ */ jsx(Button, { variant: "outline", size: "xl", className: "w-full sm:w-auto", render: /* @__PURE__ */ jsx("a", { href: secondaryHref || "#" }), children: secondaryText })
|
|
364
361
|
] }),
|
|
365
362
|
proof && /* @__PURE__ */ jsxs("p", { className: "flex items-center gap-2 text-sm font-medium opacity-70", children: [
|
|
366
363
|
/* @__PURE__ */ jsx("span", { className: "inline-flex size-5 items-center justify-center border border-current text-xs", children: "\u2713" }),
|
|
@@ -497,14 +494,6 @@ function CardContent({ className, ...props }) {
|
|
|
497
494
|
}
|
|
498
495
|
);
|
|
499
496
|
}
|
|
500
|
-
var accentColors = [
|
|
501
|
-
"hsl(var(--brand))",
|
|
502
|
-
"hsl(var(--cta))",
|
|
503
|
-
"hsl(var(--section-blue))",
|
|
504
|
-
"hsl(12 85% 62%)",
|
|
505
|
-
"hsl(260 55% 68%)",
|
|
506
|
-
"hsl(25 75% 48%)"
|
|
507
|
-
];
|
|
508
497
|
var colMap = {
|
|
509
498
|
2: "sm:grid-cols-2",
|
|
510
499
|
3: "sm:grid-cols-2 lg:grid-cols-3",
|
|
@@ -522,7 +511,7 @@ function BrutalFeatureGrid({
|
|
|
522
511
|
}) {
|
|
523
512
|
return /* @__PURE__ */ jsxs(BrutalSection, { color, className, children: [
|
|
524
513
|
/* @__PURE__ */ jsxs("div", { className: "mb-12 max-w-2xl", children: [
|
|
525
|
-
badge && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-4 text-
|
|
514
|
+
badge && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-4 text-brand", children: badge }),
|
|
526
515
|
/* @__PURE__ */ jsx("h2", { className: "brutal-h2 mb-4", children: headline }),
|
|
527
516
|
description && /* @__PURE__ */ jsx("p", { className: "brutal-body text-muted-foreground", children: description })
|
|
528
517
|
] }),
|
|
@@ -538,8 +527,7 @@ function BrutalFeatureGrid({
|
|
|
538
527
|
{
|
|
539
528
|
feature,
|
|
540
529
|
variant,
|
|
541
|
-
index: i
|
|
542
|
-
accentColor: accentColors[i % accentColors.length]
|
|
530
|
+
index: i
|
|
543
531
|
},
|
|
544
532
|
feature.title
|
|
545
533
|
))
|
|
@@ -550,38 +538,23 @@ function BrutalFeatureGrid({
|
|
|
550
538
|
function FeatureCard({
|
|
551
539
|
feature,
|
|
552
540
|
variant,
|
|
553
|
-
index
|
|
554
|
-
accentColor
|
|
541
|
+
index
|
|
555
542
|
}) {
|
|
556
543
|
const isBentoFeatured = variant === "bento" && feature.featured;
|
|
557
544
|
if (variant === "icon-left") {
|
|
558
|
-
return /* @__PURE__ */ jsxs(
|
|
559
|
-
"div",
|
|
560
|
-
{
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
children:
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
feature.stat && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-1 text-brand", children: feature.stat }),
|
|
567
|
-
/* @__PURE__ */ jsx("h3", { className: "brutal-h4 mb-1", children: feature.title }),
|
|
568
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: feature.description })
|
|
569
|
-
] })
|
|
570
|
-
]
|
|
571
|
-
}
|
|
572
|
-
);
|
|
545
|
+
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: [
|
|
546
|
+
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 }),
|
|
547
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
548
|
+
feature.stat && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-1 text-brand", children: feature.stat }),
|
|
549
|
+
/* @__PURE__ */ jsx("h3", { className: "brutal-h4 mb-1", children: feature.title }),
|
|
550
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: feature.description })
|
|
551
|
+
] })
|
|
552
|
+
] });
|
|
573
553
|
}
|
|
574
554
|
if (variant === "numbered") {
|
|
575
555
|
return /* @__PURE__ */ jsxs(Card, { children: [
|
|
576
556
|
/* @__PURE__ */ jsxs(CardHeader, { children: [
|
|
577
|
-
/* @__PURE__ */ jsx(
|
|
578
|
-
"span",
|
|
579
|
-
{
|
|
580
|
-
className: "brutal-display mb-2 block opacity-15",
|
|
581
|
-
style: { color: accentColor },
|
|
582
|
-
children: String(index + 1).padStart(2, "0")
|
|
583
|
-
}
|
|
584
|
-
),
|
|
557
|
+
/* @__PURE__ */ jsx("span", { className: "brutal-display mb-2 block text-brand opacity-20", children: String(index + 1).padStart(2, "0") }),
|
|
585
558
|
feature.stat && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-1 text-brand", children: feature.stat }),
|
|
586
559
|
/* @__PURE__ */ jsx(CardTitle, { children: feature.title })
|
|
587
560
|
] }),
|
|
@@ -596,14 +569,7 @@ function FeatureCard({
|
|
|
596
569
|
),
|
|
597
570
|
children: [
|
|
598
571
|
/* @__PURE__ */ jsxs(CardHeader, { children: [
|
|
599
|
-
feature.icon && /* @__PURE__ */ jsx(
|
|
600
|
-
"div",
|
|
601
|
-
{
|
|
602
|
-
className: "mb-2 inline-flex size-12 items-center justify-center border-brutal border-foreground bg-brand-muted text-2xl shadow-brutal-sm",
|
|
603
|
-
style: { borderBottomColor: accentColor },
|
|
604
|
-
children: feature.icon
|
|
605
|
-
}
|
|
606
|
-
),
|
|
572
|
+
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 }),
|
|
607
573
|
feature.stat && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-1 text-brand", children: feature.stat }),
|
|
608
574
|
/* @__PURE__ */ jsx(CardTitle, { children: feature.title })
|
|
609
575
|
] }),
|
|
@@ -722,7 +688,7 @@ function BrutalTestimonials({
|
|
|
722
688
|
headline,
|
|
723
689
|
testimonials,
|
|
724
690
|
variant = "masonry",
|
|
725
|
-
color = "
|
|
691
|
+
color = "brand-muted",
|
|
726
692
|
pattern,
|
|
727
693
|
className
|
|
728
694
|
}) {
|
|
@@ -788,12 +754,13 @@ function CTAButtons({
|
|
|
788
754
|
secondaryText,
|
|
789
755
|
secondaryHref
|
|
790
756
|
}) {
|
|
791
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-center
|
|
757
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 sm:flex-row sm:flex-wrap sm:items-center sm:justify-center", children: [
|
|
792
758
|
/* @__PURE__ */ jsx(
|
|
793
759
|
Button,
|
|
794
760
|
{
|
|
795
761
|
variant: ctaVariant,
|
|
796
762
|
size: "xl",
|
|
763
|
+
className: "w-full sm:w-auto",
|
|
797
764
|
render: /* @__PURE__ */ jsx("a", { href: ctaHref }),
|
|
798
765
|
children: ctaText
|
|
799
766
|
}
|
|
@@ -802,7 +769,8 @@ function CTAButtons({
|
|
|
802
769
|
Button,
|
|
803
770
|
{
|
|
804
771
|
variant: "outline",
|
|
805
|
-
size: "
|
|
772
|
+
size: "xl",
|
|
773
|
+
className: "w-full sm:w-auto",
|
|
806
774
|
render: /* @__PURE__ */ jsx("a", { href: secondaryHref || "#" }),
|
|
807
775
|
children: secondaryText
|
|
808
776
|
}
|
|
@@ -832,12 +800,13 @@ function SplitCTA(props) {
|
|
|
832
800
|
/* @__PURE__ */ jsx("h2", { className: "brutal-h1 mb-6", children: props.headline }),
|
|
833
801
|
props.description && /* @__PURE__ */ jsx("p", { className: "brutal-body mb-4 opacity-80", children: props.description }),
|
|
834
802
|
props.stats && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-8 opacity-60", children: props.stats }),
|
|
835
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-
|
|
803
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 sm:flex-row sm:flex-wrap", children: [
|
|
836
804
|
/* @__PURE__ */ jsx(
|
|
837
805
|
Button,
|
|
838
806
|
{
|
|
839
807
|
variant: props.ctaVariant || "cta",
|
|
840
808
|
size: "xl",
|
|
809
|
+
className: "w-full sm:w-auto",
|
|
841
810
|
render: /* @__PURE__ */ jsx("a", { href: props.ctaHref || "#" }),
|
|
842
811
|
children: props.ctaText
|
|
843
812
|
}
|
|
@@ -846,7 +815,8 @@ function SplitCTA(props) {
|
|
|
846
815
|
Button,
|
|
847
816
|
{
|
|
848
817
|
variant: "outline",
|
|
849
|
-
size: "
|
|
818
|
+
size: "xl",
|
|
819
|
+
className: "w-full sm:w-auto",
|
|
850
820
|
render: /* @__PURE__ */ jsx("a", { href: props.secondaryHref || "#" }),
|
|
851
821
|
children: props.secondaryText
|
|
852
822
|
}
|
|
@@ -1080,7 +1050,7 @@ function StudioTemplate({
|
|
|
1080
1050
|
}
|
|
1081
1051
|
),
|
|
1082
1052
|
testimonials && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1083
|
-
/* @__PURE__ */ jsx(SectionDivider, { from: "hsl(var(--background))", to: "hsl(var(--
|
|
1053
|
+
/* @__PURE__ */ jsx(SectionDivider, { from: "hsl(var(--background))", to: "hsl(var(--brand-muted))", variant: "diagonal" }),
|
|
1084
1054
|
/* @__PURE__ */ jsx(
|
|
1085
1055
|
BrutalTestimonials,
|
|
1086
1056
|
{
|
|
@@ -1088,10 +1058,10 @@ function StudioTemplate({
|
|
|
1088
1058
|
badge: testimonials.badge,
|
|
1089
1059
|
headline: testimonials.headline,
|
|
1090
1060
|
testimonials: testimonials.items,
|
|
1091
|
-
color: "
|
|
1061
|
+
color: "brand-muted"
|
|
1092
1062
|
}
|
|
1093
1063
|
),
|
|
1094
|
-
/* @__PURE__ */ jsx(SectionDivider, { from: "hsl(var(--
|
|
1064
|
+
/* @__PURE__ */ jsx(SectionDivider, { from: "hsl(var(--brand-muted))", to: "hsl(var(--background))", variant: "diagonal", flip: true })
|
|
1095
1065
|
] }),
|
|
1096
1066
|
newsletter && /* @__PURE__ */ jsx(
|
|
1097
1067
|
Newsletter,
|