@vadimcomanescu/nadicode-design-system 2.0.5 → 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 +793 -681
  176. package/scripts/ds-check.mjs +10 -2
  177. package/src/lib/tokens.config.js +63 -41
@@ -1,126 +1,17 @@
1
1
  'use client';
2
- import { useSafeTimeout } from '../../chunk-MDAYDDTC.js';
3
- import { Typography } from '../../chunk-N53OMWW2.js';
4
- import { Textarea } from '../../chunk-4OBE2FS2.js';
5
- import { Spinner } from '../../chunk-ZLSWCV55.js';
6
- import { Field, FieldLabel, FieldContent } from '../../chunk-RX5EUODB.js';
7
- import { Heading } from '../../chunk-WI547C47.js';
8
- import { Input } from '../../chunk-AP3XXYAY.js';
2
+ export { ContactBlock } from '../../chunk-TS2JSPQR.js';
3
+ import '../../chunk-MDAYDDTC.js';
4
+ import '../../chunk-N53OMWW2.js';
5
+ import '../../chunk-4OBE2FS2.js';
6
+ import '../../chunk-ZLSWCV55.js';
7
+ import '../../chunk-RX5EUODB.js';
8
+ import '../../chunk-WI547C47.js';
9
+ import '../../chunk-AP3XXYAY.js';
9
10
  import '../../chunk-LIBXYD5Q.js';
10
- import { Button } from '../../chunk-7KIDDF3I.js';
11
+ import '../../chunk-7KIDDF3I.js';
11
12
  import '../../chunk-PD2YEH3H.js';
12
13
  import '../../chunk-CRY67BIF.js';
13
14
  import '../../chunk-HJC6U46F.js';
14
- import { CheckIcon } from '../../chunk-CXACRCZ4.js';
15
+ import '../../chunk-CXACRCZ4.js';
15
16
  import '../../chunk-ASKFAYYR.js';
16
- import { cn } from '../../chunk-QYZT24TS.js';
17
- import { useState } from 'react';
18
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
19
-
20
- function ContactBlock({
21
- onSubmit,
22
- title = "Get in touch",
23
- description = "Have a question or want to work together? Drop us a message.",
24
- className,
25
- namePlaceholder = "Your name",
26
- emailPlaceholder = "you@example.com",
27
- messagePlaceholder = "Tell us what you need...",
28
- successTitle = "Message sent",
29
- submitLabel = "Send message"
30
- }) {
31
- const [name, setName] = useState("");
32
- const [email, setEmail] = useState("");
33
- const [message, setMessage] = useState("");
34
- const [status, setStatus] = useState("idle");
35
- const setSafeTimeout = useSafeTimeout();
36
- const handleSubmit = async (e) => {
37
- e.preventDefault();
38
- if (!name.trim() || !email.trim() || !message.trim()) return;
39
- setStatus("loading");
40
- try {
41
- await onSubmit?.({ name, email, message });
42
- } catch {
43
- }
44
- setSafeTimeout(() => {
45
- setStatus("success");
46
- setSafeTimeout(() => {
47
- setStatus("idle");
48
- setName("");
49
- setEmail("");
50
- setMessage("");
51
- }, 2e3);
52
- }, 800);
53
- };
54
- return /* @__PURE__ */ jsx("section", { className: cn("py-16 md:py-24", className), children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-lg px-6", children: [
55
- /* @__PURE__ */ jsxs("div", { className: "mb-8 text-center", children: [
56
- /* @__PURE__ */ jsx(Heading, { level: 2, size: "section", className: "text-text-primary", children: title }),
57
- /* @__PURE__ */ jsx(Typography, { variant: "body", className: "mt-2 text-text-secondary", children: description })
58
- ] }),
59
- /* @__PURE__ */ jsx("div", { className: "glass-panel rounded-xl border border-border/50 p-6 sm:p-8", children: status === "success" ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-4 py-8 text-center", children: [
60
- /* @__PURE__ */ jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-success/10 text-success", children: /* @__PURE__ */ jsx(CheckIcon, { size: 24 }) }),
61
- /* @__PURE__ */ jsx(Heading, { level: 4, size: "title", className: "text-text-primary", children: successTitle }),
62
- /* @__PURE__ */ jsxs(Typography, { variant: "body", className: "text-text-secondary", children: [
63
- "We",
64
- "'",
65
- "ll get back to you soon."
66
- ] })
67
- ] }) : /* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit, className: "space-y-6", children: [
68
- /* @__PURE__ */ jsxs(Field, { children: [
69
- /* @__PURE__ */ jsx(FieldLabel, { children: "Name" }),
70
- /* @__PURE__ */ jsx(FieldContent, { children: /* @__PURE__ */ jsx(
71
- Input,
72
- {
73
- name: "name",
74
- placeholder: namePlaceholder,
75
- value: name,
76
- onChange: (e) => setName(e.target.value),
77
- required: true
78
- }
79
- ) })
80
- ] }),
81
- /* @__PURE__ */ jsxs(Field, { children: [
82
- /* @__PURE__ */ jsx(FieldLabel, { children: "Email" }),
83
- /* @__PURE__ */ jsx(FieldContent, { children: /* @__PURE__ */ jsx(
84
- Input,
85
- {
86
- name: "email",
87
- type: "email",
88
- placeholder: emailPlaceholder,
89
- value: email,
90
- onChange: (e) => setEmail(e.target.value),
91
- required: true
92
- }
93
- ) })
94
- ] }),
95
- /* @__PURE__ */ jsxs(Field, { children: [
96
- /* @__PURE__ */ jsx(FieldLabel, { children: "Message" }),
97
- /* @__PURE__ */ jsx(FieldContent, { children: /* @__PURE__ */ jsx(
98
- Textarea,
99
- {
100
- name: "message",
101
- placeholder: messagePlaceholder,
102
- rows: 4,
103
- value: message,
104
- onChange: (e) => setMessage(e.target.value),
105
- required: true
106
- }
107
- ) })
108
- ] }),
109
- /* @__PURE__ */ jsx(
110
- Button,
111
- {
112
- type: "submit",
113
- className: "w-full",
114
- variant: "accent",
115
- disabled: status === "loading",
116
- children: status === "loading" ? /* @__PURE__ */ jsxs(Fragment, { children: [
117
- /* @__PURE__ */ jsx(Spinner, { className: "mr-2 h-4 w-4" }),
118
- "Sending..."
119
- ] }) : submitLabel
120
- }
121
- )
122
- ] }) })
123
- ] }) });
124
- }
125
-
126
- export { ContactBlock };
17
+ import '../../chunk-QYZT24TS.js';
@@ -1,11 +1,12 @@
1
1
  'use client';
