@fragments-sdk/cli 0.15.10 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/bin.js +901 -789
  2. package/dist/bin.js.map +1 -1
  3. package/dist/{chunk-6SQPP47U.js → chunk-ANTWP3UG.js} +532 -31
  4. package/dist/chunk-ANTWP3UG.js.map +1 -0
  5. package/dist/{chunk-ONUP6Z4W.js → chunk-B4A4ZEGS.js} +9 -9
  6. package/dist/{chunk-32LIWN2P.js → chunk-FFCI6OVZ.js} +584 -261
  7. package/dist/chunk-FFCI6OVZ.js.map +1 -0
  8. package/dist/{chunk-HQ6A6DTV.js → chunk-HNHE64CR.js} +315 -1089
  9. package/dist/chunk-HNHE64CR.js.map +1 -0
  10. package/dist/{chunk-BJE3425I.js → chunk-MN3B2EE6.js} +2 -2
  11. package/dist/{chunk-QCN35LJU.js → chunk-SAQW37L5.js} +3 -2
  12. package/dist/chunk-SAQW37L5.js.map +1 -0
  13. package/dist/{chunk-2WXKALIG.js → chunk-SNZXGHL2.js} +2 -2
  14. package/dist/{chunk-5JF26E55.js → chunk-VT2J62ND.js} +11 -11
  15. package/dist/{codebase-scanner-MQHUZC2G.js → codebase-scanner-2T5QIDBA.js} +2 -2
  16. package/dist/core/index.js +53 -1
  17. package/dist/{create-EXURTBKK.js → create-D44QD7MV.js} +2 -2
  18. package/dist/{doctor-BDPMYYE6.js → doctor-7B5N4JYU.js} +2 -2
  19. package/dist/{generate-PVOLUAAC.js → generate-T47JZRVU.js} +4 -4
  20. package/dist/govern-scan-X6UEIOSV.js +632 -0
  21. package/dist/govern-scan-X6UEIOSV.js.map +1 -0
  22. package/dist/index.js +7 -8
  23. package/dist/index.js.map +1 -1
  24. package/dist/{init-SSGUSP7Z.js → init-2RGAY4W6.js} +5 -5
  25. package/dist/mcp-bin.js +2 -2
  26. package/dist/scan-A2WJM54L.js +14 -0
  27. package/dist/{scan-generate-VY27PIOX.js → scan-generate-LUSOHT36.js} +4 -4
  28. package/dist/{service-QJGWUIVL.js → service-ROCP7TKG.js} +13 -15
  29. package/dist/{snapshot-WIJMEIFT.js → snapshot-B3SAW74Y.js} +2 -2
  30. package/dist/{static-viewer-7QIBQZRC.js → static-viewer-7L6UEYTJ.js} +3 -3
  31. package/dist/{test-64Z5BKBA.js → test-PQDVDURE.js} +3 -3
  32. package/dist/{token-normalizer-TEPOVBPV.js → token-normalizer-7TFCVDZL.js} +2 -2
  33. package/dist/{tokens-NZWFQIAB.js → tokens-64FG5FDP.js} +8 -9
  34. package/dist/{tokens-NZWFQIAB.js.map → tokens-64FG5FDP.js.map} +1 -1
  35. package/dist/{tokens-generate-5JQSJ27E.js → tokens-generate-CL4LBBQA.js} +2 -2
  36. package/package.json +9 -8
  37. package/src/bin.ts +55 -88
  38. package/src/commands/__fixtures__/shadcn-label-wrapper/src/components/ui/label.contract.json +1 -1
  39. package/src/commands/__fixtures__/shadcn-label-wrapper/src/components/ui/primitive.contract.json +1 -1
  40. package/src/commands/__tests__/context-cloud.test.ts +291 -0
  41. package/src/commands/__tests__/govern-scan.test.ts +185 -0
  42. package/src/commands/__tests__/govern.test.ts +1 -0
  43. package/src/commands/context-cloud.ts +355 -0
  44. package/src/commands/govern-scan-report.ts +170 -0
  45. package/src/commands/govern-scan.ts +282 -135
  46. package/src/commands/govern.ts +0 -157
  47. package/src/mcp/__tests__/server.integration.test.ts +9 -20
  48. package/src/service/enhance/codebase-scanner.ts +3 -2
  49. package/src/service/enhance/types.ts +3 -0
  50. package/dist/chunk-32LIWN2P.js.map +0 -1
  51. package/dist/chunk-6SQPP47U.js.map +0 -1
  52. package/dist/chunk-HQ6A6DTV.js.map +0 -1
  53. package/dist/chunk-MHIBEEW4.js +0 -511
  54. package/dist/chunk-MHIBEEW4.js.map +0 -1
  55. package/dist/chunk-QCN35LJU.js.map +0 -1
  56. package/dist/govern-scan-DW4QUAYD.js +0 -414
  57. package/dist/govern-scan-DW4QUAYD.js.map +0 -1
  58. package/dist/init-cloud-3DNKPWFB.js +0 -304
  59. package/dist/init-cloud-3DNKPWFB.js.map +0 -1
  60. package/dist/node-37AUE74M.js +0 -65
  61. package/dist/push-contracts-WY32TFP6.js +0 -84
  62. package/dist/push-contracts-WY32TFP6.js.map +0 -1
  63. package/dist/scan-PKSYSTRR.js +0 -15
  64. package/dist/static-viewer-7QIBQZRC.js.map +0 -1
  65. package/dist/token-parser-32KOIOFN.js +0 -22
  66. package/dist/token-parser-32KOIOFN.js.map +0 -1
  67. package/dist/tokens-push-HY3KO36V.js +0 -148
  68. package/dist/tokens-push-HY3KO36V.js.map +0 -1
  69. package/src/commands/init-cloud.ts +0 -382
  70. package/src/commands/push-contracts.ts +0 -112
  71. package/src/commands/tokens-push.ts +0 -199
  72. /package/dist/{chunk-ONUP6Z4W.js.map → chunk-B4A4ZEGS.js.map} +0 -0
  73. /package/dist/{chunk-BJE3425I.js.map → chunk-MN3B2EE6.js.map} +0 -0
  74. /package/dist/{chunk-2WXKALIG.js.map → chunk-SNZXGHL2.js.map} +0 -0
  75. /package/dist/{chunk-5JF26E55.js.map → chunk-VT2J62ND.js.map} +0 -0
  76. /package/dist/{codebase-scanner-MQHUZC2G.js.map → codebase-scanner-2T5QIDBA.js.map} +0 -0
  77. /package/dist/{create-EXURTBKK.js.map → create-D44QD7MV.js.map} +0 -0
  78. /package/dist/{doctor-BDPMYYE6.js.map → doctor-7B5N4JYU.js.map} +0 -0
  79. /package/dist/{generate-PVOLUAAC.js.map → generate-T47JZRVU.js.map} +0 -0
  80. /package/dist/{init-SSGUSP7Z.js.map → init-2RGAY4W6.js.map} +0 -0
  81. /package/dist/{node-37AUE74M.js.map → scan-A2WJM54L.js.map} +0 -0
  82. /package/dist/{scan-generate-VY27PIOX.js.map → scan-generate-LUSOHT36.js.map} +0 -0
  83. /package/dist/{scan-PKSYSTRR.js.map → service-ROCP7TKG.js.map} +0 -0
  84. /package/dist/{snapshot-WIJMEIFT.js.map → snapshot-B3SAW74Y.js.map} +0 -0
  85. /package/dist/{service-QJGWUIVL.js.map → static-viewer-7L6UEYTJ.js.map} +0 -0
  86. /package/dist/{test-64Z5BKBA.js.map → test-PQDVDURE.js.map} +0 -0
  87. /package/dist/{token-normalizer-TEPOVBPV.js.map → token-normalizer-7TFCVDZL.js.map} +0 -0
  88. /package/dist/{tokens-generate-5JQSJ27E.js.map → tokens-generate-CL4LBBQA.js.map} +0 -0
