@nextworks/blocks-templates 0.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/README.md +42 -0
  2. package/dist/index.d.ts +5 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +4 -0
  5. package/dist/templates/digitalagency/Page.d.ts +3 -0
  6. package/dist/templates/digitalagency/Page.d.ts.map +1 -0
  7. package/dist/templates/digitalagency/Page.js +18 -0
  8. package/dist/templates/digitalagency/Page.jsx +33 -0
  9. package/dist/templates/digitalagency/PresetThemeVars.d.ts +11 -0
  10. package/dist/templates/digitalagency/PresetThemeVars.d.ts.map +1 -0
  11. package/dist/templates/digitalagency/PresetThemeVars.js +29 -0
  12. package/dist/templates/digitalagency/PresetThemeVars.jsx +31 -0
  13. package/dist/templates/digitalagency/components/About.d.ts +3 -0
  14. package/dist/templates/digitalagency/components/About.d.ts.map +1 -0
  15. package/dist/templates/digitalagency/components/About.js +45 -0
  16. package/dist/templates/digitalagency/components/About.jsx +43 -0
  17. package/dist/templates/digitalagency/components/CTA.d.ts +3 -0
  18. package/dist/templates/digitalagency/components/CTA.d.ts.map +1 -0
  19. package/dist/templates/digitalagency/components/CTA.js +33 -0
  20. package/dist/templates/digitalagency/components/CTA.jsx +31 -0
  21. package/dist/templates/digitalagency/components/Contact.d.ts +3 -0
  22. package/dist/templates/digitalagency/components/Contact.d.ts.map +1 -0
  23. package/dist/templates/digitalagency/components/Contact.js +91 -0
  24. package/dist/templates/digitalagency/components/Contact.jsx +91 -0
  25. package/dist/templates/digitalagency/components/Footer.d.ts +8 -0
  26. package/dist/templates/digitalagency/components/Footer.d.ts.map +1 -0
  27. package/dist/templates/digitalagency/components/Footer.js +58 -0
  28. package/dist/templates/digitalagency/components/Footer.jsx +58 -0
  29. package/dist/templates/digitalagency/components/Hero.d.ts +7 -0
  30. package/dist/templates/digitalagency/components/Hero.d.ts.map +1 -0
  31. package/dist/templates/digitalagency/components/Hero.js +69 -0
  32. package/dist/templates/digitalagency/components/Hero.jsx +71 -0
  33. package/dist/templates/digitalagency/components/Navbar.d.ts +21 -0
  34. package/dist/templates/digitalagency/components/Navbar.d.ts.map +1 -0
  35. package/dist/templates/digitalagency/components/Navbar.js +86 -0
  36. package/dist/templates/digitalagency/components/Navbar.jsx +85 -0
  37. package/dist/templates/digitalagency/components/NetworkPattern.d.ts +8 -0
  38. package/dist/templates/digitalagency/components/NetworkPattern.d.ts.map +1 -0
  39. package/dist/templates/digitalagency/components/NetworkPattern.js +38 -0
  40. package/dist/templates/digitalagency/components/NetworkPattern.jsx +128 -0
  41. package/dist/templates/digitalagency/components/Portfolio.d.ts +3 -0
  42. package/dist/templates/digitalagency/components/Portfolio.d.ts.map +1 -0
  43. package/dist/templates/digitalagency/components/Portfolio.js +108 -0
  44. package/dist/templates/digitalagency/components/Portfolio.jsx +110 -0
  45. package/dist/templates/digitalagency/components/Pricing.d.ts +3 -0
  46. package/dist/templates/digitalagency/components/Pricing.d.ts.map +1 -0
  47. package/dist/templates/digitalagency/components/Pricing.js +82 -0
  48. package/dist/templates/digitalagency/components/Pricing.jsx +84 -0
  49. package/dist/templates/digitalagency/components/Process.d.ts +3 -0
  50. package/dist/templates/digitalagency/components/Process.d.ts.map +1 -0
  51. package/dist/templates/digitalagency/components/Process.js +38 -0
  52. package/dist/templates/digitalagency/components/Process.jsx +40 -0
  53. package/dist/templates/digitalagency/components/Services.d.ts +3 -0
  54. package/dist/templates/digitalagency/components/Services.d.ts.map +1 -0
  55. package/dist/templates/digitalagency/components/Services.js +34 -0
  56. package/dist/templates/digitalagency/components/Services.jsx +36 -0
  57. package/dist/templates/digitalagency/components/Team.d.ts +3 -0
  58. package/dist/templates/digitalagency/components/Team.d.ts.map +1 -0
  59. package/dist/templates/digitalagency/components/Team.js +14 -0
  60. package/dist/templates/digitalagency/components/Team.jsx +14 -0
  61. package/dist/templates/digitalagency/components/Testimonials.d.ts +3 -0
  62. package/dist/templates/digitalagency/components/Testimonials.d.ts.map +1 -0
  63. package/dist/templates/digitalagency/components/Testimonials.js +38 -0
  64. package/dist/templates/digitalagency/components/Testimonials.jsx +40 -0
  65. package/dist/templates/gallery/PresetThemeVars.d.ts +15 -0
  66. package/dist/templates/gallery/PresetThemeVars.d.ts.map +1 -0
  67. package/dist/templates/gallery/PresetThemeVars.js +31 -0
  68. package/dist/templates/gallery/PresetThemeVars.jsx +33 -0
  69. package/dist/templates/gallery/page.d.ts +2 -0
  70. package/dist/templates/gallery/page.d.ts.map +1 -0
  71. package/dist/templates/gallery/page.js +151 -0
  72. package/dist/templates/gallery/page.jsx +216 -0
  73. package/dist/templates/productlaunch/Page.d.ts +2 -0
  74. package/dist/templates/productlaunch/Page.d.ts.map +1 -0
  75. package/dist/templates/productlaunch/Page.js +20 -0
  76. package/dist/templates/productlaunch/Page.jsx +42 -0
  77. package/dist/templates/productlaunch/PresetThemeVars.d.ts +16 -0
  78. package/dist/templates/productlaunch/PresetThemeVars.d.ts.map +1 -0
  79. package/dist/templates/productlaunch/PresetThemeVars.js +28 -0
  80. package/dist/templates/productlaunch/PresetThemeVars.jsx +30 -0
  81. package/dist/templates/productlaunch/components/About.d.ts +15 -0
  82. package/dist/templates/productlaunch/components/About.d.ts.map +1 -0
  83. package/dist/templates/productlaunch/components/About.js +59 -0
  84. package/dist/templates/productlaunch/components/About.jsx +57 -0
  85. package/dist/templates/productlaunch/components/CTA.d.ts +3 -0
  86. package/dist/templates/productlaunch/components/CTA.d.ts.map +1 -0
  87. package/dist/templates/productlaunch/components/CTA.js +39 -0
  88. package/dist/templates/productlaunch/components/CTA.jsx +37 -0
  89. package/dist/templates/productlaunch/components/Contact.d.ts +3 -0
  90. package/dist/templates/productlaunch/components/Contact.d.ts.map +1 -0
  91. package/dist/templates/productlaunch/components/Contact.js +93 -0
  92. package/dist/templates/productlaunch/components/Contact.jsx +93 -0
  93. package/dist/templates/productlaunch/components/FAQ.d.ts +7 -0
  94. package/dist/templates/productlaunch/components/FAQ.d.ts.map +1 -0
  95. package/dist/templates/productlaunch/components/FAQ.js +64 -0
  96. package/dist/templates/productlaunch/components/FAQ.jsx +63 -0
  97. package/dist/templates/productlaunch/components/Features.d.ts +6 -0
  98. package/dist/templates/productlaunch/components/Features.d.ts.map +1 -0
  99. package/dist/templates/productlaunch/components/Features.js +52 -0
  100. package/dist/templates/productlaunch/components/Features.jsx +51 -0
  101. package/dist/templates/productlaunch/components/Footer.d.ts +5 -0
  102. package/dist/templates/productlaunch/components/Footer.d.ts.map +1 -0
  103. package/dist/templates/productlaunch/components/Footer.js +103 -0
  104. package/dist/templates/productlaunch/components/Footer.jsx +102 -0
  105. package/dist/templates/productlaunch/components/Hero.d.ts +6 -0
  106. package/dist/templates/productlaunch/components/Hero.d.ts.map +1 -0
  107. package/dist/templates/productlaunch/components/Hero.js +70 -0
  108. package/dist/templates/productlaunch/components/Hero.jsx +69 -0
  109. package/dist/templates/productlaunch/components/Navbar.d.ts +25 -0
  110. package/dist/templates/productlaunch/components/Navbar.d.ts.map +1 -0
  111. package/dist/templates/productlaunch/components/Navbar.js +82 -0
  112. package/dist/templates/productlaunch/components/Navbar.jsx +81 -0
  113. package/dist/templates/productlaunch/components/Pricing.d.ts +5 -0
  114. package/dist/templates/productlaunch/components/Pricing.d.ts.map +1 -0
  115. package/dist/templates/productlaunch/components/Pricing.js +77 -0
  116. package/dist/templates/productlaunch/components/Pricing.jsx +76 -0
  117. package/dist/templates/productlaunch/components/ProcessTimeline.d.ts +5 -0
  118. package/dist/templates/productlaunch/components/ProcessTimeline.d.ts.map +1 -0
  119. package/dist/templates/productlaunch/components/ProcessTimeline.js +63 -0
  120. package/dist/templates/productlaunch/components/ProcessTimeline.jsx +62 -0
  121. package/dist/templates/productlaunch/components/ServicesGrid.d.ts +5 -0
  122. package/dist/templates/productlaunch/components/ServicesGrid.d.ts.map +1 -0
  123. package/dist/templates/productlaunch/components/ServicesGrid.js +41 -0
  124. package/dist/templates/productlaunch/components/ServicesGrid.jsx +40 -0
  125. package/dist/templates/productlaunch/components/Team.d.ts +5 -0
  126. package/dist/templates/productlaunch/components/Team.d.ts.map +1 -0
  127. package/dist/templates/productlaunch/components/Team.js +72 -0
  128. package/dist/templates/productlaunch/components/Team.jsx +71 -0
  129. package/dist/templates/productlaunch/components/Testimonials.d.ts +5 -0
  130. package/dist/templates/productlaunch/components/Testimonials.d.ts.map +1 -0
  131. package/dist/templates/productlaunch/components/Testimonials.js +55 -0
  132. package/dist/templates/productlaunch/components/Testimonials.jsx +54 -0
  133. package/dist/templates/productlaunch/components/TrustBadges.d.ts +5 -0
  134. package/dist/templates/productlaunch/components/TrustBadges.d.ts.map +1 -0
  135. package/dist/templates/productlaunch/components/TrustBadges.js +50 -0
  136. package/dist/templates/productlaunch/components/TrustBadges.jsx +49 -0
  137. package/dist/templates/saasdashboard/Page.d.ts +2 -0
  138. package/dist/templates/saasdashboard/Page.d.ts.map +1 -0
  139. package/dist/templates/saasdashboard/Page.js +15 -0
  140. package/dist/templates/saasdashboard/Page.jsx +35 -0
  141. package/dist/templates/saasdashboard/PresetThemeVars.d.ts +11 -0
  142. package/dist/templates/saasdashboard/PresetThemeVars.d.ts.map +1 -0
  143. package/dist/templates/saasdashboard/PresetThemeVars.js +27 -0
  144. package/dist/templates/saasdashboard/PresetThemeVars.jsx +29 -0
  145. package/dist/templates/saasdashboard/components/Contact.d.ts +3 -0
  146. package/dist/templates/saasdashboard/components/Contact.d.ts.map +1 -0
  147. package/dist/templates/saasdashboard/components/Contact.js +83 -0
  148. package/dist/templates/saasdashboard/components/Contact.jsx +90 -0
  149. package/dist/templates/saasdashboard/components/Dashboard.d.ts +21 -0
  150. package/dist/templates/saasdashboard/components/Dashboard.d.ts.map +1 -0
  151. package/dist/templates/saasdashboard/components/Dashboard.js +120 -0
  152. package/dist/templates/saasdashboard/components/Dashboard.jsx +168 -0
  153. package/dist/templates/saasdashboard/components/FAQ.d.ts +2 -0
  154. package/dist/templates/saasdashboard/components/FAQ.d.ts.map +1 -0
  155. package/dist/templates/saasdashboard/components/FAQ.js +35 -0
  156. package/dist/templates/saasdashboard/components/FAQ.jsx +34 -0
  157. package/dist/templates/saasdashboard/components/Features.d.ts +2 -0
  158. package/dist/templates/saasdashboard/components/Features.d.ts.map +1 -0
  159. package/dist/templates/saasdashboard/components/Features.js +55 -0
  160. package/dist/templates/saasdashboard/components/Features.jsx +54 -0
  161. package/dist/templates/saasdashboard/components/Footer.d.ts +2 -0
  162. package/dist/templates/saasdashboard/components/Footer.d.ts.map +1 -0
  163. package/dist/templates/saasdashboard/components/Footer.js +52 -0
  164. package/dist/templates/saasdashboard/components/Footer.jsx +51 -0
  165. package/dist/templates/saasdashboard/components/Hero.d.ts +2 -0
  166. package/dist/templates/saasdashboard/components/Hero.d.ts.map +1 -0
  167. package/dist/templates/saasdashboard/components/Hero.js +65 -0
  168. package/dist/templates/saasdashboard/components/Hero.jsx +70 -0
  169. package/dist/templates/saasdashboard/components/Hero_mask.d.ts +3 -0
  170. package/dist/templates/saasdashboard/components/Hero_mask.d.ts.map +1 -0
  171. package/dist/templates/saasdashboard/components/Hero_mask.js +73 -0
  172. package/dist/templates/saasdashboard/components/Hero_mask.jsx +85 -0
  173. package/dist/templates/saasdashboard/components/Navbar.d.ts +25 -0
  174. package/dist/templates/saasdashboard/components/Navbar.d.ts.map +1 -0
  175. package/dist/templates/saasdashboard/components/Navbar.js +83 -0
  176. package/dist/templates/saasdashboard/components/Navbar.jsx +84 -0
  177. package/dist/templates/saasdashboard/components/Pricing.d.ts +2 -0
  178. package/dist/templates/saasdashboard/components/Pricing.d.ts.map +1 -0
  179. package/dist/templates/saasdashboard/components/Pricing.js +65 -0
  180. package/dist/templates/saasdashboard/components/Pricing.jsx +64 -0
  181. package/dist/templates/saasdashboard/components/SmoothScroll.d.ts +2 -0
  182. package/dist/templates/saasdashboard/components/SmoothScroll.d.ts.map +1 -0
  183. package/dist/templates/saasdashboard/components/SmoothScroll.js +87 -0
  184. package/dist/templates/saasdashboard/components/SmoothScroll.jsx +87 -0
  185. package/dist/templates/saasdashboard/components/Testimonials.d.ts +2 -0
  186. package/dist/templates/saasdashboard/components/Testimonials.d.ts.map +1 -0
  187. package/dist/templates/saasdashboard/components/Testimonials.js +35 -0
  188. package/dist/templates/saasdashboard/components/Testimonials.jsx +39 -0
  189. package/dist/templates/saasdashboard/components/TrustBadges.d.ts +2 -0
  190. package/dist/templates/saasdashboard/components/TrustBadges.d.ts.map +1 -0
  191. package/dist/templates/saasdashboard/components/TrustBadges.js +37 -0
  192. package/dist/templates/saasdashboard/components/TrustBadges.jsx +36 -0
  193. package/package.json +27 -0
