snowbase-templates-installer 1.0.1

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 (181) hide show
  1. package/README.md +70 -0
  2. package/bin/cli.js +140 -0
  3. package/landing-pages/ai-saas-template/.orchids/orchids.json +8 -0
  4. package/landing-pages/ai-saas-template/README.md +36 -0
  5. package/landing-pages/ai-saas-template/bun.lock +2062 -0
  6. package/landing-pages/ai-saas-template/components.json +22 -0
  7. package/landing-pages/ai-saas-template/eslint.config.mjs +33 -0
  8. package/landing-pages/ai-saas-template/next.config.ts +24 -0
  9. package/landing-pages/ai-saas-template/package-lock.json +11708 -0
  10. package/landing-pages/ai-saas-template/package.json +114 -0
  11. package/landing-pages/ai-saas-template/postcss.config.mjs +7 -0
  12. package/landing-pages/ai-saas-template/public/file.svg +1 -0
  13. package/landing-pages/ai-saas-template/public/globe.svg +1 -0
  14. package/landing-pages/ai-saas-template/public/next.svg +1 -0
  15. package/landing-pages/ai-saas-template/public/vercel.svg +1 -0
  16. package/landing-pages/ai-saas-template/public/window.svg +1 -0
  17. package/landing-pages/ai-saas-template/src/app/favicon.ico +0 -0
  18. package/landing-pages/ai-saas-template/src/app/global-error.tsx +5 -0
  19. package/landing-pages/ai-saas-template/src/app/globals.css +172 -0
  20. package/landing-pages/ai-saas-template/src/app/layout.tsx +42 -0
  21. package/landing-pages/ai-saas-template/src/app/page.tsx +23 -0
  22. package/landing-pages/ai-saas-template/src/components/ErrorReporter.tsx +136 -0
  23. package/landing-pages/ai-saas-template/src/components/sections/cta.tsx +62 -0
  24. package/landing-pages/ai-saas-template/src/components/sections/features-grid.tsx +205 -0
  25. package/landing-pages/ai-saas-template/src/components/sections/footer.tsx +111 -0
  26. package/landing-pages/ai-saas-template/src/components/sections/hero.tsx +92 -0
  27. package/landing-pages/ai-saas-template/src/components/sections/logos.tsx +69 -0
  28. package/landing-pages/ai-saas-template/src/components/sections/navbar.tsx +83 -0
  29. package/landing-pages/ai-saas-template/src/components/sections/testimonials-header.tsx +41 -0
  30. package/landing-pages/ai-saas-template/src/components/sections/value-props.tsx +97 -0
  31. package/landing-pages/ai-saas-template/src/components/ui/accordion.tsx +66 -0
  32. package/landing-pages/ai-saas-template/src/components/ui/alert-dialog.tsx +157 -0
  33. package/landing-pages/ai-saas-template/src/components/ui/alert.tsx +66 -0
  34. package/landing-pages/ai-saas-template/src/components/ui/aspect-ratio.tsx +11 -0
  35. package/landing-pages/ai-saas-template/src/components/ui/avatar.tsx +53 -0
  36. package/landing-pages/ai-saas-template/src/components/ui/badge.tsx +46 -0
  37. package/landing-pages/ai-saas-template/src/components/ui/breadcrumb.tsx +109 -0
  38. package/landing-pages/ai-saas-template/src/components/ui/button-group.tsx +83 -0
  39. package/landing-pages/ai-saas-template/src/components/ui/button.tsx +59 -0
  40. package/landing-pages/ai-saas-template/src/components/ui/calendar.tsx +213 -0
  41. package/landing-pages/ai-saas-template/src/components/ui/card.tsx +92 -0
  42. package/landing-pages/ai-saas-template/src/components/ui/carousel.tsx +241 -0
  43. package/landing-pages/ai-saas-template/src/components/ui/chart.tsx +353 -0
  44. package/landing-pages/ai-saas-template/src/components/ui/checkbox.tsx +32 -0
  45. package/landing-pages/ai-saas-template/src/components/ui/collapsible.tsx +33 -0
  46. package/landing-pages/ai-saas-template/src/components/ui/command.tsx +184 -0
  47. package/landing-pages/ai-saas-template/src/components/ui/context-menu.tsx +252 -0
  48. package/landing-pages/ai-saas-template/src/components/ui/dialog.tsx +143 -0
  49. package/landing-pages/ai-saas-template/src/components/ui/drawer.tsx +135 -0
  50. package/landing-pages/ai-saas-template/src/components/ui/dropdown-menu.tsx +257 -0
  51. package/landing-pages/ai-saas-template/src/components/ui/empty.tsx +104 -0
  52. package/landing-pages/ai-saas-template/src/components/ui/field.tsx +248 -0
  53. package/landing-pages/ai-saas-template/src/components/ui/form.tsx +167 -0
  54. package/landing-pages/ai-saas-template/src/components/ui/hover-card.tsx +44 -0
  55. package/landing-pages/ai-saas-template/src/components/ui/input-group.tsx +170 -0
  56. package/landing-pages/ai-saas-template/src/components/ui/input-otp.tsx +77 -0
  57. package/landing-pages/ai-saas-template/src/components/ui/input.tsx +21 -0
  58. package/landing-pages/ai-saas-template/src/components/ui/item.tsx +193 -0
  59. package/landing-pages/ai-saas-template/src/components/ui/kbd.tsx +28 -0
  60. package/landing-pages/ai-saas-template/src/components/ui/label.tsx +24 -0
  61. package/landing-pages/ai-saas-template/src/components/ui/menubar.tsx +276 -0
  62. package/landing-pages/ai-saas-template/src/components/ui/navigation-menu.tsx +168 -0
  63. package/landing-pages/ai-saas-template/src/components/ui/pagination.tsx +127 -0
  64. package/landing-pages/ai-saas-template/src/components/ui/popover.tsx +48 -0
  65. package/landing-pages/ai-saas-template/src/components/ui/progress.tsx +31 -0
  66. package/landing-pages/ai-saas-template/src/components/ui/radio-group.tsx +45 -0
  67. package/landing-pages/ai-saas-template/src/components/ui/resizable.tsx +56 -0
  68. package/landing-pages/ai-saas-template/src/components/ui/scroll-area.tsx +58 -0
  69. package/landing-pages/ai-saas-template/src/components/ui/select.tsx +185 -0
  70. package/landing-pages/ai-saas-template/src/components/ui/separator.tsx +28 -0
  71. package/landing-pages/ai-saas-template/src/components/ui/sheet.tsx +139 -0
  72. package/landing-pages/ai-saas-template/src/components/ui/sidebar.tsx +726 -0
  73. package/landing-pages/ai-saas-template/src/components/ui/skeleton.tsx +13 -0
  74. package/landing-pages/ai-saas-template/src/components/ui/slider.tsx +63 -0
  75. package/landing-pages/ai-saas-template/src/components/ui/sonner.tsx +25 -0
  76. package/landing-pages/ai-saas-template/src/components/ui/spinner.tsx +16 -0
  77. package/landing-pages/ai-saas-template/src/components/ui/switch.tsx +31 -0
  78. package/landing-pages/ai-saas-template/src/components/ui/table.tsx +116 -0
  79. package/landing-pages/ai-saas-template/src/components/ui/tabs.tsx +66 -0
  80. package/landing-pages/ai-saas-template/src/components/ui/textarea.tsx +18 -0
  81. package/landing-pages/ai-saas-template/src/components/ui/toggle-group.tsx +73 -0
  82. package/landing-pages/ai-saas-template/src/components/ui/toggle.tsx +47 -0
  83. package/landing-pages/ai-saas-template/src/components/ui/tooltip.tsx +61 -0
  84. package/landing-pages/ai-saas-template/src/hooks/use-mobile.ts +19 -0
  85. package/landing-pages/ai-saas-template/src/lib/hooks/use-mobile.tsx +21 -0
  86. package/landing-pages/ai-saas-template/src/lib/utils.ts +6 -0
  87. package/landing-pages/ai-saas-template/src/visual-edits/VisualEditsMessenger.tsx +2159 -0
  88. package/landing-pages/ai-saas-template/src/visual-edits/component-tagger-loader.js +460 -0
  89. package/landing-pages/ai-saas-template/tsconfig.json +42 -0
  90. package/landing-pages/open-engineer-template/.orchids/orchids.json +8 -0
  91. package/landing-pages/open-engineer-template/README.md +36 -0
  92. package/landing-pages/open-engineer-template/bun.lock +2062 -0
  93. package/landing-pages/open-engineer-template/components.json +22 -0
  94. package/landing-pages/open-engineer-template/eslint.config.mjs +33 -0
  95. package/landing-pages/open-engineer-template/next.config.ts +24 -0
  96. package/landing-pages/open-engineer-template/package-lock.json +13669 -0
  97. package/landing-pages/open-engineer-template/package.json +114 -0
  98. package/landing-pages/open-engineer-template/postcss.config.mjs +7 -0
  99. package/landing-pages/open-engineer-template/public/file.svg +1 -0
  100. package/landing-pages/open-engineer-template/public/globe.svg +1 -0
  101. package/landing-pages/open-engineer-template/public/next.svg +1 -0
  102. package/landing-pages/open-engineer-template/public/vercel.svg +1 -0
  103. package/landing-pages/open-engineer-template/public/window.svg +1 -0
  104. package/landing-pages/open-engineer-template/src/app/favicon.ico +0 -0
  105. package/landing-pages/open-engineer-template/src/app/global-error.tsx +5 -0
  106. package/landing-pages/open-engineer-template/src/app/globals.css +189 -0
  107. package/landing-pages/open-engineer-template/src/app/layout.tsx +42 -0
  108. package/landing-pages/open-engineer-template/src/app/page.tsx +31 -0
  109. package/landing-pages/open-engineer-template/src/components/ErrorReporter.tsx +136 -0
  110. package/landing-pages/open-engineer-template/src/components/sections/cta-stats.tsx +71 -0
  111. package/landing-pages/open-engineer-template/src/components/sections/faq.tsx +188 -0
  112. package/landing-pages/open-engineer-template/src/components/sections/features-grid.tsx +193 -0
  113. package/landing-pages/open-engineer-template/src/components/sections/footer.tsx +137 -0
  114. package/landing-pages/open-engineer-template/src/components/sections/header.tsx +105 -0
  115. package/landing-pages/open-engineer-template/src/components/sections/hero.tsx +118 -0
  116. package/landing-pages/open-engineer-template/src/components/sections/how-it-works.tsx +123 -0
  117. package/landing-pages/open-engineer-template/src/components/sections/pricing.tsx +168 -0
  118. package/landing-pages/open-engineer-template/src/components/sections/testimonials-logos.tsx +88 -0
  119. package/landing-pages/open-engineer-template/src/components/sections/use-cases.tsx +141 -0
  120. package/landing-pages/open-engineer-template/src/components/sections/workflow-tabs.tsx +792 -0
  121. package/landing-pages/open-engineer-template/src/components/ui/accordion.tsx +66 -0
  122. package/landing-pages/open-engineer-template/src/components/ui/alert-dialog.tsx +157 -0
  123. package/landing-pages/open-engineer-template/src/components/ui/alert.tsx +66 -0
  124. package/landing-pages/open-engineer-template/src/components/ui/aspect-ratio.tsx +11 -0
  125. package/landing-pages/open-engineer-template/src/components/ui/avatar.tsx +53 -0
  126. package/landing-pages/open-engineer-template/src/components/ui/badge.tsx +46 -0
  127. package/landing-pages/open-engineer-template/src/components/ui/breadcrumb.tsx +109 -0
  128. package/landing-pages/open-engineer-template/src/components/ui/button-group.tsx +83 -0
  129. package/landing-pages/open-engineer-template/src/components/ui/button.tsx +59 -0
  130. package/landing-pages/open-engineer-template/src/components/ui/calendar.tsx +213 -0
  131. package/landing-pages/open-engineer-template/src/components/ui/card.tsx +92 -0
  132. package/landing-pages/open-engineer-template/src/components/ui/carousel.tsx +241 -0
  133. package/landing-pages/open-engineer-template/src/components/ui/chart.tsx +353 -0
  134. package/landing-pages/open-engineer-template/src/components/ui/checkbox.tsx +32 -0
  135. package/landing-pages/open-engineer-template/src/components/ui/collapsible.tsx +33 -0
  136. package/landing-pages/open-engineer-template/src/components/ui/command.tsx +184 -0
  137. package/landing-pages/open-engineer-template/src/components/ui/context-menu.tsx +252 -0
  138. package/landing-pages/open-engineer-template/src/components/ui/dialog.tsx +143 -0
  139. package/landing-pages/open-engineer-template/src/components/ui/drawer.tsx +135 -0
  140. package/landing-pages/open-engineer-template/src/components/ui/dropdown-menu.tsx +257 -0
  141. package/landing-pages/open-engineer-template/src/components/ui/empty.tsx +104 -0
  142. package/landing-pages/open-engineer-template/src/components/ui/field.tsx +248 -0
  143. package/landing-pages/open-engineer-template/src/components/ui/form.tsx +167 -0
  144. package/landing-pages/open-engineer-template/src/components/ui/hover-card.tsx +44 -0
  145. package/landing-pages/open-engineer-template/src/components/ui/input-group.tsx +170 -0
  146. package/landing-pages/open-engineer-template/src/components/ui/input-otp.tsx +77 -0
  147. package/landing-pages/open-engineer-template/src/components/ui/input.tsx +21 -0
  148. package/landing-pages/open-engineer-template/src/components/ui/item.tsx +193 -0
  149. package/landing-pages/open-engineer-template/src/components/ui/kbd.tsx +28 -0
  150. package/landing-pages/open-engineer-template/src/components/ui/label.tsx +24 -0
  151. package/landing-pages/open-engineer-template/src/components/ui/menubar.tsx +276 -0
  152. package/landing-pages/open-engineer-template/src/components/ui/navigation-menu.tsx +168 -0
  153. package/landing-pages/open-engineer-template/src/components/ui/pagination.tsx +127 -0
  154. package/landing-pages/open-engineer-template/src/components/ui/popover.tsx +48 -0
  155. package/landing-pages/open-engineer-template/src/components/ui/progress.tsx +31 -0
  156. package/landing-pages/open-engineer-template/src/components/ui/radio-group.tsx +45 -0
  157. package/landing-pages/open-engineer-template/src/components/ui/resizable.tsx +56 -0
  158. package/landing-pages/open-engineer-template/src/components/ui/scroll-area.tsx +58 -0
  159. package/landing-pages/open-engineer-template/src/components/ui/select.tsx +185 -0
  160. package/landing-pages/open-engineer-template/src/components/ui/separator.tsx +28 -0
  161. package/landing-pages/open-engineer-template/src/components/ui/sheet.tsx +139 -0
  162. package/landing-pages/open-engineer-template/src/components/ui/sidebar.tsx +726 -0
  163. package/landing-pages/open-engineer-template/src/components/ui/skeleton.tsx +13 -0
  164. package/landing-pages/open-engineer-template/src/components/ui/slider.tsx +63 -0
  165. package/landing-pages/open-engineer-template/src/components/ui/sonner.tsx +25 -0
  166. package/landing-pages/open-engineer-template/src/components/ui/spinner.tsx +16 -0
  167. package/landing-pages/open-engineer-template/src/components/ui/switch.tsx +31 -0
  168. package/landing-pages/open-engineer-template/src/components/ui/table.tsx +116 -0
  169. package/landing-pages/open-engineer-template/src/components/ui/tabs.tsx +66 -0
  170. package/landing-pages/open-engineer-template/src/components/ui/textarea.tsx +18 -0
  171. package/landing-pages/open-engineer-template/src/components/ui/toggle-group.tsx +73 -0
  172. package/landing-pages/open-engineer-template/src/components/ui/toggle.tsx +47 -0
  173. package/landing-pages/open-engineer-template/src/components/ui/tooltip.tsx +61 -0
  174. package/landing-pages/open-engineer-template/src/hooks/use-mobile.ts +19 -0
  175. package/landing-pages/open-engineer-template/src/lib/hooks/use-mobile.tsx +21 -0
  176. package/landing-pages/open-engineer-template/src/lib/utils.ts +6 -0
  177. package/landing-pages/open-engineer-template/src/visual-edits/VisualEditsMessenger.tsx +2159 -0
  178. package/landing-pages/open-engineer-template/src/visual-edits/component-tagger-loader.js +460 -0
  179. package/landing-pages/open-engineer-template/tsconfig.json +42 -0
  180. package/package.json +36 -0
  181. package/templates.json +22 -0
