@seed-ship/mcp-ui-spec 5.0.3 → 5.0.4

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/CHANGELOG.md CHANGED
@@ -5,6 +5,54 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [5.0.4] - 2026-05-02
9
+
10
+ ### Added — `'graph'` ComponentType + Graph schemas
11
+
12
+ Generic node-link visualization primitive. Domain-neutral by design — the
13
+ `weight` field on both nodes and edges is a generic ranking signal whose
14
+ semantics (rerank score, frequency, criticality, contribution, etc.) are
15
+ opaque to the lib and decided by the consumer.
16
+
17
+ - **`'graph'`** added to `ComponentTypeSchema` enum.
18
+ - **`GraphNodeSchema`** : `id` (required), `label`, `type`, `size`,
19
+ `weight`, `style`, `data` (all optional). `weight` drives default node
20
+ size when `size` is omitted, and acts as the sort key for the
21
+ `concentric` layout.
22
+ - **`GraphEdgeSchema`** : `source` + `target` (required, must match node
23
+ ids), `label`, `type`, `weight`, `style`, `data` (all optional).
24
+ `weight` drives default stroke width and the attractive force in
25
+ `force` layouts.
26
+ - **`GraphLayoutNameSchema`** : enum of 7 layouts — `force`, `dagre`,
27
+ `mindmap`, `tree`, `circular`, `grid`, `concentric`. Power users opt
28
+ into other G6 layouts via the object form
29
+ `{ type: 'force', options: { ... } }` — `options` is a passthrough.
30
+ - **`GraphLayoutSchema`** : union of shorthand string OR
31
+ `{ type, options? }` object.
32
+ - **`GraphComponentParamsSchema`** : `nodes` (required, min 1), `edges`,
33
+ `layout`, `title`, `height`, `width`, `rendererPref` (`canvas`|`svg`),
34
+ `fitView`, `enableZoom`, `enableDrag`, `enableSelect`, `tooltip`,
35
+ `className`. Sensible defaults applied at render time.
36
+ - Inferred types : `GraphNode`, `GraphEdge`, `GraphLayoutName`,
37
+ `GraphLayout`, `GraphComponentParams`.
38
+
39
+ Renderer support ships in `@seed-ship/mcp-ui-solid` (lazy-loads
40
+ `@antv/g6 ^5` as peer-optional). Apps without the peer installed see an
41
+ informative fallback instead of a crash.
42
+
43
+ ### Tests
44
+
45
+ - `src/schemas-graph-v5.0.4.test.ts` — **+26 tests** (node minimal +
46
+ rich, edge minimal + rich, all 7 layout shorthand names, layout object
47
+ form with passthrough options, params with weights + concentric
48
+ ordering, empty-edges acceptance, rejection paths). Total spec :
49
+ 77/77 pass.
50
+
51
+ ### Non-breaking
52
+
53
+ - All previously valid payloads remain valid. `'graph'` is purely
54
+ additive.
55
+
8
56
  ## [5.0.3] - 2026-05-02
9
57
 
10
58
  ### Added — citation chip support in table cells (prep for solid@5.7.0)
package/dist/index.cjs CHANGED
@@ -24,6 +24,11 @@ exports.FormFieldSchema = schemas.FormFieldSchema;
24
24
  exports.FormFieldTypeSchema = schemas.FormFieldTypeSchema;
25
25
  exports.FormSubmitActionSchema = schemas.FormSubmitActionSchema;
26
26
  exports.GalleryImageSchema = schemas.GalleryImageSchema;
27
+ exports.GraphComponentParamsSchema = schemas.GraphComponentParamsSchema;
28
+ exports.GraphEdgeSchema = schemas.GraphEdgeSchema;
29
+ exports.GraphLayoutNameSchema = schemas.GraphLayoutNameSchema;
30
+ exports.GraphLayoutSchema = schemas.GraphLayoutSchema;
31
+ exports.GraphNodeSchema = schemas.GraphNodeSchema;
27
32
  exports.GridPositionSchema = schemas.GridPositionSchema;
28
33
  exports.IframeComponentParamsSchema = schemas.IframeComponentParamsSchema;
29
34
  exports.ImageComponentParamsSchema = schemas.ImageComponentParamsSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ActionGroupGapSchema, ActionGroupLayoutSchema, ActionGroupParamsSchema, ActionParamsSchema, ArtifactComponentParamsSchema, CarouselComponentParamsSchema, ChartComponentParamsSchema, ChartDatasetSchema, ChartTimeAxisSchema, ChartTypeSchema, CitationEntrySchema, CodeComponentParamsSchema, ComponentExampleSchema, ComponentRegistrySchema, ComponentSchema, ComponentSchemaSchema, ComponentTypeSchema, FormComponentParamsSchema, FormFieldOptionSchema, FormFieldSchema, FormFieldTypeSchema, FormSubmitActionSchema, GalleryImageSchema, GridPositionSchema, IframeComponentParamsSchema, ImageComponentParamsSchema, ImageGalleryAspectRatioSchema, ImageGalleryColumnsSchema, ImageGalleryGapSchema, ImageGalleryParamsSchema, LatLngObjectSchema, LatLngPointSchema, LatLngTupleSchema, LinkComponentParamsSchema, MapComponentParamsSchema, MapMarkerSchema, MetricComponentParamsSchema, MetricTrendSchema, ModalComponentParamsSchema, ModalSizeSchema, PerformanceConstraintsSchema, PrefillSourceSchema, RegistryMetadataSchema, SandboxFlagSchema, SecurityConstraintsSchema, ShowWhenConditionSchema, ShowWhenOperatorSchema, TableColumnSchema, TableComponentParamsSchema, TableExportableSchema, TablePaginationSchema, TableVirtualizeOptionsSchema, TextComponentParamsSchema, VideoAspectRatioSchema, VideoComponentParamsSchema } from "./schemas.js";
