nextworks 0.2.0-alpha.13 → 0.2.0-alpha.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/cli_manifests/blocks_manifest.json +5 -0
- package/dist/kits/blocks/.nextworks/docs/BLOCKS_QUICKSTART.md +2 -0
- package/dist/kits/blocks/.nextworks/docs/BLOCKS_README.md +2 -0
- package/dist/kits/blocks/app/templates/aiworkflow/PresetThemeVars.tsx +1 -58
- package/dist/kits/blocks/app/templates/aiworkflow/README.md +2 -0
- package/dist/kits/blocks/app/templates/aiworkflow/components/CTA.tsx +9 -9
- package/dist/kits/blocks/app/templates/aiworkflow/components/Contact.tsx +12 -13
- package/dist/kits/blocks/app/templates/aiworkflow/components/FAQ.tsx +22 -19
- package/dist/kits/blocks/app/templates/aiworkflow/components/FeatureMockups.tsx +562 -0
- package/dist/kits/blocks/app/templates/aiworkflow/components/Features.tsx +18 -16
- package/dist/kits/blocks/app/templates/aiworkflow/components/Footer.tsx +13 -9
- package/dist/kits/blocks/app/templates/aiworkflow/components/Hero.tsx +883 -636
- package/dist/kits/blocks/app/templates/aiworkflow/components/Navbar.tsx +14 -15
- package/dist/kits/blocks/app/templates/aiworkflow/components/Pricing.tsx +27 -22
- package/dist/kits/blocks/app/templates/aiworkflow/components/ProcessTimeline.tsx +20 -21
- package/dist/kits/blocks/app/templates/aiworkflow/components/Testimonials.tsx +17 -13
- package/dist/kits/blocks/app/templates/aiworkflow/components/TrustBadges.tsx +15 -12
- package/dist/kits/blocks/app/templates/aiworkflow/themes/animation.tsx +151 -0
- package/dist/kits/blocks/app/templates/aiworkflow/themes/default.tsx +158 -0
- package/dist/kits/blocks/app/templates/aiworkflow/themes/test.tsx +163 -0
- package/dist/kits/blocks/app/templates/gallery/PresetThemeVars.tsx +46 -0
- package/dist/kits/blocks/app/templates/gallery/page.tsx +550 -161
- package/dist/kits/blocks/components/sections/HeroProductDemo.tsx +74 -64
- package/dist/kits/blocks/components/sections/Navbar.tsx +2 -0
- package/dist/kits/blocks/components/sections/product-demo/ApprovalInboxPanel.tsx +16 -13
- package/dist/kits/blocks/components/sections/product-demo/DemoStage.tsx +283 -162
- package/dist/kits/blocks/components/sections/product-demo/DemoWindow.tsx +65 -53
- package/dist/kits/blocks/components/sections/product-demo/KnowledgePanel.tsx +20 -17
- package/dist/kits/blocks/components/sections/product-demo/RunConsolePanel.tsx +208 -127
- package/dist/kits/blocks/components/sections/product-demo/TaskListPanel.tsx +95 -0
- package/dist/kits/blocks/components/sections/product-demo/WorkflowStudioPanel.tsx +714 -161
- package/dist/kits/blocks/components/sections/product-demo/types.ts +69 -0
- package/dist/kits/blocks/components/ui/theme-selector.tsx +1 -1
- package/dist/kits/blocks/package-deps.json +3 -3
- package/dist/kits/blocks/public/placeholders/aiworkflow/live.svg +92 -0
- package/dist/kits/blocks/public/placeholders/aiworkflow/review.svg +80 -0
- package/dist/kits/blocks/public/placeholders/aiworkflow/task.svg +71 -0
- package/dist/kits/blocks/tsconfig.json +13 -0
- package/dist/utils/file-operations.d.ts.map +1 -1
- package/dist/utils/file-operations.js +6 -1
- package/dist/utils/file-operations.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -204,7 +204,9 @@ This copies:
|
|
|
204
204
|
After this step you should be able to start your dev server and visit:
|
|
205
205
|
|
|
206
206
|
- `/` (if wired as the home page), or
|
|
207
|
-
- `/templates/productlaunch`, `/templates/saasdashboard`, `/templates/digitalagency`, `/templates/aiworkflow`
|
|
207
|
+
- `/templates/productlaunch`, `/templates/saasdashboard`, `/templates/digitalagency`, `/templates/aiworkflow`, `/templates/gallery`
|
|
208
|
+
|
|
209
|
+
The current **AI Workflow** template ships with an **AI coding agent** story. It is intended to be adapted for other AI workflow/product stories as more variants are added.
|
|
208
210
|
|
|
209
211
|
---
|
|
210
212
|
|
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
"components/sections/product-demo/KnowledgePanel.tsx",
|
|
63
63
|
"components/sections/product-demo/RunConsolePanel.tsx",
|
|
64
64
|
"components/sections/product-demo/types.ts",
|
|
65
|
+
"components/sections/product-demo/TaskListPanel.tsx",
|
|
65
66
|
"components/sections/product-demo/WorkflowStudioPanel.tsx",
|
|
66
67
|
"components/sections/Newsletter.tsx",
|
|
67
68
|
"components/sections/PortfolioSimple.tsx",
|
|
@@ -144,6 +145,10 @@
|
|
|
144
145
|
"app/templates/aiworkflow/components/ProcessTimeline.tsx",
|
|
145
146
|
"app/templates/aiworkflow/components/Testimonials.tsx",
|
|
146
147
|
"app/templates/aiworkflow/components/TrustBadges.tsx",
|
|
148
|
+
"app/templates/aiworkflow/themes/default.tsx",
|
|
149
|
+
"public/placeholders/aiworkflow/live.svg",
|
|
150
|
+
"public/placeholders/aiworkflow/review.svg",
|
|
151
|
+
"public/placeholders/aiworkflow/task.svg",
|
|
147
152
|
"public/placeholders/gallery/hero-pexels-broken-9945014.avif",
|
|
148
153
|
"public/placeholders/gallery/pexels-googledeepmind-25626431.jpg",
|
|
149
154
|
"public/placeholders/gallery/pexels-googledeepmind-25626432.jpg",
|
|
@@ -38,6 +38,8 @@ Then visit:
|
|
|
38
38
|
- `http://localhost:3000/templates/aiworkflow`
|
|
39
39
|
- `http://localhost:3000/templates/gallery`
|
|
40
40
|
|
|
41
|
+
The current **AI Workflow** template ships with an **AI coding agent** story, but you can adapt it for other AI workflow/product stories.
|
|
42
|
+
|
|
41
43
|
If those load and look styled, you’re in good shape.
|
|
42
44
|
|
|
43
45
|
---
|
|
@@ -57,6 +57,8 @@ Blocks supports these install shapes:
|
|
|
57
57
|
- `/templates/aiworkflow`
|
|
58
58
|
- `/templates/gallery`
|
|
59
59
|
|
|
60
|
+
The current **AI Workflow** template ships with an **AI coding agent** story, but the structure is intended to be reusable for other AI workflow/product stories too.
|
|
61
|
+
|
|
60
62
|
---
|
|
61
63
|
|
|
62
64
|
## Where templates live (App Router vs Pages Router)
|
|
@@ -1,58 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { cn } from "@/lib/utils";
|
|
3
|
-
|
|
4
|
-
type Props = React.PropsWithChildren<{ className?: string }>;
|
|
5
|
-
|
|
6
|
-
export function PresetThemeVars({ className, children }: Props) {
|
|
7
|
-
return (
|
|
8
|
-
<div
|
|
9
|
-
className={cn(
|
|
10
|
-
"[--btn-ring:theme(colors.cyan.500)] dark:[--btn-ring:theme(colors.cyan.400)]",
|
|
11
|
-
|
|
12
|
-
"[--input-bg:theme(colors.white)] dark:[--input-bg:theme(colors.slate.950)]",
|
|
13
|
-
"[--input-fg:theme(colors.slate.900)] dark:[--input-fg:theme(colors.slate.100)]",
|
|
14
|
-
"[--input-placeholder:theme(colors.slate.400)] dark:[--input-placeholder:theme(colors.slate.500)]",
|
|
15
|
-
"[--input-border:theme(colors.cyan.200)] dark:[--input-border:theme(colors.cyan.900)]",
|
|
16
|
-
"[--input-focus-ring:theme(colors.cyan.500)] dark:[--input-focus-ring:theme(colors.cyan.400)]",
|
|
17
|
-
"[--input-ring-offset:theme(colors.white)] dark:[--input-ring-offset:theme(colors.slate.950)]",
|
|
18
|
-
|
|
19
|
-
"[--card-bg:theme(colors.white)] dark:[--card-bg:theme(colors.slate.900)]",
|
|
20
|
-
"[--card-fg:theme(colors.slate.900)] dark:[--card-fg:theme(colors.slate.100)]",
|
|
21
|
-
"[--card-title-fg:theme(colors.slate.950)] dark:[--card-title-fg:theme(colors.white)]",
|
|
22
|
-
"[--card-muted-fg:theme(colors.slate.600)] dark:[--card-muted-fg:theme(colors.slate.300)]",
|
|
23
|
-
"[--card-border:theme(colors.slate.200)] dark:[--card-border:theme(colors.slate.800)]",
|
|
24
|
-
"[--card-shadow:0_10px_30px_rgba(8,15,30,0.08)]",
|
|
25
|
-
|
|
26
|
-
"[--badge-bg:theme(colors.cyan.50)] dark:[--badge-bg:theme(colors.cyan.950)]",
|
|
27
|
-
"[--badge-fg:theme(colors.cyan.700)] dark:[--badge-fg:theme(colors.cyan.200)]",
|
|
28
|
-
"[--badge-border:theme(colors.cyan.200)] dark:[--badge-border:theme(colors.cyan.800)]",
|
|
29
|
-
"[--badge-active-bg:theme(colors.cyan.500)] dark:[--badge-active-bg:theme(colors.cyan.500)]",
|
|
30
|
-
"[--badge-active-fg:theme(colors.slate.950)] dark:[--badge-active-fg:theme(colors.slate.950)]",
|
|
31
|
-
"[--badge-active-border:theme(colors.cyan.600)] dark:[--badge-active-border:theme(colors.cyan.400)]",
|
|
32
|
-
|
|
33
|
-
"[--heading-fg:theme(colors.slate.950)] dark:[--heading-fg:theme(colors.white)]",
|
|
34
|
-
"[--subheading-fg:theme(colors.slate.600)] dark:[--subheading-fg:theme(colors.slate.300)]",
|
|
35
|
-
"[--description-fg:theme(colors.slate.700)] dark:[--description-fg:theme(colors.slate.200)]",
|
|
36
|
-
|
|
37
|
-
"[--footer-bg:transparent] dark:[--footer-bg:transparent]",
|
|
38
|
-
"[--footer-fg:theme(colors.slate.800)] dark:[--footer-fg:theme(colors.slate.100)]",
|
|
39
|
-
"[--footer-heading-fg:theme(colors.slate.950)] dark:[--footer-heading-fg:theme(colors.white)]",
|
|
40
|
-
"[--footer-link-fg:theme(colors.slate.700)] dark:[--footer-link-fg:theme(colors.slate.300)]",
|
|
41
|
-
"[--footer-link-hover-fg:theme(colors.cyan.700)] dark:[--footer-link-hover-fg:theme(colors.cyan.300)]",
|
|
42
|
-
"[--footer-link-hover-bg:theme(colors.cyan.50)] dark:[--footer-link-hover-bg:color-mix(in_oklab,oklch(0.25_0.06_230)_24%,transparent)]",
|
|
43
|
-
"[--footer-muted-fg:theme(colors.slate.500)] dark:[--footer-muted-fg:theme(colors.slate.400)]",
|
|
44
|
-
"[--footer-border:theme(colors.slate.200)] dark:[--footer-border:theme(colors.slate.800)]",
|
|
45
|
-
|
|
46
|
-
"[--table-fg:inherit]",
|
|
47
|
-
"[--table-muted-fg:theme(colors.slate.500)] dark:[--table-muted-fg:theme(colors.slate.400)]",
|
|
48
|
-
"[--table-head-fg:theme(colors.slate.700)] dark:[--table-head-fg:theme(colors.slate.300)]",
|
|
49
|
-
"[--table-border:theme(colors.slate.200)] dark:[--table-border:theme(colors.slate.800)]",
|
|
50
|
-
"[--table-row-hover-bg:theme(colors.slate.50)] dark:[--table-row-hover-bg:theme(colors.slate.900)]",
|
|
51
|
-
|
|
52
|
-
className,
|
|
53
|
-
)}
|
|
54
|
-
>
|
|
55
|
-
{children}
|
|
56
|
-
</div>
|
|
57
|
-
);
|
|
58
|
-
}
|
|
1
|
+
export { PresetThemeVars } from "./themes/default";
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
This template is preset-first. It wraps the page with `PresetThemeVars` and composes the route from template-local wrappers around shared Nextworks sections.
|
|
4
4
|
|
|
5
|
+
The current shipped story is an **AI coding agent**, but the template structure is intended to be reusable for other AI workflow/product stories as more variants are added.
|
|
6
|
+
|
|
5
7
|
## Where it’s wired
|
|
6
8
|
|
|
7
9
|
Template paths depend on your router:
|
|
@@ -7,38 +7,38 @@ export function CTA() {
|
|
|
7
7
|
<SharedCTA
|
|
8
8
|
section={{
|
|
9
9
|
className:
|
|
10
|
-
"bg-[
|
|
10
|
+
"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)]",
|
|
11
11
|
}}
|
|
12
12
|
container={{
|
|
13
13
|
className:
|
|
14
14
|
"flex min-h-[22rem] w-full flex-col items-center justify-center px-6 py-16 text-center",
|
|
15
15
|
}}
|
|
16
16
|
headingText={{
|
|
17
|
-
text: "
|
|
17
|
+
text: "Ship code changes with an agent in the loop.",
|
|
18
18
|
className:
|
|
19
|
-
"font-outfit text-3xl font-semibold leading-tight text-
|
|
19
|
+
"font-outfit text-3xl font-semibold leading-tight text-[var(--cta-heading-fg)] md:text-4xl lg:text-5xl",
|
|
20
20
|
}}
|
|
21
21
|
subheadingText={{
|
|
22
|
-
text: "
|
|
22
|
+
text: "Move from issue to patch to preview without leaving one workspace.",
|
|
23
23
|
className:
|
|
24
|
-
"mx-auto mt-4 max-w-2xl font-inter text-base leading-7 text-
|
|
24
|
+
"mx-auto mt-4 max-w-2xl font-inter text-base leading-7 text-[var(--cta-subheading-fg)] md:text-lg",
|
|
25
25
|
}}
|
|
26
26
|
actionsWrapper={{ className: "mt-8 flex flex-col gap-3 sm:flex-row" }}
|
|
27
|
-
ctaButton={{ label: "Book a
|
|
27
|
+
ctaButton={{ label: "Book a coding demo", href: "#contact" }}
|
|
28
28
|
ctaButtonStyle={{
|
|
29
29
|
variant: "default",
|
|
30
30
|
size: "lg",
|
|
31
31
|
className:
|
|
32
|
-
"font-inter font-semibold [--btn-bg:
|
|
32
|
+
"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)]",
|
|
33
33
|
}}
|
|
34
34
|
secondaryButton={{ label: "Review pricing", href: "#pricing" }}
|
|
35
35
|
secondaryButtonStyle={{
|
|
36
36
|
variant: "outline",
|
|
37
37
|
size: "lg",
|
|
38
38
|
className:
|
|
39
|
-
"border [--btn-bg:
|
|
39
|
+
"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)]",
|
|
40
40
|
}}
|
|
41
|
-
ariaLabel="AI
|
|
41
|
+
ariaLabel="AI coding agent call to action"
|
|
42
42
|
/>
|
|
43
43
|
);
|
|
44
44
|
}
|
|
@@ -10,28 +10,28 @@ const contactFields: ContactField[] = [
|
|
|
10
10
|
{
|
|
11
11
|
id: "name",
|
|
12
12
|
label: "Full name",
|
|
13
|
-
placeholder: "
|
|
13
|
+
placeholder: "Avery Chen",
|
|
14
14
|
required: true,
|
|
15
15
|
type: "text",
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
id: "email",
|
|
19
19
|
label: "Work email",
|
|
20
|
-
placeholder: "
|
|
20
|
+
placeholder: "avery@company.com",
|
|
21
21
|
required: true,
|
|
22
22
|
type: "email",
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
id: "company",
|
|
26
26
|
label: "Company",
|
|
27
|
-
placeholder: "
|
|
27
|
+
placeholder: "Northstar Labs",
|
|
28
28
|
required: true,
|
|
29
29
|
type: "text",
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
id: "workflow",
|
|
33
33
|
label: "Workflow to automate",
|
|
34
|
-
placeholder: "
|
|
34
|
+
placeholder: "Bug fixes, refactors, releases, or repo cleanup…",
|
|
35
35
|
required: true,
|
|
36
36
|
type: "text",
|
|
37
37
|
},
|
|
@@ -39,7 +39,7 @@ const contactFields: ContactField[] = [
|
|
|
39
39
|
id: "message",
|
|
40
40
|
label: "What should the workflow coordinate?",
|
|
41
41
|
placeholder:
|
|
42
|
-
"Tell us which
|
|
42
|
+
"Tell us which files, checks, or handoffs are slowing the team down.",
|
|
43
43
|
required: true,
|
|
44
44
|
type: "textarea",
|
|
45
45
|
},
|
|
@@ -54,20 +54,19 @@ export function Contact() {
|
|
|
54
54
|
return (
|
|
55
55
|
<SharedContact
|
|
56
56
|
id="contact"
|
|
57
|
-
ariaLabel="AI
|
|
57
|
+
ariaLabel="AI coding agent contact section"
|
|
58
58
|
fields={contactFields}
|
|
59
|
-
contactHeaderText="Bring your messiest
|
|
60
|
-
contactSubHeaderText="We’ll map the
|
|
59
|
+
contactHeaderText="Bring your messiest codebase issue."
|
|
60
|
+
contactSubHeaderText="We’ll map the reads, edits, checks, and reviews the agent should handle first."
|
|
61
61
|
className="w-full"
|
|
62
62
|
section={{
|
|
63
|
-
className:
|
|
64
|
-
"bg-[linear-gradient(180deg,rgba(241,245,249,1)_0%,rgba(224,242,254,0.55)_100%)] px-6 py-16 dark:bg-[linear-gradient(180deg,rgba(2,6,23,1)_0%,rgba(8,47,73,0.45)_100%)]",
|
|
63
|
+
className: "bg-[var(--contact-section-bg)] px-6 py-16",
|
|
65
64
|
}}
|
|
66
65
|
container={{ className: "mx-auto max-w-4xl" }}
|
|
67
66
|
headerWrapper={{ className: "mb-8 text-center" }}
|
|
68
67
|
headerText={{
|
|
69
68
|
className:
|
|
70
|
-
"font-outfit text-3xl font-semibold text-[var(--heading-fg)] md:text-4xl",
|
|
69
|
+
"font-outfit text-3xl font-semibold !text-[var(--heading-fg)] md:text-4xl",
|
|
71
70
|
}}
|
|
72
71
|
subheaderText={{
|
|
73
72
|
className:
|
|
@@ -96,9 +95,9 @@ export function Contact() {
|
|
|
96
95
|
variant: "default",
|
|
97
96
|
size: "lg",
|
|
98
97
|
className:
|
|
99
|
-
"w-full font-inter font-semibold [--btn-bg:
|
|
98
|
+
"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)]",
|
|
100
99
|
}}
|
|
101
|
-
submitButtonText="
|
|
100
|
+
submitButtonText="Book an agent demo"
|
|
102
101
|
onSubmit={handleFormSubmit}
|
|
103
102
|
/>
|
|
104
103
|
);
|
|
@@ -8,56 +8,59 @@ export function FAQ() {
|
|
|
8
8
|
faqSectionHeaderText="Frequently asked questions"
|
|
9
9
|
faqData={[
|
|
10
10
|
{
|
|
11
|
-
question: "What kinds of
|
|
11
|
+
question: "What kinds of coding tasks can the agent handle?",
|
|
12
12
|
answer:
|
|
13
|
-
"Teams use FlowPilot AI for
|
|
13
|
+
"Teams use FlowPilot AI for bug fixes, refactors, routine maintenance, release prep, and other repeatable code changes.",
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
|
-
question: "How do approvals work?",
|
|
16
|
+
question: "How do reviews and approvals work?",
|
|
17
17
|
answer:
|
|
18
|
-
"You define
|
|
18
|
+
"You define the rules once. The agent keeps moving on low-risk work and pauses only when a review or approval is required.",
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
|
-
question: "Can
|
|
21
|
+
question: "Can the agent use our codebase and docs?",
|
|
22
22
|
answer:
|
|
23
|
-
"Yes.
|
|
23
|
+
"Yes. It can read repo files, docs, and internal notes so changes stay grounded in current project context.",
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
|
-
question: "Will we be able to audit every
|
|
26
|
+
question: "Will we be able to audit every change?",
|
|
27
27
|
answer:
|
|
28
|
-
"Yes. Each
|
|
28
|
+
"Yes. Each run records reads, edits, approvals, and output so teams can trace what changed and why.",
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
question: "Do we need engineering support to start?",
|
|
32
32
|
answer:
|
|
33
|
-
"Most teams start with
|
|
33
|
+
"Most teams start with a few high-signal tasks, then expand the agent into more of the codebase as confidence grows.",
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
36
|
question: "Which tools can it connect to?",
|
|
37
37
|
answer:
|
|
38
|
-
"The template story assumes common
|
|
38
|
+
"The template story assumes common tools like GitHub, docs, issue trackers, CI, and chat, with more connectors added as needed.",
|
|
39
39
|
},
|
|
40
40
|
]}
|
|
41
|
-
section={{
|
|
42
|
-
|
|
41
|
+
section={{
|
|
42
|
+
className:
|
|
43
|
+
"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%)]",
|
|
44
|
+
}}
|
|
45
|
+
container={{ className: "mx-auto max-w-6xl" }}
|
|
43
46
|
heading={{
|
|
44
47
|
className:
|
|
45
48
|
"mb-8 text-center font-outfit text-3xl font-semibold text-[var(--heading-fg)] md:text-4xl",
|
|
46
49
|
}}
|
|
47
50
|
grid={{ className: "grid grid-cols-1 gap-5 lg:grid-cols-2" }}
|
|
48
|
-
item={{ className: "
|
|
51
|
+
item={{ className: "w-full" }}
|
|
49
52
|
questionButton={{
|
|
50
53
|
className:
|
|
51
|
-
"flex cursor-pointer items-center justify-between rounded-xl border border-
|
|
54
|
+
"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)]",
|
|
52
55
|
}}
|
|
56
|
+
questionText={{ className: "font-inter text-base" }}
|
|
53
57
|
answer={{
|
|
54
58
|
className:
|
|
55
|
-
"overflow-hidden rounded-xl border border-[var(--card-border)] bg-[var(--
|
|
56
|
-
}}
|
|
57
|
-
answerText={{
|
|
58
|
-
className: "font-inter text-sm leading-7 text-[var(--card-fg)]",
|
|
59
|
+
"overflow-hidden rounded-xl border border-[var(--card-border)] bg-[var(--faq-answer-bg)] text-[var(--faq-answer-fg)] shadow-sm",
|
|
59
60
|
}}
|
|
60
|
-
|
|
61
|
+
answerText={{ className: "font-inter text-sm leading-7" }}
|
|
62
|
+
allowMultipleOpen={true}
|
|
63
|
+
ariaLabel="AI coding agent frequently asked questions"
|
|
61
64
|
/>
|
|
62
65
|
);
|
|
63
66
|
}
|