@vadimcomanescu/nadicode-design-system 2.0.5 → 2.0.7

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 (177) hide show
  1. package/.agents/skills/seed/contract.md +1 -0
  2. package/.agents/skills/seed/recipes/marketing-shell.md +10 -19
  3. package/.agents/skills/seed/recipes/navigation-shell.md +5 -5
  4. package/.agents/skills/seed/recipes/service-detail.md +1 -1
  5. package/.agents/skills/seed/references/blocks.md +25 -24
  6. package/.agents/skills/seed/references/brand-override.md +3 -1
  7. package/css/tokens.css +300 -122
  8. package/dist/catalog.json +1926 -125
  9. package/dist/chunk-2BADJLMV.js +117 -0
  10. package/dist/chunk-35EX5FP5.js +106 -0
  11. package/dist/chunk-5PORR6LE.js +60 -0
  12. package/dist/chunk-5PZ4VR2D.js +142 -0
  13. package/dist/chunk-5UESKK6S.js +76 -0
  14. package/dist/chunk-6N6CSJVE.js +269 -0
  15. package/dist/chunk-AURJQZC4.js +110 -0
  16. package/dist/{chunk-DF47R6LN.js → chunk-AWIG4QN6.js} +9 -9
  17. package/dist/chunk-AYWL4IYM.js +67 -0
  18. package/dist/{chunk-SV3KZ6CB.js → chunk-DSMGCFMJ.js} +7 -2
  19. package/dist/chunk-E4L6LR6P.js +33 -0
  20. package/dist/chunk-EJNF6JLL.js +105 -0
  21. package/dist/chunk-FX23F33E.js +57 -0
  22. package/dist/chunk-GJPTPLCQ.js +52 -0
  23. package/dist/chunk-GV4PKHG4.js +147 -0
  24. package/dist/chunk-HJ3A2YNO.js +163 -0
  25. package/dist/chunk-HJZRSPWB.js +38 -0
  26. package/dist/chunk-IDKZEPWK.js +133 -0
  27. package/dist/chunk-K7NQ6ZAW.js +84 -0
  28. package/dist/chunk-LCKLZ4XK.js +60 -0
  29. package/dist/chunk-MX5FUFQR.js +205 -0
  30. package/dist/chunk-NEHCPO53.js +44 -0
  31. package/dist/chunk-OHOOQUVJ.js +113 -0
  32. package/dist/chunk-QIHA7S3A.js +36 -0
  33. package/dist/chunk-RKQPU75I.js +126 -0
  34. package/dist/chunk-RMLS2QUC.js +77 -0
  35. package/dist/chunk-TS2JSPQR.js +120 -0
  36. package/dist/chunk-TUKZKU72.js +110 -0
  37. package/dist/chunk-TZXZFSD2.js +33 -0
  38. package/dist/chunk-UGV45DH3.js +18 -0
  39. package/dist/chunk-VBZQ4DBE.js +52 -0
  40. package/dist/{chunk-LQLFA2EL.js → chunk-VDONTZZX.js} +2 -2
  41. package/dist/{chunk-RWNJ54CI.js → chunk-VN475YZS.js} +1 -1
  42. package/dist/chunk-VZCB4APK.js +94 -0
  43. package/dist/chunk-W7FXDRQJ.js +94 -0
  44. package/dist/chunk-WAVU744B.js +183 -0
  45. package/dist/{chunk-5I3FWRC5.js → chunk-WOYBVPXK.js} +10 -10
  46. package/dist/chunk-WST5NLLC.js +73 -0
  47. package/dist/chunk-X6VXWEDO.js +125 -0
  48. package/dist/chunk-ZM2NODUK.js +39 -0
  49. package/dist/components/blocks/AccountLockedBlock.js +7 -57
  50. package/dist/components/blocks/ActivityFeedBlock.js +6 -39
  51. package/dist/components/blocks/AgentConversationBlock.js +5 -33
  52. package/dist/components/blocks/AudioVisualizerBlock.d.ts +1 -1
  53. package/dist/components/blocks/AudioVisualizerBlock.js +2 -2
  54. package/dist/components/blocks/AuthSuccessBlock.js +5 -60
  55. package/dist/components/blocks/BarChartBlock.d.ts +1 -1
  56. package/dist/components/blocks/BarChartBlock.js +2 -2
  57. package/dist/components/blocks/CallToActionBlock.d.ts +1 -1
  58. package/dist/components/blocks/CallToActionBlock.js +6 -52
  59. package/dist/components/blocks/ChangelogBlock.js +8 -105
  60. package/dist/components/blocks/ChartCollectionBlock.js +2 -2
  61. package/dist/components/blocks/CodeBlock.js +7 -60
  62. package/dist/components/blocks/ComparisonBlock.js +9 -94
  63. package/dist/components/blocks/ContactBlock.js +11 -120
  64. package/dist/components/blocks/FAQBlock.js +6 -44
  65. package/dist/components/blocks/FeatureBlock.d.ts +10 -14
  66. package/dist/components/blocks/FeatureBlock.js +17 -159
  67. package/dist/components/blocks/FeatureGridBlock.d.ts +1 -1
  68. package/dist/components/blocks/FeatureGridBlock.js +2 -2
  69. package/dist/components/blocks/FooterBlock.d.ts +2 -2
  70. package/dist/components/blocks/FooterBlock.js +11 -67
  71. package/dist/components/blocks/HeaderBlock.d.ts +2 -2
  72. package/dist/components/blocks/HeaderBlock.js +1 -1
  73. package/dist/components/blocks/HeatmapChartBlock.d.ts +1 -1
  74. package/dist/components/blocks/HeatmapChartBlock.js +1 -1
  75. package/dist/components/blocks/HeroBlock.d.ts +6 -3
  76. package/dist/components/blocks/HeroBlock.js +16 -199
  77. package/dist/components/blocks/HeroSectionBlock.d.ts +1 -1
  78. package/dist/components/blocks/HeroSectionBlock.js +4 -4
  79. package/dist/components/blocks/IntegrationsBlock.d.ts +1 -1
  80. package/dist/components/blocks/IntegrationsBlock.js +4 -4
  81. package/dist/components/blocks/InteractiveAreaChartBlock.d.ts +1 -1
  82. package/dist/components/blocks/InteractiveAreaChartBlock.js +2 -2
  83. package/dist/components/blocks/NewsletterBlock.js +11 -84
  84. package/dist/components/blocks/PasswordRecoveryBlock.js +14 -142
  85. package/dist/components/blocks/PricingBlock.d.ts +1 -1
  86. package/dist/components/blocks/PricingBlock.js +11 -110
  87. package/dist/components/blocks/ProcessFlowBlock.js +10 -77
  88. package/dist/components/blocks/ResetPasswordBlock.js +11 -125
  89. package/dist/components/blocks/SignUpBlock.d.ts +1 -1
  90. package/dist/components/blocks/SignUpBlock.js +2 -2
  91. package/dist/components/blocks/SocialProofBlock.d.ts +7 -11
  92. package/dist/components/blocks/SocialProofBlock.js +8 -107
  93. package/dist/components/blocks/StatsBlock.d.ts +1 -1
  94. package/dist/components/blocks/StatsBlock.js +2 -2
  95. package/dist/components/blocks/StatsMarketingBlock.d.ts +1 -1
  96. package/dist/components/blocks/StatsMarketingBlock.js +5 -36
  97. package/dist/components/blocks/TeamBlock.d.ts +1 -1
  98. package/dist/components/blocks/TeamBlock.js +4 -52
  99. package/dist/components/blocks/TestimonialsBlock.d.ts +1 -1
  100. package/dist/components/blocks/TestimonialsBlock.js +4 -133
  101. package/dist/components/blocks/TwoFactorChallengeBlock.js +9 -94
  102. package/dist/components/blocks/TwoFactorSetupBlock.js +16 -183
  103. package/dist/components/blocks/UsageDonutBlock.d.ts +1 -1
  104. package/dist/components/blocks/UsageDonutBlock.js +2 -2
  105. package/dist/components/logos/index.js +2 -2
  106. package/dist/components/page-kits/AccountLockedPageKit.d.ts +10 -0
  107. package/dist/components/page-kits/AccountLockedPageKit.js +48 -0
  108. package/dist/components/page-kits/AgentsChatPageKit.d.ts +46 -0
  109. package/dist/components/page-kits/AgentsChatPageKit.js +289 -0
  110. package/dist/components/page-kits/AnalyticsPageKit.d.ts +49 -0
  111. package/dist/components/page-kits/AnalyticsPageKit.js +277 -0
  112. package/dist/components/page-kits/BlogContentPageKit.d.ts +64 -0
  113. package/dist/components/page-kits/BlogContentPageKit.js +296 -0
  114. package/dist/components/page-kits/CheckoutPageKit.d.ts +36 -0
  115. package/dist/components/page-kits/CheckoutPageKit.js +209 -0
  116. package/dist/components/page-kits/CompanySuitePageKit.d.ts +25 -0
  117. package/dist/components/page-kits/CompanySuitePageKit.js +240 -0
  118. package/dist/components/page-kits/CrudFormPageKit.d.ts +54 -0
  119. package/dist/components/page-kits/CrudFormPageKit.js +138 -0
  120. package/dist/components/page-kits/CrudListDetailPageKit.d.ts +70 -0
  121. package/dist/components/page-kits/CrudListDetailPageKit.js +138 -0
  122. package/dist/components/page-kits/DashboardPageKit.d.ts +39 -0
  123. package/dist/components/page-kits/DashboardPageKit.js +284 -0
  124. package/dist/components/page-kits/ErrorPageKit.d.ts +22 -0
  125. package/dist/components/page-kits/ErrorPageKit.js +55 -0
  126. package/dist/components/page-kits/KanbanBoardPageKit.d.ts +31 -0
  127. package/dist/components/page-kits/KanbanBoardPageKit.js +305 -0
  128. package/dist/components/page-kits/LandingPageKit.d.ts +29 -0
  129. package/dist/components/page-kits/LandingPageKit.js +221 -0
  130. package/dist/components/page-kits/LoginPageKit.d.ts +16 -0
  131. package/dist/components/page-kits/LoginPageKit.js +43 -0
  132. package/dist/components/page-kits/MarketingShellPageKit.d.ts +21 -0
  133. package/dist/components/page-kits/MarketingShellPageKit.js +131 -0
  134. package/dist/components/page-kits/NavigationShellPageKit.d.ts +41 -0
  135. package/dist/components/page-kits/NavigationShellPageKit.js +132 -0
  136. package/dist/components/page-kits/OnboardingPageKit.d.ts +26 -0
  137. package/dist/components/page-kits/OnboardingPageKit.js +248 -0
  138. package/dist/components/page-kits/PricingPageKit.d.ts +41 -0
  139. package/dist/components/page-kits/PricingPageKit.js +279 -0
  140. package/dist/components/page-kits/ProfileSettingsPageKit.d.ts +50 -0
  141. package/dist/components/page-kits/ProfileSettingsPageKit.js +171 -0
  142. package/dist/components/page-kits/RecoveryPageKit.d.ts +17 -0
  143. package/dist/components/page-kits/RecoveryPageKit.js +58 -0
  144. package/dist/components/page-kits/ResetPageKit.d.ts +14 -0
  145. package/dist/components/page-kits/ResetPageKit.js +52 -0
  146. package/dist/components/page-kits/ServiceSuitePageKit.d.ts +25 -0
  147. package/dist/components/page-kits/ServiceSuitePageKit.js +320 -0
  148. package/dist/components/page-kits/SettingsPageKit.d.ts +27 -0
  149. package/dist/components/page-kits/SettingsPageKit.js +11 -0
  150. package/dist/components/page-kits/SignupPageKit.d.ts +15 -0
  151. package/dist/components/page-kits/SignupPageKit.js +41 -0
  152. package/dist/components/page-kits/SuccessPageKit.d.ts +15 -0
  153. package/dist/components/page-kits/SuccessPageKit.js +146 -0
  154. package/dist/components/page-kits/TeamSettingsPageKit.d.ts +50 -0
  155. package/dist/components/page-kits/TeamSettingsPageKit.js +297 -0
  156. package/dist/components/page-kits/TwoFactorPageKit.d.ts +16 -0
  157. package/dist/components/page-kits/TwoFactorPageKit.js +156 -0
  158. package/dist/components/page-kits/VerifyEmailPageKit.d.ts +15 -0
  159. package/dist/components/page-kits/VerifyEmailPageKit.js +146 -0
  160. package/dist/components/page-kits/VoiceAgentsPageKit.d.ts +35 -0
  161. package/dist/components/page-kits/VoiceAgentsPageKit.js +246 -0
  162. package/dist/components/ui/AudioWaveform.js +2 -76
  163. package/dist/components/ui/AvatarUpload.js +1 -1
  164. package/dist/components/ui/Breadcrumb.js +4 -106
  165. package/dist/components/ui/ChartCard.js +5 -38
  166. package/dist/components/ui/CheckoutFormDemo.js +5 -6
  167. package/dist/components/ui/DataFreshness.js +2 -73
  168. package/dist/components/ui/MouseEffect.js +1 -1
  169. package/dist/components/ui/NativeSelect.js +2 -18
  170. package/dist/components/ui/Pagination.js +6 -117
  171. package/dist/components/ui/ShaderBackground.js +2 -2
  172. package/dist/hooks/use-shader-preset.js +2 -2
  173. package/dist/lib/shader-presets.js +1 -1
  174. package/dist/lib/tokens.config.d.ts +19 -0
  175. package/package.json +793 -681
  176. package/scripts/ds-check.mjs +10 -2
  177. package/src/lib/tokens.config.js +63 -41
