@nextworks/blocks-templates 0.2.0-alpha.12 → 0.2.0-alpha.14

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 (42) hide show
  1. package/README.md +3 -0
  2. package/dist/templates/aiworkflow/PresetThemeVars.d.ts +1 -6
  3. package/dist/templates/aiworkflow/PresetThemeVars.d.ts.map +1 -1
  4. package/dist/templates/aiworkflow/PresetThemeVars.jsx +1 -7
  5. package/dist/templates/aiworkflow/components/CTA.jsx +9 -9
  6. package/dist/templates/aiworkflow/components/Contact.d.ts.map +1 -1
  7. package/dist/templates/aiworkflow/components/Contact.jsx +10 -10
  8. package/dist/templates/aiworkflow/components/FAQ.d.ts.map +1 -1
  9. package/dist/templates/aiworkflow/components/FAQ.jsx +18 -18
  10. package/dist/templates/aiworkflow/components/FeatureMockups.d.ts +5 -0
  11. package/dist/templates/aiworkflow/components/FeatureMockups.d.ts.map +1 -0
  12. package/dist/templates/aiworkflow/components/FeatureMockups.jsx +442 -0
  13. package/dist/templates/aiworkflow/components/Features.d.ts.map +1 -1
  14. package/dist/templates/aiworkflow/components/Features.jsx +16 -14
  15. package/dist/templates/aiworkflow/components/Footer.d.ts.map +1 -1
  16. package/dist/templates/aiworkflow/components/Footer.jsx +13 -9
  17. package/dist/templates/aiworkflow/components/Hero.d.ts.map +1 -1
  18. package/dist/templates/aiworkflow/components/Hero.jsx +664 -416
  19. package/dist/templates/aiworkflow/components/Navbar.d.ts.map +1 -1
  20. package/dist/templates/aiworkflow/components/Navbar.jsx +13 -14
  21. package/dist/templates/aiworkflow/components/Pricing.d.ts.map +1 -1
  22. package/dist/templates/aiworkflow/components/Pricing.jsx +25 -21
  23. package/dist/templates/aiworkflow/components/ProcessTimeline.d.ts.map +1 -1
  24. package/dist/templates/aiworkflow/components/ProcessTimeline.jsx +15 -15
  25. package/dist/templates/aiworkflow/components/Testimonials.d.ts.map +1 -1
  26. package/dist/templates/aiworkflow/components/Testimonials.jsx +14 -10
  27. package/dist/templates/aiworkflow/components/TrustBadges.d.ts.map +1 -1
  28. package/dist/templates/aiworkflow/components/TrustBadges.jsx +14 -12
  29. package/dist/templates/aiworkflow/themes/animation.d.ts +7 -0
  30. package/dist/templates/aiworkflow/themes/animation.d.ts.map +1 -0
  31. package/dist/templates/aiworkflow/themes/animation.jsx +9 -0
  32. package/dist/templates/aiworkflow/themes/default.d.ts +7 -0
  33. package/dist/templates/aiworkflow/themes/default.d.ts.map +1 -0
  34. package/dist/templates/aiworkflow/themes/default.jsx +9 -0
  35. package/dist/templates/aiworkflow/themes/test.d.ts +7 -0
  36. package/dist/templates/aiworkflow/themes/test.d.ts.map +1 -0
  37. package/dist/templates/aiworkflow/themes/test.jsx +39 -0
  38. package/dist/templates/gallery/PresetThemeVars.d.ts.map +1 -1
  39. package/dist/templates/gallery/PresetThemeVars.jsx +2 -0
  40. package/dist/templates/gallery/page.d.ts.map +1 -1
  41. package/dist/templates/gallery/page.jsx +381 -34
  42. package/package.json +3 -3
package/README.md CHANGED
@@ -7,8 +7,11 @@ Included templates (subject to change):
7
7
  - Product launch
8
8
  - SaaS dashboard
9
9
  - Digital agency
10
+ - AI workflow
10
11
  - Gallery
11
12
 
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
+
12
15
  ## Recommended: install via the nextworks CLI
13
16
 
14
17
  Most developers should install Blocks via the **nextworks** CLI (copy-in / shadcn-style) rather than consuming this package directly.
