@brander/mcp-demo 0.1.16 → 0.1.17

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.
@@ -1,196 +1,443 @@
1
1
  // ============================================================================
2
- // BranderUX Demo — Example Scenarios
2
+ // BranderUX Demo — Ready-to-Render Demo Scenarios
3
+ // Each scenario contains a complete generate_screen payload.
4
+ // Mix of generic business examples + self-referential BranderUX marketing.
3
5
  // ============================================================================
4
6
  export const SCENARIOS = [
7
+ // ── Generic Business: Sales Dashboard ───────────────────────────────────
5
8
  {
6
- id: "sc-001",
7
- name: "Fintech Transaction Dashboard",
8
- industry: "Fintech",
9
- description: "Real-time transaction monitoring dashboard with fraud alert notifications. " +
10
- "Users ask natural language questions about payments, and the AI responds with " +
11
- "interactive charts, sortable transaction tables, and actionable alerts — all " +
12
- "rendered in the company's brand.",
13
- integrationMethod: "SDK",
14
- aiProvider: "Anthropic (Claude)",
15
- componentsUsed: ["header", "stats-grid", "data-table", "line-chart", "alert"],
16
- screensConfigured: 4,
17
- expectedResults: {
18
- engagementLift: 47,
19
- responseTimeMs: 180,
20
- userSatisfaction: 4.8,
21
- monthlyInteractions: 125_000,
22
- },
23
- tags: ["finance", "real-time", "dashboards", "alerts"],
9
+ id: "sales-dashboard",
10
+ name: "Sales Dashboard",
11
+ description: "A revenue tracking dashboard demonstrating how BranderUX composes multiple elements into a cohesive " +
12
+ "business screen. This is what your customers could see when they ask their AI about sales performance.",
13
+ dataStrategy: "Generic business example shows what you can build for YOUR customers",
14
+ elementsUsed: ["header", "stats-grid", "line-chart", "data-table", "alert"],
15
+ demonstratesFeatures: [
16
+ "Multiple element composition (5 elements in one screen)",
17
+ "Click-to-query on table rows and chart data points",
18
+ "Trend indicators on KPI stats",
19
+ "Actionable warning alerts with AI follow-up",
20
+ ],
21
+ screenElements: [
22
+ {
23
+ elementType: "header",
24
+ props: { title: "Sales Dashboard", subtitle: "Q1 2026 Performance Overview" },
25
+ },
26
+ {
27
+ elementType: "stats-grid",
28
+ props: {
29
+ stats: [
30
+ { id: "revenue", title: "Total Revenue", value: "$847,230", period: "This Quarter", trend: { direction: "up", percentage: "12.3%" } },
31
+ { id: "orders", title: "Orders", value: "2,847", period: "This Quarter", trend: { direction: "up", percentage: "8.1%" } },
32
+ { id: "aov", title: "Avg Order Value", value: "$297.50", period: "This Quarter", trend: { direction: "down", percentage: "2.4%" } },
33
+ { id: "conversion", title: "Conversion Rate", value: "3.8%", period: "This Quarter", trend: { direction: "up", percentage: "0.6%" } },
34
+ ],
35
+ },
36
+ clickQuery: "Show me a detailed breakdown of [title] with trends",
37
+ },
38
+ {
39
+ elementType: "line-chart",
40
+ props: {
41
+ title: "Monthly Revenue Trend",
42
+ labels: ["Oct", "Nov", "Dec", "Jan", "Feb", "Mar"],
43
+ data: [142000, 158000, 171000, 134000, 162000, 180000],
44
+ },
45
+ clickQuery: "What happened in [label]? Show me a breakdown",
46
+ },
47
+ {
48
+ elementType: "data-table",
49
+ props: {
50
+ title: "Recent Orders",
51
+ columns: [
52
+ { key: "orderId", label: "Order ID", type: "text" },
53
+ { key: "customer", label: "Customer", type: "text" },
54
+ { key: "amount", label: "Amount", type: "currency", sortable: true },
55
+ { key: "status", label: "Status", type: "status" },
56
+ { key: "date", label: "Date", type: "date", sortable: true },
57
+ ],
58
+ rows: [
59
+ { id: "1", orderId: "ORD-4821", customer: "Acme Corp", amount: "$4,200.00", status: "Completed", date: "2026-03-09" },
60
+ { id: "2", orderId: "ORD-4820", customer: "TechFlow Inc", amount: "$1,850.00", status: "Processing", date: "2026-03-09" },
61
+ { id: "3", orderId: "ORD-4819", customer: "DataViz Labs", amount: "$3,100.00", status: "Completed", date: "2026-03-08" },
62
+ { id: "4", orderId: "ORD-4818", customer: "CloudNine AI", amount: "$890.00", status: "Pending", date: "2026-03-08" },
63
+ { id: "5", orderId: "ORD-4817", customer: "Nexus Systems", amount: "$5,600.00", status: "Completed", date: "2026-03-07" },
64
+ ],
65
+ pageSize: 5,
66
+ },
67
+ clickQuery: "Show me full details for order [orderId] from [customer]",
68
+ },
69
+ {
70
+ elementType: "alert",
71
+ props: {
72
+ id: "target-alert",
73
+ severity: "warning",
74
+ title: "Revenue Target",
75
+ message: "Current pace is 8% below Q1 target of $920K. Consider reviewing Enterprise tier pricing.",
76
+ actionText: "View Pricing Analysis",
77
+ actionQuery: "Show me a pricing analysis with recommendations to meet the revenue target",
78
+ },
79
+ },
80
+ ],
24
81
  },
82
+ // ── Generic Business: Product Catalog ───────────────────────────────────
25
83
  {
26
- id: "sc-002",
27
- name: "Healthcare Patient Portal",
28
- industry: "Healthcare",
29
- description: "Patient-facing AI assistant with appointment scheduling, health metric tracking, " +
30
- "and care plan summaries. Patients interact through natural language and receive " +
31
- "structured forms for booking, stats grids for vitals, and detail cards for records.",
32
- integrationMethod: "Embed",
33
- aiProvider: "OpenAI (GPT)",
34
- componentsUsed: ["header", "form", "stats-grid", "details-data", "chat-bubble", "button"],
35
- screensConfigured: 5,
36
- expectedResults: {
37
- engagementLift: 62,
38
- responseTimeMs: 220,
39
- userSatisfaction: 4.7,
40
- monthlyInteractions: 89_000,
41
- },
42
- tags: ["healthcare", "patient-portal", "forms", "scheduling"],
84
+ id: "product-catalog",
85
+ name: "Product Catalog",
86
+ description: "An e-commerce product browsing experience showing how BranderUX renders visual item grids with category breakdowns. " +
87
+ "This is what a retail or SaaS company could build for product discovery.",
88
+ dataStrategy: "Generic business example e-commerce showcase",
89
+ elementsUsed: ["header", "item-grid", "pie-chart", "button"],
90
+ demonstratesFeatures: [
91
+ "Visual grid layout with product cards",
92
+ "Category distribution chart",
93
+ "Click-to-query on product cards for drill-down",
94
+ "Action buttons for AI-driven exploration",
95
+ ],
96
+ screenElements: [
97
+ {
98
+ elementType: "header",
99
+ props: { title: "Product Catalog", subtitle: "Browse our SaaS product lineup" },
100
+ },
101
+ {
102
+ elementType: "item-grid",
103
+ props: {
104
+ title: "Featured Products",
105
+ items: [
106
+ { id: "p1", title: "Analytics Pro", description: "Real-time dashboards with AI insights", price: "$49/mo", category: "Analytics", rating: 4.8 },
107
+ { id: "p2", title: "Team Hub", description: "Unified workspace for distributed teams", price: "$29/mo", category: "Productivity", rating: 4.6 },
108
+ { id: "p3", title: "SecureCloud", description: "Enterprise security monitoring", price: "$99/mo", category: "Security", rating: 4.9 },
109
+ { id: "p4", title: "API Gateway", description: "High-performance API management", price: "$39/mo", category: "Developer Tools", rating: 4.7 },
110
+ { id: "p5", title: "CustomerIQ", description: "Customer health scoring", price: "$59/mo", category: "CRM", rating: 4.5 },
111
+ { id: "p6", title: "ContentAI", description: "AI-powered content generation", price: "$19/mo", category: "Content", rating: 4.4 },
112
+ ],
113
+ },
114
+ clickQuery: "Show me full details for [title] including features, pricing tiers, and reviews",
115
+ },
116
+ {
117
+ elementType: "pie-chart",
118
+ props: {
119
+ title: "Sales by Category",
120
+ labels: ["Analytics", "Security", "CRM", "Developer Tools", "Productivity", "Content"],
121
+ data: [32, 24, 18, 14, 8, 4],
122
+ },
123
+ clickQuery: "Show me all products in the [label] category",
124
+ },
125
+ {
126
+ elementType: "button",
127
+ props: {
128
+ id: "compare",
129
+ label: "Compare Products",
130
+ variant: "secondary",
131
+ type: "action",
132
+ action: "Show me a comparison table of all products with features, pricing, and ratings",
133
+ },
134
+ },
135
+ ],
43
136
  },
137
+ // ── Self-Referential: BranderUX Overview ────────────────────────────────
44
138
  {
45
- id: "sc-003",
46
- name: "E-commerce Product Assistant",
47
- industry: "E-commerce",
48
- description: "Visual product catalog assistant with inventory tracking and order management. " +
49
- "Shoppers browse products through interactive grids, view analytics on popular items, " +
50
- "and track orders all through conversational AI with branded UI rendering.",
51
- integrationMethod: "MCP",
52
- aiProvider: "Anthropic (Claude)",
53
- componentsUsed: ["item-grid", "item-card", "data-table", "stats-grid", "pie-chart"],
54
- screensConfigured: 5,
55
- expectedResults: {
56
- engagementLift: 38,
57
- responseTimeMs: 150,
58
- userSatisfaction: 4.6,
59
- monthlyInteractions: 210_000,
60
- },
61
- tags: ["e-commerce", "catalog", "inventory", "orders"],
139
+ id: "branderux-overview",
140
+ name: "BranderUX Platform Overview",
141
+ description: "A marketing showcase of BranderUX rendered in its own elements. Shows the platform's capabilities, " +
142
+ "key features, and value proposition meta-marketing that demonstrates the product by using it.",
143
+ dataStrategy: "Self-referential BranderUX features as data (marketing)",
144
+ elementsUsed: ["header", "stats-grid", "details-data", "chat-bubble", "button"],
145
+ demonstratesFeatures: [
146
+ "Stats grid showing platform capabilities as metrics",
147
+ "Details data showing features grouped by category",
148
+ "Rich markdown in chat bubble for messaging",
149
+ "CTA buttons driving engagement",
150
+ ],
151
+ screenElements: [
152
+ {
153
+ elementType: "header",
154
+ props: { title: "BranderUX Platform", subtitle: "AI-UX middleware — branded interactive UI for AI responses" },
155
+ },
156
+ {
157
+ elementType: "stats-grid",
158
+ props: {
159
+ stats: [
160
+ { id: "elements", title: "Element Types", value: "15", subtitle: "Built-in interactive components" },
161
+ { id: "providers", title: "AI Providers", value: "3", subtitle: "Claude, GPT, Gemini" },
162
+ { id: "modes", title: "UI Modes", value: "3", subtitle: "Fixed, A2UI, MCP App" },
163
+ { id: "setup", title: "Setup Time", value: "5 min", subtitle: "SDK integration" },
164
+ ],
165
+ },
166
+ clickQuery: "Tell me more about [title] in BranderUX",
167
+ },
168
+ {
169
+ elementType: "details-data",
170
+ props: {
171
+ items: [
172
+ { id: "f1", title: "Brand Generation", value: "AI generates colors, fonts, and layout from company description", type: "text", category: "AI Features" },
173
+ { id: "f2", title: "Screen Selection", value: "Intelligent AI selects best layout for each query (<200ms)", type: "text", category: "AI Features" },
174
+ { id: "f3", title: "Click-to-Query", value: "Every element is interactive — click to drill deeper", type: "text", category: "AI Features" },
175
+ { id: "f4", title: "AG-UI Streaming", value: "Progressive rendering — elements appear as data streams in", type: "text", category: "AI Features" },
176
+ { id: "f5", title: "React SDK", value: "<Brander /> component with built-in AI adapters", type: "text", category: "Integration" },
177
+ { id: "f6", title: "MCP Tools", value: "One function call adds branded UI to any MCP server", type: "text", category: "Integration" },
178
+ { id: "f7", title: "Embed", value: "Zero-dependency iframe with PostMessage API", type: "text", category: "Integration" },
179
+ { id: "f8", title: "No-Code Dashboard", value: "PMs configure everything — screens, brand, elements, AI behavior", type: "text", category: "Platform" },
180
+ ],
181
+ },
182
+ clickQuery: "Explain [title] in detail",
183
+ },
184
+ {
185
+ elementType: "chat-bubble",
186
+ props: {
187
+ text: "**Why BranderUX?**\n\nYour AI is smart — but its responses look like plain text. BranderUX transforms those responses into **branded, interactive UI** that your users can explore by clicking, not typing.\n\n- No developer needed for configuration\n- Works with any AI provider\n- Every element is brand-aware and interactive",
188
+ markdown: true,
189
+ },
190
+ },
191
+ {
192
+ elementType: "button",
193
+ props: {
194
+ id: "get-started",
195
+ label: "Get Started — See Integration Guide",
196
+ variant: "primary",
197
+ type: "action",
198
+ action: "Show me how to integrate BranderUX into my application",
199
+ },
200
+ },
201
+ ],
62
202
  },
203
+ // ── Self-Referential: Element Showcase ──────────────────────────────────
63
204
  {
64
- id: "sc-004",
65
- name: "Supply Chain Fleet Tracker",
66
- industry: "Supply Chain & Logistics",
67
- description: "Fleet tracking dashboard with shipment analytics and route performance comparisons. " +
68
- "Operations teams ask about delivery status, compare route efficiency with bar charts, " +
69
- "and receive proactive alerts for delays — all within a branded interface.",
70
- integrationMethod: "SDK",
71
- aiProvider: "Google (Gemini)",
72
- componentsUsed: ["header", "stats-grid", "line-chart", "bar-chart", "data-table", "alert"],
73
- screensConfigured: 4,
74
- expectedResults: {
75
- engagementLift: 55,
76
- responseTimeMs: 195,
77
- userSatisfaction: 4.9,
78
- monthlyInteractions: 78_000,
79
- },
80
- tags: ["logistics", "fleet", "real-time", "analytics"],
205
+ id: "element-showcase",
206
+ name: "Element Type Showcase",
207
+ description: "All 15 BranderUX element types displayed as a product catalog — showing the variety of UI components " +
208
+ "available. Each element type is presented as an item card with its use cases.",
209
+ dataStrategy: "Self-referential elements listed as product catalog",
210
+ elementsUsed: ["header", "item-grid", "data-table"],
211
+ demonstratesFeatures: [
212
+ "Item grid showing all element types as browsable cards",
213
+ "Data table comparing element capabilities",
214
+ "Click to explore any element in detail",
215
+ ],
216
+ screenElements: [
217
+ {
218
+ elementType: "header",
219
+ props: { title: "BranderUX Element Library", subtitle: "15 interactive element types — all brand-aware and clickable" },
220
+ },
221
+ {
222
+ elementType: "item-grid",
223
+ props: {
224
+ title: "Available Elements",
225
+ items: [
226
+ { id: "header", title: "Header", description: "Page title with subtitle", category: "Layout" },
227
+ { id: "stats-grid", title: "Stats Grid", description: "KPI metrics with trends", category: "Data Visualization" },
228
+ { id: "line-chart", title: "Line Chart", description: "Time-series trends", category: "Data Visualization" },
229
+ { id: "bar-chart", title: "Bar Chart", description: "Category comparisons", category: "Data Visualization" },
230
+ { id: "pie-chart", title: "Pie Chart", description: "Proportional breakdown", category: "Data Visualization" },
231
+ { id: "data-table", title: "Data Table", description: "Sortable, filterable tables", category: "Data Display" },
232
+ { id: "details-data", title: "Details Data", description: "Key-value detail cards", category: "Data Display" },
233
+ { id: "item-grid", title: "Item Grid", description: "Visual card grid layout", category: "Data Display" },
234
+ { id: "item-card", title: "Item Card", description: "Single item card", category: "Data Display" },
235
+ { id: "chat-bubble", title: "Chat Bubble", description: "Markdown text messages", category: "Content" },
236
+ { id: "image", title: "Image", description: "Image with caption", category: "Content" },
237
+ { id: "video", title: "Video", description: "YouTube / direct video", category: "Content" },
238
+ { id: "form", title: "Form", description: "Dynamic input forms", category: "Interaction" },
239
+ { id: "button", title: "Button", description: "Action/link buttons", category: "Interaction" },
240
+ { id: "alert", title: "Alert", description: "Notification banners", category: "Interaction" },
241
+ ],
242
+ },
243
+ clickQuery: "Show me a live demo of the [title] element with sample data",
244
+ },
245
+ {
246
+ elementType: "data-table",
247
+ props: {
248
+ title: "Element Comparison",
249
+ columns: [
250
+ { key: "name", label: "Element", type: "text" },
251
+ { key: "category", label: "Category", type: "text" },
252
+ { key: "interactive", label: "Interactive", type: "boolean" },
253
+ { key: "streaming", label: "Streaming", type: "boolean" },
254
+ { key: "status", label: "Status", type: "status" },
255
+ ],
256
+ rows: [
257
+ { id: "1", name: "Stats Grid", category: "Data Visualization", interactive: true, streaming: true, status: "Stable" },
258
+ { id: "2", name: "Data Table", category: "Data Display", interactive: true, streaming: true, status: "Stable" },
259
+ { id: "3", name: "Line Chart", category: "Data Visualization", interactive: true, streaming: true, status: "Stable" },
260
+ { id: "4", name: "Item Grid", category: "Data Display", interactive: true, streaming: true, status: "Stable" },
261
+ { id: "5", name: "Form", category: "User Interaction", interactive: true, streaming: true, status: "Stable" },
262
+ { id: "6", name: "Bar Chart", category: "Data Visualization", interactive: true, streaming: true, status: "Stable" },
263
+ { id: "7", name: "Pie Chart", category: "Data Visualization", interactive: true, streaming: true, status: "Stable" },
264
+ { id: "8", name: "Details Data", category: "Data Display", interactive: true, streaming: true, status: "Stable" },
265
+ { id: "9", name: "Alert", category: "User Interaction", interactive: true, streaming: true, status: "Stable" },
266
+ { id: "10", name: "Custom", category: "Custom", interactive: true, streaming: true, status: "Coming Soon" },
267
+ ],
268
+ pageSize: 10,
269
+ },
270
+ clickQuery: "Show me a live demo of [name]",
271
+ },
272
+ ],
81
273
  },
274
+ // ── Self-Referential: Integration Comparison ────────────────────────────
82
275
  {
83
- id: "sc-005",
84
- name: "Developer Docs Explorer",
85
- industry: "Developer Tools",
86
- description: "Interactive API documentation explorer where developers ask questions in natural language " +
87
- "and receive structured responses endpoint details as key-value cards, architecture diagrams " +
88
- "as images, code examples in chat bubbles, and quick-action buttons for common operations.",
89
- integrationMethod: "MCP",
90
- aiProvider: "Anthropic (Claude)",
91
- componentsUsed: ["header", "details-data", "chat-bubble", "button", "image", "alert"],
92
- screensConfigured: 3,
93
- expectedResults: {
94
- engagementLift: 41,
95
- responseTimeMs: 130,
96
- userSatisfaction: 4.5,
97
- monthlyInteractions: 156_000,
98
- },
99
- tags: ["devtools", "documentation", "API", "interactive"],
276
+ id: "integration-comparison",
277
+ name: "Integration Methods Comparison",
278
+ description: "Side-by-side comparison of BranderUX's three integration methods (SDK, MCP Tools, Embed) " +
279
+ "rendered as BranderUX elements demonstrating the product while explaining how to use it.",
280
+ dataStrategy: "Self-referentialSDK vs MCP vs Embed comparison",
281
+ elementsUsed: ["header", "stats-grid", "details-data", "alert", "button"],
282
+ demonstratesFeatures: [
283
+ "Stats grid comparing integration metrics",
284
+ "Details data with grouped features per method",
285
+ "Alert highlighting the recommended approach",
286
+ "CTA buttons for each integration method",
287
+ ],
288
+ screenElements: [
289
+ {
290
+ elementType: "header",
291
+ props: { title: "Integration Methods", subtitle: "Three ways to add BranderUX to your application" },
292
+ },
293
+ {
294
+ elementType: "stats-grid",
295
+ props: {
296
+ stats: [
297
+ { id: "sdk", title: "SDK", value: "5 min", subtitle: "React/Next.js — full-featured" },
298
+ { id: "mcp", title: "MCP Tools", value: "10 min", subtitle: "MCP servers — Claude/ChatGPT" },
299
+ { id: "embed", title: "Embed", value: "2 min", subtitle: "Any web app — zero dependencies" },
300
+ ],
301
+ },
302
+ clickQuery: "Show me the full integration guide for [title]",
303
+ },
304
+ {
305
+ elementType: "details-data",
306
+ props: {
307
+ items: [
308
+ { id: "i1", title: "Package", value: "@brander/sdk", type: "text", category: "SDK" },
309
+ { id: "i2", title: "Best For", value: "React apps with AI chat assistants", type: "text", category: "SDK" },
310
+ { id: "i3", title: "Key Feature", value: "AG-UI streaming with built-in adapters for 3 AI providers", type: "text", category: "SDK" },
311
+ { id: "i4", title: "Package", value: "@brander/mcp-tools", type: "text", category: "MCP Tools" },
312
+ { id: "i5", title: "Best For", value: "Claude Desktop, Claude.ai, ChatGPT integrations", type: "text", category: "MCP Tools" },
313
+ { id: "i6", title: "Key Feature", value: "Single function call — registerBranderTools(server, config)", type: "text", category: "MCP Tools" },
314
+ { id: "i7", title: "Setup", value: "iframe with token-based auth", type: "text", category: "Embed" },
315
+ { id: "i8", title: "Best For", value: "Any web app — no framework requirements", type: "text", category: "Embed" },
316
+ { id: "i9", title: "Key Feature", value: "Zero dependencies — PostMessage API for two-way communication", type: "text", category: "Embed" },
317
+ ],
318
+ },
319
+ clickQuery: "Tell me more about [category] integration",
320
+ },
321
+ {
322
+ elementType: "alert",
323
+ props: {
324
+ id: "recommendation",
325
+ severity: "info",
326
+ title: "Recommended",
327
+ message: "For React/Next.js apps, start with the SDK — it gives you the most control with built-in streaming, adapters, and chat widget. For MCP ecosystems, use MCP Tools for the fastest setup.",
328
+ actionText: "View SDK Guide",
329
+ actionQuery: "Show me the SDK integration guide with code examples",
330
+ },
331
+ },
332
+ {
333
+ elementType: "button",
334
+ props: {
335
+ id: "compare-detail",
336
+ label: "Compare All Features",
337
+ variant: "primary",
338
+ type: "action",
339
+ action: "Show me a detailed comparison table of all three integration methods with features, limitations, and code examples",
340
+ },
341
+ },
342
+ ],
100
343
  },
344
+ // ── Generic Business: Analytics Report ──────────────────────────────────
101
345
  {
102
- id: "sc-006",
103
- name: "EdTech Learning Dashboard",
104
- industry: "Education",
105
- description: "Student progress tracking and course recommendation system. Teachers view class performance " +
106
- "through stats grids and line charts, browse course catalogs with item grids, and configure " +
107
- "assignment settings through forms — all AI-driven with branded visuals.",
108
- integrationMethod: "Embed",
109
- aiProvider: "OpenAI (GPT)",
110
- componentsUsed: ["header", "stats-grid", "line-chart", "item-grid", "pie-chart", "form"],
111
- screensConfigured: 4,
112
- expectedResults: {
113
- engagementLift: 52,
114
- responseTimeMs: 200,
115
- userSatisfaction: 4.7,
116
- monthlyInteractions: 67_000,
117
- },
118
- tags: ["education", "progress-tracking", "courses", "analytics"],
119
- },
120
- {
121
- id: "sc-007",
122
- name: "Insurance Claims Processor",
123
- industry: "Insurance",
124
- description: "Claims processing dashboard with approval workflows. Adjusters view claim details " +
125
- "through structured cards, manage workload via data tables, submit evaluations through " +
126
- "forms, and receive priority alerts reducing manual processing time significantly.",
127
- integrationMethod: "SDK",
128
- aiProvider: "Anthropic (Claude)",
129
- componentsUsed: ["header", "data-table", "details-data", "form", "stats-grid", "alert", "button"],
130
- screensConfigured: 6,
131
- expectedResults: {
132
- engagementLift: 59,
133
- responseTimeMs: 250,
134
- userSatisfaction: 4.8,
135
- monthlyInteractions: 94_000,
136
- },
137
- tags: ["insurance", "claims", "workflows", "processing"],
138
- },
139
- {
140
- id: "sc-008",
141
- name: "Marketing Campaign Dashboard",
142
- industry: "Marketing & Analytics",
143
- description: "Campaign performance dashboard with real-time metrics. Marketers ask about campaign ROI " +
144
- "and receive stats grids with KPIs, line charts showing trends over time, pie charts for " +
145
- "channel distribution, and bar charts comparing A/B test results.",
146
- integrationMethod: "Embed",
147
- aiProvider: "OpenAI (GPT)",
148
- componentsUsed: ["header", "stats-grid", "line-chart", "bar-chart", "pie-chart", "data-table"],
149
- screensConfigured: 3,
150
- expectedResults: {
151
- engagementLift: 44,
152
- responseTimeMs: 175,
153
- userSatisfaction: 4.6,
154
- monthlyInteractions: 183_000,
155
- },
156
- tags: ["marketing", "campaigns", "real-time", "ROI"],
157
- },
158
- {
159
- id: "sc-009",
160
- name: "Smart Grid Energy Monitor",
161
- industry: "Energy & Utilities",
162
- description: "Smart grid monitoring with consumption analytics and anomaly detection. Operators view " +
163
- "real-time consumption trends, compare regional performance with bar charts, and receive " +
164
- "visual anomaly alerts before issues escalate — all through AI-driven branded interfaces.",
165
- integrationMethod: "MCP",
166
- aiProvider: "Google (Gemini)",
167
- componentsUsed: ["header", "stats-grid", "line-chart", "bar-chart", "alert", "image"],
168
- screensConfigured: 3,
169
- expectedResults: {
170
- engagementLift: 48,
171
- responseTimeMs: 210,
172
- userSatisfaction: 4.5,
173
- monthlyInteractions: 42_000,
174
- },
175
- tags: ["energy", "monitoring", "anomaly-detection", "real-time"],
176
- },
177
- {
178
- id: "sc-010",
179
- name: "SaaS CRM Pipeline Manager",
180
- industry: "SaaS / CRM",
181
- description: "Customer relationship management with visual pipeline tracking. Sales teams ask about " +
182
- "deal status and receive pipeline visualizations as pie charts, lead tables with status " +
183
- "chips, customer detail cards, and grid views of accounts — all branded to match the CRM.",
184
- integrationMethod: "SDK",
185
- aiProvider: "Anthropic (Claude)",
186
- componentsUsed: ["header", "stats-grid", "data-table", "pie-chart", "details-data", "item-grid"],
187
- screensConfigured: 5,
188
- expectedResults: {
189
- engagementLift: 51,
190
- responseTimeMs: 165,
191
- userSatisfaction: 4.7,
192
- monthlyInteractions: 137_000,
193
- },
194
- tags: ["SaaS", "CRM", "pipeline", "sales"],
346
+ id: "analytics-report",
347
+ name: "Analytics Report",
348
+ description: "A multi-chart analytics layout showing how BranderUX handles complex data visualization. " +
349
+ "This is what your customers could see when asking their AI for performance insights.",
350
+ dataStrategy: "Generic business example build reports like this",
351
+ elementsUsed: ["header", "stats-grid", "bar-chart", "pie-chart", "line-chart"],
352
+ demonstratesFeatures: [
353
+ "Multiple chart types in one screen",
354
+ "KPI overview with trend indicators",
355
+ "Interactive charts with drill-down queries",
356
+ "Cohesive branded layout for analytics",
357
+ ],
358
+ screenElements: [
359
+ {
360
+ elementType: "header",
361
+ props: { title: "Performance Analytics", subtitle: "Q1 2026 — Website & Product Metrics" },
362
+ },
363
+ {
364
+ elementType: "stats-grid",
365
+ props: {
366
+ stats: [
367
+ { id: "visitors", title: "Unique Visitors", value: "284K", period: "This Quarter", trend: { direction: "up", percentage: "18%" } },
368
+ { id: "signups", title: "New Sign-ups", value: "12,847", period: "This Quarter", trend: { direction: "up", percentage: "23%" } },
369
+ { id: "churn", title: "Churn Rate", value: "2.1%", period: "This Quarter", trend: { direction: "up", percentage: "0.3%" } },
370
+ { id: "nps", title: "NPS Score", value: "72", period: "This Quarter", trend: { direction: "up", percentage: "5" } },
371
+ ],
372
+ },
373
+ clickQuery: "Show me a deep dive into [title]",
374
+ },
375
+ {
376
+ elementType: "bar-chart",
377
+ props: {
378
+ title: "Sign-ups by Channel",
379
+ categories: ["Organic Search", "Social Media", "Referral", "Direct", "Paid Ads"],
380
+ series: [
381
+ { name: "Q4 2025", data: [3200, 2100, 1800, 1400, 900] },
382
+ { name: "Q1 2026", data: [4100, 2800, 2200, 1900, 1200] },
383
+ ],
384
+ },
385
+ clickQuery: "Show me details for [seriesName] [category] sign-ups",
386
+ },
387
+ {
388
+ elementType: "pie-chart",
389
+ props: {
390
+ title: "User Distribution by Plan",
391
+ labels: ["Free", "Starter", "Pro", "Enterprise"],
392
+ data: [45, 28, 19, 8],
393
+ },
394
+ clickQuery: "Show me details about [label] plan users",
395
+ },
396
+ {
397
+ elementType: "line-chart",
398
+ props: {
399
+ title: "Weekly Active Users",
400
+ labels: ["W1 Jan", "W2 Jan", "W3 Jan", "W4 Jan", "W1 Feb", "W2 Feb", "W3 Feb", "W4 Feb", "W1 Mar", "W2 Mar"],
401
+ data: [8200, 8500, 8900, 9100, 9400, 9200, 9800, 10100, 10500, 10900],
402
+ },
403
+ clickQuery: "What happened during [label]?",
404
+ },
405
+ ],
195
406
  },
196
407
  ];