package/dist/catalog.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
- "version": "2.0.5",
3
- "generatedAt": "2026-03-22T23:01:23.220Z",
2
+ "schemaVersion": "1.0.0",
3
+ "version": "2.0.7",
4
+ "generatedAt": "2026-03-25T09:17:09.614Z",
4
5
  "components": {
5
6
  "Accordion": {
6
7
  "file": "src/components/ui/Accordion.tsx",
@@ -2367,7 +2368,46 @@
2367
2368
  "onBackToLogin",
2368
2369
  "title",
2369
2370
  "description"
2370
- ]
2371
+ ],
2372
+ "propsSchema": {
2373
+ "kind": "object",
2374
+ "noDataProps": false,
2375
+ "required": [],
2376
+ "optional": [
2377
+ "reason",
2378
+ "unlockMinutes",
2379
+ "onContactSupport",
2380
+ "onBackToLogin",
2381
+ "title",
2382
+ "description"
2383
+ ],
2384
+ "properties": {
2385
+ "reason": {
2386
+ "required": false,
2387
+ "type": "\"too_many_attempts\" | \"suspicious_activity\" | \"admin\""
2388
+ },
2389
+ "unlockMinutes": {
2390
+ "required": false,
2391
+ "type": "number"
2392
+ },
2393
+ "onContactSupport": {
2394
+ "required": false,
2395
+ "type": "() => void"
2396
+ },
2397
+ "onBackToLogin": {
2398
+ "required": false,
2399
+ "type": "() => void"
2400
+ },
2401
+ "title": {
2402
+ "required": false,
2403
+ "type": "string"
2404
+ },
2405
+ "description": {
2406
+ "required": false,
2407
+ "type": "string"
2408
+ }
2409
+ }
2410
+ }
2371
2411
  },
2372
2412
  "ActivityFeedBlock": {
2373
2413
  "file": "src/components/blocks/ActivityFeedBlock.tsx",
@@ -2381,7 +2421,26 @@
2381
2421
  "keyProps": [
2382
2422
  "activities",
2383
2423
  "title"
2384
- ]
2424
+ ],
2425
+ "propsSchema": {
2426
+ "kind": "object",
2427
+ "noDataProps": false,
2428
+ "required": [],
2429
+ "optional": [
2430
+ "activities",
2431
+ "title"
2432
+ ],
2433
+ "properties": {
2434
+ "activities": {
2435
+ "required": false,
2436
+ "type": "Activity[]"
2437
+ },
2438
+ "title": {
2439
+ "required": false,
2440
+ "type": "string"
2441
+ }
2442
+ }
2443
+ }
2385
2444
  },
2386
2445
  "AgentConversationBlock": {
2387
2446
  "file": "src/components/blocks/AgentConversationBlock.tsx",
@@ -2392,7 +2451,23 @@
2392
2451
  "subComponents": [],
2393
2452
  "variants": {},
2394
2453
  "notes": "Agent conversation UI (messages, tool calls, thinking)",
2395
- "keyProps": []
2454
+ "keyProps": [
2455
+ "messages"
2456
+ ],
2457
+ "propsSchema": {
2458
+ "kind": "object",
2459
+ "noDataProps": false,
2460
+ "required": [
2461
+ "messages"
2462
+ ],
2463
+ "optional": [],
2464
+ "properties": {
2465
+ "messages": {
2466
+ "required": true,
2467
+ "type": "ConversationMessage[]"
2468
+ }
2469
+ }
2470
+ }
2396
2471
  },
2397
2472
  "AgentProfileGridBlock": {
2398
2473
  "file": "src/components/blocks/AgentProfileGridBlock.tsx",
@@ -2408,7 +2483,36 @@
2408
2483
  "description",
2409
2484
  "agents",
2410
2485
  "columns"
2411
- ]
2486
+ ],
2487
+ "propsSchema": {
2488
+ "kind": "object",
2489
+ "noDataProps": false,
2490
+ "required": [],
2491
+ "optional": [
2492
+ "title",
2493
+ "description",
2494
+ "agents",
2495
+ "columns"
2496
+ ],
2497
+ "properties": {
2498
+ "title": {
2499
+ "required": false,
2500
+ "type": "string"
2501
+ },
2502
+ "description": {
2503
+ "required": false,
2504
+ "type": "string"
2505
+ },
2506
+ "agents": {
2507
+ "required": false,
2508
+ "type": "AgentProfile[]"
2509
+ },
2510
+ "columns": {
2511
+ "required": false,
2512
+ "type": "2 | 3 | 4"
2513
+ }
2514
+ }
2515
+ }
2412
2516
  },
2413
2517
  "AgentRunOverviewBlock": {
2414
2518
  "file": "src/components/blocks/AgentRunOverviewBlock.tsx",
@@ -2419,7 +2523,71 @@
2419
2523
  "subComponents": [],
2420
2524
  "variants": {},
2421
2525
  "notes": "Agent run summary with status, duration, and output",
2422
- "keyProps": []
2526
+ "keyProps": [
2527
+ "title",
2528
+ "description",
2529
+ "teamTitle",
2530
+ "metricsTitle",
2531
+ "contextTitle",
2532
+ "workflow",
2533
+ "agents",
2534
+ "metrics",
2535
+ "context"
2536
+ ],
2537
+ "propsSchema": {
2538
+ "kind": "object",
2539
+ "noDataProps": false,
2540
+ "required": [],
2541
+ "optional": [
2542
+ "title",
2543
+ "description",
2544
+ "teamTitle",
2545
+ "metricsTitle",
2546
+ "contextTitle",
2547
+ "workflow",
2548
+ "agents",
2549
+ "metrics",
2550
+ "context"
2551
+ ],
2552
+ "properties": {
2553
+ "title": {
2554
+ "required": false,
2555
+ "type": "string"
2556
+ },
2557
+ "description": {
2558
+ "required": false,
2559
+ "type": "string"
2560
+ },
2561
+ "teamTitle": {
2562
+ "required": false,
2563
+ "type": "string"
2564
+ },
2565
+ "metricsTitle": {
2566
+ "required": false,
2567
+ "type": "string"
2568
+ },
2569
+ "contextTitle": {
2570
+ "required": false,
2571
+ "type": "string"
2572
+ },
2573
+ "workflow": {
2574
+ "required": false,
2575
+ "type": "AgentRunOverviewWorkflow"
2576
+ },
2577
+ "agents": {
2578
+ "required": false,
2579
+ "type": "AgentTeamPanelProps['agents']"
2580
+ },
2581
+ "metrics": {
2582
+ "required": false,
2583
+ "type": "Metric[]"
2584
+ },
2585
+ "context": {
2586
+ "required": false,
2587
+ "type": "AgentRunOverviewContext"
2588
+ }
2589
+ }
2590
+ }
2423
2591
  },
2424
2592
  "AgentWorkbenchBlock": {
2425
2593
  "file": "src/components/blocks/AgentWorkbenchBlock.tsx",
@@ -2430,7 +2598,77 @@
2430
2598
  "subComponents": [],
2431
2599
  "variants": {},
2432
2600
  "notes": "Agent workbench layout with tool panels and conversation",
2433
- "keyProps": []
2601
+ "keyProps": [
2602
+ "title",
2603
+ "description",
2604
+ "threadTitle",
2605
+ "workTitle",
2606
+ "defaultWorkTab",
2607
+ "messages",
2608
+ "artifacts",
2609
+ "diffs",
2610
+ "logs",
2611
+ "composer"
2612
+ ],
2613
+ "propsSchema": {
2614
+ "kind": "object",
2615
+ "noDataProps": false,
2616
+ "required": [],
2617
+ "optional": [
2618
+ "title",
2619
+ "description",
2620
+ "threadTitle",
2621
+ "workTitle",
2622
+ "defaultWorkTab",
2623
+ "messages",
2624
+ "artifacts",
2625
+ "diffs",
2626
+ "logs",
2627
+ "composer"
2628
+ ],
2629
+ "properties": {
2630
+ "title": {
2631
+ "required": false,
2632
+ "type": "string"
2633
+ },
2634
+ "description": {
2635
+ "required": false,
2636
+ "type": "string"
2637
+ },
2638
+ "threadTitle": {
2639
+ "required": false,
2640
+ "type": "string"
2641
+ },
2642
+ "workTitle": {
2643
+ "required": false,
2644
+ "type": "string"
2645
+ },
2646
+ "defaultWorkTab": {
2647
+ "required": false,
2648
+ "type": "'artifacts' | 'diffs' | 'logs'"
2649
+ },
2650
+ "messages": {
2651
+ "required": false,
2652
+ "type": "AgentWorkbenchMessage[]"
2653
+ },
2654
+ "artifacts": {
2655
+ "required": false,
2656
+ "type": "AgentWorkbenchArtifact[]"
2657
+ },
2658
+ "diffs": {
2659
+ "required": false,
2660
+ "type": "AgentWorkbenchDiff[]"
2661
+ },
2662
+ "logs": {
2663
+ "required": false,
2664
+ "type": "TerminalLine[]"
2665
+ },
2666
+ "composer": {
2667
+ "required": false,
2668
+ "type": "AgentWorkbenchComposer"
2669
+ }
2670
+ }
2671
+ }
2434
2672
  },
