@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.
- package/.agents/skills/seed/contract.md +1 -0
- package/.agents/skills/seed/recipes/marketing-shell.md +10 -19
- package/.agents/skills/seed/recipes/navigation-shell.md +5 -5
- package/.agents/skills/seed/recipes/service-detail.md +1 -1
- package/.agents/skills/seed/references/blocks.md +25 -24
- package/.agents/skills/seed/references/brand-override.md +3 -1
- package/css/tokens.css +300 -122
- package/dist/catalog.json +1926 -125
- package/dist/chunk-2BADJLMV.js +117 -0
- package/dist/chunk-35EX5FP5.js +106 -0
- package/dist/chunk-5PORR6LE.js +60 -0
- package/dist/chunk-5PZ4VR2D.js +142 -0
- package/dist/chunk-5UESKK6S.js +76 -0
- package/dist/chunk-6N6CSJVE.js +269 -0
- package/dist/chunk-AURJQZC4.js +110 -0
- package/dist/{chunk-DF47R6LN.js → chunk-AWIG4QN6.js} +9 -9
- package/dist/chunk-AYWL4IYM.js +67 -0
- package/dist/{chunk-SV3KZ6CB.js → chunk-DSMGCFMJ.js} +7 -2
- package/dist/chunk-E4L6LR6P.js +33 -0
- package/dist/chunk-EJNF6JLL.js +105 -0
- package/dist/chunk-FX23F33E.js +57 -0
- package/dist/chunk-GJPTPLCQ.js +52 -0
- package/dist/chunk-GV4PKHG4.js +147 -0
- package/dist/chunk-HJ3A2YNO.js +163 -0
- package/dist/chunk-HJZRSPWB.js +38 -0
- package/dist/chunk-IDKZEPWK.js +133 -0
- package/dist/chunk-K7NQ6ZAW.js +84 -0
- package/dist/chunk-LCKLZ4XK.js +60 -0
- package/dist/chunk-MX5FUFQR.js +205 -0
- package/dist/chunk-NEHCPO53.js +44 -0
- package/dist/chunk-OHOOQUVJ.js +113 -0
- package/dist/chunk-QIHA7S3A.js +36 -0
- package/dist/chunk-RKQPU75I.js +126 -0
- package/dist/chunk-RMLS2QUC.js +77 -0
- package/dist/chunk-TS2JSPQR.js +120 -0
- package/dist/chunk-TUKZKU72.js +110 -0
- package/dist/chunk-TZXZFSD2.js +33 -0
- package/dist/chunk-UGV45DH3.js +18 -0
- package/dist/chunk-VBZQ4DBE.js +52 -0
- package/dist/{chunk-LQLFA2EL.js → chunk-VDONTZZX.js} +2 -2
- package/dist/{chunk-RWNJ54CI.js → chunk-VN475YZS.js} +1 -1
- package/dist/chunk-VZCB4APK.js +94 -0
- package/dist/chunk-W7FXDRQJ.js +94 -0
- package/dist/chunk-WAVU744B.js +183 -0
- package/dist/{chunk-5I3FWRC5.js → chunk-WOYBVPXK.js} +10 -10
- package/dist/chunk-WST5NLLC.js +73 -0
- package/dist/chunk-X6VXWEDO.js +125 -0
- package/dist/chunk-ZM2NODUK.js +39 -0
- package/dist/components/blocks/AccountLockedBlock.js +7 -57
- package/dist/components/blocks/ActivityFeedBlock.js +6 -39
- package/dist/components/blocks/AgentConversationBlock.js +5 -33
- package/dist/components/blocks/AudioVisualizerBlock.d.ts +1 -1
- package/dist/components/blocks/AudioVisualizerBlock.js +2 -2
- package/dist/components/blocks/AuthSuccessBlock.js +5 -60
- package/dist/components/blocks/BarChartBlock.d.ts +1 -1
- package/dist/components/blocks/BarChartBlock.js +2 -2
- package/dist/components/blocks/CallToActionBlock.d.ts +1 -1
- package/dist/components/blocks/CallToActionBlock.js +6 -52
- package/dist/components/blocks/ChangelogBlock.js +8 -105
- package/dist/components/blocks/ChartCollectionBlock.js +2 -2
- package/dist/components/blocks/CodeBlock.js +7 -60
- package/dist/components/blocks/ComparisonBlock.js +9 -94
- package/dist/components/blocks/ContactBlock.js +11 -120
- package/dist/components/blocks/FAQBlock.js +6 -44
- package/dist/components/blocks/FeatureBlock.d.ts +10 -14
- package/dist/components/blocks/FeatureBlock.js +17 -159
- package/dist/components/blocks/FeatureGridBlock.d.ts +1 -1
- package/dist/components/blocks/FeatureGridBlock.js +2 -2
- package/dist/components/blocks/FooterBlock.d.ts +2 -2
- package/dist/components/blocks/FooterBlock.js +11 -67
- package/dist/components/blocks/HeaderBlock.d.ts +2 -2
- package/dist/components/blocks/HeaderBlock.js +1 -1
- package/dist/components/blocks/HeatmapChartBlock.d.ts +1 -1
- package/dist/components/blocks/HeatmapChartBlock.js +1 -1
- package/dist/components/blocks/HeroBlock.d.ts +6 -3
- package/dist/components/blocks/HeroBlock.js +16 -199
- package/dist/components/blocks/HeroSectionBlock.d.ts +1 -1
- package/dist/components/blocks/HeroSectionBlock.js +4 -4
- package/dist/components/blocks/IntegrationsBlock.d.ts +1 -1
- package/dist/components/blocks/IntegrationsBlock.js +4 -4
- package/dist/components/blocks/InteractiveAreaChartBlock.d.ts +1 -1
- package/dist/components/blocks/InteractiveAreaChartBlock.js +2 -2
- package/dist/components/blocks/NewsletterBlock.js +11 -84
- package/dist/components/blocks/PasswordRecoveryBlock.js +14 -142
- package/dist/components/blocks/PricingBlock.d.ts +1 -1
- package/dist/components/blocks/PricingBlock.js +11 -110
- package/dist/components/blocks/ProcessFlowBlock.js +10 -77
- package/dist/components/blocks/ResetPasswordBlock.js +11 -125
- package/dist/components/blocks/SignUpBlock.d.ts +1 -1
- package/dist/components/blocks/SignUpBlock.js +2 -2
- package/dist/components/blocks/SocialProofBlock.d.ts +7 -11
- package/dist/components/blocks/SocialProofBlock.js +8 -107
- package/dist/components/blocks/StatsBlock.d.ts +1 -1
- package/dist/components/blocks/StatsBlock.js +2 -2
- package/dist/components/blocks/StatsMarketingBlock.d.ts +1 -1
- package/dist/components/blocks/StatsMarketingBlock.js +5 -36
- package/dist/components/blocks/TeamBlock.d.ts +1 -1
- package/dist/components/blocks/TeamBlock.js +4 -52
- package/dist/components/blocks/TestimonialsBlock.d.ts +1 -1
- package/dist/components/blocks/TestimonialsBlock.js +4 -133
- package/dist/components/blocks/TwoFactorChallengeBlock.js +9 -94
- package/dist/components/blocks/TwoFactorSetupBlock.js +16 -183
- package/dist/components/blocks/UsageDonutBlock.d.ts +1 -1
- package/dist/components/blocks/UsageDonutBlock.js +2 -2
- package/dist/components/logos/index.js +2 -2
- package/dist/components/page-kits/AccountLockedPageKit.d.ts +10 -0
- package/dist/components/page-kits/AccountLockedPageKit.js +48 -0
- package/dist/components/page-kits/AgentsChatPageKit.d.ts +46 -0
- package/dist/components/page-kits/AgentsChatPageKit.js +289 -0
- package/dist/components/page-kits/AnalyticsPageKit.d.ts +49 -0
- package/dist/components/page-kits/AnalyticsPageKit.js +277 -0
- package/dist/components/page-kits/BlogContentPageKit.d.ts +64 -0
- package/dist/components/page-kits/BlogContentPageKit.js +296 -0
- package/dist/components/page-kits/CheckoutPageKit.d.ts +36 -0
- package/dist/components/page-kits/CheckoutPageKit.js +209 -0
- package/dist/components/page-kits/CompanySuitePageKit.d.ts +25 -0
- package/dist/components/page-kits/CompanySuitePageKit.js +240 -0
- package/dist/components/page-kits/CrudFormPageKit.d.ts +54 -0
- package/dist/components/page-kits/CrudFormPageKit.js +138 -0
- package/dist/components/page-kits/CrudListDetailPageKit.d.ts +70 -0
- package/dist/components/page-kits/CrudListDetailPageKit.js +138 -0
- package/dist/components/page-kits/DashboardPageKit.d.ts +39 -0
- package/dist/components/page-kits/DashboardPageKit.js +284 -0
- package/dist/components/page-kits/ErrorPageKit.d.ts +22 -0
- package/dist/components/page-kits/ErrorPageKit.js +55 -0
- package/dist/components/page-kits/KanbanBoardPageKit.d.ts +31 -0
- package/dist/components/page-kits/KanbanBoardPageKit.js +305 -0
- package/dist/components/page-kits/LandingPageKit.d.ts +29 -0
- package/dist/components/page-kits/LandingPageKit.js +221 -0
- package/dist/components/page-kits/LoginPageKit.d.ts +16 -0
- package/dist/components/page-kits/LoginPageKit.js +43 -0
- package/dist/components/page-kits/MarketingShellPageKit.d.ts +21 -0
- package/dist/components/page-kits/MarketingShellPageKit.js +131 -0
- package/dist/components/page-kits/NavigationShellPageKit.d.ts +41 -0
- package/dist/components/page-kits/NavigationShellPageKit.js +132 -0
- package/dist/components/page-kits/OnboardingPageKit.d.ts +26 -0
- package/dist/components/page-kits/OnboardingPageKit.js +248 -0
- package/dist/components/page-kits/PricingPageKit.d.ts +41 -0
- package/dist/components/page-kits/PricingPageKit.js +279 -0
- package/dist/components/page-kits/ProfileSettingsPageKit.d.ts +50 -0
- package/dist/components/page-kits/ProfileSettingsPageKit.js +171 -0
- package/dist/components/page-kits/RecoveryPageKit.d.ts +17 -0
- package/dist/components/page-kits/RecoveryPageKit.js +58 -0
- package/dist/components/page-kits/ResetPageKit.d.ts +14 -0
- package/dist/components/page-kits/ResetPageKit.js +52 -0
- package/dist/components/page-kits/ServiceSuitePageKit.d.ts +25 -0
- package/dist/components/page-kits/ServiceSuitePageKit.js +320 -0
- package/dist/components/page-kits/SettingsPageKit.d.ts +27 -0
- package/dist/components/page-kits/SettingsPageKit.js +11 -0
- package/dist/components/page-kits/SignupPageKit.d.ts +15 -0
- package/dist/components/page-kits/SignupPageKit.js +41 -0
- package/dist/components/page-kits/SuccessPageKit.d.ts +15 -0
- package/dist/components/page-kits/SuccessPageKit.js +146 -0
- package/dist/components/page-kits/TeamSettingsPageKit.d.ts +50 -0
- package/dist/components/page-kits/TeamSettingsPageKit.js +297 -0
- package/dist/components/page-kits/TwoFactorPageKit.d.ts +16 -0
- package/dist/components/page-kits/TwoFactorPageKit.js +156 -0
- package/dist/components/page-kits/VerifyEmailPageKit.d.ts +15 -0
- package/dist/components/page-kits/VerifyEmailPageKit.js +146 -0
- package/dist/components/page-kits/VoiceAgentsPageKit.d.ts +35 -0
- package/dist/components/page-kits/VoiceAgentsPageKit.js +246 -0
- package/dist/components/ui/AudioWaveform.js +2 -76
- package/dist/components/ui/AvatarUpload.js +1 -1
- package/dist/components/ui/Breadcrumb.js +4 -106
- package/dist/components/ui/ChartCard.js +5 -38
- package/dist/components/ui/CheckoutFormDemo.js +5 -6
- package/dist/components/ui/DataFreshness.js +2 -73
- package/dist/components/ui/MouseEffect.js +1 -1
- package/dist/components/ui/NativeSelect.js +2 -18
- package/dist/components/ui/Pagination.js +6 -117
- package/dist/components/ui/ShaderBackground.js +2 -2
- package/dist/hooks/use-shader-preset.js +2 -2
- package/dist/lib/shader-presets.js +1 -1
- package/dist/lib/tokens.config.d.ts +19 -0
- package/package.json +792 -680
- package/scripts/ds-check.mjs +8 -0
- package/src/lib/tokens.config.js +63 -41
|
@@ -1,126 +1,17 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
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
|
|
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
|
|
15
|
+
import '../../chunk-CXACRCZ4.js';
|
|
15
16
|
import '../../chunk-ASKFAYYR.js';
|
|
16
|
-
import
|
|
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
|
-
|
|
3
|
-
import
|
|
4
|
-
import
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
23
|
-
|
|
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
|
|
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
|
-
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
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
|
|
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
|
|
60
|
-
import
|
|
61
|
-
import
|
|
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
|
|
69
|
+
import '../../chunk-JL4MVVFH.js';
|
|
69
70
|
import '../../chunk-IQEBXXB5.js';
|
|
70
71
|
import '../../chunk-AZUJNRQU.js';
|
|
71
|
-
import
|
|
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
|
|
81
|
-
import
|
|
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
|
|
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
|
|
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
|
|
120
|
+
import '../../chunk-S4JAHKOP.js';
|
|
120
121
|
import '../../chunk-HJBXUXTD.js';
|
|
121
122
|
import '../../chunk-ASKFAYYR.js';
|
|
122
|
-
import
|
|
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
|
|
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
|
|
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 {
|
|
62
|
+
export { FeatureGridBlock };
|
|
@@ -3,7 +3,7 @@ interface NavLink {
|
|
|
3
3
|
name: string;
|
|
4
4
|
href: string;
|
|
5
5
|
}
|
|
6
|
-
interface
|
|
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
|
|
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
|
-
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
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
|
|
9
|
-
import
|
|
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
|
|
14
|
-
import
|
|
15
|
-
import
|
|
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
|
|
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
|
|
13
|
+
export declare function HeaderBlock({ menuItems, loginLabel, signUpLabel, loginHref, signUpHref, className, }: HeaderBlockProps): import("react/jsx-runtime").JSX.Element;
|
|
14
14
|
export {};
|
|
@@ -11,5 +11,5 @@ interface HeatmapBlockProps {
|
|
|
11
11
|
description?: string;
|
|
12
12
|
className?: string;
|
|
13
13
|
}
|
|
14
|
-
export declare function
|
|
14
|
+
export declare function HeatmapChartBlock({ data, config, title, description, className, }: HeatmapBlockProps): import("react/jsx-runtime").JSX.Element;
|
|
15
15
|
export {};
|