408
+ // ============================================================================
409
+ // HANDLER
410
+ // ============================================================================
411
+ export function getScenarioList() {
412
+ return {
413
+ totalScenarios: SCENARIOS.length,
414
+ scenarios: SCENARIOS.map((s) => ({
415
+ id: s.id,
416
+ name: s.name,
417
+ description: s.description,
418
+ dataStrategy: s.dataStrategy,
419
+ elementsUsed: s.elementsUsed,
420
+ elementCount: s.elementsUsed.length,
421
+ })),
422
+ tip: "Use get_demo_scenario with a specific scenario ID to get the full renderable screen. " +
423
+ "Pass the screenElements array directly to generate_screen to render it.",
424
+ };
425
+ }
426
+ export function getScenarioDetail(scenarioId) {
427
+ const scenario = SCENARIOS.find((s) => s.id === scenarioId || s.name.toLowerCase() === scenarioId.toLowerCase());
428
+ if (!scenario)
429
+ return null;
430
+ return {
431
+ scenario: {
432
+ id: scenario.id,
433
+ name: scenario.name,
434
+ description: scenario.description,
435
+ dataStrategy: scenario.dataStrategy,
436
+ elementsUsed: scenario.elementsUsed,
437
+ elementCount: scenario.elementsUsed.length,
438
+ demonstratesFeatures: scenario.demonstratesFeatures,
439
+ screenElements: scenario.screenElements,
440
+ },
441
+ renderInstructions: "Pass the screenElements array directly to generate_screen's elements parameter to render this demo.",
442
+ };
443
+ }