@@ -1,7 +1,2 @@
1
- import React from "react";
2
- type Props = React.PropsWithChildren<{
3
- className?: string;
4
- }>;
5
- export declare function PresetThemeVars({ className, children }: Props): React.JSX.Element;
6
- export {};
1
+ export { PresetThemeVars } from "./themes/default";
7
2
  //# sourceMappingURL=PresetThemeVars.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PresetThemeVars.d.ts","sourceRoot":"","sources":["../../../src/templates/aiworkflow/PresetThemeVars.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,KAAK,KAAK,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE7D,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,qBAoD7D"}
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,9 +1,3 @@
1
1
  // AUTO-GENERATED from cli/kits/blocks by scripts/sync-kit-to-packages.mjs
2
2
  // Do not edit this file directly. Edit the kit source instead.
3
- import React from "react";
4
- import { cn } from "@nextworks/blocks-core";
5
- export function PresetThemeVars({ className, children }) {
6
- return (<div className={cn("[--btn-ring:theme(colors.cyan.500)] dark:[--btn-ring:theme(colors.cyan.400)]", "[--input-bg:theme(colors.white)] dark:[--input-bg:theme(colors.slate.950)]", "[--input-fg:theme(colors.slate.900)] dark:[--input-fg:theme(colors.slate.100)]", "[--input-placeholder:theme(colors.slate.400)] dark:[--input-placeholder:theme(colors.slate.500)]", "[--input-border:theme(colors.cyan.200)] dark:[--input-border:theme(colors.cyan.900)]", "[--input-focus-ring:theme(colors.cyan.500)] dark:[--input-focus-ring:theme(colors.cyan.400)]", "[--input-ring-offset:theme(colors.white)] dark:[--input-ring-offset:theme(colors.slate.950)]", "[--card-bg:theme(colors.white)] dark:[--card-bg:theme(colors.slate.900)]", "[--card-fg:theme(colors.slate.900)] dark:[--card-fg:theme(colors.slate.100)]", "[--card-title-fg:theme(colors.slate.950)] dark:[--card-title-fg:theme(colors.white)]", "[--card-muted-fg:theme(colors.slate.600)] dark:[--card-muted-fg:theme(colors.slate.300)]", "[--card-border:theme(colors.slate.200)] dark:[--card-border:theme(colors.slate.800)]", "[--card-shadow:0_10px_30px_rgba(8,15,30,0.08)]", "[--badge-bg:theme(colors.cyan.50)] dark:[--badge-bg:theme(colors.cyan.950)]", "[--badge-fg:theme(colors.cyan.700)] dark:[--badge-fg:theme(colors.cyan.200)]", "[--badge-border:theme(colors.cyan.200)] dark:[--badge-border:theme(colors.cyan.800)]", "[--badge-active-bg:theme(colors.cyan.500)] dark:[--badge-active-bg:theme(colors.cyan.500)]", "[--badge-active-fg:theme(colors.slate.950)] dark:[--badge-active-fg:theme(colors.slate.950)]", "[--badge-active-border:theme(colors.cyan.600)] dark:[--badge-active-border:theme(colors.cyan.400)]", "[--heading-fg:theme(colors.slate.950)] dark:[--heading-fg:theme(colors.white)]", "[--subheading-fg:theme(colors.slate.600)] dark:[--subheading-fg:theme(colors.slate.300)]", "[--description-fg:theme(colors.slate.700)] dark:[--description-fg:theme(colors.slate.200)]", "[--footer-bg:transparent] dark:[--footer-bg:transparent]", "[--footer-fg:theme(colors.slate.800)] dark:[--footer-fg:theme(colors.slate.100)]", "[--footer-heading-fg:theme(colors.slate.950)] dark:[--footer-heading-fg:theme(colors.white)]", "[--footer-link-fg:theme(colors.slate.700)] dark:[--footer-link-fg:theme(colors.slate.300)]", "[--footer-link-hover-fg:theme(colors.cyan.700)] dark:[--footer-link-hover-fg:theme(colors.cyan.300)]", "[--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)]", "[--footer-muted-fg:theme(colors.slate.500)] dark:[--footer-muted-fg:theme(colors.slate.400)]", "[--footer-border:theme(colors.slate.200)] dark:[--footer-border:theme(colors.slate.800)]", "[--table-fg:inherit]", "[--table-muted-fg:theme(colors.slate.500)] dark:[--table-muted-fg:theme(colors.slate.400)]", "[--table-head-fg:theme(colors.slate.700)] dark:[--table-head-fg:theme(colors.slate.300)]", "[--table-border:theme(colors.slate.200)] dark:[--table-border:theme(colors.slate.800)]", "[--table-row-hover-bg:theme(colors.slate.50)] dark:[--table-row-hover-bg:theme(colors.slate.900)]", className)}>
7
- {children}
8
- </div>);
9
- }
3
+ export { PresetThemeVars } from "./themes/default";
@@ -4,22 +4,22 @@
4
4
  import { CTA as SharedCTA } from "@nextworks/blocks-sections";