package/README.md ADDED
@@ -0,0 +1,42 @@
1
+ # @nextworks/blocks-templates
2
+
3
+ Pre-assembled page templates built from Nextworks Blocks sections and core components.
4
+
5
+ Included templates (subject to change):
6
+
7
+ - Product launch
8
+ - SaaS dashboard
9
+ - Digital agency
10
+ - Gallery
11
+
12
+ ## Installation
13
+
14
+ ```bash
15
+ npm install @nextworks/blocks-templates @nextworks/blocks-sections @nextworks/blocks-core
16
+ # or
17
+ pnpm add @nextworks/blocks-templates @nextworks/blocks-sections @nextworks/blocks-core
18
+ # or
19
+ yarn add @nextworks/blocks-templates @nextworks/blocks-sections @nextworks/blocks-core
20
+ ```
21
+
22
+ ## Usage
23
+
24
+ ```tsx
25
+ import { ProductLaunchPage } from "@nextworks/blocks-templates";
26
+
27
+ export default function Page() {
28
+ return <ProductLaunchPage />;
29
+ }
30
+ ```
31
+
32
+ These templates assume:
33
+
34
+ - Next.js App Router
35
+ - Tailwind CSS
36
+ - The theme provider and global styles from `@nextworks/blocks-core` are set up.
37
+
38
+ If you prefer working with source files copied into your app (instead of consuming compiled templates), use the `nextworks` CLI:
39
+
40
+ ```bash
41
+ npx nextworks add blocks
42
+ ```
@@ -0,0 +1,5 @@
1
+ export * as ProductLaunch from "./templates/productlaunch/Page";
2
+ export * as SaaSDashboard from "./templates/saasdashboard/Page";
3
+ export * as DigitalAgency from "./templates/digitalagency/Page";
4
+ export * as GalleryTemplate from "./templates/gallery/page";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,aAAa,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,aAAa,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export * as ProductLaunch from "./templates/productlaunch/Page";
2
+ export * as SaaSDashboard from "./templates/saasdashboard/Page";
3
+ export * as DigitalAgency from "./templates/digitalagency/Page";
4
+ export * as GalleryTemplate from "./templates/gallery/page";
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ export declare function DigitalAgency(): React.JSX.Element;
3
+ //# sourceMappingURL=Page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/templates/digitalagency/Page.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,wBAAgB,aAAa,sBAmB5B"}
@@ -0,0 +1,18 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Navbar } from "./components/Navbar";
4
+ import { Hero } from "./components/Hero";
5
+ import { Services } from "./components/Services";
6
+ import { Testimonials } from "./components/Testimonials";
7
+ import { Process } from "./components/Process";
8
+ import { Portfolio } from "./components/Portfolio";
9
+ import { About } from "./components/About";
10
+ import { Team } from "./components/Team";
11
+ import { Pricing } from "./components/Pricing";
12
+ import { CTA } from "./components/CTA";
13
+ import { Contact } from "./components/Contact";
14
+ import { Footer } from "./components/Footer";
15
+ import { PresetThemeVars } from "./PresetThemeVars";
16
+ export function DigitalAgency() {
17
+ return (_jsx(PresetThemeVars, { children: _jsxs("main", { children: [_jsx(Navbar, {}), _jsx(Hero, {}), _jsx(Services, {}), _jsx(Portfolio, {}), _jsx(Testimonials, {}), _jsx(Process, {}), _jsx(About, {}), _jsx(Team, {}), _jsx(Pricing, {}), _jsx(CTA, {}), _jsx(Contact, {}), _jsx(Footer, {})] }) }));
18
+ }
@@ -0,0 +1,33 @@
1
+ "use client";
2
+ import React from "react";
3
+ import { Navbar } from "./components/Navbar";
4
+ import { Hero } from "./components/Hero";
5
+ import { Services } from "./components/Services";
6
+ import { Testimonials } from "./components/Testimonials";
7
+ import { Process } from "./components/Process";
8
+ import { Portfolio } from "./components/Portfolio";
9
+ import { About } from "./components/About";
10
+ import { Team } from "./components/Team";
11
+ import { Pricing } from "./components/Pricing";
12
+ import { CTA } from "./components/CTA";
13
+ import { Contact } from "./components/Contact";
14
+ import { Footer } from "./components/Footer";
15
+ import { PresetThemeVars } from "./PresetThemeVars";
16
+ export function DigitalAgency() {
17
+ return (<PresetThemeVars>
18
+ <main>
19
+ <Navbar />
20
+ <Hero />
21
+ <Services />
22
+ <Portfolio />
23
+ <Testimonials />
24
+ <Process />
25
+ <About />
26
+ <Team />
27
+ <Pricing />
28
+ <CTA />
29
+ <Contact />
30
+ <Footer />
31
+ </main>
32
+ </PresetThemeVars>);
33
+ }
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ type Props = React.PropsWithChildren<{
3
+ className?: string;
4
+ }>;
5
+ /**
6
+ * DigitalAgency template theme variables wrapper.
7
+ * Emerald-leaning palette; adjust to match your preset exactly.
8
+ */
9
+ export declare function PresetThemeVars({ className, children }: Props): React.JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=PresetThemeVars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PresetThemeVars.d.ts","sourceRoot":"","sources":["../../../src/templates/digitalagency/PresetThemeVars.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,KAAK,KAAK,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,qBAsE7D"}
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "@nextworks/blocks-core";
3
+ /**
4
+ * DigitalAgency template theme variables wrapper.
5
+ * Emerald-leaning palette; adjust to match your preset exactly.
6
+ */
7
+ export function PresetThemeVars({ className, children }) {
8
+ return (_jsx("div", { className: cn(
9
+ // Shared button ring
10
+ "[--btn-ring:theme(colors.emerald.500)] dark:[--btn-ring:theme(colors.emerald.400)]",
11
+ // Inputs
12
+ "[--input-bg:theme(colors.white)] dark:[--input-bg:theme(colors.gray.900)]", "[--input-fg:theme(colors.gray.900)] dark:[--input-fg:theme(colors.gray.100)]", "[--input-placeholder:theme(colors.gray.400)] dark:[--input-placeholder:theme(colors.gray.500)]", "[--input-border:theme(colors.emerald.200)] dark:[--input-border:theme(colors.emerald.700)]", "[--input-focus-ring:theme(colors.emerald.500)] dark:[--input-focus-ring:theme(colors.emerald.400)]", "[--input-ring-offset:theme(colors.white)] dark:[--input-ring-offset:theme(colors.gray.900)]",
13
+ // Cards
14
+ "[--card-bg:theme(colors.white)] dark:[--card-bg:theme(colors.gray.900)]", "[--card-fg:theme(colors.gray.900)] dark:[--card-fg:theme(colors.gray.100)]", "[--card-title-fg:theme(colors.gray.900)] dark:[--card-title-fg:theme(colors.gray.100)]", "[--card-muted-fg:theme(colors.gray.500)] dark:[--card-muted-fg:theme(colors.gray.400)]", "[--card-border:theme(colors.gray.200)] dark:[--card-border:theme(colors.gray.800)]", "[--card-shadow:0_6px_20px_rgba(0,0,0,0.06)]",
15
+ // Badges/Chips
16
+ "[--badge-bg:theme(colors.emerald.50)] dark:[--badge-bg:theme(colors.emerald.950)]", "[--badge-fg:theme(colors.emerald.700)] dark:[--badge-fg:theme(colors.emerald.300)]", "[--badge-border:theme(colors.emerald.200)] dark:[--badge-border:theme(colors.emerald.800)]", "[--badge-active-bg:theme(colors.emerald.600)] dark:[--badge-active-bg:theme(colors.emerald.500)]", "[--badge-active-fg:theme(colors.white)] dark:[--badge-active-fg:theme(colors.white)]", "[--badge-active-border:theme(colors.emerald.700)] dark:[--badge-active-border:theme(colors.emerald.400)]",
17
+ // Headings/Subheadings
18
+ "[--heading-fg:theme(colors.gray.900)] dark:[--heading-fg:theme(colors.gray.100)]", "[--subheading-fg:theme(colors.gray.600)] dark:[--subheading-fg:theme(colors.gray.300)]", "[--description-fg:theme(colors.gray.700)] dark:[--description-fg:theme(colors.gray.200)]",
19
+ // Process timeline
20
+ "[--process-step-bg:theme(colors.fuchsia.600)] dark:[--process-step-bg:theme(colors.fuchsia.500)]", "[--process-step-fg:theme(colors.white)] dark:[--process-step-fg:theme(colors.white)]", "[--process-connector:theme(colors.gray.300)] dark:[--process-connector:theme(colors.gray.600)]",
21
+ // Portfolio metrics color
22
+ "[--metric-fg:theme(colors.fuchsia.600)] dark:[--metric-fg:theme(colors.fuchsia.400)]",
23
+ // Footer
24
+ "[--footer-bg:transparent] dark:[--footer-bg:transparent]", "[--footer-fg:theme(colors.gray.800)] dark:[--footer-fg:theme(colors.gray.100)]", "[--footer-heading-fg:theme(colors.gray.900)] dark:[--footer-heading-fg:theme(colors.gray.100)]", "[--footer-link-fg:theme(colors.gray.700)] dark:[--footer-link-fg:theme(colors.gray.300)]", "[--footer-link-hover-fg:theme(colors.emerald.700)] dark:[--footer-link-hover-fg:theme(colors.emerald.400)]", "[--footer-link-hover-bg:theme(colors.emerald.50)] dark:[--footer-link-hover-bg:color-mix(in_oklab,oklch(0.17_0.05_152)_20%,transparent)]", "[--footer-muted-fg:theme(colors.gray.500)] dark:[--footer-muted-fg:theme(colors.gray.400)]", "[--footer-border:theme(colors.gray.200)] dark:[--footer-border:theme(colors.gray.800)]",
25
+ // Table (optional)
26
+ "[--table-fg:inherit]", "[--table-muted-fg:theme(colors.gray.500)] dark:[--table-muted-fg:theme(colors.gray.400)]", "[--table-head-fg:theme(colors.gray.700)] dark:[--table-head-fg:theme(colors.gray.300)]", "[--table-border:theme(colors.gray.200)] dark:[--table-border:theme(colors.gray.800)]", "[--table-row-hover-bg:theme(colors.gray.50)] dark:[--table-row-hover-bg:theme(colors.gray.900)]",
27
+ // About section accent
28
+ "[--about-accent:theme(colors.fuchsia.600)] dark:[--about-accent:theme(colors.fuchsia.400)]", className), children: children }));
29
+ }
@@ -0,0 +1,31 @@
1
+ import React from "react";
2
+ import { cn } from "@nextworks/blocks-core";
3
+ /**
4
+ * DigitalAgency template theme variables wrapper.
5
+ * Emerald-leaning palette; adjust to match your preset exactly.
6
+ */
7
+ export function PresetThemeVars({ className, children }) {
8
+ return (<div className={cn(
9
+ // Shared button ring
10
+ "[--btn-ring:theme(colors.emerald.500)] dark:[--btn-ring:theme(colors.emerald.400)]",
11
+ // Inputs
12
+ "[--input-bg:theme(colors.white)] dark:[--input-bg:theme(colors.gray.900)]", "[--input-fg:theme(colors.gray.900)] dark:[--input-fg:theme(colors.gray.100)]", "[--input-placeholder:theme(colors.gray.400)] dark:[--input-placeholder:theme(colors.gray.500)]", "[--input-border:theme(colors.emerald.200)] dark:[--input-border:theme(colors.emerald.700)]", "[--input-focus-ring:theme(colors.emerald.500)] dark:[--input-focus-ring:theme(colors.emerald.400)]", "[--input-ring-offset:theme(colors.white)] dark:[--input-ring-offset:theme(colors.gray.900)]",
13
+ // Cards
14
+ "[--card-bg:theme(colors.white)] dark:[--card-bg:theme(colors.gray.900)]", "[--card-fg:theme(colors.gray.900)] dark:[--card-fg:theme(colors.gray.100)]", "[--card-title-fg:theme(colors.gray.900)] dark:[--card-title-fg:theme(colors.gray.100)]", "[--card-muted-fg:theme(colors.gray.500)] dark:[--card-muted-fg:theme(colors.gray.400)]", "[--card-border:theme(colors.gray.200)] dark:[--card-border:theme(colors.gray.800)]", "[--card-shadow:0_6px_20px_rgba(0,0,0,0.06)]",
15
+ // Badges/Chips
16
+ "[--badge-bg:theme(colors.emerald.50)] dark:[--badge-bg:theme(colors.emerald.950)]", "[--badge-fg:theme(colors.emerald.700)] dark:[--badge-fg:theme(colors.emerald.300)]", "[--badge-border:theme(colors.emerald.200)] dark:[--badge-border:theme(colors.emerald.800)]", "[--badge-active-bg:theme(colors.emerald.600)] dark:[--badge-active-bg:theme(colors.emerald.500)]", "[--badge-active-fg:theme(colors.white)] dark:[--badge-active-fg:theme(colors.white)]", "[--badge-active-border:theme(colors.emerald.700)] dark:[--badge-active-border:theme(colors.emerald.400)]",
17
+ // Headings/Subheadings
18
+ "[--heading-fg:theme(colors.gray.900)] dark:[--heading-fg:theme(colors.gray.100)]", "[--subheading-fg:theme(colors.gray.600)] dark:[--subheading-fg:theme(colors.gray.300)]", "[--description-fg:theme(colors.gray.700)] dark:[--description-fg:theme(colors.gray.200)]",
19
+ // Process timeline
20
+ "[--process-step-bg:theme(colors.fuchsia.600)] dark:[--process-step-bg:theme(colors.fuchsia.500)]", "[--process-step-fg:theme(colors.white)] dark:[--process-step-fg:theme(colors.white)]", "[--process-connector:theme(colors.gray.300)] dark:[--process-connector:theme(colors.gray.600)]",
21
+ // Portfolio metrics color
22
+ "[--metric-fg:theme(colors.fuchsia.600)] dark:[--metric-fg:theme(colors.fuchsia.400)]",
23
+ // Footer
24
+ "[--footer-bg:transparent] dark:[--footer-bg:transparent]", "[--footer-fg:theme(colors.gray.800)] dark:[--footer-fg:theme(colors.gray.100)]", "[--footer-heading-fg:theme(colors.gray.900)] dark:[--footer-heading-fg:theme(colors.gray.100)]", "[--footer-link-fg:theme(colors.gray.700)] dark:[--footer-link-fg:theme(colors.gray.300)]", "[--footer-link-hover-fg:theme(colors.emerald.700)] dark:[--footer-link-hover-fg:theme(colors.emerald.400)]", "[--footer-link-hover-bg:theme(colors.emerald.50)] dark:[--footer-link-hover-bg:color-mix(in_oklab,oklch(0.17_0.05_152)_20%,transparent)]", "[--footer-muted-fg:theme(colors.gray.500)] dark:[--footer-muted-fg:theme(colors.gray.400)]", "[--footer-border:theme(colors.gray.200)] dark:[--footer-border:theme(colors.gray.800)]",
25
+ // Table (optional)
26
+ "[--table-fg:inherit]", "[--table-muted-fg:theme(colors.gray.500)] dark:[--table-muted-fg:theme(colors.gray.400)]", "[--table-head-fg:theme(colors.gray.700)] dark:[--table-head-fg:theme(colors.gray.300)]", "[--table-border:theme(colors.gray.200)] dark:[--table-border:theme(colors.gray.800)]", "[--table-row-hover-bg:theme(colors.gray.50)] dark:[--table-row-hover-bg:theme(colors.gray.900)]",
27
+ // About section accent
28
+ "[--about-accent:theme(colors.fuchsia.600)] dark:[--about-accent:theme(colors.fuchsia.400)]", className)}>
29
+ {children}
30
+ </div>);
31
+ }
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ export declare function About(): React.JSX.Element;
3
+ //# sourceMappingURL=About.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"About.d.ts","sourceRoot":"","sources":["../../../../src/templates/digitalagency/components/About.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,wBAAgB,KAAK,sBAiEpB"}
@@ -0,0 +1,45 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { About as SharedAbout } from "@nextworks/blocks-sections";
4
+ export function About() {
5
+ return (_jsx(SharedAbout
6
+ // Content
7
+ , {
8
+ // Content
9
+ aboutSubheadingText: "About Us", aboutHeadingText: "Your Success Is Our Mission", aboutContentText: "With 50+ successful projects and 5 years of experience, we specialize in creating digital solutions that drive real business growth. Our team combines creative design with data-driven strategy.", aboutTextAlign: "center",
10
+ // Stats
11
+ showStats: true, animateStats: true, aboutStats: [
12
+ { value: "2.5", suffix: "k+", label: "Leads Generated" },
13
+ { value: "4.8", suffix: "%", label: "Avg. CTR" },
14
+ { value: "92", suffix: "%", label: "Client Retention" },
15
+ { value: "12", suffix: "M", label: "Ad Spend Managed" },
16
+ ],
17
+ // Slots / styling
18
+ section: {
19
+ className: "py-16 md:py-20 lg:py-24 bg-white dark:bg-gray-800",
20
+ }, container: {
21
+ className: "max-w-7xl mx-auto px-6",
22
+ }, inner: {
23
+ className: "flex flex-col gap-12",
24
+ }, contentContainer: {
25
+ className: "max-w-4xl mx-auto",
26
+ }, contentStack: {
27
+ className: "flex flex-col gap-6",
28
+ }, subheading: {
29
+ className: "text-sm font-semibold font-poppins uppercase tracking-wider text-[var(--about-accent)]",
30
+ }, heading: {
31
+ className: "text-4xl md:text-5xl lg:text-6xl font-bold leading-tight text-[var(--heading-fg)]",
32
+ }, content: {
33
+ className: "text-xl md:text-2xl max-w-3xl mx-auto leading-relaxed text-[var(--subheading-fg)]",
34
+ }, statsSection: {
35
+ className: "bg-card p-8 rounded-xl shadow-lg mx-auto max-w-5xl w-full border border-border bg-[var(--card-bg)] text-[var(--card-fg)] border-[var(--card-border)]",
36
+ }, statsGrid: {
37
+ className: "grid grid-cols-2 md:grid-cols-4 gap-8 justify-items-center",
38
+ }, statItem: {
39
+ className: "flex flex-col items-center gap-2",
40
+ }, statNumber: {
41
+ className: "text-4xl md:text-5xl font-bold font-poppins leading-none text-[var(--about-accent)]",
42
+ }, statLabel: {
43
+ className: "text-sm font-medium font-inter text-center text-[var(--card-muted-fg)]",
44
+ } }));
45
+ }
@@ -0,0 +1,43 @@
1
+ "use client";
2
+ import React from "react";
3
+ import { About as SharedAbout } from "@nextworks/blocks-sections";
4
+ export function About() {
5
+ return (<SharedAbout
6
+ // Content
7
+ aboutSubheadingText="About Us" aboutHeadingText="Your Success Is Our Mission" aboutContentText="With 50+ successful projects and 5 years of experience, we specialize in creating digital solutions that drive real business growth. Our team combines creative design with data-driven strategy." aboutTextAlign="center"
8
+ // Stats
9
+ showStats={true} animateStats={true} aboutStats={[
10
+ { value: "2.5", suffix: "k+", label: "Leads Generated" },
11
+ { value: "4.8", suffix: "%", label: "Avg. CTR" },
12
+ { value: "92", suffix: "%", label: "Client Retention" },
13
+ { value: "12", suffix: "M", label: "Ad Spend Managed" },
14
+ ]}
15
+ // Slots / styling
16
+ section={{
17
+ className: "py-16 md:py-20 lg:py-24 bg-white dark:bg-gray-800",
18
+ }} container={{
19
+ className: "max-w-7xl mx-auto px-6",
20
+ }} inner={{
21
+ className: "flex flex-col gap-12",
22
+ }} contentContainer={{
23
+ className: "max-w-4xl mx-auto",
24
+ }} contentStack={{
25
+ className: "flex flex-col gap-6",
26
+ }} subheading={{
27
+ className: "text-sm font-semibold font-poppins uppercase tracking-wider text-[var(--about-accent)]",
28
+ }} heading={{
29
+ className: "text-4xl md:text-5xl lg:text-6xl font-bold leading-tight text-[var(--heading-fg)]",
30
+ }} content={{
31
+ className: "text-xl md:text-2xl max-w-3xl mx-auto leading-relaxed text-[var(--subheading-fg)]",
32
+ }} statsSection={{
33
+ className: "bg-card p-8 rounded-xl shadow-lg mx-auto max-w-5xl w-full border border-border bg-[var(--card-bg)] text-[var(--card-fg)] border-[var(--card-border)]",
34
+ }} statsGrid={{
35
+ className: "grid grid-cols-2 md:grid-cols-4 gap-8 justify-items-center",
36
+ }} statItem={{
37
+ className: "flex flex-col items-center gap-2",
38
+ }} statNumber={{
39
+ className: "text-4xl md:text-5xl font-bold font-poppins leading-none text-[var(--about-accent)]",
40
+ }} statLabel={{
41
+ className: "text-sm font-medium font-inter text-center text-[var(--card-muted-fg)]",
42
+ }}/>);
43
+ }
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ export declare function CTA(): React.JSX.Element;
3
+ //# sourceMappingURL=CTA.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CTA.d.ts","sourceRoot":"","sources":["../../../../src/templates/digitalagency/components/CTA.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,wBAAgB,GAAG,sBAoClB"}
@@ -0,0 +1,33 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { CTA as SharedCTA } from "@nextworks/blocks-sections";
4
+ export function CTA() {
5
+ return (_jsx(SharedCTA
6
+ // Background colors moved to the section slot
7
+ , {
8
+ // Background colors moved to the section slot
9
+ section: {
10
+ className: "bg-sky-50 dark:bg-gray-900 text-foreground [--heading-fg:rgb(17,24,39)] dark:[--heading-fg:white] [--subheading-fg:rgba(17,24,39,0.8)] dark:[--subheading-fg:rgba(255,255,255,0.85)] [--description-fg:rgba(17,24,39,0.75)] dark:[--description-fg:rgba(255,255,255,0.75)]",
11
+ },
12
+ // Layout/height/centering handled by the container slot
13
+ container: {
14
+ className: "mx-auto flex h-[32vh] w-full max-w-6xl flex-col items-center justify-center overflow-hidden px-4 pb-8",
15
+ },
16
+ // Heading mapped to the new headingText slot
17
+ headingText: {
18
+ text: "Ready To Transform Your Business?",
19
+ className: "text-4xl md:text-5xl lg:text-6xl font-bold font-poppins leading-tight",
20
+ },
21
+ // Use actionsWrapper for spacing instead of margin on the button
22
+ actionsWrapper: {
23
+ className: "mt-6 flex flex-col items-center gap-3 sm:flex-row [--btn-ring:rgba(192,38,211,0.35)] dark:[--btn-ring:rgba(192,38,211,0.45)]",
24
+ },
25
+ // Primary CTA mapped to ctaButton + ctaButtonStyle
26
+ ctaButton: { label: "Get Your Free Quote", href: "#contact" }, ctaButtonStyle: {
27
+ variant: "default",
28
+ size: "lg",
29
+ className: "font-poppins shadow-lg hover:shadow-xl transition-all duration-200 hover:-translate-y-0.5 [--btn-bg:#c026d3] dark:[--btn-bg:#c026d3] [--btn-hover-bg:#a21caf] dark:[--btn-hover-bg:#a21caf] [--btn-fg:#ffffff] dark:[--btn-fg:#ffffff] hover:[--btn-hover-fg:#ffffff] dark:hover:[--btn-hover-fg:#ffffff] [--btn-border:transparent]",
30
+ },
31
+ // Preserve the previous top margin on the heading
32
+ spacing: { topMargin: "mt-[8vh]" } }));
33
+ }
@@ -0,0 +1,31 @@
1
+ "use client";
2
+ import React from "react";
3
+ import { CTA as SharedCTA } from "@nextworks/blocks-sections";
4
+ export function CTA() {
5
+ return (<SharedCTA
6
+ // Background colors moved to the section slot
7
+ section={{
8
+ className: "bg-sky-50 dark:bg-gray-900 text-foreground [--heading-fg:rgb(17,24,39)] dark:[--heading-fg:white] [--subheading-fg:rgba(17,24,39,0.8)] dark:[--subheading-fg:rgba(255,255,255,0.85)] [--description-fg:rgba(17,24,39,0.75)] dark:[--description-fg:rgba(255,255,255,0.75)]",
9
+ }}
10
+ // Layout/height/centering handled by the container slot
11
+ container={{
12
+ className: "mx-auto flex h-[32vh] w-full max-w-6xl flex-col items-center justify-center overflow-hidden px-4 pb-8",
13
+ }}
14
+ // Heading mapped to the new headingText slot
15
+ headingText={{
16
+ text: "Ready To Transform Your Business?",
17
+ className: "text-4xl md:text-5xl lg:text-6xl font-bold font-poppins leading-tight",
18
+ }}
19
+ // Use actionsWrapper for spacing instead of margin on the button
20
+ actionsWrapper={{
21
+ className: "mt-6 flex flex-col items-center gap-3 sm:flex-row [--btn-ring:rgba(192,38,211,0.35)] dark:[--btn-ring:rgba(192,38,211,0.45)]",
22
+ }}
23
+ // Primary CTA mapped to ctaButton + ctaButtonStyle
24
+ ctaButton={{ label: "Get Your Free Quote", href: "#contact" }} ctaButtonStyle={{
25
+ variant: "default",
26
+ size: "lg",
27
+ className: "font-poppins shadow-lg hover:shadow-xl transition-all duration-200 hover:-translate-y-0.5 [--btn-bg:#c026d3] dark:[--btn-bg:#c026d3] [--btn-hover-bg:#a21caf] dark:[--btn-hover-bg:#a21caf] [--btn-fg:#ffffff] dark:[--btn-fg:#ffffff] hover:[--btn-hover-fg:#ffffff] dark:hover:[--btn-hover-fg:#ffffff] [--btn-border:transparent]",
28
+ }}
29
+ // Preserve the previous top margin on the heading
30
+ spacing={{ topMargin: "mt-[8vh]" }}/>);
31
+ }
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ export declare function Contact(): React.JSX.Element;
3
+ //# sourceMappingURL=Contact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Contact.d.ts","sourceRoot":"","sources":["../../../../src/templates/digitalagency/components/Contact.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AA2D1B,wBAAgB,OAAO,sBA6DtB"}
@@ -0,0 +1,91 @@
1
+ // app/templates/digitalagency/componets/Contact.tsx
2
+ "use client";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ import { Contact as SharedContact, } from "@nextworks/blocks-sections";
5
+ const agencyContactFormData = [
6
+ {
7
+ id: "name",
8
+ label: "Your Full Name",
9
+ placeholder: "John Smith",
10
+ required: true,
11
+ type: "text",
12
+ },
13
+ {
14
+ id: "email",
15
+ label: "Email Address",
16
+ placeholder: "john@yourcompany.com",
17
+ required: true,
18
+ type: "email",
19
+ },
20
+ {
21
+ id: "phone",
22
+ label: "Phone Number",
23
+ placeholder: "+1 (555) 123-4567",
24
+ required: false,
25
+ type: "tel",
26
+ },
27
+ {
28
+ id: "company",
29
+ label: "Company Name",
30
+ placeholder: "Your Company LLC",
31
+ required: false,
32
+ type: "text",
33
+ },
34
+ {
35
+ id: "projectType",
36
+ label: "Service Interested In",
37
+ placeholder: "e.g. Web Design, SEO, E-commerce, Branding",
38
+ required: false,
39
+ type: "text",
40
+ },
41
+ {
42
+ id: "budget",
43
+ label: "Project Budget (Optional)",
44
+ placeholder: "e.g. $3,000 - $6,000",
45
+ required: false,
46
+ type: "text",
47
+ },
48
+ {
49
+ id: "message",
50
+ label: "Project Details",
51
+ placeholder: "Tell us about your project goals, timeline, and any specific requirements...",
52
+ required: true,
53
+ type: "textarea",
54
+ },
55
+ ];
56
+ export function Contact() {
57
+ const handleFormSubmit = (e) => {
58
+ e.preventDefault();
59
+ const data = Object.fromEntries(new FormData(e.currentTarget).entries());
60
+ console.log("Contact form submitted:", data);
61
+ };
62
+ return (_jsx(SharedContact, { id: "contact", fields: agencyContactFormData, contactHeaderText: "Let\u2019s Talk Strategy", contactSubHeaderText: "We\u2019re here to help you grow \u2014 tell us how!",
63
+ // Root and layout
64
+ className: "w-full", section: { className: "py-16 px-4 bg-fuchsia-600 dark:bg-fuchsia-600" }, container: { className: "mx-auto max-w-4xl" },
65
+ // Header slots (new)
66
+ headerWrapper: { className: "mb-8 text-center" }, headerText: {
67
+ className: "text-4xl md:text-5xl font-bold font-poppins text-white tracking-tight",
68
+ }, subheaderText: {
69
+ className: "mt-3 text-lg md:text-xl font-inter text-white/90 px-4 md:px-14",
70
+ },
71
+ // Form container
72
+ form: {
73
+ className: "bg-card p-8 rounded-lg shadow-md border border-border bg-[var(--card-bg)] text-[var(--card-fg)] border-[var(--card-border)]",
74
+ },
75
+ // Fields wrapper and field item (new)
76
+ fieldsWrapper: { className: "space-y-4" }, field: { className: "space-y-2" },
77
+ // Label + inputs (new)
78
+ label: {
79
+ className: "text-card-foreground text-sm font-medium font-poppins block",
80
+ }, input: {
81
+ className: "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)]",
82
+ }, textarea: {
83
+ className: "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)]",
84
+ },
85
+ // Submit button (new split between wrapper/style/text)
86
+ submitButtonWrapper: { className: "pt-2" }, submitButtonStyle: {
87
+ variant: "default",
88
+ size: "lg",
89
+ className: "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",
90
+ }, submitButtonText: "Schedule Free Consultation", onSubmit: handleFormSubmit, ariaLabel: "Agency contact section" }));
91
+ }
@@ -0,0 +1,91 @@
1
+ // app/templates/digitalagency/componets/Contact.tsx
2
+ "use client";
3
+ import React from "react";
4
+ import { Contact as SharedContact, } from "@nextworks/blocks-sections";
5
+ const agencyContactFormData = [
6
+ {
7
+ id: "name",
8
+ label: "Your Full Name",
9
+ placeholder: "John Smith",
10
+ required: true,
11
+ type: "text",
12
+ },
13
+ {
14
+ id: "email",
15
+ label: "Email Address",
16
+ placeholder: "john@yourcompany.com",
17
+ required: true,
18
+ type: "email",
19
+ },
20
+ {
21
+ id: "phone",
22
+ label: "Phone Number",
23
+ placeholder: "+1 (555) 123-4567",
24
+ required: false,
25
+ type: "tel",
26
+ },
27
+ {
28
+ id: "company",
29
+ label: "Company Name",
30
+ placeholder: "Your Company LLC",
31
+ required: false,
32
+ type: "text",
33
+ },
34
+ {
35
+ id: "projectType",
36
+ label: "Service Interested In",
37
+ placeholder: "e.g. Web Design, SEO, E-commerce, Branding",
38
+ required: false,
39
+ type: "text",
40
+ },
41
+ {
42
+ id: "budget",
43
+ label: "Project Budget (Optional)",
44
+ placeholder: "e.g. $3,000 - $6,000",
45
+ required: false,
46
+ type: "text",
47
+ },
48
+ {
49
+ id: "message",
50
+ label: "Project Details",
51
+ placeholder: "Tell us about your project goals, timeline, and any specific requirements...",
52
+ required: true,
53
+ type: "textarea",
54
+ },
55
+ ];
56
+ export function Contact() {
57
+ const handleFormSubmit = (e) => {
58
+ e.preventDefault();
59
+ const data = Object.fromEntries(new FormData(e.currentTarget).entries());
60
+ console.log("Contact form submitted:", data);
61
+ };
62
+ return (<SharedContact id="contact" fields={agencyContactFormData} contactHeaderText="Let’s Talk Strategy" contactSubHeaderText="We’re here to help you grow — tell us how!"
63
+ // Root and layout
64
+ className="w-full" section={{ className: "py-16 px-4 bg-fuchsia-600 dark:bg-fuchsia-600" }} container={{ className: "mx-auto max-w-4xl" }}
65
+ // Header slots (new)
66
+ headerWrapper={{ className: "mb-8 text-center" }} headerText={{
67
+ className: "text-4xl md:text-5xl font-bold font-poppins text-white tracking-tight",
68
+ }} subheaderText={{
69
+ className: "mt-3 text-lg md:text-xl font-inter text-white/90 px-4 md:px-14",
70
+ }}
71
+ // Form container
72
+ form={{
73
+ className: "bg-card p-8 rounded-lg shadow-md border border-border bg-[var(--card-bg)] text-[var(--card-fg)] border-[var(--card-border)]",
74
+ }}
75
+ // Fields wrapper and field item (new)
76
+ fieldsWrapper={{ className: "space-y-4" }} field={{ className: "space-y-2" }}
77
+ // Label + inputs (new)
78
+ label={{
79
+ className: "text-card-foreground text-sm font-medium font-poppins block",
80
+ }} input={{
81
+ className: "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)]",
82
+ }} textarea={{
83
+ className: "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)]",
84
+ }}
85
+ // Submit button (new split between wrapper/style/text)
86
+ submitButtonWrapper={{ className: "pt-2" }} submitButtonStyle={{
87
+ variant: "default",
88
+ size: "lg",
89
+ className: "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",
90
+ }} submitButtonText="Schedule Free Consultation" onSubmit={handleFormSubmit} ariaLabel="Agency contact section"/>);
91
+ }
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ /**
3
+ * Upgraded preset Footer for the Digital Agency template
4
+ * - Uses the shared Footer slot API
5
+ * - Keeps brand distinct, flush-left; aligns top with nav headers
6
+ */
7
+ export declare function Footer(): React.JSX.Element;
8
+ //# sourceMappingURL=Footer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../../../src/templates/digitalagency/components/Footer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAkC1B;;;;GAIG;AACH,wBAAgB,MAAM,sBA6CrB"}