@@ -2,6 +2,8 @@ import { createRequire as __banner_createRequire } from 'module'; const require
2
2
 
3
3
  // ../core/dist/index.js
4
4
  import { z } from "zod";
5
+ import { z as z2 } from "zod";
6
+ import { z as z3 } from "zod";
5
7
  import { createElement } from "react";
6
8
  import {
7
9
  toId as storybookToId,
@@ -9,8 +11,8 @@ import {
9
11
  isExportStory as storybookIsExportStory
10
12
  } from "@storybook/csf";
11
13
  import { generateContext, filterPlaceholders, PLACEHOLDER_PATTERNS } from "@fragments-sdk/context/generate";
12
- import { z as z2 } from "zod";
13
- import { z as z3 } from "zod";
14
+ import { z as z4 } from "zod";
15
+ import { z as z5 } from "zod";
14
16
  import { ComponentGraphEngine } from "@fragments-sdk/context/graph";
15
17
  import { useEffect, useState } from "react";
16
18
  import { Fragment, jsx } from "react/jsx-runtime";
@@ -136,6 +138,301 @@ function budgetBar(percent, width = 20) {
136
138
  const bar = "\u2588".repeat(filled) + "\u2591".repeat(width - filled);
137
139
  return percent > 100 ? `\x1B[31m${bar}\x1B[0m` : `\x1B[32m${bar}\x1B[0m`;
138
140
  }
141
+ var bundleSchemaVersionSchema = z.literal(1);
142
+ var bundleTargetSchema = z.enum([
143
+ "cursor",
144
+ "agents",
145
+ "claude",
146
+ "copilot"
147
+ ]);
148
+ var bundleArtifactMetadataSchema = z.object({
149
+ kind: z.enum([
150
+ "manifest",
151
+ "tokens",
152
+ "design-system",
153
+ "readme",
154
+ "helper",
155
+ "component"
156
+ ]),
157
+ key: z.string().min(1),
158
+ label: z.string().min(1),
159
+ path: z.string().min(1),
160
+ etag: z.string().min(1),
161
+ updatedAt: z.string().datetime(),
162
+ target: bundleTargetSchema.optional(),
163
+ componentId: z.string().optional(),
164
+ contentType: z.enum(["application/json", "text/markdown"])
165
+ });
166
+ var bundleManifestRelationSchema = z.object({
167
+ type: z.string().min(1),
168
+ componentId: z.string().min(1),
169
+ name: z.string().min(1)
170
+ });
171
+ var bundleManifestCompoundChildSchema = z.object({
172
+ componentId: z.string().min(1),
173
+ name: z.string().min(1)
174
+ });
175
+ var bundleManifestComponentEntrySchema = z.object({
176
+ componentId: z.string().min(1),
177
+ file: z.string().min(1),
178
+ name: z.string().min(1),
179
+ publicSlug: z.string().nullable(),
180
+ tier: z.enum(["core", "composition"]),
181
+ category: z.string().min(1),
182
+ status: z.string().min(1),
183
+ description: z.string(),
184
+ propCount: z.number().int().nonnegative(),
185
+ hasExamples: z.boolean(),
186
+ hasCompoundChildren: z.boolean(),
187
+ relations: z.array(bundleManifestRelationSchema),
188
+ compoundChildren: z.array(bundleManifestCompoundChildSchema)
189
+ });
190
+ var bundleManifestSchema = z.object({
191
+ schemaVersion: bundleSchemaVersionSchema,
192
+ catalogRevision: z.string().min(1),
193
+ catalogUpdatedAt: z.string().datetime(),
194
+ org: z.object({
195
+ id: z.string().min(1),
196
+ name: z.string().min(1),
197
+ slug: z.string().min(1)
198
+ }),
199
+ designSystem: z.object({
200
+ name: z.string().min(1),
201
+ packageName: z.string().nullable(),
202
+ importPath: z.string().nullable()
203
+ }),
204
+ sourceBinding: z.object({
205
+ bindingId: z.string().min(1),
206
+ projectId: z.string().min(1),
207
+ projectName: z.string().min(1),
208
+ repoFullName: z.string().min(1),
209
+ resolution: z.enum(["explicit", "auto"])
210
+ }),
211
+ totalComponents: z.number().int().nonnegative(),
212
+ totalTokens: z.number().int().nonnegative(),
213
+ tokenCategories: z.record(z.string(), z.number().int().nonnegative()),
214
+ components: z.record(z.string(), bundleManifestComponentEntrySchema)
215
+ });
216
+ var bundleTokenEntrySchema = z.object({
217
+ name: z.string().min(1),
218
+ path: z.array(z.string().min(1)),
219
+ category: z.string().min(1),
220
+ value: z.string(),
221
+ type: z.string().optional(),
222
+ description: z.string().optional()
223
+ });
224
+ var bundleTokenFileSchema = z.object({
225
+ schemaVersion: bundleSchemaVersionSchema,
226
+ catalogRevision: z.string().min(1),
227
+ catalogUpdatedAt: z.string().datetime(),
228
+ categories: z.record(
229
+ z.string(),
230
+ z.object({
231
+ count: z.number().int().nonnegative(),
232
+ tokens: z.array(bundleTokenEntrySchema)
233
+ })
234
+ ),
235
+ flat: z.array(bundleTokenEntrySchema)
236
+ });
237
+ var bundleComponentShardSchema = z.object({
238
+ schemaVersion: bundleSchemaVersionSchema,
239
+ catalogRevision: z.string().min(1),
240
+ catalogUpdatedAt: z.string().datetime(),
241
+ componentId: z.string().min(1),
242
+ file: z.string().min(1),
243
+ component: z.object({
244
+ componentKey: z.string().min(1),
245
+ publicRef: z.string().min(1),
246
+ publicId: z.string().nullable(),
247
+ publicSlug: z.string().nullable(),
248
+ isCanonical: z.boolean().optional(),
249
+ name: z.string().min(1),
250
+ tier: z.enum(["core", "composition"]),
251
+ category: z.string().min(1),
252
+ status: z.string().min(1),
253
+ description: z.string(),
254
+ usageGuidance: z.string(),
255
+ dos: z.array(z.string()),
256
+ donts: z.array(z.string()),
257
+ props: z.record(z.string(), z.unknown()),
258
+ relations: z.array(z.record(z.string(), z.unknown())),
259
+ compoundChildren: z.array(bundleManifestCompoundChildSchema),
260
+ examples: z.array(z.record(z.string(), z.unknown())),
261
+ source: z.literal("design-system"),
262
+ sourcePath: z.string().optional(),
263
+ sourceRepoFullName: z.string().optional(),
264
+ parentComponentName: z.string().optional(),
265
+ parentComponentKey: z.string().optional()
266
+ })
267
+ });
268
+ var mcpSnapshotSchemaVersionSchema = z2.literal(1);
269
+ var mcpSourceTypeSchema = z2.enum([
270
+ "fragments-json",
271
+ "cloud",
272
+ "auto-extract",
273
+ "custom-json",
274
+ "bundle"
275
+ ]);
276
+ var mcpCapabilitySchema = z2.enum([
277
+ "components",
278
+ "tokens",
279
+ "blocks",
280
+ "graph",
281
+ "performance"
282
+ ]);
283
+ var mcpPerformanceImportSchema = z2.object({
284
+ path: z2.string().min(1),
285
+ bytes: z2.number().nonnegative(),
286
+ percent: z2.number().nonnegative()
287
+ });
288
+ var mcpPerformanceDataSchema = z2.object({
289
+ bundleSize: z2.number().nonnegative(),
290
+ rawSize: z2.number().nonnegative(),
291
+ complexity: z2.enum(["lightweight", "moderate", "heavy"]),
292
+ budgetPercent: z2.number().nonnegative(),
293
+ overBudget: z2.boolean(),
294
+ measuredAt: z2.string().datetime(),
295
+ imports: z2.array(mcpPerformanceImportSchema).optional()
296
+ });
297
+ var mcpPerformanceSummarySchema = z2.object({
298
+ preset: z2.string().min(1),
299
+ budget: z2.number().nonnegative(),
300
+ total: z2.number().int().nonnegative(),
301
+ overBudget: z2.number().int().nonnegative(),
302
+ tiers: z2.record(
303
+ z2.enum(["lightweight", "moderate", "heavy"]),
304
+ z2.number().int().nonnegative()
305
+ )
306
+ });
307
+ var mcpComponentPropSchema = z2.object({
308
+ type: z2.string().min(1),
309
+ description: z2.string().default(""),
310
+ required: z2.boolean().default(false),
311
+ default: z2.unknown().optional(),
312
+ values: z2.array(z2.string()).optional(),
313
+ constraints: z2.array(z2.string()).optional()
314
+ });
315
+ var mcpComponentExampleSchema = z2.object({
316
+ name: z2.string().min(1),
317
+ description: z2.string().optional(),
318
+ code: z2.string().optional(),
319
+ kind: z2.string().optional()
320
+ });
321
+ var mcpComponentRelationSchema = z2.object({
322
+ componentName: z2.string().min(1),
323
+ componentId: z2.string().optional(),
324
+ relationship: z2.string().min(1),
325
+ note: z2.string().optional(),
326
+ description: z2.string().optional()
327
+ });
328
+ var mcpCompoundChildSchema = z2.object({
329
+ name: z2.string().min(1),
330
+ componentId: z2.string().optional(),
331
+ description: z2.string().optional(),
332
+ required: z2.boolean().optional(),
333
+ accepts: z2.array(z2.string()).optional(),
334
+ visibility: z2.enum(["public", "internal"]).optional()
335
+ });
336
+ var mcpGuidancePatternSchema = z2.object({
337
+ name: z2.string().min(1),
338
+ description: z2.string().optional()
339
+ });
340
+ var mcpComponentGuidanceSchema = z2.object({
341
+ when: z2.array(z2.string()).default([]),
342
+ whenNot: z2.array(z2.string()).default([]),
343
+ guidelines: z2.array(z2.string()).default([]),
344
+ accessibility: z2.array(z2.string()).default([]),
345
+ usageGuidance: z2.string().optional(),
346
+ dos: z2.array(z2.string()).default([]),
347
+ donts: z2.array(z2.string()).default([]),
348
+ patterns: z2.array(mcpGuidancePatternSchema).default([])
349
+ });
350
+ var mcpComponentMetadataSchema = z2.object({
351
+ a11yRules: z2.array(z2.string()).default([]),
352
+ scenarioTags: z2.array(z2.string()).default([])
353
+ });
354
+ var mcpComponentSchema = z2.object({
355
+ id: z2.string().min(1),
356
+ name: z2.string().min(1),
357
+ description: z2.string().default(""),
358
+ category: z2.string().default("uncategorized"),
359
+ status: z2.string().default("stable"),
360
+ tags: z2.array(z2.string()).default([]),
361
+ props: z2.record(z2.string(), mcpComponentPropSchema).default({}),
362
+ propsSummary: z2.array(z2.string()).default([]),
363
+ examples: z2.array(mcpComponentExampleSchema).default([]),
364
+ relations: z2.array(mcpComponentRelationSchema).default([]),
365
+ compoundChildren: z2.array(mcpCompoundChildSchema).default([]),
366
+ guidance: mcpComponentGuidanceSchema.default({
367
+ when: [],
368
+ whenNot: [],
369
+ guidelines: [],
370
+ accessibility: [],
371
+ dos: [],
372
+ donts: [],
373
+ patterns: []
374
+ }),
375
+ sourceType: mcpSourceTypeSchema,
376
+ sourcePath: z2.string().optional(),
377
+ sourceRepoFullName: z2.string().optional(),
378
+ packageName: z2.string().optional(),
379
+ importPath: z2.string().optional(),
380
+ publicRef: z2.string().optional(),
381
+ publicSlug: z2.string().nullable().optional(),
382
+ isCanonical: z2.boolean().optional(),
383
+ tier: z2.string().optional(),
384
+ parentComponentId: z2.string().optional(),
385
+ parentComponentName: z2.string().optional(),
386
+ performance: mcpPerformanceDataSchema.optional(),
387
+ metadata: mcpComponentMetadataSchema.default({
388
+ a11yRules: [],
389
+ scenarioTags: []
390
+ })
391
+ });
392
+ var mcpBlockSchema = z2.object({
393
+ id: z2.string().min(1),
394
+ name: z2.string().min(1),
395
+ description: z2.string().default(""),
396
+ category: z2.string().default("uncategorized"),
397
+ components: z2.array(z2.string()).default([]),
398
+ tags: z2.array(z2.string()).default([]),
399
+ code: z2.string().default("")
400
+ });
401
+ var mcpTokenSchema = z2.object({
402
+ name: z2.string().min(1),
403
+ category: z2.string().min(1),
404
+ value: z2.string().optional(),
405
+ description: z2.string().optional(),
406
+ path: z2.array(z2.string()).optional(),
407
+ type: z2.string().optional()
408
+ });
409
+ var mcpTokenDataSchema = z2.object({
410
+ prefix: z2.string(),
411
+ total: z2.number().int().nonnegative(),
412
+ categories: z2.record(z2.string(), z2.array(mcpTokenSchema)),
413
+ flat: z2.array(mcpTokenSchema).default([])
414
+ });
415
+ var mcpSnapshotMetadataSchema = z2.object({
416
+ designSystemName: z2.string().optional(),
417
+ packageName: z2.string().optional(),
418
+ importPath: z2.string().optional(),
419
+ revision: z2.string().optional(),
420
+ updatedAt: z2.string().optional()
421
+ });
422
+ var mcpSnapshotSchema = z2.object({
423
+ schemaVersion: mcpSnapshotSchemaVersionSchema,
424
+ sourceType: mcpSourceTypeSchema,
425
+ sourceLabel: z2.string().min(1),
426
+ capabilities: z2.array(mcpCapabilitySchema),
427
+ metadata: mcpSnapshotMetadataSchema.default({}),
428
+ components: z2.record(z2.string(), mcpComponentSchema),
429
+ blocks: z2.record(z2.string(), mcpBlockSchema).optional(),
430
+ tokens: mcpTokenDataSchema.optional(),
431
+ graph: z2.unknown().optional(),
432
+ performanceSummary: mcpPerformanceSummarySchema.optional(),
433
+ packageMap: z2.record(z2.string(), z2.string()).default({}),
434
+ defaultPackageName: z2.string().optional()
435
+ });
139
436
  var COLOR_PROPERTIES = /* @__PURE__ */ new Set(["backgroundColor", "borderColor", "color"]);
140
437
  var NUMERIC_PROPERTIES = /* @__PURE__ */ new Set([
141
438
  "borderWidth",
@@ -345,33 +642,33 @@ function getComplianceBadge(compliancePercent) {
345
642
  return { label: "Poor", color: "red" };
346
643
  }
347
644
  }
348
- var figmaStringMappingSchema = z.object({
349
- __type: z.literal("figma-string"),
350
- figmaProperty: z.string().min(1)
645
+ var figmaStringMappingSchema = z3.object({
646
+ __type: z3.literal("figma-string"),
647
+ figmaProperty: z3.string().min(1)
351
648
  });
352
- var figmaBooleanMappingSchema = z.object({
353
- __type: z.literal("figma-boolean"),
354
- figmaProperty: z.string().min(1),
355
- valueMapping: z.object({ true: z.unknown(), false: z.unknown() }).optional()
649
+ var figmaBooleanMappingSchema = z3.object({
650
+ __type: z3.literal("figma-boolean"),
651
+ figmaProperty: z3.string().min(1),
652
+ valueMapping: z3.object({ true: z3.unknown(), false: z3.unknown() }).optional()
356
653
  });
357
- var figmaEnumMappingSchema = z.object({
358
- __type: z.literal("figma-enum"),
359
- figmaProperty: z.string().min(1),
360
- valueMapping: z.record(z.unknown())
654
+ var figmaEnumMappingSchema = z3.object({
655
+ __type: z3.literal("figma-enum"),
656
+ figmaProperty: z3.string().min(1),
657
+ valueMapping: z3.record(z3.unknown())
361
658
  });
362
- var figmaInstanceMappingSchema = z.object({
363
- __type: z.literal("figma-instance"),
364
- figmaProperty: z.string().min(1)
659
+ var figmaInstanceMappingSchema = z3.object({
660
+ __type: z3.literal("figma-instance"),
661
+ figmaProperty: z3.string().min(1)
365
662
  });
366
- var figmaChildrenMappingSchema = z.object({
367
- __type: z.literal("figma-children"),
368
- layers: z.array(z.string().min(1))
663
+ var figmaChildrenMappingSchema = z3.object({
664
+ __type: z3.literal("figma-children"),
665
+ layers: z3.array(z3.string().min(1))
369
666
  });
370
- var figmaTextContentMappingSchema = z.object({
371
- __type: z.literal("figma-text-content"),
372
- layer: z.string().min(1)
667
+ var figmaTextContentMappingSchema = z3.object({
668
+ __type: z3.literal("figma-text-content"),
669
+ layer: z3.string().min(1)
373
670
  });
374
- var figmaPropMappingSchema = z.discriminatedUnion("__type", [
671
+ var figmaPropMappingSchema = z3.discriminatedUnion("__type", [
375
672
  figmaStringMappingSchema,
376
673
  figmaBooleanMappingSchema,
377
674
  figmaEnumMappingSchema,
@@ -379,28 +676,28 @@ var figmaPropMappingSchema = z.discriminatedUnion("__type", [
379
676
  figmaChildrenMappingSchema,
380
677
  figmaTextContentMappingSchema
381
678
  ]);
382
- var fragmentMetaSchema = z.object({
383
- name: z.string().min(1),
384
- description: z.string().min(1),
385
- category: z.string().min(1),
386
- tags: z.array(z.string()).optional(),
387
- status: z.enum(["stable", "beta", "deprecated", "experimental"]).optional(),
388
- since: z.string().optional(),
389
- dependencies: z.array(z.object({
390
- name: z.string().min(1),
391
- version: z.string().min(1),
392
- reason: z.string().optional()
679
+ var fragmentMetaSchema = z3.object({
680
+ name: z3.string().min(1),
681
+ description: z3.string().min(1),
682
+ category: z3.string().min(1),
683
+ tags: z3.array(z3.string()).optional(),
684
+ status: z3.enum(["stable", "beta", "deprecated", "experimental"]).optional(),
685
+ since: z3.string().optional(),
686
+ dependencies: z3.array(z3.object({
687
+ name: z3.string().min(1),
688
+ version: z3.string().min(1),
689
+ reason: z3.string().optional()
393
690
  })).optional(),
394
- figma: z.string().url().optional(),
395
- figmaProps: z.record(figmaPropMappingSchema).optional()
691
+ figma: z3.string().url().optional(),
692
+ figmaProps: z3.record(figmaPropMappingSchema).optional()
396
693
  });
397
- var fragmentUsageSchema = z.object({
398
- when: z.array(z.string()),
399
- whenNot: z.array(z.string()),
400
- guidelines: z.array(z.string()).optional(),
401
- accessibility: z.array(z.string()).optional()
694
+ var fragmentUsageSchema = z3.object({
695
+ when: z3.array(z3.string()),
696
+ whenNot: z3.array(z3.string()),
697
+ guidelines: z3.array(z3.string()).optional(),
698
+ accessibility: z3.array(z3.string()).optional()
402
699
  });
403
- var propTypeSchema = z.enum([
700
+ var propTypeSchema = z3.enum([
404
701
  "string",
405
702
  "number",
406
703
  "boolean",
@@ -413,16 +710,16 @@ var propTypeSchema = z.enum([
413
710
  "union",
414
711
  "custom"
415
712
  ]);
416
- var propDefinitionSchema = z.object({
713
+ var propDefinitionSchema = z3.object({
417
714
  type: propTypeSchema,
418
- values: z.array(z.string()).readonly().optional(),
419
- default: z.unknown().optional(),
420
- description: z.string().optional(),
421
- required: z.boolean().optional(),
422
- constraints: z.array(z.string()).optional(),
423
- typeDetails: z.record(z.unknown()).optional()
715
+ values: z3.array(z3.string()).readonly().optional(),
716
+ default: z3.unknown().optional(),
717
+ description: z3.string().optional(),
718
+ required: z3.boolean().optional(),
719
+ constraints: z3.array(z3.string()).optional(),
720
+ typeDetails: z3.record(z3.unknown()).optional()
424
721
  });
425
- var relationshipTypeSchema = z.enum([
722
+ var relationshipTypeSchema = z3.enum([
426
723
  "alternative",
427
724
  "sibling",
428
725
  "parent",
@@ -431,136 +728,136 @@ var relationshipTypeSchema = z.enum([
431
728
  "complementary",
432
729
  "used-by"
433
730
  ]);
434
- var componentRelationSchema = z.object({
435
- component: z.string().min(1),
731
+ var componentRelationSchema = z3.object({
732
+ component: z3.string().min(1),
436
733
  relationship: relationshipTypeSchema,
437
- note: z.string().min(1)
734
+ note: z3.string().min(1)
438
735
  });
439
- var fragmentVariantSchema = z.object({
440
- name: z.string().min(1),
441
- description: z.string().min(1),
442
- render: z.function().returns(z.unknown()),
443
- code: z.string().optional(),
444
- figma: z.string().url().optional()
736
+ var fragmentVariantSchema = z3.object({
737
+ name: z3.string().min(1),
738
+ description: z3.string().min(1),
739
+ render: z3.function().returns(z3.unknown()),
740
+ code: z3.string().optional(),
741
+ figma: z3.string().url().optional()
445
742
  });
446
- var fragmentBanSchema = z.object({
447
- pattern: z.string().min(1),
448
- message: z.string().min(1)
743
+ var fragmentBanSchema = z3.object({
744
+ pattern: z3.string().min(1),
745
+ message: z3.string().min(1)
449
746
  });
450
- var fragmentContractSchema = z.object({
451
- propsSummary: z.array(z.string()).optional(),
452
- a11yRules: z.array(z.string()).optional(),
453
- bans: z.array(fragmentBanSchema).optional(),
454
- scenarioTags: z.array(z.string()).optional(),
455
- performanceBudget: z.number().positive().optional(),
456
- compoundChildren: z.record(z.object({
457
- required: z.boolean().optional(),
458
- accepts: z.array(z.string()).optional(),
459
- description: z.string().optional()
747
+ var fragmentContractSchema = z3.object({
748
+ propsSummary: z3.array(z3.string()).optional(),
749
+ a11yRules: z3.array(z3.string()).optional(),
750
+ bans: z3.array(fragmentBanSchema).optional(),
751
+ scenarioTags: z3.array(z3.string()).optional(),
752
+ performanceBudget: z3.number().positive().optional(),
753
+ compoundChildren: z3.record(z3.object({
754
+ required: z3.boolean().optional(),
755
+ accepts: z3.array(z3.string()).optional(),
756
+ description: z3.string().optional()
460
757
  })).optional(),
461
- canonicalUsage: z.array(z.string()).optional()
758
+ canonicalUsage: z3.array(z3.string()).optional()
462
759
  });
463
- var fragmentGeneratedSchema = z.object({
464
- source: z.enum(["storybook", "manual", "ai"]),
465
- sourceFile: z.string().optional(),
466
- confidence: z.number().min(0).max(1).optional(),
467
- timestamp: z.string().datetime().optional()
760
+ var fragmentGeneratedSchema = z3.object({
761
+ source: z3.enum(["storybook", "manual", "ai"]),
762
+ sourceFile: z3.string().optional(),
763
+ confidence: z3.number().min(0).max(1).optional(),
764
+ timestamp: z3.string().datetime().optional()
468
765
  });
469
- var aiMetadataSchema = z.object({
470
- compositionPattern: z.enum(["compound", "simple", "controlled", "wrapper"]).optional(),
471
- subComponents: z.array(z.string()).optional(),
472
- requiredChildren: z.array(z.string()).optional(),
473
- commonPatterns: z.array(z.string()).optional()
766
+ var aiMetadataSchema = z3.object({
767
+ compositionPattern: z3.enum(["compound", "simple", "controlled", "wrapper"]).optional(),
768
+ subComponents: z3.array(z3.string()).optional(),
769
+ requiredChildren: z3.array(z3.string()).optional(),
770
+ commonPatterns: z3.array(z3.string()).optional()
474
771
  });
475
- var blockDefinitionSchema = z.object({
476
- name: z.string().min(1),
477
- description: z.string().min(1),
478
- category: z.string().min(1),
479
- components: z.array(z.string().min(1)).min(1),
480
- code: z.string().min(1),
481
- tags: z.array(z.string()).optional()
772
+ var blockDefinitionSchema = z3.object({
773
+ name: z3.string().min(1),
774
+ description: z3.string().min(1),
775
+ category: z3.string().min(1),
776
+ components: z3.array(z3.string().min(1)).min(1),
777
+ code: z3.string().min(1),
778
+ tags: z3.array(z3.string()).optional()
482
779
  });
483
- var fragmentDefinitionSchema = z.object({
484
- component: z.any(),
780
+ var fragmentDefinitionSchema = z3.object({
781
+ component: z3.any(),
485
782
  // Allow any component type (function, class, forwardRef, etc.)
486
783
  meta: fragmentMetaSchema,
487
784
  usage: fragmentUsageSchema,
488
- props: z.record(propDefinitionSchema),
489
- relations: z.array(componentRelationSchema).optional(),
490
- variants: z.array(fragmentVariantSchema),
785
+ props: z3.record(propDefinitionSchema),
786
+ relations: z3.array(componentRelationSchema).optional(),
787
+ variants: z3.array(fragmentVariantSchema),
491
788
  // Allow empty variants array
492
789
  contract: fragmentContractSchema.optional(),
493
790
  ai: aiMetadataSchema.optional(),
494
791
  _generated: fragmentGeneratedSchema.optional()
495
792
  });
496
- var fragmentsConfigSchema = z.object({
497
- include: z.array(z.string()).min(1),
498
- exclude: z.array(z.string()).optional(),
499
- components: z.array(z.string()).optional(),
500
- outFile: z.string().optional(),
501
- framework: z.enum(["react", "vue", "svelte"]).optional(),
502
- figmaFile: z.string().url().optional(),
503
- figmaToken: z.string().optional(),
504
- screenshots: z.object({}).passthrough().optional(),
505
- service: z.object({}).passthrough().optional(),
506
- registry: z.object({}).passthrough().optional(),
507
- tokens: z.object({
508
- include: z.array(z.string()).min(1)
793
+ var fragmentsConfigSchema = z3.object({
794
+ include: z3.array(z3.string()).min(1),
795
+ exclude: z3.array(z3.string()).optional(),
796
+ components: z3.array(z3.string()).optional(),
797
+ outFile: z3.string().optional(),
798
+ framework: z3.enum(["react", "vue", "svelte"]).optional(),
799
+ figmaFile: z3.string().url().optional(),
800
+ figmaToken: z3.string().optional(),
801
+ screenshots: z3.object({}).passthrough().optional(),
802
+ service: z3.object({}).passthrough().optional(),
803
+ registry: z3.object({}).passthrough().optional(),
804
+ tokens: z3.object({
805
+ include: z3.array(z3.string()).min(1)
509
806
  }).passthrough().optional(),
510
- snippets: z.object({
511
- mode: z.enum(["warn", "error"]).optional(),
512
- scope: z.enum(["snippet", "snippet+render"]).optional(),
513
- requireFullSnippet: z.boolean().optional(),
514
- allowedExternalModules: z.array(z.string().min(1)).optional()
807
+ snippets: z3.object({
808
+ mode: z3.enum(["warn", "error"]).optional(),
809
+ scope: z3.enum(["snippet", "snippet+render"]).optional(),
810
+ requireFullSnippet: z3.boolean().optional(),
811
+ allowedExternalModules: z3.array(z3.string().min(1)).optional()
515
812
  }).optional(),
516
- performance: z.union([
517
- z.enum(["strict", "standard", "relaxed"]),
518
- z.object({
519
- preset: z.enum(["strict", "standard", "relaxed"]).optional(),
520
- budgets: z.object({
521
- bundleSize: z.number().positive().optional()
813
+ performance: z3.union([
814
+ z3.enum(["strict", "standard", "relaxed"]),
815
+ z3.object({
816
+ preset: z3.enum(["strict", "standard", "relaxed"]).optional(),
817
+ budgets: z3.object({
818
+ bundleSize: z3.number().positive().optional()
522
819
  }).optional()
523
820
  })
524
821
  ]).optional(),
525
- storybook: z.object({
526
- exclude: z.array(z.string()).optional(),
527
- include: z.array(z.string()).optional(),
528
- excludeDeprecated: z.boolean().optional(),
529
- excludeTests: z.boolean().optional(),
530
- excludeSvgIcons: z.boolean().optional(),
531
- excludeSubComponents: z.boolean().optional()
822
+ storybook: z3.object({
823
+ exclude: z3.array(z3.string()).optional(),
824
+ include: z3.array(z3.string()).optional(),
825
+ excludeDeprecated: z3.boolean().optional(),
826
+ excludeTests: z3.boolean().optional(),
827
+ excludeSvgIcons: z3.boolean().optional(),
828
+ excludeSubComponents: z3.boolean().optional()
532
829
  }).optional(),
533
- govern: z.object({
534
- extends: z.array(z.string()).optional(),
535
- rules: z.record(z.string(), z.unknown()).optional(),
536
- agents: z.record(z.string(), z.object({
537
- rules: z.record(z.string(), z.unknown()).optional()
830
+ govern: z3.object({
831
+ extends: z3.array(z3.string()).optional(),
832
+ rules: z3.record(z3.string(), z3.unknown()).optional(),
833
+ agents: z3.record(z3.string(), z3.object({
834
+ rules: z3.record(z3.string(), z3.unknown()).optional()
538
835
  })).optional(),
539
- audit: z.object({}).passthrough().optional(),
540
- runners: z.record(z.string(), z.object({}).passthrough()).optional()
836
+ audit: z3.object({}).passthrough().optional(),
837
+ runners: z3.record(z3.string(), z3.object({}).passthrough()).optional()
541
838
  }).optional()
542
839
  });
543
- var compositionMetadataSchema = z.object({
544
- pattern: z.enum(["compound", "simple", "controlled", "wrapper"]).optional(),
545
- subComponents: z.array(z.string()).optional(),
546
- requiredChildren: z.array(z.string()).optional(),
547
- commonPatterns: z.array(z.string()).optional()
840
+ var compositionMetadataSchema = z3.object({
841
+ pattern: z3.enum(["compound", "simple", "controlled", "wrapper"]).optional(),
842
+ subComponents: z3.array(z3.string()).optional(),
843
+ requiredChildren: z3.array(z3.string()).optional(),
844
+ commonPatterns: z3.array(z3.string()).optional()
548
845
  });
549
- var fragmentProvenanceSchema = z.object({
550
- source: z.enum(["storybook", "manual", "ai", "scan"]),
551
- sourceFile: z.string().optional(),
552
- confidence: z.number().min(0).max(1).optional(),
553
- timestamp: z.string().datetime().optional(),
554
- autoFields: z.array(z.string()).optional(),
555
- humanFields: z.array(z.string()).optional()
846
+ var fragmentProvenanceSchema = z3.object({
847
+ source: z3.enum(["storybook", "manual", "ai", "scan"]),
848
+ sourceFile: z3.string().optional(),
849
+ confidence: z3.number().min(0).max(1).optional(),
850
+ timestamp: z3.string().datetime().optional(),
851
+ autoFields: z3.array(z3.string()).optional(),
852
+ humanFields: z3.array(z3.string()).optional()
556
853
  });
557
- var fragmentDefinitionV2Schema = z.object({
558
- component: z.any(),
854
+ var fragmentDefinitionV2Schema = z3.object({
855
+ component: z3.any(),
559
856
  meta: fragmentMetaSchema,
560
857
  guidance: fragmentUsageSchema,
561
- props: z.record(propDefinitionSchema),
562
- relations: z.array(componentRelationSchema).optional(),
563
- examples: z.array(fragmentVariantSchema),
858
+ props: z3.record(propDefinitionSchema),
859
+ relations: z3.array(componentRelationSchema).optional(),
860
+ examples: z3.array(fragmentVariantSchema),
564
861
  composition: compositionMetadataSchema.optional(),
565
862
  contract: fragmentContractSchema.optional(),
566
863
  _provenance: fragmentProvenanceSchema.optional()
@@ -1739,7 +2036,7 @@ function parseDTCGFile(content, filePath) {
1739
2036
  total: resolvedTokens.length
1740
2037
  };
1741
2038
  }
1742
- var dtcgTokenTypeSchema = z2.enum([
2039
+ var dtcgTokenTypeSchema = z4.enum([
1743
2040
  "color",
1744
2041
  "dimension",
1745
2042
  "fontFamily",
@@ -1754,159 +2051,159 @@ var dtcgTokenTypeSchema = z2.enum([
1754
2051
  "gradient",
1755
2052
  "typography"
1756
2053
  ]);
1757
- var dtcgColorValueSchema = z2.union([
1758
- z2.string(),
1759
- z2.object({
1760
- colorSpace: z2.string().default("srgb"),
1761
- components: z2.array(z2.number()),
1762
- hex: z2.string().optional(),
1763
- alpha: z2.number().optional()
2054
+ var dtcgColorValueSchema = z4.union([
2055
+ z4.string(),
2056
+ z4.object({
2057
+ colorSpace: z4.string().default("srgb"),
2058
+ components: z4.array(z4.number()),
2059
+ hex: z4.string().optional(),
2060
+ alpha: z4.number().optional()
1764
2061
  })
1765
2062
  ]);
1766
- var dtcgDimensionValueSchema = z2.union([
1767
- z2.string(),
1768
- z2.object({
1769
- value: z2.number(),
1770
- unit: z2.enum(["px", "rem"])
2063
+ var dtcgDimensionValueSchema = z4.union([
2064
+ z4.string(),
2065
+ z4.object({
2066
+ value: z4.number(),
2067
+ unit: z4.enum(["px", "rem"])
1771
2068
  })
1772
2069
  ]);
1773
- var dtcgShadowValueSchema = z2.object({
2070
+ var dtcgShadowValueSchema = z4.object({
1774
2071
  color: dtcgColorValueSchema,
1775
2072
  offsetX: dtcgDimensionValueSchema,
1776
2073
  offsetY: dtcgDimensionValueSchema,
1777
2074
  blur: dtcgDimensionValueSchema,
1778
2075
  spread: dtcgDimensionValueSchema.optional(),
1779
- inset: z2.boolean().optional()
2076
+ inset: z4.boolean().optional()
1780
2077
  });
1781
- var dtcgBorderValueSchema = z2.object({
2078
+ var dtcgBorderValueSchema = z4.object({
1782
2079
  color: dtcgColorValueSchema,
1783
2080
  width: dtcgDimensionValueSchema,
1784
- style: z2.string()
2081
+ style: z4.string()
1785
2082
  });
1786
- var dtcgTypographyValueSchema = z2.object({
1787
- fontFamily: z2.union([z2.string(), z2.array(z2.string())]),
2083
+ var dtcgTypographyValueSchema = z4.object({
2084
+ fontFamily: z4.union([z4.string(), z4.array(z4.string())]),
1788
2085
  fontSize: dtcgDimensionValueSchema,
1789
- fontWeight: z2.union([z2.number(), z2.string()]),
2086
+ fontWeight: z4.union([z4.number(), z4.string()]),
1790
2087
  letterSpacing: dtcgDimensionValueSchema.optional(),
1791
- lineHeight: z2.union([z2.string(), z2.number()]).optional()
2088
+ lineHeight: z4.union([z4.string(), z4.number()]).optional()
1792
2089
  });
1793
- var dtcgTransitionValueSchema = z2.object({
1794
- duration: z2.string(),
1795
- delay: z2.string().optional(),
1796
- timingFunction: z2.array(z2.number()).length(4)
2090
+ var dtcgTransitionValueSchema = z4.object({
2091
+ duration: z4.string(),
2092
+ delay: z4.string().optional(),
2093
+ timingFunction: z4.array(z4.number()).length(4)
1797
2094
  });
1798
- var dtcgGradientStopSchema = z2.object({
2095
+ var dtcgGradientStopSchema = z4.object({
1799
2096
  color: dtcgColorValueSchema,
1800
- position: z2.number()
2097
+ position: z4.number()
1801
2098
  });
1802
- var dtcgCubicBezierValueSchema = z2.tuple([
1803
- z2.number(),
1804
- z2.number(),
1805
- z2.number(),
1806
- z2.number()
2099
+ var dtcgCubicBezierValueSchema = z4.tuple([
2100
+ z4.number(),
2101
+ z4.number(),
2102
+ z4.number(),
2103
+ z4.number()
1807
2104
  ]);
1808
- var dtcgTokenSchema = z2.object({
1809
- $value: z2.unknown(),
2105
+ var dtcgTokenSchema = z4.object({
2106
+ $value: z4.unknown(),
1810
2107
  $type: dtcgTokenTypeSchema.optional(),
1811
- $description: z2.string().optional(),
1812
- $deprecated: z2.union([z2.boolean(), z2.string()]).optional(),
1813
- $extensions: z2.record(z2.string(), z2.unknown()).optional()
2108
+ $description: z4.string().optional(),
2109
+ $deprecated: z4.union([z4.boolean(), z4.string()]).optional(),
2110
+ $extensions: z4.record(z4.string(), z4.unknown()).optional()
1814
2111
  }).passthrough();
1815
- var dtcgTokenFileSchema = z2.record(z2.string(), z2.unknown()).refine(
2112
+ var dtcgTokenFileSchema = z4.record(z4.string(), z4.unknown()).refine(
1816
2113
  (data) => {
1817
2114
  return data !== null && typeof data === "object" && !Array.isArray(data);
1818
2115
  },
1819
2116
  { message: "DTCG token file must be a JSON object" }
1820
2117
  );
1821
- var contractPropSchema = z3.object({
1822
- type: z3.string(),
1823
- values: z3.array(z3.string()).optional(),
1824
- default: z3.unknown().optional(),
1825
- description: z3.string(),
1826
- required: z3.boolean().optional(),
1827
- constraints: z3.array(z3.string()).optional()
2118
+ var contractPropSchema = z5.object({
2119
+ type: z5.string(),
2120
+ values: z5.array(z5.string()).optional(),
2121
+ default: z5.unknown().optional(),
2122
+ description: z5.string(),
2123
+ required: z5.boolean().optional(),
2124
+ constraints: z5.array(z5.string()).optional()
1828
2125
  });
1829
- var contractUsageSchema = z3.object({
1830
- when: z3.array(z3.string()),
1831
- whenNot: z3.array(z3.string()),
1832
- guidelines: z3.array(z3.string()).optional(),
1833
- accessibility: z3.array(z3.string()).optional()
2126
+ var contractUsageSchema = z5.object({
2127
+ when: z5.array(z5.string()),
2128
+ whenNot: z5.array(z5.string()),
2129
+ guidelines: z5.array(z5.string()).optional(),
2130
+ accessibility: z5.array(z5.string()).optional()
1834
2131
  });
1835
- var contractExampleSchema = z3.object({
1836
- name: z3.string(),
1837
- description: z3.string(),
1838
- code: z3.string(),
1839
- args: z3.record(z3.string(), z3.unknown()).optional()
2132
+ var contractExampleSchema = z5.object({
2133
+ name: z5.string(),
2134
+ description: z5.string(),
2135
+ code: z5.string(),
2136
+ args: z5.record(z5.string(), z5.unknown()).optional()
1840
2137
  });
1841
- var contractRelationSchema = z3.object({
1842
- component: z3.string(),
1843
- relationship: z3.enum(["alternative", "parent", "child", "sibling", "composition", "complementary", "used-by"]),
1844
- note: z3.string()
2138
+ var contractRelationSchema = z5.object({
2139
+ component: z5.string(),
2140
+ relationship: z5.enum(["alternative", "parent", "child", "sibling", "composition", "complementary", "used-by"]),
2141
+ note: z5.string()
1845
2142
  });
1846
- var contractContractSchema = z3.object({
1847
- propsSummary: z3.array(z3.string()).optional(),
1848
- scenarioTags: z3.array(z3.string()).optional(),
1849
- a11yRules: z3.array(z3.string()).optional(),
1850
- bans: z3.array(z3.object({
1851
- pattern: z3.string(),
1852
- message: z3.string()
2143
+ var contractContractSchema = z5.object({
2144
+ propsSummary: z5.array(z5.string()).optional(),
2145
+ scenarioTags: z5.array(z5.string()).optional(),
2146
+ a11yRules: z5.array(z5.string()).optional(),
2147
+ bans: z5.array(z5.object({
2148
+ pattern: z5.string(),
2149
+ message: z5.string()
1853
2150
  })).optional(),
1854
- compoundChildren: z3.record(z3.string(), z3.object({
1855
- required: z3.boolean().optional(),
1856
- accepts: z3.array(z3.string()).optional(),
1857
- description: z3.string().optional()
2151
+ compoundChildren: z5.record(z5.string(), z5.object({
2152
+ required: z5.boolean().optional(),
2153
+ accepts: z5.array(z5.string()).optional(),
2154
+ description: z5.string().optional()
1858
2155
  })).optional(),
1859
- canonicalUsage: z3.array(z3.string()).optional(),
1860
- performanceBudget: z3.number().optional()
2156
+ canonicalUsage: z5.array(z5.string()).optional(),
2157
+ performanceBudget: z5.number().optional()
1861
2158
  });
1862
- var contractAiSchema = z3.object({
1863
- compositionPattern: z3.enum(["compound", "simple", "controlled", "wrapper"]).optional(),
1864
- subComponents: z3.array(z3.string()).optional(),
1865
- requiredChildren: z3.array(z3.string()).optional(),
1866
- commonPatterns: z3.array(z3.string()).optional()
2159
+ var contractAiSchema = z5.object({
2160
+ compositionPattern: z5.enum(["compound", "simple", "controlled", "wrapper"]).optional(),
2161
+ subComponents: z5.array(z5.string()).optional(),
2162
+ requiredChildren: z5.array(z5.string()).optional(),
2163
+ commonPatterns: z5.array(z5.string()).optional()
1867
2164
  });
1868
- var contractPreviewSchema = z3.object({
1869
- setupModule: z3.string().optional(),
1870
- wrapperModule: z3.string().optional(),
1871
- wrapperExport: z3.string().optional(),
1872
- css: z3.array(z3.string()).optional(),
1873
- theme: z3.enum(["light", "dark"]).optional()
2165
+ var contractPreviewSchema = z5.object({
2166
+ setupModule: z5.string().optional(),
2167
+ wrapperModule: z5.string().optional(),
2168
+ wrapperExport: z5.string().optional(),
2169
+ css: z5.array(z5.string()).optional(),
2170
+ theme: z5.enum(["light", "dark"]).optional()
1874
2171
  });
1875
- var contractProvenanceSchema = z3.object({
1876
- source: z3.enum(["manual", "extracted", "merged", "migrated"]),
1877
- verified: z3.boolean(),
1878
- frameworkSupport: z3.enum(["native", "manual-only"]).optional(),
1879
- sourceHash: z3.string().optional(),
1880
- extractedAt: z3.string().optional()
2172
+ var contractProvenanceSchema = z5.object({
2173
+ source: z5.enum(["manual", "extracted", "merged", "migrated"]),
2174
+ verified: z5.boolean(),
2175
+ frameworkSupport: z5.enum(["native", "manual-only"]).optional(),
2176
+ sourceHash: z5.string().optional(),
2177
+ extractedAt: z5.string().optional()
1881
2178
  });
1882
- var contractFigmaSchema = z3.object({
1883
- nodeUrl: z3.string().optional(),
1884
- propMappings: z3.record(z3.string(), z3.object({
1885
- type: z3.enum(["string", "boolean", "enum", "instance", "children", "textContent"]),
1886
- figmaProperty: z3.string(),
1887
- values: z3.record(z3.string(), z3.string()).optional()
2179
+ var contractFigmaSchema = z5.object({
2180
+ nodeUrl: z5.string().optional(),
2181
+ propMappings: z5.record(z5.string(), z5.object({
2182
+ type: z5.enum(["string", "boolean", "enum", "instance", "children", "textContent"]),
2183
+ figmaProperty: z5.string(),
2184
+ values: z5.record(z5.string(), z5.string()).optional()
1888
2185
  })).optional()
1889
2186
  });
1890
- var componentContractSchema = z3.object({
1891
- $schema: z3.string(),
1892
- name: z3.string(),
1893
- description: z3.string(),
1894
- category: z3.string(),
1895
- tags: z3.array(z3.string()).optional(),
1896
- status: z3.enum(["stable", "beta", "deprecated", "experimental"]).optional(),
1897
- framework: z3.enum(["react", "vue", "svelte", "web-components", "angular"]).optional(),
1898
- sourcePath: z3.string(),
1899
- exportName: z3.string(),
1900
- propsSummary: z3.array(z3.string()),
1901
- props: z3.record(z3.string(), contractPropSchema),
2187
+ var componentContractSchema = z5.object({
2188
+ $schema: z5.string(),
2189
+ name: z5.string(),
2190
+ description: z5.string(),
2191
+ category: z5.string(),
2192
+ tags: z5.array(z5.string()).optional(),
2193
+ status: z5.enum(["stable", "beta", "deprecated", "experimental"]).optional(),
2194
+ framework: z5.enum(["react", "vue", "svelte", "web-components", "angular"]).optional(),
2195
+ sourcePath: z5.string(),
2196
+ exportName: z5.string(),
2197
+ propsSummary: z5.array(z5.string()),
2198
+ props: z5.record(z5.string(), contractPropSchema),
1902
2199
  usage: contractUsageSchema,
1903
- examples: z3.array(contractExampleSchema).optional(),
1904
- relations: z3.array(contractRelationSchema).optional(),
2200
+ examples: z5.array(contractExampleSchema).optional(),
2201
+ relations: z5.array(contractRelationSchema).optional(),
1905
2202
  contract: contractContractSchema.optional(),
1906
2203
  ai: contractAiSchema.optional(),
1907
2204
  preview: contractPreviewSchema.optional(),
1908
2205
  provenance: contractProvenanceSchema,
1909
- tokens: z3.array(z3.string()).optional(),
2206
+ tokens: z5.array(z5.string()).optional(),
1910
2207
  figma: contractFigmaSchema.optional()
1911
2208
  });
1912
2209
  function isContractFile(filePath) {
@@ -2459,6 +2756,32 @@ export {
2459
2756
  classifyComplexity,
2460
2757
  formatBytes,
2461
2758
  budgetBar,
2759
+ bundleSchemaVersionSchema,
2760
+ bundleTargetSchema,
2761
+ bundleArtifactMetadataSchema,
2762
+ bundleManifestComponentEntrySchema,
2763
+ bundleManifestSchema,
2764
+ bundleTokenFileSchema,
2765
+ bundleComponentShardSchema,
2766
+ mcpSnapshotSchemaVersionSchema,
2767
+ mcpSourceTypeSchema,
2768
+ mcpCapabilitySchema,
2769
+ mcpPerformanceImportSchema,
2770
+ mcpPerformanceDataSchema,
2771
+ mcpPerformanceSummarySchema,
2772
+ mcpComponentPropSchema,
2773
+ mcpComponentExampleSchema,
2774
+ mcpComponentRelationSchema,
2775
+ mcpCompoundChildSchema,
2776
+ mcpGuidancePatternSchema,
2777
+ mcpComponentGuidanceSchema,
2778
+ mcpComponentMetadataSchema,
2779
+ mcpComponentSchema,
2780
+ mcpBlockSchema,
2781
+ mcpTokenSchema,
2782
+ mcpTokenDataSchema,
2783
+ mcpSnapshotMetadataSchema,
2784
+ mcpSnapshotSchema,
2462
2785
  DEFAULT_STYLE_PROPERTIES,
2463
2786
  DEFAULT_ENHANCED_STYLE_PROPERTIES,
2464
2787
  normalizeStyleValue,
@@ -2527,4 +2850,4 @@ export {
2527
2850
  isReactComponent,
2528
2851
  discoverComponents
2529
2852
  };
2530
- //# sourceMappingURL=chunk-32LIWN2P.js.map
2853
+ //# sourceMappingURL=chunk-FFCI6OVZ.js.map