2
- import { Typography } from '../../chunk-N53OMWW2.js';
3
- import { Heading } from '../../chunk-WI547C47.js';
4
- import { ScrollFadeIn } from '../../chunk-I23DDSU7.js';
2
+ export { FAQBlock } from '../../chunk-NEHCPO53.js';
3
+ import '../../chunk-N53OMWW2.js';
4
+ import '../../chunk-WI547C47.js';
5
+ import '../../chunk-I23DDSU7.js';
5
6
  import '../../chunk-PD2YEH3H.js';
6
7
  import '../../chunk-CRY67BIF.js';
7
8
  import '../../chunk-HJC6U46F.js';
8
- import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from '../../chunk-W4YX7N46.js';
9
+ import '../../chunk-W4YX7N46.js';
9
10
  import '../../chunk-GO35FTNJ.js';
10
11
  import '../../chunk-PSVQ7ZNX.js';
11
12
  import '../../chunk-FLF5AMNO.js';
@@ -118,43 +119,4 @@ import '../../chunk-PRUXIDBD.js';
118
119
  import '../../chunk-NURPUVUV.js';
119
120
  import '../../chunk-HJBXUXTD.js';
120
121
  import '../../chunk-ASKFAYYR.js';
121
- import { cn } from '../../chunk-QYZT24TS.js';
122
- import { jsx, jsxs } from 'react/jsx-runtime';
123
-
124
- var defaultItems = [
125
- {
126
- question: "What frameworks are supported?",
127
- 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."
128
- },
129
- {
130
- question: "Can I customize the design tokens?",
131
- 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."
132
- },
133
- {
134
- question: "Is dark mode supported?",
135
- 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."
136
- },
137
- {
138
- question: "How do I get support?",
139
- answer: "Community support is available on GitHub Discussions. Pro and Enterprise plans include priority email and dedicated Slack channels."
140
- }
141
- ];
142
- function FAQBlock({
143
- items = defaultItems,
144
- title = "Frequently asked questions",
145
- description,
146
- className
147
- }) {
148
- 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: [
149
- /* @__PURE__ */ jsx(ScrollFadeIn, { children: /* @__PURE__ */ jsxs("div", { className: "mb-12 text-center", children: [
150
- /* @__PURE__ */ jsx(Heading, { level: 2, size: "section", className: "text-text-primary", children: title }),
151
- !!description && /* @__PURE__ */ jsx(Typography, { variant: "body", className: "mt-4 text-text-secondary", children: description })
152
- ] }) }),
153
- /* @__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: [
154
- /* @__PURE__ */ jsx(AccordionTrigger, { className: "text-left text-base font-medium text-text-primary", children: item.question }),
155
- /* @__PURE__ */ jsx(AccordionContent, { className: "text-text-secondary leading-relaxed", children: item.answer })
156
- ] }) }, index)) })
157
- ] }) });
158
- }
159
-
160
- export { FAQBlock };
122
+ import '../../chunk-QYZT24TS.js';
@@ -1,27 +1,23 @@
1
1
  import type { ReactNode } from "react";
