@contractspec/bundle.library 3.4.3 → 3.5.2

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 (556) hide show
  1. package/.turbo/turbo-build.log +494 -488
  2. package/CHANGELOG.md +91 -0
  3. package/dist/application/index.js +8 -8
  4. package/dist/application/mcp/cliMcp.js +8 -8
  5. package/dist/application/mcp/contractsMcp.js +8 -8
  6. package/dist/application/mcp/docsMcp.js +8 -8
  7. package/dist/application/mcp/index.js +8 -8
  8. package/dist/application/mcp/internalMcp.js +8 -8
  9. package/dist/application/mcp/providerRankingMcp.js +8 -8
  10. package/dist/bundles/LibraryBundle.d.ts +126 -0
  11. package/dist/bundles/LibraryBundle.js +139 -0
  12. package/dist/bundles/index.d.ts +1 -0
  13. package/dist/bundles/index.js +139 -0
  14. package/dist/components/docs/DocsIndexPage.js +91 -91
  15. package/dist/components/docs/advanced/AdvancedMCPPage.js +125 -125
  16. package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +49 -49
  17. package/dist/components/docs/advanced/AdvancedRenderersPage.js +51 -51
  18. package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +35 -35
  19. package/dist/components/docs/advanced/AdvancedTelemetryPage.js +177 -177
  20. package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +45 -45
  21. package/dist/components/docs/advanced/index.js +482 -482
  22. package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +107 -107
  23. package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +73 -73
  24. package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +117 -117
  25. package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +175 -175
  26. package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +71 -71
  27. package/dist/components/docs/architecture/ArchitectureOverviewPage.js +205 -205
  28. package/dist/components/docs/architecture/index.js +748 -748
  29. package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +117 -117
  30. package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +111 -111
  31. package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +117 -117
  32. package/dist/components/docs/comparison/ComparisonOverviewPage.js +97 -97
  33. package/dist/components/docs/comparison/ComparisonWindmillPage.js +125 -125
  34. package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +171 -171
  35. package/dist/components/docs/comparison/index.js +738 -738
  36. package/dist/components/docs/ecosystem/IntegrationsPage.js +45 -45
  37. package/dist/components/docs/ecosystem/PluginsPage.js +73 -73
  38. package/dist/components/docs/ecosystem/RegistryPage.js +37 -37
  39. package/dist/components/docs/ecosystem/TemplatesPage.js +56 -56
  40. package/dist/components/docs/ecosystem/index.js +211 -211
  41. package/dist/components/docs/examples/DocsExamplesPage.js +21 -21
  42. package/dist/components/docs/examples/index.js +21 -21
  43. package/dist/components/docs/generated/docs-index.generated.d.ts +6 -6
  44. package/dist/components/docs/getting-started/CLIPage.js +95 -95
  45. package/dist/components/docs/getting-started/CompatibilityPage.js +81 -81
  46. package/dist/components/docs/getting-started/DataViewTutorialPage.js +57 -57
  47. package/dist/components/docs/getting-started/DeveloperToolsPage.js +61 -61
  48. package/dist/components/docs/getting-started/HelloWorldPage.js +77 -77
  49. package/dist/components/docs/getting-started/InstallationPage.js +65 -65
  50. package/dist/components/docs/getting-started/StartHerePage.js +51 -51
  51. package/dist/components/docs/getting-started/TroubleshootingPage.js +73 -73
  52. package/dist/components/docs/getting-started/VSCodeExtensionPage.js +171 -171
  53. package/dist/components/docs/getting-started/index.js +731 -731
  54. package/dist/components/docs/guides/GuideCIDiffGatingPage.js +80 -80
  55. package/dist/components/docs/guides/GuideContractTypesPage.js +232 -232
  56. package/dist/components/docs/guides/GuideDocsPipelinePage.js +82 -82
  57. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +84 -84
  58. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +324 -324
  59. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +107 -107
  60. package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +78 -78
  61. package/dist/components/docs/guides/GuidesIndexPage.js +43 -43
  62. package/dist/components/docs/guides/index.js +976 -976
  63. package/dist/components/docs/index.js +10792 -10792
  64. package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +17 -17
  65. package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +47 -47
  66. package/dist/components/docs/integrations/IntegrationsGithubPage.js +61 -61
  67. package/dist/components/docs/integrations/IntegrationsGmailPage.js +49 -49
  68. package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +33 -33
  69. package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +65 -65
  70. package/dist/components/docs/integrations/IntegrationsMistralPage.js +69 -69
  71. package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +65 -65
  72. package/dist/components/docs/integrations/IntegrationsOverviewPage.js +313 -313
  73. package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +101 -101
  74. package/dist/components/docs/integrations/IntegrationsPowensPage.js +121 -121
  75. package/dist/components/docs/integrations/IntegrationsQdrantPage.js +49 -49
  76. package/dist/components/docs/integrations/IntegrationsResendPage.js +45 -45
  77. package/dist/components/docs/integrations/IntegrationsS3Page.js +57 -57
  78. package/dist/components/docs/integrations/IntegrationsSlackPage.js +63 -63
  79. package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +139 -139
  80. package/dist/components/docs/integrations/IntegrationsStripePage.js +159 -159
  81. package/dist/components/docs/integrations/IntegrationsTwilioPage.js +61 -61
  82. package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +63 -63
  83. package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +65 -65
  84. package/dist/components/docs/integrations/index.js +1642 -1642
  85. package/dist/components/docs/intent/ContractFirstApiPage.js +51 -51
  86. package/dist/components/docs/intent/DeterministicCodegenPage.js +59 -59
  87. package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +85 -85
  88. package/dist/components/docs/intent/OpenapiAlternativePage.js +91 -91
  89. package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +59 -59
  90. package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +51 -51
  91. package/dist/components/docs/intent/index.js +396 -396
  92. package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +371 -371
  93. package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +79 -79
  94. package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +185 -185
  95. package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +187 -187
  96. package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +141 -141
  97. package/dist/components/docs/knowledge/index.js +963 -963
  98. package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +85 -85
  99. package/dist/components/docs/libraries/LibrariesAiAgentPage.js +63 -63
  100. package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +33 -33
  101. package/dist/components/docs/libraries/LibrariesContentGenPage.js +43 -43
  102. package/dist/components/docs/libraries/LibrariesContractsPage.js +125 -125
  103. package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +45 -45
  104. package/dist/components/docs/libraries/LibrariesDataBackendPage.js +69 -69
  105. package/dist/components/docs/libraries/LibrariesDataViewsPage.js +79 -79
  106. package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +129 -129
  107. package/dist/components/docs/libraries/LibrariesEvolutionPage.js +49 -49
  108. package/dist/components/docs/libraries/LibrariesGraphQLPage.js +73 -73
  109. package/dist/components/docs/libraries/LibrariesGrowthPage.js +35 -35
  110. package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +43 -43
  111. package/dist/components/docs/libraries/LibrariesObservabilityPage.js +53 -53
  112. package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +45 -45
  113. package/dist/components/docs/libraries/LibrariesOverviewPage.js +191 -191
  114. package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +47 -47
  115. package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +53 -53
  116. package/dist/components/docs/libraries/LibrariesResiliencePage.js +49 -49
  117. package/dist/components/docs/libraries/LibrariesRuntimePage.js +87 -87
  118. package/dist/components/docs/libraries/LibrariesSLOPage.js +47 -47
  119. package/dist/components/docs/libraries/LibrariesSchemaPage.js +139 -139
  120. package/dist/components/docs/libraries/LibrariesSupportBotPage.js +57 -57
  121. package/dist/components/docs/libraries/LibrariesTestingPage.js +49 -49
  122. package/dist/components/docs/libraries/LibrariesUIKitPage.js +107 -107
  123. package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +35 -35
  124. package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +89 -89
  125. package/dist/components/docs/libraries/index.js +1919 -1919
  126. package/dist/components/docs/manifesto/ManifestoPage.js +79 -79
  127. package/dist/components/docs/ops/AutoEvolutionOpsPage.js +59 -59
  128. package/dist/components/docs/ops/DistributedTracingOpsPage.js +33 -33
  129. package/dist/components/docs/ops/index.js +92 -92
  130. package/dist/components/docs/reference/DocsMarkdownContent.js +27 -27
  131. package/dist/components/docs/reference/DocsReferenceContent.js +34 -34
  132. package/dist/components/docs/reference/DocsReferenceIndexClient.js +23 -23
  133. package/dist/components/docs/reference/DocsReferenceIndexPage.js +26 -26
  134. package/dist/components/docs/reference/DocsReferencePage.js +37 -37
  135. package/dist/components/docs/reference/index.js +63 -63
  136. package/dist/components/docs/safety/SafetyAuditingPage.js +161 -161
  137. package/dist/components/docs/safety/SafetyMigrationsPage.js +169 -169
  138. package/dist/components/docs/safety/SafetyOverviewPage.js +99 -99
  139. package/dist/components/docs/safety/SafetyPDPPage.js +137 -137
  140. package/dist/components/docs/safety/SafetySecurityTrustPage.js +95 -95
  141. package/dist/components/docs/safety/SafetySigningPage.js +39 -39
  142. package/dist/components/docs/safety/SafetyTenantIsolationPage.js +33 -33
  143. package/dist/components/docs/safety/index.js +733 -733
  144. package/dist/components/docs/shared/StudioPrompt.js +9 -9
  145. package/dist/components/docs/specs/SpecsCapabilitiesPage.js +61 -61
  146. package/dist/components/docs/specs/SpecsDataViewsPage.js +119 -119
  147. package/dist/components/docs/specs/SpecsOverlaysPage.js +171 -171
  148. package/dist/components/docs/specs/SpecsOverviewPage.js +167 -167
  149. package/dist/components/docs/specs/SpecsPolicyPage.js +179 -179
  150. package/dist/components/docs/specs/SpecsWorkflowsPage.js +141 -141
  151. package/dist/components/docs/specs/index.js +838 -838
  152. package/dist/components/docs/studio/StudioBYOKPage.js +9 -9
  153. package/dist/components/docs/studio/StudioDeploymentsPage.js +9 -9
  154. package/dist/components/docs/studio/StudioGettingStartedPage.js +9 -9
  155. package/dist/components/docs/studio/StudioIntegrationsPage.js +9 -9
  156. package/dist/components/docs/studio/StudioOverviewPage.js +33 -33
  157. package/dist/components/docs/studio/StudioVisualBuilderPage.js +9 -9
  158. package/dist/components/docs/studio/index.js +78 -78
  159. package/dist/components/integrations/index.js +209 -209
  160. package/dist/components/integrations/molecules/IntegrationCard.js +33 -33
  161. package/dist/components/integrations/organisms/IntegrationMarketplace.js +71 -71
  162. package/dist/components/integrations/organisms/IntegrationSettings.js +98 -98
  163. package/dist/components/integrations/organisms/KnowledgeSourceList.js +40 -40
  164. package/dist/components/legal/PrivacyTemplate.js +477 -477
  165. package/dist/components/legal/TermsTemplate.js +421 -421
  166. package/dist/components/legal/index.js +898 -898
  167. package/dist/components/shared/FeatureGateNotice.js +13 -13
  168. package/dist/components/shared/index.js +13 -13
  169. package/dist/components/shell/WorkspaceHeader.js +37 -37
  170. package/dist/components/shell/WorkspaceProjectShellLayout.js +77 -77
  171. package/dist/components/shell/WorkspaceShellRenderer.d.ts +17 -0
  172. package/dist/components/shell/WorkspaceShellRenderer.js +229 -0
  173. package/dist/components/shell/WorkspaceSidebar.js +27 -27
  174. package/dist/components/shell/index.d.ts +1 -0
  175. package/dist/components/shell/index.js +140 -77
  176. package/dist/components/templates/index.js +272 -272
  177. package/dist/components/templates/messaging/ConversationList.js +27 -27
  178. package/dist/components/templates/messaging/MessageComposer.js +27 -27
  179. package/dist/components/templates/messaging/MessageThread.js +18 -18
  180. package/dist/components/templates/messaging/MessagingWorkspace.js +65 -65
  181. package/dist/components/templates/messaging/index.js +65 -65
  182. package/dist/components/templates/recipes/LanguageSwitcher.js +5 -5
  183. package/dist/components/templates/recipes/RecipeCard.js +26 -26
  184. package/dist/components/templates/recipes/RecipeDetail.js +33 -33
  185. package/dist/components/templates/recipes/RecipeList.js +80 -80
  186. package/dist/components/templates/recipes/index.js +80 -80
  187. package/dist/components/templates/todos/FilterBar.js +39 -39
  188. package/dist/components/templates/todos/TaskForm.js +43 -43
  189. package/dist/components/templates/todos/TaskItem.js +30 -30
  190. package/dist/components/templates/todos/TaskList.js +127 -127
  191. package/dist/components/templates/todos/index.js +127 -127
  192. package/dist/index.js +12324 -12261
  193. package/dist/infrastructure/elysia/index.js +8 -8
  194. package/dist/infrastructure/elysia/logger.js +8 -8
  195. package/dist/infrastructure/index.js +8 -8
  196. package/dist/libs/posthog/client.js +2 -2
  197. package/dist/node/application/index.js +8 -8
  198. package/dist/node/application/mcp/cliMcp.js +8 -8
  199. package/dist/node/application/mcp/contractsMcp.js +8 -8
  200. package/dist/node/application/mcp/docsMcp.js +8 -8
  201. package/dist/node/application/mcp/index.js +8 -8
  202. package/dist/node/application/mcp/internalMcp.js +8 -8
  203. package/dist/node/application/mcp/providerRankingMcp.js +8 -8
  204. package/dist/node/bundles/LibraryBundle.js +138 -0
  205. package/dist/node/bundles/index.js +138 -0
  206. package/dist/node/components/docs/DocsIndexPage.js +91 -91
  207. package/dist/node/components/docs/advanced/AdvancedMCPPage.js +125 -125
  208. package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +49 -49
  209. package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +51 -51
  210. package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +35 -35
  211. package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +177 -177
  212. package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +45 -45
  213. package/dist/node/components/docs/advanced/index.js +482 -482
  214. package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +107 -107
  215. package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +73 -73
  216. package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +117 -117
  217. package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +175 -175
  218. package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +71 -71
  219. package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +205 -205
  220. package/dist/node/components/docs/architecture/index.js +748 -748
  221. package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +117 -117
  222. package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +111 -111
  223. package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +117 -117
  224. package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +97 -97
  225. package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +125 -125
  226. package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +171 -171
  227. package/dist/node/components/docs/comparison/index.js +738 -738
  228. package/dist/node/components/docs/ecosystem/IntegrationsPage.js +45 -45
  229. package/dist/node/components/docs/ecosystem/PluginsPage.js +73 -73
  230. package/dist/node/components/docs/ecosystem/RegistryPage.js +37 -37
  231. package/dist/node/components/docs/ecosystem/TemplatesPage.js +56 -56
  232. package/dist/node/components/docs/ecosystem/index.js +211 -211
  233. package/dist/node/components/docs/examples/DocsExamplesPage.js +21 -21
  234. package/dist/node/components/docs/examples/index.js +21 -21
  235. package/dist/node/components/docs/getting-started/CLIPage.js +95 -95
  236. package/dist/node/components/docs/getting-started/CompatibilityPage.js +81 -81
  237. package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +57 -57
  238. package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +61 -61
  239. package/dist/node/components/docs/getting-started/HelloWorldPage.js +77 -77
  240. package/dist/node/components/docs/getting-started/InstallationPage.js +65 -65
  241. package/dist/node/components/docs/getting-started/StartHerePage.js +51 -51
  242. package/dist/node/components/docs/getting-started/TroubleshootingPage.js +73 -73
  243. package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +171 -171
  244. package/dist/node/components/docs/getting-started/index.js +731 -731
  245. package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +80 -80
  246. package/dist/node/components/docs/guides/GuideContractTypesPage.js +232 -232
  247. package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +82 -82
  248. package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +84 -84
  249. package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +324 -324
  250. package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +107 -107
  251. package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +78 -78
  252. package/dist/node/components/docs/guides/GuidesIndexPage.js +43 -43
  253. package/dist/node/components/docs/guides/index.js +976 -976
  254. package/dist/node/components/docs/index.js +10792 -10792
  255. package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +17 -17
  256. package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +47 -47
  257. package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +61 -61
  258. package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +49 -49
  259. package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +33 -33
  260. package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +65 -65
  261. package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +69 -69
  262. package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +65 -65
  263. package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +313 -313
  264. package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +101 -101
  265. package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +121 -121
  266. package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +49 -49
  267. package/dist/node/components/docs/integrations/IntegrationsResendPage.js +45 -45
  268. package/dist/node/components/docs/integrations/IntegrationsS3Page.js +57 -57
  269. package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +63 -63
  270. package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +139 -139
  271. package/dist/node/components/docs/integrations/IntegrationsStripePage.js +159 -159
  272. package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +61 -61
  273. package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +63 -63
  274. package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +65 -65
  275. package/dist/node/components/docs/integrations/index.js +1642 -1642
  276. package/dist/node/components/docs/intent/ContractFirstApiPage.js +51 -51
  277. package/dist/node/components/docs/intent/DeterministicCodegenPage.js +59 -59
  278. package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +85 -85
  279. package/dist/node/components/docs/intent/OpenapiAlternativePage.js +91 -91
  280. package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +59 -59
  281. package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +51 -51
  282. package/dist/node/components/docs/intent/index.js +396 -396
  283. package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +371 -371
  284. package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +79 -79
  285. package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +185 -185
  286. package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +187 -187
  287. package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +141 -141
  288. package/dist/node/components/docs/knowledge/index.js +963 -963
  289. package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +85 -85
  290. package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +63 -63
  291. package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +33 -33
  292. package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +43 -43
  293. package/dist/node/components/docs/libraries/LibrariesContractsPage.js +125 -125
  294. package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +45 -45
  295. package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +69 -69
  296. package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +79 -79
  297. package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +129 -129
  298. package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +49 -49
  299. package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +73 -73
  300. package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +35 -35
  301. package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +43 -43
  302. package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +53 -53
  303. package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +45 -45
  304. package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +191 -191
  305. package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +47 -47
  306. package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +53 -53
  307. package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +49 -49
  308. package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +87 -87
  309. package/dist/node/components/docs/libraries/LibrariesSLOPage.js +47 -47
  310. package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +139 -139
  311. package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +57 -57
  312. package/dist/node/components/docs/libraries/LibrariesTestingPage.js +49 -49
  313. package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +107 -107
  314. package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +35 -35
  315. package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +89 -89
  316. package/dist/node/components/docs/libraries/index.js +1919 -1919
  317. package/dist/node/components/docs/manifesto/ManifestoPage.js +79 -79
  318. package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +59 -59
  319. package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +33 -33
  320. package/dist/node/components/docs/ops/index.js +92 -92
  321. package/dist/node/components/docs/reference/DocsMarkdownContent.js +27 -27
  322. package/dist/node/components/docs/reference/DocsReferenceContent.js +34 -34
  323. package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +23 -23
  324. package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +26 -26
  325. package/dist/node/components/docs/reference/DocsReferencePage.js +37 -37
  326. package/dist/node/components/docs/reference/index.js +63 -63
  327. package/dist/node/components/docs/safety/SafetyAuditingPage.js +161 -161
  328. package/dist/node/components/docs/safety/SafetyMigrationsPage.js +169 -169
  329. package/dist/node/components/docs/safety/SafetyOverviewPage.js +99 -99
  330. package/dist/node/components/docs/safety/SafetyPDPPage.js +137 -137
  331. package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +95 -95
  332. package/dist/node/components/docs/safety/SafetySigningPage.js +39 -39
  333. package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +33 -33
  334. package/dist/node/components/docs/safety/index.js +733 -733
  335. package/dist/node/components/docs/shared/StudioPrompt.js +9 -9
  336. package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +61 -61
  337. package/dist/node/components/docs/specs/SpecsDataViewsPage.js +119 -119
  338. package/dist/node/components/docs/specs/SpecsOverlaysPage.js +171 -171
  339. package/dist/node/components/docs/specs/SpecsOverviewPage.js +167 -167
  340. package/dist/node/components/docs/specs/SpecsPolicyPage.js +179 -179
  341. package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +141 -141
  342. package/dist/node/components/docs/specs/index.js +838 -838
  343. package/dist/node/components/docs/studio/StudioBYOKPage.js +9 -9
  344. package/dist/node/components/docs/studio/StudioDeploymentsPage.js +9 -9
  345. package/dist/node/components/docs/studio/StudioGettingStartedPage.js +9 -9
  346. package/dist/node/components/docs/studio/StudioIntegrationsPage.js +9 -9
  347. package/dist/node/components/docs/studio/StudioOverviewPage.js +33 -33
  348. package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +9 -9
  349. package/dist/node/components/docs/studio/index.js +78 -78
  350. package/dist/node/components/integrations/index.js +209 -209
  351. package/dist/node/components/integrations/molecules/IntegrationCard.js +33 -33
  352. package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +71 -71
  353. package/dist/node/components/integrations/organisms/IntegrationSettings.js +98 -98
  354. package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +40 -40
  355. package/dist/node/components/legal/PrivacyTemplate.js +477 -477
  356. package/dist/node/components/legal/TermsTemplate.js +421 -421
  357. package/dist/node/components/legal/index.js +898 -898
  358. package/dist/node/components/shared/FeatureGateNotice.js +13 -13
  359. package/dist/node/components/shared/index.js +13 -13
  360. package/dist/node/components/shell/WorkspaceHeader.js +37 -37
  361. package/dist/node/components/shell/WorkspaceProjectShellLayout.js +77 -77
  362. package/dist/node/components/shell/WorkspaceShellRenderer.js +228 -0
  363. package/dist/node/components/shell/WorkspaceSidebar.js +27 -27
  364. package/dist/node/components/shell/index.js +140 -77
  365. package/dist/node/components/templates/index.js +272 -272
  366. package/dist/node/components/templates/messaging/ConversationList.js +27 -27
  367. package/dist/node/components/templates/messaging/MessageComposer.js +27 -27
  368. package/dist/node/components/templates/messaging/MessageThread.js +18 -18
  369. package/dist/node/components/templates/messaging/MessagingWorkspace.js +65 -65
  370. package/dist/node/components/templates/messaging/index.js +65 -65
  371. package/dist/node/components/templates/recipes/LanguageSwitcher.js +5 -5
  372. package/dist/node/components/templates/recipes/RecipeCard.js +26 -26
  373. package/dist/node/components/templates/recipes/RecipeDetail.js +33 -33
  374. package/dist/node/components/templates/recipes/RecipeList.js +80 -80
  375. package/dist/node/components/templates/recipes/index.js +80 -80
  376. package/dist/node/components/templates/todos/FilterBar.js +39 -39
  377. package/dist/node/components/templates/todos/TaskForm.js +43 -43
  378. package/dist/node/components/templates/todos/TaskItem.js +30 -30
  379. package/dist/node/components/templates/todos/TaskList.js +127 -127
  380. package/dist/node/components/templates/todos/index.js +127 -127
  381. package/dist/node/index.js +12324 -12261
  382. package/dist/node/infrastructure/elysia/index.js +8 -8
  383. package/dist/node/infrastructure/elysia/logger.js +8 -8
  384. package/dist/node/infrastructure/index.js +8 -8
  385. package/dist/node/libs/posthog/client.js +2 -2
  386. package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +3 -3
  387. package/dist/node/presentation/features/atoms/FeatureIcon/index.js +3 -3
  388. package/dist/node/presentation/features/atoms/index.js +3 -3
  389. package/dist/node/presentation/features/index.js +915 -915
  390. package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +101 -101
  391. package/dist/node/presentation/features/molecules/FeatureCard/index.js +101 -101
  392. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +15 -15
  393. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +15 -15
  394. package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +23 -23
  395. package/dist/node/presentation/features/molecules/FeatureFilters/index.js +23 -23
  396. package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +67 -67
  397. package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +67 -67
  398. package/dist/node/presentation/features/molecules/index.js +139 -139
  399. package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +7 -7
  400. package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +57 -57
  401. package/dist/node/presentation/features/organisms/FeatureDetail/index.js +57 -57
  402. package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +183 -183
  403. package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +183 -183
  404. package/dist/node/presentation/features/organisms/FeatureEventsList.js +7 -7
  405. package/dist/node/presentation/features/organisms/FeatureFormsList.js +7 -7
  406. package/dist/node/presentation/features/organisms/FeatureOperationsList.js +7 -7
  407. package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +7 -7
  408. package/dist/node/presentation/features/organisms/index.js +275 -275
  409. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +126 -126
  410. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +126 -126
  411. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +16 -16
  412. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +16 -16
  413. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +112 -112
  414. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +112 -112
  415. package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +16 -16
  416. package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +16 -16
  417. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +126 -126
  418. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +126 -126
  419. package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +16 -16
  420. package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +16 -16
  421. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +110 -110
  422. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +110 -110
  423. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +16 -16
  424. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +16 -16
  425. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +66 -66
  426. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +66 -66
  427. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +112 -112
  428. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +112 -112
  429. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +16 -16
  430. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +16 -16
  431. package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +3 -3
  432. package/dist/presentation/features/atoms/FeatureIcon/index.js +3 -3
  433. package/dist/presentation/features/atoms/index.js +3 -3
  434. package/dist/presentation/features/index.js +915 -915
  435. package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +101 -101
  436. package/dist/presentation/features/molecules/FeatureCard/index.js +101 -101
  437. package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +15 -15
  438. package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +15 -15
  439. package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +23 -23
  440. package/dist/presentation/features/molecules/FeatureFilters/index.js +23 -23
  441. package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +67 -67
  442. package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +67 -67
  443. package/dist/presentation/features/molecules/index.js +139 -139
  444. package/dist/presentation/features/organisms/FeatureDataViewsList.js +7 -7
  445. package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +57 -57
  446. package/dist/presentation/features/organisms/FeatureDetail/index.js +57 -57
  447. package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +183 -183
  448. package/dist/presentation/features/organisms/FeatureDiscovery/index.js +183 -183
  449. package/dist/presentation/features/organisms/FeatureEventsList.js +7 -7
  450. package/dist/presentation/features/organisms/FeatureFormsList.js +7 -7
  451. package/dist/presentation/features/organisms/FeatureOperationsList.js +7 -7
  452. package/dist/presentation/features/organisms/FeaturePresentationsList.js +7 -7
  453. package/dist/presentation/features/organisms/index.js +275 -275
  454. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +126 -126
  455. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +126 -126
  456. package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +16 -16
  457. package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +16 -16
  458. package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +112 -112
  459. package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +112 -112
  460. package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +16 -16
  461. package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +16 -16
  462. package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +126 -126
  463. package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +126 -126
  464. package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +16 -16
  465. package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +16 -16
  466. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +110 -110
  467. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +110 -110
  468. package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +16 -16
  469. package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +16 -16
  470. package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +66 -66
  471. package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +66 -66
  472. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +112 -112
  473. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +112 -112
  474. package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +16 -16
  475. package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +16 -16
  476. package/package.json +71 -22
  477. package/src/bundles/LibraryBundle.ts +152 -0
  478. package/src/bundles/index.ts +1 -0
  479. package/src/components/docs/generated/docs-index._common.json +441 -90
  480. package/src/components/docs/generated/docs-index.agent-console.json +1 -1
  481. package/src/components/docs/generated/docs-index.ai-chat.json +1 -1
  482. package/src/components/docs/generated/docs-index.ai-support-bot.json +1 -1
  483. package/src/components/docs/generated/docs-index.analytics-dashboard.json +1 -1
  484. package/src/components/docs/generated/docs-index.app-config.json +1 -1
  485. package/src/components/docs/generated/docs-index.audit-trail.json +1 -1
  486. package/src/components/docs/generated/docs-index.calendar-google.json +1 -1
  487. package/src/components/docs/generated/docs-index.content-generation.json +1 -1
  488. package/src/components/docs/generated/docs-index.crm-pipeline.json +1 -1
  489. package/src/components/docs/generated/docs-index.email-gmail.json +1 -1
  490. package/src/components/docs/generated/docs-index.feature-flags.json +1 -1
  491. package/src/components/docs/generated/docs-index.files.json +1 -1
  492. package/src/components/docs/generated/docs-index.generated.ts +7 -7
  493. package/src/components/docs/generated/docs-index.health.json +1 -1
  494. package/src/components/docs/generated/docs-index.identity-rbac.json +1 -1
  495. package/src/components/docs/generated/docs-index.in-app-docs.json +1 -1
  496. package/src/components/docs/generated/docs-index.integration-hub.json +1 -1
  497. package/src/components/docs/generated/docs-index.integration-posthog.json +1 -1
  498. package/src/components/docs/generated/docs-index.integration-stripe.json +1 -1
  499. package/src/components/docs/generated/docs-index.integration-supabase.json +1 -1
  500. package/src/components/docs/generated/docs-index.jobs.json +1 -1
  501. package/src/components/docs/generated/docs-index.kb-update-pipeline.json +1 -1
  502. package/src/components/docs/generated/docs-index.knowledge-canon.json +1 -1
  503. package/src/components/docs/generated/docs-index.learning-journey-ambient-coach.json +1 -1
  504. package/src/components/docs/generated/docs-index.learning-journey-crm-onboarding.json +1 -1
  505. package/src/components/docs/generated/docs-index.learning-journey-duo-drills.json +1 -1
  506. package/src/components/docs/generated/docs-index.learning-journey-platform-tour.json +1 -1
  507. package/src/components/docs/generated/docs-index.learning-journey-quest-challenges.json +1 -1
  508. package/src/components/docs/generated/docs-index.learning-journey-registry.json +1 -1
  509. package/src/components/docs/generated/docs-index.learning-journey-studio-onboarding.json +1 -1
  510. package/src/components/docs/generated/docs-index.learning-journey-ui-coaching.json +1 -1
  511. package/src/components/docs/generated/docs-index.learning-journey-ui-gamified.json +1 -1
  512. package/src/components/docs/generated/docs-index.learning-journey-ui-onboarding.json +1 -1
  513. package/src/components/docs/generated/docs-index.learning-journey-ui-shared.json +1 -1
  514. package/src/components/docs/generated/docs-index.learning-journey.json +1 -1
  515. package/src/components/docs/generated/docs-index.learning-patterns.json +1 -1
  516. package/src/components/docs/generated/docs-index.lifecycle-cli.json +1 -1
  517. package/src/components/docs/generated/docs-index.lifecycle-dashboard.json +1 -1
  518. package/src/components/docs/generated/docs-index.locale-jurisdiction-gate.json +1 -1
  519. package/src/components/docs/generated/docs-index.manifest.json +2 -2
  520. package/src/components/docs/generated/docs-index.marketplace.json +1 -1
  521. package/src/components/docs/generated/docs-index.meeting-recorder-providers.json +1 -1
  522. package/src/components/docs/generated/docs-index.meeting-recorder.json +1 -1
  523. package/src/components/docs/generated/docs-index.metrics.json +1 -1
  524. package/src/components/docs/generated/docs-index.minimal.json +1 -1
  525. package/src/components/docs/generated/docs-index.notifications.json +1 -1
  526. package/src/components/docs/generated/docs-index.openbanking-powens.json +1 -1
  527. package/src/components/docs/generated/docs-index.openbanking.json +1 -1
  528. package/src/components/docs/generated/docs-index.opencode-cli.json +1 -1
  529. package/src/components/docs/generated/docs-index.personalization.json +1 -1
  530. package/src/components/docs/generated/docs-index.platform-acp.json +1 -1
  531. package/src/components/docs/generated/docs-index.platform-agent.json +1 -1
  532. package/src/components/docs/generated/docs-index.platform-context.json +1 -1
  533. package/src/components/docs/generated/docs-index.platform-database.json +1 -1
  534. package/src/components/docs/generated/docs-index.platform-docs.json +1 -1
  535. package/src/components/docs/generated/docs-index.platform-integrations.json +1 -1
  536. package/src/components/docs/generated/docs-index.platform-knowledge.json +1 -1
  537. package/src/components/docs/generated/docs-index.platform-provider-ranking.json +1 -1
  538. package/src/components/docs/generated/docs-index.pocket-family-office.json +1 -1
  539. package/src/components/docs/generated/docs-index.policy-safe-knowledge-assistant.json +1 -1
  540. package/src/components/docs/generated/docs-index.product-intent.json +1 -1
  541. package/src/components/docs/generated/docs-index.project-management-sync.json +1 -1
  542. package/src/components/docs/generated/docs-index.saas-boilerplate.json +1 -1
  543. package/src/components/docs/generated/docs-index.service-business-os.json +1 -1
  544. package/src/components/docs/generated/docs-index.team-hub.json +1 -1
  545. package/src/components/docs/generated/docs-index.unknown.json +1 -1
  546. package/src/components/docs/generated/docs-index.versioned-knowledge-base.json +1 -1
  547. package/src/components/docs/generated/docs-index.video-api-showcase.json +1 -1
  548. package/src/components/docs/generated/docs-index.video-docs-terminal.json +1 -1
  549. package/src/components/docs/generated/docs-index.video-marketing-clip.json +1 -1
  550. package/src/components/docs/generated/docs-index.voice-providers.json +1 -1
  551. package/src/components/docs/generated/docs-index.wealth-snapshot.json +1 -1
  552. package/src/components/docs/generated/docs-index.workflow-system.json +1 -1
  553. package/src/components/docs/generated/docs-index.workspace-cli.json +1 -1
  554. package/src/components/docs/guides/GuideNextjsOneEndpointPage.tsx +1 -1
  555. package/src/components/shell/WorkspaceShellRenderer.tsx +90 -0
  556. package/src/components/shell/index.ts +1 -0
