@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.
- package/.turbo/turbo-build.log +494 -488
- package/CHANGELOG.md +91 -0
- package/dist/application/index.js +8 -8
- package/dist/application/mcp/cliMcp.js +8 -8
- package/dist/application/mcp/contractsMcp.js +8 -8
- package/dist/application/mcp/docsMcp.js +8 -8
- package/dist/application/mcp/index.js +8 -8
- package/dist/application/mcp/internalMcp.js +8 -8
- package/dist/application/mcp/providerRankingMcp.js +8 -8
- package/dist/bundles/LibraryBundle.d.ts +126 -0
- package/dist/bundles/LibraryBundle.js +139 -0
- package/dist/bundles/index.d.ts +1 -0
- package/dist/bundles/index.js +139 -0
- package/dist/components/docs/DocsIndexPage.js +91 -91
- package/dist/components/docs/advanced/AdvancedMCPPage.js +125 -125
- package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +49 -49
- package/dist/components/docs/advanced/AdvancedRenderersPage.js +51 -51
- package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +35 -35
- package/dist/components/docs/advanced/AdvancedTelemetryPage.js +177 -177
- package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +45 -45
- package/dist/components/docs/advanced/index.js +482 -482
- package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +107 -107
- package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +73 -73
- package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +117 -117
- package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +175 -175
- package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +71 -71
- package/dist/components/docs/architecture/ArchitectureOverviewPage.js +205 -205
- package/dist/components/docs/architecture/index.js +748 -748
- package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +117 -117
- package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +111 -111
- package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +117 -117
- package/dist/components/docs/comparison/ComparisonOverviewPage.js +97 -97
- package/dist/components/docs/comparison/ComparisonWindmillPage.js +125 -125
- package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +171 -171
- package/dist/components/docs/comparison/index.js +738 -738
- package/dist/components/docs/ecosystem/IntegrationsPage.js +45 -45
- package/dist/components/docs/ecosystem/PluginsPage.js +73 -73
- package/dist/components/docs/ecosystem/RegistryPage.js +37 -37
- package/dist/components/docs/ecosystem/TemplatesPage.js +56 -56
- package/dist/components/docs/ecosystem/index.js +211 -211
- package/dist/components/docs/examples/DocsExamplesPage.js +21 -21
- package/dist/components/docs/examples/index.js +21 -21
- package/dist/components/docs/generated/docs-index.generated.d.ts +6 -6
- package/dist/components/docs/getting-started/CLIPage.js +95 -95
- package/dist/components/docs/getting-started/CompatibilityPage.js +81 -81
- package/dist/components/docs/getting-started/DataViewTutorialPage.js +57 -57
- package/dist/components/docs/getting-started/DeveloperToolsPage.js +61 -61
- package/dist/components/docs/getting-started/HelloWorldPage.js +77 -77
- package/dist/components/docs/getting-started/InstallationPage.js +65 -65
- package/dist/components/docs/getting-started/StartHerePage.js +51 -51
- package/dist/components/docs/getting-started/TroubleshootingPage.js +73 -73
- package/dist/components/docs/getting-started/VSCodeExtensionPage.js +171 -171
- package/dist/components/docs/getting-started/index.js +731 -731
- package/dist/components/docs/guides/GuideCIDiffGatingPage.js +80 -80
- package/dist/components/docs/guides/GuideContractTypesPage.js +232 -232
- package/dist/components/docs/guides/GuideDocsPipelinePage.js +82 -82
- package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +84 -84
- package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +324 -324
- package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +107 -107
- package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +78 -78
- package/dist/components/docs/guides/GuidesIndexPage.js +43 -43
- package/dist/components/docs/guides/index.js +976 -976
- package/dist/components/docs/index.js +10792 -10792
- package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +17 -17
- package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +47 -47
- package/dist/components/docs/integrations/IntegrationsGithubPage.js +61 -61
- package/dist/components/docs/integrations/IntegrationsGmailPage.js +49 -49
- package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +33 -33
- package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +65 -65
- package/dist/components/docs/integrations/IntegrationsMistralPage.js +69 -69
- package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +65 -65
- package/dist/components/docs/integrations/IntegrationsOverviewPage.js +313 -313
- package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +101 -101
- package/dist/components/docs/integrations/IntegrationsPowensPage.js +121 -121
- package/dist/components/docs/integrations/IntegrationsQdrantPage.js +49 -49
- package/dist/components/docs/integrations/IntegrationsResendPage.js +45 -45
- package/dist/components/docs/integrations/IntegrationsS3Page.js +57 -57
- package/dist/components/docs/integrations/IntegrationsSlackPage.js +63 -63
- package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +139 -139
- package/dist/components/docs/integrations/IntegrationsStripePage.js +159 -159
- package/dist/components/docs/integrations/IntegrationsTwilioPage.js +61 -61
- package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +63 -63
- package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +65 -65
- package/dist/components/docs/integrations/index.js +1642 -1642
- package/dist/components/docs/intent/ContractFirstApiPage.js +51 -51
- package/dist/components/docs/intent/DeterministicCodegenPage.js +59 -59
- package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +85 -85
- package/dist/components/docs/intent/OpenapiAlternativePage.js +91 -91
- package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +59 -59
- package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +51 -51
- package/dist/components/docs/intent/index.js +396 -396
- package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +371 -371
- package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +79 -79
- package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +185 -185
- package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +187 -187
- package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +141 -141
- package/dist/components/docs/knowledge/index.js +963 -963
- package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +85 -85
- package/dist/components/docs/libraries/LibrariesAiAgentPage.js +63 -63
- package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +33 -33
- package/dist/components/docs/libraries/LibrariesContentGenPage.js +43 -43
- package/dist/components/docs/libraries/LibrariesContractsPage.js +125 -125
- package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +45 -45
- package/dist/components/docs/libraries/LibrariesDataBackendPage.js +69 -69
- package/dist/components/docs/libraries/LibrariesDataViewsPage.js +79 -79
- package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +129 -129
- package/dist/components/docs/libraries/LibrariesEvolutionPage.js +49 -49
- package/dist/components/docs/libraries/LibrariesGraphQLPage.js +73 -73
- package/dist/components/docs/libraries/LibrariesGrowthPage.js +35 -35
- package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +43 -43
- package/dist/components/docs/libraries/LibrariesObservabilityPage.js +53 -53
- package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +45 -45
- package/dist/components/docs/libraries/LibrariesOverviewPage.js +191 -191
- package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +47 -47
- package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +53 -53
- package/dist/components/docs/libraries/LibrariesResiliencePage.js +49 -49
- package/dist/components/docs/libraries/LibrariesRuntimePage.js +87 -87
- package/dist/components/docs/libraries/LibrariesSLOPage.js +47 -47
- package/dist/components/docs/libraries/LibrariesSchemaPage.js +139 -139
- package/dist/components/docs/libraries/LibrariesSupportBotPage.js +57 -57
- package/dist/components/docs/libraries/LibrariesTestingPage.js +49 -49
- package/dist/components/docs/libraries/LibrariesUIKitPage.js +107 -107
- package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +35 -35
- package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +89 -89
- package/dist/components/docs/libraries/index.js +1919 -1919
- package/dist/components/docs/manifesto/ManifestoPage.js +79 -79
- package/dist/components/docs/ops/AutoEvolutionOpsPage.js +59 -59
- package/dist/components/docs/ops/DistributedTracingOpsPage.js +33 -33
- package/dist/components/docs/ops/index.js +92 -92
- package/dist/components/docs/reference/DocsMarkdownContent.js +27 -27
- package/dist/components/docs/reference/DocsReferenceContent.js +34 -34
- package/dist/components/docs/reference/DocsReferenceIndexClient.js +23 -23
- package/dist/components/docs/reference/DocsReferenceIndexPage.js +26 -26
- package/dist/components/docs/reference/DocsReferencePage.js +37 -37
- package/dist/components/docs/reference/index.js +63 -63
- package/dist/components/docs/safety/SafetyAuditingPage.js +161 -161
- package/dist/components/docs/safety/SafetyMigrationsPage.js +169 -169
- package/dist/components/docs/safety/SafetyOverviewPage.js +99 -99
- package/dist/components/docs/safety/SafetyPDPPage.js +137 -137
- package/dist/components/docs/safety/SafetySecurityTrustPage.js +95 -95
- package/dist/components/docs/safety/SafetySigningPage.js +39 -39
- package/dist/components/docs/safety/SafetyTenantIsolationPage.js +33 -33
- package/dist/components/docs/safety/index.js +733 -733
- package/dist/components/docs/shared/StudioPrompt.js +9 -9
- package/dist/components/docs/specs/SpecsCapabilitiesPage.js +61 -61
- package/dist/components/docs/specs/SpecsDataViewsPage.js +119 -119
- package/dist/components/docs/specs/SpecsOverlaysPage.js +171 -171
- package/dist/components/docs/specs/SpecsOverviewPage.js +167 -167
- package/dist/components/docs/specs/SpecsPolicyPage.js +179 -179
- package/dist/components/docs/specs/SpecsWorkflowsPage.js +141 -141
- package/dist/components/docs/specs/index.js +838 -838
- package/dist/components/docs/studio/StudioBYOKPage.js +9 -9
- package/dist/components/docs/studio/StudioDeploymentsPage.js +9 -9
- package/dist/components/docs/studio/StudioGettingStartedPage.js +9 -9
- package/dist/components/docs/studio/StudioIntegrationsPage.js +9 -9
- package/dist/components/docs/studio/StudioOverviewPage.js +33 -33
- package/dist/components/docs/studio/StudioVisualBuilderPage.js +9 -9
- package/dist/components/docs/studio/index.js +78 -78
- package/dist/components/integrations/index.js +209 -209
- package/dist/components/integrations/molecules/IntegrationCard.js +33 -33
- package/dist/components/integrations/organisms/IntegrationMarketplace.js +71 -71
- package/dist/components/integrations/organisms/IntegrationSettings.js +98 -98
- package/dist/components/integrations/organisms/KnowledgeSourceList.js +40 -40
- package/dist/components/legal/PrivacyTemplate.js +477 -477
- package/dist/components/legal/TermsTemplate.js +421 -421
- package/dist/components/legal/index.js +898 -898
- package/dist/components/shared/FeatureGateNotice.js +13 -13
- package/dist/components/shared/index.js +13 -13
- package/dist/components/shell/WorkspaceHeader.js +37 -37
- package/dist/components/shell/WorkspaceProjectShellLayout.js +77 -77
- package/dist/components/shell/WorkspaceShellRenderer.d.ts +17 -0
- package/dist/components/shell/WorkspaceShellRenderer.js +229 -0
- package/dist/components/shell/WorkspaceSidebar.js +27 -27
- package/dist/components/shell/index.d.ts +1 -0
- package/dist/components/shell/index.js +140 -77
- package/dist/components/templates/index.js +272 -272
- package/dist/components/templates/messaging/ConversationList.js +27 -27
- package/dist/components/templates/messaging/MessageComposer.js +27 -27
- package/dist/components/templates/messaging/MessageThread.js +18 -18
- package/dist/components/templates/messaging/MessagingWorkspace.js +65 -65
- package/dist/components/templates/messaging/index.js +65 -65
- package/dist/components/templates/recipes/LanguageSwitcher.js +5 -5
- package/dist/components/templates/recipes/RecipeCard.js +26 -26
- package/dist/components/templates/recipes/RecipeDetail.js +33 -33
- package/dist/components/templates/recipes/RecipeList.js +80 -80
- package/dist/components/templates/recipes/index.js +80 -80
- package/dist/components/templates/todos/FilterBar.js +39 -39
- package/dist/components/templates/todos/TaskForm.js +43 -43
- package/dist/components/templates/todos/TaskItem.js +30 -30
- package/dist/components/templates/todos/TaskList.js +127 -127
- package/dist/components/templates/todos/index.js +127 -127
- package/dist/index.js +12324 -12261
- package/dist/infrastructure/elysia/index.js +8 -8
- package/dist/infrastructure/elysia/logger.js +8 -8
- package/dist/infrastructure/index.js +8 -8
- package/dist/libs/posthog/client.js +2 -2
- package/dist/node/application/index.js +8 -8
- package/dist/node/application/mcp/cliMcp.js +8 -8
- package/dist/node/application/mcp/contractsMcp.js +8 -8
- package/dist/node/application/mcp/docsMcp.js +8 -8
- package/dist/node/application/mcp/index.js +8 -8
- package/dist/node/application/mcp/internalMcp.js +8 -8
- package/dist/node/application/mcp/providerRankingMcp.js +8 -8
- package/dist/node/bundles/LibraryBundle.js +138 -0
- package/dist/node/bundles/index.js +138 -0
- package/dist/node/components/docs/DocsIndexPage.js +91 -91
- package/dist/node/components/docs/advanced/AdvancedMCPPage.js +125 -125
- package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +49 -49
- package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +51 -51
- package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +35 -35
- package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +177 -177
- package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +45 -45
- package/dist/node/components/docs/advanced/index.js +482 -482
- package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +107 -107
- package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +73 -73
- package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +117 -117
- package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +175 -175
- package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +71 -71
- package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +205 -205
- package/dist/node/components/docs/architecture/index.js +748 -748
- package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +117 -117
- package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +111 -111
- package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +117 -117
- package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +97 -97
- package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +125 -125
- package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +171 -171
- package/dist/node/components/docs/comparison/index.js +738 -738
- package/dist/node/components/docs/ecosystem/IntegrationsPage.js +45 -45
- package/dist/node/components/docs/ecosystem/PluginsPage.js +73 -73
- package/dist/node/components/docs/ecosystem/RegistryPage.js +37 -37
- package/dist/node/components/docs/ecosystem/TemplatesPage.js +56 -56
- package/dist/node/components/docs/ecosystem/index.js +211 -211
- package/dist/node/components/docs/examples/DocsExamplesPage.js +21 -21
- package/dist/node/components/docs/examples/index.js +21 -21
- package/dist/node/components/docs/getting-started/CLIPage.js +95 -95
- package/dist/node/components/docs/getting-started/CompatibilityPage.js +81 -81
- package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +57 -57
- package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +61 -61
- package/dist/node/components/docs/getting-started/HelloWorldPage.js +77 -77
- package/dist/node/components/docs/getting-started/InstallationPage.js +65 -65
- package/dist/node/components/docs/getting-started/StartHerePage.js +51 -51
- package/dist/node/components/docs/getting-started/TroubleshootingPage.js +73 -73
- package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +171 -171
- package/dist/node/components/docs/getting-started/index.js +731 -731
- package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +80 -80
- package/dist/node/components/docs/guides/GuideContractTypesPage.js +232 -232
- package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +82 -82
- package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +84 -84
- package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +324 -324
- package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +107 -107
- package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +78 -78
- package/dist/node/components/docs/guides/GuidesIndexPage.js +43 -43
- package/dist/node/components/docs/guides/index.js +976 -976
- package/dist/node/components/docs/index.js +10792 -10792
- package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +17 -17
- package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +47 -47
- package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +61 -61
- package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +49 -49
- package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +33 -33
- package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +65 -65
- package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +69 -69
- package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +65 -65
- package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +313 -313
- package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +101 -101
- package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +121 -121
- package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +49 -49
- package/dist/node/components/docs/integrations/IntegrationsResendPage.js +45 -45
- package/dist/node/components/docs/integrations/IntegrationsS3Page.js +57 -57
- package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +63 -63
- package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +139 -139
- package/dist/node/components/docs/integrations/IntegrationsStripePage.js +159 -159
- package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +61 -61
- package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +63 -63
- package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +65 -65
- package/dist/node/components/docs/integrations/index.js +1642 -1642
- package/dist/node/components/docs/intent/ContractFirstApiPage.js +51 -51
- package/dist/node/components/docs/intent/DeterministicCodegenPage.js +59 -59
- package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +85 -85
- package/dist/node/components/docs/intent/OpenapiAlternativePage.js +91 -91
- package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +59 -59
- package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +51 -51
- package/dist/node/components/docs/intent/index.js +396 -396
- package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +371 -371
- package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +79 -79
- package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +185 -185
- package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +187 -187
- package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +141 -141
- package/dist/node/components/docs/knowledge/index.js +963 -963
- package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +85 -85
- package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +63 -63
- package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +33 -33
- package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +43 -43
- package/dist/node/components/docs/libraries/LibrariesContractsPage.js +125 -125
- package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +45 -45
- package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +69 -69
- package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +79 -79
- package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +129 -129
- package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +49 -49
- package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +73 -73
- package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +35 -35
- package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +43 -43
- package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +53 -53
- package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +45 -45
- package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +191 -191
- package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +47 -47
- package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +53 -53
- package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +49 -49
- package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +87 -87
- package/dist/node/components/docs/libraries/LibrariesSLOPage.js +47 -47
- package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +139 -139
- package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +57 -57
- package/dist/node/components/docs/libraries/LibrariesTestingPage.js +49 -49
- package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +107 -107
- package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +35 -35
- package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +89 -89
- package/dist/node/components/docs/libraries/index.js +1919 -1919
- package/dist/node/components/docs/manifesto/ManifestoPage.js +79 -79
- package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +59 -59
- package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +33 -33
- package/dist/node/components/docs/ops/index.js +92 -92
- package/dist/node/components/docs/reference/DocsMarkdownContent.js +27 -27
- package/dist/node/components/docs/reference/DocsReferenceContent.js +34 -34
- package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +23 -23
- package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +26 -26
- package/dist/node/components/docs/reference/DocsReferencePage.js +37 -37
- package/dist/node/components/docs/reference/index.js +63 -63
- package/dist/node/components/docs/safety/SafetyAuditingPage.js +161 -161
- package/dist/node/components/docs/safety/SafetyMigrationsPage.js +169 -169
- package/dist/node/components/docs/safety/SafetyOverviewPage.js +99 -99
- package/dist/node/components/docs/safety/SafetyPDPPage.js +137 -137
- package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +95 -95
- package/dist/node/components/docs/safety/SafetySigningPage.js +39 -39
- package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +33 -33
- package/dist/node/components/docs/safety/index.js +733 -733
- package/dist/node/components/docs/shared/StudioPrompt.js +9 -9
- package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +61 -61
- package/dist/node/components/docs/specs/SpecsDataViewsPage.js +119 -119
- package/dist/node/components/docs/specs/SpecsOverlaysPage.js +171 -171
- package/dist/node/components/docs/specs/SpecsOverviewPage.js +167 -167
- package/dist/node/components/docs/specs/SpecsPolicyPage.js +179 -179
- package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +141 -141
- package/dist/node/components/docs/specs/index.js +838 -838
- package/dist/node/components/docs/studio/StudioBYOKPage.js +9 -9
- package/dist/node/components/docs/studio/StudioDeploymentsPage.js +9 -9
- package/dist/node/components/docs/studio/StudioGettingStartedPage.js +9 -9
- package/dist/node/components/docs/studio/StudioIntegrationsPage.js +9 -9
- package/dist/node/components/docs/studio/StudioOverviewPage.js +33 -33
- package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +9 -9
- package/dist/node/components/docs/studio/index.js +78 -78
- package/dist/node/components/integrations/index.js +209 -209
- package/dist/node/components/integrations/molecules/IntegrationCard.js +33 -33
- package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +71 -71
- package/dist/node/components/integrations/organisms/IntegrationSettings.js +98 -98
- package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +40 -40
- package/dist/node/components/legal/PrivacyTemplate.js +477 -477
- package/dist/node/components/legal/TermsTemplate.js +421 -421
- package/dist/node/components/legal/index.js +898 -898
- package/dist/node/components/shared/FeatureGateNotice.js +13 -13
- package/dist/node/components/shared/index.js +13 -13
- package/dist/node/components/shell/WorkspaceHeader.js +37 -37
- package/dist/node/components/shell/WorkspaceProjectShellLayout.js +77 -77
- package/dist/node/components/shell/WorkspaceShellRenderer.js +228 -0
- package/dist/node/components/shell/WorkspaceSidebar.js +27 -27
- package/dist/node/components/shell/index.js +140 -77
- package/dist/node/components/templates/index.js +272 -272
- package/dist/node/components/templates/messaging/ConversationList.js +27 -27
- package/dist/node/components/templates/messaging/MessageComposer.js +27 -27
- package/dist/node/components/templates/messaging/MessageThread.js +18 -18
- package/dist/node/components/templates/messaging/MessagingWorkspace.js +65 -65
- package/dist/node/components/templates/messaging/index.js +65 -65
- package/dist/node/components/templates/recipes/LanguageSwitcher.js +5 -5
- package/dist/node/components/templates/recipes/RecipeCard.js +26 -26
- package/dist/node/components/templates/recipes/RecipeDetail.js +33 -33
- package/dist/node/components/templates/recipes/RecipeList.js +80 -80
- package/dist/node/components/templates/recipes/index.js +80 -80
- package/dist/node/components/templates/todos/FilterBar.js +39 -39
- package/dist/node/components/templates/todos/TaskForm.js +43 -43
- package/dist/node/components/templates/todos/TaskItem.js +30 -30
- package/dist/node/components/templates/todos/TaskList.js +127 -127
- package/dist/node/components/templates/todos/index.js +127 -127
- package/dist/node/index.js +12324 -12261
- package/dist/node/infrastructure/elysia/index.js +8 -8
- package/dist/node/infrastructure/elysia/logger.js +8 -8
- package/dist/node/infrastructure/index.js +8 -8
- package/dist/node/libs/posthog/client.js +2 -2
- package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +3 -3
- package/dist/node/presentation/features/atoms/FeatureIcon/index.js +3 -3
- package/dist/node/presentation/features/atoms/index.js +3 -3
- package/dist/node/presentation/features/index.js +915 -915
- package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +101 -101
- package/dist/node/presentation/features/molecules/FeatureCard/index.js +101 -101
- package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +15 -15
- package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +15 -15
- package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +23 -23
- package/dist/node/presentation/features/molecules/FeatureFilters/index.js +23 -23
- package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +67 -67
- package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +67 -67
- package/dist/node/presentation/features/molecules/index.js +139 -139
- package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +7 -7
- package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +57 -57
- package/dist/node/presentation/features/organisms/FeatureDetail/index.js +57 -57
- package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +183 -183
- package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +183 -183
- package/dist/node/presentation/features/organisms/FeatureEventsList.js +7 -7
- package/dist/node/presentation/features/organisms/FeatureFormsList.js +7 -7
- package/dist/node/presentation/features/organisms/FeatureOperationsList.js +7 -7
- package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +7 -7
- package/dist/node/presentation/features/organisms/index.js +275 -275
- package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +126 -126
- package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +126 -126
- package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +16 -16
- package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +16 -16
- package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +112 -112
- package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +112 -112
- package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +16 -16
- package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +16 -16
- package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +126 -126
- package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +126 -126
- package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +16 -16
- package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +16 -16
- package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +110 -110
- package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +110 -110
- package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +16 -16
- package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +16 -16
- package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +66 -66
- package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +66 -66
- package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +112 -112
- package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +112 -112
- package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +16 -16
- package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +16 -16
- package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +3 -3
- package/dist/presentation/features/atoms/FeatureIcon/index.js +3 -3
- package/dist/presentation/features/atoms/index.js +3 -3
- package/dist/presentation/features/index.js +915 -915
- package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +101 -101
- package/dist/presentation/features/molecules/FeatureCard/index.js +101 -101
- package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +15 -15
- package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +15 -15
- package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +23 -23
- package/dist/presentation/features/molecules/FeatureFilters/index.js +23 -23
- package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +67 -67
- package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +67 -67
- package/dist/presentation/features/molecules/index.js +139 -139
- package/dist/presentation/features/organisms/FeatureDataViewsList.js +7 -7
- package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +57 -57
- package/dist/presentation/features/organisms/FeatureDetail/index.js +57 -57
- package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +183 -183
- package/dist/presentation/features/organisms/FeatureDiscovery/index.js +183 -183
- package/dist/presentation/features/organisms/FeatureEventsList.js +7 -7
- package/dist/presentation/features/organisms/FeatureFormsList.js +7 -7
- package/dist/presentation/features/organisms/FeatureOperationsList.js +7 -7
- package/dist/presentation/features/organisms/FeaturePresentationsList.js +7 -7
- package/dist/presentation/features/organisms/index.js +275 -275
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +126 -126
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +126 -126
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +16 -16
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +16 -16
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +112 -112
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +112 -112
- package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +16 -16
- package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +16 -16
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +126 -126
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +126 -126
- package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +16 -16
- package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +16 -16
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +110 -110
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +110 -110
- package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +16 -16
- package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +16 -16
- package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +66 -66
- package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +66 -66
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +112 -112
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +112 -112
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +16 -16
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +16 -16
- package/package.json +71 -22
- package/src/bundles/LibraryBundle.ts +152 -0
- package/src/bundles/index.ts +1 -0
- package/src/components/docs/generated/docs-index._common.json +441 -90
- package/src/components/docs/generated/docs-index.agent-console.json +1 -1
- package/src/components/docs/generated/docs-index.ai-chat.json +1 -1
- package/src/components/docs/generated/docs-index.ai-support-bot.json +1 -1
- package/src/components/docs/generated/docs-index.analytics-dashboard.json +1 -1
- package/src/components/docs/generated/docs-index.app-config.json +1 -1
- package/src/components/docs/generated/docs-index.audit-trail.json +1 -1
- package/src/components/docs/generated/docs-index.calendar-google.json +1 -1
- package/src/components/docs/generated/docs-index.content-generation.json +1 -1
- package/src/components/docs/generated/docs-index.crm-pipeline.json +1 -1
- package/src/components/docs/generated/docs-index.email-gmail.json +1 -1
- package/src/components/docs/generated/docs-index.feature-flags.json +1 -1
- package/src/components/docs/generated/docs-index.files.json +1 -1
- package/src/components/docs/generated/docs-index.generated.ts +7 -7
- package/src/components/docs/generated/docs-index.health.json +1 -1
- package/src/components/docs/generated/docs-index.identity-rbac.json +1 -1
- package/src/components/docs/generated/docs-index.in-app-docs.json +1 -1
- package/src/components/docs/generated/docs-index.integration-hub.json +1 -1
- package/src/components/docs/generated/docs-index.integration-posthog.json +1 -1
- package/src/components/docs/generated/docs-index.integration-stripe.json +1 -1
- package/src/components/docs/generated/docs-index.integration-supabase.json +1 -1
- package/src/components/docs/generated/docs-index.jobs.json +1 -1
- package/src/components/docs/generated/docs-index.kb-update-pipeline.json +1 -1
- package/src/components/docs/generated/docs-index.knowledge-canon.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-ambient-coach.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-crm-onboarding.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-duo-drills.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-platform-tour.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-quest-challenges.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-registry.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-studio-onboarding.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-ui-coaching.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-ui-gamified.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-ui-onboarding.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-ui-shared.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey.json +1 -1
- package/src/components/docs/generated/docs-index.learning-patterns.json +1 -1
- package/src/components/docs/generated/docs-index.lifecycle-cli.json +1 -1
- package/src/components/docs/generated/docs-index.lifecycle-dashboard.json +1 -1
- package/src/components/docs/generated/docs-index.locale-jurisdiction-gate.json +1 -1
- package/src/components/docs/generated/docs-index.manifest.json +2 -2
- package/src/components/docs/generated/docs-index.marketplace.json +1 -1
- package/src/components/docs/generated/docs-index.meeting-recorder-providers.json +1 -1
- package/src/components/docs/generated/docs-index.meeting-recorder.json +1 -1
- package/src/components/docs/generated/docs-index.metrics.json +1 -1
- package/src/components/docs/generated/docs-index.minimal.json +1 -1
- package/src/components/docs/generated/docs-index.notifications.json +1 -1
- package/src/components/docs/generated/docs-index.openbanking-powens.json +1 -1
- package/src/components/docs/generated/docs-index.openbanking.json +1 -1
- package/src/components/docs/generated/docs-index.opencode-cli.json +1 -1
- package/src/components/docs/generated/docs-index.personalization.json +1 -1
- package/src/components/docs/generated/docs-index.platform-acp.json +1 -1
- package/src/components/docs/generated/docs-index.platform-agent.json +1 -1
- package/src/components/docs/generated/docs-index.platform-context.json +1 -1
- package/src/components/docs/generated/docs-index.platform-database.json +1 -1
- package/src/components/docs/generated/docs-index.platform-docs.json +1 -1
- package/src/components/docs/generated/docs-index.platform-integrations.json +1 -1
- package/src/components/docs/generated/docs-index.platform-knowledge.json +1 -1
- package/src/components/docs/generated/docs-index.platform-provider-ranking.json +1 -1
- package/src/components/docs/generated/docs-index.pocket-family-office.json +1 -1
- package/src/components/docs/generated/docs-index.policy-safe-knowledge-assistant.json +1 -1
- package/src/components/docs/generated/docs-index.product-intent.json +1 -1
- package/src/components/docs/generated/docs-index.project-management-sync.json +1 -1
- package/src/components/docs/generated/docs-index.saas-boilerplate.json +1 -1
- package/src/components/docs/generated/docs-index.service-business-os.json +1 -1
- package/src/components/docs/generated/docs-index.team-hub.json +1 -1
- package/src/components/docs/generated/docs-index.unknown.json +1 -1
- package/src/components/docs/generated/docs-index.versioned-knowledge-base.json +1 -1
- package/src/components/docs/generated/docs-index.video-api-showcase.json +1 -1
- package/src/components/docs/generated/docs-index.video-docs-terminal.json +1 -1
- package/src/components/docs/generated/docs-index.video-marketing-clip.json +1 -1
- package/src/components/docs/generated/docs-index.voice-providers.json +1 -1
- package/src/components/docs/generated/docs-index.wealth-snapshot.json +1 -1
- package/src/components/docs/generated/docs-index.workflow-system.json +1 -1
- package/src/components/docs/generated/docs-index.workspace-cli.json +1 -1
- package/src/components/docs/guides/GuideNextjsOneEndpointPage.tsx +1 -1
- package/src/components/shell/WorkspaceShellRenderer.tsx +90 -0
- package/src/components/shell/index.ts +1 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import Link from "@contractspec/lib.ui-link";
|
|
3
3
|
import { ChevronRight } from "lucide-react";
|
|
4
4
|
import { CodeBlock, InstallCommand } from "@contractspec/lib.design-system";
|
|
5
|
-
import {
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
function CLIPage() {
|
|
7
7
|
const commands = [
|
|
8
8
|
{
|
|
@@ -51,46 +51,46 @@ function CLIPage() {
|
|
|
51
51
|
usage: "contractspec diff <spec1> <spec2> [--breaking]"
|
|
52
52
|
}
|
|
53
53
|
];
|
|
54
|
-
return /* @__PURE__ */
|
|
54
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
55
55
|
className: "space-y-8",
|
|
56
56
|
children: [
|
|
57
|
-
/* @__PURE__ */
|
|
57
|
+
/* @__PURE__ */ jsxs("div", {
|
|
58
58
|
className: "space-y-2",
|
|
59
59
|
children: [
|
|
60
|
-
/* @__PURE__ */
|
|
60
|
+
/* @__PURE__ */ jsx("h1", {
|
|
61
61
|
className: "text-4xl font-bold",
|
|
62
62
|
children: "ContractSpec CLI"
|
|
63
|
-
}
|
|
64
|
-
/* @__PURE__ */
|
|
63
|
+
}),
|
|
64
|
+
/* @__PURE__ */ jsx("p", {
|
|
65
65
|
className: "text-muted-foreground text-lg",
|
|
66
66
|
children: "Command-line interface for creating, building, and validating contract specifications with AI-powered code generation."
|
|
67
|
-
}
|
|
67
|
+
})
|
|
68
68
|
]
|
|
69
|
-
}
|
|
70
|
-
/* @__PURE__ */
|
|
69
|
+
}),
|
|
70
|
+
/* @__PURE__ */ jsxs("div", {
|
|
71
71
|
className: "space-y-6",
|
|
72
72
|
children: [
|
|
73
|
-
/* @__PURE__ */
|
|
73
|
+
/* @__PURE__ */ jsxs("div", {
|
|
74
74
|
className: "space-y-3",
|
|
75
75
|
children: [
|
|
76
|
-
/* @__PURE__ */
|
|
76
|
+
/* @__PURE__ */ jsx("h2", {
|
|
77
77
|
className: "text-2xl font-bold",
|
|
78
78
|
children: "Installation"
|
|
79
|
-
}
|
|
80
|
-
/* @__PURE__ */
|
|
79
|
+
}),
|
|
80
|
+
/* @__PURE__ */ jsx(InstallCommand, {
|
|
81
81
|
package: "contractspec",
|
|
82
82
|
dev: true
|
|
83
|
-
}
|
|
83
|
+
})
|
|
84
84
|
]
|
|
85
|
-
}
|
|
86
|
-
/* @__PURE__ */
|
|
85
|
+
}),
|
|
86
|
+
/* @__PURE__ */ jsxs("div", {
|
|
87
87
|
className: "space-y-3",
|
|
88
88
|
children: [
|
|
89
|
-
/* @__PURE__ */
|
|
89
|
+
/* @__PURE__ */ jsx("h2", {
|
|
90
90
|
className: "text-2xl font-bold",
|
|
91
91
|
children: "Quick Start"
|
|
92
|
-
}
|
|
93
|
-
/* @__PURE__ */
|
|
92
|
+
}),
|
|
93
|
+
/* @__PURE__ */ jsx(CodeBlock, {
|
|
94
94
|
language: "bash",
|
|
95
95
|
code: `# Initialize project
|
|
96
96
|
bunx contractspec init
|
|
@@ -103,121 +103,121 @@ contractspec build src/contracts/mySpec.ts
|
|
|
103
103
|
|
|
104
104
|
# Validate
|
|
105
105
|
contractspec validate src/contracts/mySpec.ts`
|
|
106
|
-
}
|
|
106
|
+
})
|
|
107
107
|
]
|
|
108
|
-
}
|
|
109
|
-
/* @__PURE__ */
|
|
108
|
+
}),
|
|
109
|
+
/* @__PURE__ */ jsxs("div", {
|
|
110
110
|
className: "space-y-4",
|
|
111
111
|
children: [
|
|
112
|
-
/* @__PURE__ */
|
|
112
|
+
/* @__PURE__ */ jsx("h2", {
|
|
113
113
|
className: "text-2xl font-bold",
|
|
114
114
|
children: "Commands"
|
|
115
|
-
}
|
|
116
|
-
/* @__PURE__ */
|
|
115
|
+
}),
|
|
116
|
+
/* @__PURE__ */ jsx("div", {
|
|
117
117
|
className: "grid gap-4",
|
|
118
|
-
children: commands.map((cmd) => /* @__PURE__ */
|
|
118
|
+
children: commands.map((cmd) => /* @__PURE__ */ jsxs("div", {
|
|
119
119
|
className: "card-subtle space-y-2 p-4",
|
|
120
120
|
children: [
|
|
121
|
-
/* @__PURE__ */
|
|
121
|
+
/* @__PURE__ */ jsx("h3", {
|
|
122
122
|
className: "font-mono font-bold text-violet-400",
|
|
123
123
|
children: cmd.name
|
|
124
|
-
}
|
|
125
|
-
/* @__PURE__ */
|
|
124
|
+
}),
|
|
125
|
+
/* @__PURE__ */ jsx("p", {
|
|
126
126
|
className: "text-muted-foreground text-sm",
|
|
127
127
|
children: cmd.description
|
|
128
|
-
}
|
|
129
|
-
/* @__PURE__ */
|
|
128
|
+
}),
|
|
129
|
+
/* @__PURE__ */ jsx(CodeBlock, {
|
|
130
130
|
language: "bash",
|
|
131
131
|
code: cmd.usage,
|
|
132
132
|
showCopyButton: false
|
|
133
|
-
}
|
|
133
|
+
})
|
|
134
134
|
]
|
|
135
|
-
}, cmd.name
|
|
136
|
-
}
|
|
135
|
+
}, cmd.name))
|
|
136
|
+
})
|
|
137
137
|
]
|
|
138
|
-
}
|
|
139
|
-
/* @__PURE__ */
|
|
138
|
+
}),
|
|
139
|
+
/* @__PURE__ */ jsxs("div", {
|
|
140
140
|
className: "space-y-3",
|
|
141
141
|
children: [
|
|
142
|
-
/* @__PURE__ */
|
|
142
|
+
/* @__PURE__ */ jsx("h2", {
|
|
143
143
|
className: "text-2xl font-bold",
|
|
144
144
|
children: "AI Agent Modes"
|
|
145
|
-
}
|
|
146
|
-
/* @__PURE__ */
|
|
145
|
+
}),
|
|
146
|
+
/* @__PURE__ */ jsx("p", {
|
|
147
147
|
className: "text-muted-foreground",
|
|
148
148
|
children: "The CLI supports multiple AI agent modes for different use cases:"
|
|
149
|
-
}
|
|
150
|
-
/* @__PURE__ */
|
|
149
|
+
}),
|
|
150
|
+
/* @__PURE__ */ jsxs("div", {
|
|
151
151
|
className: "grid gap-3 md:grid-cols-2",
|
|
152
152
|
children: [
|
|
153
|
-
/* @__PURE__ */
|
|
153
|
+
/* @__PURE__ */ jsxs("div", {
|
|
154
154
|
className: "card-subtle p-4",
|
|
155
155
|
children: [
|
|
156
|
-
/* @__PURE__ */
|
|
156
|
+
/* @__PURE__ */ jsx("h4", {
|
|
157
157
|
className: "font-bold",
|
|
158
158
|
children: "simple"
|
|
159
|
-
}
|
|
160
|
-
/* @__PURE__ */
|
|
159
|
+
}),
|
|
160
|
+
/* @__PURE__ */ jsx("p", {
|
|
161
161
|
className: "text-muted-foreground text-sm",
|
|
162
162
|
children: "Direct LLM API calls, fast and straightforward. Best for rapid prototyping."
|
|
163
|
-
}
|
|
163
|
+
})
|
|
164
164
|
]
|
|
165
|
-
}
|
|
166
|
-
/* @__PURE__ */
|
|
165
|
+
}),
|
|
166
|
+
/* @__PURE__ */ jsxs("div", {
|
|
167
167
|
className: "card-subtle p-4",
|
|
168
168
|
children: [
|
|
169
|
-
/* @__PURE__ */
|
|
169
|
+
/* @__PURE__ */ jsx("h4", {
|
|
170
170
|
className: "font-bold",
|
|
171
171
|
children: "claude-code"
|
|
172
|
-
}
|
|
173
|
-
/* @__PURE__ */
|
|
172
|
+
}),
|
|
173
|
+
/* @__PURE__ */ jsx("p", {
|
|
174
174
|
className: "text-muted-foreground text-sm",
|
|
175
175
|
children: "Extended thinking with Claude. Best for production-quality code."
|
|
176
|
-
}
|
|
176
|
+
})
|
|
177
177
|
]
|
|
178
|
-
}
|
|
179
|
-
/* @__PURE__ */
|
|
178
|
+
}),
|
|
179
|
+
/* @__PURE__ */ jsxs("div", {
|
|
180
180
|
className: "card-subtle p-4",
|
|
181
181
|
children: [
|
|
182
|
-
/* @__PURE__ */
|
|
182
|
+
/* @__PURE__ */ jsx("h4", {
|
|
183
183
|
className: "font-bold",
|
|
184
184
|
children: "openai-codex"
|
|
185
|
-
}
|
|
186
|
-
/* @__PURE__ */
|
|
185
|
+
}),
|
|
186
|
+
/* @__PURE__ */ jsx("p", {
|
|
187
187
|
className: "text-muted-foreground text-sm",
|
|
188
188
|
children: "GPT-4o/o1 models. Excellent for algorithms and optimization."
|
|
189
|
-
}
|
|
189
|
+
})
|
|
190
190
|
]
|
|
191
|
-
}
|
|
192
|
-
/* @__PURE__ */
|
|
191
|
+
}),
|
|
192
|
+
/* @__PURE__ */ jsxs("div", {
|
|
193
193
|
className: "card-subtle p-4",
|
|
194
194
|
children: [
|
|
195
|
-
/* @__PURE__ */
|
|
195
|
+
/* @__PURE__ */ jsx("h4", {
|
|
196
196
|
className: "font-bold",
|
|
197
197
|
children: "cursor"
|
|
198
|
-
}
|
|
199
|
-
/* @__PURE__ */
|
|
198
|
+
}),
|
|
199
|
+
/* @__PURE__ */ jsx("p", {
|
|
200
200
|
className: "text-muted-foreground text-sm",
|
|
201
201
|
children: "Leverages Cursor agentic capabilities. Requires Cursor environment."
|
|
202
|
-
}
|
|
202
|
+
})
|
|
203
203
|
]
|
|
204
|
-
}
|
|
204
|
+
})
|
|
205
205
|
]
|
|
206
|
-
}
|
|
206
|
+
})
|
|
207
207
|
]
|
|
208
|
-
}
|
|
209
|
-
/* @__PURE__ */
|
|
208
|
+
}),
|
|
209
|
+
/* @__PURE__ */ jsxs("div", {
|
|
210
210
|
className: "space-y-3",
|
|
211
211
|
children: [
|
|
212
|
-
/* @__PURE__ */
|
|
212
|
+
/* @__PURE__ */ jsx("h2", {
|
|
213
213
|
className: "text-2xl font-bold",
|
|
214
214
|
children: "CI/CD Integration"
|
|
215
|
-
}
|
|
216
|
-
/* @__PURE__ */
|
|
215
|
+
}),
|
|
216
|
+
/* @__PURE__ */ jsx("p", {
|
|
217
217
|
className: "text-muted-foreground",
|
|
218
218
|
children: "Run all validation checks in CI/CD with machine-readable output:"
|
|
219
|
-
}
|
|
220
|
-
/* @__PURE__ */
|
|
219
|
+
}),
|
|
220
|
+
/* @__PURE__ */ jsx(CodeBlock, {
|
|
221
221
|
language: "yaml",
|
|
222
222
|
filename: ".github/workflows/validate.yml",
|
|
223
223
|
code: `- name: Validate Contracts
|
|
@@ -227,27 +227,27 @@ contractspec validate src/contracts/mySpec.ts`
|
|
|
227
227
|
uses: github/codeql-action/upload-sarif@v3
|
|
228
228
|
with:
|
|
229
229
|
sarif_file: results.sarif`
|
|
230
|
-
}
|
|
230
|
+
})
|
|
231
231
|
]
|
|
232
|
-
}
|
|
233
|
-
/* @__PURE__ */
|
|
232
|
+
}),
|
|
233
|
+
/* @__PURE__ */ jsxs("div", {
|
|
234
234
|
className: "card-subtle space-y-4 p-6",
|
|
235
235
|
children: [
|
|
236
|
-
/* @__PURE__ */
|
|
236
|
+
/* @__PURE__ */ jsx("h3", {
|
|
237
237
|
className: "font-bold",
|
|
238
238
|
children: "Configuration"
|
|
239
|
-
}
|
|
240
|
-
/* @__PURE__ */
|
|
239
|
+
}),
|
|
240
|
+
/* @__PURE__ */ jsxs("p", {
|
|
241
241
|
className: "text-muted-foreground text-sm",
|
|
242
242
|
children: [
|
|
243
243
|
"Create a ",
|
|
244
|
-
/* @__PURE__ */
|
|
244
|
+
/* @__PURE__ */ jsx("code", {
|
|
245
245
|
children: ".contractsrc.json"
|
|
246
|
-
}
|
|
246
|
+
}),
|
|
247
247
|
" file in your project root:"
|
|
248
248
|
]
|
|
249
|
-
}
|
|
250
|
-
/* @__PURE__ */
|
|
249
|
+
}),
|
|
250
|
+
/* @__PURE__ */ jsx(CodeBlock, {
|
|
251
251
|
language: "json",
|
|
252
252
|
filename: ".contractsrc.json",
|
|
253
253
|
code: `{
|
|
@@ -259,240 +259,240 @@ contractspec validate src/contracts/mySpec.ts`
|
|
|
259
259
|
"events": "events"
|
|
260
260
|
}
|
|
261
261
|
}`
|
|
262
|
-
}
|
|
262
|
+
})
|
|
263
263
|
]
|
|
264
|
-
}
|
|
264
|
+
})
|
|
265
265
|
]
|
|
266
|
-
}
|
|
267
|
-
/* @__PURE__ */
|
|
266
|
+
}),
|
|
267
|
+
/* @__PURE__ */ jsxs("div", {
|
|
268
268
|
className: "flex items-center gap-4 pt-4",
|
|
269
269
|
children: [
|
|
270
|
-
/* @__PURE__ */
|
|
270
|
+
/* @__PURE__ */ jsxs(Link, {
|
|
271
271
|
href: "/docs/getting-started/tools/vscode",
|
|
272
272
|
className: "btn-primary",
|
|
273
273
|
children: [
|
|
274
274
|
"Next: VS Code Extension ",
|
|
275
|
-
/* @__PURE__ */
|
|
275
|
+
/* @__PURE__ */ jsx(ChevronRight, {
|
|
276
276
|
size: 16
|
|
277
|
-
}
|
|
277
|
+
})
|
|
278
278
|
]
|
|
279
|
-
}
|
|
280
|
-
/* @__PURE__ */
|
|
279
|
+
}),
|
|
280
|
+
/* @__PURE__ */ jsx(Link, {
|
|
281
281
|
href: "/docs/getting-started/tools",
|
|
282
282
|
className: "btn-ghost",
|
|
283
283
|
children: "Back to Tools"
|
|
284
|
-
}
|
|
284
|
+
})
|
|
285
285
|
]
|
|
286
|
-
}
|
|
286
|
+
})
|
|
287
287
|
]
|
|
288
|
-
}
|
|
288
|
+
});
|
|
289
289
|
}
|
|
290
290
|
|
|
291
291
|
// src/components/docs/getting-started/CompatibilityPage.tsx
|
|
292
292
|
import Link2 from "@contractspec/lib.ui-link";
|
|
293
293
|
import { ChevronRight as ChevronRight2 } from "lucide-react";
|
|
294
|
-
import {
|
|
294
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
295
295
|
function CompatibilityPage() {
|
|
296
|
-
return /* @__PURE__ */
|
|
296
|
+
return /* @__PURE__ */ jsxs2("div", {
|
|
297
297
|
className: "space-y-8",
|
|
298
298
|
children: [
|
|
299
|
-
/* @__PURE__ */
|
|
299
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
300
300
|
className: "space-y-2",
|
|
301
301
|
children: [
|
|
302
|
-
/* @__PURE__ */
|
|
302
|
+
/* @__PURE__ */ jsx2("h1", {
|
|
303
303
|
className: "text-4xl font-bold",
|
|
304
304
|
children: "Compatibility"
|
|
305
|
-
}
|
|
306
|
-
/* @__PURE__ */
|
|
305
|
+
}),
|
|
306
|
+
/* @__PURE__ */ jsx2("p", {
|
|
307
307
|
className: "text-muted-foreground text-lg",
|
|
308
308
|
children: "Supported runtimes, frameworks, and agent modes for ContractSpec."
|
|
309
|
-
}
|
|
309
|
+
})
|
|
310
310
|
]
|
|
311
|
-
}
|
|
312
|
-
/* @__PURE__ */
|
|
311
|
+
}),
|
|
312
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
313
313
|
className: "space-y-6",
|
|
314
314
|
children: [
|
|
315
|
-
/* @__PURE__ */
|
|
315
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
316
316
|
className: "card-subtle space-y-3 p-6",
|
|
317
317
|
children: [
|
|
318
|
-
/* @__PURE__ */
|
|
318
|
+
/* @__PURE__ */ jsx2("h2", {
|
|
319
319
|
className: "text-2xl font-bold",
|
|
320
320
|
children: "Runtimes"
|
|
321
|
-
}
|
|
322
|
-
/* @__PURE__ */
|
|
321
|
+
}),
|
|
322
|
+
/* @__PURE__ */ jsxs2("ul", {
|
|
323
323
|
className: "text-muted-foreground space-y-2",
|
|
324
324
|
children: [
|
|
325
|
-
/* @__PURE__ */
|
|
325
|
+
/* @__PURE__ */ jsx2("li", {
|
|
326
326
|
children: "Node.js 20+"
|
|
327
|
-
}
|
|
328
|
-
/* @__PURE__ */
|
|
327
|
+
}),
|
|
328
|
+
/* @__PURE__ */ jsx2("li", {
|
|
329
329
|
children: "Bun 1.0+"
|
|
330
|
-
}
|
|
330
|
+
})
|
|
331
331
|
]
|
|
332
|
-
}
|
|
332
|
+
})
|
|
333
333
|
]
|
|
334
|
-
}
|
|
335
|
-
/* @__PURE__ */
|
|
334
|
+
}),
|
|
335
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
336
336
|
className: "card-subtle space-y-3 p-6",
|
|
337
337
|
children: [
|
|
338
|
-
/* @__PURE__ */
|
|
338
|
+
/* @__PURE__ */ jsx2("h2", {
|
|
339
339
|
className: "text-2xl font-bold",
|
|
340
340
|
children: "Frameworks"
|
|
341
|
-
}
|
|
342
|
-
/* @__PURE__ */
|
|
341
|
+
}),
|
|
342
|
+
/* @__PURE__ */ jsxs2("ul", {
|
|
343
343
|
className: "text-muted-foreground space-y-2",
|
|
344
344
|
children: [
|
|
345
|
-
/* @__PURE__ */
|
|
345
|
+
/* @__PURE__ */ jsx2("li", {
|
|
346
346
|
children: "Next.js 14+ (App Router preferred)"
|
|
347
|
-
}
|
|
348
|
-
/* @__PURE__ */
|
|
347
|
+
}),
|
|
348
|
+
/* @__PURE__ */ jsx2("li", {
|
|
349
349
|
children: "Bun + Elysia or compatible HTTP servers"
|
|
350
|
-
}
|
|
350
|
+
})
|
|
351
351
|
]
|
|
352
|
-
}
|
|
352
|
+
})
|
|
353
353
|
]
|
|
354
|
-
}
|
|
355
|
-
/* @__PURE__ */
|
|
354
|
+
}),
|
|
355
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
356
356
|
className: "card-subtle space-y-3 p-6",
|
|
357
357
|
children: [
|
|
358
|
-
/* @__PURE__ */
|
|
358
|
+
/* @__PURE__ */ jsx2("h2", {
|
|
359
359
|
className: "text-2xl font-bold",
|
|
360
360
|
children: "Package managers"
|
|
361
|
-
}
|
|
362
|
-
/* @__PURE__ */
|
|
361
|
+
}),
|
|
362
|
+
/* @__PURE__ */ jsxs2("ul", {
|
|
363
363
|
className: "text-muted-foreground space-y-2",
|
|
364
364
|
children: [
|
|
365
|
-
/* @__PURE__ */
|
|
365
|
+
/* @__PURE__ */ jsx2("li", {
|
|
366
366
|
children: "bun (recommended)"
|
|
367
|
-
}
|
|
368
|
-
/* @__PURE__ */
|
|
367
|
+
}),
|
|
368
|
+
/* @__PURE__ */ jsx2("li", {
|
|
369
369
|
children: "npm"
|
|
370
|
-
}
|
|
371
|
-
/* @__PURE__ */
|
|
370
|
+
}),
|
|
371
|
+
/* @__PURE__ */ jsx2("li", {
|
|
372
372
|
children: "pnpm"
|
|
373
|
-
}
|
|
373
|
+
})
|
|
374
374
|
]
|
|
375
|
-
}
|
|
375
|
+
})
|
|
376
376
|
]
|
|
377
|
-
}
|
|
378
|
-
/* @__PURE__ */
|
|
377
|
+
}),
|
|
378
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
379
379
|
className: "card-subtle space-y-3 p-6",
|
|
380
380
|
children: [
|
|
381
|
-
/* @__PURE__ */
|
|
381
|
+
/* @__PURE__ */ jsx2("h2", {
|
|
382
382
|
className: "text-2xl font-bold",
|
|
383
383
|
children: "AI agent modes"
|
|
384
|
-
}
|
|
385
|
-
/* @__PURE__ */
|
|
384
|
+
}),
|
|
385
|
+
/* @__PURE__ */ jsxs2("ul", {
|
|
386
386
|
className: "text-muted-foreground space-y-2",
|
|
387
387
|
children: [
|
|
388
|
-
/* @__PURE__ */
|
|
388
|
+
/* @__PURE__ */ jsx2("li", {
|
|
389
389
|
children: "claude-code"
|
|
390
|
-
}
|
|
391
|
-
/* @__PURE__ */
|
|
390
|
+
}),
|
|
391
|
+
/* @__PURE__ */ jsx2("li", {
|
|
392
392
|
children: "openai-codex"
|
|
393
|
-
}
|
|
394
|
-
/* @__PURE__ */
|
|
393
|
+
}),
|
|
394
|
+
/* @__PURE__ */ jsx2("li", {
|
|
395
395
|
children: "cursor"
|
|
396
|
-
}
|
|
397
|
-
/* @__PURE__ */
|
|
396
|
+
}),
|
|
397
|
+
/* @__PURE__ */ jsx2("li", {
|
|
398
398
|
children: "opencode"
|
|
399
|
-
}
|
|
400
|
-
/* @__PURE__ */
|
|
399
|
+
}),
|
|
400
|
+
/* @__PURE__ */ jsx2("li", {
|
|
401
401
|
children: "simple (direct LLM)"
|
|
402
|
-
}
|
|
402
|
+
})
|
|
403
403
|
]
|
|
404
|
-
}
|
|
404
|
+
})
|
|
405
405
|
]
|
|
406
|
-
}
|
|
407
|
-
/* @__PURE__ */
|
|
406
|
+
}),
|
|
407
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
408
408
|
className: "card-subtle space-y-3 p-6",
|
|
409
409
|
children: [
|
|
410
|
-
/* @__PURE__ */
|
|
410
|
+
/* @__PURE__ */ jsx2("h2", {
|
|
411
411
|
className: "text-2xl font-bold",
|
|
412
412
|
children: "Datastores"
|
|
413
|
-
}
|
|
414
|
-
/* @__PURE__ */
|
|
413
|
+
}),
|
|
414
|
+
/* @__PURE__ */ jsx2("p", {
|
|
415
415
|
className: "text-muted-foreground",
|
|
416
416
|
children: "ContractSpec ships with Prisma-friendly defaults and can integrate with custom adapters for other databases."
|
|
417
|
-
}
|
|
418
|
-
/* @__PURE__ */
|
|
417
|
+
}),
|
|
418
|
+
/* @__PURE__ */ jsxs2("ul", {
|
|
419
419
|
className: "text-muted-foreground space-y-2",
|
|
420
420
|
children: [
|
|
421
|
-
/* @__PURE__ */
|
|
421
|
+
/* @__PURE__ */ jsx2("li", {
|
|
422
422
|
children: "PostgreSQL via Prisma"
|
|
423
|
-
}
|
|
424
|
-
/* @__PURE__ */
|
|
423
|
+
}),
|
|
424
|
+
/* @__PURE__ */ jsx2("li", {
|
|
425
425
|
children: "Custom adapters for other SQL/NoSQL stores"
|
|
426
|
-
}
|
|
426
|
+
})
|
|
427
427
|
]
|
|
428
|
-
}
|
|
428
|
+
})
|
|
429
429
|
]
|
|
430
|
-
}
|
|
430
|
+
})
|
|
431
431
|
]
|
|
432
|
-
}
|
|
433
|
-
/* @__PURE__ */
|
|
432
|
+
}),
|
|
433
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
434
434
|
className: "flex flex-wrap items-center gap-3 pt-2",
|
|
435
435
|
children: [
|
|
436
|
-
/* @__PURE__ */
|
|
436
|
+
/* @__PURE__ */ jsx2(Link2, {
|
|
437
437
|
href: "/docs/getting-started/start-here",
|
|
438
438
|
className: "btn-ghost",
|
|
439
439
|
children: "Start here"
|
|
440
|
-
}
|
|
441
|
-
/* @__PURE__ */
|
|
440
|
+
}),
|
|
441
|
+
/* @__PURE__ */ jsx2(Link2, {
|
|
442
442
|
href: "/docs/getting-started/troubleshooting",
|
|
443
443
|
className: "btn-ghost",
|
|
444
444
|
children: "Troubleshooting"
|
|
445
|
-
}
|
|
446
|
-
/* @__PURE__ */
|
|
445
|
+
}),
|
|
446
|
+
/* @__PURE__ */ jsxs2(Link2, {
|
|
447
447
|
href: "/docs/getting-started/installation",
|
|
448
448
|
className: "btn-primary",
|
|
449
449
|
children: [
|
|
450
450
|
"Next: Installation ",
|
|
451
|
-
/* @__PURE__ */
|
|
451
|
+
/* @__PURE__ */ jsx2(ChevronRight2, {
|
|
452
452
|
size: 16
|
|
453
|
-
}
|
|
453
|
+
})
|
|
454
454
|
]
|
|
455
|
-
}
|
|
455
|
+
})
|
|
456
456
|
]
|
|
457
|
-
}
|
|
457
|
+
})
|
|
458
458
|
]
|
|
459
|
-
}
|
|
459
|
+
});
|
|
460
460
|
}
|
|
461
461
|
|
|
462
462
|
// src/components/docs/getting-started/DataViewTutorialPage.tsx
|
|
463
463
|
import Link3 from "@contractspec/lib.ui-link";
|
|
464
464
|
import { ChevronRight as ChevronRight3 } from "lucide-react";
|
|
465
465
|
import { CodeBlock as CodeBlock2 } from "@contractspec/lib.design-system";
|
|
466
|
-
import {
|
|
466
|
+
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
467
467
|
function DataViewTutorialPage() {
|
|
468
|
-
return /* @__PURE__ */
|
|
468
|
+
return /* @__PURE__ */ jsxs3("div", {
|
|
469
469
|
className: "space-y-8",
|
|
470
470
|
children: [
|
|
471
|
-
/* @__PURE__ */
|
|
471
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
472
472
|
className: "space-y-4",
|
|
473
473
|
children: [
|
|
474
|
-
/* @__PURE__ */
|
|
474
|
+
/* @__PURE__ */ jsx3("h1", {
|
|
475
475
|
className: "text-4xl font-bold",
|
|
476
476
|
children: "Display Data with DataViews"
|
|
477
|
-
}
|
|
478
|
-
/* @__PURE__ */
|
|
477
|
+
}),
|
|
478
|
+
/* @__PURE__ */ jsx3("p", {
|
|
479
479
|
className: "text-muted-foreground text-lg",
|
|
480
480
|
children: "Define a filterable, sortable transaction history view that works across web and mobile without duplicating UI code."
|
|
481
|
-
}
|
|
481
|
+
})
|
|
482
482
|
]
|
|
483
|
-
}
|
|
484
|
-
/* @__PURE__ */
|
|
483
|
+
}),
|
|
484
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
485
485
|
className: "space-y-4",
|
|
486
486
|
children: [
|
|
487
|
-
/* @__PURE__ */
|
|
487
|
+
/* @__PURE__ */ jsx3("h2", {
|
|
488
488
|
className: "text-2xl font-bold",
|
|
489
489
|
children: "1. Define the underlying query"
|
|
490
|
-
}
|
|
491
|
-
/* @__PURE__ */
|
|
490
|
+
}),
|
|
491
|
+
/* @__PURE__ */ jsx3("p", {
|
|
492
492
|
className: "text-muted-foreground",
|
|
493
493
|
children: "First, create a query operation to fetch the data:"
|
|
494
|
-
}
|
|
495
|
-
/* @__PURE__ */
|
|
494
|
+
}),
|
|
495
|
+
/* @__PURE__ */ jsx3(CodeBlock2, {
|
|
496
496
|
language: "typescript",
|
|
497
497
|
filename: "lib/specs/billing/list-transactions.ts",
|
|
498
498
|
code: `import { defineQuery } from '@contractspec/lib.contracts-spec';
|
|
@@ -509,21 +509,21 @@ export const ListTransactions = defineQuery({
|
|
|
509
509
|
},
|
|
510
510
|
policy: { auth: 'user' },
|
|
511
511
|
});`
|
|
512
|
-
}
|
|
512
|
+
})
|
|
513
513
|
]
|
|
514
|
-
}
|
|
515
|
-
/* @__PURE__ */
|
|
514
|
+
}),
|
|
515
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
516
516
|
className: "space-y-4",
|
|
517
517
|
children: [
|
|
518
|
-
/* @__PURE__ */
|
|
518
|
+
/* @__PURE__ */ jsx3("h2", {
|
|
519
519
|
className: "text-2xl font-bold",
|
|
520
520
|
children: "2. Define the DataView spec"
|
|
521
|
-
}
|
|
522
|
-
/* @__PURE__ */
|
|
521
|
+
}),
|
|
522
|
+
/* @__PURE__ */ jsx3("p", {
|
|
523
523
|
className: "text-muted-foreground",
|
|
524
524
|
children: "Wrap your query with presentation metadata:"
|
|
525
|
-
}
|
|
526
|
-
/* @__PURE__ */
|
|
525
|
+
}),
|
|
526
|
+
/* @__PURE__ */ jsx3(CodeBlock2, {
|
|
527
527
|
language: "typescript",
|
|
528
528
|
filename: "lib/specs/billing/transaction-history.data-view.ts",
|
|
529
529
|
code: `import { defineDataView } from '@contractspec/lib.contracts-spec';
|
|
@@ -596,21 +596,21 @@ export const TransactionHistory = defineDataView({
|
|
|
596
596
|
pagination: { pageSize: 25 },
|
|
597
597
|
},
|
|
598
598
|
});`
|
|
599
|
-
}
|
|
599
|
+
})
|
|
600
600
|
]
|
|
601
|
-
}
|
|
602
|
-
/* @__PURE__ */
|
|
601
|
+
}),
|
|
602
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
603
603
|
className: "space-y-4",
|
|
604
604
|
children: [
|
|
605
|
-
/* @__PURE__ */
|
|
605
|
+
/* @__PURE__ */ jsx3("h2", {
|
|
606
606
|
className: "text-2xl font-bold",
|
|
607
607
|
children: "3. Render on the frontend"
|
|
608
|
-
}
|
|
609
|
-
/* @__PURE__ */
|
|
608
|
+
}),
|
|
609
|
+
/* @__PURE__ */ jsx3("p", {
|
|
610
610
|
className: "text-muted-foreground",
|
|
611
611
|
children: "Use the runtime renderer in your React or React Native app:"
|
|
612
|
-
}
|
|
613
|
-
/* @__PURE__ */
|
|
612
|
+
}),
|
|
613
|
+
/* @__PURE__ */ jsx3(CodeBlock2, {
|
|
614
614
|
language: "tsx",
|
|
615
615
|
filename: "app/dashboard/transactions/page.tsx",
|
|
616
616
|
code: `'use client';
|
|
@@ -639,67 +639,67 @@ export function TransactionsPage() {
|
|
|
639
639
|
</div>
|
|
640
640
|
);
|
|
641
641
|
}`
|
|
642
|
-
}
|
|
642
|
+
})
|
|
643
643
|
]
|
|
644
|
-
}
|
|
645
|
-
/* @__PURE__ */
|
|
644
|
+
}),
|
|
645
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
646
646
|
className: "card-subtle space-y-4 p-6",
|
|
647
647
|
children: [
|
|
648
|
-
/* @__PURE__ */
|
|
648
|
+
/* @__PURE__ */ jsx3("h3", {
|
|
649
649
|
className: "font-bold",
|
|
650
650
|
children: "Why DataViews?"
|
|
651
|
-
}
|
|
652
|
-
/* @__PURE__ */
|
|
651
|
+
}),
|
|
652
|
+
/* @__PURE__ */ jsxs3("ul", {
|
|
653
653
|
className: "text-muted-foreground space-y-2 text-sm",
|
|
654
654
|
children: [
|
|
655
|
-
/* @__PURE__ */
|
|
655
|
+
/* @__PURE__ */ jsx3("li", {
|
|
656
656
|
children: "Same spec renders on web (React) and mobile (React Native)"
|
|
657
|
-
}
|
|
658
|
-
/* @__PURE__ */
|
|
657
|
+
}),
|
|
658
|
+
/* @__PURE__ */ jsx3("li", {
|
|
659
659
|
children: "Filters, sorting, and pagination handled automatically"
|
|
660
|
-
}
|
|
661
|
-
/* @__PURE__ */
|
|
660
|
+
}),
|
|
661
|
+
/* @__PURE__ */ jsx3("li", {
|
|
662
662
|
children: "Format rules (currency, dates, badges) applied consistently"
|
|
663
|
-
}
|
|
664
|
-
/* @__PURE__ */
|
|
663
|
+
}),
|
|
664
|
+
/* @__PURE__ */ jsx3("li", {
|
|
665
665
|
children: "Export to CSV/PDF using the same spec"
|
|
666
|
-
}
|
|
667
|
-
/* @__PURE__ */
|
|
666
|
+
}),
|
|
667
|
+
/* @__PURE__ */ jsx3("li", {
|
|
668
668
|
children: "A/B test different layouts without touching the backend"
|
|
669
|
-
}
|
|
669
|
+
})
|
|
670
670
|
]
|
|
671
|
-
}
|
|
671
|
+
})
|
|
672
672
|
]
|
|
673
|
-
}
|
|
674
|
-
/* @__PURE__ */
|
|
673
|
+
}),
|
|
674
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
675
675
|
className: "flex items-center gap-4 pt-4",
|
|
676
676
|
children: [
|
|
677
|
-
/* @__PURE__ */
|
|
677
|
+
/* @__PURE__ */ jsxs3(Link3, {
|
|
678
678
|
href: "/docs/libraries/data-views",
|
|
679
679
|
className: "btn-primary",
|
|
680
680
|
children: [
|
|
681
681
|
"DataView API Reference ",
|
|
682
|
-
/* @__PURE__ */
|
|
682
|
+
/* @__PURE__ */ jsx3(ChevronRight3, {
|
|
683
683
|
size: 16
|
|
684
|
-
}
|
|
684
|
+
})
|
|
685
685
|
]
|
|
686
|
-
}
|
|
687
|
-
/* @__PURE__ */
|
|
686
|
+
}),
|
|
687
|
+
/* @__PURE__ */ jsx3(Link3, {
|
|
688
688
|
href: "/docs/specs/workflows",
|
|
689
689
|
className: "btn-ghost",
|
|
690
690
|
children: "Next: Workflows"
|
|
691
|
-
}
|
|
691
|
+
})
|
|
692
692
|
]
|
|
693
|
-
}
|
|
693
|
+
})
|
|
694
694
|
]
|
|
695
|
-
}
|
|
695
|
+
});
|
|
696
696
|
}
|
|
697
697
|
|
|
698
698
|
// src/components/docs/getting-started/DeveloperToolsPage.tsx
|
|
699
699
|
import Link4 from "@contractspec/lib.ui-link";
|
|
700
700
|
import { ChevronRight as ChevronRight4, Code2, Cpu, Layers, Terminal } from "lucide-react";
|
|
701
701
|
import { CodeBlock as CodeBlock3, InstallCommand as InstallCommand2 } from "@contractspec/lib.design-system";
|
|
702
|
-
import {
|
|
702
|
+
import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
703
703
|
function DeveloperToolsPage() {
|
|
704
704
|
const tools = [
|
|
705
705
|
{
|
|
@@ -751,198 +751,198 @@ function DeveloperToolsPage() {
|
|
|
751
751
|
]
|
|
752
752
|
}
|
|
753
753
|
];
|
|
754
|
-
return /* @__PURE__ */
|
|
754
|
+
return /* @__PURE__ */ jsxs4("div", {
|
|
755
755
|
className: "space-y-8",
|
|
756
756
|
children: [
|
|
757
|
-
/* @__PURE__ */
|
|
757
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
758
758
|
className: "space-y-2",
|
|
759
759
|
children: [
|
|
760
|
-
/* @__PURE__ */
|
|
760
|
+
/* @__PURE__ */ jsx4("h1", {
|
|
761
761
|
className: "text-4xl font-bold",
|
|
762
762
|
children: "Developer Tools"
|
|
763
|
-
}
|
|
764
|
-
/* @__PURE__ */
|
|
763
|
+
}),
|
|
764
|
+
/* @__PURE__ */ jsx4("p", {
|
|
765
765
|
className: "text-muted-foreground text-lg",
|
|
766
766
|
children: "ContractSpec provides a suite of tools to help you build, validate, and manage your specifications across different environments."
|
|
767
|
-
}
|
|
767
|
+
})
|
|
768
768
|
]
|
|
769
|
-
}
|
|
770
|
-
/* @__PURE__ */
|
|
769
|
+
}),
|
|
770
|
+
/* @__PURE__ */ jsx4("div", {
|
|
771
771
|
className: "grid gap-6 md:grid-cols-2",
|
|
772
772
|
children: tools.map((tool) => {
|
|
773
773
|
const IconComponent = tool.icon;
|
|
774
774
|
const isComingSoon = tool.status === "coming-soon";
|
|
775
|
-
return /* @__PURE__ */
|
|
775
|
+
return /* @__PURE__ */ jsxs4("div", {
|
|
776
776
|
className: `card-subtle relative space-y-4 p-6 ${isComingSoon ? "opacity-75" : ""}`,
|
|
777
777
|
children: [
|
|
778
|
-
isComingSoon && /* @__PURE__ */
|
|
778
|
+
isComingSoon && /* @__PURE__ */ jsx4("span", {
|
|
779
779
|
className: "absolute -top-2 right-4 rounded-full bg-violet-500/20 px-2 py-0.5 text-xs font-medium text-violet-400",
|
|
780
780
|
children: "Coming Soon"
|
|
781
|
-
}
|
|
782
|
-
/* @__PURE__ */
|
|
781
|
+
}),
|
|
782
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
783
783
|
className: "flex items-center gap-3",
|
|
784
784
|
children: [
|
|
785
|
-
/* @__PURE__ */
|
|
785
|
+
/* @__PURE__ */ jsx4("div", {
|
|
786
786
|
className: "flex h-10 w-10 items-center justify-center rounded-lg bg-violet-500/10",
|
|
787
|
-
children: /* @__PURE__ */
|
|
787
|
+
children: /* @__PURE__ */ jsx4(IconComponent, {
|
|
788
788
|
className: "h-5 w-5 text-violet-400"
|
|
789
|
-
}
|
|
790
|
-
}
|
|
791
|
-
/* @__PURE__ */
|
|
789
|
+
})
|
|
790
|
+
}),
|
|
791
|
+
/* @__PURE__ */ jsx4("h3", {
|
|
792
792
|
className: "text-lg font-bold",
|
|
793
793
|
children: tool.name
|
|
794
|
-
}
|
|
794
|
+
})
|
|
795
795
|
]
|
|
796
|
-
}
|
|
797
|
-
/* @__PURE__ */
|
|
796
|
+
}),
|
|
797
|
+
/* @__PURE__ */ jsx4("p", {
|
|
798
798
|
className: "text-muted-foreground text-sm",
|
|
799
799
|
children: tool.description
|
|
800
|
-
}
|
|
801
|
-
/* @__PURE__ */
|
|
800
|
+
}),
|
|
801
|
+
/* @__PURE__ */ jsx4("ul", {
|
|
802
802
|
className: "space-y-1",
|
|
803
|
-
children: tool.highlights.map((highlight) => /* @__PURE__ */
|
|
803
|
+
children: tool.highlights.map((highlight) => /* @__PURE__ */ jsxs4("li", {
|
|
804
804
|
className: "text-muted-foreground flex items-center gap-2 text-sm",
|
|
805
805
|
children: [
|
|
806
|
-
/* @__PURE__ */
|
|
806
|
+
/* @__PURE__ */ jsx4("span", {
|
|
807
807
|
className: "text-violet-400",
|
|
808
808
|
children: "-"
|
|
809
|
-
}
|
|
809
|
+
}),
|
|
810
810
|
highlight
|
|
811
811
|
]
|
|
812
|
-
}, highlight
|
|
813
|
-
}
|
|
814
|
-
!isComingSoon && /* @__PURE__ */
|
|
812
|
+
}, highlight))
|
|
813
|
+
}),
|
|
814
|
+
!isComingSoon && /* @__PURE__ */ jsxs4(Link4, {
|
|
815
815
|
href: tool.href,
|
|
816
816
|
className: "btn-ghost inline-flex items-center gap-1 text-sm",
|
|
817
817
|
children: [
|
|
818
818
|
"Learn more ",
|
|
819
|
-
/* @__PURE__ */
|
|
819
|
+
/* @__PURE__ */ jsx4(ChevronRight4, {
|
|
820
820
|
size: 14
|
|
821
|
-
}
|
|
821
|
+
})
|
|
822
822
|
]
|
|
823
|
-
}
|
|
823
|
+
})
|
|
824
824
|
]
|
|
825
|
-
}, tool.name
|
|
825
|
+
}, tool.name);
|
|
826
826
|
})
|
|
827
|
-
}
|
|
828
|
-
/* @__PURE__ */
|
|
827
|
+
}),
|
|
828
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
829
829
|
className: "card-subtle space-y-4 p-6",
|
|
830
830
|
children: [
|
|
831
|
-
/* @__PURE__ */
|
|
831
|
+
/* @__PURE__ */ jsx4("h3", {
|
|
832
832
|
className: "font-bold",
|
|
833
833
|
children: "Quick Install"
|
|
834
|
-
}
|
|
835
|
-
/* @__PURE__ */
|
|
834
|
+
}),
|
|
835
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
836
836
|
className: "space-y-3",
|
|
837
837
|
children: [
|
|
838
|
-
/* @__PURE__ */
|
|
838
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
839
839
|
children: [
|
|
840
|
-
/* @__PURE__ */
|
|
840
|
+
/* @__PURE__ */ jsx4("p", {
|
|
841
841
|
className: "text-muted-foreground mb-2 text-xs font-medium",
|
|
842
842
|
children: "CLI"
|
|
843
|
-
}
|
|
844
|
-
/* @__PURE__ */
|
|
843
|
+
}),
|
|
844
|
+
/* @__PURE__ */ jsx4(InstallCommand2, {
|
|
845
845
|
package: "contractspec",
|
|
846
846
|
dev: true
|
|
847
|
-
}
|
|
847
|
+
})
|
|
848
848
|
]
|
|
849
|
-
}
|
|
850
|
-
/* @__PURE__ */
|
|
849
|
+
}),
|
|
850
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
851
851
|
children: [
|
|
852
|
-
/* @__PURE__ */
|
|
852
|
+
/* @__PURE__ */ jsx4("p", {
|
|
853
853
|
className: "text-muted-foreground mb-2 text-xs font-medium",
|
|
854
854
|
children: "VS Code Extension"
|
|
855
|
-
}
|
|
856
|
-
/* @__PURE__ */
|
|
855
|
+
}),
|
|
856
|
+
/* @__PURE__ */ jsx4(CodeBlock3, {
|
|
857
857
|
language: "bash",
|
|
858
858
|
code: "code --install-extension lssm.vscode-contractspec"
|
|
859
|
-
}
|
|
859
|
+
})
|
|
860
860
|
]
|
|
861
|
-
}
|
|
861
|
+
})
|
|
862
862
|
]
|
|
863
|
-
}
|
|
863
|
+
})
|
|
864
864
|
]
|
|
865
|
-
}
|
|
866
|
-
/* @__PURE__ */
|
|
865
|
+
}),
|
|
866
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
867
867
|
className: "flex items-center gap-4 pt-4",
|
|
868
868
|
children: [
|
|
869
|
-
/* @__PURE__ */
|
|
869
|
+
/* @__PURE__ */ jsxs4(Link4, {
|
|
870
870
|
href: "/docs/getting-started/tools/cli",
|
|
871
871
|
className: "btn-primary",
|
|
872
872
|
children: [
|
|
873
873
|
"Get Started with CLI ",
|
|
874
|
-
/* @__PURE__ */
|
|
874
|
+
/* @__PURE__ */ jsx4(ChevronRight4, {
|
|
875
875
|
size: 16
|
|
876
|
-
}
|
|
876
|
+
})
|
|
877
877
|
]
|
|
878
|
-
}
|
|
879
|
-
/* @__PURE__ */
|
|
878
|
+
}),
|
|
879
|
+
/* @__PURE__ */ jsx4(Link4, {
|
|
880
880
|
href: "/docs/getting-started/tools/vscode",
|
|
881
881
|
className: "btn-ghost",
|
|
882
882
|
children: "VS Code Extension"
|
|
883
|
-
}
|
|
883
|
+
})
|
|
884
884
|
]
|
|
885
|
-
}
|
|
885
|
+
})
|
|
886
886
|
]
|
|
887
|
-
}
|
|
887
|
+
});
|
|
888
888
|
}
|
|
889
889
|
|
|
890
890
|
// src/components/docs/getting-started/HelloWorldPage.tsx
|
|
891
891
|
import Link5 from "@contractspec/lib.ui-link";
|
|
892
892
|
import { ChevronRight as ChevronRight5 } from "lucide-react";
|
|
893
893
|
import { CodeBlock as CodeBlock4 } from "@contractspec/lib.design-system";
|
|
894
|
-
import {
|
|
894
|
+
import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
895
895
|
function HelloWorldPage() {
|
|
896
|
-
return /* @__PURE__ */
|
|
896
|
+
return /* @__PURE__ */ jsxs5("div", {
|
|
897
897
|
className: "space-y-8",
|
|
898
898
|
children: [
|
|
899
|
-
/* @__PURE__ */
|
|
899
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
900
900
|
className: "space-y-2",
|
|
901
901
|
children: [
|
|
902
|
-
/* @__PURE__ */
|
|
902
|
+
/* @__PURE__ */ jsx5("h1", {
|
|
903
903
|
className: "text-4xl font-bold",
|
|
904
904
|
children: "Your First Operation"
|
|
905
|
-
}
|
|
906
|
-
/* @__PURE__ */
|
|
905
|
+
}),
|
|
906
|
+
/* @__PURE__ */ jsx5("p", {
|
|
907
907
|
className: "text-muted-foreground text-lg",
|
|
908
908
|
children: "Build a payment capture operation with policy enforcement in under 10 minutes."
|
|
909
|
-
}
|
|
909
|
+
})
|
|
910
910
|
]
|
|
911
|
-
}
|
|
912
|
-
/* @__PURE__ */
|
|
911
|
+
}),
|
|
912
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
913
913
|
className: "space-y-6",
|
|
914
914
|
children: [
|
|
915
|
-
/* @__PURE__ */
|
|
915
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
916
916
|
className: "space-y-3",
|
|
917
917
|
children: [
|
|
918
|
-
/* @__PURE__ */
|
|
918
|
+
/* @__PURE__ */ jsx5("h2", {
|
|
919
919
|
className: "text-2xl font-bold",
|
|
920
920
|
children: "What you'll build"
|
|
921
|
-
}
|
|
922
|
-
/* @__PURE__ */
|
|
921
|
+
}),
|
|
922
|
+
/* @__PURE__ */ jsx5("p", {
|
|
923
923
|
className: "text-muted-foreground",
|
|
924
924
|
children: "A real-world payment processing operation that validates input, enforces business rules, integrates with Stripe, and audits every transaction. This is production-ready code, not a toy example."
|
|
925
|
-
}
|
|
925
|
+
})
|
|
926
926
|
]
|
|
927
|
-
}
|
|
928
|
-
/* @__PURE__ */
|
|
927
|
+
}),
|
|
928
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
929
929
|
className: "space-y-3",
|
|
930
930
|
children: [
|
|
931
|
-
/* @__PURE__ */
|
|
931
|
+
/* @__PURE__ */ jsx5("h2", {
|
|
932
932
|
className: "text-2xl font-bold",
|
|
933
933
|
children: "1. Define the operation spec"
|
|
934
|
-
}
|
|
935
|
-
/* @__PURE__ */
|
|
934
|
+
}),
|
|
935
|
+
/* @__PURE__ */ jsxs5("p", {
|
|
936
936
|
className: "text-muted-foreground",
|
|
937
937
|
children: [
|
|
938
938
|
"Create ",
|
|
939
|
-
/* @__PURE__ */
|
|
939
|
+
/* @__PURE__ */ jsx5("code", {
|
|
940
940
|
children: "lib/specs/billing/capture-payment.ts"
|
|
941
|
-
}
|
|
941
|
+
}),
|
|
942
942
|
":"
|
|
943
943
|
]
|
|
944
|
-
}
|
|
945
|
-
/* @__PURE__ */
|
|
944
|
+
}),
|
|
945
|
+
/* @__PURE__ */ jsx5(CodeBlock4, {
|
|
946
946
|
language: "typescript",
|
|
947
947
|
filename: "lib/specs/billing/capture-payment.ts",
|
|
948
948
|
code: `import { defineCommand } from '@contractspec/lib.contracts-spec';
|
|
@@ -989,27 +989,27 @@ export const CapturePayment = defineCommand({
|
|
|
989
989
|
],
|
|
990
990
|
},
|
|
991
991
|
});`
|
|
992
|
-
}
|
|
992
|
+
})
|
|
993
993
|
]
|
|
994
|
-
}
|
|
995
|
-
/* @__PURE__ */
|
|
994
|
+
}),
|
|
995
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
996
996
|
className: "space-y-3",
|
|
997
997
|
children: [
|
|
998
|
-
/* @__PURE__ */
|
|
998
|
+
/* @__PURE__ */ jsx5("h2", {
|
|
999
999
|
className: "text-2xl font-bold",
|
|
1000
1000
|
children: "2. Implement the handler"
|
|
1001
|
-
}
|
|
1002
|
-
/* @__PURE__ */
|
|
1001
|
+
}),
|
|
1002
|
+
/* @__PURE__ */ jsxs5("p", {
|
|
1003
1003
|
className: "text-muted-foreground",
|
|
1004
1004
|
children: [
|
|
1005
1005
|
"Create ",
|
|
1006
|
-
/* @__PURE__ */
|
|
1006
|
+
/* @__PURE__ */ jsx5("code", {
|
|
1007
1007
|
children: "lib/handlers/billing/capture-payment.ts"
|
|
1008
|
-
}
|
|
1008
|
+
}),
|
|
1009
1009
|
":"
|
|
1010
1010
|
]
|
|
1011
|
-
}
|
|
1012
|
-
/* @__PURE__ */
|
|
1011
|
+
}),
|
|
1012
|
+
/* @__PURE__ */ jsx5(CodeBlock4, {
|
|
1013
1013
|
language: "typescript",
|
|
1014
1014
|
filename: "lib/handlers/billing/capture-payment.ts",
|
|
1015
1015
|
code: `import { CapturePayment } from '@/lib/specs/billing/capture-payment';
|
|
@@ -1050,32 +1050,32 @@ export async function handleCapturePayment(input, ctx) {
|
|
|
1050
1050
|
receiptUrl: paymentIntent.charges.data[0]?.receipt_url,
|
|
1051
1051
|
};
|
|
1052
1052
|
}`
|
|
1053
|
-
}
|
|
1053
|
+
})
|
|
1054
1054
|
]
|
|
1055
|
-
}
|
|
1056
|
-
/* @__PURE__ */
|
|
1055
|
+
}),
|
|
1056
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
1057
1057
|
className: "space-y-3",
|
|
1058
1058
|
children: [
|
|
1059
|
-
/* @__PURE__ */
|
|
1059
|
+
/* @__PURE__ */ jsx5("h2", {
|
|
1060
1060
|
className: "text-2xl font-bold",
|
|
1061
1061
|
children: "3. Register and serve"
|
|
1062
|
-
}
|
|
1063
|
-
/* @__PURE__ */
|
|
1062
|
+
}),
|
|
1063
|
+
/* @__PURE__ */ jsxs5("p", {
|
|
1064
1064
|
className: "text-muted-foreground",
|
|
1065
1065
|
children: [
|
|
1066
1066
|
"Wire it up in ",
|
|
1067
|
-
/* @__PURE__ */
|
|
1067
|
+
/* @__PURE__ */ jsx5("code", {
|
|
1068
1068
|
children: "lib/registry.ts"
|
|
1069
|
-
}
|
|
1069
|
+
}),
|
|
1070
1070
|
" and",
|
|
1071
1071
|
" ",
|
|
1072
|
-
/* @__PURE__ */
|
|
1072
|
+
/* @__PURE__ */ jsx5("code", {
|
|
1073
1073
|
children: "app/api/ops/[...route]/route.ts"
|
|
1074
|
-
}
|
|
1074
|
+
}),
|
|
1075
1075
|
":"
|
|
1076
1076
|
]
|
|
1077
|
-
}
|
|
1078
|
-
/* @__PURE__ */
|
|
1077
|
+
}),
|
|
1078
|
+
/* @__PURE__ */ jsx5(CodeBlock4, {
|
|
1079
1079
|
language: "typescript",
|
|
1080
1080
|
filename: "lib/registry.ts",
|
|
1081
1081
|
code: `import { OperationSpecRegistry, installOp } from '@contractspec/lib.contracts-spec';
|
|
@@ -1084,8 +1084,8 @@ import { handleCapturePayment } from './handlers/billing/capture-payment';
|
|
|
1084
1084
|
|
|
1085
1085
|
export const registry = new OperationSpecRegistry();
|
|
1086
1086
|
installOp(registry, CapturePayment, handleCapturePayment);`
|
|
1087
|
-
}
|
|
1088
|
-
/* @__PURE__ */
|
|
1087
|
+
}),
|
|
1088
|
+
/* @__PURE__ */ jsx5(CodeBlock4, {
|
|
1089
1089
|
language: "typescript",
|
|
1090
1090
|
filename: "app/api/ops/[...route]/route.ts",
|
|
1091
1091
|
code: `import { makeNextAppHandler } from '@contractspec/lib.contracts-runtime-server-rest/rest-next-app';
|
|
@@ -1098,519 +1098,519 @@ const handler = makeNextAppHandler(registry, async (req) => {
|
|
|
1098
1098
|
});
|
|
1099
1099
|
|
|
1100
1100
|
export { handler as GET, handler as POST };`
|
|
1101
|
-
}
|
|
1101
|
+
})
|
|
1102
1102
|
]
|
|
1103
|
-
}
|
|
1104
|
-
/* @__PURE__ */
|
|
1103
|
+
}),
|
|
1104
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
1105
1105
|
className: "card-subtle space-y-4 p-6",
|
|
1106
1106
|
children: [
|
|
1107
|
-
/* @__PURE__ */
|
|
1107
|
+
/* @__PURE__ */ jsx5("h3", {
|
|
1108
1108
|
className: "font-bold",
|
|
1109
1109
|
children: "What you just built:"
|
|
1110
|
-
}
|
|
1111
|
-
/* @__PURE__ */
|
|
1110
|
+
}),
|
|
1111
|
+
/* @__PURE__ */ jsxs5("ul", {
|
|
1112
1112
|
className: "text-muted-foreground space-y-2 text-sm",
|
|
1113
1113
|
children: [
|
|
1114
|
-
/* @__PURE__ */
|
|
1114
|
+
/* @__PURE__ */ jsxs5("li", {
|
|
1115
1115
|
children: [
|
|
1116
1116
|
"Type-safe API endpoint at",
|
|
1117
1117
|
" ",
|
|
1118
|
-
/* @__PURE__ */
|
|
1118
|
+
/* @__PURE__ */ jsx5("code", {
|
|
1119
1119
|
children: "/api/ops/billing.capturePayment"
|
|
1120
|
-
}
|
|
1120
|
+
})
|
|
1121
1121
|
]
|
|
1122
|
-
}
|
|
1123
|
-
/* @__PURE__ */
|
|
1122
|
+
}),
|
|
1123
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1124
1124
|
children: "Automatic input validation (amount must be positive, IDs required)"
|
|
1125
|
-
}
|
|
1126
|
-
/* @__PURE__ */
|
|
1125
|
+
}),
|
|
1126
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1127
1127
|
children: "Policy enforcement—only invoice owner can pay"
|
|
1128
|
-
}
|
|
1129
|
-
/* @__PURE__ */
|
|
1128
|
+
}),
|
|
1129
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1130
1130
|
children: "Stripe integration with error handling"
|
|
1131
|
-
}
|
|
1132
|
-
/* @__PURE__ */
|
|
1131
|
+
}),
|
|
1132
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1133
1133
|
children: "Database transaction with audit trail"
|
|
1134
|
-
}
|
|
1135
|
-
/* @__PURE__ */
|
|
1134
|
+
}),
|
|
1135
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1136
1136
|
children: "Same spec works with GraphQL, MCP, or webhooks"
|
|
1137
|
-
}
|
|
1137
|
+
})
|
|
1138
1138
|
]
|
|
1139
|
-
}
|
|
1139
|
+
})
|
|
1140
1140
|
]
|
|
1141
|
-
}
|
|
1142
|
-
/* @__PURE__ */
|
|
1141
|
+
}),
|
|
1142
|
+
/* @__PURE__ */ jsx5("div", {
|
|
1143
1143
|
className: "flex items-center gap-4 pt-4",
|
|
1144
|
-
children: /* @__PURE__ */
|
|
1144
|
+
children: /* @__PURE__ */ jsxs5(Link5, {
|
|
1145
1145
|
href: "/docs/getting-started/dataviews",
|
|
1146
1146
|
className: "btn-primary",
|
|
1147
1147
|
children: [
|
|
1148
1148
|
"Next: Display Data with DataViews ",
|
|
1149
|
-
/* @__PURE__ */
|
|
1149
|
+
/* @__PURE__ */ jsx5(ChevronRight5, {
|
|
1150
1150
|
size: 16
|
|
1151
|
-
}
|
|
1151
|
+
})
|
|
1152
1152
|
]
|
|
1153
|
-
}
|
|
1154
|
-
}
|
|
1153
|
+
})
|
|
1154
|
+
})
|
|
1155
1155
|
]
|
|
1156
|
-
}
|
|
1156
|
+
})
|
|
1157
1157
|
]
|
|
1158
|
-
}
|
|
1158
|
+
});
|
|
1159
1159
|
}
|
|
1160
1160
|
|
|
1161
1161
|
// src/components/docs/getting-started/InstallationPage.tsx
|
|
1162
1162
|
import Link6 from "@contractspec/lib.ui-link";
|
|
1163
1163
|
import { ChevronRight as ChevronRight6 } from "lucide-react";
|
|
1164
1164
|
import { CodeBlock as CodeBlock5, InstallCommand as InstallCommand3 } from "@contractspec/lib.design-system";
|
|
1165
|
-
import {
|
|
1165
|
+
import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1166
1166
|
function InstallationPage() {
|
|
1167
|
-
return /* @__PURE__ */
|
|
1167
|
+
return /* @__PURE__ */ jsxs6("div", {
|
|
1168
1168
|
className: "space-y-8",
|
|
1169
1169
|
children: [
|
|
1170
|
-
/* @__PURE__ */
|
|
1170
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1171
1171
|
className: "space-y-2",
|
|
1172
1172
|
children: [
|
|
1173
|
-
/* @__PURE__ */
|
|
1173
|
+
/* @__PURE__ */ jsx6("h1", {
|
|
1174
1174
|
className: "text-4xl font-bold",
|
|
1175
1175
|
children: "Installation"
|
|
1176
|
-
}
|
|
1177
|
-
/* @__PURE__ */
|
|
1176
|
+
}),
|
|
1177
|
+
/* @__PURE__ */ jsx6("p", {
|
|
1178
1178
|
className: "text-muted-foreground text-lg",
|
|
1179
1179
|
children: "Add ContractSpec to your existing Next.js or Bun project, or start fresh."
|
|
1180
|
-
}
|
|
1180
|
+
})
|
|
1181
1181
|
]
|
|
1182
|
-
}
|
|
1183
|
-
/* @__PURE__ */
|
|
1182
|
+
}),
|
|
1183
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1184
1184
|
className: "space-y-6",
|
|
1185
1185
|
children: [
|
|
1186
|
-
/* @__PURE__ */
|
|
1186
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1187
1187
|
className: "space-y-3",
|
|
1188
1188
|
children: [
|
|
1189
|
-
/* @__PURE__ */
|
|
1189
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1190
1190
|
className: "text-2xl font-bold",
|
|
1191
1191
|
children: "Prerequisites"
|
|
1192
|
-
}
|
|
1193
|
-
/* @__PURE__ */
|
|
1192
|
+
}),
|
|
1193
|
+
/* @__PURE__ */ jsxs6("ul", {
|
|
1194
1194
|
className: "text-muted-foreground space-y-2",
|
|
1195
1195
|
children: [
|
|
1196
|
-
/* @__PURE__ */
|
|
1196
|
+
/* @__PURE__ */ jsx6("li", {
|
|
1197
1197
|
children: "Node.js 20+ (or Bun 1.0+)"
|
|
1198
|
-
}
|
|
1199
|
-
/* @__PURE__ */
|
|
1198
|
+
}),
|
|
1199
|
+
/* @__PURE__ */ jsx6("li", {
|
|
1200
1200
|
children: "Existing Next.js app or Bun HTTP server"
|
|
1201
|
-
}
|
|
1202
|
-
/* @__PURE__ */
|
|
1201
|
+
}),
|
|
1202
|
+
/* @__PURE__ */ jsx6("li", {
|
|
1203
1203
|
children: "PostgreSQL database (for persistence)"
|
|
1204
|
-
}
|
|
1204
|
+
})
|
|
1205
1205
|
]
|
|
1206
|
-
}
|
|
1206
|
+
})
|
|
1207
1207
|
]
|
|
1208
|
-
}
|
|
1209
|
-
/* @__PURE__ */
|
|
1208
|
+
}),
|
|
1209
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1210
1210
|
className: "space-y-3",
|
|
1211
1211
|
children: [
|
|
1212
|
-
/* @__PURE__ */
|
|
1212
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1213
1213
|
className: "text-2xl font-bold",
|
|
1214
1214
|
children: "Install Core Libraries"
|
|
1215
|
-
}
|
|
1216
|
-
/* @__PURE__ */
|
|
1215
|
+
}),
|
|
1216
|
+
/* @__PURE__ */ jsx6("p", {
|
|
1217
1217
|
className: "text-muted-foreground",
|
|
1218
1218
|
children: "Add the contracts runtime and your choice of adapter:"
|
|
1219
|
-
}
|
|
1220
|
-
/* @__PURE__ */
|
|
1219
|
+
}),
|
|
1220
|
+
/* @__PURE__ */ jsx6(InstallCommand3, {
|
|
1221
1221
|
package: [
|
|
1222
1222
|
"@contractspec/lib.contracts-spec",
|
|
1223
1223
|
"@contractspec/lib.schema"
|
|
1224
1224
|
]
|
|
1225
|
-
}
|
|
1225
|
+
})
|
|
1226
1226
|
]
|
|
1227
|
-
}
|
|
1228
|
-
/* @__PURE__ */
|
|
1227
|
+
}),
|
|
1228
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1229
1229
|
className: "space-y-3",
|
|
1230
1230
|
children: [
|
|
1231
|
-
/* @__PURE__ */
|
|
1231
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1232
1232
|
className: "text-2xl font-bold",
|
|
1233
1233
|
children: "For Next.js projects"
|
|
1234
|
-
}
|
|
1235
|
-
/* @__PURE__ */
|
|
1234
|
+
}),
|
|
1235
|
+
/* @__PURE__ */ jsx6(InstallCommand3, {
|
|
1236
1236
|
package: "@contractspec/lib.contracts-spec"
|
|
1237
|
-
}
|
|
1237
|
+
})
|
|
1238
1238
|
]
|
|
1239
|
-
}
|
|
1240
|
-
/* @__PURE__ */
|
|
1239
|
+
}),
|
|
1240
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1241
1241
|
className: "space-y-3",
|
|
1242
1242
|
children: [
|
|
1243
|
-
/* @__PURE__ */
|
|
1243
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1244
1244
|
className: "text-2xl font-bold",
|
|
1245
1245
|
children: "For database models"
|
|
1246
|
-
}
|
|
1247
|
-
/* @__PURE__ */
|
|
1246
|
+
}),
|
|
1247
|
+
/* @__PURE__ */ jsx6(InstallCommand3, {
|
|
1248
1248
|
package: [
|
|
1249
1249
|
"@contractspec/app.cli-database",
|
|
1250
1250
|
"prisma",
|
|
1251
1251
|
"@prisma/client"
|
|
1252
1252
|
]
|
|
1253
|
-
}
|
|
1253
|
+
})
|
|
1254
1254
|
]
|
|
1255
|
-
}
|
|
1256
|
-
/* @__PURE__ */
|
|
1255
|
+
}),
|
|
1256
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1257
1257
|
className: "space-y-3",
|
|
1258
1258
|
children: [
|
|
1259
|
-
/* @__PURE__ */
|
|
1259
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1260
1260
|
className: "text-2xl font-bold",
|
|
1261
1261
|
children: "Set up your project"
|
|
1262
|
-
}
|
|
1263
|
-
/* @__PURE__ */
|
|
1262
|
+
}),
|
|
1263
|
+
/* @__PURE__ */ jsx6("p", {
|
|
1264
1264
|
className: "text-muted-foreground",
|
|
1265
1265
|
children: "Initialize a new ContractSpec project structure:"
|
|
1266
|
-
}
|
|
1267
|
-
/* @__PURE__ */
|
|
1266
|
+
}),
|
|
1267
|
+
/* @__PURE__ */ jsx6(CodeBlock5, {
|
|
1268
1268
|
language: "bash",
|
|
1269
1269
|
filename: "installation-init",
|
|
1270
1270
|
code: `bunx contractspec init
|
|
1271
1271
|
# Follow the interactive prompts to configure your project`
|
|
1272
|
-
}
|
|
1272
|
+
})
|
|
1273
1273
|
]
|
|
1274
|
-
}
|
|
1275
|
-
/* @__PURE__ */
|
|
1274
|
+
}),
|
|
1275
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1276
1276
|
className: "space-y-3",
|
|
1277
1277
|
children: [
|
|
1278
|
-
/* @__PURE__ */
|
|
1278
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1279
1279
|
className: "text-2xl font-bold",
|
|
1280
1280
|
children: "Initialize the database"
|
|
1281
|
-
}
|
|
1282
|
-
/* @__PURE__ */
|
|
1281
|
+
}),
|
|
1282
|
+
/* @__PURE__ */ jsx6("p", {
|
|
1283
1283
|
className: "text-muted-foreground",
|
|
1284
1284
|
children: "If using Prisma, set up your schema and generate the client:"
|
|
1285
|
-
}
|
|
1286
|
-
/* @__PURE__ */
|
|
1285
|
+
}),
|
|
1286
|
+
/* @__PURE__ */ jsx6(CodeBlock5, {
|
|
1287
1287
|
language: "bash",
|
|
1288
1288
|
filename: "installation-prisma",
|
|
1289
1289
|
code: `bunx prisma init
|
|
1290
1290
|
# Edit prisma/schema.prisma with your models
|
|
1291
1291
|
bunx prisma generate
|
|
1292
1292
|
bunx prisma migrate dev --name init`
|
|
1293
|
-
}
|
|
1293
|
+
})
|
|
1294
1294
|
]
|
|
1295
|
-
}
|
|
1296
|
-
/* @__PURE__ */
|
|
1295
|
+
}),
|
|
1296
|
+
/* @__PURE__ */ jsx6("div", {
|
|
1297
1297
|
className: "flex items-center gap-4 pt-4",
|
|
1298
|
-
children: /* @__PURE__ */
|
|
1298
|
+
children: /* @__PURE__ */ jsxs6(Link6, {
|
|
1299
1299
|
href: "/docs/getting-started/hello-world",
|
|
1300
1300
|
className: "btn-primary",
|
|
1301
1301
|
children: [
|
|
1302
1302
|
"Next: First Operation ",
|
|
1303
|
-
/* @__PURE__ */
|
|
1303
|
+
/* @__PURE__ */ jsx6(ChevronRight6, {
|
|
1304
1304
|
size: 16
|
|
1305
|
-
}
|
|
1305
|
+
})
|
|
1306
1306
|
]
|
|
1307
|
-
}
|
|
1308
|
-
}
|
|
1307
|
+
})
|
|
1308
|
+
})
|
|
1309
1309
|
]
|
|
1310
|
-
}
|
|
1310
|
+
})
|
|
1311
1311
|
]
|
|
1312
|
-
}
|
|
1312
|
+
});
|
|
1313
1313
|
}
|
|
1314
1314
|
|
|
1315
1315
|
// src/components/docs/getting-started/StartHerePage.tsx
|
|
1316
1316
|
import Link7 from "@contractspec/lib.ui-link";
|
|
1317
1317
|
import { ChevronRight as ChevronRight7 } from "lucide-react";
|
|
1318
1318
|
import { CodeBlock as CodeBlock6, InstallCommand as InstallCommand4 } from "@contractspec/lib.design-system";
|
|
1319
|
-
import {
|
|
1319
|
+
import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1320
1320
|
function StartHerePage() {
|
|
1321
|
-
return /* @__PURE__ */
|
|
1321
|
+
return /* @__PURE__ */ jsxs7("div", {
|
|
1322
1322
|
className: "space-y-8",
|
|
1323
1323
|
children: [
|
|
1324
|
-
/* @__PURE__ */
|
|
1324
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
1325
1325
|
className: "space-y-2",
|
|
1326
1326
|
children: [
|
|
1327
|
-
/* @__PURE__ */
|
|
1327
|
+
/* @__PURE__ */ jsx7("h1", {
|
|
1328
1328
|
className: "text-4xl font-bold",
|
|
1329
1329
|
children: "Start here"
|
|
1330
|
-
}
|
|
1331
|
-
/* @__PURE__ */
|
|
1330
|
+
}),
|
|
1331
|
+
/* @__PURE__ */ jsx7("p", {
|
|
1332
1332
|
className: "text-muted-foreground text-lg",
|
|
1333
1333
|
children: "A fast onboarding path from install to your first generated contract."
|
|
1334
|
-
}
|
|
1334
|
+
})
|
|
1335
1335
|
]
|
|
1336
|
-
}
|
|
1337
|
-
/* @__PURE__ */
|
|
1336
|
+
}),
|
|
1337
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
1338
1338
|
className: "space-y-6",
|
|
1339
1339
|
children: [
|
|
1340
|
-
/* @__PURE__ */
|
|
1340
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
1341
1341
|
className: "space-y-3",
|
|
1342
1342
|
children: [
|
|
1343
|
-
/* @__PURE__ */
|
|
1343
|
+
/* @__PURE__ */ jsx7("h2", {
|
|
1344
1344
|
className: "text-2xl font-bold",
|
|
1345
1345
|
children: "Install the CLI"
|
|
1346
|
-
}
|
|
1347
|
-
/* @__PURE__ */
|
|
1346
|
+
}),
|
|
1347
|
+
/* @__PURE__ */ jsx7(InstallCommand4, {
|
|
1348
1348
|
package: "contractspec",
|
|
1349
1349
|
dev: true
|
|
1350
|
-
}
|
|
1350
|
+
})
|
|
1351
1351
|
]
|
|
1352
|
-
}
|
|
1353
|
-
/* @__PURE__ */
|
|
1352
|
+
}),
|
|
1353
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
1354
1354
|
className: "space-y-3",
|
|
1355
1355
|
children: [
|
|
1356
|
-
/* @__PURE__ */
|
|
1356
|
+
/* @__PURE__ */ jsx7("h2", {
|
|
1357
1357
|
className: "text-2xl font-bold",
|
|
1358
1358
|
children: "Add core libraries"
|
|
1359
|
-
}
|
|
1360
|
-
/* @__PURE__ */
|
|
1359
|
+
}),
|
|
1360
|
+
/* @__PURE__ */ jsx7(InstallCommand4, {
|
|
1361
1361
|
package: [
|
|
1362
1362
|
"@contractspec/lib.contracts-spec",
|
|
1363
1363
|
"@contractspec/lib.schema"
|
|
1364
1364
|
]
|
|
1365
|
-
}
|
|
1365
|
+
})
|
|
1366
1366
|
]
|
|
1367
|
-
}
|
|
1368
|
-
/* @__PURE__ */
|
|
1367
|
+
}),
|
|
1368
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
1369
1369
|
className: "space-y-3",
|
|
1370
1370
|
children: [
|
|
1371
|
-
/* @__PURE__ */
|
|
1371
|
+
/* @__PURE__ */ jsx7("h2", {
|
|
1372
1372
|
className: "text-2xl font-bold",
|
|
1373
1373
|
children: "Initialize your project"
|
|
1374
|
-
}
|
|
1375
|
-
/* @__PURE__ */
|
|
1374
|
+
}),
|
|
1375
|
+
/* @__PURE__ */ jsx7(CodeBlock6, {
|
|
1376
1376
|
language: "bash",
|
|
1377
1377
|
filename: "start-here-init",
|
|
1378
1378
|
code: `bunx contractspec init`
|
|
1379
|
-
}
|
|
1379
|
+
})
|
|
1380
1380
|
]
|
|
1381
|
-
}
|
|
1382
|
-
/* @__PURE__ */
|
|
1381
|
+
}),
|
|
1382
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
1383
1383
|
className: "space-y-3",
|
|
1384
1384
|
children: [
|
|
1385
|
-
/* @__PURE__ */
|
|
1385
|
+
/* @__PURE__ */ jsx7("h2", {
|
|
1386
1386
|
className: "text-2xl font-bold",
|
|
1387
1387
|
children: "Create your first contract"
|
|
1388
|
-
}
|
|
1389
|
-
/* @__PURE__ */
|
|
1388
|
+
}),
|
|
1389
|
+
/* @__PURE__ */ jsx7(CodeBlock6, {
|
|
1390
1390
|
language: "bash",
|
|
1391
1391
|
filename: "start-here-create",
|
|
1392
1392
|
code: `contractspec create --type operation`
|
|
1393
|
-
}
|
|
1393
|
+
})
|
|
1394
1394
|
]
|
|
1395
|
-
}
|
|
1396
|
-
/* @__PURE__ */
|
|
1395
|
+
}),
|
|
1396
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
1397
1397
|
className: "space-y-3",
|
|
1398
1398
|
children: [
|
|
1399
|
-
/* @__PURE__ */
|
|
1399
|
+
/* @__PURE__ */ jsx7("h2", {
|
|
1400
1400
|
className: "text-2xl font-bold",
|
|
1401
1401
|
children: "Generate implementation"
|
|
1402
|
-
}
|
|
1403
|
-
/* @__PURE__ */
|
|
1402
|
+
}),
|
|
1403
|
+
/* @__PURE__ */ jsx7(CodeBlock6, {
|
|
1404
1404
|
language: "bash",
|
|
1405
1405
|
filename: "start-here-build",
|
|
1406
1406
|
code: `contractspec build src/contracts/mySpec.ts
|
|
1407
1407
|
contractspec validate src/contracts/mySpec.ts`
|
|
1408
|
-
}
|
|
1408
|
+
})
|
|
1409
1409
|
]
|
|
1410
|
-
}
|
|
1410
|
+
})
|
|
1411
1411
|
]
|
|
1412
|
-
}
|
|
1413
|
-
/* @__PURE__ */
|
|
1412
|
+
}),
|
|
1413
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
1414
1414
|
className: "flex flex-wrap items-center gap-3 pt-2",
|
|
1415
1415
|
children: [
|
|
1416
|
-
/* @__PURE__ */
|
|
1416
|
+
/* @__PURE__ */ jsxs7(Link7, {
|
|
1417
1417
|
href: "/docs/getting-started/hello-world",
|
|
1418
1418
|
className: "btn-primary",
|
|
1419
1419
|
children: [
|
|
1420
1420
|
"Next: Hello World ",
|
|
1421
|
-
/* @__PURE__ */
|
|
1421
|
+
/* @__PURE__ */ jsx7(ChevronRight7, {
|
|
1422
1422
|
size: 16
|
|
1423
|
-
}
|
|
1423
|
+
})
|
|
1424
1424
|
]
|
|
1425
|
-
}
|
|
1426
|
-
/* @__PURE__ */
|
|
1425
|
+
}),
|
|
1426
|
+
/* @__PURE__ */ jsx7(Link7, {
|
|
1427
1427
|
href: "/docs/getting-started/troubleshooting",
|
|
1428
1428
|
className: "btn-ghost",
|
|
1429
1429
|
children: "Troubleshooting"
|
|
1430
|
-
}
|
|
1431
|
-
/* @__PURE__ */
|
|
1430
|
+
}),
|
|
1431
|
+
/* @__PURE__ */ jsx7(Link7, {
|
|
1432
1432
|
href: "/docs/getting-started/compatibility",
|
|
1433
1433
|
className: "btn-ghost",
|
|
1434
1434
|
children: "Compatibility"
|
|
1435
|
-
}
|
|
1435
|
+
})
|
|
1436
1436
|
]
|
|
1437
|
-
}
|
|
1437
|
+
})
|
|
1438
1438
|
]
|
|
1439
|
-
}
|
|
1439
|
+
});
|
|
1440
1440
|
}
|
|
1441
1441
|
|
|
1442
1442
|
// src/components/docs/getting-started/TroubleshootingPage.tsx
|
|
1443
1443
|
import Link8 from "@contractspec/lib.ui-link";
|
|
1444
1444
|
import { ChevronRight as ChevronRight8 } from "lucide-react";
|
|
1445
1445
|
import { CodeBlock as CodeBlock7 } from "@contractspec/lib.design-system";
|
|
1446
|
-
import {
|
|
1446
|
+
import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1447
1447
|
function TroubleshootingPage() {
|
|
1448
|
-
return /* @__PURE__ */
|
|
1448
|
+
return /* @__PURE__ */ jsxs8("div", {
|
|
1449
1449
|
className: "space-y-8",
|
|
1450
1450
|
children: [
|
|
1451
|
-
/* @__PURE__ */
|
|
1451
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
1452
1452
|
className: "space-y-2",
|
|
1453
1453
|
children: [
|
|
1454
|
-
/* @__PURE__ */
|
|
1454
|
+
/* @__PURE__ */ jsx8("h1", {
|
|
1455
1455
|
className: "text-4xl font-bold",
|
|
1456
1456
|
children: "Troubleshooting"
|
|
1457
|
-
}
|
|
1458
|
-
/* @__PURE__ */
|
|
1457
|
+
}),
|
|
1458
|
+
/* @__PURE__ */ jsx8("p", {
|
|
1459
1459
|
className: "text-muted-foreground text-lg",
|
|
1460
1460
|
children: "Common issues and fixes when installing or generating with ContractSpec."
|
|
1461
|
-
}
|
|
1461
|
+
})
|
|
1462
1462
|
]
|
|
1463
|
-
}
|
|
1464
|
-
/* @__PURE__ */
|
|
1463
|
+
}),
|
|
1464
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
1465
1465
|
className: "space-y-6",
|
|
1466
1466
|
children: [
|
|
1467
|
-
/* @__PURE__ */
|
|
1467
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
1468
1468
|
className: "card-subtle space-y-3 p-6",
|
|
1469
1469
|
children: [
|
|
1470
|
-
/* @__PURE__ */
|
|
1470
|
+
/* @__PURE__ */ jsx8("h2", {
|
|
1471
1471
|
className: "text-2xl font-bold",
|
|
1472
1472
|
children: "Command not found"
|
|
1473
|
-
}
|
|
1474
|
-
/* @__PURE__ */
|
|
1473
|
+
}),
|
|
1474
|
+
/* @__PURE__ */ jsxs8("ul", {
|
|
1475
1475
|
className: "text-muted-foreground space-y-2",
|
|
1476
1476
|
children: [
|
|
1477
|
-
/* @__PURE__ */
|
|
1477
|
+
/* @__PURE__ */ jsx8("li", {
|
|
1478
1478
|
children: "Reinstall the CLI and ensure it is in your PATH."
|
|
1479
|
-
}
|
|
1480
|
-
/* @__PURE__ */
|
|
1479
|
+
}),
|
|
1480
|
+
/* @__PURE__ */ jsx8("li", {
|
|
1481
1481
|
children: "Confirm Node.js 20+ or Bun 1.0+ is installed."
|
|
1482
|
-
}
|
|
1482
|
+
})
|
|
1483
1483
|
]
|
|
1484
|
-
}
|
|
1484
|
+
})
|
|
1485
1485
|
]
|
|
1486
|
-
}
|
|
1487
|
-
/* @__PURE__ */
|
|
1486
|
+
}),
|
|
1487
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
1488
1488
|
className: "card-subtle space-y-3 p-6",
|
|
1489
1489
|
children: [
|
|
1490
|
-
/* @__PURE__ */
|
|
1490
|
+
/* @__PURE__ */ jsx8("h2", {
|
|
1491
1491
|
className: "text-2xl font-bold",
|
|
1492
1492
|
children: "Specs not discovered"
|
|
1493
|
-
}
|
|
1494
|
-
/* @__PURE__ */
|
|
1493
|
+
}),
|
|
1494
|
+
/* @__PURE__ */ jsxs8("ul", {
|
|
1495
1495
|
className: "text-muted-foreground space-y-2",
|
|
1496
1496
|
children: [
|
|
1497
|
-
/* @__PURE__ */
|
|
1497
|
+
/* @__PURE__ */ jsxs8("li", {
|
|
1498
1498
|
children: [
|
|
1499
1499
|
"Run ",
|
|
1500
|
-
/* @__PURE__ */
|
|
1500
|
+
/* @__PURE__ */ jsx8("code", {
|
|
1501
1501
|
children: "contractspec list"
|
|
1502
|
-
}
|
|
1502
|
+
}),
|
|
1503
1503
|
" to see discovered specs."
|
|
1504
1504
|
]
|
|
1505
|
-
}
|
|
1506
|
-
/* @__PURE__ */
|
|
1505
|
+
}),
|
|
1506
|
+
/* @__PURE__ */ jsx8("li", {
|
|
1507
1507
|
children: "Verify your spec path conventions in .contractsrc.json."
|
|
1508
|
-
}
|
|
1508
|
+
})
|
|
1509
1509
|
]
|
|
1510
|
-
}
|
|
1510
|
+
})
|
|
1511
1511
|
]
|
|
1512
|
-
}
|
|
1513
|
-
/* @__PURE__ */
|
|
1512
|
+
}),
|
|
1513
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
1514
1514
|
className: "card-subtle space-y-3 p-6",
|
|
1515
1515
|
children: [
|
|
1516
|
-
/* @__PURE__ */
|
|
1516
|
+
/* @__PURE__ */ jsx8("h2", {
|
|
1517
1517
|
className: "text-2xl font-bold",
|
|
1518
1518
|
children: "Build or validate fails"
|
|
1519
|
-
}
|
|
1520
|
-
/* @__PURE__ */
|
|
1519
|
+
}),
|
|
1520
|
+
/* @__PURE__ */ jsxs8("ul", {
|
|
1521
1521
|
className: "text-muted-foreground space-y-2",
|
|
1522
1522
|
children: [
|
|
1523
|
-
/* @__PURE__ */
|
|
1523
|
+
/* @__PURE__ */ jsxs8("li", {
|
|
1524
1524
|
children: [
|
|
1525
1525
|
"Run ",
|
|
1526
|
-
/* @__PURE__ */
|
|
1526
|
+
/* @__PURE__ */ jsx8("code", {
|
|
1527
1527
|
children: "contractspec validate"
|
|
1528
|
-
}
|
|
1528
|
+
}),
|
|
1529
1529
|
" to surface schema errors."
|
|
1530
1530
|
]
|
|
1531
|
-
}
|
|
1532
|
-
/* @__PURE__ */
|
|
1531
|
+
}),
|
|
1532
|
+
/* @__PURE__ */ jsx8("li", {
|
|
1533
1533
|
children: "Check that generated files were not manually edited."
|
|
1534
|
-
}
|
|
1534
|
+
})
|
|
1535
1535
|
]
|
|
1536
|
-
}
|
|
1536
|
+
})
|
|
1537
1537
|
]
|
|
1538
|
-
}
|
|
1539
|
-
/* @__PURE__ */
|
|
1538
|
+
}),
|
|
1539
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
1540
1540
|
className: "space-y-3",
|
|
1541
1541
|
children: [
|
|
1542
|
-
/* @__PURE__ */
|
|
1542
|
+
/* @__PURE__ */ jsx8("h2", {
|
|
1543
1543
|
className: "text-2xl font-bold",
|
|
1544
1544
|
children: "Diagnostics"
|
|
1545
|
-
}
|
|
1546
|
-
/* @__PURE__ */
|
|
1545
|
+
}),
|
|
1546
|
+
/* @__PURE__ */ jsx8(CodeBlock7, {
|
|
1547
1547
|
language: "bash",
|
|
1548
1548
|
filename: "troubleshooting-diagnostics",
|
|
1549
1549
|
code: `contractspec --version
|
|
1550
1550
|
contractspec list
|
|
1551
1551
|
contractspec validate src/contracts/mySpec.ts`
|
|
1552
|
-
}
|
|
1552
|
+
})
|
|
1553
1553
|
]
|
|
1554
|
-
}
|
|
1555
|
-
/* @__PURE__ */
|
|
1554
|
+
}),
|
|
1555
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
1556
1556
|
className: "card-subtle space-y-3 p-6",
|
|
1557
1557
|
children: [
|
|
1558
|
-
/* @__PURE__ */
|
|
1558
|
+
/* @__PURE__ */ jsx8("h2", {
|
|
1559
1559
|
className: "text-2xl font-bold",
|
|
1560
1560
|
children: "Still blocked?"
|
|
1561
|
-
}
|
|
1562
|
-
/* @__PURE__ */
|
|
1561
|
+
}),
|
|
1562
|
+
/* @__PURE__ */ jsxs8("ul", {
|
|
1563
1563
|
className: "text-muted-foreground space-y-2",
|
|
1564
1564
|
children: [
|
|
1565
|
-
/* @__PURE__ */
|
|
1565
|
+
/* @__PURE__ */ jsx8("li", {
|
|
1566
1566
|
children: "Confirm compatibility requirements for runtime and framework."
|
|
1567
|
-
}
|
|
1568
|
-
/* @__PURE__ */
|
|
1567
|
+
}),
|
|
1568
|
+
/* @__PURE__ */ jsx8("li", {
|
|
1569
1569
|
children: "Re-run builds on a clean branch to isolate changes."
|
|
1570
|
-
}
|
|
1571
|
-
/* @__PURE__ */
|
|
1570
|
+
}),
|
|
1571
|
+
/* @__PURE__ */ jsx8("li", {
|
|
1572
1572
|
children: "Use a new spec and minimal adapter to validate setup."
|
|
1573
|
-
}
|
|
1573
|
+
})
|
|
1574
1574
|
]
|
|
1575
|
-
}
|
|
1575
|
+
})
|
|
1576
1576
|
]
|
|
1577
|
-
}
|
|
1577
|
+
})
|
|
1578
1578
|
]
|
|
1579
|
-
}
|
|
1580
|
-
/* @__PURE__ */
|
|
1579
|
+
}),
|
|
1580
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
1581
1581
|
className: "flex flex-wrap items-center gap-3 pt-2",
|
|
1582
1582
|
children: [
|
|
1583
|
-
/* @__PURE__ */
|
|
1583
|
+
/* @__PURE__ */ jsx8(Link8, {
|
|
1584
1584
|
href: "/docs/getting-started/start-here",
|
|
1585
1585
|
className: "btn-ghost",
|
|
1586
1586
|
children: "Start here"
|
|
1587
|
-
}
|
|
1588
|
-
/* @__PURE__ */
|
|
1587
|
+
}),
|
|
1588
|
+
/* @__PURE__ */ jsx8(Link8, {
|
|
1589
1589
|
href: "/docs/getting-started/compatibility",
|
|
1590
1590
|
className: "btn-ghost",
|
|
1591
1591
|
children: "Compatibility"
|
|
1592
|
-
}
|
|
1593
|
-
/* @__PURE__ */
|
|
1592
|
+
}),
|
|
1593
|
+
/* @__PURE__ */ jsxs8(Link8, {
|
|
1594
1594
|
href: "/docs/getting-started/installation",
|
|
1595
1595
|
className: "btn-primary",
|
|
1596
1596
|
children: [
|
|
1597
1597
|
"Next: Installation ",
|
|
1598
|
-
/* @__PURE__ */
|
|
1598
|
+
/* @__PURE__ */ jsx8(ChevronRight8, {
|
|
1599
1599
|
size: 16
|
|
1600
|
-
}
|
|
1600
|
+
})
|
|
1601
1601
|
]
|
|
1602
|
-
}
|
|
1602
|
+
})
|
|
1603
1603
|
]
|
|
1604
|
-
}
|
|
1604
|
+
})
|
|
1605
1605
|
]
|
|
1606
|
-
}
|
|
1606
|
+
});
|
|
1607
1607
|
}
|
|
1608
1608
|
|
|
1609
1609
|
// src/components/docs/getting-started/VSCodeExtensionPage.tsx
|
|
1610
1610
|
import Link9 from "@contractspec/lib.ui-link";
|
|
1611
1611
|
import { ChevronRight as ChevronRight9, ExternalLink } from "lucide-react";
|
|
1612
1612
|
import { CodeBlock as CodeBlock8 } from "@contractspec/lib.design-system";
|
|
1613
|
-
import {
|
|
1613
|
+
import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1614
1614
|
function VSCodeExtensionPage() {
|
|
1615
1615
|
const features = [
|
|
1616
1616
|
{
|
|
@@ -1669,371 +1669,371 @@ function VSCodeExtensionPage() {
|
|
|
1669
1669
|
description: "Generate OpenAPI specification"
|
|
1670
1670
|
}
|
|
1671
1671
|
];
|
|
1672
|
-
return /* @__PURE__ */
|
|
1672
|
+
return /* @__PURE__ */ jsxs9("div", {
|
|
1673
1673
|
className: "space-y-8",
|
|
1674
1674
|
children: [
|
|
1675
|
-
/* @__PURE__ */
|
|
1675
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1676
1676
|
className: "space-y-2",
|
|
1677
1677
|
children: [
|
|
1678
|
-
/* @__PURE__ */
|
|
1678
|
+
/* @__PURE__ */ jsx9("h1", {
|
|
1679
1679
|
className: "text-4xl font-bold",
|
|
1680
1680
|
children: "VS Code Extension"
|
|
1681
|
-
}
|
|
1682
|
-
/* @__PURE__ */
|
|
1681
|
+
}),
|
|
1682
|
+
/* @__PURE__ */ jsx9("p", {
|
|
1683
1683
|
className: "text-muted-foreground text-lg",
|
|
1684
1684
|
children: "Spec-first development directly in VS Code. Validate, scaffold, and explore your contract specifications with real-time feedback."
|
|
1685
|
-
}
|
|
1685
|
+
})
|
|
1686
1686
|
]
|
|
1687
|
-
}
|
|
1688
|
-
/* @__PURE__ */
|
|
1687
|
+
}),
|
|
1688
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1689
1689
|
className: "flex flex-wrap gap-3",
|
|
1690
1690
|
children: [
|
|
1691
|
-
/* @__PURE__ */
|
|
1691
|
+
/* @__PURE__ */ jsxs9("a", {
|
|
1692
1692
|
href: "https://marketplace.visualstudio.com/items?itemName=lssm.vscode-contractspec",
|
|
1693
1693
|
target: "_blank",
|
|
1694
1694
|
rel: "noopener noreferrer",
|
|
1695
1695
|
className: "btn-primary inline-flex items-center gap-2",
|
|
1696
1696
|
children: [
|
|
1697
1697
|
"Install Extension ",
|
|
1698
|
-
/* @__PURE__ */
|
|
1698
|
+
/* @__PURE__ */ jsx9(ExternalLink, {
|
|
1699
1699
|
size: 16
|
|
1700
|
-
}
|
|
1700
|
+
})
|
|
1701
1701
|
]
|
|
1702
|
-
}
|
|
1703
|
-
/* @__PURE__ */
|
|
1702
|
+
}),
|
|
1703
|
+
/* @__PURE__ */ jsx9("a", {
|
|
1704
1704
|
href: "vscode:extension/lssm.vscode-contractspec",
|
|
1705
1705
|
className: "btn-ghost inline-flex items-center gap-2",
|
|
1706
1706
|
children: "Open in VS Code"
|
|
1707
|
-
}
|
|
1707
|
+
})
|
|
1708
1708
|
]
|
|
1709
|
-
}
|
|
1710
|
-
/* @__PURE__ */
|
|
1709
|
+
}),
|
|
1710
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1711
1711
|
className: "space-y-6",
|
|
1712
1712
|
children: [
|
|
1713
|
-
/* @__PURE__ */
|
|
1713
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1714
1714
|
className: "space-y-3",
|
|
1715
1715
|
children: [
|
|
1716
|
-
/* @__PURE__ */
|
|
1716
|
+
/* @__PURE__ */ jsx9("h2", {
|
|
1717
1717
|
className: "text-2xl font-bold",
|
|
1718
1718
|
children: "Installation"
|
|
1719
|
-
}
|
|
1720
|
-
/* @__PURE__ */
|
|
1719
|
+
}),
|
|
1720
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1721
1721
|
className: "space-y-2",
|
|
1722
1722
|
children: [
|
|
1723
|
-
/* @__PURE__ */
|
|
1723
|
+
/* @__PURE__ */ jsxs9("p", {
|
|
1724
1724
|
className: "text-muted-foreground text-sm",
|
|
1725
1725
|
children: [
|
|
1726
|
-
/* @__PURE__ */
|
|
1726
|
+
/* @__PURE__ */ jsx9("strong", {
|
|
1727
1727
|
children: "Option 1:"
|
|
1728
|
-
}
|
|
1728
|
+
}),
|
|
1729
1729
|
" Install from VS Code Marketplace"
|
|
1730
1730
|
]
|
|
1731
|
-
}
|
|
1732
|
-
/* @__PURE__ */
|
|
1731
|
+
}),
|
|
1732
|
+
/* @__PURE__ */ jsx9(CodeBlock8, {
|
|
1733
1733
|
language: "bash",
|
|
1734
1734
|
code: "code --install-extension lssm.vscode-contractspec"
|
|
1735
|
-
}
|
|
1736
|
-
/* @__PURE__ */
|
|
1735
|
+
}),
|
|
1736
|
+
/* @__PURE__ */ jsxs9("p", {
|
|
1737
1737
|
className: "text-muted-foreground mt-4 text-sm",
|
|
1738
1738
|
children: [
|
|
1739
|
-
/* @__PURE__ */
|
|
1739
|
+
/* @__PURE__ */ jsx9("strong", {
|
|
1740
1740
|
children: "Option 2:"
|
|
1741
|
-
}
|
|
1741
|
+
}),
|
|
1742
1742
|
' Search for "ContractSpec" in VS Code Extensions (Ctrl/Cmd+Shift+X)'
|
|
1743
1743
|
]
|
|
1744
|
-
}
|
|
1744
|
+
})
|
|
1745
1745
|
]
|
|
1746
|
-
}
|
|
1746
|
+
})
|
|
1747
1747
|
]
|
|
1748
|
-
}
|
|
1749
|
-
/* @__PURE__ */
|
|
1748
|
+
}),
|
|
1749
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1750
1750
|
className: "space-y-4",
|
|
1751
1751
|
children: [
|
|
1752
|
-
/* @__PURE__ */
|
|
1752
|
+
/* @__PURE__ */ jsx9("h2", {
|
|
1753
1753
|
className: "text-2xl font-bold",
|
|
1754
1754
|
children: "Features"
|
|
1755
|
-
}
|
|
1756
|
-
/* @__PURE__ */
|
|
1755
|
+
}),
|
|
1756
|
+
/* @__PURE__ */ jsx9("div", {
|
|
1757
1757
|
className: "grid gap-4 md:grid-cols-3",
|
|
1758
|
-
children: features.map((section) => /* @__PURE__ */
|
|
1758
|
+
children: features.map((section) => /* @__PURE__ */ jsxs9("div", {
|
|
1759
1759
|
className: "card-subtle space-y-3 p-4",
|
|
1760
1760
|
children: [
|
|
1761
|
-
/* @__PURE__ */
|
|
1761
|
+
/* @__PURE__ */ jsx9("h3", {
|
|
1762
1762
|
className: "font-bold text-violet-400",
|
|
1763
1763
|
children: section.category
|
|
1764
|
-
}
|
|
1765
|
-
/* @__PURE__ */
|
|
1764
|
+
}),
|
|
1765
|
+
/* @__PURE__ */ jsx9("ul", {
|
|
1766
1766
|
className: "space-y-2",
|
|
1767
|
-
children: section.items.map((item) => /* @__PURE__ */
|
|
1767
|
+
children: section.items.map((item) => /* @__PURE__ */ jsxs9("li", {
|
|
1768
1768
|
className: "text-muted-foreground flex items-start gap-2 text-sm",
|
|
1769
1769
|
children: [
|
|
1770
|
-
/* @__PURE__ */
|
|
1770
|
+
/* @__PURE__ */ jsx9("span", {
|
|
1771
1771
|
className: "mt-1 text-violet-400",
|
|
1772
1772
|
children: "-"
|
|
1773
|
-
}
|
|
1774
|
-
/* @__PURE__ */
|
|
1773
|
+
}),
|
|
1774
|
+
/* @__PURE__ */ jsx9("span", {
|
|
1775
1775
|
children: item
|
|
1776
|
-
}
|
|
1776
|
+
})
|
|
1777
1777
|
]
|
|
1778
|
-
}, item
|
|
1779
|
-
}
|
|
1778
|
+
}, item))
|
|
1779
|
+
})
|
|
1780
1780
|
]
|
|
1781
|
-
}, section.category
|
|
1782
|
-
}
|
|
1781
|
+
}, section.category))
|
|
1782
|
+
})
|
|
1783
1783
|
]
|
|
1784
|
-
}
|
|
1785
|
-
/* @__PURE__ */
|
|
1784
|
+
}),
|
|
1785
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1786
1786
|
className: "space-y-4",
|
|
1787
1787
|
children: [
|
|
1788
|
-
/* @__PURE__ */
|
|
1788
|
+
/* @__PURE__ */ jsx9("h2", {
|
|
1789
1789
|
className: "text-2xl font-bold",
|
|
1790
1790
|
children: "Commands"
|
|
1791
|
-
}
|
|
1792
|
-
/* @__PURE__ */
|
|
1791
|
+
}),
|
|
1792
|
+
/* @__PURE__ */ jsxs9("p", {
|
|
1793
1793
|
className: "text-muted-foreground",
|
|
1794
1794
|
children: [
|
|
1795
1795
|
"Access commands via Command Palette (Ctrl/Cmd+Shift+P) with prefix",
|
|
1796
1796
|
" ",
|
|
1797
|
-
/* @__PURE__ */
|
|
1797
|
+
/* @__PURE__ */ jsx9("code", {
|
|
1798
1798
|
children: "ContractSpec:"
|
|
1799
|
-
}
|
|
1799
|
+
})
|
|
1800
1800
|
]
|
|
1801
|
-
}
|
|
1802
|
-
/* @__PURE__ */
|
|
1801
|
+
}),
|
|
1802
|
+
/* @__PURE__ */ jsx9("div", {
|
|
1803
1803
|
className: "grid gap-3 md:grid-cols-2",
|
|
1804
|
-
children: commands.map((cmd) => /* @__PURE__ */
|
|
1804
|
+
children: commands.map((cmd) => /* @__PURE__ */ jsx9("div", {
|
|
1805
1805
|
className: "card-subtle flex items-center gap-3 p-3",
|
|
1806
|
-
children: /* @__PURE__ */
|
|
1806
|
+
children: /* @__PURE__ */ jsxs9("div", {
|
|
1807
1807
|
className: "flex-1",
|
|
1808
1808
|
children: [
|
|
1809
|
-
/* @__PURE__ */
|
|
1809
|
+
/* @__PURE__ */ jsx9("p", {
|
|
1810
1810
|
className: "font-mono text-sm font-medium",
|
|
1811
1811
|
children: cmd.name
|
|
1812
|
-
}
|
|
1813
|
-
/* @__PURE__ */
|
|
1812
|
+
}),
|
|
1813
|
+
/* @__PURE__ */ jsx9("p", {
|
|
1814
1814
|
className: "text-muted-foreground text-xs",
|
|
1815
1815
|
children: cmd.description
|
|
1816
|
-
}
|
|
1816
|
+
})
|
|
1817
1817
|
]
|
|
1818
|
-
}
|
|
1819
|
-
}, cmd.name
|
|
1820
|
-
}
|
|
1818
|
+
})
|
|
1819
|
+
}, cmd.name))
|
|
1820
|
+
})
|
|
1821
1821
|
]
|
|
1822
|
-
}
|
|
1823
|
-
/* @__PURE__ */
|
|
1822
|
+
}),
|
|
1823
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1824
1824
|
className: "space-y-3",
|
|
1825
1825
|
children: [
|
|
1826
|
-
/* @__PURE__ */
|
|
1826
|
+
/* @__PURE__ */ jsx9("h2", {
|
|
1827
1827
|
className: "text-2xl font-bold",
|
|
1828
1828
|
children: "Sidebar Views"
|
|
1829
|
-
}
|
|
1830
|
-
/* @__PURE__ */
|
|
1829
|
+
}),
|
|
1830
|
+
/* @__PURE__ */ jsx9("p", {
|
|
1831
1831
|
className: "text-muted-foreground",
|
|
1832
1832
|
children: "The extension adds a ContractSpec activity bar (icon in sidebar) with three views:"
|
|
1833
|
-
}
|
|
1834
|
-
/* @__PURE__ */
|
|
1833
|
+
}),
|
|
1834
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1835
1835
|
className: "grid gap-4 md:grid-cols-3",
|
|
1836
1836
|
children: [
|
|
1837
|
-
/* @__PURE__ */
|
|
1837
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1838
1838
|
className: "card-subtle space-y-2 p-4",
|
|
1839
1839
|
children: [
|
|
1840
|
-
/* @__PURE__ */
|
|
1840
|
+
/* @__PURE__ */ jsx9("h4", {
|
|
1841
1841
|
className: "font-bold",
|
|
1842
1842
|
children: "Specs Explorer"
|
|
1843
|
-
}
|
|
1844
|
-
/* @__PURE__ */
|
|
1843
|
+
}),
|
|
1844
|
+
/* @__PURE__ */ jsx9("p", {
|
|
1845
1845
|
className: "text-muted-foreground text-sm",
|
|
1846
1846
|
children: "Browse all specs organized by type. Shows name, version, and stability. Click to open, right-click for actions."
|
|
1847
|
-
}
|
|
1847
|
+
})
|
|
1848
1848
|
]
|
|
1849
|
-
}
|
|
1850
|
-
/* @__PURE__ */
|
|
1849
|
+
}),
|
|
1850
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1851
1851
|
className: "card-subtle space-y-2 p-4",
|
|
1852
1852
|
children: [
|
|
1853
|
-
/* @__PURE__ */
|
|
1853
|
+
/* @__PURE__ */ jsx9("h4", {
|
|
1854
1854
|
className: "font-bold",
|
|
1855
1855
|
children: "Dependencies"
|
|
1856
|
-
}
|
|
1857
|
-
/* @__PURE__ */
|
|
1856
|
+
}),
|
|
1857
|
+
/* @__PURE__ */ jsx9("p", {
|
|
1858
1858
|
className: "text-muted-foreground text-sm",
|
|
1859
1859
|
children: "Visualize spec relationships. Detect circular dependencies. Navigate to referenced specs."
|
|
1860
|
-
}
|
|
1860
|
+
})
|
|
1861
1861
|
]
|
|
1862
|
-
}
|
|
1863
|
-
/* @__PURE__ */
|
|
1862
|
+
}),
|
|
1863
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1864
1864
|
className: "card-subtle space-y-2 p-4",
|
|
1865
1865
|
children: [
|
|
1866
|
-
/* @__PURE__ */
|
|
1866
|
+
/* @__PURE__ */ jsx9("h4", {
|
|
1867
1867
|
className: "font-bold",
|
|
1868
1868
|
children: "Build Results"
|
|
1869
|
-
}
|
|
1870
|
-
/* @__PURE__ */
|
|
1869
|
+
}),
|
|
1870
|
+
/* @__PURE__ */ jsx9("p", {
|
|
1871
1871
|
className: "text-muted-foreground text-sm",
|
|
1872
1872
|
children: "Track build history (last 20). Success/failure indicators. Click to open generated files."
|
|
1873
|
-
}
|
|
1873
|
+
})
|
|
1874
1874
|
]
|
|
1875
|
-
}
|
|
1875
|
+
})
|
|
1876
1876
|
]
|
|
1877
|
-
}
|
|
1877
|
+
})
|
|
1878
1878
|
]
|
|
1879
|
-
}
|
|
1880
|
-
/* @__PURE__ */
|
|
1879
|
+
}),
|
|
1880
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1881
1881
|
className: "space-y-3",
|
|
1882
1882
|
children: [
|
|
1883
|
-
/* @__PURE__ */
|
|
1883
|
+
/* @__PURE__ */ jsx9("h2", {
|
|
1884
1884
|
className: "text-2xl font-bold",
|
|
1885
1885
|
children: "Getting Started"
|
|
1886
|
-
}
|
|
1887
|
-
/* @__PURE__ */
|
|
1886
|
+
}),
|
|
1887
|
+
/* @__PURE__ */ jsxs9("ol", {
|
|
1888
1888
|
className: "text-muted-foreground list-inside list-decimal space-y-2",
|
|
1889
1889
|
children: [
|
|
1890
|
-
/* @__PURE__ */
|
|
1890
|
+
/* @__PURE__ */ jsx9("li", {
|
|
1891
1891
|
children: "Install the extension from VS Code Marketplace"
|
|
1892
|
-
}
|
|
1893
|
-
/* @__PURE__ */
|
|
1892
|
+
}),
|
|
1893
|
+
/* @__PURE__ */ jsx9("li", {
|
|
1894
1894
|
children: "Open a workspace with ContractSpec files (or create one)"
|
|
1895
|
-
}
|
|
1896
|
-
/* @__PURE__ */
|
|
1895
|
+
}),
|
|
1896
|
+
/* @__PURE__ */ jsx9("li", {
|
|
1897
1897
|
children: "Start the walkthrough: Help - Welcome - ContractSpec"
|
|
1898
|
-
}
|
|
1899
|
-
/* @__PURE__ */
|
|
1898
|
+
}),
|
|
1899
|
+
/* @__PURE__ */ jsxs9("li", {
|
|
1900
1900
|
children: [
|
|
1901
1901
|
"Create your first spec: Click ",
|
|
1902
|
-
/* @__PURE__ */
|
|
1902
|
+
/* @__PURE__ */ jsx9("strong", {
|
|
1903
1903
|
children: "+"
|
|
1904
|
-
}
|
|
1904
|
+
}),
|
|
1905
1905
|
" in Specs Explorer or run ",
|
|
1906
|
-
/* @__PURE__ */
|
|
1906
|
+
/* @__PURE__ */ jsx9("code", {
|
|
1907
1907
|
children: "ContractSpec: Create New Spec"
|
|
1908
|
-
}
|
|
1908
|
+
})
|
|
1909
1909
|
]
|
|
1910
|
-
}
|
|
1911
|
-
/* @__PURE__ */
|
|
1910
|
+
}),
|
|
1911
|
+
/* @__PURE__ */ jsx9("li", {
|
|
1912
1912
|
children: "Build from it: Click the build icon in the editor title bar"
|
|
1913
|
-
}
|
|
1913
|
+
})
|
|
1914
1914
|
]
|
|
1915
|
-
}
|
|
1915
|
+
})
|
|
1916
1916
|
]
|
|
1917
|
-
}
|
|
1918
|
-
/* @__PURE__ */
|
|
1917
|
+
}),
|
|
1918
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1919
1919
|
className: "card-subtle space-y-4 p-6",
|
|
1920
1920
|
children: [
|
|
1921
|
-
/* @__PURE__ */
|
|
1921
|
+
/* @__PURE__ */ jsx9("h3", {
|
|
1922
1922
|
className: "font-bold",
|
|
1923
1923
|
children: "Configuration"
|
|
1924
|
-
}
|
|
1925
|
-
/* @__PURE__ */
|
|
1924
|
+
}),
|
|
1925
|
+
/* @__PURE__ */ jsx9("p", {
|
|
1926
1926
|
className: "text-muted-foreground text-sm",
|
|
1927
1927
|
children: "Configure the extension in VS Code Settings:"
|
|
1928
|
-
}
|
|
1929
|
-
/* @__PURE__ */
|
|
1928
|
+
}),
|
|
1929
|
+
/* @__PURE__ */ jsx9("div", {
|
|
1930
1930
|
className: "overflow-x-auto",
|
|
1931
|
-
children: /* @__PURE__ */
|
|
1931
|
+
children: /* @__PURE__ */ jsxs9("table", {
|
|
1932
1932
|
className: "text-muted-foreground w-full text-sm",
|
|
1933
1933
|
children: [
|
|
1934
|
-
/* @__PURE__ */
|
|
1935
|
-
children: /* @__PURE__ */
|
|
1934
|
+
/* @__PURE__ */ jsx9("thead", {
|
|
1935
|
+
children: /* @__PURE__ */ jsxs9("tr", {
|
|
1936
1936
|
className: "border-border border-b",
|
|
1937
1937
|
children: [
|
|
1938
|
-
/* @__PURE__ */
|
|
1938
|
+
/* @__PURE__ */ jsx9("th", {
|
|
1939
1939
|
className: "p-2 text-left font-medium",
|
|
1940
1940
|
children: "Setting"
|
|
1941
|
-
}
|
|
1942
|
-
/* @__PURE__ */
|
|
1941
|
+
}),
|
|
1942
|
+
/* @__PURE__ */ jsx9("th", {
|
|
1943
1943
|
className: "p-2 text-left font-medium",
|
|
1944
1944
|
children: "Description"
|
|
1945
|
-
}
|
|
1946
|
-
/* @__PURE__ */
|
|
1945
|
+
}),
|
|
1946
|
+
/* @__PURE__ */ jsx9("th", {
|
|
1947
1947
|
className: "p-2 text-left font-medium",
|
|
1948
1948
|
children: "Default"
|
|
1949
|
-
}
|
|
1949
|
+
})
|
|
1950
1950
|
]
|
|
1951
|
-
}
|
|
1952
|
-
}
|
|
1953
|
-
/* @__PURE__ */
|
|
1951
|
+
})
|
|
1952
|
+
}),
|
|
1953
|
+
/* @__PURE__ */ jsxs9("tbody", {
|
|
1954
1954
|
children: [
|
|
1955
|
-
/* @__PURE__ */
|
|
1955
|
+
/* @__PURE__ */ jsxs9("tr", {
|
|
1956
1956
|
className: "border-border border-b",
|
|
1957
1957
|
children: [
|
|
1958
|
-
/* @__PURE__ */
|
|
1958
|
+
/* @__PURE__ */ jsx9("td", {
|
|
1959
1959
|
className: "p-2 font-mono text-xs",
|
|
1960
1960
|
children: "validation.onSave"
|
|
1961
|
-
}
|
|
1962
|
-
/* @__PURE__ */
|
|
1961
|
+
}),
|
|
1962
|
+
/* @__PURE__ */ jsx9("td", {
|
|
1963
1963
|
className: "p-2",
|
|
1964
1964
|
children: "Run validation on save"
|
|
1965
|
-
}
|
|
1966
|
-
/* @__PURE__ */
|
|
1965
|
+
}),
|
|
1966
|
+
/* @__PURE__ */ jsx9("td", {
|
|
1967
1967
|
className: "p-2",
|
|
1968
1968
|
children: "true"
|
|
1969
|
-
}
|
|
1969
|
+
})
|
|
1970
1970
|
]
|
|
1971
|
-
}
|
|
1972
|
-
/* @__PURE__ */
|
|
1971
|
+
}),
|
|
1972
|
+
/* @__PURE__ */ jsxs9("tr", {
|
|
1973
1973
|
className: "border-border border-b",
|
|
1974
1974
|
children: [
|
|
1975
|
-
/* @__PURE__ */
|
|
1975
|
+
/* @__PURE__ */ jsx9("td", {
|
|
1976
1976
|
className: "p-2 font-mono text-xs",
|
|
1977
1977
|
children: "validation.onOpen"
|
|
1978
|
-
}
|
|
1979
|
-
/* @__PURE__ */
|
|
1978
|
+
}),
|
|
1979
|
+
/* @__PURE__ */ jsx9("td", {
|
|
1980
1980
|
className: "p-2",
|
|
1981
1981
|
children: "Run validation on open"
|
|
1982
|
-
}
|
|
1983
|
-
/* @__PURE__ */
|
|
1982
|
+
}),
|
|
1983
|
+
/* @__PURE__ */ jsx9("td", {
|
|
1984
1984
|
className: "p-2",
|
|
1985
1985
|
children: "true"
|
|
1986
|
-
}
|
|
1986
|
+
})
|
|
1987
1987
|
]
|
|
1988
|
-
}
|
|
1989
|
-
/* @__PURE__ */
|
|
1988
|
+
}),
|
|
1989
|
+
/* @__PURE__ */ jsxs9("tr", {
|
|
1990
1990
|
className: "border-border border-b",
|
|
1991
1991
|
children: [
|
|
1992
|
-
/* @__PURE__ */
|
|
1992
|
+
/* @__PURE__ */ jsx9("td", {
|
|
1993
1993
|
className: "p-2 font-mono text-xs",
|
|
1994
1994
|
children: "api.baseUrl"
|
|
1995
|
-
}
|
|
1996
|
-
/* @__PURE__ */
|
|
1995
|
+
}),
|
|
1996
|
+
/* @__PURE__ */ jsx9("td", {
|
|
1997
1997
|
className: "p-2",
|
|
1998
1998
|
children: "Base URL for ContractSpec API"
|
|
1999
|
-
}
|
|
2000
|
-
/* @__PURE__ */
|
|
1999
|
+
}),
|
|
2000
|
+
/* @__PURE__ */ jsx9("td", {
|
|
2001
2001
|
className: "p-2",
|
|
2002
2002
|
children: "(empty)"
|
|
2003
|
-
}
|
|
2003
|
+
})
|
|
2004
2004
|
]
|
|
2005
|
-
}
|
|
2005
|
+
})
|
|
2006
2006
|
]
|
|
2007
|
-
}
|
|
2007
|
+
})
|
|
2008
2008
|
]
|
|
2009
|
-
}
|
|
2010
|
-
}
|
|
2009
|
+
})
|
|
2010
|
+
})
|
|
2011
2011
|
]
|
|
2012
|
-
}
|
|
2012
|
+
})
|
|
2013
2013
|
]
|
|
2014
|
-
}
|
|
2015
|
-
/* @__PURE__ */
|
|
2014
|
+
}),
|
|
2015
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
2016
2016
|
className: "flex items-center gap-4 pt-4",
|
|
2017
2017
|
children: [
|
|
2018
|
-
/* @__PURE__ */
|
|
2018
|
+
/* @__PURE__ */ jsx9(Link9, {
|
|
2019
2019
|
href: "/docs/getting-started/tools/cli",
|
|
2020
2020
|
className: "btn-ghost",
|
|
2021
2021
|
children: "Back: CLI"
|
|
2022
|
-
}
|
|
2023
|
-
/* @__PURE__ */
|
|
2022
|
+
}),
|
|
2023
|
+
/* @__PURE__ */ jsxs9(Link9, {
|
|
2024
2024
|
href: "/docs/specs",
|
|
2025
2025
|
className: "btn-primary",
|
|
2026
2026
|
children: [
|
|
2027
2027
|
"Next: Core Concepts ",
|
|
2028
|
-
/* @__PURE__ */
|
|
2028
|
+
/* @__PURE__ */ jsx9(ChevronRight9, {
|
|
2029
2029
|
size: 16
|
|
2030
|
-
}
|
|
2030
|
+
})
|
|
2031
2031
|
]
|
|
2032
|
-
}
|
|
2032
|
+
})
|
|
2033
2033
|
]
|
|
2034
|
-
}
|
|
2034
|
+
})
|
|
2035
2035
|
]
|
|
2036
|
-
}
|
|
2036
|
+
});
|
|
2037
2037
|
}
|
|
2038
2038
|
|
|
2039
2039
|
// src/components/docs/getting-started/getting-started.docblocks.ts
|