2
- interface FeatureGridItem {
2
+ export interface FeatureGridItem {
3
3
  title: string;
4
4
  description: string;
5
5
  icon: ReactNode;
6
6
  }
7
- interface FeatureGridProps {
8
- badge?: string;
9
- title?: string;
10
- description?: string;
11
- features?: FeatureGridItem[];
12
- className?: string;
13
- }
14
- export declare function FeatureGrid({ badge, title, description, features, className, }?: FeatureGridProps): import("react/jsx-runtime").JSX.Element;
15
- interface FeatureListItem {
7
+ export interface FeatureListItem {
16
8
  title: string;
17
9
  description: string;
18
10
  icon: ReactNode;
19
11
  bullets: string[];
20
12
  buttonLabel: string;
21
13
  }
22
- interface FeatureListProps {
23
- features?: FeatureListItem[];
14
+ export type FeatureBlockVariant = "grid" | "list";
15
+ export interface FeatureBlockProps {
16
+ variant?: FeatureBlockVariant;
17
+ badge?: string;
18
+ title?: string;
19
+ description?: string;
20
+ features?: FeatureGridItem[] | FeatureListItem[];
24
21
  className?: string;
25
22
  }
26
- export declare function FeatureList({ features, className, }?: FeatureListProps): import("react/jsx-runtime").JSX.Element;
27
- export {};
23
+ export declare function FeatureBlock({ variant, ...props }: FeatureBlockProps): import("react/jsx-runtime").JSX.Element;
@@ -1,14 +1,15 @@
1
1
  'use client';
2
- import { StaggerChildren } from '../../chunk-DQPK2XRL.js';
3
- import { Heading } from '../../chunk-WI547C47.js';
4
- import { Card, CardHeader, CardTitle, CardContent } from '../../chunk-AH6YSYYT.js';
5
- import { Button } from '../../chunk-7KIDDF3I.js';
2
+ export { FeatureBlock } from '../../chunk-HJ3A2YNO.js';
3
+ import '../../chunk-DQPK2XRL.js';
4
+ import '../../chunk-WI547C47.js';
5
+ import '../../chunk-AH6YSYYT.js';
6
+ import '../../chunk-7KIDDF3I.js';
6
7
  import '../../chunk-PD2YEH3H.js';
7
8
  import '../../chunk-CRY67BIF.js';
8
9
  import '../../chunk-HJC6U46F.js';
9
10
  import '../../chunk-GO35FTNJ.js';
10
11
  import '../../chunk-PSVQ7ZNX.js';
11
- import { ZapIcon } from '../../chunk-FLF5AMNO.js';
12
+ import '../../chunk-FLF5AMNO.js';
12
13
  import '../../chunk-WFJQ43SM.js';
13
14
  import '../../chunk-S4GKGKON.js';
14
15
  import '../../chunk-LCDDAE7J.js';
@@ -56,19 +57,19 @@ import '../../chunk-R3AO6AZM.js';
56
57
  import '../../chunk-RYOTIXZO.js';
57
58
  import '../../chunk-W3B3UOEG.js';
58
59
  import '../../chunk-ACRVOD7W.js';
59
- import { KeyIcon } from '../../chunk-QSU23VYZ.js';
60
- import { LaptopIcon } from '../../chunk-BJYCQ2NV.js';
61
- import { LayersIcon } from '../../chunk-VM462WZC.js';
60
+ import '../../chunk-QSU23VYZ.js';
61
+ import '../../chunk-BJYCQ2NV.js';
62
+ import '../../chunk-VM462WZC.js';
62
63
  import '../../chunk-O74AEVHW.js';
63
64
  import '../../chunk-ZUHIWALK.js';
64
65
  import '../../chunk-5UZDOF6V.js';
65
66
  import '../../chunk-PKVTEDKO.js';
66
67
  import '../../chunk-I3TH7PIB.js';
67
68
  import '../../chunk-WGPK3FQ7.js';
68
- import { GlobeIcon } from '../../chunk-JL4MVVFH.js';
69
+ import '../../chunk-JL4MVVFH.js';
69
70
  import '../../chunk-IQEBXXB5.js';
70
71
  import '../../chunk-AZUJNRQU.js';
71
- import { DatabaseIcon } from '../../chunk-WA45EC4Y.js';
72
+ import '../../chunk-WA45EC4Y.js';
72
73
  import '../../chunk-2MOEOEOI.js';
73
74
  import '../../chunk-5LCXASRW.js';
74
75
  import '../../chunk-2ZJVU7NV.js';
@@ -77,8 +78,8 @@ import '../../chunk-RBPLOM3A.js';
77
78
  import '../../chunk-GCUTJI7M.js';
78
79
  import '../../chunk-2NT57K4U.js';
79
80
  import '../../chunk-6G3RRWJT.js';
80
- import { CloudIcon } from '../../chunk-JRJGSNI4.js';
81
- import { Code2Icon } from '../../chunk-RF6ECFS5.js';
81
+ import '../../chunk-JRJGSNI4.js';
82
+ import '../../chunk-RF6ECFS5.js';
82
83
  import '../../chunk-TV4RSQH4.js';
83
84
  import '../../chunk-4FEAWXJD.js';
84
85
  import '../../chunk-JHQTKMKG.js';
@@ -93,7 +94,7 @@ import '../../chunk-JBK2LA6U.js';
93
94
  import '../../chunk-55U27XY4.js';
94
95
  import '../../chunk-LSPO6OBI.js';
95
96
  import '../../chunk-Y56WBNCY.js';
96
- import { ChartBarIcon } from '../../chunk-KYZT3RNW.js';
97
+ import '../../chunk-KYZT3RNW.js';
97
98
  import '../../chunk-UEG2LI7Z.js';
98
99
  import '../../chunk-JJTQOH7J.js';
99
100
  import '../../chunk-72X6SXOX.js';
@@ -109,157 +110,14 @@ import '../../chunk-WXVNTJIB.js';
109
110
  import '../../chunk-CXACRCZ4.js';
110
111
  import '../../chunk-T7H53CK2.js';
111
112
  import '../../chunk-BFLN54VR.js';
112
- import { ShieldIcon } from '../../chunk-P6IRHPFM.js';
113
+ import '../../chunk-P6IRHPFM.js';
113
114
  import '../../chunk-SXHYB7JB.js';
114
115
  import '../../chunk-ONGJ7AC2.js';
115
116
  import '../../chunk-UHXGBV5N.js';
116
117
  import '../../chunk-UIUMTURU.js';
117
118
  import '../../chunk-PRUXIDBD.js';
118
119
  import '../../chunk-NURPUVUV.js';
119
- import { Badge } from '../../chunk-S4JAHKOP.js';
120
+ import '../../chunk-S4JAHKOP.js';
120
121
  import '../../chunk-HJBXUXTD.js';
121
122
  import '../../chunk-ASKFAYYR.js';
122
- import { cn } from '../../chunk-QYZT24TS.js';
123
- import { jsx, jsxs } from 'react/jsx-runtime';
124
-
125
- var defaultGridFeatures = [
126
- {
127
- title: "Edge Network",
128
- description: "Deploy your AI models to the edge with a single click. Global low-latency inference.",
129
- icon: /* @__PURE__ */ jsx(GlobeIcon, { size: 20 })
130
- },
131
- {
132
- title: "Real-time Processing",
133
- description: "Process locally on device or in the cloud. WebGPU and WebAssembly support built-in.",
134
- icon: /* @__PURE__ */ jsx(ZapIcon, { size: 20 })
135
- },
136
- {
137
- title: "Vector Database",
138
- description: "Integrated vector storage for semantic search and long-term memory retrieval.",
139
- icon: /* @__PURE__ */ jsx(DatabaseIcon, { size: 20 })
140
- },
141
- {
142
- title: "End-to-End Encryption",
143
- description: "Your data is encrypted at rest and in transit. Enterprise-grade security standards.",
144
- icon: /* @__PURE__ */ jsx(ShieldIcon, { size: 20 })
145
- },
146
- {
147
- title: "Automated Scaling",
148
- description: "Scale from 0 to millions of requests without managing infrastructure.",
149
- icon: /* @__PURE__ */ jsx(ChartBarIcon, { size: 20 })
150
- },
151
- {
152
- title: "API First",
153
- description: "Everything is available via API. Integrate with your existing stack seamlessly.",
154
- icon: /* @__PURE__ */ jsx(Code2Icon, { size: 20 })
155
- }
156
- ];
157
- function FeatureGrid({
158
- badge = "Capabilities",
159
- title = "Everything you need to build",
160
- description = "A complete toolkit for the next generation of intelligent applications.",
161
- features = defaultGridFeatures,
162
- className
163
- } = {}) {
164
- return /* @__PURE__ */ jsx("section", { className: className ?? "py-24 relative", children: /* @__PURE__ */ jsxs("div", { className: "container mx-auto px-6 lg:px-8", children: [
165
- /* @__PURE__ */ jsxs("div", { className: "text-center mb-16 max-w-2xl mx-auto", children: [
166
- /* @__PURE__ */ jsx(Badge, { variant: "outline", className: "mb-4", children: badge }),
167
- /* @__PURE__ */ jsx(Heading, { level: 2, size: "section", className: "text-text-primary sm:text-4xl mb-4", children: title }),
168
- /* @__PURE__ */ jsx("p", { className: "text-text-secondary text-lg", children: description })
169
- ] }),
170
- /* @__PURE__ */ jsx(StaggerChildren, { staggerMs: 80, className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 [grid-auto-rows:1fr]", children: features.map((feature, i) => {
171
- const iconColors = [
172
- "bg-primary/10 text-primary",
173
- "bg-accent/10 text-accent",
174
- "bg-chart-1/10 text-chart-1",
175
- "bg-chart-2/10 text-chart-2",
176
- "bg-chart-3/10 text-chart-3",
177
- "bg-chart-4/10 text-chart-4"
178
- ];
179
- return /* @__PURE__ */ jsxs(Card, { interactive: true, className: "h-full", children: [
180
- /* @__PURE__ */ jsxs(CardHeader, { className: "pb-2", children: [
181
- /* @__PURE__ */ jsx("div", { className: cn("h-10 w-10 rounded-lg flex items-center justify-center mb-4", iconColors[i % iconColors.length]), children: feature.icon }),
182
- /* @__PURE__ */ jsx(CardTitle, { className: "text-lg", children: feature.title })
183
- ] }),
184
- /* @__PURE__ */ jsx(CardContent, { className: "flex-1", children: /* @__PURE__ */ jsx("p", { className: "text-text-secondary", children: feature.description }) })
185
- ] }, i);
186
- }) })
187
- ] }) });
188
- }
189
- var defaultListFeatures = [
190
- {
191
- title: "Unified Component Architecture",
192
- description: "Stop wrestling with fragmented libraries. Seed provides a cohesive set of primitives that work together perfectly out of the box. Themeable, accessible, and composable.",
193
- icon: /* @__PURE__ */ jsx(LayersIcon, { size: 24 }),
194
- bullets: ["Type-safe design tokens", "Radix UI primitives", "Automatic dark mode"],
195
- buttonLabel: "Explore Architecture"
196
- },
197
- {
198
- title: "Secure by Default",
199
- description: "Enterprise-ready security features including SSO, audit logs, and role-based access control. Compliant with SOC2 and GDPR.",
200
- icon: /* @__PURE__ */ jsx(ShieldIcon, { size: 24 }),
201
- bullets: ["End-to-end encryption", "SAML & OIDC support", "99.99% Uptime SLA"],
202
- buttonLabel: "View Security Docs"
203
- }
204
- ];
205
- function FeatureList({
206
- features = defaultListFeatures,
207
- className
208
- } = {}) {
209
- return /* @__PURE__ */ jsx("section", { className: className ?? "py-24 overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: "container mx-auto px-6 lg:px-8 space-y-24", children: features.map((feature, i) => {
210
- const isReversed = i % 2 !== 0;
211
- return /* @__PURE__ */ jsxs("div", { className: "grid lg:grid-cols-2 gap-12 items-center", children: [
212
- isReversed && /* @__PURE__ */ jsxs("div", { className: "order-2 lg:order-1 relative", children: [
213
- /* @__PURE__ */ jsx("div", { className: "absolute -inset-4 bg-primary/10 blur-3xl rounded-full" }),
214
- /* @__PURE__ */ jsx(Card, { className: "p-0 overflow-hidden border-border/50", children: /* @__PURE__ */ jsxs("div", { className: "glass-overlay p-6 h-[350px] relative overflow-hidden flex flex-col items-center justify-center", children: [
215
- /* @__PURE__ */ jsx(CloudIcon, { size: 96, className: "text-primary opacity-20 absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2" }),
216
- /* @__PURE__ */ jsxs("div", { className: "z-10 surface-solid p-4 rounded-lg flex items-center gap-4 w-64", children: [
217
- /* @__PURE__ */ jsx("div", { className: "h-8 w-8 rounded bg-chart-4/20 text-chart-4 flex items-center justify-center", children: /* @__PURE__ */ jsx(KeyIcon, { size: 16 }) }),
218
- /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
219
- /* @__PURE__ */ jsx("div", { className: "h-2 w-20 bg-text-primary/20 rounded mb-2" }),
220
- /* @__PURE__ */ jsx("div", { className: "h-2 w-full bg-text-primary/10 rounded" })
221
- ] })
222
- ] }),
223
- /* @__PURE__ */ jsxs("div", { className: "z-10 surface-solid p-4 rounded-lg flex items-center gap-4 w-64 mt-4 translate-x-4", children: [
224
- /* @__PURE__ */ jsx("div", { className: "h-8 w-8 rounded bg-chart-2/20 text-chart-2 flex items-center justify-center", children: /* @__PURE__ */ jsx(LaptopIcon, { size: 16 }) }),
225
- /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
226
- /* @__PURE__ */ jsx("div", { className: "h-2 w-16 bg-text-primary/20 rounded mb-2" }),
227
- /* @__PURE__ */ jsx("div", { className: "h-2 w-full bg-text-primary/10 rounded" })
228
- ] })
229
- ] })
230
- ] }) })
231
- ] }),
232
- /* @__PURE__ */ jsxs("div", { className: isReversed ? "order-1 lg:order-2" : void 0, children: [
233
- /* @__PURE__ */ jsx("div", { className: cn(
234
- "h-12 w-12 rounded-xl flex items-center justify-center mb-6",
235
- isReversed ? "bg-primary/20 text-primary" : "bg-accent/20 text-accent"
236
- ), children: feature.icon }),
237
- /* @__PURE__ */ jsx(Heading, { level: 3, size: "section", className: "text-text-primary mb-4", children: feature.title }),
238
- /* @__PURE__ */ jsx("p", { className: "text-lg text-text-secondary mb-8 leading-relaxed", children: feature.description }),
239
- /* @__PURE__ */ jsx("ul", { className: "space-y-4 mb-8", children: feature.bullets.map((item) => /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-4 text-text-primary", children: [
240
- /* @__PURE__ */ jsx("div", { className: isReversed ? "h-1.5 w-1.5 rounded-full bg-primary" : "h-1.5 w-1.5 rounded-full bg-accent" }),
241
- item
242
- ] }, item)) }),
243
- /* @__PURE__ */ jsx(Button, { variant: "outline", children: feature.buttonLabel })
244
- ] }),
245
- !isReversed && /* @__PURE__ */ jsxs("div", { className: "relative", children: [
246
- /* @__PURE__ */ jsx("div", { className: "absolute -inset-4 bg-accent/10 blur-3xl rounded-full" }),
247
- /* @__PURE__ */ jsxs(Card, { className: "p-0 overflow-hidden border-border/50", children: [
248
- /* @__PURE__ */ jsxs("div", { className: "p-4 border-b border-border/50 flex items-center gap-2", children: [
249
- /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-destructive/50" }),
250
- /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-warning/50" }),
251
- /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-success/50" })
252
- ] }),
253
- /* @__PURE__ */ jsx("div", { className: "p-8 h-[300px] flex items-center justify-center bg-background/50", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4 w-full opacity-80", children: [
254
- /* @__PURE__ */ jsx("div", { className: "h-24 bg-surface/50 rounded-lg border border-border animate-pulse" }),
255
- /* @__PURE__ */ jsx("div", { className: "h-24 bg-surface-active/50 rounded-lg border border-primary/20" }),
256
- /* @__PURE__ */ jsx("div", { className: "h-24 bg-surface/50 rounded-lg border border-border" }),
257
- /* @__PURE__ */ jsx("div", { className: "h-24 bg-surface rounded-lg border border-border" })
258
- ] }) })
259
- ] })
260
- ] })
261
- ] }, i);
262
- }) }) });
263
- }
264
-
265
- export { FeatureGrid, FeatureList };
123
+ import '../../chunk-QYZT24TS.js';
@@ -10,5 +10,5 @@ interface FeaturesProps {
10
10
  features?: FeatureItem[];
11
11
  className?: string;
12
12
  }
