@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
|
@@ -20,9 +20,6 @@ var colorMap = {
|
|
|
20
20
|
white: "bg-background text-foreground",
|
|
21
21
|
brand: "bg-brand",
|
|
22
22
|
"brand-muted": "bg-brand-muted text-foreground",
|
|
23
|
-
blue: "bg-section-blue",
|
|
24
|
-
gray: "bg-section-gray text-foreground",
|
|
25
|
-
cream: "bg-section-cream text-foreground",
|
|
26
23
|
black: "bg-foreground text-background",
|
|
27
24
|
cta: "bg-cta"
|
|
28
25
|
};
|
|
@@ -229,11 +226,11 @@ function BrutalHero({
|
|
|
229
226
|
variant === "centered" && "mx-auto"
|
|
230
227
|
), children: description }),
|
|
231
228
|
/* @__PURE__ */ jsxs("div", { className: cn(
|
|
232
|
-
"flex flex-
|
|
233
|
-
variant === "centered" && "justify-center"
|
|
229
|
+
"flex flex-col gap-4 sm:flex-row sm:flex-wrap",
|
|
230
|
+
variant === "centered" && "sm:justify-center"
|
|
234
231
|
), children: [
|
|
235
|
-
/* @__PURE__ */ jsx(Button, { variant: ctaVariant, size: "xl", render: /* @__PURE__ */ jsx("a", { href: ctaHref }), children: ctaText }),
|
|
236
|
-
secondaryText && /* @__PURE__ */ jsx(Button, { variant: "outline", size: "xl", render: /* @__PURE__ */ jsx("a", { href: secondaryHref || "#" }), children: secondaryText })
|
|
232
|
+
/* @__PURE__ */ jsx(Button, { variant: ctaVariant, size: "xl", className: "w-full sm:w-auto", render: /* @__PURE__ */ jsx("a", { href: ctaHref }), children: ctaText }),
|
|
233
|
+
secondaryText && /* @__PURE__ */ jsx(Button, { variant: "outline", size: "xl", className: "w-full sm:w-auto", render: /* @__PURE__ */ jsx("a", { href: secondaryHref || "#" }), children: secondaryText })
|
|
237
234
|
] }),
|
|
238
235
|
proof && /* @__PURE__ */ jsxs("p", { className: "flex items-center gap-2 text-sm font-medium opacity-70", children: [
|
|
239
236
|
/* @__PURE__ */ jsx("span", { className: "inline-flex size-5 items-center justify-center border border-current text-xs", children: "\u2713" }),
|
|
@@ -313,14 +310,6 @@ function CardContent({ className, ...props }) {
|
|
|
313
310
|
}
|
|
314
311
|
);
|
|
315
312
|
}
|
|
316
|
-
var accentColors = [
|
|
317
|
-
"hsl(var(--brand))",
|
|
318
|
-
"hsl(var(--cta))",
|
|
319
|
-
"hsl(var(--section-blue))",
|
|
320
|
-
"hsl(12 85% 62%)",
|
|
321
|
-
"hsl(260 55% 68%)",
|
|
322
|
-
"hsl(25 75% 48%)"
|
|
323
|
-
];
|
|
324
313
|
var colMap = {
|
|
325
314
|
2: "sm:grid-cols-2",
|
|
326
315
|
3: "sm:grid-cols-2 lg:grid-cols-3",
|
|
@@ -338,7 +327,7 @@ function BrutalFeatureGrid({
|
|
|
338
327
|
}) {
|
|
339
328
|
return /* @__PURE__ */ jsxs(BrutalSection, { color, className, children: [
|
|
340
329
|
/* @__PURE__ */ jsxs("div", { className: "mb-12 max-w-2xl", children: [
|
|
341
|
-
badge && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-4 text-
|
|
330
|
+
badge && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-4 text-brand", children: badge }),
|
|
342
331
|
/* @__PURE__ */ jsx("h2", { className: "brutal-h2 mb-4", children: headline }),
|
|
343
332
|
description && /* @__PURE__ */ jsx("p", { className: "brutal-body text-muted-foreground", children: description })
|
|
344
333
|
] }),
|
|
@@ -354,8 +343,7 @@ function BrutalFeatureGrid({
|
|
|
354
343
|
{
|
|
355
344
|
feature,
|
|
356
345
|
variant,
|
|
357
|
-
index: i
|
|
358
|
-
accentColor: accentColors[i % accentColors.length]
|
|
346
|
+
index: i
|
|
359
347
|
},
|
|
360
348
|
feature.title
|
|
361
349
|
))
|
|
@@ -366,38 +354,23 @@ function BrutalFeatureGrid({
|
|
|
366
354
|
function FeatureCard({
|
|
367
355
|
feature,
|
|
368
356
|
variant,
|
|
369
|
-
index
|
|
370
|
-
accentColor
|
|
357
|
+
index
|
|
371
358
|
}) {
|
|
372
359
|
const isBentoFeatured = variant === "bento" && feature.featured;
|
|
373
360
|
if (variant === "icon-left") {
|
|
374
|
-
return /* @__PURE__ */ jsxs(
|
|
375
|
-
"div",
|
|
376
|
-
{
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
children:
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
feature.stat && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-1 text-brand", children: feature.stat }),
|
|
383
|
-
/* @__PURE__ */ jsx("h3", { className: "brutal-h4 mb-1", children: feature.title }),
|
|
384
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: feature.description })
|
|
385
|
-
] })
|
|
386
|
-
]
|
|
387
|
-
}
|
|
388
|
-
);
|
|
361
|
+
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: [
|
|
362
|
+
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 }),
|
|
363
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
364
|
+
feature.stat && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-1 text-brand", children: feature.stat }),
|
|
365
|
+
/* @__PURE__ */ jsx("h3", { className: "brutal-h4 mb-1", children: feature.title }),
|
|
366
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: feature.description })
|
|
367
|
+
] })
|
|
368
|
+
] });
|
|
389
369
|
}
|
|
390
370
|
if (variant === "numbered") {
|
|
391
371
|
return /* @__PURE__ */ jsxs(Card, { children: [
|
|
392
372
|
/* @__PURE__ */ jsxs(CardHeader, { children: [
|
|
393
|
-
/* @__PURE__ */ jsx(
|
|
394
|
-
"span",
|
|
395
|
-
{
|
|
396
|
-
className: "brutal-display mb-2 block opacity-15",
|
|
397
|
-
style: { color: accentColor },
|
|
398
|
-
children: String(index + 1).padStart(2, "0")
|
|
399
|
-
}
|
|
400
|
-
),
|
|
373
|
+
/* @__PURE__ */ jsx("span", { className: "brutal-display mb-2 block text-brand opacity-20", children: String(index + 1).padStart(2, "0") }),
|
|
401
374
|
feature.stat && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-1 text-brand", children: feature.stat }),
|
|
402
375
|
/* @__PURE__ */ jsx(CardTitle, { children: feature.title })
|
|
403
376
|
] }),
|
|
@@ -412,14 +385,7 @@ function FeatureCard({
|
|
|
412
385
|
),
|
|
413
386
|
children: [
|
|
414
387
|
/* @__PURE__ */ jsxs(CardHeader, { children: [
|
|
415
|
-
feature.icon && /* @__PURE__ */ jsx(
|
|
416
|
-
"div",
|
|
417
|
-
{
|
|
418
|
-
className: "mb-2 inline-flex size-12 items-center justify-center border-brutal border-foreground bg-brand-muted text-2xl shadow-brutal-sm",
|
|
419
|
-
style: { borderBottomColor: accentColor },
|
|
420
|
-
children: feature.icon
|
|
421
|
-
}
|
|
422
|
-
),
|
|
388
|
+
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 }),
|
|
423
389
|
feature.stat && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-1 text-brand", children: feature.stat }),
|
|
424
390
|
/* @__PURE__ */ jsx(CardTitle, { children: feature.title })
|
|
425
391
|
] }),
|
|
@@ -538,7 +504,7 @@ function BrutalTestimonials({
|
|
|
538
504
|
headline,
|
|
539
505
|
testimonials,
|
|
540
506
|
variant = "masonry",
|
|
541
|
-
color = "
|
|
507
|
+
color = "brand-muted",
|
|
542
508
|
pattern,
|
|
543
509
|
className
|
|
544
510
|
}) {
|
|
@@ -598,12 +564,13 @@ function CTAButtons({
|
|
|
598
564
|
secondaryText,
|
|
599
565
|
secondaryHref
|
|
600
566
|
}) {
|
|
601
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-center
|
|
567
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 sm:flex-row sm:flex-wrap sm:items-center sm:justify-center", children: [
|
|
602
568
|
/* @__PURE__ */ jsx(
|
|
603
569
|
Button,
|
|
604
570
|
{
|
|
605
571
|
variant: ctaVariant,
|
|
606
572
|
size: "xl",
|
|
573
|
+
className: "w-full sm:w-auto",
|
|
607
574
|
render: /* @__PURE__ */ jsx("a", { href: ctaHref }),
|
|
608
575
|
children: ctaText
|
|
609
576
|
}
|
|
@@ -612,7 +579,8 @@ function CTAButtons({
|
|
|
612
579
|
Button,
|
|
613
580
|
{
|
|
614
581
|
variant: "outline",
|
|
615
|
-
size: "
|
|
582
|
+
size: "xl",
|
|
583
|
+
className: "w-full sm:w-auto",
|
|
616
584
|
render: /* @__PURE__ */ jsx("a", { href: secondaryHref || "#" }),
|
|
617
585
|
children: secondaryText
|
|
618
586
|
}
|
|
@@ -642,12 +610,13 @@ function SplitCTA(props) {
|
|
|
642
610
|
/* @__PURE__ */ jsx("h2", { className: "brutal-h1 mb-6", children: props.headline }),
|
|
643
611
|
props.description && /* @__PURE__ */ jsx("p", { className: "brutal-body mb-4 opacity-80", children: props.description }),
|
|
644
612
|
props.stats && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-8 opacity-60", children: props.stats }),
|
|
645
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-
|
|
613
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 sm:flex-row sm:flex-wrap", children: [
|
|
646
614
|
/* @__PURE__ */ jsx(
|
|
647
615
|
Button,
|
|
648
616
|
{
|
|
649
617
|
variant: props.ctaVariant || "cta",
|
|
650
618
|
size: "xl",
|
|
619
|
+
className: "w-full sm:w-auto",
|
|
651
620
|
render: /* @__PURE__ */ jsx("a", { href: props.ctaHref || "#" }),
|
|
652
621
|
children: props.ctaText
|
|
653
622
|
}
|
|
@@ -656,7 +625,8 @@ function SplitCTA(props) {
|
|
|
656
625
|
Button,
|
|
657
626
|
{
|
|
658
627
|
variant: "outline",
|
|
659
|
-
size: "
|
|
628
|
+
size: "xl",
|
|
629
|
+
className: "w-full sm:w-auto",
|
|
660
630
|
render: /* @__PURE__ */ jsx("a", { href: props.secondaryHref || "#" }),
|
|
661
631
|
children: props.secondaryText
|
|
662
632
|
}
|
|
@@ -1338,8 +1308,8 @@ function FAQ({
|
|
|
1338
1308
|
className
|
|
1339
1309
|
}) {
|
|
1340
1310
|
return /* @__PURE__ */ jsxs(BrutalSection, { color, className, children: [
|
|
1341
|
-
(headline || badge) && /* @__PURE__ */ jsxs("div", { className: "mb-10 max-w-2xl", children: [
|
|
1342
|
-
badge && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-4 text-
|
|
1311
|
+
(headline || badge) && /* @__PURE__ */ jsxs("div", { className: "mb-10 mx-auto max-w-2xl", children: [
|
|
1312
|
+
badge && /* @__PURE__ */ jsx("p", { className: "brutal-label mb-4 text-brand", children: badge }),
|
|
1343
1313
|
headline && /* @__PURE__ */ jsx("h2", { className: "brutal-h2", children: headline })
|
|
1344
1314
|
] }),
|
|
1345
1315
|
/* @__PURE__ */ jsx(Accordion, { className: "mx-auto max-w-2xl", children: items.map((item, i) => /* @__PURE__ */ jsxs(
|