@vadimcomanescu/nadicode-design-system 2.0.6 → 2.0.7

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 (177) hide show
  1. package/.agents/skills/seed/contract.md +1 -0
  2. package/.agents/skills/seed/recipes/marketing-shell.md +10 -19
  3. package/.agents/skills/seed/recipes/navigation-shell.md +5 -5
  4. package/.agents/skills/seed/recipes/service-detail.md +1 -1
  5. package/.agents/skills/seed/references/blocks.md +25 -24
  6. package/.agents/skills/seed/references/brand-override.md +3 -1
  7. package/css/tokens.css +300 -122
  8. package/dist/catalog.json +1926 -125
  9. package/dist/chunk-2BADJLMV.js +117 -0
  10. package/dist/chunk-35EX5FP5.js +106 -0
  11. package/dist/chunk-5PORR6LE.js +60 -0
  12. package/dist/chunk-5PZ4VR2D.js +142 -0
  13. package/dist/chunk-5UESKK6S.js +76 -0
  14. package/dist/chunk-6N6CSJVE.js +269 -0
  15. package/dist/chunk-AURJQZC4.js +110 -0
  16. package/dist/{chunk-DF47R6LN.js → chunk-AWIG4QN6.js} +9 -9
  17. package/dist/chunk-AYWL4IYM.js +67 -0
  18. package/dist/{chunk-SV3KZ6CB.js → chunk-DSMGCFMJ.js} +7 -2
  19. package/dist/chunk-E4L6LR6P.js +33 -0
  20. package/dist/chunk-EJNF6JLL.js +105 -0
  21. package/dist/chunk-FX23F33E.js +57 -0
  22. package/dist/chunk-GJPTPLCQ.js +52 -0
  23. package/dist/chunk-GV4PKHG4.js +147 -0
  24. package/dist/chunk-HJ3A2YNO.js +163 -0
  25. package/dist/chunk-HJZRSPWB.js +38 -0
  26. package/dist/chunk-IDKZEPWK.js +133 -0
  27. package/dist/chunk-K7NQ6ZAW.js +84 -0
  28. package/dist/chunk-LCKLZ4XK.js +60 -0
  29. package/dist/chunk-MX5FUFQR.js +205 -0
  30. package/dist/chunk-NEHCPO53.js +44 -0
  31. package/dist/chunk-OHOOQUVJ.js +113 -0
  32. package/dist/chunk-QIHA7S3A.js +36 -0
  33. package/dist/chunk-RKQPU75I.js +126 -0
  34. package/dist/chunk-RMLS2QUC.js +77 -0
  35. package/dist/chunk-TS2JSPQR.js +120 -0
  36. package/dist/chunk-TUKZKU72.js +110 -0
  37. package/dist/chunk-TZXZFSD2.js +33 -0
  38. package/dist/chunk-UGV45DH3.js +18 -0
  39. package/dist/chunk-VBZQ4DBE.js +52 -0
  40. package/dist/{chunk-LQLFA2EL.js → chunk-VDONTZZX.js} +2 -2
  41. package/dist/{chunk-RWNJ54CI.js → chunk-VN475YZS.js} +1 -1
  42. package/dist/chunk-VZCB4APK.js +94 -0
  43. package/dist/chunk-W7FXDRQJ.js +94 -0
  44. package/dist/chunk-WAVU744B.js +183 -0
  45. package/dist/{chunk-5I3FWRC5.js → chunk-WOYBVPXK.js} +10 -10
  46. package/dist/chunk-WST5NLLC.js +73 -0
  47. package/dist/chunk-X6VXWEDO.js +125 -0
  48. package/dist/chunk-ZM2NODUK.js +39 -0
  49. package/dist/components/blocks/AccountLockedBlock.js +7 -57
  50. package/dist/components/blocks/ActivityFeedBlock.js +6 -39
  51. package/dist/components/blocks/AgentConversationBlock.js +5 -33
  52. package/dist/components/blocks/AudioVisualizerBlock.d.ts +1 -1
  53. package/dist/components/blocks/AudioVisualizerBlock.js +2 -2
  54. package/dist/components/blocks/AuthSuccessBlock.js +5 -60
  55. package/dist/components/blocks/BarChartBlock.d.ts +1 -1
  56. package/dist/components/blocks/BarChartBlock.js +2 -2
  57. package/dist/components/blocks/CallToActionBlock.d.ts +1 -1
  58. package/dist/components/blocks/CallToActionBlock.js +6 -52
  59. package/dist/components/blocks/ChangelogBlock.js +8 -105
  60. package/dist/components/blocks/ChartCollectionBlock.js +2 -2
  61. package/dist/components/blocks/CodeBlock.js +7 -60
  62. package/dist/components/blocks/ComparisonBlock.js +9 -94
  63. package/dist/components/blocks/ContactBlock.js +11 -120
  64. package/dist/components/blocks/FAQBlock.js +6 -44
  65. package/dist/components/blocks/FeatureBlock.d.ts +10 -14
  66. package/dist/components/blocks/FeatureBlock.js +17 -159
  67. package/dist/components/blocks/FeatureGridBlock.d.ts +1 -1
  68. package/dist/components/blocks/FeatureGridBlock.js +2 -2
  69. package/dist/components/blocks/FooterBlock.d.ts +2 -2
  70. package/dist/components/blocks/FooterBlock.js +11 -67
  71. package/dist/components/blocks/HeaderBlock.d.ts +2 -2
  72. package/dist/components/blocks/HeaderBlock.js +1 -1
  73. package/dist/components/blocks/HeatmapChartBlock.d.ts +1 -1
  74. package/dist/components/blocks/HeatmapChartBlock.js +1 -1
  75. package/dist/components/blocks/HeroBlock.d.ts +6 -3
  76. package/dist/components/blocks/HeroBlock.js +16 -199
  77. package/dist/components/blocks/HeroSectionBlock.d.ts +1 -1
  78. package/dist/components/blocks/HeroSectionBlock.js +4 -4
  79. package/dist/components/blocks/IntegrationsBlock.d.ts +1 -1
  80. package/dist/components/blocks/IntegrationsBlock.js +4 -4
  81. package/dist/components/blocks/InteractiveAreaChartBlock.d.ts +1 -1
  82. package/dist/components/blocks/InteractiveAreaChartBlock.js +2 -2
  83. package/dist/components/blocks/NewsletterBlock.js +11 -84
  84. package/dist/components/blocks/PasswordRecoveryBlock.js +14 -142
  85. package/dist/components/blocks/PricingBlock.d.ts +1 -1
  86. package/dist/components/blocks/PricingBlock.js +11 -110
  87. package/dist/components/blocks/ProcessFlowBlock.js +10 -77
  88. package/dist/components/blocks/ResetPasswordBlock.js +11 -125
  89. package/dist/components/blocks/SignUpBlock.d.ts +1 -1
  90. package/dist/components/blocks/SignUpBlock.js +2 -2
  91. package/dist/components/blocks/SocialProofBlock.d.ts +7 -11
  92. package/dist/components/blocks/SocialProofBlock.js +8 -107
  93. package/dist/components/blocks/StatsBlock.d.ts +1 -1
  94. package/dist/components/blocks/StatsBlock.js +2 -2
  95. package/dist/components/blocks/StatsMarketingBlock.d.ts +1 -1
  96. package/dist/components/blocks/StatsMarketingBlock.js +5 -36
  97. package/dist/components/blocks/TeamBlock.d.ts +1 -1
  98. package/dist/components/blocks/TeamBlock.js +4 -52
  99. package/dist/components/blocks/TestimonialsBlock.d.ts +1 -1
  100. package/dist/components/blocks/TestimonialsBlock.js +4 -133
  101. package/dist/components/blocks/TwoFactorChallengeBlock.js +9 -94
  102. package/dist/components/blocks/TwoFactorSetupBlock.js +16 -183
  103. package/dist/components/blocks/UsageDonutBlock.d.ts +1 -1
  104. package/dist/components/blocks/UsageDonutBlock.js +2 -2
  105. package/dist/components/logos/index.js +2 -2
  106. package/dist/components/page-kits/AccountLockedPageKit.d.ts +10 -0
  107. package/dist/components/page-kits/AccountLockedPageKit.js +48 -0
  108. package/dist/components/page-kits/AgentsChatPageKit.d.ts +46 -0
  109. package/dist/components/page-kits/AgentsChatPageKit.js +289 -0
  110. package/dist/components/page-kits/AnalyticsPageKit.d.ts +49 -0
  111. package/dist/components/page-kits/AnalyticsPageKit.js +277 -0
  112. package/dist/components/page-kits/BlogContentPageKit.d.ts +64 -0
  113. package/dist/components/page-kits/BlogContentPageKit.js +296 -0
  114. package/dist/components/page-kits/CheckoutPageKit.d.ts +36 -0
  115. package/dist/components/page-kits/CheckoutPageKit.js +209 -0
  116. package/dist/components/page-kits/CompanySuitePageKit.d.ts +25 -0
  117. package/dist/components/page-kits/CompanySuitePageKit.js +240 -0
  118. package/dist/components/page-kits/CrudFormPageKit.d.ts +54 -0
  119. package/dist/components/page-kits/CrudFormPageKit.js +138 -0
  120. package/dist/components/page-kits/CrudListDetailPageKit.d.ts +70 -0
  121. package/dist/components/page-kits/CrudListDetailPageKit.js +138 -0
  122. package/dist/components/page-kits/DashboardPageKit.d.ts +39 -0
  123. package/dist/components/page-kits/DashboardPageKit.js +284 -0
  124. package/dist/components/page-kits/ErrorPageKit.d.ts +22 -0
  125. package/dist/components/page-kits/ErrorPageKit.js +55 -0
  126. package/dist/components/page-kits/KanbanBoardPageKit.d.ts +31 -0
  127. package/dist/components/page-kits/KanbanBoardPageKit.js +305 -0
  128. package/dist/components/page-kits/LandingPageKit.d.ts +29 -0
  129. package/dist/components/page-kits/LandingPageKit.js +221 -0
  130. package/dist/components/page-kits/LoginPageKit.d.ts +16 -0
  131. package/dist/components/page-kits/LoginPageKit.js +43 -0
  132. package/dist/components/page-kits/MarketingShellPageKit.d.ts +21 -0
  133. package/dist/components/page-kits/MarketingShellPageKit.js +131 -0
  134. package/dist/components/page-kits/NavigationShellPageKit.d.ts +41 -0
  135. package/dist/components/page-kits/NavigationShellPageKit.js +132 -0
  136. package/dist/components/page-kits/OnboardingPageKit.d.ts +26 -0
  137. package/dist/components/page-kits/OnboardingPageKit.js +248 -0
  138. package/dist/components/page-kits/PricingPageKit.d.ts +41 -0
  139. package/dist/components/page-kits/PricingPageKit.js +279 -0
  140. package/dist/components/page-kits/ProfileSettingsPageKit.d.ts +50 -0
  141. package/dist/components/page-kits/ProfileSettingsPageKit.js +171 -0
  142. package/dist/components/page-kits/RecoveryPageKit.d.ts +17 -0
  143. package/dist/components/page-kits/RecoveryPageKit.js +58 -0
  144. package/dist/components/page-kits/ResetPageKit.d.ts +14 -0
  145. package/dist/components/page-kits/ResetPageKit.js +52 -0
  146. package/dist/components/page-kits/ServiceSuitePageKit.d.ts +25 -0
  147. package/dist/components/page-kits/ServiceSuitePageKit.js +320 -0
  148. package/dist/components/page-kits/SettingsPageKit.d.ts +27 -0
  149. package/dist/components/page-kits/SettingsPageKit.js +11 -0
  150. package/dist/components/page-kits/SignupPageKit.d.ts +15 -0
  151. package/dist/components/page-kits/SignupPageKit.js +41 -0
  152. package/dist/components/page-kits/SuccessPageKit.d.ts +15 -0
  153. package/dist/components/page-kits/SuccessPageKit.js +146 -0
  154. package/dist/components/page-kits/TeamSettingsPageKit.d.ts +50 -0
  155. package/dist/components/page-kits/TeamSettingsPageKit.js +297 -0
  156. package/dist/components/page-kits/TwoFactorPageKit.d.ts +16 -0
  157. package/dist/components/page-kits/TwoFactorPageKit.js +156 -0
  158. package/dist/components/page-kits/VerifyEmailPageKit.d.ts +15 -0
  159. package/dist/components/page-kits/VerifyEmailPageKit.js +146 -0
  160. package/dist/components/page-kits/VoiceAgentsPageKit.d.ts +35 -0
  161. package/dist/components/page-kits/VoiceAgentsPageKit.js +246 -0
  162. package/dist/components/ui/AudioWaveform.js +2 -76
  163. package/dist/components/ui/AvatarUpload.js +1 -1
  164. package/dist/components/ui/Breadcrumb.js +4 -106
  165. package/dist/components/ui/ChartCard.js +5 -38
  166. package/dist/components/ui/CheckoutFormDemo.js +5 -6
  167. package/dist/components/ui/DataFreshness.js +2 -73
  168. package/dist/components/ui/MouseEffect.js +1 -1
  169. package/dist/components/ui/NativeSelect.js +2 -18
  170. package/dist/components/ui/Pagination.js +6 -117
  171. package/dist/components/ui/ShaderBackground.js +2 -2
  172. package/dist/hooks/use-shader-preset.js +2 -2
  173. package/dist/lib/shader-presets.js +1 -1
  174. package/dist/lib/tokens.config.d.ts +19 -0
  175. package/package.json +792 -680
  176. package/scripts/ds-check.mjs +8 -0
  177. package/src/lib/tokens.config.js +63 -41