13
- export declare function Features({ title, description, features, className, }?: FeaturesProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function FeatureGridBlock({ title, description, features, className, }?: FeaturesProps): import("react/jsx-runtime").JSX.Element;
14
14
  export {};
@@ -28,7 +28,7 @@ var defaultFeatures = [
28
28
  icon: /* @__PURE__ */ jsx(SparklesIcon, { size: 24, "aria-hidden": true })
29
29
  }
30
30
  ];
31
- function Features({
31
+ function FeatureGridBlock({
32
32
  title = "Built to cover your needs",
33
33
  description = "Libero sapiente aliquam quibusdam aspernatur, praesentium iusto repellendus.",
34
34
  features = defaultFeatures,
@@ -59,4 +59,4 @@ var CardDecorator = ({ children }) => /* @__PURE__ */ jsxs("div", { className: "
59
59
  /* @__PURE__ */ jsx("div", { className: "bg-background absolute inset-0 m-auto flex size-12 items-center justify-center border-l border-t", children })
60
60
  ] });
61
61
 
62
- export { Features };
62
+ export { FeatureGridBlock };
@@ -3,7 +3,7 @@ interface NavLink {
3
3
  name: string;
4
4
  href: string;
5
5
  }
6
- interface FooterProps {
6
+ interface FooterBlockProps {
7
7
  brandDescription?: string;
8
8
  newsletterPlaceholder?: string;
9
9
  productLinks?: NavLink[];
@@ -15,5 +15,5 @@ interface FooterProps {
15
15
  }[];
16
16
  className?: string;
17
17
  }
18
- export declare function Footer({ brandDescription, newsletterPlaceholder, productLinks, companyLinks, legalLinks, socialIcons, className, }: FooterProps): import("react/jsx-runtime").JSX.Element;
18
+ export declare function FooterBlock({ brandDescription, newsletterPlaceholder, productLinks, companyLinks, legalLinks, socialIcons, className, }: FooterBlockProps): import("react/jsx-runtime").JSX.Element;
19
19
  export {};
@@ -1,74 +1,18 @@
1
1
  'use client';
2
- import { StaggerChildren } from '../../chunk-DQPK2XRL.js';
3
- import { Heading } from '../../chunk-WI547C47.js';
4
- import { siteConfig } from '../../chunk-A7NUWD76.js';
5
- import { Separator } from '../../chunk-CUZJIDU7.js';
6
- import { Input } from '../../chunk-AP3XXYAY.js';
2
+ export { FooterBlock } from '../../chunk-AYWL4IYM.js';
3
+ import '../../chunk-DQPK2XRL.js';
4
+ import '../../chunk-WI547C47.js';
5
+ import '../../chunk-A7NUWD76.js';
6
+ import '../../chunk-CUZJIDU7.js';
7
+ import '../../chunk-AP3XXYAY.js';
7
8
  import '../../chunk-LIBXYD5Q.js';
8
- import { ScrollFadeIn } from '../../chunk-I23DDSU7.js';
9
- import { Button } from '../../chunk-7KIDDF3I.js';
9
+ import '../../chunk-I23DDSU7.js';
10
+ import '../../chunk-7KIDDF3I.js';
10
11
  import '../../chunk-PD2YEH3H.js';
11
12
  import '../../chunk-CRY67BIF.js';
12
13
  import '../../chunk-HJC6U46F.js';
13
- import { TwitterIcon } from '../../chunk-LCDDAE7J.js';
14
- import { LinkedinIcon } from '../../chunk-2IZC7HSV.js';
15
- import { GithubIcon } from '../../chunk-WGPK3FQ7.js';
14
+ import '../../chunk-LCDDAE7J.js';
15
+ import '../../chunk-2IZC7HSV.js';
16
+ import '../../chunk-WGPK3FQ7.js';
16
17
  import '../../chunk-ASKFAYYR.js';
17
18
  import '../../chunk-QYZT24TS.js';
18
- import { useTranslations } from 'next-intl';
19
- import Link from 'next/link';
20
- import { jsx, jsxs } from 'react/jsx-runtime';
21
-
22
- var CURRENT_YEAR = (/* @__PURE__ */ new Date()).getFullYear();
23
- var defaultSocialIcons = [
24
- { icon: /* @__PURE__ */ jsx(TwitterIcon, { size: 16 }, "twitter"), label: "Twitter" },
25
- { icon: /* @__PURE__ */ jsx(GithubIcon, { size: 16 }, "github"), label: "GitHub" },
26
- { icon: /* @__PURE__ */ jsx(LinkedinIcon, { size: 16 }, "linkedin"), label: "LinkedIn" }
27
- ];
28
- function Footer({
29
- brandDescription = "The ultimate design system for building futuristic, high-contrast AI interfaces.",
30
- newsletterPlaceholder = "Enter your email",
31
- productLinks = siteConfig.nav.footer.product,
32
- companyLinks = siteConfig.nav.footer.company,
33
- legalLinks = siteConfig.nav.footer.legal,
34
- socialIcons = defaultSocialIcons,
35
- className
36
- }) {
37
- const t = useTranslations("blocks.footerBlock");
38
- return /* @__PURE__ */ jsx(ScrollFadeIn, { children: /* @__PURE__ */ jsx("footer", { className: className ?? "bg-background py-12 lg:py-16 border-t border-border/50", children: /* @__PURE__ */ jsxs("div", { className: "container mx-auto px-6 lg:px-8", children: [
39
- /* @__PURE__ */ jsxs("div", { className: "grid gap-12 lg:grid-cols-4", children: [
40
- /* @__PURE__ */ jsxs("div", { className: "lg:col-span-2 space-y-6", children: [
41
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
42
- /* @__PURE__ */ jsx("div", { className: "h-8 w-8 rounded-full bg-primary/20 flex items-center justify-center border border-primary/50 text-primary font-bold", children: "S" }),
43
- /* @__PURE__ */ jsx("span", { className: "text-xl font-bold text-text-primary", children: siteConfig.name })
44
- ] }),
45
- /* @__PURE__ */ jsx("p", { className: "max-w-xs text-text-secondary", children: brandDescription }),
46
- /* @__PURE__ */ jsxs("div", { className: "flex max-w-sm flex-col gap-2 sm:flex-row", children: [
47
- /* @__PURE__ */ jsx(Input, { placeholder: newsletterPlaceholder, type: "email", className: "bg-surface/50 border-border/50" }),
48
- /* @__PURE__ */ jsx(Button, { variant: "primary", children: t("subscribe") })
49
- ] })
50
- ] }),
51
- /* @__PURE__ */ jsxs(StaggerChildren, { staggerMs: 60, className: "grid grid-cols-2 gap-8 lg:col-span-2 sm:grid-cols-3", children: [
52
- /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
53
- /* @__PURE__ */ jsx(Heading, { level: 4, size: "title", className: "text-sm text-text-primary uppercase tracking-wider", children: t("product") }),
54
- /* @__PURE__ */ jsx("ul", { className: "space-y-2 text-sm text-text-secondary", children: productLinks.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: item.href, className: "hover:text-primary transition-colors", children: item.name }) }, item.name)) })
55
- ] }),
56
- /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
57
- /* @__PURE__ */ jsx(Heading, { level: 4, size: "title", className: "text-sm text-text-primary uppercase tracking-wider", children: t("company") }),
58
- /* @__PURE__ */ jsx("ul", { className: "space-y-2 text-sm text-text-secondary", children: companyLinks.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: item.href, className: "hover:text-primary transition-colors", children: item.name }) }, item.name)) })
59
- ] }),
60
- /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
61
- /* @__PURE__ */ jsx(Heading, { level: 4, size: "title", className: "text-sm text-text-primary uppercase tracking-wider", children: t("legal") }),
62
- /* @__PURE__ */ jsx("ul", { className: "space-y-2 text-sm text-text-secondary", children: legalLinks.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: item.href, className: "hover:text-primary transition-colors", children: item.name }) }, item.name)) })
63
- ] })
64
- ] })
65
- ] }),
66
- /* @__PURE__ */ jsx(Separator, { className: "my-12 bg-border/50" }),
67
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-between gap-6 sm:flex-row", children: [
68
- /* @__PURE__ */ jsx("p", { className: "text-sm text-text-tertiary", children: t("allRightsReserved", { year: CURRENT_YEAR, name: siteConfig.name }) }),
69
- /* @__PURE__ */ jsx("div", { className: "flex gap-4", children: socialIcons.map((social, index) => /* @__PURE__ */ jsx(Button, { size: "icon", variant: "ghost", "aria-label": social.label, className: "rounded-full text-text-secondary hover:text-primary hover:bg-surface-hover hover:scale-110 transition-transform duration-fast", children: social.icon }, index)) })
70
- ] })
71
- ] }) }) });
72
- }
73
-
74
- export { Footer };
@@ -2,7 +2,7 @@ interface MenuItem {
2
2
  name: string;
3
3
  href: string;
4
4
  }
