@brander/mcp-demo 0.1.15 → 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.
- package/dist/create-server.js +11 -9
- package/dist/data/elements.d.ts +20 -0
- package/dist/data/elements.js +426 -0
- package/dist/data/integrations.d.ts +7 -15
- package/dist/data/integrations.js +104 -120
- package/dist/data/platform.d.ts +36 -0
- package/dist/data/platform.js +276 -0
- package/dist/data/scenarios.d.ts +12 -14
- package/dist/data/scenarios.js +427 -180
- package/dist/tools/demo-scenarios.d.ts +2 -0
- package/dist/tools/demo-scenarios.js +39 -0
- package/dist/tools/element-showcase.d.ts +2 -0
- package/dist/tools/element-showcase.js +61 -0
- package/dist/tools/integration-guide.d.ts +2 -0
- package/dist/tools/integration-guide.js +20 -0
- package/dist/tools/platform-overview.d.ts +2 -0
- package/dist/tools/platform-overview.js +23 -0
- package/package.json +2 -2
- package/dist/data/components.d.ts +0 -15
- package/dist/data/components.js +0 -300
- package/dist/data/platform-analytics.d.ts +0 -47
- package/dist/data/platform-analytics.js +0 -176
- package/dist/tools/capability-tools.d.ts +0 -2
- package/dist/tools/capability-tools.js +0 -98
- package/dist/tools/component-tools.d.ts +0 -2
- package/dist/tools/component-tools.js +0 -109
- package/dist/tools/platform-tools.d.ts +0 -2
- package/dist/tools/platform-tools.js +0 -123
- package/dist/tools/scenario-tools.d.ts +0 -2
- package/dist/tools/scenario-tools.js +0 -113
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { getScenarioList, getScenarioDetail, SCENARIOS } from "../data/scenarios.js";
|
|
3
|
+
export function registerDemoScenarioTool(server) {
|
|
4
|
+
server.registerTool("get_demo_scenario", {
|
|
5
|
+
description: "Get ready-to-render demo scenarios showing how BranderUX elements compose into real business screens. " +
|
|
6
|
+
"Each scenario includes a complete array of elements with sample data that can be passed directly " +
|
|
7
|
+
"to generate_screen. Includes both generic business demos (dashboards, catalogs) and BranderUX " +
|
|
8
|
+
"self-referential showcases (platform overview, element library, integration comparison). " +
|
|
9
|
+
"Omit the scenario parameter to list all available scenarios.",
|
|
10
|
+
inputSchema: z.object({
|
|
11
|
+
scenario: z
|
|
12
|
+
.string()
|
|
13
|
+
.optional()
|
|
14
|
+
.describe("Scenario to retrieve: 'sales-dashboard', 'product-catalog', 'branderux-overview', " +
|
|
15
|
+
"'element-showcase', 'integration-comparison', 'analytics-report'. " +
|
|
16
|
+
"Omit to list all available scenarios with descriptions."),
|
|
17
|
+
}),
|
|
18
|
+
}, async (input) => {
|
|
19
|
+
let result;
|
|
20
|
+
if (!input.scenario) {
|
|
21
|
+
result = getScenarioList();
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
const detail = getScenarioDetail(input.scenario);
|
|
25
|
+
if (!detail) {
|
|
26
|
+
result = {
|
|
27
|
+
error: `Unknown scenario: ${input.scenario}`,
|
|
28
|
+
availableScenarios: SCENARIOS.map((s) => s.id),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
result = detail;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { getElementSummary, getElementDetail, getElementsByCategory } from "../data/elements.js";
|
|
3
|
+
export function registerElementShowcaseTool(server) {
|
|
4
|
+
server.registerTool("explore_elements", {
|
|
5
|
+
description: "Explore BranderUX's 15 built-in interactive element types. Returns element descriptions, " +
|
|
6
|
+
"use cases, and realistic sample data that can be passed directly to generate_screen to " +
|
|
7
|
+
"demonstrate each element live. Use without parameters to see all elements, specify an " +
|
|
8
|
+
"element_type for full details with renderable sample data, or filter by category.",
|
|
9
|
+
inputSchema: z.object({
|
|
10
|
+
element_type: z
|
|
11
|
+
.string()
|
|
12
|
+
.optional()
|
|
13
|
+
.describe("Specific element to explore: 'header', 'stats-grid', 'data-table', 'line-chart', " +
|
|
14
|
+
"'pie-chart', 'bar-chart', 'item-grid', 'item-card', 'image', 'video', " +
|
|
15
|
+
"'details-data', 'chat-bubble', 'form', 'button', 'alert'. " +
|
|
16
|
+
"Omit to get a summary of all elements."),
|
|
17
|
+
category: z
|
|
18
|
+
.string()
|
|
19
|
+
.optional()
|
|
20
|
+
.describe("Filter by category: 'Data Visualization' (charts), 'Data Display' (tables, grids), " +
|
|
21
|
+
"'Content & Media' (image, video, chat), 'User Interaction' (form, button, alert), 'Layout' (header). " +
|
|
22
|
+
"Ignored if element_type is provided."),
|
|
23
|
+
}),
|
|
24
|
+
}, async (input) => {
|
|
25
|
+
let result;
|
|
26
|
+
if (input.element_type) {
|
|
27
|
+
const detail = getElementDetail(input.element_type);
|
|
28
|
+
if (!detail) {
|
|
29
|
+
result = {
|
|
30
|
+
error: `Unknown element type: ${input.element_type}`,
|
|
31
|
+
availableTypes: [
|
|
32
|
+
"header", "stats-grid", "data-table", "line-chart", "pie-chart",
|
|
33
|
+
"bar-chart", "item-grid", "item-card", "image", "video",
|
|
34
|
+
"details-data", "chat-bubble", "form", "button", "alert",
|
|
35
|
+
],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
result = detail;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else if (input.category) {
|
|
43
|
+
const categoryResult = getElementsByCategory(input.category);
|
|
44
|
+
if (!categoryResult) {
|
|
45
|
+
result = {
|
|
46
|
+
error: `Unknown category: ${input.category}`,
|
|
47
|
+
availableCategories: ["Data Visualization", "Data Display", "Content & Media", "User Interaction", "Layout"],
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
result = categoryResult;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
result = getElementSummary();
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { getIntegrationData } from "../data/integrations.js";
|
|
3
|
+
export function registerIntegrationGuideTool(server) {
|
|
4
|
+
server.registerTool("get_integration_guide", {
|
|
5
|
+
description: "Get step-by-step integration guide for adding BranderUX to your application. " +
|
|
6
|
+
"Returns real code examples, setup instructions, requirements, and feature lists. " +
|
|
7
|
+
"Three methods: SDK (React component), MCP Tools (MCP server library), Embed (iframe). " +
|
|
8
|
+
"Use 'compare' to see all three side-by-side.",
|
|
9
|
+
inputSchema: z.object({
|
|
10
|
+
method: z
|
|
11
|
+
.enum(["sdk", "mcp", "embed", "compare"])
|
|
12
|
+
.describe("'sdk' for React/Next.js apps with full AI streaming. " +
|
|
13
|
+
"'mcp' for MCP servers (Claude Desktop, Claude.ai, ChatGPT). " +
|
|
14
|
+
"'embed' for any web app with zero dependencies. " +
|
|
15
|
+
"'compare' for a side-by-side comparison of all three methods."),
|
|
16
|
+
}),
|
|
17
|
+
}, async (input) => ({
|
|
18
|
+
content: [{ type: "text", text: JSON.stringify(getIntegrationData(input.method), null, 2) }],
|
|
19
|
+
}));
|
|
20
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { getPlatformData } from "../data/platform.js";
|
|
3
|
+
export function registerPlatformOverviewTool(server) {
|
|
4
|
+
server.registerTool("learn_about_branderux", {
|
|
5
|
+
description: "Get a comprehensive overview of the BranderUX platform — the AI-UX middleware that transforms " +
|
|
6
|
+
"AI responses into branded, interactive UI. Returns the product description, value proposition, " +
|
|
7
|
+
"integration methods (SDK, MCP Tools, Embed), UI generation modes (Fixed Screens, A2UI, MCP App), " +
|
|
8
|
+
"AI features (streaming, click-to-query, multi-provider), and no-code capabilities. " +
|
|
9
|
+
"Call this first to understand what BranderUX is before demonstrating elements.",
|
|
10
|
+
inputSchema: z.object({
|
|
11
|
+
topic: z
|
|
12
|
+
.enum(["overview", "integration", "modes", "ai-features", "no-code"])
|
|
13
|
+
.optional()
|
|
14
|
+
.describe("Optional focus area. 'overview' returns everything (default). " +
|
|
15
|
+
"'integration' focuses on SDK/MCP/Embed methods. " +
|
|
16
|
+
"'modes' explains Fixed Screens vs A2UI vs MCP App. " +
|
|
17
|
+
"'ai-features' details screen selection, streaming, click-to-query, brand generation. " +
|
|
18
|
+
"'no-code' explains the PM-driven workflow and dashboard capabilities."),
|
|
19
|
+
}),
|
|
20
|
+
}, async (input) => ({
|
|
21
|
+
content: [{ type: "text", text: JSON.stringify(getPlatformData(input.topic), null, 2) }],
|
|
22
|
+
}));
|
|
23
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brander/mcp-demo",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.17",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "BranderUX Demo — Explore BranderUX capabilities through branded UI",
|
|
6
6
|
"bin": {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"start": "node dist/index.js"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@brander/mcp-tools": "^0.2.
|
|
27
|
+
"@brander/mcp-tools": "^0.2.18",
|
|
28
28
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
29
29
|
"zod": "^4.3.6"
|
|
30
30
|
},
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export interface BranderComponent {
|
|
2
|
-
id: string;
|
|
3
|
-
name: string;
|
|
4
|
-
elementType: string;
|
|
5
|
-
category: string;
|
|
6
|
-
description: string;
|
|
7
|
-
popularityScore: number;
|
|
8
|
-
usageCount: number;
|
|
9
|
-
props: string[];
|
|
10
|
-
useCases: string[];
|
|
11
|
-
bestFor: string[];
|
|
12
|
-
exampleQuery: string;
|
|
13
|
-
status: "stable" | "beta" | "new" | "coming-soon";
|
|
14
|
-
}
|
|
15
|
-
export declare const COMPONENTS: BranderComponent[];
|
package/dist/data/components.js
DELETED
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
// ============================================================================
|
|
2
|
-
// BranderUX Demo — Components
|
|
3
|
-
// ============================================================================
|
|
4
|
-
export const COMPONENTS = [
|
|
5
|
-
// --- Structure & Navigation ---
|
|
6
|
-
{
|
|
7
|
-
id: "comp-header",
|
|
8
|
-
name: "Header",
|
|
9
|
-
elementType: "header",
|
|
10
|
-
category: "Structure & Navigation",
|
|
11
|
-
description: "Page header with title, subtitle, and optional actions. The first element rendered on every screen — sets context and branding for the entire view.",
|
|
12
|
-
popularityScore: 98,
|
|
13
|
-
usageCount: 45200,
|
|
14
|
-
props: ["title", "subtitle"],
|
|
15
|
-
useCases: [
|
|
16
|
-
"Dashboard page titles",
|
|
17
|
-
"Section headers with subtitles",
|
|
18
|
-
"Branded welcome messages",
|
|
19
|
-
],
|
|
20
|
-
bestFor: ["all-screens", "navigation", "branding"],
|
|
21
|
-
exampleQuery: "Show me the page header for my dashboard",
|
|
22
|
-
status: "stable",
|
|
23
|
-
},
|
|
24
|
-
// --- Data & Analytics ---
|
|
25
|
-
{
|
|
26
|
-
id: "comp-stats-grid",
|
|
27
|
-
name: "StatsGrid",
|
|
28
|
-
elementType: "stats-grid",
|
|
29
|
-
category: "Data & Analytics",
|
|
30
|
-
description: "Grid of KPI metric cards with trend indicators. Each stat shows a title, value, and optional trend (up/down with percentage). Perfect for executive summaries and dashboard overviews.",
|
|
31
|
-
popularityScore: 95,
|
|
32
|
-
usageCount: 38400,
|
|
33
|
-
props: ["stats[].id", "stats[].title", "stats[].value", "stats[].trend.direction", "stats[].trend.percentage"],
|
|
34
|
-
useCases: [
|
|
35
|
-
"Executive dashboard KPIs",
|
|
36
|
-
"Revenue and growth metrics",
|
|
37
|
-
"Real-time operational status",
|
|
38
|
-
],
|
|
39
|
-
bestFor: ["dashboards", "analytics", "KPIs"],
|
|
40
|
-
exampleQuery: "Show me key metrics for my platform",
|
|
41
|
-
status: "stable",
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
id: "comp-data-table",
|
|
45
|
-
name: "DataTable",
|
|
46
|
-
elementType: "data-table",
|
|
47
|
-
category: "Data & Analytics",
|
|
48
|
-
description: "Dynamic sortable and filterable table with built-in search. Handles pagination, multiple column types (text, number, status, date, currency), and row click actions that trigger new AI queries.",
|
|
49
|
-
popularityScore: 92,
|
|
50
|
-
usageCount: 41300,
|
|
51
|
-
props: ["title", "columns[].key", "columns[].label", "rows[]", "pageSize"],
|
|
52
|
-
useCases: [
|
|
53
|
-
"Order and transaction lists",
|
|
54
|
-
"User management tables",
|
|
55
|
-
"Inventory tracking",
|
|
56
|
-
],
|
|
57
|
-
bestFor: ["admin-panels", "CRMs", "data-management"],
|
|
58
|
-
exampleQuery: "Show me a table of recent transactions",
|
|
59
|
-
status: "stable",
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
id: "comp-line-chart",
|
|
63
|
-
name: "LineChart",
|
|
64
|
-
elementType: "line-chart",
|
|
65
|
-
category: "Data & Analytics",
|
|
66
|
-
description: "Time-series line chart for visualizing trends over time. Supports tooltips, labeled axes, and click-to-query on data points for deeper exploration.",
|
|
67
|
-
popularityScore: 88,
|
|
68
|
-
usageCount: 29800,
|
|
69
|
-
props: ["title", "labels[]", "data[]"],
|
|
70
|
-
useCases: [
|
|
71
|
-
"Revenue growth over time",
|
|
72
|
-
"User acquisition trends",
|
|
73
|
-
"Performance monitoring",
|
|
74
|
-
],
|
|
75
|
-
bestFor: ["analytics", "trends", "forecasting"],
|
|
76
|
-
exampleQuery: "Show me revenue growth over the last 6 months",
|
|
77
|
-
status: "stable",
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
id: "comp-pie-chart",
|
|
81
|
-
name: "PieChart",
|
|
82
|
-
elementType: "pie-chart",
|
|
83
|
-
category: "Data & Analytics",
|
|
84
|
-
description: "Proportional data visualization with labeled segments. Ideal for showing category breakdowns and distribution. Each segment is clickable for drill-down queries.",
|
|
85
|
-
popularityScore: 82,
|
|
86
|
-
usageCount: 22100,
|
|
87
|
-
props: ["title", "data[].label", "data[].value"],
|
|
88
|
-
useCases: [
|
|
89
|
-
"Market share breakdown",
|
|
90
|
-
"Category distribution",
|
|
91
|
-
"Budget allocation",
|
|
92
|
-
],
|
|
93
|
-
bestFor: ["breakdowns", "distribution", "reports"],
|
|
94
|
-
exampleQuery: "Show me the breakdown of users by region",
|
|
95
|
-
status: "stable",
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
id: "comp-bar-chart",
|
|
99
|
-
name: "BarChart",
|
|
100
|
-
elementType: "bar-chart",
|
|
101
|
-
category: "Data & Analytics",
|
|
102
|
-
description: "Comparative bar chart with multiple series support. Can be stacked or grouped with legend and interactive click behaviors. Great for side-by-side comparisons.",
|
|
103
|
-
popularityScore: 79,
|
|
104
|
-
usageCount: 18600,
|
|
105
|
-
props: ["title", "categories[]", "series[].name", "series[].data[]"],
|
|
106
|
-
useCases: [
|
|
107
|
-
"Quarterly revenue comparison",
|
|
108
|
-
"Feature usage across segments",
|
|
109
|
-
"A/B test result visualization",
|
|
110
|
-
],
|
|
111
|
-
bestFor: ["comparisons", "benchmarks", "multi-metric"],
|
|
112
|
-
exampleQuery: "Compare feature usage across different segments",
|
|
113
|
-
status: "stable",
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
id: "comp-details-data",
|
|
117
|
-
name: "DetailsData",
|
|
118
|
-
elementType: "details-data",
|
|
119
|
-
category: "Data & Analytics",
|
|
120
|
-
description: "Structured key-value detail cards grouped by category. Shows status chips, prices, dates, and text fields with semantic coloring. Perfect for entity detail views.",
|
|
121
|
-
popularityScore: 90,
|
|
122
|
-
usageCount: 35200,
|
|
123
|
-
props: ["items[].id", "items[].title", "items[].value", "items[].type", "items[].category"],
|
|
124
|
-
useCases: [
|
|
125
|
-
"Order detail pages",
|
|
126
|
-
"User profile summaries",
|
|
127
|
-
"Product specifications",
|
|
128
|
-
],
|
|
129
|
-
bestFor: ["detail-pages", "profiles", "specifications"],
|
|
130
|
-
exampleQuery: "Show me the details for this order",
|
|
131
|
-
status: "stable",
|
|
132
|
-
},
|
|
133
|
-
// --- Content & Media ---
|
|
134
|
-
{
|
|
135
|
-
id: "comp-item-grid",
|
|
136
|
-
name: "ItemGrid",
|
|
137
|
-
elementType: "item-grid",
|
|
138
|
-
category: "Content & Media",
|
|
139
|
-
description: "Responsive grid of cards with images, titles, descriptions, and metadata. Built-in search, pagination, and click-to-query on each card for drill-down navigation.",
|
|
140
|
-
popularityScore: 93,
|
|
141
|
-
usageCount: 39700,
|
|
142
|
-
props: ["title", "items[].id", "items[].title", "items[].subtitle", "items[].image"],
|
|
143
|
-
useCases: [
|
|
144
|
-
"Product catalog browsing",
|
|
145
|
-
"Team member directory",
|
|
146
|
-
"Content library",
|
|
147
|
-
],
|
|
148
|
-
bestFor: ["catalogs", "product-pages", "galleries"],
|
|
149
|
-
exampleQuery: "Browse all available products",
|
|
150
|
-
status: "stable",
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
id: "comp-item-card",
|
|
154
|
-
name: "ItemCard",
|
|
155
|
-
elementType: "item-card",
|
|
156
|
-
category: "Content & Media",
|
|
157
|
-
description: "Individual card component with image, title, subtitle, and optional metadata. Used standalone for featured items or as building blocks within an ItemGrid.",
|
|
158
|
-
popularityScore: 85,
|
|
159
|
-
usageCount: 28400,
|
|
160
|
-
props: ["title", "subtitle", "image", "metadata"],
|
|
161
|
-
useCases: [
|
|
162
|
-
"Featured product spotlight",
|
|
163
|
-
"Highlighted announcement",
|
|
164
|
-
"Hero content card",
|
|
165
|
-
],
|
|
166
|
-
bestFor: ["featured-items", "spotlights", "highlights"],
|
|
167
|
-
exampleQuery: "Show me the featured product",
|
|
168
|
-
status: "stable",
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
id: "comp-image",
|
|
172
|
-
name: "Image",
|
|
173
|
-
elementType: "image",
|
|
174
|
-
category: "Content & Media",
|
|
175
|
-
description: "Responsive image display with alt text, captions, and configurable sizing. Supports cover and contain fit modes for flexible visual presentation.",
|
|
176
|
-
popularityScore: 76,
|
|
177
|
-
usageCount: 15400,
|
|
178
|
-
props: ["src", "alt", "caption", "fit"],
|
|
179
|
-
useCases: [
|
|
180
|
-
"Architecture diagrams",
|
|
181
|
-
"Product screenshots",
|
|
182
|
-
"Visual documentation",
|
|
183
|
-
],
|
|
184
|
-
bestFor: ["media", "illustrations", "screenshots"],
|
|
185
|
-
exampleQuery: "Show me the architecture diagram",
|
|
186
|
-
status: "stable",
|
|
187
|
-
},
|
|
188
|
-
// --- Communication ---
|
|
189
|
-
{
|
|
190
|
-
id: "comp-chat-bubble",
|
|
191
|
-
name: "ChatBubble",
|
|
192
|
-
elementType: "chat-bubble",
|
|
193
|
-
category: "Communication",
|
|
194
|
-
description: "Text message bubble for conversational AI responses. Supports full markdown rendering including headings, lists, code blocks, and links for rich formatted content.",
|
|
195
|
-
popularityScore: 74,
|
|
196
|
-
usageCount: 12800,
|
|
197
|
-
props: ["message"],
|
|
198
|
-
useCases: [
|
|
199
|
-
"AI explanations and summaries",
|
|
200
|
-
"Conversational responses",
|
|
201
|
-
"Text-heavy content display",
|
|
202
|
-
],
|
|
203
|
-
bestFor: ["explanations", "AI-responses", "text-heavy"],
|
|
204
|
-
exampleQuery: "Explain how this feature works",
|
|
205
|
-
status: "stable",
|
|
206
|
-
},
|
|
207
|
-
{
|
|
208
|
-
id: "comp-alert",
|
|
209
|
-
name: "Alert",
|
|
210
|
-
elementType: "alert",
|
|
211
|
-
category: "Communication",
|
|
212
|
-
description: "Notification banner for success, error, warning, and info messages. Supports action buttons with click-to-query and dismissible states. Draws attention to important information.",
|
|
213
|
-
popularityScore: 80,
|
|
214
|
-
usageCount: 16900,
|
|
215
|
-
props: ["title", "message", "severity", "actionLabel", "actionQuery"],
|
|
216
|
-
useCases: [
|
|
217
|
-
"Low stock warnings",
|
|
218
|
-
"Success confirmations",
|
|
219
|
-
"System status notifications",
|
|
220
|
-
],
|
|
221
|
-
bestFor: ["notifications", "warnings", "system-status"],
|
|
222
|
-
exampleQuery: "Are there any system alerts?",
|
|
223
|
-
status: "stable",
|
|
224
|
-
},
|
|
225
|
-
// --- User Interaction ---
|
|
226
|
-
{
|
|
227
|
-
id: "comp-form",
|
|
228
|
-
name: "Form",
|
|
229
|
-
elementType: "form",
|
|
230
|
-
category: "User Interaction",
|
|
231
|
-
description: "Dynamic form with text, email, date, number, select, textarea, and checkbox field types. Includes client-side validation, submit actions, and field-level event handling.",
|
|
232
|
-
popularityScore: 71,
|
|
233
|
-
usageCount: 11200,
|
|
234
|
-
props: ["title", "fields[].name", "fields[].label", "fields[].type", "submitLabel"],
|
|
235
|
-
useCases: [
|
|
236
|
-
"Configuration forms",
|
|
237
|
-
"Contact and feedback forms",
|
|
238
|
-
"Data entry interfaces",
|
|
239
|
-
],
|
|
240
|
-
bestFor: ["data-entry", "configuration", "onboarding"],
|
|
241
|
-
exampleQuery: "Let me configure my project settings",
|
|
242
|
-
status: "stable",
|
|
243
|
-
},
|
|
244
|
-
{
|
|
245
|
-
id: "comp-button",
|
|
246
|
-
name: "Button",
|
|
247
|
-
elementType: "button",
|
|
248
|
-
category: "User Interaction",
|
|
249
|
-
description: "Interactive button with two behaviors: action (sends a query back to AI on click) or link (opens a URL). Three visual variants: primary, secondary, and tertiary.",
|
|
250
|
-
popularityScore: 78,
|
|
251
|
-
usageCount: 14300,
|
|
252
|
-
props: ["label", "action", "variant", "url"],
|
|
253
|
-
useCases: [
|
|
254
|
-
"Call-to-action buttons",
|
|
255
|
-
"Navigation actions",
|
|
256
|
-
"External link buttons",
|
|
257
|
-
],
|
|
258
|
-
bestFor: ["CTAs", "navigation", "actions"],
|
|
259
|
-
exampleQuery: "Show me actions I can take",
|
|
260
|
-
status: "stable",
|
|
261
|
-
},
|
|
262
|
-
{
|
|
263
|
-
id: "comp-video",
|
|
264
|
-
name: "VideoPlayer",
|
|
265
|
-
elementType: "video",
|
|
266
|
-
category: "Content & Media",
|
|
267
|
-
description: "Embedded video player supporting YouTube URLs and direct mp4/webm files. Configurable aspect ratios (16:9, 4:3, 1:1), optional autoplay, and a Discuss button that sends an AI query about the video content.",
|
|
268
|
-
popularityScore: 68,
|
|
269
|
-
usageCount: 8200,
|
|
270
|
-
props: ["id", "src", "title", "description", "action", "aspectRatio", "autoplay"],
|
|
271
|
-
useCases: [
|
|
272
|
-
"Product demo videos",
|
|
273
|
-
"Tutorial and onboarding content",
|
|
274
|
-
"Marketing campaign previews",
|
|
275
|
-
],
|
|
276
|
-
bestFor: ["tutorials", "demos", "media-rich"],
|
|
277
|
-
exampleQuery: "Show me the product demo video",
|
|
278
|
-
status: "stable",
|
|
279
|
-
},
|
|
280
|
-
// --- Coming Soon ---
|
|
281
|
-
{
|
|
282
|
-
id: "comp-custom",
|
|
283
|
-
name: "Custom Elements (Vibe Coding)",
|
|
284
|
-
elementType: "custom",
|
|
285
|
-
category: "Customization",
|
|
286
|
-
description: "Create your own custom element types using AI-assisted vibe coding. Describe the component you need in natural language, and BranderUX generates a fully functional, branded element that integrates seamlessly with the platform — including click-to-query, streaming, and brand theming.",
|
|
287
|
-
popularityScore: 0,
|
|
288
|
-
usageCount: 0,
|
|
289
|
-
props: ["user-defined"],
|
|
290
|
-
useCases: [
|
|
291
|
-
"Industry-specific visualizations",
|
|
292
|
-
"Custom workflow components",
|
|
293
|
-
"Branded interactive widgets",
|
|
294
|
-
"Domain-specific data displays",
|
|
295
|
-
],
|
|
296
|
-
bestFor: ["custom-needs", "industry-specific", "extensibility"],
|
|
297
|
-
exampleQuery: "Create a custom Gantt chart element for my project management app",
|
|
298
|
-
status: "coming-soon",
|
|
299
|
-
},
|
|
300
|
-
];
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
export interface PlatformAnalytics {
|
|
2
|
-
period: string;
|
|
3
|
-
overview: {
|
|
4
|
-
totalProjects: number;
|
|
5
|
-
monthlyActiveProjects: number;
|
|
6
|
-
totalScreenGenerations: number;
|
|
7
|
-
avgResponseTimeMs: number;
|
|
8
|
-
uptimePercentage: number;
|
|
9
|
-
};
|
|
10
|
-
componentPopularity: Array<{
|
|
11
|
-
component: string;
|
|
12
|
-
elementType: string;
|
|
13
|
-
usageCount: number;
|
|
14
|
-
percentage: number;
|
|
15
|
-
}>;
|
|
16
|
-
integrationBreakdown: Array<{
|
|
17
|
-
method: string;
|
|
18
|
-
count: number;
|
|
19
|
-
percentage: number;
|
|
20
|
-
}>;
|
|
21
|
-
aiProviderBreakdown: Array<{
|
|
22
|
-
provider: string;
|
|
23
|
-
count: number;
|
|
24
|
-
percentage: number;
|
|
25
|
-
}>;
|
|
26
|
-
monthlyGrowth: Array<{
|
|
27
|
-
month: string;
|
|
28
|
-
projects: number;
|
|
29
|
-
screenGenerations: number;
|
|
30
|
-
apiCalls: number;
|
|
31
|
-
}>;
|
|
32
|
-
screenTypeUsage: Array<{
|
|
33
|
-
screenType: string;
|
|
34
|
-
count: number;
|
|
35
|
-
percentage: number;
|
|
36
|
-
}>;
|
|
37
|
-
}
|
|
38
|
-
export declare const PLATFORM_ANALYTICS: PlatformAnalytics;
|
|
39
|
-
export interface PlatformFeature {
|
|
40
|
-
id: string;
|
|
41
|
-
name: string;
|
|
42
|
-
category: string;
|
|
43
|
-
description: string;
|
|
44
|
-
status: "ga" | "beta" | "coming-soon";
|
|
45
|
-
highlight: boolean;
|
|
46
|
-
}
|
|
47
|
-
export declare const PLATFORM_FEATURES: PlatformFeature[];
|