@@ -0,0 +1,792 @@
1
+ "use client";
2
+
3
+ import React, { useState } from "react";
4
+ import Image from "next/image";
5
+ import {
6
+ TrendingUp,
7
+ Users,
8
+ Calendar,
9
+ RefreshCcw,
10
+ FileText,
11
+ PenTool,
12
+ MoreVertical,
13
+ Play,
14
+ ArrowRight,
15
+ Database,
16
+ Building2,
17
+ Linkedin
18
+ } from "lucide-react";
19
+ import { cn } from "@/lib/utils";
20
+
21
+ const tabs = [
22
+ { id: "lead-qualifier", label: "Lead Qualifier", icon: TrendingUp },
23
+ { id: "meeting-prep", label: "Meeting Prep", icon: Users },
24
+ { id: "follow-ups", label: "Follow-ups", icon: Calendar },
25
+ { id: "data-sync", label: "Data Sync", icon: RefreshCcw },
26
+ { id: "reporting", label: "Reporting", icon: FileText },
27
+ { id: "content-drafting", label: "Content Drafting", icon: PenTool },
28
+ ];
29
+
30
+ export default function WorkflowTabs() {
31
+ const [activeTab, setActiveTab] = useState("lead-qualifier");
32
+
33
+ return (
34
+ <section className="w-full bg-background">
35
+ <div className="border-b border-border px-4 sm:px-6 lg:px-8">
36
+ <div className="mx-auto max-w-7xl border-x border-border">
37
+ {/* Tabs Navigation */}
38
+ <div className="flex w-full overflow-x-auto no-scrollbar border-b border-border">
39
+ {tabs.map((tab) => {
40
+ const Icon = tab.icon;
41
+ const isActive = activeTab === tab.id;
42
+ return (
43
+ <button
44
+ key={tab.id}
45
+ onClick={() => setActiveTab(tab.id)}
46
+ className={cn(
47
+ "flex flex-1 items-center justify-center gap-2 px-4 py-5 text-sm font-medium transition-all duration-200 min-w-[160px] border-r border-border last:border-r-0 relative group",
48
+ isActive
49
+ ? "bg-muted text-foreground"
50
+ : "text-muted-foreground hover:bg-muted/50 hover:text-foreground"
51
+ )}
52
+ >
53
+ <Icon className={cn("size-4", isActive ? "text-foreground" : "text-muted-foreground")} />
54
+ {tab.label}
55
+ {isActive && (
56
+ <div className="absolute top-0 left-0 right-0 h-[2px] bg-foreground" />
57
+ )}
58
+ </button>
59
+ );
60
+ })}
61
+ </div>
62
+
63
+ {/* Workflow Content Area */}
64
+ <div className="relative min-h-[600px] w-full p-8 md:p-16 overflow-hidden dot-grid">
65
+ <div className="absolute inset-0 bg-gradient-to-b from-transparent to-background/50 pointer-events-none" />
66
+
67
+ <div className="relative mx-auto max-w-5xl">
68
+ {/* Lead Qualifier Visual Diagram */}
69
+ {activeTab === "lead-qualifier" && (
70
+ <div className="relative flex flex-col items-center justify-between gap-12 md:flex-row md:items-start">
71
+
72
+ {/* Step 1: Input */}
73
+ <div className="z-10 w-full max-w-[320px] animate-in fade-in slide-in-from-left-4 duration-700">
74
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-100 px-2 py-1 text-[10px] font-bold text-zinc-600 uppercase tracking-wider">
75
+ <PenTool className="size-3" /> Input
76
+ </div>
77
+ <div className="rounded-xl border border-border bg-white p-5 shadow-sm">
78
+ <div className="flex items-start justify-between">
79
+ <div className="flex items-center gap-2 mb-4">
80
+ <div className="p-1 rounded bg-muted">
81
+ <RefreshCcw className="size-4" />
82
+ </div>
83
+ <h4 className="text-sm font-semibold">New Lead Inquiry</h4>
84
+ </div>
85
+ <MoreVertical className="size-4 text-muted-foreground" />
86
+ </div>
87
+ <p className="text-xs text-muted-foreground mb-4">
88
+ Automatically qualify new inbound leads from email or forms.
89
+ </p>
90
+
91
+ <div className="space-y-2">
92
+ <div className="rounded-lg bg-zinc-50 p-3">
93
+ <span className="text-[10px] font-medium text-zinc-600 bg-zinc-200 px-1.5 py-0.5 rounded">Fetching detail...</span>
94
+ <div className="mt-2 space-y-2">
95
+ <div className="flex items-center gap-2 text-[11px] text-muted-foreground">
96
+ <Building2 className="size-3 text-zinc-600" />
97
+ Company details
98
+ </div>
99
+ <div className="flex items-center gap-2 text-[11px] text-muted-foreground">
100
+ <Linkedin className="size-3 text-zinc-600" />
101
+ LinkedIn profiles
102
+ </div>
103
+ </div>
104
+ </div>
105
+ <div className="flex items-center justify-end text-[10px] text-muted-foreground italic">
106
+ <span>🕒 0.3 sec</span>
107
+ </div>
108
+ </div>
109
+ </div>
110
+ </div>
111
+
112
+ {/* Connecting Arrows (Desktop) */}
113
+ <svg className="absolute left-[320px] top-[140px] hidden h-[300px] w-[calc(100%-640px)] md:block" fill="none">
114
+ <path
115
+ d="M 0 0 L 100 0 C 120 0 120 80 140 80 H 300"
116
+ stroke="#E4E4E7"
117
+ strokeWidth="2"
118
+ strokeDasharray="4 4"
119
+ />
120
+ <path
121
+ d="M 300 80 H 400 C 420 80 420 0 440 0 H 600"
122
+ stroke="#E4E4E7"
123
+ strokeWidth="2"
124
+ strokeDasharray="4 4"
125
+ />
126
+ </svg>
127
+
128
+ {/* Step 2: Action - Positioned middle bottom */}
129
+ <div className="z-10 mt-24 w-full max-w-[320px] self-center animate-in fade-in zoom-in-95 duration-1000">
130
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-200 px-2 py-1 text-[10px] font-bold text-zinc-700 uppercase tracking-wider">
131
+ <Play className="size-3 fill-current" /> Action
132
+ </div>
133
+ <div className="rounded-xl border border-border bg-white p-5 shadow-sm">
134
+ <div className="flex items-start justify-between mb-4">
135
+ <div className="flex items-center gap-2">
136
+ <TrendingUp className="size-4 text-primary" />
137
+ <h4 className="text-sm font-semibold">Scoring & Categorization</h4>
138
+ </div>
139
+ <MoreVertical className="size-4 text-muted-foreground" />
140
+ </div>
141
+ <p className="text-xs text-muted-foreground mb-4">
142
+ Using AI logic, the lead is scored based on size, industry, and engagement.
143
+ </p>
144
+
145
+ <div className="flex items-center justify-between">
146
+ <div className="flex items-center gap-2 text-[11px]">
147
+ <span className="text-muted-foreground">🕒 1.8 sec</span>
148
+ </div>
149
+ <div className="flex items-center gap-1.5 rounded-full bg-zinc-100 px-2 py-1 text-[10px] font-medium text-primary border border-primary/20">
150
+ GPT-4-Turbo
151
+ </div>
152
+ </div>
153
+ </div>
154
+ </div>
155
+
156
+ {/* Step 3: Output */}
157
+ <div className="z-10 w-full max-w-[320px] animate-in fade-in slide-in-from-right-4 duration-700">
158
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-900 px-2 py-1 text-[10px] font-bold text-white uppercase tracking-wider">
159
+ <Database className="size-3" /> Output
160
+ </div>
161
+ <div className="rounded-xl border border-border bg-white p-5 shadow-sm">
162
+ <div className="flex items-start justify-between">
163
+ <div className="flex items-center gap-2 mb-4">
164
+ <FileText className="size-4 text-zinc-600" />
165
+ <h4 className="text-sm font-semibold">Response</h4>
166
+ </div>
167
+ <MoreVertical className="size-4 text-muted-foreground" />
168
+ </div>
169
+ <p className="text-xs text-muted-foreground mb-4">
170
+ The agent have prepared a tailored response.
171
+ </p>
172
+
173
+ <div className="rounded-lg bg-zinc-50 p-4">
174
+ <span className="text-[10px] font-medium text-[#71717A] bg-white border border-border px-1.5 py-0.5 rounded shadow-sm uppercase tracking-tighter">Answer</span>
175
+ <p className="mt-3 text-[11px] leading-relaxed text-muted-foreground">
176
+ Lead status, notes, and follow-up are logged in the CRM, ready for the sales team.
177
+ </p>
178
+ <div className="mt-4 flex items-center gap-2 text-[11px] text-zinc-900 font-medium border-t border-border/50 pt-3">
179
+ <Database className="size-3 text-zinc-500" />
180
+ File updated
181
+ </div>
182
+ </div>
183
+
184
+ <div className="mt-3 flex items-center justify-end text-[10px] text-muted-foreground italic">
185
+ <span>🕒 0.3 sec</span>
186
+ </div>
187
+ </div>
188
+ </div>
189
+ </div>
190
+ )}
191
+
192
+ {/* Meeting Prep Visual Diagram */}
193
+ {activeTab === "meeting-prep" && (
194
+ <div className="relative flex flex-col items-center justify-center gap-8 animate-in fade-in duration-500">
195
+ {/* Top: Input Card */}
196
+ <div className="z-10 w-full max-w-[340px] animate-in fade-in slide-in-from-top-4 duration-700">
197
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-200 px-2 py-1 text-[10px] font-bold text-zinc-700 uppercase tracking-wider">
198
+ <PenTool className="size-3" /> Input
199
+ </div>
200
+ <div className="rounded-xl border border-border bg-white p-5 shadow-sm">
201
+ <div className="flex items-start justify-between">
202
+ <div className="flex items-center gap-2 mb-2">
203
+ <div className="p-1.5 rounded bg-muted">
204
+ <svg className="size-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><rect width="18" height="18" x="3" y="4" rx="2" ry="2"/><line x1="16" x2="16" y1="2" y2="6"/><line x1="8" x2="8" y1="2" y2="6"/><line x1="3" x2="21" y1="10" y2="10"/></svg>
205
+ </div>
206
+ <h4 className="text-sm font-semibold">Upcoming Meeting</h4>
207
+ </div>
208
+ <span className="text-[11px] text-muted-foreground">1:32 AM</span>
209
+ </div>
210
+ <p className="text-xs text-muted-foreground">
211
+ Four hours before a scheduled event, the agent triggers prep mode.
212
+ </p>
213
+ </div>
214
+ </div>
215
+
216
+ {/* Center Row: Action Cards with Connecting Lines */}
217
+ <div className="relative flex w-full items-start justify-center gap-6 md:gap-12 lg:gap-24">
218
+ {/* SVG Connector Lines */}
219
+ <svg className="absolute inset-0 h-full w-full pointer-events-none hidden md:block" preserveAspectRatio="none">
220
+ <line x1="50%" y1="0" x2="25%" y2="50%" stroke="#E4E4E7" strokeWidth="1.5" strokeDasharray="4 4" />
221
+ <line x1="50%" y1="0" x2="75%" y2="50%" stroke="#E4E4E7" strokeWidth="1.5" strokeDasharray="4 4" />
222
+ <line x1="25%" y1="50%" x2="50%" y2="100%" stroke="#E4E4E7" strokeWidth="1.5" strokeDasharray="4 4" />
223
+ <line x1="75%" y1="50%" x2="50%" y2="100%" stroke="#E4E4E7" strokeWidth="1.5" strokeDasharray="4 4" />
224
+ </svg>
225
+
226
+ {/* Left Action: Context Gathering */}
227
+ <div className="z-10 w-full max-w-[300px] animate-in fade-in slide-in-from-left-4 duration-700 delay-150">
228
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-200 px-2 py-1 text-[10px] font-bold text-zinc-700 uppercase tracking-wider">
229
+ <Play className="size-3 fill-current" /> Action
230
+ </div>
231
+ <div className="rounded-xl border border-border bg-white p-5 shadow-sm">
232
+ <div className="flex items-start justify-between mb-3">
233
+ <div className="flex items-center gap-2">
234
+ <svg className="size-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
235
+ <h4 className="text-sm font-semibold">Context Gathering</h4>
236
+ </div>
237
+ <MoreVertical className="size-4 text-muted-foreground" />
238
+ </div>
239
+
240
+ <div className="rounded-lg bg-zinc-100 p-3 space-y-2.5">
241
+ <span className="text-[10px] font-medium text-muted-foreground bg-white border border-border px-1.5 py-0.5 rounded shadow-sm">Fetching detail...</span>
242
+ <div className="flex items-center gap-2 text-[11px] text-muted-foreground">
243
+ <svg className="size-3.5 text-zinc-600" viewBox="0 0 24 24" fill="currentColor"><path d="M24 5.457v13.909c0 .904-.732 1.636-1.636 1.636h-3.819V11.73L12 16.64l-6.545-4.91v9.273H1.636A1.636 1.636 0 0 1 0 19.366V5.457c0-2.023 2.309-3.178 3.927-1.964L5.455 4.64 12 9.548l6.545-4.91 1.528-1.145C21.69 2.28 24 3.434 24 5.457z"/></svg>
244
+ Collect recent emails
245
+ </div>
246
+ <div className="flex items-center gap-2 text-[11px] text-muted-foreground">
247
+ <svg className="size-3.5 text-zinc-600" viewBox="0 0 24 24" fill="currentColor"><path d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z"/></svg>
248
+ Check participant messages
249
+ </div>
250
+ <div className="flex items-center gap-2 text-[11px] text-muted-foreground">
251
+ <svg className="size-3.5 text-zinc-600" viewBox="0 0 24 24" fill="currentColor"><path d="M19.5 3.5L18 2l-1.5 1.5L15 2l-1.5 1.5L12 2l-1.5 1.5L9 2 7.5 3.5 6 2 4.5 3.5 3 2v20l1.5-1.5L6 22l1.5-1.5L9 22l1.5-1.5L12 22l1.5-1.5L15 22l1.5-1.5L18 22l1.5-1.5L21 22V2l-1.5 1.5zM19 19H5V5h14v14z"/><path d="M9 12h6v2H9v-2zm0-4h6v2H9V8zm0 8h4v2H9v-2z"/></svg>
252
+ Past meeting notes
253
+ </div>
254
+ </div>
255
+
256
+ <div className="mt-3 flex items-center justify-between">
257
+ <span className="text-[10px] text-muted-foreground">⏱ 4 sec</span>
258
+ <div className="flex items-center gap-1.5 rounded-full bg-zinc-200 border border-zinc-300 px-2 py-1 text-[10px] font-medium text-zinc-700">
259
+ <svg className="size-3" viewBox="0 0 24 24" fill="currentColor"><path d="M22.2819 9.8211a5.9847 5.9847 0 0 0-.5153-4.9066 6.0462 6.0462 0 0 0-6.5145-2.3254 6.1291 6.1291 0 0 0-4.6544-1.8925 6.0515 6.0515 0 0 0-5.8159 4.3184 6.1055 6.1055 0 0 0-4.1108 2.9836 6.0459 6.0459 0 0 0 .7428 7.121 5.9847 5.9847 0 0 0 .5153 4.9066 6.0462 6.0462 0 0 0 6.5145 2.3254 6.13 6.13 0 0 0 4.6544 1.8925 6.0515 6.0515 0 0 0 5.8159-4.3184 6.0994 6.0994 0 0 0 4.1108-2.9836 6.0461 6.0461 0 0 0-.7428-7.121z"/></svg>
260
+ GPT-4-1 Mini
261
+ </div>
262
+ </div>
263
+ </div>
264
+ </div>
265
+
266
+ {/* Right Action: Brief Generation */}
267
+ <div className="z-10 w-full max-w-[300px] animate-in fade-in slide-in-from-right-4 duration-700 delay-150">
268
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-200 px-2 py-1 text-[10px] font-bold text-zinc-700 uppercase tracking-wider">
269
+ <Play className="size-3 fill-current" /> Action
270
+ </div>
271
+ <div className="rounded-xl border border-border bg-white p-5 shadow-sm">
272
+ <div className="flex items-start justify-between mb-3">
273
+ <div className="flex items-center gap-2">
274
+ <FileText className="size-4" />
275
+ <h4 className="text-sm font-semibold">Brief Generation</h4>
276
+ </div>
277
+ <MoreVertical className="size-4 text-muted-foreground" />
278
+ </div>
279
+
280
+ <div className="rounded-lg bg-zinc-100 p-3 space-y-2.5">
281
+ <span className="text-[10px] font-medium text-muted-foreground bg-white border border-border px-1.5 py-0.5 rounded shadow-sm">Generating</span>
282
+ <div className="flex items-center gap-2 text-[11px] text-muted-foreground">
283
+ <svg className="size-3 text-zinc-600" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3"><polyline points="20 6 9 17 4 12"/></svg>
284
+ Summaries key points
285
+ </div>
286
+ <div className="flex items-center gap-2 text-[11px] text-muted-foreground">
287
+ <svg className="size-3 text-zinc-600" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3"><polyline points="20 6 9 17 4 12"/></svg>
288
+ Open tasks
289
+ </div>
290
+ <div className="flex items-center gap-2 text-[11px] text-muted-foreground">
291
+ <svg className="size-3 text-zinc-600" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3"><polyline points="20 6 9 17 4 12"/></svg>
292
+ Recommended discussion topics
293
+ </div>
294
+ </div>
295
+
296
+ <div className="mt-3 flex items-center justify-between">
297
+ <span className="text-[10px] text-muted-foreground">⏱ 1.3 sec</span>
298
+ <div className="flex items-center gap-1.5 rounded-full bg-zinc-200 border border-zinc-300 px-2 py-1 text-[10px] font-medium text-zinc-700">
299
+ <svg className="size-3" viewBox="0 0 24 24" fill="currentColor"><path d="M22.2819 9.8211a5.9847 5.9847 0 0 0-.5153-4.9066 6.0462 6.0462 0 0 0-6.5145-2.3254 6.1291 6.1291 0 0 0-4.6544-1.8925 6.0515 6.0515 0 0 0-5.8159 4.3184 6.1055 6.1055 0 0 0-4.1108 2.9836 6.0459 6.0459 0 0 0 .7428 7.121 5.9847 5.9847 0 0 0 .5153 4.9066 6.0462 6.0462 0 0 0 6.5145 2.3254 6.13 6.13 0 0 0 4.6544 1.8925 6.0515 6.0515 0 0 0 5.8159-4.3184 6.0994 6.0994 0 0 0 4.1108-2.9836 6.0461 6.0461 0 0 0-.7428-7.121z"/></svg>
300
+ GPT-4-1 Mini
301
+ </div>
302
+ </div>
303
+ </div>
304
+ </div>
305
+ </div>
306
+
307
+ {/* Bottom: Output Card */}
308
+ <div className="z-10 w-full max-w-[360px] animate-in fade-in slide-in-from-bottom-4 duration-700 delay-300">
309
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-900 px-2 py-1 text-[10px] font-bold text-white uppercase tracking-wider">
310
+ <svg className="size-3" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><polyline points="20 6 9 17 4 12"/></svg> Output
311
+ </div>
312
+ <div className="rounded-xl border border-border bg-white p-5 shadow-sm">
313
+ <div className="flex items-start justify-between mb-3">
314
+ <div className="flex items-center gap-2">
315
+ <svg className="size-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/><line x1="16" x2="8" y1="13" y2="13"/><line x1="16" x2="8" y1="17" y2="17"/><line x1="10" x2="8" y1="9" y2="9"/></svg>
316
+ <h4 className="text-sm font-semibold">Meeting Brief Document</h4>
317
+ </div>
318
+ <MoreVertical className="size-4 text-muted-foreground" />
319
+ </div>
320
+ <p className="text-xs text-muted-foreground mb-4">
321
+ A polished meeting brief sended to the organizer.
322
+ </p>
323
+
324
+ <div className="rounded-lg bg-zinc-50 p-3 flex items-center gap-2">
325
+ <svg className="size-4 text-zinc-600" viewBox="0 0 24 24" fill="currentColor"><path d="M19 4h-1V3c0-.6-.4-1-1-1s-1 .4-1 1v1H8V3c0-.6-.4-1-1-1s-1 .4-1 1v1H5C3.3 4 2 5.3 2 7v12c0 1.7 1.3 3 3 3h14c1.7 0 3-1.3 3-3V7c0-1.7-1.3-3-3-3zm1 15c0 .6-.4 1-1 1H5c-.6 0-1-.4-1-1v-9h16v9zm0-11H4V7c0-.6.4-1 1-1h1v1c0 .6.4 1 1 1s1-.4 1-1V6h8v1c0 .6.4 1 1 1s1-.4 1-1V6h1c.6 0 1 .4 1 1v1z"/></svg>
326
+ <span className="text-[11px] text-muted-foreground">Attached to the calendar</span>
327
+ </div>
328
+
329
+ <div className="mt-3 flex items-center justify-end">
330
+ <span className="text-[10px] text-muted-foreground">⏱ 0.8 sec</span>
331
+ </div>
332
+ </div>
333
+ </div>
334
+ </div>
335
+ )}
336
+
337
+ {/* Follow-ups Workflow */}
338
+ {activeTab === "follow-ups" && (
339
+ <div className="relative flex flex-col items-center justify-between gap-12 md:flex-row md:items-start">
340
+ {/* Input: Missed Response Detection */}
341
+ <div className="z-10 w-full max-w-[320px] animate-in fade-in slide-in-from-left-4 duration-700">
342
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-100 px-2 py-1 text-[10px] font-bold text-zinc-600 uppercase tracking-wider">
343
+ <PenTool className="size-3" /> Input
344
+ </div>
345
+ <div className="rounded-xl border border-border bg-white p-5 shadow-sm">
346
+ <div className="flex items-start justify-between">
347
+ <div className="flex items-center gap-2 mb-4">
348
+ <div className="p-1 rounded bg-muted">
349
+ <Calendar className="size-4" />
350
+ </div>
351
+ <h4 className="text-sm font-semibold">Missed Response</h4>
352
+ </div>
353
+ <MoreVertical className="size-4 text-muted-foreground" />
354
+ </div>
355
+ <p className="text-xs text-muted-foreground mb-4">
356
+ Detects emails or messages that haven&apos;t received a reply within 48 hours.
357
+ </p>
358
+ <div className="rounded-lg bg-zinc-50 p-3">
359
+ <span className="text-[10px] font-medium text-zinc-600 bg-zinc-200 px-1.5 py-0.5 rounded">Scanning inbox...</span>
360
+ <div className="mt-2 space-y-2">
361
+ <div className="flex items-center gap-2 text-[11px] text-muted-foreground">
362
+ <svg className="size-3 text-zinc-600" viewBox="0 0 24 24" fill="currentColor"><path d="M24 5.457v13.909c0 .904-.732 1.636-1.636 1.636h-3.819V11.73L12 16.64l-6.545-4.91v9.273H1.636A1.636 1.636 0 0 1 0 19.366V5.457c0-2.023 2.309-3.178 3.927-1.964L5.455 4.64 12 9.548l6.545-4.91 1.528-1.145C21.69 2.28 24 3.434 24 5.457z"/></svg>
363
+ 12 unanswered emails
364
+ </div>
365
+ <div className="flex items-center gap-2 text-[11px] text-muted-foreground">
366
+ <svg className="size-3.5 text-zinc-600" viewBox="0 0 24 24" fill="currentColor"><path d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52z"/><path d="M8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834z"/></svg>
367
+ 5 pending Slack DMs
368
+ </div>
369
+ </div>
370
+ </div>
371
+ <div className="mt-2 flex items-center justify-end text-[10px] text-muted-foreground">
372
+ <span>🕒 1.2 sec</span>
373
+ </div>
374
+ </div>
375
+ </div>
376
+
377
+ {/* Action: Draft Follow-up */}
378
+ <div className="z-10 mt-24 w-full max-w-[320px] self-center animate-in fade-in zoom-in-95 duration-1000">
379
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-200 px-2 py-1 text-[10px] font-bold text-zinc-700 uppercase tracking-wider">
380
+ <Play className="size-3 fill-current" /> Action
381
+ </div>
382
+ <div className="rounded-xl border border-border bg-white p-5 shadow-sm">
383
+ <div className="flex items-start justify-between mb-4">
384
+ <div className="flex items-center gap-2">
385
+ <PenTool className="size-4 text-primary" />
386
+ <h4 className="text-sm font-semibold">Draft Follow-up Messages</h4>
387
+ </div>
388
+ <MoreVertical className="size-4 text-muted-foreground" />
389
+ </div>
390
+ <p className="text-xs text-muted-foreground mb-4">
391
+ AI drafts personalized follow-up messages based on conversation context and urgency.
392
+ </p>
393
+ <div className="flex items-center justify-between">
394
+ <span className="text-[10px] text-muted-foreground">🕒 2.1 sec</span>
395
+ <div className="flex items-center gap-1.5 rounded-full bg-zinc-100 px-2 py-1 text-[10px] font-medium text-primary border border-primary/20">
396
+ GPT-4-Turbo
397
+ </div>
398
+ </div>
399
+ </div>
400
+ </div>
401
+
402
+ {/* Output: Scheduled Messages */}
403
+ <div className="z-10 w-full max-w-[320px] animate-in fade-in slide-in-from-right-4 duration-700">
404
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-900 px-2 py-1 text-[10px] font-bold text-white uppercase tracking-wider">
405
+ <Database className="size-3" /> Output
406
+ </div>
407
+ <div className="rounded-xl border border-border bg-white p-5 shadow-sm">
408
+ <div className="flex items-start justify-between">
409
+ <div className="flex items-center gap-2 mb-4">
410
+ <svg className="size-4 text-zinc-600" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><polyline points="22 4 12 14.01 9 11.01"/></svg>
411
+ <h4 className="text-sm font-semibold">Queued for Review</h4>
412
+ </div>
413
+ <MoreVertical className="size-4 text-muted-foreground" />
414
+ </div>
415
+ <div className="rounded-lg bg-zinc-50 p-4 space-y-3">
416
+ <div className="flex items-center justify-between text-[11px]">
417
+ <span className="text-muted-foreground">17 drafts ready</span>
418
+ <span className="text-zinc-600 font-medium">Pending approval</span>
419
+ </div>
420
+ <div className="flex items-center gap-2 text-[11px] text-zinc-900 font-medium border-t border-border/50 pt-3">
421
+ <svg className="size-3 text-zinc-500" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><rect width="18" height="18" x="3" y="4" rx="2" ry="2"/><line x1="16" x2="16" y1="2" y2="6"/><line x1="8" x2="8" y1="2" y2="6"/><line x1="3" x2="21" y1="10" y2="10"/></svg>
422
+ Scheduled for 9:00 AM
423
+ </div>
424
+ </div>
425
+ <div className="mt-3 flex items-center justify-end text-[10px] text-muted-foreground">
426
+ <span>🕒 0.5 sec</span>
427
+ </div>
428
+ </div>
429
+ </div>
430
+ </div>
431
+ )}
432
+
433
+ {/* Data Sync Workflow */}
434
+ {activeTab === "data-sync" && (
435
+ <div className="relative flex flex-col items-center justify-center gap-8 animate-in fade-in duration-500">
436
+ {/* Top Row: Multiple Input Sources */}
437
+ <div className="flex w-full justify-center gap-6 flex-wrap">
438
+ {/* CRM Source */}
439
+ <div className="z-10 w-full max-w-[200px] animate-in fade-in slide-in-from-top-4 duration-700">
440
+ <div className="mb-2 inline-flex items-center gap-1 rounded-md bg-zinc-100 px-2 py-1 text-[9px] font-bold text-zinc-600 uppercase tracking-wider">
441
+ Source
442
+ </div>
443
+ <div className="rounded-xl border border-border bg-white p-4 shadow-sm text-center">
444
+ <div className="mx-auto mb-2 flex size-10 items-center justify-center rounded-lg bg-zinc-50">
445
+ <svg className="size-5 text-zinc-600" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>
446
+ </div>
447
+ <h4 className="text-xs font-semibold">Salesforce CRM</h4>
448
+ <p className="text-[10px] text-muted-foreground mt-1">2,847 contacts</p>
449
+ </div>
450
+ </div>
451
+ {/* Spreadsheet Source */}
452
+ <div className="z-10 w-full max-w-[200px] animate-in fade-in slide-in-from-top-4 duration-700 delay-100">
453
+ <div className="mb-2 inline-flex items-center gap-1 rounded-md bg-zinc-100 px-2 py-1 text-[9px] font-bold text-zinc-600 uppercase tracking-wider">
454
+ Source
455
+ </div>
456
+ <div className="rounded-xl border border-border bg-white p-4 shadow-sm text-center">
457
+ <div className="mx-auto mb-2 flex size-10 items-center justify-center rounded-lg bg-zinc-50">
458
+ <svg className="size-5 text-zinc-600" viewBox="0 0 24 24" fill="currentColor"><path d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"/></svg>
459
+ </div>
460
+ <h4 className="text-xs font-semibold">Google Sheets</h4>
461
+ <p className="text-[10px] text-muted-foreground mt-1">15 active sheets</p>
462
+ </div>
463
+ </div>
464
+ {/* Database Source */}
465
+ <div className="z-10 w-full max-w-[200px] animate-in fade-in slide-in-from-top-4 duration-700 delay-200">
466
+ <div className="mb-2 inline-flex items-center gap-1 rounded-md bg-zinc-100 px-2 py-1 text-[9px] font-bold text-zinc-600 uppercase tracking-wider">
467
+ Source
468
+ </div>
469
+ <div className="rounded-xl border border-border bg-white p-4 shadow-sm text-center">
470
+ <div className="mx-auto mb-2 flex size-10 items-center justify-center rounded-lg bg-zinc-50">
471
+ <Database className="size-5 text-zinc-600" />
472
+ </div>
473
+ <h4 className="text-xs font-semibold">PostgreSQL</h4>
474
+ <p className="text-[10px] text-muted-foreground mt-1">Main database</p>
475
+ </div>
476
+ </div>
477
+ </div>
478
+
479
+ {/* Center: Sync Engine */}
480
+ <div className="z-10 w-full max-w-[380px] animate-in fade-in zoom-in-95 duration-1000 delay-300">
481
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-200 px-2 py-1 text-[10px] font-bold text-zinc-700 uppercase tracking-wider">
482
+ <Play className="size-3 fill-current" /> Sync Engine
483
+ </div>
484
+ <div className="rounded-xl border border-border bg-white p-6 shadow-sm">
485
+ <div className="flex items-center gap-3 mb-4">
486
+ <div className="flex size-12 items-center justify-center rounded-xl bg-primary/10">
487
+ <RefreshCcw className="size-6 text-primary animate-spin" style={{ animationDuration: '3s' }} />
488
+ </div>
489
+ <div>
490
+ <h4 className="text-sm font-semibold">Real-time Data Sync</h4>
491
+ <p className="text-xs text-muted-foreground">Bi-directional sync across all platforms</p>
492
+ </div>
493
+ </div>
494
+ <div className="space-y-2">
495
+ <div className="flex items-center justify-between rounded-lg bg-zinc-100 p-2">
496
+ <span className="text-[11px] text-muted-foreground">Conflict resolution</span>
497
+ <span className="text-[10px] font-medium text-zinc-900">Auto-merge</span>
498
+ </div>
499
+ <div className="flex items-center justify-between rounded-lg bg-zinc-100 p-2">
500
+ <span className="text-[11px] text-muted-foreground">Last sync</span>
501
+ <span className="text-[10px] font-medium text-zinc-900">2 min ago</span>
502
+ </div>
503
+ <div className="flex items-center justify-between rounded-lg bg-zinc-100 p-2">
504
+ <span className="text-[11px] text-muted-foreground">Records updated</span>
505
+ <span className="text-[10px] font-medium text-zinc-900">1,247</span>
506
+ </div>
507
+ </div>
508
+ </div>
509
+ </div>
510
+
511
+ {/* Bottom: Output Status */}
512
+ <div className="z-10 w-full max-w-[400px] animate-in fade-in slide-in-from-bottom-4 duration-700 delay-500">
513
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-900 px-2 py-1 text-[10px] font-bold text-white uppercase tracking-wider">
514
+ <svg className="size-3" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><polyline points="20 6 9 17 4 12"/></svg> Sync Complete
515
+ </div>
516
+ <div className="rounded-xl border border-border bg-white p-5 shadow-sm">
517
+ <div className="grid grid-cols-3 gap-4 text-center">
518
+ <div>
519
+ <div className="text-2xl font-semibold text-zinc-900">99.8%</div>
520
+ <div className="text-[10px] text-muted-foreground">Accuracy</div>
521
+ </div>
522
+ <div>
523
+ <div className="text-2xl font-semibold text-zinc-900">0</div>
524
+ <div className="text-[10px] text-muted-foreground">Conflicts</div>
525
+ </div>
526
+ <div>
527
+ <div className="text-2xl font-semibold text-zinc-900">3.2s</div>
528
+ <div className="text-[10px] text-muted-foreground">Avg. sync time</div>
529
+ </div>
530
+ </div>
531
+ </div>
532
+ </div>
533
+ </div>
534
+ )}
535
+
536
+ {/* Reporting Workflow */}
537
+ {activeTab === "reporting" && (
538
+ <div className="relative flex flex-col items-center justify-between gap-12 md:flex-row md:items-start">
539
+ {/* Input: Data Sources */}
540
+ <div className="z-10 w-full max-w-[320px] animate-in fade-in slide-in-from-left-4 duration-700">
541
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-100 px-2 py-1 text-[10px] font-bold text-zinc-600 uppercase tracking-wider">
542
+ <PenTool className="size-3" /> Input
543
+ </div>
544
+ <div className="rounded-xl border border-border bg-white p-5 shadow-sm">
545
+ <div className="flex items-start justify-between">
546
+ <div className="flex items-center gap-2 mb-4">
547
+ <div className="p-1 rounded bg-muted">
548
+ <Database className="size-4" />
549
+ </div>
550
+ <h4 className="text-sm font-semibold">Data Collection</h4>
551
+ </div>
552
+ <MoreVertical className="size-4 text-muted-foreground" />
553
+ </div>
554
+ <p className="text-xs text-muted-foreground mb-4">
555
+ Aggregates metrics from multiple sources for comprehensive reporting.
556
+ </p>
557
+ <div className="rounded-lg bg-zinc-50 p-3 space-y-2">
558
+ <div className="flex items-center gap-2 text-[11px] text-muted-foreground">
559
+ <svg className="size-3 text-zinc-600" viewBox="0 0 24 24" fill="currentColor"><path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"/></svg>
560
+ Google Analytics
561
+ </div>
562
+ <div className="flex items-center gap-2 text-[11px] text-muted-foreground">
563
+ <svg className="size-3 text-zinc-600" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1.41 16.09V20h-2.67v-1.93c-1.71-.36-3.16-1.46-3.27-3.4h1.96c.1 1.05.82 1.87 2.65 1.87 1.96 0 2.4-.98 2.4-1.59 0-.83-.44-1.61-2.67-2.14-2.48-.6-4.18-1.62-4.18-3.67 0-1.72 1.39-2.84 3.11-3.21V4h2.67v1.95c1.86.45 2.79 1.86 2.85 3.39H14.3c-.05-1.11-.64-1.87-2.22-1.87-1.5 0-2.4.68-2.4 1.64 0 .84.65 1.39 2.67 1.91s4.18 1.39 4.18 3.91c-.01 1.83-1.38 2.83-3.12 3.16z"/></svg>
564
+ Stripe Revenue
565
+ </div>
566
+ <div className="flex items-center gap-2 text-[11px] text-muted-foreground">
567
+ <svg className="size-3 text-zinc-600" viewBox="0 0 24 24" fill="currentColor"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"/></svg>
568
+ HubSpot CRM
569
+ </div>
570
+ </div>
571
+ <div className="mt-2 flex items-center justify-end text-[10px] text-muted-foreground">
572
+ <span>🕒 2.4 sec</span>
573
+ </div>
574
+ </div>
575
+ </div>
576
+
577
+ {/* Action: Report Generation */}
578
+ <div className="z-10 mt-24 w-full max-w-[320px] self-center animate-in fade-in zoom-in-95 duration-1000">
579
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-200 px-2 py-1 text-[10px] font-bold text-zinc-700 uppercase tracking-wider">
580
+ <Play className="size-3 fill-current" /> Action
581
+ </div>
582
+ <div className="rounded-xl border border-border bg-white p-5 shadow-sm">
583
+ <div className="flex items-start justify-between mb-4">
584
+ <div className="flex items-center gap-2">
585
+ <FileText className="size-4 text-primary" />
586
+ <h4 className="text-sm font-semibold">AI Report Generation</h4>
587
+ </div>
588
+ <MoreVertical className="size-4 text-muted-foreground" />
589
+ </div>
590
+ <p className="text-xs text-muted-foreground mb-4">
591
+ Analyzes trends, generates insights, and creates visual dashboards automatically.
592
+ </p>
593
+ <div className="rounded-lg bg-zinc-100 p-3 space-y-2">
594
+ <div className="flex items-center gap-2 text-[11px] text-muted-foreground">
595
+ <svg className="size-3 text-zinc-600" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3"><polyline points="20 6 9 17 4 12"/></svg>
596
+ Executive summary
597
+ </div>
598
+ <div className="flex items-center gap-2 text-[11px] text-muted-foreground">
599
+ <svg className="size-3 text-zinc-600" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3"><polyline points="20 6 9 17 4 12"/></svg>
600
+ KPI visualizations
601
+ </div>
602
+ <div className="flex items-center gap-2 text-[11px] text-muted-foreground">
603
+ <svg className="size-3 text-zinc-600" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3"><polyline points="20 6 9 17 4 12"/></svg>
604
+ Trend analysis
605
+ </div>
606
+ </div>
607
+ <div className="mt-3 flex items-center justify-between">
608
+ <span className="text-[10px] text-muted-foreground">🕒 4.7 sec</span>
609
+ <div className="flex items-center gap-1.5 rounded-full bg-zinc-100 px-2 py-1 text-[10px] font-medium text-primary border border-primary/20">
610
+ GPT-4-Turbo
611
+ </div>
612
+ </div>
613
+ </div>
614
+ </div>
615
+
616
+ {/* Output: Generated Report */}
617
+ <div className="z-10 w-full max-w-[320px] animate-in fade-in slide-in-from-right-4 duration-700">
618
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-900 px-2 py-1 text-[10px] font-bold text-white uppercase tracking-wider">
619
+ <Database className="size-3" /> Output
620
+ </div>
621
+ <div className="rounded-xl border border-border bg-white p-5 shadow-sm">
622
+ <div className="flex items-start justify-between">
623
+ <div className="flex items-center gap-2 mb-4">
624
+ <svg className="size-4 text-zinc-600" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/></svg>
625
+ <h4 className="text-sm font-semibold">Weekly Report</h4>
626
+ </div>
627
+ <MoreVertical className="size-4 text-muted-foreground" />
628
+ </div>
629
+ <div className="rounded-lg bg-zinc-50 p-4">
630
+ <div className="flex items-center justify-between mb-3">
631
+ <span className="text-[10px] font-medium text-zinc-700">Q4 Performance</span>
632
+ <span className="text-[10px] text-zinc-600 font-semibold">+23% ↑</span>
633
+ </div>
634
+ <div className="h-16 flex items-end gap-1">
635
+ {[40, 55, 45, 70, 60, 85, 75].map((h, i) => (
636
+ <div key={i} className="flex-1 bg-primary/20 rounded-t" style={{ height: `${h}%` }} />
637
+ ))}
638
+ </div>
639
+ <div className="mt-3 flex items-center gap-2 text-[11px] text-zinc-900 font-medium border-t border-border/50 pt-3">
640
+ <svg className="size-3 text-zinc-500" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><path d="M4 4v16a2 2 0 0 0 2 2h12"/><path d="M4 4h16"/></svg>
641
+ Sent to stakeholders
642
+ </div>
643
+ </div>
644
+ <div className="mt-3 flex items-center justify-end text-[10px] text-muted-foreground">
645
+ <span>🕒 0.8 sec</span>
646
+ </div>
647
+ </div>
648
+ </div>
649
+ </div>
650
+ )}
651
+
652
+ {/* Content Drafting Workflow */}
653
+ {activeTab === "content-drafting" && (
654
+ <div className="relative flex flex-col items-center justify-center gap-8 animate-in fade-in duration-500">
655
+ {/* Top: Input Brief */}
656
+ <div className="z-10 w-full max-w-[400px] animate-in fade-in slide-in-from-top-4 duration-700">
657
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-100 px-2 py-1 text-[10px] font-bold text-zinc-600 uppercase tracking-wider">
658
+ <PenTool className="size-3" /> Input
659
+ </div>
660
+ <div className="rounded-xl border border-border bg-white p-5 shadow-sm">
661
+ <div className="flex items-start justify-between mb-4">
662
+ <div className="flex items-center gap-2">
663
+ <div className="p-1.5 rounded bg-muted">
664
+ <FileText className="size-4" />
665
+ </div>
666
+ <h4 className="text-sm font-semibold">Content Brief</h4>
667
+ </div>
668
+ <span className="text-[10px] text-muted-foreground bg-muted px-2 py-0.5 rounded">New request</span>
669
+ </div>
670
+ <div className="rounded-lg bg-zinc-100 p-3">
671
+ <p className="text-xs text-muted-foreground italic">&quot;Write a blog post about AI productivity tools for remote teams, targeting startup founders...&quot;</p>
672
+ </div>
673
+ <div className="mt-3 flex flex-wrap gap-2">
674
+ <span className="text-[10px] bg-blue-50 text-blue-700 px-2 py-0.5 rounded-full">Blog Post</span>
675
+ <span className="text-[10px] bg-purple-50 text-purple-700 px-2 py-0.5 rounded-full">1500 words</span>
676
+ <span className="text-[10px] bg-green-50 text-green-700 px-2 py-0.5 rounded-full">SEO optimized</span>
677
+ </div>
678
+ </div>
679
+ </div>
680
+
681
+ {/* Center Row: Action Cards */}
682
+ <div className="relative flex w-full items-start justify-center gap-6 md:gap-12">
683
+ {/* Research Action */}
684
+ <div className="z-10 w-full max-w-[280px] animate-in fade-in slide-in-from-left-4 duration-700 delay-150">
685
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-200 px-2 py-1 text-[10px] font-bold text-zinc-700 uppercase tracking-wider">
686
+ <Play className="size-3 fill-current" /> Research
687
+ </div>
688
+ <div className="rounded-xl border border-border bg-white p-4 shadow-sm">
689
+ <div className="flex items-center gap-2 mb-3">
690
+ <svg className="size-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
691
+ <h4 className="text-sm font-semibold">Topic Research</h4>
692
+ </div>
693
+ <div className="space-y-2 text-[11px] text-muted-foreground">
694
+ <div className="flex items-center gap-2">
695
+ <svg className="size-3 text-zinc-600" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3"><polyline points="20 6 9 17 4 12"/></svg>
696
+ Competitor analysis
697
+ </div>
698
+ <div className="flex items-center gap-2">
699
+ <svg className="size-3 text-zinc-600" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3"><polyline points="20 6 9 17 4 12"/></svg>
700
+ Keyword research
701
+ </div>
702
+ <div className="flex items-center gap-2">
703
+ <svg className="size-3 text-zinc-600" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3"><polyline points="20 6 9 17 4 12"/></svg>
704
+ Trend analysis
705
+ </div>
706
+ </div>
707
+ <div className="mt-3 text-[10px] text-muted-foreground">🕒 3.2 sec</div>
708
+ </div>
709
+ </div>
710
+
711
+ {/* Writing Action */}
712
+ <div className="z-10 w-full max-w-[280px] animate-in fade-in slide-in-from-right-4 duration-700 delay-150">
713
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-200 px-2 py-1 text-[10px] font-bold text-zinc-700 uppercase tracking-wider">
714
+ <Play className="size-3 fill-current" /> Writing
715
+ </div>
716
+ <div className="rounded-xl border border-border bg-white p-4 shadow-sm">
717
+ <div className="flex items-center gap-2 mb-3">
718
+ <PenTool className="size-4" />
719
+ <h4 className="text-sm font-semibold">Content Generation</h4>
720
+ </div>
721
+ <div className="space-y-2 text-[11px] text-muted-foreground">
722
+ <div className="flex items-center gap-2">
723
+ <svg className="size-3 text-zinc-600" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3"><polyline points="20 6 9 17 4 12"/></svg>
724
+ Outline created
725
+ </div>
726
+ <div className="flex items-center gap-2">
727
+ <svg className="size-3 text-zinc-600" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3"><polyline points="20 6 9 17 4 12"/></svg>
728
+ Draft written
729
+ </div>
730
+ <div className="flex items-center gap-2">
731
+ <svg className="size-3 text-zinc-600" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3"><polyline points="20 6 9 17 4 12"/></svg>
732
+ SEO optimized
733
+ </div>
734
+ </div>
735
+ <div className="mt-3 flex items-center justify-between">
736
+ <span className="text-[10px] text-muted-foreground">🕒 8.5 sec</span>
737
+ <div className="flex items-center gap-1 rounded-full bg-zinc-200 px-2 py-0.5 text-[9px] font-medium text-zinc-700">
738
+ GPT-4o
739
+ </div>
740
+ </div>
741
+ </div>
742
+ </div>
743
+ </div>
744
+
745
+ {/* Bottom: Output */}
746
+ <div className="z-10 w-full max-w-[450px] animate-in fade-in slide-in-from-bottom-4 duration-700 delay-300">
747
+ <div className="mb-3 inline-flex items-center gap-1.5 rounded-md bg-zinc-900 px-2 py-1 text-[10px] font-bold text-white uppercase tracking-wider">
748
+ <svg className="size-3" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><polyline points="20 6 9 17 4 12"/></svg> Output
749
+ </div>
750
+ <div className="rounded-xl border border-border bg-white p-5 shadow-sm">
751
+ <div className="flex items-start justify-between mb-4">
752
+ <div className="flex items-center gap-2">
753
+ <svg className="size-4 text-zinc-600" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"/><polyline points="14 2 14 8 20 8"/></svg>
754
+ <h4 className="text-sm font-semibold">Draft Ready for Review</h4>
755
+ </div>
756
+ <MoreVertical className="size-4 text-muted-foreground" />
757
+ </div>
758
+ <div className="rounded-lg bg-zinc-100 p-4">
759
+ <div className="flex items-center justify-between mb-2">
760
+ <span className="text-[11px] font-medium text-zinc-700">AI Productivity Tools for Remote Teams</span>
761
+ </div>
762
+ <div className="text-[10px] text-muted-foreground leading-relaxed line-clamp-2">
763
+ In today&apos;s fast-paced digital landscape, remote teams are constantly seeking ways to optimize their workflows and boost productivity...
764
+ </div>
765
+ <div className="mt-4 flex items-center justify-between border-t border-border/50 pt-3">
766
+ <div className="flex gap-3 text-[10px] text-muted-foreground">
767
+ <span>📝 1,523 words</span>
768
+ <span>⏱ 6 min read</span>
769
+ </div>
770
+ <button className="text-[10px] font-medium text-primary hover:underline">
771
+ Open in editor →
772
+ </button>
773
+ </div>
774
+ </div>
775
+ </div>
776
+ </div>
777
+ </div>
778
+ )}
779
+ </div>
780
+ </div>
781
+
782
+ {/* Footer Info */}
783
+ <div className="border-t border-border px-8 py-6 text-center">
784
+ <p className="text-sm text-muted-foreground">
785
+ Boost your efficiency with an AI agent that eliminates manual work and streamlines your operations.
786
+ </p>
787
+ </div>
788
+ </div>
789
+ </div>
790
+ </section>
791
+ );
792
+ }