2435
2673
  "AudioVisualizerBlock": {
2436
2674
  "file": "src/components/blocks/AudioVisualizerBlock.tsx",
@@ -2438,12 +2676,32 @@
2438
2676
  "tier": 2,
2439
2677
  "category": "Content & Media",
2440
2678
  "lib": null,
2441
- "subComponents": [
2442
- "AudioVisualizer"
2443
- ],
2679
+ "subComponents": [],
2444
2680
  "variants": {},
2445
2681
  "notes": "Audio visualization display",
2446
- "keyProps": []
2682
+ "keyProps": [
2683
+ "bars",
2684
+ "isPlaying"
2685
+ ],
2686
+ "propsSchema": {
2687
+ "kind": "object",
2688
+ "noDataProps": false,
2689
+ "required": [],
2690
+ "optional": [
2691
+ "bars",
2692
+ "isPlaying"
2693
+ ],
2694
+ "properties": {
2695
+ "bars": {
2696
+ "required": false,
2697
+ "type": "number"
2698
+ },
2699
+ "isPlaying": {
2700
+ "required": false,
2701
+ "type": "boolean"
2702
+ }
2703
+ }
2704
+ }
2447
2705
  },
2448
2706
  "AuthLayout": {
2449
2707
  "file": "src/components/blocks/AuthLayout.tsx",
@@ -2460,7 +2718,41 @@
2460
2718
  "error",
2461
2719
  "googleAction",
2462
2720
  "labels"
2463
- ]
2721
+ ],
2722
+ "propsSchema": {
2723
+ "kind": "object",
2724
+ "noDataProps": false,
2725
+ "required": [],
2726
+ "optional": [
2727
+ "mode",
2728
+ "action",
2729
+ "error",
2730
+ "googleAction",
2731
+ "labels"
2732
+ ],
2733
+ "properties": {
2734
+ "mode": {
2735
+ "required": false,
2736
+ "type": "\"login\" | \"signup\""
2737
+ },
2738
+ "action": {
2739
+ "required": false,
2740
+ "type": "(formData: FormData) => void | Promise<void>"
2741
+ },
2742
+ "error": {
2743
+ "required": false,
2744
+ "type": "string | null"
2745
+ },
2746
+ "googleAction": {
2747
+ "required": false,
2748
+ "type": "(formData: FormData) => void | Promise<void>"
2749
+ },
2750
+ "labels": {
2751
+ "required": false,
2752
+ "type": "Partial<typeof defaultLabels>"
2753
+ }
2754
+ }
2755
+ }
2464
2756
  },
2465
2757
  "AuthSuccessBlock": {
2466
2758
  "file": "src/components/blocks/AuthSuccessBlock.tsx",
@@ -2478,7 +2770,47 @@
2478
2770
  "buttonText",
2479
2771
  "onContinue",
2480
2772
  "autoRedirectSeconds"
2481
- ]
2773
+ ],
2774
+ "propsSchema": {
2775
+ "kind": "object",
2776
+ "noDataProps": false,
2777
+ "required": [
2778
+ "icon",
2779
+ "title",
2780
+ "description"
2781
+ ],
2782
+ "optional": [
2783
+ "buttonText",
2784
+ "onContinue",
2785
+ "autoRedirectSeconds"
2786
+ ],
2787
+ "properties": {
2788
+ "icon": {
2789
+ "required": true,
2790
+ "type": "React.ReactNode"
2791
+ },
2792
+ "title": {
2793
+ "required": true,
2794
+ "type": "string"
2795
+ },
2796
+ "description": {
2797
+ "required": true,
2798
+ "type": "string"
2799
+ },
2800
+ "buttonText": {
2801
+ "required": false,
2802
+ "type": "string"
2803
+ },
2804
+ "onContinue": {
2805
+ "required": false,
2806
+ "type": "() => void"
2807
+ },
2808
+ "autoRedirectSeconds": {
2809
+ "required": false,
2810
+ "type": "number"
2811
+ }
2812
+ }
2813
+ }
2482
2814
  },
2483
2815
  "BannerBlock": {
2484
2816
  "file": "src/components/blocks/BannerBlock.tsx",
@@ -2493,7 +2825,31 @@
2493
2825
  "variant",
2494
2826
  "dismissible",
2495
2827
  "onDismiss"
2496
- ]
2828
+ ],
2829
+ "propsSchema": {
2830
+ "kind": "object",
2831
+ "noDataProps": false,
2832
+ "required": [],
2833
+ "optional": [
2834
+ "variant",
2835
+ "dismissible",
2836
+ "onDismiss"
2837
+ ],
2838
+ "properties": {
2839
+ "variant": {
2840
+ "required": false,
2841
+ "type": "\"info\" | \"warning\" | \"accent\""
2842
+ },
2843
+ "dismissible": {
2844
+ "required": false,
2845
+ "type": "boolean"
2846
+ },
2847
+ "onDismiss": {
2848
+ "required": false,
2849
+ "type": "() => void"
2850
+ }
2851
+ }
2852
+ }
2497
2853
  },
2498
2854
  "BarChartBlock": {
2499
2855
  "file": "src/components/blocks/BarChartBlock.tsx",
@@ -2501,12 +2857,44 @@
2501
2857
  "tier": 2,
2502
2858
  "category": "Dashboard & Data",
2503
2859
  "lib": null,
2504
- "subComponents": [
2505
- "BarChart"
2506
- ],
2860
+ "subComponents": [],
2507
2861
  "variants": {},
2508
2862
  "notes": "Pre-configured bar chart",
2509
- "keyProps": []
2863
+ "keyProps": [
2864
+ "data",
2865
+ "config",
2866
+ "title",
2867
+ "description"
2868
+ ],
2869
+ "propsSchema": {
2870
+ "kind": "object",
2871
+ "noDataProps": false,
2872
+ "required": [],
2873
+ "optional": [
2874
+ "data",
2875
+ "config",
2876
+ "title",
2877
+ "description"
2878
+ ],
2879
+ "properties": {
2880
+ "data": {
2881
+ "required": false,
2882
+ "type": "BarChartDataItem[]"
2883
+ },
2884
+ "config": {
2885
+ "required": false,
2886
+ "type": "ChartConfig"
2887
+ },
2888
+ "title": {
2889
+ "required": false,
2890
+ "type": "string"
2891
+ },
2892
+ "description": {
2893
+ "required": false,
2894
+ "type": "string"
2895
+ }
2896
+ }
2897
+ }
2510
2898
  },
2511
2899
  "CallToActionBlock": {
2512
2900
  "file": "src/components/blocks/CallToActionBlock.tsx",
@@ -2514,12 +2902,44 @@
2514
2902
  "tier": 2,
2515
2903
  "category": "Marketing",
2516
2904
  "lib": null,
2517
- "subComponents": [
2518
- "CallToAction"
2519
- ],
2905
+ "subComponents": [],
2520
2906
  "variants": {},
2521
2907
  "notes": "Call-to-action section",
2522
- "keyProps": []
2908
+ "keyProps": [
2909
+ "title",
2910
+ "description",
2911
+ "primaryAction",
2912
+ "secondaryAction"
2913
+ ],
2914
+ "propsSchema": {
2915
+ "kind": "object",
2916
+ "noDataProps": false,
2917
+ "required": [],
2918
+ "optional": [
2919
+ "title",
2920
+ "description",
2921
+ "primaryAction",
2922
+ "secondaryAction"
2923
+ ],
2924
+ "properties": {
2925
+ "title": {
2926
+ "required": false,
2927
+ "type": "string"
2928
+ },
2929
+ "description": {
2930
+ "required": false,
2931
+ "type": "string"
2932
+ },
2933
+ "primaryAction": {
2934
+ "required": false,
2935
+ "type": "CallToActionAction"
2936
+ },
2937
+ "secondaryAction": {
2938
+ "required": false,
2939
+ "type": "CallToActionAction"
2940
+ }
2941
+ }
2942
+ }
2523
2943
  },
2524
2944
  "ChangelogBlock": {
2525
2945
  "file": "src/components/blocks/ChangelogBlock.tsx",
@@ -2533,7 +2953,26 @@
2533
2953
  "keyProps": [
2534
2954
  "entries",
2535
2955
  "title"
2536
- ]
2956
+ ],
2957
+ "propsSchema": {
2958
+ "kind": "object",
2959
+ "noDataProps": false,
2960
+ "required": [],
2961
+ "optional": [
2962
+ "entries",
2963
+ "title"
2964
+ ],
2965
+ "properties": {
2966
+ "entries": {
2967
+ "required": false,
2968
+ "type": "ChangelogEntry[]"
2969
+ },
2970
+ "title": {
2971
+ "required": false,
2972
+ "type": "string"
2973
+ }
2974
+ }
2975
+ }
2537
2976
  },
2538
2977
  "ChartBlock": {
2539
2978
  "file": "src/components/blocks/ChartBlock.tsx",
@@ -2549,7 +2988,36 @@
2549
2988
  "config",
2550
2989
  "title",
2551
2990
  "description"
2552
- ]
2991
+ ],
2992
+ "propsSchema": {
2993
+ "kind": "object",
2994
+ "noDataProps": false,
2995
+ "required": [],
2996
+ "optional": [
2997
+ "data",
2998
+ "config",
2999
+ "title",
3000
+ "description"
3001
+ ],
3002
+ "properties": {
3003
+ "data": {
3004
+ "required": false,
3005
+ "type": "ChartBlockDataItem[]"
3006
+ },
3007
+ "config": {
3008
+ "required": false,
3009
+ "type": "ChartConfig"
3010
+ },
3011
+ "title": {
3012
+ "required": false,
3013
+ "type": "string"
3014
+ },
3015
+ "description": {
3016
+ "required": false,
3017
+ "type": "string"
3018
+ }
3019
+ }
3020
+ }
2553
3021
  },
2554
3022
  "ChartCollectionBlock": {
2555
3023
  "file": "src/components/blocks/ChartCollectionBlock.tsx",
@@ -2560,7 +3028,14 @@
2560
3028
  "subComponents": [],
2561
3029
  "variants": {},
2562
3030
  "notes": "Multiple chart grid",
2563
- "keyProps": []
3031
+ "keyProps": [],
3032
+ "propsSchema": {
3033
+ "kind": "object",
3034
+ "noDataProps": true,
3035
+ "required": [],
3036
+ "optional": [],
3037
+ "properties": {}
3038
+ }
2564
3039
  },