1
+ import { ActionGroupGapSchema, ActionGroupLayoutSchema, ActionGroupParamsSchema, ActionParamsSchema, ArtifactComponentParamsSchema, CarouselComponentParamsSchema, ChartComponentParamsSchema, ChartDatasetSchema, ChartTimeAxisSchema, ChartTypeSchema, CitationEntrySchema, CodeComponentParamsSchema, ComponentExampleSchema, ComponentRegistrySchema, ComponentSchema, ComponentSchemaSchema, ComponentTypeSchema, FormComponentParamsSchema, FormFieldOptionSchema, FormFieldSchema, FormFieldTypeSchema, FormSubmitActionSchema, GalleryImageSchema, GraphComponentParamsSchema, GraphEdgeSchema, GraphLayoutNameSchema, GraphLayoutSchema, GraphNodeSchema, GridPositionSchema, IframeComponentParamsSchema, ImageComponentParamsSchema, ImageGalleryAspectRatioSchema, ImageGalleryColumnsSchema, ImageGalleryGapSchema, ImageGalleryParamsSchema, LatLngObjectSchema, LatLngPointSchema, LatLngTupleSchema, LinkComponentParamsSchema, MapComponentParamsSchema, MapMarkerSchema, MetricComponentParamsSchema, MetricTrendSchema, ModalComponentParamsSchema, ModalSizeSchema, PerformanceConstraintsSchema, PrefillSourceSchema, RegistryMetadataSchema, SandboxFlagSchema, SecurityConstraintsSchema, ShowWhenConditionSchema, ShowWhenOperatorSchema, TableColumnSchema, TableComponentParamsSchema, TableExportableSchema, TablePaginationSchema, TableVirtualizeOptionsSchema, TextComponentParamsSchema, VideoAspectRatioSchema, VideoComponentParamsSchema } from "./schemas.js";
2
2
  export {
3
3
  ActionGroupGapSchema,
4
4
  ActionGroupLayoutSchema,
@@ -23,6 +23,11 @@ export {
23
23
  FormFieldTypeSchema,
24
24
  FormSubmitActionSchema,
25
25
  GalleryImageSchema,
26
+ GraphComponentParamsSchema,
27
+ GraphEdgeSchema,
28
+ GraphLayoutNameSchema,
29
+ GraphLayoutSchema,
30
+ GraphNodeSchema,
26
31
  GridPositionSchema,
27
32
  IframeComponentParamsSchema,
28
33
  ImageComponentParamsSchema,
package/dist/schemas.cjs CHANGED
@@ -36,8 +36,10 @@ const ComponentTypeSchema = zod.z.enum([
36
36
  // Sprint 5: Video embed (YouTube, Vimeo, direct)
37
37
  "code",
38
38
  // Sprint 6: Syntax highlighted code block
39
- "map"
39
+ "map",
40
40
  // Sprint 6: Interactive map (Leaflet)
41
+ "graph"
42
+ // v5.0.4: node-link graph (peer @antv/g6)
41
43
  ]);
42
44
  const FormFieldOptionSchema = zod.z.object({
43
45
  label: zod.z.string().min(1),
@@ -261,6 +263,83 @@ const MapComponentParamsSchema = zod.z.object({
261
263
  tileLayer: zod.z.string().optional(),
262
264
  attribution: zod.z.string().optional()
263
265
  });
266
+ const GraphNodeSchema = zod.z.object({
267
+ id: zod.z.string().min(1),
268
+ label: zod.z.string().optional(),
269
+ type: zod.z.string().optional(),
270
+ // G6 node type: 'circle' | 'rect' | 'image' | …
271
+ size: zod.z.union([zod.z.number(), zod.z.tuple([zod.z.number(), zod.z.number()])]).optional(),
272
+ /**
273
+ * Generic ranking / importance signal. Drives default node size when
274
+ * `size` is omitted, and acts as the sort key for the `concentric`
275
+ * layout (highest weight at center). Domain semantics opaque to the lib.
276
+ */
277
+ weight: zod.z.number().optional(),
278
+ style: zod.z.record(zod.z.unknown()).optional(),
279
+ // passthrough G6 NodeStyle
280
+ data: zod.z.record(zod.z.unknown()).optional()
281
+ // arbitrary metadata for tooltips / click handlers
282
+ });
283
+ const GraphEdgeSchema = zod.z.object({
284
+ source: zod.z.string().min(1),
285
+ // must match a node.id
286
+ target: zod.z.string().min(1),
287
+ // must match a node.id
288
+ label: zod.z.string().optional(),
289
+ type: zod.z.string().optional(),
290
+ // G6 edge type: 'line' | 'arc' | 'cubic' | 'polyline' | …
291
+ /**
292
+ * Generic strength signal. Drives default edge stroke width and acts
293
+ * as attractive force in `force` layouts. Domain semantics opaque.
294
+ */
295
+ weight: zod.z.number().optional(),
296
+ style: zod.z.record(zod.z.unknown()).optional(),
297
+ data: zod.z.record(zod.z.unknown()).optional()
298
+ });
299
+ const GraphLayoutNameSchema = zod.z.enum([
300
+ "force",
301
+ "dagre",
302
+ "mindmap",
303
+ "tree",
304
+ "circular",
305
+ "grid",
306
+ "concentric"
307
+ ]);
308
+ const GraphLayoutSchema = zod.z.union([
309
+ GraphLayoutNameSchema,
310
+ zod.z.object({
311
+ type: GraphLayoutNameSchema,
312
+ options: zod.z.record(zod.z.unknown()).optional()
313
+ })
314
+ ]);
315
+ const GraphComponentParamsSchema = zod.z.object({
316
+ title: zod.z.string().optional(),
317
+ nodes: zod.z.array(GraphNodeSchema).min(1),
318
+ edges: zod.z.array(GraphEdgeSchema).optional(),
319
+ /**
320
+ * Layout shorthand string OR object form. When omitted, the renderer
321
+ * picks a sensible default: `'force'` if edges are present, `'circular'`
322
+ * otherwise.
323
+ */
324
+ layout: GraphLayoutSchema.optional(),
325
+ height: zod.z.string().optional(),
326
+ // CSS length, default '400px'
327
+ width: zod.z.string().optional(),
328
+ // CSS length, default '100%'
329
+ rendererPref: zod.z.enum(["canvas", "svg"]).optional(),
330
+ // default 'canvas'
331
+ fitView: zod.z.boolean().optional(),
332
+ // default true
333
+ enableZoom: zod.z.boolean().optional(),
334
+ // default true
335
+ enableDrag: zod.z.boolean().optional(),
336
+ // default true (drag nodes)
337
+ enableSelect: zod.z.boolean().optional(),
338
+ // default true (click-select highlight)
339
+ tooltip: zod.z.boolean().optional(),
340
+ // default true (label + data summary on hover)
341
+ className: zod.z.string().optional()
342
+ });
264
343
  const ChartTypeSchema = zod.z.enum([
265
344
  "bar",
266
345
  "line",
@@ -482,6 +561,11 @@ exports.FormFieldSchema = FormFieldSchema;
482
561
  exports.FormFieldTypeSchema = FormFieldTypeSchema;
483
562
  exports.FormSubmitActionSchema = FormSubmitActionSchema;
484
563
  exports.GalleryImageSchema = GalleryImageSchema;
564
+ exports.GraphComponentParamsSchema = GraphComponentParamsSchema;
565
+ exports.GraphEdgeSchema = GraphEdgeSchema;
566
+ exports.GraphLayoutNameSchema = GraphLayoutNameSchema;
567
+ exports.GraphLayoutSchema = GraphLayoutSchema;
568
+ exports.GraphNodeSchema = GraphNodeSchema;
485
569
  exports.GridPositionSchema = GridPositionSchema;
486
570
  exports.IframeComponentParamsSchema = IframeComponentParamsSchema;
487
571
  exports.ImageComponentParamsSchema = ImageComponentParamsSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.cjs","sources":["../src/schemas/index.ts"],"sourcesContent":["/**\n * Zod validation schemas for component registry\n */\n\nimport { z } from 'zod'\n\n// Grid position schema\nexport const GridPositionSchema = z.object({\n colStart: z.number().int().min(1).max(12),\n colSpan: z.number().int().min(1).max(12),\n rowStart: z.number().int().min(1).optional(),\n rowSpan: z.number().int().min(1).default(1).optional(),\n})\n\n// Component types (synced with mcp-ui-solid v1.2.6)\nexport const ComponentTypeSchema = z.enum([\n 'chart',\n 'table',\n 'metric',\n 'text',\n 'composite',\n 'grid', // Phase 5.0: Nested grid layouts\n 'iframe',\n 'image',\n 'link',\n 'action', // Phase 5.0: Tool call actions\n 'footer', // Phase 5.0: Metadata footer\n 'carousel',\n 'artifact',\n 'form', // Sprint 1: Form component\n 'modal', // Sprint 3: Modal/dialog component\n 'action-group', // Sprint 3: Action grouping component\n 'image-gallery', // Sprint 5: Image gallery with lightbox\n 'video', // Sprint 5: Video embed (YouTube, Vimeo, direct)\n 'code', // Sprint 6: Syntax highlighted code block\n 'map', // Sprint 6: Interactive map (Leaflet)\n])\n\n// Form field option schema (for select, radio)\nexport const FormFieldOptionSchema = z.object({\n label: z.string().min(1),\n value: z.string(),\n disabled: z.boolean().optional(),\n})\n\n// Form field type schema\nexport const FormFieldTypeSchema = z.enum([\n 'text',\n 'email',\n 'password',\n 'number',\n 'date',\n 'textarea',\n 'select',\n 'checkbox',\n 'radio',\n 'autocomplete',\n 'range',\n 'tags',\n 'toggle',\n 'fieldset',\n])\n\n// Show when operator schema\nexport const ShowWhenOperatorSchema = z.enum([\n 'equals',\n 'notEquals',\n 'in',\n 'notIn',\n 'contains',\n 'startsWith',\n 'endsWith',\n 'greaterThan',\n 'lessThan',\n 'isEmpty',\n 'isNotEmpty',\n 'isTrue',\n 'isFalse',\n])\n\n// Show when condition schema\nexport const ShowWhenConditionSchema = z.object({\n field: z.string().min(1),\n operator: ShowWhenOperatorSchema,\n value: z.any().optional(),\n})\n\n// Prefill source schema (v4.2.0)\nexport const PrefillSourceSchema = z.enum(['user', 'detected', 'inferred', 'default'])\n\n// Form field schema\n//\n// NAME REGEX (relaxed in v5.0.2 per audit MCP-UI-AUDIT-2026-04-26.md §L.2)\n// — allows `_`, `.`, `-` after the first letter (kebab-case for URL params,\n// dot-paths for nested forms). Still requires a leading letter to keep the\n// value usable as a CSS selector / JS access key.\nexport const FormFieldSchema = z.object({\n name: z.string().regex(/^[a-zA-Z][\\w.-]*$/),\n type: FormFieldTypeSchema,\n label: z.string().optional(),\n placeholder: z.string().optional(),\n helpText: z.string().optional(),\n required: z.boolean().optional(),\n disabled: z.boolean().optional(),\n defaultValue: z.any().optional(),\n // Prefill — pre-populated value with source tracking (v4.2.0)\n prefill: z.union([z.string(), z.array(z.string())]).optional(),\n displayHint: z.string().optional(),\n source: PrefillSourceSchema.optional(),\n muted: z.boolean().optional(),\n // Prefill mode for autocomplete fields (v4.3.0)\n prefillMode: z.enum(['exact', 'resolve']).optional(),\n // Value format validation (v4.3.0)\n valueFormat: z.string().optional(),\n valueFormatHint: z.string().optional(),\n // Text/textarea specific\n minLength: z.number().int().min(0).optional(),\n maxLength: z.number().int().min(1).optional(),\n pattern: z.string().optional(),\n // Number specific\n min: z.number().optional(),\n max: z.number().optional(),\n step: z.number().optional(),\n // Date specific\n minDate: z.string().optional(),\n maxDate: z.string().optional(),\n // Select/Radio specific\n options: z.array(FormFieldOptionSchema).optional(),\n // Multi-select (v2.6.0)\n multiple: z.boolean().optional(),\n // Autocomplete specific (v2.6.0)\n apiUrl: z.string().url().optional(),\n searchParam: z.string().optional(),\n labelField: z.string().optional(),\n valueField: z.string().optional(),\n extraParams: z.record(z.string()).optional(),\n minChars: z.number().int().min(0).optional(),\n debounceMs: z.number().int().min(0).optional(),\n // Dependent field (v2.7.0)\n dependsOn: z.object({\n field: z.string(),\n apiUrl: z.string(),\n labelField: z.string(),\n valueField: z.string(),\n extraParams: z.record(z.string()).optional(),\n }).optional(),\n // Field status — API capability indicator (v2.11.0)\n fieldStatus: z.enum(['required', 'optional', 'unsupported', 'unknown']).optional(),\n statusReason: z.string().optional(),\n // Checkbox specific\n checkboxLabel: z.string().optional(),\n // Textarea specific\n rows: z.number().int().min(1).max(20).optional(),\n // Conditional visibility\n showWhen: ShowWhenConditionSchema.optional(),\n})\n\n// Form submit action schema\nexport const FormSubmitActionSchema = z.object({\n toolName: z.string().min(1),\n params: z.record(z.unknown()).optional(),\n})\n\n// Form component params schema\nexport const FormComponentParamsSchema = z.object({\n title: z.string().optional(),\n fields: z.array(FormFieldSchema).min(1),\n submitLabel: z.string().optional(),\n showReset: z.boolean().optional(),\n submitAction: FormSubmitActionSchema.optional(),\n // Persistence options (Sprint 4)\n persistKey: z.string().optional(),\n excludeFromPersistence: z.array(z.string()).optional(),\n persistExpiresIn: z.number().int().positive().optional(),\n layout: z.enum(['vertical', 'horizontal', 'inline']).optional(),\n // Auto-submit countdown in ms when all required fields are prefilled (v4.2.0)\n autoSubmitDelay: z.number().int().min(1000).max(30000).optional(),\n})\n\n// Modal size schema (Sprint 3)\nexport const ModalSizeSchema = z.enum(['sm', 'md', 'lg', 'xl', 'full'])\n\n// Modal component params schema (Sprint 3)\nexport const ModalComponentParamsSchema = z.object({\n title: z.string().optional(),\n size: ModalSizeSchema.optional(),\n showClose: z.boolean().optional(),\n closeOnEscape: z.boolean().optional(),\n closeOnBackdrop: z.boolean().optional(),\n maxHeight: z.string().optional(),\n // Note: content and footer are UIComponent references, validated separately\n})\n\n// Action group layout schema (Sprint 3)\nexport const ActionGroupLayoutSchema = z.enum([\n 'horizontal',\n 'vertical',\n 'space-between',\n 'end',\n 'center',\n])\n\n// Action group gap schema (Sprint 3)\nexport const ActionGroupGapSchema = z.enum(['none', 'sm', 'md', 'lg'])\n\n// Action component params schema (for action-group)\nexport const ActionParamsSchema = z.object({\n label: z.string().min(1),\n type: z.enum(['button', 'link']).optional(),\n action: z.enum(['tool-call', 'link', 'submit']).optional(),\n toolName: z.string().optional(),\n params: z.record(z.unknown()).optional(),\n url: z.string().optional(),\n variant: z.enum(['primary', 'secondary', 'outline', 'ghost', 'danger']).optional(),\n size: z.enum(['sm', 'md', 'lg']).optional(),\n icon: z.string().optional(),\n disabled: z.boolean().optional(),\n})\n\n// Action group component params schema (Sprint 3)\nexport const ActionGroupParamsSchema = z.object({\n actions: z.array(ActionParamsSchema).min(1),\n layout: ActionGroupLayoutSchema.optional(),\n gap: ActionGroupGapSchema.optional(),\n fullWidth: z.boolean().optional(),\n label: z.string().optional(),\n})\n\n// Gallery image schema (Sprint 5)\nexport const GalleryImageSchema = z.object({\n url: z.string().url(),\n thumbnail: z.string().url().optional(),\n alt: z.string().optional(),\n caption: z.string().optional(),\n srcset: z.string().optional(),\n sizes: z.string().optional(),\n})\n\n// Image gallery columns schema (Sprint 5)\nexport const ImageGalleryColumnsSchema = z.enum(['2', '3', '4', '5']).transform(Number) as unknown as z.ZodType<2 | 3 | 4 | 5>\n\n// Image gallery gap schema (Sprint 5)\nexport const ImageGalleryGapSchema = z.enum(['none', 'sm', 'md', 'lg'])\n\n// Image gallery aspect ratio schema (Sprint 5)\nexport const ImageGalleryAspectRatioSchema = z.enum(['1:1', '16:9', '4:3', 'auto'])\n\n// Image gallery params schema (Sprint 5)\nexport const ImageGalleryParamsSchema = z.object({\n title: z.string().optional(),\n images: z.array(GalleryImageSchema).min(1),\n columns: z.union([z.literal(2), z.literal(3), z.literal(4), z.literal(5)]).optional(),\n gap: ImageGalleryGapSchema.optional(),\n aspectRatio: ImageGalleryAspectRatioSchema.optional(),\n lightbox: z.boolean().optional(),\n showCaptions: z.boolean().optional(),\n})\n\n// Video aspect ratio schema (Sprint 5)\nexport const VideoAspectRatioSchema = z.enum(['16:9', '4:3', '1:1', '21:9'])\n\n// Video component params schema (Sprint 5)\nexport const VideoComponentParamsSchema = z.object({\n url: z.string().url(),\n title: z.string().optional(),\n caption: z.string().optional(),\n poster: z.string().url().optional(),\n aspectRatio: VideoAspectRatioSchema.optional(),\n autoplay: z.boolean().optional(),\n controls: z.boolean().optional(),\n loop: z.boolean().optional(),\n muted: z.boolean().optional(),\n startTime: z.number().int().min(0).optional(),\n})\n\n// Code component params schema (Sprint 6)\nexport const CodeComponentParamsSchema = z.object({\n code: z.string(),\n language: z.string().optional(),\n filename: z.string().optional(),\n showLineNumbers: z.boolean().optional(),\n startLine: z.number().optional(),\n highlightLines: z.array(z.number()).optional(),\n maxHeight: z.string().optional(),\n theme: z.enum(['light', 'dark']).optional(),\n})\n\n// Lat/Lng point — Leaflet-compatible polymorphic shape (v5.0.2)\n//\n// Leaflet's own LatLng API accepts either a `[lat, lng]` tuple OR a\n// `{ lat, lng }` object literal natively. Mirroring that here lets MCP\n// servers emit either shape without forcing normalization (per audit\n// MCP-UI-AUDIT-2026-04-26.md §L.1).\nexport const LatLngObjectSchema = z.object({\n lat: z.number(),\n lng: z.number(),\n})\nexport const LatLngTupleSchema = z.tuple([z.number(), z.number()])\nexport const LatLngPointSchema = z.union([LatLngTupleSchema, LatLngObjectSchema])\n\n// Map marker schema (Sprint 6, position relaxed to LatLngPoint in v5.0.2)\nexport const MapMarkerSchema = z.object({\n position: LatLngPointSchema,\n tooltip: z.string().optional(),\n popup: z.string().optional(),\n})\n\n// Map component params schema (Sprint 6, center relaxed to LatLngPoint in v5.0.2)\nexport const MapComponentParamsSchema = z.object({\n center: LatLngPointSchema.optional(),\n zoom: z.number().optional(),\n markers: z.array(MapMarkerSchema).optional(),\n height: z.string().optional(),\n fitBounds: z.boolean().optional(),\n zoomControl: z.boolean().optional(),\n scrollWheelZoom: z.boolean().optional(),\n tileLayer: z.string().optional(),\n attribution: z.string().optional(),\n})\n\n// =============================================================================\n// Primitive component params schemas (v5.0.1)\n//\n// These mirror the runtime types declared in `@seed-ship/mcp-ui-solid/types`\n// and the imperative checks in `mcp-ui-solid/src/services/validation.ts`.\n// They prepare B.1 — `validation.ts` migration to spec-driven Zod parsing\n// without losing the existing imperative resource-limits / iframe-domain\n// whitelist layers (see MCP-UI-AUDIT-2026-04-26.md §I).\n//\n// URL-bearing fields use `z.string().min(1)` (not `.url()`) on purpose —\n// validation.ts currently just truthy-checks them, and `.url()` would\n// reject relative paths and `localhost`-style dev URLs.\n// =============================================================================\n\n// Chart component (v5.0.1)\nexport const ChartTypeSchema = z.enum([\n 'bar',\n 'line',\n 'pie',\n 'doughnut',\n 'radar',\n 'scatter',\n 'bubble',\n 'polarArea',\n])\n\nexport const ChartDatasetSchema = z.object({\n label: z.string(),\n // Either an array of numbers or an array of {x, y} points (Chart.js shapes)\n data: z.union([\n z.array(z.number()),\n z.array(\n z.object({\n x: z.union([z.string(), z.number()]),\n y: z.number(),\n })\n ),\n ]),\n backgroundColor: z.union([z.string(), z.array(z.string())]).optional(),\n borderColor: z.union([z.string(), z.array(z.string())]).optional(),\n borderWidth: z.number().optional(),\n fill: z.union([z.boolean(), z.string()]).optional(),\n tension: z.number().optional(),\n})\n\nexport const ChartTimeAxisSchema = z.object({\n parser: z.string().optional(),\n unit: z.enum(['day', 'week', 'month', 'quarter', 'year']).optional(),\n tooltipFormat: z.string().optional(),\n min: z.string().optional(),\n max: z.string().optional(),\n})\n\nexport const ChartComponentParamsSchema = z.object({\n type: ChartTypeSchema,\n title: z.string().optional(),\n data: z.object({\n labels: z.array(z.string()),\n datasets: z.array(ChartDatasetSchema),\n }),\n options: z\n .object({\n responsive: z.boolean().optional(),\n maintainAspectRatio: z.boolean().optional(),\n tension: z.number().optional(),\n // `scales` and `plugins` are Chart.js opaque config objects — kept loose\n scales: z.unknown().optional(),\n plugins: z.unknown().optional(),\n })\n .optional(),\n renderer: z.enum(['native', 'iframe', 'auto']).optional(),\n exportable: z.boolean().optional(),\n timeAxis: ChartTimeAxisSchema.optional(),\n height: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Table component (v5.0.1)\nexport const TableColumnSchema = z.object({\n key: z.string().min(1),\n label: z.string(),\n sortable: z.boolean().optional(),\n width: z.string().optional(),\n})\n\nexport const TablePaginationSchema = z.object({\n currentPage: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n totalRows: z.number().int().min(0),\n})\n\nexport const TableVirtualizeOptionsSchema = z.object({\n enabled: z.boolean().optional(),\n rowHeight: z.number().int().min(1).optional(),\n overscan: z.number().int().min(0).optional(),\n threshold: z.number().int().min(1).optional(),\n})\n\nexport const TableExportableSchema = z.union([\n z.boolean(),\n z.object({\n formats: z.array(z.enum(['csv', 'tsv', 'json'])).optional(),\n filename: z.string().optional(),\n }),\n])\n\n// Citation entry — source of a `[N]` marker rendered inside table cells (v5.0.3)\n// Used by `<TableRenderer>` when `params.citationMap` is set, to turn LLM\n// `[📄 CITATION N]` markers into clickable chips. See\n// `mcp-ui-solid/docs/briefs/BRIEF-citations-in-table-cells.md` for context.\nexport const CitationEntrySchema = z.object({\n page: z.union([z.number(), z.string()]),\n file: z.string().optional(),\n file_id: z.union([z.number(), z.string()]).optional(),\n})\n\nexport const TableComponentParamsSchema = z.object({\n title: z.string().optional(),\n columns: z.array(TableColumnSchema).min(1),\n rows: z.array(z.record(z.unknown())),\n pagination: TablePaginationSchema.optional(),\n virtualize: z.union([z.boolean(), TableVirtualizeOptionsSchema]).optional(),\n exportable: TableExportableSchema.optional(),\n className: z.string().optional(),\n // v5.0.3 — opt-in citation chip rendering inside cells\n citationMap: z.record(z.string(), CitationEntrySchema).optional(),\n})\n\n// Metric component (v5.0.1)\nexport const MetricTrendSchema = z.object({\n value: z.number(),\n direction: z.enum(['up', 'down', 'neutral']),\n})\n\nexport const MetricComponentParamsSchema = z.object({\n title: z.string().min(1),\n value: z.union([z.string(), z.number()]),\n unit: z.string().optional(),\n trend: MetricTrendSchema.optional(),\n subtitle: z.string().optional(),\n icon: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Text component (v5.0.1)\nexport const TextComponentParamsSchema = z.object({\n content: z.string().min(1),\n markdown: z.boolean().optional(),\n className: z.string().optional(),\n})\n\n// Iframe component (v5.0.1) — domain whitelist stays in mcp-ui-solid (security)\nexport const IframeComponentParamsSchema = z.object({\n url: z.string().min(1),\n title: z.string().optional(),\n height: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Image component (v5.0.1)\nexport const ImageComponentParamsSchema = z.object({\n url: z.string().min(1),\n alt: z.string().optional(),\n caption: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Link component (v5.0.1)\nexport const LinkComponentParamsSchema = z.object({\n url: z.string().min(1),\n label: z.string().optional(),\n description: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Carousel component (v5.0.1)\n// `items` are UIComponent values that are validated recursively by the\n// renderer — kept opaque here to avoid a circular schema reference.\nexport const CarouselComponentParamsSchema = z.object({\n items: z.array(z.unknown()).min(1),\n height: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Artifact component (v5.0.1)\nexport const ArtifactComponentParamsSchema = z.object({\n url: z.string().min(1),\n filename: z.string().min(1),\n mimeType: z.string().min(1),\n size: z.number().int().min(0).optional(),\n description: z.string().optional(),\n})\n\n// Sandbox flags\nexport const SandboxFlagSchema = z.enum([\n 'allow-scripts',\n 'allow-same-origin',\n 'allow-forms',\n 'allow-popups',\n 'allow-modals',\n])\n\n// Security constraints\nexport const SecurityConstraintsSchema = z.object({\n requiresAuth: z.boolean().default(false).optional(),\n allowedDomains: z.array(z.string()).optional(),\n maxIframeDepth: z.number().int().min(0).max(3).default(1).optional(),\n sandboxFlags: z.array(SandboxFlagSchema).optional(),\n})\n\n// Performance constraints\nexport const PerformanceConstraintsSchema = z.object({\n maxRenderTime: z.number().int().min(100).default(5000).optional(),\n maxDataSize: z.number().int().min(1024).default(102400).optional(),\n})\n\n// Component schema (JSON Schema definition)\nexport const ComponentSchemaSchema = z.object({\n type: z.literal('object'),\n required: z.array(z.string()).optional(),\n properties: z.record(z.unknown()),\n additionalProperties: z.boolean().optional(),\n})\n\n// Component example\nexport const ComponentExampleSchema = z.object({\n name: z.string().min(1),\n description: z.string().optional(),\n params: z.record(z.unknown()),\n position: GridPositionSchema.optional(),\n})\n\n// Component definition\nexport const ComponentSchema = z.object({\n id: z.string().regex(/^[a-z0-9-]+$/),\n type: ComponentTypeSchema,\n name: z.string().min(1),\n description: z.string().optional(),\n schema: ComponentSchemaSchema,\n examples: z.array(ComponentExampleSchema).min(1),\n security: SecurityConstraintsSchema.optional(),\n performance: PerformanceConstraintsSchema.optional(),\n tags: z.array(z.string().regex(/^[a-z0-9-]+$/)).optional(),\n version: z\n .string()\n .regex(/^\\d+\\.\\d+\\.\\d+$/)\n .optional(),\n deprecated: z.boolean().default(false).optional(),\n deprecationMessage: z.string().optional(),\n})\n\n// Registry metadata\nexport const RegistryMetadataSchema = z.object({\n name: z.string().optional(),\n description: z.string().optional(),\n author: z.string().optional(),\n repository: z.string().url().optional(),\n})\n\n// Component registry\nexport const ComponentRegistrySchema = z.object({\n version: z.literal('1.0.0'),\n metadata: RegistryMetadataSchema.optional(),\n components: z.array(ComponentSchema).min(1),\n})\n\n// Export types inferred from schemas\nexport type ComponentRegistry = z.infer<typeof ComponentRegistrySchema>\nexport type Component = z.infer<typeof ComponentSchema>\nexport type ComponentExample = z.infer<typeof ComponentExampleSchema>\nexport type GridPosition = z.infer<typeof GridPositionSchema>\nexport type SecurityConstraints = z.infer<typeof SecurityConstraintsSchema>\nexport type PerformanceConstraints = z.infer<typeof PerformanceConstraintsSchema>\nexport type ComponentType = z.infer<typeof ComponentTypeSchema>\nexport type SandboxFlag = z.infer<typeof SandboxFlagSchema>\n\n// Form types (Sprint 1)\nexport type FormFieldOption = z.infer<typeof FormFieldOptionSchema>\nexport type FormFieldType = z.infer<typeof FormFieldTypeSchema>\nexport type FormField = z.infer<typeof FormFieldSchema>\nexport type FormSubmitAction = z.infer<typeof FormSubmitActionSchema>\nexport type FormComponentParams = z.infer<typeof FormComponentParamsSchema>\nexport type PrefillSource = z.infer<typeof PrefillSourceSchema>\n\n// Conditional field types (Sprint 2)\nexport type ShowWhenOperator = z.infer<typeof ShowWhenOperatorSchema>\nexport type ShowWhenCondition = z.infer<typeof ShowWhenConditionSchema>\n\n// Modal types (Sprint 3)\nexport type ModalSize = z.infer<typeof ModalSizeSchema>\nexport type ModalComponentParams = z.infer<typeof ModalComponentParamsSchema>\n\n// Action group types (Sprint 3)\nexport type ActionGroupLayout = z.infer<typeof ActionGroupLayoutSchema>\nexport type ActionGroupGap = z.infer<typeof ActionGroupGapSchema>\nexport type ActionParams = z.infer<typeof ActionParamsSchema>\nexport type ActionGroupParams = z.infer<typeof ActionGroupParamsSchema>\n\n// Image gallery types (Sprint 5)\nexport type GalleryImage = z.infer<typeof GalleryImageSchema>\nexport type ImageGalleryGap = z.infer<typeof ImageGalleryGapSchema>\nexport type ImageGalleryAspectRatio = z.infer<typeof ImageGalleryAspectRatioSchema>\nexport type ImageGalleryParams = z.infer<typeof ImageGalleryParamsSchema>\n\n// Video types (Sprint 5)\nexport type VideoAspectRatio = z.infer<typeof VideoAspectRatioSchema>\nexport type VideoComponentParams = z.infer<typeof VideoComponentParamsSchema>\n\n// Code types (Sprint 6)\nexport type CodeComponentParams = z.infer<typeof CodeComponentParamsSchema>\n\n// Map types (Sprint 6 + v5.0.2 LatLngPoint relaxation)\nexport type LatLngObject = z.infer<typeof LatLngObjectSchema>\nexport type LatLngTuple = z.infer<typeof LatLngTupleSchema>\nexport type LatLngPoint = z.infer<typeof LatLngPointSchema>\nexport type MapMarker = z.infer<typeof MapMarkerSchema>\nexport type MapComponentParams = z.infer<typeof MapComponentParamsSchema>\n\n// Primitive component params types (v5.0.1)\nexport type ChartType = z.infer<typeof ChartTypeSchema>\nexport type ChartDataset = z.infer<typeof ChartDatasetSchema>\nexport type ChartTimeAxis = z.infer<typeof ChartTimeAxisSchema>\nexport type ChartComponentParams = z.infer<typeof ChartComponentParamsSchema>\nexport type TableColumn = z.infer<typeof TableColumnSchema>\nexport type TablePagination = z.infer<typeof TablePaginationSchema>\nexport type TableVirtualizeOptions = z.infer<typeof TableVirtualizeOptionsSchema>\nexport type TableExportable = z.infer<typeof TableExportableSchema>\nexport type CitationEntry = z.infer<typeof CitationEntrySchema>\nexport type TableComponentParams = z.infer<typeof TableComponentParamsSchema>\nexport type MetricTrend = z.infer<typeof MetricTrendSchema>\nexport type MetricComponentParams = z.infer<typeof MetricComponentParamsSchema>\nexport type TextComponentParams = z.infer<typeof TextComponentParamsSchema>\nexport type IframeComponentParams = z.infer<typeof IframeComponentParamsSchema>\nexport type ImageComponentParams = z.infer<typeof ImageComponentParamsSchema>\nexport type LinkComponentParams = z.infer<typeof LinkComponentParamsSchema>\nexport type CarouselComponentParams = z.infer<typeof CarouselComponentParamsSchema>\nexport type ArtifactComponentParams = z.infer<typeof ArtifactComponentParamsSchema>\n"],"names":["z"],"mappings":"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"}
1
+ {"version":3,"file":"schemas.cjs","sources":["../src/schemas/index.ts"],"sourcesContent":["/**\n * Zod validation schemas for component registry\n */\n\nimport { z } from 'zod'\n\n// Grid position schema\nexport const GridPositionSchema = z.object({\n colStart: z.number().int().min(1).max(12),\n colSpan: z.number().int().min(1).max(12),\n rowStart: z.number().int().min(1).optional(),\n rowSpan: z.number().int().min(1).default(1).optional(),\n})\n\n// Component types (synced with mcp-ui-solid v1.2.6)\nexport const ComponentTypeSchema = z.enum([\n 'chart',\n 'table',\n 'metric',\n 'text',\n 'composite',\n 'grid', // Phase 5.0: Nested grid layouts\n 'iframe',\n 'image',\n 'link',\n 'action', // Phase 5.0: Tool call actions\n 'footer', // Phase 5.0: Metadata footer\n 'carousel',\n 'artifact',\n 'form', // Sprint 1: Form component\n 'modal', // Sprint 3: Modal/dialog component\n 'action-group', // Sprint 3: Action grouping component\n 'image-gallery', // Sprint 5: Image gallery with lightbox\n 'video', // Sprint 5: Video embed (YouTube, Vimeo, direct)\n 'code', // Sprint 6: Syntax highlighted code block\n 'map', // Sprint 6: Interactive map (Leaflet)\n 'graph', // v5.0.4: node-link graph (peer @antv/g6)\n])\n\n// Form field option schema (for select, radio)\nexport const FormFieldOptionSchema = z.object({\n label: z.string().min(1),\n value: z.string(),\n disabled: z.boolean().optional(),\n})\n\n// Form field type schema\nexport const FormFieldTypeSchema = z.enum([\n 'text',\n 'email',\n 'password',\n 'number',\n 'date',\n 'textarea',\n 'select',\n 'checkbox',\n 'radio',\n 'autocomplete',\n 'range',\n 'tags',\n 'toggle',\n 'fieldset',\n])\n\n// Show when operator schema\nexport const ShowWhenOperatorSchema = z.enum([\n 'equals',\n 'notEquals',\n 'in',\n 'notIn',\n 'contains',\n 'startsWith',\n 'endsWith',\n 'greaterThan',\n 'lessThan',\n 'isEmpty',\n 'isNotEmpty',\n 'isTrue',\n 'isFalse',\n])\n\n// Show when condition schema\nexport const ShowWhenConditionSchema = z.object({\n field: z.string().min(1),\n operator: ShowWhenOperatorSchema,\n value: z.any().optional(),\n})\n\n// Prefill source schema (v4.2.0)\nexport const PrefillSourceSchema = z.enum(['user', 'detected', 'inferred', 'default'])\n\n// Form field schema\n//\n// NAME REGEX (relaxed in v5.0.2 per audit MCP-UI-AUDIT-2026-04-26.md §L.2)\n// — allows `_`, `.`, `-` after the first letter (kebab-case for URL params,\n// dot-paths for nested forms). Still requires a leading letter to keep the\n// value usable as a CSS selector / JS access key.\nexport const FormFieldSchema = z.object({\n name: z.string().regex(/^[a-zA-Z][\\w.-]*$/),\n type: FormFieldTypeSchema,\n label: z.string().optional(),\n placeholder: z.string().optional(),\n helpText: z.string().optional(),\n required: z.boolean().optional(),\n disabled: z.boolean().optional(),\n defaultValue: z.any().optional(),\n // Prefill — pre-populated value with source tracking (v4.2.0)\n prefill: z.union([z.string(), z.array(z.string())]).optional(),\n displayHint: z.string().optional(),\n source: PrefillSourceSchema.optional(),\n muted: z.boolean().optional(),\n // Prefill mode for autocomplete fields (v4.3.0)\n prefillMode: z.enum(['exact', 'resolve']).optional(),\n // Value format validation (v4.3.0)\n valueFormat: z.string().optional(),\n valueFormatHint: z.string().optional(),\n // Text/textarea specific\n minLength: z.number().int().min(0).optional(),\n maxLength: z.number().int().min(1).optional(),\n pattern: z.string().optional(),\n // Number specific\n min: z.number().optional(),\n max: z.number().optional(),\n step: z.number().optional(),\n // Date specific\n minDate: z.string().optional(),\n maxDate: z.string().optional(),\n // Select/Radio specific\n options: z.array(FormFieldOptionSchema).optional(),\n // Multi-select (v2.6.0)\n multiple: z.boolean().optional(),\n // Autocomplete specific (v2.6.0)\n apiUrl: z.string().url().optional(),\n searchParam: z.string().optional(),\n labelField: z.string().optional(),\n valueField: z.string().optional(),\n extraParams: z.record(z.string()).optional(),\n minChars: z.number().int().min(0).optional(),\n debounceMs: z.number().int().min(0).optional(),\n // Dependent field (v2.7.0)\n dependsOn: z.object({\n field: z.string(),\n apiUrl: z.string(),\n labelField: z.string(),\n valueField: z.string(),\n extraParams: z.record(z.string()).optional(),\n }).optional(),\n // Field status — API capability indicator (v2.11.0)\n fieldStatus: z.enum(['required', 'optional', 'unsupported', 'unknown']).optional(),\n statusReason: z.string().optional(),\n // Checkbox specific\n checkboxLabel: z.string().optional(),\n // Textarea specific\n rows: z.number().int().min(1).max(20).optional(),\n // Conditional visibility\n showWhen: ShowWhenConditionSchema.optional(),\n})\n\n// Form submit action schema\nexport const FormSubmitActionSchema = z.object({\n toolName: z.string().min(1),\n params: z.record(z.unknown()).optional(),\n})\n\n// Form component params schema\nexport const FormComponentParamsSchema = z.object({\n title: z.string().optional(),\n fields: z.array(FormFieldSchema).min(1),\n submitLabel: z.string().optional(),\n showReset: z.boolean().optional(),\n submitAction: FormSubmitActionSchema.optional(),\n // Persistence options (Sprint 4)\n persistKey: z.string().optional(),\n excludeFromPersistence: z.array(z.string()).optional(),\n persistExpiresIn: z.number().int().positive().optional(),\n layout: z.enum(['vertical', 'horizontal', 'inline']).optional(),\n // Auto-submit countdown in ms when all required fields are prefilled (v4.2.0)\n autoSubmitDelay: z.number().int().min(1000).max(30000).optional(),\n})\n\n// Modal size schema (Sprint 3)\nexport const ModalSizeSchema = z.enum(['sm', 'md', 'lg', 'xl', 'full'])\n\n// Modal component params schema (Sprint 3)\nexport const ModalComponentParamsSchema = z.object({\n title: z.string().optional(),\n size: ModalSizeSchema.optional(),\n showClose: z.boolean().optional(),\n closeOnEscape: z.boolean().optional(),\n closeOnBackdrop: z.boolean().optional(),\n maxHeight: z.string().optional(),\n // Note: content and footer are UIComponent references, validated separately\n})\n\n// Action group layout schema (Sprint 3)\nexport const ActionGroupLayoutSchema = z.enum([\n 'horizontal',\n 'vertical',\n 'space-between',\n 'end',\n 'center',\n])\n\n// Action group gap schema (Sprint 3)\nexport const ActionGroupGapSchema = z.enum(['none', 'sm', 'md', 'lg'])\n\n// Action component params schema (for action-group)\nexport const ActionParamsSchema = z.object({\n label: z.string().min(1),\n type: z.enum(['button', 'link']).optional(),\n action: z.enum(['tool-call', 'link', 'submit']).optional(),\n toolName: z.string().optional(),\n params: z.record(z.unknown()).optional(),\n url: z.string().optional(),\n variant: z.enum(['primary', 'secondary', 'outline', 'ghost', 'danger']).optional(),\n size: z.enum(['sm', 'md', 'lg']).optional(),\n icon: z.string().optional(),\n disabled: z.boolean().optional(),\n})\n\n// Action group component params schema (Sprint 3)\nexport const ActionGroupParamsSchema = z.object({\n actions: z.array(ActionParamsSchema).min(1),\n layout: ActionGroupLayoutSchema.optional(),\n gap: ActionGroupGapSchema.optional(),\n fullWidth: z.boolean().optional(),\n label: z.string().optional(),\n})\n\n// Gallery image schema (Sprint 5)\nexport const GalleryImageSchema = z.object({\n url: z.string().url(),\n thumbnail: z.string().url().optional(),\n alt: z.string().optional(),\n caption: z.string().optional(),\n srcset: z.string().optional(),\n sizes: z.string().optional(),\n})\n\n// Image gallery columns schema (Sprint 5)\nexport const ImageGalleryColumnsSchema = z.enum(['2', '3', '4', '5']).transform(Number) as unknown as z.ZodType<2 | 3 | 4 | 5>\n\n// Image gallery gap schema (Sprint 5)\nexport const ImageGalleryGapSchema = z.enum(['none', 'sm', 'md', 'lg'])\n\n// Image gallery aspect ratio schema (Sprint 5)\nexport const ImageGalleryAspectRatioSchema = z.enum(['1:1', '16:9', '4:3', 'auto'])\n\n// Image gallery params schema (Sprint 5)\nexport const ImageGalleryParamsSchema = z.object({\n title: z.string().optional(),\n images: z.array(GalleryImageSchema).min(1),\n columns: z.union([z.literal(2), z.literal(3), z.literal(4), z.literal(5)]).optional(),\n gap: ImageGalleryGapSchema.optional(),\n aspectRatio: ImageGalleryAspectRatioSchema.optional(),\n lightbox: z.boolean().optional(),\n showCaptions: z.boolean().optional(),\n})\n\n// Video aspect ratio schema (Sprint 5)\nexport const VideoAspectRatioSchema = z.enum(['16:9', '4:3', '1:1', '21:9'])\n\n// Video component params schema (Sprint 5)\nexport const VideoComponentParamsSchema = z.object({\n url: z.string().url(),\n title: z.string().optional(),\n caption: z.string().optional(),\n poster: z.string().url().optional(),\n aspectRatio: VideoAspectRatioSchema.optional(),\n autoplay: z.boolean().optional(),\n controls: z.boolean().optional(),\n loop: z.boolean().optional(),\n muted: z.boolean().optional(),\n startTime: z.number().int().min(0).optional(),\n})\n\n// Code component params schema (Sprint 6)\nexport const CodeComponentParamsSchema = z.object({\n code: z.string(),\n language: z.string().optional(),\n filename: z.string().optional(),\n showLineNumbers: z.boolean().optional(),\n startLine: z.number().optional(),\n highlightLines: z.array(z.number()).optional(),\n maxHeight: z.string().optional(),\n theme: z.enum(['light', 'dark']).optional(),\n})\n\n// Lat/Lng point — Leaflet-compatible polymorphic shape (v5.0.2)\n//\n// Leaflet's own LatLng API accepts either a `[lat, lng]` tuple OR a\n// `{ lat, lng }` object literal natively. Mirroring that here lets MCP\n// servers emit either shape without forcing normalization (per audit\n// MCP-UI-AUDIT-2026-04-26.md §L.1).\nexport const LatLngObjectSchema = z.object({\n lat: z.number(),\n lng: z.number(),\n})\nexport const LatLngTupleSchema = z.tuple([z.number(), z.number()])\nexport const LatLngPointSchema = z.union([LatLngTupleSchema, LatLngObjectSchema])\n\n// Map marker schema (Sprint 6, position relaxed to LatLngPoint in v5.0.2)\nexport const MapMarkerSchema = z.object({\n position: LatLngPointSchema,\n tooltip: z.string().optional(),\n popup: z.string().optional(),\n})\n\n// Map component params schema (Sprint 6, center relaxed to LatLngPoint in v5.0.2)\nexport const MapComponentParamsSchema = z.object({\n center: LatLngPointSchema.optional(),\n zoom: z.number().optional(),\n markers: z.array(MapMarkerSchema).optional(),\n height: z.string().optional(),\n fitBounds: z.boolean().optional(),\n zoomControl: z.boolean().optional(),\n scrollWheelZoom: z.boolean().optional(),\n tileLayer: z.string().optional(),\n attribution: z.string().optional(),\n})\n\n// =============================================================================\n// Graph component (v5.0.4) — generic node-link visualization\n//\n// The shape is intentionally domain-neutral: nodes have an id + optional\n// label/weight/style, edges have source+target+optional weight/style. The\n// `weight` field on both is a generic ranking signal — domain semantics\n// (rerank score / co-retrieval count / criticality / token contribution /\n// frequency / etc.) are opaque to the lib and decided by the consumer.\n//\n// Renderer support lives in `@seed-ship/mcp-ui-solid` and lazy-loads\n// `@antv/g6 ^5` as a peer-optional dependency. Apps that don't install\n// the peer see an informative fallback instead of a crash.\n// =============================================================================\n\nexport const GraphNodeSchema = z.object({\n id: z.string().min(1),\n label: z.string().optional(),\n type: z.string().optional(), // G6 node type: 'circle' | 'rect' | 'image' | …\n size: z.union([z.number(), z.tuple([z.number(), z.number()])]).optional(),\n /**\n * Generic ranking / importance signal. Drives default node size when\n * `size` is omitted, and acts as the sort key for the `concentric`\n * layout (highest weight at center). Domain semantics opaque to the lib.\n */\n weight: z.number().optional(),\n style: z.record(z.unknown()).optional(), // passthrough G6 NodeStyle\n data: z.record(z.unknown()).optional(), // arbitrary metadata for tooltips / click handlers\n})\n\nexport const GraphEdgeSchema = z.object({\n source: z.string().min(1), // must match a node.id\n target: z.string().min(1), // must match a node.id\n label: z.string().optional(),\n type: z.string().optional(), // G6 edge type: 'line' | 'arc' | 'cubic' | 'polyline' | …\n /**\n * Generic strength signal. Drives default edge stroke width and acts\n * as attractive force in `force` layouts. Domain semantics opaque.\n */\n weight: z.number().optional(),\n style: z.record(z.unknown()).optional(),\n data: z.record(z.unknown()).optional(),\n})\n\n/**\n * Layout names exposed in the spec. Narrow on purpose — `force` covers\n * generic networks, `dagre` covers DAGs, `concentric` covers\n * weight-ordered ring layouts, `mindmap` + `tree` cover hierarchical\n * fan-outs, `circular` + `grid` cover small-N ordered layouts. Power\n * users opt into other G6 layouts via the object form\n * `{ type: 'force', options: { ... } }` — `options` is a passthrough.\n */\nexport const GraphLayoutNameSchema = z.enum([\n 'force',\n 'dagre',\n 'mindmap',\n 'tree',\n 'circular',\n 'grid',\n 'concentric',\n])\n\nexport const GraphLayoutSchema = z.union([\n GraphLayoutNameSchema,\n z.object({\n type: GraphLayoutNameSchema,\n options: z.record(z.unknown()).optional(),\n }),\n])\n\nexport const GraphComponentParamsSchema = z.object({\n title: z.string().optional(),\n nodes: z.array(GraphNodeSchema).min(1),\n edges: z.array(GraphEdgeSchema).optional(),\n /**\n * Layout shorthand string OR object form. When omitted, the renderer\n * picks a sensible default: `'force'` if edges are present, `'circular'`\n * otherwise.\n */\n layout: GraphLayoutSchema.optional(),\n height: z.string().optional(), // CSS length, default '400px'\n width: z.string().optional(), // CSS length, default '100%'\n rendererPref: z.enum(['canvas', 'svg']).optional(), // default 'canvas'\n fitView: z.boolean().optional(), // default true\n enableZoom: z.boolean().optional(), // default true\n enableDrag: z.boolean().optional(), // default true (drag nodes)\n enableSelect: z.boolean().optional(), // default true (click-select highlight)\n tooltip: z.boolean().optional(), // default true (label + data summary on hover)\n className: z.string().optional(),\n})\n\n// =============================================================================\n// Primitive component params schemas (v5.0.1)\n//\n// These mirror the runtime types declared in `@seed-ship/mcp-ui-solid/types`\n// and the imperative checks in `mcp-ui-solid/src/services/validation.ts`.\n// They prepare B.1 — `validation.ts` migration to spec-driven Zod parsing\n// without losing the existing imperative resource-limits / iframe-domain\n// whitelist layers (see MCP-UI-AUDIT-2026-04-26.md §I).\n//\n// URL-bearing fields use `z.string().min(1)` (not `.url()`) on purpose —\n// validation.ts currently just truthy-checks them, and `.url()` would\n// reject relative paths and `localhost`-style dev URLs.\n// =============================================================================\n\n// Chart component (v5.0.1)\nexport const ChartTypeSchema = z.enum([\n 'bar',\n 'line',\n 'pie',\n 'doughnut',\n 'radar',\n 'scatter',\n 'bubble',\n 'polarArea',\n])\n\nexport const ChartDatasetSchema = z.object({\n label: z.string(),\n // Either an array of numbers or an array of {x, y} points (Chart.js shapes)\n data: z.union([\n z.array(z.number()),\n z.array(\n z.object({\n x: z.union([z.string(), z.number()]),\n y: z.number(),\n })\n ),\n ]),\n backgroundColor: z.union([z.string(), z.array(z.string())]).optional(),\n borderColor: z.union([z.string(), z.array(z.string())]).optional(),\n borderWidth: z.number().optional(),\n fill: z.union([z.boolean(), z.string()]).optional(),\n tension: z.number().optional(),\n})\n\nexport const ChartTimeAxisSchema = z.object({\n parser: z.string().optional(),\n unit: z.enum(['day', 'week', 'month', 'quarter', 'year']).optional(),\n tooltipFormat: z.string().optional(),\n min: z.string().optional(),\n max: z.string().optional(),\n})\n\nexport const ChartComponentParamsSchema = z.object({\n type: ChartTypeSchema,\n title: z.string().optional(),\n data: z.object({\n labels: z.array(z.string()),\n datasets: z.array(ChartDatasetSchema),\n }),\n options: z\n .object({\n responsive: z.boolean().optional(),\n maintainAspectRatio: z.boolean().optional(),\n tension: z.number().optional(),\n // `scales` and `plugins` are Chart.js opaque config objects — kept loose\n scales: z.unknown().optional(),\n plugins: z.unknown().optional(),\n })\n .optional(),\n renderer: z.enum(['native', 'iframe', 'auto']).optional(),\n exportable: z.boolean().optional(),\n timeAxis: ChartTimeAxisSchema.optional(),\n height: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Table component (v5.0.1)\nexport const TableColumnSchema = z.object({\n key: z.string().min(1),\n label: z.string(),\n sortable: z.boolean().optional(),\n width: z.string().optional(),\n})\n\nexport const TablePaginationSchema = z.object({\n currentPage: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n totalRows: z.number().int().min(0),\n})\n\nexport const TableVirtualizeOptionsSchema = z.object({\n enabled: z.boolean().optional(),\n rowHeight: z.number().int().min(1).optional(),\n overscan: z.number().int().min(0).optional(),\n threshold: z.number().int().min(1).optional(),\n})\n\nexport const TableExportableSchema = z.union([\n z.boolean(),\n z.object({\n formats: z.array(z.enum(['csv', 'tsv', 'json'])).optional(),\n filename: z.string().optional(),\n }),\n])\n\n// Citation entry — source of a `[N]` marker rendered inside table cells (v5.0.3)\n// Used by `<TableRenderer>` when `params.citationMap` is set, to turn LLM\n// `[📄 CITATION N]` markers into clickable chips. See\n// `mcp-ui-solid/docs/briefs/BRIEF-citations-in-table-cells.md` for context.\nexport const CitationEntrySchema = z.object({\n page: z.union([z.number(), z.string()]),\n file: z.string().optional(),\n file_id: z.union([z.number(), z.string()]).optional(),\n})\n\nexport const TableComponentParamsSchema = z.object({\n title: z.string().optional(),\n columns: z.array(TableColumnSchema).min(1),\n rows: z.array(z.record(z.unknown())),\n pagination: TablePaginationSchema.optional(),\n virtualize: z.union([z.boolean(), TableVirtualizeOptionsSchema]).optional(),\n exportable: TableExportableSchema.optional(),\n className: z.string().optional(),\n // v5.0.3 — opt-in citation chip rendering inside cells\n citationMap: z.record(z.string(), CitationEntrySchema).optional(),\n})\n\n// Metric component (v5.0.1)\nexport const MetricTrendSchema = z.object({\n value: z.number(),\n direction: z.enum(['up', 'down', 'neutral']),\n})\n\nexport const MetricComponentParamsSchema = z.object({\n title: z.string().min(1),\n value: z.union([z.string(), z.number()]),\n unit: z.string().optional(),\n trend: MetricTrendSchema.optional(),\n subtitle: z.string().optional(),\n icon: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Text component (v5.0.1)\nexport const TextComponentParamsSchema = z.object({\n content: z.string().min(1),\n markdown: z.boolean().optional(),\n className: z.string().optional(),\n})\n\n// Iframe component (v5.0.1) — domain whitelist stays in mcp-ui-solid (security)\nexport const IframeComponentParamsSchema = z.object({\n url: z.string().min(1),\n title: z.string().optional(),\n height: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Image component (v5.0.1)\nexport const ImageComponentParamsSchema = z.object({\n url: z.string().min(1),\n alt: z.string().optional(),\n caption: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Link component (v5.0.1)\nexport const LinkComponentParamsSchema = z.object({\n url: z.string().min(1),\n label: z.string().optional(),\n description: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Carousel component (v5.0.1)\n// `items` are UIComponent values that are validated recursively by the\n// renderer — kept opaque here to avoid a circular schema reference.\nexport const CarouselComponentParamsSchema = z.object({\n items: z.array(z.unknown()).min(1),\n height: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Artifact component (v5.0.1)\nexport const ArtifactComponentParamsSchema = z.object({\n url: z.string().min(1),\n filename: z.string().min(1),\n mimeType: z.string().min(1),\n size: z.number().int().min(0).optional(),\n description: z.string().optional(),\n})\n\n// Sandbox flags\nexport const SandboxFlagSchema = z.enum([\n 'allow-scripts',\n 'allow-same-origin',\n 'allow-forms',\n 'allow-popups',\n 'allow-modals',\n])\n\n// Security constraints\nexport const SecurityConstraintsSchema = z.object({\n requiresAuth: z.boolean().default(false).optional(),\n allowedDomains: z.array(z.string()).optional(),\n maxIframeDepth: z.number().int().min(0).max(3).default(1).optional(),\n sandboxFlags: z.array(SandboxFlagSchema).optional(),\n})\n\n// Performance constraints\nexport const PerformanceConstraintsSchema = z.object({\n maxRenderTime: z.number().int().min(100).default(5000).optional(),\n maxDataSize: z.number().int().min(1024).default(102400).optional(),\n})\n\n// Component schema (JSON Schema definition)\nexport const ComponentSchemaSchema = z.object({\n type: z.literal('object'),\n required: z.array(z.string()).optional(),\n properties: z.record(z.unknown()),\n additionalProperties: z.boolean().optional(),\n})\n\n// Component example\nexport const ComponentExampleSchema = z.object({\n name: z.string().min(1),\n description: z.string().optional(),\n params: z.record(z.unknown()),\n position: GridPositionSchema.optional(),\n})\n\n// Component definition\nexport const ComponentSchema = z.object({\n id: z.string().regex(/^[a-z0-9-]+$/),\n type: ComponentTypeSchema,\n name: z.string().min(1),\n description: z.string().optional(),\n schema: ComponentSchemaSchema,\n examples: z.array(ComponentExampleSchema).min(1),\n security: SecurityConstraintsSchema.optional(),\n performance: PerformanceConstraintsSchema.optional(),\n tags: z.array(z.string().regex(/^[a-z0-9-]+$/)).optional(),\n version: z\n .string()\n .regex(/^\\d+\\.\\d+\\.\\d+$/)\n .optional(),\n deprecated: z.boolean().default(false).optional(),\n deprecationMessage: z.string().optional(),\n})\n\n// Registry metadata\nexport const RegistryMetadataSchema = z.object({\n name: z.string().optional(),\n description: z.string().optional(),\n author: z.string().optional(),\n repository: z.string().url().optional(),\n})\n\n// Component registry\nexport const ComponentRegistrySchema = z.object({\n version: z.literal('1.0.0'),\n metadata: RegistryMetadataSchema.optional(),\n components: z.array(ComponentSchema).min(1),\n})\n\n// Export types inferred from schemas\nexport type ComponentRegistry = z.infer<typeof ComponentRegistrySchema>\nexport type Component = z.infer<typeof ComponentSchema>\nexport type ComponentExample = z.infer<typeof ComponentExampleSchema>\nexport type GridPosition = z.infer<typeof GridPositionSchema>\nexport type SecurityConstraints = z.infer<typeof SecurityConstraintsSchema>\nexport type PerformanceConstraints = z.infer<typeof PerformanceConstraintsSchema>\nexport type ComponentType = z.infer<typeof ComponentTypeSchema>\nexport type SandboxFlag = z.infer<typeof SandboxFlagSchema>\n\n// Form types (Sprint 1)\nexport type FormFieldOption = z.infer<typeof FormFieldOptionSchema>\nexport type FormFieldType = z.infer<typeof FormFieldTypeSchema>\nexport type FormField = z.infer<typeof FormFieldSchema>\nexport type FormSubmitAction = z.infer<typeof FormSubmitActionSchema>\nexport type FormComponentParams = z.infer<typeof FormComponentParamsSchema>\nexport type PrefillSource = z.infer<typeof PrefillSourceSchema>\n\n// Conditional field types (Sprint 2)\nexport type ShowWhenOperator = z.infer<typeof ShowWhenOperatorSchema>\nexport type ShowWhenCondition = z.infer<typeof ShowWhenConditionSchema>\n\n// Modal types (Sprint 3)\nexport type ModalSize = z.infer<typeof ModalSizeSchema>\nexport type ModalComponentParams = z.infer<typeof ModalComponentParamsSchema>\n\n// Action group types (Sprint 3)\nexport type ActionGroupLayout = z.infer<typeof ActionGroupLayoutSchema>\nexport type ActionGroupGap = z.infer<typeof ActionGroupGapSchema>\nexport type ActionParams = z.infer<typeof ActionParamsSchema>\nexport type ActionGroupParams = z.infer<typeof ActionGroupParamsSchema>\n\n// Image gallery types (Sprint 5)\nexport type GalleryImage = z.infer<typeof GalleryImageSchema>\nexport type ImageGalleryGap = z.infer<typeof ImageGalleryGapSchema>\nexport type ImageGalleryAspectRatio = z.infer<typeof ImageGalleryAspectRatioSchema>\nexport type ImageGalleryParams = z.infer<typeof ImageGalleryParamsSchema>\n\n// Video types (Sprint 5)\nexport type VideoAspectRatio = z.infer<typeof VideoAspectRatioSchema>\nexport type VideoComponentParams = z.infer<typeof VideoComponentParamsSchema>\n\n// Code types (Sprint 6)\nexport type CodeComponentParams = z.infer<typeof CodeComponentParamsSchema>\n\n// Map types (Sprint 6 + v5.0.2 LatLngPoint relaxation)\nexport type LatLngObject = z.infer<typeof LatLngObjectSchema>\nexport type LatLngTuple = z.infer<typeof LatLngTupleSchema>\nexport type LatLngPoint = z.infer<typeof LatLngPointSchema>\nexport type MapMarker = z.infer<typeof MapMarkerSchema>\nexport type MapComponentParams = z.infer<typeof MapComponentParamsSchema>\n\n// Graph types (v5.0.4)\nexport type GraphNode = z.infer<typeof GraphNodeSchema>\nexport type GraphEdge = z.infer<typeof GraphEdgeSchema>\nexport type GraphLayoutName = z.infer<typeof GraphLayoutNameSchema>\nexport type GraphLayout = z.infer<typeof GraphLayoutSchema>\nexport type GraphComponentParams = z.infer<typeof GraphComponentParamsSchema>\n\n// Primitive component params types (v5.0.1)\nexport type ChartType = z.infer<typeof ChartTypeSchema>\nexport type ChartDataset = z.infer<typeof ChartDatasetSchema>\nexport type ChartTimeAxis = z.infer<typeof ChartTimeAxisSchema>\nexport type ChartComponentParams = z.infer<typeof ChartComponentParamsSchema>\nexport type TableColumn = z.infer<typeof TableColumnSchema>\nexport type TablePagination = z.infer<typeof TablePaginationSchema>\nexport type TableVirtualizeOptions = z.infer<typeof TableVirtualizeOptionsSchema>\nexport type TableExportable = z.infer<typeof TableExportableSchema>\nexport type CitationEntry = z.infer<typeof CitationEntrySchema>\nexport type TableComponentParams = z.infer<typeof TableComponentParamsSchema>\nexport type MetricTrend = z.infer<typeof MetricTrendSchema>\nexport type MetricComponentParams = z.infer<typeof MetricComponentParamsSchema>\nexport type TextComponentParams = z.infer<typeof TextComponentParamsSchema>\nexport type IframeComponentParams = z.infer<typeof IframeComponentParamsSchema>\nexport type ImageComponentParams = z.infer<typeof ImageComponentParamsSchema>\nexport type LinkComponentParams = z.infer<typeof LinkComponentParamsSchema>\nexport type CarouselComponentParams = z.infer<typeof CarouselComponentParamsSchema>\nexport type ArtifactComponentParams = z.infer<typeof ArtifactComponentParamsSchema>\n"],"names":["z"],"mappings":"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"}
package/dist/schemas.d.ts CHANGED
@@ -18,7 +18,7 @@ export declare const GridPositionSchema: z.ZodObject<{
18
18
  rowStart?: number | undefined;
19
19
  rowSpan?: number | undefined;
20
20
  }>;
21
- export declare const ComponentTypeSchema: z.ZodEnum<["chart", "table", "metric", "text", "composite", "grid", "iframe", "image", "link", "action", "footer", "carousel", "artifact", "form", "modal", "action-group", "image-gallery", "video", "code", "map"]>;
21
+ export declare const ComponentTypeSchema: z.ZodEnum<["chart", "table", "metric", "text", "composite", "grid", "iframe", "image", "link", "action", "footer", "carousel", "artifact", "form", "modal", "action-group", "image-gallery", "video", "code", "map", "graph"]>;
22
22
  export declare const FormFieldOptionSchema: z.ZodObject<{
23
23
  label: z.ZodString;
24
24
  value: z.ZodString;
@@ -1005,6 +1005,236 @@ export declare const MapComponentParamsSchema: z.ZodObject<{
1005
1005
  tileLayer?: string | undefined;
1006
1006
  attribution?: string | undefined;
1007
1007
  }>;
1008
+ export declare const GraphNodeSchema: z.ZodObject<{
1009
+ id: z.ZodString;
1010
+ label: z.ZodOptional<z.ZodString>;
1011
+ type: z.ZodOptional<z.ZodString>;
1012
+ size: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>>;
1013
+ /**
1014
+ * Generic ranking / importance signal. Drives default node size when
1015
+ * `size` is omitted, and acts as the sort key for the `concentric`
1016
+ * layout (highest weight at center). Domain semantics opaque to the lib.
1017
+ */
1018
+ weight: z.ZodOptional<z.ZodNumber>;
1019
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1020
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1021
+ }, "strip", z.ZodTypeAny, {
1022
+ id: string;
1023
+ type?: string | undefined;
1024
+ label?: string | undefined;
1025
+ size?: number | [number, number] | undefined;
1026
+ weight?: number | undefined;
1027
+ style?: Record<string, unknown> | undefined;
1028
+ data?: Record<string, unknown> | undefined;
1029
+ }, {
1030
+ id: string;
1031
+ type?: string | undefined;
1032
+ label?: string | undefined;
1033
+ size?: number | [number, number] | undefined;
1034
+ weight?: number | undefined;
1035
+ style?: Record<string, unknown> | undefined;
1036
+ data?: Record<string, unknown> | undefined;
1037
+ }>;
1038
+ export declare const GraphEdgeSchema: z.ZodObject<{
1039
+ source: z.ZodString;
1040
+ target: z.ZodString;
1041
+ label: z.ZodOptional<z.ZodString>;
1042
+ type: z.ZodOptional<z.ZodString>;
1043
+ /**
1044
+ * Generic strength signal. Drives default edge stroke width and acts
1045
+ * as attractive force in `force` layouts. Domain semantics opaque.
1046
+ */
1047
+ weight: z.ZodOptional<z.ZodNumber>;
1048
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1049
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1050
+ }, "strip", z.ZodTypeAny, {
1051
+ source: string;
1052
+ target: string;
1053
+ type?: string | undefined;
1054
+ label?: string | undefined;
1055
+ weight?: number | undefined;
1056
+ style?: Record<string, unknown> | undefined;
1057
+ data?: Record<string, unknown> | undefined;
1058
+ }, {
1059
+ source: string;
1060
+ target: string;
1061
+ type?: string | undefined;
1062
+ label?: string | undefined;
1063
+ weight?: number | undefined;
1064
+ style?: Record<string, unknown> | undefined;
1065
+ data?: Record<string, unknown> | undefined;
1066
+ }>;
1067
+ /**
1068
+ * Layout names exposed in the spec. Narrow on purpose — `force` covers
1069
+ * generic networks, `dagre` covers DAGs, `concentric` covers
1070
+ * weight-ordered ring layouts, `mindmap` + `tree` cover hierarchical
1071
+ * fan-outs, `circular` + `grid` cover small-N ordered layouts. Power
1072
+ * users opt into other G6 layouts via the object form
1073
+ * `{ type: 'force', options: { ... } }` — `options` is a passthrough.
1074
+ */
1075
+ export declare const GraphLayoutNameSchema: z.ZodEnum<["force", "dagre", "mindmap", "tree", "circular", "grid", "concentric"]>;
1076
+ export declare const GraphLayoutSchema: z.ZodUnion<[z.ZodEnum<["force", "dagre", "mindmap", "tree", "circular", "grid", "concentric"]>, z.ZodObject<{
1077
+ type: z.ZodEnum<["force", "dagre", "mindmap", "tree", "circular", "grid", "concentric"]>;
1078
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1079
+ }, "strip", z.ZodTypeAny, {
1080
+ type: "grid" | "force" | "dagre" | "mindmap" | "tree" | "circular" | "concentric";
1081
+ options?: Record<string, unknown> | undefined;
1082
+ }, {
1083
+ type: "grid" | "force" | "dagre" | "mindmap" | "tree" | "circular" | "concentric";
1084
+ options?: Record<string, unknown> | undefined;
1085
+ }>]>;
1086
+ export declare const GraphComponentParamsSchema: z.ZodObject<{
1087
+ title: z.ZodOptional<z.ZodString>;
1088
+ nodes: z.ZodArray<z.ZodObject<{
1089
+ id: z.ZodString;
1090
+ label: z.ZodOptional<z.ZodString>;
1091
+ type: z.ZodOptional<z.ZodString>;
1092
+ size: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>>;
1093
+ /**
1094
+ * Generic ranking / importance signal. Drives default node size when
1095
+ * `size` is omitted, and acts as the sort key for the `concentric`
1096
+ * layout (highest weight at center). Domain semantics opaque to the lib.
1097
+ */
1098
+ weight: z.ZodOptional<z.ZodNumber>;
1099
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1100
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1101
+ }, "strip", z.ZodTypeAny, {
1102
+ id: string;
1103
+ type?: string | undefined;
1104
+ label?: string | undefined;
1105
+ size?: number | [number, number] | undefined;
1106
+ weight?: number | undefined;
1107
+ style?: Record<string, unknown> | undefined;
1108
+ data?: Record<string, unknown> | undefined;
1109
+ }, {
1110
+ id: string;
1111
+ type?: string | undefined;
1112
+ label?: string | undefined;
1113
+ size?: number | [number, number] | undefined;
1114
+ weight?: number | undefined;
1115
+ style?: Record<string, unknown> | undefined;
1116
+ data?: Record<string, unknown> | undefined;
1117
+ }>, "many">;
1118
+ edges: z.ZodOptional<z.ZodArray<z.ZodObject<{
1119
+ source: z.ZodString;
1120
+ target: z.ZodString;
1121
+ label: z.ZodOptional<z.ZodString>;
1122
+ type: z.ZodOptional<z.ZodString>;
1123
+ /**
1124
+ * Generic strength signal. Drives default edge stroke width and acts
1125
+ * as attractive force in `force` layouts. Domain semantics opaque.
1126
+ */
1127
+ weight: z.ZodOptional<z.ZodNumber>;
1128
+ style: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1129
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1130
+ }, "strip", z.ZodTypeAny, {
1131
+ source: string;
1132
+ target: string;
1133
+ type?: string | undefined;
1134
+ label?: string | undefined;
1135
+ weight?: number | undefined;
1136
+ style?: Record<string, unknown> | undefined;
1137
+ data?: Record<string, unknown> | undefined;
1138
+ }, {
1139
+ source: string;
1140
+ target: string;
1141
+ type?: string | undefined;
1142
+ label?: string | undefined;
1143
+ weight?: number | undefined;
1144
+ style?: Record<string, unknown> | undefined;
1145
+ data?: Record<string, unknown> | undefined;
1146
+ }>, "many">>;
1147
+ /**
1148
+ * Layout shorthand string OR object form. When omitted, the renderer
1149
+ * picks a sensible default: `'force'` if edges are present, `'circular'`
1150
+ * otherwise.
1151
+ */
1152
+ layout: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["force", "dagre", "mindmap", "tree", "circular", "grid", "concentric"]>, z.ZodObject<{
1153
+ type: z.ZodEnum<["force", "dagre", "mindmap", "tree", "circular", "grid", "concentric"]>;
1154
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1155
+ }, "strip", z.ZodTypeAny, {
1156
+ type: "grid" | "force" | "dagre" | "mindmap" | "tree" | "circular" | "concentric";
1157
+ options?: Record<string, unknown> | undefined;
1158
+ }, {
1159
+ type: "grid" | "force" | "dagre" | "mindmap" | "tree" | "circular" | "concentric";
1160
+ options?: Record<string, unknown> | undefined;
1161
+ }>]>>;
1162
+ height: z.ZodOptional<z.ZodString>;
1163
+ width: z.ZodOptional<z.ZodString>;
1164
+ rendererPref: z.ZodOptional<z.ZodEnum<["canvas", "svg"]>>;
1165
+ fitView: z.ZodOptional<z.ZodBoolean>;
1166
+ enableZoom: z.ZodOptional<z.ZodBoolean>;
1167
+ enableDrag: z.ZodOptional<z.ZodBoolean>;
1168
+ enableSelect: z.ZodOptional<z.ZodBoolean>;
1169
+ tooltip: z.ZodOptional<z.ZodBoolean>;
1170
+ className: z.ZodOptional<z.ZodString>;
1171
+ }, "strip", z.ZodTypeAny, {
1172
+ nodes: {
1173
+ id: string;
1174
+ type?: string | undefined;
1175
+ label?: string | undefined;
1176
+ size?: number | [number, number] | undefined;
1177
+ weight?: number | undefined;
1178
+ style?: Record<string, unknown> | undefined;
1179
+ data?: Record<string, unknown> | undefined;
1180
+ }[];
1181
+ title?: string | undefined;
1182
+ layout?: "grid" | "force" | "dagre" | "mindmap" | "tree" | "circular" | "concentric" | {
1183
+ type: "grid" | "force" | "dagre" | "mindmap" | "tree" | "circular" | "concentric";
1184
+ options?: Record<string, unknown> | undefined;
1185
+ } | undefined;
1186
+ tooltip?: boolean | undefined;
1187
+ height?: string | undefined;
1188
+ edges?: {
1189
+ source: string;
1190
+ target: string;
1191
+ type?: string | undefined;
1192
+ label?: string | undefined;
1193
+ weight?: number | undefined;
1194
+ style?: Record<string, unknown> | undefined;
1195
+ data?: Record<string, unknown> | undefined;
1196
+ }[] | undefined;
1197
+ width?: string | undefined;
1198
+ rendererPref?: "canvas" | "svg" | undefined;
1199
+ fitView?: boolean | undefined;
1200
+ enableZoom?: boolean | undefined;
1201
+ enableDrag?: boolean | undefined;
1202
+ enableSelect?: boolean | undefined;
1203
+ className?: string | undefined;
1204
+ }, {
1205
+ nodes: {
1206
+ id: string;
1207
+ type?: string | undefined;
1208
+ label?: string | undefined;
1209
+ size?: number | [number, number] | undefined;
1210
+ weight?: number | undefined;
1211
+ style?: Record<string, unknown> | undefined;
1212
+ data?: Record<string, unknown> | undefined;
1213
+ }[];
1214
+ title?: string | undefined;
1215
+ layout?: "grid" | "force" | "dagre" | "mindmap" | "tree" | "circular" | "concentric" | {
1216
+ type: "grid" | "force" | "dagre" | "mindmap" | "tree" | "circular" | "concentric";
1217
+ options?: Record<string, unknown> | undefined;
1218
+ } | undefined;
1219
+ tooltip?: boolean | undefined;
1220
+ height?: string | undefined;
1221
+ edges?: {
1222
+ source: string;
1223
+ target: string;
1224
+ type?: string | undefined;
1225
+ label?: string | undefined;
1226
+ weight?: number | undefined;
1227
+ style?: Record<string, unknown> | undefined;
1228
+ data?: Record<string, unknown> | undefined;
1229
+ }[] | undefined;
1230
+ width?: string | undefined;
1231
+ rendererPref?: "canvas" | "svg" | undefined;
1232
+ fitView?: boolean | undefined;
1233
+ enableZoom?: boolean | undefined;
1234
+ enableDrag?: boolean | undefined;
1235
+ enableSelect?: boolean | undefined;
1236
+ className?: string | undefined;
1237
+ }>;
1008
1238
  export declare const ChartTypeSchema: z.ZodEnum<["bar", "line", "pie", "doughnut", "radar", "scatter", "bubble", "polarArea"]>;
1009
1239
  export declare const ChartDatasetSchema: z.ZodObject<{
1010
1240
  label: z.ZodString;
@@ -1207,6 +1437,7 @@ export declare const ChartComponentParamsSchema: z.ZodObject<{
1207
1437
  } | undefined;
1208
1438
  title?: string | undefined;
1209
1439
  height?: string | undefined;
1440
+ className?: string | undefined;
1210
1441
  renderer?: "iframe" | "auto" | "native" | undefined;
1211
1442
  exportable?: boolean | undefined;
1212
1443
  timeAxis?: {
@@ -1216,7 +1447,6 @@ export declare const ChartComponentParamsSchema: z.ZodObject<{
1216
1447
  unit?: "day" | "week" | "month" | "quarter" | "year" | undefined;
1217
1448
  tooltipFormat?: string | undefined;
1218
1449
  } | undefined;
1219
- className?: string | undefined;
1220
1450
  }, {
1221
1451
  type: "bar" | "line" | "pie" | "doughnut" | "radar" | "scatter" | "bubble" | "polarArea";
1222
1452
  data: {
@@ -1243,6 +1473,7 @@ export declare const ChartComponentParamsSchema: z.ZodObject<{
1243
1473
  } | undefined;
1244
1474
  title?: string | undefined;
1245
1475
  height?: string | undefined;
1476
+ className?: string | undefined;
1246
1477
  renderer?: "iframe" | "auto" | "native" | undefined;
1247
1478
  exportable?: boolean | undefined;
1248
1479
  timeAxis?: {
@@ -1252,7 +1483,6 @@ export declare const ChartComponentParamsSchema: z.ZodObject<{
1252
1483
  unit?: "day" | "week" | "month" | "quarter" | "year" | undefined;
1253
1484
  tooltipFormat?: string | undefined;
1254
1485
  } | undefined;
1255
- className?: string | undefined;
1256
1486
  }>;
1257
1487
  export declare const TableColumnSchema: z.ZodObject<{
1258
1488
  key: z.ZodString;
@@ -1262,13 +1492,13 @@ export declare const TableColumnSchema: z.ZodObject<{
1262
1492
  }, "strip", z.ZodTypeAny, {
1263
1493
  label: string;
1264
1494
  key: string;
1265
- sortable?: boolean | undefined;
1266
1495
  width?: string | undefined;
1496
+ sortable?: boolean | undefined;
1267
1497
  }, {
1268
1498
  label: string;
1269
1499
  key: string;
1270
- sortable?: boolean | undefined;
1271
1500
  width?: string | undefined;
1501
+ sortable?: boolean | undefined;
1272
1502
  }>;
1273
1503
  export declare const TablePaginationSchema: z.ZodObject<{
1274
1504
  currentPage: z.ZodNumber;
@@ -1332,13 +1562,13 @@ export declare const TableComponentParamsSchema: z.ZodObject<{
1332
1562
  }, "strip", z.ZodTypeAny, {
1333
1563
  label: string;
1334
1564
  key: string;
1335
- sortable?: boolean | undefined;
1336
1565
  width?: string | undefined;
1566
+ sortable?: boolean | undefined;
1337
1567
  }, {
1338
1568
  label: string;
1339
1569
  key: string;
1340
- sortable?: boolean | undefined;
1341
1570
  width?: string | undefined;
1571
+ sortable?: boolean | undefined;
1342
1572
  }>, "many">;
1343
1573
  rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
1344
1574
  pagination: z.ZodOptional<z.ZodObject<{
@@ -1399,15 +1629,15 @@ export declare const TableComponentParamsSchema: z.ZodObject<{
1399
1629
  columns: {
1400
1630
  label: string;
1401
1631
  key: string;
1402
- sortable?: boolean | undefined;
1403
1632
  width?: string | undefined;
1633
+ sortable?: boolean | undefined;
1404
1634
  }[];
1405
1635
  title?: string | undefined;
1636
+ className?: string | undefined;
1406
1637
  exportable?: boolean | {
1407
1638
  filename?: string | undefined;
1408
1639
  formats?: ("csv" | "tsv" | "json")[] | undefined;
1409
1640
  } | undefined;
1410
- className?: string | undefined;
1411
1641
  pagination?: {
1412
1642
  currentPage: number;
1413
1643
  pageSize: number;
@@ -1429,15 +1659,15 @@ export declare const TableComponentParamsSchema: z.ZodObject<{
1429
1659
  columns: {
1430
1660
  label: string;
1431
1661
  key: string;
1432
- sortable?: boolean | undefined;
1433
1662
  width?: string | undefined;
1663
+ sortable?: boolean | undefined;
1434
1664
  }[];
1435
1665
  title?: string | undefined;
1666
+ className?: string | undefined;
1436
1667
  exportable?: boolean | {
1437
1668
  filename?: string | undefined;
1438
1669
  formats?: ("csv" | "tsv" | "json")[] | undefined;
1439
1670
  } | undefined;
1440
- className?: string | undefined;
1441
1671
  pagination?: {
1442
1672
  currentPage: number;
1443
1673
  pageSize: number;
@@ -1486,8 +1716,8 @@ export declare const MetricComponentParamsSchema: z.ZodObject<{
1486
1716
  value: string | number;
1487
1717
  title: string;
1488
1718
  icon?: string | undefined;
1489
- unit?: string | undefined;
1490
1719
  className?: string | undefined;
1720
+ unit?: string | undefined;
1491
1721
  trend?: {
1492
1722
  value: number;
1493
1723
  direction: "up" | "down" | "neutral";
@@ -1497,8 +1727,8 @@ export declare const MetricComponentParamsSchema: z.ZodObject<{
1497
1727
  value: string | number;
1498
1728
  title: string;
1499
1729
  icon?: string | undefined;
1500
- unit?: string | undefined;
1501
1730
  className?: string | undefined;
1731
+ unit?: string | undefined;
1502
1732
  trend?: {
1503
1733
  value: number;
1504
1734
  direction: "up" | "down" | "neutral";
@@ -1684,7 +1914,7 @@ export declare const ComponentExampleSchema: z.ZodObject<{
1684
1914
  }>;
1685
1915
  export declare const ComponentSchema: z.ZodObject<{
1686
1916
  id: z.ZodString;
1687
- type: z.ZodEnum<["chart", "table", "metric", "text", "composite", "grid", "iframe", "image", "link", "action", "footer", "carousel", "artifact", "form", "modal", "action-group", "image-gallery", "video", "code", "map"]>;
1917
+ type: z.ZodEnum<["chart", "table", "metric", "text", "composite", "grid", "iframe", "image", "link", "action", "footer", "carousel", "artifact", "form", "modal", "action-group", "image-gallery", "video", "code", "map", "graph"]>;
1688
1918
  name: z.ZodString;
1689
1919
  description: z.ZodOptional<z.ZodString>;
1690
1920
  schema: z.ZodObject<{
@@ -1775,7 +2005,7 @@ export declare const ComponentSchema: z.ZodObject<{
1775
2005
  deprecated: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1776
2006
  deprecationMessage: z.ZodOptional<z.ZodString>;
1777
2007
  }, "strip", z.ZodTypeAny, {
1778
- type: "code" | "map" | "chart" | "table" | "metric" | "text" | "composite" | "grid" | "iframe" | "image" | "link" | "action" | "footer" | "carousel" | "artifact" | "form" | "modal" | "action-group" | "image-gallery" | "video";
2008
+ type: "code" | "map" | "chart" | "table" | "metric" | "text" | "composite" | "grid" | "iframe" | "image" | "link" | "action" | "footer" | "carousel" | "artifact" | "form" | "modal" | "action-group" | "image-gallery" | "video" | "graph";
1779
2009
  name: string;
1780
2010
  id: string;
1781
2011
  schema: {
@@ -1811,7 +2041,7 @@ export declare const ComponentSchema: z.ZodObject<{
1811
2041
  deprecated?: boolean | undefined;
1812
2042
  deprecationMessage?: string | undefined;
1813
2043
  }, {
1814
- type: "code" | "map" | "chart" | "table" | "metric" | "text" | "composite" | "grid" | "iframe" | "image" | "link" | "action" | "footer" | "carousel" | "artifact" | "form" | "modal" | "action-group" | "image-gallery" | "video";
2044
+ type: "code" | "map" | "chart" | "table" | "metric" | "text" | "composite" | "grid" | "iframe" | "image" | "link" | "action" | "footer" | "carousel" | "artifact" | "form" | "modal" | "action-group" | "image-gallery" | "video" | "graph";
1815
2045
  name: string;
1816
2046
  id: string;
1817
2047
  schema: {
@@ -1883,7 +2113,7 @@ export declare const ComponentRegistrySchema: z.ZodObject<{
1883
2113
  }>>;
1884
2114
  components: z.ZodArray<z.ZodObject<{
1885
2115
  id: z.ZodString;
1886
- type: z.ZodEnum<["chart", "table", "metric", "text", "composite", "grid", "iframe", "image", "link", "action", "footer", "carousel", "artifact", "form", "modal", "action-group", "image-gallery", "video", "code", "map"]>;
2116
+ type: z.ZodEnum<["chart", "table", "metric", "text", "composite", "grid", "iframe", "image", "link", "action", "footer", "carousel", "artifact", "form", "modal", "action-group", "image-gallery", "video", "code", "map", "graph"]>;
1887
2117
  name: z.ZodString;
1888
2118
  description: z.ZodOptional<z.ZodString>;
1889
2119
  schema: z.ZodObject<{
@@ -1974,7 +2204,7 @@ export declare const ComponentRegistrySchema: z.ZodObject<{
1974
2204
  deprecated: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1975
2205
  deprecationMessage: z.ZodOptional<z.ZodString>;
1976
2206
  }, "strip", z.ZodTypeAny, {
1977
- type: "code" | "map" | "chart" | "table" | "metric" | "text" | "composite" | "grid" | "iframe" | "image" | "link" | "action" | "footer" | "carousel" | "artifact" | "form" | "modal" | "action-group" | "image-gallery" | "video";
2207
+ type: "code" | "map" | "chart" | "table" | "metric" | "text" | "composite" | "grid" | "iframe" | "image" | "link" | "action" | "footer" | "carousel" | "artifact" | "form" | "modal" | "action-group" | "image-gallery" | "video" | "graph";
1978
2208
  name: string;
1979
2209
  id: string;
1980
2210
  schema: {
@@ -2010,7 +2240,7 @@ export declare const ComponentRegistrySchema: z.ZodObject<{
2010
2240
  deprecated?: boolean | undefined;
2011
2241
  deprecationMessage?: string | undefined;
2012
2242
  }, {
2013
- type: "code" | "map" | "chart" | "table" | "metric" | "text" | "composite" | "grid" | "iframe" | "image" | "link" | "action" | "footer" | "carousel" | "artifact" | "form" | "modal" | "action-group" | "image-gallery" | "video";
2243
+ type: "code" | "map" | "chart" | "table" | "metric" | "text" | "composite" | "grid" | "iframe" | "image" | "link" | "action" | "footer" | "carousel" | "artifact" | "form" | "modal" | "action-group" | "image-gallery" | "video" | "graph";
2014
2244
  name: string;
2015
2245
  id: string;
2016
2246
  schema: {
@@ -2049,7 +2279,7 @@ export declare const ComponentRegistrySchema: z.ZodObject<{
2049
2279
  }, "strip", z.ZodTypeAny, {
2050
2280
  version: "1.0.0";
2051
2281
  components: {
2052
- type: "code" | "map" | "chart" | "table" | "metric" | "text" | "composite" | "grid" | "iframe" | "image" | "link" | "action" | "footer" | "carousel" | "artifact" | "form" | "modal" | "action-group" | "image-gallery" | "video";
2282
+ type: "code" | "map" | "chart" | "table" | "metric" | "text" | "composite" | "grid" | "iframe" | "image" | "link" | "action" | "footer" | "carousel" | "artifact" | "form" | "modal" | "action-group" | "image-gallery" | "video" | "graph";
2053
2283
  name: string;
2054
2284
  id: string;
2055
2285
  schema: {
@@ -2094,7 +2324,7 @@ export declare const ComponentRegistrySchema: z.ZodObject<{
2094
2324
  }, {
2095
2325
  version: "1.0.0";
2096
2326
  components: {
2097
- type: "code" | "map" | "chart" | "table" | "metric" | "text" | "composite" | "grid" | "iframe" | "image" | "link" | "action" | "footer" | "carousel" | "artifact" | "form" | "modal" | "action-group" | "image-gallery" | "video";
2327
+ type: "code" | "map" | "chart" | "table" | "metric" | "text" | "composite" | "grid" | "iframe" | "image" | "link" | "action" | "footer" | "carousel" | "artifact" | "form" | "modal" | "action-group" | "image-gallery" | "video" | "graph";
2098
2328
  name: string;
2099
2329
  id: string;
2100
2330
  schema: {
@@ -2171,6 +2401,11 @@ export type LatLngTuple = z.infer<typeof LatLngTupleSchema>;
2171
2401
  export type LatLngPoint = z.infer<typeof LatLngPointSchema>;
2172
2402
  export type MapMarker = z.infer<typeof MapMarkerSchema>;
2173
2403
  export type MapComponentParams = z.infer<typeof MapComponentParamsSchema>;
2404
+ export type GraphNode = z.infer<typeof GraphNodeSchema>;
2405
+ export type GraphEdge = z.infer<typeof GraphEdgeSchema>;
2406
+ export type GraphLayoutName = z.infer<typeof GraphLayoutNameSchema>;
2407
+ export type GraphLayout = z.infer<typeof GraphLayoutSchema>;
2408
+ export type GraphComponentParams = z.infer<typeof GraphComponentParamsSchema>;
2174
2409
  export type ChartType = z.infer<typeof ChartTypeSchema>;
2175
2410
  export type ChartDataset = z.infer<typeof ChartDatasetSchema>;
2176
2411
  export type ChartTimeAxis = z.infer<typeof ChartTimeAxisSchema>;
package/dist/schemas.js CHANGED
@@ -34,8 +34,10 @@ const ComponentTypeSchema = z.enum([
34
34
  // Sprint 5: Video embed (YouTube, Vimeo, direct)
35
35
  "code",
36
36
  // Sprint 6: Syntax highlighted code block
37
- "map"
37
+ "map",
38
38
  // Sprint 6: Interactive map (Leaflet)
39
+ "graph"
40
+ // v5.0.4: node-link graph (peer @antv/g6)
39
41
  ]);
40
42
  const FormFieldOptionSchema = z.object({
41
43
  label: z.string().min(1),
@@ -259,6 +261,83 @@ const MapComponentParamsSchema = z.object({
259
261
  tileLayer: z.string().optional(),
260
262
  attribution: z.string().optional()
261
263
  });
264
+ const GraphNodeSchema = z.object({
265
+ id: z.string().min(1),
266
+ label: z.string().optional(),
267
+ type: z.string().optional(),
268
+ // G6 node type: 'circle' | 'rect' | 'image' | …
269
+ size: z.union([z.number(), z.tuple([z.number(), z.number()])]).optional(),
270
+ /**
271
+ * Generic ranking / importance signal. Drives default node size when
272
+ * `size` is omitted, and acts as the sort key for the `concentric`
273
+ * layout (highest weight at center). Domain semantics opaque to the lib.
274
+ */
275
+ weight: z.number().optional(),
276
+ style: z.record(z.unknown()).optional(),
277
+ // passthrough G6 NodeStyle
278
+ data: z.record(z.unknown()).optional()
279
+ // arbitrary metadata for tooltips / click handlers
280
+ });
281
+ const GraphEdgeSchema = z.object({
282
+ source: z.string().min(1),
283
+ // must match a node.id
284
+ target: z.string().min(1),
285
+ // must match a node.id
286
+ label: z.string().optional(),
287
+ type: z.string().optional(),
288
+ // G6 edge type: 'line' | 'arc' | 'cubic' | 'polyline' | …
289
+ /**
290
+ * Generic strength signal. Drives default edge stroke width and acts
291
+ * as attractive force in `force` layouts. Domain semantics opaque.
292
+ */
293
+ weight: z.number().optional(),
294
+ style: z.record(z.unknown()).optional(),
295
+ data: z.record(z.unknown()).optional()
296
+ });
297
+ const GraphLayoutNameSchema = z.enum([
298
+ "force",
299
+ "dagre",
300
+ "mindmap",
301
+ "tree",
302
+ "circular",
303
+ "grid",
304
+ "concentric"
305
+ ]);
306
+ const GraphLayoutSchema = z.union([
307
+ GraphLayoutNameSchema,
308
+ z.object({
309
+ type: GraphLayoutNameSchema,
310
+ options: z.record(z.unknown()).optional()
311
+ })
312
+ ]);
313
+ const GraphComponentParamsSchema = z.object({
314
+ title: z.string().optional(),
315
+ nodes: z.array(GraphNodeSchema).min(1),
316
+ edges: z.array(GraphEdgeSchema).optional(),
317
+ /**
318
+ * Layout shorthand string OR object form. When omitted, the renderer
319
+ * picks a sensible default: `'force'` if edges are present, `'circular'`
320
+ * otherwise.
321
+ */
322
+ layout: GraphLayoutSchema.optional(),
323
+ height: z.string().optional(),
324
+ // CSS length, default '400px'
325
+ width: z.string().optional(),
326
+ // CSS length, default '100%'
327
+ rendererPref: z.enum(["canvas", "svg"]).optional(),
328
+ // default 'canvas'
329
+ fitView: z.boolean().optional(),
330
+ // default true
331
+ enableZoom: z.boolean().optional(),
332
+ // default true
333
+ enableDrag: z.boolean().optional(),
334
+ // default true (drag nodes)
335
+ enableSelect: z.boolean().optional(),
336
+ // default true (click-select highlight)
337
+ tooltip: z.boolean().optional(),
338
+ // default true (label + data summary on hover)
339
+ className: z.string().optional()
340
+ });
262
341
  const ChartTypeSchema = z.enum([
263
342
  "bar",
264
343
  "line",
@@ -481,6 +560,11 @@ export {
481
560
  FormFieldTypeSchema,
482
561
  FormSubmitActionSchema,
483
562
  GalleryImageSchema,
563
+ GraphComponentParamsSchema,
564
+ GraphEdgeSchema,
565
+ GraphLayoutNameSchema,
566
+ GraphLayoutSchema,
567
+ GraphNodeSchema,
484
568
  GridPositionSchema,
485
569
  IframeComponentParamsSchema,
486
570
  ImageComponentParamsSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sources":["../src/schemas/index.ts"],"sourcesContent":["/**\n * Zod validation schemas for component registry\n */\n\nimport { z } from 'zod'\n\n// Grid position schema\nexport const GridPositionSchema = z.object({\n colStart: z.number().int().min(1).max(12),\n colSpan: z.number().int().min(1).max(12),\n rowStart: z.number().int().min(1).optional(),\n rowSpan: z.number().int().min(1).default(1).optional(),\n})\n\n// Component types (synced with mcp-ui-solid v1.2.6)\nexport const ComponentTypeSchema = z.enum([\n 'chart',\n 'table',\n 'metric',\n 'text',\n 'composite',\n 'grid', // Phase 5.0: Nested grid layouts\n 'iframe',\n 'image',\n 'link',\n 'action', // Phase 5.0: Tool call actions\n 'footer', // Phase 5.0: Metadata footer\n 'carousel',\n 'artifact',\n 'form', // Sprint 1: Form component\n 'modal', // Sprint 3: Modal/dialog component\n 'action-group', // Sprint 3: Action grouping component\n 'image-gallery', // Sprint 5: Image gallery with lightbox\n 'video', // Sprint 5: Video embed (YouTube, Vimeo, direct)\n 'code', // Sprint 6: Syntax highlighted code block\n 'map', // Sprint 6: Interactive map (Leaflet)\n])\n\n// Form field option schema (for select, radio)\nexport const FormFieldOptionSchema = z.object({\n label: z.string().min(1),\n value: z.string(),\n disabled: z.boolean().optional(),\n})\n\n// Form field type schema\nexport const FormFieldTypeSchema = z.enum([\n 'text',\n 'email',\n 'password',\n 'number',\n 'date',\n 'textarea',\n 'select',\n 'checkbox',\n 'radio',\n 'autocomplete',\n 'range',\n 'tags',\n 'toggle',\n 'fieldset',\n])\n\n// Show when operator schema\nexport const ShowWhenOperatorSchema = z.enum([\n 'equals',\n 'notEquals',\n 'in',\n 'notIn',\n 'contains',\n 'startsWith',\n 'endsWith',\n 'greaterThan',\n 'lessThan',\n 'isEmpty',\n 'isNotEmpty',\n 'isTrue',\n 'isFalse',\n])\n\n// Show when condition schema\nexport const ShowWhenConditionSchema = z.object({\n field: z.string().min(1),\n operator: ShowWhenOperatorSchema,\n value: z.any().optional(),\n})\n\n// Prefill source schema (v4.2.0)\nexport const PrefillSourceSchema = z.enum(['user', 'detected', 'inferred', 'default'])\n\n// Form field schema\n//\n// NAME REGEX (relaxed in v5.0.2 per audit MCP-UI-AUDIT-2026-04-26.md §L.2)\n// — allows `_`, `.`, `-` after the first letter (kebab-case for URL params,\n// dot-paths for nested forms). Still requires a leading letter to keep the\n// value usable as a CSS selector / JS access key.\nexport const FormFieldSchema = z.object({\n name: z.string().regex(/^[a-zA-Z][\\w.-]*$/),\n type: FormFieldTypeSchema,\n label: z.string().optional(),\n placeholder: z.string().optional(),\n helpText: z.string().optional(),\n required: z.boolean().optional(),\n disabled: z.boolean().optional(),\n defaultValue: z.any().optional(),\n // Prefill — pre-populated value with source tracking (v4.2.0)\n prefill: z.union([z.string(), z.array(z.string())]).optional(),\n displayHint: z.string().optional(),\n source: PrefillSourceSchema.optional(),\n muted: z.boolean().optional(),\n // Prefill mode for autocomplete fields (v4.3.0)\n prefillMode: z.enum(['exact', 'resolve']).optional(),\n // Value format validation (v4.3.0)\n valueFormat: z.string().optional(),\n valueFormatHint: z.string().optional(),\n // Text/textarea specific\n minLength: z.number().int().min(0).optional(),\n maxLength: z.number().int().min(1).optional(),\n pattern: z.string().optional(),\n // Number specific\n min: z.number().optional(),\n max: z.number().optional(),\n step: z.number().optional(),\n // Date specific\n minDate: z.string().optional(),\n maxDate: z.string().optional(),\n // Select/Radio specific\n options: z.array(FormFieldOptionSchema).optional(),\n // Multi-select (v2.6.0)\n multiple: z.boolean().optional(),\n // Autocomplete specific (v2.6.0)\n apiUrl: z.string().url().optional(),\n searchParam: z.string().optional(),\n labelField: z.string().optional(),\n valueField: z.string().optional(),\n extraParams: z.record(z.string()).optional(),\n minChars: z.number().int().min(0).optional(),\n debounceMs: z.number().int().min(0).optional(),\n // Dependent field (v2.7.0)\n dependsOn: z.object({\n field: z.string(),\n apiUrl: z.string(),\n labelField: z.string(),\n valueField: z.string(),\n extraParams: z.record(z.string()).optional(),\n }).optional(),\n // Field status — API capability indicator (v2.11.0)\n fieldStatus: z.enum(['required', 'optional', 'unsupported', 'unknown']).optional(),\n statusReason: z.string().optional(),\n // Checkbox specific\n checkboxLabel: z.string().optional(),\n // Textarea specific\n rows: z.number().int().min(1).max(20).optional(),\n // Conditional visibility\n showWhen: ShowWhenConditionSchema.optional(),\n})\n\n// Form submit action schema\nexport const FormSubmitActionSchema = z.object({\n toolName: z.string().min(1),\n params: z.record(z.unknown()).optional(),\n})\n\n// Form component params schema\nexport const FormComponentParamsSchema = z.object({\n title: z.string().optional(),\n fields: z.array(FormFieldSchema).min(1),\n submitLabel: z.string().optional(),\n showReset: z.boolean().optional(),\n submitAction: FormSubmitActionSchema.optional(),\n // Persistence options (Sprint 4)\n persistKey: z.string().optional(),\n excludeFromPersistence: z.array(z.string()).optional(),\n persistExpiresIn: z.number().int().positive().optional(),\n layout: z.enum(['vertical', 'horizontal', 'inline']).optional(),\n // Auto-submit countdown in ms when all required fields are prefilled (v4.2.0)\n autoSubmitDelay: z.number().int().min(1000).max(30000).optional(),\n})\n\n// Modal size schema (Sprint 3)\nexport const ModalSizeSchema = z.enum(['sm', 'md', 'lg', 'xl', 'full'])\n\n// Modal component params schema (Sprint 3)\nexport const ModalComponentParamsSchema = z.object({\n title: z.string().optional(),\n size: ModalSizeSchema.optional(),\n showClose: z.boolean().optional(),\n closeOnEscape: z.boolean().optional(),\n closeOnBackdrop: z.boolean().optional(),\n maxHeight: z.string().optional(),\n // Note: content and footer are UIComponent references, validated separately\n})\n\n// Action group layout schema (Sprint 3)\nexport const ActionGroupLayoutSchema = z.enum([\n 'horizontal',\n 'vertical',\n 'space-between',\n 'end',\n 'center',\n])\n\n// Action group gap schema (Sprint 3)\nexport const ActionGroupGapSchema = z.enum(['none', 'sm', 'md', 'lg'])\n\n// Action component params schema (for action-group)\nexport const ActionParamsSchema = z.object({\n label: z.string().min(1),\n type: z.enum(['button', 'link']).optional(),\n action: z.enum(['tool-call', 'link', 'submit']).optional(),\n toolName: z.string().optional(),\n params: z.record(z.unknown()).optional(),\n url: z.string().optional(),\n variant: z.enum(['primary', 'secondary', 'outline', 'ghost', 'danger']).optional(),\n size: z.enum(['sm', 'md', 'lg']).optional(),\n icon: z.string().optional(),\n disabled: z.boolean().optional(),\n})\n\n// Action group component params schema (Sprint 3)\nexport const ActionGroupParamsSchema = z.object({\n actions: z.array(ActionParamsSchema).min(1),\n layout: ActionGroupLayoutSchema.optional(),\n gap: ActionGroupGapSchema.optional(),\n fullWidth: z.boolean().optional(),\n label: z.string().optional(),\n})\n\n// Gallery image schema (Sprint 5)\nexport const GalleryImageSchema = z.object({\n url: z.string().url(),\n thumbnail: z.string().url().optional(),\n alt: z.string().optional(),\n caption: z.string().optional(),\n srcset: z.string().optional(),\n sizes: z.string().optional(),\n})\n\n// Image gallery columns schema (Sprint 5)\nexport const ImageGalleryColumnsSchema = z.enum(['2', '3', '4', '5']).transform(Number) as unknown as z.ZodType<2 | 3 | 4 | 5>\n\n// Image gallery gap schema (Sprint 5)\nexport const ImageGalleryGapSchema = z.enum(['none', 'sm', 'md', 'lg'])\n\n// Image gallery aspect ratio schema (Sprint 5)\nexport const ImageGalleryAspectRatioSchema = z.enum(['1:1', '16:9', '4:3', 'auto'])\n\n// Image gallery params schema (Sprint 5)\nexport const ImageGalleryParamsSchema = z.object({\n title: z.string().optional(),\n images: z.array(GalleryImageSchema).min(1),\n columns: z.union([z.literal(2), z.literal(3), z.literal(4), z.literal(5)]).optional(),\n gap: ImageGalleryGapSchema.optional(),\n aspectRatio: ImageGalleryAspectRatioSchema.optional(),\n lightbox: z.boolean().optional(),\n showCaptions: z.boolean().optional(),\n})\n\n// Video aspect ratio schema (Sprint 5)\nexport const VideoAspectRatioSchema = z.enum(['16:9', '4:3', '1:1', '21:9'])\n\n// Video component params schema (Sprint 5)\nexport const VideoComponentParamsSchema = z.object({\n url: z.string().url(),\n title: z.string().optional(),\n caption: z.string().optional(),\n poster: z.string().url().optional(),\n aspectRatio: VideoAspectRatioSchema.optional(),\n autoplay: z.boolean().optional(),\n controls: z.boolean().optional(),\n loop: z.boolean().optional(),\n muted: z.boolean().optional(),\n startTime: z.number().int().min(0).optional(),\n})\n\n// Code component params schema (Sprint 6)\nexport const CodeComponentParamsSchema = z.object({\n code: z.string(),\n language: z.string().optional(),\n filename: z.string().optional(),\n showLineNumbers: z.boolean().optional(),\n startLine: z.number().optional(),\n highlightLines: z.array(z.number()).optional(),\n maxHeight: z.string().optional(),\n theme: z.enum(['light', 'dark']).optional(),\n})\n\n// Lat/Lng point — Leaflet-compatible polymorphic shape (v5.0.2)\n//\n// Leaflet's own LatLng API accepts either a `[lat, lng]` tuple OR a\n// `{ lat, lng }` object literal natively. Mirroring that here lets MCP\n// servers emit either shape without forcing normalization (per audit\n// MCP-UI-AUDIT-2026-04-26.md §L.1).\nexport const LatLngObjectSchema = z.object({\n lat: z.number(),\n lng: z.number(),\n})\nexport const LatLngTupleSchema = z.tuple([z.number(), z.number()])\nexport const LatLngPointSchema = z.union([LatLngTupleSchema, LatLngObjectSchema])\n\n// Map marker schema (Sprint 6, position relaxed to LatLngPoint in v5.0.2)\nexport const MapMarkerSchema = z.object({\n position: LatLngPointSchema,\n tooltip: z.string().optional(),\n popup: z.string().optional(),\n})\n\n// Map component params schema (Sprint 6, center relaxed to LatLngPoint in v5.0.2)\nexport const MapComponentParamsSchema = z.object({\n center: LatLngPointSchema.optional(),\n zoom: z.number().optional(),\n markers: z.array(MapMarkerSchema).optional(),\n height: z.string().optional(),\n fitBounds: z.boolean().optional(),\n zoomControl: z.boolean().optional(),\n scrollWheelZoom: z.boolean().optional(),\n tileLayer: z.string().optional(),\n attribution: z.string().optional(),\n})\n\n// =============================================================================\n// Primitive component params schemas (v5.0.1)\n//\n// These mirror the runtime types declared in `@seed-ship/mcp-ui-solid/types`\n// and the imperative checks in `mcp-ui-solid/src/services/validation.ts`.\n// They prepare B.1 — `validation.ts` migration to spec-driven Zod parsing\n// without losing the existing imperative resource-limits / iframe-domain\n// whitelist layers (see MCP-UI-AUDIT-2026-04-26.md §I).\n//\n// URL-bearing fields use `z.string().min(1)` (not `.url()`) on purpose —\n// validation.ts currently just truthy-checks them, and `.url()` would\n// reject relative paths and `localhost`-style dev URLs.\n// =============================================================================\n\n// Chart component (v5.0.1)\nexport const ChartTypeSchema = z.enum([\n 'bar',\n 'line',\n 'pie',\n 'doughnut',\n 'radar',\n 'scatter',\n 'bubble',\n 'polarArea',\n])\n\nexport const ChartDatasetSchema = z.object({\n label: z.string(),\n // Either an array of numbers or an array of {x, y} points (Chart.js shapes)\n data: z.union([\n z.array(z.number()),\n z.array(\n z.object({\n x: z.union([z.string(), z.number()]),\n y: z.number(),\n })\n ),\n ]),\n backgroundColor: z.union([z.string(), z.array(z.string())]).optional(),\n borderColor: z.union([z.string(), z.array(z.string())]).optional(),\n borderWidth: z.number().optional(),\n fill: z.union([z.boolean(), z.string()]).optional(),\n tension: z.number().optional(),\n})\n\nexport const ChartTimeAxisSchema = z.object({\n parser: z.string().optional(),\n unit: z.enum(['day', 'week', 'month', 'quarter', 'year']).optional(),\n tooltipFormat: z.string().optional(),\n min: z.string().optional(),\n max: z.string().optional(),\n})\n\nexport const ChartComponentParamsSchema = z.object({\n type: ChartTypeSchema,\n title: z.string().optional(),\n data: z.object({\n labels: z.array(z.string()),\n datasets: z.array(ChartDatasetSchema),\n }),\n options: z\n .object({\n responsive: z.boolean().optional(),\n maintainAspectRatio: z.boolean().optional(),\n tension: z.number().optional(),\n // `scales` and `plugins` are Chart.js opaque config objects — kept loose\n scales: z.unknown().optional(),\n plugins: z.unknown().optional(),\n })\n .optional(),\n renderer: z.enum(['native', 'iframe', 'auto']).optional(),\n exportable: z.boolean().optional(),\n timeAxis: ChartTimeAxisSchema.optional(),\n height: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Table component (v5.0.1)\nexport const TableColumnSchema = z.object({\n key: z.string().min(1),\n label: z.string(),\n sortable: z.boolean().optional(),\n width: z.string().optional(),\n})\n\nexport const TablePaginationSchema = z.object({\n currentPage: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n totalRows: z.number().int().min(0),\n})\n\nexport const TableVirtualizeOptionsSchema = z.object({\n enabled: z.boolean().optional(),\n rowHeight: z.number().int().min(1).optional(),\n overscan: z.number().int().min(0).optional(),\n threshold: z.number().int().min(1).optional(),\n})\n\nexport const TableExportableSchema = z.union([\n z.boolean(),\n z.object({\n formats: z.array(z.enum(['csv', 'tsv', 'json'])).optional(),\n filename: z.string().optional(),\n }),\n])\n\n// Citation entry — source of a `[N]` marker rendered inside table cells (v5.0.3)\n// Used by `<TableRenderer>` when `params.citationMap` is set, to turn LLM\n// `[📄 CITATION N]` markers into clickable chips. See\n// `mcp-ui-solid/docs/briefs/BRIEF-citations-in-table-cells.md` for context.\nexport const CitationEntrySchema = z.object({\n page: z.union([z.number(), z.string()]),\n file: z.string().optional(),\n file_id: z.union([z.number(), z.string()]).optional(),\n})\n\nexport const TableComponentParamsSchema = z.object({\n title: z.string().optional(),\n columns: z.array(TableColumnSchema).min(1),\n rows: z.array(z.record(z.unknown())),\n pagination: TablePaginationSchema.optional(),\n virtualize: z.union([z.boolean(), TableVirtualizeOptionsSchema]).optional(),\n exportable: TableExportableSchema.optional(),\n className: z.string().optional(),\n // v5.0.3 — opt-in citation chip rendering inside cells\n citationMap: z.record(z.string(), CitationEntrySchema).optional(),\n})\n\n// Metric component (v5.0.1)\nexport const MetricTrendSchema = z.object({\n value: z.number(),\n direction: z.enum(['up', 'down', 'neutral']),\n})\n\nexport const MetricComponentParamsSchema = z.object({\n title: z.string().min(1),\n value: z.union([z.string(), z.number()]),\n unit: z.string().optional(),\n trend: MetricTrendSchema.optional(),\n subtitle: z.string().optional(),\n icon: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Text component (v5.0.1)\nexport const TextComponentParamsSchema = z.object({\n content: z.string().min(1),\n markdown: z.boolean().optional(),\n className: z.string().optional(),\n})\n\n// Iframe component (v5.0.1) — domain whitelist stays in mcp-ui-solid (security)\nexport const IframeComponentParamsSchema = z.object({\n url: z.string().min(1),\n title: z.string().optional(),\n height: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Image component (v5.0.1)\nexport const ImageComponentParamsSchema = z.object({\n url: z.string().min(1),\n alt: z.string().optional(),\n caption: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Link component (v5.0.1)\nexport const LinkComponentParamsSchema = z.object({\n url: z.string().min(1),\n label: z.string().optional(),\n description: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Carousel component (v5.0.1)\n// `items` are UIComponent values that are validated recursively by the\n// renderer — kept opaque here to avoid a circular schema reference.\nexport const CarouselComponentParamsSchema = z.object({\n items: z.array(z.unknown()).min(1),\n height: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Artifact component (v5.0.1)\nexport const ArtifactComponentParamsSchema = z.object({\n url: z.string().min(1),\n filename: z.string().min(1),\n mimeType: z.string().min(1),\n size: z.number().int().min(0).optional(),\n description: z.string().optional(),\n})\n\n// Sandbox flags\nexport const SandboxFlagSchema = z.enum([\n 'allow-scripts',\n 'allow-same-origin',\n 'allow-forms',\n 'allow-popups',\n 'allow-modals',\n])\n\n// Security constraints\nexport const SecurityConstraintsSchema = z.object({\n requiresAuth: z.boolean().default(false).optional(),\n allowedDomains: z.array(z.string()).optional(),\n maxIframeDepth: z.number().int().min(0).max(3).default(1).optional(),\n sandboxFlags: z.array(SandboxFlagSchema).optional(),\n})\n\n// Performance constraints\nexport const PerformanceConstraintsSchema = z.object({\n maxRenderTime: z.number().int().min(100).default(5000).optional(),\n maxDataSize: z.number().int().min(1024).default(102400).optional(),\n})\n\n// Component schema (JSON Schema definition)\nexport const ComponentSchemaSchema = z.object({\n type: z.literal('object'),\n required: z.array(z.string()).optional(),\n properties: z.record(z.unknown()),\n additionalProperties: z.boolean().optional(),\n})\n\n// Component example\nexport const ComponentExampleSchema = z.object({\n name: z.string().min(1),\n description: z.string().optional(),\n params: z.record(z.unknown()),\n position: GridPositionSchema.optional(),\n})\n\n// Component definition\nexport const ComponentSchema = z.object({\n id: z.string().regex(/^[a-z0-9-]+$/),\n type: ComponentTypeSchema,\n name: z.string().min(1),\n description: z.string().optional(),\n schema: ComponentSchemaSchema,\n examples: z.array(ComponentExampleSchema).min(1),\n security: SecurityConstraintsSchema.optional(),\n performance: PerformanceConstraintsSchema.optional(),\n tags: z.array(z.string().regex(/^[a-z0-9-]+$/)).optional(),\n version: z\n .string()\n .regex(/^\\d+\\.\\d+\\.\\d+$/)\n .optional(),\n deprecated: z.boolean().default(false).optional(),\n deprecationMessage: z.string().optional(),\n})\n\n// Registry metadata\nexport const RegistryMetadataSchema = z.object({\n name: z.string().optional(),\n description: z.string().optional(),\n author: z.string().optional(),\n repository: z.string().url().optional(),\n})\n\n// Component registry\nexport const ComponentRegistrySchema = z.object({\n version: z.literal('1.0.0'),\n metadata: RegistryMetadataSchema.optional(),\n components: z.array(ComponentSchema).min(1),\n})\n\n// Export types inferred from schemas\nexport type ComponentRegistry = z.infer<typeof ComponentRegistrySchema>\nexport type Component = z.infer<typeof ComponentSchema>\nexport type ComponentExample = z.infer<typeof ComponentExampleSchema>\nexport type GridPosition = z.infer<typeof GridPositionSchema>\nexport type SecurityConstraints = z.infer<typeof SecurityConstraintsSchema>\nexport type PerformanceConstraints = z.infer<typeof PerformanceConstraintsSchema>\nexport type ComponentType = z.infer<typeof ComponentTypeSchema>\nexport type SandboxFlag = z.infer<typeof SandboxFlagSchema>\n\n// Form types (Sprint 1)\nexport type FormFieldOption = z.infer<typeof FormFieldOptionSchema>\nexport type FormFieldType = z.infer<typeof FormFieldTypeSchema>\nexport type FormField = z.infer<typeof FormFieldSchema>\nexport type FormSubmitAction = z.infer<typeof FormSubmitActionSchema>\nexport type FormComponentParams = z.infer<typeof FormComponentParamsSchema>\nexport type PrefillSource = z.infer<typeof PrefillSourceSchema>\n\n// Conditional field types (Sprint 2)\nexport type ShowWhenOperator = z.infer<typeof ShowWhenOperatorSchema>\nexport type ShowWhenCondition = z.infer<typeof ShowWhenConditionSchema>\n\n// Modal types (Sprint 3)\nexport type ModalSize = z.infer<typeof ModalSizeSchema>\nexport type ModalComponentParams = z.infer<typeof ModalComponentParamsSchema>\n\n// Action group types (Sprint 3)\nexport type ActionGroupLayout = z.infer<typeof ActionGroupLayoutSchema>\nexport type ActionGroupGap = z.infer<typeof ActionGroupGapSchema>\nexport type ActionParams = z.infer<typeof ActionParamsSchema>\nexport type ActionGroupParams = z.infer<typeof ActionGroupParamsSchema>\n\n// Image gallery types (Sprint 5)\nexport type GalleryImage = z.infer<typeof GalleryImageSchema>\nexport type ImageGalleryGap = z.infer<typeof ImageGalleryGapSchema>\nexport type ImageGalleryAspectRatio = z.infer<typeof ImageGalleryAspectRatioSchema>\nexport type ImageGalleryParams = z.infer<typeof ImageGalleryParamsSchema>\n\n// Video types (Sprint 5)\nexport type VideoAspectRatio = z.infer<typeof VideoAspectRatioSchema>\nexport type VideoComponentParams = z.infer<typeof VideoComponentParamsSchema>\n\n// Code types (Sprint 6)\nexport type CodeComponentParams = z.infer<typeof CodeComponentParamsSchema>\n\n// Map types (Sprint 6 + v5.0.2 LatLngPoint relaxation)\nexport type LatLngObject = z.infer<typeof LatLngObjectSchema>\nexport type LatLngTuple = z.infer<typeof LatLngTupleSchema>\nexport type LatLngPoint = z.infer<typeof LatLngPointSchema>\nexport type MapMarker = z.infer<typeof MapMarkerSchema>\nexport type MapComponentParams = z.infer<typeof MapComponentParamsSchema>\n\n// Primitive component params types (v5.0.1)\nexport type ChartType = z.infer<typeof ChartTypeSchema>\nexport type ChartDataset = z.infer<typeof ChartDatasetSchema>\nexport type ChartTimeAxis = z.infer<typeof ChartTimeAxisSchema>\nexport type ChartComponentParams = z.infer<typeof ChartComponentParamsSchema>\nexport type TableColumn = z.infer<typeof TableColumnSchema>\nexport type TablePagination = z.infer<typeof TablePaginationSchema>\nexport type TableVirtualizeOptions = z.infer<typeof TableVirtualizeOptionsSchema>\nexport type TableExportable = z.infer<typeof TableExportableSchema>\nexport type CitationEntry = z.infer<typeof CitationEntrySchema>\nexport type TableComponentParams = z.infer<typeof TableComponentParamsSchema>\nexport type MetricTrend = z.infer<typeof MetricTrendSchema>\nexport type MetricComponentParams = z.infer<typeof MetricComponentParamsSchema>\nexport type TextComponentParams = z.infer<typeof TextComponentParamsSchema>\nexport type IframeComponentParams = z.infer<typeof IframeComponentParamsSchema>\nexport type ImageComponentParams = z.infer<typeof ImageComponentParamsSchema>\nexport type LinkComponentParams = z.infer<typeof LinkComponentParamsSchema>\nexport type CarouselComponentParams = z.infer<typeof CarouselComponentParamsSchema>\nexport type ArtifactComponentParams = z.infer<typeof ArtifactComponentParamsSchema>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sources":["../src/schemas/index.ts"],"sourcesContent":["/**\n * Zod validation schemas for component registry\n */\n\nimport { z } from 'zod'\n\n// Grid position schema\nexport const GridPositionSchema = z.object({\n colStart: z.number().int().min(1).max(12),\n colSpan: z.number().int().min(1).max(12),\n rowStart: z.number().int().min(1).optional(),\n rowSpan: z.number().int().min(1).default(1).optional(),\n})\n\n// Component types (synced with mcp-ui-solid v1.2.6)\nexport const ComponentTypeSchema = z.enum([\n 'chart',\n 'table',\n 'metric',\n 'text',\n 'composite',\n 'grid', // Phase 5.0: Nested grid layouts\n 'iframe',\n 'image',\n 'link',\n 'action', // Phase 5.0: Tool call actions\n 'footer', // Phase 5.0: Metadata footer\n 'carousel',\n 'artifact',\n 'form', // Sprint 1: Form component\n 'modal', // Sprint 3: Modal/dialog component\n 'action-group', // Sprint 3: Action grouping component\n 'image-gallery', // Sprint 5: Image gallery with lightbox\n 'video', // Sprint 5: Video embed (YouTube, Vimeo, direct)\n 'code', // Sprint 6: Syntax highlighted code block\n 'map', // Sprint 6: Interactive map (Leaflet)\n 'graph', // v5.0.4: node-link graph (peer @antv/g6)\n])\n\n// Form field option schema (for select, radio)\nexport const FormFieldOptionSchema = z.object({\n label: z.string().min(1),\n value: z.string(),\n disabled: z.boolean().optional(),\n})\n\n// Form field type schema\nexport const FormFieldTypeSchema = z.enum([\n 'text',\n 'email',\n 'password',\n 'number',\n 'date',\n 'textarea',\n 'select',\n 'checkbox',\n 'radio',\n 'autocomplete',\n 'range',\n 'tags',\n 'toggle',\n 'fieldset',\n])\n\n// Show when operator schema\nexport const ShowWhenOperatorSchema = z.enum([\n 'equals',\n 'notEquals',\n 'in',\n 'notIn',\n 'contains',\n 'startsWith',\n 'endsWith',\n 'greaterThan',\n 'lessThan',\n 'isEmpty',\n 'isNotEmpty',\n 'isTrue',\n 'isFalse',\n])\n\n// Show when condition schema\nexport const ShowWhenConditionSchema = z.object({\n field: z.string().min(1),\n operator: ShowWhenOperatorSchema,\n value: z.any().optional(),\n})\n\n// Prefill source schema (v4.2.0)\nexport const PrefillSourceSchema = z.enum(['user', 'detected', 'inferred', 'default'])\n\n// Form field schema\n//\n// NAME REGEX (relaxed in v5.0.2 per audit MCP-UI-AUDIT-2026-04-26.md §L.2)\n// — allows `_`, `.`, `-` after the first letter (kebab-case for URL params,\n// dot-paths for nested forms). Still requires a leading letter to keep the\n// value usable as a CSS selector / JS access key.\nexport const FormFieldSchema = z.object({\n name: z.string().regex(/^[a-zA-Z][\\w.-]*$/),\n type: FormFieldTypeSchema,\n label: z.string().optional(),\n placeholder: z.string().optional(),\n helpText: z.string().optional(),\n required: z.boolean().optional(),\n disabled: z.boolean().optional(),\n defaultValue: z.any().optional(),\n // Prefill — pre-populated value with source tracking (v4.2.0)\n prefill: z.union([z.string(), z.array(z.string())]).optional(),\n displayHint: z.string().optional(),\n source: PrefillSourceSchema.optional(),\n muted: z.boolean().optional(),\n // Prefill mode for autocomplete fields (v4.3.0)\n prefillMode: z.enum(['exact', 'resolve']).optional(),\n // Value format validation (v4.3.0)\n valueFormat: z.string().optional(),\n valueFormatHint: z.string().optional(),\n // Text/textarea specific\n minLength: z.number().int().min(0).optional(),\n maxLength: z.number().int().min(1).optional(),\n pattern: z.string().optional(),\n // Number specific\n min: z.number().optional(),\n max: z.number().optional(),\n step: z.number().optional(),\n // Date specific\n minDate: z.string().optional(),\n maxDate: z.string().optional(),\n // Select/Radio specific\n options: z.array(FormFieldOptionSchema).optional(),\n // Multi-select (v2.6.0)\n multiple: z.boolean().optional(),\n // Autocomplete specific (v2.6.0)\n apiUrl: z.string().url().optional(),\n searchParam: z.string().optional(),\n labelField: z.string().optional(),\n valueField: z.string().optional(),\n extraParams: z.record(z.string()).optional(),\n minChars: z.number().int().min(0).optional(),\n debounceMs: z.number().int().min(0).optional(),\n // Dependent field (v2.7.0)\n dependsOn: z.object({\n field: z.string(),\n apiUrl: z.string(),\n labelField: z.string(),\n valueField: z.string(),\n extraParams: z.record(z.string()).optional(),\n }).optional(),\n // Field status — API capability indicator (v2.11.0)\n fieldStatus: z.enum(['required', 'optional', 'unsupported', 'unknown']).optional(),\n statusReason: z.string().optional(),\n // Checkbox specific\n checkboxLabel: z.string().optional(),\n // Textarea specific\n rows: z.number().int().min(1).max(20).optional(),\n // Conditional visibility\n showWhen: ShowWhenConditionSchema.optional(),\n})\n\n// Form submit action schema\nexport const FormSubmitActionSchema = z.object({\n toolName: z.string().min(1),\n params: z.record(z.unknown()).optional(),\n})\n\n// Form component params schema\nexport const FormComponentParamsSchema = z.object({\n title: z.string().optional(),\n fields: z.array(FormFieldSchema).min(1),\n submitLabel: z.string().optional(),\n showReset: z.boolean().optional(),\n submitAction: FormSubmitActionSchema.optional(),\n // Persistence options (Sprint 4)\n persistKey: z.string().optional(),\n excludeFromPersistence: z.array(z.string()).optional(),\n persistExpiresIn: z.number().int().positive().optional(),\n layout: z.enum(['vertical', 'horizontal', 'inline']).optional(),\n // Auto-submit countdown in ms when all required fields are prefilled (v4.2.0)\n autoSubmitDelay: z.number().int().min(1000).max(30000).optional(),\n})\n\n// Modal size schema (Sprint 3)\nexport const ModalSizeSchema = z.enum(['sm', 'md', 'lg', 'xl', 'full'])\n\n// Modal component params schema (Sprint 3)\nexport const ModalComponentParamsSchema = z.object({\n title: z.string().optional(),\n size: ModalSizeSchema.optional(),\n showClose: z.boolean().optional(),\n closeOnEscape: z.boolean().optional(),\n closeOnBackdrop: z.boolean().optional(),\n maxHeight: z.string().optional(),\n // Note: content and footer are UIComponent references, validated separately\n})\n\n// Action group layout schema (Sprint 3)\nexport const ActionGroupLayoutSchema = z.enum([\n 'horizontal',\n 'vertical',\n 'space-between',\n 'end',\n 'center',\n])\n\n// Action group gap schema (Sprint 3)\nexport const ActionGroupGapSchema = z.enum(['none', 'sm', 'md', 'lg'])\n\n// Action component params schema (for action-group)\nexport const ActionParamsSchema = z.object({\n label: z.string().min(1),\n type: z.enum(['button', 'link']).optional(),\n action: z.enum(['tool-call', 'link', 'submit']).optional(),\n toolName: z.string().optional(),\n params: z.record(z.unknown()).optional(),\n url: z.string().optional(),\n variant: z.enum(['primary', 'secondary', 'outline', 'ghost', 'danger']).optional(),\n size: z.enum(['sm', 'md', 'lg']).optional(),\n icon: z.string().optional(),\n disabled: z.boolean().optional(),\n})\n\n// Action group component params schema (Sprint 3)\nexport const ActionGroupParamsSchema = z.object({\n actions: z.array(ActionParamsSchema).min(1),\n layout: ActionGroupLayoutSchema.optional(),\n gap: ActionGroupGapSchema.optional(),\n fullWidth: z.boolean().optional(),\n label: z.string().optional(),\n})\n\n// Gallery image schema (Sprint 5)\nexport const GalleryImageSchema = z.object({\n url: z.string().url(),\n thumbnail: z.string().url().optional(),\n alt: z.string().optional(),\n caption: z.string().optional(),\n srcset: z.string().optional(),\n sizes: z.string().optional(),\n})\n\n// Image gallery columns schema (Sprint 5)\nexport const ImageGalleryColumnsSchema = z.enum(['2', '3', '4', '5']).transform(Number) as unknown as z.ZodType<2 | 3 | 4 | 5>\n\n// Image gallery gap schema (Sprint 5)\nexport const ImageGalleryGapSchema = z.enum(['none', 'sm', 'md', 'lg'])\n\n// Image gallery aspect ratio schema (Sprint 5)\nexport const ImageGalleryAspectRatioSchema = z.enum(['1:1', '16:9', '4:3', 'auto'])\n\n// Image gallery params schema (Sprint 5)\nexport const ImageGalleryParamsSchema = z.object({\n title: z.string().optional(),\n images: z.array(GalleryImageSchema).min(1),\n columns: z.union([z.literal(2), z.literal(3), z.literal(4), z.literal(5)]).optional(),\n gap: ImageGalleryGapSchema.optional(),\n aspectRatio: ImageGalleryAspectRatioSchema.optional(),\n lightbox: z.boolean().optional(),\n showCaptions: z.boolean().optional(),\n})\n\n// Video aspect ratio schema (Sprint 5)\nexport const VideoAspectRatioSchema = z.enum(['16:9', '4:3', '1:1', '21:9'])\n\n// Video component params schema (Sprint 5)\nexport const VideoComponentParamsSchema = z.object({\n url: z.string().url(),\n title: z.string().optional(),\n caption: z.string().optional(),\n poster: z.string().url().optional(),\n aspectRatio: VideoAspectRatioSchema.optional(),\n autoplay: z.boolean().optional(),\n controls: z.boolean().optional(),\n loop: z.boolean().optional(),\n muted: z.boolean().optional(),\n startTime: z.number().int().min(0).optional(),\n})\n\n// Code component params schema (Sprint 6)\nexport const CodeComponentParamsSchema = z.object({\n code: z.string(),\n language: z.string().optional(),\n filename: z.string().optional(),\n showLineNumbers: z.boolean().optional(),\n startLine: z.number().optional(),\n highlightLines: z.array(z.number()).optional(),\n maxHeight: z.string().optional(),\n theme: z.enum(['light', 'dark']).optional(),\n})\n\n// Lat/Lng point — Leaflet-compatible polymorphic shape (v5.0.2)\n//\n// Leaflet's own LatLng API accepts either a `[lat, lng]` tuple OR a\n// `{ lat, lng }` object literal natively. Mirroring that here lets MCP\n// servers emit either shape without forcing normalization (per audit\n// MCP-UI-AUDIT-2026-04-26.md §L.1).\nexport const LatLngObjectSchema = z.object({\n lat: z.number(),\n lng: z.number(),\n})\nexport const LatLngTupleSchema = z.tuple([z.number(), z.number()])\nexport const LatLngPointSchema = z.union([LatLngTupleSchema, LatLngObjectSchema])\n\n// Map marker schema (Sprint 6, position relaxed to LatLngPoint in v5.0.2)\nexport const MapMarkerSchema = z.object({\n position: LatLngPointSchema,\n tooltip: z.string().optional(),\n popup: z.string().optional(),\n})\n\n// Map component params schema (Sprint 6, center relaxed to LatLngPoint in v5.0.2)\nexport const MapComponentParamsSchema = z.object({\n center: LatLngPointSchema.optional(),\n zoom: z.number().optional(),\n markers: z.array(MapMarkerSchema).optional(),\n height: z.string().optional(),\n fitBounds: z.boolean().optional(),\n zoomControl: z.boolean().optional(),\n scrollWheelZoom: z.boolean().optional(),\n tileLayer: z.string().optional(),\n attribution: z.string().optional(),\n})\n\n// =============================================================================\n// Graph component (v5.0.4) — generic node-link visualization\n//\n// The shape is intentionally domain-neutral: nodes have an id + optional\n// label/weight/style, edges have source+target+optional weight/style. The\n// `weight` field on both is a generic ranking signal — domain semantics\n// (rerank score / co-retrieval count / criticality / token contribution /\n// frequency / etc.) are opaque to the lib and decided by the consumer.\n//\n// Renderer support lives in `@seed-ship/mcp-ui-solid` and lazy-loads\n// `@antv/g6 ^5` as a peer-optional dependency. Apps that don't install\n// the peer see an informative fallback instead of a crash.\n// =============================================================================\n\nexport const GraphNodeSchema = z.object({\n id: z.string().min(1),\n label: z.string().optional(),\n type: z.string().optional(), // G6 node type: 'circle' | 'rect' | 'image' | …\n size: z.union([z.number(), z.tuple([z.number(), z.number()])]).optional(),\n /**\n * Generic ranking / importance signal. Drives default node size when\n * `size` is omitted, and acts as the sort key for the `concentric`\n * layout (highest weight at center). Domain semantics opaque to the lib.\n */\n weight: z.number().optional(),\n style: z.record(z.unknown()).optional(), // passthrough G6 NodeStyle\n data: z.record(z.unknown()).optional(), // arbitrary metadata for tooltips / click handlers\n})\n\nexport const GraphEdgeSchema = z.object({\n source: z.string().min(1), // must match a node.id\n target: z.string().min(1), // must match a node.id\n label: z.string().optional(),\n type: z.string().optional(), // G6 edge type: 'line' | 'arc' | 'cubic' | 'polyline' | …\n /**\n * Generic strength signal. Drives default edge stroke width and acts\n * as attractive force in `force` layouts. Domain semantics opaque.\n */\n weight: z.number().optional(),\n style: z.record(z.unknown()).optional(),\n data: z.record(z.unknown()).optional(),\n})\n\n/**\n * Layout names exposed in the spec. Narrow on purpose — `force` covers\n * generic networks, `dagre` covers DAGs, `concentric` covers\n * weight-ordered ring layouts, `mindmap` + `tree` cover hierarchical\n * fan-outs, `circular` + `grid` cover small-N ordered layouts. Power\n * users opt into other G6 layouts via the object form\n * `{ type: 'force', options: { ... } }` — `options` is a passthrough.\n */\nexport const GraphLayoutNameSchema = z.enum([\n 'force',\n 'dagre',\n 'mindmap',\n 'tree',\n 'circular',\n 'grid',\n 'concentric',\n])\n\nexport const GraphLayoutSchema = z.union([\n GraphLayoutNameSchema,\n z.object({\n type: GraphLayoutNameSchema,\n options: z.record(z.unknown()).optional(),\n }),\n])\n\nexport const GraphComponentParamsSchema = z.object({\n title: z.string().optional(),\n nodes: z.array(GraphNodeSchema).min(1),\n edges: z.array(GraphEdgeSchema).optional(),\n /**\n * Layout shorthand string OR object form. When omitted, the renderer\n * picks a sensible default: `'force'` if edges are present, `'circular'`\n * otherwise.\n */\n layout: GraphLayoutSchema.optional(),\n height: z.string().optional(), // CSS length, default '400px'\n width: z.string().optional(), // CSS length, default '100%'\n rendererPref: z.enum(['canvas', 'svg']).optional(), // default 'canvas'\n fitView: z.boolean().optional(), // default true\n enableZoom: z.boolean().optional(), // default true\n enableDrag: z.boolean().optional(), // default true (drag nodes)\n enableSelect: z.boolean().optional(), // default true (click-select highlight)\n tooltip: z.boolean().optional(), // default true (label + data summary on hover)\n className: z.string().optional(),\n})\n\n// =============================================================================\n// Primitive component params schemas (v5.0.1)\n//\n// These mirror the runtime types declared in `@seed-ship/mcp-ui-solid/types`\n// and the imperative checks in `mcp-ui-solid/src/services/validation.ts`.\n// They prepare B.1 — `validation.ts` migration to spec-driven Zod parsing\n// without losing the existing imperative resource-limits / iframe-domain\n// whitelist layers (see MCP-UI-AUDIT-2026-04-26.md §I).\n//\n// URL-bearing fields use `z.string().min(1)` (not `.url()`) on purpose —\n// validation.ts currently just truthy-checks them, and `.url()` would\n// reject relative paths and `localhost`-style dev URLs.\n// =============================================================================\n\n// Chart component (v5.0.1)\nexport const ChartTypeSchema = z.enum([\n 'bar',\n 'line',\n 'pie',\n 'doughnut',\n 'radar',\n 'scatter',\n 'bubble',\n 'polarArea',\n])\n\nexport const ChartDatasetSchema = z.object({\n label: z.string(),\n // Either an array of numbers or an array of {x, y} points (Chart.js shapes)\n data: z.union([\n z.array(z.number()),\n z.array(\n z.object({\n x: z.union([z.string(), z.number()]),\n y: z.number(),\n })\n ),\n ]),\n backgroundColor: z.union([z.string(), z.array(z.string())]).optional(),\n borderColor: z.union([z.string(), z.array(z.string())]).optional(),\n borderWidth: z.number().optional(),\n fill: z.union([z.boolean(), z.string()]).optional(),\n tension: z.number().optional(),\n})\n\nexport const ChartTimeAxisSchema = z.object({\n parser: z.string().optional(),\n unit: z.enum(['day', 'week', 'month', 'quarter', 'year']).optional(),\n tooltipFormat: z.string().optional(),\n min: z.string().optional(),\n max: z.string().optional(),\n})\n\nexport const ChartComponentParamsSchema = z.object({\n type: ChartTypeSchema,\n title: z.string().optional(),\n data: z.object({\n labels: z.array(z.string()),\n datasets: z.array(ChartDatasetSchema),\n }),\n options: z\n .object({\n responsive: z.boolean().optional(),\n maintainAspectRatio: z.boolean().optional(),\n tension: z.number().optional(),\n // `scales` and `plugins` are Chart.js opaque config objects — kept loose\n scales: z.unknown().optional(),\n plugins: z.unknown().optional(),\n })\n .optional(),\n renderer: z.enum(['native', 'iframe', 'auto']).optional(),\n exportable: z.boolean().optional(),\n timeAxis: ChartTimeAxisSchema.optional(),\n height: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Table component (v5.0.1)\nexport const TableColumnSchema = z.object({\n key: z.string().min(1),\n label: z.string(),\n sortable: z.boolean().optional(),\n width: z.string().optional(),\n})\n\nexport const TablePaginationSchema = z.object({\n currentPage: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n totalRows: z.number().int().min(0),\n})\n\nexport const TableVirtualizeOptionsSchema = z.object({\n enabled: z.boolean().optional(),\n rowHeight: z.number().int().min(1).optional(),\n overscan: z.number().int().min(0).optional(),\n threshold: z.number().int().min(1).optional(),\n})\n\nexport const TableExportableSchema = z.union([\n z.boolean(),\n z.object({\n formats: z.array(z.enum(['csv', 'tsv', 'json'])).optional(),\n filename: z.string().optional(),\n }),\n])\n\n// Citation entry — source of a `[N]` marker rendered inside table cells (v5.0.3)\n// Used by `<TableRenderer>` when `params.citationMap` is set, to turn LLM\n// `[📄 CITATION N]` markers into clickable chips. See\n// `mcp-ui-solid/docs/briefs/BRIEF-citations-in-table-cells.md` for context.\nexport const CitationEntrySchema = z.object({\n page: z.union([z.number(), z.string()]),\n file: z.string().optional(),\n file_id: z.union([z.number(), z.string()]).optional(),\n})\n\nexport const TableComponentParamsSchema = z.object({\n title: z.string().optional(),\n columns: z.array(TableColumnSchema).min(1),\n rows: z.array(z.record(z.unknown())),\n pagination: TablePaginationSchema.optional(),\n virtualize: z.union([z.boolean(), TableVirtualizeOptionsSchema]).optional(),\n exportable: TableExportableSchema.optional(),\n className: z.string().optional(),\n // v5.0.3 — opt-in citation chip rendering inside cells\n citationMap: z.record(z.string(), CitationEntrySchema).optional(),\n})\n\n// Metric component (v5.0.1)\nexport const MetricTrendSchema = z.object({\n value: z.number(),\n direction: z.enum(['up', 'down', 'neutral']),\n})\n\nexport const MetricComponentParamsSchema = z.object({\n title: z.string().min(1),\n value: z.union([z.string(), z.number()]),\n unit: z.string().optional(),\n trend: MetricTrendSchema.optional(),\n subtitle: z.string().optional(),\n icon: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Text component (v5.0.1)\nexport const TextComponentParamsSchema = z.object({\n content: z.string().min(1),\n markdown: z.boolean().optional(),\n className: z.string().optional(),\n})\n\n// Iframe component (v5.0.1) — domain whitelist stays in mcp-ui-solid (security)\nexport const IframeComponentParamsSchema = z.object({\n url: z.string().min(1),\n title: z.string().optional(),\n height: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Image component (v5.0.1)\nexport const ImageComponentParamsSchema = z.object({\n url: z.string().min(1),\n alt: z.string().optional(),\n caption: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Link component (v5.0.1)\nexport const LinkComponentParamsSchema = z.object({\n url: z.string().min(1),\n label: z.string().optional(),\n description: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Carousel component (v5.0.1)\n// `items` are UIComponent values that are validated recursively by the\n// renderer — kept opaque here to avoid a circular schema reference.\nexport const CarouselComponentParamsSchema = z.object({\n items: z.array(z.unknown()).min(1),\n height: z.string().optional(),\n className: z.string().optional(),\n})\n\n// Artifact component (v5.0.1)\nexport const ArtifactComponentParamsSchema = z.object({\n url: z.string().min(1),\n filename: z.string().min(1),\n mimeType: z.string().min(1),\n size: z.number().int().min(0).optional(),\n description: z.string().optional(),\n})\n\n// Sandbox flags\nexport const SandboxFlagSchema = z.enum([\n 'allow-scripts',\n 'allow-same-origin',\n 'allow-forms',\n 'allow-popups',\n 'allow-modals',\n])\n\n// Security constraints\nexport const SecurityConstraintsSchema = z.object({\n requiresAuth: z.boolean().default(false).optional(),\n allowedDomains: z.array(z.string()).optional(),\n maxIframeDepth: z.number().int().min(0).max(3).default(1).optional(),\n sandboxFlags: z.array(SandboxFlagSchema).optional(),\n})\n\n// Performance constraints\nexport const PerformanceConstraintsSchema = z.object({\n maxRenderTime: z.number().int().min(100).default(5000).optional(),\n maxDataSize: z.number().int().min(1024).default(102400).optional(),\n})\n\n// Component schema (JSON Schema definition)\nexport const ComponentSchemaSchema = z.object({\n type: z.literal('object'),\n required: z.array(z.string()).optional(),\n properties: z.record(z.unknown()),\n additionalProperties: z.boolean().optional(),\n})\n\n// Component example\nexport const ComponentExampleSchema = z.object({\n name: z.string().min(1),\n description: z.string().optional(),\n params: z.record(z.unknown()),\n position: GridPositionSchema.optional(),\n})\n\n// Component definition\nexport const ComponentSchema = z.object({\n id: z.string().regex(/^[a-z0-9-]+$/),\n type: ComponentTypeSchema,\n name: z.string().min(1),\n description: z.string().optional(),\n schema: ComponentSchemaSchema,\n examples: z.array(ComponentExampleSchema).min(1),\n security: SecurityConstraintsSchema.optional(),\n performance: PerformanceConstraintsSchema.optional(),\n tags: z.array(z.string().regex(/^[a-z0-9-]+$/)).optional(),\n version: z\n .string()\n .regex(/^\\d+\\.\\d+\\.\\d+$/)\n .optional(),\n deprecated: z.boolean().default(false).optional(),\n deprecationMessage: z.string().optional(),\n})\n\n// Registry metadata\nexport const RegistryMetadataSchema = z.object({\n name: z.string().optional(),\n description: z.string().optional(),\n author: z.string().optional(),\n repository: z.string().url().optional(),\n})\n\n// Component registry\nexport const ComponentRegistrySchema = z.object({\n version: z.literal('1.0.0'),\n metadata: RegistryMetadataSchema.optional(),\n components: z.array(ComponentSchema).min(1),\n})\n\n// Export types inferred from schemas\nexport type ComponentRegistry = z.infer<typeof ComponentRegistrySchema>\nexport type Component = z.infer<typeof ComponentSchema>\nexport type ComponentExample = z.infer<typeof ComponentExampleSchema>\nexport type GridPosition = z.infer<typeof GridPositionSchema>\nexport type SecurityConstraints = z.infer<typeof SecurityConstraintsSchema>\nexport type PerformanceConstraints = z.infer<typeof PerformanceConstraintsSchema>\nexport type ComponentType = z.infer<typeof ComponentTypeSchema>\nexport type SandboxFlag = z.infer<typeof SandboxFlagSchema>\n\n// Form types (Sprint 1)\nexport type FormFieldOption = z.infer<typeof FormFieldOptionSchema>\nexport type FormFieldType = z.infer<typeof FormFieldTypeSchema>\nexport type FormField = z.infer<typeof FormFieldSchema>\nexport type FormSubmitAction = z.infer<typeof FormSubmitActionSchema>\nexport type FormComponentParams = z.infer<typeof FormComponentParamsSchema>\nexport type PrefillSource = z.infer<typeof PrefillSourceSchema>\n\n// Conditional field types (Sprint 2)\nexport type ShowWhenOperator = z.infer<typeof ShowWhenOperatorSchema>\nexport type ShowWhenCondition = z.infer<typeof ShowWhenConditionSchema>\n\n// Modal types (Sprint 3)\nexport type ModalSize = z.infer<typeof ModalSizeSchema>\nexport type ModalComponentParams = z.infer<typeof ModalComponentParamsSchema>\n\n// Action group types (Sprint 3)\nexport type ActionGroupLayout = z.infer<typeof ActionGroupLayoutSchema>\nexport type ActionGroupGap = z.infer<typeof ActionGroupGapSchema>\nexport type ActionParams = z.infer<typeof ActionParamsSchema>\nexport type ActionGroupParams = z.infer<typeof ActionGroupParamsSchema>\n\n// Image gallery types (Sprint 5)\nexport type GalleryImage = z.infer<typeof GalleryImageSchema>\nexport type ImageGalleryGap = z.infer<typeof ImageGalleryGapSchema>\nexport type ImageGalleryAspectRatio = z.infer<typeof ImageGalleryAspectRatioSchema>\nexport type ImageGalleryParams = z.infer<typeof ImageGalleryParamsSchema>\n\n// Video types (Sprint 5)\nexport type VideoAspectRatio = z.infer<typeof VideoAspectRatioSchema>\nexport type VideoComponentParams = z.infer<typeof VideoComponentParamsSchema>\n\n// Code types (Sprint 6)\nexport type CodeComponentParams = z.infer<typeof CodeComponentParamsSchema>\n\n// Map types (Sprint 6 + v5.0.2 LatLngPoint relaxation)\nexport type LatLngObject = z.infer<typeof LatLngObjectSchema>\nexport type LatLngTuple = z.infer<typeof LatLngTupleSchema>\nexport type LatLngPoint = z.infer<typeof LatLngPointSchema>\nexport type MapMarker = z.infer<typeof MapMarkerSchema>\nexport type MapComponentParams = z.infer<typeof MapComponentParamsSchema>\n\n// Graph types (v5.0.4)\nexport type GraphNode = z.infer<typeof GraphNodeSchema>\nexport type GraphEdge = z.infer<typeof GraphEdgeSchema>\nexport type GraphLayoutName = z.infer<typeof GraphLayoutNameSchema>\nexport type GraphLayout = z.infer<typeof GraphLayoutSchema>\nexport type GraphComponentParams = z.infer<typeof GraphComponentParamsSchema>\n\n// Primitive component params types (v5.0.1)\nexport type ChartType = z.infer<typeof ChartTypeSchema>\nexport type ChartDataset = z.infer<typeof ChartDatasetSchema>\nexport type ChartTimeAxis = z.infer<typeof ChartTimeAxisSchema>\nexport type ChartComponentParams = z.infer<typeof ChartComponentParamsSchema>\nexport type TableColumn = z.infer<typeof TableColumnSchema>\nexport type TablePagination = z.infer<typeof TablePaginationSchema>\nexport type TableVirtualizeOptions = z.infer<typeof TableVirtualizeOptionsSchema>\nexport type TableExportable = z.infer<typeof TableExportableSchema>\nexport type CitationEntry = z.infer<typeof CitationEntrySchema>\nexport type TableComponentParams = z.infer<typeof TableComponentParamsSchema>\nexport type MetricTrend = z.infer<typeof MetricTrendSchema>\nexport type MetricComponentParams = z.infer<typeof MetricComponentParamsSchema>\nexport type TextComponentParams = z.infer<typeof TextComponentParamsSchema>\nexport type IframeComponentParams = z.infer<typeof IframeComponentParamsSchema>\nexport type ImageComponentParams = z.infer<typeof ImageComponentParamsSchema>\nexport type LinkComponentParams = z.infer<typeof LinkComponentParamsSchema>\nexport type CarouselComponentParams = z.infer<typeof CarouselComponentParamsSchema>\nexport type ArtifactComponentParams = z.infer<typeof ArtifactComponentParamsSchema>\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seed-ship/mcp-ui-spec",
3
- "version": "5.0.3",
3
+ "version": "5.0.4",
4
4
  "description": "Component registry specification and JSON Schemas for MCP UI",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -56,8 +56,30 @@
56
56
  },
57
57
  "type": {
58
58
  "type": "string",
59
- "enum": ["chart", "table", "metric", "text", "composite"],
60
- "description": "Component category"
59
+ "enum": [
60
+ "chart",
61
+ "table",
62
+ "metric",
63
+ "text",
64
+ "composite",
65
+ "grid",
66
+ "iframe",
67
+ "image",
68
+ "link",
69
+ "action",
70
+ "footer",
71
+ "carousel",
72
+ "artifact",
73
+ "form",
74
+ "modal",
75
+ "action-group",
76
+ "image-gallery",
77
+ "video",
78
+ "code",
79
+ "map",
80
+ "graph"
81
+ ],
82
+ "description": "Component category (synced with ComponentTypeSchema in src/schemas/index.ts as of v5.0.4)"
61
83
  },
62
84
  "name": {
63
85
  "type": "string",