@snow-labs/brutal-ui 0.2.0 → 0.2.1

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 (46) hide show
  1. package/dist/components/brutal/cta-section.js +8 -7
  2. package/dist/components/brutal/cta-section.js.map +1 -1
  3. package/dist/components/brutal/faq.d.ts +1 -1
  4. package/dist/components/brutal/faq.js +2 -5
  5. package/dist/components/brutal/faq.js.map +1 -1
  6. package/dist/components/brutal/feature-grid.d.ts +1 -1
  7. package/dist/components/brutal/feature-grid.js +13 -47
  8. package/dist/components/brutal/feature-grid.js.map +1 -1
  9. package/dist/components/brutal/hero.d.ts +1 -1
  10. package/dist/components/brutal/hero.js +4 -7
  11. package/dist/components/brutal/hero.js.map +1 -1
  12. package/dist/components/brutal/index.js +28 -58
  13. package/dist/components/brutal/index.js.map +1 -1
  14. package/dist/components/brutal/integration-grid.d.ts +1 -1
  15. package/dist/components/brutal/integration-grid.js +0 -3
  16. package/dist/components/brutal/integration-grid.js.map +1 -1
  17. package/dist/components/brutal/logo-cloud.d.ts +1 -1
  18. package/dist/components/brutal/logo-cloud.js +0 -3
  19. package/dist/components/brutal/logo-cloud.js.map +1 -1
  20. package/dist/components/brutal/newsletter.d.ts +1 -1
  21. package/dist/components/brutal/newsletter.js +0 -3
  22. package/dist/components/brutal/newsletter.js.map +1 -1
  23. package/dist/components/brutal/pricing-table.d.ts +1 -1
  24. package/dist/components/brutal/pricing-table.js +0 -3
  25. package/dist/components/brutal/pricing-table.js.map +1 -1
  26. package/dist/components/brutal/section.d.ts +1 -1
  27. package/dist/components/brutal/section.js +0 -3
  28. package/dist/components/brutal/section.js.map +1 -1
  29. package/dist/components/brutal/stats-bar.d.ts +1 -1
  30. package/dist/components/brutal/stats-bar.js +0 -3
  31. package/dist/components/brutal/stats-bar.js.map +1 -1
  32. package/dist/components/brutal/testimonials.js +1 -4
  33. package/dist/components/brutal/testimonials.js.map +1 -1
  34. package/dist/components/ui/badge.d.ts +1 -1
  35. package/dist/components/ui/button.d.ts +1 -1
  36. package/dist/components/ui/tabs.d.ts +1 -1
  37. package/dist/index.js +35 -65
  38. package/dist/index.js.map +1 -1
  39. package/dist/templates/index.js +35 -65
  40. package/dist/templates/index.js.map +1 -1
  41. package/dist/templates/saas-launch.js +32 -62
  42. package/dist/templates/saas-launch.js.map +1 -1
  43. package/dist/templates/studio.js +29 -59
  44. package/dist/templates/studio.js.map +1 -1
  45. package/dist/theme.css +5 -15
  46. package/package.json +1 -1
@@ -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-wrap gap-4",
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-muted-foreground", children: badge }),
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
- className: "flex gap-4 border-brutal border-foreground bg-background p-5 shadow-brutal transition-all duration-150 hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg",
597
- style: { borderLeftColor: accentColor, borderLeftWidth: "4px" },
598
- children: [
599
- 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 }),
600
- /* @__PURE__ */ jsxs("div", { children: [
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 = "blue",
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-muted-foreground", children: badge }),
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 gap-4", children: [
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: "lg",
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-wrap gap-4", children: [
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: "lg",
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(--section-blue))", variant: "torn-paper" }),
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: "blue"
1354
+ color: "brand-muted"
1385
1355
  }
1386
1356
  ),
1387
- /* @__PURE__ */ jsx(SectionDivider, { from: "hsl(var(--section-blue))", to: "hsl(var(--background))", variant: "wave" }),
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: "gray" }),
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(--section-gray))", variant: "diagonal" }),
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: "gray"
1474
+ color: "brand-muted"
1505
1475
  }
1506
1476
  ),
1507
- /* @__PURE__ */ jsx(SectionDivider, { from: "hsl(var(--section-gray))", to: "hsl(var(--background))", variant: "diagonal", flip: true })
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,