@@ -0,0 +1,84 @@
1
+ import { Shine } from './chunk-DARC2ACH.js';
2
+ import { useSafeTimeout } from './chunk-MDAYDDTC.js';
3
+ import { Typography } from './chunk-N53OMWW2.js';
4
+ import { Spinner } from './chunk-ZLSWCV55.js';
5
+ import { Heading } from './chunk-WI547C47.js';
6
+ import { Input } from './chunk-AP3XXYAY.js';
7
+ import { ScrollFadeIn } from './chunk-I23DDSU7.js';
8
+ import { Button } from './chunk-7KIDDF3I.js';
9
+ import { CheckIcon } from './chunk-CXACRCZ4.js';
10
+ import { cn } from './chunk-QYZT24TS.js';
11
+ import { useState } from 'react';
12
+ import { jsx, jsxs } from 'react/jsx-runtime';
13
+
14
+ function NewsletterBlock({
15
+ onSubscribe,
16
+ title = "Stay in the loop",
17
+ description = "Get notified about new components, updates, and design system tips. No spam.",
18
+ className
19
+ }) {
20
+ const [email, setEmail] = useState("");
21
+ const [status, setStatus] = useState("idle");
22
+ const setSafeTimeout = useSafeTimeout();
23
+ const handleSubmit = async (e) => {
24
+ e.preventDefault();
25
+ if (!email.trim()) return;
26
+ setStatus("loading");
27
+ try {
28
+ await onSubscribe?.(email);
29
+ } catch {
30
+ }
31
+ setSafeTimeout(() => {
32
+ setStatus("success");
33
+ setSafeTimeout(() => {
34
+ setStatus("idle");
35
+ setEmail("");
36
+ }, 3e3);
37
+ }, 600);
38
+ };
39
+ return /* @__PURE__ */ jsx("section", { className: cn("py-16 md:py-24", className), children: /* @__PURE__ */ jsx("div", { className: "mx-auto max-w-xl px-6", children: /* @__PURE__ */ jsx(ScrollFadeIn, { children: /* @__PURE__ */ jsx(Shine, { enableOnHover: true, loop: true, loopDelay: 300, color: "var(--color-accent)", opacity: 0.1, children: /* @__PURE__ */ jsxs("div", { className: "glass-panel rounded-2xl border border-border/50 p-8 text-center sm:p-12", children: [
40
+ /* @__PURE__ */ jsx(Heading, { level: 2, size: "section", className: "text-text-primary", children: title }),
41
+ /* @__PURE__ */ jsx(Typography, { variant: "body", className: "mt-4 text-text-secondary", children: description }),
42
+ status === "success" ? /* @__PURE__ */ jsxs("div", { className: "mt-8 flex items-center justify-center gap-2 text-success", children: [
43
+ /* @__PURE__ */ jsx(CheckIcon, { size: 20 }),
44
+ /* @__PURE__ */ jsxs("span", { className: "text-sm font-medium", children: [
45
+ "You",
46
+ "'",
47
+ "re subscribed!"
48
+ ] })
49
+ ] }) : /* @__PURE__ */ jsxs(
50
+ "form",
51
+ {
52
+ onSubmit: handleSubmit,
53
+ className: "mt-8 flex flex-col gap-4 sm:flex-row",
54
+ children: [
55
+ /* @__PURE__ */ jsx(
56
+ Input,
57
+ {
58
+ name: "email",
59
+ type: "email",
60
+ placeholder: "you@example.com",
61
+ value: email,
62
+ onChange: (e) => setEmail(e.target.value),
63
+ required: true,
64
+ className: "flex-1"
65
+ }
66
+ ),
67
+ /* @__PURE__ */ jsx(
68
+ Button,
69
+ {
70
+ type: "submit",
71
+ variant: "accent",
72
+ disabled: status === "loading",
73
+ className: "shrink-0",
74
+ children: status === "loading" ? /* @__PURE__ */ jsx(Spinner, { className: "h-4 w-4" }) : "Subscribe"
75
+ }
76
+ )
77
+ ]
78
+ }
79
+ ),
80
+ /* @__PURE__ */ jsx(Typography, { variant: "small", className: "mt-4 text-text-tertiary", children: "Unsubscribe anytime. We respect your inbox." })
81
+ ] }) }) }) }) });
82
+ }
83
+
84
+ export { NewsletterBlock };
@@ -0,0 +1,60 @@
1
+ import { Card, CardHeader, CardTitle, CardDescription, CardContent } from './chunk-AH6YSYYT.js';
2
+ import { Button } from './chunk-7KIDDF3I.js';
3
+ import { useMotionConfig, m, scaleIn, motionSpring } from './chunk-PD2YEH3H.js';
4
+ import { cn } from './chunk-QYZT24TS.js';
5
+ import * as React from 'react';
6
+ import { jsx, jsxs } from 'react/jsx-runtime';
7
+
8
+ function AuthSuccessBlock({
9
+ className,
10
+ icon,
11
+ title,
12
+ description,
13
+ buttonText = "Continue",
14
+ onContinue,
15
+ autoRedirectSeconds
16
+ }) {
17
+ const motionConfig = useMotionConfig();
18
+ const [countdown, setCountdown] = React.useState(autoRedirectSeconds ?? 0);
19
+ React.useEffect(() => {
20
+ if (!autoRedirectSeconds) return;
21
+ setCountdown(autoRedirectSeconds);
22
+ const interval = setInterval(() => {
23
+ setCountdown((prev) => {
24
+ if (prev <= 1) {
25
+ clearInterval(interval);
26
+ onContinue?.();
27
+ return 0;
28
+ }
29
+ return prev - 1;
30
+ });
31
+ }, 1e3);
32
+ return () => clearInterval(interval);
33
+ }, [autoRedirectSeconds, onContinue]);
34
+ return /* @__PURE__ */ jsx(m.div, { ...scaleIn, className: cn("w-full max-w-sm mx-auto", className), children: /* @__PURE__ */ jsxs(Card, { children: [
35
+ /* @__PURE__ */ jsxs(CardHeader, { className: "text-center", children: [
36
+ /* @__PURE__ */ jsx(
37
+ m.div,
38
+ {
39
+ className: "mx-auto mb-2",
40
+ initial: { scale: 0.8, opacity: 0 },
41
+ animate: { scale: 1, opacity: 1 },
42
+ transition: { ...motionSpring.bouncy, ...motionConfig },
43
+ children: /* @__PURE__ */ jsx("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-success/10 shadow-[0_0_24px_rgb(var(--color-success)/0.2)]", children: icon })
44
+ }
45
+ ),
46
+ /* @__PURE__ */ jsx(CardTitle, { className: "text-2xl", children: title }),
47
+ /* @__PURE__ */ jsx(CardDescription, { children: description })
48
+ ] }),
49
+ /* @__PURE__ */ jsxs(CardContent, { className: "grid gap-4", children: [
50
+ autoRedirectSeconds !== void 0 && countdown > 0 && /* @__PURE__ */ jsxs("p", { className: "text-center text-sm text-text-tertiary tabular-nums", children: [
51
+ "Redirecting in ",
52
+ countdown,
53
+ "..."
54
+ ] }),
55
+ /* @__PURE__ */ jsx(Button, { variant: "accent", className: "w-full", onClick: onContinue, children: buttonText })
56
+ ] })
57
+ ] }) });
58
+ }
59
+
60
+ export { AuthSuccessBlock };
@@ -0,0 +1,205 @@
1
+ import { TextReveal } from './chunk-LV4LBWCS.js';
2
+ import { AnimatedGradientText } from './chunk-XZ3A33GP.js';
3
+ import { Heading } from './chunk-WI547C47.js';
4
+ import { siteConfig } from './chunk-A7NUWD76.js';
5
+ import { Card, CardHeader, CardContent } from './chunk-AH6YSYYT.js';
6
+ import { MouseGlow } from './chunk-DSMGCFMJ.js';
7
+ import { Button } from './chunk-7KIDDF3I.js';
8
+ import { m, heroStagger } from './chunk-PD2YEH3H.js';
9
+ import { ZapIcon } from './chunk-FLF5AMNO.js';
10
+ import { SparklesIcon } from './chunk-CGUCH322.js';
11
+ import { TerminalIcon } from './chunk-3CLXYQKB.js';
12
+ import { ChevronRightIcon } from './chunk-G24VV5NO.js';
13
+ import { ArrowRightIcon } from './chunk-T7H53CK2.js';
14
+ import { Badge } from './chunk-S4JAHKOP.js';
15
+ import { cn } from './chunk-QYZT24TS.js';
16
+ import { useReducedMotion } from 'motion/react';
17
+ import { jsx, jsxs } from 'react/jsx-runtime';
18
+
19
+ var TEXT_EFFECTS = {
20
+ textRevealDelayMs: 200
21
+ };
22
+ var DEFAULT_PRIMARY_ACTION = { label: "Get Started" };
23
+ var DEFAULT_SECONDARY_ACTION = { label: "View Components" };
24
+ var DEFAULT_ANNOUNCEMENT = { label: "New", text: `${siteConfig.name} System v2.0 is now live`, href: "#" };
25
+ function HeroCenteredVariant({
26
+ headline = "Experience the Future of Synthetic Intelligence",
27
+ subheadline = "Unleash the power of deep learning with our ultra-realistic, high-performance design system. Built for the next generation of AI interfaces.",
28
+ primaryAction = DEFAULT_PRIMARY_ACTION,
29
+ secondaryAction = DEFAULT_SECONDARY_ACTION,
30
+ announcement = DEFAULT_ANNOUNCEMENT,
31
+ className
32
+ }) {
33
+ const shouldReduceMotion = useReducedMotion();
34
+ const Wrapper = shouldReduceMotion ? "div" : m.div;
35
+ const Item = shouldReduceMotion ? "div" : m.div;
36
+ return /* @__PURE__ */ jsxs("section", { className: cn("relative overflow-hidden py-24 md:py-32", className), children: [
37
+ /* @__PURE__ */ jsx(MouseGlow, { className: "opacity-40" }),
38
+ /* @__PURE__ */ jsxs(
39
+ Wrapper,
40
+ {
41
+ className: "container relative z-10 mx-auto px-4 text-center",
42
+ ...!shouldReduceMotion && {
43
+ initial: "hidden",
44
+ animate: "visible",
45
+ variants: heroStagger.container
46
+ },
47
+ children: [
48
+ /* @__PURE__ */ jsx(Item, { ...!shouldReduceMotion && { variants: heroStagger.child }, children: /* @__PURE__ */ jsx("div", { className: "mb-8 flex justify-center", children: /* @__PURE__ */ jsxs(
49
+ "a",
50
+ {
51
+ href: announcement.href,
52
+ className: "inline-flex items-center rounded-full border border-border/50 bg-surface/50 px-4 py-1.5 text-sm font-medium text-text-secondary glass-overlay transition-colors hover:border-accent/10 hover:bg-surface-hover",
53
+ children: [
54
+ /* @__PURE__ */ jsx(Badge, { variant: "accent", className: "mr-2 h-5 px-1.5 text-[10px]", children: announcement.label }),
55
+ /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1.5", children: [
56
+ announcement.text,
57
+ /* @__PURE__ */ jsx(ChevronRightIcon, { size: 12 })
58
+ ] })
59
+ ]
60
+ }
61
+ ) }) }),
62
+ /* @__PURE__ */ jsx(Item, { ...!shouldReduceMotion && { variants: heroStagger.child }, children: /* @__PURE__ */ jsxs(Heading, { level: 1, size: "display", className: "mx-auto max-w-4xl text-5xl text-text-primary sm:text-7xl", children: [
63
+ /* @__PURE__ */ jsx("span", { className: "block", children: /* @__PURE__ */ jsx(TextReveal, { text: headline.split(" ").slice(0, 3).join(" "), by: "word", delay: TEXT_EFFECTS.textRevealDelayMs, className: "justify-center" }) }),
64
+ /* @__PURE__ */ jsx(AnimatedGradientText, { className: "mt-1.5", children: headline.split(" ").slice(3).join(" ") })
65
+ ] }) }),
66
+ /* @__PURE__ */ jsx(Item, { ...!shouldReduceMotion && { variants: heroStagger.child }, children: /* @__PURE__ */ jsx("p", { className: "mx-auto mt-6 max-w-2xl text-lg leading-8 text-text-secondary", children: subheadline }) }),
67
+ /* @__PURE__ */ jsx(Item, { ...!shouldReduceMotion && { variants: heroStagger.child }, children: /* @__PURE__ */ jsxs("div", { className: "mt-10 flex items-center justify-center gap-4", children: [
68
+ /* @__PURE__ */ jsxs(Button, { size: "lg", variant: "primary", onClick: primaryAction.onClick, children: [
69
+ primaryAction.label,
70
+ /* @__PURE__ */ jsx(ArrowRightIcon, { size: 16, className: "ml-2" })
71
+ ] }),
72
+ /* @__PURE__ */ jsx(Button, { size: "lg", variant: "outline", onClick: secondaryAction.onClick, children: secondaryAction.label })
73
+ ] }) }),
74
+ /* @__PURE__ */ jsx(Item, { ...!shouldReduceMotion && { variants: heroStagger.child }, children: /* @__PURE__ */ jsx("div", { className: "mt-20", children: /* @__PURE__ */ jsx(Card, { className: "mx-auto max-w-5xl rounded-xl p-2 lg:rounded-2xl lg:p-4", children: /* @__PURE__ */ jsxs("div", { className: "aspect-[16/9] overflow-hidden rounded-lg border border-border glass-panel shadow-inner relative", children: [
75
+ /* @__PURE__ */ jsxs("div", { className: "absolute inset-0 flex flex-col", children: [
76
+ /* @__PURE__ */ jsxs("div", { className: "h-12 border-b border-border flex items-center px-4 gap-4 bg-muted/30", children: [
77
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
78
+ /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-destructive/50" }),
79
+ /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-chart-5/50" }),
80
+ /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-chart-4/50" })
81
+ ] }),
82
+ /* @__PURE__ */ jsx("div", { className: "h-6 w-full max-w-sm rounded bg-muted" })
83
+ ] }),
84
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 flex", children: [
85
+ /* @__PURE__ */ jsxs("div", { className: "w-64 border-r border-border p-4 space-y-4 bg-muted/10 hidden md:block", children: [
86
+ /* @__PURE__ */ jsx("div", { className: "h-4 w-24 rounded bg-muted" }),
87
+ /* @__PURE__ */ jsx("div", { className: "h-4 w-32 rounded bg-muted/50" }),
88
+ /* @__PURE__ */ jsx("div", { className: "h-4 w-20 rounded bg-muted/50" }),
89
+ /* @__PURE__ */ jsx("div", { className: "h-4 w-28 rounded bg-muted/50" })
90
+ ] }),
91
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 p-6 space-y-6", children: [
92
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-4", children: [
93
+ /* @__PURE__ */ jsx("div", { className: "h-32 flex-1 rounded-lg border border-border bg-muted/20" }),
94
+ /* @__PURE__ */ jsx("div", { className: "h-32 flex-1 rounded-lg border border-border bg-muted/20" }),
95
+ /* @__PURE__ */ jsx("div", { className: "h-32 flex-1 rounded-lg border border-border bg-muted/20" })
96
+ ] }),
97
+ /* @__PURE__ */ jsx("div", { className: "h-64 rounded-lg border border-border bg-muted/10" })
98
+ ] })
99
+ ] })
100
+ ] }),
101
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex h-full w-full items-center justify-center pointer-events-none", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-8 opacity-20", children: [
102
+ /* @__PURE__ */ jsx("div", { className: "h-32 w-32 rounded-full border border-primary/50 blur-3xl animate-pulse" }),
103
+ /* @__PURE__ */ jsx("div", { className: "h-32 w-32 rounded-full border border-primary/50 blur-3xl animate-pulse delay-1000" })
104
+ ] }) })
105
+ ] }) }) }) })
106
+ ]
107
+ }
108
+ )
109
+ ] });
110
+ }
111
+ var DEFAULT_SPLIT_PRIMARY_ACTION = { label: "Start Building" };
112
+ function HeroSplitVariant({
113
+ headline = `Build faster with ${siteConfig.name}`,
114
+ subheadline = "A complete component library for building modern, high-contrast AI applications.",
115
+ primaryAction = DEFAULT_SPLIT_PRIMARY_ACTION,
116
+ className
117
+ }) {
118
+ const shouldReduceMotion = useReducedMotion();
119
+ const Wrapper = shouldReduceMotion ? "div" : m.div;
120
+ const Item = shouldReduceMotion ? "div" : m.div;
121
+ return /* @__PURE__ */ jsx("section", { className: cn("relative overflow-hidden py-24 md:py-32", className), children: /* @__PURE__ */ jsxs("div", { className: "container mx-auto grid gap-12 px-6 lg:px-8 lg:grid-cols-2 lg:items-center", children: [
122
+ /* @__PURE__ */ jsxs(
123
+ Wrapper,
124
+ {
125
+ className: "relative z-10",
126
+ ...!shouldReduceMotion && {
127
+ initial: "hidden",
128
+ animate: "visible",
129
+ variants: heroStagger.container
130
+ },
131
+ children: [
132
+ /* @__PURE__ */ jsx(Item, { ...!shouldReduceMotion && { variants: heroStagger.child }, children: /* @__PURE__ */ jsxs("div", { className: "inline-flex items-center rounded-lg border border-border bg-surface px-4 py-1.5 mb-6", children: [
133
+ /* @__PURE__ */ jsx(SparklesIcon, { size: 16, className: "mr-2 text-accent" }),
134
+ /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-text-secondary", children: "AI-Powered Components" })
135
+ ] }) }),
136
+ /* @__PURE__ */ jsx(Item, { ...!shouldReduceMotion && { variants: heroStagger.child }, children: /* @__PURE__ */ jsx(Heading, { level: 1, size: "display", className: "text-text-primary sm:text-6xl mb-6", children: /* @__PURE__ */ jsx(TextReveal, { text: headline, by: "word", delay: TEXT_EFFECTS.textRevealDelayMs }) }) }),
137
+ /* @__PURE__ */ jsx(Item, { ...!shouldReduceMotion && { variants: heroStagger.child }, children: /* @__PURE__ */ jsx("p", { className: "text-lg text-text-secondary mb-8 leading-relaxed max-w-lg", children: subheadline }) }),
138
+ /* @__PURE__ */ jsx(Item, { ...!shouldReduceMotion && { variants: heroStagger.child }, children: /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap gap-4", children: [
139
+ /* @__PURE__ */ jsxs(Button, { size: "lg", variant: "accent", onClick: primaryAction.onClick, children: [
140
+ primaryAction.label,
141
+ /* @__PURE__ */ jsx(ZapIcon, { size: 16, className: "ml-2" })
142
+ ] }),
143
+ /* @__PURE__ */ jsx(Button, { size: "lg", variant: "ghost", children: "Documentation" })
144
+ ] }) }),
145
+ /* @__PURE__ */ jsx(Item, { ...!shouldReduceMotion && { variants: heroStagger.child }, children: /* @__PURE__ */ jsxs("div", { className: "mt-8 flex items-center gap-4 text-sm text-text-tertiary", children: [
146
+ /* @__PURE__ */ jsx("div", { className: "flex -space-x-2", children: [1, 2, 3, 4].map((i) => /* @__PURE__ */ jsxs("div", { className: "h-8 w-8 rounded-full border-2 border-background bg-surface-active flex items-center justify-center text-[10px] font-bold", children: [
147
+ "U",
148
+ i
149
+ ] }, i)) }),
150
+ /* @__PURE__ */ jsx("p", { children: "Trusted by 10,000+ developers" })
151
+ ] }) })
152
+ ]
153
+ }
154
+ ),
155
+ /* @__PURE__ */ jsxs("div", { className: "relative lg:ml-auto w-full max-w-md", children: [
156
+ /* @__PURE__ */ jsx("div", { className: "absolute -inset-4 rounded-xl bg-gradient-to-r from-primary to-text-secondary opacity-20 blur-2xl" }),
157
+ /* @__PURE__ */ jsxs(Card, { interactive: true, className: "relative w-full border-border/50", children: [
158
+ /* @__PURE__ */ jsx(CardHeader, { className: "border-b border-border/50 pb-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
159
+ /* @__PURE__ */ jsxs("div", { className: "flex space-x-2", children: [
160
+ /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-destructive/50" }),
161
+ /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-chart-5/50" }),
162
+ /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-chart-4/50" })
163
+ ] }),
164
+ /* @__PURE__ */ jsx("div", { className: "text-xs text-text-tertiary font-mono", children: "terminal.tsx" })
165
+ ] }) }),
166
+ /* @__PURE__ */ jsxs(CardContent, { className: "space-y-4 p-6 font-mono text-sm", children: [
167
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-chart-4", children: [
168
+ /* @__PURE__ */ jsx(ChevronRightIcon, { size: 16 }),
169
+ /* @__PURE__ */ jsx("span", { children: "npm install @nadicode/core" })
170
+ ] }),
171
+ /* @__PURE__ */ jsxs("div", { className: "text-text-secondary", children: [
172
+ /* @__PURE__ */ jsx("span", { className: "text-chart-2", children: "\u2714" }),
173
+ " Added 124 packages"
174
+ ] }),
175
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-text-primary", children: [
176
+ /* @__PURE__ */ jsx(ChevronRightIcon, { size: 16, className: "text-text-tertiary" }),
177
+ /* @__PURE__ */ jsx("span", { children: "npx nadicode init" })
178
+ ] }),
179
+ /* @__PURE__ */ jsxs("div", { className: "bg-surface/50 p-4 rounded border border-border/50 text-xs text-text-secondary mt-4", children: [
180
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-2", children: [
181
+ /* @__PURE__ */ jsx(TerminalIcon, { size: 12 }),
182
+ /* @__PURE__ */ jsx("span", { children: "Initializing project..." })
183
+ ] }),
184
+ /* @__PURE__ */ jsx("div", { className: "h-1 w-full bg-border rounded-full overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: "h-full bg-accent w-2/3" }) })
185
+ ] })
186
+ ] })
187
+ ] }),
188
+ /* @__PURE__ */ jsx("div", { className: "absolute -bottom-6 -left-6 max-w-[200px]", children: /* @__PURE__ */ jsx(Card, { className: "border-border/50 shadow-xl", children: /* @__PURE__ */ jsxs(CardContent, { className: "p-4 flex items-center gap-4", children: [
189
+ /* @__PURE__ */ jsx("div", { className: "h-8 w-8 rounded-full bg-chart-4/20 flex items-center justify-center text-chart-4", children: /* @__PURE__ */ jsx(ZapIcon, { size: 16 }) }),
190
+ /* @__PURE__ */ jsxs("div", { children: [
191
+ /* @__PURE__ */ jsx("div", { className: "text-xs font-bold text-text-primary", children: "Deployment" }),
192
+ /* @__PURE__ */ jsx("div", { className: "text-[10px] text-text-secondary", children: "Successful (24ms)" })
193
+ ] })
194
+ ] }) }) })
195
+ ] })
196
+ ] }) });
197
+ }
198
+ function HeroBlock({ variant = "centered", ...props }) {
199
+ if (variant === "split") {
200
+ return /* @__PURE__ */ jsx(HeroSplitVariant, { ...props });
201
+ }
202
+ return /* @__PURE__ */ jsx(HeroCenteredVariant, { ...props });
203
+ }
204
+
205
+ export { HeroBlock };
@@ -0,0 +1,44 @@
1
+ import { Typography } from './chunk-N53OMWW2.js';
2
+ import { Heading } from './chunk-WI547C47.js';
3
+ import { ScrollFadeIn } from './chunk-I23DDSU7.js';
4
+ import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from './chunk-W4YX7N46.js';
5
+ import { cn } from './chunk-QYZT24TS.js';
6
+ import { jsx, jsxs } from 'react/jsx-runtime';
7
+
8
+ var defaultItems = [
9
+ {
10
+ question: "What frameworks are supported?",
11
+ answer: "We support React 18+, Next.js 13+, and any framework that works with Tailwind CSS. Our components are built on Radix UI primitives for maximum accessibility."
12
+ },
13
+ {
14
+ question: "Can I customize the design tokens?",
15
+ answer: "Yes. All colors, spacing, typography, and shadows are driven by a single tokens.config.js file. Change the tokens and every component updates automatically."
16
+ },
17
+ {
18
+ question: "Is dark mode supported?",
19
+ answer: "Both light and dark themes are built in via CSS custom properties. The ThemeProvider handles persistence and system preference detection out of the box."
20
+ },
21
+ {
22
+ question: "How do I get support?",
23
+ answer: "Community support is available on GitHub Discussions. Pro and Enterprise plans include priority email and dedicated Slack channels."
24
+ }
25
+ ];
26
+ function FAQBlock({
27
+ items = defaultItems,
28
+ title = "Frequently asked questions",
29
+ description,
30
+ className
31
+ }) {
32
+ return /* @__PURE__ */ jsx("section", { className: cn("py-16 md:py-24", className), children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-3xl px-6", children: [
33
+ /* @__PURE__ */ jsx(ScrollFadeIn, { children: /* @__PURE__ */ jsxs("div", { className: "mb-12 text-center", children: [
34
+ /* @__PURE__ */ jsx(Heading, { level: 2, size: "section", className: "text-text-primary", children: title }),
35
+ !!description && /* @__PURE__ */ jsx(Typography, { variant: "body", className: "mt-4 text-text-secondary", children: description })
36
+ ] }) }),
37
+ /* @__PURE__ */ jsx(Accordion, { type: "single", collapsible: true, className: "w-full", children: items.map((item, index) => /* @__PURE__ */ jsx(ScrollFadeIn, { delay: index * 0.05, children: /* @__PURE__ */ jsxs(AccordionItem, { value: `faq-${index}`, children: [
38
+ /* @__PURE__ */ jsx(AccordionTrigger, { className: "text-left text-base font-medium text-text-primary", children: item.question }),
39
+ /* @__PURE__ */ jsx(AccordionContent, { className: "text-text-secondary leading-relaxed", children: item.answer })
40
+ ] }) }, index)) })
41
+ ] }) });
42
+ }
43
+
44
+ export { FAQBlock };
@@ -0,0 +1,113 @@
1
+ import { Shine } from './chunk-DARC2ACH.js';
2
+ import { ShimmeringText } from './chunk-SGI25ZJ6.js';
3
+ import { StaggerChildren } from './chunk-DQPK2XRL.js';
4
+ import { Heading } from './chunk-WI547C47.js';
5
+ import { siteConfig } from './chunk-A7NUWD76.js';
6
+ import { Card, CardContent } from './chunk-AH6YSYYT.js';
7
+ import { Avatar, AvatarImage, AvatarFallback } from './chunk-NAAU5IWU.js';
8
+ import { jsx, jsxs } from 'react/jsx-runtime';
9
+
10
+ var defaultLogos = [
11
+ { name: "Vercel", icon: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", ...props, children: /* @__PURE__ */ jsx("path", { d: "M12 2L22 22H2L12 2Z", fill: "currentColor", stroke: "none" }) }) },
12
+ { name: "Stripe", icon: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", ...props, children: /* @__PURE__ */ jsx("path", { d: "M22 12h-4l-3 9L9 3l-3 9H2" }) }) },
13
+ { name: "OpenAI", icon: (props) => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", ...props, children: [
14
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10" }),
15
+ /* @__PURE__ */ jsx("path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" })
16
+ ] }) },
17
+ { name: siteConfig.name, icon: (props) => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", ...props, children: [
18
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", ry: "2" }),
19
+ /* @__PURE__ */ jsx("path", { d: "M9 9h6v6H9z" })
20
+ ] }) },
21
+ { name: "Next.js", icon: (props) => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", ...props, children: [
22
+ /* @__PURE__ */ jsx("path", { d: "M21 8v8a5 5 0 0 1-5 5H8a5 5 0 0 1-5-5V8a5 5 0 0 1 5-5h8a5 5 0 0 1 5 5z" }),
23
+ /* @__PURE__ */ jsx("path", { d: "M10 12h4" })
24
+ ] }) }
25
+ ];
26
+ function LogoCloudVariant({
27
+ logos = defaultLogos,
28
+ title = "Trusted by innovative teams",
29
+ className
30
+ } = {}) {
31
+ return /* @__PURE__ */ jsx("div", { className: className ?? "w-full py-12 lg:py-16", children: /* @__PURE__ */ jsxs("div", { className: "container mx-auto px-4 text-center", children: [
32
+ /* @__PURE__ */ jsx("p", { className: "mb-8 text-sm font-medium text-text-tertiary uppercase tracking-wider", children: title }),
33
+ /* @__PURE__ */ jsx(StaggerChildren, { staggerMs: 60, distance: 12, className: "flex flex-wrap gap-8 items-center justify-center opacity-70", children: logos.map((logo) => /* @__PURE__ */ jsxs(
34
+ "div",
35
+ {
36
+ className: "group flex items-center justify-center transition-all duration-300 hover:opacity-100 hover:scale-110",
37
+ children: [
38
+ /* @__PURE__ */ jsx(logo.icon, { className: "h-8 w-8 text-text-tertiary transition-colors group-hover:text-primary group-hover:drop-shadow-[0_0_8px_rgb(var(--color-primary)/0.5)]" }),
39
+ /* @__PURE__ */ jsx("span", { className: "ml-2 text-lg font-semibold text-text-tertiary group-hover:text-text-primary hidden md:inline-block", children: logo.name })
40
+ ]
41
+ },
42
+ logo.name
43
+ )) })
44
+ ] }) });
45
+ }
46
+ var defaultSocialTestimonials = [
47
+ {
48
+ quote: "Seed has completely transformed how we build AI interfaces. The depth and realism are unmatched.",
49
+ author: "Sarah Chen",
50
+ role: "Product Designer @ NeuralNet",
51
+ avatar: "SC"
52
+ },
53
+ {
54
+ quote: "The glassmorphism effects are incredibly performant. It feels like a native app running in the browser.",
55
+ author: "Marcus Rodriguez",
56
+ role: "Frontend Lead @ FutureScale",
57
+ avatar: "MR"
58
+ },
59
+ {
60
+ quote: "Finally, a design system that understands what 'futuristic' actually means. No more flat, boring SaaS UI.",
61
+ author: "Elena Kowalski",
62
+ role: "CTO @ CyberSystems",
63
+ avatar: "EK"
64
+ },
65
+ {
66
+ quote: "Development velocity increased by 3x. The components are so easy to compose.",
67
+ author: "David Park",
68
+ role: "Indie Hacker",
69
+ avatar: "DP"
70
+ }
71
+ ];
72
+ function TestimonialsVariant({
73
+ title = "Loved by Builders",
74
+ testimonials = defaultSocialTestimonials,
75
+ className
76
+ } = {}) {
77
+ return /* @__PURE__ */ jsx("section", { className: className ?? "py-16 md:py-24 relative overflow-hidden", children: /* @__PURE__ */ jsxs("div", { className: "container mx-auto px-6 lg:px-8", children: [
78
+ /* @__PURE__ */ jsx(Heading, { level: 2, size: "section", className: "text-center mb-12", children: /* @__PURE__ */ jsx(
79
+ ShimmeringText,
80
+ {
81
+ text: title,
82
+ color: "var(--color-text-primary)",
83
+ shimmeringColor: "var(--color-accent)",
84
+ duration: 2
85
+ }
86
+ ) }),
87
+ /* @__PURE__ */ jsx(StaggerChildren, { staggerMs: 100, direction: "up", distance: 20, className: "flex flex-wrap justify-center gap-6", children: testimonials.map((t, i) => /* @__PURE__ */ jsx(Shine, { enableOnHover: true, loop: true, loopDelay: 200, color: "var(--color-accent)", opacity: 0.15, children: /* @__PURE__ */ jsx(Card, { interactive: true, className: "w-full max-w-md", children: /* @__PURE__ */ jsxs(CardContent, { className: "p-6", children: [
88
+ /* @__PURE__ */ jsxs("p", { className: "mb-4 text-lg text-text-secondary leading-relaxed", children: [
89
+ '"',
90
+ t.quote,
91
+ '"'
92
+ ] }),
93
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
94
+ /* @__PURE__ */ jsxs(Avatar, { className: "h-10 w-10 border border-primary/20", children: [
95
+ /* @__PURE__ */ jsx(AvatarImage, { src: `https://api.dicebear.com/7.x/avataaars/svg?seed=${t.author}` }),
96
+ /* @__PURE__ */ jsx(AvatarFallback, { children: t.avatar })
97
+ ] }),
98
+ /* @__PURE__ */ jsxs("div", { children: [
99
+ /* @__PURE__ */ jsx("div", { className: "text-sm font-semibold text-text-primary", children: t.author }),
100
+ /* @__PURE__ */ jsx("div", { className: "text-xs text-text-tertiary", children: t.role })
101
+ ] })
102
+ ] })
103
+ ] }) }) }, i)) })
104
+ ] }) });
105
+ }
106
+ function SocialProofBlock({ variant = "logo-cloud", ...props }) {
107
+ if (variant === "testimonials") {
108
+ return /* @__PURE__ */ jsx(TestimonialsVariant, { ...props });
109
+ }
110
+ return /* @__PURE__ */ jsx(LogoCloudVariant, { ...props });
111
+ }
112
+
113
+ export { SocialProofBlock };
@@ -0,0 +1,36 @@
1
+ import { CountingNumber } from './chunk-F3T2U7YL.js';
2
+ import { StaggerChildren } from './chunk-DQPK2XRL.js';
3
+ import { Heading } from './chunk-WI547C47.js';
4
+ import { siteConfig } from './chunk-A7NUWD76.js';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ var defaultStats = [
8
+ { value: 1200, label: "Stars on GitHub", prefix: "+" },
9
+ { value: 22, label: "Active Users", suffix: " Million" },
10
+ { value: 500, label: "Powered Apps", prefix: "+" }
11
+ ];
12
+ var defaultTitle = `${siteConfig.name} in numbers`;
13
+ var defaultDescription = `The numbers speak for themselves. ${siteConfig.name} powers the next generation of AI interfaces with premium design tokens, glass effects, and accessible components.`;
14
+ function StatsMarketingBlock({
15
+ title = defaultTitle,
16
+ description = defaultDescription,
17
+ stats = defaultStats,
18
+ className
19
+ }) {
20
+ return /* @__PURE__ */ jsx("section", { className: className ?? "py-12 md:py-16", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-5xl space-y-8 px-6 md:space-y-16", children: [
21
+ /* @__PURE__ */ jsxs("div", { className: "relative z-10 mx-auto max-w-xl space-y-6 text-center", children: [
22
+ /* @__PURE__ */ jsx(Heading, { level: 2, size: "section", className: "text-4xl lg:text-5xl", children: title }),
23
+ /* @__PURE__ */ jsx("p", { className: "text-text-secondary", children: description })
24
+ ] }),
25
+ /* @__PURE__ */ jsx(StaggerChildren, { staggerMs: 150, className: "grid gap-12 divide-y *:text-center md:grid-cols-3 md:gap-2 md:divide-x md:divide-y-0", children: stats.map((stat) => /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
26
+ /* @__PURE__ */ jsxs("div", { className: "text-5xl font-bold tabular-nums", children: [
27
+ stat.prefix,
28
+ /* @__PURE__ */ jsx(CountingNumber, { number: stat.value, inViewOnce: true }),
29
+ stat.suffix
30
+ ] }),
31
+ /* @__PURE__ */ jsx("p", { children: stat.label })
32
+ ] }, stat.label)) })
33
+ ] }) });
34
+ }
35
+
36
+ export { StatsMarketingBlock };