5
5
  export function CTA() {
6
6
  return (<SharedCTA section={{
7
- className: "bg-[linear-gradient(135deg,theme(colors.slate.950)_0%,theme(colors.cyan.950)_55%,theme(colors.violet.950)_100%)] [--heading-fg:white] [--subheading-fg:rgba(255,255,255,0.82)] [--description-fg:rgba(255,255,255,0.78)]",
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
8
  }} container={{
9
9
  className: "flex min-h-[22rem] w-full flex-col items-center justify-center px-6 py-16 text-center",
10
10
  }} headingText={{
11
- text: "Automate the work between your tools, teams, and approvals.",
12
- className: "font-outfit text-3xl font-semibold leading-tight text-white md:text-4xl lg:text-5xl",
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
13
  }} subheadingText={{
14
- text: "See how an AI workflow automation layer can turn requests into governed execution without losing visibility.",
15
- className: "mx-auto mt-4 max-w-2xl font-inter text-base leading-7 text-white/80 md:text-lg",
16
- }} actionsWrapper={{ className: "mt-8 flex flex-col gap-3 sm:flex-row" }} ctaButton={{ label: "Book a workflow demo", href: "#contact" }} ctaButtonStyle={{
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
17
  variant: "default",
18
18
  size: "lg",
19
- className: "font-inter font-semibold [--btn-bg:theme(colors.cyan.400)] [--btn-fg:theme(colors.slate.950)] [--btn-border:transparent] hover:[--btn-hover-bg:theme(colors.cyan.300)] hover:[--btn-hover-fg:theme(colors.slate.950)]",
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
20
  }} secondaryButton={{ label: "Review pricing", href: "#pricing" }} secondaryButtonStyle={{
21
21
  variant: "outline",
22
22
  size: "lg",
23
- className: "border [--btn-bg:transparent] [--btn-fg:white] [--btn-border:rgba(255,255,255,0.55)] hover:[--btn-hover-bg:rgba(255,255,255,0.08)] hover:[--btn-hover-fg:white]",
24
- }} ariaLabel="AI workflow call to action"/>);
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
25
  }
