@snow-labs/brutal-ui 0.3.1 → 0.4.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.
Files changed (32) hide show
  1. package/dist/components/brutal/comparison-table.d.ts +23 -0
  2. package/dist/components/brutal/comparison-table.js +117 -0
  3. package/dist/components/brutal/comparison-table.js.map +1 -0
  4. package/dist/components/brutal/cta-section.js +8 -4
  5. package/dist/components/brutal/cta-section.js.map +1 -1
  6. package/dist/components/brutal/feature-grid.d.ts +1 -1
  7. package/dist/components/brutal/feature-grid.js +8 -0
  8. package/dist/components/brutal/feature-grid.js.map +1 -1
  9. package/dist/components/brutal/feature-showcase.d.ts +20 -0
  10. package/dist/components/brutal/feature-showcase.js +158 -0
  11. package/dist/components/brutal/feature-showcase.js.map +1 -0
  12. package/dist/components/brutal/hero.js +4 -4
  13. package/dist/components/brutal/hero.js.map +1 -1
  14. package/dist/components/brutal/index.d.ts +4 -0
  15. package/dist/components/brutal/index.js +277 -51
  16. package/dist/components/brutal/index.js.map +1 -1
  17. package/dist/components/brutal/marquee.d.ts +17 -0
  18. package/dist/components/brutal/marquee.js +66 -0
  19. package/dist/components/brutal/marquee.js.map +1 -0
  20. package/dist/components/brutal/mockup-window.d.ts +11 -0
  21. package/dist/components/brutal/mockup-window.js +80 -0
  22. package/dist/components/brutal/mockup-window.js.map +1 -0
  23. package/dist/index.d.ts +4 -0
  24. package/dist/index.js +235 -9
  25. package/dist/index.js.map +1 -1
  26. package/dist/templates/index.js +20 -8
  27. package/dist/templates/index.js.map +1 -1
  28. package/dist/templates/saas-launch.js +20 -8
  29. package/dist/templates/saas-launch.js.map +1 -1
  30. package/dist/templates/studio.js +20 -8
  31. package/dist/templates/studio.js.map +1 -1
  32. package/package.json +1 -1
@@ -364,11 +364,11 @@ function BrutalHero({
364
364
  variant === "centered" && "mx-auto"
365
365
  ), children: description }),
366
366
  /* @__PURE__ */ jsxs("div", { className: cn(
367
- "flex flex-wrap gap-4",
368
- variant === "centered" && "justify-center"
367
+ "flex flex-col gap-3 sm:flex-row sm:gap-4",
368
+ variant === "centered" && "sm:justify-center"
369
369
  ), 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 })
370
+ /* @__PURE__ */ jsx(Button, { variant: ctaVariant, size: "xl", className: "w-full sm:w-auto", render: /* @__PURE__ */ jsx("a", { href: ctaHref }), children: ctaText }),
371
+ secondaryText && /* @__PURE__ */ jsx(Button, { variant: "outline", size: "xl", className: "w-full sm:w-auto", render: /* @__PURE__ */ jsx("a", { href: secondaryHref || "#" }), children: secondaryText })
372
372
  ] }),
373
373
  proof && /* @__PURE__ */ jsxs("p", { className: "flex items-center gap-2 text-sm font-medium opacity-70", children: [
374
374
  /* @__PURE__ */ jsx("span", { className: "inline-flex size-5 items-center justify-center border border-current text-xs", children: "\u2713" }),
@@ -579,6 +579,14 @@ function FeatureCard({
579
579
  index
580
580
  }) {
581
581
  const isBentoFeatured = variant === "bento" && feature.featured;
582
+ if (variant === "minimal") {
583
+ return /* @__PURE__ */ jsxs("div", { className: "group flex flex-col gap-3 border-l-4 border-l-brand py-1 pl-5", children: [
584
+ feature.icon && /* @__PURE__ */ jsx("div", { className: "text-2xl", children: feature.icon }),
585
+ feature.stat && /* @__PURE__ */ jsx("p", { className: "brutal-label text-brand", children: feature.stat }),
586
+ /* @__PURE__ */ jsx("h3", { className: "text-lg font-bold", children: feature.title }),
587
+ /* @__PURE__ */ jsx("p", { className: "text-sm leading-relaxed text-muted-foreground", children: feature.description })
588
+ ] });
589
+ }
582
590
  if (variant === "icon-left") {
583
591
  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: [
584
592
  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 }),
@@ -1029,12 +1037,13 @@ function CTAButtons({
1029
1037
  secondaryText,
1030
1038
  secondaryHref
1031
1039
  }) {
1032
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-center gap-4", children: [
1040
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3 sm:flex-row sm:justify-center sm:gap-4", children: [
1033
1041
  /* @__PURE__ */ jsx(
1034
1042
  Button,
1035
1043
  {
1036
1044
  variant: ctaVariant,
1037
1045
  size: "xl",
1046
+ className: "w-full sm:w-auto",
1038
1047
  render: /* @__PURE__ */ jsx("a", { href: ctaHref }),
1039
1048
  children: ctaText
1040
1049
  }
@@ -1043,7 +1052,8 @@ function CTAButtons({
1043
1052
  Button,
1044
1053
  {
1045
1054
  variant: "outline",
1046
- size: "lg",
1055
+ size: "xl",
1056
+ className: "w-full sm:w-auto",
1047
1057
  render: /* @__PURE__ */ jsx("a", { href: secondaryHref || "#" }),
1048
1058
  children: secondaryText
1049
1059
  }
@@ -1073,12 +1083,13 @@ function SplitCTA(props) {
1073
1083
  /* @__PURE__ */ jsx("h2", { className: "brutal-h1 mb-6", children: props.headline }),
1074
1084
  props.description && /* @__PURE__ */ jsx("p", { className: "brutal-body mb-4 opacity-80", children: props.description }),
1075
1085
  props.stats && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-8 opacity-60", children: props.stats }),
1076
- /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap gap-4", children: [
1086
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3 sm:flex-row sm:gap-4", children: [
1077
1087
  /* @__PURE__ */ jsx(
1078
1088
  Button,
1079
1089
  {
1080
1090
  variant: props.ctaVariant || "cta",
1081
1091
  size: "xl",
1092
+ className: "w-full sm:w-auto",
1082
1093
  render: /* @__PURE__ */ jsx("a", { href: props.ctaHref || "#" }),
1083
1094
  children: props.ctaText
1084
1095
  }
@@ -1087,7 +1098,8 @@ function SplitCTA(props) {
1087
1098
  Button,
1088
1099
  {
1089
1100
  variant: "outline",
1090
- size: "lg",
1101
+ size: "xl",
1102
+ className: "w-full sm:w-auto",
1091
1103
  render: /* @__PURE__ */ jsx("a", { href: props.secondaryHref || "#" }),
1092
1104
  children: props.secondaryText
1093
1105
  }