@booga/vblocks 0.3.0 → 0.3.2

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/dist/index.js CHANGED
@@ -204,7 +204,7 @@ var FaqGridContentSchema = z.object({
204
204
  function FaqGrid({ content, theme }) {
205
205
  FaqGridContentSchema.parse(content);
206
206
  const { heading, items } = content;
207
- return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DStack, { px: 6, py: 16, className: cn("max-w-5xl mx-auto gap-10"), children: [
207
+ return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DStack, { px: 6, py: 16, className: cn("max-w-6xl mx-auto gap-10"), children: [
208
208
  /* @__PURE__ */ jsx(DBox, { as: "h2", className: cn("text-3xl font-bold tracking-tight text-center"), children: heading }),
209
209
  /* @__PURE__ */ jsx(DGrid, { columns: 2, gap: 4, children: items.map((item, i) => /* @__PURE__ */ jsxs(Card, { children: [
210
210
  /* @__PURE__ */ jsx(CardHeader, { children: /* @__PURE__ */ jsx(CardTitle, { as: "h3", children: item.question }) }),
@@ -404,7 +404,7 @@ function PortfolioSplit({ content, theme }) {
404
404
  }
405
405
  ),
406
406
  /* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsxs(DStack, { gap: 2, pt: 2, children: [
407
- /* @__PURE__ */ jsx(Badge, { variant: "secondary", children: item.category }),
407
+ /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: cn("self-start"), children: item.category }),
408
408
  /* @__PURE__ */ jsx(DBox, { as: "h3", className: cn("font-semibold text-lg"), children: item.title })
409
409
  ] }) })
410
410
  ] }, i)) })
@@ -443,7 +443,7 @@ function PortfolioGrid({ content, theme }) {
443
443
  }
444
444
  ),
445
445
  /* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsxs(DStack, { gap: 2, pt: 2, children: [
446
- /* @__PURE__ */ jsx(Badge, { variant: "secondary", children: item.category }),
446
+ /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: cn("self-start"), children: item.category }),
447
447
  /* @__PURE__ */ jsx(DBox, { as: "h3", className: cn("font-semibold text-lg"), children: item.title })
448
448
  ] }) })
449
449
  ] }, i)) }) });
