nextworks 0.2.0-alpha.2 → 0.2.0-alpha.21

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 (145) hide show
  1. package/README.md +280 -228
  2. package/dist/cli_manifests/blocks_manifest.json +193 -194
  3. package/dist/commands/blocks.d.ts +3 -0
  4. package/dist/commands/blocks.d.ts.map +1 -1
  5. package/dist/commands/blocks.js +128 -19
  6. package/dist/commands/blocks.js.map +1 -1
  7. package/dist/commands/doctor.d.ts +136 -0
  8. package/dist/commands/doctor.d.ts.map +1 -0
  9. package/dist/commands/doctor.js +696 -0
  10. package/dist/commands/doctor.js.map +1 -0
  11. package/dist/commands/remove-blocks.d.ts +4 -1
  12. package/dist/commands/remove-blocks.d.ts.map +1 -1
  13. package/dist/commands/remove-blocks.js +24 -6
  14. package/dist/commands/remove-blocks.js.map +1 -1
  15. package/dist/index.js +125 -4
  16. package/dist/index.js.map +1 -1
  17. package/dist/kits/blocks/.nextworks/docs/BLOCKS_QUICKSTART.md +104 -194
  18. package/dist/kits/blocks/.nextworks/docs/BLOCKS_README.md +115 -75
  19. package/dist/kits/blocks/.nextworks/docs/THEME_GUIDE.md +269 -251
  20. package/dist/kits/blocks/app/templates/digitalagency/PresetThemeVars.tsx +80 -80
  21. package/dist/kits/blocks/app/templates/digitalagency/README.md +42 -36
  22. package/dist/kits/blocks/app/templates/digitalagency/components/About.tsx +71 -99
  23. package/dist/kits/blocks/app/templates/digitalagency/components/CTA.tsx +40 -74
  24. package/dist/kits/blocks/app/templates/digitalagency/components/Contact.tsx +123 -227
  25. package/dist/kits/blocks/app/templates/digitalagency/components/Footer.tsx +89 -89
  26. package/dist/kits/blocks/app/templates/digitalagency/components/Hero.tsx +83 -90
  27. package/dist/kits/blocks/app/templates/digitalagency/components/Navbar.tsx +121 -168
  28. package/dist/kits/blocks/app/templates/digitalagency/components/NetworkPattern.tsx +288 -297
  29. package/dist/kits/blocks/app/templates/digitalagency/components/Portfolio.tsx +157 -157
  30. package/dist/kits/blocks/app/templates/digitalagency/components/Pricing.tsx +114 -114
  31. package/dist/kits/blocks/app/templates/digitalagency/components/Process.tsx +59 -59
  32. package/dist/kits/blocks/app/templates/digitalagency/components/Services.tsx +55 -55
  33. package/dist/kits/blocks/app/templates/digitalagency/components/Team.tsx +28 -28
  34. package/dist/kits/blocks/app/templates/digitalagency/components/Testimonials.tsx +65 -65
  35. package/dist/kits/blocks/app/templates/digitalagency/page.tsx +38 -38
  36. package/dist/kits/blocks/app/templates/gallery/PresetThemeVars.tsx +130 -85
  37. package/dist/kits/blocks/app/templates/gallery/page.tsx +357 -303
  38. package/dist/kits/blocks/app/templates/productlaunch/PresetThemeVars.tsx +75 -74
  39. package/dist/kits/blocks/app/templates/productlaunch/README.md +62 -55
  40. package/dist/kits/blocks/app/templates/productlaunch/components/About.tsx +84 -178
  41. package/dist/kits/blocks/app/templates/productlaunch/components/CTA.tsx +50 -93
  42. package/dist/kits/blocks/app/templates/productlaunch/components/Contact.tsx +231 -231
  43. package/dist/kits/blocks/app/templates/productlaunch/components/FAQ.tsx +86 -93
  44. package/dist/kits/blocks/app/templates/productlaunch/components/Features.tsx +83 -84
  45. package/dist/kits/blocks/app/templates/productlaunch/components/Footer.tsx +132 -132
  46. package/dist/kits/blocks/app/templates/productlaunch/components/Hero.tsx +88 -89
  47. package/dist/kits/blocks/app/templates/productlaunch/components/Navbar.tsx +116 -162
  48. package/dist/kits/blocks/app/templates/productlaunch/components/Pricing.tsx +106 -106
  49. package/dist/kits/blocks/app/templates/productlaunch/components/ProcessTimeline.tsx +110 -110
  50. package/dist/kits/blocks/app/templates/productlaunch/components/ServicesGrid.tsx +68 -68
  51. package/dist/kits/blocks/app/templates/productlaunch/components/Team.tsx +104 -104
  52. package/dist/kits/blocks/app/templates/productlaunch/components/Testimonials.tsx +90 -89
  53. package/dist/kits/blocks/app/templates/productlaunch/components/TrustBadges.tsx +76 -76
  54. package/dist/kits/blocks/app/templates/productlaunch/page.tsx +43 -43
  55. package/dist/kits/blocks/app/templates/saasdashboard/PresetThemeVars.tsx +80 -80
  56. package/dist/kits/blocks/app/templates/saasdashboard/README.md +44 -38
  57. package/dist/kits/blocks/app/templates/saasdashboard/components/Contact.tsx +129 -176
  58. package/dist/kits/blocks/app/templates/saasdashboard/components/Dashboard.tsx +293 -293
  59. package/dist/kits/blocks/app/templates/saasdashboard/components/FAQ.tsx +55 -55
  60. package/dist/kits/blocks/app/templates/saasdashboard/components/Features.tsx +90 -91
  61. package/dist/kits/blocks/app/templates/saasdashboard/components/Footer.tsx +77 -77
  62. package/dist/kits/blocks/app/templates/saasdashboard/components/Hero.tsx +104 -105
  63. package/dist/kits/blocks/app/templates/saasdashboard/components/Hero_mask.tsx +126 -127
  64. package/dist/kits/blocks/app/templates/saasdashboard/components/Navbar.tsx +117 -159
  65. package/dist/kits/blocks/app/templates/saasdashboard/components/Pricing.tsx +90 -90
  66. package/dist/kits/blocks/app/templates/saasdashboard/components/SmoothScroll.tsx +96 -97
  67. package/dist/kits/blocks/app/templates/saasdashboard/components/Testimonials.tsx +72 -72
  68. package/dist/kits/blocks/app/templates/saasdashboard/components/TrustBadges.tsx +53 -53
  69. package/dist/kits/blocks/app/templates/saasdashboard/page.tsx +39 -39
  70. package/dist/kits/blocks/components/enhanced-theme-provider.tsx +195 -183
  71. package/dist/kits/blocks/components/providers/BlocksAppProviders.tsx +27 -27
  72. package/dist/kits/blocks/components/sections/About.tsx +291 -291
  73. package/dist/kits/blocks/components/sections/CTA.tsx +257 -258
  74. package/dist/kits/blocks/components/sections/CommandShowcase.tsx +517 -0
  75. package/dist/kits/blocks/components/sections/Contact.tsx +267 -267
  76. package/dist/kits/blocks/components/sections/FAQ.tsx +214 -225
  77. package/dist/kits/blocks/components/sections/FeaturedProjectShowcase.tsx +687 -0
  78. package/dist/kits/blocks/components/sections/Features.tsx +268 -270
  79. package/dist/kits/blocks/components/sections/Footer.tsx +302 -302
  80. package/dist/kits/blocks/components/sections/HeroMotion.tsx +308 -308
  81. package/dist/kits/blocks/components/sections/HeroOverlay.tsx +358 -358
  82. package/dist/kits/blocks/components/sections/HeroProductDemo.tsx +246 -0
  83. package/dist/kits/blocks/components/sections/HeroSplit.tsx +352 -352
  84. package/dist/kits/blocks/components/sections/HeroWithVideo.tsx +495 -0
  85. package/dist/kits/blocks/components/sections/Navbar.tsx +352 -353
  86. package/dist/kits/blocks/components/sections/PortfolioSimple.tsx +549 -550
  87. package/dist/kits/blocks/components/sections/Pricing.tsx +264 -264
  88. package/dist/kits/blocks/components/sections/ProcessTimeline.tsx +325 -325
  89. package/dist/kits/blocks/components/sections/ProjectDeepDive.tsx +805 -0
  90. package/dist/kits/blocks/components/sections/SelectedWorkRail.tsx +485 -0
  91. package/dist/kits/blocks/components/sections/ServicesGrid.tsx +210 -210
  92. package/dist/kits/blocks/components/sections/Team.tsx +309 -309
  93. package/dist/kits/blocks/components/sections/Testimonials.tsx +158 -158
  94. package/dist/kits/blocks/components/sections/TrustBadges.tsx +162 -162
  95. package/dist/kits/blocks/components/sections/product-demo/ApprovalInboxPanel.tsx +128 -0
  96. package/dist/kits/blocks/components/sections/product-demo/DemoStage.tsx +519 -0
  97. package/dist/kits/blocks/components/sections/product-demo/DemoWindow.tsx +140 -0
  98. package/dist/kits/blocks/components/sections/product-demo/KnowledgePanel.tsx +130 -0
  99. package/dist/kits/blocks/components/sections/product-demo/RunConsolePanel.tsx +430 -0
  100. package/dist/kits/blocks/components/sections/product-demo/TaskListPanel.tsx +302 -0
  101. package/dist/kits/blocks/components/sections/product-demo/WorkflowStudioPanel.tsx +744 -0
  102. package/dist/kits/blocks/components/sections/product-demo/types.ts +262 -0
  103. package/dist/kits/blocks/components/theme-provider.tsx +1 -34
  104. package/dist/kits/blocks/components/ui/alert-dialog.tsx +134 -134
  105. package/dist/kits/blocks/components/ui/brand-node.tsx +121 -121
  106. package/dist/kits/blocks/components/ui/button.tsx +122 -122
  107. package/dist/kits/blocks/components/ui/card.tsx +95 -95
  108. package/dist/kits/blocks/components/ui/checkbox.tsx +30 -30
  109. package/dist/kits/blocks/components/ui/cta-button.tsx +125 -125
  110. package/dist/kits/blocks/components/ui/dropdown-menu.tsx +201 -201
  111. package/dist/kits/blocks/components/ui/feature-card.tsx +91 -91
  112. package/dist/kits/blocks/components/ui/input.tsx +27 -27
  113. package/dist/kits/blocks/components/ui/label.tsx +29 -29
  114. package/dist/kits/blocks/components/ui/pricing-card.tsx +120 -120
  115. package/dist/kits/blocks/components/ui/select.tsx +25 -25
  116. package/dist/kits/blocks/components/ui/skeleton.tsx +13 -13
  117. package/dist/kits/blocks/components/ui/table.tsx +98 -98
  118. package/dist/kits/blocks/components/ui/testimonial-card.tsx +108 -108
  119. package/dist/kits/blocks/components/ui/textarea.tsx +26 -26
  120. package/dist/kits/blocks/components/ui/theme-selector.tsx +243 -247
  121. package/dist/kits/blocks/components/ui/theme-toggle.tsx +74 -74
  122. package/dist/kits/blocks/components/ui/toaster.tsx +7 -7
  123. package/dist/kits/blocks/lib/themes.ts +400 -400
  124. package/dist/kits/blocks/lib/utils.ts +6 -9
  125. package/dist/kits/blocks/package-deps.json +40 -28
  126. package/dist/kits/blocks/tsconfig.json +11 -0
  127. package/dist/kits/blocks/tsconfig.tsbuildinfo +1 -0
  128. package/dist/utils/file-operations.d.ts +3 -1
  129. package/dist/utils/file-operations.d.ts.map +1 -1
  130. package/dist/utils/file-operations.js +84 -12
  131. package/dist/utils/file-operations.js.map +1 -1
  132. package/dist/utils/installation-tracker.d.ts +2 -2
  133. package/dist/utils/installation-tracker.d.ts.map +1 -1
  134. package/dist/utils/installation-tracker.js +11 -11
  135. package/dist/utils/installation-tracker.js.map +1 -1
  136. package/dist/utils/package-manager.d.ts +6 -0
  137. package/dist/utils/package-manager.d.ts.map +1 -0
  138. package/dist/utils/package-manager.js +58 -0
  139. package/dist/utils/package-manager.js.map +1 -0
  140. package/dist/utils/yarn-pnp.d.ts +6 -0
  141. package/dist/utils/yarn-pnp.d.ts.map +1 -0
  142. package/dist/utils/yarn-pnp.js +39 -0
  143. package/dist/utils/yarn-pnp.js.map +1 -0
  144. package/package.json +5 -2
  145. package/dist/kits/blocks/notes/THEME_GUIDE.md +0 -29