2565
3040
  "ChatLayout": {
2566
3041
  "file": "src/components/blocks/ChatLayout.tsx",
@@ -2576,7 +3051,36 @@
2576
3051
  "assistantName",
2577
3052
  "assistantStatus",
2578
3053
  "placeholder"
2579
- ]
3054
+ ],
3055
+ "propsSchema": {
3056
+ "kind": "object",
3057
+ "noDataProps": false,
3058
+ "required": [],
3059
+ "optional": [
3060
+ "initialMessages",
3061
+ "assistantName",
3062
+ "assistantStatus",
3063
+ "placeholder"
3064
+ ],
3065
+ "properties": {
3066
+ "initialMessages": {
3067
+ "required": false,
3068
+ "type": "Message[]"
3069
+ },
3070
+ "assistantName": {
3071
+ "required": false,
3072
+ "type": "string"
3073
+ },
3074
+ "assistantStatus": {
3075
+ "required": false,
3076
+ "type": "string"
3077
+ },
3078
+ "placeholder": {
3079
+ "required": false,
3080
+ "type": "string"
3081
+ }
3082
+ }
3083
+ }
2580
3084
  },
2581
3085
  "CodeBlock": {
2582
3086
  "file": "src/components/blocks/CodeBlock.tsx",
@@ -2587,7 +3091,36 @@
2587
3091
  "subComponents": [],
2588
3092
  "variants": {},
2589
3093
  "notes": "Syntax-highlighted code display",
2590
- "keyProps": []
3094
+ "keyProps": [
3095
+ "code",
3096
+ "language",
3097
+ "filename"
3098
+ ],
3099
+ "propsSchema": {
3100
+ "kind": "object",
3101
+ "noDataProps": false,
3102
+ "required": [
3103
+ "code"
3104
+ ],
3105
+ "optional": [
3106
+ "language",
3107
+ "filename"
3108
+ ],
3109
+ "properties": {
3110
+ "code": {
3111
+ "required": true,
3112
+ "type": "string"
3113
+ },
3114
+ "language": {
3115
+ "required": false,
3116
+ "type": "string"
3117
+ },
3118
+ "filename": {
3119
+ "required": false,
3120
+ "type": "string"
3121
+ }
3122
+ }
3123
+ }
2591
3124
  },
2592
3125
  "ComparisonBlock": {
2593
3126
  "file": "src/components/blocks/ComparisonBlock.tsx",
@@ -2602,7 +3135,31 @@
2602
3135
  "plans",
2603
3136
  "title",
2604
3137
  "description"
2605
- ]
3138
+ ],
3139
+ "propsSchema": {
3140
+ "kind": "object",
3141
+ "noDataProps": false,
3142
+ "required": [],
3143
+ "optional": [
3144
+ "plans",
3145
+ "title",
3146
+ "description"
3147
+ ],
3148
+ "properties": {
3149
+ "plans": {
3150
+ "required": false,
3151
+ "type": "ComparisonPlan[]"
3152
+ },
3153
+ "title": {
3154
+ "required": false,
3155
+ "type": "string"
3156
+ },
3157
+ "description": {
3158
+ "required": false,
3159
+ "type": "string"
3160
+ }
3161
+ }
3162
+ }
2606
3163
  },
2607
3164
  "ContactBlock": {
2608
3165
  "file": "src/components/blocks/ContactBlock.tsx",
@@ -2622,7 +3179,56 @@
2622
3179
  "messagePlaceholder",
2623
3180
  "successTitle",
2624
3181
  "submitLabel"
2625
- ]
3182
+ ],
3183
+ "propsSchema": {
3184
+ "kind": "object",
3185
+ "noDataProps": false,
3186
+ "required": [],
3187
+ "optional": [
3188
+ "onSubmit",
3189
+ "title",
3190
+ "description",
3191
+ "namePlaceholder",
3192
+ "emailPlaceholder",
3193
+ "messagePlaceholder",
3194
+ "successTitle",
3195
+ "submitLabel"
3196
+ ],
3197
+ "properties": {
3198
+ "onSubmit": {
3199
+ "required": false,
3200
+ "type": "(data: { name: string; email: string; message: string }) => void"
3201
+ },
3202
+ "title": {
3203
+ "required": false,
3204
+ "type": "string"
3205
+ },
3206
+ "description": {
3207
+ "required": false,
3208
+ "type": "string"
3209
+ },
3210
+ "namePlaceholder": {
3211
+ "required": false,
3212
+ "type": "string"
3213
+ },
3214
+ "emailPlaceholder": {
3215
+ "required": false,
3216
+ "type": "string"
3217
+ },
3218
+ "messagePlaceholder": {
3219
+ "required": false,
3220
+ "type": "string"
3221
+ },
3222
+ "successTitle": {
3223
+ "required": false,
3224
+ "type": "string"
3225
+ },
3226
+ "submitLabel": {
3227
+ "required": false,
3228
+ "type": "string"
3229
+ }
3230
+ }
3231
+ }
2626
3232
  },
2627
3233
  "CreateBlock": {
2628
3234
  "file": "src/components/blocks/CreateBlock.tsx",
@@ -2638,7 +3244,36 @@
2638
3244
  "description",
2639
3245
  "submitLabel",
2640
3246
  "onSubmit"
2641
- ]
3247
+ ],
3248
+ "propsSchema": {
3249
+ "kind": "object",
3250
+ "noDataProps": false,
3251
+ "required": [],
3252
+ "optional": [
3253
+ "title",
3254
+ "description",
3255
+ "submitLabel",
3256
+ "onSubmit"
3257
+ ],
3258
+ "properties": {
3259
+ "title": {
3260
+ "required": false,
3261
+ "type": "string"
3262
+ },
3263
+ "description": {
3264
+ "required": false,
3265
+ "type": "string"
3266
+ },
3267
+ "submitLabel": {
3268
+ "required": false,
3269
+ "type": "string"
3270
+ },
3271
+ "onSubmit": {
3272
+ "required": false,
3273
+ "type": "(data: ProfileFormValues) => void"
3274
+ }
3275
+ }
3276
+ }
2642
3277
  },
2643
3278
  "DataGridBlock": {
2644
3279
  "file": "src/components/blocks/DataGridBlock.tsx",
@@ -2654,7 +3289,36 @@
2654
3289
  "columns",
2655
3290
  "title",
2656
3291
  "description"
2657
- ]
3292
+ ],
3293
+ "propsSchema": {
3294
+ "kind": "object",
3295
+ "noDataProps": false,
3296
+ "required": [],
3297
+ "optional": [
3298
+ "data",
3299
+ "columns",
3300
+ "title",
3301
+ "description"
3302
+ ],
3303
+ "properties": {
3304
+ "data": {
3305
+ "required": false,
3306
+ "type": "Payment[]"
3307
+ },
3308
+ "columns": {
3309
+ "required": false,
3310
+ "type": "ColumnDef<Payment>[]"
3311
+ },
3312
+ "title": {
3313
+ "required": false,
3314
+ "type": "string"
3315
+ },
3316
+ "description": {
3317
+ "required": false,
3318
+ "type": "string"
3319
+ }
3320
+ }
3321
+ }
2658
3322
  },
2659
3323
  "DirectoryBlock": {
2660
3324
  "file": "src/components/blocks/DirectoryBlock.tsx",
@@ -2668,7 +3332,26 @@
2668
3332
  "keyProps": [
2669
3333
  "navItems",
2670
3334
  "projects"
2671
- ]
3335
+ ],
3336
+ "propsSchema": {
3337
+ "kind": "object",
3338
+ "noDataProps": false,
3339
+ "required": [],
3340
+ "optional": [
3341
+ "navItems",
3342
+ "projects"
3343
+ ],
3344
+ "properties": {
3345
+ "navItems": {
3346
+ "required": false,
3347
+ "type": "NavItem[]"
3348
+ },
3349
+ "projects": {
3350
+ "required": false,
3351
+ "type": "ProjectItem[]"
3352
+ }
3353
+ }
3354
+ }
2672
3355
  },
2673
3356
  "FAQBlock": {
2674
3357
  "file": "src/components/blocks/FAQBlock.tsx",
@@ -2683,7 +3366,31 @@
2683
3366
  "items",
2684
3367
  "title",
2685
3368
  "description"
2686
- ]
3369
+ ],
3370
+ "propsSchema": {
3371
+ "kind": "object",
3372
+ "noDataProps": false,
3373
+ "required": [],
3374
+ "optional": [
3375
+ "items",
3376
+ "title",
3377
+ "description"
3378
+ ],
3379
+ "properties": {
3380
+ "items": {
3381
+ "required": false,
3382
+ "type": "FAQItem[]"
3383
+ },
3384
+ "title": {
3385
+ "required": false,
3386
+ "type": "string"
3387
+ },
3388
+ "description": {
3389
+ "required": false,
3390
+ "type": "string"
3391
+ }
3392
+ }
3393
+ }
2687
3394
  },
2688
3395
  "FeatureBlock": {
2689
3396
  "file": "src/components/blocks/FeatureBlock.tsx",
@@ -2691,13 +3398,50 @@
2691
3398
  "tier": 2,
2692
3399
  "category": "Marketing",
2693
3400
  "lib": null,
2694
- "subComponents": [
2695
- "FeatureGrid",
2696
- "FeatureList"
2697
- ],
3401
+ "subComponents": [],
2698
3402
  "variants": {},
2699
3403
  "notes": "Single feature showcase",
2700
- "keyProps": []
3404
+ "keyProps": [
3405
+ "variant",
3406
+ "badge",
3407
+ "title",
3408
+ "description",
3409
+ "features"
3410
+ ],
3411
+ "propsSchema": {
3412
+ "kind": "object",
3413
+ "noDataProps": false,
3414
+ "required": [],
3415
+ "optional": [
3416
+ "variant",
3417
+ "badge",
3418
+ "title",
3419
+ "description",
3420
+ "features"
3421
+ ],
3422
+ "properties": {
3423
+ "variant": {
3424
+ "required": false,
3425
+ "type": "FeatureBlockVariant"
3426
+ },
3427
+ "badge": {
3428
+ "required": false,
3429
+ "type": "string"
3430
+ },
3431
+ "title": {
3432
+ "required": false,
3433
+ "type": "string"
3434
+ },
3435
+ "description": {
3436
+ "required": false,
3437
+ "type": "string"
3438
+ },
3439
+ "features": {
3440
+ "required": false,
3441
+ "type": "FeatureGridItem[] | FeatureListItem[]"
3442
+ }
3443
+ }
3444
+ }
2701
3445
  },
2702
3446
  "FeatureGridBlock": {
2703
3447
  "file": "src/components/blocks/FeatureGridBlock.tsx",
@@ -2705,12 +3449,38 @@
2705
3449
  "tier": 2,
2706
3450
  "category": "Marketing",
2707
3451
  "lib": null,
2708
- "subComponents": [
2709
- "Features"
2710
- ],
3452
+ "subComponents": [],
2711
3453
  "variants": {},
2712
3454
  "notes": "Multi-feature grid layout",
2713
- "keyProps": []
3455
+ "keyProps": [
3456
+ "title",
3457
+ "description",
3458
+ "features"
3459
+ ],
3460
+ "propsSchema": {
3461
+ "kind": "object",
3462
+ "noDataProps": false,
3463
+ "required": [],
3464
+ "optional": [
3465
+ "title",
3466
+ "description",
3467
+ "features"
3468
+ ],
3469
+ "properties": {
3470
+ "title": {
3471
+ "required": false,
3472
+ "type": "string"
3473
+ },
3474
+ "description": {
3475
+ "required": false,
3476
+ "type": "string"
3477
+ },
3478
+ "features": {
3479
+ "required": false,
3480
+ "type": "FeatureItem[]"
3481
+ }
3482
+ }
3483
+ }
2714
3484
  },
