nextworks 0.2.0-alpha.2 → 0.2.0-alpha.20
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/README.md +280 -228
- package/dist/cli_manifests/blocks_manifest.json +193 -194
- package/dist/commands/blocks.d.ts +3 -0
- package/dist/commands/blocks.d.ts.map +1 -1
- package/dist/commands/blocks.js +128 -19
- package/dist/commands/blocks.js.map +1 -1
- package/dist/commands/doctor.d.ts +136 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +696 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/remove-blocks.d.ts +4 -1
- package/dist/commands/remove-blocks.d.ts.map +1 -1
- package/dist/commands/remove-blocks.js +24 -6
- package/dist/commands/remove-blocks.js.map +1 -1
- package/dist/index.js +125 -4
- package/dist/index.js.map +1 -1
- package/dist/kits/blocks/.nextworks/docs/BLOCKS_QUICKSTART.md +104 -194
- package/dist/kits/blocks/.nextworks/docs/BLOCKS_README.md +115 -75
- package/dist/kits/blocks/.nextworks/docs/THEME_GUIDE.md +269 -251
- package/dist/kits/blocks/app/templates/digitalagency/PresetThemeVars.tsx +80 -80
- package/dist/kits/blocks/app/templates/digitalagency/README.md +42 -36
- package/dist/kits/blocks/app/templates/digitalagency/components/About.tsx +71 -99
- package/dist/kits/blocks/app/templates/digitalagency/components/CTA.tsx +40 -74
- package/dist/kits/blocks/app/templates/digitalagency/components/Contact.tsx +123 -227
- package/dist/kits/blocks/app/templates/digitalagency/components/Footer.tsx +89 -89
- package/dist/kits/blocks/app/templates/digitalagency/components/Hero.tsx +83 -90
- package/dist/kits/blocks/app/templates/digitalagency/components/Navbar.tsx +121 -168
- package/dist/kits/blocks/app/templates/digitalagency/components/NetworkPattern.tsx +288 -297
- package/dist/kits/blocks/app/templates/digitalagency/components/Portfolio.tsx +157 -157
- package/dist/kits/blocks/app/templates/digitalagency/components/Pricing.tsx +114 -114
- package/dist/kits/blocks/app/templates/digitalagency/components/Process.tsx +59 -59
- package/dist/kits/blocks/app/templates/digitalagency/components/Services.tsx +55 -55
- package/dist/kits/blocks/app/templates/digitalagency/components/Team.tsx +28 -28
- package/dist/kits/blocks/app/templates/digitalagency/components/Testimonials.tsx +65 -65
- package/dist/kits/blocks/app/templates/digitalagency/page.tsx +38 -38
- package/dist/kits/blocks/app/templates/gallery/PresetThemeVars.tsx +130 -85
- package/dist/kits/blocks/app/templates/gallery/page.tsx +357 -303
- package/dist/kits/blocks/app/templates/productlaunch/PresetThemeVars.tsx +75 -74
- package/dist/kits/blocks/app/templates/productlaunch/README.md +62 -55
- package/dist/kits/blocks/app/templates/productlaunch/components/About.tsx +84 -178
- package/dist/kits/blocks/app/templates/productlaunch/components/CTA.tsx +50 -93
- package/dist/kits/blocks/app/templates/productlaunch/components/Contact.tsx +231 -231
- package/dist/kits/blocks/app/templates/productlaunch/components/FAQ.tsx +86 -93
- package/dist/kits/blocks/app/templates/productlaunch/components/Features.tsx +83 -84
- package/dist/kits/blocks/app/templates/productlaunch/components/Footer.tsx +132 -132
- package/dist/kits/blocks/app/templates/productlaunch/components/Hero.tsx +88 -89
- package/dist/kits/blocks/app/templates/productlaunch/components/Navbar.tsx +116 -162
- package/dist/kits/blocks/app/templates/productlaunch/components/Pricing.tsx +106 -106
- package/dist/kits/blocks/app/templates/productlaunch/components/ProcessTimeline.tsx +110 -110
- package/dist/kits/blocks/app/templates/productlaunch/components/ServicesGrid.tsx +68 -68
- package/dist/kits/blocks/app/templates/productlaunch/components/Team.tsx +104 -104
- package/dist/kits/blocks/app/templates/productlaunch/components/Testimonials.tsx +90 -89
- package/dist/kits/blocks/app/templates/productlaunch/components/TrustBadges.tsx +76 -76
- package/dist/kits/blocks/app/templates/productlaunch/page.tsx +43 -43
- package/dist/kits/blocks/app/templates/saasdashboard/PresetThemeVars.tsx +80 -80
- package/dist/kits/blocks/app/templates/saasdashboard/README.md +44 -38
- package/dist/kits/blocks/app/templates/saasdashboard/components/Contact.tsx +129 -176
- package/dist/kits/blocks/app/templates/saasdashboard/components/Dashboard.tsx +293 -293
- package/dist/kits/blocks/app/templates/saasdashboard/components/FAQ.tsx +55 -55
- package/dist/kits/blocks/app/templates/saasdashboard/components/Features.tsx +90 -91
- package/dist/kits/blocks/app/templates/saasdashboard/components/Footer.tsx +77 -77
- package/dist/kits/blocks/app/templates/saasdashboard/components/Hero.tsx +104 -105
- package/dist/kits/blocks/app/templates/saasdashboard/components/Hero_mask.tsx +126 -127
- package/dist/kits/blocks/app/templates/saasdashboard/components/Navbar.tsx +117 -159
- package/dist/kits/blocks/app/templates/saasdashboard/components/Pricing.tsx +90 -90
- package/dist/kits/blocks/app/templates/saasdashboard/components/SmoothScroll.tsx +96 -97
- package/dist/kits/blocks/app/templates/saasdashboard/components/Testimonials.tsx +72 -72
- package/dist/kits/blocks/app/templates/saasdashboard/components/TrustBadges.tsx +53 -53
- package/dist/kits/blocks/app/templates/saasdashboard/page.tsx +39 -39
- package/dist/kits/blocks/components/enhanced-theme-provider.tsx +195 -183
- package/dist/kits/blocks/components/providers/BlocksAppProviders.tsx +27 -27
- package/dist/kits/blocks/components/sections/About.tsx +291 -291
- package/dist/kits/blocks/components/sections/CTA.tsx +257 -258
- package/dist/kits/blocks/components/sections/CommandShowcase.tsx +517 -0
- package/dist/kits/blocks/components/sections/Contact.tsx +267 -267
- package/dist/kits/blocks/components/sections/FAQ.tsx +214 -225
- package/dist/kits/blocks/components/sections/FeaturedProjectShowcase.tsx +687 -0
- package/dist/kits/blocks/components/sections/Features.tsx +268 -270
- package/dist/kits/blocks/components/sections/Footer.tsx +302 -302
- package/dist/kits/blocks/components/sections/HeroMotion.tsx +308 -308
- package/dist/kits/blocks/components/sections/HeroOverlay.tsx +358 -358
- package/dist/kits/blocks/components/sections/HeroProductDemo.tsx +246 -0
- package/dist/kits/blocks/components/sections/HeroSplit.tsx +352 -352
- package/dist/kits/blocks/components/sections/HeroWithVideo.tsx +495 -0
- package/dist/kits/blocks/components/sections/Navbar.tsx +352 -353
- package/dist/kits/blocks/components/sections/PortfolioSimple.tsx +549 -550
- package/dist/kits/blocks/components/sections/Pricing.tsx +264 -264
- package/dist/kits/blocks/components/sections/ProcessTimeline.tsx +325 -325
- package/dist/kits/blocks/components/sections/ProjectDeepDive.tsx +805 -0
- package/dist/kits/blocks/components/sections/SelectedWorkRail.tsx +485 -0
- package/dist/kits/blocks/components/sections/ServicesGrid.tsx +210 -210
- package/dist/kits/blocks/components/sections/Team.tsx +309 -309
- package/dist/kits/blocks/components/sections/Testimonials.tsx +158 -158
- package/dist/kits/blocks/components/sections/TrustBadges.tsx +162 -162
- package/dist/kits/blocks/components/sections/product-demo/ApprovalInboxPanel.tsx +128 -0
- package/dist/kits/blocks/components/sections/product-demo/DemoStage.tsx +519 -0
- package/dist/kits/blocks/components/sections/product-demo/DemoWindow.tsx +140 -0
- package/dist/kits/blocks/components/sections/product-demo/KnowledgePanel.tsx +130 -0
- package/dist/kits/blocks/components/sections/product-demo/RunConsolePanel.tsx +430 -0
- package/dist/kits/blocks/components/sections/product-demo/TaskListPanel.tsx +302 -0
- package/dist/kits/blocks/components/sections/product-demo/WorkflowStudioPanel.tsx +744 -0
- package/dist/kits/blocks/components/sections/product-demo/types.ts +262 -0
- package/dist/kits/blocks/components/theme-provider.tsx +1 -34
- package/dist/kits/blocks/components/ui/alert-dialog.tsx +134 -134
- package/dist/kits/blocks/components/ui/brand-node.tsx +121 -121
- package/dist/kits/blocks/components/ui/button.tsx +122 -122
- package/dist/kits/blocks/components/ui/card.tsx +95 -95
- package/dist/kits/blocks/components/ui/checkbox.tsx +30 -30
- package/dist/kits/blocks/components/ui/cta-button.tsx +125 -125
- package/dist/kits/blocks/components/ui/dropdown-menu.tsx +201 -201
- package/dist/kits/blocks/components/ui/feature-card.tsx +91 -91
- package/dist/kits/blocks/components/ui/input.tsx +27 -27
- package/dist/kits/blocks/components/ui/label.tsx +29 -29
- package/dist/kits/blocks/components/ui/pricing-card.tsx +120 -120
- package/dist/kits/blocks/components/ui/select.tsx +25 -25
- package/dist/kits/blocks/components/ui/skeleton.tsx +13 -13
- package/dist/kits/blocks/components/ui/table.tsx +98 -98
- package/dist/kits/blocks/components/ui/testimonial-card.tsx +108 -108
- package/dist/kits/blocks/components/ui/textarea.tsx +26 -26
- package/dist/kits/blocks/components/ui/theme-selector.tsx +243 -247
- package/dist/kits/blocks/components/ui/theme-toggle.tsx +74 -74
- package/dist/kits/blocks/components/ui/toaster.tsx +7 -7
- package/dist/kits/blocks/lib/themes.ts +400 -400
- package/dist/kits/blocks/lib/utils.ts +6 -9
- package/dist/kits/blocks/package-deps.json +40 -28
- package/dist/kits/blocks/tsconfig.json +11 -0
- package/dist/kits/blocks/tsconfig.tsbuildinfo +1 -0
- package/dist/utils/file-operations.d.ts +3 -1
- package/dist/utils/file-operations.d.ts.map +1 -1
- package/dist/utils/file-operations.js +84 -12
- package/dist/utils/file-operations.js.map +1 -1
- package/dist/utils/installation-tracker.d.ts +2 -2
- package/dist/utils/installation-tracker.d.ts.map +1 -1
- package/dist/utils/installation-tracker.js +11 -11
- package/dist/utils/installation-tracker.js.map +1 -1
- package/dist/utils/package-manager.d.ts +6 -0
- package/dist/utils/package-manager.d.ts.map +1 -0
- package/dist/utils/package-manager.js +58 -0
- package/dist/utils/package-manager.js.map +1 -0
- package/dist/utils/yarn-pnp.d.ts +6 -0
- package/dist/utils/yarn-pnp.d.ts.map +1 -0
- package/dist/utils/yarn-pnp.js +39 -0
- package/dist/utils/yarn-pnp.js.map +1 -0
- package/package.json +5 -2
- package/dist/kits/blocks/notes/THEME_GUIDE.md +0 -29
|
@@ -1,227 +1,123 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
className
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// "use client";
|
|
128
|
-
|
|
129
|
-
// import React from "react";
|
|
130
|
-
// import {
|
|
131
|
-
// Contact as SharedContact,
|
|
132
|
-
// ContactField,
|
|
133
|
-
// } from "@/components/sections/Contact";
|
|
134
|
-
|
|
135
|
-
// const agencyContactFormData: ContactField[] = [
|
|
136
|
-
// {
|
|
137
|
-
// id: "name",
|
|
138
|
-
// label: "Your Full Name",
|
|
139
|
-
// placeholder: "John Smith",
|
|
140
|
-
// required: true,
|
|
141
|
-
// type: "text",
|
|
142
|
-
// },
|
|
143
|
-
// {
|
|
144
|
-
// id: "email",
|
|
145
|
-
// label: "Email Address",
|
|
146
|
-
// placeholder: "john@yourcompany.com",
|
|
147
|
-
// required: true,
|
|
148
|
-
// type: "email",
|
|
149
|
-
// },
|
|
150
|
-
// {
|
|
151
|
-
// id: "phone",
|
|
152
|
-
// label: "Phone Number",
|
|
153
|
-
// placeholder: "+1 (555) 123-4567",
|
|
154
|
-
// required: false,
|
|
155
|
-
// type: "tel",
|
|
156
|
-
// },
|
|
157
|
-
// {
|
|
158
|
-
// id: "company",
|
|
159
|
-
// label: "Company Name",
|
|
160
|
-
// placeholder: "Your Company LLC",
|
|
161
|
-
// required: false,
|
|
162
|
-
// type: "text",
|
|
163
|
-
// },
|
|
164
|
-
// {
|
|
165
|
-
// id: "projectType",
|
|
166
|
-
// label: "Service Interested In",
|
|
167
|
-
// placeholder: "e.g. Web Design, SEO, E-commerce, Branding",
|
|
168
|
-
// required: false,
|
|
169
|
-
// type: "text",
|
|
170
|
-
// },
|
|
171
|
-
// {
|
|
172
|
-
// id: "budget",
|
|
173
|
-
// label: "Project Budget (Optional)",
|
|
174
|
-
// placeholder: "e.g. $3,000 - $6,000",
|
|
175
|
-
// required: false,
|
|
176
|
-
// type: "text",
|
|
177
|
-
// },
|
|
178
|
-
// {
|
|
179
|
-
// id: "message",
|
|
180
|
-
// label: "Project Details",
|
|
181
|
-
// placeholder:
|
|
182
|
-
// "Tell us about your project goals, timeline, and any specific requirements...",
|
|
183
|
-
// required: true,
|
|
184
|
-
// type: "textarea",
|
|
185
|
-
// },
|
|
186
|
-
// ];
|
|
187
|
-
|
|
188
|
-
// export function Contact() {
|
|
189
|
-
// const handleFormSubmit = (e: React.FormEvent<HTMLFormElement>) => {
|
|
190
|
-
// e.preventDefault();
|
|
191
|
-
// const data = Object.fromEntries(new FormData(e.currentTarget).entries());
|
|
192
|
-
// console.log("Contact form submitted:", data);
|
|
193
|
-
// };
|
|
194
|
-
|
|
195
|
-
// return (
|
|
196
|
-
// <section id="contact">
|
|
197
|
-
// <SharedContact
|
|
198
|
-
// fields={agencyContactFormData}
|
|
199
|
-
// contactHeaderText="Let’s Talk Strategy"
|
|
200
|
-
// contactSubHeaderText="We’re here to help you grow — tell us how!"
|
|
201
|
-
// section={{ className: "py-16 px-4 bg-fuchsia-600 dark:bg-fuchsia-600" }}
|
|
202
|
-
// container={{ className: "max-w-4xl mx-auto" }}
|
|
203
|
-
// header={{
|
|
204
|
-
// className:
|
|
205
|
-
// "text-4xl md:text-5xl font-bold text-white text-center mb-4",
|
|
206
|
-
// }}
|
|
207
|
-
// subheader={{
|
|
208
|
-
// className:
|
|
209
|
-
// "text-xl md:text-2xl font-inter text-white text-center mb-8 px-6",
|
|
210
|
-
// }}
|
|
211
|
-
// form={{
|
|
212
|
-
// className: "bg-white dark:bg-gray-800 p-8 rounded-lg shadow-md",
|
|
213
|
-
// }}
|
|
214
|
-
// submitButton={{
|
|
215
|
-
// text: "Schedule Free Consultation",
|
|
216
|
-
// variant: "default",
|
|
217
|
-
// size: "lg",
|
|
218
|
-
// className:
|
|
219
|
-
// "w-full bg-fuchsia-700 hover:bg-fuchsia-800 text-white font-poppins font-medium shadow-lg hover:shadow-xl transition-all duration-200 hover:-translate-y-0.5",
|
|
220
|
-
// }}
|
|
221
|
-
// onSubmit={handleFormSubmit}
|
|
222
|
-
// />
|
|
223
|
-
// </section>
|
|
224
|
-
// );
|
|
225
|
-
// }
|
|
226
|
-
|
|
227
|
-
// export default Contact;
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import React from "react";
|
|
4
|
+
import {
|
|
5
|
+
Contact as SharedContact,
|
|
6
|
+
ContactField,
|
|
7
|
+
} from "@/components/sections/Contact";
|
|
8
|
+
|
|
9
|
+
const agencyContactFormData: ContactField[] = [
|
|
10
|
+
{
|
|
11
|
+
id: "name",
|
|
12
|
+
label: "Your Full Name",
|
|
13
|
+
placeholder: "John Smith",
|
|
14
|
+
required: true,
|
|
15
|
+
type: "text",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
id: "email",
|
|
19
|
+
label: "Email Address",
|
|
20
|
+
placeholder: "john@yourcompany.com",
|
|
21
|
+
required: true,
|
|
22
|
+
type: "email",
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
id: "phone",
|
|
26
|
+
label: "Phone Number",
|
|
27
|
+
placeholder: "+1 (555) 123-4567",
|
|
28
|
+
required: false,
|
|
29
|
+
type: "tel",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: "company",
|
|
33
|
+
label: "Company Name",
|
|
34
|
+
placeholder: "Your Company LLC",
|
|
35
|
+
required: false,
|
|
36
|
+
type: "text",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: "projectType",
|
|
40
|
+
label: "Service Interested In",
|
|
41
|
+
placeholder: "e.g. Web Design, SEO, E-commerce, Branding",
|
|
42
|
+
required: false,
|
|
43
|
+
type: "text",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: "budget",
|
|
47
|
+
label: "Project Budget (Optional)",
|
|
48
|
+
placeholder: "e.g. $3,000 - $6,000",
|
|
49
|
+
required: false,
|
|
50
|
+
type: "text",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: "message",
|
|
54
|
+
label: "Project Details",
|
|
55
|
+
placeholder:
|
|
56
|
+
"Tell us about your project goals, timeline, and any specific requirements...",
|
|
57
|
+
required: true,
|
|
58
|
+
type: "textarea",
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
|
|
62
|
+
export function Contact() {
|
|
63
|
+
const handleFormSubmit = (e: React.FormEvent<HTMLFormElement>) => {
|
|
64
|
+
e.preventDefault();
|
|
65
|
+
const data = Object.fromEntries(new FormData(e.currentTarget).entries());
|
|
66
|
+
console.log("Contact form submitted:", data);
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
return (
|
|
70
|
+
<SharedContact
|
|
71
|
+
id="contact"
|
|
72
|
+
fields={agencyContactFormData}
|
|
73
|
+
contactHeaderText="Let’s Talk Strategy"
|
|
74
|
+
contactSubHeaderText="We’re here to help you grow — tell us how!"
|
|
75
|
+
// Root and layout
|
|
76
|
+
className="w-full"
|
|
77
|
+
section={{ className: "py-16 px-4 bg-fuchsia-600 dark:bg-fuchsia-600" }}
|
|
78
|
+
container={{ className: "mx-auto max-w-4xl" }}
|
|
79
|
+
// Header slots
|
|
80
|
+
headerWrapper={{ className: "mb-8 text-center" }}
|
|
81
|
+
headerText={{
|
|
82
|
+
className:
|
|
83
|
+
"text-4xl md:text-5xl font-bold font-poppins text-white tracking-tight",
|
|
84
|
+
}}
|
|
85
|
+
subheaderText={{
|
|
86
|
+
className:
|
|
87
|
+
"mt-3 text-lg md:text-xl font-inter text-white/90 px-4 md:px-14",
|
|
88
|
+
}}
|
|
89
|
+
// Form container
|
|
90
|
+
form={{
|
|
91
|
+
className:
|
|
92
|
+
"bg-card p-8 rounded-lg shadow-md border border-border bg-[var(--card-bg)] text-[var(--card-fg)] border-[var(--card-border)]",
|
|
93
|
+
}}
|
|
94
|
+
// Fields wrapper and field item
|
|
95
|
+
fieldsWrapper={{ className: "space-y-4" }}
|
|
96
|
+
field={{ className: "space-y-2" }}
|
|
97
|
+
// Label + inputs
|
|
98
|
+
label={{
|
|
99
|
+
className:
|
|
100
|
+
"text-card-foreground text-sm font-medium font-poppins block",
|
|
101
|
+
}}
|
|
102
|
+
input={{
|
|
103
|
+
className:
|
|
104
|
+
"w-full p-3 rounded-md font-inter border-[var(--input-border)] bg-[var(--input-bg)] text-[var(--input-fg)] placeholder:text-[var(--input-placeholder)] focus-visible:ring-2 focus-visible:ring-[var(--input-focus-ring)] focus-visible:ring-offset-[var(--input-ring-offset)]",
|
|
105
|
+
}}
|
|
106
|
+
textarea={{
|
|
107
|
+
className:
|
|
108
|
+
"w-full p-3 rounded-md resize-vertical min-h-[120px] font-inter border-[var(--input-border)] bg-[var(--input-bg)] text-[var(--input-fg)] placeholder:text-[var(--input-placeholder)] focus-visible:ring-2 focus-visible:ring-[var(--input-focus-ring)] focus-visible:ring-offset-[var(--input-ring-offset)]",
|
|
109
|
+
}}
|
|
110
|
+
// Submit button
|
|
111
|
+
submitButtonWrapper={{ className: "pt-2" }}
|
|
112
|
+
submitButtonStyle={{
|
|
113
|
+
variant: "default",
|
|
114
|
+
size: "lg",
|
|
115
|
+
className:
|
|
116
|
+
"w-full bg-fuchsia-700 hover:bg-fuchsia-800 text-white font-poppins font-medium shadow-lg hover:shadow-xl transition-all duration-200 hover:-translate-y-0.5",
|
|
117
|
+
}}
|
|
118
|
+
submitButtonText="Schedule Free Consultation"
|
|
119
|
+
onSubmit={handleFormSubmit}
|
|
120
|
+
ariaLabel="Agency contact section"
|
|
121
|
+
/>
|
|
122
|
+
);
|
|
123
|
+
}
|
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import React from "react";
|
|
4
|
-
import {
|
|
5
|
-
Footer as SharedFooter,
|
|
6
|
-
NavLinkGroup,
|
|
7
|
-
} from "@/components/sections/Footer";
|
|
8
|
-
|
|
9
|
-
const agencyNavLinks: NavLinkGroup[] = [
|
|
10
|
-
{
|
|
11
|
-
heading: "Services",
|
|
12
|
-
links: [
|
|
13
|
-
{ name: "Web Design & Development", href: "#services" },
|
|
14
|
-
{ name: "SEO & Digital Marketing", href: "#services" },
|
|
15
|
-
{ name: "E-commerce Solutions", href: "#services" },
|
|
16
|
-
{ name: "Brand Identity & Design", href: "#services" },
|
|
17
|
-
],
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
heading: "Company",
|
|
21
|
-
links: [
|
|
22
|
-
{ name: "About Us", href: "#about" },
|
|
23
|
-
{ name: "Our Work", href: "#portfolio" },
|
|
24
|
-
{ name: "Process", href: "#process" },
|
|
25
|
-
{ name: "Contact", href: "#contact" },
|
|
26
|
-
],
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
heading: "Resources",
|
|
30
|
-
links: [
|
|
31
|
-
{ name: "Free Consultation", href: "#contact" },
|
|
32
|
-
{ name: "Case Studies", href: "#portfolio" },
|
|
33
|
-
{ name: "Get Quote", href: "#pricing" },
|
|
34
|
-
{ name: "Privacy Policy", href: "#privacy" },
|
|
35
|
-
],
|
|
36
|
-
},
|
|
37
|
-
];
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
*
|
|
41
|
-
* - Uses the shared Footer slot API
|
|
42
|
-
* - Keeps brand distinct, flush-left; aligns top with nav headers
|
|
43
|
-
*/
|
|
44
|
-
export function Footer() {
|
|
45
|
-
return (
|
|
46
|
-
<SharedFooter
|
|
47
|
-
footerBrandName="Nexus Digital"
|
|
48
|
-
footerNavLinks={agencyNavLinks}
|
|
49
|
-
ariaLabel="Footer section"
|
|
50
|
-
section={{
|
|
51
|
-
className:
|
|
52
|
-
"w-full bg-gray-100 dark:bg-gray-900 text-gray-800 dark:text-white",
|
|
53
|
-
}}
|
|
54
|
-
container={{ className: "max-w-7xl mx-auto px-6" }}
|
|
55
|
-
brand={{
|
|
56
|
-
className:
|
|
57
|
-
"text-2xl font-bold font-poppins text-fuchsia-600 dark:text-fuchsia-400",
|
|
58
|
-
}}
|
|
59
|
-
brandWrapper={{
|
|
60
|
-
className: "flex flex-col items-start text-left lg:pr-8",
|
|
61
|
-
}}
|
|
62
|
-
navSection={{
|
|
63
|
-
className:
|
|
64
|
-
"flex flex-col lg:flex-row items-start justify-center gap-8 lg:gap-12 pt-6.5 pb-8",
|
|
65
|
-
}}
|
|
66
|
-
navGroup={{ className: "flex flex-col items-start text-left pt-1.5" }}
|
|
67
|
-
navHeading={{
|
|
68
|
-
className:
|
|
69
|
-
"font-bold font-poppins text-gray-800 dark:text-white mb-3 text-sm uppercase tracking-wider",
|
|
70
|
-
}}
|
|
71
|
-
navLink={{
|
|
72
|
-
className:
|
|
73
|
-
"text-gray-600 dark:text-gray-400 hover:text-fuchsia-600 dark:hover:text-fuchsia-400 transition-colors duration-200 text-sm mb-2 block font-inter",
|
|
74
|
-
}}
|
|
75
|
-
socialSection={{
|
|
76
|
-
className: "flex items-center justify-center gap-4 py-4",
|
|
77
|
-
}}
|
|
78
|
-
socialLink={{
|
|
79
|
-
className:
|
|
80
|
-
"text-gray-600 dark:text-gray-400 hover:text-fuchsia-600 dark:hover:text-fuchsia-400 transition-colors duration-200 p-2 rounded-md hover:bg-gray-200 dark:hover:bg-gray-800",
|
|
81
|
-
}}
|
|
82
|
-
socialIcon={{ className: "h-5 w-5" }}
|
|
83
|
-
copyright={{
|
|
84
|
-
className:
|
|
85
|
-
"text-center text-xs text-gray-600 dark:text-gray-400 py-4 border-t border-gray-200 dark:border-gray-800 font-inter",
|
|
86
|
-
}}
|
|
87
|
-
/>
|
|
88
|
-
);
|
|
89
|
-
}
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import React from "react";
|
|
4
|
+
import {
|
|
5
|
+
Footer as SharedFooter,
|
|
6
|
+
NavLinkGroup,
|
|
7
|
+
} from "@/components/sections/Footer";
|
|
8
|
+
|
|
9
|
+
const agencyNavLinks: NavLinkGroup[] = [
|
|
10
|
+
{
|
|
11
|
+
heading: "Services",
|
|
12
|
+
links: [
|
|
13
|
+
{ name: "Web Design & Development", href: "#services" },
|
|
14
|
+
{ name: "SEO & Digital Marketing", href: "#services" },
|
|
15
|
+
{ name: "E-commerce Solutions", href: "#services" },
|
|
16
|
+
{ name: "Brand Identity & Design", href: "#services" },
|
|
17
|
+
],
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
heading: "Company",
|
|
21
|
+
links: [
|
|
22
|
+
{ name: "About Us", href: "#about" },
|
|
23
|
+
{ name: "Our Work", href: "#portfolio" },
|
|
24
|
+
{ name: "Process", href: "#process" },
|
|
25
|
+
{ name: "Contact", href: "#contact" },
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
heading: "Resources",
|
|
30
|
+
links: [
|
|
31
|
+
{ name: "Free Consultation", href: "#contact" },
|
|
32
|
+
{ name: "Case Studies", href: "#portfolio" },
|
|
33
|
+
{ name: "Get Quote", href: "#pricing" },
|
|
34
|
+
{ name: "Privacy Policy", href: "#privacy" },
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Preset Footer for the Digital Agency template
|
|
41
|
+
* - Uses the shared Footer slot API
|
|
42
|
+
* - Keeps brand distinct, flush-left; aligns top with nav headers
|
|
43
|
+
*/
|
|
44
|
+
export function Footer() {
|
|
45
|
+
return (
|
|
46
|
+
<SharedFooter
|
|
47
|
+
footerBrandName="Nexus Digital"
|
|
48
|
+
footerNavLinks={agencyNavLinks}
|
|
49
|
+
ariaLabel="Footer section"
|
|
50
|
+
section={{
|
|
51
|
+
className:
|
|
52
|
+
"w-full bg-gray-100 dark:bg-gray-900 text-gray-800 dark:text-white",
|
|
53
|
+
}}
|
|
54
|
+
container={{ className: "max-w-7xl mx-auto px-6" }}
|
|
55
|
+
brand={{
|
|
56
|
+
className:
|
|
57
|
+
"text-2xl font-bold font-poppins text-fuchsia-600 dark:text-fuchsia-400",
|
|
58
|
+
}}
|
|
59
|
+
brandWrapper={{
|
|
60
|
+
className: "flex flex-col items-start text-left lg:pr-8",
|
|
61
|
+
}}
|
|
62
|
+
navSection={{
|
|
63
|
+
className:
|
|
64
|
+
"flex flex-col lg:flex-row items-start justify-center gap-8 lg:gap-12 pt-6.5 pb-8",
|
|
65
|
+
}}
|
|
66
|
+
navGroup={{ className: "flex flex-col items-start text-left pt-1.5" }}
|
|
67
|
+
navHeading={{
|
|
68
|
+
className:
|
|
69
|
+
"font-bold font-poppins text-gray-800 dark:text-white mb-3 text-sm uppercase tracking-wider",
|
|
70
|
+
}}
|
|
71
|
+
navLink={{
|
|
72
|
+
className:
|
|
73
|
+
"text-gray-600 dark:text-gray-400 hover:text-fuchsia-600 dark:hover:text-fuchsia-400 transition-colors duration-200 text-sm mb-2 block font-inter",
|
|
74
|
+
}}
|
|
75
|
+
socialSection={{
|
|
76
|
+
className: "flex items-center justify-center gap-4 py-4",
|
|
77
|
+
}}
|
|
78
|
+
socialLink={{
|
|
79
|
+
className:
|
|
80
|
+
"text-gray-600 dark:text-gray-400 hover:text-fuchsia-600 dark:hover:text-fuchsia-400 transition-colors duration-200 p-2 rounded-md hover:bg-gray-200 dark:hover:bg-gray-800",
|
|
81
|
+
}}
|
|
82
|
+
socialIcon={{ className: "h-5 w-5" }}
|
|
83
|
+
copyright={{
|
|
84
|
+
className:
|
|
85
|
+
"text-center text-xs text-gray-600 dark:text-gray-400 py-4 border-t border-gray-200 dark:border-gray-800 font-inter",
|
|
86
|
+
}}
|
|
87
|
+
/>
|
|
88
|
+
);
|
|
89
|
+
}
|