@nextworks/blocks-templates 0.2.0-alpha.19 → 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.
Files changed (52) hide show
  1. package/README.md +0 -3
  2. package/dist/index.d.ts +0 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +0 -1
  5. package/dist/templates/gallery/page.d.ts.map +1 -1
  6. package/dist/templates/gallery/page.jsx +0 -299
  7. package/package.json +3 -3
  8. package/dist/templates/aiworkflow/Page.d.ts +0 -2
  9. package/dist/templates/aiworkflow/Page.d.ts.map +0 -1
  10. package/dist/templates/aiworkflow/Page.jsx +0 -41
  11. package/dist/templates/aiworkflow/PresetThemeVars.d.ts +0 -2
  12. package/dist/templates/aiworkflow/PresetThemeVars.d.ts.map +0 -1
  13. package/dist/templates/aiworkflow/PresetThemeVars.jsx +0 -3
  14. package/dist/templates/aiworkflow/components/CTA.d.ts +0 -2
  15. package/dist/templates/aiworkflow/components/CTA.d.ts.map +0 -1
  16. package/dist/templates/aiworkflow/components/CTA.jsx +0 -25
  17. package/dist/templates/aiworkflow/components/Contact.d.ts +0 -3
  18. package/dist/templates/aiworkflow/components/Contact.d.ts.map +0 -1
  19. package/dist/templates/aiworkflow/components/Contact.jsx +0 -67
  20. package/dist/templates/aiworkflow/components/FAQ.d.ts +0 -2
  21. package/dist/templates/aiworkflow/components/FAQ.d.ts.map +0 -1
  22. package/dist/templates/aiworkflow/components/FAQ.jsx +0 -40
  23. package/dist/templates/aiworkflow/components/FeatureMockups.d.ts +0 -5
  24. package/dist/templates/aiworkflow/components/FeatureMockups.d.ts.map +0 -1
  25. package/dist/templates/aiworkflow/components/FeatureMockups.jsx +0 -442
  26. package/dist/templates/aiworkflow/components/Features.d.ts +0 -2
  27. package/dist/templates/aiworkflow/components/Features.d.ts.map +0 -1
  28. package/dist/templates/aiworkflow/components/Features.jsx +0 -41
  29. package/dist/templates/aiworkflow/components/Footer.d.ts +0 -2
  30. package/dist/templates/aiworkflow/components/Footer.d.ts.map +0 -1
  31. package/dist/templates/aiworkflow/components/Footer.jsx +0 -85
  32. package/dist/templates/aiworkflow/components/Hero.d.ts +0 -2
  33. package/dist/templates/aiworkflow/components/Hero.d.ts.map +0 -1
  34. package/dist/templates/aiworkflow/components/Hero.jsx +0 -842
  35. package/dist/templates/aiworkflow/components/Navbar.d.ts +0 -7
  36. package/dist/templates/aiworkflow/components/Navbar.d.ts.map +0 -1
  37. package/dist/templates/aiworkflow/components/Navbar.jsx +0 -73
  38. package/dist/templates/aiworkflow/components/Pricing.d.ts +0 -2
  39. package/dist/templates/aiworkflow/components/Pricing.d.ts.map +0 -1
  40. package/dist/templates/aiworkflow/components/Pricing.jsx +0 -67
  41. package/dist/templates/aiworkflow/components/ProcessTimeline.d.ts +0 -2
  42. package/dist/templates/aiworkflow/components/ProcessTimeline.d.ts.map +0 -1
  43. package/dist/templates/aiworkflow/components/ProcessTimeline.jsx +0 -58
  44. package/dist/templates/aiworkflow/components/Testimonials.d.ts +0 -2
  45. package/dist/templates/aiworkflow/components/Testimonials.d.ts.map +0 -1
  46. package/dist/templates/aiworkflow/components/Testimonials.jsx +0 -37
  47. package/dist/templates/aiworkflow/components/TrustBadges.d.ts +0 -2
  48. package/dist/templates/aiworkflow/components/TrustBadges.d.ts.map +0 -1
  49. package/dist/templates/aiworkflow/components/TrustBadges.jsx +0 -40
  50. package/dist/templates/aiworkflow/themes/default.d.ts +0 -7
  51. package/dist/templates/aiworkflow/themes/default.d.ts.map +0 -1
  52. package/dist/templates/aiworkflow/themes/default.jsx +0 -9
package/README.md CHANGED
@@ -7,11 +7,8 @@ Included templates (subject to change):
7
7
  - Product launch
8
8
  - SaaS dashboard
9
9
  - Digital agency