2715
3485
  "FooterBlock": {
2716
3486
  "file": "src/components/blocks/FooterBlock.tsx",
@@ -2718,12 +3488,56 @@
2718
3488
  "tier": 2,
2719
3489
  "category": "Navigation",
2720
3490
  "lib": null,
2721
- "subComponents": [
2722
- "Footer"
2723
- ],
3491
+ "subComponents": [],
2724
3492
  "variants": {},
2725
3493
  "notes": "Site footer with link columns",
2726
- "keyProps": []
3494
+ "keyProps": [
3495
+ "brandDescription",
3496
+ "newsletterPlaceholder",
3497
+ "productLinks",
3498
+ "companyLinks",
3499
+ "legalLinks",
3500
+ "socialIcons"
3501
+ ],
3502
+ "propsSchema": {
3503
+ "kind": "object",
3504
+ "noDataProps": false,
3505
+ "required": [],
3506
+ "optional": [
3507
+ "brandDescription",
3508
+ "newsletterPlaceholder",
3509
+ "productLinks",
3510
+ "companyLinks",
3511
+ "legalLinks",
3512
+ "socialIcons"
3513
+ ],
3514
+ "properties": {
3515
+ "brandDescription": {
3516
+ "required": false,
3517
+ "type": "string"
3518
+ },
3519
+ "newsletterPlaceholder": {
3520
+ "required": false,
3521
+ "type": "string"
3522
+ },
3523
+ "productLinks": {
3524
+ "required": false,
3525
+ "type": "NavLink[]"
3526
+ },
3527
+ "companyLinks": {
3528
+ "required": false,
3529
+ "type": "NavLink[]"
3530
+ },
3531
+ "legalLinks": {
3532
+ "required": false,
3533
+ "type": "NavLink[]"
3534
+ },
3535
+ "socialIcons": {
3536
+ "required": false,
3537
+ "type": "{ icon: ReactNode; label: string }[]"
3538
+ }
3539
+ }
3540
+ }
2727
3541
  },
2728
3542
  "GalleryBlock": {
2729
3543
  "file": "src/components/blocks/GalleryBlock.tsx",
@@ -2738,7 +3552,31 @@
2738
3552
  "images",
2739
3553
  "columns",
2740
3554
  "title"
2741
- ]
3555
+ ],
3556
+ "propsSchema": {
3557
+ "kind": "object",
3558
+ "noDataProps": false,
3559
+ "required": [],
3560
+ "optional": [
3561
+ "images",
3562
+ "columns",
3563
+ "title"
3564
+ ],
3565
+ "properties": {
3566
+ "images": {
3567
+ "required": false,
3568
+ "type": "GalleryImage[]"
3569
+ },
3570
+ "columns": {
3571
+ "required": false,
3572
+ "type": "number"
3573
+ },
3574
+ "title": {
3575
+ "required": false,
3576
+ "type": "string"
3577
+ }
3578
+ }
3579
+ }
2742
3580
  },
2743
3581
  "HeaderBlock": {
2744
3582
  "file": "src/components/blocks/HeaderBlock.tsx",
@@ -2746,12 +3584,50 @@
2746
3584
  "tier": 2,
2747
3585
  "category": "Navigation",
2748
3586
  "lib": null,
2749
- "subComponents": [
2750
- "HeroHeader"
2751
- ],
3587
+ "subComponents": [],
2752
3588
  "variants": {},
2753
3589
  "notes": "Site header with nav links",
2754
- "keyProps": []
3590
+ "keyProps": [
3591
+ "menuItems",
3592
+ "loginLabel",
3593
+ "signUpLabel",
3594
+ "loginHref",
3595
+ "signUpHref"
3596
+ ],
3597
+ "propsSchema": {
3598
+ "kind": "object",
3599
+ "noDataProps": false,
3600
+ "required": [],
3601
+ "optional": [
3602
+ "menuItems",
3603
+ "loginLabel",
3604
+ "signUpLabel",
3605
+ "loginHref",
3606
+ "signUpHref"
3607
+ ],
3608
+ "properties": {
3609
+ "menuItems": {
3610
+ "required": false,
3611
+ "type": "MenuItem[]"
3612
+ },
3613
+ "loginLabel": {
3614
+ "required": false,
3615
+ "type": "string"
3616
+ },
3617
+ "signUpLabel": {
3618
+ "required": false,
3619
+ "type": "string"
3620
+ },
3621
+ "loginHref": {
3622
+ "required": false,
3623
+ "type": "string"
3624
+ },
3625
+ "signUpHref": {
3626
+ "required": false,
3627
+ "type": "string"
3628
+ }
3629
+ }
3630
+ }
2755
3631
  },
2756
3632
  "HeatmapChartBlock": {
2757
3633
  "file": "src/components/blocks/HeatmapChartBlock.tsx",
@@ -2759,12 +3635,44 @@
2759
3635
  "tier": 2,
2760
3636
  "category": "Dashboard & Data",
2761
3637
  "lib": null,
2762
- "subComponents": [
2763
- "HeatmapBlock"
2764
- ],
3638
+ "subComponents": [],
2765
3639
  "variants": {},
2766
3640
  "notes": "Heatmap visualization",
2767
- "keyProps": []
3641
+ "keyProps": [
3642
+ "data",
3643
+ "config",
3644
+ "title",
3645
+ "description"
3646
+ ],
3647
+ "propsSchema": {
3648
+ "kind": "object",
3649
+ "noDataProps": false,
3650
+ "required": [],
3651
+ "optional": [
3652
+ "data",
3653
+ "config",
3654
+ "title",
3655
+ "description"
3656
+ ],
3657
+ "properties": {
3658
+ "data": {
3659
+ "required": false,
3660
+ "type": "HeatmapDataItem[]"
3661
+ },
3662
+ "config": {
3663
+ "required": false,
3664
+ "type": "ChartConfig"
3665
+ },
3666
+ "title": {
3667
+ "required": false,
3668
+ "type": "string"
3669
+ },
3670
+ "description": {
3671
+ "required": false,
3672
+ "type": "string"
3673
+ }
3674
+ }
3675
+ }
2768
3676
  },
2769
3677
  "HeroBlock": {
2770
3678
  "file": "src/components/blocks/HeroBlock.tsx",
@@ -2772,13 +3680,56 @@
2772
3680
  "tier": 2,
2773
3681
  "category": "Marketing",
2774
3682
  "lib": null,
2775
- "subComponents": [
2776
- "HeroCentered",
2777
- "HeroSplit"
2778
- ],
3683
+ "subComponents": [],
2779
3684
  "variants": {},
2780
3685
  "notes": "Full hero with gradient text",
2781
- "keyProps": []
3686
+ "keyProps": [
3687
+ "variant",
3688
+ "headline",
3689
+ "subheadline",
3690
+ "primaryAction",
3691
+ "secondaryAction",
3692
+ "announcement"
3693
+ ],
3694
+ "propsSchema": {
3695
+ "kind": "object",
3696
+ "noDataProps": false,
3697
+ "required": [],
3698
+ "optional": [
3699
+ "variant",
3700
+ "headline",
3701
+ "subheadline",
3702
+ "primaryAction",
3703
+ "secondaryAction",
3704
+ "announcement"
3705
+ ],
3706
+ "properties": {
3707
+ "variant": {
3708
+ "required": false,
3709
+ "type": "HeroBlockVariant"
3710
+ },
3711
+ "headline": {
3712
+ "required": false,
3713
+ "type": "string"
3714
+ },
3715
+ "subheadline": {
3716
+ "required": false,
3717
+ "type": "string"
3718
+ },
3719
+ "primaryAction": {
3720
+ "required": false,
3721
+ "type": "{ label: string onClick?: () => void }"
3722
+ },
3723
+ "secondaryAction": {
3724
+ "required": false,
3725
+ "type": "{ label: string onClick?: () => void }"
3726
+ },
3727
+ "announcement": {
3728
+ "required": false,
3729
+ "type": "{ label: string text: string href?: string }"
3730
+ }
3731
+ }
3732
+ }
2782
3733
  },
2783
3734
  "HeroSectionBlock": {
2784
3735
  "file": "src/components/blocks/HeroSectionBlock.tsx",
@@ -2786,12 +3737,50 @@
2786
3737
  "tier": 2,
2787
3738
  "category": "Marketing",
2788
3739
  "lib": null,
2789
- "subComponents": [
2790
- "HeroSection"
2791
- ],
3740
+ "subComponents": [],
2792
3741
  "variants": {},
2793
3742
  "notes": "Alternate hero layout",
2794
- "keyProps": []
3743
+ "keyProps": [
3744
+ "headline",
3745
+ "flipWords",
3746
+ "primaryAction",
3747
+ "secondaryAction",
3748
+ "logos"
3749
+ ],
3750
+ "propsSchema": {
3751
+ "kind": "object",
3752
+ "noDataProps": false,
3753
+ "required": [],
3754
+ "optional": [
3755
+ "headline",
3756
+ "flipWords",
3757
+ "primaryAction",
3758
+ "secondaryAction",
3759
+ "logos"
3760
+ ],
3761
+ "properties": {
3762
+ "headline": {
3763
+ "required": false,
3764
+ "type": "string"
3765
+ },
3766
+ "flipWords": {
3767
+ "required": false,
3768
+ "type": "string[]"
3769
+ },
3770
+ "primaryAction": {
3771
+ "required": false,
3772
+ "type": "HeroAction"
3773
+ },
3774
+ "secondaryAction": {
3775
+ "required": false,
3776
+ "type": "HeroAction"
3777
+ },
3778
+ "logos": {
3779
+ "required": false,
3780
+ "type": "HeroLogo[]"
3781
+ }
3782
+ }
3783
+ }
2795
3784
  },
2796
3785
  "IntegrationsBlock": {
2797
3786
  "file": "src/components/blocks/IntegrationsBlock.tsx",
@@ -2799,12 +3788,38 @@
2799
3788
  "tier": 2,
2800
3789
  "category": "Application",
2801
3790
  "lib": null,
2802
- "subComponents": [
2803
- "IntegrationsSection"
2804
- ],
3791
+ "subComponents": [],
2805
3792
  "variants": {},
2806
3793
  "notes": "Integration marketplace grid",
2807
- "keyProps": []
3794
+ "keyProps": [
3795
+ "title",
3796
+ "description",
3797
+ "integrations"
3798
+ ],
3799
+ "propsSchema": {
3800
+ "kind": "object",
3801
+ "noDataProps": false,
3802
+ "required": [],
3803
+ "optional": [
3804
+ "title",
3805
+ "description",
3806
+ "integrations"
3807
+ ],
3808
+ "properties": {
3809
+ "title": {
3810
+ "required": false,
3811
+ "type": "string"
3812
+ },
3813
+ "description": {
3814
+ "required": false,
3815
+ "type": "string"
3816
+ },
3817
+ "integrations": {
3818
+ "required": false,
3819
+ "type": "IntegrationItem[]"
3820
+ }
3821
+ }
3822
+ }
2808
3823
  },