@@ -1,203 +1,203 @@
1
1
  // src/components/docs/shared/StudioPrompt.tsx
2
2
  import Link from "@contractspec/lib.ui-link";
3
- import { jsxDEV } from "react/jsx-dev-runtime";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  function StudioPrompt({
5
5
  title = "Want to turn product signals into spec-first deliverables?",
6
6
  body = "ContractSpec Studio ingests evidence from meetings, support, analytics, docs, and code, then compiles decisions into spec diffs and task packs.",
7
7
  ctaLabel = "Try Studio",
8
8
  href = "https://www.contractspec.studio"
9
9
  }) {
10
- return /* @__PURE__ */ jsxDEV("div", {
10
+ return /* @__PURE__ */ jsxs("div", {
11
11
  className: "card-subtle space-y-3 p-6",
12
12
  children: [
13
- /* @__PURE__ */ jsxDEV("h3", {
13
+ /* @__PURE__ */ jsx("h3", {
14
14
  className: "text-lg font-semibold",
15
15
  children: title
16
- }, undefined, false, undefined, this),
17
- /* @__PURE__ */ jsxDEV("p", {
16
+ }),
17
+ /* @__PURE__ */ jsx("p", {
18
18
  className: "text-muted-foreground text-sm",
19
19
  children: body
20
- }, undefined, false, undefined, this),
21
- /* @__PURE__ */ jsxDEV(Link, {
20
+ }),
21
+ /* @__PURE__ */ jsx(Link, {
22
22
  href,
23
23
  className: "btn-primary",
24
24
  children: ctaLabel
25
- }, undefined, false, undefined, this)
25
+ })
26
26
  ]
27
- }, undefined, true, undefined, this);
27
+ });
28
28
  }
29
29
 
30
30
  // src/components/docs/guides/GuideCIDiffGatingPage.tsx
31
31
  import { CodeBlock } from "@contractspec/lib.design-system";
32
32
  import Link2 from "@contractspec/lib.ui-link";
33
33
  import { ChevronRight } from "lucide-react";
34
- import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
34
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
35
35
  function GuideCIDiffGatingPage() {
36
- return /* @__PURE__ */ jsxDEV2("div", {
36
+ return /* @__PURE__ */ jsxs2("div", {
37
37
  className: "space-y-8",
38
38
  children: [
39
- /* @__PURE__ */ jsxDEV2("div", {
39
+ /* @__PURE__ */ jsxs2("div", {
40
40
  className: "space-y-3",
41
41
  children: [
42
- /* @__PURE__ */ jsxDEV2("h1", {
42
+ /* @__PURE__ */ jsx2("h1", {
43
43
  className: "text-4xl font-bold",
44
44
  children: "CI gating with deterministic diffs"
45
- }, undefined, false, undefined, this),
46
- /* @__PURE__ */ jsxDEV2("p", {
45
+ }),
46
+ /* @__PURE__ */ jsx2("p", {
47
47
  className: "text-muted-foreground text-lg",
48
48
  children: "Add ContractSpec CI checks that validate specs, detect drift, and gate breaking changes before merge."
49
- }, undefined, false, undefined, this)
49
+ })
50
50
  ]
51
- }, undefined, true, undefined, this),
52
- /* @__PURE__ */ jsxDEV2("div", {
51
+ }),
52
+ /* @__PURE__ */ jsxs2("div", {
53
53
  className: "card-subtle space-y-4 p-6",
54
54
  children: [
55
- /* @__PURE__ */ jsxDEV2("h2", {
55
+ /* @__PURE__ */ jsx2("h2", {
56
56
  className: "text-2xl font-bold",
57
57
  children: "What you'll build"
58
- }, undefined, false, undefined, this),
59
- /* @__PURE__ */ jsxDEV2("ul", {
58
+ }),
59
+ /* @__PURE__ */ jsxs2("ul", {
60
60
  className: "text-muted-foreground space-y-2 text-sm",
61
61
  children: [
62
- /* @__PURE__ */ jsxDEV2("li", {
62
+ /* @__PURE__ */ jsx2("li", {
63
63
  children: "CI workflow running ContractSpec validation and drift checks."
64
- }, undefined, false, undefined, this),
65
- /* @__PURE__ */ jsxDEV2("li", {
64
+ }),
65
+ /* @__PURE__ */ jsx2("li", {
66
66
  children: "Machine-readable output for PR annotations."
67
- }, undefined, false, undefined, this),
68
- /* @__PURE__ */ jsxDEV2("li", {
67
+ }),
68
+ /* @__PURE__ */ jsx2("li", {
69
69
  children: "Deterministic contract diffs in review."
70
- }, undefined, false, undefined, this)
70
+ })
71
71
  ]
72
- }, undefined, true, undefined, this)
72
+ })
73
73
  ]
74
- }, undefined, true, undefined, this),
75
- /* @__PURE__ */ jsxDEV2("div", {
74
+ }),
75
+ /* @__PURE__ */ jsxs2("div", {
76
76
  className: "space-y-6",
77
77
  children: [
78
- /* @__PURE__ */ jsxDEV2("div", {
78
+ /* @__PURE__ */ jsxs2("div", {
79
79
  className: "space-y-3",
80
80
  children: [
81
- /* @__PURE__ */ jsxDEV2("h2", {
81
+ /* @__PURE__ */ jsx2("h2", {
82
82
  className: "text-2xl font-bold",
83
83
  children: "1) Add the CI workflow"
84
- }, undefined, false, undefined, this),
85
- /* @__PURE__ */ jsxDEV2("p", {
84
+ }),
85
+ /* @__PURE__ */ jsx2("p", {
86
86
  className: "text-muted-foreground text-sm",
87
87
  children: "Copy the template from the CLI package."
88
- }, undefined, false, undefined, this),
89
- /* @__PURE__ */ jsxDEV2(CodeBlock, {
88
+ }),
89
+ /* @__PURE__ */ jsx2(CodeBlock, {
90
90
  language: "bash",
91
91
  filename: "ci-copy",
92
92
  code: `cp node_modules/@contractspec/app.cli-contractspec/templates/github-action.yml .github/workflows/contractspec.yml`
93
- }, undefined, false, undefined, this),
94
- /* @__PURE__ */ jsxDEV2("p", {
93
+ }),
94
+ /* @__PURE__ */ jsxs2("p", {
95
95
  className: "text-muted-foreground text-sm",
96
96
  children: [
97
97
  "Expected output: new workflow file in ",
98
- /* @__PURE__ */ jsxDEV2("code", {
98
+ /* @__PURE__ */ jsx2("code", {
99
99
  children: ".github/workflows"
100
- }, undefined, false, undefined, this),
100
+ }),
101
101
  "."
102
102
  ]
103
- }, undefined, true, undefined, this)
103
+ })
104
104
  ]
105
- }, undefined, true, undefined, this),
106
- /* @__PURE__ */ jsxDEV2("div", {
105
+ }),
106
+ /* @__PURE__ */ jsxs2("div", {
107
107
  className: "space-y-3",
108
108
  children: [
109
- /* @__PURE__ */ jsxDEV2("h2", {
109
+ /* @__PURE__ */ jsx2("h2", {
110
110
  className: "text-2xl font-bold",
111
111
  children: "2) Run CI locally"
112
- }, undefined, false, undefined, this),
113
- /* @__PURE__ */ jsxDEV2(CodeBlock, {
112
+ }),
113
+ /* @__PURE__ */ jsx2(CodeBlock, {
114
114
  language: "bash",
115
115
  filename: "ci-local",
116
116
  code: `contractspec ci --format json --check-drift`
117
- }, undefined, false, undefined, this),
118
- /* @__PURE__ */ jsxDEV2("p", {
117
+ }),
118
+ /* @__PURE__ */ jsx2("p", {
119
119
  className: "text-muted-foreground text-sm",
120
120
  children: "Expected output: JSON summary including pass/fail counts and drift status (if configured)."
121
- }, undefined, false, undefined, this)
121
+ })
122
122
  ]
123
- }, undefined, true, undefined, this),
124
- /* @__PURE__ */ jsxDEV2("div", {
123
+ }),
124
+ /* @__PURE__ */ jsxs2("div", {
125
125
  className: "space-y-3",
126
126
  children: [
127
- /* @__PURE__ */ jsxDEV2("h2", {
127
+ /* @__PURE__ */ jsx2("h2", {
128
128
  className: "text-2xl font-bold",
129
129
  children: "3) Add a diff check"
130
- }, undefined, false, undefined, this),
131
- /* @__PURE__ */ jsxDEV2("p", {
130
+ }),
131
+ /* @__PURE__ */ jsx2("p", {
132
132
  className: "text-muted-foreground text-sm",
133
133
  children: "Use the diff command to inspect breaking changes in PRs."
134
- }, undefined, false, undefined, this),
135
- /* @__PURE__ */ jsxDEV2(CodeBlock, {
134
+ }),
135
+ /* @__PURE__ */ jsx2(CodeBlock, {
136
136
  language: "bash",
137
137
  filename: "ci-diff",
138
138
  code: `contractspec diff src/contracts/spec-v1.ts src/contracts/spec-v2.ts --breaking`
139
- }, undefined, false, undefined, this),
140
- /* @__PURE__ */ jsxDEV2("p", {
139
+ }),
140
+ /* @__PURE__ */ jsx2("p", {
141
141
  className: "text-muted-foreground text-sm",
142
142
  children: "Expected output: deterministic diff with breaking change hints."
143
- }, undefined, false, undefined, this)
143
+ })
144
144
  ]
145
- }, undefined, true, undefined, this),
146
- /* @__PURE__ */ jsxDEV2("div", {
145
+ }),
146
+ /* @__PURE__ */ jsxs2("div", {
147
147
  className: "card-subtle space-y-3 p-6",
148
148
  children: [
149
- /* @__PURE__ */ jsxDEV2("h3", {
149
+ /* @__PURE__ */ jsx2("h3", {
150
150
  className: "text-lg font-semibold",
151
151
  children: "Example package"
152
- }, undefined, false, undefined, this),
153
- /* @__PURE__ */ jsxDEV2("p", {
152
+ }),
153
+ /* @__PURE__ */ jsx2("p", {
154
154
  className: "text-muted-foreground text-sm",
155
155
  children: "The CRM pipeline example is already wired in the quickstart smoke test. Use it as a CI-ready template."
156
- }, undefined, false, undefined, this),
157
- /* @__PURE__ */ jsxDEV2(CodeBlock, {
156
+ }),
157
+ /* @__PURE__ */ jsx2(CodeBlock, {
158
158
  language: "bash",
159
159
  filename: "crm-ci",
160
160
  code: `cd packages/examples/crm-pipeline
161
161
  bun run build
162
162
  bun run validate`
163
- }, undefined, false, undefined, this)
163
+ })
164
164
  ]
165
- }, undefined, true, undefined, this),
166
- /* @__PURE__ */ jsxDEV2(StudioPrompt, {
165
+ }),
166
+ /* @__PURE__ */ jsx2(StudioPrompt, {
167
167
  title: "Need continuous checks tied to outcomes?",
168
168
  body: "Studio closes the loop with post-change verification and learning dividends that improve future decisions."
169
- }, undefined, false, undefined, this)
169
+ })
170
170
  ]
171
- }, undefined, true, undefined, this),
172
- /* @__PURE__ */ jsxDEV2("div", {
171
+ }),
172
+ /* @__PURE__ */ jsxs2("div", {
173
173
  className: "flex items-center gap-4 pt-4",
174
174
  children: [
175
- /* @__PURE__ */ jsxDEV2(Link2, {
175
+ /* @__PURE__ */ jsxs2(Link2, {
176
176
  href: "/docs/guides",
177
177
  className: "btn-primary",
178
178
  children: [
179
179
  "Back to guides ",
180
- /* @__PURE__ */ jsxDEV2(ChevronRight, {
180
+ /* @__PURE__ */ jsx2(ChevronRight, {
181
181
  size: 16
182
- }, undefined, false, undefined, this)
182
+ })
183
183
  ]
184
- }, undefined, true, undefined, this),
185
- /* @__PURE__ */ jsxDEV2(Link2, {
184
+ }),
185
+ /* @__PURE__ */ jsx2(Link2, {
186
186
  href: "/docs",
187
187
  className: "btn-ghost",
188
188
  children: "Docs home"
189
- }, undefined, false, undefined, this)
189
+ })
190
190
  ]
191
- }, undefined, true, undefined, this)
191
+ })
192
192
  ]
193
- }, undefined, true, undefined, this);
193
+ });
194
194
  }
195
195
 
196
196
  // src/components/docs/guides/GuideContractTypesPage.tsx
197
197
  import { CodeBlock as CodeBlock2 } from "@contractspec/lib.design-system";
198
198
  import Link3 from "@contractspec/lib.ui-link";
199
199
  import { ChevronRight as ChevronRight2, Layers, Zap, Shield, Globe } from "lucide-react";