@@ -1 +1 @@
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,sBAyDtB"}
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"}
@@ -7,35 +7,35 @@ const contactFields = [
7
7
  {
8
8
  id: "name",
9
9
  label: "Full name",
10
- placeholder: "Jordan Lee",
10
+ placeholder: "Avery Chen",
11
11
  required: true,
12
12
  type: "text",
13
13
  },
14
14
  {
15
15
  id: "email",
16
16
  label: "Work email",
17
- placeholder: "jordan@company.com",
17
+ placeholder: "avery@company.com",
18
18
  required: true,
19
19
  type: "email",
20
20
  },
21
21
  {
22
22
  id: "company",
23
23
  label: "Company",
24
- placeholder: "Acme Inc.",
24
+ placeholder: "Northstar Labs",
25
25
  required: true,
26
26
  type: "text",
27
27
  },
28
28
  {
29
29
  id: "workflow",
30
30
  label: "Workflow to automate",
31
- placeholder: "Approvals, onboarding, launches, support escalations…",
31
+ placeholder: "Bug fixes, refactors, releases, or repo cleanup…",
32
32
  required: true,
33
33
  type: "text",
34
34
  },
35
35
  {
36
36
  id: "message",
37
37
  label: "What should the workflow coordinate?",
38
- placeholder: "Tell us which systems, approvals, or handoffs are slowing the team down.",
38
+ placeholder: "Tell us which files, checks, or handoffs are slowing the team down.",
39
39
  required: true,
40
40
  type: "textarea",
41
41
  },
@@ -45,10 +45,10 @@ export function Contact() {
45
45
  e.preventDefault();
46
46
  const data = Object.fromEntries(new FormData(e.currentTarget).entries());
47
47
  };
48
- return (<SharedContact id="contact" ariaLabel="AI workflow contact section" fields={contactFields} contactHeaderText="Bring your messiest workflow." contactSubHeaderText="We’ll map the approvals, systems, and execution steps that AI can automate first." className="w-full" section={{
49
- className: "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%)]",
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
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",
51
+ className: "font-outfit text-3xl font-semibold !text-[var(--heading-fg)] md:text-4xl",
52
52
  }} subheaderText={{
53
53
  className: "mx-auto mt-3 max-w-2xl font-inter text-base leading-7 text-[var(--subheading-fg)]",
54
54
  }} form={{
@@ -62,6 +62,6 @@ export function Contact() {
62
62
  }} submitButtonWrapper={{ className: "pt-2" }} submitButtonStyle={{
63
63
  variant: "default",
64
64
  size: "lg",
65
- className: "w-full font-inter font-semibold [--btn-bg:theme(colors.cyan.500)] [--btn-fg:theme(colors.slate.950)] [--btn-border:transparent] hover:[--btn-hover-bg:theme(colors.cyan.400)] hover:[--btn-hover-fg:theme(colors.slate.950)]",
66
- }} submitButtonText="Request a demo" onSubmit={handleFormSubmit}/>);
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
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FAQ.d.ts","sourceRoot":"","sources":["../../../../src/templates/aiworkflow/components/FAQ.tsx"],"names":[],"mappings":"AAOA,wBAAgB,GAAG,gCA0DlB"}
1
+ {"version":3,"file":"FAQ.d.ts","sourceRoot":"","sources":["../../../../src/templates/aiworkflow/components/FAQ.tsx"],"names":[],"mappings":"AAOA,wBAAgB,GAAG,gCA6DlB"}
@@ -5,36 +5,36 @@ import { FAQ as SharedFAQ } from "@nextworks/blocks-sections";
5
5
  export function FAQ() {
6
6
  return (<SharedFAQ faqSectionHeaderText="Frequently asked questions" faqData={[
7
7
  {
8
- question: "What kinds of workflows can I automate?",
9
- answer: "Teams use FlowPilot AI for intake routing, approvals, CRM and ticket updates, launch coordination, support escalations, and other repeatable cross-tool processes.",
8
+ question: "What kinds of coding tasks can the agent handle?",
9
+ answer: "Teams use FlowPilot AI for bug fixes, refactors, routine maintenance, release prep, and other repeatable code changes.",
10
10
  },
11
11
  {
12
- question: "How do approvals work?",
13
- answer: "You define thresholds and policy rules once. The workflow requests human approval only when conditions match, while lower-risk steps continue automatically.",
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
14
  },
15
15
  {
16
- question: "Can AI use our internal documentation and policies?",
17
- answer: "Yes. The knowledge layer can reference playbooks, policies, runbooks, and other connected sources so actions stay grounded in current context.",
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
18
  },
19
19
  {
20
- question: "Will we be able to audit every action?",
21
- answer: "Yes. Each workflow run records decisions, approvals, tool updates, and execution logs so teams can trace what happened and why.",
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
22
  },
23
23
  {
24
24
  question: "Do we need engineering support to start?",
25
- answer: "Most teams start with business-owned workflows using existing integrations and preset patterns. Engineering can extend the system later when needed.",
25
+ answer: "Most teams start with a few high-signal tasks, then expand the agent into more of the codebase as confidence grows.",
26
26
  },
27
27
  {
28
28
  question: "Which tools can it connect to?",
29
- answer: "The template story assumes common systems such as Slack, CRM platforms, ticketing tools, docs, and project trackers, with more connectors added as needed.",
29
+ answer: "The template story assumes common tools like GitHub, docs, issue trackers, CI, and chat, with more connectors added as needed.",
30
30
  },
31
- ]} section={{ className: "bg-background px-5 py-16" }} container={{ className: "max-w-6xl mx-auto" }} heading={{
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={{
32
34
  className: "mb-8 text-center font-outfit text-3xl font-semibold text-[var(--heading-fg)] md:text-4xl",
33
- }} grid={{ className: "grid grid-cols-1 gap-5 lg:grid-cols-2" }} item={{ className: "mb-0 w-full" }} questionButton={{
34
- className: "flex cursor-pointer items-center justify-between rounded-xl border border-slate-200 bg-white p-5 font-inter font-semibold text-slate-900 shadow-sm transition-all duration-200 hover:-translate-y-0.5 hover:border-cyan-300 hover:bg-cyan-50 dark:border-slate-800 dark:bg-slate-900 dark:text-white dark:hover:border-cyan-700 dark:hover:bg-cyan-950/40",
35
- }} answer={{
36
- className: "overflow-hidden rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] text-[var(--card-fg)] shadow-sm",
37
- }} answerText={{
38
- className: "font-inter text-sm leading-7 text-[var(--card-fg)]",
39
- }} ariaLabel="AI workflow frequently asked questions"/>);
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
40
  }
@@ -0,0 +1,5 @@
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
@@ -0,0 +1 @@
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"}