2809
3824
  "InteractiveAreaChartBlock": {
2810
3825
  "file": "src/components/blocks/InteractiveAreaChartBlock.tsx",
@@ -2812,12 +3827,50 @@
2812
3827
  "tier": 2,
2813
3828
  "category": "Dashboard & Data",
2814
3829
  "lib": null,
2815
- "subComponents": [
2816
- "InteractiveAreaChart"
2817
- ],
3830
+ "subComponents": [],
2818
3831
  "variants": {},
2819
3832
  "notes": "Zoomable/interactive area chart",
2820
- "keyProps": []
3833
+ "keyProps": [
3834
+ "data",
3835
+ "config",
3836
+ "title",
3837
+ "description",
3838
+ "timeRanges"
3839
+ ],
3840
+ "propsSchema": {
3841
+ "kind": "object",
3842
+ "noDataProps": false,
3843
+ "required": [],
3844
+ "optional": [
3845
+ "data",
3846
+ "config",
3847
+ "title",
3848
+ "description",
3849
+ "timeRanges"
3850
+ ],
3851
+ "properties": {
3852
+ "data": {
3853
+ "required": false,
3854
+ "type": "AreaChartDataItem[]"
3855
+ },
3856
+ "config": {
3857
+ "required": false,
3858
+ "type": "ChartConfig"
3859
+ },
3860
+ "title": {
3861
+ "required": false,
3862
+ "type": "string"
3863
+ },
3864
+ "description": {
3865
+ "required": false,
3866
+ "type": "string"
3867
+ },
3868
+ "timeRanges": {
3869
+ "required": false,
3870
+ "type": "TimeRange[]"
3871
+ }
3872
+ }
3873
+ }
2821
3874
  },
2822
3875
  "KanbanDemoBlock": {
2823
3876
  "file": "src/components/blocks/KanbanDemoBlock.tsx",
@@ -2828,7 +3881,14 @@
2828
3881
  "subComponents": [],
2829
3882
  "variants": {},
2830
3883
  "notes": "Kanban board demo with sample data",
2831
- "keyProps": []
3884
+ "keyProps": [],
3885
+ "propsSchema": {
3886
+ "kind": "object",
3887
+ "noDataProps": true,
3888
+ "required": [],
3889
+ "optional": [],
3890
+ "properties": {}
3891
+ }
2832
3892
  },
2833
3893
  "LoginBlock": {
2834
3894
  "file": "src/components/blocks/LoginBlock.tsx",
@@ -2850,7 +3910,66 @@
2850
3910
  "forgotPasswordHref",
2851
3911
  "signUpHref",
2852
3912
  "signInHref"
2853
- ]
3913
+ ],
3914
+ "propsSchema": {
3915
+ "kind": "object",
3916
+ "noDataProps": false,
3917
+ "required": [],
3918
+ "optional": [
3919
+ "type",
3920
+ "showSocial",
3921
+ "labels",
3922
+ "action",
3923
+ "error",
3924
+ "onLogin",
3925
+ "googleAction",
3926
+ "forgotPasswordHref",
3927
+ "signUpHref",
3928
+ "signInHref"
3929
+ ],
3930
+ "properties": {
3931
+ "type": {
3932
+ "required": false,
3933
+ "type": "\"login\" | \"signup\""
3934
+ },
3935
+ "showSocial": {
3936
+ "required": false,
3937
+ "type": "boolean"
3938
+ },
3939
+ "labels": {
3940
+ "required": false,
3941
+ "type": "Partial<typeof defaultLabels>"
3942
+ },
3943
+ "action": {
3944
+ "required": false,
3945
+ "type": "(formData: FormData) => void | Promise<void>"
3946
+ },
3947
+ "error": {
3948
+ "required": false,
3949
+ "type": "string | null"
3950
+ },
3951
+ "onLogin": {
3952
+ "required": false,
3953
+ "type": "(e: FormEvent) => void"
3954
+ },
3955
+ "googleAction": {
3956
+ "required": false,
3957
+ "type": "(formData: FormData) => void | Promise<void>"
3958
+ },
3959
+ "forgotPasswordHref": {
3960
+ "required": false,
3961
+ "type": "string"
3962
+ },
3963
+ "signUpHref": {
3964
+ "required": false,
3965
+ "type": "string"
3966
+ },
3967
+ "signInHref": {
3968
+ "required": false,
3969
+ "type": "string"
3970
+ }
3971
+ }
3972
+ }
2854
3973
  },
2855
3974
  "LogoCloud": {
2856
3975
  "file": "src/components/blocks/LogoCloud.tsx",
@@ -2864,7 +3983,26 @@
2864
3983
  "keyProps": [
2865
3984
  "title",
2866
3985
  "logos"
2867
- ]
3986
+ ],
3987
+ "propsSchema": {
3988
+ "kind": "object",
3989
+ "noDataProps": false,
3990
+ "required": [],
3991
+ "optional": [
3992
+ "title",
3993
+ "logos"
3994
+ ],
3995
+ "properties": {
3996
+ "title": {
3997
+ "required": false,
3998
+ "type": "string"
3999
+ },
4000
+ "logos": {
4001
+ "required": false,
4002
+ "type": "LogoItem[]"
4003
+ }
4004
+ }
4005
+ }
2868
4006
  },
2869
4007
  "NavUser": {
2870
4008
  "file": "src/components/blocks/NavUser.tsx",
@@ -2877,12 +4015,34 @@
2877
4015
  "notes": "Sidebar user menu with dropdown",
2878
4016
  "keyProps": [
2879
4017
  "user",
2880
- "name",
2881
- "email",
2882
- "avatar",
2883
4018
  "items",
2884
4019
  "footer"
2885
- ]
4020
+ ],
4021
+ "propsSchema": {
4022
+ "kind": "object",
4023
+ "noDataProps": false,
4024
+ "required": [
4025
+ "user"
4026
+ ],
4027
+ "optional": [
4028
+ "items",
4029
+ "footer"
4030
+ ],
4031
+ "properties": {
4032
+ "user": {
4033
+ "required": true,
4034
+ "type": "{ name: string email: string avatar?: string }"
4035
+ },
4036
+ "items": {
4037
+ "required": false,
4038
+ "type": "NavUserItem[]"
4039
+ },
4040
+ "footer": {
4041
+ "required": false,
4042
+ "type": "React.ReactNode"
4043
+ }
4044
+ }
4045
+ }
2886
4046
  },
2887
4047
  "NewsletterBlock": {
2888
4048
  "file": "src/components/blocks/NewsletterBlock.tsx",
@@ -2897,7 +4057,31 @@
2897
4057
  "onSubscribe",
2898
4058
  "title",
2899
4059
  "description"
2900
- ]
4060
+ ],
4061
+ "propsSchema": {
4062
+ "kind": "object",
4063
+ "noDataProps": false,
4064
+ "required": [],
4065
+ "optional": [
4066
+ "onSubscribe",
4067
+ "title",
4068
+ "description"
4069
+ ],
4070
+ "properties": {
4071
+ "onSubscribe": {
4072
+ "required": false,
4073
+ "type": "(email: string) => void"
4074
+ },
4075
+ "title": {
4076
+ "required": false,
4077
+ "type": "string"
4078
+ },
4079
+ "description": {
4080
+ "required": false,
4081
+ "type": "string"
4082
+ }
4083
+ }
4084
+ }
2901
4085
  },
2902
4086
  "NotFoundBlock": {
2903
4087
  "file": "src/components/blocks/NotFoundBlock.tsx",
@@ -2913,7 +4097,36 @@
2913
4097
  "description",
2914
4098
  "backHref",
2915
4099
  "backLabel"
2916
- ]
4100
+ ],
4101
+ "propsSchema": {
4102
+ "kind": "object",
4103
+ "noDataProps": false,
4104
+ "required": [],
4105
+ "optional": [
4106
+ "title",
4107
+ "description",
4108
+ "backHref",
4109
+ "backLabel"
4110
+ ],
4111
+ "properties": {
4112
+ "title": {
4113
+ "required": false,
4114
+ "type": "string"
4115
+ },
4116
+ "description": {
4117
+ "required": false,
4118
+ "type": "string"
4119
+ },
4120
+ "backHref": {
4121
+ "required": false,
4122
+ "type": "string"
4123
+ },
4124
+ "backLabel": {
4125
+ "required": false,
4126
+ "type": "string"
4127
+ }
4128
+ }
4129
+ }
2917
4130
  },
2918
4131
  "OnboardingBlock": {
2919
4132
  "file": "src/components/blocks/OnboardingBlock.tsx",
@@ -2928,7 +4141,31 @@
2928
4141
  "steps",
2929
4142
  "title",
2930
4143
  "onToggle"
2931
- ]
4144
+ ],
4145
+ "propsSchema": {
4146
+ "kind": "object",
4147
+ "noDataProps": false,
4148
+ "required": [],
4149
+ "optional": [
4150
+ "steps",
4151
+ "title",
4152
+ "onToggle"
4153
+ ],
4154
+ "properties": {
4155
+ "steps": {
4156
+ "required": false,
4157
+ "type": "OnboardingStep[]"
4158
+ },
4159
+ "title": {
4160
+ "required": false,
4161
+ "type": "string"
4162
+ },
4163
+ "onToggle": {
4164
+ "required": false,
4165
+ "type": "(id: string, completed: boolean) => void"
4166
+ }
4167
+ }
4168
+ }
2932
4169
  },
2933
4170
  "PasswordRecoveryBlock": {
2934
4171
  "file": "src/components/blocks/PasswordRecoveryBlock.tsx",
@@ -2947,7 +4184,51 @@
2947
4184
  "description",
2948
4185
  "buttonText",
2949
4186
  "successTitle"
2950
- ]
4187
+ ],
4188
+ "propsSchema": {
4189
+ "kind": "object",
4190
+ "noDataProps": false,
4191
+ "required": [],
4192
+ "optional": [
4193
+ "mode",
4194
+ "onSubmit",
4195
+ "onBackToLogin",
4196
+ "title",
4197
+ "description",
4198
+ "buttonText",
4199
+ "successTitle"
4200
+ ],
4201
+ "properties": {
4202
+ "mode": {
4203
+ "required": false,
4204
+ "type": "\"reset\" | \"magic-link\""
4205
+ },
4206
+ "onSubmit": {
4207
+ "required": false,
4208
+ "type": "(email: string) => void"
4209
+ },
4210
+ "onBackToLogin": {
4211
+ "required": false,
4212
+ "type": "() => void"
4213
+ },
4214
+ "title": {
4215
+ "required": false,
4216
+ "type": "string"
4217
+ },
4218
+ "description": {
4219
+ "required": false,
4220
+ "type": "string"
4221
+ },
4222
+ "buttonText": {
4223
+ "required": false,
4224
+ "type": "string"
4225
+ },
4226
+ "successTitle": {
4227
+ "required": false,
4228
+ "type": "string"
4229
+ }
4230
+ }
4231
+ }
2951
4232
  },