5
- interface HeroHeaderProps {
5
+ interface HeaderBlockProps {
6
6
  menuItems?: MenuItem[];
7
7
  loginLabel?: string;
8
8
  signUpLabel?: string;
@@ -10,5 +10,5 @@ interface HeroHeaderProps {
10
10
  signUpHref?: string;
11
11
  className?: string;
12
12
  }
13
- export declare const HeroHeader: ({ menuItems, loginLabel, signUpLabel, loginHref, signUpHref, className, }: HeroHeaderProps) => import("react/jsx-runtime").JSX.Element;
13
+ export declare function HeaderBlock({ menuItems, loginLabel, signUpLabel, loginHref, signUpHref, className, }: HeaderBlockProps): import("react/jsx-runtime").JSX.Element;
14
14
  export {};
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- export { HeroHeader } from '../../chunk-5I3FWRC5.js';
2
+ export { HeaderBlock } from '../../chunk-WOYBVPXK.js';
3
3
  import '../../chunk-HOWTYZL5.js';
4
4
  import '../../chunk-GHIBG7OM.js';
5
5
  import '../../chunk-A7NUWD76.js';
@@ -11,5 +11,5 @@ interface HeatmapBlockProps {
11
11
  description?: string;
12
12
  className?: string;
13
13
  }
14
- export declare function HeatmapBlock({ data, config, title, description, className, }: HeatmapBlockProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function HeatmapChartBlock({ data, config, title, description, className, }: HeatmapBlockProps): import("react/jsx-runtime").JSX.Element;
15
15
  export {};
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- export { HeatmapBlock } from '../../chunk-LQLFA2EL.js';
2
+ export { HeatmapChartBlock } from '../../chunk-VDONTZZX.js';
3
3
  import '../../chunk-XCZIF75R.js';
4
4
  import '../../chunk-WSU2PCA2.js';
5
5
  import '../../chunk-AH6YSYYT.js';