@@ -471,7 +471,7 @@ function PostSplit({ content, theme }) {
471
471
  const { title, author, date, category, body, image } = content;
472
472
  return /* @__PURE__ */ jsx(DBox, { as: "article", style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DGrid, { columns: 2, px: 6, py: 16, gap: 16, align: "start", className: cn("max-w-6xl mx-auto"), children: [
473
473
  /* @__PURE__ */ jsxs(DStack, { gap: 6, className: cn("sticky top-16"), children: [
474
- category && /* @__PURE__ */ jsx(Badge, { variant: "secondary", children: category }),
474
+ category && /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: cn("self-start"), children: category }),
475
475
  /* @__PURE__ */ jsx(DBox, { as: "h1", className: cn("text-3xl font-bold tracking-tight leading-snug"), children: title }),
476
476
  /* @__PURE__ */ jsx(Separator, {}),
477
477
  /* @__PURE__ */ jsxs(DInline, { gap: 2, color: "muted", className: cn("text-sm"), children: [
@@ -515,7 +515,7 @@ function PostCentered({ content, theme }) {
515
515
  PostCenteredContentSchema.parse(content);
516
516
  const { title, author, date, category, body } = content;
517
517
  return /* @__PURE__ */ jsx(DBox, { as: "article", style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DStack, { px: 6, py: 16, gap: 6, className: cn("max-w-2xl mx-auto"), children: [
518
- category && /* @__PURE__ */ jsx(Badge, { variant: "secondary", children: category }),
518
+ category && /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: cn("self-start"), children: category }),
519
519
  /* @__PURE__ */ jsx(DBox, { as: "h1", className: cn("text-4xl font-bold tracking-tight leading-snug"), children: title }),
520
520
  /* @__PURE__ */ jsxs(DInline, { gap: 2, color: "muted", className: cn("text-sm"), children: [
521
521
  /* @__PURE__ */ jsx(DBox, { as: "span", children: author }),
@@ -590,7 +590,7 @@ var TeamGridContentSchema = z.object({
590
590
  function TeamGrid({ content, theme }) {
591
591
  TeamGridContentSchema.parse(content);
592
592
  const { heading, members } = content;
593
- return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DStack, { px: 6, py: 16, className: cn("max-w-5xl mx-auto gap-10"), children: [
593
+ return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DStack, { px: 6, py: 16, className: cn("max-w-6xl mx-auto gap-10"), children: [
594
594
  /* @__PURE__ */ jsx(DBox, { as: "h2", className: cn("text-3xl font-bold tracking-tight text-center"), children: heading }),
595
595
  /* @__PURE__ */ jsx(DGrid, { columns: 3, gap: 6, children: members.map((member, i) => /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsxs(DStack, { gap: 3, align: "center", pt: 4, className: cn("text-center"), children: [
596
596
  /* @__PURE__ */ jsxs(Avatar, { className: cn("w-16 h-16"), children: [
@@ -625,7 +625,7 @@ var TestimonialSplitContentSchema = z.object({
625
625
  function TestimonialSplit({ content, theme }) {
626
626
  TestimonialSplitContentSchema.parse(content);
627
627
  const { quote, author, role, company, avatar } = content;
628
- return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": "Testimonial", style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DGrid, { columns: 2, px: 6, gap: 16, align: "center", className: cn("max-w-5xl mx-auto py-20"), children: [
628
+ return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": "Testimonial", style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DGrid, { columns: 2, px: 6, gap: 16, align: "center", className: cn("max-w-6xl mx-auto py-20"), children: [
629
629
  /* @__PURE__ */ jsx(
630
630
  DBox,
631
631
  {
@@ -675,7 +675,7 @@ var TestimonialGridContentSchema = z.object({
675
675
  function TestimonialGrid({ content, theme }) {
676
676
  TestimonialGridContentSchema.parse(content);
677
677
  const { heading, items } = content;
678
- return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DStack, { px: 6, py: 16, className: cn("max-w-5xl mx-auto gap-10"), children: [
678
+ return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DStack, { px: 6, py: 16, className: cn("max-w-6xl mx-auto gap-10"), children: [
679
679
  /* @__PURE__ */ jsx(DBox, { as: "h2", className: cn("text-3xl font-bold tracking-tight text-center"), children: heading }),
680
680
  /* @__PURE__ */ jsx(DGrid, { columns: 3, gap: 6, children: items.map((item, i) => /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsxs(DStack, { gap: 4, pt: 4, children: [
681
681
  /* @__PURE__ */ jsx(DBox, { as: "blockquote", className: cn("text-sm leading-relaxed"), children: /* @__PURE__ */ jsx(DBox, { as: "p", children: item.quote }) }),
@@ -734,7 +734,7 @@ function BlogSplit({ content, theme }) {
734
734
  }
735
735
  ),
736
736
  /* @__PURE__ */ jsxs(DStack, { gap: 2, children: [
737
- featured.category && /* @__PURE__ */ jsx(Badge, { variant: "secondary", children: featured.category }),
737
+ featured.category && /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: cn("self-start"), children: featured.category }),
738
738
  /* @__PURE__ */ jsx(DBox, { as: "h3", className: cn("text-xl font-semibold"), children: featured.title }),
739
739
  /* @__PURE__ */ jsx(DBox, { as: "p", color: "muted", children: featured.excerpt }),
740
740
  /* @__PURE__ */ jsx(DBox, { as: "time", dateTime: featured.date, color: "muted", className: cn("text-xs"), children: featured.date })
@@ -751,7 +751,7 @@ function BlogSplit({ content, theme }) {
751
751
  }
752
752
  ),
753
753
  /* @__PURE__ */ jsxs(DStack, { gap: 1, children: [
754
- post.category && /* @__PURE__ */ jsx(Badge, { variant: "secondary", children: post.category }),
754
+ post.category && /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: cn("self-start"), children: post.category }),
755
755
  /* @__PURE__ */ jsx(DBox, { as: "h3", className: cn("font-semibold leading-snug"), children: post.title }),
756
756
  /* @__PURE__ */ jsx(DBox, { as: "time", dateTime: post.date, color: "muted", className: cn("text-xs"), children: post.date })
757
757
  ] })
@@ -796,7 +796,7 @@ function BlogGrid({ content, theme }) {
796
796
  }
797
797
  ),
798
798
  /* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsxs(DStack, { gap: 2, pt: 2, children: [
799
- post.category && /* @__PURE__ */ jsx(Badge, { variant: "secondary", children: post.category }),
799
+ post.category && /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: cn("self-start"), children: post.category }),
800
800
  /* @__PURE__ */ jsx(DBox, { as: "h3", className: cn("font-semibold leading-snug"), children: post.title }),
801
801
  /* @__PURE__ */ jsx(DBox, { as: "p", color: "muted", className: cn("text-sm"), children: post.excerpt }),
802
802
  /* @__PURE__ */ jsx(DBox, { as: "time", dateTime: post.date, color: "muted", className: cn("text-xs"), children: post.date })
@@ -810,7 +810,7 @@ var BlogGridDefaultContent = {
810
810
  heading: "From the blog",
811
811
  posts: [
812
812
  { title: "Designing for composability", excerpt: "Modular thinking at scale.", date: "2026-05-01", category: "Design", image: { src: "https://placehold.co/480x320", alt: "Design post" } },
813
- { title: "Type-safe content at runtime", excerpt: "Zod as single source of truth.", date: "2026-04-18", image: { src: "https://placehold.co/480x320", alt: "Types post" } },
813
+ { title: "Type-safe content at runtime", excerpt: "Zod as single source of truth.", date: "2026-04-18", category: "Engineering", image: { src: "https://placehold.co/480x320", alt: "Types post" } },
814
814
  { title: "Tree-shaking section blocks", excerpt: "Lean bundles, per-category entry points.", date: "2026-04-05", category: "Engineering", image: { src: "https://placehold.co/480x320", alt: "Bundling post" } }
815
815
  ]
816
816
  };
@@ -874,7 +874,7 @@ var BusinessGridContentSchema = z.object({
874
874
  function BusinessGrid({ content, theme }) {
875
875
  BusinessGridContentSchema.parse(content);
876
876
  const { heading, services } = content;
877
- return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DStack, { px: 6, py: 16, className: cn("max-w-5xl mx-auto gap-10"), children: [
877
+ return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DStack, { px: 6, py: 16, className: cn("max-w-6xl mx-auto gap-10"), children: [
878
878
  /* @__PURE__ */ jsx(DBox, { as: "h2", className: cn("text-3xl font-bold tracking-tight text-center"), children: heading }),
879
879
  /* @__PURE__ */ jsx(DGrid, { columns: 2, gap: 6, children: services.map((service, i) => /* @__PURE__ */ jsxs(Card, { children: [
880
880
  /* @__PURE__ */ jsx(CardHeader, { children: /* @__PURE__ */ jsxs(DStack, { gap: 2, children: [
@@ -947,7 +947,7 @@ var FeaturesGridContentSchema = z.object({
947
947
  function FeaturesGrid({ content, theme }) {
948
948
  FeaturesGridContentSchema.parse(content);
949
949
  const { heading, features } = content;
950
- return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DStack, { px: 6, py: 16, className: cn("max-w-5xl mx-auto gap-10"), children: [
950
+ return /* @__PURE__ */ jsx(DBox, { as: "section", "aria-label": heading, style: themeStyle(theme), children: /* @__PURE__ */ jsxs(DStack, { px: 6, py: 16, className: cn("max-w-6xl mx-auto gap-10"), children: [
951
951
  /* @__PURE__ */ jsx(DBox, { as: "h2", className: cn("text-3xl font-bold tracking-tight text-center"), children: heading }),
952
952
  /* @__PURE__ */ jsx(DGrid, { columns: 3, gap: 6, children: features.map((feature, i) => /* @__PURE__ */ jsxs(Card, { children: [
953
953
  /* @__PURE__ */ jsx(CardHeader, { children: /* @__PURE__ */ jsxs(DStack, { gap: 2, children: [