@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,4 +1,4 @@
|
|
|
1
|
-
interface
|
|
1
|
+
interface HeroBlockBaseProps {
|
|
2
2
|
headline?: string;
|
|
3
3
|
subheadline?: string;
|
|
4
4
|
primaryAction?: {
|
|
@@ -16,6 +16,9 @@ interface HeroProps {
|
|
|
16
16
|
};
|
|
17
17
|
className?: string;
|
|
18
18
|
}
|
|
19
|
-
export
|
|
20
|
-
export
|
|
19
|
+
export type HeroBlockVariant = "centered" | "split";
|
|
20
|
+
export interface HeroBlockProps extends HeroBlockBaseProps {
|
|
21
|
+
variant?: HeroBlockVariant;
|
|
22
|
+
}
|
|
23
|
+
export declare function HeroBlock({ variant, ...props }: HeroBlockProps): import("react/jsx-runtime").JSX.Element;
|
|
21
24
|
export {};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
|
+
export { HeroBlock } from '../../chunk-MX5FUFQR.js';
|
|
2
3
|
import '../../chunk-G5EO22OR.js';
|
|
3
4
|
import '../../chunk-ANBJ2OLC.js';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
5
|
+
import '../../chunk-LV4LBWCS.js';
|
|
6
|
+
import '../../chunk-XZ3A33GP.js';
|
|
6
7
|
import '../../chunk-F3T2U7YL.js';
|
|
7
8
|
import '../../chunk-6DYFX5IR.js';
|
|
8
9
|
import '../../chunk-EB5PYS7Q.js';
|
|
@@ -10,28 +11,28 @@ import '../../chunk-OHX2LFAH.js';
|
|
|
10
11
|
import '../../chunk-SGI25ZJ6.js';
|
|
11
12
|
import '../../chunk-ULLTRLBD.js';
|
|
12
13
|
import '../../chunk-4O6L5YWT.js';
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import
|
|
14
|
+
import '../../chunk-WI547C47.js';
|
|
15
|
+
import '../../chunk-A7NUWD76.js';
|
|
16
|
+
import '../../chunk-AH6YSYYT.js';
|
|
17
|
+
import '../../chunk-DSMGCFMJ.js';
|
|
18
|
+
import '../../chunk-7KIDDF3I.js';
|
|
19
|
+
import '../../chunk-PD2YEH3H.js';
|
|
19
20
|
import '../../chunk-CRY67BIF.js';
|
|
20
21
|
import '../../chunk-HJC6U46F.js';
|
|
21
22
|
import '../../chunk-GO35FTNJ.js';
|
|
22
23
|
import '../../chunk-PSVQ7ZNX.js';
|
|
23
|
-
import
|
|
24
|
+
import '../../chunk-FLF5AMNO.js';
|
|
24
25
|
import '../../chunk-WFJQ43SM.js';
|
|
25
26
|
import '../../chunk-S4GKGKON.js';
|
|
26
27
|
import '../../chunk-LCDDAE7J.js';
|
|
27
28
|
import '../../chunk-R674XI7C.js';
|
|
28
29
|
import '../../chunk-WUO7OONN.js';
|
|
29
30
|
import '../../chunk-BPCCTJSK.js';
|
|
30
|
-
import
|
|
31
|
+
import '../../chunk-CGUCH322.js';
|
|
31
32
|
import '../../chunk-ELKIUARM.js';
|
|
32
33
|
import '../../chunk-ZU2GYVAP.js';
|
|
33
34
|
import '../../chunk-KSHJQ2VT.js';
|
|
34
|
-
import
|
|
35
|
+
import '../../chunk-3CLXYQKB.js';
|
|
35
36
|
import '../../chunk-JHQ5NMLZ.js';
|
|
36
37
|
import '../../chunk-CRZ2JE24.js';
|
|
37
38
|
import '../../chunk-TXGANOAX.js';
|
|
@@ -97,7 +98,7 @@ import '../../chunk-JHQTKMKG.js';
|
|
|
97
98
|
import '../../chunk-CI7GPGCJ.js';
|
|
98
99
|
import '../../chunk-226EBOTK.js';
|
|
99
100
|
import '../../chunk-G5YLGJXR.js';
|
|
100
|
-
import
|
|
101
|
+
import '../../chunk-G24VV5NO.js';
|
|
101
102
|
import '../../chunk-6BAV4TZ5.js';
|
|
102
103
|
import '../../chunk-SW6QPJM4.js';
|
|
103
104
|
import '../../chunk-V6WNRZT3.js';
|
|
@@ -119,7 +120,7 @@ import '../../chunk-666N6OTL.js';
|
|
|
119
120
|
import '../../chunk-FMH55OKV.js';
|
|
120
121
|
import '../../chunk-WXVNTJIB.js';
|
|
121
122
|
import '../../chunk-CXACRCZ4.js';
|
|
122
|
-
import
|
|
123
|
+
import '../../chunk-T7H53CK2.js';
|
|
123
124
|
import '../../chunk-BFLN54VR.js';
|
|
124
125
|
import '../../chunk-P6IRHPFM.js';
|
|
125
126
|
import '../../chunk-SXHYB7JB.js';
|
|
@@ -128,191 +129,7 @@ import '../../chunk-UHXGBV5N.js';
|
|
|
128
129
|
import '../../chunk-UIUMTURU.js';
|
|
129
130
|
import '../../chunk-PRUXIDBD.js';
|
|
130
131
|
import '../../chunk-NURPUVUV.js';
|
|
131
|
-
import
|
|
132
|
+
import '../../chunk-S4JAHKOP.js';
|
|
132
133
|
import '../../chunk-HJBXUXTD.js';
|
|
133
134
|
import '../../chunk-ASKFAYYR.js';
|
|
134
|
-
import
|
|
135
|
-
import { useReducedMotion } from 'motion/react';
|
|
136
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
137
|
-
|
|
138
|
-
var TEXT_EFFECTS = {
|
|
139
|
-
textRevealDelayMs: 200
|
|
140
|
-
};
|
|
141
|
-
var DEFAULT_PRIMARY_ACTION = { label: "Get Started" };
|
|
142
|
-
var DEFAULT_SECONDARY_ACTION = { label: "View Components" };
|
|
143
|
-
var DEFAULT_ANNOUNCEMENT = { label: "New", text: `${siteConfig.name} System v2.0 is now live`, href: "#" };
|
|
144
|
-
function HeroCentered({
|
|
145
|
-
headline = "Experience the Future of Synthetic Intelligence",
|
|
146
|
-
subheadline = "Unleash the power of deep learning with our ultra-realistic, high-performance design system. Built for the next generation of AI interfaces.",
|
|
147
|
-
primaryAction = DEFAULT_PRIMARY_ACTION,
|
|
148
|
-
secondaryAction = DEFAULT_SECONDARY_ACTION,
|
|
149
|
-
announcement = DEFAULT_ANNOUNCEMENT,
|
|
150
|
-
className
|
|
151
|
-
}) {
|
|
152
|
-
const shouldReduceMotion = useReducedMotion();
|
|
153
|
-
const Wrapper = shouldReduceMotion ? "div" : m.div;
|
|
154
|
-
const Item = shouldReduceMotion ? "div" : m.div;
|
|
155
|
-
return /* @__PURE__ */ jsxs("section", { className: cn("relative overflow-hidden py-24 md:py-32", className), children: [
|
|
156
|
-
/* @__PURE__ */ jsx(MouseGlow, { className: "opacity-40" }),
|
|
157
|
-
/* @__PURE__ */ jsxs(
|
|
158
|
-
Wrapper,
|
|
159
|
-
{
|
|
160
|
-
className: "container relative z-10 mx-auto px-4 text-center",
|
|
161
|
-
...!shouldReduceMotion && {
|
|
162
|
-
initial: "hidden",
|
|
163
|
-
animate: "visible",
|
|
164
|
-
variants: heroStagger.container
|
|
165
|
-
},
|
|
166
|
-
children: [
|
|
167
|
-
/* @__PURE__ */ jsx(Item, { ...!shouldReduceMotion && { variants: heroStagger.child }, children: /* @__PURE__ */ jsx("div", { className: "mb-8 flex justify-center", children: /* @__PURE__ */ jsxs(
|
|
168
|
-
"a",
|
|
169
|
-
{
|
|
170
|
-
href: announcement.href,
|
|
171
|
-
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",
|
|
172
|
-
children: [
|
|
173
|
-
/* @__PURE__ */ jsx(Badge, { variant: "accent", className: "mr-2 h-5 px-1.5 text-[10px]", children: announcement.label }),
|
|
174
|
-
/* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1.5", children: [
|
|
175
|
-
announcement.text,
|
|
176
|
-
/* @__PURE__ */ jsx(ChevronRightIcon, { size: 12 })
|
|
177
|
-
] })
|
|
178
|
-
]
|
|
179
|
-
}
|
|
180
|
-
) }) }),
|
|
181
|
-
/* @__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: [
|
|
182
|
-
/* @__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" }) }),
|
|
183
|
-
/* @__PURE__ */ jsx(AnimatedGradientText, { className: "mt-1.5", children: headline.split(" ").slice(3).join(" ") })
|
|
184
|
-
] }) }),
|
|
185
|
-
/* @__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 }) }),
|
|
186
|
-
/* @__PURE__ */ jsx(Item, { ...!shouldReduceMotion && { variants: heroStagger.child }, children: /* @__PURE__ */ jsxs("div", { className: "mt-10 flex items-center justify-center gap-4", children: [
|
|
187
|
-
/* @__PURE__ */ jsxs(Button, { size: "lg", variant: "primary", onClick: primaryAction.onClick, children: [
|
|
188
|
-
primaryAction.label,
|
|
189
|
-
/* @__PURE__ */ jsx(ArrowRightIcon, { size: 16, className: "ml-2" })
|
|
190
|
-
] }),
|
|
191
|
-
/* @__PURE__ */ jsx(Button, { size: "lg", variant: "outline", onClick: secondaryAction.onClick, children: secondaryAction.label })
|
|
192
|
-
] }) }),
|
|
193
|
-
/* @__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: [
|
|
194
|
-
/* @__PURE__ */ jsxs("div", { className: "absolute inset-0 flex flex-col", children: [
|
|
195
|
-
/* @__PURE__ */ jsxs("div", { className: "h-12 border-b border-border flex items-center px-4 gap-4 bg-muted/30", children: [
|
|
196
|
-
/* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
197
|
-
/* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-destructive/50" }),
|
|
198
|
-
/* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-chart-5/50" }),
|
|
199
|
-
/* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-chart-4/50" })
|
|
200
|
-
] }),
|
|
201
|
-
/* @__PURE__ */ jsx("div", { className: "h-6 w-full max-w-sm rounded bg-muted" })
|
|
202
|
-
] }),
|
|
203
|
-
/* @__PURE__ */ jsxs("div", { className: "flex-1 flex", children: [
|
|
204
|
-
/* @__PURE__ */ jsxs("div", { className: "w-64 border-r border-border p-4 space-y-4 bg-muted/10 hidden md:block", children: [
|
|
205
|
-
/* @__PURE__ */ jsx("div", { className: "h-4 w-24 rounded bg-muted" }),
|
|
206
|
-
/* @__PURE__ */ jsx("div", { className: "h-4 w-32 rounded bg-muted/50" }),
|
|
207
|
-
/* @__PURE__ */ jsx("div", { className: "h-4 w-20 rounded bg-muted/50" }),
|
|
208
|
-
/* @__PURE__ */ jsx("div", { className: "h-4 w-28 rounded bg-muted/50" })
|
|
209
|
-
] }),
|
|
210
|
-
/* @__PURE__ */ jsxs("div", { className: "flex-1 p-6 space-y-6", children: [
|
|
211
|
-
/* @__PURE__ */ jsxs("div", { className: "flex gap-4", children: [
|
|
212
|
-
/* @__PURE__ */ jsx("div", { className: "h-32 flex-1 rounded-lg border border-border bg-muted/20" }),
|
|
213
|
-
/* @__PURE__ */ jsx("div", { className: "h-32 flex-1 rounded-lg border border-border bg-muted/20" }),
|
|
214
|
-
/* @__PURE__ */ jsx("div", { className: "h-32 flex-1 rounded-lg border border-border bg-muted/20" })
|
|
215
|
-
] }),
|
|
216
|
-
/* @__PURE__ */ jsx("div", { className: "h-64 rounded-lg border border-border bg-muted/10" })
|
|
217
|
-
] })
|
|
218
|
-
] })
|
|
219
|
-
] }),
|
|
220
|
-
/* @__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: [
|
|
221
|
-
/* @__PURE__ */ jsx("div", { className: "h-32 w-32 rounded-full border border-primary/50 blur-3xl animate-pulse" }),
|
|
222
|
-
/* @__PURE__ */ jsx("div", { className: "h-32 w-32 rounded-full border border-primary/50 blur-3xl animate-pulse delay-1000" })
|
|
223
|
-
] }) })
|
|
224
|
-
] }) }) }) })
|
|
225
|
-
]
|
|
226
|
-
}
|
|
227
|
-
)
|
|
228
|
-
] });
|
|
229
|
-
}
|
|
230
|
-
var DEFAULT_SPLIT_PRIMARY_ACTION = { label: "Start Building" };
|
|
231
|
-
function HeroSplit({
|
|
232
|
-
headline = `Build faster with ${siteConfig.name}`,
|
|
233
|
-
subheadline = "A complete component library for building modern, high-contrast AI applications.",
|
|
234
|
-
primaryAction = DEFAULT_SPLIT_PRIMARY_ACTION,
|
|
235
|
-
className
|
|
236
|
-
}) {
|
|
237
|
-
const shouldReduceMotion = useReducedMotion();
|
|
238
|
-
const Wrapper = shouldReduceMotion ? "div" : m.div;
|
|
239
|
-
const Item = shouldReduceMotion ? "div" : m.div;
|
|
240
|
-
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: [
|
|
241
|
-
/* @__PURE__ */ jsxs(
|
|
242
|
-
Wrapper,
|
|
243
|
-
{
|
|
244
|
-
className: "relative z-10",
|
|
245
|
-
...!shouldReduceMotion && {
|
|
246
|
-
initial: "hidden",
|
|
247
|
-
animate: "visible",
|
|
248
|
-
variants: heroStagger.container
|
|
249
|
-
},
|
|
250
|
-
children: [
|
|
251
|
-
/* @__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: [
|
|
252
|
-
/* @__PURE__ */ jsx(SparklesIcon, { size: 16, className: "mr-2 text-accent" }),
|
|
253
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-text-secondary", children: "AI-Powered Components" })
|
|
254
|
-
] }) }),
|
|
255
|
-
/* @__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 }) }) }),
|
|
256
|
-
/* @__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 }) }),
|
|
257
|
-
/* @__PURE__ */ jsx(Item, { ...!shouldReduceMotion && { variants: heroStagger.child }, children: /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap gap-4", children: [
|
|
258
|
-
/* @__PURE__ */ jsxs(Button, { size: "lg", variant: "accent", onClick: primaryAction.onClick, children: [
|
|
259
|
-
primaryAction.label,
|
|
260
|
-
/* @__PURE__ */ jsx(ZapIcon, { size: 16, className: "ml-2" })
|
|
261
|
-
] }),
|
|
262
|
-
/* @__PURE__ */ jsx(Button, { size: "lg", variant: "ghost", children: "Documentation" })
|
|
263
|
-
] }) }),
|
|
264
|
-
/* @__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: [
|
|
265
|
-
/* @__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: [
|
|
266
|
-
"U",
|
|
267
|
-
i
|
|
268
|
-
] }, i)) }),
|
|
269
|
-
/* @__PURE__ */ jsx("p", { children: "Trusted by 10,000+ developers" })
|
|
270
|
-
] }) })
|
|
271
|
-
]
|
|
272
|
-
}
|
|
273
|
-
),
|
|
274
|
-
/* @__PURE__ */ jsxs("div", { className: "relative lg:ml-auto w-full max-w-md", children: [
|
|
275
|
-
/* @__PURE__ */ jsx("div", { className: "absolute -inset-4 rounded-xl bg-gradient-to-r from-primary to-text-secondary opacity-20 blur-2xl" }),
|
|
276
|
-
/* @__PURE__ */ jsxs(Card, { interactive: true, className: "relative w-full border-border/50", children: [
|
|
277
|
-
/* @__PURE__ */ jsx(CardHeader, { className: "border-b border-border/50 pb-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
278
|
-
/* @__PURE__ */ jsxs("div", { className: "flex space-x-2", children: [
|
|
279
|
-
/* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-destructive/50" }),
|
|
280
|
-
/* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-chart-5/50" }),
|
|
281
|
-
/* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full bg-chart-4/50" })
|
|
282
|
-
] }),
|
|
283
|
-
/* @__PURE__ */ jsx("div", { className: "text-xs text-text-tertiary font-mono", children: "terminal.tsx" })
|
|
284
|
-
] }) }),
|
|
285
|
-
/* @__PURE__ */ jsxs(CardContent, { className: "space-y-4 p-6 font-mono text-sm", children: [
|
|
286
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-chart-4", children: [
|
|
287
|
-
/* @__PURE__ */ jsx(ChevronRightIcon, { size: 16 }),
|
|
288
|
-
/* @__PURE__ */ jsx("span", { children: "npm install @nadicode/core" })
|
|
289
|
-
] }),
|
|
290
|
-
/* @__PURE__ */ jsxs("div", { className: "text-text-secondary", children: [
|
|
291
|
-
/* @__PURE__ */ jsx("span", { className: "text-chart-2", children: "\u2714" }),
|
|
292
|
-
" Added 124 packages"
|
|
293
|
-
] }),
|
|
294
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-text-primary", children: [
|
|
295
|
-
/* @__PURE__ */ jsx(ChevronRightIcon, { size: 16, className: "text-text-tertiary" }),
|
|
296
|
-
/* @__PURE__ */ jsx("span", { children: "npx nadicode init" })
|
|
297
|
-
] }),
|
|
298
|
-
/* @__PURE__ */ jsxs("div", { className: "bg-surface/50 p-4 rounded border border-border/50 text-xs text-text-secondary mt-4", children: [
|
|
299
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
300
|
-
/* @__PURE__ */ jsx(TerminalIcon, { size: 12 }),
|
|
301
|
-
/* @__PURE__ */ jsx("span", { children: "Initializing project..." })
|
|
302
|
-
] }),
|
|
303
|
-
/* @__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" }) })
|
|
304
|
-
] })
|
|
305
|
-
] })
|
|
306
|
-
] }),
|
|
307
|
-
/* @__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: [
|
|
308
|
-
/* @__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 }) }),
|
|
309
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
310
|
-
/* @__PURE__ */ jsx("div", { className: "text-xs font-bold text-text-primary", children: "Deployment" }),
|
|
311
|
-
/* @__PURE__ */ jsx("div", { className: "text-[10px] text-text-secondary", children: "Successful (24ms)" })
|
|
312
|
-
] })
|
|
313
|
-
] }) }) })
|
|
314
|
-
] })
|
|
315
|
-
] }) });
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
export { HeroCentered, HeroSplit };
|
|
135
|
+
import '../../chunk-QYZT24TS.js';
|
|
@@ -15,5 +15,5 @@ interface HeroSectionProps {
|
|
|
15
15
|
logos?: HeroLogo[];
|
|
16
16
|
className?: string;
|
|
17
17
|
}
|
|
18
|
-
export declare function
|
|
18
|
+
export declare function HeroSectionBlock({ headline, flipWords, primaryAction, secondaryAction, logos, className, }: HeroSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
19
19
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { HeaderBlock } from '../../chunk-WOYBVPXK.js';
|
|
3
3
|
import '../../chunk-G5EO22OR.js';
|
|
4
4
|
import '../../chunk-ANBJ2OLC.js';
|
|
5
5
|
import '../../chunk-LV4LBWCS.js';
|
|
@@ -158,7 +158,7 @@ function heightClass(h) {
|
|
|
158
158
|
if (n <= 24) return "h-6";
|
|
159
159
|
return "h-7";
|
|
160
160
|
}
|
|
161
|
-
function
|
|
161
|
+
function HeroSectionBlock({
|
|
162
162
|
headline = "Build 10x Faster with NS",
|
|
163
163
|
flipWords = defaultFlipWords,
|
|
164
164
|
primaryAction = defaultPrimaryAction,
|
|
@@ -167,7 +167,7 @@ function HeroSection({
|
|
|
167
167
|
className
|
|
168
168
|
}) {
|
|
169
169
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
170
|
-
/* @__PURE__ */ jsx(
|
|
170
|
+
/* @__PURE__ */ jsx(HeaderBlock, {}),
|
|
171
171
|
/* @__PURE__ */ jsxs("main", { className: className ?? "overflow-x-hidden", children: [
|
|
172
172
|
/* @__PURE__ */ jsx("section", { children: /* @__PURE__ */ jsxs("div", { className: "py-24 md:pb-32 lg:pb-36 lg:pt-72", children: [
|
|
173
173
|
/* @__PURE__ */ jsx("div", { className: "relative mx-auto flex max-w-7xl flex-col px-6 lg:block lg:px-12", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-lg text-center lg:ml-0 lg:max-w-full lg:text-left", children: [
|
|
@@ -264,4 +264,4 @@ function HeroSection({
|
|
|
264
264
|
] });
|
|
265
265
|
}
|
|
266
266
|
|
|
267
|
-
export {
|
|
267
|
+
export { HeroSectionBlock };
|
|
@@ -11,5 +11,5 @@ interface IntegrationsSectionProps {
|
|
|
11
11
|
integrations?: IntegrationItem[];
|
|
12
12
|
className?: string;
|
|
13
13
|
}
|
|
14
|
-
export declare function
|
|
14
|
+
export declare function IntegrationsBlock({ title, description, integrations, className, }?: IntegrationsSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
15
15
|
export {};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import '../../chunk-3ZDYYZDD.js';
|
|
3
|
+
import { VSCodium } from '../../chunk-J5DRK4RF.js';
|
|
4
|
+
import { Gemini } from '../../chunk-TSVN5A2F.js';
|
|
3
5
|
import { GooglePaLM } from '../../chunk-PX2WVDDB.js';
|
|
4
6
|
import { MagicUI } from '../../chunk-BZYMCJHW.js';
|
|
5
7
|
import { MediaWiki } from '../../chunk-H466RJCI.js';
|
|
6
8
|
import { Replit } from '../../chunk-DT6DGTVW.js';
|
|
7
|
-
import { VSCodium } from '../../chunk-J5DRK4RF.js';
|
|
8
|
-
import { Gemini } from '../../chunk-TSVN5A2F.js';
|
|
9
9
|
import { StaggerChildren } from '../../chunk-DQPK2XRL.js';
|
|
10
10
|
import { Heading } from '../../chunk-WI547C47.js';
|
|
11
11
|
import { ScrollFadeIn } from '../../chunk-I23DDSU7.js';
|
|
@@ -162,7 +162,7 @@ var defaultIntegrations = [
|
|
|
162
162
|
icon: /* @__PURE__ */ jsx(GooglePaLM, {})
|
|
163
163
|
}
|
|
164
164
|
];
|
|
165
|
-
function
|
|
165
|
+
function IntegrationsBlock({
|
|
166
166
|
title = "Integrate with your favorite tools",
|
|
167
167
|
description = "Connect seamlessly with popular platforms and services to enhance your workflow.",
|
|
168
168
|
integrations = defaultIntegrations,
|
|
@@ -208,4 +208,4 @@ var IntegrationCard = ({ title, description, children, link = "https://github.co
|
|
|
208
208
|
] }) });
|
|
209
209
|
};
|
|
210
210
|
|
|
211
|
-
export {
|
|
211
|
+
export { IntegrationsBlock };
|
|
@@ -17,5 +17,5 @@ interface InteractiveAreaChartProps {
|
|
|
17
17
|
timeRanges?: TimeRange[];
|
|
18
18
|
className?: string;
|
|
19
19
|
}
|
|
20
|
-
export declare function
|
|
20
|
+
export declare function InteractiveAreaChartBlock({ data, config, title, description, timeRanges, className, }: InteractiveAreaChartProps): import("react/jsx-runtime").JSX.Element;
|
|
21
21
|
export {};
|
|
@@ -356,7 +356,7 @@ var defaultConfig = {
|
|
|
356
356
|
color: "rgb(var(--chart-2))"
|
|
357
357
|
}
|
|
358
358
|
};
|
|
359
|
-
function
|
|
359
|
+
function InteractiveAreaChartBlock({
|
|
360
360
|
data = defaultData,
|
|
361
361
|
config = defaultConfig,
|
|
362
362
|
title = "Traffic Analysis",
|
|
@@ -404,4 +404,4 @@ function InteractiveAreaChart({
|
|
|
404
404
|
] });
|
|
405
405
|
}
|
|
406
406
|
|
|
407
|
-
export {
|
|
407
|
+
export { InteractiveAreaChartBlock };
|
|
@@ -1,90 +1,17 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
2
|
+
export { NewsletterBlock } from '../../chunk-K7NQ6ZAW.js';
|
|
3
|
+
import '../../chunk-DARC2ACH.js';
|
|
4
|
+
import '../../chunk-MDAYDDTC.js';
|
|
5
|
+
import '../../chunk-N53OMWW2.js';
|
|
6
|
+
import '../../chunk-ZLSWCV55.js';
|
|
7
|
+
import '../../chunk-WI547C47.js';
|
|
8
|
+
import '../../chunk-AP3XXYAY.js';
|
|
8
9
|
import '../../chunk-LIBXYD5Q.js';
|
|
9
|
-
import
|
|
10
|
-
import
|
|
10
|
+
import '../../chunk-I23DDSU7.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
|
|
15
|
+
import '../../chunk-CXACRCZ4.js';
|
|
15
16
|
import '../../chunk-ASKFAYYR.js';
|
|
16
|
-
import
|
|
17
|
-
import { useState } from 'react';
|
|
18
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
19
|
-
|
|
20
|
-
function NewsletterBlock({
|
|
21
|
-
onSubscribe,
|
|
22
|
-
title = "Stay in the loop",
|
|
23
|
-
description = "Get notified about new components, updates, and design system tips. No spam.",
|
|
24
|
-
className
|
|
25
|
-
}) {
|
|
26
|
-
const [email, setEmail] = useState("");
|
|
27
|
-
const [status, setStatus] = useState("idle");
|
|
28
|
-
const setSafeTimeout = useSafeTimeout();
|
|
29
|
-
const handleSubmit = async (e) => {
|
|
30
|
-
e.preventDefault();
|
|
31
|
-
if (!email.trim()) return;
|
|
32
|
-
setStatus("loading");
|
|
33
|
-
try {
|
|
34
|
-
await onSubscribe?.(email);
|
|
35
|
-
} catch {
|
|
36
|
-
}
|
|
37
|
-
setSafeTimeout(() => {
|
|
38
|
-
setStatus("success");
|
|
39
|
-
setSafeTimeout(() => {
|
|
40
|
-
setStatus("idle");
|
|
41
|
-
setEmail("");
|
|
42
|
-
}, 3e3);
|
|
43
|
-
}, 600);
|
|
44
|
-
};
|
|
45
|
-
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: [
|
|
46
|
-
/* @__PURE__ */ jsx(Heading, { level: 2, size: "section", className: "text-text-primary", children: title }),
|
|
47
|
-
/* @__PURE__ */ jsx(Typography, { variant: "body", className: "mt-4 text-text-secondary", children: description }),
|
|
48
|
-
status === "success" ? /* @__PURE__ */ jsxs("div", { className: "mt-8 flex items-center justify-center gap-2 text-success", children: [
|
|
49
|
-
/* @__PURE__ */ jsx(CheckIcon, { size: 20 }),
|
|
50
|
-
/* @__PURE__ */ jsxs("span", { className: "text-sm font-medium", children: [
|
|
51
|
-
"You",
|
|
52
|
-
"'",
|
|
53
|
-
"re subscribed!"
|
|
54
|
-
] })
|
|
55
|
-
] }) : /* @__PURE__ */ jsxs(
|
|
56
|
-
"form",
|
|
57
|
-
{
|
|
58
|
-
onSubmit: handleSubmit,
|
|
59
|
-
className: "mt-8 flex flex-col gap-4 sm:flex-row",
|
|
60
|
-
children: [
|
|
61
|
-
/* @__PURE__ */ jsx(
|
|
62
|
-
Input,
|
|
63
|
-
{
|
|
64
|
-
name: "email",
|
|
65
|
-
type: "email",
|
|
66
|
-
placeholder: "you@example.com",
|
|
67
|
-
value: email,
|
|
68
|
-
onChange: (e) => setEmail(e.target.value),
|
|
69
|
-
required: true,
|
|
70
|
-
className: "flex-1"
|
|
71
|
-
}
|
|
72
|
-
),
|
|
73
|
-
/* @__PURE__ */ jsx(
|
|
74
|
-
Button,
|
|
75
|
-
{
|
|
76
|
-
type: "submit",
|
|
77
|
-
variant: "accent",
|
|
78
|
-
disabled: status === "loading",
|
|
79
|
-
className: "shrink-0",
|
|
80
|
-
children: status === "loading" ? /* @__PURE__ */ jsx(Spinner, { className: "h-4 w-4" }) : "Subscribe"
|
|
81
|
-
}
|
|
82
|
-
)
|
|
83
|
-
]
|
|
84
|
-
}
|
|
85
|
-
),
|
|
86
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "mt-4 text-text-tertiary", children: "Unsubscribe anytime. We respect your inbox." })
|
|
87
|
-
] }) }) }) }) });
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export { NewsletterBlock };
|
|
17
|
+
import '../../chunk-QYZT24TS.js';
|
|
@@ -1,147 +1,19 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
2
|
+
export { PasswordRecoveryBlock } from '../../chunk-5PZ4VR2D.js';
|
|
3
|
+
import '../../chunk-MDAYDDTC.js';
|
|
4
|
+
import '../../chunk-ZLSWCV55.js';
|
|
5
|
+
import '../../chunk-RX5EUODB.js';
|
|
6
|
+
import '../../chunk-CUZJIDU7.js';
|
|
7
|
+
import '../../chunk-AP3XXYAY.js';
|
|
7
8
|
import '../../chunk-LIBXYD5Q.js';
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
9
|
+
import '../../chunk-AH6YSYYT.js';
|
|
10
|
+
import '../../chunk-7KIDDF3I.js';
|
|
11
|
+
import '../../chunk-PD2YEH3H.js';
|
|
11
12
|
import '../../chunk-CRY67BIF.js';
|
|
12
13
|
import '../../chunk-HJC6U46F.js';
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
14
|
+
import '../../chunk-CGUCH322.js';
|
|
15
|
+
import '../../chunk-XQ2UDMPO.js';
|
|
16
|
+
import '../../chunk-CXACRCZ4.js';
|
|
17
|
+
import '../../chunk-S4JAHKOP.js';
|
|
17
18
|
import '../../chunk-ASKFAYYR.js';
|
|
18
|
-
import
|
|
19
|
-
import * as React from 'react';
|
|
20
|
-
import { useTranslations } from 'next-intl';
|
|
21
|
-
import { useReducedMotion } from 'motion/react';
|
|
22
|
-
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
23
|
-
|
|
24
|
-
var MODE_ICONS = {
|
|
25
|
-
reset: /* @__PURE__ */ jsx(MailIcon, { size: 32, className: "text-text-secondary" }),
|
|
26
|
-
"magic-link": /* @__PURE__ */ jsx(SparklesIcon, { size: 32, className: "text-accent" })
|
|
27
|
-
};
|
|
28
|
-
var INSTRUCTION_STEPS = ["step1", "step2", "step3"];
|
|
29
|
-
function PasswordRecoveryBlock({
|
|
30
|
-
className,
|
|
31
|
-
mode = "reset",
|
|
32
|
-
onSubmit,
|
|
33
|
-
onBackToLogin,
|
|
34
|
-
title,
|
|
35
|
-
description,
|
|
36
|
-
buttonText,
|
|
37
|
-
successTitle
|
|
38
|
-
}) {
|
|
39
|
-
const prefersReduced = useReducedMotion();
|
|
40
|
-
const tShared = useTranslations("auth.passwordRecovery.shared");
|
|
41
|
-
const tMode = useTranslations(mode === "magic-link" ? "auth.passwordRecovery.magicLink" : "auth.passwordRecovery.reset");
|
|
42
|
-
const [email, setEmail] = React.useState("");
|
|
43
|
-
const [state, setState] = React.useState("entry");
|
|
44
|
-
const [resendState, setResendState] = React.useState("idle");
|
|
45
|
-
const setSafeTimeout = useSafeTimeout();
|
|
46
|
-
const resolvedTitle = title ?? tMode("title");
|
|
47
|
-
const resolvedDescription = description ?? tMode("description");
|
|
48
|
-
const resolvedButtonText = buttonText ?? tMode("button");
|
|
49
|
-
const resolvedSuccessTitle = successTitle ?? tShared("checkEmail");
|
|
50
|
-
const handleSubmit = (e) => {
|
|
51
|
-
e.preventDefault();
|
|
52
|
-
if (!email) return;
|
|
53
|
-
setState("loading");
|
|
54
|
-
onSubmit?.(email);
|
|
55
|
-
setSafeTimeout(() => setState("success"), 1500);
|
|
56
|
-
};
|
|
57
|
-
const handleResend = () => {
|
|
58
|
-
setResendState("sending");
|
|
59
|
-
onSubmit?.(email);
|
|
60
|
-
setSafeTimeout(() => {
|
|
61
|
-
setResendState("sent");
|
|
62
|
-
setSafeTimeout(() => setResendState("idle"), 3e3);
|
|
63
|
-
}, 1e3);
|
|
64
|
-
};
|
|
65
|
-
if (state === "success") {
|
|
66
|
-
return /* @__PURE__ */ jsx(m.div, { ...prefersReduced ? {} : fadeInUp, className: cn("w-full max-w-sm mx-auto", className), children: /* @__PURE__ */ jsxs(Card, { children: [
|
|
67
|
-
/* @__PURE__ */ jsxs(CardHeader, { className: "text-center", children: [
|
|
68
|
-
/* @__PURE__ */ jsx("div", { className: "mx-auto mb-2", children: /* @__PURE__ */ jsx(MailIcon, { size: 48, className: "text-accent" }) }),
|
|
69
|
-
/* @__PURE__ */ jsx(CardTitle, { className: "text-2xl", children: resolvedSuccessTitle }),
|
|
70
|
-
/* @__PURE__ */ jsx(CardDescription, { children: tMode("successDescription") })
|
|
71
|
-
] }),
|
|
72
|
-
/* @__PURE__ */ jsxs(CardContent, { className: "grid gap-4", children: [
|
|
73
|
-
/* @__PURE__ */ jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx(Badge, { variant: "outline", className: "font-mono text-xs", children: email }) }),
|
|
74
|
-
/* @__PURE__ */ jsx("ol", { className: "space-y-2 text-sm text-text-secondary list-none", children: INSTRUCTION_STEPS.map((key) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2", children: [
|
|
75
|
-
/* @__PURE__ */ jsx(CheckIcon, { size: 16, className: "text-success mt-0.5 shrink-0" }),
|
|
76
|
-
/* @__PURE__ */ jsx("span", { children: tMode(`instructions.${key}`) })
|
|
77
|
-
] }, key)) }),
|
|
78
|
-
/* @__PURE__ */ jsx(Separator, {}),
|
|
79
|
-
/* @__PURE__ */ jsxs("div", { className: "text-center space-y-2", children: [
|
|
80
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-text-tertiary", children: tShared("didNotReceiveEmail") }),
|
|
81
|
-
/* @__PURE__ */ jsxs(
|
|
82
|
-
Button,
|
|
83
|
-
{
|
|
84
|
-
variant: "outline",
|
|
85
|
-
size: "sm",
|
|
86
|
-
onClick: handleResend,
|
|
87
|
-
disabled: resendState === "sending",
|
|
88
|
-
children: [
|
|
89
|
-
resendState === "sending" && /* @__PURE__ */ jsx(Spinner, { className: "mr-2" }),
|
|
90
|
-
resendState === "sent" ? tShared("emailResent") : tShared("resendEmail")
|
|
91
|
-
]
|
|
92
|
-
}
|
|
93
|
-
)
|
|
94
|
-
] })
|
|
95
|
-
] }),
|
|
96
|
-
/* @__PURE__ */ jsx(CardFooter, { className: "justify-center", children: /* @__PURE__ */ jsx(
|
|
97
|
-
"button",
|
|
98
|
-
{
|
|
99
|
-
type: "button",
|
|
100
|
-
onClick: onBackToLogin,
|
|
101
|
-
className: "text-sm text-text-tertiary hover:text-text-primary transition-colors",
|
|
102
|
-
children: tShared("backToLogin")
|
|
103
|
-
}
|
|
104
|
-
) })
|
|
105
|
-
] }) });
|
|
106
|
-
}
|
|
107
|
-
return /* @__PURE__ */ jsx(m.div, { ...prefersReduced ? {} : scaleIn, className: cn("w-full max-w-sm mx-auto", className), children: /* @__PURE__ */ jsxs(Card, { children: [
|
|
108
|
-
/* @__PURE__ */ jsxs(CardHeader, { className: "text-center", children: [
|
|
109
|
-
/* @__PURE__ */ jsx("div", { className: "mx-auto mb-2", children: MODE_ICONS[mode] }),
|
|
110
|
-
/* @__PURE__ */ jsx(CardTitle, { className: "text-2xl", children: resolvedTitle }),
|
|
111
|
-
/* @__PURE__ */ jsx(CardDescription, { children: resolvedDescription })
|
|
112
|
-
] }),
|
|
113
|
-
/* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsxs("form", { noValidate: true, onSubmit: handleSubmit, className: "grid gap-4", children: [
|
|
114
|
-
/* @__PURE__ */ jsxs(Field, { children: [
|
|
115
|
-
/* @__PURE__ */ jsx(FieldLabel, { htmlFor: "recovery-email", children: tShared("email") }),
|
|
116
|
-
/* @__PURE__ */ jsx(
|
|
117
|
-
Input,
|
|
118
|
-
{
|
|
119
|
-
name: "email",
|
|
120
|
-
id: "recovery-email",
|
|
121
|
-
type: "email",
|
|
122
|
-
placeholder: tShared("emailPlaceholder"),
|
|
123
|
-
value: email,
|
|
124
|
-
onChange: (e) => setEmail(e.target.value),
|
|
125
|
-
autoComplete: "email",
|
|
126
|
-
required: true
|
|
127
|
-
}
|
|
128
|
-
)
|
|
129
|
-
] }),
|
|
130
|
-
/* @__PURE__ */ jsx(Button, { variant: "accent", className: "w-full", disabled: state === "loading", children: state === "loading" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
131
|
-
/* @__PURE__ */ jsx(Spinner, { className: "mr-2" }),
|
|
132
|
-
tShared("sending")
|
|
133
|
-
] }) : resolvedButtonText })
|
|
134
|
-
] }) }),
|
|
135
|
-
/* @__PURE__ */ jsx(CardFooter, { className: "justify-center", children: /* @__PURE__ */ jsx(
|
|
136
|
-
"button",
|
|
137
|
-
{
|
|
138
|
-
type: "button",
|
|
139
|
-
onClick: onBackToLogin,
|
|
140
|
-
className: "text-sm text-text-tertiary hover:text-text-primary transition-colors",
|
|
141
|
-
children: mode === "magic-link" ? tMode("backToPassword") : tShared("backToLogin")
|
|
142
|
-
}
|
|
143
|
-
) })
|
|
144
|
-
] }) });
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
export { PasswordRecoveryBlock };
|
|
19
|
+
import '../../chunk-QYZT24TS.js';
|