10
- - AI workflow
11
10
  - Gallery
12
11
 
13
- The current **AI Workflow** template ships with an **AI coding agent** story, but it is intended to be adapted for other AI workflow/product stories over time.
14
-
15
12
  ## Recommended: install via the nextworks CLI
16
13
 
17
14
  Most developers should install Blocks via the **nextworks** CLI (copy-in / shadcn-style) rather than consuming this package directly.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export * as AIWorkflow from "./templates/aiworkflow/Page";
2
1
  export * as DigitalAgency from "./templates/digitalagency/Page";
3
2
  export * as Gallery from "./templates/gallery/Page";
4
3
  export * as ProductLaunch from "./templates/productlaunch/Page";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,aAAa,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,aAAa,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,aAAa,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,aAAa,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,aAAa,MAAM,gCAAgC,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,3 @@
1
- export * as AIWorkflow from "./templates/aiworkflow/Page";
2
1
  export * as DigitalAgency from "./templates/digitalagency/Page";
3
2
  export * as Gallery from "./templates/gallery/Page";
4
3
  export * as ProductLaunch from "./templates/productlaunch/Page";
@@ -1 +1 @@
1
- {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/templates/gallery/Page.tsx"],"names":[],"mappings":"AA6BA,wBAAgB,OAAO,gCAspBtB"}
1
+ {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/templates/gallery/Page.tsx"],"names":[],"mappings":"AA4BA,wBAAgB,OAAO,gCA2UtB"}
@@ -7,7 +7,6 @@ import { CTA } from "@nextworks/blocks-sections";
7
7
  import { FAQ } from "@nextworks/blocks-sections";
8
8
  import { Features } from "@nextworks/blocks-sections";
9
9
  import { Footer } from "@nextworks/blocks-sections";
10
- import { HeroProductDemo } from "@nextworks/blocks-sections";
11
10
  import { HeroMotion } from "@nextworks/blocks-sections";
12
11
  import { HeroOverlay } from "@nextworks/blocks-sections";
13
12
  import { HeroSplit } from "@nextworks/blocks-sections";
@@ -49,241 +48,6 @@ export function Gallery() {
49
48
  subheadingText: "Access your data and manage your workflow from anywhere with our responsive, mobile-optimized interface that works perfectly on all devices.",
50
49
  },
51
50
  ];
52
- const heroProductDemoScenarios = [
53
- {
54
- key: "gallery-product-demo",
55
- label: "Workflow overview",
56
- description: "An AI-powered coding agent that plans, edits, and verifies changes across your entire codebase — without breaking your flow.",
57
- activeWindow: "workflowStudio",
58
- playback: {
59
- workflowStudio: {
60
- playbackStepDurationsMs: [820, 920, 1240, 1100, 960, 840, 1560],
61
- playbackResetDelayMs: 2200,
62
- },
63
- runConsole: {
64
- playbackStepDurationsMs: [1080, 1320, 920, 780, 700, 620, 1240],
65
- playbackResetDelayMs: 2200,
66
- playbackStepEntryIndices: [0, 0, 1, 1, 2, 2, 2, 3, 3],
67
- playbackStepVisibleLineCounts: [2, 2, 3, 4, 6, 8, 10, 12, 12],
68
- },
69
- },
70
- taskList: {
71
- window: {
72
- key: "taskList",
73
- title: "Queues",
74
- subtitle: "Active tasks",
75
- status: { label: "Ready", tone: "info" },
76
- },
77
- title: "Task queues",
78
- subtitle: "Switch between in-progress agent runs.",
79
- activeItemId: "gallery-product-demo",
80
- items: [
81
- {
82
- id: "gallery-product-demo",
83
- title: "Refactor auth module",
84
- description: "Extract token logic into a dedicated service, add refresh handling, and update all call sites.",
85
- meta: "in progress · 4 files",
86
- },
87
- ],
88
- },
89
- workflowStudio: {
90
- window: {
91
- key: "workflowStudio",
92
- title: "Agent console",
93
- subtitle: "Live run",
94
- status: { label: "Running", tone: "info" },
95
- },
96
- title: "Refactoring auth module",
97
- subtitle: "The agent reads existing logic, plans the extraction, and applies changes across all affected files.",
98
- activeNodeId: "polish-layout",
99
- transcript: [
100
- { id: "gallery-title", kind: "title", text: "Refactor auth module" },
101
- {
102
- id: "gallery-prompt",
103
- kind: "prompt",
104
- text: "Extract token handling into an AuthService class, add silent refresh on 401, and update every call site.",
105
- },
106
- {
107
- id: "gallery-read-1",
108
- kind: "activity",
109
- text: "Read auth/session.ts and api/client.ts",
110
- },
111
- {
112
- id: "gallery-read-2",
113
- kind: "activity",
114
- text: "Scan for token usage across 12 files",
115
- },
116
- {
117
- id: "gallery-file-1",
118
- kind: "file",
119
- path: "src/services/auth-service.ts",
120
- text: "src/services/auth-service.ts",
121
- added: 74,
122
- removed: 0,
123
- },
124
- {
125
- id: "gallery-summary",
126
- kind: "message",
127
- text: "Done. Token logic is centralised in AuthService and silent refresh is active on every API call.",
128
- },
129
- ],
130
- composer: {
131
- placeholder: "Describe your next change...",
132
- modeLabel: "Agent",
133
- modelLabel: "Sonnet",
134
- },
135
- highlights: [
136
- { id: "read-copy", label: "Read codebase", tone: "info" },
137
- { id: "polish-layout", label: "Apply changes", tone: "accent" },
138
- ],
139
- nodes: [
140
- {
141
- id: "read-copy",
142
- label: "Read existing auth logic",
143
- description: "Parse session handling and identify all token read/write paths.",
144
- type: "Read",
145
- status: "success",
146
- metadata: "auth/session.ts · api/client.ts",
147
- },
148
- {
149
- id: "layout-shell",
150
- label: "Plan the extraction",
151
- description: "Decide class boundaries and map which call sites need updating.",
152
- type: "Analyze",
153
- status: "success",
154
- metadata: "12 files affected",
155
- },
156
- {
157
- id: "polish-layout",
158
- label: "Write AuthService",
159
- description: "Create the service class, move token storage, and add the 401 refresh interceptor.",
160
- type: "Edit",
161
- status: "info",
162
- active: true,
163
- emphasized: true,
164
- metadata: "src/services/auth-service.ts",
165
- },
166
- {
167
- id: "review-story",
168
- label: "Update call sites",
169
- description: "Replace direct token access with AuthService across all affected files and verify types.",
170
- type: "Verify",
171
- status: "neutral",
172
- metadata: "final pass",
173
- },
174
- ],
175
- },
176
- runConsole: {
177
- window: {
178
- key: "runConsole",
179
- title: "Console",
180
- subtitle: "Live output",
181
- status: { label: "Writing", tone: "info" },
182
- },
183
- title: "src/services/auth-service.ts",
184
- subtitle: "New file — token logic extracted from session.ts and api/client.ts.",
185
- statusLabel: "Writing AuthService",
186
- progressLabel: "74 lines added",
187
- progressPercent: 64,
188
- activeEntryId: "gallery-diff-3",
189
- editorTabLabel: "auth-service.ts",
190
- editorLanguage: "TypeScript",
191
- editorSummary: "Create AuthService with token storage, silent refresh, and a fetch interceptor.",
192
- entries: [
193
- {
194
- id: "gallery-diff-1",
195
- message: "Read auth/session.ts and mapped token access patterns",
196
- timestamp: "10:48",
197
- source: "agent",
198
- status: "success",
199
- },
200
- {
201
- id: "gallery-diff-2",
202
- message: "Identified 12 call sites that reference tokens directly",
203
- timestamp: "10:49",
204
- source: "analysis",
205
- status: "success",
206
- detail: "Centralising access in AuthService will eliminate all direct imports.",
207
- },
208
- {
209
- id: "gallery-diff-3",
210
- message: "Created AuthService with refresh interceptor",
211
- timestamp: "10:49",
212
- source: "editor",
213
- status: "info",
214
- highlighted: true,
215
- lineNumber: "34",
216
- code: [
217
- " export class AuthService {",
218
- " private static token: string | null = null;",
219
- " ",
220
- "+ static async getToken(): Promise<string | null> {",
221
- "+ if (!this.token) this.token = await storage.get('auth_token');",
222
- "+ return this.token;",
223
- "+ }",
224
- "+ ",
225
- "+ static async refreshIfExpired(): Promise<void> {",
226
- "+ const exp = parseExpiry(this.token);",
227
- "+ if (exp && exp < Date.now() + 60_000) {",
228
- "+ this.token = await api.post('/auth/refresh');",
229
- "+ }",
230
- "+ }",
231
- ],
232
- },
233
- {
234
- id: "gallery-diff-4",
235
- message: "Queued call-site updates across 12 files",
236
- timestamp: "10:50",
237
- source: "preview",
238
- status: "neutral",
239
- },
240
- ],
241
- metrics: [
242
- { id: "gm1", label: "Files", value: "1", tone: "success" },
243
- { id: "gm2", label: "Lines added", value: "74", tone: "info" },
244
- { id: "gm3", label: "Type errors", value: "0", tone: "success" },
245
- ],
246
- highlights: [],
247
- },
248
- approvalInbox: {
249
- window: {
250
- key: "approvalInbox",
251
- title: "Hidden",
252
- },
253
- items: [],
254
- },
255
- knowledgePanel: {
256
- window: {
257
- key: "knowledgePanel",
258
- title: "Knowledge",
259
- subtitle: "Context",
260
- status: { label: "Ready", tone: "success" },
261
- },
262
- title: "Auth codebase context",
263
- subtitle: "Relevant files and patterns surfaced for this task.",
264
- query: "AuthService token refresh",
265
- summary: "Token storage is currently split between session.ts and api/client.ts. Centralising in AuthService removes 3 duplicate patterns and enables a single refresh intercept point.",
266
- snippets: [
267
- {
268
- id: "gallery-snippet",
269
- title: "auth/session.ts — token storage",
270
- excerptLabel: "Current implementation",
271
- confidence: "12 call sites",
272
- highlighted: true,
273
- content: "getToken(): string | null { return localStorage.getItem('auth_token'); }\nsetToken(t: string): void { localStorage.setItem('auth_token', t); }\nclearToken(): void { localStorage.removeItem('auth_token'); }",
274
- tags: ["auth", "token", "session"],
275
- },
276
- ],
277
- highlights: [
278
- { id: "gallery-snippet", label: "Token pattern", tone: "success" },
279
- ],
280
- },
281
- highlights: [
282
- { id: "polish-layout", label: "AuthService created", tone: "accent" },
283
- { id: "gallery-diff-3", label: "Refresh interceptor", tone: "info" },
284
- ],
285
- },
286
- ];
287
51
  const BrandNode = (<>
288
52
  <ThemeSelector ariaLabel="Demo: Color theme" label="" className="mr-2"/>
289
53
 
@@ -315,69 +79,6 @@ export function Gallery() {
315
79
  }} ctaButton={null}/>
316
80
  {/* Hero Sections */}
317
81
  <div id="hero-sections" className="scroll-mt-16">
318
- <div id="hero-product-demo" className="scroll-mt-16">
319
- <div className="relative pt-0">
320
- <HeroProductDemo className="bg-transparent" heading={{
321
- text: "Ship faster with an agent that knows your codebase.",
322
- className: "max-w-4xl text-left font-outfit text-3xl font-semibold leading-none tracking-tight text-[var(--heading-fg)] sm:text-4xl lg:text-5xl",
323
- }} subheading={{
324
- text: "Describe the change you need. The agent reads, plans, edits, and verifies — across every affected file, in one run.",
325
- className: "mt-3 max-w-2xl text-left font-inter text-sm leading-6 text-[var(--subheading-fg)] sm:text-base",
326
- }} cta1={{
327
- label: "Start for free",
328
- href: "#features",
329
- variant: "default",
330
- size: "lg",
331
- className:
332
- // "ml-4 px-7 py-3 text-sm font-semibold shadow-lg shadow-black/10 dark:shadow-black/30 " +
333
- // "!bg-[var(--hero-cta-primary-bg)] !text-[var(--hero-cta-primary-fg)] " +
334
- // "hover:!bg-[var(--hero-cta-primary-hover-bg)] hover:!text-[var(--hero-cta-primary-hover-fg)] " +
335
- // "active:!bg-[var(--hero-cta-primary-bg)] active:!text-[var(--hero-cta-primary-fg)] " +
336
- // "visited:!bg-[var(--hero-cta-primary-bg)] visited:!text-[var(--hero-cta-primary-fg)] " +
337
- // "dark:!bg-[var(--hero-cta-primary-bg)] dark:!text-[var(--hero-cta-primary-fg)] " +
338
- // "dark:hover:!bg-[var(--hero-cta-secondary-hover-bg)] dark:hover:!text-[var(--hero-cta-primary-hover-fg)] " +
339
- // "dark:active:!bg-[var(--hero-cta-primary-bg)] dark:active:!text-[var(--hero-cta-primary-fg)] " +
340
- // "dark:visited:!bg-[var(--hero-cta-primary-bg)] dark:visited:!text-[var(--hero-cta-primary-fg)]",
341
- "ml-4 border border-transparent px-7 py-3 text-sm font-semibold shadow-lg shadow-black/10 dark:shadow-black/30 " +
342
- "!bg-[var(--hero-cta-primary-bg)] !text-[var(--hero-cta-primary-fg)] " +
343
- "hover:!bg-[var(--hero-cta-primary-hover-bg)] hover:!text-[var(--hero-cta-primary-hover-fg)] " +
344
- "active:!bg-[var(--hero-cta-primary-bg)] active:!text-[var(--hero-cta-primary-fg)] " +
345
- "visited:!bg-[var(--hero-cta-primary-bg)] visited:!text-[var(--hero-cta-primary-fg)] " +
346
- "dark:!bg-[var(--hero-cta-primary-bg)] dark:!text-[var(--hero-cta-primary-fg)] " +
347
- "dark:hover:!bg-[var(--hero-cta-secondary-hover-bg)] dark:hover:!text-[var(--hero-cta-primary-hover-fg)] " +
348
- "dark:hover:!border-white " +
349
- "dark:active:!bg-[var(--hero-cta-primary-bg)] dark:active:!text-[var(--hero-cta-primary-fg)] " +
350
- "dark:visited:!bg-[var(--hero-cta-primary-bg)] dark:visited:!text-[var(--hero-cta-primary-fg)]",
351
- }} cta2={{
352
- label: "See it in action",
353
- href: "#trust",
354
- variant: "outline",
355
- size: "lg",
356
- className: "border px-7 py-3 text-sm font-semibold shadow-sm dark:shadow-black/20 " +
357
- "[--btn-bg:var(--hero-cta-secondary-bg)] " +
358
- "[--btn-fg:var(--hero-cta-secondary-fg)] " +
359
- "[--btn-border:var(--hero-cta-secondary-border)] " +
360
- "hover:[--btn-hover-bg:var(--hero-cta-secondary-hover-bg)] " +
361
- "hover:[--btn-hover-fg:var(--hero-cta-secondary-hover-fg)]",
362
- }} stage={{
363
- scenarios: heroProductDemoScenarios,
364
- initialScenarioIndex: 0,
365
- className: "mt-0",
366
- }} section={{
367
- className: "px-6 pt-10 pb-6 sm:px-8 lg:px-10 lg:pt-12 lg:pb-8",
368
- }} container={{
369
- className: "relative z-10 max-w-7xl gap-8",
370
- }} textContainer={{
371
- className: "max-w-3xl pt-6 lg:pl-4 lg:pt-8",
372
- }} demoContainer={{
373
- className: "relative mt-2 min-h-[34rem] w-full max-w-full overflow-hidden rounded-[0.5rem] border border-border/0 bg-background/90 p-3 shadow-[0_24px_80px_-44px_rgba(15,23,42,0.24)] backdrop-blur-sm lg:h-[clamp(34rem,calc(100svh-8rem),46rem)] lg:min-h-0 lg:px-4",
374
- // "relative mt-2 min-h-[34rem] w-full max-w-full overflow-hidden rounded-[2rem] border border-border/70 bg-background/90 p-3 shadow-[0_24px_80px_-44px_rgba(15,23,42,0.24)] backdrop-blur-sm lg:h-[clamp(34rem,calc(100svh-8rem),46rem)] lg:min-h-0 lg:px-4",
375
- }} buttonsContainer={{
376
- className: "mt-6 flex flex-col items-start gap-3 sm:flex-row sm:items-center [--btn-ring:var(--ring)]",
377
- }} demoBelowText ariaLabel="Gallery product demo hero section"/>
378
- </div>
379
- </div>
380
-
381
82
  <div className="relative pt-4 sm:pt-5 mb-10">
382
83
  <HeroOverlay heading="Forecast The Next Move" subheading="Predict demand, personalize journeys, and scale impact with AI-guided insights your team can use today." cta1={{
383
84
  label: "Try It Free",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nextworks/blocks-templates",
3
- "version": "0.2.0-alpha.19",
3
+ "version": "0.2.0-alpha.20",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -16,8 +16,8 @@
16
16
  "build": "npx tsc -p tsconfig.json"
17
17
  },
18
18
  "dependencies": {
19
- "@nextworks/blocks-core": "0.2.0-alpha.19",
20
- "@nextworks/blocks-sections": "0.2.0-alpha.19",
19
+ "@nextworks/blocks-core": "0.2.0-alpha.20",
20
+ "@nextworks/blocks-sections": "0.2.0-alpha.20",
21
21
  "lucide-react": "^0.542.0"
22
22
  },
23
23
  "devDependencies": {
@@ -1,2 +0,0 @@
1
- export declare function AIWorkflowTemplatePage(): import("react").JSX.Element;
2
- //# sourceMappingURL=Page.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/templates/aiworkflow/Page.tsx"],"names":[],"mappings":"AAiBA,wBAAgB,sBAAsB,gCA4BrC"}
@@ -1,41 +0,0 @@
1
- // AUTO-GENERATED from cli/kits/blocks by scripts/sync-kit-to-packages.mjs
2
- // Do not edit this file directly. Edit the kit source instead.
3
- import { Navbar } from "./components/Navbar";
4
- import { Hero } from "./components/Hero";
5
- import { TrustBadges } from "./components/TrustBadges";
6
- import { Features } from "./components/Features";
7
- import { ProcessTimeline } from "./components/ProcessTimeline";
8
- import { Testimonials } from "./components/Testimonials";
9
- import { Pricing } from "./components/Pricing";
10
- import { FAQ } from "./components/FAQ";
11
- import { CTA } from "./components/CTA";
12
- import { Contact } from "./components/Contact";
13
- import { Footer } from "./components/Footer";
14
- import { PresetThemeVars } from "./PresetThemeVars";
15
- export function AIWorkflowTemplatePage() {
16
- return (<PresetThemeVars>
17
- <div>
18
- <Navbar />
19
- <section id="home">
20
- <Hero />
21
- </section>
22
- <TrustBadges />
23
- <section id="features">
24
- <Features />
25
- <ProcessTimeline />
26
- </section>
27
- <Testimonials />
28
- <section id="pricing">
29
- <Pricing />
30
- </section>
31
- <section id="faq">
32
- <FAQ />
33
- </section>
34
- <CTA />
35
- <section id="contact">
36
- <Contact />
37
- </section>
38
- <Footer />
39
- </div>
40
- </PresetThemeVars>);
41
- }
@@ -1,2 +0,0 @@
1
- export { PresetThemeVars } from "./themes/default";
2
- //# sourceMappingURL=PresetThemeVars.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PresetThemeVars.d.ts","sourceRoot":"","sources":["../../../src/templates/aiworkflow/PresetThemeVars.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,3 +0,0 @@
1
- // AUTO-GENERATED from cli/kits/blocks by scripts/sync-kit-to-packages.mjs
2
- // Do not edit this file directly. Edit the kit source instead.
3
- export { PresetThemeVars } from "./themes/default";
@@ -1,2 +0,0 @@
1
- export declare function CTA(): import("react").JSX.Element;
2
- //# sourceMappingURL=CTA.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CTA.d.ts","sourceRoot":"","sources":["../../../../src/templates/aiworkflow/components/CTA.tsx"],"names":[],"mappings":"AAOA,wBAAgB,GAAG,gCAuClB"}
@@ -1,25 +0,0 @@
1
- // AUTO-GENERATED from cli/kits/blocks by scripts/sync-kit-to-packages.mjs
2
- // Do not edit this file directly. Edit the kit source instead.
3
- "use client";
4
- import { CTA as SharedCTA } from "@nextworks/blocks-sections";
5
- export function CTA() {
6
- return (<SharedCTA section={{
7
- className: "bg-[var(--cta-section-bg)] px-6 py-16 [--cta-heading-fg:theme(colors.slate.950)] dark:[--cta-heading-fg:theme(colors.white)] [--cta-subheading-fg:theme(colors.slate.600)] dark:[--cta-subheading-fg:rgba(255,255,255,0.82)] [--cta-description-fg:theme(colors.slate.700)] dark:[--cta-description-fg:rgba(255,255,255,0.74)]",
8
- }} container={{
9
- className: "flex min-h-[22rem] w-full flex-col items-center justify-center px-6 py-16 text-center",
10
- }} headingText={{
11
- text: "Ship code changes with an agent in the loop.",
12
- className: "font-outfit text-3xl font-semibold leading-tight text-[var(--cta-heading-fg)] md:text-4xl lg:text-5xl",
13
- }} subheadingText={{
14
- text: "Move from issue to patch to preview without leaving one workspace.",
15
- className: "mx-auto mt-4 max-w-2xl font-inter text-base leading-7 text-[var(--cta-subheading-fg)] md:text-lg",
16
- }} actionsWrapper={{ className: "mt-8 flex flex-col gap-3 sm:flex-row" }} ctaButton={{ label: "Book a coding demo", href: "#contact" }} ctaButtonStyle={{
17
- variant: "default",
18
- size: "lg",
19
- className: "font-inter font-semibold [--btn-bg:var(--cta-primary-bg)] [--btn-fg:var(--cta-primary-fg)] [--btn-border:var(--cta-primary-border)] hover:[--btn-hover-bg:var(--cta-primary-hover-bg)] hover:[--btn-hover-fg:var(--cta-primary-hover-fg)]",
20
- }} secondaryButton={{ label: "Review pricing", href: "#pricing" }} secondaryButtonStyle={{
21
- variant: "outline",
22
- size: "lg",
23
- className: "border [--btn-bg:var(--cta-secondary-bg)] [--btn-fg:var(--cta-secondary-fg)] [--btn-border:var(--cta-secondary-border)] hover:[--btn-hover-bg:var(--cta-secondary-hover-bg)] hover:[--btn-hover-fg:var(--cta-secondary-hover-fg)]",
24
- }} ariaLabel="AI coding agent call to action"/>);
25
- }
@@ -1,3 +0,0 @@
1
- import React from "react";
2
- export declare function Contact(): React.JSX.Element;
3
- //# sourceMappingURL=Contact.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Contact.d.ts","sourceRoot":"","sources":["../../../../src/templates/aiworkflow/components/Contact.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AA6C1B,wBAAgB,OAAO,sBAwDtB"}
@@ -1,67 +0,0 @@
1
- // AUTO-GENERATED from cli/kits/blocks by scripts/sync-kit-to-packages.mjs
2
- // Do not edit this file directly. Edit the kit source instead.
3
- "use client";
4
- import React from "react";
5
- import { Contact as SharedContact, } from "@nextworks/blocks-sections";
6
- const contactFields = [
7
- {
8
- id: "name",
9
- label: "Full name",
10
- placeholder: "Avery Chen",
11
- required: true,
12
- type: "text",
13
- },
14
- {
15
- id: "email",
16
- label: "Work email",
17
- placeholder: "avery@company.com",
18
- required: true,
19
- type: "email",
20
- },
21
- {
22
- id: "company",
23
- label: "Company",
24
- placeholder: "Northstar Labs",
25
- required: true,
26
- type: "text",
27
- },
28
- {
29
- id: "workflow",
30
- label: "Workflow to automate",
31
- placeholder: "Bug fixes, refactors, releases, or repo cleanup…",
32
- required: true,
33
- type: "text",
34
- },
35
- {
36
- id: "message",
37
- label: "What should the workflow coordinate?",
38
- placeholder: "Tell us which files, checks, or handoffs are slowing the team down.",
39
- required: true,
40
- type: "textarea",
41
- },
42
- ];
43
- export function Contact() {
44
- const handleFormSubmit = (e) => {
45
- e.preventDefault();
46
- const data = Object.fromEntries(new FormData(e.currentTarget).entries());
47
- };
48
- return (<SharedContact id="contact" ariaLabel="AI coding agent contact section" fields={contactFields} contactHeaderText="Bring your messiest codebase issue." contactSubHeaderText="We’ll map the reads, edits, checks, and reviews the agent should handle first." className="w-full" section={{
49
- className: "bg-[var(--contact-section-bg)] px-6 py-16",
50
- }} container={{ className: "mx-auto max-w-4xl" }} headerWrapper={{ className: "mb-8 text-center" }} headerText={{
51
- className: "font-outfit text-3xl font-semibold !text-[var(--heading-fg)] md:text-4xl",
52
- }} subheaderText={{
53
- className: "mx-auto mt-3 max-w-2xl font-inter text-base leading-7 text-[var(--subheading-fg)]",
54
- }} form={{
55
- className: "rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-6 shadow-[var(--card-shadow)] md:p-8",
56
- }} fieldsWrapper={{ className: "space-y-5" }} field={{ className: "space-y-2" }} label={{
57
- className: "block font-inter text-sm font-medium text-[var(--card-title-fg)]",
58
- }} input={{
59
- className: "w-full rounded-md border-[var(--input-border)] bg-[var(--input-bg)] p-3 font-inter 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)]",
60
- }} textarea={{
61
- className: "min-h-[130px] w-full resize-vertical rounded-md border-[var(--input-border)] bg-[var(--input-bg)] p-3 font-inter 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)]",
62
- }} submitButtonWrapper={{ className: "pt-2" }} submitButtonStyle={{
63
- variant: "default",
64
- size: "lg",
65
- className: "w-full font-inter font-semibold [--btn-bg:var(--contact-submit-bg)] [--btn-fg:var(--contact-submit-fg)] [--btn-border:var(--contact-submit-border)] hover:[--btn-hover-bg:var(--contact-submit-hover-bg)] hover:[--btn-hover-fg:var(--contact-submit-hover-fg)]",
66
- }} submitButtonText="Book an agent demo" onSubmit={handleFormSubmit}/>);
67
- }
@@ -1,2 +0,0 @@
1
- export declare function FAQ(): import("react").JSX.Element;
2
- //# sourceMappingURL=FAQ.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FAQ.d.ts","sourceRoot":"","sources":["../../../../src/templates/aiworkflow/components/FAQ.tsx"],"names":[],"mappings":"AAOA,wBAAgB,GAAG,gCA8DlB"}
@@ -1,40 +0,0 @@
1
- // AUTO-GENERATED from cli/kits/blocks by scripts/sync-kit-to-packages.mjs
2
- // Do not edit this file directly. Edit the kit source instead.
3
- "use client";
4
- import { FAQ as SharedFAQ } from "@nextworks/blocks-sections";
5
- export function FAQ() {
6
- return (<SharedFAQ faqSectionHeaderText="Frequently asked questions" faqData={[
7
- {
8
- question: "What kinds of coding tasks can the agent handle?",
9
- answer: "Teams use MergeBeacon AI for bug fixes, refactors, routine maintenance, release prep, and other repeatable code changes.",
10
- },
11
- {
12
- question: "How do reviews and approvals work?",
13
- answer: "You define the rules once. The agent keeps moving on low-risk work and pauses only when a review or approval is required.",
14
- },
15
- {
16
- question: "Can the agent use our codebase and docs?",
17
- answer: "Yes. It can read repo files, docs, and internal notes so changes stay grounded in current project context.",
18
- },
19
- {
20
- question: "Will we be able to audit every change?",
21
- answer: "Yes. Each run records reads, edits, approvals, and output so teams can trace what changed and why.",
22
- },
23
- {
24
- question: "Do we need engineering support to start?",
25
- answer: "Most teams start with a few high-signal tasks, then expand the agent into more of the codebase as confidence grows.",
26
- },
27
- {
28
- question: "Which tools can it connect to?",
29
- answer: "The template story assumes common tools like GitHub, docs, issue trackers, CI, and chat, with more connectors added as needed.",
30
- },
31
- ]} section={{
32
- className: "bg-[linear-gradient(180deg,#eef3f8_0%,#f6f8fb_48%,#eef3f8_100%)] px-5 py-16 dark:bg-[linear-gradient(180deg,#171717_0%,#121212_18%,#1d1d1d_46%,#131313_76%,#1b1b1b_100%)]",
33
- }} container={{ className: "mx-auto max-w-6xl" }} heading={{
34
- className: "mb-8 text-center font-outfit text-3xl font-semibold text-[var(--heading-fg)] md:text-4xl",
35
- }} grid={{ className: "grid grid-cols-1 gap-5 lg:grid-cols-2" }} item={{ className: "w-full" }} questionButton={{
36
- className: "flex cursor-pointer items-center justify-between rounded-xl border border-[var(--card-border)] bg-[var(--faq-btn-bg)] p-5 font-inter font-semibold text-[var(--faq-btn-fg)] shadow-sm transition-all duration-200 hover:-translate-y-0.5 hover:bg-[var(--faq-btn-hover-bg)] hover:text-[var(--faq-btn-hover-fg)] [--btn-border:var(--card-border)]",
37
- }} questionText={{ className: "font-inter text-base" }} answer={{
38
- className: "overflow-hidden rounded-xl border border-[var(--card-border)] bg-[var(--faq-answer-bg)] text-[var(--faq-answer-fg)] shadow-sm",
39
- }} answerText={{ className: "font-inter text-sm leading-7" }} allowMultipleOpen={true} ariaLabel="AI coding agent frequently asked questions"/>);
40
- }
@@ -1,5 +0,0 @@
1
- export declare function TaskToCodeMockup(): import("react").JSX.Element;
2
- export declare function TranscriptDiffMockup(): import("react").JSX.Element;
3
- export declare function ReviewQueueMockup(): import("react").JSX.Element;
4
- export declare function FeatureMockupsPreview(): import("react").JSX.Element;
5
- //# sourceMappingURL=FeatureMockups.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FeatureMockups.d.ts","sourceRoot":"","sources":["../../../../src/templates/aiworkflow/components/FeatureMockups.tsx"],"names":[],"mappings":"AA+FA,wBAAgB,gBAAgB,gCA0J/B;AAED,wBAAgB,oBAAoB,gCA4InC;AAED,wBAAgB,iBAAiB,gCAiKhC;AAED,wBAAgB,qBAAqB,gCAQpC"}