@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
@@ -359,11 +359,11 @@ function BrutalHero({
359
359
  variant === "centered" && "mx-auto"
360
360
  ), children: description }),
361
361
  /* @__PURE__ */ jsxs("div", { className: cn(
362
- "flex flex-wrap gap-4",
363
- variant === "centered" && "justify-center"
362
+ "flex flex-col gap-3 sm:flex-row sm:gap-4",
363
+ variant === "centered" && "sm:justify-center"
364
364
  ), children: [
365
- /* @__PURE__ */ jsx(Button, { variant: ctaVariant, size: "xl", render: /* @__PURE__ */ jsx("a", { href: ctaHref }), children: ctaText }),
366
- secondaryText && /* @__PURE__ */ jsx(Button, { variant: "outline", size: "xl", render: /* @__PURE__ */ jsx("a", { href: secondaryHref || "#" }), children: secondaryText })
365
+ /* @__PURE__ */ jsx(Button, { variant: ctaVariant, size: "xl", className: "w-full sm:w-auto", render: /* @__PURE__ */ jsx("a", { href: ctaHref }), children: ctaText }),
366
+ secondaryText && /* @__PURE__ */ jsx(Button, { variant: "outline", size: "xl", className: "w-full sm:w-auto", render: /* @__PURE__ */ jsx("a", { href: secondaryHref || "#" }), children: secondaryText })
367
367
  ] }),
368
368
  proof && /* @__PURE__ */ jsxs("p", { className: "flex items-center gap-2 text-sm font-medium opacity-70", children: [
369
369
  /* @__PURE__ */ jsx("span", { className: "inline-flex size-5 items-center justify-center border border-current text-xs", children: "\u2713" }),
@@ -574,6 +574,14 @@ function FeatureCard({
574
574
  index
575
575
  }) {
576
576
  const isBentoFeatured = variant === "bento" && feature.featured;
577
+ if (variant === "minimal") {
578
+ return /* @__PURE__ */ jsxs("div", { className: "group flex flex-col gap-3 border-l-4 border-l-brand py-1 pl-5", children: [
579
+ feature.icon && /* @__PURE__ */ jsx("div", { className: "text-2xl", children: feature.icon }),
580
+ feature.stat && /* @__PURE__ */ jsx("p", { className: "brutal-label text-brand", children: feature.stat }),
581
+ /* @__PURE__ */ jsx("h3", { className: "text-lg font-bold", children: feature.title }),
582
+ /* @__PURE__ */ jsx("p", { className: "text-sm leading-relaxed text-muted-foreground", children: feature.description })
583
+ ] });
584
+ }
577
585
  if (variant === "icon-left") {
578
586
  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: [
579
587
  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 }),
@@ -1024,12 +1032,13 @@ function CTAButtons({
1024
1032
  secondaryText,
1025
1033
  secondaryHref
1026
1034
  }) {
1027
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-center gap-4", children: [
1035
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3 sm:flex-row sm:justify-center sm:gap-4", children: [
1028
1036
  /* @__PURE__ */ jsx(
1029
1037
  Button,
1030
1038
  {
1031
1039
  variant: ctaVariant,
1032
1040
  size: "xl",
1041
+ className: "w-full sm:w-auto",
1033
1042
  render: /* @__PURE__ */ jsx("a", { href: ctaHref }),
1034
1043
  children: ctaText
1035
1044
  }
@@ -1038,7 +1047,8 @@ function CTAButtons({
1038
1047
  Button,
1039
1048
  {
1040
1049
  variant: "outline",
1041
- size: "lg",
1050
+ size: "xl",
1051
+ className: "w-full sm:w-auto",
1042
1052
  render: /* @__PURE__ */ jsx("a", { href: secondaryHref || "#" }),
1043
1053
  children: secondaryText
1044
1054
  }
@@ -1068,12 +1078,13 @@ function SplitCTA(props) {
1068
1078
  /* @__PURE__ */ jsx("h2", { className: "brutal-h1 mb-6", children: props.headline }),
1069
1079
  props.description && /* @__PURE__ */ jsx("p", { className: "brutal-body mb-4 opacity-80", children: props.description }),
1070
1080
  props.stats && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-8 opacity-60", children: props.stats }),
1071
- /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap gap-4", children: [
1081
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3 sm:flex-row sm:gap-4", children: [
1072
1082
  /* @__PURE__ */ jsx(
1073
1083
  Button,
1074
1084
  {
1075
1085
  variant: props.ctaVariant || "cta",
1076
1086
  size: "xl",
1087
+ className: "w-full sm:w-auto",
1077
1088
  render: /* @__PURE__ */ jsx("a", { href: props.ctaHref || "#" }),
1078
1089
  children: props.ctaText
1079
1090
  }
@@ -1082,7 +1093,8 @@ function SplitCTA(props) {
1082
1093
  Button,
1083
1094
  {
1084
1095
  variant: "outline",
1085
- size: "lg",
1096
+ size: "xl",
1097
+ className: "w-full sm:w-auto",
1086
1098
  render: /* @__PURE__ */ jsx("a", { href: props.secondaryHref || "#" }),
1087
1099
  children: props.secondaryText
1088
1100
  }