200
- import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
200
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
201
201
  var contractTypes = [
202
202
  {
203
203
  name: "Operations",
@@ -229,75 +229,75 @@ var contractTypes = [
229
229
  }
230
230
  ];
231
231
  function GuideContractTypesPage() {
232
- return /* @__PURE__ */ jsxDEV3("div", {
232
+ return /* @__PURE__ */ jsxs3("div", {
233
233
  className: "space-y-8",
234
234
  children: [
235
- /* @__PURE__ */ jsxDEV3("div", {
235
+ /* @__PURE__ */ jsxs3("div", {
236
236
  className: "space-y-3",
237
237
  children: [
238
- /* @__PURE__ */ jsxDEV3("h1", {
238
+ /* @__PURE__ */ jsx3("h1", {
239
239
  className: "text-4xl font-bold",
240
240
  children: "Contract Types Overview"
241
- }, undefined, false, undefined, this),
242
- /* @__PURE__ */ jsxDEV3("p", {
241
+ }),
242
+ /* @__PURE__ */ jsx3("p", {
243
243
  className: "text-muted-foreground text-lg",
244
244
  children: "Learn about the different contract types in ContractSpec and when to use each one for spec-first development."
245
- }, undefined, false, undefined, this)
245
+ })
246
246
  ]
247
- }, undefined, true, undefined, this),
248
- /* @__PURE__ */ jsxDEV3("div", {
247
+ }),
248
+ /* @__PURE__ */ jsxs3("div", {
249
249
  className: "card-subtle space-y-4 p-6",
250
250
  children: [
251
- /* @__PURE__ */ jsxDEV3("h2", {
251
+ /* @__PURE__ */ jsx3("h2", {
252
252
  className: "text-2xl font-bold",
253
253
  children: "Core Contract Types"
254
- }, undefined, false, undefined, this),
255
- /* @__PURE__ */ jsxDEV3("div", {
254
+ }),
255
+ /* @__PURE__ */ jsx3("div", {
256
256
  className: "grid gap-3 md:grid-cols-2",
257
- children: contractTypes.map((type) => /* @__PURE__ */ jsxDEV3("div", {
257
+ children: contractTypes.map((type) => /* @__PURE__ */ jsxs3("div", {
258
258
  className: "flex items-start gap-3 rounded-lg border border-white/10 p-4",
259
259
  children: [
260
- /* @__PURE__ */ jsxDEV3(type.icon, {
260
+ /* @__PURE__ */ jsx3(type.icon, {
261
261
  className: type.color,
262
262
  size: 20
263
- }, undefined, false, undefined, this),
264
- /* @__PURE__ */ jsxDEV3("div", {
263
+ }),
264
+ /* @__PURE__ */ jsxs3("div", {
265
265
  className: "space-y-1",
266
266
  children: [
267
- /* @__PURE__ */ jsxDEV3("h3", {
267
+ /* @__PURE__ */ jsx3("h3", {
268
268
  className: "font-semibold",
269
269
  children: type.name
270
- }, undefined, false, undefined, this),
271
- /* @__PURE__ */ jsxDEV3("p", {
270
+ }),
271
+ /* @__PURE__ */ jsx3("p", {
272
272
  className: "text-muted-foreground text-xs",
273
273
  children: type.description
274
- }, undefined, false, undefined, this),
275
- /* @__PURE__ */ jsxDEV3("code", {
274
+ }),
275
+ /* @__PURE__ */ jsx3("code", {
276
276
  className: "text-xs text-violet-400",
277
277
  children: type.factory
278
- }, undefined, false, undefined, this)
278
+ })
279
279
  ]
280
- }, undefined, true, undefined, this)
280
+ })
281
281
  ]
282
- }, type.name, true, undefined, this))
283
- }, undefined, false, undefined, this)
282
+ }, type.name))
283
+ })
284
284
  ]
285
- }, undefined, true, undefined, this),
286
- /* @__PURE__ */ jsxDEV3("div", {
285
+ }),
286
+ /* @__PURE__ */ jsxs3("div", {
287
287
  className: "space-y-6",
288
288
  children: [
289
- /* @__PURE__ */ jsxDEV3("div", {
289
+ /* @__PURE__ */ jsxs3("div", {
290
290
  className: "space-y-3",
291
291
  children: [
292
- /* @__PURE__ */ jsxDEV3("h2", {
292
+ /* @__PURE__ */ jsx3("h2", {
293
293
  className: "text-2xl font-bold",
294
294
  children: "1) Operations (Commands & Queries)"
295
- }, undefined, false, undefined, this),
296
- /* @__PURE__ */ jsxDEV3("p", {
295
+ }),
296
+ /* @__PURE__ */ jsx3("p", {
297
297
  className: "text-muted-foreground text-sm",
298
298
  children: "Operations are the backbone of your API. Commands mutate state, queries read state. Both have typed input/output schemas."
299
- }, undefined, false, undefined, this),
300
- /* @__PURE__ */ jsxDEV3(CodeBlock2, {
299
+ }),
300
+ /* @__PURE__ */ jsx3(CodeBlock2, {
301
301
  language: "typescript",
302
302
  filename: "src/contracts/user.operation.ts",
303
303
  code: `import { defineCommand, defineQuery } from "@contractspec/lib.contracts-spec";
@@ -367,21 +367,21 @@ export const GetUserQuery = defineQuery({
367
367
  },
368
368
  policy: { auth: "user" },
369
369
  });`
370
- }, undefined, false, undefined, this)
370
+ })
371
371
  ]
372
- }, undefined, true, undefined, this),
373
- /* @__PURE__ */ jsxDEV3("div", {
372
+ }),
373
+ /* @__PURE__ */ jsxs3("div", {
374
374
  className: "space-y-3",
375
375
  children: [
376
- /* @__PURE__ */ jsxDEV3("h2", {
376
+ /* @__PURE__ */ jsx3("h2", {
377
377
  className: "text-2xl font-bold",
378
378
  children: "2) Events"
379
- }, undefined, false, undefined, this),
380
- /* @__PURE__ */ jsxDEV3("p", {
379
+ }),
380
+ /* @__PURE__ */ jsx3("p", {
381
381
  className: "text-muted-foreground text-sm",
382
382
  children: "Events represent domain occurrences. They have typed payloads with PII field marking for compliance."
383
- }, undefined, false, undefined, this),
384
- /* @__PURE__ */ jsxDEV3(CodeBlock2, {
383
+ }),
384
+ /* @__PURE__ */ jsx3(CodeBlock2, {
385
385
  language: "typescript",
386
386
  filename: "src/contracts/user.event.ts",
387
387
  code: `import { defineEvent } from "@contractspec/lib.contracts-spec";
@@ -426,21 +426,21 @@ export const UserDeletedEvent = defineEvent({
426
426
  },
427
427
  }),
428
428
  });`
429
- }, undefined, false, undefined, this)
429
+ })
430
430
  ]
431
- }, undefined, true, undefined, this),
432
- /* @__PURE__ */ jsxDEV3("div", {
431
+ }),
432
+ /* @__PURE__ */ jsxs3("div", {
433
433
  className: "space-y-3",
434
434
  children: [
435
- /* @__PURE__ */ jsxDEV3("h2", {
435
+ /* @__PURE__ */ jsx3("h2", {
436
436
  className: "text-2xl font-bold",
437
437
  children: "3) Capabilities"
438
- }, undefined, false, undefined, this),
439
- /* @__PURE__ */ jsxDEV3("p", {
438
+ }),
439
+ /* @__PURE__ */ jsx3("p", {
440
440
  className: "text-muted-foreground text-sm",
441
441
  children: "Capabilities group related operations, events, and presentations. They define feature boundaries and dependencies."
442
- }, undefined, false, undefined, this),
443
- /* @__PURE__ */ jsxDEV3(CodeBlock2, {
442
+ }),
443
+ /* @__PURE__ */ jsx3(CodeBlock2, {
444
444
  language: "typescript",
445
445
  filename: "src/contracts/user-management.capability.ts",
446
446
  code: `import { defineCapability } from "@contractspec/lib.contracts-spec";
@@ -487,21 +487,21 @@ export const AdminUserCapability = defineCapability({
487
487
  { surface: "operation", key: "user.impersonate", version: "1.0.0" },
488
488
  ],
489
489
  });`
490
- }, undefined, false, undefined, this)
490
+ })
491
491
  ]
492
- }, undefined, true, undefined, this),
493
- /* @__PURE__ */ jsxDEV3("div", {
492
+ }),
493
+ /* @__PURE__ */ jsxs3("div", {
494
494
  className: "space-y-3",
495
495
  children: [
496
- /* @__PURE__ */ jsxDEV3("h2", {
496
+ /* @__PURE__ */ jsx3("h2", {
497
497
  className: "text-2xl font-bold",
498
498
  children: "4) Presentations"
499
- }, undefined, false, undefined, this),
500
- /* @__PURE__ */ jsxDEV3("p", {
499
+ }),
500
+ /* @__PURE__ */ jsx3("p", {
501
501
  className: "text-muted-foreground text-sm",
502
502
  children: "Presentations define UI specifications. They link to capabilities and specify how data should be displayed."
503
- }, undefined, false, undefined, this),
504
- /* @__PURE__ */ jsxDEV3(CodeBlock2, {
503
+ }),
504
+ /* @__PURE__ */ jsx3(CodeBlock2, {
505
505
  language: "typescript",
506
506
  filename: "src/contracts/user-list.presentation.ts",
507
507
  code: `import { definePresentation } from "@contractspec/lib.contracts-spec";
@@ -527,175 +527,175 @@ export const UserListPresentation = definePresentation({
527
527
  search: { fields: ["name", "email"] },
528
528
  },
529
529
  });`
530
- }, undefined, false, undefined, this)
530
+ })
531
531
  ]
532
- }, undefined, true, undefined, this),
533
- /* @__PURE__ */ jsxDEV3("div", {
532
+ }),
533
+ /* @__PURE__ */ jsxs3("div", {
534
534
  className: "space-y-3",
535
535
  children: [
536
- /* @__PURE__ */ jsxDEV3("h2", {
536
+ /* @__PURE__ */ jsx3("h2", {
537
537
  className: "text-2xl font-bold",
538
538
  children: "5) Additional Contract Types"
539
- }, undefined, false, undefined, this),
540
- /* @__PURE__ */ jsxDEV3("p", {
539
+ }),
540
+ /* @__PURE__ */ jsx3("p", {
541
541
  className: "text-muted-foreground text-sm",
542
542
  children: "ContractSpec provides specialized contracts for different concerns:"
543
- }, undefined, false, undefined, this),
544
- /* @__PURE__ */ jsxDEV3("div", {
543
+ }),
544
+ /* @__PURE__ */ jsxs3("div", {
545
545
  className: "grid gap-4 md:grid-cols-2",
546
546
  children: [
547
- /* @__PURE__ */ jsxDEV3("div", {
547
+ /* @__PURE__ */ jsxs3("div", {
548
548
  className: "card-subtle space-y-2 p-4",
549
549
  children: [
550
- /* @__PURE__ */ jsxDEV3("h3", {
550
+ /* @__PURE__ */ jsx3("h3", {
551
551
  className: "font-semibold",
552
552
  children: "Policy"
553
- }, undefined, false, undefined, this),
554
- /* @__PURE__ */ jsxDEV3("code", {
553
+ }),
554
+ /* @__PURE__ */ jsx3("code", {
555
555
  className: "text-xs text-violet-400",
556
556
  children: "definePolicy"
557
- }, undefined, false, undefined, this),
558
- /* @__PURE__ */ jsxDEV3("p", {
557
+ }),
558
+ /* @__PURE__ */ jsx3("p", {
559
559
  className: "text-muted-foreground text-xs",
560
560
  children: "RBAC/ABAC rules, rate limits, and access control."
561
- }, undefined, false, undefined, this)
561
+ })
562
562
  ]
563
- }, undefined, true, undefined, this),
564
- /* @__PURE__ */ jsxDEV3("div", {
563
+ }),
564
+ /* @__PURE__ */ jsxs3("div", {
565
565
  className: "card-subtle space-y-2 p-4",
566
566
  children: [
567
- /* @__PURE__ */ jsxDEV3("h3", {
567
+ /* @__PURE__ */ jsx3("h3", {
568
568
  className: "font-semibold",
569
569
  children: "Workflow"
570
- }, undefined, false, undefined, this),
571
- /* @__PURE__ */ jsxDEV3("code", {
570
+ }),
571
+ /* @__PURE__ */ jsx3("code", {
572
572
  className: "text-xs text-violet-400",
573
573
  children: "defineWorkflow"
574
- }, undefined, false, undefined, this),
575
- /* @__PURE__ */ jsxDEV3("p", {
574
+ }),
575
+ /* @__PURE__ */ jsx3("p", {
576
576
  className: "text-muted-foreground text-xs",
577
577
  children: "Multi-step processes with states, transitions, and SLAs."
578
- }, undefined, false, undefined, this)
578
+ })
579
579
  ]
580
- }, undefined, true, undefined, this),
581
- /* @__PURE__ */ jsxDEV3("div", {
580
+ }),
581
+ /* @__PURE__ */ jsxs3("div", {
582
582
  className: "card-subtle space-y-2 p-4",
583
583
  children: [
584
- /* @__PURE__ */ jsxDEV3("h3", {
584
+ /* @__PURE__ */ jsx3("h3", {
585
585
  className: "font-semibold",
586
586
  children: "Translation"
587
- }, undefined, false, undefined, this),
588
- /* @__PURE__ */ jsxDEV3("code", {
587
+ }),
588
+ /* @__PURE__ */ jsx3("code", {
589
589
  className: "text-xs text-violet-400",
590
590
  children: "defineTranslation"
591
- }, undefined, false, undefined, this),
592
- /* @__PURE__ */ jsxDEV3("p", {
591
+ }),
592
+ /* @__PURE__ */ jsx3("p", {
593
593
  className: "text-muted-foreground text-xs",
594
594
  children: "i18n messages with ICU format and locale fallbacks."
595
- }, undefined, false, undefined, this)
595
+ })
596
596
  ]
597
- }, undefined, true, undefined, this),
598
- /* @__PURE__ */ jsxDEV3("div", {
597
+ }),
598
+ /* @__PURE__ */ jsxs3("div", {
599
599
  className: "card-subtle space-y-2 p-4",
600
600
  children: [
601
- /* @__PURE__ */ jsxDEV3("h3", {
601
+ /* @__PURE__ */ jsx3("h3", {
602
602
  className: "font-semibold",
603
603
  children: "Integration"
604
- }, undefined, false, undefined, this),
605
- /* @__PURE__ */ jsxDEV3("code", {
604
+ }),
605
+ /* @__PURE__ */ jsx3("code", {
606
606
  className: "text-xs text-violet-400",
607
607
  children: "defineIntegration"
608
- }, undefined, false, undefined, this),
609
- /* @__PURE__ */ jsxDEV3("p", {
608
+ }),
609
+ /* @__PURE__ */ jsx3("p", {
610
610
  className: "text-muted-foreground text-xs",
611
611
  children: "External service connections and API adapters."
612
- }, undefined, false, undefined, this)
612
+ })
613
613
  ]
614
- }, undefined, true, undefined, this),
615
- /* @__PURE__ */ jsxDEV3("div", {
614
+ }),
615
+ /* @__PURE__ */ jsxs3("div", {
616
616
  className: "card-subtle space-y-2 p-4",
617
617
  children: [
618
- /* @__PURE__ */ jsxDEV3("h3", {
618
+ /* @__PURE__ */ jsx3("h3", {
619
619
  className: "font-semibold",
620
620
  children: "Form"
621
- }, undefined, false, undefined, this),
622
- /* @__PURE__ */ jsxDEV3("code", {
621
+ }),
622
+ /* @__PURE__ */ jsx3("code", {
623
623
  className: "text-xs text-violet-400",
624
624
  children: "defineFormSpec"
625
- }, undefined, false, undefined, this),
626
- /* @__PURE__ */ jsxDEV3("p", {
625
+ }),
626
+ /* @__PURE__ */ jsx3("p", {
627
627
  className: "text-muted-foreground text-xs",
628
628
  children: "Form definitions with fields, validation, and layouts."
629
- }, undefined, false, undefined, this)
629
+ })
630
630
  ]
631
- }, undefined, true, undefined, this),
632
- /* @__PURE__ */ jsxDEV3("div", {
631
+ }),
632
+ /* @__PURE__ */ jsxs3("div", {
633
633
  className: "card-subtle space-y-2 p-4",
634
634
  children: [
635
- /* @__PURE__ */ jsxDEV3("h3", {
635
+ /* @__PURE__ */ jsx3("h3", {
636
636
  className: "font-semibold",
637
637
  children: "Data View"
638
- }, undefined, false, undefined, this),
639
- /* @__PURE__ */ jsxDEV3("code", {
638
+ }),
639
+ /* @__PURE__ */ jsx3("code", {
640
640
  className: "text-xs text-violet-400",
641
641
  children: "defineDataView"
642
- }, undefined, false, undefined, this),
643
- /* @__PURE__ */ jsxDEV3("p", {
642
+ }),
643
+ /* @__PURE__ */ jsx3("p", {
644
644
  className: "text-muted-foreground text-xs",
645
645
  children: "Read-only data projections and aggregations."
646
- }, undefined, false, undefined, this)
646
+ })
647
647
  ]
648
- }, undefined, true, undefined, this),
649
- /* @__PURE__ */ jsxDEV3("div", {
648
+ }),
649
+ /* @__PURE__ */ jsxs3("div", {
650
650
  className: "card-subtle space-y-2 p-4",
651
651
  children: [
652
- /* @__PURE__ */ jsxDEV3("h3", {
652
+ /* @__PURE__ */ jsx3("h3", {
653
653
  className: "font-semibold",
654
654
  children: "Feature"
655
- }, undefined, false, undefined, this),
656
- /* @__PURE__ */ jsxDEV3("code", {
655
+ }),
656
+ /* @__PURE__ */ jsx3("code", {
657
657
  className: "text-xs text-violet-400",
658
658
  children: "defineFeature"
659
- }, undefined, false, undefined, this),
660
- /* @__PURE__ */ jsxDEV3("p", {
659
+ }),
660
+ /* @__PURE__ */ jsx3("p", {
661
661
  className: "text-muted-foreground text-xs",
662
662
  children: "Feature flags and progressive rollout configurations."
663
- }, undefined, false, undefined, this)
663
+ })
664
664
  ]
665
- }, undefined, true, undefined, this),
666
- /* @__PURE__ */ jsxDEV3("div", {
665
+ }),
666
+ /* @__PURE__ */ jsxs3("div", {
667
667
  className: "card-subtle space-y-2 p-4",
668
668
  children: [
669
- /* @__PURE__ */ jsxDEV3("h3", {
669
+ /* @__PURE__ */ jsx3("h3", {
670
670
  className: "font-semibold",
671
671
  children: "Test"
672
- }, undefined, false, undefined, this),
673
- /* @__PURE__ */ jsxDEV3("code", {
672
+ }),
673
+ /* @__PURE__ */ jsx3("code", {
674
674
  className: "text-xs text-violet-400",
675
675
  children: "defineTestSpec"
676
- }, undefined, false, undefined, this),
677
- /* @__PURE__ */ jsxDEV3("p", {
676
+ }),
677
+ /* @__PURE__ */ jsx3("p", {
678
678
  className: "text-muted-foreground text-xs",
679
679
  children: "Contract-driven test scenarios and fixtures."
680
- }, undefined, false, undefined, this)
680
+ })
681
681
  ]
682
- }, undefined, true, undefined, this)
682
+ })
683
683
  ]
684
- }, undefined, true, undefined, this)
684
+ })
685
685
  ]
686
- }, undefined, true, undefined, this),
687
- /* @__PURE__ */ jsxDEV3("div", {
686
+ }),
687
+ /* @__PURE__ */ jsxs3("div", {
688
688
  className: "space-y-3",
689
689
  children: [
690
- /* @__PURE__ */ jsxDEV3("h2", {
690
+ /* @__PURE__ */ jsx3("h2", {
691
691
  className: "text-2xl font-bold",
692
692
  children: "6) Registering Contracts"
693
- }, undefined, false, undefined, this),
694
- /* @__PURE__ */ jsxDEV3("p", {
693
+ }),
694
+ /* @__PURE__ */ jsx3("p", {
695
695
  className: "text-muted-foreground text-sm",
696
696
  children: "Each contract type has a registry for lookup and validation."
697
- }, undefined, false, undefined, this),
698
- /* @__PURE__ */ jsxDEV3(CodeBlock2, {
697
+ }),
698
+ /* @__PURE__ */ jsx3(CodeBlock2, {
699
699
  language: "typescript",
700
700
  filename: "src/contracts/registry.ts",
701
701
  code: `import {
@@ -729,287 +729,287 @@ installOp(operationRegistry, GetUserQuery, async (input) => {
729
729
  // Register events and capabilities
730
730
  eventRegistry.register(UserCreatedEvent);
731
731
  capabilityRegistry.register(UserManagementCapability);`
732
- }, undefined, false, undefined, this)
732
+ })
733
733
  ]
734
- }, undefined, true, undefined, this),
735
- /* @__PURE__ */ jsxDEV3("div", {
734
+ }),
735
+ /* @__PURE__ */ jsxs3("div", {
736
736
  className: "card-subtle space-y-3 p-6",
737
737
  children: [
738
- /* @__PURE__ */ jsxDEV3("h3", {
738
+ /* @__PURE__ */ jsx3("h3", {
739
739
  className: "text-lg font-semibold",
740
740
  children: "Contract Type Decision Guide"
741
- }, undefined, false, undefined, this),
742
- /* @__PURE__ */ jsxDEV3("table", {
741
+ }),
742
+ /* @__PURE__ */ jsxs3("table", {
743
743
  className: "w-full text-sm",
744
744
  children: [
745
- /* @__PURE__ */ jsxDEV3("thead", {
746
- children: /* @__PURE__ */ jsxDEV3("tr", {
745
+ /* @__PURE__ */ jsx3("thead", {
746
+ children: /* @__PURE__ */ jsxs3("tr", {
747
747
  className: "border-b border-white/10",
748
748
  children: [
749
- /* @__PURE__ */ jsxDEV3("th", {
749
+ /* @__PURE__ */ jsx3("th", {
750
750
  className: "py-2 text-left",
751
751
  children: "When you need..."
752
- }, undefined, false, undefined, this),
753
- /* @__PURE__ */ jsxDEV3("th", {
752
+ }),
753
+ /* @__PURE__ */ jsx3("th", {
754
754
  className: "py-2 text-left",
755
755
  children: "Use this contract"
756
- }, undefined, false, undefined, this)
756
+ })
757
757
  ]
758
- }, undefined, true, undefined, this)
759
- }, undefined, false, undefined, this),
760
- /* @__PURE__ */ jsxDEV3("tbody", {
758
+ })
759
+ }),
760
+ /* @__PURE__ */ jsxs3("tbody", {
761
761
  className: "text-muted-foreground",
762
762
  children: [
763
- /* @__PURE__ */ jsxDEV3("tr", {
763
+ /* @__PURE__ */ jsxs3("tr", {
764
764
  className: "border-b border-white/5",
765
765
  children: [
766
- /* @__PURE__ */ jsxDEV3("td", {
766
+ /* @__PURE__ */ jsx3("td", {
767
767
  className: "py-2",
768
768
  children: "An API endpoint that changes data"
769
- }, undefined, false, undefined, this),
770
- /* @__PURE__ */ jsxDEV3("td", {
769
+ }),
770
+ /* @__PURE__ */ jsx3("td", {
771
771
  className: "py-2",
772
- children: /* @__PURE__ */ jsxDEV3("code", {
772
+ children: /* @__PURE__ */ jsx3("code", {
773
773
  children: "defineCommand"
774
- }, undefined, false, undefined, this)
775
- }, undefined, false, undefined, this)
774
+ })
775
+ })
776
776
  ]
777
- }, undefined, true, undefined, this),
778
- /* @__PURE__ */ jsxDEV3("tr", {
777
+ }),
778
+ /* @__PURE__ */ jsxs3("tr", {
779
779
  className: "border-b border-white/5",
780
780
  children: [
781
- /* @__PURE__ */ jsxDEV3("td", {
781
+ /* @__PURE__ */ jsx3("td", {
782
782
  className: "py-2",
783
783
  children: "An API endpoint that reads data"
784
- }, undefined, false, undefined, this),
785
- /* @__PURE__ */ jsxDEV3("td", {
784
+ }),
785
+ /* @__PURE__ */ jsx3("td", {
786
786
  className: "py-2",
787
- children: /* @__PURE__ */ jsxDEV3("code", {
787
+ children: /* @__PURE__ */ jsx3("code", {
788
788
  children: "defineQuery"
789
- }, undefined, false, undefined, this)
790
- }, undefined, false, undefined, this)
789
+ })
790
+ })
791
791
  ]
792
- }, undefined, true, undefined, this),
793
- /* @__PURE__ */ jsxDEV3("tr", {
792
+ }),
793
+ /* @__PURE__ */ jsxs3("tr", {
794
794
  className: "border-b border-white/5",
795
795
  children: [
796
- /* @__PURE__ */ jsxDEV3("td", {
796
+ /* @__PURE__ */ jsx3("td", {
797
797
  className: "py-2",
798
798
  children: "Async notification of something that happened"
799
- }, undefined, false, undefined, this),
800
- /* @__PURE__ */ jsxDEV3("td", {
799
+ }),
800
+ /* @__PURE__ */ jsx3("td", {
801
801
  className: "py-2",
802
- children: /* @__PURE__ */ jsxDEV3("code", {
802
+ children: /* @__PURE__ */ jsx3("code", {
803
803
  children: "defineEvent"
804
- }, undefined, false, undefined, this)
805
- }, undefined, false, undefined, this)
804
+ })
805
+ })
806
806
  ]
807
- }, undefined, true, undefined, this),
808
- /* @__PURE__ */ jsxDEV3("tr", {
807
+ }),
808
+ /* @__PURE__ */ jsxs3("tr", {
809
809
  className: "border-b border-white/5",
810
810
  children: [
811
- /* @__PURE__ */ jsxDEV3("td", {
811
+ /* @__PURE__ */ jsx3("td", {
812
812
  className: "py-2",
813
813
  children: "Group related specs under a feature"
814
- }, undefined, false, undefined, this),
815
- /* @__PURE__ */ jsxDEV3("td", {
814
+ }),
815
+ /* @__PURE__ */ jsx3("td", {
816
816
  className: "py-2",
817
- children: /* @__PURE__ */ jsxDEV3("code", {
817
+ children: /* @__PURE__ */ jsx3("code", {
818
818
  children: "defineCapability"
819
- }, undefined, false, undefined, this)
820
- }, undefined, false, undefined, this)
819
+ })
820
+ })
821
821
  ]
822
- }, undefined, true, undefined, this),
823
- /* @__PURE__ */ jsxDEV3("tr", {
822
+ }),
823
+ /* @__PURE__ */ jsxs3("tr", {
824
824
  className: "border-b border-white/5",
825
825
  children: [
826
- /* @__PURE__ */ jsxDEV3("td", {
826
+ /* @__PURE__ */ jsx3("td", {
827
827
  className: "py-2",
828
828
  children: "Define UI rendering specifications"
829
- }, undefined, false, undefined, this),
830
- /* @__PURE__ */ jsxDEV3("td", {
829
+ }),
830
+ /* @__PURE__ */ jsx3("td", {
831
831
  className: "py-2",
832
- children: /* @__PURE__ */ jsxDEV3("code", {
832
+ children: /* @__PURE__ */ jsx3("code", {
833
833
  children: "definePresentation"
834
- }, undefined, false, undefined, this)
835
- }, undefined, false, undefined, this)
834
+ })
835
+ })
836
836
  ]
837
- }, undefined, true, undefined, this),
838
- /* @__PURE__ */ jsxDEV3("tr", {
837
+ }),
838
+ /* @__PURE__ */ jsxs3("tr", {
839
839
  className: "border-b border-white/5",
840
840
  children: [
841
- /* @__PURE__ */ jsxDEV3("td", {
841
+ /* @__PURE__ */ jsx3("td", {
842
842
  className: "py-2",
843
843
  children: "Access control and rate limiting"
844
- }, undefined, false, undefined, this),
845
- /* @__PURE__ */ jsxDEV3("td", {
844
+ }),
845
+ /* @__PURE__ */ jsx3("td", {
846
846
  className: "py-2",
847
- children: /* @__PURE__ */ jsxDEV3("code", {
847
+ children: /* @__PURE__ */ jsx3("code", {
848
848
  children: "definePolicy"
849
- }, undefined, false, undefined, this)
850
- }, undefined, false, undefined, this)
849
+ })
850
+ })
851
851
  ]
852
- }, undefined, true, undefined, this),
853
- /* @__PURE__ */ jsxDEV3("tr", {
852
+ }),
853
+ /* @__PURE__ */ jsxs3("tr", {
854
854
  children: [
855
- /* @__PURE__ */ jsxDEV3("td", {
855
+ /* @__PURE__ */ jsx3("td", {
856
856
  className: "py-2",
857
857
  children: "Multi-step business processes"
858
- }, undefined, false, undefined, this),
859
- /* @__PURE__ */ jsxDEV3("td", {
858
+ }),
859
+ /* @__PURE__ */ jsx3("td", {
860
860
  className: "py-2",
861
- children: /* @__PURE__ */ jsxDEV3("code", {
861
+ children: /* @__PURE__ */ jsx3("code", {
862
862
  children: "defineWorkflow"
863
- }, undefined, false, undefined, this)
864
- }, undefined, false, undefined, this)
863
+ })
864
+ })
865
865
  ]
866
- }, undefined, true, undefined, this)
866
+ })
867
867
  ]
868
- }, undefined, true, undefined, this)
868
+ })
869
869
  ]
870
- }, undefined, true, undefined, this)
870
+ })
871
871
  ]
872
- }, undefined, true, undefined, this),
873
- /* @__PURE__ */ jsxDEV3(StudioPrompt, {
872
+ }),
873
+ /* @__PURE__ */ jsx3(StudioPrompt, {
874
874
  title: "Need to decide which contract should change next?",
875
875
  body: "Studio uses evidence and focus constraints to generate decision briefs, patch intents, and execution-ready task packs."
876
- }, undefined, false, undefined, this)
876
+ })
877
877
  ]
878
- }, undefined, true, undefined, this),
879
- /* @__PURE__ */ jsxDEV3("div", {
878
+ }),
879
+ /* @__PURE__ */ jsxs3("div", {
880
880
  className: "flex items-center gap-4 pt-4",
881
881
  children: [
882
- /* @__PURE__ */ jsxDEV3(Link3, {
882
+ /* @__PURE__ */ jsxs3(Link3, {
883
883
  href: "/docs/guides/nextjs-one-endpoint",
884
884
  className: "btn-primary",
885
885
  children: [
886
886
  "Next: Add your first endpoint ",
887
- /* @__PURE__ */ jsxDEV3(ChevronRight2, {
887
+ /* @__PURE__ */ jsx3(ChevronRight2, {
888
888
  size: 16
889
- }, undefined, false, undefined, this)
889
+ })
890
890
  ]
891
- }, undefined, true, undefined, this),
892
- /* @__PURE__ */ jsxDEV3(Link3, {
891
+ }),
892
+ /* @__PURE__ */ jsx3(Link3, {
893
893
  href: "/docs/guides",
894
894
  className: "btn-ghost",
895
895
  children: "Back to guides"
896
- }, undefined, false, undefined, this)
896
+ })
897
897
  ]
898
- }, undefined, true, undefined, this)
898
+ })
899
899
  ]
900
- }, undefined, true, undefined, this);
900
+ });
901
901
  }
902
902
 
903
903
  // src/components/docs/guides/GuideDocsPipelinePage.tsx
904
904
  import { CodeBlock as CodeBlock3 } from "@contractspec/lib.design-system";
905
905
  import Link4 from "@contractspec/lib.ui-link";
906
906
  import { ChevronRight as ChevronRight3 } from "lucide-react";
907
- import { jsxDEV as jsxDEV4 } from "react/jsx-dev-runtime";
907
+ import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
908
908
  function GuideDocsPipelinePage() {
909
- return /* @__PURE__ */ jsxDEV4("div", {
909
+ return /* @__PURE__ */ jsxs4("div", {
910
910
  className: "space-y-8",
911
911
  children: [
912
- /* @__PURE__ */ jsxDEV4("div", {
912
+ /* @__PURE__ */ jsxs4("div", {
913
913
  className: "space-y-3",
914
914
  children: [
915
- /* @__PURE__ */ jsxDEV4("h1", {
915
+ /* @__PURE__ */ jsx4("h1", {
916
916
  className: "text-4xl font-bold",
917
917
  children: "Build the docs pipeline"
918
- }, undefined, false, undefined, this),
919
- /* @__PURE__ */ jsxDEV4("p", {
918
+ }),
919
+ /* @__PURE__ */ jsx4("p", {
920
920
  className: "text-muted-foreground text-lg",
921
921
  children: "Generate reference docs, chunk the index, and wire the docs pages the same way this repo does."
922
- }, undefined, false, undefined, this)
922
+ })
923
923
  ]
924
- }, undefined, true, undefined, this),
925
- /* @__PURE__ */ jsxDEV4("div", {
924
+ }),
925
+ /* @__PURE__ */ jsxs4("div", {
926
926
  className: "card-subtle space-y-4 p-6",
927
927
  children: [
928
- /* @__PURE__ */ jsxDEV4("h2", {
928
+ /* @__PURE__ */ jsx4("h2", {
929
929
  className: "text-2xl font-bold",
930
930
  children: "What you'll build"
931
- }, undefined, false, undefined, this),
932
- /* @__PURE__ */ jsxDEV4("ul", {
931
+ }),
932
+ /* @__PURE__ */ jsxs4("ul", {
933
933
  className: "text-muted-foreground space-y-2 text-sm",
934
934
  children: [
935
- /* @__PURE__ */ jsxDEV4("li", {
935
+ /* @__PURE__ */ jsx4("li", {
936
936
  children: "Generated Markdown and a chunked index manifest."
937
- }, undefined, false, undefined, this),
938
- /* @__PURE__ */ jsxDEV4("li", {
937
+ }),
938
+ /* @__PURE__ */ jsx4("li", {
939
939
  children: "Reference routes powered by the docs loader."
940
- }, undefined, false, undefined, this),
941
- /* @__PURE__ */ jsxDEV4("li", {
940
+ }),
941
+ /* @__PURE__ */ jsx4("li", {
942
942
  children: "Versioned outputs you can publish per release."
943
- }, undefined, false, undefined, this)
943
+ })
944
944
  ]
945
- }, undefined, true, undefined, this)
945
+ })
946
946
  ]
947
- }, undefined, true, undefined, this),
948
- /* @__PURE__ */ jsxDEV4("div", {
947
+ }),
948
+ /* @__PURE__ */ jsxs4("div", {
949
949
  className: "space-y-6",
950
950
  children: [
951
- /* @__PURE__ */ jsxDEV4("div", {
951
+ /* @__PURE__ */ jsxs4("div", {
952
952
  className: "space-y-3",
953
953
  children: [
954
- /* @__PURE__ */ jsxDEV4("h2", {
954
+ /* @__PURE__ */ jsx4("h2", {
955
955
  className: "text-2xl font-bold",
956
956
  children: "1) Generate contract docs"
957
- }, undefined, false, undefined, this),
958
- /* @__PURE__ */ jsxDEV4(CodeBlock3, {
957
+ }),
958
+ /* @__PURE__ */ jsx4(CodeBlock3, {
959
959
  language: "bash",
960
960
  filename: "generate-contract-docs",
961
961
  code: `contractspec generate`
962
- }, undefined, false, undefined, this),
963
- /* @__PURE__ */ jsxDEV4("p", {
962
+ }),
963
+ /* @__PURE__ */ jsxs4("p", {
964
964
  className: "text-muted-foreground text-sm",
965
965
  children: [
966
966
  "Expected output: Markdown in ",
967
- /* @__PURE__ */ jsxDEV4("code", {
967
+ /* @__PURE__ */ jsx4("code", {
968
968
  children: "generated/docs"
969
- }, undefined, false, undefined, this),
969
+ }),
970
970
  "."
971
971
  ]
972
- }, undefined, true, undefined, this)
972
+ })
973
973
  ]
974
- }, undefined, true, undefined, this),
975
- /* @__PURE__ */ jsxDEV4("div", {
974
+ }),
975
+ /* @__PURE__ */ jsxs4("div", {
976
976
  className: "space-y-3",
977
977
  children: [
978
- /* @__PURE__ */ jsxDEV4("h2", {
978
+ /* @__PURE__ */ jsx4("h2", {
979
979
  className: "text-2xl font-bold",
980
980
  children: "2) Build the docs index"
981
- }, undefined, false, undefined, this),
982
- /* @__PURE__ */ jsxDEV4(CodeBlock3, {
981
+ }),
982
+ /* @__PURE__ */ jsx4(CodeBlock3, {
983
983
  language: "bash",
984
984
  filename: "docs-generate",
985
985
  code: `bun docs:generate
986
986
  # versioned output
987
987
  bun docs:generate -- --version v1.0.0`
988
- }, undefined, false, undefined, this),
989
- /* @__PURE__ */ jsxDEV4("p", {
988
+ }),
989
+ /* @__PURE__ */ jsxs4("p", {
990
990
  className: "text-muted-foreground text-sm",
991
991
  children: [
992
992
  "This writes ",
993
- /* @__PURE__ */ jsxDEV4("code", {
993
+ /* @__PURE__ */ jsx4("code", {
994
994
  children: "docs-index.manifest.json"
995
- }, undefined, false, undefined, this),
995
+ }),
996
996
  " and chunked",
997
- /* @__PURE__ */ jsxDEV4("code", {
997
+ /* @__PURE__ */ jsx4("code", {
998
998
  children: "docs-index.*.json"
999
- }, undefined, false, undefined, this),
999
+ }),
1000
1000
  " files in the generated docs bundle."
1001
1001
  ]
1002
- }, undefined, true, undefined, this)
1002
+ })
1003
1003
  ]
1004
- }, undefined, true, undefined, this),
1005
- /* @__PURE__ */ jsxDEV4("div", {
1004
+ }),
1005
+ /* @__PURE__ */ jsxs4("div", {
1006
1006
  className: "space-y-3",
1007
1007
  children: [
1008
- /* @__PURE__ */ jsxDEV4("h2", {
1008
+ /* @__PURE__ */ jsx4("h2", {
1009
1009
  className: "text-2xl font-bold",
1010
1010
  children: "3) Wire reference routes"
1011
- }, undefined, false, undefined, this),
1012
- /* @__PURE__ */ jsxDEV4(CodeBlock3, {
1011
+ }),
1012
+ /* @__PURE__ */ jsx4(CodeBlock3, {
1013
1013
  language: "tsx",
1014
1014
  filename: "docs-reference-route",
1015
1015
  code: `import { notFound } from "next/navigation";
@@ -1031,247 +1031,247 @@ export default async function Page({ params }: { params: { slug?: string[] } })
1031
1031
  if (!doc) notFound();
1032
1032
  return <DocsReferencePage entry={doc.entry} content={doc.content} />;
1033
1033
  }`
1034
- }, undefined, false, undefined, this),
1035
- /* @__PURE__ */ jsxDEV4("p", {
1034
+ }),
1035
+ /* @__PURE__ */ jsxs4("p", {
1036
1036
  className: "text-muted-foreground text-sm",
1037
1037
  children: [
1038
1038
  "Use the index page on ",
1039
- /* @__PURE__ */ jsxDEV4("code", {
1039
+ /* @__PURE__ */ jsx4("code", {
1040
1040
  children: "/docs/reference"
1041
- }, undefined, false, undefined, this),
1041
+ }),
1042
1042
  " to render the searchable list."
1043
1043
  ]
1044
- }, undefined, true, undefined, this)
1044
+ })
1045
1045
  ]
1046
- }, undefined, true, undefined, this),
1047
- /* @__PURE__ */ jsxDEV4("div", {
1046
+ }),
1047
+ /* @__PURE__ */ jsxs4("div", {
1048
1048
  className: "card-subtle space-y-3 p-6",
1049
1049
  children: [
1050
- /* @__PURE__ */ jsxDEV4("h3", {
1050
+ /* @__PURE__ */ jsx4("h3", {
1051
1051
  className: "text-lg font-semibold",
1052
1052
  children: "Repo reference"
1053
- }, undefined, false, undefined, this),
1054
- /* @__PURE__ */ jsxDEV4("p", {
1053
+ }),
1054
+ /* @__PURE__ */ jsxs4("p", {
1055
1055
  className: "text-muted-foreground text-sm",
1056
1056
  children: [
1057
1057
  "This repo wires docs under",
1058
1058
  " ",
1059
- /* @__PURE__ */ jsxDEV4("code", {
1059
+ /* @__PURE__ */ jsx4("code", {
1060
1060
  children: "packages/apps/web-landing/src/app/docs/reference"
1061
- }, undefined, false, undefined, this),
1061
+ }),
1062
1062
  "."
1063
1063
  ]
1064
- }, undefined, true, undefined, this)
1064
+ })
1065
1065
  ]
1066
- }, undefined, true, undefined, this),
1067
- /* @__PURE__ */ jsxDEV4(StudioPrompt, {
1066
+ }),
1067
+ /* @__PURE__ */ jsx4(StudioPrompt, {
1068
1068
  title: "Need decision-to-export automation?",
1069
1069
  body: "Studio exports evidence-backed spec changes and task packs to Linear, Jira, Notion, and GitHub."
1070
- }, undefined, false, undefined, this)
1070
+ })
1071
1071
  ]
1072
- }, undefined, true, undefined, this),
1073
- /* @__PURE__ */ jsxDEV4("div", {
1072
+ }),
1073
+ /* @__PURE__ */ jsxs4("div", {
1074
1074
  className: "flex items-center gap-4 pt-4",
1075
1075
  children: [
1076
- /* @__PURE__ */ jsxDEV4(Link4, {
1076
+ /* @__PURE__ */ jsxs4(Link4, {
1077
1077
  href: "/docs/guides/ci-contract-diff-gating",
1078
1078
  className: "btn-primary",
1079
1079
  children: [
1080
1080
  "Next: CI gating ",
1081
- /* @__PURE__ */ jsxDEV4(ChevronRight3, {
1081
+ /* @__PURE__ */ jsx4(ChevronRight3, {
1082
1082
  size: 16
1083
- }, undefined, false, undefined, this)
1083
+ })
1084
1084
  ]
1085
- }, undefined, true, undefined, this),
1086
- /* @__PURE__ */ jsxDEV4(Link4, {
1085
+ }),
1086
+ /* @__PURE__ */ jsx4(Link4, {
1087
1087
  href: "/docs/guides",
1088
1088
  className: "btn-ghost",
1089
1089
  children: "Back to guides"
1090
- }, undefined, false, undefined, this)
1090
+ })
1091
1091
  ]
1092
- }, undefined, true, undefined, this)
1092
+ })
1093
1093
  ]
1094
- }, undefined, true, undefined, this);
1094
+ });
1095
1095
  }
1096
1096
 
1097
1097
  // src/components/docs/guides/GuideGenerateDocsClientsSchemasPage.tsx
1098
1098
  import { CodeBlock as CodeBlock4 } from "@contractspec/lib.design-system";
1099
1099
  import Link5 from "@contractspec/lib.ui-link";
1100
1100
  import { ChevronRight as ChevronRight4 } from "lucide-react";
1101
- import { jsxDEV as jsxDEV5 } from "react/jsx-dev-runtime";
1101
+ import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
1102
1102
  function GuideGenerateDocsClientsSchemasPage() {
1103
- return /* @__PURE__ */ jsxDEV5("div", {
1103
+ return /* @__PURE__ */ jsxs5("div", {
1104
1104
  className: "space-y-8",
1105
1105
  children: [
1106
- /* @__PURE__ */ jsxDEV5("div", {
1106
+ /* @__PURE__ */ jsxs5("div", {
1107
1107
  className: "space-y-3",
1108
1108
  children: [
1109
- /* @__PURE__ */ jsxDEV5("h1", {
1109
+ /* @__PURE__ */ jsx5("h1", {
1110
1110
  className: "text-4xl font-bold",
1111
1111
  children: "Generate docs + client schemas"
1112
- }, undefined, false, undefined, this),
1113
- /* @__PURE__ */ jsxDEV5("p", {
1112
+ }),
1113
+ /* @__PURE__ */ jsx5("p", {
1114
1114
  className: "text-muted-foreground text-lg",
1115
1115
  children: "Generate docs and OpenAPI output from ContractSpec operations to power SDKs, docs sites, and tooling."
1116
- }, undefined, false, undefined, this)
1116
+ })
1117
1117
  ]
1118
- }, undefined, true, undefined, this),
1119
- /* @__PURE__ */ jsxDEV5("div", {
1118
+ }),
1119
+ /* @__PURE__ */ jsxs5("div", {
1120
1120
  className: "card-subtle space-y-4 p-6",
1121
1121
  children: [
1122
- /* @__PURE__ */ jsxDEV5("h2", {
1122
+ /* @__PURE__ */ jsx5("h2", {
1123
1123
  className: "text-2xl font-bold",
1124
1124
  children: "What you'll build"
1125
- }, undefined, false, undefined, this),
1126
- /* @__PURE__ */ jsxDEV5("ul", {
1125
+ }),
1126
+ /* @__PURE__ */ jsxs5("ul", {
1127
1127
  className: "text-muted-foreground space-y-2 text-sm",
1128
1128
  children: [
1129
- /* @__PURE__ */ jsxDEV5("li", {
1129
+ /* @__PURE__ */ jsx5("li", {
1130
1130
  children: "Export docs from your specs."
1131
- }, undefined, false, undefined, this),
1132
- /* @__PURE__ */ jsxDEV5("li", {
1131
+ }),
1132
+ /* @__PURE__ */ jsx5("li", {
1133
1133
  children: "Emit OpenAPI 3.1 for client SDK generation."
1134
- }, undefined, false, undefined, this),
1135
- /* @__PURE__ */ jsxDEV5("li", {
1134
+ }),
1135
+ /* @__PURE__ */ jsx5("li", {
1136
1136
  children: "Keep outputs deterministic with CI validation."
1137
- }, undefined, false, undefined, this)
1137
+ })
1138
1138
  ]
1139
- }, undefined, true, undefined, this)
1139
+ })
1140
1140
  ]
1141
- }, undefined, true, undefined, this),
1142
- /* @__PURE__ */ jsxDEV5("div", {
1141
+ }),
1142
+ /* @__PURE__ */ jsxs5("div", {
1143
1143
  className: "space-y-6",
1144
1144
  children: [
1145
- /* @__PURE__ */ jsxDEV5("div", {
1145
+ /* @__PURE__ */ jsxs5("div", {
1146
1146
  className: "space-y-3",
1147
1147
  children: [
1148
- /* @__PURE__ */ jsxDEV5("h2", {
1148
+ /* @__PURE__ */ jsx5("h2", {
1149
1149
  className: "text-2xl font-bold",
1150
1150
  children: "1) Generate docs"
1151
- }, undefined, false, undefined, this),
1152
- /* @__PURE__ */ jsxDEV5("p", {
1151
+ }),
1152
+ /* @__PURE__ */ jsx5("p", {
1153
1153
  className: "text-muted-foreground text-sm",
1154
1154
  children: "Use the generator to emit docs from your contracts."
1155
- }, undefined, false, undefined, this),
1156
- /* @__PURE__ */ jsxDEV5(CodeBlock4, {
1155
+ }),
1156
+ /* @__PURE__ */ jsx5(CodeBlock4, {
1157
1157
  language: "bash",
1158
1158
  filename: "generate-docs",
1159
1159
  code: `contractspec generate`
1160
- }, undefined, false, undefined, this),
1161
- /* @__PURE__ */ jsxDEV5("p", {
1160
+ }),
1161
+ /* @__PURE__ */ jsxs5("p", {
1162
1162
  className: "text-muted-foreground text-sm",
1163
1163
  children: [
1164
1164
  "Expected output: ",
1165
- /* @__PURE__ */ jsxDEV5("code", {
1165
+ /* @__PURE__ */ jsx5("code", {
1166
1166
  children: "Generate X doc files in generated/docs"
1167
- }, undefined, false, undefined, this),
1167
+ }),
1168
1168
  "."
1169
1169
  ]
1170
- }, undefined, true, undefined, this)
1170
+ })
1171
1171
  ]
1172
- }, undefined, true, undefined, this),
1173
- /* @__PURE__ */ jsxDEV5("div", {
1172
+ }),
1173
+ /* @__PURE__ */ jsxs5("div", {
1174
1174
  className: "space-y-3",
1175
1175
  children: [
1176
- /* @__PURE__ */ jsxDEV5("h2", {
1176
+ /* @__PURE__ */ jsx5("h2", {
1177
1177
  className: "text-2xl font-bold",
1178
1178
  children: "2) Export OpenAPI"
1179
- }, undefined, false, undefined, this),
1180
- /* @__PURE__ */ jsxDEV5("p", {
1179
+ }),
1180
+ /* @__PURE__ */ jsx5("p", {
1181
1181
  className: "text-muted-foreground text-sm",
1182
1182
  children: "Export an OpenAPI document from your registry module."
1183
- }, undefined, false, undefined, this),
1184
- /* @__PURE__ */ jsxDEV5(CodeBlock4, {
1183
+ }),
1184
+ /* @__PURE__ */ jsx5(CodeBlock4, {
1185
1185
  language: "bash",
1186
1186
  filename: "openapi-export",
1187
1187
  code: `contractspec openapi export --registry ./src/contracts/registry.ts --out ./generated/openapi.json`
1188
- }, undefined, false, undefined, this),
1189
- /* @__PURE__ */ jsxDEV5("p", {
1188
+ }),
1189
+ /* @__PURE__ */ jsxs5("p", {
1190
1190
  className: "text-muted-foreground text-sm",
1191
1191
  children: [
1192
1192
  "Expected output:",
1193
1193
  " ",
1194
- /* @__PURE__ */ jsxDEV5("code", {
1194
+ /* @__PURE__ */ jsx5("code", {
1195
1195
  children: "OpenAPI written to .../generated/openapi.json"
1196
- }, undefined, false, undefined, this),
1196
+ }),
1197
1197
  "."
1198
1198
  ]
1199
- }, undefined, true, undefined, this)
1199
+ })
1200
1200
  ]
1201
- }, undefined, true, undefined, this),
1202
- /* @__PURE__ */ jsxDEV5("div", {
1201
+ }),
1202
+ /* @__PURE__ */ jsxs5("div", {
1203
1203
  className: "space-y-3",
1204
1204
  children: [
1205
- /* @__PURE__ */ jsxDEV5("h2", {
1205
+ /* @__PURE__ */ jsx5("h2", {
1206
1206
  className: "text-2xl font-bold",
1207
1207
  children: "3) Validate specs"
1208
- }, undefined, false, undefined, this),
1209
- /* @__PURE__ */ jsxDEV5(CodeBlock4, {
1208
+ }),
1209
+ /* @__PURE__ */ jsx5(CodeBlock4, {
1210
1210
  language: "bash",
1211
1211
  filename: "validate-specs",
1212
1212
  code: `contractspec validate`
1213
- }, undefined, false, undefined, this),
1214
- /* @__PURE__ */ jsxDEV5("p", {
1213
+ }),
1214
+ /* @__PURE__ */ jsxs5("p", {
1215
1215
  className: "text-muted-foreground text-sm",
1216
1216
  children: [
1217
1217
  "Expected output: ",
1218
- /* @__PURE__ */ jsxDEV5("code", {
1218
+ /* @__PURE__ */ jsx5("code", {
1219
1219
  children: "Validation passed"
1220
- }, undefined, false, undefined, this),
1220
+ }),
1221
1221
  "."
1222
1222
  ]
1223
- }, undefined, true, undefined, this)
1223
+ })
1224
1224
  ]
1225
- }, undefined, true, undefined, this),
1226
- /* @__PURE__ */ jsxDEV5("div", {
1225
+ }),
1226
+ /* @__PURE__ */ jsxs5("div", {
1227
1227
  className: "card-subtle space-y-3 p-6",
1228
1228
  children: [
1229
- /* @__PURE__ */ jsxDEV5("h3", {
1229
+ /* @__PURE__ */ jsx5("h3", {
1230
1230
  className: "text-lg font-semibold",
1231
1231
  children: "Example package"
1232
- }, undefined, false, undefined, this),
1233
- /* @__PURE__ */ jsxDEV5("p", {
1232
+ }),
1233
+ /* @__PURE__ */ jsx5("p", {
1234
1234
  className: "text-muted-foreground text-sm",
1235
1235
  children: "The Integration Hub example provides a full registry of operations and is a good source for OpenAPI exports."
1236
- }, undefined, false, undefined, this),
1237
- /* @__PURE__ */ jsxDEV5(CodeBlock4, {
1236
+ }),
1237
+ /* @__PURE__ */ jsx5(CodeBlock4, {
1238
1238
  language: "bash",
1239
1239
  filename: "integration-hub-example",
1240
1240
  code: `contractspec examples show integration-hub
1241
1241
 
1242
1242
  # openapi export against your registry module
1243
1243
  contractspec openapi export --registry ./src/contracts/registry.ts --out ./generated/openapi.json`
1244
- }, undefined, false, undefined, this)
1244
+ })
1245
1245
  ]
1246
- }, undefined, true, undefined, this),
1247
- /* @__PURE__ */ jsxDEV5(StudioPrompt, {
1246
+ }),
1247
+ /* @__PURE__ */ jsx5(StudioPrompt, {
1248
1248
  title: "Want exports tied to product decisions?",
1249
1249
  body: "Studio compiles approved changes into deliverables and pushes them to your execution stack with full evidence context."
1250
- }, undefined, false, undefined, this)
1250
+ })
1251
1251
  ]
1252
- }, undefined, true, undefined, this),
1253
- /* @__PURE__ */ jsxDEV5("div", {
1252
+ }),
1253
+ /* @__PURE__ */ jsxs5("div", {
1254
1254
  className: "flex items-center gap-4 pt-4",
1255
1255
  children: [
1256
- /* @__PURE__ */ jsxDEV5(Link5, {
1256
+ /* @__PURE__ */ jsxs5(Link5, {
1257
1257
  href: "/docs/guides/docs-generation-pipeline",
1258
1258
  className: "btn-primary",
1259
1259
  children: [
1260
1260
  "Next: Docs pipeline ",
1261
- /* @__PURE__ */ jsxDEV5(ChevronRight4, {
1261
+ /* @__PURE__ */ jsx5(ChevronRight4, {
1262
1262
  size: 16
1263
- }, undefined, false, undefined, this)
1263
+ })
1264
1264
  ]
1265
- }, undefined, true, undefined, this),
1266
- /* @__PURE__ */ jsxDEV5(Link5, {
1265
+ }),
1266
+ /* @__PURE__ */ jsx5(Link5, {
1267
1267
  href: "/docs/guides",
1268
1268
  className: "btn-ghost",
1269
1269
  children: "Back to guides"
1270
- }, undefined, false, undefined, this)
1270
+ })
1271
1271
  ]
1272
- }, undefined, true, undefined, this)
1272
+ })
1273
1273
  ]
1274
- }, undefined, true, undefined, this);
1274
+ });
1275
1275
  }
1276
1276
 
1277
1277
  // src/components/docs/guides/GuideImportExistingCodebasesPage.tsx
@@ -1284,7 +1284,7 @@ import {
1284
1284
  Settings,
1285
1285
  AlertCircle
1286
1286
  } from "lucide-react";
1287
- import { jsxDEV as jsxDEV6 } from "react/jsx-dev-runtime";
1287
+ import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
1288
1288
  var supportedFrameworks = [
1289
1289
  {
1290
1290
  name: "NestJS",
@@ -1323,134 +1323,134 @@ var supportedFrameworks = [
1323
1323
  }
1324
1324
  ];
1325
1325
  function GuideImportExistingCodebasesPage() {
1326
- return /* @__PURE__ */ jsxDEV6("div", {
1326
+ return /* @__PURE__ */ jsxs6("div", {
1327
1327
  className: "space-y-8",
1328
1328
  children: [
1329
- /* @__PURE__ */ jsxDEV6("div", {
1329
+ /* @__PURE__ */ jsxs6("div", {
1330
1330
  className: "space-y-3",
1331
1331
  children: [
1332
- /* @__PURE__ */ jsxDEV6("h1", {
1332
+ /* @__PURE__ */ jsx6("h1", {
1333
1333
  className: "text-4xl font-bold",
1334
1334
  children: "Import Existing Codebases"
1335
- }, undefined, false, undefined, this),
1336
- /* @__PURE__ */ jsxDEV6("p", {
1335
+ }),
1336
+ /* @__PURE__ */ jsx6("p", {
1337
1337
  className: "text-muted-foreground text-lg",
1338
1338
  children: "Convert your existing API endpoints into ContractSpec contracts. Auto-detect frameworks, extract schemas, and generate spec-first definitions from your code."
1339
- }, undefined, false, undefined, this)
1339
+ })
1340
1340
  ]
1341
- }, undefined, true, undefined, this),
1342
- /* @__PURE__ */ jsxDEV6("div", {
1341
+ }),
1342
+ /* @__PURE__ */ jsxs6("div", {
1343
1343
  className: "card-subtle space-y-4 p-6",
1344
1344
  children: [
1345
- /* @__PURE__ */ jsxDEV6("h2", {
1345
+ /* @__PURE__ */ jsx6("h2", {
1346
1346
  className: "text-2xl font-bold",
1347
1347
  children: "What you'll learn"
1348
- }, undefined, false, undefined, this),
1349
- /* @__PURE__ */ jsxDEV6("ul", {
1348
+ }),
1349
+ /* @__PURE__ */ jsxs6("ul", {
1350
1350
  className: "text-muted-foreground space-y-2 text-sm",
1351
1351
  children: [
1352
- /* @__PURE__ */ jsxDEV6("li", {
1352
+ /* @__PURE__ */ jsx6("li", {
1353
1353
  children: "How to import existing API endpoints as ContractSpec contracts."
1354
- }, undefined, false, undefined, this),
1355
- /* @__PURE__ */ jsxDEV6("li", {
1354
+ }),
1355
+ /* @__PURE__ */ jsx6("li", {
1356
1356
  children: "Framework-specific patterns and auto-detection."
1357
- }, undefined, false, undefined, this),
1358
- /* @__PURE__ */ jsxDEV6("li", {
1357
+ }),
1358
+ /* @__PURE__ */ jsx6("li", {
1359
1359
  children: "Customizing imports with scopes, dry-run, and output options."
1360
- }, undefined, false, undefined, this),
1361
- /* @__PURE__ */ jsxDEV6("li", {
1360
+ }),
1361
+ /* @__PURE__ */ jsx6("li", {
1362
1362
  children: "Registering imported contracts and adding handlers."
1363
- }, undefined, false, undefined, this)
1363
+ })
1364
1364
  ]
1365
- }, undefined, true, undefined, this)
1365
+ })
1366
1366
  ]
1367
- }, undefined, true, undefined, this),
1368
- /* @__PURE__ */ jsxDEV6("div", {
1367
+ }),
1368
+ /* @__PURE__ */ jsxs6("div", {
1369
1369
  className: "space-y-6",
1370
1370
  children: [
1371
- /* @__PURE__ */ jsxDEV6("div", {
1371
+ /* @__PURE__ */ jsxs6("div", {
1372
1372
  className: "space-y-3",
1373
1373
  children: [
1374
- /* @__PURE__ */ jsxDEV6("h2", {
1374
+ /* @__PURE__ */ jsx6("h2", {
1375
1375
  className: "text-2xl font-bold",
1376
1376
  children: "Why import existing code?"
1377
- }, undefined, false, undefined, this),
1378
- /* @__PURE__ */ jsxDEV6("p", {
1377
+ }),
1378
+ /* @__PURE__ */ jsx6("p", {
1379
1379
  className: "text-muted-foreground text-sm",
1380
1380
  children: "Instead of writing contracts from scratch, the import command extracts endpoint patterns from your existing codebase. This gives you:"
1381
- }, undefined, false, undefined, this),
1382
- /* @__PURE__ */ jsxDEV6("ul", {
1381
+ }),
1382
+ /* @__PURE__ */ jsxs6("ul", {
1383
1383
  className: "text-muted-foreground list-disc space-y-1 pl-5 text-sm",
1384
1384
  children: [
1385
- /* @__PURE__ */ jsxDEV6("li", {
1385
+ /* @__PURE__ */ jsx6("li", {
1386
1386
  children: "Instant spec coverage for existing APIs"
1387
- }, undefined, false, undefined, this),
1388
- /* @__PURE__ */ jsxDEV6("li", {
1387
+ }),
1388
+ /* @__PURE__ */ jsx6("li", {
1389
1389
  children: "Type-safe schemas derived from your existing types"
1390
- }, undefined, false, undefined, this),
1391
- /* @__PURE__ */ jsxDEV6("li", {
1390
+ }),
1391
+ /* @__PURE__ */ jsx6("li", {
1392
1392
  children: "A foundation to iterate and refine contracts"
1393
- }, undefined, false, undefined, this),
1394
- /* @__PURE__ */ jsxDEV6("li", {
1393
+ }),
1394
+ /* @__PURE__ */ jsx6("li", {
1395
1395
  children: "Gradual adoption without rewriting code"
1396
- }, undefined, false, undefined, this)
1396
+ })
1397
1397
  ]
1398
- }, undefined, true, undefined, this)
1398
+ })
1399
1399
  ]
1400
- }, undefined, true, undefined, this),
1401
- /* @__PURE__ */ jsxDEV6("div", {
1400
+ }),
1401
+ /* @__PURE__ */ jsxs6("div", {
1402
1402
  className: "space-y-3",
1403
1403
  children: [
1404
- /* @__PURE__ */ jsxDEV6("h2", {
1404
+ /* @__PURE__ */ jsx6("h2", {
1405
1405
  className: "text-2xl font-bold",
1406
1406
  children: "Supported frameworks"
1407
- }, undefined, false, undefined, this),
1408
- /* @__PURE__ */ jsxDEV6("div", {
1407
+ }),
1408
+ /* @__PURE__ */ jsx6("div", {
1409
1409
  className: "grid gap-3 md:grid-cols-2 lg:grid-cols-3",
1410
- children: supportedFrameworks.map((fw) => /* @__PURE__ */ jsxDEV6("div", {
1410
+ children: supportedFrameworks.map((fw) => /* @__PURE__ */ jsxs6("div", {
1411
1411
  className: "flex items-start gap-3 rounded-lg border border-white/10 p-4",
1412
1412
  children: [
1413
- /* @__PURE__ */ jsxDEV6(FileCode, {
1413
+ /* @__PURE__ */ jsx6(FileCode, {
1414
1414
  className: "text-violet-400",
1415
1415
  size: 18
1416
- }, undefined, false, undefined, this),
1417
- /* @__PURE__ */ jsxDEV6("div", {
1416
+ }),
1417
+ /* @__PURE__ */ jsxs6("div", {
1418
1418
  className: "space-y-1",
1419
1419
  children: [
1420
- /* @__PURE__ */ jsxDEV6("h3", {
1420
+ /* @__PURE__ */ jsx6("h3", {
1421
1421
  className: "font-semibold",
1422
1422
  children: fw.name
1423
- }, undefined, false, undefined, this),
1424
- /* @__PURE__ */ jsxDEV6("p", {
1423
+ }),
1424
+ /* @__PURE__ */ jsx6("p", {
1425
1425
  className: "text-muted-foreground text-xs",
1426
1426
  children: fw.description
1427
- }, undefined, false, undefined, this),
1428
- /* @__PURE__ */ jsxDEV6("code", {
1427
+ }),
1428
+ /* @__PURE__ */ jsxs6("code", {
1429
1429
  className: "text-xs text-violet-400",
1430
1430
  children: [
1431
1431
  "--framework ",
1432
1432
  fw.flag
1433
1433
  ]
1434
- }, undefined, true, undefined, this)
1434
+ })
1435
1435
  ]
1436
- }, undefined, true, undefined, this)
1436
+ })
1437
1437
  ]
1438
- }, fw.flag, true, undefined, this))
1439
- }, undefined, false, undefined, this)
1438
+ }, fw.flag))
1439
+ })
1440
1440
  ]
1441
- }, undefined, true, undefined, this),
1442
- /* @__PURE__ */ jsxDEV6("div", {
1441
+ }),
1442
+ /* @__PURE__ */ jsxs6("div", {
1443
1443
  className: "space-y-3",
1444
1444
  children: [
1445
- /* @__PURE__ */ jsxDEV6("h2", {
1445
+ /* @__PURE__ */ jsx6("h2", {
1446
1446
  className: "text-2xl font-bold",
1447
1447
  children: "1) Quick start"
1448
- }, undefined, false, undefined, this),
1449
- /* @__PURE__ */ jsxDEV6("p", {
1448
+ }),
1449
+ /* @__PURE__ */ jsx6("p", {
1450
1450
  className: "text-muted-foreground text-sm",
1451
1451
  children: "Run the import command to auto-detect your framework and extract endpoints:"
1452
- }, undefined, false, undefined, this),
1453
- /* @__PURE__ */ jsxDEV6(CodeBlock5, {
1452
+ }),
1453
+ /* @__PURE__ */ jsx6(CodeBlock5, {
1454
1454
  language: "bash",
1455
1455
  filename: "import-quickstart",
1456
1456
  code: `# Auto-detect framework and import all endpoints
@@ -1461,40 +1461,40 @@ contractspec import ./src --dry-run
1461
1461
 
1462
1462
  # Force a specific framework
1463
1463
  contractspec import ./src --framework nestjs`
1464
- }, undefined, false, undefined, this),
1465
- /* @__PURE__ */ jsxDEV6("p", {
1464
+ }),
1465
+ /* @__PURE__ */ jsx6("p", {
1466
1466
  className: "text-muted-foreground text-sm",
1467
1467
  children: "Expected output: A summary of endpoints found, schemas extracted, and files generated."
1468
- }, undefined, false, undefined, this)
1468
+ })
1469
1469
  ]
1470
- }, undefined, true, undefined, this),
1471
- /* @__PURE__ */ jsxDEV6("div", {
1470
+ }),
1471
+ /* @__PURE__ */ jsxs6("div", {
1472
1472
  className: "space-y-3",
1473
1473
  children: [
1474
- /* @__PURE__ */ jsxDEV6("h2", {
1474
+ /* @__PURE__ */ jsx6("h2", {
1475
1475
  className: "text-2xl font-bold",
1476
1476
  children: "2) Framework-specific patterns"
1477
- }, undefined, false, undefined, this),
1478
- /* @__PURE__ */ jsxDEV6("p", {
1477
+ }),
1478
+ /* @__PURE__ */ jsx6("p", {
1479
1479
  className: "text-muted-foreground text-sm",
1480
1480
  children: "The import command recognizes these patterns in each framework:"
1481
- }, undefined, false, undefined, this)
1481
+ })
1482
1482
  ]
1483
- }, undefined, true, undefined, this),
1484
- /* @__PURE__ */ jsxDEV6("div", {
1483
+ }),
1484
+ /* @__PURE__ */ jsxs6("div", {
1485
1485
  className: "space-y-3",
1486
1486
  children: [
1487
- /* @__PURE__ */ jsxDEV6("h3", {
1487
+ /* @__PURE__ */ jsxs6("h3", {
1488
1488
  className: "flex items-center gap-2 text-xl font-semibold",
1489
1489
  children: [
1490
- /* @__PURE__ */ jsxDEV6(Scan, {
1490
+ /* @__PURE__ */ jsx6(Scan, {
1491
1491
  size: 18,
1492
1492
  className: "text-blue-400"
1493
- }, undefined, false, undefined, this),
1493
+ }),
1494
1494
  "NestJS"
1495
1495
  ]
1496
- }, undefined, true, undefined, this),
1497
- /* @__PURE__ */ jsxDEV6(CodeBlock5, {
1496
+ }),
1497
+ /* @__PURE__ */ jsx6(CodeBlock5, {
1498
1498
  language: "typescript",
1499
1499
  filename: "src/users/users.controller.ts (before)",
1500
1500
  code: `@Controller('users')
@@ -1510,55 +1510,55 @@ export class UsersController {
1510
1510
  return this.usersService.create(dto);
1511
1511
  }
1512
1512
  }`
1513
- }, undefined, false, undefined, this),
1514
- /* @__PURE__ */ jsxDEV6("p", {
1513
+ }),
1514
+ /* @__PURE__ */ jsxs6("p", {
1515
1515
  className: "text-muted-foreground text-sm",
1516
1516
  children: [
1517
1517
  "Detected: ",
1518
- /* @__PURE__ */ jsxDEV6("code", {
1518
+ /* @__PURE__ */ jsx6("code", {
1519
1519
  children: "@Controller"
1520
- }, undefined, false, undefined, this),
1520
+ }),
1521
1521
  ", ",
1522
- /* @__PURE__ */ jsxDEV6("code", {
1522
+ /* @__PURE__ */ jsx6("code", {
1523
1523
  children: "@Get"
1524
- }, undefined, false, undefined, this),
1524
+ }),
1525
1525
  ",",
1526
1526
  " ",
1527
- /* @__PURE__ */ jsxDEV6("code", {
1527
+ /* @__PURE__ */ jsx6("code", {
1528
1528
  children: "@Post"
1529
- }, undefined, false, undefined, this),
1529
+ }),
1530
1530
  ", ",
1531
- /* @__PURE__ */ jsxDEV6("code", {
1531
+ /* @__PURE__ */ jsx6("code", {
1532
1532
  children: "@Body"
1533
- }, undefined, false, undefined, this),
1533
+ }),
1534
1534
  ", ",
1535
- /* @__PURE__ */ jsxDEV6("code", {
1535
+ /* @__PURE__ */ jsx6("code", {
1536
1536
  children: "@Param"
1537
- }, undefined, false, undefined, this),
1537
+ }),
1538
1538
  ",",
1539
1539
  " ",
1540
- /* @__PURE__ */ jsxDEV6("code", {
1540
+ /* @__PURE__ */ jsx6("code", {
1541
1541
  children: "@UseGuards"
1542
- }, undefined, false, undefined, this),
1542
+ }),
1543
1543
  " decorators."
1544
1544
  ]
1545
- }, undefined, true, undefined, this)
1545
+ })
1546
1546
  ]
1547
- }, undefined, true, undefined, this),
1548
- /* @__PURE__ */ jsxDEV6("div", {
1547
+ }),
1548
+ /* @__PURE__ */ jsxs6("div", {
1549
1549
  className: "space-y-3",
1550
1550
  children: [
1551
- /* @__PURE__ */ jsxDEV6("h3", {
1551
+ /* @__PURE__ */ jsxs6("h3", {
1552
1552
  className: "flex items-center gap-2 text-xl font-semibold",
1553
1553
  children: [
1554
- /* @__PURE__ */ jsxDEV6(Scan, {
1554
+ /* @__PURE__ */ jsx6(Scan, {
1555
1555
  size: 18,
1556
1556
  className: "text-green-400"
1557
- }, undefined, false, undefined, this),
1557
+ }),
1558
1558
  "Express"
1559
1559
  ]
1560
- }, undefined, true, undefined, this),
1561
- /* @__PURE__ */ jsxDEV6(CodeBlock5, {
1560
+ }),
1561
+ /* @__PURE__ */ jsx6(CodeBlock5, {
1562
1562
  language: "typescript",
1563
1563
  filename: "src/routes/users.ts (before)",
1564
1564
  code: `const router = express.Router();
@@ -1572,37 +1572,37 @@ router.post('/users', validateBody(CreateUserSchema), async (req, res) => {
1572
1572
  const user = await createUser(req.body);
1573
1573
  res.status(201).json(user);
1574
1574
  });`
1575
- }, undefined, false, undefined, this),
1576
- /* @__PURE__ */ jsxDEV6("p", {
1575
+ }),
1576
+ /* @__PURE__ */ jsxs6("p", {
1577
1577
  className: "text-muted-foreground text-sm",
1578
1578
  children: [
1579
1579
  "Detected: ",
1580
- /* @__PURE__ */ jsxDEV6("code", {
1580
+ /* @__PURE__ */ jsx6("code", {
1581
1581
  children: "router.get"
1582
- }, undefined, false, undefined, this),
1582
+ }),
1583
1583
  ", ",
1584
- /* @__PURE__ */ jsxDEV6("code", {
1584
+ /* @__PURE__ */ jsx6("code", {
1585
1585
  children: "router.post"
1586
- }, undefined, false, undefined, this),
1586
+ }),
1587
1587
  ", validation middleware, Zod schemas."
1588
1588
  ]
1589
- }, undefined, true, undefined, this)
1589
+ })
1590
1590
  ]
1591
- }, undefined, true, undefined, this),
1592
- /* @__PURE__ */ jsxDEV6("div", {
1591
+ }),
1592
+ /* @__PURE__ */ jsxs6("div", {
1593
1593
  className: "space-y-3",
1594
1594
  children: [
1595
- /* @__PURE__ */ jsxDEV6("h3", {
1595
+ /* @__PURE__ */ jsxs6("h3", {
1596
1596
  className: "flex items-center gap-2 text-xl font-semibold",
1597
1597
  children: [
1598
- /* @__PURE__ */ jsxDEV6(Scan, {
1598
+ /* @__PURE__ */ jsx6(Scan, {
1599
1599
  size: 18,
1600
1600
  className: "text-purple-400"
1601
- }, undefined, false, undefined, this),
1601
+ }),
1602
1602
  "Next.js API Routes"
1603
1603
  ]
1604
- }, undefined, true, undefined, this),
1605
- /* @__PURE__ */ jsxDEV6(CodeBlock5, {
1604
+ }),
1605
+ /* @__PURE__ */ jsx6(CodeBlock5, {
1606
1606
  language: "typescript",
1607
1607
  filename: "app/api/users/[id]/route.ts (before)",
1608
1608
  code: `export async function GET(
@@ -1618,44 +1618,44 @@ export async function POST(request: Request) {
1618
1618
  const user = await createUser(body);
1619
1619
  return Response.json(user, { status: 201 });
1620
1620
  }`
1621
- }, undefined, false, undefined, this),
1622
- /* @__PURE__ */ jsxDEV6("p", {
1621
+ }),
1622
+ /* @__PURE__ */ jsxs6("p", {
1623
1623
  className: "text-muted-foreground text-sm",
1624
1624
  children: [
1625
1625
  "Detected: ",
1626
- /* @__PURE__ */ jsxDEV6("code", {
1626
+ /* @__PURE__ */ jsx6("code", {
1627
1627
  children: "GET"
1628
- }, undefined, false, undefined, this),
1628
+ }),
1629
1629
  ", ",
1630
- /* @__PURE__ */ jsxDEV6("code", {
1630
+ /* @__PURE__ */ jsx6("code", {
1631
1631
  children: "POST"
1632
- }, undefined, false, undefined, this),
1632
+ }),
1633
1633
  " exports in",
1634
1634
  " ",
1635
- /* @__PURE__ */ jsxDEV6("code", {
1635
+ /* @__PURE__ */ jsx6("code", {
1636
1636
  children: "app/api/**/route.ts"
1637
- }, undefined, false, undefined, this),
1637
+ }),
1638
1638
  " and ",
1639
- /* @__PURE__ */ jsxDEV6("code", {
1639
+ /* @__PURE__ */ jsx6("code", {
1640
1640
  children: "pages/api/**/*.ts"
1641
- }, undefined, false, undefined, this),
1641
+ }),
1642
1642
  "."
1643
1643
  ]
1644
- }, undefined, true, undefined, this)
1644
+ })
1645
1645
  ]
1646
- }, undefined, true, undefined, this),
1647
- /* @__PURE__ */ jsxDEV6("div", {
1646
+ }),
1647
+ /* @__PURE__ */ jsxs6("div", {
1648
1648
  className: "space-y-3",
1649
1649
  children: [
1650
- /* @__PURE__ */ jsxDEV6("h2", {
1650
+ /* @__PURE__ */ jsx6("h2", {
1651
1651
  className: "text-2xl font-bold",
1652
1652
  children: "3) Understanding generated contracts"
1653
- }, undefined, false, undefined, this),
1654
- /* @__PURE__ */ jsxDEV6("p", {
1653
+ }),
1654
+ /* @__PURE__ */ jsx6("p", {
1655
1655
  className: "text-muted-foreground text-sm",
1656
1656
  children: "The import command generates ContractSpec operations with TODO placeholders for fields it cannot infer:"
1657
- }, undefined, false, undefined, this),
1658
- /* @__PURE__ */ jsxDEV6(CodeBlock5, {
1657
+ }),
1658
+ /* @__PURE__ */ jsx6(CodeBlock5, {
1659
1659
  language: "typescript",
1660
1660
  filename: ".contractspec/generated/users.operation.ts",
1661
1661
  code: `import { defineQuery, defineCommand } from "@contractspec/lib.contracts-spec";
@@ -1719,187 +1719,187 @@ export const CreateUserCommand = defineCommand({
1719
1719
  rest: { method: "POST", path: "/users" },
1720
1720
  },
1721
1721
  });`
1722
- }, undefined, false, undefined, this)
1722
+ })
1723
1723
  ]
1724
- }, undefined, true, undefined, this),
1725
- /* @__PURE__ */ jsxDEV6("div", {
1724
+ }),
1725
+ /* @__PURE__ */ jsxs6("div", {
1726
1726
  className: "space-y-3",
1727
1727
  children: [
1728
- /* @__PURE__ */ jsxDEV6("h2", {
1728
+ /* @__PURE__ */ jsx6("h2", {
1729
1729
  className: "text-2xl font-bold",
1730
1730
  children: "4) Customizing imports"
1731
- }, undefined, false, undefined, this),
1732
- /* @__PURE__ */ jsxDEV6("div", {
1731
+ }),
1732
+ /* @__PURE__ */ jsxs6("div", {
1733
1733
  className: "flex items-center gap-2",
1734
1734
  children: [
1735
- /* @__PURE__ */ jsxDEV6(Settings, {
1735
+ /* @__PURE__ */ jsx6(Settings, {
1736
1736
  size: 18,
1737
1737
  className: "text-violet-400"
1738
- }, undefined, false, undefined, this),
1739
- /* @__PURE__ */ jsxDEV6("h3", {
1738
+ }),
1739
+ /* @__PURE__ */ jsx6("h3", {
1740
1740
  className: "text-lg font-semibold",
1741
1741
  children: "Available options"
1742
- }, undefined, false, undefined, this)
1742
+ })
1743
1743
  ]
1744
- }, undefined, true, undefined, this),
1745
- /* @__PURE__ */ jsxDEV6("div", {
1744
+ }),
1745
+ /* @__PURE__ */ jsx6("div", {
1746
1746
  className: "overflow-x-auto",
1747
- children: /* @__PURE__ */ jsxDEV6("table", {
1747
+ children: /* @__PURE__ */ jsxs6("table", {
1748
1748
  className: "w-full text-sm",
1749
1749
  children: [
1750
- /* @__PURE__ */ jsxDEV6("thead", {
1751
- children: /* @__PURE__ */ jsxDEV6("tr", {
1750
+ /* @__PURE__ */ jsx6("thead", {
1751
+ children: /* @__PURE__ */ jsxs6("tr", {
1752
1752
  className: "border-b border-white/10",
1753
1753
  children: [
1754
- /* @__PURE__ */ jsxDEV6("th", {
1754
+ /* @__PURE__ */ jsx6("th", {
1755
1755
  className: "py-2 pr-4 text-left",
1756
1756
  children: "Option"
1757
- }, undefined, false, undefined, this),
1758
- /* @__PURE__ */ jsxDEV6("th", {
1757
+ }),
1758
+ /* @__PURE__ */ jsx6("th", {
1759
1759
  className: "py-2 pr-4 text-left",
1760
1760
  children: "Description"
1761
- }, undefined, false, undefined, this),
1762
- /* @__PURE__ */ jsxDEV6("th", {
1761
+ }),
1762
+ /* @__PURE__ */ jsx6("th", {
1763
1763
  className: "py-2 text-left",
1764
1764
  children: "Example"
1765
- }, undefined, false, undefined, this)
1765
+ })
1766
1766
  ]
1767
- }, undefined, true, undefined, this)
1768
- }, undefined, false, undefined, this),
1769
- /* @__PURE__ */ jsxDEV6("tbody", {
1767
+ })
1768
+ }),
1769
+ /* @__PURE__ */ jsxs6("tbody", {
1770
1770
  className: "text-muted-foreground",
1771
1771
  children: [
1772
- /* @__PURE__ */ jsxDEV6("tr", {
1772
+ /* @__PURE__ */ jsxs6("tr", {
1773
1773
  className: "border-b border-white/5",
1774
1774
  children: [
1775
- /* @__PURE__ */ jsxDEV6("td", {
1775
+ /* @__PURE__ */ jsx6("td", {
1776
1776
  className: "py-2 pr-4",
1777
- children: /* @__PURE__ */ jsxDEV6("code", {
1777
+ children: /* @__PURE__ */ jsx6("code", {
1778
1778
  children: "--scope"
1779
- }, undefined, false, undefined, this)
1780
- }, undefined, false, undefined, this),
1781
- /* @__PURE__ */ jsxDEV6("td", {
1779
+ })
1780
+ }),
1781
+ /* @__PURE__ */ jsx6("td", {
1782
1782
  className: "py-2 pr-4",
1783
1783
  children: "Limit to specific directories"
1784
- }, undefined, false, undefined, this),
1785
- /* @__PURE__ */ jsxDEV6("td", {
1784
+ }),
1785
+ /* @__PURE__ */ jsx6("td", {
1786
1786
  className: "py-2",
1787
- children: /* @__PURE__ */ jsxDEV6("code", {
1787
+ children: /* @__PURE__ */ jsx6("code", {
1788
1788
  children: "--scope src/users src/auth"
1789
- }, undefined, false, undefined, this)
1790
- }, undefined, false, undefined, this)
1789
+ })
1790
+ })
1791
1791
  ]
1792
- }, undefined, true, undefined, this),
1793
- /* @__PURE__ */ jsxDEV6("tr", {
1792
+ }),
1793
+ /* @__PURE__ */ jsxs6("tr", {
1794
1794
  className: "border-b border-white/5",
1795
1795
  children: [
1796
- /* @__PURE__ */ jsxDEV6("td", {
1796
+ /* @__PURE__ */ jsx6("td", {
1797
1797
  className: "py-2 pr-4",
1798
- children: /* @__PURE__ */ jsxDEV6("code", {
1798
+ children: /* @__PURE__ */ jsx6("code", {
1799
1799
  children: "--framework"
1800
- }, undefined, false, undefined, this)
1801
- }, undefined, false, undefined, this),
1802
- /* @__PURE__ */ jsxDEV6("td", {
1800
+ })
1801
+ }),
1802
+ /* @__PURE__ */ jsx6("td", {
1803
1803
  className: "py-2 pr-4",
1804
1804
  children: "Force a specific framework"
1805
- }, undefined, false, undefined, this),
1806
- /* @__PURE__ */ jsxDEV6("td", {
1805
+ }),
1806
+ /* @__PURE__ */ jsx6("td", {
1807
1807
  className: "py-2",
1808
- children: /* @__PURE__ */ jsxDEV6("code", {
1808
+ children: /* @__PURE__ */ jsx6("code", {
1809
1809
  children: "--framework express"
1810
- }, undefined, false, undefined, this)
1811
- }, undefined, false, undefined, this)
1810
+ })
1811
+ })
1812
1812
  ]
1813
- }, undefined, true, undefined, this),
1814
- /* @__PURE__ */ jsxDEV6("tr", {
1813
+ }),
1814
+ /* @__PURE__ */ jsxs6("tr", {
1815
1815
  className: "border-b border-white/5",
1816
1816
  children: [
1817
- /* @__PURE__ */ jsxDEV6("td", {
1817
+ /* @__PURE__ */ jsx6("td", {
1818
1818
  className: "py-2 pr-4",
1819
- children: /* @__PURE__ */ jsxDEV6("code", {
1819
+ children: /* @__PURE__ */ jsx6("code", {
1820
1820
  children: "--output"
1821
- }, undefined, false, undefined, this)
1822
- }, undefined, false, undefined, this),
1823
- /* @__PURE__ */ jsxDEV6("td", {
1821
+ })
1822
+ }),
1823
+ /* @__PURE__ */ jsx6("td", {
1824
1824
  className: "py-2 pr-4",
1825
1825
  children: "Output directory"
1826
- }, undefined, false, undefined, this),
1827
- /* @__PURE__ */ jsxDEV6("td", {
1826
+ }),
1827
+ /* @__PURE__ */ jsx6("td", {
1828
1828
  className: "py-2",
1829
- children: /* @__PURE__ */ jsxDEV6("code", {
1829
+ children: /* @__PURE__ */ jsx6("code", {
1830
1830
  children: "--output ./contracts"
1831
- }, undefined, false, undefined, this)
1832
- }, undefined, false, undefined, this)
1831
+ })
1832
+ })
1833
1833
  ]
1834
- }, undefined, true, undefined, this),
1835
- /* @__PURE__ */ jsxDEV6("tr", {
1834
+ }),
1835
+ /* @__PURE__ */ jsxs6("tr", {
1836
1836
  className: "border-b border-white/5",
1837
1837
  children: [
1838
- /* @__PURE__ */ jsxDEV6("td", {
1838
+ /* @__PURE__ */ jsx6("td", {
1839
1839
  className: "py-2 pr-4",
1840
- children: /* @__PURE__ */ jsxDEV6("code", {
1840
+ children: /* @__PURE__ */ jsx6("code", {
1841
1841
  children: "--dry-run"
1842
- }, undefined, false, undefined, this)
1843
- }, undefined, false, undefined, this),
1844
- /* @__PURE__ */ jsxDEV6("td", {
1842
+ })
1843
+ }),
1844
+ /* @__PURE__ */ jsx6("td", {
1845
1845
  className: "py-2 pr-4",
1846
1846
  children: "Preview without writing files"
1847
- }, undefined, false, undefined, this),
1848
- /* @__PURE__ */ jsxDEV6("td", {
1847
+ }),
1848
+ /* @__PURE__ */ jsx6("td", {
1849
1849
  className: "py-2",
1850
- children: /* @__PURE__ */ jsxDEV6("code", {
1850
+ children: /* @__PURE__ */ jsx6("code", {
1851
1851
  children: "--dry-run"
1852
- }, undefined, false, undefined, this)
1853
- }, undefined, false, undefined, this)
1852
+ })
1853
+ })
1854
1854
  ]
1855
- }, undefined, true, undefined, this),
1856
- /* @__PURE__ */ jsxDEV6("tr", {
1855
+ }),
1856
+ /* @__PURE__ */ jsxs6("tr", {
1857
1857
  className: "border-b border-white/5",
1858
1858
  children: [
1859
- /* @__PURE__ */ jsxDEV6("td", {
1859
+ /* @__PURE__ */ jsx6("td", {
1860
1860
  className: "py-2 pr-4",
1861
- children: /* @__PURE__ */ jsxDEV6("code", {
1861
+ children: /* @__PURE__ */ jsx6("code", {
1862
1862
  children: "--analyze"
1863
- }, undefined, false, undefined, this)
1864
- }, undefined, false, undefined, this),
1865
- /* @__PURE__ */ jsxDEV6("td", {
1863
+ })
1864
+ }),
1865
+ /* @__PURE__ */ jsx6("td", {
1866
1866
  className: "py-2 pr-4",
1867
1867
  children: "Analysis only, no code generation"
1868
- }, undefined, false, undefined, this),
1869
- /* @__PURE__ */ jsxDEV6("td", {
1868
+ }),
1869
+ /* @__PURE__ */ jsx6("td", {
1870
1870
  className: "py-2",
1871
- children: /* @__PURE__ */ jsxDEV6("code", {
1871
+ children: /* @__PURE__ */ jsx6("code", {
1872
1872
  children: "--analyze"
1873
- }, undefined, false, undefined, this)
1874
- }, undefined, false, undefined, this)
1873
+ })
1874
+ })
1875
1875
  ]
1876
- }, undefined, true, undefined, this),
1877
- /* @__PURE__ */ jsxDEV6("tr", {
1876
+ }),
1877
+ /* @__PURE__ */ jsxs6("tr", {
1878
1878
  children: [
1879
- /* @__PURE__ */ jsxDEV6("td", {
1879
+ /* @__PURE__ */ jsx6("td", {
1880
1880
  className: "py-2 pr-4",
1881
- children: /* @__PURE__ */ jsxDEV6("code", {
1881
+ children: /* @__PURE__ */ jsx6("code", {
1882
1882
  children: "--json"
1883
- }, undefined, false, undefined, this)
1884
- }, undefined, false, undefined, this),
1885
- /* @__PURE__ */ jsxDEV6("td", {
1883
+ })
1884
+ }),
1885
+ /* @__PURE__ */ jsx6("td", {
1886
1886
  className: "py-2 pr-4",
1887
1887
  children: "Output as JSON for scripting"
1888
- }, undefined, false, undefined, this),
1889
- /* @__PURE__ */ jsxDEV6("td", {
1888
+ }),
1889
+ /* @__PURE__ */ jsx6("td", {
1890
1890
  className: "py-2",
1891
- children: /* @__PURE__ */ jsxDEV6("code", {
1891
+ children: /* @__PURE__ */ jsx6("code", {
1892
1892
  children: "--json"
1893
- }, undefined, false, undefined, this)
1894
- }, undefined, false, undefined, this)
1893
+ })
1894
+ })
1895
1895
  ]
1896
- }, undefined, true, undefined, this)
1896
+ })
1897
1897
  ]
1898
- }, undefined, true, undefined, this)
1898
+ })
1899
1899
  ]
1900
- }, undefined, true, undefined, this)
1901
- }, undefined, false, undefined, this),
1902
- /* @__PURE__ */ jsxDEV6(CodeBlock5, {
1900
+ })
1901
+ }),
1902
+ /* @__PURE__ */ jsx6(CodeBlock5, {
1903
1903
  language: "bash",
1904
1904
  filename: "import-options",
1905
1905
  code: `# Import only specific modules
@@ -1913,21 +1913,21 @@ contractspec import ./src --output ./src/contracts/generated
1913
1913
 
1914
1914
  # Get JSON for CI/scripting
1915
1915
  contractspec import ./src --json > import-result.json`
1916
- }, undefined, false, undefined, this)
1916
+ })
1917
1917
  ]
1918
- }, undefined, true, undefined, this),
1919
- /* @__PURE__ */ jsxDEV6("div", {
1918
+ }),
1919
+ /* @__PURE__ */ jsxs6("div", {
1920
1920
  className: "space-y-3",
1921
1921
  children: [
1922
- /* @__PURE__ */ jsxDEV6("h2", {
1922
+ /* @__PURE__ */ jsx6("h2", {
1923
1923
  className: "text-2xl font-bold",
1924
1924
  children: "5) Registering imported contracts"
1925
- }, undefined, false, undefined, this),
1926
- /* @__PURE__ */ jsxDEV6("p", {
1925
+ }),
1926
+ /* @__PURE__ */ jsx6("p", {
1927
1927
  className: "text-muted-foreground text-sm",
1928
1928
  children: "After import, register contracts and add handlers:"
1929
- }, undefined, false, undefined, this),
1930
- /* @__PURE__ */ jsxDEV6(CodeBlock5, {
1929
+ }),
1930
+ /* @__PURE__ */ jsx6(CodeBlock5, {
1931
1931
  language: "typescript",
1932
1932
  filename: "src/contracts/registry.ts",
1933
1933
  code: `import {
@@ -1951,267 +1951,267 @@ installOp(registry, CreateUserCommand, async (input) => {
1951
1951
  const user = await db.user.create({ data: input });
1952
1952
  return { id: user.id };
1953
1953
  });`
1954
- }, undefined, false, undefined, this)
1954
+ })
1955
1955
  ]
1956
- }, undefined, true, undefined, this),
1957
- /* @__PURE__ */ jsxDEV6("div", {
1956
+ }),
1957
+ /* @__PURE__ */ jsxs6("div", {
1958
1958
  className: "space-y-3",
1959
1959
  children: [
1960
- /* @__PURE__ */ jsxDEV6("h2", {
1960
+ /* @__PURE__ */ jsx6("h2", {
1961
1961
  className: "text-2xl font-bold",
1962
1962
  children: "6) After importing"
1963
- }, undefined, false, undefined, this),
1964
- /* @__PURE__ */ jsxDEV6("ol", {
1963
+ }),
1964
+ /* @__PURE__ */ jsxs6("ol", {
1965
1965
  className: "text-muted-foreground list-decimal space-y-2 pl-5 text-sm",
1966
1966
  children: [
1967
- /* @__PURE__ */ jsxDEV6("li", {
1967
+ /* @__PURE__ */ jsxs6("li", {
1968
1968
  children: [
1969
- /* @__PURE__ */ jsxDEV6("strong", {
1969
+ /* @__PURE__ */ jsx6("strong", {
1970
1970
  children: "Review generated contracts"
1971
- }, undefined, false, undefined, this),
1971
+ }),
1972
1972
  " — Check the TODO placeholders and fill in descriptions, owners, and tags."
1973
1973
  ]
1974
- }, undefined, true, undefined, this),
1975
- /* @__PURE__ */ jsxDEV6("li", {
1974
+ }),
1975
+ /* @__PURE__ */ jsxs6("li", {
1976
1976
  children: [
1977
- /* @__PURE__ */ jsxDEV6("strong", {
1977
+ /* @__PURE__ */ jsx6("strong", {
1978
1978
  children: "Refine schemas"
1979
- }, undefined, false, undefined, this),
1979
+ }),
1980
1980
  " — Add proper types, validation rules, and error definitions."
1981
1981
  ]
1982
- }, undefined, true, undefined, this),
1983
- /* @__PURE__ */ jsxDEV6("li", {
1982
+ }),
1983
+ /* @__PURE__ */ jsxs6("li", {
1984
1984
  children: [
1985
- /* @__PURE__ */ jsxDEV6("strong", {
1985
+ /* @__PURE__ */ jsx6("strong", {
1986
1986
  children: "Run validation"
1987
- }, undefined, false, undefined, this),
1987
+ }),
1988
1988
  " —",
1989
1989
  " ",
1990
- /* @__PURE__ */ jsxDEV6("code", {
1990
+ /* @__PURE__ */ jsx6("code", {
1991
1991
  children: "contractspec validate"
1992
- }, undefined, false, undefined, this),
1992
+ }),
1993
1993
  " to ensure contracts are valid."
1994
1994
  ]
1995
- }, undefined, true, undefined, this),
1996
- /* @__PURE__ */ jsxDEV6("li", {
1995
+ }),
1996
+ /* @__PURE__ */ jsxs6("li", {
1997
1997
  children: [
1998
- /* @__PURE__ */ jsxDEV6("strong", {
1998
+ /* @__PURE__ */ jsx6("strong", {
1999
1999
  children: "Register and wire handlers"
2000
- }, undefined, false, undefined, this),
2000
+ }),
2001
2001
  " — Connect contracts to your existing business logic."
2002
2002
  ]
2003
- }, undefined, true, undefined, this),
2004
- /* @__PURE__ */ jsxDEV6("li", {
2003
+ }),
2004
+ /* @__PURE__ */ jsxs6("li", {
2005
2005
  children: [
2006
- /* @__PURE__ */ jsxDEV6("strong", {
2006
+ /* @__PURE__ */ jsx6("strong", {
2007
2007
  children: "Iterate"
2008
- }, undefined, false, undefined, this),
2008
+ }),
2009
2009
  " — The imported contracts are a starting point. Refine them as your spec matures."
2010
2010
  ]
2011
- }, undefined, true, undefined, this)
2011
+ })
2012
2012
  ]
2013
- }, undefined, true, undefined, this)
2013
+ })
2014
2014
  ]
2015
- }, undefined, true, undefined, this),
2016
- /* @__PURE__ */ jsxDEV6("div", {
2015
+ }),
2016
+ /* @__PURE__ */ jsxs6("div", {
2017
2017
  className: "space-y-3",
2018
2018
  children: [
2019
- /* @__PURE__ */ jsxDEV6("h2", {
2019
+ /* @__PURE__ */ jsxs6("h2", {
2020
2020
  className: "flex items-center gap-2 text-2xl font-bold",
2021
2021
  children: [
2022
- /* @__PURE__ */ jsxDEV6(AlertCircle, {
2022
+ /* @__PURE__ */ jsx6(AlertCircle, {
2023
2023
  size: 20,
2024
2024
  className: "text-yellow-400"
2025
- }, undefined, false, undefined, this),
2025
+ }),
2026
2026
  "Troubleshooting"
2027
2027
  ]
2028
- }, undefined, true, undefined, this),
2029
- /* @__PURE__ */ jsxDEV6("div", {
2028
+ }),
2029
+ /* @__PURE__ */ jsxs6("div", {
2030
2030
  className: "space-y-4",
2031
2031
  children: [
2032
- /* @__PURE__ */ jsxDEV6("div", {
2032
+ /* @__PURE__ */ jsxs6("div", {
2033
2033
  className: "card-subtle space-y-2 p-4",
2034
2034
  children: [
2035
- /* @__PURE__ */ jsxDEV6("h3", {
2035
+ /* @__PURE__ */ jsx6("h3", {
2036
2036
  className: "font-semibold",
2037
2037
  children: "Framework not detected"
2038
- }, undefined, false, undefined, this),
2039
- /* @__PURE__ */ jsxDEV6("p", {
2038
+ }),
2039
+ /* @__PURE__ */ jsxs6("p", {
2040
2040
  className: "text-muted-foreground text-sm",
2041
2041
  children: [
2042
2042
  "Use ",
2043
- /* @__PURE__ */ jsxDEV6("code", {
2043
+ /* @__PURE__ */ jsx6("code", {
2044
2044
  children: "--framework <name>"
2045
- }, undefined, false, undefined, this),
2045
+ }),
2046
2046
  " to force a specific framework. Check that your entry files follow standard patterns."
2047
2047
  ]
2048
- }, undefined, true, undefined, this)
2048
+ })
2049
2049
  ]
2050
- }, undefined, true, undefined, this),
2051
- /* @__PURE__ */ jsxDEV6("div", {
2050
+ }),
2051
+ /* @__PURE__ */ jsxs6("div", {
2052
2052
  className: "card-subtle space-y-2 p-4",
2053
2053
  children: [
2054
- /* @__PURE__ */ jsxDEV6("h3", {
2054
+ /* @__PURE__ */ jsx6("h3", {
2055
2055
  className: "font-semibold",
2056
2056
  children: "Missing schemas"
2057
- }, undefined, false, undefined, this),
2058
- /* @__PURE__ */ jsxDEV6("p", {
2057
+ }),
2058
+ /* @__PURE__ */ jsxs6("p", {
2059
2059
  className: "text-muted-foreground text-sm",
2060
2060
  children: [
2061
2061
  "Schema inference works best with explicit types. If using",
2062
2062
  " ",
2063
- /* @__PURE__ */ jsxDEV6("code", {
2063
+ /* @__PURE__ */ jsx6("code", {
2064
2064
  children: "any"
2065
- }, undefined, false, undefined, this),
2065
+ }),
2066
2066
  " or dynamic types, you'll see TODO placeholders. Fill them in manually."
2067
2067
  ]
2068
- }, undefined, true, undefined, this)
2068
+ })
2069
2069
  ]
2070
- }, undefined, true, undefined, this),
2071
- /* @__PURE__ */ jsxDEV6("div", {
2070
+ }),
2071
+ /* @__PURE__ */ jsxs6("div", {
2072
2072
  className: "card-subtle space-y-2 p-4",
2073
2073
  children: [
2074
- /* @__PURE__ */ jsxDEV6("h3", {
2074
+ /* @__PURE__ */ jsx6("h3", {
2075
2075
  className: "font-semibold",
2076
2076
  children: "Partial imports"
2077
- }, undefined, false, undefined, this),
2078
- /* @__PURE__ */ jsxDEV6("p", {
2077
+ }),
2078
+ /* @__PURE__ */ jsxs6("p", {
2079
2079
  className: "text-muted-foreground text-sm",
2080
2080
  children: [
2081
2081
  "Some endpoints may not be detected if they use unconventional patterns. Use ",
2082
- /* @__PURE__ */ jsxDEV6("code", {
2082
+ /* @__PURE__ */ jsx6("code", {
2083
2083
  children: "--analyze"
2084
- }, undefined, false, undefined, this),
2084
+ }),
2085
2085
  " to see what was found, then add missing contracts manually."
2086
2086
  ]
2087
- }, undefined, true, undefined, this)
2087
+ })
2088
2088
  ]
2089
- }, undefined, true, undefined, this)
2089
+ })
2090
2090
  ]
2091
- }, undefined, true, undefined, this)
2091
+ })
2092
2092
  ]
2093
- }, undefined, true, undefined, this),
2094
- /* @__PURE__ */ jsxDEV6(StudioPrompt, {
2093
+ }),
2094
+ /* @__PURE__ */ jsx6(StudioPrompt, {
2095
2095
  title: "Want evidence-driven migration priorities?",
2096
2096
  body: "Studio clusters product signals into scored patterns, then proposes spec-first change cards for the highest-impact areas."
2097
- }, undefined, false, undefined, this)
2097
+ })
2098
2098
  ]
2099
- }, undefined, true, undefined, this),
2100
- /* @__PURE__ */ jsxDEV6("div", {
2099
+ }),
2100
+ /* @__PURE__ */ jsxs6("div", {
2101
2101
  className: "flex items-center gap-4 pt-4",
2102
2102
  children: [
2103
- /* @__PURE__ */ jsxDEV6(Link6, {
2103
+ /* @__PURE__ */ jsxs6(Link6, {
2104
2104
  href: "/docs/guides/spec-validation-and-typing",
2105
2105
  className: "btn-primary",
2106
2106
  children: [
2107
2107
  "Next: Spec validation + typing ",
2108
- /* @__PURE__ */ jsxDEV6(ChevronRight5, {
2108
+ /* @__PURE__ */ jsx6(ChevronRight5, {
2109
2109
  size: 16
2110
- }, undefined, false, undefined, this)
2110
+ })
2111
2111
  ]
2112
- }, undefined, true, undefined, this),
2113
- /* @__PURE__ */ jsxDEV6(Link6, {
2112
+ }),
2113
+ /* @__PURE__ */ jsx6(Link6, {
2114
2114
  href: "/docs/guides",
2115
2115
  className: "btn-ghost",
2116
2116
  children: "Back to guides"
2117
- }, undefined, false, undefined, this)
2117
+ })
2118
2118
  ]
2119
- }, undefined, true, undefined, this)
2119
+ })
2120
2120
  ]
2121
- }, undefined, true, undefined, this);
2121
+ });
2122
2122
  }
2123
2123
 
2124
2124
  // src/components/docs/guides/GuideNextjsOneEndpointPage.tsx
2125
2125
  import { CodeBlock as CodeBlock6 } from "@contractspec/lib.design-system";
2126
2126
  import Link7 from "@contractspec/lib.ui-link";
2127
2127
  import { ChevronRight as ChevronRight6 } from "lucide-react";
2128
- import { jsxDEV as jsxDEV7 } from "react/jsx-dev-runtime";
2128
+ import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
2129
2129
  function GuideNextjsOneEndpointPage() {
2130
- return /* @__PURE__ */ jsxDEV7("div", {
2130
+ return /* @__PURE__ */ jsxs7("div", {
2131
2131
  className: "space-y-8",
2132
2132
  children: [
2133
- /* @__PURE__ */ jsxDEV7("div", {
2133
+ /* @__PURE__ */ jsxs7("div", {
2134
2134
  className: "space-y-3",
2135
2135
  children: [
2136
- /* @__PURE__ */ jsxDEV7("h1", {
2136
+ /* @__PURE__ */ jsx7("h1", {
2137
2137
  className: "text-4xl font-bold",
2138
2138
  children: "Next.js: add one endpoint"
2139
- }, undefined, false, undefined, this),
2140
- /* @__PURE__ */ jsxDEV7("p", {
2139
+ }),
2140
+ /* @__PURE__ */ jsx7("p", {
2141
2141
  className: "text-muted-foreground text-lg",
2142
2142
  children: "Add ContractSpec to an existing Next.js App Router project by wiring a single operation end-to-end with validation and types."
2143
- }, undefined, false, undefined, this)
2143
+ })
2144
2144
  ]
2145
- }, undefined, true, undefined, this),
2146
- /* @__PURE__ */ jsxDEV7("div", {
2145
+ }),
2146
+ /* @__PURE__ */ jsxs7("div", {
2147
2147
  className: "card-subtle space-y-4 p-6",
2148
2148
  children: [
2149
- /* @__PURE__ */ jsxDEV7("h2", {
2149
+ /* @__PURE__ */ jsx7("h2", {
2150
2150
  className: "text-2xl font-bold",
2151
2151
  children: "What you'll build"
2152
- }, undefined, false, undefined, this),
2153
- /* @__PURE__ */ jsxDEV7("ul", {
2152
+ }),
2153
+ /* @__PURE__ */ jsxs7("ul", {
2154
2154
  className: "text-muted-foreground space-y-2 text-sm",
2155
2155
  children: [
2156
- /* @__PURE__ */ jsxDEV7("li", {
2156
+ /* @__PURE__ */ jsx7("li", {
2157
2157
  children: "One OperationSpec with SchemaModel validation."
2158
- }, undefined, false, undefined, this),
2159
- /* @__PURE__ */ jsxDEV7("li", {
2158
+ }),
2159
+ /* @__PURE__ */ jsx7("li", {
2160
2160
  children: "A registry wiring the operation to its handler."
2161
- }, undefined, false, undefined, this),
2162
- /* @__PURE__ */ jsxDEV7("li", {
2161
+ }),
2162
+ /* @__PURE__ */ jsx7("li", {
2163
2163
  children: "A Next.js route handler that exposes the operation."
2164
- }, undefined, false, undefined, this)
2164
+ })
2165
2165
  ]
2166
- }, undefined, true, undefined, this)
2166
+ })
2167
2167
  ]
2168
- }, undefined, true, undefined, this),
2169
- /* @__PURE__ */ jsxDEV7("div", {
2168
+ }),
2169
+ /* @__PURE__ */ jsxs7("div", {
2170
2170
  className: "space-y-6",
2171
2171
  children: [
2172
- /* @__PURE__ */ jsxDEV7("div", {
2172
+ /* @__PURE__ */ jsxs7("div", {
2173
2173
  className: "space-y-3",
2174
2174
  children: [
2175
- /* @__PURE__ */ jsxDEV7("h2", {
2175
+ /* @__PURE__ */ jsx7("h2", {
2176
2176
  className: "text-2xl font-bold",
2177
2177
  children: "1) Install core packages"
2178
- }, undefined, false, undefined, this),
2179
- /* @__PURE__ */ jsxDEV7(CodeBlock6, {
2178
+ }),
2179
+ /* @__PURE__ */ jsx7(CodeBlock6, {
2180
2180
  language: "bash",
2181
2181
  filename: "nextjs-install",
2182
2182
  code: `bun add -D contractspec
2183
2183
  bun add @contractspec/lib.contracts-spec @contractspec/lib.contracts-runtime-server-rest @contractspec/lib.schema`
2184
- }, undefined, false, undefined, this),
2185
- /* @__PURE__ */ jsxDEV7("p", {
2184
+ }),
2185
+ /* @__PURE__ */ jsxs7("p", {
2186
2186
  className: "text-muted-foreground text-sm",
2187
2187
  children: [
2188
2188
  "Expected output: ",
2189
- /* @__PURE__ */ jsxDEV7("code", {
2189
+ /* @__PURE__ */ jsx7("code", {
2190
2190
  children: "added 3 packages"
2191
- }, undefined, false, undefined, this),
2191
+ }),
2192
2192
  " and a lockfile update."
2193
2193
  ]
2194
- }, undefined, true, undefined, this)
2194
+ })
2195
2195
  ]
2196
- }, undefined, true, undefined, this),
2197
- /* @__PURE__ */ jsxDEV7("div", {
2196
+ }),
2197
+ /* @__PURE__ */ jsxs7("div", {
2198
2198
  className: "space-y-3",
2199
2199
  children: [
2200
- /* @__PURE__ */ jsxDEV7("h2", {
2200
+ /* @__PURE__ */ jsx7("h2", {
2201
2201
  className: "text-2xl font-bold",
2202
2202
  children: "2) Define the operation spec"
2203
- }, undefined, false, undefined, this),
2204
- /* @__PURE__ */ jsxDEV7("p", {
2203
+ }),
2204
+ /* @__PURE__ */ jsxs7("p", {
2205
2205
  className: "text-muted-foreground text-sm",
2206
2206
  children: [
2207
2207
  "Create ",
2208
- /* @__PURE__ */ jsxDEV7("code", {
2208
+ /* @__PURE__ */ jsx7("code", {
2209
2209
  children: "src/contracts/healthcheck.operation.ts"
2210
- }, undefined, false, undefined, this),
2210
+ }),
2211
2211
  ":"
2212
2212
  ]
2213
- }, undefined, true, undefined, this),
2214
- /* @__PURE__ */ jsxDEV7(CodeBlock6, {
2213
+ }),
2214
+ /* @__PURE__ */ jsx7(CodeBlock6, {
2215
2215
  language: "typescript",
2216
2216
  filename: "src/contracts/healthcheck.operation.ts",
2217
2217
  code: `import { defineQuery } from "@contractspec/lib.contracts-spec/operations";
@@ -2243,30 +2243,30 @@ export const HealthcheckQuery = defineQuery({
2243
2243
  transport: {
2244
2244
  rest: { method: "GET" },
2245
2245
  gql: { field: "healthcheck_get" },
2246
- mcp: { toolName: "healthcheck.get.v1" },
2246
+ mcp: { toolName: "healthcheck_get-v1" },
2247
2247
  },
2248
2248
  });`
2249
- }, undefined, false, undefined, this)
2249
+ })
2250
2250
  ]
2251
- }, undefined, true, undefined, this),
2252
- /* @__PURE__ */ jsxDEV7("div", {
2251
+ }),
2252
+ /* @__PURE__ */ jsxs7("div", {
2253
2253
  className: "space-y-3",
2254
2254
  children: [
2255
- /* @__PURE__ */ jsxDEV7("h2", {
2255
+ /* @__PURE__ */ jsx7("h2", {
2256
2256
  className: "text-2xl font-bold",
2257
2257
  children: "3) Register the operation"
2258
- }, undefined, false, undefined, this),
2259
- /* @__PURE__ */ jsxDEV7("p", {
2258
+ }),
2259
+ /* @__PURE__ */ jsxs7("p", {
2260
2260
  className: "text-muted-foreground text-sm",
2261
2261
  children: [
2262
2262
  "Create ",
2263
- /* @__PURE__ */ jsxDEV7("code", {
2263
+ /* @__PURE__ */ jsx7("code", {
2264
2264
  children: "src/contracts/registry.ts"
2265
- }, undefined, false, undefined, this),
2265
+ }),
2266
2266
  ":"
2267
2267
  ]
2268
- }, undefined, true, undefined, this),
2269
- /* @__PURE__ */ jsxDEV7(CodeBlock6, {
2268
+ }),
2269
+ /* @__PURE__ */ jsx7(CodeBlock6, {
2270
2270
  language: "typescript",
2271
2271
  filename: "src/contracts/registry.ts",
2272
2272
  code: `import {
@@ -2281,27 +2281,27 @@ installOp(registry, HealthcheckQuery, async () => ({
2281
2281
  status: "ok",
2282
2282
  checkedAt: new Date().toISOString(),
2283
2283
  }));`
2284
- }, undefined, false, undefined, this)
2284
+ })
2285
2285
  ]
2286
- }, undefined, true, undefined, this),
2287
- /* @__PURE__ */ jsxDEV7("div", {
2286
+ }),
2287
+ /* @__PURE__ */ jsxs7("div", {
2288
2288
  className: "space-y-3",
2289
2289
  children: [
2290
- /* @__PURE__ */ jsxDEV7("h2", {
2290
+ /* @__PURE__ */ jsx7("h2", {
2291
2291
  className: "text-2xl font-bold",
2292
2292
  children: "4) Add the Next.js handler"
2293
- }, undefined, false, undefined, this),
2294
- /* @__PURE__ */ jsxDEV7("p", {
2293
+ }),
2294
+ /* @__PURE__ */ jsxs7("p", {
2295
2295
  className: "text-muted-foreground text-sm",
2296
2296
  children: [
2297
2297
  "Create ",
2298
- /* @__PURE__ */ jsxDEV7("code", {
2298
+ /* @__PURE__ */ jsx7("code", {
2299
2299
  children: "app/api/ops/[...route]/route.ts"
2300
- }, undefined, false, undefined, this),
2300
+ }),
2301
2301
  ":"
2302
2302
  ]
2303
- }, undefined, true, undefined, this),
2304
- /* @__PURE__ */ jsxDEV7(CodeBlock6, {
2303
+ }),
2304
+ /* @__PURE__ */ jsx7(CodeBlock6, {
2305
2305
  language: "typescript",
2306
2306
  filename: "app/api/ops/[...route]/route.ts",
2307
2307
  code: `import { makeNextAppHandler } from "@contractspec/lib.contracts-runtime-server-rest/rest-next-app";
@@ -2313,61 +2313,61 @@ const handler = makeNextAppHandler(registry, async () => ({
2313
2313
  }));
2314
2314
 
2315
2315
  export { handler as GET, handler as POST };`
2316
- }, undefined, false, undefined, this),
2317
- /* @__PURE__ */ jsxDEV7("p", {
2316
+ }),
2317
+ /* @__PURE__ */ jsxs7("p", {
2318
2318
  className: "text-muted-foreground text-sm",
2319
2319
  children: [
2320
2320
  "Expected output: the route responds at",
2321
- /* @__PURE__ */ jsxDEV7("code", {
2321
+ /* @__PURE__ */ jsx7("code", {
2322
2322
  children: " /api/ops/healthcheck.get"
2323
- }, undefined, false, undefined, this),
2323
+ }),
2324
2324
  "."
2325
2325
  ]
2326
- }, undefined, true, undefined, this)
2326
+ })
2327
2327
  ]
2328
- }, undefined, true, undefined, this),
2329
- /* @__PURE__ */ jsxDEV7("div", {
2328
+ }),
2329
+ /* @__PURE__ */ jsxs7("div", {
2330
2330
  className: "space-y-3",
2331
2331
  children: [
2332
- /* @__PURE__ */ jsxDEV7("h2", {
2332
+ /* @__PURE__ */ jsx7("h2", {
2333
2333
  className: "text-2xl font-bold",
2334
2334
  children: "5) Validate the spec"
2335
- }, undefined, false, undefined, this),
2336
- /* @__PURE__ */ jsxDEV7(CodeBlock6, {
2335
+ }),
2336
+ /* @__PURE__ */ jsx7(CodeBlock6, {
2337
2337
  language: "bash",
2338
2338
  filename: "nextjs-validate",
2339
2339
  code: `contractspec validate src/contracts/healthcheck.operation.ts`
2340
- }, undefined, false, undefined, this),
2341
- /* @__PURE__ */ jsxDEV7("p", {
2340
+ }),
2341
+ /* @__PURE__ */ jsxs7("p", {
2342
2342
  className: "text-muted-foreground text-sm",
2343
2343
  children: [
2344
2344
  "Expected output: ",
2345
- /* @__PURE__ */ jsxDEV7("code", {
2345
+ /* @__PURE__ */ jsx7("code", {
2346
2346
  children: "Validation passed"
2347
- }, undefined, false, undefined, this),
2347
+ }),
2348
2348
  "."
2349
2349
  ]
2350
- }, undefined, true, undefined, this)
2350
+ })
2351
2351
  ]
2352
- }, undefined, true, undefined, this),
2353
- /* @__PURE__ */ jsxDEV7("div", {
2352
+ }),
2353
+ /* @__PURE__ */ jsxs7("div", {
2354
2354
  className: "card-subtle space-y-3 p-6",
2355
2355
  children: [
2356
- /* @__PURE__ */ jsxDEV7("h3", {
2356
+ /* @__PURE__ */ jsx7("h3", {
2357
2357
  className: "text-lg font-semibold",
2358
2358
  children: "Example package"
2359
- }, undefined, false, undefined, this),
2360
- /* @__PURE__ */ jsxDEV7("p", {
2359
+ }),
2360
+ /* @__PURE__ */ jsxs7("p", {
2361
2361
  className: "text-muted-foreground text-sm",
2362
2362
  children: [
2363
2363
  "Use ",
2364
- /* @__PURE__ */ jsxDEV7("code", {
2364
+ /* @__PURE__ */ jsx7("code", {
2365
2365
  children: "@contractspec/example.lifecycle-dashboard"
2366
- }, undefined, false, undefined, this),
2366
+ }),
2367
2367
  " as a lightweight Next.js snippet reference."
2368
2368
  ]
2369
- }, undefined, true, undefined, this),
2370
- /* @__PURE__ */ jsxDEV7(CodeBlock6, {
2369
+ }),
2370
+ /* @__PURE__ */ jsx7(CodeBlock6, {
2371
2371
  language: "bash",
2372
2372
  filename: "nextjs-example",
2373
2373
  code: `# Inspect the example docs
@@ -2375,105 +2375,105 @@ contractspec examples show lifecycle-dashboard
2375
2375
 
2376
2376
  # Validate all example manifests in this repo
2377
2377
  contractspec examples validate --repo-root .`
2378
- }, undefined, false, undefined, this)
2378
+ })
2379
2379
  ]
2380
- }, undefined, true, undefined, this),
2381
- /* @__PURE__ */ jsxDEV7(StudioPrompt, {
2380
+ }),
2381
+ /* @__PURE__ */ jsx7(StudioPrompt, {
2382
2382
  title: "Want real product evidence behind endpoint changes?",
2383
2383
  body: "Studio correlates meetings, support, analytics, and code signals before compiling endpoint decisions into spec diffs."
2384
- }, undefined, false, undefined, this)
2384
+ })
2385
2385
  ]
2386
- }, undefined, true, undefined, this),
2387
- /* @__PURE__ */ jsxDEV7("div", {
2386
+ }),
2387
+ /* @__PURE__ */ jsxs7("div", {
2388
2388
  className: "flex items-center gap-4 pt-4",
2389
2389
  children: [
2390
- /* @__PURE__ */ jsxDEV7(Link7, {
2390
+ /* @__PURE__ */ jsxs7(Link7, {
2391
2391
  href: "/docs/guides/spec-validation-and-typing",
2392
2392
  className: "btn-primary",
2393
2393
  children: [
2394
2394
  "Next: Spec validation + typing ",
2395
- /* @__PURE__ */ jsxDEV7(ChevronRight6, {
2395
+ /* @__PURE__ */ jsx7(ChevronRight6, {
2396
2396
  size: 16
2397
- }, undefined, false, undefined, this)
2397
+ })
2398
2398
  ]
2399
- }, undefined, true, undefined, this),
2400
- /* @__PURE__ */ jsxDEV7(Link7, {
2399
+ }),
2400
+ /* @__PURE__ */ jsx7(Link7, {
2401
2401
  href: "/docs/guides",
2402
2402
  className: "btn-ghost",
2403
2403
  children: "Back to guides"
2404
- }, undefined, false, undefined, this)
2404
+ })
2405
2405
  ]
2406
- }, undefined, true, undefined, this)
2406
+ })
2407
2407
  ]
2408
- }, undefined, true, undefined, this);
2408
+ });
2409
2409
  }
2410
2410
 
2411
2411
  // src/components/docs/guides/GuideSpecValidationTypingPage.tsx
2412
2412
  import { CodeBlock as CodeBlock7 } from "@contractspec/lib.design-system";
2413
2413
  import Link8 from "@contractspec/lib.ui-link";
2414
2414
  import { ChevronRight as ChevronRight7 } from "lucide-react";
2415
- import { jsxDEV as jsxDEV8 } from "react/jsx-dev-runtime";
2415
+ import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
2416
2416
  function GuideSpecValidationTypingPage() {
2417
- return /* @__PURE__ */ jsxDEV8("div", {
2417
+ return /* @__PURE__ */ jsxs8("div", {
2418
2418
  className: "space-y-8",
2419
2419
  children: [
2420
- /* @__PURE__ */ jsxDEV8("div", {
2420
+ /* @__PURE__ */ jsxs8("div", {
2421
2421
  className: "space-y-3",
2422
2422
  children: [
2423
- /* @__PURE__ */ jsxDEV8("h1", {
2423
+ /* @__PURE__ */ jsx8("h1", {
2424
2424
  className: "text-4xl font-bold",
2425
2425
  children: "Spec-driven validation + typing"
2426
- }, undefined, false, undefined, this),
2427
- /* @__PURE__ */ jsxDEV8("p", {
2426
+ }),
2427
+ /* @__PURE__ */ jsx8("p", {
2428
2428
  className: "text-muted-foreground text-lg",
2429
2429
  children: "Define a single operation with SchemaModel, generate validation, and keep your existing handler logic."
2430
- }, undefined, false, undefined, this)
2430
+ })
2431
2431
  ]
2432
- }, undefined, true, undefined, this),
2433
- /* @__PURE__ */ jsxDEV8("div", {
2432
+ }),
2433
+ /* @__PURE__ */ jsxs8("div", {
2434
2434
  className: "card-subtle space-y-4 p-6",
2435
2435
  children: [
2436
- /* @__PURE__ */ jsxDEV8("h2", {
2436
+ /* @__PURE__ */ jsx8("h2", {
2437
2437
  className: "text-2xl font-bold",
2438
2438
  children: "What you'll build"
2439
- }, undefined, false, undefined, this),
2440
- /* @__PURE__ */ jsxDEV8("ul", {
2439
+ }),
2440
+ /* @__PURE__ */ jsxs8("ul", {
2441
2441
  className: "text-muted-foreground space-y-2 text-sm",
2442
2442
  children: [
2443
- /* @__PURE__ */ jsxDEV8("li", {
2443
+ /* @__PURE__ */ jsx8("li", {
2444
2444
  children: "One command spec with explicit input/output models."
2445
- }, undefined, false, undefined, this),
2446
- /* @__PURE__ */ jsxDEV8("li", {
2445
+ }),
2446
+ /* @__PURE__ */ jsx8("li", {
2447
2447
  children: "Validation + typing without rewriting your service layer."
2448
- }, undefined, false, undefined, this),
2449
- /* @__PURE__ */ jsxDEV8("li", {
2448
+ }),
2449
+ /* @__PURE__ */ jsx8("li", {
2450
2450
  children: "Clear acceptance scenarios for regression safety."
2451
- }, undefined, false, undefined, this)
2451
+ })
2452
2452
  ]
2453
- }, undefined, true, undefined, this)
2453
+ })
2454
2454
  ]
2455
- }, undefined, true, undefined, this),
2456
- /* @__PURE__ */ jsxDEV8("div", {
2455
+ }),
2456
+ /* @__PURE__ */ jsxs8("div", {
2457
2457
  className: "space-y-6",
2458
2458
  children: [
2459
- /* @__PURE__ */ jsxDEV8("div", {
2459
+ /* @__PURE__ */ jsxs8("div", {
2460
2460
  className: "space-y-3",
2461
2461
  children: [
2462
- /* @__PURE__ */ jsxDEV8("h2", {
2462
+ /* @__PURE__ */ jsx8("h2", {
2463
2463
  className: "text-2xl font-bold",
2464
2464
  children: "1) Define the spec"
2465
- }, undefined, false, undefined, this),
2466
- /* @__PURE__ */ jsxDEV8("p", {
2465
+ }),
2466
+ /* @__PURE__ */ jsxs8("p", {
2467
2467
  className: "text-muted-foreground text-sm",
2468
2468
  children: [
2469
2469
  "Create ",
2470
- /* @__PURE__ */ jsxDEV8("code", {
2470
+ /* @__PURE__ */ jsx8("code", {
2471
2471
  children: "src/contracts/contact-create.operation.ts"
2472
- }, undefined, false, undefined, this),
2472
+ }),
2473
2473
  ":"
2474
2474
  ]
2475
- }, undefined, true, undefined, this),
2476
- /* @__PURE__ */ jsxDEV8(CodeBlock7, {
2475
+ }),
2476
+ /* @__PURE__ */ jsx8(CodeBlock7, {
2477
2477
  language: "typescript",
2478
2478
  filename: "src/contracts/contact-create.operation.ts",
2479
2479
  code: `import { defineCommand } from "@contractspec/lib.contracts-spec/operations";
@@ -2523,21 +2523,21 @@ export const ContactCreateCommand = defineCommand({
2523
2523
  ],
2524
2524
  },
2525
2525
  });`
2526
- }, undefined, false, undefined, this)
2526
+ })
2527
2527
  ]
2528
- }, undefined, true, undefined, this),
2529
- /* @__PURE__ */ jsxDEV8("div", {
2528
+ }),
2529
+ /* @__PURE__ */ jsxs8("div", {
2530
2530
  className: "space-y-3",
2531
2531
  children: [
2532
- /* @__PURE__ */ jsxDEV8("h2", {
2532
+ /* @__PURE__ */ jsx8("h2", {
2533
2533
  className: "text-2xl font-bold",
2534
2534
  children: "2) Wire the handler"
2535
- }, undefined, false, undefined, this),
2536
- /* @__PURE__ */ jsxDEV8("p", {
2535
+ }),
2536
+ /* @__PURE__ */ jsx8("p", {
2537
2537
  className: "text-muted-foreground text-sm",
2538
2538
  children: "Keep your existing code. Just ensure the handler returns the output shape defined above."
2539
- }, undefined, false, undefined, this),
2540
- /* @__PURE__ */ jsxDEV8(CodeBlock7, {
2539
+ }),
2540
+ /* @__PURE__ */ jsx8(CodeBlock7, {
2541
2541
  language: "typescript",
2542
2542
  filename: "src/handlers/contact-create.ts",
2543
2543
  code: `import { ContactCreateCommand } from "@/contracts/contact-create.operation";
@@ -2553,45 +2553,45 @@ export const ContactCreateCommand = defineCommand({
2553
2553
  createdAt: new Date().toISOString(),
2554
2554
  };
2555
2555
  }`
2556
- }, undefined, false, undefined, this)
2556
+ })
2557
2557
  ]
2558
- }, undefined, true, undefined, this),
2559
- /* @__PURE__ */ jsxDEV8("div", {
2558
+ }),
2559
+ /* @__PURE__ */ jsxs8("div", {
2560
2560
  className: "space-y-3",
2561
2561
  children: [
2562
- /* @__PURE__ */ jsxDEV8("h2", {
2562
+ /* @__PURE__ */ jsx8("h2", {
2563
2563
  className: "text-2xl font-bold",
2564
2564
  children: "3) Validate"
2565
- }, undefined, false, undefined, this),
2566
- /* @__PURE__ */ jsxDEV8(CodeBlock7, {
2565
+ }),
2566
+ /* @__PURE__ */ jsx8(CodeBlock7, {
2567
2567
  language: "bash",
2568
2568
  filename: "spec-validation",
2569
2569
  code: `contractspec validate src/contracts/contact-create.operation.ts`
2570
- }, undefined, false, undefined, this),
2571
- /* @__PURE__ */ jsxDEV8("p", {
2570
+ }),
2571
+ /* @__PURE__ */ jsxs8("p", {
2572
2572
  className: "text-muted-foreground text-sm",
2573
2573
  children: [
2574
2574
  "Expected output: ",
2575
- /* @__PURE__ */ jsxDEV8("code", {
2575
+ /* @__PURE__ */ jsx8("code", {
2576
2576
  children: "Validation passed"
2577
- }, undefined, false, undefined, this),
2577
+ }),
2578
2578
  "."
2579
2579
  ]
2580
- }, undefined, true, undefined, this)
2580
+ })
2581
2581
  ]
2582
- }, undefined, true, undefined, this),
2583
- /* @__PURE__ */ jsxDEV8("div", {
2582
+ }),
2583
+ /* @__PURE__ */ jsxs8("div", {
2584
2584
  className: "card-subtle space-y-3 p-6",
2585
2585
  children: [
2586
- /* @__PURE__ */ jsxDEV8("h3", {
2586
+ /* @__PURE__ */ jsx8("h3", {
2587
2587
  className: "text-lg font-semibold",
2588
2588
  children: "Example package"
2589
- }, undefined, false, undefined, this),
2590
- /* @__PURE__ */ jsxDEV8("p", {
2589
+ }),
2590
+ /* @__PURE__ */ jsx8("p", {
2591
2591
  className: "text-muted-foreground text-sm",
2592
2592
  children: "The CRM Pipeline example includes real specs, handlers, and presentations for contact + deal flows."
2593
- }, undefined, false, undefined, this),
2594
- /* @__PURE__ */ jsxDEV8(CodeBlock7, {
2593
+ }),
2594
+ /* @__PURE__ */ jsx8(CodeBlock7, {
2595
2595
  language: "bash",
2596
2596
  filename: "crm-example",
2597
2597
  code: `# Build + validate the CRM pipeline example
@@ -2599,44 +2599,44 @@ cd packages/examples/crm-pipeline
2599
2599
  bun install
2600
2600
  bun run build
2601
2601
  bun run validate`
2602
- }, undefined, false, undefined, this)
2602
+ })
2603
2603
  ]
2604
- }, undefined, true, undefined, this),
2605
- /* @__PURE__ */ jsxDEV8(StudioPrompt, {
2604
+ }),
2605
+ /* @__PURE__ */ jsx8(StudioPrompt, {
2606
2606
  title: "Need validation tied to real outcomes?",
2607
2607
  body: "Studio links checks to evidence, focus decisions, and post-release verification so specs evolve with product truth."
2608
- }, undefined, false, undefined, this)
2608
+ })
2609
2609
  ]
2610
- }, undefined, true, undefined, this),
2611
- /* @__PURE__ */ jsxDEV8("div", {
2610
+ }),
2611
+ /* @__PURE__ */ jsxs8("div", {
2612
2612
  className: "flex items-center gap-4 pt-4",
2613
2613
  children: [
2614
- /* @__PURE__ */ jsxDEV8(Link8, {
2614
+ /* @__PURE__ */ jsxs8(Link8, {
2615
2615
  href: "/docs/guides/generate-docs-clients-schemas",
2616
2616
  className: "btn-primary",
2617
2617
  children: [
2618
2618
  "Next: Generate docs + clients ",
2619
- /* @__PURE__ */ jsxDEV8(ChevronRight7, {
2619
+ /* @__PURE__ */ jsx8(ChevronRight7, {
2620
2620
  size: 16
2621
- }, undefined, false, undefined, this)
2621
+ })
2622
2622
  ]
2623
- }, undefined, true, undefined, this),
2624
- /* @__PURE__ */ jsxDEV8(Link8, {
2623
+ }),
2624
+ /* @__PURE__ */ jsx8(Link8, {
2625
2625
  href: "/docs/guides",
2626
2626
  className: "btn-ghost",
2627
2627
  children: "Back to guides"
2628
- }, undefined, false, undefined, this)
2628
+ })
2629
2629
  ]
2630
- }, undefined, true, undefined, this)
2630
+ })
2631
2631
  ]
2632
- }, undefined, true, undefined, this);
2632
+ });
2633
2633
  }
2634
2634
 
2635
2635
  // src/components/docs/guides/GuidesIndexPage.tsx
2636
2636
  import { CodeBlock as CodeBlock8 } from "@contractspec/lib.design-system";
2637
2637
  import Link9 from "@contractspec/lib.ui-link";
2638
2638
  import { ArrowRight, BookOpen, CheckCircle2 } from "lucide-react";
2639
- import { jsxDEV as jsxDEV9 } from "react/jsx-dev-runtime";
2639
+ import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
2640
2640
  var guides = [
2641
2641
  {
2642
2642
  title: "Contract types overview",
@@ -2682,89 +2682,89 @@ var guides = [
2682
2682
  }
2683
2683
  ];
2684
2684
  function GuidesIndexPage() {
2685
- return /* @__PURE__ */ jsxDEV9("div", {
2685
+ return /* @__PURE__ */ jsxs9("div", {
2686
2686
  className: "space-y-10",
2687
2687
  children: [
2688
- /* @__PURE__ */ jsxDEV9("div", {
2688
+ /* @__PURE__ */ jsxs9("div", {
2689
2689
  className: "space-y-3",
2690
2690
  children: [
2691
- /* @__PURE__ */ jsxDEV9("h1", {
2691
+ /* @__PURE__ */ jsx9("h1", {
2692
2692
  className: "text-4xl font-bold",
2693
2693
  children: "Guides"
2694
- }, undefined, false, undefined, this),
2695
- /* @__PURE__ */ jsxDEV9("p", {
2694
+ }),
2695
+ /* @__PURE__ */ jsx9("p", {
2696
2696
  className: "text-muted-foreground text-lg",
2697
2697
  children: "Hands-on guides with commands, expected output, and CI-verified example packages."
2698
- }, undefined, false, undefined, this)
2698
+ })
2699
2699
  ]
2700
- }, undefined, true, undefined, this),
2701
- /* @__PURE__ */ jsxDEV9("div", {
2700
+ }),
2701
+ /* @__PURE__ */ jsx9("div", {
2702
2702
  className: "grid gap-4 md:grid-cols-2",
2703
- children: guides.map((guide) => /* @__PURE__ */ jsxDEV9(Link9, {
2703
+ children: guides.map((guide) => /* @__PURE__ */ jsxs9(Link9, {
2704
2704
  href: guide.href,
2705
2705
  className: "card-subtle group space-y-3 p-6 transition-colors hover:border-violet-500/50",
2706
2706
  children: [
2707
- /* @__PURE__ */ jsxDEV9("div", {
2707
+ /* @__PURE__ */ jsxs9("div", {
2708
2708
  className: "flex items-center justify-between",
2709
2709
  children: [
2710
- /* @__PURE__ */ jsxDEV9("h2", {
2710
+ /* @__PURE__ */ jsx9("h2", {
2711
2711
  className: "text-xl font-semibold transition-colors group-hover:text-violet-400",
2712
2712
  children: guide.title
2713
- }, undefined, false, undefined, this),
2714
- /* @__PURE__ */ jsxDEV9(ArrowRight, {
2713
+ }),
2714
+ /* @__PURE__ */ jsx9(ArrowRight, {
2715
2715
  className: "text-violet-400",
2716
2716
  size: 18
2717
- }, undefined, false, undefined, this)
2717
+ })
2718
2718
  ]
2719
- }, undefined, true, undefined, this),
2720
- /* @__PURE__ */ jsxDEV9("p", {
2719
+ }),
2720
+ /* @__PURE__ */ jsx9("p", {
2721
2721
  className: "text-muted-foreground text-sm",
2722
2722
  children: guide.description
2723
- }, undefined, false, undefined, this),
2724
- /* @__PURE__ */ jsxDEV9("div", {
2723
+ }),
2724
+ /* @__PURE__ */ jsxs9("div", {
2725
2725
  className: "text-muted-foreground flex items-center gap-2 text-xs",
2726
2726
  children: [
2727
- /* @__PURE__ */ jsxDEV9(CheckCircle2, {
2727
+ /* @__PURE__ */ jsx9(CheckCircle2, {
2728
2728
  size: 14
2729
- }, undefined, false, undefined, this),
2730
- /* @__PURE__ */ jsxDEV9("span", {
2729
+ }),
2730
+ /* @__PURE__ */ jsxs9("span", {
2731
2731
  children: [
2732
2732
  "Target time: ",
2733
2733
  guide.time
2734
2734
  ]
2735
- }, undefined, true, undefined, this)
2735
+ })
2736
2736
  ]
2737
- }, undefined, true, undefined, this)
2737
+ })
2738
2738
  ]
2739
- }, guide.href, true, undefined, this))
2740
- }, undefined, false, undefined, this),
2741
- /* @__PURE__ */ jsxDEV9("div", {
2739
+ }, guide.href))
2740
+ }),
2741
+ /* @__PURE__ */ jsxs9("div", {
2742
2742
  className: "card-subtle space-y-4 p-6",
2743
2743
  children: [
2744
- /* @__PURE__ */ jsxDEV9("div", {
2744
+ /* @__PURE__ */ jsxs9("div", {
2745
2745
  className: "flex items-center gap-2 text-sm font-semibold tracking-[0.2em] text-violet-400 uppercase",
2746
2746
  children: [
2747
- /* @__PURE__ */ jsxDEV9(BookOpen, {
2747
+ /* @__PURE__ */ jsx9(BookOpen, {
2748
2748
  size: 16
2749
- }, undefined, false, undefined, this),
2749
+ }),
2750
2750
  "How to use the guides"
2751
2751
  ]
2752
- }, undefined, true, undefined, this),
2753
- /* @__PURE__ */ jsxDEV9("ul", {
2752
+ }),
2753
+ /* @__PURE__ */ jsxs9("ul", {
2754
2754
  className: "text-muted-foreground space-y-2 text-sm",
2755
2755
  children: [
2756
- /* @__PURE__ */ jsxDEV9("li", {
2756
+ /* @__PURE__ */ jsx9("li", {
2757
2757
  children: "Run each guide in a fresh branch or sandbox workspace."
2758
- }, undefined, false, undefined, this),
2759
- /* @__PURE__ */ jsxDEV9("li", {
2758
+ }),
2759
+ /* @__PURE__ */ jsx9("li", {
2760
2760
  children: "Use the linked example package to validate end-to-end."
2761
- }, undefined, false, undefined, this),
2762
- /* @__PURE__ */ jsxDEV9("li", {
2761
+ }),
2762
+ /* @__PURE__ */ jsx9("li", {
2763
2763
  children: "Keep the commands as written to match CI expectations."
2764
- }, undefined, false, undefined, this)
2764
+ })
2765
2765
  ]
2766
- }, undefined, true, undefined, this),
2767
- /* @__PURE__ */ jsxDEV9(CodeBlock8, {
2766
+ }),
2767
+ /* @__PURE__ */ jsx9(CodeBlock8, {
2768
2768
  language: "bash",
2769
2769
  filename: "guides-quickstart",
2770
2770
  code: `# list all examples
@@ -2772,11 +2772,11 @@ contractspec examples list
2772
2772
 
2773
2773
  # validate example packages in this repo
2774
2774
  contractspec examples validate --repo-root .`
2775
- }, undefined, false, undefined, this)
2775
+ })
2776
2776
  ]
2777
- }, undefined, true, undefined, this)
2777
+ })
2778
2778
  ]
2779
- }, undefined, true, undefined, this);
2779
+ });
2780
2780
  }
2781
2781
 
2782
2782
  // src/components/docs/guides/guides.docblocks.ts