2952
4233
  "PricingBlock": {
2953
4234
  "file": "src/components/blocks/PricingBlock.tsx",
@@ -2955,12 +4236,44 @@
2955
4236
  "tier": 2,
2956
4237
  "category": "Marketing",
2957
4238
  "lib": null,
2958
- "subComponents": [
2959
- "PricingTable"
2960
- ],
4239
+ "subComponents": [],
2961
4240
  "variants": {},
2962
4241
  "notes": "Pricing cards comparison",
2963
- "keyProps": []
4242
+ "keyProps": [
4243
+ "title",
4244
+ "description",
4245
+ "plans",
4246
+ "showBillingToggle"
4247
+ ],
4248
+ "propsSchema": {
4249
+ "kind": "object",
4250
+ "noDataProps": false,
4251
+ "required": [],
4252
+ "optional": [
4253
+ "title",
4254
+ "description",
4255
+ "plans",
4256
+ "showBillingToggle"
4257
+ ],
4258
+ "properties": {
4259
+ "title": {
4260
+ "required": false,
4261
+ "type": "string"
4262
+ },
4263
+ "description": {
4264
+ "required": false,
4265
+ "type": "string"
4266
+ },
4267
+ "plans": {
4268
+ "required": false,
4269
+ "type": "PricingPlan[]"
4270
+ },
4271
+ "showBillingToggle": {
4272
+ "required": false,
4273
+ "type": "boolean"
4274
+ }
4275
+ }
4276
+ }
2964
4277
  },
2965
4278
  "ProcessFlowBlock": {
2966
4279
  "file": "src/components/blocks/ProcessFlowBlock.tsx",
@@ -2976,7 +4289,36 @@
2976
4289
  "description",
2977
4290
  "badge",
2978
4291
  "steps"
2979
- ]
4292
+ ],
4293
+ "propsSchema": {
4294
+ "kind": "object",
4295
+ "noDataProps": false,
4296
+ "required": [],
4297
+ "optional": [
4298
+ "title",
4299
+ "description",
4300
+ "badge",
4301
+ "steps"
4302
+ ],
4303
+ "properties": {
4304
+ "title": {
4305
+ "required": false,
4306
+ "type": "string"
4307
+ },
4308
+ "description": {
4309
+ "required": false,
4310
+ "type": "string"
4311
+ },
4312
+ "badge": {
4313
+ "required": false,
4314
+ "type": "string"
4315
+ },
4316
+ "steps": {
4317
+ "required": false,
4318
+ "type": "ProcessStep[]"
4319
+ }
4320
+ }
4321
+ }
2980
4322
  },
2981
4323
  "ResetPasswordBlock": {
2982
4324
  "file": "src/components/blocks/ResetPasswordBlock.tsx",
@@ -2992,7 +4334,36 @@
2992
4334
  "onBackToLogin",
2993
4335
  "title",
2994
4336
  "description"
2995
- ]
4337
+ ],
4338
+ "propsSchema": {
4339
+ "kind": "object",
4340
+ "noDataProps": false,
4341
+ "required": [],
4342
+ "optional": [
4343
+ "onSubmit",
4344
+ "onBackToLogin",
4345
+ "title",
4346
+ "description"
4347
+ ],
4348
+ "properties": {
4349
+ "onSubmit": {
4350
+ "required": false,
4351
+ "type": "(password: string) => void"
4352
+ },
4353
+ "onBackToLogin": {
4354
+ "required": false,
4355
+ "type": "() => void"
4356
+ },
4357
+ "title": {
4358
+ "required": false,
4359
+ "type": "string"
4360
+ },
4361
+ "description": {
4362
+ "required": false,
4363
+ "type": "string"
4364
+ }
4365
+ }
4366
+ }
2996
4367
  },
2997
4368
  "SettingsLayout": {
2998
4369
  "file": "src/components/blocks/SettingsLayout.tsx",
@@ -3009,7 +4380,41 @@
3009
4380
  "subtitle",
3010
4381
  "defaultActive",
3011
4382
  "renderContent"
3012
- ]
4383
+ ],
4384
+ "propsSchema": {
4385
+ "kind": "object",
4386
+ "noDataProps": false,
4387
+ "required": [],
4388
+ "optional": [
4389
+ "links",
4390
+ "title",
4391
+ "subtitle",
4392
+ "defaultActive",
4393
+ "renderContent"
4394
+ ],
4395
+ "properties": {
4396
+ "links": {
4397
+ "required": false,
4398
+ "type": "SettingsLink[]"
4399
+ },
4400
+ "title": {
4401
+ "required": false,
4402
+ "type": "string"
4403
+ },
4404
+ "subtitle": {
4405
+ "required": false,
4406
+ "type": "string"
4407
+ },
4408
+ "defaultActive": {
4409
+ "required": false,
4410
+ "type": "string"
4411
+ },
4412
+ "renderContent": {
4413
+ "required": false,
4414
+ "type": "(activeLink: string) => ReactNode"
4415
+ }
4416
+ }
4417
+ }
3013
4418
  },
3014
4419
  "SignUpBlock": {
3015
4420
  "file": "src/components/blocks/SignUpBlock.tsx",
@@ -3017,9 +4422,7 @@
3017
4422
  "tier": 2,
3018
4423
  "category": "Auth Flow",
3019
4424
  "lib": null,
3020
- "subComponents": [
3021
- "LoginPage"
3022
- ],
4425
+ "subComponents": [],
3023
4426
  "variants": {},
3024
4427
  "notes": "Registration form",
3025
4428
  "keyProps": [
@@ -3028,7 +4431,41 @@
3028
4431
  "showSocial",
3029
4432
  "signInHref",
3030
4433
  "onSubmit"
3031
- ]
4434
+ ],
4435
+ "propsSchema": {
4436
+ "kind": "object",
4437
+ "noDataProps": false,
4438
+ "required": [],
4439
+ "optional": [
4440
+ "title",
4441
+ "description",
4442
+ "showSocial",
4443
+ "signInHref",
4444
+ "onSubmit"
4445
+ ],
4446
+ "properties": {
4447
+ "title": {
4448
+ "required": false,
4449
+ "type": "string"
4450
+ },
4451
+ "description": {
4452
+ "required": false,
4453
+ "type": "string"
4454
+ },
4455
+ "showSocial": {
4456
+ "required": false,
4457
+ "type": "boolean"
4458
+ },
4459
+ "signInHref": {
4460
+ "required": false,
4461
+ "type": "string"
4462
+ },
4463
+ "onSubmit": {
4464
+ "required": false,
4465
+ "type": "(e: FormEvent<HTMLFormElement>) => void"
4466
+ }
4467
+ }
4468
+ }
3032
4469
  },
3033
4470
  "SocialProofBlock": {
3034
4471
  "file": "src/components/blocks/SocialProofBlock.tsx",
@@ -3036,13 +4473,44 @@
3036
4473
  "tier": 2,
3037
4474
  "category": "Marketing",
3038
4475
  "lib": null,
3039
- "subComponents": [
3040
- "LogoCloud",
3041
- "Testimonials"
3042
- ],
4476
+ "subComponents": [],
3043
4477
  "variants": {},
3044
4478
  "notes": "Social proof metrics/logos",
3045
- "keyProps": []
4479
+ "keyProps": [
4480
+ "variant",
4481
+ "logos",
4482
+ "title",
4483
+ "testimonials"
4484
+ ],
4485
+ "propsSchema": {
4486
+ "kind": "object",
4487
+ "noDataProps": false,
4488
+ "required": [],
4489
+ "optional": [
4490
+ "variant",
4491
+ "logos",
4492
+ "title",
4493
+ "testimonials"
4494
+ ],
4495
+ "properties": {
4496
+ "variant": {
4497
+ "required": false,
4498
+ "type": "SocialProofBlockVariant"
4499
+ },
4500
+ "logos": {
4501
+ "required": false,
4502
+ "type": "LogoItem[]"
4503
+ },
4504
+ "title": {
4505
+ "required": false,
4506
+ "type": "string"
4507
+ },
4508
+ "testimonials": {
4509
+ "required": false,
4510
+ "type": "SocialTestimonialItem[]"
4511
+ }
4512
+ }
4513
+ }
3046
4514
  },
3047
4515
  "SolutionShowcaseBlock": {
3048
4516
  "file": "src/components/blocks/SolutionShowcaseBlock.tsx",
@@ -3058,7 +4526,36 @@
3058
4526
  "description",
3059
4527
  "badge",
3060
4528
  "sections"
3061
- ]
4529
+ ],
4530
+ "propsSchema": {
4531
+ "kind": "object",
4532
+ "noDataProps": false,
4533
+ "required": [],
4534
+ "optional": [
4535
+ "title",
4536
+ "description",
4537
+ "badge",
4538
+ "sections"
4539
+ ],
4540
+ "properties": {
4541
+ "title": {
4542
+ "required": false,
4543
+ "type": "string"
4544
+ },
4545
+ "description": {
4546
+ "required": false,
4547
+ "type": "string"
4548
+ },
4549
+ "badge": {
4550
+ "required": false,
4551
+ "type": "string"
4552
+ },
4553
+ "sections": {
4554
+ "required": false,
4555
+ "type": "SolutionSection[]"
4556
+ }
4557
+ }
4558
+ }
3062
4559
  },
3063
4560
  "StatsBlock": {
3064
4561
  "file": "src/components/blocks/StatsBlock.tsx",
@@ -3066,12 +4563,26 @@
3066
4563
  "tier": 2,
3067
4564
  "category": "Dashboard & Data",
3068
4565
  "lib": null,
3069
- "subComponents": [
3070
- "StatsGeneric"
3071
- ],
4566
+ "subComponents": [],
3072
4567
  "variants": {},
3073
4568
  "notes": "KPI statistics cards",
3074
- "keyProps": []
4569
+ "keyProps": [
4570
+ "stats"
4571
+ ],
4572
+ "propsSchema": {
4573
+ "kind": "object",
4574
+ "noDataProps": false,
4575
+ "required": [],
4576
+ "optional": [
4577
+ "stats"
4578
+ ],
4579
+ "properties": {
4580
+ "stats": {
4581
+ "required": false,
4582
+ "type": "StatItem[]"
4583
+ }
4584
+ }
4585
+ }
3075
4586
  },
3076
4587
  "StatsMarketingBlock": {
3077
4588
  "file": "src/components/blocks/StatsMarketingBlock.tsx",
@@ -3079,12 +4590,38 @@
3079
4590
  "tier": 2,
3080
4591
  "category": "Marketing",
3081
4592
  "lib": null,
3082
- "subComponents": [
3083
- "StatsSection"
3084
- ],
4593
+ "subComponents": [],
3085
4594
  "variants": {},
3086
4595
  "notes": "Marketing statistics display",
3087
- "keyProps": []
4596
+ "keyProps": [
4597
+ "title",
4598
+ "description",
4599
+ "stats"
4600
+ ],
4601
+ "propsSchema": {
4602
+ "kind": "object",
4603
+ "noDataProps": false,
4604
+ "required": [],
4605
+ "optional": [
4606
+ "title",
4607
+ "description",
4608
+ "stats"
4609
+ ],
4610
+ "properties": {
4611
+ "title": {
4612
+ "required": false,
4613
+ "type": "string"
4614
+ },
4615
+ "description": {
4616
+ "required": false,
4617
+ "type": "string"
4618
+ },
4619
+ "stats": {
4620
+ "required": false,
4621
+ "type": "StatItem[]"
4622
+ }
4623
+ }
4624
+ }
3088
4625
  },