@@ -1,303 +1,357 @@
1
- // - /app/templates/gallery/page.tsx
2
-
3
- "use client";
4
-
5
- import { About } from "@/components/sections/About";
6
- import { Contact } from "@/components/sections/Contact";
7
- import { CTA } from "@/components/sections/CTA";
8
- import { FAQ } from "@/components/sections/FAQ";
9
- import { Features } from "@/components/sections/Features";
10
- import { Footer } from "@/components/sections/Footer";
11
- import { HeroMotion } from "@/components/sections/HeroMotion";
12
- import { HeroOverlay } from "@/components/sections/HeroOverlay";
13
- import { HeroSplit } from "@/components/sections/HeroSplit";
14
- import { Navbar } from "@/components/sections/Navbar";
15
- import { Newsletter } from "@/components/sections/Newsletter";
16
- import { PortfolioSimple } from "@/components/sections/PortfolioSimple";
17
- import { Pricing } from "@/components/sections/Pricing";
18
- import { ProcessTimeline } from "@/components/sections/ProcessTimeline";
19
- import { ServicesGrid } from "@/components/sections/ServicesGrid";
20
- import { Team } from "@/components/sections/Team";
21
- import { Testimonials } from "@/components/sections/Testimonials";
22
- import { ThemeSelector } from "@/components/ui/theme-selector";
23
- import { TrustBadges } from "@/components/sections/TrustBadges";
24
- import { PresetThemeVars } from "./PresetThemeVars";
25
-
26
- export default function Gallery() {
27
- const defaultFeaturesData = [
28
- {
29
- imageSrc: "/placeholders/gallery/pexels-googledeepmind-25626431.jpg",
30
- imageAlt: "Advanced Analytics Dashboard",
31
- headingText: "Advanced Analytics",
32
- subheadingText:
33
- "Get deep insights into your business performance with our comprehensive analytics dashboard that tracks key metrics and provides actionable recommendations.",
34
- },
35
- {
36
- imageSrc: "/placeholders/gallery/pexels-googledeepmind-25626432.jpg",
37
- imageAlt: "Real-time Collaboration Tools",
38
- headingText: "Real-time Collaboration",
39
- subheadingText:
40
- "Work seamlessly with your team using our real-time collaboration tools that keep everyone in sync and boost productivity across all projects.",
41
- },
42
- {
43
- imageSrc: "/placeholders/gallery/pexels-googledeepmind-25626434.jpg",
44
- imageAlt: "Secure Data Management",
45
- headingText: "Secure Data Management",
46
- subheadingText:
47
- "Protect your sensitive information with enterprise-grade security features including encryption, access controls, and compliance monitoring.",
48
- },
49
- {
50
- imageSrc: "/placeholders/gallery/pexels-googledeepmind-25626436.jpg",
51
- imageAlt: "Mobile-First Design",
52
- headingText: "Mobile-First Design",
53
- subheadingText:
54
- "Access your data and manage your workflow from anywhere with our responsive, mobile-optimized interface that works perfectly on all devices.",
55
- },
56
- ];
57
-
58
- const BrandNode = (
59
- <>
60
- <ThemeSelector ariaLabel="Demo: Color theme" label="" className="mr-2" />
61
-
62
- {/* <ThemeSelector /> */}
63
- <div className="flex h-7 w-7 items-center justify-center rounded-md bg-gradient-to-br from-zinc-900 via-zinc-700 to-zinc-500 text-xs font-bold text-white shadow-sm dark:from-zinc-100 dark:via-zinc-300 dark:to-zinc-500 dark:text-zinc-900">
64
- NW
65
- </div>
66
- </>
67
- );
68
-
69
- return (
70
- <PresetThemeVars>
71
- <div className="component-gallery">
72
- {/* Navigation */}
73
- <Navbar
74
- container={{ className: "max-w-7xl mx-auto" }}
75
- mobileMenu={{
76
- className: "border-t border-border md:block lg:hidden",
77
- }}
78
- desktopMenu={{
79
- className:
80
- "hidden md:hidden lg:flex items-center space-x-1 lg:space-x-0",
81
- }}
82
- id="site-navigation"
83
- brand="Nextworks"
84
- brandNode={BrandNode}
85
- menuItems={[
86
- { label: "Hero", href: "#hero-sections" },
87
- { label: "Trust", href: "#trust" },
88
- { label: "Features", href: "#features" },
89
- { label: "About", href: "#about-process" },
90
- { label: "Work", href: "#portfolio-team" },
91
- { label: "Testimonials", href: "#testimonials" },
92
- { label: "Pricing", href: "#pricing" },
93
- { label: "FAQ", href: "#faq" },
94
- { label: "CTA", href: "#cta" },
95
- { label: "Contact", href: "#contact" },
96
- ]}
97
- links={{
98
- className:
99
- "text-base font-normal text-foreground hover:text-gray-500 dark:hover:text-gray-400 transition-colors",
100
- }}
101
- ctaButton={null}
102
- />
103
- {/* Hero Sections */}
104
- <div id="hero-sections">
105
- <HeroMotion
106
- actions={{
107
- className:
108
- "mt-8 flex items-center justify-center gap-3 [--btn-ring:var(--ring)]",
109
- }}
110
- primaryButtonStyle={{
111
- size: "lg",
112
- variant: "default",
113
- className:
114
- "[--btn-bg:var(--primary)] [--btn-fg:var(--primary-foreground)] " +
115
- "hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_88%,black)] " +
116
- "hover:[--btn-hover-fg:var(--primary-foreground)]",
117
- }}
118
- secondaryButtonStyle={{
119
- size: "lg",
120
- variant: "outline",
121
- className:
122
- "border [&:where(button)]:border " +
123
- "[--btn-bg:transparent] dark:[--btn-bg:transparent] " +
124
- "[--btn-fg:var(--primary)] dark:[--btn-fg:var(--primary)] " +
125
- "[--btn-border:var(--primary)] dark:[--btn-border:var(--primary)] " +
126
- "hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_15%,transparent)] " +
127
- "dark:hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_18%,transparent)] " +
128
- "hover:[--btn-hover-fg:var(--primary)] dark:hover:[--btn-hover-fg:var(--primary)]",
129
- }}
130
- primaryCta={{ label: "Get Started", href: "#hero-sections" }}
131
- secondaryCta={{ label: "See Demo", href: "#hero-sections" }}
132
- />
133
- <HeroOverlay
134
- heading="Forecast The Next Move"
135
- subheading="Predict demand, personalize journeys, and scale impact with AI-guided insights your team can use today."
136
- cta1={{
137
- label: "Try It Free",
138
- href: "#hero-sections",
139
- className:
140
- "[--btn-bg:var(--primary)] [--btn-fg:var(--primary-foreground)] " +
141
- "hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_88%,black)] " +
142
- "hover:[--btn-hover-fg:var(--primary-foreground)]",
143
- }}
144
- cta2={{
145
- label: "See Demo",
146
- href: "#hero-sections",
147
- // Outline CTA should be transparent bg, primary fg/border, with subtle hover bg
148
- className:
149
- "border [&:where(button)]:border " +
150
- "[--btn-bg:transparent] dark:[--btn-bg:transparent] " +
151
- "[--btn-fg:var(--primary)] dark:[--btn-fg:var(--primary)] " +
152
- "[--btn-border:var(--primary)] dark:[--btn-border:var(--primary)] " +
153
- "hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_15%,transparent)] " +
154
- "dark:hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_18%,transparent)] " +
155
- "hover:[--btn-hover-fg:var(--primary)] dark:hover:[--btn-hover-fg:var(--primary)]",
156
- }}
157
- // Set ring color on the CTA container so both buttons share it
158
- ctaContainer={{
159
- className:
160
- "flex flex-col sm:flex-row gap-4 mt-6 justify-center items-center [--btn-ring:var(--ring)]",
161
- }}
162
- image={{
163
- src: "/placeholders/gallery/hero-pexels-broken-9945014.avif",
164
- }}
165
- />
166
- <HeroSplit
167
- heading="Confident Decisions, On Demand"
168
- subheading="Reliable data when you need it."
169
- cta1={{
170
- label: "Start Free Trial",
171
- href: "#hero-sections",
172
- className:
173
- "[--btn-bg:var(--primary)] [--btn-fg:var(--primary-foreground)] " +
174
- "hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_88%,black)] " +
175
- "hover:[--btn-hover-fg:var(--primary-foreground)]",
176
- }}
177
- cta2={{
178
- label: "View Sample Report",
179
- href: "#hero-sections",
180
- className:
181
- "border [&:where(button)]:border " +
182
- "[--btn-bg:transparent] dark:[--btn-bg:transparent] " +
183
- "[--btn-fg:var(--primary)] dark:[--btn-fg:var(--primary)] " +
184
- "[--btn-border:var(--primary)] dark:[--btn-border:var(--primary)] " +
185
- "hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_15%,transparent)] " +
186
- "dark:hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_18%,transparent)] " +
187
- "hover:[--btn-hover-fg:var(--primary)] dark:hover:[--btn-hover-fg:var(--primary)]",
188
- }}
189
- buttonsContainer={{
190
- className:
191
- "flex flex-col md:flex-row gap-4 mt-6 [--btn-ring:var(--ring)]",
192
- }}
193
- image={{
194
- src: "/placeholders/gallery/hero-pexels-broken-9945014.avif",
195
- }}
196
- imageLayout="full-bleed"
197
- />
198
- {/* */}
199
- </div>
200
- {/* Trust & Social Proof */}
201
- <div id="trust" className="scroll-mt-16">
202
- <TrustBadges />
203
- </div>
204
- {/* Features & Services */}
205
- <div id="features" className="scroll-mt-16">
206
- <Features featuresData={defaultFeaturesData}></Features>
207
- <ServicesGrid />
208
- </div>
209
- {/* About & Process */}
210
- <div id="about-process" className="scroll-mt-16">
211
- <About animateStats={false} />
212
- <ProcessTimeline />
213
- </div>
214
- {/* Portfolio & Team */}
215
- <div id="portfolio-team" className="scroll-mt-16">
216
- <PortfolioSimple />
217
- <Team />
218
- </div>
219
- {/* Testimonials */}
220
- <div id="testimonials" className="scroll-mt-16">
221
- <Testimonials />
222
- </div>
223
- {/* Pricing */}
224
- <div id="pricing" className="scroll-mt-16">
225
- <Pricing />
226
- </div>
227
- {/* FAQ */}
228
- <div id="faq" className="scroll-mt-16">
229
- <FAQ
230
- questionButton={{
231
- className:
232
- // Distinct, theme-driven gradient tile + brand ring/border
233
- "bg-gradient-to-r " +
234
- "from-[var(--primary)] to-[color-mix(in_oklab,var(--primary)_88%,black)] " +
235
- "hover:from-[color-mix(in_oklab,var(--primary)_92%,black)] " +
236
- "hover:to-[color-mix(in_oklab,var(--primary)_95%,black)] " +
237
- "text-[var(--primary-foreground)] p-5 cursor-pointer rounded-lg " +
238
- "transition-all duration-200 flex items-center justify-between " +
239
- "shadow-lg hover:shadow-xl hover:-translate-y-0.5 " +
240
- // define ring/border vars and ensure a visible border if tokens apply
241
- "[--btn-ring:var(--ring)] [--btn-border:var(--primary)] border [&:where(button)]:border",
242
- }}
243
- answer={{
244
- className:
245
- "bg-gradient-to-r " +
246
- "from-[var(--secondary)] to-[color-mix(in_oklab,var(--secondary)_90%,white)] ",
247
- }}
248
- />
249
- </div>
250
- {/* Call to Action */}
251
- <div id="cta" className="scroll-mt-16">
252
- <CTA
253
- ctaButton={{ label: "Sign Up Now", href: "#contact" }}
254
- actionsWrapper={{
255
- className:
256
- "mt-6 flex flex-col items-center gap-3 sm:flex-row [--btn-ring:var(--ring)]",
257
- }}
258
- ctaButtonStyle={{
259
- variant: "default",
260
- size: "default",
261
- className:
262
- "shadow-lg hover:shadow-xl transition-all duration-200 hover:-translate-y-0.5 " +
263
- "[--btn-bg:var(--primary)] [--btn-fg:var(--primary-foreground)] " +
264
- "hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_88%,black)] " +
265
- "hover:[--btn-hover-fg:var(--primary-foreground)]",
266
- }}
267
- />
268
- </div>
269
- {/* Contact */}
270
- <div id="contact" className="scroll-mt-16">
271
- <Contact
272
- submitButtonStyle={{
273
- variant: "default",
274
- size: "lg",
275
- className:
276
- "w-full shadow-lg hover:shadow-xl transition-all duration-200 hover:-translate-y-0.5 " +
277
- // Match FAQ question button gradient + brand ring/border
278
- "bg-gradient-to-r " +
279
- "from-[var(--primary)] to-[color-mix(in_oklab,var(--primary)_88%,black)] " +
280
- "hover:from-[color-mix(in_oklab,var(--primary)_92%,black)] " +
281
- "hover:to-[color-mix(in_oklab,var(--primary)_95%,black)] " +
282
- "text-[var(--primary-foreground)] " +
283
- "[--btn-ring:var(--ring)] [--btn-border:var(--primary)] border [&:where(button)]:border",
284
- }}
285
- />
286
- </div>
287
- {/* Newsletter */}
288
- <div id="newsletter" className="scroll-mt-16">
289
- <Newsletter
290
- button={{
291
- className:
292
- "!bg-[var(--primary)] hover:!bg-[color-mix(in_oklab,var(--primary)_90%,transparent)] !text-[var(--primary-foreground)] hover:!text-[var(--primary-background)]",
293
- }}
294
- />
295
- </div>
296
- {/* Footer */}
297
- <div id="footer">
298
- <Footer />
299
- </div>
300
- </div>
301
- </PresetThemeVars>
302
- );
303
- }
1
+ "use client";
2
+
3
+ import { About } from "@/components/sections/About";
4
+ import { Contact } from "@/components/sections/Contact";
5
+ import { CTA } from "@/components/sections/CTA";
6
+ import { FAQ } from "@/components/sections/FAQ";
7
+ import { Features } from "@/components/sections/Features";
8
+ import { Footer } from "@/components/sections/Footer";
9
+ import { HeroMotion } from "@/components/sections/HeroMotion";
10
+ import { HeroOverlay } from "@/components/sections/HeroOverlay";
11
+ import { HeroSplit } from "@/components/sections/HeroSplit";
12
+ import { Navbar } from "@/components/sections/Navbar";
13
+ import { Newsletter } from "@/components/sections/Newsletter";
14
+ import { PortfolioSimple } from "@/components/sections/PortfolioSimple";
15
+ import { Pricing } from "@/components/sections/Pricing";
16
+ import { ProcessTimeline } from "@/components/sections/ProcessTimeline";
17
+ import { ServicesGrid } from "@/components/sections/ServicesGrid";
18
+ import { Team } from "@/components/sections/Team";
19
+ import { Testimonials } from "@/components/sections/Testimonials";
20
+ import { ThemeSelector } from "@/components/ui/theme-selector";
21
+ import type { HeroProductDemoProps } from "@/components/sections/HeroProductDemo";
22
+ import { TrustBadges } from "@/components/sections/TrustBadges";
23
+
24
+ import { PresetThemeVars } from "./PresetThemeVars";
25
+
26
+ export default function Gallery() {
27
+ const defaultFeaturesData = [
28
+ {
29
+ imageSrc: "/placeholders/gallery/pexels-googledeepmind-25626431.jpg",
30
+ imageAlt: "Advanced Analytics Dashboard",
31
+ headingText: "Advanced Analytics",
32
+ subheadingText:
33
+ "Get deep insights into your business performance with our comprehensive analytics dashboard that tracks key metrics and provides actionable recommendations.",
34
+ },
35
+ {
36
+ imageSrc: "/placeholders/gallery/pexels-googledeepmind-25626432.jpg",
37
+ imageAlt: "Real-time Collaboration Tools",
38
+ headingText: "Real-time Collaboration",
39
+ subheadingText:
40
+ "Work seamlessly with your team using our real-time collaboration tools that keep everyone in sync and boost productivity across all projects.",
41
+ },
42
+ {
43
+ imageSrc: "/placeholders/gallery/pexels-googledeepmind-25626434.jpg",
44
+ imageAlt: "Secure Data Management",
45
+ headingText: "Secure Data Management",
46
+ subheadingText:
47
+ "Protect your sensitive information with enterprise-grade security features including encryption, access controls, and compliance monitoring.",
48
+ },
49
+ {
50
+ imageSrc: "/placeholders/gallery/pexels-googledeepmind-25626436.jpg",
51
+ imageAlt: "Mobile-First Design",
52
+ headingText: "Mobile-First Design",
53
+ subheadingText:
54
+ "Access your data and manage your workflow from anywhere with our responsive, mobile-optimized interface that works perfectly on all devices.",
55
+ },
56
+ ];
57
+
58
+
59
+
60
+ const BrandNode = (
61
+ <>
62
+ <ThemeSelector ariaLabel="Demo: Color theme" label="" className="mr-2" />
63
+
64
+ {/* <ThemeSelector /> */}
65
+ <div className="flex h-7 w-7 items-center justify-center rounded-md bg-gradient-to-br from-zinc-900 via-zinc-700 to-zinc-500 text-xs font-bold text-white shadow-sm dark:from-zinc-100 dark:via-zinc-300 dark:to-zinc-500 dark:text-zinc-900">
66
+ NW
67
+ </div>
68
+ </>
69
+ );
70
+
71
+ return (
72
+ <PresetThemeVars>
73
+ <div className="component-gallery">
74
+ {/* Navigation */}
75
+ <Navbar
76
+ container={{ className: "max-w-7xl mx-auto" }}
77
+ mobileMenu={{
78
+ className: "border-t border-border md:block lg:hidden",
79
+ }}
80
+ desktopMenu={{
81
+ className:
82
+ "hidden md:hidden lg:flex items-center space-x-1 lg:space-x-0",
83
+ }}
84
+ id="site-navigation"
85
+ brand="Nextworks"
86
+ brandNode={BrandNode}
87
+ menuItems={[
88
+ { label: "Hero", href: "#hero-product-demo" },
89
+
90
+ { label: "Trust", href: "#trust" },
91
+ { label: "Features", href: "#features" },
92
+ { label: "About", href: "#about-process" },
93
+ { label: "Work", href: "#portfolio-team" },
94
+ { label: "Testimonials", href: "#testimonials" },
95
+ { label: "Pricing", href: "#pricing" },
96
+ { label: "FAQ", href: "#faq" },
97
+ { label: "CTA", href: "#cta" },
98
+ { label: "Contact", href: "#contact" },
99
+ ]}
100
+ links={{
101
+ className:
102
+ "text-base font-normal text-foreground hover:text-gray-500 dark:hover:text-gray-400 transition-colors",
103
+ }}
104
+ ctaButton={null}
105
+ />
106
+ {/* Hero Sections */}
107
+ <div id="hero-sections" className="scroll-mt-16">
108
+ <div className="relative pt-4 sm:pt-5 mb-10">
109
+ <HeroOverlay
110
+ heading="Forecast The Next Move"
111
+ subheading="Predict demand, personalize journeys, and scale impact with AI-guided insights your team can use today."
112
+ cta1={{
113
+ label: "Try It Free",
114
+ href: "#hero-sections",
115
+ className:
116
+ "[--btn-bg:var(--primary)] [--btn-fg:var(--primary-foreground)] " +
117
+ "hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_88%,black)] " +
118
+ "hover:[--btn-hover-fg:var(--primary-foreground)]",
119
+ }}
120
+ cta2={{
121
+ label: "See Demo",
122
+ href: "#hero-sections",
123
+ className:
124
+ "border [&:where(button)]:border " +
125
+ "[--btn-bg:transparent] dark:[--btn-bg:transparent] " +
126
+ "[--btn-fg:var(--primary)] dark:[--btn-fg:var(--primary)] " +
127
+ "[--btn-border:var(--primary)] dark:[--btn-border:var(--primary)] " +
128
+ "hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_15%,transparent)] " +
129
+ "dark:hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_18%,transparent)] " +
130
+ "hover:[--btn-hover-fg:var(--primary)] dark:hover:[--btn-hover-fg:var(--primary)]",
131
+ }}
132
+ // Set ring color on the CTA container so both buttons share it
133
+ ctaContainer={{
134
+ className:
135
+ "flex flex-col sm:flex-row gap-4 mt-6 justify-center items-center [--btn-ring:var(--ring)]",
136
+ }}
137
+ image={{
138
+ src: "/placeholders/gallery/hero-pexels-broken-9945014.avif",
139
+ }}
140
+ />
141
+ </div>
142
+ <div className="relative pt-3 sm:pt-4 mb-10">
143
+ <HeroMotion
144
+ actions={{
145
+ className:
146
+ "mt-8 flex items-center justify-center gap-3 [--btn-ring:var(--ring)]",
147
+ }}
148
+ primaryButtonStyle={{
149
+ size: "lg",
150
+ variant: "default",
151
+ className:
152
+ "[--btn-bg:var(--primary)] [--btn-fg:var(--primary-foreground)] " +
153
+ "hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_88%,black)] " +
154
+ "hover:[--btn-hover-fg:var(--primary-foreground)]",
155
+ }}
156
+ secondaryButtonStyle={{
157
+ size: "lg",
158
+ variant: "outline",
159
+ className:
160
+ "border [&:where(button)]:border " +
161
+ "[--btn-bg:transparent] dark:[--btn-bg:transparent] " +
162
+ "[--btn-fg:var(--primary)] dark:[--btn-fg:var(--primary)] " +
163
+ "[--btn-border:var(--primary)] dark:[--btn-border:var(--primary)] " +
164
+ "hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_15%,transparent)] " +
165
+ "dark:hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_18%,transparent)] " +
166
+ "hover:[--btn-hover-fg:var(--primary)] dark:hover:[--btn-hover-fg:var(--primary)]",
167
+ }}
168
+ primaryCta={{ label: "Get Started", href: "#hero-sections" }}
169
+ secondaryCta={{ label: "See Demo", href: "#hero-sections" }}
170
+ />
171
+ </div>
172
+
173
+ <div className="relative pt-4 sm:pt-5">
174
+ <HeroSplit
175
+ section={{ className: "bg-muted" }}
176
+ heading="Confident Decisions, On Demand"
177
+ subheading="Reliable data when you need it."
178
+ cta1={{
179
+ label: "Start Free Trial",
180
+ href: "#hero-sections",
181
+ className:
182
+ "[--btn-bg:var(--primary)] [--btn-fg:var(--primary-foreground)] " +
183
+ "hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_88%,black)] " +
184
+ "hover:[--btn-hover-fg:var(--primary-foreground)]",
185
+ }}
186
+ cta2={{
187
+ label: "View Sample Report",
188
+ href: "#hero-sections",
189
+ className:
190
+ "border [&:where(button)]:border " +
191
+ "[--btn-bg:transparent] dark:[--btn-bg:transparent] " +
192
+ "[--btn-fg:var(--primary)] dark:[--btn-fg:var(--primary)] " +
193
+ "[--btn-border:var(--primary)] dark:[--btn-border:var(--primary)] " +
194
+ "hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_15%,transparent)] " +
195
+ "dark:hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_18%,transparent)] " +
196
+ "hover:[--btn-hover-fg:var(--primary)] dark:hover:[--btn-hover-fg:var(--primary)]",
197
+ }}
198
+ buttonsContainer={{
199
+ className:
200
+ "flex flex-col md:flex-row gap-4 mt-6 [--btn-ring:var(--ring)]",
201
+ }}
202
+ image={{
203
+ src: "/placeholders/gallery/hero-pexels-broken-9945014.avif",
204
+ }}
205
+ imageLayout="full-bleed"
206
+ />
207
+ </div>
208
+ {/* */}
209
+ </div>
210
+
211
+ {/* Trust & Social Proof */}
212
+ <div id="trust" className="scroll-mt-16">
213
+ <div className="relative pt-0">
214
+ <TrustBadges
215
+ section={{
216
+ className:
217
+ "py-8 px-6 bg-[color-mix(in_oklab,var(--muted)_94%,black)] dark:bg-[color-mix(in_oklab,var(--muted)_90%,white)]",
218
+ }}
219
+ />
220
+ </div>
221
+ </div>
222
+
223
+ {/* Features & Services */}
224
+ <div id="features" className="scroll-mt-16">
225
+ <div className="relative pt-3 sm:pt-4">
226
+ <Features featuresData={defaultFeaturesData}></Features>
227
+ </div>
228
+ <div className="relative pt-4 sm:pt-5 mb-0">
229
+ <ServicesGrid />
230
+ </div>
231
+ </div>
232
+
233
+ {/* About & Process */}
234
+ <div id="about-process" className="scroll-mt-16">
235
+ <div className="relative pt-0">
236
+ <About animateStats={false} />
237
+ </div>
238
+ <div className="relative pt-0 mb-0">
239
+ <ProcessTimeline />
240
+ </div>
241
+ </div>
242
+
243
+ {/* Portfolio & Team */}
244
+ <div id="portfolio-team" className="scroll-mt-16">
245
+ <div className="relative pt-3 sm:pt-4">
246
+ <PortfolioSimple />
247
+ </div>
248
+ <div className="relative pt-4 sm:pt-5 mb-0">
249
+ <Team />
250
+ </div>
251
+ </div>
252
+
253
+ {/* Testimonials */}
254
+ <div id="testimonials" className="scroll-mt-16">
255
+ <div className="relative pt-0 mb-0">
256
+ <Testimonials />
257
+ </div>
258
+ </div>
259
+
260
+ {/* Pricing */}
261
+ <div id="pricing" className="scroll-mt-16">
262
+ <div className="relative pt-3 sm:pt-4 mb-0">
263
+ <Pricing />
264
+ </div>
265
+ </div>
266
+
267
+ {/* FAQ */}
268
+ <div id="faq" className="scroll-mt-16">
269
+ <div className="relative pt-4 sm:pt-5 mb-0">
270
+ <FAQ
271
+ questionButton={{
272
+ className:
273
+ // Distinct, theme-driven gradient tile + brand ring/border
274
+ "bg-gradient-to-r " +
275
+ "from-[var(--primary)] to-[color-mix(in_oklab,var(--primary)_88%,black)] " +
276
+ "hover:from-[color-mix(in_oklab,var(--primary)_92%,black)] " +
277
+ "hover:to-[color-mix(in_oklab,var(--primary)_95%,black)] " +
278
+ "text-[var(--primary-foreground)] p-5 cursor-pointer rounded-lg " +
279
+ "transition-all duration-200 flex items-center justify-between " +
280
+ "shadow-lg hover:shadow-xl hover:-translate-y-0.5 " +
281
+ // define ring/border vars and ensure a visible border if tokens apply
282
+ "[--btn-ring:var(--ring)] [--btn-border:var(--primary)] border [&:where(button)]:border",
283
+ }}
284
+ answer={{
285
+ className:
286
+ "bg-gradient-to-r " +
287
+ "from-[var(--secondary)] to-[color-mix(in_oklab,var(--secondary)_90%,white)] ",
288
+ }}
289
+ />
290
+ </div>
291
+ </div>
292
+
293
+ {/* Call to Action */}
294
+ <div id="cta" className="scroll-mt-16">
295
+ <div className="relative pt-3 sm:pt-4 mb-0">
296
+ <CTA
297
+ ctaButton={{ label: "Sign Up Now", href: "#contact" }}
298
+ actionsWrapper={{
299
+ className:
300
+ "mt-6 flex flex-col items-center gap-3 sm:flex-row [--btn-ring:var(--ring)]",
301
+ }}
302
+ ctaButtonStyle={{
303
+ variant: "default",
304
+ size: "default",
305
+ className:
306
+ "shadow-lg hover:shadow-xl transition-all duration-200 hover:-translate-y-0.5 " +
307
+ "[--btn-bg:var(--primary)] [--btn-fg:var(--primary-foreground)] " +
308
+ "hover:[--btn-hover-bg:color-mix(in_oklab,var(--primary)_88%,black)] " +
309
+ "hover:[--btn-hover-fg:var(--primary-foreground)]",
310
+ }}
311
+ />
312
+ </div>
313
+ </div>
314
+
315
+ {/* Contact */}
316
+ <div id="contact" className="scroll-mt-16">
317
+ <div className="relative pt-4 sm:pt-5 mb-0">
318
+ <Contact
319
+ submitButtonStyle={{
320
+ variant: "default",
321
+ size: "lg",
322
+ className:
323
+ "w-full shadow-lg hover:shadow-xl transition-all duration-200 hover:-translate-y-0.5 " +
324
+ // Match FAQ question button gradient + brand ring/border
325
+ "bg-gradient-to-r " +
326
+ "from-[var(--primary)] to-[color-mix(in_oklab,var(--primary)_88%,black)] " +
327
+ "hover:from-[color-mix(in_oklab,var(--primary)_92%,black)] " +
328
+ "hover:to-[color-mix(in_oklab,var(--primary)_95%,black)] " +
329
+ "text-[var(--primary-foreground)] " +
330
+ "[--btn-ring:var(--ring)] [--btn-border:var(--primary)] border [&:where(button)]:border",
331
+ }}
332
+ />
333
+ </div>
334
+ </div>
335
+
336
+ {/* Newsletter */}
337
+ <div id="newsletter" className="scroll-mt-16">
338
+ <div className="relative pt-3 sm:pt-4 mb-0">
339
+ <Newsletter
340
+ button={{
341
+ className:
342
+ "!bg-[var(--primary)] hover:!bg-[color-mix(in_oklab,var(--primary)_90%,transparent)] !text-[var(--primary-foreground)] hover:!text-[var(--primary-background)]",
343
+ }}
344
+ />
345
+ </div>
346
+ </div>
347
+
348
+ {/* Footer */}
349
+ <div id="footer">
350
+ <div className="relative pt-3 sm:pt-4 mb-0">
351
+ <Footer />
352
+ </div>
353
+ </div>
354
+ </div>
355
+ </PresetThemeVars>
356
+ );
357
+ }