@nebutra/ui 2.0.0 → 3.0.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 (43) hide show
  1. package/dist/{canonical-Bf4czR2u.d.ts → canonical-DEhT4VfS.d.ts} +71 -120
  2. package/dist/card-DunB1gKE.d.ts +105 -0
  3. package/dist/components/index.d.ts +33 -4
  4. package/dist/components/index.js +225 -89
  5. package/dist/components/index.js.map +1 -1
  6. package/dist/editorial/index.d.ts +2 -2
  7. package/dist/editorial/index.js +75 -1
  8. package/dist/editorial/index.js.map +1 -1
  9. package/dist/empty-state-bmfHCOuN.d.ts +86 -0
  10. package/dist/hooks/index.d.ts +18 -1
  11. package/dist/hooks/index.js +120 -5
  12. package/dist/hooks/index.js.map +1 -1
  13. package/dist/index.d.ts +1 -1
  14. package/dist/layout/index.d.ts +17 -58
  15. package/dist/layout/index.js +366 -126
  16. package/dist/layout/index.js.map +1 -1
  17. package/dist/layouts/index.d.ts +1 -1
  18. package/dist/layouts/index.js +89 -15
  19. package/dist/layouts/index.js.map +1 -1
  20. package/dist/patterns/index.d.ts +38 -44
  21. package/dist/patterns/index.js +470 -278
  22. package/dist/patterns/index.js.map +1 -1
  23. package/dist/primitives/canonical.d.ts +3 -1
  24. package/dist/primitives/canonical.js +495 -231
  25. package/dist/primitives/canonical.js.map +1 -1
  26. package/dist/primitives/index.d.ts +90 -62
  27. package/dist/primitives/index.js +1129 -1185
  28. package/dist/primitives/index.js.map +1 -1
  29. package/dist/tailwind.preset.d.ts +32 -32
  30. package/dist/tailwind.preset.js +24 -20
  31. package/dist/tailwind.preset.js.map +1 -1
  32. package/dist/theme/index.d.ts +1 -110
  33. package/dist/typography/fonts.css +8 -16
  34. package/dist/typography/index.d.ts +29 -45
  35. package/dist/typography/index.js +26 -14
  36. package/dist/typography/index.js.map +1 -1
  37. package/dist/utils/index.d.ts +18 -12
  38. package/dist/utils/index.js +94 -18
  39. package/dist/utils/index.js.map +1 -1
  40. package/package.json +6 -10
  41. package/src/typography/fonts.css +8 -16
  42. package/dist/styles/brand-override.css +0 -61
  43. package/src/styles/brand-override.css +0 -61
@@ -225,7 +225,7 @@ interface ThemedSectionProps extends Omit<React.HTMLAttributes<HTMLElement>, "ch
225
225
  * @example
226
226
  * <ThemedSection