3089
4626
  "TeamBlock": {
3090
4627
  "file": "src/components/blocks/TeamBlock.tsx",
@@ -3092,12 +4629,32 @@
3092
4629
  "tier": 2,
3093
4630
  "category": "User",
3094
4631
  "lib": null,
3095
- "subComponents": [
3096
- "TeamSection"
3097
- ],
4632
+ "subComponents": [],
3098
4633
  "variants": {},
3099
4634
  "notes": "Team members grid with roles/avatars",
3100
- "keyProps": []
4635
+ "keyProps": [
4636
+ "title",
4637
+ "sections"
4638
+ ],
4639
+ "propsSchema": {
4640
+ "kind": "object",
4641
+ "noDataProps": false,
4642
+ "required": [],
4643
+ "optional": [
4644
+ "title",
4645
+ "sections"
4646
+ ],
4647
+ "properties": {
4648
+ "title": {
4649
+ "required": false,
4650
+ "type": "string"
4651
+ },
4652
+ "sections": {
4653
+ "required": false,
4654
+ "type": "TeamSectionDef[]"
4655
+ }
4656
+ }
4657
+ }
3101
4658
  },
3102
4659
  "TestimonialsBlock": {
3103
4660
  "file": "src/components/blocks/TestimonialsBlock.tsx",
@@ -3105,12 +4662,38 @@
3105
4662
  "tier": 2,
3106
4663
  "category": "Marketing",
3107
4664
  "lib": null,
3108
- "subComponents": [
3109
- "Testimonials"
3110
- ],
4665
+ "subComponents": [],
3111
4666
  "variants": {},
3112
4667
  "notes": "Customer testimonial carousel/grid",
3113
- "keyProps": []
4668
+ "keyProps": [
4669
+ "title",
4670
+ "description",
4671
+ "testimonials"
4672
+ ],
4673
+ "propsSchema": {
4674
+ "kind": "object",
4675
+ "noDataProps": false,
4676
+ "required": [],
4677
+ "optional": [
4678
+ "title",
4679
+ "description",
4680
+ "testimonials"
4681
+ ],
4682
+ "properties": {
4683
+ "title": {
4684
+ "required": false,
4685
+ "type": "string"
4686
+ },
4687
+ "description": {
4688
+ "required": false,
4689
+ "type": "string"
4690
+ },
4691
+ "testimonials": {
4692
+ "required": false,
4693
+ "type": "TestimonialItem[]"
4694
+ }
4695
+ }
4696
+ }
3114
4697
  },
3115
4698
  "TwoFactorChallengeBlock": {
3116
4699
  "file": "src/components/blocks/TwoFactorChallengeBlock.tsx",
@@ -3129,7 +4712,51 @@
3129
4712
  "title",
3130
4713
  "description",
3131
4714
  "backupCodeLabel"
3132
- ]
4715
+ ],
4716
+ "propsSchema": {
4717
+ "kind": "object",
4718
+ "noDataProps": false,
4719
+ "required": [],
4720
+ "optional": [
4721
+ "onVerify",
4722
+ "onUseBackupCode",
4723
+ "onBackToLogin",
4724
+ "error",
4725
+ "title",
4726
+ "description",
4727
+ "backupCodeLabel"
4728
+ ],
4729
+ "properties": {
4730
+ "onVerify": {
4731
+ "required": false,
4732
+ "type": "(code: string) => void"
4733
+ },
4734
+ "onUseBackupCode": {
4735
+ "required": false,
4736
+ "type": "() => void"
4737
+ },
4738
+ "onBackToLogin": {
4739
+ "required": false,
4740
+ "type": "() => void"
4741
+ },
4742
+ "error": {
4743
+ "required": false,
4744
+ "type": "string"
4745
+ },
4746
+ "title": {
4747
+ "required": false,
4748
+ "type": "string"
4749
+ },
4750
+ "description": {
4751
+ "required": false,
4752
+ "type": "string"
4753
+ },
4754
+ "backupCodeLabel": {
4755
+ "required": false,
4756
+ "type": "string"
4757
+ }
4758
+ }
4759
+ }
3133
4760
  },
3134
4761
  "TwoFactorSetupBlock": {
3135
4762
  "file": "src/components/blocks/TwoFactorSetupBlock.tsx",
@@ -3148,7 +4775,51 @@
3148
4775
  "onComplete",
3149
4776
  "title",
3150
4777
  "description"
3151
- ]
4778
+ ],
4779
+ "propsSchema": {
4780
+ "kind": "object",
4781
+ "noDataProps": false,
4782
+ "required": [],
4783
+ "optional": [
4784
+ "qrCodeUrl",
4785
+ "secret",
4786
+ "backupCodes",
4787
+ "onVerify",
4788
+ "onComplete",
4789
+ "title",
4790
+ "description"
4791
+ ],
4792
+ "properties": {
4793
+ "qrCodeUrl": {
4794
+ "required": false,
4795
+ "type": "string"
4796
+ },
4797
+ "secret": {
4798
+ "required": false,
4799
+ "type": "string"
4800
+ },
4801
+ "backupCodes": {
4802
+ "required": false,
4803
+ "type": "string[]"
4804
+ },
4805
+ "onVerify": {
4806
+ "required": false,
4807
+ "type": "(code: string) => boolean | Promise<boolean>"
4808
+ },
4809
+ "onComplete": {
4810
+ "required": false,
4811
+ "type": "() => void"
4812
+ },
4813
+ "title": {
4814
+ "required": false,
4815
+ "type": "string"
4816
+ },
4817
+ "description": {
4818
+ "required": false,
4819
+ "type": "string"
4820
+ }
4821
+ }
4822
+ }
3152
4823
  },
3153
4824
  "UsageDonutBlock": {
3154
4825
  "file": "src/components/blocks/UsageDonutBlock.tsx",
@@ -3156,12 +4827,50 @@
3156
4827
  "tier": 2,
3157
4828
  "category": "Dashboard & Data",
3158
4829
  "lib": null,
3159
- "subComponents": [
3160
- "UsageDonut"
3161
- ],
4830
+ "subComponents": [],
3162
4831
  "variants": {},
3163
4832
  "notes": "Usage/quota donut chart",
3164
- "keyProps": []
4833
+ "keyProps": [
4834
+ "data",
4835
+ "config",
4836
+ "title",
4837
+ "description",
4838
+ "centerLabel"
4839
+ ],
4840
+ "propsSchema": {
4841
+ "kind": "object",
4842
+ "noDataProps": false,
4843
+ "required": [],
4844
+ "optional": [
4845
+ "data",
4846
+ "config",
4847
+ "title",
4848
+ "description",
4849
+ "centerLabel"
4850
+ ],
4851
+ "properties": {
4852
+ "data": {
4853
+ "required": false,
4854
+ "type": "UsageDonutDataItem[]"
4855
+ },
4856
+ "config": {
4857
+ "required": false,
4858
+ "type": "ChartConfig"
4859
+ },
4860
+ "title": {
4861
+ "required": false,
4862
+ "type": "string"
4863
+ },
4864
+ "description": {
4865
+ "required": false,
4866
+ "type": "string"
4867
+ },
4868
+ "centerLabel": {
4869
+ "required": false,
4870
+ "type": "React.ReactNode"
4871
+ }
4872
+ }
4873
+ }
3165
4874
  },
3166
4875
  "VoiceAgentCard": {
3167
4876
  "file": "src/components/blocks/VoiceAgentCard.tsx",
@@ -3177,7 +4886,37 @@
3177
4886
  "state",
3178
4887
  "selected",
3179
4888
  "onSelect"
3180
- ]
4889
+ ],
4890
+ "propsSchema": {
4891
+ "kind": "object",
4892
+ "noDataProps": false,
4893
+ "required": [
4894
+ "agent",
4895
+ "state"
4896
+ ],
4897
+ "optional": [
4898
+ "selected",
4899
+ "onSelect"
4900
+ ],
4901
+ "properties": {
4902
+ "agent": {
4903
+ "required": true,
4904
+ "type": "VoiceAgent"
4905
+ },
4906
+ "state": {
4907
+ "required": true,
4908
+ "type": "Avatar3DState"
4909
+ },
4910
+ "selected": {
4911
+ "required": false,
4912
+ "type": "boolean"
4913
+ },
4914
+ "onSelect": {
4915
+ "required": false,
4916
+ "type": "() => void"
4917
+ }
4918
+ }
4919
+ }
3181
4920
  },
3182
4921
  "WizardBlock": {
3183
4922
  "file": "src/components/blocks/WizardBlock.tsx",
@@ -3193,7 +4932,69 @@
3193
4932
  "description",
3194
4933
  "steps",
3195
4934
  "onFinish"
3196
- ]
4935
+ ],
4936
+ "propsSchema": {
4937
+ "kind": "object",
4938
+ "noDataProps": false,
4939
+ "required": [],
4940
+ "optional": [
4941
+ "title",
4942
+ "description",
4943
+ "steps",
4944
+ "onFinish"
4945
+ ],
4946
+ "properties": {
4947
+ "title": {
4948
+ "required": false,
4949
+ "type": "string"
4950
+ },
4951
+ "description": {
4952
+ "required": false,
4953
+ "type": "string"
4954
+ },
4955
+ "steps": {
4956
+ "required": false,
4957
+ "type": "WizardStep[]"
4958
+ },
4959
+ "onFinish": {
4960
+ "required": false,
4961
+ "type": "() => void"
4962
+ }
4963
+ }
4964
+ }
4965
+ },
4966
+ "InviteUserModal": {
4967
+ "file": "src/components/blocks/user/InviteUserModal.tsx",
4968
+ "exportPath": "./user/invite-user-modal",
4969
+ "tier": 2,
4970
+ "category": "User",
4971
+ "lib": null,
4972
+ "subComponents": [],
4973
+ "variants": {},
4974
+ "notes": "Invite teammate modal with role selection",
4975
+ "keyProps": [
4976
+ "onInvite",
4977
+ "onInvited"
4978
+ ],
4979
+ "propsSchema": {
4980
+ "kind": "object",
4981
+ "noDataProps": false,
4982
+ "required": [],
4983
+ "optional": [
4984
+ "onInvite",
4985
+ "onInvited"
4986
+ ],
4987
+ "properties": {
4988
+ "onInvite": {
4989
+ "required": false,
4990
+ "type": "(values: InviteFormValues) => Promise<InviteResult> | InviteResult"
4991
+ },
4992
+ "onInvited": {
4993
+ "required": false,
4994
+ "type": "() => void"
4995
+ }
4996
+ }
4997
+ }
3197
4998
  }
3198
4999
  },
3199
5000
  "tiers": {