227
227
  * theme={{
228
- * backgroundColor: "bg-[var(--neutral-2)]",
228
+ * backgroundColor: "bg-neutral-2",
229
229
  * pattern: "grid",
230
230
  * patternColor: "hsl(var(--accent))",
231
231
  * patternOpacity: 0.05,
@@ -1,11 +1,85 @@
1
1
  "use client";
2
2
  import { clsx } from 'clsx';
3
- import { twMerge } from 'tailwind-merge';
3
+ import { extendTailwindMerge } from 'tailwind-merge';
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
5
  import * as React from 'react';
6
6
  import { useReducedMotion, motion } from 'framer-motion';
7
7
 
8
8
  // src/utils/cn.ts
9
+
10
+ // src/utils/tw-merge-theme.generated.ts
11
+ var TW_MERGE_THEME = {
12
+ breakpoint: ["3xl", "shell", "tight", "xs"],
13
+ container: ["content", "text", "wide"],
14
+ ease: ["brand", "in", "in-out", "out", "spring"],
15
+ font: ["cn", "display", "heading", "mono", "sans"],
16
+ leading: ["display", "heading"],
17
+ radius: ["2xl", "3xl", "button", "card", "full", "lg", "md", "none", "panel", "sm", "xl", "xs"],
18
+ shadow: [
19
+ "2xl",
20
+ "ambient-glow",
21
+ "ambient-lg",
22
+ "ambient-md",
23
+ "ambient-sm",
24
+ "brand",
25
+ "brand-lg",
26
+ "glass-lg",
27
+ "glass-md",
28
+ "glass-sm",
29
+ "glow-accent",
30
+ "glow-accent-lg",
31
+ "glow-accent-sm",
32
+ "glow-primary",
33
+ "lg",
34
+ "md",
35
+ "sheen",
36
+ "sm",
37
+ "xl",
38
+ "xs"
39
+ ],
40
+ text: [
41
+ "2xl",
42
+ "2xs",
43
+ "3xl",
44
+ "4xl",
45
+ "5xl",
46
+ "6xl",
47
+ "7xl",
48
+ "8xl",
49
+ "9xl",
50
+ "base",
51
+ "body",
52
+ "display",
53
+ "label",
54
+ "lg",
55
+ "meta",
56
+ "sm",
57
+ "ui",
58
+ "xl",
59
+ "xs"
60
+ ],
61
+ tracking: ["display", "heading", "label", "tight"]
62
+ };
63
+ var TW_MERGE_CLASS_GROUPS = {
64
+ duration: [{ duration: ["cinematic", "flow", "micro", "reveal"] }]
65
+ };
66
+
67
+ // src/utils/cn.ts
68
+ var twMerge = extendTailwindMerge({
69
+ extend: {
70
+ theme: Object.fromEntries(
71
+ Object.entries(TW_MERGE_THEME).map(([key, values]) => [key, [...values]])
72
+ ),
73
+ classGroups: Object.fromEntries(
74
+ Object.entries(TW_MERGE_CLASS_GROUPS).map(([key, groups]) => [
75
+ key,
76
+ groups.map(
77
+ (group) => Object.fromEntries(Object.entries(group).map(([k, v]) => [k, [...v]]))
78
+ )
79
+ ])
80
+ )
81
+ }
82
+ });
9
83
  function cn(...inputs) {
10
84
  return twMerge(clsx(inputs));
11
85
  }
@@ -19,7 +93,7 @@ function BentoCard({ item }) {
19
93
  {
20
94
  className: cn(
21
95
  "group relative p-4 rounded-[var(--radius-xl)] overflow-hidden transition-[box-shadow,transform] duration-300 motion-reduce:transition-none motion-reduce:transform-none",
22
- "border border-[var(--neutral-6)] bg-white dark:bg-black",
96
+ "border border-neutral-6 bg-card",
23
97
  "hover:shadow-ambient-sm",
24
98
  "hover:-translate-y-0.5 will-change-transform",
25
99
  item.colSpan === 2 ? "md:col-span-2" : "col-span-1",
@@ -38,31 +112,31 @@ function BentoCard({ item }) {
38
112
  ),
39
113
  /* @__PURE__ */ jsxs("div", { className: "relative flex flex-col space-y-3", children: [
40
114
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
41
- /* @__PURE__ */ jsx("div", { className: "w-8 h-8 rounded-[var(--radius-lg)] flex items-center justify-center bg-black/5 group-hover:bg-gradient-to-br transition-[background-color,background-image] duration-300", children: item.icon }),
115
+ /* @__PURE__ */ jsx("div", { className: "w-8 h-8 rounded-[var(--radius-lg)] flex items-center justify-center bg-foreground/5 group-hover:bg-gradient-to-br transition-[background-color,background-image] duration-300", children: item.icon }),
42
116
  /* @__PURE__ */ jsx(
43
117
  "span",
44
118
  {
45
119
  className: cn(
46
120
  "text-xs font-medium px-2 py-1 rounded-[var(--radius-lg)] backdrop-blur-sm",
47
- "bg-black/5 text-[var(--neutral-10)]",
48
- "transition-colors duration-300 group-hover:bg-black/10"
121
+ "bg-foreground/5 text-neutral-10",
122
+ "transition-colors duration-300 group-hover:bg-foreground/10"
49
123
  ),
50
124
  children: item.status || "Active"
51
125
  }
52
126
  )
53
127
  ] }),
54
128
  /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
55
- /* @__PURE__ */ jsxs("h3", { className: "font-medium text-[var(--neutral-12)] tracking-tight text-[15px]", children: [
129
+ /* @__PURE__ */ jsxs("h3", { className: "font-medium text-neutral-12 tracking-tight text-[15px]", children: [
56
130
  item.title,
57
- item.meta && /* @__PURE__ */ jsx("span", { className: "ml-2 text-xs text-[var(--neutral-9)] font-normal", children: item.meta })
131
+ item.meta && /* @__PURE__ */ jsx("span", { className: "ml-2 text-xs text-neutral-9 font-normal", children: item.meta })
58
132
  ] }),
59
- /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--neutral-10)] leading-snug font-[425]", children: item.description })
133
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-neutral-10 leading-snug font-[425]", children: item.description })
60
134
  ] }),
61
135
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mt-2", children: [
62
- /* @__PURE__ */ jsx("div", { className: "flex items-center space-x-2 text-xs text-[var(--neutral-9)]", children: item.tags?.map((tag, i) => /* @__PURE__ */ jsxs(
136
+ /* @__PURE__ */ jsx("div", { className: "flex items-center space-x-2 text-xs text-neutral-9", children: item.tags?.map((tag, i) => /* @__PURE__ */ jsxs(
63
137
  "span",
64
138
  {
65
- className: "px-2 py-1 rounded-[var(--radius-md)] bg-black/5 backdrop-blur-sm transition-colors duration-micro hover:bg-black/10",
139
+ className: "px-2 py-1 rounded-[var(--radius-md)] bg-foreground/5 backdrop-blur-sm transition-colors duration-micro hover:bg-foreground/10",
66
140
  children: [
67
141
  "#",
68
142
  tag
@@ -70,14 +144,14 @@ function BentoCard({ item }) {
70
144
  },
71
145
  i
72
146
  )) }),
73
- /* @__PURE__ */ jsx("span", { className: "text-xs text-[var(--neutral-9)] opacity-0 group-hover:opacity-100 transition-opacity", children: item.cta || "Explore \u2192" })
147
+ /* @__PURE__ */ jsx("span", { className: "text-xs text-neutral-9 opacity-0 group-hover:opacity-100 transition-opacity", children: item.cta || "Explore \u2192" })
74
148
  ] })
75
149
  ] }),
76
150
  /* @__PURE__ */ jsx(
77
151
  "div",
78
152
  {
79
153
  className: cn(
80
- "absolute inset-0 -z-10 rounded-[var(--radius-xl)] p-px bg-gradient-to-br from-transparent via-gray-100/50 to-transparent dark:via-white/10 transition-opacity duration-300",
154
+ "absolute inset-0 -z-10 rounded-[var(--radius-xl)] p-px bg-gradient-to-br from-transparent via-foreground/10 to-transparent transition-opacity duration-300",
81
155
  item.hasPersistentHover ? "opacity-100" : "opacity-0 group-hover:opacity-100"
82
156
  )
83
157
  }
@@ -458,7 +532,7 @@ var sectionThemeDefs = {
458
532
  },
459
533
  // Architecture: "Terminal Matrix" - Monochrome with subtle pattern
460
534
  architecture: {
461
- backgroundColor: "bg-[var(--neutral-1)]",
535
+ backgroundColor: "bg-neutral-1",
462
536
  pattern: "dots",
463
537
  patternColor: "currentColor",
464
538
  patternOpacity: 0.03
@@ -470,7 +544,7 @@ var sectionThemeDefs = {
470
544
  patternColor: "hsl(var(--accent))",
471
545
  patternOpacity: 0.04,
472
546
  accentColor: "hsl(var(--accent))",
473
- gradient: "bg-gradient-to-br from-cyan-500/5 via-transparent to-fuchsia-500/5"
547
+ gradient: "bg-gradient-to-br from-[hsl(var(--chart-2))]/5 via-transparent to-[hsl(var(--chart-3))]/5"
474
548
  },
475
549
  // Features: "Capability Map" - Subtle tech pattern
476
550
  features: {
@@ -528,7 +602,7 @@ var sectionThemeDefs = {
528
602
  },
529
603
  // Terminal: "Developer Immersion" - Code environment feel
530
604
  terminal: {
531
- backgroundColor: "bg-[var(--neutral-1)]",
605
+ backgroundColor: "bg-neutral-1",
532
606
  pattern: "none"
533
607
  }
534
608
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/cn.ts","../../src/layouts/bento-grid.tsx","../../src/layouts/SectionContainer.tsx","../../src/decorations/GridPattern.tsx","../../src/decorations/patterns/CrossPattern.tsx","../../src/decorations/patterns/DotMatrix.tsx","../../src/decorations/patterns/FloatingSpots.tsx","../../src/layouts/SectionTheme.tsx"],"names":["jsx","React2","jsxs","React3","React4","React5","React6"],"mappings":"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","file":"index.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport type * as React from \"react\";\nimport { cn } from \"../utils/cn\";\n\nexport interface BentoItem {\n /** Card title */\n title: string;\n /** Card description */\n description: string;\n /** Icon element to display */\n icon: React.ReactNode;\n /** Status badge text */\n status?: string;\n /** Array of tag strings */\n tags?: string[];\n /** Meta information (version, count, etc.) */\n meta?: string;\n /** Call-to-action text */\n cta?: string;\n /** Column span (1 or 2) */\n colSpan?: 1 | 2;\n /** Whether to show hover state persistently */\n hasPersistentHover?: boolean;\n}\n\nexport interface BentoGridProps {\n /** Array of bento items to display */\n items: BentoItem[];\n /** Additional className */\n className?: string;\n}\n\n/**\n * BentoGrid - Feature showcase grid layout\n *\n * A responsive grid layout for displaying feature cards with icons,\n * descriptions, tags, and status badges. Supports variable column spans.\n *\n * @example\n * ```tsx\n * <BentoGrid\n * items={[\n * {\n * title: \"Analytics\",\n * description: \"Real-time metrics\",\n * icon: <TrendingUp className=\"w-4 h-4\" />,\n * status: \"Live\",\n * tags: [\"Stats\", \"AI\"],\n * colSpan: 2,\n * },\n * // ...\n * ]}\n * />\n * ```\n */\nexport function BentoGrid({ items, className }: BentoGridProps) {\n return (\n <div className={cn(\"grid grid-cols-1 md:grid-cols-3 gap-3 p-4 max-w-wide mx-auto\", className)}>\n {items.map((item, index) => (\n <BentoCard key={index} item={item} />\n ))}\n </div>\n );\n}\n\nBentoGrid.displayName = \"BentoGrid\";\n\ninterface BentoCardProps {\n item: BentoItem;\n}\n\nfunction BentoCard({ item }: BentoCardProps) {\n return (\n <div\n className={cn(\n \"group relative p-4 rounded-[var(--radius-xl)] overflow-hidden transition-[box-shadow,transform] duration-300 motion-reduce:transition-none motion-reduce:transform-none\",\n \"border border-[var(--neutral-6)] bg-white dark:bg-black\",\n \"hover:shadow-ambient-sm\",\n \"hover:-translate-y-0.5 will-change-transform\",\n item.colSpan === 2 ? \"md:col-span-2\" : \"col-span-1\",\n item.hasPersistentHover && [\"shadow-ambient-sm -translate-y-0.5\"],\n )}\n >\n {/* Background pattern */}\n <div\n className={cn(\n \"absolute inset-0 transition-opacity duration-300\",\n item.hasPersistentHover ? \"opacity-100\" : \"opacity-0 group-hover:opacity-100\",\n )}\n >\n <div className=\"absolute inset-0 bg-[radial-gradient(circle_at_center,rgba(0,0,0,0.02)_1px,transparent_1px)] dark:bg-[radial-gradient(circle_at_center,rgba(255,255,255,0.02)_1px,transparent_1px)] bg-[length:4px_4px]\" />\n </div>\n\n <div className=\"relative flex flex-col space-y-3\">\n {/* Header */}\n <div className=\"flex items-center justify-between\">\n <div className=\"w-8 h-8 rounded-[var(--radius-lg)] flex items-center justify-center bg-black/5 group-hover:bg-gradient-to-br transition-[background-color,background-image] duration-300\">\n {item.icon}\n </div>\n <span\n className={cn(\n \"text-xs font-medium px-2 py-1 rounded-[var(--radius-lg)] backdrop-blur-sm\",\n \"bg-black/5 text-[var(--neutral-10)]\",\n \"transition-colors duration-300 group-hover:bg-black/10\",\n )}\n >\n {item.status || \"Active\"}\n </span>\n </div>\n\n {/* Content */}\n <div className=\"space-y-2\">\n <h3 className=\"font-medium text-[var(--neutral-12)] tracking-tight text-[15px]\">\n {item.title}\n {item.meta && (\n <span className=\"ml-2 text-xs text-[var(--neutral-9)] font-normal\">{item.meta}</span>\n )}\n </h3>\n <p className=\"text-sm text-[var(--neutral-10)] leading-snug font-[425]\">\n {item.description}\n </p>\n </div>\n\n {/* Footer */}\n <div className=\"flex items-center justify-between mt-2\">\n <div className=\"flex items-center space-x-2 text-xs text-[var(--neutral-9)]\">\n {item.tags?.map((tag, i) => (\n <span\n key={i}\n className=\"px-2 py-1 rounded-[var(--radius-md)] bg-black/5 backdrop-blur-sm transition-colors duration-micro hover:bg-black/10\"\n >\n #{tag}\n </span>\n ))}\n </div>\n <span className=\"text-xs text-[var(--neutral-9)] opacity-0 group-hover:opacity-100 transition-opacity\">\n {item.cta || \"Explore →\"}\n </span>\n </div>\n </div>\n\n {/* Border gradient */}\n <div\n className={cn(\n \"absolute inset-0 -z-10 rounded-[var(--radius-xl)] p-px bg-gradient-to-br from-transparent via-gray-100/50 to-transparent dark:via-white/10 transition-opacity duration-300\",\n item.hasPersistentHover ? \"opacity-100\" : \"opacity-0 group-hover:opacity-100\",\n )}\n />\n </div>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../utils/cn\";\n\n/* ─────────────────────────────────────────────────────────────────────────────\n * SectionContainer Component\n *\n * A standardized section wrapper that enforces consistent vertical rhythm,\n * max-width constraints, and responsive padding across the landing page.\n *\n * Usage:\n * <SectionContainer>\n * <SectionContainer.Header>\n * <h2>Section Title</h2>\n * </SectionContainer.Header>\n * <SectionContainer.Content>\n * Main content...\n * </SectionContainer.Content>\n * </SectionContainer>\n * ───────────────────────────────────────────────────────────────────────────── */\n\ntype SectionSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\ntype SectionSpacing = \"sm\" | \"md\" | \"lg\" | \"xl\";\n\n/**\n * Sizes resolve to the container contract in @nebutra/tokens. `lg` keeps its\n * 1152px width (max-w-6xl was already the content width); `md` and `xl` moved\n * off max-w-5xl / max-w-7xl, which the contract forbids.\n */\nconst maxWidthMap: Record<SectionSize, string> = {\n sm: \"max-w-3xl\", // 768px\n md: \"max-w-text\", // 896px\n lg: \"max-w-content\", // 1152px\n xl: \"max-w-wide\", // 1400px\n full: \"max-w-none\",\n};\n\nconst verticalSpacingMap: Record<SectionSpacing, string> = {\n sm: \"py-12 md:py-16\",\n md: \"py-16 md:py-24\",\n lg: \"py-24 md:py-32\",\n xl: \"py-32 md:py-48\",\n};\n\n/* ─────────────────────────────────────────────────────────────────────────── */\n\nexport interface SectionContainerProps extends React.HTMLAttributes<HTMLElement> {\n as?: \"section\" | \"div\" | \"article\";\n size?: SectionSize;\n spacing?: SectionSpacing;\n centered?: boolean;\n noPadding?: boolean;\n}\n\nconst SectionContainerRoot = React.forwardRef<HTMLElement, SectionContainerProps>(\n (\n {\n className,\n as: Component = \"section\",\n size = \"lg\",\n spacing: verticalSpacing = \"md\",\n centered = true,\n noPadding = false,\n children,\n ...props\n },\n ref,\n ) => {\n return (\n <Component\n ref={ref as React.Ref<HTMLDivElement>}\n className={cn(\n \"relative w-full\",\n !noPadding && \"px-4 sm:px-6 lg:px-8\",\n verticalSpacingMap[verticalSpacing],\n className,\n )}\n {...props}\n >\n <div className={cn(\"w-full\", maxWidthMap[size], centered && \"mx-auto\")}>{children}</div>\n </Component>\n );\n },\n);\nSectionContainerRoot.displayName = \"SectionContainer\";\n\n/* ─────────────────────────────────────────────────────────────────────────── */\n\nexport interface SectionHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n centered?: boolean;\n spacing?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst SectionHeader = React.forwardRef<HTMLDivElement, SectionHeaderProps>(\n ({ className, centered = true, spacing = \"md\", children, ...props }, ref) => {\n const spacingMap = {\n sm: \"mb-8\",\n md: \"mb-12\",\n lg: \"mb-16\",\n };\n\n return (\n <div\n ref={ref}\n className={cn(spacingMap[spacing], centered && \"text-center\", className)}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\nSectionHeader.displayName = \"SectionContainer.Header\";\n\n/* ─────────────────────────────────────────────────────────────────────────── */\n\nexport type SectionContentProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst SectionContent = React.forwardRef<HTMLDivElement, SectionContentProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"relative\", className)} {...props}>\n {children}\n </div>\n );\n },\n);\nSectionContent.displayName = \"SectionContainer.Content\";\n\n/* ─────────────────────────────────────────────────────────────────────────── */\n\nexport interface SectionFooterProps extends React.HTMLAttributes<HTMLDivElement> {\n centered?: boolean;\n spacing?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst SectionFooter = React.forwardRef<HTMLDivElement, SectionFooterProps>(\n ({ className, centered = true, spacing = \"md\", children, ...props }, ref) => {\n const spacingMap = {\n sm: \"mt-8\",\n md: \"mt-12\",\n lg: \"mt-16\",\n };\n\n return (\n <div\n ref={ref}\n className={cn(spacingMap[spacing], centered && \"text-center\", className)}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\nSectionFooter.displayName = \"SectionContainer.Footer\";\n\n/* ─────────────────────────────────────────────────────────────────────────── */\n\n// Compound component assembly\nexport const SectionContainer = Object.assign(SectionContainerRoot, {\n Header: SectionHeader,\n Content: SectionContent,\n Footer: SectionFooter,\n});\n\n// Named exports\nexport { SectionContainerRoot, SectionContent, SectionFooter, SectionHeader };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../utils/cn\";\n\n/* ─────────────────────────────────────────────────────────────────────────────\n * GridPattern Component\n *\n * A decorative SVG grid background pattern.\n *\n * Usage:\n * <GridPattern /> // Default grid\n * <GridPattern variant=\"dots\" /> // Dot pattern\n * <GridPattern fade=\"top\" /> // Fade from top\n * ───────────────────────────────────────────────────────────────────────────── */\n\nexport interface GridPatternProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: \"lines\" | \"dots\" | \"crosses\";\n size?: number;\n strokeWidth?: number;\n fade?: \"none\" | \"top\" | \"bottom\" | \"both\" | \"radial\";\n color?: string | undefined;\n}\n\nexport const GridPattern = React.forwardRef<HTMLDivElement, GridPatternProps>(\n (\n {\n className,\n variant = \"lines\",\n size = 32,\n strokeWidth = 1,\n fade = \"none\",\n color = \"currentColor\",\n ...props\n },\n ref,\n ) => {\n const patternId = React.useId();\n const maskId = React.useId();\n\n const renderPattern = () => {\n switch (variant) {\n case \"dots\":\n return <circle cx={size / 2} cy={size / 2} r={strokeWidth} fill={color} />;\n case \"crosses\": {\n const crossSize = 6;\n const cx = size / 2;\n const cy = size / 2;\n return (\n <>\n <line\n x1={cx - crossSize / 2}\n y1={cy}\n x2={cx + crossSize / 2}\n y2={cy}\n stroke={color}\n strokeWidth={strokeWidth}\n />\n <line\n x1={cx}\n y1={cy - crossSize / 2}\n x2={cx}\n y2={cy + crossSize / 2}\n stroke={color}\n strokeWidth={strokeWidth}\n />\n </>\n );\n }\n default:\n return (\n <path\n d={`M ${size} 0 L 0 0 0 ${size}`}\n fill=\"none\"\n stroke={color}\n strokeWidth={strokeWidth}\n />\n );\n }\n };\n\n const getMaskGradient = () => {\n switch (fade) {\n case \"top\":\n return (\n <linearGradient id={maskId} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor=\"white\" stopOpacity=\"0\" />\n <stop offset=\"100%\" stopColor=\"white\" stopOpacity=\"1\" />\n </linearGradient>\n );\n case \"bottom\":\n return (\n <linearGradient id={maskId} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor=\"white\" stopOpacity=\"1\" />\n <stop offset=\"100%\" stopColor=\"white\" stopOpacity=\"0\" />\n </linearGradient>\n );\n case \"both\":\n return (\n <linearGradient id={maskId} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor=\"white\" stopOpacity=\"0\" />\n <stop offset=\"50%\" stopColor=\"white\" stopOpacity=\"1\" />\n <stop offset=\"100%\" stopColor=\"white\" stopOpacity=\"0\" />\n </linearGradient>\n );\n case \"radial\":\n return (\n <radialGradient id={maskId} cx=\"50%\" cy=\"50%\" r=\"50%\">\n <stop offset=\"0%\" stopColor=\"white\" stopOpacity=\"1\" />\n <stop offset=\"100%\" stopColor=\"white\" stopOpacity=\"0\" />\n </radialGradient>\n );\n default:\n return null;\n }\n };\n\n const maskGradient = getMaskGradient();\n\n return (\n <div\n ref={ref}\n className={cn(\n \"pointer-events-none absolute inset-0 overflow-hidden text-border/40\",\n className,\n )}\n aria-hidden=\"true\"\n {...props}\n >\n <svg aria-hidden=\"true\" className=\"absolute inset-0 h-full w-full\">\n <defs>\n <pattern\n id={patternId}\n x=\"0\"\n y=\"0\"\n width={size}\n height={size}\n patternUnits=\"userSpaceOnUse\"\n >\n {renderPattern()}\n </pattern>\n {maskGradient}\n </defs>\n\n {fade !== \"none\" ? (\n <>\n <mask id={`${maskId}-mask`}>\n <rect width=\"100%\" height=\"100%\" fill={`url(#${maskId})`} />\n </mask>\n <rect\n width=\"100%\"\n height=\"100%\"\n fill={`url(#${patternId})`}\n mask={`url(#${maskId}-mask)`}\n />\n </>\n ) : (\n <rect width=\"100%\" height=\"100%\" fill={`url(#${patternId})`} />\n )}\n </svg>\n </div>\n );\n },\n);\nGridPattern.displayName = \"GridPattern\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface CrossPatternProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Size of each cross in pixels (default: 6) */\n crossSize?: number;\n /** Gap between crosses in pixels (default: 32) */\n gap?: number;\n /** Line thickness in pixels (default: 1) */\n strokeWidth?: number;\n /**\n * Cross color. Accepts any valid CSS color value.\n * - Use \"currentColor\" to inherit text color (default)\n * - Use CSS variables: \"hsl(var(--border))\" for theme compatibility\n */\n color?: string | undefined;\n /** Opacity 0-1 (default: 0.03) */\n opacity?: number | undefined;\n}\n\n/**\n * CrossPattern - A subtle cross/plus sign background pattern.\n *\n * Creates a technical, grid-like pattern with small crosses.\n * Ideal for feature sections and technical content areas.\n *\n * @example\n * // Using currentColor (inherits text color)\n * <CrossPattern opacity={0.03} />\n *\n * @example\n * // Using semantic CSS variables\n * <CrossPattern color=\"hsl(var(--muted-foreground))\" opacity={0.05} />\n */\nexport const CrossPattern = React.forwardRef<HTMLDivElement, CrossPatternProps>(\n (\n {\n crossSize = 6,\n gap = 32,\n strokeWidth = 1,\n color = \"currentColor\",\n opacity = 0.03,\n className,\n ...props\n },\n ref,\n ) => {\n const patternSize = crossSize + gap;\n const halfCross = crossSize / 2;\n const halfStroke = strokeWidth / 2;\n\n // SVG pattern for crosses\n const svgPattern = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${patternSize}\" height=\"${patternSize}\" viewBox=\"0 0 ${patternSize} ${patternSize}\">\n <rect \n x=\"${halfCross - halfStroke}\" \n y=\"0\" \n width=\"${strokeWidth}\" \n height=\"${crossSize}\" \n fill=\"${color}\" \n />\n <rect \n x=\"0\" \n y=\"${halfCross - halfStroke}\" \n width=\"${crossSize}\" \n height=\"${strokeWidth}\" \n fill=\"${color}\" \n />\n </svg>\n `.trim();\n\n const encodedSvg = encodeURIComponent(svgPattern);\n\n return (\n <div\n ref={ref}\n className={cn(\"absolute inset-0 pointer-events-none\", className)}\n style={{\n backgroundImage: `url(\"data:image/svg+xml,${encodedSvg}\")`,\n backgroundSize: `${patternSize}px ${patternSize}px`,\n opacity,\n }}\n aria-hidden=\"true\"\n {...props}\n />\n );\n },\n);\n\nCrossPattern.displayName = \"CrossPattern\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DotMatrixProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Dot size in pixels (default: 2) */\n dotSize?: number;\n /** Gap between dots in pixels (default: 16) */\n gap?: number;\n /**\n * Dot color. Accepts any valid CSS color value.\n * - Use \"currentColor\" to inherit text color (default)\n * - Use CSS variables: \"hsl(var(--border))\" for theme compatibility\n */\n color?: string | undefined;\n /** Opacity 0-1 (default: 0.04) */\n opacity?: number | undefined;\n}\n\n/**\n * DotMatrix - A subtle dot grid background pattern.\n *\n * Creates a minimal, high-density dot pattern that adds texture\n * without cognitive load. Ideal for hero sections and CTAs.\n *\n * @example\n * // Using currentColor (inherits text color)\n * <DotMatrix opacity={0.04} />\n *\n * @example\n * // Using semantic CSS variables\n * <DotMatrix color=\"hsl(var(--border))\" opacity={0.06} />\n */\nexport const DotMatrix = React.forwardRef<HTMLDivElement, DotMatrixProps>(\n ({ dotSize = 2, gap = 16, color = \"currentColor\", opacity = 0.04, className, ...props }, ref) => {\n const patternSize = dotSize + gap;\n\n return (\n <div\n ref={ref}\n className={cn(\"absolute inset-0 pointer-events-none\", className)}\n style={{\n backgroundImage: `radial-gradient(circle, ${color} ${dotSize / 2}px, transparent ${dotSize / 2}px)`,\n backgroundSize: `${patternSize}px ${patternSize}px`,\n backgroundPosition: `${gap / 2}px ${gap / 2}px`,\n opacity,\n }}\n aria-hidden=\"true\"\n {...props}\n />\n );\n },\n);\n\nDotMatrix.displayName = \"DotMatrix\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { motion, useReducedMotion } from \"../../shared/animation/motion\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface FloatingSpotsProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Number of floating spots (default: 12) */\n count?: number;\n /** Minimum spot size in pixels (default: 40) */\n minSize?: number;\n /** Maximum spot size in pixels (default: 120) */\n maxSize?: number;\n /**\n * Spot color.\n * Use CSS custom properties for theme compatibility:\n * - \"hsl(var(--accent))\" for accent color\n * - \"hsl(var(--primary))\" for primary brand color\n */\n color?: string | undefined;\n /** Minimum opacity 0-1 (default: 0.05) */\n minOpacity?: number | undefined;\n /** Maximum opacity 0-1 (default: 0.15) */\n maxOpacity?: number | undefined;\n /** Animation cycle duration in seconds (default: 20) */\n cycleDuration?: number;\n /** Blur amount in pixels (default: 40) */\n blur?: number;\n}\n\ninterface Spot {\n id: number;\n x: number;\n y: number;\n size: number;\n opacity: number;\n duration: number;\n delay: number;\n driftX: number;\n driftY: number;\n}\n\n/**\n * FloatingSpots - Animated floating light spots for ambient depth.\n *\n * Creates softly glowing, slowly drifting light spots that add\n * atmospheric depth to sections. Uses subtle blur for ethereal effect.\n *\n * @example\n * // Using semantic CSS variables (recommended)\n * <FloatingSpots color=\"hsl(var(--accent))\" />\n *\n * @example\n * // Using custom hex colors (for decorative/artistic purposes)\n * <FloatingSpots color=\"hsl(var(--primary))\" />\n */\nexport const FloatingSpots = React.forwardRef<HTMLDivElement, FloatingSpotsProps>(\n (\n {\n count = 12,\n minSize = 40,\n maxSize = 120,\n color = \"hsl(var(--accent))\",\n minOpacity = 0.05,\n maxOpacity = 0.15,\n cycleDuration = 20,\n blur = 40,\n className,\n ...props\n },\n ref,\n ) => {\n const shouldReduceMotion = useReducedMotion();\n const spots = React.useMemo<Spot[]>(() => {\n return Array.from({ length: count }, (_, i) => ({\n id: i,\n x: Math.random() * 100,\n y: Math.random() * 100,\n size: minSize + Math.random() * (maxSize - minSize),\n opacity: minOpacity + Math.random() * (maxOpacity - minOpacity),\n duration: cycleDuration * (0.8 + Math.random() * 0.4),\n delay: Math.random() * -cycleDuration,\n driftX: (Math.random() - 0.5) * 30,\n driftY: (Math.random() - 0.5) * 30,\n }));\n }, [count, minSize, maxSize, minOpacity, maxOpacity, cycleDuration]);\n\n return (\n <div\n ref={ref}\n className={cn(\"absolute inset-0 overflow-hidden pointer-events-none\", className)}\n aria-hidden=\"true\"\n {...props}\n >\n {spots.map((spot) => (\n <motion.div\n key={spot.id}\n className=\"absolute rounded-full\"\n style={{\n left: `${spot.x}%`,\n top: `${spot.y}%`,\n width: spot.size,\n height: spot.size,\n backgroundColor: color,\n opacity: shouldReduceMotion ? spot.opacity : undefined,\n filter: `blur(${blur}px)`,\n transform: \"translate(-50%, -50%)\",\n }}\n animate={\n shouldReduceMotion\n ? { opacity: spot.opacity }\n : {\n x: [0, spot.driftX, 0, -spot.driftX / 2, 0],\n y: [0, spot.driftY / 2, spot.driftY, 0],\n opacity: [spot.opacity, spot.opacity * 1.3, spot.opacity],\n scale: [1, 1.1, 1],\n }\n }\n transition={\n shouldReduceMotion\n ? { duration: 0 }\n : {\n duration: spot.duration,\n repeat: Infinity,\n ease: \"easeInOut\",\n delay: spot.delay,\n }\n }\n />\n ))}\n </div>\n );\n },\n);\n\nFloatingSpots.displayName = \"FloatingSpots\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { GridPattern } from \"../decorations/GridPattern\";\nimport { CrossPattern, DotMatrix, FloatingSpots } from \"../decorations/patterns\";\nimport { cn } from \"../utils/cn\";\n\n/**\n * Section theme configuration.\n *\n * Note: For decorative/artistic purposes, themes may use hex colors as they\n * represent specific visual identities. These are exempt from strict Primer\n * compliance per WARP.md \"Exemptions\" section.\n */\nexport interface SectionThemeConfig {\n /** Background color class (Tailwind) */\n backgroundColor?: string;\n /** Pattern type to use */\n pattern?: \"dots\" | \"crosses\" | \"grid\" | \"floating\" | \"none\";\n /**\n * Pattern color.\n * - Use \"currentColor\" to inherit from context\n * - Use \"hsl(var(--accent))\" for semantic colors\n * - Hex colors are allowed for artistic/decorative themes\n */\n patternColor?: string;\n /** Pattern opacity 0-1 */\n patternOpacity?: number;\n /**\n * Accent color for highlights.\n * Hex colors are allowed for artistic/decorative themes.\n */\n accentColor?: string;\n /** Additional gradient overlay (Tailwind class) */\n gradient?: string;\n /** Custom pattern props */\n patternProps?: Record<string, unknown>;\n}\n\n/**\n * Predefined section themes based on DESIGN.md Section 11.5.\n *\n * These themes define visual territories for different sections.\n * Some use specific hex colors for artistic effect (exempt from Primer\n * strict compliance per WARP.md).\n */\nconst sectionThemeDefs = {\n // Hero: \"Cosmic Launch\" - Deep blue gradient with floating particles\n hero: {\n backgroundColor: \"bg-background\",\n pattern: \"floating\",\n patternColor: \"hsl(var(--accent))\",\n patternOpacity: 0.1,\n gradient: \"bg-gradient-to-b from-primary/5 via-transparent to-transparent\",\n },\n\n // Architecture: \"Terminal Matrix\" - Monochrome with subtle pattern\n architecture: {\n backgroundColor: \"bg-[var(--neutral-1)]\",\n pattern: \"dots\",\n patternColor: \"currentColor\",\n patternOpacity: 0.03,\n },\n\n // AI-Native: \"Neon Network\" - Dark with neon accents\n aiNative: {\n backgroundColor: \"bg-background\",\n pattern: \"dots\",\n patternColor: \"hsl(var(--accent))\",\n patternOpacity: 0.04,\n accentColor: \"hsl(var(--accent))\",\n gradient: \"bg-gradient-to-br from-cyan-500/5 via-transparent to-fuchsia-500/5\",\n },\n\n // Features: \"Capability Map\" - Subtle tech pattern\n features: {\n backgroundColor: \"bg-background\",\n pattern: \"crosses\",\n patternColor: \"currentColor\",\n patternOpacity: 0.03,\n },\n\n // Multi-tenant: \"Access Graph\" - Amber isolation lines\n // Note: Uses specific amber for visual territory (exempt)\n multiTenant: {\n backgroundColor: \"bg-background\",\n pattern: \"grid\",\n patternColor: \"hsl(var(--warning, 43 96% 56%))\", // Warning/amber semantic\n patternOpacity: 0.03,\n accentColor: \"hsl(var(--warning, 43 96% 56%))\",\n },\n\n // Testimonials: \"Depth Gallery\" - Warm neutrals with vignette\n testimonials: {\n backgroundColor: \"bg-background\",\n pattern: \"floating\",\n patternColor: \"hsl(var(--warning, 48 96% 58%))\", // Warm yellow\n patternOpacity: 0.05,\n gradient:\n \"bg-[radial-gradient(ellipse_at_center,transparent_0%,hsl(var(--background)/0.4)_100%)]\",\n },\n\n // Vision: \"Contemplation Space\" - Maximum whitespace\n vision: {\n backgroundColor: \"bg-background\",\n pattern: \"none\",\n gradient: \"bg-gradient-to-b from-transparent via-primary/[0.02] to-transparent\",\n },\n\n // Pricing: \"Symmetry Order\" - Clean, minimal\n pricing: {\n backgroundColor: \"bg-background\",\n pattern: \"dots\",\n patternColor: \"currentColor\",\n patternOpacity: 0.02,\n },\n\n // CTA: \"Action Climax\" - Emphasis with gradient\n cta: {\n backgroundColor: \"bg-background\",\n pattern: \"dots\",\n patternColor: \"hsl(var(--primary))\",\n patternOpacity: 0.04,\n gradient: \"bg-gradient-to-t from-primary/10 via-transparent to-transparent\",\n },\n\n // Stats: \"Data Visualization\" - Clean with subtle pattern\n stats: {\n backgroundColor: \"bg-muted/30\",\n pattern: \"crosses\",\n patternColor: \"currentColor\",\n patternOpacity: 0.02,\n },\n\n // Terminal: \"Developer Immersion\" - Code environment feel\n terminal: {\n backgroundColor: \"bg-[var(--neutral-1)]\",\n pattern: \"none\",\n },\n} satisfies Record<string, SectionThemeConfig>;\n\n/** Names of the predefined section themes. */\nexport type SectionThemeName = keyof typeof sectionThemeDefs;\n\n/**\n * Predefined themes, keyed by a closed union so that `sectionThemes[name]`\n * is known to exist. Declaring this as `Record<string, …>` would erase the\n * literal keys and make every lookup `SectionThemeConfig | undefined`.\n */\nexport const sectionThemes: Record<SectionThemeName, SectionThemeConfig> = sectionThemeDefs;\n\nexport interface ThemedSectionProps extends Omit<React.HTMLAttributes<HTMLElement>, \"children\"> {\n /** Theme preset name or custom config */\n theme: SectionThemeName | SectionThemeConfig;\n /** Section content */\n children: React.ReactNode;\n /** Custom CSS variables for the section */\n cssVars?: Record<string, string>;\n /** Whether to include pattern (default: true) */\n showPattern?: boolean;\n}\n\n/**\n * ThemedSection - A section wrapper that applies visual territory theming.\n *\n * Applies consistent background patterns, colors, and gradients based on\n * predefined themes or custom configurations.\n *\n * @example\n * <ThemedSection theme=\"architecture\">\n * <h2>Architecture</h2>\n * <CodeBlock />\n * </ThemedSection>\n *\n * @example\n * <ThemedSection\n * theme={{\n * backgroundColor: \"bg-[var(--neutral-2)]\",\n * pattern: \"grid\",\n * patternColor: \"hsl(var(--accent))\",\n * patternOpacity: 0.05,\n * }}\n * >\n * Custom themed content\n * </ThemedSection>\n */\nexport const ThemedSection = React.forwardRef<HTMLElement, ThemedSectionProps>(\n ({ theme, children, className, cssVars, showPattern = true, ...props }, ref) => {\n const config = typeof theme === \"string\" ? sectionThemes[theme] : theme;\n\n const renderPattern = () => {\n if (!showPattern || config.pattern === \"none\") return null;\n\n const baseProps = {\n className: \"absolute inset-0 z-0\",\n };\n\n switch (config.pattern) {\n case \"dots\":\n return (\n <DotMatrix\n {...baseProps}\n color={config.patternColor}\n opacity={config.patternOpacity}\n {...(config.patternProps as object)}\n />\n );\n case \"crosses\":\n return (\n <CrossPattern\n {...baseProps}\n color={config.patternColor}\n opacity={config.patternOpacity}\n {...(config.patternProps as object)}\n />\n );\n case \"grid\":\n return (\n <GridPattern\n {...baseProps}\n color={config.patternColor}\n className={cn(baseProps.className, `opacity-[${config.patternOpacity}]`)}\n {...(config.patternProps as object)}\n />\n );\n case \"floating\":\n return (\n <FloatingSpots\n {...baseProps}\n color={config.patternColor}\n maxOpacity={config.patternOpacity}\n {...(config.patternProps as object)}\n />\n );\n default:\n return null;\n }\n };\n\n return (\n <section\n ref={ref}\n className={cn(\"relative overflow-hidden\", config.backgroundColor, className)}\n style={cssVars as React.CSSProperties}\n {...props}\n >\n {/* Pattern layer */}\n {renderPattern()}\n\n {/* Gradient overlay */}\n {config.gradient && (\n <div\n className={cn(\"absolute inset-0 z-0 pointer-events-none\", config.gradient)}\n aria-hidden=\"true\"\n />\n )}\n\n {/* Content layer */}\n <div className=\"relative z-10\">{children}</div>\n </section>\n );\n },\n);\n\nThemedSection.displayName = \"ThemedSection\";\n"]}
1
+ {"version":3,"sources":["../../src/utils/tw-merge-theme.generated.ts","../../src/utils/cn.ts","../../src/layouts/bento-grid.tsx","../../src/layouts/SectionContainer.tsx","../../src/decorations/GridPattern.tsx","../../src/decorations/patterns/CrossPattern.tsx","../../src/decorations/patterns/DotMatrix.tsx","../../src/decorations/patterns/FloatingSpots.tsx","../../src/layouts/SectionTheme.tsx"],"names":["jsx","React2","jsxs","React3","React4","React5","React6"],"mappings":"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","file":"index.js","sourcesContent":["// GENERATED by packages/design/ui/scripts/gen-tw-merge-theme.mjs — do not edit.\n// Source: the @theme blocks in packages/design/tokens/{styles,recipe}.css.\n\nexport const TW_MERGE_THEME = {\n breakpoint: [\"3xl\", \"shell\", \"tight\", \"xs\"],\n container: [\"content\", \"text\", \"wide\"],\n ease: [\"brand\", \"in\", \"in-out\", \"out\", \"spring\"],\n font: [\"cn\", \"display\", \"heading\", \"mono\", \"sans\"],\n leading: [\"display\", \"heading\"],\n radius: [\"2xl\", \"3xl\", \"button\", \"card\", \"full\", \"lg\", \"md\", \"none\", \"panel\", \"sm\", \"xl\", \"xs\"],\n shadow: [\n \"2xl\",\n \"ambient-glow\",\n \"ambient-lg\",\n \"ambient-md\",\n \"ambient-sm\",\n \"brand\",\n \"brand-lg\",\n \"glass-lg\",\n \"glass-md\",\n \"glass-sm\",\n \"glow-accent\",\n \"glow-accent-lg\",\n \"glow-accent-sm\",\n \"glow-primary\",\n \"lg\",\n \"md\",\n \"sheen\",\n \"sm\",\n \"xl\",\n \"xs\",\n ],\n text: [\n \"2xl\",\n \"2xs\",\n \"3xl\",\n \"4xl\",\n \"5xl\",\n \"6xl\",\n \"7xl\",\n \"8xl\",\n \"9xl\",\n \"base\",\n \"body\",\n \"display\",\n \"label\",\n \"lg\",\n \"meta\",\n \"sm\",\n \"ui\",\n \"xl\",\n \"xs\",\n ],\n tracking: [\"display\", \"heading\", \"label\", \"tight\"],\n} as const;\n\nexport const TW_MERGE_CLASS_GROUPS = {\n duration: [{ duration: [\"cinematic\", \"flow\", \"micro\", \"reveal\"] }],\n} as const;\n","import { type ClassValue, clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\nimport { TW_MERGE_CLASS_GROUPS, TW_MERGE_THEME } from \"./tw-merge-theme.generated\";\n\n/**\n * tailwind-merge only knows Tailwind's default scale. Every utility the design\n * tokens add (text-label, shadow-ambient-md, rounded-card, ease-brand,\n * max-w-wide, …) was otherwise an unknown class: `cn(\"text-label\n * text-destructive-strong\")` returned \"text-destructive-strong\" and the size fell away, and\n * `cn(\"rounded-card\", \"rounded-lg\")` kept both so the winner depended on\n * stylesheet order. The theme below is generated from the tokens' @theme blocks\n * (scripts/gen-tw-merge-theme.mjs), so a new token utility is known here the\n * moment it exists; a test fails if the generated file goes stale.\n */\nconst twMerge = extendTailwindMerge({\n extend: {\n theme: Object.fromEntries(\n Object.entries(TW_MERGE_THEME).map(([key, values]) => [key, [...values]]),\n ),\n classGroups: Object.fromEntries(\n Object.entries(TW_MERGE_CLASS_GROUPS).map(([key, groups]) => [\n key,\n groups.map((group) =>\n Object.fromEntries(Object.entries(group).map(([k, v]) => [k, [...v]])),\n ),\n ]),\n ),\n },\n});\n\n/** Kept for callers and tests that enumerate the design-system text steps. */\nexport const DESIGN_SYSTEM_TEXT_SIZES = TW_MERGE_THEME.text;\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport type * as React from \"react\";\nimport { cn } from \"../utils/cn\";\n\nexport interface BentoItem {\n /** Card title */\n title: string;\n /** Card description */\n description: string;\n /** Icon element to display */\n icon: React.ReactNode;\n /** Status badge text */\n status?: string;\n /** Array of tag strings */\n tags?: string[];\n /** Meta information (version, count, etc.) */\n meta?: string;\n /** Call-to-action text */\n cta?: string;\n /** Column span (1 or 2) */\n colSpan?: 1 | 2;\n /** Whether to show hover state persistently */\n hasPersistentHover?: boolean;\n}\n\nexport interface BentoGridProps {\n /** Array of bento items to display */\n items: BentoItem[];\n /** Additional className */\n className?: string;\n}\n\n/**\n * BentoGrid - Feature showcase grid layout\n *\n * A responsive grid layout for displaying feature cards with icons,\n * descriptions, tags, and status badges. Supports variable column spans.\n *\n * @example\n * ```tsx\n * <BentoGrid\n * items={[\n * {\n * title: \"Analytics\",\n * description: \"Real-time metrics\",\n * icon: <TrendingUp className=\"w-4 h-4\" />,\n * status: \"Live\",\n * tags: [\"Stats\", \"AI\"],\n * colSpan: 2,\n * },\n * // ...\n * ]}\n * />\n * ```\n */\nexport function BentoGrid({ items, className }: BentoGridProps) {\n return (\n <div className={cn(\"grid grid-cols-1 md:grid-cols-3 gap-3 p-4 max-w-wide mx-auto\", className)}>\n {items.map((item, index) => (\n <BentoCard key={index} item={item} />\n ))}\n </div>\n );\n}\n\nBentoGrid.displayName = \"BentoGrid\";\n\ninterface BentoCardProps {\n item: BentoItem;\n}\n\nfunction BentoCard({ item }: BentoCardProps) {\n return (\n <div\n className={cn(\n \"group relative p-4 rounded-[var(--radius-xl)] overflow-hidden transition-[box-shadow,transform] duration-300 motion-reduce:transition-none motion-reduce:transform-none\",\n \"border border-neutral-6 bg-card\",\n \"hover:shadow-ambient-sm\",\n \"hover:-translate-y-0.5 will-change-transform\",\n item.colSpan === 2 ? \"md:col-span-2\" : \"col-span-1\",\n item.hasPersistentHover && [\"shadow-ambient-sm -translate-y-0.5\"],\n )}\n >\n {/* Background pattern */}\n <div\n className={cn(\n \"absolute inset-0 transition-opacity duration-300\",\n item.hasPersistentHover ? \"opacity-100\" : \"opacity-0 group-hover:opacity-100\",\n )}\n >\n <div className=\"absolute inset-0 bg-[radial-gradient(circle_at_center,rgba(0,0,0,0.02)_1px,transparent_1px)] dark:bg-[radial-gradient(circle_at_center,rgba(255,255,255,0.02)_1px,transparent_1px)] bg-[length:4px_4px]\" />\n </div>\n\n <div className=\"relative flex flex-col space-y-3\">\n {/* Header */}\n <div className=\"flex items-center justify-between\">\n <div className=\"w-8 h-8 rounded-[var(--radius-lg)] flex items-center justify-center bg-foreground/5 group-hover:bg-gradient-to-br transition-[background-color,background-image] duration-300\">\n {item.icon}\n </div>\n <span\n className={cn(\n \"text-xs font-medium px-2 py-1 rounded-[var(--radius-lg)] backdrop-blur-sm\",\n \"bg-foreground/5 text-neutral-10\",\n \"transition-colors duration-300 group-hover:bg-foreground/10\",\n )}\n >\n {item.status || \"Active\"}\n </span>\n </div>\n\n {/* Content */}\n <div className=\"space-y-2\">\n <h3 className=\"font-medium text-neutral-12 tracking-tight text-[15px]\">\n {item.title}\n {item.meta && (\n <span className=\"ml-2 text-xs text-neutral-9 font-normal\">{item.meta}</span>\n )}\n </h3>\n <p className=\"text-sm text-neutral-10 leading-snug font-[425]\">{item.description}</p>\n </div>\n\n {/* Footer */}\n <div className=\"flex items-center justify-between mt-2\">\n <div className=\"flex items-center space-x-2 text-xs text-neutral-9\">\n {item.tags?.map((tag, i) => (\n <span\n key={i}\n className=\"px-2 py-1 rounded-[var(--radius-md)] bg-foreground/5 backdrop-blur-sm transition-colors duration-micro hover:bg-foreground/10\"\n >\n #{tag}\n </span>\n ))}\n </div>\n <span className=\"text-xs text-neutral-9 opacity-0 group-hover:opacity-100 transition-opacity\">\n {item.cta || \"Explore →\"}\n </span>\n </div>\n </div>\n\n {/* Border gradient */}\n <div\n className={cn(\n \"absolute inset-0 -z-10 rounded-[var(--radius-xl)] p-px bg-gradient-to-br from-transparent via-foreground/10 to-transparent transition-opacity duration-300\",\n item.hasPersistentHover ? \"opacity-100\" : \"opacity-0 group-hover:opacity-100\",\n )}\n />\n </div>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../utils/cn\";\n\n/* ─────────────────────────────────────────────────────────────────────────────\n * SectionContainer Component\n *\n * A standardized section wrapper that enforces consistent vertical rhythm,\n * max-width constraints, and responsive padding across the landing page.\n *\n * Usage:\n * <SectionContainer>\n * <SectionContainer.Header>\n * <h2>Section Title</h2>\n * </SectionContainer.Header>\n * <SectionContainer.Content>\n * Main content...\n * </SectionContainer.Content>\n * </SectionContainer>\n * ───────────────────────────────────────────────────────────────────────────── */\n\ntype SectionSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\ntype SectionSpacing = \"sm\" | \"md\" | \"lg\" | \"xl\";\n\n/**\n * Sizes resolve to the container contract in @nebutra/tokens. `lg` keeps its\n * 1152px width (max-w-6xl was already the content width); `md` and `xl` moved\n * off max-w-5xl / max-w-7xl, which the contract forbids.\n */\nconst maxWidthMap: Record<SectionSize, string> = {\n sm: \"max-w-3xl\", // 768px\n md: \"max-w-text\", // 896px\n lg: \"max-w-content\", // 1152px\n xl: \"max-w-wide\", // 1400px\n full: \"max-w-none\",\n};\n\nconst verticalSpacingMap: Record<SectionSpacing, string> = {\n sm: \"py-12 md:py-16\",\n md: \"py-16 md:py-24\",\n lg: \"py-24 md:py-32\",\n xl: \"py-32 md:py-48\",\n};\n\n/* ─────────────────────────────────────────────────────────────────────────── */\n\nexport interface SectionContainerProps extends React.HTMLAttributes<HTMLElement> {\n as?: \"section\" | \"div\" | \"article\";\n size?: SectionSize;\n spacing?: SectionSpacing;\n centered?: boolean;\n noPadding?: boolean;\n}\n\nconst SectionContainerRoot = React.forwardRef<HTMLElement, SectionContainerProps>(\n (\n {\n className,\n as: Component = \"section\",\n size = \"lg\",\n spacing: verticalSpacing = \"md\",\n centered = true,\n noPadding = false,\n children,\n ...props\n },\n ref,\n ) => {\n return (\n <Component\n ref={ref as React.Ref<HTMLDivElement>}\n className={cn(\n \"relative w-full\",\n !noPadding && \"px-4 sm:px-6 lg:px-8\",\n verticalSpacingMap[verticalSpacing],\n className,\n )}\n {...props}\n >\n <div className={cn(\"w-full\", maxWidthMap[size], centered && \"mx-auto\")}>{children}</div>\n </Component>\n );\n },\n);\nSectionContainerRoot.displayName = \"SectionContainer\";\n\n/* ─────────────────────────────────────────────────────────────────────────── */\n\nexport interface SectionHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n centered?: boolean;\n spacing?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst SectionHeader = React.forwardRef<HTMLDivElement, SectionHeaderProps>(\n ({ className, centered = true, spacing = \"md\", children, ...props }, ref) => {\n const spacingMap = {\n sm: \"mb-8\",\n md: \"mb-12\",\n lg: \"mb-16\",\n };\n\n return (\n <div\n ref={ref}\n className={cn(spacingMap[spacing], centered && \"text-center\", className)}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\nSectionHeader.displayName = \"SectionContainer.Header\";\n\n/* ─────────────────────────────────────────────────────────────────────────── */\n\nexport type SectionContentProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst SectionContent = React.forwardRef<HTMLDivElement, SectionContentProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"relative\", className)} {...props}>\n {children}\n </div>\n );\n },\n);\nSectionContent.displayName = \"SectionContainer.Content\";\n\n/* ─────────────────────────────────────────────────────────────────────────── */\n\nexport interface SectionFooterProps extends React.HTMLAttributes<HTMLDivElement> {\n centered?: boolean;\n spacing?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst SectionFooter = React.forwardRef<HTMLDivElement, SectionFooterProps>(\n ({ className, centered = true, spacing = \"md\", children, ...props }, ref) => {\n const spacingMap = {\n sm: \"mt-8\",\n md: \"mt-12\",\n lg: \"mt-16\",\n };\n\n return (\n <div\n ref={ref}\n className={cn(spacingMap[spacing], centered && \"text-center\", className)}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\nSectionFooter.displayName = \"SectionContainer.Footer\";\n\n/* ─────────────────────────────────────────────────────────────────────────── */\n\n// Compound component assembly\nexport const SectionContainer = Object.assign(SectionContainerRoot, {\n Header: SectionHeader,\n Content: SectionContent,\n Footer: SectionFooter,\n});\n\n// Named exports\nexport { SectionContainerRoot, SectionContent, SectionFooter, SectionHeader };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../utils/cn\";\n\n/* ─────────────────────────────────────────────────────────────────────────────\n * GridPattern Component\n *\n * A decorative SVG grid background pattern.\n *\n * Usage:\n * <GridPattern /> // Default grid\n * <GridPattern variant=\"dots\" /> // Dot pattern\n * <GridPattern fade=\"top\" /> // Fade from top\n * ───────────────────────────────────────────────────────────────────────────── */\n\nexport interface GridPatternProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: \"lines\" | \"dots\" | \"crosses\";\n size?: number;\n strokeWidth?: number;\n fade?: \"none\" | \"top\" | \"bottom\" | \"both\" | \"radial\";\n color?: string | undefined;\n}\n\nexport const GridPattern = React.forwardRef<HTMLDivElement, GridPatternProps>(\n (\n {\n className,\n variant = \"lines\",\n size = 32,\n strokeWidth = 1,\n fade = \"none\",\n color = \"currentColor\",\n ...props\n },\n ref,\n ) => {\n const patternId = React.useId();\n const maskId = React.useId();\n\n const renderPattern = () => {\n switch (variant) {\n case \"dots\":\n return <circle cx={size / 2} cy={size / 2} r={strokeWidth} fill={color} />;\n case \"crosses\": {\n const crossSize = 6;\n const cx = size / 2;\n const cy = size / 2;\n return (\n <>\n <line\n x1={cx - crossSize / 2}\n y1={cy}\n x2={cx + crossSize / 2}\n y2={cy}\n stroke={color}\n strokeWidth={strokeWidth}\n />\n <line\n x1={cx}\n y1={cy - crossSize / 2}\n x2={cx}\n y2={cy + crossSize / 2}\n stroke={color}\n strokeWidth={strokeWidth}\n />\n </>\n );\n }\n default:\n return (\n <path\n d={`M ${size} 0 L 0 0 0 ${size}`}\n fill=\"none\"\n stroke={color}\n strokeWidth={strokeWidth}\n />\n );\n }\n };\n\n const getMaskGradient = () => {\n switch (fade) {\n case \"top\":\n return (\n <linearGradient id={maskId} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor=\"white\" stopOpacity=\"0\" />\n <stop offset=\"100%\" stopColor=\"white\" stopOpacity=\"1\" />\n </linearGradient>\n );\n case \"bottom\":\n return (\n <linearGradient id={maskId} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor=\"white\" stopOpacity=\"1\" />\n <stop offset=\"100%\" stopColor=\"white\" stopOpacity=\"0\" />\n </linearGradient>\n );\n case \"both\":\n return (\n <linearGradient id={maskId} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor=\"white\" stopOpacity=\"0\" />\n <stop offset=\"50%\" stopColor=\"white\" stopOpacity=\"1\" />\n <stop offset=\"100%\" stopColor=\"white\" stopOpacity=\"0\" />\n </linearGradient>\n );\n case \"radial\":\n return (\n <radialGradient id={maskId} cx=\"50%\" cy=\"50%\" r=\"50%\">\n <stop offset=\"0%\" stopColor=\"white\" stopOpacity=\"1\" />\n <stop offset=\"100%\" stopColor=\"white\" stopOpacity=\"0\" />\n </radialGradient>\n );\n default:\n return null;\n }\n };\n\n const maskGradient = getMaskGradient();\n\n return (\n <div\n ref={ref}\n className={cn(\n \"pointer-events-none absolute inset-0 overflow-hidden text-border/40\",\n className,\n )}\n aria-hidden=\"true\"\n {...props}\n >\n <svg aria-hidden=\"true\" className=\"absolute inset-0 h-full w-full\">\n <defs>\n <pattern\n id={patternId}\n x=\"0\"\n y=\"0\"\n width={size}\n height={size}\n patternUnits=\"userSpaceOnUse\"\n >\n {renderPattern()}\n </pattern>\n {maskGradient}\n </defs>\n\n {fade !== \"none\" ? (\n <>\n <mask id={`${maskId}-mask`}>\n <rect width=\"100%\" height=\"100%\" fill={`url(#${maskId})`} />\n </mask>\n <rect\n width=\"100%\"\n height=\"100%\"\n fill={`url(#${patternId})`}\n mask={`url(#${maskId}-mask)`}\n />\n </>\n ) : (\n <rect width=\"100%\" height=\"100%\" fill={`url(#${patternId})`} />\n )}\n </svg>\n </div>\n );\n },\n);\nGridPattern.displayName = \"GridPattern\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface CrossPatternProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Size of each cross in pixels (default: 6) */\n crossSize?: number;\n /** Gap between crosses in pixels (default: 32) */\n gap?: number;\n /** Line thickness in pixels (default: 1) */\n strokeWidth?: number;\n /**\n * Cross color. Accepts any valid CSS color value.\n * - Use \"currentColor\" to inherit text color (default)\n * - Use CSS variables: \"hsl(var(--border))\" for theme compatibility\n */\n color?: string | undefined;\n /** Opacity 0-1 (default: 0.03) */\n opacity?: number | undefined;\n}\n\n/**\n * CrossPattern - A subtle cross/plus sign background pattern.\n *\n * Creates a technical, grid-like pattern with small crosses.\n * Ideal for feature sections and technical content areas.\n *\n * @example\n * // Using currentColor (inherits text color)\n * <CrossPattern opacity={0.03} />\n *\n * @example\n * // Using semantic CSS variables\n * <CrossPattern color=\"hsl(var(--muted-foreground))\" opacity={0.05} />\n */\nexport const CrossPattern = React.forwardRef<HTMLDivElement, CrossPatternProps>(\n (\n {\n crossSize = 6,\n gap = 32,\n strokeWidth = 1,\n color = \"currentColor\",\n opacity = 0.03,\n className,\n ...props\n },\n ref,\n ) => {\n const patternSize = crossSize + gap;\n const halfCross = crossSize / 2;\n const halfStroke = strokeWidth / 2;\n\n // SVG pattern for crosses\n const svgPattern = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${patternSize}\" height=\"${patternSize}\" viewBox=\"0 0 ${patternSize} ${patternSize}\">\n <rect \n x=\"${halfCross - halfStroke}\" \n y=\"0\" \n width=\"${strokeWidth}\" \n height=\"${crossSize}\" \n fill=\"${color}\" \n />\n <rect \n x=\"0\" \n y=\"${halfCross - halfStroke}\" \n width=\"${crossSize}\" \n height=\"${strokeWidth}\" \n fill=\"${color}\" \n />\n </svg>\n `.trim();\n\n const encodedSvg = encodeURIComponent(svgPattern);\n\n return (\n <div\n ref={ref}\n className={cn(\"absolute inset-0 pointer-events-none\", className)}\n style={{\n backgroundImage: `url(\"data:image/svg+xml,${encodedSvg}\")`,\n backgroundSize: `${patternSize}px ${patternSize}px`,\n opacity,\n }}\n aria-hidden=\"true\"\n {...props}\n />\n );\n },\n);\n\nCrossPattern.displayName = \"CrossPattern\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DotMatrixProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Dot size in pixels (default: 2) */\n dotSize?: number;\n /** Gap between dots in pixels (default: 16) */\n gap?: number;\n /**\n * Dot color. Accepts any valid CSS color value.\n * - Use \"currentColor\" to inherit text color (default)\n * - Use CSS variables: \"hsl(var(--border))\" for theme compatibility\n */\n color?: string | undefined;\n /** Opacity 0-1 (default: 0.04) */\n opacity?: number | undefined;\n}\n\n/**\n * DotMatrix - A subtle dot grid background pattern.\n *\n * Creates a minimal, high-density dot pattern that adds texture\n * without cognitive load. Ideal for hero sections and CTAs.\n *\n * @example\n * // Using currentColor (inherits text color)\n * <DotMatrix opacity={0.04} />\n *\n * @example\n * // Using semantic CSS variables\n * <DotMatrix color=\"hsl(var(--border))\" opacity={0.06} />\n */\nexport const DotMatrix = React.forwardRef<HTMLDivElement, DotMatrixProps>(\n ({ dotSize = 2, gap = 16, color = \"currentColor\", opacity = 0.04, className, ...props }, ref) => {\n const patternSize = dotSize + gap;\n\n return (\n <div\n ref={ref}\n className={cn(\"absolute inset-0 pointer-events-none\", className)}\n style={{\n backgroundImage: `radial-gradient(circle, ${color} ${dotSize / 2}px, transparent ${dotSize / 2}px)`,\n backgroundSize: `${patternSize}px ${patternSize}px`,\n backgroundPosition: `${gap / 2}px ${gap / 2}px`,\n opacity,\n }}\n aria-hidden=\"true\"\n {...props}\n />\n );\n },\n);\n\nDotMatrix.displayName = \"DotMatrix\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { motion, useReducedMotion } from \"../../shared/animation/motion\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface FloatingSpotsProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Number of floating spots (default: 12) */\n count?: number;\n /** Minimum spot size in pixels (default: 40) */\n minSize?: number;\n /** Maximum spot size in pixels (default: 120) */\n maxSize?: number;\n /**\n * Spot color.\n * Use CSS custom properties for theme compatibility:\n * - \"hsl(var(--accent))\" for accent color\n * - \"hsl(var(--primary))\" for primary brand color\n */\n color?: string | undefined;\n /** Minimum opacity 0-1 (default: 0.05) */\n minOpacity?: number | undefined;\n /** Maximum opacity 0-1 (default: 0.15) */\n maxOpacity?: number | undefined;\n /** Animation cycle duration in seconds (default: 20) */\n cycleDuration?: number;\n /** Blur amount in pixels (default: 40) */\n blur?: number;\n}\n\ninterface Spot {\n id: number;\n x: number;\n y: number;\n size: number;\n opacity: number;\n duration: number;\n delay: number;\n driftX: number;\n driftY: number;\n}\n\n/**\n * FloatingSpots - Animated floating light spots for ambient depth.\n *\n * Creates softly glowing, slowly drifting light spots that add\n * atmospheric depth to sections. Uses subtle blur for ethereal effect.\n *\n * @example\n * // Using semantic CSS variables (recommended)\n * <FloatingSpots color=\"hsl(var(--accent))\" />\n *\n * @example\n * // Using custom hex colors (for decorative/artistic purposes)\n * <FloatingSpots color=\"hsl(var(--primary))\" />\n */\nexport const FloatingSpots = React.forwardRef<HTMLDivElement, FloatingSpotsProps>(\n (\n {\n count = 12,\n minSize = 40,\n maxSize = 120,\n color = \"hsl(var(--accent))\",\n minOpacity = 0.05,\n maxOpacity = 0.15,\n cycleDuration = 20,\n blur = 40,\n className,\n ...props\n },\n ref,\n ) => {\n const shouldReduceMotion = useReducedMotion();\n const spots = React.useMemo<Spot[]>(() => {\n return Array.from({ length: count }, (_, i) => ({\n id: i,\n x: Math.random() * 100,\n y: Math.random() * 100,\n size: minSize + Math.random() * (maxSize - minSize),\n opacity: minOpacity + Math.random() * (maxOpacity - minOpacity),\n duration: cycleDuration * (0.8 + Math.random() * 0.4),\n delay: Math.random() * -cycleDuration,\n driftX: (Math.random() - 0.5) * 30,\n driftY: (Math.random() - 0.5) * 30,\n }));\n }, [count, minSize, maxSize, minOpacity, maxOpacity, cycleDuration]);\n\n return (\n <div\n ref={ref}\n className={cn(\"absolute inset-0 overflow-hidden pointer-events-none\", className)}\n aria-hidden=\"true\"\n {...props}\n >\n {spots.map((spot) => (\n <motion.div\n key={spot.id}\n className=\"absolute rounded-full\"\n style={{\n left: `${spot.x}%`,\n top: `${spot.y}%`,\n width: spot.size,\n height: spot.size,\n backgroundColor: color,\n opacity: shouldReduceMotion ? spot.opacity : undefined,\n filter: `blur(${blur}px)`,\n transform: \"translate(-50%, -50%)\",\n }}\n animate={\n shouldReduceMotion\n ? { opacity: spot.opacity }\n : {\n x: [0, spot.driftX, 0, -spot.driftX / 2, 0],\n y: [0, spot.driftY / 2, spot.driftY, 0],\n opacity: [spot.opacity, spot.opacity * 1.3, spot.opacity],\n scale: [1, 1.1, 1],\n }\n }\n transition={\n shouldReduceMotion\n ? { duration: 0 }\n : {\n duration: spot.duration,\n repeat: Infinity,\n ease: \"easeInOut\",\n delay: spot.delay,\n }\n }\n />\n ))}\n </div>\n );\n },\n);\n\nFloatingSpots.displayName = \"FloatingSpots\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { GridPattern } from \"../decorations/GridPattern\";\nimport { CrossPattern, DotMatrix, FloatingSpots } from \"../decorations/patterns\";\nimport { cn } from \"../utils/cn\";\n\n/**\n * Section theme configuration.\n *\n * Note: For decorative/artistic purposes, themes may use hex colors as they\n * represent specific visual identities. These are exempt from strict Primer\n * compliance per WARP.md \"Exemptions\" section.\n */\nexport interface SectionThemeConfig {\n /** Background color class (Tailwind) */\n backgroundColor?: string;\n /** Pattern type to use */\n pattern?: \"dots\" | \"crosses\" | \"grid\" | \"floating\" | \"none\";\n /**\n * Pattern color.\n * - Use \"currentColor\" to inherit from context\n * - Use \"hsl(var(--accent))\" for semantic colors\n * - Hex colors are allowed for artistic/decorative themes\n */\n patternColor?: string;\n /** Pattern opacity 0-1 */\n patternOpacity?: number;\n /**\n * Accent color for highlights.\n * Hex colors are allowed for artistic/decorative themes.\n */\n accentColor?: string;\n /** Additional gradient overlay (Tailwind class) */\n gradient?: string;\n /** Custom pattern props */\n patternProps?: Record<string, unknown>;\n}\n\n/**\n * Predefined section themes based on DESIGN.md Section 11.5.\n *\n * These themes define visual territories for different sections.\n * Some use specific hex colors for artistic effect (exempt from Primer\n * strict compliance per WARP.md).\n */\nconst sectionThemeDefs = {\n // Hero: \"Cosmic Launch\" - Deep blue gradient with floating particles\n hero: {\n backgroundColor: \"bg-background\",\n pattern: \"floating\",\n patternColor: \"hsl(var(--accent))\",\n patternOpacity: 0.1,\n gradient: \"bg-gradient-to-b from-primary/5 via-transparent to-transparent\",\n },\n\n // Architecture: \"Terminal Matrix\" - Monochrome with subtle pattern\n architecture: {\n backgroundColor: \"bg-neutral-1\",\n pattern: \"dots\",\n patternColor: \"currentColor\",\n patternOpacity: 0.03,\n },\n\n // AI-Native: \"Neon Network\" - Dark with neon accents\n aiNative: {\n backgroundColor: \"bg-background\",\n pattern: \"dots\",\n patternColor: \"hsl(var(--accent))\",\n patternOpacity: 0.04,\n accentColor: \"hsl(var(--accent))\",\n gradient:\n \"bg-gradient-to-br from-[hsl(var(--chart-2))]/5 via-transparent to-[hsl(var(--chart-3))]/5\",\n },\n\n // Features: \"Capability Map\" - Subtle tech pattern\n features: {\n backgroundColor: \"bg-background\",\n pattern: \"crosses\",\n patternColor: \"currentColor\",\n patternOpacity: 0.03,\n },\n\n // Multi-tenant: \"Access Graph\" - Amber isolation lines\n // Note: Uses specific amber for visual territory (exempt)\n multiTenant: {\n backgroundColor: \"bg-background\",\n pattern: \"grid\",\n patternColor: \"hsl(var(--warning, 43 96% 56%))\", // Warning/amber semantic\n patternOpacity: 0.03,\n accentColor: \"hsl(var(--warning, 43 96% 56%))\",\n },\n\n // Testimonials: \"Depth Gallery\" - Warm neutrals with vignette\n testimonials: {\n backgroundColor: \"bg-background\",\n pattern: \"floating\",\n patternColor: \"hsl(var(--warning, 48 96% 58%))\", // Warm yellow\n patternOpacity: 0.05,\n gradient:\n \"bg-[radial-gradient(ellipse_at_center,transparent_0%,hsl(var(--background)/0.4)_100%)]\",\n },\n\n // Vision: \"Contemplation Space\" - Maximum whitespace\n vision: {\n backgroundColor: \"bg-background\",\n pattern: \"none\",\n gradient: \"bg-gradient-to-b from-transparent via-primary/[0.02] to-transparent\",\n },\n\n // Pricing: \"Symmetry Order\" - Clean, minimal\n pricing: {\n backgroundColor: \"bg-background\",\n pattern: \"dots\",\n patternColor: \"currentColor\",\n patternOpacity: 0.02,\n },\n\n // CTA: \"Action Climax\" - Emphasis with gradient\n cta: {\n backgroundColor: \"bg-background\",\n pattern: \"dots\",\n patternColor: \"hsl(var(--primary))\",\n patternOpacity: 0.04,\n gradient: \"bg-gradient-to-t from-primary/10 via-transparent to-transparent\",\n },\n\n // Stats: \"Data Visualization\" - Clean with subtle pattern\n stats: {\n backgroundColor: \"bg-muted/30\",\n pattern: \"crosses\",\n patternColor: \"currentColor\",\n patternOpacity: 0.02,\n },\n\n // Terminal: \"Developer Immersion\" - Code environment feel\n terminal: {\n backgroundColor: \"bg-neutral-1\",\n pattern: \"none\",\n },\n} satisfies Record<string, SectionThemeConfig>;\n\n/** Names of the predefined section themes. */\nexport type SectionThemeName = keyof typeof sectionThemeDefs;\n\n/**\n * Predefined themes, keyed by a closed union so that `sectionThemes[name]`\n * is known to exist. Declaring this as `Record<string, …>` would erase the\n * literal keys and make every lookup `SectionThemeConfig | undefined`.\n */\nexport const sectionThemes: Record<SectionThemeName, SectionThemeConfig> = sectionThemeDefs;\n\nexport interface ThemedSectionProps extends Omit<React.HTMLAttributes<HTMLElement>, \"children\"> {\n /** Theme preset name or custom config */\n theme: SectionThemeName | SectionThemeConfig;\n /** Section content */\n children: React.ReactNode;\n /** Custom CSS variables for the section */\n cssVars?: Record<string, string>;\n /** Whether to include pattern (default: true) */\n showPattern?: boolean;\n}\n\n/**\n * ThemedSection - A section wrapper that applies visual territory theming.\n *\n * Applies consistent background patterns, colors, and gradients based on\n * predefined themes or custom configurations.\n *\n * @example\n * <ThemedSection theme=\"architecture\">\n * <h2>Architecture</h2>\n * <CodeBlock />\n * </ThemedSection>\n *\n * @example\n * <ThemedSection\n * theme={{\n * backgroundColor: \"bg-neutral-2\",\n * pattern: \"grid\",\n * patternColor: \"hsl(var(--accent))\",\n * patternOpacity: 0.05,\n * }}\n * >\n * Custom themed content\n * </ThemedSection>\n */\nexport const ThemedSection = React.forwardRef<HTMLElement, ThemedSectionProps>(\n ({ theme, children, className, cssVars, showPattern = true, ...props }, ref) => {\n const config = typeof theme === \"string\" ? sectionThemes[theme] : theme;\n\n const renderPattern = () => {\n if (!showPattern || config.pattern === \"none\") return null;\n\n const baseProps = {\n className: \"absolute inset-0 z-0\",\n };\n\n switch (config.pattern) {\n case \"dots\":\n return (\n <DotMatrix\n {...baseProps}\n color={config.patternColor}\n opacity={config.patternOpacity}\n {...(config.patternProps as object)}\n />\n );\n case \"crosses\":\n return (\n <CrossPattern\n {...baseProps}\n color={config.patternColor}\n opacity={config.patternOpacity}\n {...(config.patternProps as object)}\n />\n );\n case \"grid\":\n return (\n <GridPattern\n {...baseProps}\n color={config.patternColor}\n className={cn(baseProps.className, `opacity-[${config.patternOpacity}]`)}\n {...(config.patternProps as object)}\n />\n );\n case \"floating\":\n return (\n <FloatingSpots\n {...baseProps}\n color={config.patternColor}\n maxOpacity={config.patternOpacity}\n {...(config.patternProps as object)}\n />\n );\n default:\n return null;\n }\n };\n\n return (\n <section\n ref={ref}\n className={cn(\"relative overflow-hidden\", config.backgroundColor, className)}\n style={cssVars as React.CSSProperties}\n {...props}\n >\n {/* Pattern layer */}\n {renderPattern()}\n\n {/* Gradient overlay */}\n {config.gradient && (\n <div\n className={cn(\"absolute inset-0 z-0 pointer-events-none\", config.gradient)}\n aria-hidden=\"true\"\n />\n )}\n\n {/* Content layer */}\n <div className=\"relative z-10\">{children}</div>\n </section>\n );\n },\n);\n\nThemedSection.displayName = \"ThemedSection\";\n"]}
@@ -1,7 +1,10 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { HTMLAttributes, ReactNode, ComponentType } from 'react';
4
+ export { C as Card, b as CardBody, c as CardBodyProps, d as CardDescription, e as CardDescriptionProps, f as CardFooter, g as CardFooterProps, h as CardHeader, i as CardHeaderProps, j as CardIcon, k as CardIconProps, a as CardProps, l as CardRoot, m as CardTitle, n as CardTitleProps } from '../card-DunB1gKE.js';
4
5
  import { Icon } from '@nebutra/icons';
6
+ import 'class-variance-authority/types';
7
+ import 'class-variance-authority';
5
8
 
6
9
  interface ArtifactShiftCardProps extends HTMLAttributes<HTMLDivElement> {
7
10
  children: ReactNode;
@@ -20,43 +23,6 @@ declare function ArtifactShiftCard({ className, contentClassName, children, ...p
20
23
  declare function ArtifactShiftCardPreview({ filename, language, code, label, maxLines, signals, className, ...props }: ArtifactShiftCardPreviewProps): react_jsx_runtime.JSX.Element;
21
24
  declare function ArtifactShiftCardFooter({ className, ...props }: ArtifactShiftCardFooterProps): react_jsx_runtime.JSX.Element;
22
25
 
23
- type CardVariant = "default" | "elevated" | "bordered" | "ghost" | "gradient";
24
- type CardPadding = "none" | "sm" | "md" | "lg";
25
- interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
26
- variant?: CardVariant;
27
- padding?: CardPadding;
28
- asChild?: boolean;
29
- }
30
- declare const CardRoot: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
31
- interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
32
- spacing?: "sm" | "md" | "lg";
33
- }
34
- declare const CardHeader: React.ForwardRefExoticComponent<CardHeaderProps & React.RefAttributes<HTMLDivElement>>;
35
- type CardBodyProps = React.HTMLAttributes<HTMLDivElement>;
36
- declare const CardBody: React.ForwardRefExoticComponent<CardBodyProps & React.RefAttributes<HTMLDivElement>>;
37
- type CardFooterProps = React.HTMLAttributes<HTMLDivElement>;
38
- declare const CardFooter: React.ForwardRefExoticComponent<CardFooterProps & React.RefAttributes<HTMLDivElement>>;
39
- interface CardIconProps extends React.HTMLAttributes<HTMLDivElement> {
40
- size?: "sm" | "md" | "lg";
41
- }
42
- declare const CardIcon: React.ForwardRefExoticComponent<CardIconProps & React.RefAttributes<HTMLDivElement>>;
43
- interface CardTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
44
- as?: "h2" | "h3" | "h4" | "h5" | "h6";
45
- }
46
- declare const CardTitle: React.ForwardRefExoticComponent<CardTitleProps & React.RefAttributes<HTMLHeadingElement>>;
47
- interface CardDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement | HTMLDivElement> {
48
- as?: React.ElementType;
49
- }
50
- declare const CardDescription: React.ForwardRefExoticComponent<CardDescriptionProps & React.RefAttributes<HTMLDivElement | HTMLParagraphElement>>;
51
- declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>> & {
52
- Header: React.ForwardRefExoticComponent<CardHeaderProps & React.RefAttributes<HTMLDivElement>>;
53
- Body: React.ForwardRefExoticComponent<CardBodyProps & React.RefAttributes<HTMLDivElement>>;
54
- Footer: React.ForwardRefExoticComponent<CardFooterProps & React.RefAttributes<HTMLDivElement>>;
55
- Icon: React.ForwardRefExoticComponent<CardIconProps & React.RefAttributes<HTMLDivElement>>;
56
- Title: React.ForwardRefExoticComponent<CardTitleProps & React.RefAttributes<HTMLHeadingElement>>;
57
- Description: React.ForwardRefExoticComponent<CardDescriptionProps & React.RefAttributes<HTMLDivElement | HTMLParagraphElement>>;
58
- };
59
-
60
26
  interface CommandBoxProps extends React.HTMLAttributes<HTMLDivElement> {
61
27
  command: string;
62
28
  prefix?: string;
@@ -137,6 +103,8 @@ interface GalleryCardProps {
137
103
  badge?: GalleryCardBadge;
138
104
  /** Pin/star indicator at top-right (boolean) — renders a small Pin icon */
139
105
  pinned?: boolean;
106
+ /** Label for the pin indicator (a shared component cannot pick the product's language) */
107
+ pinnedLabel?: string;
140
108
  metadata?: GalleryCardMetadata;
141
109
  /** Dropdown action menu items at top-right (••• kebab) */
142
110
  actions?: GalleryCardAction[];
@@ -204,15 +172,35 @@ declare function KineticCommandBox({ command, copyLabel, copiedLabel, className,
204
172
  declare function KineticStepRail({ className, children, ...props }: KineticStepRailProps): react_jsx_runtime.JSX.Element;
205
173
  declare function KineticStep({ icon: Icon, index, title, description, phaseLabel, className, ...props }: KineticStepProps): react_jsx_runtime.JSX.Element;
206
174
 
207
- interface MarkdownEditorProps {
208
- value: string;
175
+ type MarkdownEditorProps = MarkdownEditorBaseProps & ({
176
+ onValueChange: (next: string) => void;
177
+ onChange?: never;
178
+ } | {
179
+ /** @deprecated Use `onValueChange` — `onChange` conventionally receives an event. */
209
180
  onChange: (next: string) => void;
181
+ onValueChange?: never;
182
+ });
183
+ interface MarkdownEditorBaseProps {
184
+ value: string;
210
185
  placeholder?: string;
211
186
  /** @default 250 */
212
187
  minHeight?: number;
213
188
  className?: string;
214
- }
215
- declare function MarkdownEditor({ value, onChange, placeholder, minHeight, className, }: MarkdownEditorProps): react_jsx_runtime.JSX.Element;
189
+ /** Accessible names for the toolbar buttons. Pass translated strings. */
190
+ labels?: Partial<MarkdownEditorLabels>;
191
+ }
192
+ interface MarkdownEditorLabels {
193
+ bold: string;
194
+ italic: string;
195
+ inlineCode: string;
196
+ heading: string;
197
+ blockQuote: string;
198
+ bulletList: string;
199
+ link: string;
200
+ image: string;
201
+ fencedCodeBlock: string;
202
+ }
203
+ declare function MarkdownEditor({ value, onValueChange, onChange: legacyOnChange, placeholder, minHeight, className, labels, }: MarkdownEditorProps): react_jsx_runtime.JSX.Element;
216
204
 
217
205
  interface MarkdownRendererProps {
218
206
  /** Markdown source. */
@@ -376,8 +364,10 @@ interface SidebarNavProps {
376
364
  footer?: React.ReactNode;
377
365
  /** When provided, this is used to render link items. Default: <a>. */
378
366
  renderLink?: (props: SidebarNavRenderLinkProps) => React.ReactElement;
367
+ /** Accessible name for the sidebar navigation landmark. Pass a translated string. */
368
+ navLabel?: string;
379
369
  }
380
- declare function SidebarNav({ sections, collapsed, className, itemClassName, header, footer, renderLink, }: SidebarNavProps): React.ReactElement;
370
+ declare function SidebarNav({ sections, collapsed, className, itemClassName, header, footer, renderLink, navLabel, }: SidebarNavProps): React.ReactElement;
381
371
 
382
372
  type TerminalVariant = "default" | "minimal" | "glass";
383
373
  interface TerminalProps extends React.HTMLAttributes<HTMLDivElement> {
@@ -447,6 +437,8 @@ interface UserMenuProps {
447
437
  className?: string;
448
438
  /** Dropdown align (default "end") */
449
439
  align?: "start" | "center" | "end";
440
+ /** Accessible name for the default trigger button. Pass a translated string. */
441
+ triggerLabel?: string;
450
442
  }
451
443
  declare function UserMenu(props: UserMenuProps): React.ReactElement;
452
444
  declare namespace UserMenu {
@@ -482,7 +474,9 @@ interface WorkspaceSwitcherProps {
482
474
  showRoleBadge?: boolean;
483
475
  /** Disable trigger (e.g. only one workspace) */
484
476
  disabled?: boolean;
477
+ /** Accessible name for the trigger button. Pass a translated string. */
478
+ switchLabel?: string;
485
479
  }
486
- declare function WorkspaceSwitcher({ workspaces, activeWorkspaceId, onSwitch, variant, footerSlot, headerSlot, className, showRoleBadge, disabled, }: WorkspaceSwitcherProps): React.ReactElement;
480
+ declare function WorkspaceSwitcher({ workspaces, activeWorkspaceId, onSwitch, variant, footerSlot, headerSlot, className, showRoleBadge, disabled, switchLabel, }: WorkspaceSwitcherProps): React.ReactElement;
487
481
 
488
- export { type AnswerType, ArtifactShiftCard, ArtifactShiftCardFooter, type ArtifactShiftCardFooterProps, ArtifactShiftCardPreview, type ArtifactShiftCardPreviewProps, type ArtifactShiftCardProps, type Author, Card, CardBody, type CardBodyProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, CardIcon, type CardIconProps, type CardProps, CardRoot, CardTitle, type CardTitleProps, CommandBox, type CommandBoxProps, DashboardCommandSurface, type DashboardCommandSurfaceProps, DashboardMetricTile, type DashboardMetricTileProps, DashboardPanel, type DashboardPanelProps, GalleryCard, type GalleryCardAction, type GalleryCardBadge, type GalleryCardBadgeTone, type GalleryCardIconTone, type GalleryCardMetadata, type GalleryCardProps, type GalleryCardRenderLinkProps, KineticCodePreview, type KineticCodePreviewProps, KineticCommandBox, type KineticCommandBoxProps, KineticConsoleFrame, type KineticConsoleFrameProps, KineticFeatureCard, type KineticFeatureCardProps, KineticMorphSurface, type KineticMorphSurfaceProps, KineticSignalMarquee, type KineticSignalMarqueeProps, KineticStep, type KineticStepProps, KineticStepRail, type KineticStepRailProps, MarkdownEditor, type MarkdownEditorProps, MarkdownRenderer, type MarkdownRendererProps, QAPage, type QAPageProps, type QuestionType, SidebarNav, type SidebarNavBadge, type SidebarNavBadgeTone, type SidebarNavIcon, type SidebarNavItem, type SidebarNavProps, type SidebarNavRenderLinkProps, type SidebarNavSection, type SidebarNavSectionAction, Terminal, TerminalBody, type TerminalBodyProps, TerminalHeader, type TerminalHeaderProps, TerminalLine, type TerminalLineProps, type TerminalProps, TerminalRoot, UserInfo, type UserInfoProps, UserMenu, type UserMenuGroup, type UserMenuItem, type UserMenuProps, type UserMenuUser, VoteButtons, type VoteButtonsProps, type VoteType, type Workspace, type WorkspaceRole, WorkspaceSwitcher, type WorkspaceSwitcherProps };
482
+ export { type AnswerType, ArtifactShiftCard, ArtifactShiftCardFooter, type ArtifactShiftCardFooterProps, ArtifactShiftCardPreview, type ArtifactShiftCardPreviewProps, type ArtifactShiftCardProps, type Author, CommandBox, type CommandBoxProps, DashboardCommandSurface, type DashboardCommandSurfaceProps, DashboardMetricTile, type DashboardMetricTileProps, DashboardPanel, type DashboardPanelProps, GalleryCard, type GalleryCardAction, type GalleryCardBadge, type GalleryCardBadgeTone, type GalleryCardIconTone, type GalleryCardMetadata, type GalleryCardProps, type GalleryCardRenderLinkProps, KineticCodePreview, type KineticCodePreviewProps, KineticCommandBox, type KineticCommandBoxProps, KineticConsoleFrame, type KineticConsoleFrameProps, KineticFeatureCard, type KineticFeatureCardProps, KineticMorphSurface, type KineticMorphSurfaceProps, KineticSignalMarquee, type KineticSignalMarqueeProps, KineticStep, type KineticStepProps, KineticStepRail, type KineticStepRailProps, MarkdownEditor, type MarkdownEditorProps, MarkdownRenderer, type MarkdownRendererProps, QAPage, type QAPageProps, type QuestionType, SidebarNav, type SidebarNavBadge, type SidebarNavBadgeTone, type SidebarNavIcon, type SidebarNavItem, type SidebarNavProps, type SidebarNavRenderLinkProps, type SidebarNavSection, type SidebarNavSectionAction, Terminal, TerminalBody, type TerminalBodyProps, TerminalHeader, type TerminalHeaderProps, TerminalLine, type TerminalLineProps, type TerminalProps, TerminalRoot, UserInfo, type UserInfoProps, UserMenu, type UserMenuGroup, type UserMenuItem, type UserMenuProps, type UserMenuUser, VoteButtons, type VoteButtonsProps, type VoteType, type Workspace, type WorkspaceRole, WorkspaceSwitcher, type WorkspaceSwitcherProps };