@contractspec/bundle.library 3.8.12 → 3.9.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 +614 -602
- package/CHANGELOG.md +97 -0
- package/dist/application/context-storage/index.js +1 -1
- package/dist/application/index.js +11 -11
- package/dist/application/mcp/cliMcp.js +6 -6
- package/dist/application/mcp/cliMcp.onboarding.d.ts +4 -0
- package/dist/application/mcp/cliMcp.onboarding.js +2 -0
- package/dist/application/mcp/cliMcp.test.d.ts +1 -0
- package/dist/application/mcp/common.js +1 -1
- package/dist/application/mcp/contractsMcp.js +2 -2
- package/dist/application/mcp/contractsMcp.test.d.ts +1 -0
- package/dist/application/mcp/contractsMcpAdoptionTools.d.ts +3 -0
- package/dist/application/mcp/contractsMcpAdoptionTools.js +2 -0
- package/dist/application/mcp/contractsMcpResources.js +2 -2
- package/dist/application/mcp/contractsMcpTools.js +1 -1
- package/dist/application/mcp/contractsMcpTypes.d.ts +16 -0
- package/dist/application/mcp/docsMcp.catalog.js +2 -2
- package/dist/application/mcp/docsMcp.data.js +1 -1
- package/dist/application/mcp/docsMcp.js +3 -3
- package/dist/application/mcp/docsMcp.prompts.js +3 -3
- package/dist/application/mcp/docsMcp.reference.js +2 -2
- package/dist/application/mcp/docsMcp.resources.js +2 -2
- package/dist/application/mcp/docsMcp.tools.js +2 -2
- package/dist/application/mcp/index.js +11 -11
- package/dist/application/mcp/internalMcp.js +2 -2
- package/dist/application/mcp/normalizeMcpRequest.js +1 -1
- package/dist/application/mcp/providerRankingMcp.js +1 -1
- package/dist/bundles/LibraryBundle.d.ts +19 -111
- package/dist/bundles/LibraryBundle.js +1 -1
- package/dist/bundles/index.js +1 -1
- package/dist/components/docs/DocsIndexPage.js +2 -2
- package/dist/components/docs/advanced/AdvancedMCPPage.js +3 -3
- package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -1
- package/dist/components/docs/advanced/AdvancedRenderersPage.js +2 -2
- package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -4
- package/dist/components/docs/advanced/AdvancedTelemetryPage.js +2 -2
- package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -2
- package/dist/components/docs/advanced/index.js +9 -9
- package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +6 -6
- package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +3 -3
- package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -7
- package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -6
- package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -2
- package/dist/components/docs/architecture/ArchitectureOverviewPage.js +1 -1
- package/dist/components/docs/architecture/index.js +20 -20
- package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -1
- package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -1
- package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -1
- package/dist/components/docs/comparison/ComparisonOverviewPage.js +1 -1
- package/dist/components/docs/comparison/ComparisonWindmillPage.js +1 -1
- package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -1
- package/dist/components/docs/comparison/index.js +1 -1
- package/dist/components/docs/docsManifest.js +1 -1
- package/dist/components/docs/ecosystem/IntegrationsPage.js +2 -2
- package/dist/components/docs/ecosystem/PluginsPage.js +4 -4
- package/dist/components/docs/ecosystem/RegistryPage.js +4 -4
- package/dist/components/docs/ecosystem/TemplatesPage.js +3 -3
- package/dist/components/docs/ecosystem/index.js +11 -11
- package/dist/components/docs/examples/DocsExamplesPage.js +1 -17
- package/dist/components/docs/examples/ExampleShowcasePage.d.ts +1 -1
- package/dist/components/docs/examples/ExampleShowcasePage.js +2 -17
- package/dist/components/docs/examples/exampleShowcaseData.d.ts +2 -2
- package/dist/components/docs/examples/exampleShowcaseData.js +2 -17
- package/dist/components/docs/examples/exampleShowcaseData.test.d.ts +1 -0
- package/dist/components/docs/examples/index.js +2 -17
- package/dist/components/docs/generated/docs-index.generated.js +1 -1
- package/dist/components/docs/generated/index.d.ts +7 -1
- package/dist/components/docs/generated/index.js +1 -1
- package/dist/components/docs/generated/loader.js +1 -1
- package/dist/components/docs/getting-started/CLIPage.js +6 -5
- package/dist/components/docs/getting-started/CompatibilityPage.js +1 -1
- package/dist/components/docs/getting-started/DataViewTutorialPage.js +44 -67
- package/dist/components/docs/getting-started/DeveloperToolsPage.js +1 -1
- package/dist/components/docs/getting-started/HelloWorldPage.js +5 -5
- package/dist/components/docs/getting-started/InstallationPage.js +3 -3
- package/dist/components/docs/getting-started/StartHerePage.js +4 -2
- package/dist/components/docs/getting-started/TroubleshootingPage.js +2 -2
- package/dist/components/docs/getting-started/VSCodeExtensionPage.js +1 -1
- package/dist/components/docs/getting-started/getting-started.docblocks.js +2 -2
- package/dist/components/docs/getting-started/index.js +60 -80
- package/dist/components/docs/guides/GuideCIDiffGatingPage.js +2 -2
- package/dist/components/docs/guides/GuideConnectInRepoPage.js +30 -5
- package/dist/components/docs/guides/GuideContractTypesPage.js +6 -6
- package/dist/components/docs/guides/GuideDocsPipelinePage.js +3 -3
- package/dist/components/docs/guides/GuideFirstModuleBundlePage.js +4 -4
- package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -2
- package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.js +21 -6
- package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -8
- package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
- package/dist/components/docs/guides/GuideReleaseCapsulesPage.d.ts +1 -0
- package/dist/components/docs/guides/GuideReleaseCapsulesPage.js +16 -0
- package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +4 -4
- package/dist/components/docs/guides/GuidesIndexPage.js +2 -2
- package/dist/components/docs/guides/index.d.ts +1 -0
- package/dist/components/docs/guides/index.js +93 -39
- package/dist/components/docs/index.js +690 -419
- package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -2
- package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -3
- package/dist/components/docs/integrations/IntegrationsGithubPage.js +2 -2
- package/dist/components/docs/integrations/IntegrationsGmailPage.js +3 -3
- package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -3
- package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +2 -2
- package/dist/components/docs/integrations/IntegrationsMistralPage.js +2 -2
- package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +2 -2
- package/dist/components/docs/integrations/IntegrationsOverviewPage.js +1 -1
- package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +2 -2
- package/dist/components/docs/integrations/IntegrationsPowensPage.js +2 -2
- package/dist/components/docs/integrations/IntegrationsQdrantPage.js +5 -5
- package/dist/components/docs/integrations/IntegrationsResendPage.js +3 -3
- package/dist/components/docs/integrations/IntegrationsS3Page.js +4 -4
- package/dist/components/docs/integrations/IntegrationsSlackPage.js +2 -2
- package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +2 -2
- package/dist/components/docs/integrations/IntegrationsStripePage.js +2 -2
- package/dist/components/docs/integrations/IntegrationsTwilioPage.js +3 -3
- package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -2
- package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -2
- package/dist/components/docs/integrations/index.js +39 -39
- package/dist/components/docs/intent/ContractFirstApiPage.js +2 -2
- package/dist/components/docs/intent/DeterministicCodegenPage.js +2 -2
- package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +7 -7
- package/dist/components/docs/intent/OpenapiAlternativePage.js +3 -3
- package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +4 -4
- package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -2
- package/dist/components/docs/intent/index.js +15 -15
- package/dist/components/docs/intent/intent-pages.docblocks.js +1 -1
- package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +2 -2
- package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +2 -2
- package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +1 -1
- package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +2 -2
- package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +2 -2
- package/dist/components/docs/knowledge/index.js +5 -5
- package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +3 -3
- package/dist/components/docs/libraries/LibrariesAiAgentPage.js +3 -3
- package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +4 -4
- package/dist/components/docs/libraries/LibrariesContentGenPage.js +2 -2
- package/dist/components/docs/libraries/LibrariesContractsPage.js +43 -18
- package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +3 -3
- package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.content.d.ts +67 -0
- package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.content.js +86 -0
- package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.d.ts +1 -0
- package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.js +86 -0
- package/dist/components/docs/libraries/LibrariesDataBackendPage.js +2 -2
- package/dist/components/docs/libraries/LibrariesDataViewsPage.js +3 -3
- package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +77 -29
- package/dist/components/docs/libraries/LibrariesEvolutionPage.js +4 -4
- package/dist/components/docs/libraries/LibrariesGraphQLPage.js +2 -2
- package/dist/components/docs/libraries/LibrariesGrowthPage.js +3 -3
- package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -3
- package/dist/components/docs/libraries/LibrariesObservabilityPage.js +5 -5
- package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -4
- package/dist/components/docs/libraries/LibrariesOverviewPage.js +1 -1
- package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +4 -4
- package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -3
- package/dist/components/docs/libraries/LibrariesResiliencePage.js +4 -4
- package/dist/components/docs/libraries/LibrariesRuntimePage.js +2 -2
- package/dist/components/docs/libraries/LibrariesSLOPage.js +3 -3
- package/dist/components/docs/libraries/LibrariesSchemaPage.js +3 -3
- package/dist/components/docs/libraries/LibrariesSupportBotPage.js +3 -3
- package/dist/components/docs/libraries/LibrariesTestingPage.js +3 -3
- package/dist/components/docs/libraries/LibrariesUIKitPage.js +42 -16
- package/dist/components/docs/libraries/LibrariesUIKitWebPage.d.ts +1 -0
- package/dist/components/docs/libraries/LibrariesUIKitWebPage.js +47 -0
- package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -3
- package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +2 -2
- package/dist/components/docs/libraries/index.d.ts +2 -0
- package/dist/components/docs/libraries/index.js +338 -110
- package/dist/components/docs/manifesto/ManifestoPage.js +1 -1
- package/dist/components/docs/ops/AutoEvolutionOpsPage.js +2 -2
- package/dist/components/docs/ops/DistributedTracingOpsPage.js +2 -2
- package/dist/components/docs/ops/index.js +3 -3
- package/dist/components/docs/ops/ops-lifecycle.docblocks.js +2 -2
- package/dist/components/docs/ops/ops-runbooks-a.docblocks.js +2 -2
- package/dist/components/docs/ops/ops-runbooks-b.docblocks.js +2 -2
- package/dist/components/docs/ops/ops-slo-tenant.docblocks.js +2 -2
- package/dist/components/docs/ops/ops-top.docs.js +2 -2
- package/dist/components/docs/ops/ops.docs.js +6 -6
- package/dist/components/docs/product/product.docblocks.js +2 -2
- package/dist/components/docs/reference/DocsMarkdownContent.js +2 -2
- package/dist/components/docs/reference/DocsReferenceContent.js +3 -3
- package/dist/components/docs/reference/DocsReferenceIndexClient.js +2 -2
- package/dist/components/docs/reference/DocsReferenceIndexPage.js +2 -2
- package/dist/components/docs/reference/DocsReferencePage.js +3 -3
- package/dist/components/docs/reference/docsMarkdownParser.js +2 -2
- package/dist/components/docs/reference/index.js +4 -4
- package/dist/components/docs/safety/SafetyAuditingPage.js +2 -2
- package/dist/components/docs/safety/SafetyMigrationsPage.js +2 -2
- package/dist/components/docs/safety/SafetyOverviewPage.js +1 -1
- package/dist/components/docs/safety/SafetyPDPPage.js +2 -2
- package/dist/components/docs/safety/SafetySecurityTrustPage.js +1 -1
- package/dist/components/docs/safety/SafetySigningPage.js +3 -3
- package/dist/components/docs/safety/SafetyTenantIsolationPage.js +2 -2
- package/dist/components/docs/safety/index.js +7 -7
- package/dist/components/docs/shared/StudioPrompt.js +1 -1
- package/dist/components/docs/specs/SpecsBuilderControlPlanePage.js +18 -3
- package/dist/components/docs/specs/SpecsCapabilitiesPage.js +2 -2
- package/dist/components/docs/specs/SpecsConnectPage.js +4 -2
- package/dist/components/docs/specs/SpecsDataViewsPage.js +39 -32
- package/dist/components/docs/specs/SpecsModuleBundlesPage.js +3 -3
- package/dist/components/docs/specs/SpecsOverlaysPage.js +2 -2
- package/dist/components/docs/specs/SpecsOverviewPage.js +1 -1
- package/dist/components/docs/specs/SpecsPolicyPage.js +3 -3
- package/dist/components/docs/specs/SpecsWorkflowsPage.js +2 -2
- package/dist/components/docs/specs/index.js +66 -42
- package/dist/components/docs/studio/StudioBYOKPage.js +1 -1
- package/dist/components/docs/studio/StudioDeploymentsPage.js +1 -1
- package/dist/components/docs/studio/StudioGettingStartedPage.js +1 -1
- package/dist/components/docs/studio/StudioIntegrationsPage.js +1 -1
- package/dist/components/docs/studio/StudioOverviewPage.js +1 -1
- package/dist/components/docs/studio/StudioVisualBuilderPage.js +1 -1
- package/dist/components/docs/studio/index.js +1 -1
- package/dist/components/docs/tech/contracts/tech-docs.docblocks.js +2 -2
- package/dist/components/integrations/index.js +2 -2
- package/dist/components/integrations/molecules/IntegrationCard.js +1 -1
- package/dist/components/integrations/organisms/IntegrationMarketplace.js +1 -1
- package/dist/components/integrations/organisms/IntegrationSettings.js +2 -2
- package/dist/components/integrations/organisms/KnowledgeSourceList.js +1 -1
- package/dist/components/legal/PrivacyTemplate.js +1 -1
- package/dist/components/legal/TermsTemplate.js +1 -1
- package/dist/components/legal/index.js +1 -1
- package/dist/components/shared/FeatureGateNotice.js +1 -1
- package/dist/components/shared/index.js +1 -1
- package/dist/components/shell/WorkspaceHeader.js +1 -1
- package/dist/components/shell/WorkspaceProjectShellLayout.js +1 -1
- package/dist/components/shell/WorkspaceShellRenderer.js +1 -1
- package/dist/components/shell/WorkspaceSidebar.js +1 -1
- package/dist/components/shell/index.js +1 -1
- package/dist/components/templates/engine/index.js +1 -1
- package/dist/components/templates/index.js +11 -11
- package/dist/components/templates/messaging/ConversationList.js +2 -2
- package/dist/components/templates/messaging/MessageComposer.js +4 -4
- package/dist/components/templates/messaging/MessageThread.js +3 -3
- package/dist/components/templates/messaging/MessagingWorkspace.js +5 -5
- package/dist/components/templates/messaging/index.js +5 -5
- package/dist/components/templates/recipes/LanguageSwitcher.js +1 -1
- package/dist/components/templates/recipes/RecipeCard.js +1 -1
- package/dist/components/templates/recipes/RecipeDetail.js +1 -1
- package/dist/components/templates/recipes/RecipeList.js +3 -3
- package/dist/components/templates/recipes/index.js +3 -3
- package/dist/components/templates/todos/FilterBar.js +1 -1
- package/dist/components/templates/todos/TaskForm.js +2 -2
- package/dist/components/templates/todos/TaskItem.js +1 -1
- package/dist/components/templates/todos/TaskList.js +5 -5
- package/dist/components/templates/todos/index.js +5 -5
- package/dist/config/contractspec-blueprint.js +1 -1
- package/dist/config/contractspec-branding.js +1 -1
- package/dist/config/contractspec-routes.js +1 -1
- package/dist/config/index.js +1 -1
- package/dist/features/contracts-registry.js +1 -1
- package/dist/features/docs/docs.contracts.js +1 -1
- package/dist/features/docs/index.js +1 -1
- package/dist/features/docs.feature.js +1 -1
- package/dist/features/index.js +1 -1
- package/dist/features/mcp.feature.js +1 -1
- package/dist/features/presentations.feature.js +1 -1
- package/dist/features/registry.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +701 -430
- package/dist/infrastructure/elysia/index.js +1 -1
- package/dist/infrastructure/elysia/logger.js +1 -1
- package/dist/infrastructure/index.js +1 -1
- package/dist/libs/email/client.js +1 -1
- package/dist/libs/email/contact.js +3 -3
- package/dist/libs/email/newsletter.js +3 -3
- package/dist/libs/email/utils.js +2 -2
- package/dist/libs/email/waitlist-application.js +3 -3
- package/dist/libs/email/waitlist.js +3 -3
- package/dist/libs/email.js +6 -6
- package/dist/libs/posthog/client.js +1 -1
- package/dist/libs/posthog/native.js +1 -1
- package/dist/libs/posthog/server.js +1 -1
- package/dist/libs/pricing-examples.js +1 -1
- package/dist/node/application/context-storage/index.js +1 -1
- package/dist/node/application/index.js +11 -11
- package/dist/node/application/mcp/cliMcp.js +6 -6
- package/dist/node/application/mcp/cliMcp.onboarding.js +1 -0
- package/dist/node/application/mcp/common.js +1 -1
- package/dist/node/application/mcp/contractsMcp.js +2 -2
- package/dist/node/application/mcp/contractsMcpAdoptionTools.js +1 -0
- package/dist/node/application/mcp/contractsMcpResources.js +2 -2
- package/dist/node/application/mcp/contractsMcpTools.js +1 -1
- package/dist/node/application/mcp/docsMcp.catalog.js +2 -2
- package/dist/node/application/mcp/docsMcp.data.js +1 -1
- package/dist/node/application/mcp/docsMcp.js +3 -3
- package/dist/node/application/mcp/docsMcp.prompts.js +3 -3
- package/dist/node/application/mcp/docsMcp.reference.js +2 -2
- package/dist/node/application/mcp/docsMcp.resources.js +2 -2
- package/dist/node/application/mcp/docsMcp.tools.js +2 -2
- package/dist/node/application/mcp/index.js +11 -11
- package/dist/node/application/mcp/internalMcp.js +2 -2
- package/dist/node/application/mcp/normalizeMcpRequest.js +1 -1
- package/dist/node/application/mcp/providerRankingMcp.js +1 -1
- package/dist/node/bundles/LibraryBundle.js +1 -1
- package/dist/node/bundles/index.js +1 -1
- package/dist/node/components/docs/DocsIndexPage.js +2 -2
- package/dist/node/components/docs/advanced/AdvancedMCPPage.js +3 -3
- package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -1
- package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +2 -2
- package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -4
- package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +2 -2
- package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -2
- package/dist/node/components/docs/advanced/index.js +9 -9
- package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +6 -6
- package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +3 -3
- package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -7
- package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -6
- package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -2
- package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +1 -1
- package/dist/node/components/docs/architecture/index.js +20 -20
- package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -1
- package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -1
- package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -1
- package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +1 -1
- package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +1 -1
- package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -1
- package/dist/node/components/docs/comparison/index.js +1 -1
- package/dist/node/components/docs/docsManifest.js +1 -1
- package/dist/node/components/docs/ecosystem/IntegrationsPage.js +2 -2
- package/dist/node/components/docs/ecosystem/PluginsPage.js +4 -4
- package/dist/node/components/docs/ecosystem/RegistryPage.js +4 -4
- package/dist/node/components/docs/ecosystem/TemplatesPage.js +3 -3
- package/dist/node/components/docs/ecosystem/index.js +11 -11
- package/dist/node/components/docs/examples/DocsExamplesPage.js +1 -17
- package/dist/node/components/docs/examples/ExampleShowcasePage.js +2 -17
- package/dist/node/components/docs/examples/exampleShowcaseData.js +2 -17
- package/dist/node/components/docs/examples/index.js +2 -17
- package/dist/node/components/docs/generated/docs-index.generated.js +1 -1
- package/dist/node/components/docs/generated/index.js +1 -1
- package/dist/node/components/docs/generated/loader.js +1 -1
- package/dist/node/components/docs/getting-started/CLIPage.js +6 -5
- package/dist/node/components/docs/getting-started/CompatibilityPage.js +1 -1
- package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +44 -67
- package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +1 -1
- package/dist/node/components/docs/getting-started/HelloWorldPage.js +5 -5
- package/dist/node/components/docs/getting-started/InstallationPage.js +3 -3
- package/dist/node/components/docs/getting-started/StartHerePage.js +4 -2
- package/dist/node/components/docs/getting-started/TroubleshootingPage.js +2 -2
- package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +1 -1
- package/dist/node/components/docs/getting-started/getting-started.docblocks.js +2 -2
- package/dist/node/components/docs/getting-started/index.js +60 -80
- package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +2 -2
- package/dist/node/components/docs/guides/GuideConnectInRepoPage.js +30 -5
- package/dist/node/components/docs/guides/GuideContractTypesPage.js +6 -6
- package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +3 -3
- package/dist/node/components/docs/guides/GuideFirstModuleBundlePage.js +4 -4
- package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -2
- package/dist/node/components/docs/guides/GuideHostBuilderWorkbenchPage.js +21 -6
- package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -8
- package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
- package/dist/node/components/docs/guides/GuideReleaseCapsulesPage.js +15 -0
- package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +4 -4
- package/dist/node/components/docs/guides/GuidesIndexPage.js +2 -2
- package/dist/node/components/docs/guides/index.js +93 -39
- package/dist/node/components/docs/index.js +690 -419
- package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -2
- package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -3
- package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +2 -2
- package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +3 -3
- package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -3
- package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +2 -2
- package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +2 -2
- package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +2 -2
- package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +1 -1
- package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +2 -2
- package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +2 -2
- package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +5 -5
- package/dist/node/components/docs/integrations/IntegrationsResendPage.js +3 -3
- package/dist/node/components/docs/integrations/IntegrationsS3Page.js +4 -4
- package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +2 -2
- package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +2 -2
- package/dist/node/components/docs/integrations/IntegrationsStripePage.js +2 -2
- package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +3 -3
- package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -2
- package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -2
- package/dist/node/components/docs/integrations/index.js +39 -39
- package/dist/node/components/docs/intent/ContractFirstApiPage.js +2 -2
- package/dist/node/components/docs/intent/DeterministicCodegenPage.js +2 -2
- package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +7 -7
- package/dist/node/components/docs/intent/OpenapiAlternativePage.js +3 -3
- package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +4 -4
- package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -2
- package/dist/node/components/docs/intent/index.js +15 -15
- package/dist/node/components/docs/intent/intent-pages.docblocks.js +1 -1
- package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +2 -2
- package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +2 -2
- package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +1 -1
- package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +2 -2
- package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +2 -2
- package/dist/node/components/docs/knowledge/index.js +5 -5
- package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +3 -3
- package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +3 -3
- package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +4 -4
- package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +2 -2
- package/dist/node/components/docs/libraries/LibrariesContractsPage.js +43 -18
- package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +3 -3
- package/dist/node/components/docs/libraries/LibrariesCrossPlatformUIPage.content.js +85 -0
- package/dist/node/components/docs/libraries/LibrariesCrossPlatformUIPage.js +85 -0
- package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +2 -2
- package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +3 -3
- package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +77 -29
- package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +4 -4
- package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +2 -2
- package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +3 -3
- package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -3
- package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +5 -5
- package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -4
- package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +1 -1
- package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +4 -4
- package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -3
- package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +4 -4
- package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +2 -2
- package/dist/node/components/docs/libraries/LibrariesSLOPage.js +3 -3
- package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +3 -3
- package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +3 -3
- package/dist/node/components/docs/libraries/LibrariesTestingPage.js +3 -3
- package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +42 -16
- package/dist/node/components/docs/libraries/LibrariesUIKitWebPage.js +46 -0
- package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -3
- package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +2 -2
- package/dist/node/components/docs/libraries/index.js +338 -110
- package/dist/node/components/docs/manifesto/ManifestoPage.js +1 -1
- package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +2 -2
- package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +2 -2
- package/dist/node/components/docs/ops/index.js +3 -3
- package/dist/node/components/docs/ops/ops-lifecycle.docblocks.js +2 -2
- package/dist/node/components/docs/ops/ops-runbooks-a.docblocks.js +2 -2
- package/dist/node/components/docs/ops/ops-runbooks-b.docblocks.js +2 -2
- package/dist/node/components/docs/ops/ops-slo-tenant.docblocks.js +2 -2
- package/dist/node/components/docs/ops/ops-top.docs.js +2 -2
- package/dist/node/components/docs/ops/ops.docs.js +6 -6
- package/dist/node/components/docs/product/product.docblocks.js +2 -2
- package/dist/node/components/docs/reference/DocsMarkdownContent.js +2 -2
- package/dist/node/components/docs/reference/DocsReferenceContent.js +3 -3
- package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +2 -2
- package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +2 -2
- package/dist/node/components/docs/reference/DocsReferencePage.js +3 -3
- package/dist/node/components/docs/reference/docsMarkdownParser.js +2 -2
- package/dist/node/components/docs/reference/index.js +4 -4
- package/dist/node/components/docs/safety/SafetyAuditingPage.js +2 -2
- package/dist/node/components/docs/safety/SafetyMigrationsPage.js +2 -2
- package/dist/node/components/docs/safety/SafetyOverviewPage.js +1 -1
- package/dist/node/components/docs/safety/SafetyPDPPage.js +2 -2
- package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +1 -1
- package/dist/node/components/docs/safety/SafetySigningPage.js +3 -3
- package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +2 -2
- package/dist/node/components/docs/safety/index.js +7 -7
- package/dist/node/components/docs/shared/StudioPrompt.js +1 -1
- package/dist/node/components/docs/specs/SpecsBuilderControlPlanePage.js +18 -3
- package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +2 -2
- package/dist/node/components/docs/specs/SpecsConnectPage.js +4 -2
- package/dist/node/components/docs/specs/SpecsDataViewsPage.js +39 -32
- package/dist/node/components/docs/specs/SpecsModuleBundlesPage.js +3 -3
- package/dist/node/components/docs/specs/SpecsOverlaysPage.js +2 -2
- package/dist/node/components/docs/specs/SpecsOverviewPage.js +1 -1
- package/dist/node/components/docs/specs/SpecsPolicyPage.js +3 -3
- package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +2 -2
- package/dist/node/components/docs/specs/index.js +66 -42
- package/dist/node/components/docs/studio/StudioBYOKPage.js +1 -1
- package/dist/node/components/docs/studio/StudioDeploymentsPage.js +1 -1
- package/dist/node/components/docs/studio/StudioGettingStartedPage.js +1 -1
- package/dist/node/components/docs/studio/StudioIntegrationsPage.js +1 -1
- package/dist/node/components/docs/studio/StudioOverviewPage.js +1 -1
- package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +1 -1
- package/dist/node/components/docs/studio/index.js +1 -1
- package/dist/node/components/docs/tech/contracts/tech-docs.docblocks.js +2 -2
- package/dist/node/components/integrations/index.js +2 -2
- package/dist/node/components/integrations/molecules/IntegrationCard.js +1 -1
- package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +1 -1
- package/dist/node/components/integrations/organisms/IntegrationSettings.js +2 -2
- package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +1 -1
- package/dist/node/components/legal/PrivacyTemplate.js +1 -1
- package/dist/node/components/legal/TermsTemplate.js +1 -1
- package/dist/node/components/legal/index.js +1 -1
- package/dist/node/components/shared/FeatureGateNotice.js +1 -1
- package/dist/node/components/shared/index.js +1 -1
- package/dist/node/components/shell/WorkspaceHeader.js +1 -1
- package/dist/node/components/shell/WorkspaceProjectShellLayout.js +1 -1
- package/dist/node/components/shell/WorkspaceShellRenderer.js +1 -1
- package/dist/node/components/shell/WorkspaceSidebar.js +1 -1
- package/dist/node/components/shell/index.js +1 -1
- package/dist/node/components/templates/engine/index.js +1 -1
- package/dist/node/components/templates/index.js +11 -11
- package/dist/node/components/templates/messaging/ConversationList.js +2 -2
- package/dist/node/components/templates/messaging/MessageComposer.js +4 -4
- package/dist/node/components/templates/messaging/MessageThread.js +3 -3
- package/dist/node/components/templates/messaging/MessagingWorkspace.js +5 -5
- package/dist/node/components/templates/messaging/index.js +5 -5
- package/dist/node/components/templates/recipes/LanguageSwitcher.js +1 -1
- package/dist/node/components/templates/recipes/RecipeCard.js +1 -1
- package/dist/node/components/templates/recipes/RecipeDetail.js +1 -1
- package/dist/node/components/templates/recipes/RecipeList.js +3 -3
- package/dist/node/components/templates/recipes/index.js +3 -3
- package/dist/node/components/templates/todos/FilterBar.js +1 -1
- package/dist/node/components/templates/todos/TaskForm.js +2 -2
- package/dist/node/components/templates/todos/TaskItem.js +1 -1
- package/dist/node/components/templates/todos/TaskList.js +5 -5
- package/dist/node/components/templates/todos/index.js +5 -5
- package/dist/node/config/contractspec-blueprint.js +1 -1
- package/dist/node/config/contractspec-branding.js +1 -1
- package/dist/node/config/contractspec-routes.js +1 -1
- package/dist/node/config/index.js +1 -1
- package/dist/node/features/contracts-registry.js +1 -1
- package/dist/node/features/docs/docs.contracts.js +1 -1
- package/dist/node/features/docs/index.js +1 -1
- package/dist/node/features/docs.feature.js +1 -1
- package/dist/node/features/index.js +1 -1
- package/dist/node/features/mcp.feature.js +1 -1
- package/dist/node/features/presentations.feature.js +1 -1
- package/dist/node/features/registry.js +1 -1
- package/dist/node/index.js +701 -430
- package/dist/node/infrastructure/elysia/index.js +1 -1
- package/dist/node/infrastructure/elysia/logger.js +1 -1
- package/dist/node/infrastructure/index.js +1 -1
- package/dist/node/libs/email/client.js +1 -1
- package/dist/node/libs/email/contact.js +3 -3
- package/dist/node/libs/email/newsletter.js +3 -3
- package/dist/node/libs/email/utils.js +2 -2
- package/dist/node/libs/email/waitlist-application.js +3 -3
- package/dist/node/libs/email/waitlist.js +3 -3
- package/dist/node/libs/email.js +6 -6
- package/dist/node/libs/posthog/client.js +1 -1
- package/dist/node/libs/posthog/native.js +1 -1
- package/dist/node/libs/posthog/server.js +1 -1
- package/dist/node/libs/pricing-examples.js +1 -1
- package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -1
- package/dist/node/presentation/features/atoms/FeatureIcon/index.js +1 -1
- package/dist/node/presentation/features/atoms/index.js +1 -1
- package/dist/node/presentation/features/hooks/index.js +1 -1
- package/dist/node/presentation/features/hooks/useContractsRegistry.js +1 -1
- package/dist/node/presentation/features/hooks/useFeatureFilters.js +1 -1
- package/dist/node/presentation/features/hooks/useFeatureRegistry.js +1 -1
- package/dist/node/presentation/features/hooks/useRelatedDocs.js +1 -1
- package/dist/node/presentation/features/index.js +1 -1
- package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -1
- package/dist/node/presentation/features/molecules/FeatureCard/index.js +1 -1
- package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -1
- package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -1
- package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -1
- package/dist/node/presentation/features/molecules/FeatureFilters/index.js +1 -1
- package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -1
- package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +1 -1
- package/dist/node/presentation/features/molecules/index.js +1 -1
- package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +1 -1
- package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -1
- package/dist/node/presentation/features/organisms/FeatureDetail/index.js +1 -1
- package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -1
- package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +1 -1
- package/dist/node/presentation/features/organisms/FeatureEventsList.js +1 -1
- package/dist/node/presentation/features/organisms/FeatureFormsList.js +1 -1
- package/dist/node/presentation/features/organisms/FeatureOperationsList.js +1 -1
- package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +1 -1
- package/dist/node/presentation/features/organisms/index.js +1 -1
- package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -1
- package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -1
- package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -1
- package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -1
- package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -1
- package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -1
- package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -1
- package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +1 -1
- package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -1
- package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -1
- package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -1
- package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +1 -1
- package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -1
- package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -1
- package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -1
- package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -1
- package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -1
- package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -1
- package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -1
- package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -1
- package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -1
- package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -1
- package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -1
- package/dist/presentation/features/atoms/FeatureIcon/index.js +1 -1
- package/dist/presentation/features/atoms/index.js +1 -1
- package/dist/presentation/features/hooks/index.js +1 -1
- package/dist/presentation/features/hooks/useContractsRegistry.js +1 -1
- package/dist/presentation/features/hooks/useFeatureFilters.js +1 -1
- package/dist/presentation/features/hooks/useFeatureRegistry.js +1 -1
- package/dist/presentation/features/hooks/useRelatedDocs.js +1 -1
- package/dist/presentation/features/index.js +1 -1
- package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -1
- package/dist/presentation/features/molecules/FeatureCard/index.js +1 -1
- package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -1
- package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -1
- package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -1
- package/dist/presentation/features/molecules/FeatureFilters/index.js +1 -1
- package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -1
- package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +1 -1
- package/dist/presentation/features/molecules/index.js +1 -1
- package/dist/presentation/features/organisms/FeatureDataViewsList.js +1 -1
- package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -1
- package/dist/presentation/features/organisms/FeatureDetail/index.js +1 -1
- package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -1
- package/dist/presentation/features/organisms/FeatureDiscovery/index.js +1 -1
- package/dist/presentation/features/organisms/FeatureEventsList.js +1 -1
- package/dist/presentation/features/organisms/FeatureFormsList.js +1 -1
- package/dist/presentation/features/organisms/FeatureOperationsList.js +1 -1
- package/dist/presentation/features/organisms/FeaturePresentationsList.js +1 -1
- package/dist/presentation/features/organisms/index.js +1 -1
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -1
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -1
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -1
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -1
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -1
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -1
- package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -1
- package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +1 -1
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -1
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -1
- package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -1
- package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +1 -1
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -1
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -1
- package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -1
- package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -1
- package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -1
- package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -1
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -1
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -1
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -1
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -1
- package/package.json +96 -23
- package/src/application/mcp/cliMcp.onboarding.ts +297 -0
- package/src/application/mcp/cliMcp.test.ts +99 -0
- package/src/application/mcp/cliMcp.ts +30 -3
- package/src/application/mcp/contractsMcp.test.ts +65 -0
- package/src/application/mcp/contractsMcpAdoptionTools.ts +131 -0
- package/src/application/mcp/contractsMcpResources.ts +49 -0
- package/src/application/mcp/contractsMcpTools.ts +2 -0
- package/src/application/mcp/contractsMcpTypes.ts +16 -0
- package/src/bundles/LibraryBundle.ts +19 -130
- package/src/components/docs/docsManifest.test.ts +14 -0
- package/src/components/docs/docsManifest.ts +22 -0
- package/src/components/docs/examples/DocsExamplesPage.tsx +6 -14
- package/src/components/docs/examples/ExampleShowcasePage.tsx +22 -18
- package/src/components/docs/examples/exampleShowcaseData.test.ts +22 -0
- package/src/components/docs/examples/exampleShowcaseData.ts +75 -50
- package/src/components/docs/generated/docs-index._common.json +9 -1
- package/src/components/docs/generated/docs-index.ai-chat.json +1 -1
- package/src/components/docs/generated/docs-index.app-config.json +4 -4
- package/src/components/docs/generated/docs-index.data-grid-showcase.json +9 -1
- package/src/components/docs/generated/docs-index.jobs.json +1 -1
- package/src/components/docs/generated/docs-index.kb-update-pipeline.json +5 -5
- package/src/components/docs/generated/docs-index.learning-journey-crm-onboarding.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-registry.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey.json +27 -3
- package/src/components/docs/generated/docs-index.locale-jurisdiction-gate.json +8 -0
- package/src/components/docs/generated/docs-index.manifest.json +13 -13
- package/src/components/docs/generated/docs-index.mobile-demo-landing.json +42 -0
- package/src/components/docs/generated/docs-index.platform-agent.json +18 -2
- package/src/components/docs/generated/docs-index.platform-context.json +16 -0
- package/src/components/docs/generated/docs-index.platform-docs.json +9 -1
- package/src/components/docs/generated/docs-index.platform-provider-ranking.json +32 -0
- package/src/components/docs/generated/docs-index.wealth-snapshot.json +4 -4
- package/src/components/docs/generated/index.ts +20 -5
- package/src/components/docs/generated/loader.ts +15 -8
- package/src/components/docs/getting-started/CLIPage.tsx +10 -2
- package/src/components/docs/getting-started/CompatibilityPage.tsx +14 -0
- package/src/components/docs/getting-started/DataViewTutorialPage.tsx +63 -70
- package/src/components/docs/getting-started/StartHerePage.tsx +10 -9
- package/src/components/docs/guides/GuideConnectInRepoPage.tsx +52 -3
- package/src/components/docs/guides/GuideHostBuilderWorkbenchPage.tsx +55 -6
- package/src/components/docs/guides/GuideReleaseCapsulesPage.tsx +147 -0
- package/src/components/docs/guides/GuidesIndexPage.tsx +7 -0
- package/src/components/docs/guides/index.ts +1 -0
- package/src/components/docs/libraries/LibrariesContractsPage.tsx +72 -27
- package/src/components/docs/libraries/LibrariesCrossPlatformUIPage.content.ts +252 -0
- package/src/components/docs/libraries/LibrariesCrossPlatformUIPage.tsx +232 -0
- package/src/components/docs/libraries/LibrariesDesignSystemPage.tsx +140 -55
- package/src/components/docs/libraries/LibrariesOverviewPage.tsx +13 -1
- package/src/components/docs/libraries/LibrariesRuntimePage.tsx +15 -0
- package/src/components/docs/libraries/LibrariesUIKitPage.tsx +78 -25
- package/src/components/docs/libraries/LibrariesUIKitWebPage.tsx +129 -0
- package/src/components/docs/libraries/index.ts +2 -0
- package/src/components/docs/reference/DocsReferenceIndexPage.tsx +1 -1
- package/src/components/docs/specs/SpecsBuilderControlPlanePage.tsx +58 -3
- package/src/components/docs/specs/SpecsConnectPage.tsx +30 -0
- package/src/components/docs/specs/SpecsDataViewsPage.tsx +63 -42
- package/src/index.ts +1 -1
- package/src/components/docs/generated/docs-index.mobile-demo-tasks.json +0 -34
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{EventRegistry as
|
|
2
|
+
var j=Object.defineProperty;var I=(l)=>l;function u(l,m){this[l]=I.bind(null,m)}var Wl=(l,m)=>{for(var d in m)j(l,d,{get:m[d],enumerable:!0,configurable:!0,set:u.bind(m,d)})};var Xl=(l,m)=>()=>(l&&(m=l(l=0)),m);import{EventRegistry as f,OperationSpecRegistry as C}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as P}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as k,ContractReferenceQuery as a,DocsGenerateCommand as c,DocsGeneratedEvent as g,DocsIndexDataView as v,DocsIndexQuery as y,DocsLayoutPresentation as o,DocsPublishCommand as i,DocsPublishedEvent as n,DocsReferencePagePresentation as t,DocsSearchForm as s,ExampleCatalogDataView as r}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as e}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as ll}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as ml,serializeEventSpec as dl,serializeFormSpec as Sl,serializeOperationSpec as Dl,serializePresentationSpec as Vl}from"@contractspec/lib.contracts-spec/serialization";var S=null;function O(){let l=new C;return l.register(y).register(a).register(c).register(i),l}function b(){if(!S)S=O();return S}function q(l,m){return b().get(l,m)}var D=null;function B(){let l=new f;return l.register(g).register(n),l}function E(){if(!D)D=B();return D}function G(l,m){return E().get(l,m)}var V=null;function H(){let l=new ll;return l.register(o).register(t),l}function J(){if(!V)V=H();return V}function K(l,m){return J().get(l,m)}var $=null;function W(){let l=new P;return l.register(v).register(k).register(r),l}function X(){if(!$)$=W();return $}function Y(l,m){return X().get(l,m)}var h=null;function Z(){let l=new e;return l.register(s),l}function _(){if(!h)h=Z();return h}function M(l,m){return _().get(l)}function $l(l,m){let d=q(l,m);return Dl(d)??void 0}function hl(l,m){let d=G(l,m);return dl(d)??void 0}function Nl(l,m){let d=K(l,m);return Vl(d)??void 0}function Q(l,m){let d=Y(l,m);return ml(d)??void 0}function Ql(l,m){let d=M(l,m);return Sl(d)??void 0}function U(){S=null}function x(){D=null}function A(){V=null}function R(){$=null}function p(){h=null}function Tl(){U(),x(),A(),R(),p()}var T={meta:{key:"contractspec.docs",version:"1.0.0",title:"Documentation",description:"Comprehensive documentation system for ContractSpec",domain:"platform",owners:["@platform.docs"],tags:["documentation","guides","api-reference"],stability:"stable"},operations:[{key:"docs_search",version:"1.0.0"},{key:"docs.navigate",version:"1.0.0"}],events:[{key:"docs.page_viewed",version:"1.0.0"},{key:"docs.search_performed",version:"1.0.0"}],presentations:[{key:"docs.landing",version:"1.0.0"},{key:"docs.getting-started",version:"1.0.0"},{key:"docs.architecture",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.docs",version:"1.0.0"}],requires:[]}};import{ContractReferenceQuery as wl,DocSummaryModel as zl,DocsIndexInput as Ll,DocsIndexOutput as Ol,DocsIndexQuery as bl,DocsIndexQuery as ql}from"@contractspec/lib.contracts-spec/docs";var w={meta:{key:"contractspec.mcp",version:"1.0.0",title:"MCP Integration",description:"Model Context Protocol server for AI agent integration",domain:"platform",owners:["@platform.mcp"],tags:["mcp","ai-agents","tooling"],stability:"beta"},operations:[{key:"mcp.tool.register",version:"1.0.0"},{key:"mcp.resource.register",version:"1.0.0"},{key:"mcp.prompt.register",version:"1.0.0"}],events:[{key:"mcp.tool_invoked",version:"1.0.0"},{key:"mcp.resource_accessed",version:"1.0.0"}],presentations:[],capabilities:{provides:[{key:"contracts.mcp",version:"1.0.0"}],requires:[{key:"contracts.operations",version:"1.0.0"}]}};var z={meta:{key:"contractspec.presentations",version:"1.0.0",title:"Presentation Runtime",description:"Cross-platform rendering of contract-driven UI",domain:"platform",owners:["@platform.presentations"],tags:["presentations","ui","rendering","cross-platform"],stability:"beta"},operations:[{key:"presentation.render",version:"1.0.0"},{key:"presentation.transform",version:"1.0.0"}],events:[{key:"presentation.rendered",version:"1.0.0"},{key:"presentation.transformed",version:"1.0.0"}],presentations:[{key:"form.standard",version:"1.0.0"},{key:"list.standard",version:"1.0.0"},{key:"detail.standard",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.presentations",version:"1.0.0"}],requires:[]}};import{AppConfigFeature as Bl}from"@contractspec/lib.contracts-spec/app-config";import{FeatureRegistry as El}from"@contractspec/lib.contracts-spec/features";function F(){let l=new El;return l.register(T),l.register(w),l.register(z),l.register(Bl),l}var N=null;function Gl(){if(!N)N=F();return N}function Hl(){N=null}import{FeatureRegistry as il}from"@contractspec/lib.contracts-spec/features";import{EntityCard as Jl}from"@contractspec/lib.design-system";import{Table as Kl}from"lucide-react";import{jsx as L}from"react/jsx-runtime";function Dm({feature:l}){if(!l.dataViews?.length)return null;return L("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:l.dataViews.map((m)=>{let d=Q(m.key,m.version);return L(Jl,{cardTitle:m.key,cardSubtitle:`v${m.version}`,footer:d?.meta.description,icon:L(Kl,{className:"h-4 w-4"}),href:`/features/${l.meta.key}/dataviews/${m.key}`},m.key)})})}export{Dm as FeatureDataViewsList};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{StatCard as
|
|
2
|
+
var Y=Object.defineProperty;var Z=(D)=>D;function _(D,F){this[D]=Z.bind(null,F)}var T=(D,F)=>{for(var E in F)Y(D,E,{get:F[E],enumerable:!0,configurable:!0,set:_.bind(F,E)})};var V=(D,F)=>()=>(D&&(F=D(D=0)),F);import{StatCard as P,StatCardGroup as $,StatusChip as I}from"@contractspec/lib.design-system";import{Box as O,HStack as K,VStack as v}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as y}from"@contractspec/lib.ui-kit-web/ui/utils";import Q from"next/link";import{jsx as z,jsxs as J}from"react/jsx-runtime";var G={stable:"success",beta:"warning",experimental:"info",deprecated:"danger"};function w({feature:D,className:F}){let{meta:E,operations:R,events:U,presentations:W,capabilities:M}=D,X=G[E.stability]??"neutral";return J(v,{gap:"lg",className:y("w-full",F),children:[J(K,{gap:"sm",children:[z(I,{tone:X,label:E.stability??"unknown"}),z(I,{tone:"neutral",label:E.key,size:"sm"}),z(I,{tone:"neutral",label:`v${E.version}`,size:"sm"})]}),J($,{children:[z(Q,{href:`./${D.meta.key}/operations`,children:z(P,{label:"Operations",value:R?.length??0})}),z(Q,{href:`./${D.meta.key}/events`,children:z(P,{label:"Events",value:U?.length??0})}),z(Q,{href:`./${D.meta.key}/presentations`,children:z(P,{label:"Presentations",value:W?.length??0})})]}),M?.provides?.length?J(O,{className:"flex-col rounded-lg border p-4",gap:"sm",align:"start",children:[z("span",{className:"font-semibold",children:"Provides Capabilities"}),z(K,{gap:"xs",wrap:"wrap",children:M.provides.map((A)=>z(I,{tone:"success",label:`${A.key} v${A.version}`,size:"sm"},`${A.key}-${A.version}`))})]}):null,M?.requires?.length?J(O,{className:"flex-col rounded-lg border p-4",gap:"sm",align:"start",children:[z("span",{className:"font-semibold",children:"Requires Capabilities"}),z(K,{gap:"xs",wrap:"wrap",children:M.requires.map((A)=>z(I,{tone:"info",label:`${A.key}${A.version?` v${A.version}`:""}${A.optional?" (optional)":""}`,size:"sm"},A.key))})]}):null,E.tags?.length?J(O,{className:"flex-col rounded-lg border p-4",gap:"sm",align:"start",children:[z("span",{className:"font-semibold",children:"Tags"}),z(K,{gap:"xs",wrap:"wrap",children:E.tags.map((A)=>z(I,{tone:"neutral",label:`#${A}`,size:"sm"},A))})]}):null,E.owners?.length?J(O,{className:"flex-col rounded-lg border p-4",gap:"sm",align:"start",children:[z("span",{className:"font-semibold",children:"Owners"}),z(K,{gap:"xs",wrap:"wrap",children:E.owners.map((A)=>z(I,{tone:"neutral",label:A,size:"sm"},A))})]}):null]})}export{w as FeatureDetail};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{StatCard as
|
|
2
|
+
var X=Object.defineProperty;var Y=(y)=>y;function Z(y,z){this[y]=Y.bind(null,z)}var V=(y,z)=>{for(var P in z)X(y,P,{get:z[P],enumerable:!0,configurable:!0,set:Z.bind(z,P)})};var N=(y,z)=>()=>(y&&(z=y(y=0)),z);import{StatCard as M,StatCardGroup as _,StatusChip as A}from"@contractspec/lib.design-system";import{Box as K,HStack as I,VStack as $}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as v}from"@contractspec/lib.ui-kit-web/ui/utils";import O from"next/link";import{jsx as D,jsxs as E}from"react/jsx-runtime";var G={stable:"success",beta:"warning",experimental:"info",deprecated:"danger"};function T({feature:y,className:z}){let{meta:P,operations:Q,events:R,presentations:U,capabilities:J}=y,W=G[P.stability]??"neutral";return E($,{gap:"lg",className:v("w-full",z),children:[E(I,{gap:"sm",children:[D(A,{tone:W,label:P.stability??"unknown"}),D(A,{tone:"neutral",label:P.key,size:"sm"}),D(A,{tone:"neutral",label:`v${P.version}`,size:"sm"})]}),E(_,{children:[D(O,{href:`./${y.meta.key}/operations`,children:D(M,{label:"Operations",value:Q?.length??0})}),D(O,{href:`./${y.meta.key}/events`,children:D(M,{label:"Events",value:R?.length??0})}),D(O,{href:`./${y.meta.key}/presentations`,children:D(M,{label:"Presentations",value:U?.length??0})})]}),J?.provides?.length?E(K,{className:"flex-col rounded-lg border p-4",gap:"sm",align:"start",children:[D("span",{className:"font-semibold",children:"Provides Capabilities"}),D(I,{gap:"xs",wrap:"wrap",children:J.provides.map((F)=>D(A,{tone:"success",label:`${F.key} v${F.version}`,size:"sm"},`${F.key}-${F.version}`))})]}):null,J?.requires?.length?E(K,{className:"flex-col rounded-lg border p-4",gap:"sm",align:"start",children:[D("span",{className:"font-semibold",children:"Requires Capabilities"}),D(I,{gap:"xs",wrap:"wrap",children:J.requires.map((F)=>D(A,{tone:"info",label:`${F.key}${F.version?` v${F.version}`:""}${F.optional?" (optional)":""}`,size:"sm"},F.key))})]}):null,P.tags?.length?E(K,{className:"flex-col rounded-lg border p-4",gap:"sm",align:"start",children:[D("span",{className:"font-semibold",children:"Tags"}),D(I,{gap:"xs",wrap:"wrap",children:P.tags.map((F)=>D(A,{tone:"neutral",label:`#${F}`,size:"sm"},F))})]}):null,P.owners?.length?E(K,{className:"flex-col rounded-lg border p-4",gap:"sm",align:"start",children:[D("span",{className:"font-semibold",children:"Owners"}),D(I,{gap:"xs",wrap:"wrap",children:P.owners.map((F)=>D(A,{tone:"neutral",label:F,size:"sm"},F))})]}):null]})}export{T as FeatureDetail};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var e={meta:{key:"contractspec.docs",version:"1.0.0",title:"Documentation",description:"Comprehensive documentation system for ContractSpec",domain:"platform",owners:["@platform.docs"],tags:["documentation","guides","api-reference"],stability:"stable"},operations:[{key:"docs_search",version:"1.0.0"},{key:"docs.navigate",version:"1.0.0"}],events:[{key:"docs.page_viewed",version:"1.0.0"},{key:"docs.search_performed",version:"1.0.0"}],presentations:[{key:"docs.landing",version:"1.0.0"},{key:"docs.getting-started",version:"1.0.0"},{key:"docs.architecture",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.docs",version:"1.0.0"}],requires:[]}};var JJ={meta:{key:"contractspec.mcp",version:"1.0.0",title:"MCP Integration",description:"Model Context Protocol server for AI agent integration",domain:"platform",owners:["@platform.mcp"],tags:["mcp","ai-agents","tooling"],stability:"beta"},operations:[{key:"mcp.tool.register",version:"1.0.0"},{key:"mcp.resource.register",version:"1.0.0"},{key:"mcp.prompt.register",version:"1.0.0"}],events:[{key:"mcp.tool_invoked",version:"1.0.0"},{key:"mcp.resource_accessed",version:"1.0.0"}],presentations:[],capabilities:{provides:[{key:"contracts.mcp",version:"1.0.0"}],requires:[{key:"contracts.operations",version:"1.0.0"}]}};var KJ={meta:{key:"contractspec.presentations",version:"1.0.0",title:"Presentation Runtime",description:"Cross-platform rendering of contract-driven UI",domain:"platform",owners:["@platform.presentations"],tags:["presentations","ui","rendering","cross-platform"],stability:"beta"},operations:[{key:"presentation.render",version:"1.0.0"},{key:"presentation.transform",version:"1.0.0"}],events:[{key:"presentation.rendered",version:"1.0.0"},{key:"presentation.transformed",version:"1.0.0"}],presentations:[{key:"form.standard",version:"1.0.0"},{key:"list.standard",version:"1.0.0"},{key:"detail.standard",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.presentations",version:"1.0.0"}],requires:[]}};import{AppConfigFeature as LJ}from"@contractspec/lib.contracts-spec/app-config";import{FeatureRegistry as HJ}from"@contractspec/lib.contracts-spec/features";function IJ(){let Q=new HJ;return Q.register(e),Q.register(JJ),Q.register(KJ),Q.register(LJ),Q}var S=null;function QJ(){if(!S)S=IJ();return S}function NK(){S=null}import{cn as MJ}from"@contractspec/lib.ui-kit-web/ui/utils";import{Boxes as qJ,Database as x,FileText as m,Globe as XJ,Layout as M,MessageSquare as TJ,Settings as wJ,Shield as d,Workflow as f}from"lucide-react";import*as YJ from"react";import{jsx as vJ}from"react/jsx-runtime";var CJ={platform:wJ,documentation:m,docs:m,integration:f,api:XJ,security:d,data:x,messaging:TJ,ui:M,presentation:M},kJ={documentation:m,guides:m,"api-reference":XJ,presentations:M,ui:M,rendering:M,mcp:f,integration:f,security:d,auth:d,data:x,storage:x},_J={stable:"success",beta:"warning",experimental:"info",deprecated:"danger"},hJ={sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"};function p({domain:Q,tags:J=[],stability:K,icon:X,size:Z="md",className:Y}){let R=YJ.useMemo(()=>{if(X)return X;if(Q){let z=CJ[Q.toLowerCase()];if(z)return z}for(let z of J){let _=kJ[z.toLowerCase()];if(_)return _}return qJ},[Q,J,X]),E=K?_J[K]||"primary":"primary",A={success:"text-emerald-600 dark:text-emerald-400",warning:"text-amber-600 dark:text-amber-400",info:"text-blue-600 dark:text-blue-400",danger:"text-red-600 dark:text-red-400",primary:"text-primary"};return vJ(R,{className:MJ(hJ[Z],A[E],Y)})}function g(Q){if(!Q)return"primary";return _J[Q]||"primary"}import{useCallback as q,useMemo as $J,useState as SJ}from"react";var ZJ={search:"",tags:[],stability:[],domain:[]};function zJ(Q){let[J,K]=SJ(ZJ),X=q((_)=>{K(($)=>({...$,search:_}))},[]),Z=q((_)=>{K(($)=>({...$,tags:$.tags.includes(_)?$.tags.filter((G)=>G!==_):[...$.tags,_]}))},[]),Y=q((_)=>{K(($)=>({...$,stability:$.stability.includes(_)?$.stability.filter((G)=>G!==_):[...$.stability,_]}))},[]),R=q((_)=>{K(($)=>({...$,domain:$.domain.includes(_)?$.domain.filter((G)=>G!==_):[...$.domain,_]}))},[]),E=q(()=>K(ZJ),[]),A=$J(()=>{return J.search.length>0||J.tags.length>0||J.stability.length>0||J.domain.length>0},[J]),z=$J(()=>{return Q.filter((_)=>{if(J.search){let $=J.search.toLowerCase();if(!((_.meta.title??"").toLowerCase().includes($)||_.meta.description?.toLowerCase().includes($)||_.meta.key.toLowerCase().includes($)))return!1}if(J.tags.length>0){if(!J.tags.some((G)=>_.meta.tags?.includes(G)))return!1}if(J.stability.length>0){if(!J.stability.includes(_.meta.stability??"unknown"))return!1}if(J.domain.length>0){if(!J.domain.includes(_.meta.domain??"unknown"))return!1}return!0})},[Q,J]);return{filters:J,setSearch:X,toggleTag:Z,toggleStability:Y,toggleDomain:R,clearFilters:E,filteredFeatures:z,hasActiveFilters:A}}import{useMemo as EJ}from"react";function WJ(){let Q=EJ(()=>QJ(),[]);return EJ(()=>{let J=Q.list();return{features:J,getFeature:(K)=>Q.get(K),getByTag:(K)=>Q.listByTag(K),getByOwner:(K)=>Q.listByOwner(K),getUniqueTags:()=>Q.getUniqueTags(),getUniqueDomains:()=>{let K=new Set;for(let X of J)if(X.meta.domain)K.add(X.meta.domain);return[...K].sort()},getUniqueStabilities:()=>{let K=new Set;for(let X of J)if(X.meta.stability)K.add(X.meta.stability);return[...K].sort()}}},[Q])}import{StatusChip as UJ}from"@contractspec/lib.design-system";import{HStack as T}from"@contractspec/lib.ui-kit-web/ui/stack";import{ArrowRight as mJ,Layout as yJ,Radio as FJ,Shield as bJ,Tag as jJ,Users as xJ,Zap as dJ}from"lucide-react";import{jsx as W,jsxs as P,Fragment as fJ}from"react/jsx-runtime";function c({feature:Q}){let{meta:J,operations:K,events:X,presentations:Z,capabilities:Y}=Q,R=Y?.provides?.length||Y?.requires?.length;return P(fJ,{children:[J.description&&W("p",{className:"text-muted-foreground text-sm leading-relaxed",children:J.description}),P(T,{gap:"md",className:"py-2",children:[K?.length?P("div",{className:"flex items-center gap-1.5 text-sm",children:[W(dJ,{className:"h-4 w-4 text-amber-500"}),W("span",{className:"font-medium",children:K.length}),W("span",{className:"text-muted-foreground",children:"ops"})]}):null,X?.length?P("div",{className:"flex items-center gap-1.5 text-sm",children:[W(FJ,{className:"h-4 w-4 text-blue-500"}),W("span",{className:"font-medium",children:X.length}),W("span",{className:"text-muted-foreground",children:"events"})]}):null,Z?.length?P("div",{className:"flex items-center gap-1.5 text-sm",children:[W(yJ,{className:"h-4 w-4 text-purple-500"}),W("span",{className:"font-medium",children:Z.length}),W("span",{className:"text-muted-foreground",children:"views"})]}):null]}),R&&P("div",{className:"space-y-1.5 border-border/50 border-t pt-1",children:[Y?.provides?.length?P(T,{gap:"xs",wrap:"wrap",className:"items-start",children:[W(bJ,{className:"mt-0.5 h-3.5 w-3.5 text-emerald-500"}),W("span",{className:"text-muted-foreground text-xs",children:"Provides:"}),Y.provides.slice(0,2).map((E)=>W(UJ,{tone:"success",label:E.key,size:"sm"},E.key)),Y.provides.length>2&&P("span",{className:"text-muted-foreground text-xs",children:["+",Y.provides.length-2]})]}):null,Y?.requires?.length?P(T,{gap:"xs",wrap:"wrap",className:"items-start",children:[W(mJ,{className:"mt-0.5 h-3.5 w-3.5 text-blue-500"}),W("span",{className:"text-muted-foreground text-xs",children:"Requires:"}),Y.requires.slice(0,2).map((E)=>W(UJ,{tone:"info",label:E.key,size:"sm"},E.key)),Y.requires.length>2&&P("span",{className:"text-muted-foreground text-xs",children:["+",Y.requires.length-2]})]}):null]}),J.tags?.length?P(T,{gap:"xs",wrap:"wrap",className:"items-center border-border/50 border-t pt-1",children:[W(jJ,{className:"h-3.5 w-3.5 text-muted-foreground"}),J.tags.slice(0,4).map((E)=>P("span",{className:"rounded bg-muted px-1.5 py-0.5 text-muted-foreground text-xs",children:["#",E]},E)),J.tags.length>4&&P("span",{className:"text-muted-foreground text-xs",children:["+",J.tags.length-4]})]}):null,J.owners?.length?P(T,{gap:"xs",className:"items-center text-muted-foreground text-xs",children:[W(xJ,{className:"h-3.5 w-3.5"}),W("span",{children:J.owners.join(", ")})]}):null]})}import{EntityCard as pJ,StatusChip as gJ}from"@contractspec/lib.design-system";import{HStack as OJ}from"@contractspec/lib.ui-kit-web/ui/stack";import{Layout as cJ,Radio as nJ,Shield as oJ,Zap as lJ}from"lucide-react";import{jsx as D,jsxs as H}from"react/jsx-runtime";var uJ={stable:"success",beta:"warning",experimental:"info",deprecated:"danger"};function n({feature:Q,onSelect:J,className:K}){let{meta:X,operations:Z,events:Y,presentations:R,capabilities:E}=Q,A=uJ[X.stability]??"neutral",z=g(X.stability),_=X.stability==="stable"?"strong":"default",$=J?()=>J(Q):void 0,G=E?.provides?.length||E?.requires?.length;return D(pJ,{cardTitle:X.title,cardSubtitle:X.key,className:K,onClick:$,emphasis:_,icon:D(p,{domain:X.domain,tags:X.tags,stability:X.stability,size:"md"}),iconTone:z,chips:D(gJ,{tone:A,label:X.stability??"unknown",size:"sm"}),meta:X.description?D("span",{className:"line-clamp-2 text-muted-foreground text-sm",children:X.description}):void 0,preview:D(c,{feature:Q}),footer:H(OJ,{gap:"md",className:"w-full justify-between text-muted-foreground text-xs",children:[H(OJ,{gap:"sm",children:[Z?.length?H("span",{className:"flex items-center gap-1",children:[D(lJ,{className:"h-3 w-3 text-amber-500"}),Z.length]}):null,Y?.length?H("span",{className:"flex items-center gap-1",children:[D(nJ,{className:"h-3 w-3 text-blue-500"}),Y.length]}):null,R?.length?H("span",{className:"flex items-center gap-1",children:[D(cJ,{className:"h-3 w-3 text-purple-500"}),R.length]}):null]}),G&&H("span",{className:"flex items-center gap-1",children:[D(oJ,{className:"h-3 w-3 text-emerald-500"}),(E?.provides?.length??0)+(E?.requires?.length??0)]})]})})}import{StatusChip as rJ}from"@contractspec/lib.design-system";import{HStack as iJ}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as PJ}from"@contractspec/lib.ui-kit-web/ui/utils";import{Boxes as aJ,ChevronDown as sJ}from"lucide-react";import{jsx as w,jsxs as GJ}from"react/jsx-runtime";function o({title:Q,count:J,icon:K,isCollapsed:X=!1,onToggle:Z,className:Y}){return GJ("button",{type:"button",onClick:Z,className:PJ("flex w-full items-center justify-between rounded-lg px-4 py-3","bg-muted/30 transition-colors hover:bg-muted/50","group cursor-pointer",Y),children:[GJ(iJ,{gap:"sm",className:"items-center",children:[w("div",{className:"text-muted-foreground transition-colors group-hover:text-foreground",children:K||w(aJ,{className:"h-5 w-5"})}),w("span",{className:"font-semibold text-lg capitalize transition-colors group-hover:text-primary",children:Q}),w(rJ,{tone:"neutral",label:`${J} ${J===1?"feature":"features"}`,size:"sm"})]}),w(sJ,{className:PJ("h-5 w-5 text-muted-foreground transition-transform duration-200",X&&"-rotate-90")})]})}import{Button as l,Input as tJ}from"@contractspec/lib.design-system";import{HStack as u,VStack as eJ}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as JK}from"@contractspec/lib.ui-kit-web/ui/utils";import{jsx as C,jsxs as I}from"react/jsx-runtime";function r({uniqueTags:Q,uniqueStabilities:J,filters:K,setSearch:X,toggleTag:Z,toggleStability:Y,clearFilters:R,hasActiveFilters:E,className:A}){return I(eJ,{gap:"md",className:JK("w-full",A),children:[I(u,{gap:"md",justify:"between",className:"w-full",children:[C(tJ,{placeholder:"Search features...",value:K.search,onChange:(z)=>X(z.target.value),className:"max-w-md","aria-label":"Search features"}),E&&C(l,{variant:"ghost",size:"sm",onClick:R,children:"Clear filters"})]}),J.length>0&&I(u,{gap:"xs",wrap:"wrap",children:[C("span",{className:"text-muted-foreground text-sm",children:"Stability:"}),J.map((z)=>C(l,{variant:K.stability.includes(z)?"default":"outline",size:"sm",onClick:()=>Y(z),"aria-pressed":K.stability.includes(z),children:z},z))]}),Q.length>0&&I(u,{gap:"xs",wrap:"wrap",children:[C("span",{className:"text-muted-foreground text-sm",children:"Tags:"}),Q.slice(0,10).map((z)=>I(l,{variant:K.tags.includes(z)?"default":"outline",size:"sm",onClick:()=>Z(z),"aria-pressed":K.tags.includes(z),children:["#",z]},z)),Q.length>10&&I("span",{className:"text-muted-foreground text-sm",children:["+",Q.length-10," more"]})]})]})}import{Button as KK,EmptyState as QK,PageHeaderResponsive as XK,StatusChip as YK}from"@contractspec/lib.design-system";import{HStack as RJ,VStack as k}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as i}from"@contractspec/lib.ui-kit-web/ui/utils";import{LayoutGrid as _K,List as $K,Star as ZK}from"lucide-react";import*as L from"react";import{jsx as O,jsxs as B}from"react/jsx-runtime";function zK(Q){let J={};for(let K of Q){let X=K.meta.domain||"Other";if(!J[X])J[X]=[];J[X].push(K)}return J}function EK(Q){let J=["stable","beta","experimental","deprecated","unknown"],K={};for(let Z of Q){let Y=Z.meta.stability||"unknown";if(!K[Y])K[Y]=[];K[Y].push(Z)}let X={};for(let Z of J)if(K[Z])X[Z]=K[Z];return X}function DQ({onSelectFeature:Q,className:J,defaultViewMode:K="grid",groupBy:X="domain",showFeatured:Z=!0}){let{features:Y,getUniqueTags:R,getUniqueStabilities:E}=WJ(),{filters:A,setSearch:z,toggleTag:_,toggleStability:$,clearFilters:G,filteredFeatures:N,hasActiveFilters:y}=zJ(Y),AJ=R(),DJ=E(),[F,a]=L.useState(K),[s,NJ]=L.useState(new Set),b=L.useMemo(()=>N.filter((U)=>U.meta.stability==="stable"),[N]),h=L.useMemo(()=>Z?N.filter((U)=>U.meta.stability!=="stable"):N,[N,Z]),t=L.useMemo(()=>{if(X==="none")return null;if(X==="domain")return zK(h);return EK(h)},[h,X]),VJ=(U)=>{NJ((V)=>{let v=new Set(V);if(v.has(U))v.delete(U);else v.add(U);return v})},BJ=F==="grid"?"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3":"flex flex-col gap-3",j=(U)=>O("div",{className:BJ,children:U.map((V)=>O(n,{feature:V,onSelect:Q},V.meta.key))});return B(k,{gap:"lg",className:i("w-full p-6",J),children:[B("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[O(XK,{title:"Feature Discovery",subtitle:`Browse ${Y.length} available ContractSpec features`}),B(RJ,{gap:"xs",children:[O("button",{type:"button",onClick:()=>a("grid"),className:i("rounded-md p-2 transition-colors",F==="grid"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"),"aria-label":"Grid view",children:O(_K,{className:"h-4 w-4"})}),O("button",{type:"button",onClick:()=>a("list"),className:i("rounded-md p-2 transition-colors",F==="list"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"),"aria-label":"List view",children:O($K,{className:"h-4 w-4"})})]})]}),O(r,{uniqueTags:AJ,uniqueStabilities:DJ,filters:A,setSearch:z,toggleTag:_,toggleStability:$,clearFilters:G,hasActiveFilters:y}),N.length===0?O(QK,{title:"No features found",description:y?"Try adjusting your search or filters":"No features are registered yet",primaryAction:y?O(KK,{variant:"outline",onClick:G,children:"Clear filters"}):void 0}):B(k,{gap:"lg",children:[Z&&b.length>0&&B(k,{gap:"sm",children:[B(RJ,{gap:"sm",className:"items-center",children:[O(ZK,{className:"h-5 w-5 fill-amber-500 text-amber-500"}),O("span",{className:"font-semibold text-lg",children:"Featured"}),O(YK,{tone:"success",label:`${b.length} stable`,size:"sm"})]}),j(b)]}),t?O(k,{gap:"md",children:Object.entries(t).map(([U,V])=>B(k,{gap:"sm",children:[O(o,{title:U,count:V.length,isCollapsed:s.has(U),onToggle:()=>VJ(U)}),!s.has(U)&&j(V)]},U))}):j(h)]})]})}export{DQ as FeatureDiscovery};
|
|
2
|
+
var LJ=Object.defineProperty;var HJ=(K)=>K;function IJ(K,J){this[K]=HJ.bind(null,J)}var PK=(K,J)=>{for(var Q in J)LJ(K,Q,{get:J[Q],enumerable:!0,configurable:!0,set:IJ.bind(J,Q)})};var GK=(K,J)=>()=>(K&&(J=K(K=0)),J);var e={meta:{key:"contractspec.docs",version:"1.0.0",title:"Documentation",description:"Comprehensive documentation system for ContractSpec",domain:"platform",owners:["@platform.docs"],tags:["documentation","guides","api-reference"],stability:"stable"},operations:[{key:"docs_search",version:"1.0.0"},{key:"docs.navigate",version:"1.0.0"}],events:[{key:"docs.page_viewed",version:"1.0.0"},{key:"docs.search_performed",version:"1.0.0"}],presentations:[{key:"docs.landing",version:"1.0.0"},{key:"docs.getting-started",version:"1.0.0"},{key:"docs.architecture",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.docs",version:"1.0.0"}],requires:[]}};var JJ={meta:{key:"contractspec.mcp",version:"1.0.0",title:"MCP Integration",description:"Model Context Protocol server for AI agent integration",domain:"platform",owners:["@platform.mcp"],tags:["mcp","ai-agents","tooling"],stability:"beta"},operations:[{key:"mcp.tool.register",version:"1.0.0"},{key:"mcp.resource.register",version:"1.0.0"},{key:"mcp.prompt.register",version:"1.0.0"}],events:[{key:"mcp.tool_invoked",version:"1.0.0"},{key:"mcp.resource_accessed",version:"1.0.0"}],presentations:[],capabilities:{provides:[{key:"contracts.mcp",version:"1.0.0"}],requires:[{key:"contracts.operations",version:"1.0.0"}]}};var KJ={meta:{key:"contractspec.presentations",version:"1.0.0",title:"Presentation Runtime",description:"Cross-platform rendering of contract-driven UI",domain:"platform",owners:["@platform.presentations"],tags:["presentations","ui","rendering","cross-platform"],stability:"beta"},operations:[{key:"presentation.render",version:"1.0.0"},{key:"presentation.transform",version:"1.0.0"}],events:[{key:"presentation.rendered",version:"1.0.0"},{key:"presentation.transformed",version:"1.0.0"}],presentations:[{key:"form.standard",version:"1.0.0"},{key:"list.standard",version:"1.0.0"},{key:"detail.standard",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.presentations",version:"1.0.0"}],requires:[]}};import{AppConfigFeature as MJ}from"@contractspec/lib.contracts-spec/app-config";import{FeatureRegistry as qJ}from"@contractspec/lib.contracts-spec/features";function TJ(){let K=new qJ;return K.register(e),K.register(JJ),K.register(KJ),K.register(MJ),K}var S=null;function QJ(){if(!S)S=TJ();return S}function MK(){S=null}import{cn as wJ}from"@contractspec/lib.ui-kit-web/ui/utils";import{Boxes as CJ,Database as x,FileText as m,Globe as XJ,Layout as M,MessageSquare as kJ,Settings as hJ,Shield as d,Workflow as f}from"lucide-react";import*as YJ from"react";import{jsx as yJ}from"react/jsx-runtime";var vJ={platform:hJ,documentation:m,docs:m,integration:f,api:XJ,security:d,data:x,messaging:kJ,ui:M,presentation:M},SJ={documentation:m,guides:m,"api-reference":XJ,presentations:M,ui:M,rendering:M,mcp:f,integration:f,security:d,auth:d,data:x,storage:x},_J={stable:"success",beta:"warning",experimental:"info",deprecated:"danger"},mJ={sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"};function p({domain:K,tags:J=[],stability:Q,icon:X,size:Z="md",className:Y}){let R=YJ.useMemo(()=>{if(X)return X;if(K){let z=vJ[K.toLowerCase()];if(z)return z}for(let z of J){let _=SJ[z.toLowerCase()];if(_)return _}return CJ},[K,J,X]),E=Q?_J[Q]||"primary":"primary",A={success:"text-emerald-600 dark:text-emerald-400",warning:"text-amber-600 dark:text-amber-400",info:"text-blue-600 dark:text-blue-400",danger:"text-red-600 dark:text-red-400",primary:"text-primary"};return yJ(R,{className:wJ(mJ[Z],A[E],Y)})}function g(K){if(!K)return"primary";return _J[K]||"primary"}import{useCallback as q,useMemo as $J,useState as FJ}from"react";var ZJ={search:"",tags:[],stability:[],domain:[]};function zJ(K){let[J,Q]=FJ(ZJ),X=q((_)=>{Q(($)=>({...$,search:_}))},[]),Z=q((_)=>{Q(($)=>({...$,tags:$.tags.includes(_)?$.tags.filter((G)=>G!==_):[...$.tags,_]}))},[]),Y=q((_)=>{Q(($)=>({...$,stability:$.stability.includes(_)?$.stability.filter((G)=>G!==_):[...$.stability,_]}))},[]),R=q((_)=>{Q(($)=>({...$,domain:$.domain.includes(_)?$.domain.filter((G)=>G!==_):[...$.domain,_]}))},[]),E=q(()=>Q(ZJ),[]),A=$J(()=>{return J.search.length>0||J.tags.length>0||J.stability.length>0||J.domain.length>0},[J]),z=$J(()=>{return K.filter((_)=>{if(J.search){let $=J.search.toLowerCase();if(!((_.meta.title??"").toLowerCase().includes($)||_.meta.description?.toLowerCase().includes($)||_.meta.key.toLowerCase().includes($)))return!1}if(J.tags.length>0){if(!J.tags.some((G)=>_.meta.tags?.includes(G)))return!1}if(J.stability.length>0){if(!J.stability.includes(_.meta.stability??"unknown"))return!1}if(J.domain.length>0){if(!J.domain.includes(_.meta.domain??"unknown"))return!1}return!0})},[K,J]);return{filters:J,setSearch:X,toggleTag:Z,toggleStability:Y,toggleDomain:R,clearFilters:E,filteredFeatures:z,hasActiveFilters:A}}import{useMemo as EJ}from"react";function WJ(){let K=EJ(()=>QJ(),[]);return EJ(()=>{let J=K.list();return{features:J,getFeature:(Q)=>K.get(Q),getByTag:(Q)=>K.listByTag(Q),getByOwner:(Q)=>K.listByOwner(Q),getUniqueTags:()=>K.getUniqueTags(),getUniqueDomains:()=>{let Q=new Set;for(let X of J)if(X.meta.domain)Q.add(X.meta.domain);return[...Q].sort()},getUniqueStabilities:()=>{let Q=new Set;for(let X of J)if(X.meta.stability)Q.add(X.meta.stability);return[...Q].sort()}}},[K])}import{StatusChip as UJ}from"@contractspec/lib.design-system";import{HStack as T}from"@contractspec/lib.ui-kit-web/ui/stack";import{ArrowRight as bJ,Layout as jJ,Radio as xJ,Shield as dJ,Tag as fJ,Users as pJ,Zap as gJ}from"lucide-react";import{jsx as W,jsxs as P,Fragment as cJ}from"react/jsx-runtime";function c({feature:K}){let{meta:J,operations:Q,events:X,presentations:Z,capabilities:Y}=K,R=Y?.provides?.length||Y?.requires?.length;return P(cJ,{children:[J.description&&W("p",{className:"text-muted-foreground text-sm leading-relaxed",children:J.description}),P(T,{gap:"md",className:"py-2",children:[Q?.length?P("div",{className:"flex items-center gap-1.5 text-sm",children:[W(gJ,{className:"h-4 w-4 text-amber-500"}),W("span",{className:"font-medium",children:Q.length}),W("span",{className:"text-muted-foreground",children:"ops"})]}):null,X?.length?P("div",{className:"flex items-center gap-1.5 text-sm",children:[W(xJ,{className:"h-4 w-4 text-blue-500"}),W("span",{className:"font-medium",children:X.length}),W("span",{className:"text-muted-foreground",children:"events"})]}):null,Z?.length?P("div",{className:"flex items-center gap-1.5 text-sm",children:[W(jJ,{className:"h-4 w-4 text-purple-500"}),W("span",{className:"font-medium",children:Z.length}),W("span",{className:"text-muted-foreground",children:"views"})]}):null]}),R&&P("div",{className:"space-y-1.5 border-border/50 border-t pt-1",children:[Y?.provides?.length?P(T,{gap:"xs",wrap:"wrap",className:"items-start",children:[W(dJ,{className:"mt-0.5 h-3.5 w-3.5 text-emerald-500"}),W("span",{className:"text-muted-foreground text-xs",children:"Provides:"}),Y.provides.slice(0,2).map((E)=>W(UJ,{tone:"success",label:E.key,size:"sm"},E.key)),Y.provides.length>2&&P("span",{className:"text-muted-foreground text-xs",children:["+",Y.provides.length-2]})]}):null,Y?.requires?.length?P(T,{gap:"xs",wrap:"wrap",className:"items-start",children:[W(bJ,{className:"mt-0.5 h-3.5 w-3.5 text-blue-500"}),W("span",{className:"text-muted-foreground text-xs",children:"Requires:"}),Y.requires.slice(0,2).map((E)=>W(UJ,{tone:"info",label:E.key,size:"sm"},E.key)),Y.requires.length>2&&P("span",{className:"text-muted-foreground text-xs",children:["+",Y.requires.length-2]})]}):null]}),J.tags?.length?P(T,{gap:"xs",wrap:"wrap",className:"items-center border-border/50 border-t pt-1",children:[W(fJ,{className:"h-3.5 w-3.5 text-muted-foreground"}),J.tags.slice(0,4).map((E)=>P("span",{className:"rounded bg-muted px-1.5 py-0.5 text-muted-foreground text-xs",children:["#",E]},E)),J.tags.length>4&&P("span",{className:"text-muted-foreground text-xs",children:["+",J.tags.length-4]})]}):null,J.owners?.length?P(T,{gap:"xs",className:"items-center text-muted-foreground text-xs",children:[W(pJ,{className:"h-3.5 w-3.5"}),W("span",{children:J.owners.join(", ")})]}):null]})}import{EntityCard as nJ,StatusChip as oJ}from"@contractspec/lib.design-system";import{HStack as OJ}from"@contractspec/lib.ui-kit-web/ui/stack";import{Layout as lJ,Radio as uJ,Shield as rJ,Zap as iJ}from"lucide-react";import{jsx as D,jsxs as H}from"react/jsx-runtime";var aJ={stable:"success",beta:"warning",experimental:"info",deprecated:"danger"};function n({feature:K,onSelect:J,className:Q}){let{meta:X,operations:Z,events:Y,presentations:R,capabilities:E}=K,A=aJ[X.stability]??"neutral",z=g(X.stability),_=X.stability==="stable"?"strong":"default",$=J?()=>J(K):void 0,G=E?.provides?.length||E?.requires?.length;return D(nJ,{cardTitle:X.title,cardSubtitle:X.key,className:Q,onClick:$,emphasis:_,icon:D(p,{domain:X.domain,tags:X.tags,stability:X.stability,size:"md"}),iconTone:z,chips:D(oJ,{tone:A,label:X.stability??"unknown",size:"sm"}),meta:X.description?D("span",{className:"line-clamp-2 text-muted-foreground text-sm",children:X.description}):void 0,preview:D(c,{feature:K}),footer:H(OJ,{gap:"md",className:"w-full justify-between text-muted-foreground text-xs",children:[H(OJ,{gap:"sm",children:[Z?.length?H("span",{className:"flex items-center gap-1",children:[D(iJ,{className:"h-3 w-3 text-amber-500"}),Z.length]}):null,Y?.length?H("span",{className:"flex items-center gap-1",children:[D(uJ,{className:"h-3 w-3 text-blue-500"}),Y.length]}):null,R?.length?H("span",{className:"flex items-center gap-1",children:[D(lJ,{className:"h-3 w-3 text-purple-500"}),R.length]}):null]}),G&&H("span",{className:"flex items-center gap-1",children:[D(rJ,{className:"h-3 w-3 text-emerald-500"}),(E?.provides?.length??0)+(E?.requires?.length??0)]})]})})}import{StatusChip as sJ}from"@contractspec/lib.design-system";import{HStack as tJ}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as PJ}from"@contractspec/lib.ui-kit-web/ui/utils";import{Boxes as eJ,ChevronDown as JK}from"lucide-react";import{jsx as w,jsxs as GJ}from"react/jsx-runtime";function o({title:K,count:J,icon:Q,isCollapsed:X=!1,onToggle:Z,className:Y}){return GJ("button",{type:"button",onClick:Z,className:PJ("flex w-full items-center justify-between rounded-lg px-4 py-3","bg-muted/30 transition-colors hover:bg-muted/50","group cursor-pointer",Y),children:[GJ(tJ,{gap:"sm",className:"items-center",children:[w("div",{className:"text-muted-foreground transition-colors group-hover:text-foreground",children:Q||w(eJ,{className:"h-5 w-5"})}),w("span",{className:"font-semibold text-lg capitalize transition-colors group-hover:text-primary",children:K}),w(sJ,{tone:"neutral",label:`${J} ${J===1?"feature":"features"}`,size:"sm"})]}),w(JK,{className:PJ("h-5 w-5 text-muted-foreground transition-transform duration-200",X&&"-rotate-90")})]})}import{Button as l,Input as KK}from"@contractspec/lib.design-system";import{HStack as u,VStack as QK}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as XK}from"@contractspec/lib.ui-kit-web/ui/utils";import{jsx as C,jsxs as I}from"react/jsx-runtime";function r({uniqueTags:K,uniqueStabilities:J,filters:Q,setSearch:X,toggleTag:Z,toggleStability:Y,clearFilters:R,hasActiveFilters:E,className:A}){return I(QK,{gap:"md",className:XK("w-full",A),children:[I(u,{gap:"md",justify:"between",className:"w-full",children:[C(KK,{placeholder:"Search features...",value:Q.search,onChange:(z)=>X(z.target.value),className:"max-w-md","aria-label":"Search features"}),E&&C(l,{variant:"ghost",size:"sm",onClick:R,children:"Clear filters"})]}),J.length>0&&I(u,{gap:"xs",wrap:"wrap",children:[C("span",{className:"text-muted-foreground text-sm",children:"Stability:"}),J.map((z)=>C(l,{variant:Q.stability.includes(z)?"default":"outline",size:"sm",onClick:()=>Y(z),"aria-pressed":Q.stability.includes(z),children:z},z))]}),K.length>0&&I(u,{gap:"xs",wrap:"wrap",children:[C("span",{className:"text-muted-foreground text-sm",children:"Tags:"}),K.slice(0,10).map((z)=>I(l,{variant:Q.tags.includes(z)?"default":"outline",size:"sm",onClick:()=>Z(z),"aria-pressed":Q.tags.includes(z),children:["#",z]},z)),K.length>10&&I("span",{className:"text-muted-foreground text-sm",children:["+",K.length-10," more"]})]})]})}import{Button as YK,EmptyState as _K,PageHeaderResponsive as $K,StatusChip as ZK}from"@contractspec/lib.design-system";import{HStack as RJ,VStack as k}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as i}from"@contractspec/lib.ui-kit-web/ui/utils";import{LayoutGrid as zK,List as EK,Star as WK}from"lucide-react";import*as L from"react";import{jsx as O,jsxs as B}from"react/jsx-runtime";function UK(K){let J={};for(let Q of K){let X=Q.meta.domain||"Other";if(!J[X])J[X]=[];J[X].push(Q)}return J}function OK(K){let J=["stable","beta","experimental","deprecated","unknown"],Q={};for(let Z of K){let Y=Z.meta.stability||"unknown";if(!Q[Y])Q[Y]=[];Q[Y].push(Z)}let X={};for(let Z of J)if(Q[Z])X[Z]=Q[Z];return X}function IQ({onSelectFeature:K,className:J,defaultViewMode:Q="grid",groupBy:X="domain",showFeatured:Z=!0}){let{features:Y,getUniqueTags:R,getUniqueStabilities:E}=WJ(),{filters:A,setSearch:z,toggleTag:_,toggleStability:$,clearFilters:G,filteredFeatures:N,hasActiveFilters:y}=zJ(Y),AJ=R(),DJ=E(),[F,a]=L.useState(Q),[s,NJ]=L.useState(new Set),b=L.useMemo(()=>N.filter((U)=>U.meta.stability==="stable"),[N]),h=L.useMemo(()=>Z?N.filter((U)=>U.meta.stability!=="stable"):N,[N,Z]),t=L.useMemo(()=>{if(X==="none")return null;if(X==="domain")return UK(h);return OK(h)},[h,X]),VJ=(U)=>{NJ((V)=>{let v=new Set(V);if(v.has(U))v.delete(U);else v.add(U);return v})},BJ=F==="grid"?"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3":"flex flex-col gap-3",j=(U)=>O("div",{className:BJ,children:U.map((V)=>O(n,{feature:V,onSelect:K},V.meta.key))});return B(k,{gap:"lg",className:i("w-full p-6",J),children:[B("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[O($K,{title:"Feature Discovery",subtitle:`Browse ${Y.length} available ContractSpec features`}),B(RJ,{gap:"xs",children:[O("button",{type:"button",onClick:()=>a("grid"),className:i("rounded-md p-2 transition-colors",F==="grid"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"),"aria-label":"Grid view",children:O(zK,{className:"h-4 w-4"})}),O("button",{type:"button",onClick:()=>a("list"),className:i("rounded-md p-2 transition-colors",F==="list"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"),"aria-label":"List view",children:O(EK,{className:"h-4 w-4"})})]})]}),O(r,{uniqueTags:AJ,uniqueStabilities:DJ,filters:A,setSearch:z,toggleTag:_,toggleStability:$,clearFilters:G,hasActiveFilters:y}),N.length===0?O(_K,{title:"No features found",description:y?"Try adjusting your search or filters":"No features are registered yet",primaryAction:y?O(YK,{variant:"outline",onClick:G,children:"Clear filters"}):void 0}):B(k,{gap:"lg",children:[Z&&b.length>0&&B(k,{gap:"sm",children:[B(RJ,{gap:"sm",className:"items-center",children:[O(WK,{className:"h-5 w-5 fill-amber-500 text-amber-500"}),O("span",{className:"font-semibold text-lg",children:"Featured"}),O(ZK,{tone:"success",label:`${b.length} stable`,size:"sm"})]}),j(b)]}),t?O(k,{gap:"md",children:Object.entries(t).map(([U,V])=>B(k,{gap:"sm",children:[O(o,{title:U,count:V.length,isCollapsed:s.has(U),onToggle:()=>VJ(U)}),!s.has(U)&&j(V)]},U))}):j(h)]})]})}export{IQ as FeatureDiscovery};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var e={meta:{key:"contractspec.docs",version:"1.0.0",title:"Documentation",description:"Comprehensive documentation system for ContractSpec",domain:"platform",owners:["@platform.docs"],tags:["documentation","guides","api-reference"],stability:"stable"},operations:[{key:"docs_search",version:"1.0.0"},{key:"docs.navigate",version:"1.0.0"}],events:[{key:"docs.page_viewed",version:"1.0.0"},{key:"docs.search_performed",version:"1.0.0"}],presentations:[{key:"docs.landing",version:"1.0.0"},{key:"docs.getting-started",version:"1.0.0"},{key:"docs.architecture",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.docs",version:"1.0.0"}],requires:[]}};var JJ={meta:{key:"contractspec.mcp",version:"1.0.0",title:"MCP Integration",description:"Model Context Protocol server for AI agent integration",domain:"platform",owners:["@platform.mcp"],tags:["mcp","ai-agents","tooling"],stability:"beta"},operations:[{key:"mcp.tool.register",version:"1.0.0"},{key:"mcp.resource.register",version:"1.0.0"},{key:"mcp.prompt.register",version:"1.0.0"}],events:[{key:"mcp.tool_invoked",version:"1.0.0"},{key:"mcp.resource_accessed",version:"1.0.0"}],presentations:[],capabilities:{provides:[{key:"contracts.mcp",version:"1.0.0"}],requires:[{key:"contracts.operations",version:"1.0.0"}]}};var KJ={meta:{key:"contractspec.presentations",version:"1.0.0",title:"Presentation Runtime",description:"Cross-platform rendering of contract-driven UI",domain:"platform",owners:["@platform.presentations"],tags:["presentations","ui","rendering","cross-platform"],stability:"beta"},operations:[{key:"presentation.render",version:"1.0.0"},{key:"presentation.transform",version:"1.0.0"}],events:[{key:"presentation.rendered",version:"1.0.0"},{key:"presentation.transformed",version:"1.0.0"}],presentations:[{key:"form.standard",version:"1.0.0"},{key:"list.standard",version:"1.0.0"},{key:"detail.standard",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.presentations",version:"1.0.0"}],requires:[]}};import{AppConfigFeature as LJ}from"@contractspec/lib.contracts-spec/app-config";import{FeatureRegistry as HJ}from"@contractspec/lib.contracts-spec/features";function MJ(){let Q=new HJ;return Q.register(e),Q.register(JJ),Q.register(KJ),Q.register(LJ),Q}var S=null;function QJ(){if(!S)S=MJ();return S}function NK(){S=null}import{cn as IJ}from"@contractspec/lib.ui-kit-web/ui/utils";import{Boxes as qJ,Database as x,FileText as y,Globe as XJ,Layout as I,MessageSquare as TJ,Settings as wJ,Shield as d,Workflow as p}from"lucide-react";import*as YJ from"react";import{jsx as vJ}from"react/jsx-runtime";var CJ={platform:wJ,documentation:y,docs:y,integration:p,api:XJ,security:d,data:x,messaging:TJ,ui:I,presentation:I},kJ={documentation:y,guides:y,"api-reference":XJ,presentations:I,ui:I,rendering:I,mcp:p,integration:p,security:d,auth:d,data:x,storage:x},_J={stable:"success",beta:"warning",experimental:"info",deprecated:"danger"},hJ={sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"};function f({domain:Q,tags:J=[],stability:K,icon:X,size:Z="md",className:Y}){let D=YJ.useMemo(()=>{if(X)return X;if(Q){let z=CJ[Q.toLowerCase()];if(z)return z}for(let z of J){let _=kJ[z.toLowerCase()];if(_)return _}return qJ},[Q,J,X]),E=K?_J[K]||"primary":"primary",R={success:"text-emerald-600 dark:text-emerald-400",warning:"text-amber-600 dark:text-amber-400",info:"text-blue-600 dark:text-blue-400",danger:"text-red-600 dark:text-red-400",primary:"text-primary"};return vJ(D,{className:IJ(hJ[Z],R[E],Y)})}function g(Q){if(!Q)return"primary";return _J[Q]||"primary"}import{useCallback as q,useMemo as $J,useState as SJ}from"react";var ZJ={search:"",tags:[],stability:[],domain:[]};function zJ(Q){let[J,K]=SJ(ZJ),X=q((_)=>{K(($)=>({...$,search:_}))},[]),Z=q((_)=>{K(($)=>({...$,tags:$.tags.includes(_)?$.tags.filter((O)=>O!==_):[...$.tags,_]}))},[]),Y=q((_)=>{K(($)=>({...$,stability:$.stability.includes(_)?$.stability.filter((O)=>O!==_):[...$.stability,_]}))},[]),D=q((_)=>{K(($)=>({...$,domain:$.domain.includes(_)?$.domain.filter((O)=>O!==_):[...$.domain,_]}))},[]),E=q(()=>K(ZJ),[]),R=$J(()=>{return J.search.length>0||J.tags.length>0||J.stability.length>0||J.domain.length>0},[J]),z=$J(()=>{return Q.filter((_)=>{if(J.search){let $=J.search.toLowerCase();if(!((_.meta.title??"").toLowerCase().includes($)||_.meta.description?.toLowerCase().includes($)||_.meta.key.toLowerCase().includes($)))return!1}if(J.tags.length>0){if(!J.tags.some((O)=>_.meta.tags?.includes(O)))return!1}if(J.stability.length>0){if(!J.stability.includes(_.meta.stability??"unknown"))return!1}if(J.domain.length>0){if(!J.domain.includes(_.meta.domain??"unknown"))return!1}return!0})},[Q,J]);return{filters:J,setSearch:X,toggleTag:Z,toggleStability:Y,toggleDomain:D,clearFilters:E,filteredFeatures:z,hasActiveFilters:R}}import{useMemo as EJ}from"react";function WJ(){let Q=EJ(()=>QJ(),[]);return EJ(()=>{let J=Q.list();return{features:J,getFeature:(K)=>Q.get(K),getByTag:(K)=>Q.listByTag(K),getByOwner:(K)=>Q.listByOwner(K),getUniqueTags:()=>Q.getUniqueTags(),getUniqueDomains:()=>{let K=new Set;for(let X of J)if(X.meta.domain)K.add(X.meta.domain);return[...K].sort()},getUniqueStabilities:()=>{let K=new Set;for(let X of J)if(X.meta.stability)K.add(X.meta.stability);return[...K].sort()}}},[Q])}import{StatusChip as UJ}from"@contractspec/lib.design-system";import{HStack as T}from"@contractspec/lib.ui-kit-web/ui/stack";import{ArrowRight as yJ,Layout as FJ,Radio as mJ,Shield as bJ,Tag as jJ,Users as xJ,Zap as dJ}from"lucide-react";import{jsx as W,jsxs as G,Fragment as pJ}from"react/jsx-runtime";function c({feature:Q}){let{meta:J,operations:K,events:X,presentations:Z,capabilities:Y}=Q,D=Y?.provides?.length||Y?.requires?.length;return G(pJ,{children:[J.description&&W("p",{className:"text-muted-foreground text-sm leading-relaxed",children:J.description}),G(T,{gap:"md",className:"py-2",children:[K?.length?G("div",{className:"flex items-center gap-1.5 text-sm",children:[W(dJ,{className:"h-4 w-4 text-amber-500"}),W("span",{className:"font-medium",children:K.length}),W("span",{className:"text-muted-foreground",children:"ops"})]}):null,X?.length?G("div",{className:"flex items-center gap-1.5 text-sm",children:[W(mJ,{className:"h-4 w-4 text-blue-500"}),W("span",{className:"font-medium",children:X.length}),W("span",{className:"text-muted-foreground",children:"events"})]}):null,Z?.length?G("div",{className:"flex items-center gap-1.5 text-sm",children:[W(FJ,{className:"h-4 w-4 text-purple-500"}),W("span",{className:"font-medium",children:Z.length}),W("span",{className:"text-muted-foreground",children:"views"})]}):null]}),D&&G("div",{className:"space-y-1.5 border-border/50 border-t pt-1",children:[Y?.provides?.length?G(T,{gap:"xs",wrap:"wrap",className:"items-start",children:[W(bJ,{className:"mt-0.5 h-3.5 w-3.5 text-emerald-500"}),W("span",{className:"text-muted-foreground text-xs",children:"Provides:"}),Y.provides.slice(0,2).map((E)=>W(UJ,{tone:"success",label:E.key,size:"sm"},E.key)),Y.provides.length>2&&G("span",{className:"text-muted-foreground text-xs",children:["+",Y.provides.length-2]})]}):null,Y?.requires?.length?G(T,{gap:"xs",wrap:"wrap",className:"items-start",children:[W(yJ,{className:"mt-0.5 h-3.5 w-3.5 text-blue-500"}),W("span",{className:"text-muted-foreground text-xs",children:"Requires:"}),Y.requires.slice(0,2).map((E)=>W(UJ,{tone:"info",label:E.key,size:"sm"},E.key)),Y.requires.length>2&&G("span",{className:"text-muted-foreground text-xs",children:["+",Y.requires.length-2]})]}):null]}),J.tags?.length?G(T,{gap:"xs",wrap:"wrap",className:"items-center border-border/50 border-t pt-1",children:[W(jJ,{className:"h-3.5 w-3.5 text-muted-foreground"}),J.tags.slice(0,4).map((E)=>G("span",{className:"rounded bg-muted px-1.5 py-0.5 text-muted-foreground text-xs",children:["#",E]},E)),J.tags.length>4&&G("span",{className:"text-muted-foreground text-xs",children:["+",J.tags.length-4]})]}):null,J.owners?.length?G(T,{gap:"xs",className:"items-center text-muted-foreground text-xs",children:[W(xJ,{className:"h-3.5 w-3.5"}),W("span",{children:J.owners.join(", ")})]}):null]})}import{EntityCard as fJ,StatusChip as gJ}from"@contractspec/lib.design-system";import{HStack as PJ}from"@contractspec/lib.ui-kit-web/ui/stack";import{Layout as cJ,Radio as nJ,Shield as oJ,Zap as lJ}from"lucide-react";import{jsx as A,jsxs as H}from"react/jsx-runtime";var uJ={stable:"success",beta:"warning",experimental:"info",deprecated:"danger"};function n({feature:Q,onSelect:J,className:K}){let{meta:X,operations:Z,events:Y,presentations:D,capabilities:E}=Q,R=uJ[X.stability]??"neutral",z=g(X.stability),_=X.stability==="stable"?"strong":"default",$=J?()=>J(Q):void 0,O=E?.provides?.length||E?.requires?.length;return A(fJ,{cardTitle:X.title,cardSubtitle:X.key,className:K,onClick:$,emphasis:_,icon:A(f,{domain:X.domain,tags:X.tags,stability:X.stability,size:"md"}),iconTone:z,chips:A(gJ,{tone:R,label:X.stability??"unknown",size:"sm"}),meta:X.description?A("span",{className:"line-clamp-2 text-muted-foreground text-sm",children:X.description}):void 0,preview:A(c,{feature:Q}),footer:H(PJ,{gap:"md",className:"w-full justify-between text-muted-foreground text-xs",children:[H(PJ,{gap:"sm",children:[Z?.length?H("span",{className:"flex items-center gap-1",children:[A(lJ,{className:"h-3 w-3 text-amber-500"}),Z.length]}):null,Y?.length?H("span",{className:"flex items-center gap-1",children:[A(nJ,{className:"h-3 w-3 text-blue-500"}),Y.length]}):null,D?.length?H("span",{className:"flex items-center gap-1",children:[A(cJ,{className:"h-3 w-3 text-purple-500"}),D.length]}):null]}),O&&H("span",{className:"flex items-center gap-1",children:[A(oJ,{className:"h-3 w-3 text-emerald-500"}),(E?.provides?.length??0)+(E?.requires?.length??0)]})]})})}import{StatusChip as rJ}from"@contractspec/lib.design-system";import{HStack as iJ}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as GJ}from"@contractspec/lib.ui-kit-web/ui/utils";import{Boxes as aJ,ChevronDown as sJ}from"lucide-react";import{jsx as w,jsxs as OJ}from"react/jsx-runtime";function o({title:Q,count:J,icon:K,isCollapsed:X=!1,onToggle:Z,className:Y}){return OJ("button",{type:"button",onClick:Z,className:GJ("flex w-full items-center justify-between rounded-lg px-4 py-3","bg-muted/30 transition-colors hover:bg-muted/50","group cursor-pointer",Y),children:[OJ(iJ,{gap:"sm",className:"items-center",children:[w("div",{className:"text-muted-foreground transition-colors group-hover:text-foreground",children:K||w(aJ,{className:"h-5 w-5"})}),w("span",{className:"font-semibold text-lg capitalize transition-colors group-hover:text-primary",children:Q}),w(rJ,{tone:"neutral",label:`${J} ${J===1?"feature":"features"}`,size:"sm"})]}),w(sJ,{className:GJ("h-5 w-5 text-muted-foreground transition-transform duration-200",X&&"-rotate-90")})]})}import{Button as l,Input as tJ}from"@contractspec/lib.design-system";import{HStack as u,VStack as eJ}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as JK}from"@contractspec/lib.ui-kit-web/ui/utils";import{jsx as C,jsxs as M}from"react/jsx-runtime";function r({uniqueTags:Q,uniqueStabilities:J,filters:K,setSearch:X,toggleTag:Z,toggleStability:Y,clearFilters:D,hasActiveFilters:E,className:R}){return M(eJ,{gap:"md",className:JK("w-full",R),children:[M(u,{gap:"md",justify:"between",className:"w-full",children:[C(tJ,{placeholder:"Search features...",value:K.search,onChange:(z)=>X(z.target.value),className:"max-w-md","aria-label":"Search features"}),E&&C(l,{variant:"ghost",size:"sm",onClick:D,children:"Clear filters"})]}),J.length>0&&M(u,{gap:"xs",wrap:"wrap",children:[C("span",{className:"text-muted-foreground text-sm",children:"Stability:"}),J.map((z)=>C(l,{variant:K.stability.includes(z)?"default":"outline",size:"sm",onClick:()=>Y(z),"aria-pressed":K.stability.includes(z),children:z},z))]}),Q.length>0&&M(u,{gap:"xs",wrap:"wrap",children:[C("span",{className:"text-muted-foreground text-sm",children:"Tags:"}),Q.slice(0,10).map((z)=>M(l,{variant:K.tags.includes(z)?"default":"outline",size:"sm",onClick:()=>Z(z),"aria-pressed":K.tags.includes(z),children:["#",z]},z)),Q.length>10&&M("span",{className:"text-muted-foreground text-sm",children:["+",Q.length-10," more"]})]})]})}import{Button as KK,EmptyState as QK,PageHeaderResponsive as XK,StatusChip as YK}from"@contractspec/lib.design-system";import{HStack as DJ,VStack as k}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as i}from"@contractspec/lib.ui-kit-web/ui/utils";import{LayoutGrid as _K,List as $K,Star as ZK}from"lucide-react";import*as L from"react";import{jsx as P,jsxs as B}from"react/jsx-runtime";function zK(Q){let J={};for(let K of Q){let X=K.meta.domain||"Other";if(!J[X])J[X]=[];J[X].push(K)}return J}function EK(Q){let J=["stable","beta","experimental","deprecated","unknown"],K={};for(let Z of Q){let Y=Z.meta.stability||"unknown";if(!K[Y])K[Y]=[];K[Y].push(Z)}let X={};for(let Z of J)if(K[Z])X[Z]=K[Z];return X}function WK({onSelectFeature:Q,className:J,defaultViewMode:K="grid",groupBy:X="domain",showFeatured:Z=!0}){let{features:Y,getUniqueTags:D,getUniqueStabilities:E}=WJ(),{filters:R,setSearch:z,toggleTag:_,toggleStability:$,clearFilters:O,filteredFeatures:V,hasActiveFilters:F}=zJ(Y),RJ=D(),AJ=E(),[m,a]=L.useState(K),[s,VJ]=L.useState(new Set),b=L.useMemo(()=>V.filter((U)=>U.meta.stability==="stable"),[V]),h=L.useMemo(()=>Z?V.filter((U)=>U.meta.stability!=="stable"):V,[V,Z]),t=L.useMemo(()=>{if(X==="none")return null;if(X==="domain")return zK(h);return EK(h)},[h,X]),NJ=(U)=>{VJ((N)=>{let v=new Set(N);if(v.has(U))v.delete(U);else v.add(U);return v})},BJ=m==="grid"?"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3":"flex flex-col gap-3",j=(U)=>P("div",{className:BJ,children:U.map((N)=>P(n,{feature:N,onSelect:Q},N.meta.key))});return B(k,{gap:"lg",className:i("w-full p-6",J),children:[B("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[P(XK,{title:"Feature Discovery",subtitle:`Browse ${Y.length} available ContractSpec features`}),B(DJ,{gap:"xs",children:[P("button",{type:"button",onClick:()=>a("grid"),className:i("rounded-md p-2 transition-colors",m==="grid"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"),"aria-label":"Grid view",children:P(_K,{className:"h-4 w-4"})}),P("button",{type:"button",onClick:()=>a("list"),className:i("rounded-md p-2 transition-colors",m==="list"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"),"aria-label":"List view",children:P($K,{className:"h-4 w-4"})})]})]}),P(r,{uniqueTags:RJ,uniqueStabilities:AJ,filters:R,setSearch:z,toggleTag:_,toggleStability:$,clearFilters:O,hasActiveFilters:F}),V.length===0?P(QK,{title:"No features found",description:F?"Try adjusting your search or filters":"No features are registered yet",primaryAction:F?P(KK,{variant:"outline",onClick:O,children:"Clear filters"}):void 0}):B(k,{gap:"lg",children:[Z&&b.length>0&&B(k,{gap:"sm",children:[B(DJ,{gap:"sm",className:"items-center",children:[P(ZK,{className:"h-5 w-5 fill-amber-500 text-amber-500"}),P("span",{className:"font-semibold text-lg",children:"Featured"}),P(YK,{tone:"success",label:`${b.length} stable`,size:"sm"})]}),j(b)]}),t?P(k,{gap:"md",children:Object.entries(t).map(([U,N])=>B(k,{gap:"sm",children:[P(o,{title:U,count:N.length,isCollapsed:s.has(U),onToggle:()=>NJ(U)}),!s.has(U)&&j(N)]},U))}):j(h)]})]})}export{WK as FeatureDiscovery};
|
|
2
|
+
var LJ=Object.defineProperty;var HJ=(K)=>K;function MJ(K,J){this[K]=HJ.bind(null,J)}var OK=(K,J)=>{for(var Q in J)LJ(K,Q,{get:J[Q],enumerable:!0,configurable:!0,set:MJ.bind(J,Q)})};var DK=(K,J)=>()=>(K&&(J=K(K=0)),J);var e={meta:{key:"contractspec.docs",version:"1.0.0",title:"Documentation",description:"Comprehensive documentation system for ContractSpec",domain:"platform",owners:["@platform.docs"],tags:["documentation","guides","api-reference"],stability:"stable"},operations:[{key:"docs_search",version:"1.0.0"},{key:"docs.navigate",version:"1.0.0"}],events:[{key:"docs.page_viewed",version:"1.0.0"},{key:"docs.search_performed",version:"1.0.0"}],presentations:[{key:"docs.landing",version:"1.0.0"},{key:"docs.getting-started",version:"1.0.0"},{key:"docs.architecture",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.docs",version:"1.0.0"}],requires:[]}};var JJ={meta:{key:"contractspec.mcp",version:"1.0.0",title:"MCP Integration",description:"Model Context Protocol server for AI agent integration",domain:"platform",owners:["@platform.mcp"],tags:["mcp","ai-agents","tooling"],stability:"beta"},operations:[{key:"mcp.tool.register",version:"1.0.0"},{key:"mcp.resource.register",version:"1.0.0"},{key:"mcp.prompt.register",version:"1.0.0"}],events:[{key:"mcp.tool_invoked",version:"1.0.0"},{key:"mcp.resource_accessed",version:"1.0.0"}],presentations:[],capabilities:{provides:[{key:"contracts.mcp",version:"1.0.0"}],requires:[{key:"contracts.operations",version:"1.0.0"}]}};var KJ={meta:{key:"contractspec.presentations",version:"1.0.0",title:"Presentation Runtime",description:"Cross-platform rendering of contract-driven UI",domain:"platform",owners:["@platform.presentations"],tags:["presentations","ui","rendering","cross-platform"],stability:"beta"},operations:[{key:"presentation.render",version:"1.0.0"},{key:"presentation.transform",version:"1.0.0"}],events:[{key:"presentation.rendered",version:"1.0.0"},{key:"presentation.transformed",version:"1.0.0"}],presentations:[{key:"form.standard",version:"1.0.0"},{key:"list.standard",version:"1.0.0"},{key:"detail.standard",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.presentations",version:"1.0.0"}],requires:[]}};import{AppConfigFeature as IJ}from"@contractspec/lib.contracts-spec/app-config";import{FeatureRegistry as qJ}from"@contractspec/lib.contracts-spec/features";function TJ(){let K=new qJ;return K.register(e),K.register(JJ),K.register(KJ),K.register(IJ),K}var S=null;function QJ(){if(!S)S=TJ();return S}function qK(){S=null}import{cn as wJ}from"@contractspec/lib.ui-kit-web/ui/utils";import{Boxes as CJ,Database as x,FileText as y,Globe as XJ,Layout as I,MessageSquare as kJ,Settings as hJ,Shield as d,Workflow as p}from"lucide-react";import*as YJ from"react";import{jsx as FJ}from"react/jsx-runtime";var vJ={platform:hJ,documentation:y,docs:y,integration:p,api:XJ,security:d,data:x,messaging:kJ,ui:I,presentation:I},SJ={documentation:y,guides:y,"api-reference":XJ,presentations:I,ui:I,rendering:I,mcp:p,integration:p,security:d,auth:d,data:x,storage:x},_J={stable:"success",beta:"warning",experimental:"info",deprecated:"danger"},yJ={sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"};function f({domain:K,tags:J=[],stability:Q,icon:X,size:Z="md",className:Y}){let D=YJ.useMemo(()=>{if(X)return X;if(K){let z=vJ[K.toLowerCase()];if(z)return z}for(let z of J){let _=SJ[z.toLowerCase()];if(_)return _}return CJ},[K,J,X]),E=Q?_J[Q]||"primary":"primary",R={success:"text-emerald-600 dark:text-emerald-400",warning:"text-amber-600 dark:text-amber-400",info:"text-blue-600 dark:text-blue-400",danger:"text-red-600 dark:text-red-400",primary:"text-primary"};return FJ(D,{className:wJ(yJ[Z],R[E],Y)})}function g(K){if(!K)return"primary";return _J[K]||"primary"}import{useCallback as q,useMemo as $J,useState as mJ}from"react";var ZJ={search:"",tags:[],stability:[],domain:[]};function zJ(K){let[J,Q]=mJ(ZJ),X=q((_)=>{Q(($)=>({...$,search:_}))},[]),Z=q((_)=>{Q(($)=>({...$,tags:$.tags.includes(_)?$.tags.filter((O)=>O!==_):[...$.tags,_]}))},[]),Y=q((_)=>{Q(($)=>({...$,stability:$.stability.includes(_)?$.stability.filter((O)=>O!==_):[...$.stability,_]}))},[]),D=q((_)=>{Q(($)=>({...$,domain:$.domain.includes(_)?$.domain.filter((O)=>O!==_):[...$.domain,_]}))},[]),E=q(()=>Q(ZJ),[]),R=$J(()=>{return J.search.length>0||J.tags.length>0||J.stability.length>0||J.domain.length>0},[J]),z=$J(()=>{return K.filter((_)=>{if(J.search){let $=J.search.toLowerCase();if(!((_.meta.title??"").toLowerCase().includes($)||_.meta.description?.toLowerCase().includes($)||_.meta.key.toLowerCase().includes($)))return!1}if(J.tags.length>0){if(!J.tags.some((O)=>_.meta.tags?.includes(O)))return!1}if(J.stability.length>0){if(!J.stability.includes(_.meta.stability??"unknown"))return!1}if(J.domain.length>0){if(!J.domain.includes(_.meta.domain??"unknown"))return!1}return!0})},[K,J]);return{filters:J,setSearch:X,toggleTag:Z,toggleStability:Y,toggleDomain:D,clearFilters:E,filteredFeatures:z,hasActiveFilters:R}}import{useMemo as EJ}from"react";function WJ(){let K=EJ(()=>QJ(),[]);return EJ(()=>{let J=K.list();return{features:J,getFeature:(Q)=>K.get(Q),getByTag:(Q)=>K.listByTag(Q),getByOwner:(Q)=>K.listByOwner(Q),getUniqueTags:()=>K.getUniqueTags(),getUniqueDomains:()=>{let Q=new Set;for(let X of J)if(X.meta.domain)Q.add(X.meta.domain);return[...Q].sort()},getUniqueStabilities:()=>{let Q=new Set;for(let X of J)if(X.meta.stability)Q.add(X.meta.stability);return[...Q].sort()}}},[K])}import{StatusChip as UJ}from"@contractspec/lib.design-system";import{HStack as T}from"@contractspec/lib.ui-kit-web/ui/stack";import{ArrowRight as bJ,Layout as jJ,Radio as xJ,Shield as dJ,Tag as pJ,Users as fJ,Zap as gJ}from"lucide-react";import{jsx as W,jsxs as G,Fragment as cJ}from"react/jsx-runtime";function c({feature:K}){let{meta:J,operations:Q,events:X,presentations:Z,capabilities:Y}=K,D=Y?.provides?.length||Y?.requires?.length;return G(cJ,{children:[J.description&&W("p",{className:"text-muted-foreground text-sm leading-relaxed",children:J.description}),G(T,{gap:"md",className:"py-2",children:[Q?.length?G("div",{className:"flex items-center gap-1.5 text-sm",children:[W(gJ,{className:"h-4 w-4 text-amber-500"}),W("span",{className:"font-medium",children:Q.length}),W("span",{className:"text-muted-foreground",children:"ops"})]}):null,X?.length?G("div",{className:"flex items-center gap-1.5 text-sm",children:[W(xJ,{className:"h-4 w-4 text-blue-500"}),W("span",{className:"font-medium",children:X.length}),W("span",{className:"text-muted-foreground",children:"events"})]}):null,Z?.length?G("div",{className:"flex items-center gap-1.5 text-sm",children:[W(jJ,{className:"h-4 w-4 text-purple-500"}),W("span",{className:"font-medium",children:Z.length}),W("span",{className:"text-muted-foreground",children:"views"})]}):null]}),D&&G("div",{className:"space-y-1.5 border-border/50 border-t pt-1",children:[Y?.provides?.length?G(T,{gap:"xs",wrap:"wrap",className:"items-start",children:[W(dJ,{className:"mt-0.5 h-3.5 w-3.5 text-emerald-500"}),W("span",{className:"text-muted-foreground text-xs",children:"Provides:"}),Y.provides.slice(0,2).map((E)=>W(UJ,{tone:"success",label:E.key,size:"sm"},E.key)),Y.provides.length>2&&G("span",{className:"text-muted-foreground text-xs",children:["+",Y.provides.length-2]})]}):null,Y?.requires?.length?G(T,{gap:"xs",wrap:"wrap",className:"items-start",children:[W(bJ,{className:"mt-0.5 h-3.5 w-3.5 text-blue-500"}),W("span",{className:"text-muted-foreground text-xs",children:"Requires:"}),Y.requires.slice(0,2).map((E)=>W(UJ,{tone:"info",label:E.key,size:"sm"},E.key)),Y.requires.length>2&&G("span",{className:"text-muted-foreground text-xs",children:["+",Y.requires.length-2]})]}):null]}),J.tags?.length?G(T,{gap:"xs",wrap:"wrap",className:"items-center border-border/50 border-t pt-1",children:[W(pJ,{className:"h-3.5 w-3.5 text-muted-foreground"}),J.tags.slice(0,4).map((E)=>G("span",{className:"rounded bg-muted px-1.5 py-0.5 text-muted-foreground text-xs",children:["#",E]},E)),J.tags.length>4&&G("span",{className:"text-muted-foreground text-xs",children:["+",J.tags.length-4]})]}):null,J.owners?.length?G(T,{gap:"xs",className:"items-center text-muted-foreground text-xs",children:[W(fJ,{className:"h-3.5 w-3.5"}),W("span",{children:J.owners.join(", ")})]}):null]})}import{EntityCard as nJ,StatusChip as oJ}from"@contractspec/lib.design-system";import{HStack as PJ}from"@contractspec/lib.ui-kit-web/ui/stack";import{Layout as lJ,Radio as uJ,Shield as rJ,Zap as iJ}from"lucide-react";import{jsx as A,jsxs as H}from"react/jsx-runtime";var aJ={stable:"success",beta:"warning",experimental:"info",deprecated:"danger"};function n({feature:K,onSelect:J,className:Q}){let{meta:X,operations:Z,events:Y,presentations:D,capabilities:E}=K,R=aJ[X.stability]??"neutral",z=g(X.stability),_=X.stability==="stable"?"strong":"default",$=J?()=>J(K):void 0,O=E?.provides?.length||E?.requires?.length;return A(nJ,{cardTitle:X.title,cardSubtitle:X.key,className:Q,onClick:$,emphasis:_,icon:A(f,{domain:X.domain,tags:X.tags,stability:X.stability,size:"md"}),iconTone:z,chips:A(oJ,{tone:R,label:X.stability??"unknown",size:"sm"}),meta:X.description?A("span",{className:"line-clamp-2 text-muted-foreground text-sm",children:X.description}):void 0,preview:A(c,{feature:K}),footer:H(PJ,{gap:"md",className:"w-full justify-between text-muted-foreground text-xs",children:[H(PJ,{gap:"sm",children:[Z?.length?H("span",{className:"flex items-center gap-1",children:[A(iJ,{className:"h-3 w-3 text-amber-500"}),Z.length]}):null,Y?.length?H("span",{className:"flex items-center gap-1",children:[A(uJ,{className:"h-3 w-3 text-blue-500"}),Y.length]}):null,D?.length?H("span",{className:"flex items-center gap-1",children:[A(lJ,{className:"h-3 w-3 text-purple-500"}),D.length]}):null]}),O&&H("span",{className:"flex items-center gap-1",children:[A(rJ,{className:"h-3 w-3 text-emerald-500"}),(E?.provides?.length??0)+(E?.requires?.length??0)]})]})})}import{StatusChip as sJ}from"@contractspec/lib.design-system";import{HStack as tJ}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as GJ}from"@contractspec/lib.ui-kit-web/ui/utils";import{Boxes as eJ,ChevronDown as JK}from"lucide-react";import{jsx as w,jsxs as OJ}from"react/jsx-runtime";function o({title:K,count:J,icon:Q,isCollapsed:X=!1,onToggle:Z,className:Y}){return OJ("button",{type:"button",onClick:Z,className:GJ("flex w-full items-center justify-between rounded-lg px-4 py-3","bg-muted/30 transition-colors hover:bg-muted/50","group cursor-pointer",Y),children:[OJ(tJ,{gap:"sm",className:"items-center",children:[w("div",{className:"text-muted-foreground transition-colors group-hover:text-foreground",children:Q||w(eJ,{className:"h-5 w-5"})}),w("span",{className:"font-semibold text-lg capitalize transition-colors group-hover:text-primary",children:K}),w(sJ,{tone:"neutral",label:`${J} ${J===1?"feature":"features"}`,size:"sm"})]}),w(JK,{className:GJ("h-5 w-5 text-muted-foreground transition-transform duration-200",X&&"-rotate-90")})]})}import{Button as l,Input as KK}from"@contractspec/lib.design-system";import{HStack as u,VStack as QK}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as XK}from"@contractspec/lib.ui-kit-web/ui/utils";import{jsx as C,jsxs as M}from"react/jsx-runtime";function r({uniqueTags:K,uniqueStabilities:J,filters:Q,setSearch:X,toggleTag:Z,toggleStability:Y,clearFilters:D,hasActiveFilters:E,className:R}){return M(QK,{gap:"md",className:XK("w-full",R),children:[M(u,{gap:"md",justify:"between",className:"w-full",children:[C(KK,{placeholder:"Search features...",value:Q.search,onChange:(z)=>X(z.target.value),className:"max-w-md","aria-label":"Search features"}),E&&C(l,{variant:"ghost",size:"sm",onClick:D,children:"Clear filters"})]}),J.length>0&&M(u,{gap:"xs",wrap:"wrap",children:[C("span",{className:"text-muted-foreground text-sm",children:"Stability:"}),J.map((z)=>C(l,{variant:Q.stability.includes(z)?"default":"outline",size:"sm",onClick:()=>Y(z),"aria-pressed":Q.stability.includes(z),children:z},z))]}),K.length>0&&M(u,{gap:"xs",wrap:"wrap",children:[C("span",{className:"text-muted-foreground text-sm",children:"Tags:"}),K.slice(0,10).map((z)=>M(l,{variant:Q.tags.includes(z)?"default":"outline",size:"sm",onClick:()=>Z(z),"aria-pressed":Q.tags.includes(z),children:["#",z]},z)),K.length>10&&M("span",{className:"text-muted-foreground text-sm",children:["+",K.length-10," more"]})]})]})}import{Button as YK,EmptyState as _K,PageHeaderResponsive as $K,StatusChip as ZK}from"@contractspec/lib.design-system";import{HStack as DJ,VStack as k}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as i}from"@contractspec/lib.ui-kit-web/ui/utils";import{LayoutGrid as zK,List as EK,Star as WK}from"lucide-react";import*as L from"react";import{jsx as P,jsxs as B}from"react/jsx-runtime";function UK(K){let J={};for(let Q of K){let X=Q.meta.domain||"Other";if(!J[X])J[X]=[];J[X].push(Q)}return J}function PK(K){let J=["stable","beta","experimental","deprecated","unknown"],Q={};for(let Z of K){let Y=Z.meta.stability||"unknown";if(!Q[Y])Q[Y]=[];Q[Y].push(Z)}let X={};for(let Z of J)if(Q[Z])X[Z]=Q[Z];return X}function GK({onSelectFeature:K,className:J,defaultViewMode:Q="grid",groupBy:X="domain",showFeatured:Z=!0}){let{features:Y,getUniqueTags:D,getUniqueStabilities:E}=WJ(),{filters:R,setSearch:z,toggleTag:_,toggleStability:$,clearFilters:O,filteredFeatures:V,hasActiveFilters:F}=zJ(Y),RJ=D(),AJ=E(),[m,a]=L.useState(Q),[s,VJ]=L.useState(new Set),b=L.useMemo(()=>V.filter((U)=>U.meta.stability==="stable"),[V]),h=L.useMemo(()=>Z?V.filter((U)=>U.meta.stability!=="stable"):V,[V,Z]),t=L.useMemo(()=>{if(X==="none")return null;if(X==="domain")return UK(h);return PK(h)},[h,X]),NJ=(U)=>{VJ((N)=>{let v=new Set(N);if(v.has(U))v.delete(U);else v.add(U);return v})},BJ=m==="grid"?"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3":"flex flex-col gap-3",j=(U)=>P("div",{className:BJ,children:U.map((N)=>P(n,{feature:N,onSelect:K},N.meta.key))});return B(k,{gap:"lg",className:i("w-full p-6",J),children:[B("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[P($K,{title:"Feature Discovery",subtitle:`Browse ${Y.length} available ContractSpec features`}),B(DJ,{gap:"xs",children:[P("button",{type:"button",onClick:()=>a("grid"),className:i("rounded-md p-2 transition-colors",m==="grid"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"),"aria-label":"Grid view",children:P(zK,{className:"h-4 w-4"})}),P("button",{type:"button",onClick:()=>a("list"),className:i("rounded-md p-2 transition-colors",m==="list"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"),"aria-label":"List view",children:P(EK,{className:"h-4 w-4"})})]})]}),P(r,{uniqueTags:RJ,uniqueStabilities:AJ,filters:R,setSearch:z,toggleTag:_,toggleStability:$,clearFilters:O,hasActiveFilters:F}),V.length===0?P(_K,{title:"No features found",description:F?"Try adjusting your search or filters":"No features are registered yet",primaryAction:F?P(YK,{variant:"outline",onClick:O,children:"Clear filters"}):void 0}):B(k,{gap:"lg",children:[Z&&b.length>0&&B(k,{gap:"sm",children:[B(DJ,{gap:"sm",className:"items-center",children:[P(WK,{className:"h-5 w-5 fill-amber-500 text-amber-500"}),P("span",{className:"font-semibold text-lg",children:"Featured"}),P(ZK,{tone:"success",label:`${b.length} stable`,size:"sm"})]}),j(b)]}),t?P(k,{gap:"md",children:Object.entries(t).map(([U,N])=>B(k,{gap:"sm",children:[P(o,{title:U,count:N.length,isCollapsed:s.has(U),onToggle:()=>NJ(U)}),!s.has(U)&&j(N)]},U))}):j(h)]})]})}export{GK as FeatureDiscovery};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{EventRegistry as
|
|
2
|
+
var j=Object.defineProperty;var I=(l)=>l;function u(l,m){this[l]=I.bind(null,m)}var Xl=(l,m)=>{for(var d in m)j(l,d,{get:m[d],enumerable:!0,configurable:!0,set:u.bind(m,d)})};var Yl=(l,m)=>()=>(l&&(m=l(l=0)),m);import{EventRegistry as f,OperationSpecRegistry as C}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as P}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as k,ContractReferenceQuery as c,DocsGenerateCommand as v,DocsGeneratedEvent as g,DocsIndexDataView as a,DocsIndexQuery as o,DocsLayoutPresentation as y,DocsPublishCommand as i,DocsPublishedEvent as n,DocsReferencePagePresentation as t,DocsSearchForm as s,ExampleCatalogDataView as r}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as e}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as ll}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as ml,serializeEventSpec as dl,serializeFormSpec as Sl,serializeOperationSpec as $l,serializePresentationSpec as hl}from"@contractspec/lib.contracts-spec/serialization";var S=null;function T(){let l=new C;return l.register(o).register(c).register(v).register(i),l}function q(){if(!S)S=T();return S}function B(l,m){return q().get(l,m)}var $=null;function G(){let l=new f;return l.register(g).register(n),l}function H(){if(!$)$=G();return $}function J(l,m){return H().get(l,m)}var h=null;function K(){let l=new ll;return l.register(y).register(t),l}function V(){if(!h)h=K();return h}function W(l,m){return V().get(l,m)}var D=null;function X(){let l=new P;return l.register(a).register(k).register(r),l}function Y(){if(!D)D=X();return D}function Z(l,m){return Y().get(l,m)}var E=null;function _(){let l=new e;return l.register(s),l}function b(){if(!E)E=_();return E}function M(l,m){return b().get(l)}function Dl(l,m){let d=B(l,m);return $l(d)??void 0}function Q(l,m){let d=J(l,m);return dl(d)??void 0}function El(l,m){let d=W(l,m);return hl(d)??void 0}function Nl(l,m){let d=Z(l,m);return ml(d)??void 0}function Ql(l,m){let d=M(l,m);return Sl(d)??void 0}function R(){S=null}function U(){$=null}function x(){h=null}function A(){D=null}function p(){E=null}function wl(){R(),U(),x(),A(),p()}var w={meta:{key:"contractspec.docs",version:"1.0.0",title:"Documentation",description:"Comprehensive documentation system for ContractSpec",domain:"platform",owners:["@platform.docs"],tags:["documentation","guides","api-reference"],stability:"stable"},operations:[{key:"docs_search",version:"1.0.0"},{key:"docs.navigate",version:"1.0.0"}],events:[{key:"docs.page_viewed",version:"1.0.0"},{key:"docs.search_performed",version:"1.0.0"}],presentations:[{key:"docs.landing",version:"1.0.0"},{key:"docs.getting-started",version:"1.0.0"},{key:"docs.architecture",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.docs",version:"1.0.0"}],requires:[]}};import{ContractReferenceQuery as zl,DocSummaryModel as Ll,DocsIndexInput as Ol,DocsIndexOutput as Tl,DocsIndexQuery as ql,DocsIndexQuery as Bl}from"@contractspec/lib.contracts-spec/docs";var z={meta:{key:"contractspec.mcp",version:"1.0.0",title:"MCP Integration",description:"Model Context Protocol server for AI agent integration",domain:"platform",owners:["@platform.mcp"],tags:["mcp","ai-agents","tooling"],stability:"beta"},operations:[{key:"mcp.tool.register",version:"1.0.0"},{key:"mcp.resource.register",version:"1.0.0"},{key:"mcp.prompt.register",version:"1.0.0"}],events:[{key:"mcp.tool_invoked",version:"1.0.0"},{key:"mcp.resource_accessed",version:"1.0.0"}],presentations:[],capabilities:{provides:[{key:"contracts.mcp",version:"1.0.0"}],requires:[{key:"contracts.operations",version:"1.0.0"}]}};var L={meta:{key:"contractspec.presentations",version:"1.0.0",title:"Presentation Runtime",description:"Cross-platform rendering of contract-driven UI",domain:"platform",owners:["@platform.presentations"],tags:["presentations","ui","rendering","cross-platform"],stability:"beta"},operations:[{key:"presentation.render",version:"1.0.0"},{key:"presentation.transform",version:"1.0.0"}],events:[{key:"presentation.rendered",version:"1.0.0"},{key:"presentation.transformed",version:"1.0.0"}],presentations:[{key:"form.standard",version:"1.0.0"},{key:"list.standard",version:"1.0.0"},{key:"detail.standard",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.presentations",version:"1.0.0"}],requires:[]}};import{AppConfigFeature as Gl}from"@contractspec/lib.contracts-spec/app-config";import{FeatureRegistry as Hl}from"@contractspec/lib.contracts-spec/features";function F(){let l=new Hl;return l.register(w),l.register(z),l.register(L),l.register(Gl),l}var N=null;function Jl(){if(!N)N=F();return N}function Kl(){N=null}import{FeatureRegistry as il}from"@contractspec/lib.contracts-spec/features";import{EntityCard as Vl}from"@contractspec/lib.design-system";import{Radio as Wl}from"lucide-react";import{jsx as O}from"react/jsx-runtime";function $m({feature:l}){if(!l.events?.length)return null;return O("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:l.events.map((m)=>{let d=Q(m.key,m.version);return O(Vl,{cardTitle:m.key,cardSubtitle:`v${m.version}`,footer:d?.meta.description,icon:O(Wl,{className:"h-4 w-4"}),href:`/features/${l.meta.key}/events/${m.key}`},m.key)})})}export{$m as FeatureEventsList};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{EventRegistry as
|
|
2
|
+
var u=Object.defineProperty;var I=(l)=>l;function j(l,m){this[l]=I.bind(null,m)}var Wl=(l,m)=>{for(var d in m)u(l,d,{get:m[d],enumerable:!0,configurable:!0,set:j.bind(m,d)})};var Xl=(l,m)=>()=>(l&&(m=l(l=0)),m);import{EventRegistry as C,OperationSpecRegistry as f}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as P}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as k,ContractReferenceQuery as v,DocsGenerateCommand as c,DocsGeneratedEvent as g,DocsIndexDataView as a,DocsIndexQuery as o,DocsLayoutPresentation as y,DocsPublishCommand as i,DocsPublishedEvent as n,DocsReferencePagePresentation as t,DocsSearchForm as s,ExampleCatalogDataView as r}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as e}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as ll}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as ml,serializeEventSpec as dl,serializeFormSpec as Sl,serializeOperationSpec as $l,serializePresentationSpec as hl}from"@contractspec/lib.contracts-spec/serialization";var S=null;function q(){let l=new f;return l.register(o).register(v).register(c).register(i),l}function B(){if(!S)S=q();return S}function E(l,m){return B().get(l,m)}var $=null;function F(){let l=new C;return l.register(g).register(n),l}function G(){if(!$)$=F();return $}function H(l,m){return G().get(l,m)}var h=null;function J(){let l=new ll;return l.register(y).register(t),l}function K(){if(!h)h=J();return h}function V(l,m){return K().get(l,m)}var D=null;function W(){let l=new P;return l.register(a).register(k).register(r),l}function X(){if(!D)D=W();return D}function Y(l,m){return X().get(l,m)}var N=null;function Z(){let l=new e;return l.register(s),l}function _(){if(!N)N=Z();return N}function b(l,m){return _().get(l)}function Dl(l,m){let d=E(l,m);return $l(d)??void 0}function Nl(l,m){let d=H(l,m);return dl(d)??void 0}function Ql(l,m){let d=V(l,m);return hl(d)??void 0}function wl(l,m){let d=Y(l,m);return ml(d)??void 0}function w(l,m){let d=b(l,m);return Sl(d)??void 0}function M(){S=null}function U(){$=null}function p(){h=null}function x(){D=null}function A(){N=null}function zl(){M(),U(),p(),x(),A()}var z={meta:{key:"contractspec.docs",version:"1.0.0",title:"Documentation",description:"Comprehensive documentation system for ContractSpec",domain:"platform",owners:["@platform.docs"],tags:["documentation","guides","api-reference"],stability:"stable"},operations:[{key:"docs_search",version:"1.0.0"},{key:"docs.navigate",version:"1.0.0"}],events:[{key:"docs.page_viewed",version:"1.0.0"},{key:"docs.search_performed",version:"1.0.0"}],presentations:[{key:"docs.landing",version:"1.0.0"},{key:"docs.getting-started",version:"1.0.0"},{key:"docs.architecture",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.docs",version:"1.0.0"}],requires:[]}};import{ContractReferenceQuery as Ll,DocSummaryModel as Ol,DocsIndexInput as Tl,DocsIndexOutput as ql,DocsIndexQuery as Bl,DocsIndexQuery as El}from"@contractspec/lib.contracts-spec/docs";var L={meta:{key:"contractspec.mcp",version:"1.0.0",title:"MCP Integration",description:"Model Context Protocol server for AI agent integration",domain:"platform",owners:["@platform.mcp"],tags:["mcp","ai-agents","tooling"],stability:"beta"},operations:[{key:"mcp.tool.register",version:"1.0.0"},{key:"mcp.resource.register",version:"1.0.0"},{key:"mcp.prompt.register",version:"1.0.0"}],events:[{key:"mcp.tool_invoked",version:"1.0.0"},{key:"mcp.resource_accessed",version:"1.0.0"}],presentations:[],capabilities:{provides:[{key:"contracts.mcp",version:"1.0.0"}],requires:[{key:"contracts.operations",version:"1.0.0"}]}};var O={meta:{key:"contractspec.presentations",version:"1.0.0",title:"Presentation Runtime",description:"Cross-platform rendering of contract-driven UI",domain:"platform",owners:["@platform.presentations"],tags:["presentations","ui","rendering","cross-platform"],stability:"beta"},operations:[{key:"presentation.render",version:"1.0.0"},{key:"presentation.transform",version:"1.0.0"}],events:[{key:"presentation.rendered",version:"1.0.0"},{key:"presentation.transformed",version:"1.0.0"}],presentations:[{key:"form.standard",version:"1.0.0"},{key:"list.standard",version:"1.0.0"},{key:"detail.standard",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.presentations",version:"1.0.0"}],requires:[]}};import{AppConfigFeature as Fl}from"@contractspec/lib.contracts-spec/app-config";import{FeatureRegistry as Gl}from"@contractspec/lib.contracts-spec/features";function R(){let l=new Gl;return l.register(z),l.register(L),l.register(O),l.register(Fl),l}var Q=null;function Hl(){if(!Q)Q=R();return Q}function Jl(){Q=null}import{FeatureRegistry as il}from"@contractspec/lib.contracts-spec/features";import{EntityCard as Kl}from"@contractspec/lib.design-system";import{FormInput as Vl}from"lucide-react";import{jsx as T}from"react/jsx-runtime";function $m({feature:l}){if(!l.forms?.length)return null;return T("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:l.forms.map((m)=>{let d=w(m.key,m.version);return T(Kl,{cardTitle:m.key,cardSubtitle:m.version?`v${m.version}`:void 0,footer:d?.meta.description,icon:T(Vl,{className:"h-4 w-4"}),href:`/features/${l.meta.key}/forms/${m.key}`},m.key)})})}export{$m as FeatureFormsList};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{EventRegistry as
|
|
2
|
+
var I=Object.defineProperty;var J=(b)=>b;function K(b,h){this[b]=J.bind(null,h)}var wb=(b,h)=>{for(var q in h)I(b,q,{get:h[q],enumerable:!0,configurable:!0,set:K.bind(h,q)})};var Ab=(b,h)=>()=>(b&&(h=b(b=0)),h);import{EventRegistry as L,OperationSpecRegistry as M}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as N}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as Q,ContractReferenceQuery as T,DocsGenerateCommand as U,DocsGeneratedEvent as V,DocsIndexDataView as W,DocsIndexQuery as X,DocsLayoutPresentation as Y,DocsPublishCommand as _,DocsPublishedEvent as $,DocsReferencePagePresentation as m,DocsSearchForm as z,ExampleCatalogDataView as E}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as O}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as P}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as R,serializeEventSpec as Z,serializeFormSpec as d,serializeOperationSpec as l,serializePresentationSpec as C}from"@contractspec/lib.contracts-spec/serialization";var w=null;function S(){let b=new M;return b.register(X).register(T).register(U).register(_),b}function j(){if(!w)w=S();return w}function x(b,h){return j().get(b,h)}var A=null;function f(){let b=new L;return b.register(V).register($),b}function u(){if(!A)A=f();return A}function c(b,h){return u().get(b,h)}var B=null;function g(){let b=new P;return b.register(Y).register(m),b}function a(){if(!B)B=g();return B}function v(b,h){return a().get(b,h)}var D=null;function k(){let b=new N;return b.register(W).register(Q).register(E),b}function p(){if(!D)D=k();return D}function n(b,h){return p().get(b,h)}var F=null;function t(){let b=new O;return b.register(z),b}function y(){if(!F)F=t();return F}function o(b,h){return y().get(b)}function H(b,h){let q=x(b,h);return l(q)??void 0}function Kb(b,h){let q=c(b,h);return Z(q)??void 0}function Lb(b,h){let q=v(b,h);return C(q)??void 0}function Mb(b,h){let q=n(b,h);return R(q)??void 0}function Nb(b,h){let q=o(b,h);return d(q)??void 0}function i(){w=null}function s(){A=null}function r(){B=null}function e(){D=null}function bb(){F=null}function Qb(){i(),s(),r(),e(),bb()}import{EntityCard as hb}from"@contractspec/lib.design-system";import{Zap as qb}from"lucide-react";import{jsx as G}from"react/jsx-runtime";function Xb({feature:b}){if(!b.operations?.length)return null;return G("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:b.operations.map((h)=>{let q=H(h.key,h.version);return G(hb,{cardTitle:h.key,cardSubtitle:`v${h.version}`,footer:q?.meta.description,icon:G(qb,{className:"h-4 w-4"}),href:`/features/${b.meta.key}/operations/${h.key}`},h.key)})})}export{Xb as FeatureOperationsList};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{EventRegistry as
|
|
2
|
+
var C=Object.defineProperty;var d=(D)=>D;function P(D,Q){this[D]=d.bind(null,Q)}var UD=(D,Q)=>{for(var O in Q)C(D,O,{get:Q[O],enumerable:!0,configurable:!0,set:P.bind(Q,O)})};var xD=(D,Q)=>()=>(D&&(Q=D(D=0)),Q);import{EventRegistry as k,OperationSpecRegistry as f}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as u}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as v,ContractReferenceQuery as g,DocsGenerateCommand as p,DocsGeneratedEvent as y,DocsIndexDataView as c,DocsIndexQuery as a,DocsLayoutPresentation as o,DocsPublishCommand as i,DocsPublishedEvent as n,DocsReferencePagePresentation as t,DocsSearchForm as s,ExampleCatalogDataView as r}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as e}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as DD}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as QD,serializeEventSpec as OD,serializeFormSpec as qD,serializeOperationSpec as wD,serializePresentationSpec as BD}from"@contractspec/lib.contracts-spec/serialization";var q=null;function W(){let D=new f;return D.register(a).register(g).register(p).register(i),D}function X(){if(!q)q=W();return q}function Y(D,Q){return X().get(D,Q)}var w=null;function Z(){let D=new k;return D.register(y).register(n),D}function _(){if(!w)w=Z();return w}function $(D,Q){return _().get(D,Q)}var B=null;function h(){let D=new DD;return D.register(o).register(t),D}function z(){if(!B)B=h();return B}function E(D,Q){return z().get(D,Q)}var G=null;function U(){let D=new u;return D.register(c).register(v).register(r),D}function x(){if(!G)G=U();return G}function A(D,Q){return x().get(D,Q)}var H=null;function R(){let D=new e;return D.register(s),D}function S(){if(!H)H=R();return H}function b(D,Q){return S().get(D)}function GD(D,Q){let O=Y(D,Q);return wD(O)??void 0}function HD(D,Q){let O=$(D,Q);return OD(O)??void 0}function K(D,Q){let O=E(D,Q);return BD(O)??void 0}function JD(D,Q){let O=A(D,Q);return QD(O)??void 0}function KD(D,Q){let O=b(D,Q);return qD(O)??void 0}function j(){q=null}function M(){w=null}function m(){B=null}function I(){G=null}function F(){H=null}function LD(){j(),M(),m(),I(),F()}var L={meta:{key:"contractspec.docs",version:"1.0.0",title:"Documentation",description:"Comprehensive documentation system for ContractSpec",domain:"platform",owners:["@platform.docs"],tags:["documentation","guides","api-reference"],stability:"stable"},operations:[{key:"docs_search",version:"1.0.0"},{key:"docs.navigate",version:"1.0.0"}],events:[{key:"docs.page_viewed",version:"1.0.0"},{key:"docs.search_performed",version:"1.0.0"}],presentations:[{key:"docs.landing",version:"1.0.0"},{key:"docs.getting-started",version:"1.0.0"},{key:"docs.architecture",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.docs",version:"1.0.0"}],requires:[]}};import{ContractReferenceQuery as ND,DocSummaryModel as TD,DocsIndexInput as VD,DocsIndexOutput as WD,DocsIndexQuery as XD,DocsIndexQuery as YD}from"@contractspec/lib.contracts-spec/docs";var N={meta:{key:"contractspec.mcp",version:"1.0.0",title:"MCP Integration",description:"Model Context Protocol server for AI agent integration",domain:"platform",owners:["@platform.mcp"],tags:["mcp","ai-agents","tooling"],stability:"beta"},operations:[{key:"mcp.tool.register",version:"1.0.0"},{key:"mcp.resource.register",version:"1.0.0"},{key:"mcp.prompt.register",version:"1.0.0"}],events:[{key:"mcp.tool_invoked",version:"1.0.0"},{key:"mcp.resource_accessed",version:"1.0.0"}],presentations:[],capabilities:{provides:[{key:"contracts.mcp",version:"1.0.0"}],requires:[{key:"contracts.operations",version:"1.0.0"}]}};var T={meta:{key:"contractspec.presentations",version:"1.0.0",title:"Presentation Runtime",description:"Cross-platform rendering of contract-driven UI",domain:"platform",owners:["@platform.presentations"],tags:["presentations","ui","rendering","cross-platform"],stability:"beta"},operations:[{key:"presentation.render",version:"1.0.0"},{key:"presentation.transform",version:"1.0.0"}],events:[{key:"presentation.rendered",version:"1.0.0"},{key:"presentation.transformed",version:"1.0.0"}],presentations:[{key:"form.standard",version:"1.0.0"},{key:"list.standard",version:"1.0.0"},{key:"detail.standard",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.presentations",version:"1.0.0"}],requires:[]}};import{AppConfigFeature as ZD}from"@contractspec/lib.contracts-spec/app-config";import{FeatureRegistry as _D}from"@contractspec/lib.contracts-spec/features";function l(){let D=new _D;return D.register(L),D.register(N),D.register(T),D.register(ZD),D}var J=null;function $D(){if(!J)J=l();return J}function hD(){J=null}import{FeatureRegistry as iD}from"@contractspec/lib.contracts-spec/features";import{EntityCard as zD}from"@contractspec/lib.design-system";import{Layout as ED}from"lucide-react";import{jsx as V}from"react/jsx-runtime";function wQ({feature:D}){if(!D.presentations?.length)return null;return V("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:D.presentations.map((Q)=>{let O=K(Q.key,Q.version);return V(zD,{cardTitle:Q.key,cardSubtitle:`v${Q.version}`,footer:O?.meta.description,icon:V(ED,{className:"h-4 w-4"}),href:`/features/${D.meta.key}/presentations/${Q.key}`},Q.key)})})}export{wQ as FeaturePresentationsList};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{EventRegistry as Z$,OperationSpecRegistry as U$}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as O$}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as V$,ContractReferenceQuery as N$,DocsGenerateCommand as G$,DocsGeneratedEvent as R$,DocsIndexDataView as A$,DocsIndexQuery as L$,DocsLayoutPresentation as M$,DocsPublishCommand as B$,DocsPublishedEvent as I$,DocsReferencePagePresentation as H$,DocsSearchForm as T$,ExampleCatalogDataView as m$}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as w$}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as q$}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as h$,serializeEventSpec as F$,serializeFormSpec as C$,serializeOperationSpec as k$,serializePresentationSpec as v$}from"@contractspec/lib.contracts-spec/serialization";var y=null;function T4(){let D=new U$;return D.register(L$).register(N$).register(G$).register(B$),D}function m4(){if(!y)y=T4();return y}function w4(D,$){return m4().get(D,$)}var b=null;function q4(){let D=new Z$;return D.register(R$).register(I$),D}function h4(){if(!b)b=q4();return b}function F4(D,$){return h4().get(D,$)}var f=null;function C4(){let D=new q$;return D.register(M$).register(H$),D}function k4(){if(!f)f=C4();return f}function v4(D,$){return k4().get(D,$)}var p=null;function d4(){let D=new O$;return D.register(A$).register(V$).register(m$),D}function S4(){if(!p)p=d4();return p}function y4(D,$){return S4().get(D,$)}var x=null;function b4(){let D=new w$;return D.register(T$),D}function f4(){if(!x)x=b4();return x}function p4(D,$){return f4().get(D)}function r(D,$){let E=w4(D,$);return k$(E)??void 0}function i(D,$){let E=F4(D,$);return F$(E)??void 0}function a(D,$){let E=v4(D,$);return v$(E)??void 0}function t(D,$){let E=y4(D,$);return h$(E)??void 0}function s(D,$){let E=p4(D,$);return C$(E)??void 0}function x4(){y=null}function j4(){b=null}function g4(){f=null}function c4(){p=null}function o4(){x=null}function d$(){x4(),j4(),g4(),c4(),o4()}var e={meta:{key:"contractspec.docs",version:"1.0.0",title:"Documentation",description:"Comprehensive documentation system for ContractSpec",domain:"platform",owners:["@platform.docs"],tags:["documentation","guides","api-reference"],stability:"stable"},operations:[{key:"docs_search",version:"1.0.0"},{key:"docs.navigate",version:"1.0.0"}],events:[{key:"docs.page_viewed",version:"1.0.0"},{key:"docs.search_performed",version:"1.0.0"}],presentations:[{key:"docs.landing",version:"1.0.0"},{key:"docs.getting-started",version:"1.0.0"},{key:"docs.architecture",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.docs",version:"1.0.0"}],requires:[]}};import{ContractReferenceQuery as S$,DocSummaryModel as y$,DocsIndexInput as b$,DocsIndexOutput as f$,DocsIndexQuery as p$,DocsIndexQuery as x$}from"@contractspec/lib.contracts-spec/docs";var $4={meta:{key:"contractspec.mcp",version:"1.0.0",title:"MCP Integration",description:"Model Context Protocol server for AI agent integration",domain:"platform",owners:["@platform.mcp"],tags:["mcp","ai-agents","tooling"],stability:"beta"},operations:[{key:"mcp.tool.register",version:"1.0.0"},{key:"mcp.resource.register",version:"1.0.0"},{key:"mcp.prompt.register",version:"1.0.0"}],events:[{key:"mcp.tool_invoked",version:"1.0.0"},{key:"mcp.resource_accessed",version:"1.0.0"}],presentations:[],capabilities:{provides:[{key:"contracts.mcp",version:"1.0.0"}],requires:[{key:"contracts.operations",version:"1.0.0"}]}};var D4={meta:{key:"contractspec.presentations",version:"1.0.0",title:"Presentation Runtime",description:"Cross-platform rendering of contract-driven UI",domain:"platform",owners:["@platform.presentations"],tags:["presentations","ui","rendering","cross-platform"],stability:"beta"},operations:[{key:"presentation.render",version:"1.0.0"},{key:"presentation.transform",version:"1.0.0"}],events:[{key:"presentation.rendered",version:"1.0.0"},{key:"presentation.transformed",version:"1.0.0"}],presentations:[{key:"form.standard",version:"1.0.0"},{key:"list.standard",version:"1.0.0"},{key:"detail.standard",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.presentations",version:"1.0.0"}],requires:[]}};import{AppConfigFeature as j$}from"@contractspec/lib.contracts-spec/app-config";import{FeatureRegistry as g$}from"@contractspec/lib.contracts-spec/features";function n4(){let D=new g$;return D.register(e),D.register($4),D.register(D4),D.register(j$),D}var j=null;function E4(){if(!j)j=n4();return j}function c$(){j=null}import{FeatureRegistry as G1}from"@contractspec/lib.contracts-spec/features";import{cn as o$}from"@contractspec/lib.ui-kit-web/ui/utils";import{Boxes as n$,Database as Q4,FileText as g,Globe as l4,Layout as w,MessageSquare as l$,Settings as u$,Shield as J4,Workflow as K4}from"lucide-react";import*as u4 from"react";import{jsx as t$}from"react/jsx-runtime";var r$={platform:u$,documentation:g,docs:g,integration:K4,api:l4,security:J4,data:Q4,messaging:l$,ui:w,presentation:w},i$={documentation:g,guides:g,"api-reference":l4,presentations:w,ui:w,rendering:w,mcp:K4,integration:K4,security:J4,auth:J4,data:Q4,storage:Q4},r4={stable:"success",beta:"warning",experimental:"info",deprecated:"danger"},a$={sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"};function X4({domain:D,tags:$=[],stability:E,icon:Q,size:X="md",className:J}){let U=u4.useMemo(()=>{if(Q)return Q;if(D){let z=r$[D.toLowerCase()];if(z)return z}for(let z of $){let K=i$[z.toLowerCase()];if(K)return K}return n$},[D,$,Q]),P=E?r4[E]||"primary":"primary",Y={success:"text-emerald-600 dark:text-emerald-400",warning:"text-amber-600 dark:text-amber-400",info:"text-blue-600 dark:text-blue-400",danger:"text-red-600 dark:text-red-400",primary:"text-primary"};return t$(U,{className:o$(a$[X],Y[P],J)})}function Y4(D){if(!D)return"primary";return r4[D]||"primary"}import{useCallback as q,useMemo as i4,useState as s$}from"react";var a4={search:"",tags:[],stability:[],domain:[]};function t4(D){let[$,E]=s$(a4),Q=q((K)=>{E((_)=>({..._,search:K}))},[]),X=q((K)=>{E((_)=>({..._,tags:_.tags.includes(K)?_.tags.filter((G)=>G!==K):[..._.tags,K]}))},[]),J=q((K)=>{E((_)=>({..._,stability:_.stability.includes(K)?_.stability.filter((G)=>G!==K):[..._.stability,K]}))},[]),U=q((K)=>{E((_)=>({..._,domain:_.domain.includes(K)?_.domain.filter((G)=>G!==K):[..._.domain,K]}))},[]),P=q(()=>E(a4),[]),Y=i4(()=>{return $.search.length>0||$.tags.length>0||$.stability.length>0||$.domain.length>0},[$]),z=i4(()=>{return D.filter((K)=>{if($.search){let _=$.search.toLowerCase();if(!((K.meta.title??"").toLowerCase().includes(_)||K.meta.description?.toLowerCase().includes(_)||K.meta.key.toLowerCase().includes(_)))return!1}if($.tags.length>0){if(!$.tags.some((G)=>K.meta.tags?.includes(G)))return!1}if($.stability.length>0){if(!$.stability.includes(K.meta.stability??"unknown"))return!1}if($.domain.length>0){if(!$.domain.includes(K.meta.domain??"unknown"))return!1}return!0})},[D,$]);return{filters:$,setSearch:Q,toggleTag:X,toggleStability:J,toggleDomain:U,clearFilters:P,filteredFeatures:z,hasActiveFilters:Y}}import{useMemo as s4}from"react";function e4(){let D=s4(()=>E4(),[]);return s4(()=>{let $=D.list();return{features:$,getFeature:(E)=>D.get(E),getByTag:(E)=>D.listByTag(E),getByOwner:(E)=>D.listByOwner(E),getUniqueTags:()=>D.getUniqueTags(),getUniqueDomains:()=>{let E=new Set;for(let Q of $)if(Q.meta.domain)E.add(Q.meta.domain);return[...E].sort()},getUniqueStabilities:()=>{let E=new Set;for(let Q of $)if(Q.meta.stability)E.add(Q.meta.stability);return[...E].sort()}}},[D])}import{StatusChip as $$}from"@contractspec/lib.design-system";import{HStack as h}from"@contractspec/lib.ui-kit-web/ui/stack";import{ArrowRight as e$,Layout as $D,Radio as DD,Shield as ED,Tag as QD,Users as JD,Zap as KD}from"lucide-react";import{jsx as Z,jsxs as N,Fragment as XD}from"react/jsx-runtime";function _4({feature:D}){let{meta:$,operations:E,events:Q,presentations:X,capabilities:J}=D,U=J?.provides?.length||J?.requires?.length;return N(XD,{children:[$.description&&Z("p",{className:"text-muted-foreground text-sm leading-relaxed",children:$.description}),N(h,{gap:"md",className:"py-2",children:[E?.length?N("div",{className:"flex items-center gap-1.5 text-sm",children:[Z(KD,{className:"h-4 w-4 text-amber-500"}),Z("span",{className:"font-medium",children:E.length}),Z("span",{className:"text-muted-foreground",children:"ops"})]}):null,Q?.length?N("div",{className:"flex items-center gap-1.5 text-sm",children:[Z(DD,{className:"h-4 w-4 text-blue-500"}),Z("span",{className:"font-medium",children:Q.length}),Z("span",{className:"text-muted-foreground",children:"events"})]}):null,X?.length?N("div",{className:"flex items-center gap-1.5 text-sm",children:[Z($D,{className:"h-4 w-4 text-purple-500"}),Z("span",{className:"font-medium",children:X.length}),Z("span",{className:"text-muted-foreground",children:"views"})]}):null]}),U&&N("div",{className:"space-y-1.5 border-border/50 border-t pt-1",children:[J?.provides?.length?N(h,{gap:"xs",wrap:"wrap",className:"items-start",children:[Z(ED,{className:"mt-0.5 h-3.5 w-3.5 text-emerald-500"}),Z("span",{className:"text-muted-foreground text-xs",children:"Provides:"}),J.provides.slice(0,2).map((P)=>Z($$,{tone:"success",label:P.key,size:"sm"},P.key)),J.provides.length>2&&N("span",{className:"text-muted-foreground text-xs",children:["+",J.provides.length-2]})]}):null,J?.requires?.length?N(h,{gap:"xs",wrap:"wrap",className:"items-start",children:[Z(e$,{className:"mt-0.5 h-3.5 w-3.5 text-blue-500"}),Z("span",{className:"text-muted-foreground text-xs",children:"Requires:"}),J.requires.slice(0,2).map((P)=>Z($$,{tone:"info",label:P.key,size:"sm"},P.key)),J.requires.length>2&&N("span",{className:"text-muted-foreground text-xs",children:["+",J.requires.length-2]})]}):null]}),$.tags?.length?N(h,{gap:"xs",wrap:"wrap",className:"items-center border-border/50 border-t pt-1",children:[Z(QD,{className:"h-3.5 w-3.5 text-muted-foreground"}),$.tags.slice(0,4).map((P)=>N("span",{className:"rounded bg-muted px-1.5 py-0.5 text-muted-foreground text-xs",children:["#",P]},P)),$.tags.length>4&&N("span",{className:"text-muted-foreground text-xs",children:["+",$.tags.length-4]})]}):null,$.owners?.length?N(h,{gap:"xs",className:"items-center text-muted-foreground text-xs",children:[Z(JD,{className:"h-3.5 w-3.5"}),Z("span",{children:$.owners.join(", ")})]}):null]})}import{EntityCard as YD,StatusChip as _D}from"@contractspec/lib.design-system";import{HStack as D$}from"@contractspec/lib.ui-kit-web/ui/stack";import{Layout as zD,Radio as PD,Shield as WD,Zap as ZD}from"lucide-react";import{jsx as R,jsxs as T}from"react/jsx-runtime";var UD={stable:"success",beta:"warning",experimental:"info",deprecated:"danger"};function z4({feature:D,onSelect:$,className:E}){let{meta:Q,operations:X,events:J,presentations:U,capabilities:P}=D,Y=UD[Q.stability]??"neutral",z=Y4(Q.stability),K=Q.stability==="stable"?"strong":"default",_=$?()=>$(D):void 0,G=P?.provides?.length||P?.requires?.length;return R(YD,{cardTitle:Q.title,cardSubtitle:Q.key,className:E,onClick:_,emphasis:K,icon:R(X4,{domain:Q.domain,tags:Q.tags,stability:Q.stability,size:"md"}),iconTone:z,chips:R(_D,{tone:Y,label:Q.stability??"unknown",size:"sm"}),meta:Q.description?R("span",{className:"line-clamp-2 text-muted-foreground text-sm",children:Q.description}):void 0,preview:R(_4,{feature:D}),footer:T(D$,{gap:"md",className:"w-full justify-between text-muted-foreground text-xs",children:[T(D$,{gap:"sm",children:[X?.length?T("span",{className:"flex items-center gap-1",children:[R(ZD,{className:"h-3 w-3 text-amber-500"}),X.length]}):null,J?.length?T("span",{className:"flex items-center gap-1",children:[R(PD,{className:"h-3 w-3 text-blue-500"}),J.length]}):null,U?.length?T("span",{className:"flex items-center gap-1",children:[R(zD,{className:"h-3 w-3 text-purple-500"}),U.length]}):null]}),G&&T("span",{className:"flex items-center gap-1",children:[R(WD,{className:"h-3 w-3 text-emerald-500"}),(P?.provides?.length??0)+(P?.requires?.length??0)]})]})})}import{StatusChip as OD}from"@contractspec/lib.design-system";import{HStack as VD}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as E$}from"@contractspec/lib.ui-kit-web/ui/utils";import{Boxes as ND,ChevronDown as GD}from"lucide-react";import{jsx as F,jsxs as Q$}from"react/jsx-runtime";function P4({title:D,count:$,icon:E,isCollapsed:Q=!1,onToggle:X,className:J}){return Q$("button",{type:"button",onClick:X,className:E$("flex w-full items-center justify-between rounded-lg px-4 py-3","bg-muted/30 transition-colors hover:bg-muted/50","group cursor-pointer",J),children:[Q$(VD,{gap:"sm",className:"items-center",children:[F("div",{className:"text-muted-foreground transition-colors group-hover:text-foreground",children:E||F(ND,{className:"h-5 w-5"})}),F("span",{className:"font-semibold text-lg capitalize transition-colors group-hover:text-primary",children:D}),F(OD,{tone:"neutral",label:`${$} ${$===1?"feature":"features"}`,size:"sm"})]}),F(GD,{className:E$("h-5 w-5 text-muted-foreground transition-transform duration-200",Q&&"-rotate-90")})]})}import{Button as W4,Input as RD}from"@contractspec/lib.design-system";import{HStack as Z4,VStack as AD}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as LD}from"@contractspec/lib.ui-kit-web/ui/utils";import{jsx as C,jsxs as m}from"react/jsx-runtime";function U4({uniqueTags:D,uniqueStabilities:$,filters:E,setSearch:Q,toggleTag:X,toggleStability:J,clearFilters:U,hasActiveFilters:P,className:Y}){return m(AD,{gap:"md",className:LD("w-full",Y),children:[m(Z4,{gap:"md",justify:"between",className:"w-full",children:[C(RD,{placeholder:"Search features...",value:E.search,onChange:(z)=>Q(z.target.value),className:"max-w-md","aria-label":"Search features"}),P&&C(W4,{variant:"ghost",size:"sm",onClick:U,children:"Clear filters"})]}),$.length>0&&m(Z4,{gap:"xs",wrap:"wrap",children:[C("span",{className:"text-muted-foreground text-sm",children:"Stability:"}),$.map((z)=>C(W4,{variant:E.stability.includes(z)?"default":"outline",size:"sm",onClick:()=>J(z),"aria-pressed":E.stability.includes(z),children:z},z))]}),D.length>0&&m(Z4,{gap:"xs",wrap:"wrap",children:[C("span",{className:"text-muted-foreground text-sm",children:"Tags:"}),D.slice(0,10).map((z)=>m(W4,{variant:E.tags.includes(z)?"default":"outline",size:"sm",onClick:()=>X(z),"aria-pressed":E.tags.includes(z),children:["#",z]},z)),D.length>10&&m("span",{className:"text-muted-foreground text-sm",children:["+",D.length-10," more"]})]})]})}import{EntityCard as MD}from"@contractspec/lib.design-system";import{Table as BD}from"lucide-react";import{jsx as O4}from"react/jsx-runtime";function ID({feature:D}){if(!D.dataViews?.length)return null;return O4("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:D.dataViews.map(($)=>{let E=t($.key,$.version);return O4(MD,{cardTitle:$.key,cardSubtitle:`v${$.version}`,footer:E?.meta.description,icon:O4(BD,{className:"h-4 w-4"}),href:`/features/${D.meta.key}/dataviews/${$.key}`},$.key)})})}import{StatCard as V4,StatCardGroup as HD,StatusChip as M}from"@contractspec/lib.design-system";import{Box as c,HStack as k,VStack as TD}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as mD}from"@contractspec/lib.ui-kit-web/ui/utils";import N4 from"next/link";import{jsx as W,jsxs as B}from"react/jsx-runtime";var wD={stable:"success",beta:"warning",experimental:"info",deprecated:"danger"};function J$({feature:D,className:$}){let{meta:E,operations:Q,events:X,presentations:J,capabilities:U}=D,P=wD[E.stability]??"neutral";return B(TD,{gap:"lg",className:mD("w-full",$),children:[B(k,{gap:"sm",children:[W(M,{tone:P,label:E.stability??"unknown"}),W(M,{tone:"neutral",label:E.key,size:"sm"}),W(M,{tone:"neutral",label:`v${E.version}`,size:"sm"})]}),B(HD,{children:[W(N4,{href:`./${D.meta.key}/operations`,children:W(V4,{label:"Operations",value:Q?.length??0})}),W(N4,{href:`./${D.meta.key}/events`,children:W(V4,{label:"Events",value:X?.length??0})}),W(N4,{href:`./${D.meta.key}/presentations`,children:W(V4,{label:"Presentations",value:J?.length??0})})]}),U?.provides?.length?B(c,{className:"flex-col rounded-lg border p-4",gap:"sm",align:"start",children:[W("span",{className:"font-semibold",children:"Provides Capabilities"}),W(k,{gap:"xs",wrap:"wrap",children:U.provides.map((Y)=>W(M,{tone:"success",label:`${Y.key} v${Y.version}`,size:"sm"},`${Y.key}-${Y.version}`))})]}):null,U?.requires?.length?B(c,{className:"flex-col rounded-lg border p-4",gap:"sm",align:"start",children:[W("span",{className:"font-semibold",children:"Requires Capabilities"}),W(k,{gap:"xs",wrap:"wrap",children:U.requires.map((Y)=>W(M,{tone:"info",label:`${Y.key}${Y.version?` v${Y.version}`:""}${Y.optional?" (optional)":""}`,size:"sm"},Y.key))})]}):null,E.tags?.length?B(c,{className:"flex-col rounded-lg border p-4",gap:"sm",align:"start",children:[W("span",{className:"font-semibold",children:"Tags"}),W(k,{gap:"xs",wrap:"wrap",children:E.tags.map((Y)=>W(M,{tone:"neutral",label:`#${Y}`,size:"sm"},Y))})]}):null,E.owners?.length?B(c,{className:"flex-col rounded-lg border p-4",gap:"sm",align:"start",children:[W("span",{className:"font-semibold",children:"Owners"}),W(k,{gap:"xs",wrap:"wrap",children:E.owners.map((Y)=>W(M,{tone:"neutral",label:Y,size:"sm"},Y))})]}):null]})}import{Button as qD,EmptyState as hD,PageHeaderResponsive as FD,StatusChip as CD}from"@contractspec/lib.design-system";import{HStack as K$,VStack as v}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as G4}from"@contractspec/lib.ui-kit-web/ui/utils";import{LayoutGrid as kD,List as vD,Star as dD}from"lucide-react";import*as H from"react";import{jsx as V,jsxs as I}from"react/jsx-runtime";function SD(D){let $={};for(let E of D){let Q=E.meta.domain||"Other";if(!$[Q])$[Q]=[];$[Q].push(E)}return $}function yD(D){let $=["stable","beta","experimental","deprecated","unknown"],E={};for(let X of D){let J=X.meta.stability||"unknown";if(!E[J])E[J]=[];E[J].push(X)}let Q={};for(let X of $)if(E[X])Q[X]=E[X];return Q}function X$({onSelectFeature:D,className:$,defaultViewMode:E="grid",groupBy:Q="domain",showFeatured:X=!0}){let{features:J,getUniqueTags:U,getUniqueStabilities:P}=e4(),{filters:Y,setSearch:z,toggleTag:K,toggleStability:_,clearFilters:G,filteredFeatures:A,hasActiveFilters:o}=t4(J),Y$=U(),_$=P(),[n,B4]=H.useState(E),[I4,z$]=H.useState(new Set),l=H.useMemo(()=>A.filter((O)=>O.meta.stability==="stable"),[A]),d=H.useMemo(()=>X?A.filter((O)=>O.meta.stability!=="stable"):A,[A,X]),H4=H.useMemo(()=>{if(Q==="none")return null;if(Q==="domain")return SD(d);return yD(d)},[d,Q]),P$=(O)=>{z$((L)=>{let S=new Set(L);if(S.has(O))S.delete(O);else S.add(O);return S})},W$=n==="grid"?"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3":"flex flex-col gap-3",u=(O)=>V("div",{className:W$,children:O.map((L)=>V(z4,{feature:L,onSelect:D},L.meta.key))});return I(v,{gap:"lg",className:G4("w-full p-6",$),children:[I("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[V(FD,{title:"Feature Discovery",subtitle:`Browse ${J.length} available ContractSpec features`}),I(K$,{gap:"xs",children:[V("button",{type:"button",onClick:()=>B4("grid"),className:G4("rounded-md p-2 transition-colors",n==="grid"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"),"aria-label":"Grid view",children:V(kD,{className:"h-4 w-4"})}),V("button",{type:"button",onClick:()=>B4("list"),className:G4("rounded-md p-2 transition-colors",n==="list"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"),"aria-label":"List view",children:V(vD,{className:"h-4 w-4"})})]})]}),V(U4,{uniqueTags:Y$,uniqueStabilities:_$,filters:Y,setSearch:z,toggleTag:K,toggleStability:_,clearFilters:G,hasActiveFilters:o}),A.length===0?V(hD,{title:"No features found",description:o?"Try adjusting your search or filters":"No features are registered yet",primaryAction:o?V(qD,{variant:"outline",onClick:G,children:"Clear filters"}):void 0}):I(v,{gap:"lg",children:[X&&l.length>0&&I(v,{gap:"sm",children:[I(K$,{gap:"sm",className:"items-center",children:[V(dD,{className:"h-5 w-5 fill-amber-500 text-amber-500"}),V("span",{className:"font-semibold text-lg",children:"Featured"}),V(CD,{tone:"success",label:`${l.length} stable`,size:"sm"})]}),u(l)]}),H4?V(v,{gap:"md",children:Object.entries(H4).map(([O,L])=>I(v,{gap:"sm",children:[V(P4,{title:O,count:L.length,isCollapsed:I4.has(O),onToggle:()=>P$(O)}),!I4.has(O)&&u(L)]},O))}):u(d)]})]})}import{EntityCard as bD}from"@contractspec/lib.design-system";import{Radio as fD}from"lucide-react";import{jsx as R4}from"react/jsx-runtime";function pD({feature:D}){if(!D.events?.length)return null;return R4("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:D.events.map(($)=>{let E=i($.key,$.version);return R4(bD,{cardTitle:$.key,cardSubtitle:`v${$.version}`,footer:E?.meta.description,icon:R4(fD,{className:"h-4 w-4"}),href:`/features/${D.meta.key}/events/${$.key}`},$.key)})})}import{EntityCard as xD}from"@contractspec/lib.design-system";import{FormInput as jD}from"lucide-react";import{jsx as A4}from"react/jsx-runtime";function gD({feature:D}){if(!D.forms?.length)return null;return A4("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:D.forms.map(($)=>{let E=s($.key,$.version);return A4(xD,{cardTitle:$.key,cardSubtitle:$.version?`v${$.version}`:void 0,footer:E?.meta.description,icon:A4(jD,{className:"h-4 w-4"}),href:`/features/${D.meta.key}/forms/${$.key}`},$.key)})})}import{EntityCard as cD}from"@contractspec/lib.design-system";import{Zap as oD}from"lucide-react";import{jsx as L4}from"react/jsx-runtime";function nD({feature:D}){if(!D.operations?.length)return null;return L4("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:D.operations.map(($)=>{let E=r($.key,$.version);return L4(cD,{cardTitle:$.key,cardSubtitle:`v${$.version}`,footer:E?.meta.description,icon:L4(oD,{className:"h-4 w-4"}),href:`/features/${D.meta.key}/operations/${$.key}`},$.key)})})}import{EntityCard as lD}from"@contractspec/lib.design-system";import{Layout as uD}from"lucide-react";import{jsx as M4}from"react/jsx-runtime";function rD({feature:D}){if(!D.presentations?.length)return null;return M4("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:D.presentations.map(($)=>{let E=a($.key,$.version);return M4(lD,{cardTitle:$.key,cardSubtitle:`v${$.version}`,footer:E?.meta.description,icon:M4(uD,{className:"h-4 w-4"}),href:`/features/${D.meta.key}/presentations/${$.key}`},$.key)})})}export{rD as FeaturePresentationsList,nD as FeatureOperationsList,gD as FeatureFormsList,pD as FeatureEventsList,X$ as FeatureDiscovery,J$ as FeatureDetail,ID as FeatureDataViewsList};
|
|
2
|
+
var Z$=Object.defineProperty;var U$=(D)=>D;function O$(D,$){this[D]=U$.bind(null,$)}var sD=(D,$)=>{for(var E in $)Z$(D,E,{get:$[E],enumerable:!0,configurable:!0,set:O$.bind($,E)})};var eD=(D,$)=>()=>(D&&($=D(D=0)),$);import{EventRegistry as V$,OperationSpecRegistry as N$}from"@contractspec/lib.contracts-spec";import{DataViewRegistry as G$}from"@contractspec/lib.contracts-spec/data-views";import{ContractReferenceDataView as R$,ContractReferenceQuery as A$,DocsGenerateCommand as L$,DocsGeneratedEvent as M$,DocsIndexDataView as B$,DocsIndexQuery as I$,DocsLayoutPresentation as H$,DocsPublishCommand as T$,DocsPublishedEvent as m$,DocsReferencePagePresentation as w$,DocsSearchForm as q$,ExampleCatalogDataView as h$}from"@contractspec/lib.contracts-spec/docs";import{FormRegistry as F$}from"@contractspec/lib.contracts-spec/forms";import{PresentationRegistry as C$}from"@contractspec/lib.contracts-spec/presentations";import{serializeDataViewSpec as k$,serializeEventSpec as v$,serializeFormSpec as d$,serializeOperationSpec as S$,serializePresentationSpec as y$}from"@contractspec/lib.contracts-spec/serialization";var y=null;function T4(){let D=new N$;return D.register(I$).register(A$).register(L$).register(T$),D}function m4(){if(!y)y=T4();return y}function w4(D,$){return m4().get(D,$)}var b=null;function q4(){let D=new V$;return D.register(M$).register(m$),D}function h4(){if(!b)b=q4();return b}function F4(D,$){return h4().get(D,$)}var f=null;function C4(){let D=new C$;return D.register(H$).register(w$),D}function k4(){if(!f)f=C4();return f}function v4(D,$){return k4().get(D,$)}var p=null;function d4(){let D=new G$;return D.register(B$).register(R$).register(h$),D}function S4(){if(!p)p=d4();return p}function y4(D,$){return S4().get(D,$)}var x=null;function b4(){let D=new F$;return D.register(q$),D}function f4(){if(!x)x=b4();return x}function p4(D,$){return f4().get(D)}function r(D,$){let E=w4(D,$);return S$(E)??void 0}function i(D,$){let E=F4(D,$);return v$(E)??void 0}function a(D,$){let E=v4(D,$);return y$(E)??void 0}function t(D,$){let E=y4(D,$);return k$(E)??void 0}function s(D,$){let E=p4(D,$);return d$(E)??void 0}function x4(){y=null}function j4(){b=null}function g4(){f=null}function c4(){p=null}function o4(){x=null}function b$(){x4(),j4(),g4(),c4(),o4()}var e={meta:{key:"contractspec.docs",version:"1.0.0",title:"Documentation",description:"Comprehensive documentation system for ContractSpec",domain:"platform",owners:["@platform.docs"],tags:["documentation","guides","api-reference"],stability:"stable"},operations:[{key:"docs_search",version:"1.0.0"},{key:"docs.navigate",version:"1.0.0"}],events:[{key:"docs.page_viewed",version:"1.0.0"},{key:"docs.search_performed",version:"1.0.0"}],presentations:[{key:"docs.landing",version:"1.0.0"},{key:"docs.getting-started",version:"1.0.0"},{key:"docs.architecture",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.docs",version:"1.0.0"}],requires:[]}};import{ContractReferenceQuery as f$,DocSummaryModel as p$,DocsIndexInput as x$,DocsIndexOutput as j$,DocsIndexQuery as g$,DocsIndexQuery as c$}from"@contractspec/lib.contracts-spec/docs";var $4={meta:{key:"contractspec.mcp",version:"1.0.0",title:"MCP Integration",description:"Model Context Protocol server for AI agent integration",domain:"platform",owners:["@platform.mcp"],tags:["mcp","ai-agents","tooling"],stability:"beta"},operations:[{key:"mcp.tool.register",version:"1.0.0"},{key:"mcp.resource.register",version:"1.0.0"},{key:"mcp.prompt.register",version:"1.0.0"}],events:[{key:"mcp.tool_invoked",version:"1.0.0"},{key:"mcp.resource_accessed",version:"1.0.0"}],presentations:[],capabilities:{provides:[{key:"contracts.mcp",version:"1.0.0"}],requires:[{key:"contracts.operations",version:"1.0.0"}]}};var D4={meta:{key:"contractspec.presentations",version:"1.0.0",title:"Presentation Runtime",description:"Cross-platform rendering of contract-driven UI",domain:"platform",owners:["@platform.presentations"],tags:["presentations","ui","rendering","cross-platform"],stability:"beta"},operations:[{key:"presentation.render",version:"1.0.0"},{key:"presentation.transform",version:"1.0.0"}],events:[{key:"presentation.rendered",version:"1.0.0"},{key:"presentation.transformed",version:"1.0.0"}],presentations:[{key:"form.standard",version:"1.0.0"},{key:"list.standard",version:"1.0.0"},{key:"detail.standard",version:"1.0.0"}],capabilities:{provides:[{key:"contracts.presentations",version:"1.0.0"}],requires:[]}};import{AppConfigFeature as o$}from"@contractspec/lib.contracts-spec/app-config";import{FeatureRegistry as n$}from"@contractspec/lib.contracts-spec/features";function n4(){let D=new n$;return D.register(e),D.register($4),D.register(D4),D.register(o$),D}var j=null;function E4(){if(!j)j=n4();return j}function l$(){j=null}import{FeatureRegistry as I1}from"@contractspec/lib.contracts-spec/features";import{cn as u$}from"@contractspec/lib.ui-kit-web/ui/utils";import{Boxes as r$,Database as Q4,FileText as g,Globe as l4,Layout as w,MessageSquare as i$,Settings as a$,Shield as J4,Workflow as K4}from"lucide-react";import*as u4 from"react";import{jsx as $D}from"react/jsx-runtime";var t$={platform:a$,documentation:g,docs:g,integration:K4,api:l4,security:J4,data:Q4,messaging:i$,ui:w,presentation:w},s$={documentation:g,guides:g,"api-reference":l4,presentations:w,ui:w,rendering:w,mcp:K4,integration:K4,security:J4,auth:J4,data:Q4,storage:Q4},r4={stable:"success",beta:"warning",experimental:"info",deprecated:"danger"},e$={sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"};function X4({domain:D,tags:$=[],stability:E,icon:Q,size:X="md",className:J}){let U=u4.useMemo(()=>{if(Q)return Q;if(D){let z=t$[D.toLowerCase()];if(z)return z}for(let z of $){let K=s$[z.toLowerCase()];if(K)return K}return r$},[D,$,Q]),P=E?r4[E]||"primary":"primary",Y={success:"text-emerald-600 dark:text-emerald-400",warning:"text-amber-600 dark:text-amber-400",info:"text-blue-600 dark:text-blue-400",danger:"text-red-600 dark:text-red-400",primary:"text-primary"};return $D(U,{className:u$(e$[X],Y[P],J)})}function Y4(D){if(!D)return"primary";return r4[D]||"primary"}import{useCallback as q,useMemo as i4,useState as DD}from"react";var a4={search:"",tags:[],stability:[],domain:[]};function t4(D){let[$,E]=DD(a4),Q=q((K)=>{E((_)=>({..._,search:K}))},[]),X=q((K)=>{E((_)=>({..._,tags:_.tags.includes(K)?_.tags.filter((G)=>G!==K):[..._.tags,K]}))},[]),J=q((K)=>{E((_)=>({..._,stability:_.stability.includes(K)?_.stability.filter((G)=>G!==K):[..._.stability,K]}))},[]),U=q((K)=>{E((_)=>({..._,domain:_.domain.includes(K)?_.domain.filter((G)=>G!==K):[..._.domain,K]}))},[]),P=q(()=>E(a4),[]),Y=i4(()=>{return $.search.length>0||$.tags.length>0||$.stability.length>0||$.domain.length>0},[$]),z=i4(()=>{return D.filter((K)=>{if($.search){let _=$.search.toLowerCase();if(!((K.meta.title??"").toLowerCase().includes(_)||K.meta.description?.toLowerCase().includes(_)||K.meta.key.toLowerCase().includes(_)))return!1}if($.tags.length>0){if(!$.tags.some((G)=>K.meta.tags?.includes(G)))return!1}if($.stability.length>0){if(!$.stability.includes(K.meta.stability??"unknown"))return!1}if($.domain.length>0){if(!$.domain.includes(K.meta.domain??"unknown"))return!1}return!0})},[D,$]);return{filters:$,setSearch:Q,toggleTag:X,toggleStability:J,toggleDomain:U,clearFilters:P,filteredFeatures:z,hasActiveFilters:Y}}import{useMemo as s4}from"react";function e4(){let D=s4(()=>E4(),[]);return s4(()=>{let $=D.list();return{features:$,getFeature:(E)=>D.get(E),getByTag:(E)=>D.listByTag(E),getByOwner:(E)=>D.listByOwner(E),getUniqueTags:()=>D.getUniqueTags(),getUniqueDomains:()=>{let E=new Set;for(let Q of $)if(Q.meta.domain)E.add(Q.meta.domain);return[...E].sort()},getUniqueStabilities:()=>{let E=new Set;for(let Q of $)if(Q.meta.stability)E.add(Q.meta.stability);return[...E].sort()}}},[D])}import{StatusChip as $$}from"@contractspec/lib.design-system";import{HStack as h}from"@contractspec/lib.ui-kit-web/ui/stack";import{ArrowRight as ED,Layout as QD,Radio as JD,Shield as KD,Tag as XD,Users as YD,Zap as _D}from"lucide-react";import{jsx as Z,jsxs as N,Fragment as zD}from"react/jsx-runtime";function _4({feature:D}){let{meta:$,operations:E,events:Q,presentations:X,capabilities:J}=D,U=J?.provides?.length||J?.requires?.length;return N(zD,{children:[$.description&&Z("p",{className:"text-muted-foreground text-sm leading-relaxed",children:$.description}),N(h,{gap:"md",className:"py-2",children:[E?.length?N("div",{className:"flex items-center gap-1.5 text-sm",children:[Z(_D,{className:"h-4 w-4 text-amber-500"}),Z("span",{className:"font-medium",children:E.length}),Z("span",{className:"text-muted-foreground",children:"ops"})]}):null,Q?.length?N("div",{className:"flex items-center gap-1.5 text-sm",children:[Z(JD,{className:"h-4 w-4 text-blue-500"}),Z("span",{className:"font-medium",children:Q.length}),Z("span",{className:"text-muted-foreground",children:"events"})]}):null,X?.length?N("div",{className:"flex items-center gap-1.5 text-sm",children:[Z(QD,{className:"h-4 w-4 text-purple-500"}),Z("span",{className:"font-medium",children:X.length}),Z("span",{className:"text-muted-foreground",children:"views"})]}):null]}),U&&N("div",{className:"space-y-1.5 border-border/50 border-t pt-1",children:[J?.provides?.length?N(h,{gap:"xs",wrap:"wrap",className:"items-start",children:[Z(KD,{className:"mt-0.5 h-3.5 w-3.5 text-emerald-500"}),Z("span",{className:"text-muted-foreground text-xs",children:"Provides:"}),J.provides.slice(0,2).map((P)=>Z($$,{tone:"success",label:P.key,size:"sm"},P.key)),J.provides.length>2&&N("span",{className:"text-muted-foreground text-xs",children:["+",J.provides.length-2]})]}):null,J?.requires?.length?N(h,{gap:"xs",wrap:"wrap",className:"items-start",children:[Z(ED,{className:"mt-0.5 h-3.5 w-3.5 text-blue-500"}),Z("span",{className:"text-muted-foreground text-xs",children:"Requires:"}),J.requires.slice(0,2).map((P)=>Z($$,{tone:"info",label:P.key,size:"sm"},P.key)),J.requires.length>2&&N("span",{className:"text-muted-foreground text-xs",children:["+",J.requires.length-2]})]}):null]}),$.tags?.length?N(h,{gap:"xs",wrap:"wrap",className:"items-center border-border/50 border-t pt-1",children:[Z(XD,{className:"h-3.5 w-3.5 text-muted-foreground"}),$.tags.slice(0,4).map((P)=>N("span",{className:"rounded bg-muted px-1.5 py-0.5 text-muted-foreground text-xs",children:["#",P]},P)),$.tags.length>4&&N("span",{className:"text-muted-foreground text-xs",children:["+",$.tags.length-4]})]}):null,$.owners?.length?N(h,{gap:"xs",className:"items-center text-muted-foreground text-xs",children:[Z(YD,{className:"h-3.5 w-3.5"}),Z("span",{children:$.owners.join(", ")})]}):null]})}import{EntityCard as PD,StatusChip as WD}from"@contractspec/lib.design-system";import{HStack as D$}from"@contractspec/lib.ui-kit-web/ui/stack";import{Layout as ZD,Radio as UD,Shield as OD,Zap as VD}from"lucide-react";import{jsx as R,jsxs as T}from"react/jsx-runtime";var ND={stable:"success",beta:"warning",experimental:"info",deprecated:"danger"};function z4({feature:D,onSelect:$,className:E}){let{meta:Q,operations:X,events:J,presentations:U,capabilities:P}=D,Y=ND[Q.stability]??"neutral",z=Y4(Q.stability),K=Q.stability==="stable"?"strong":"default",_=$?()=>$(D):void 0,G=P?.provides?.length||P?.requires?.length;return R(PD,{cardTitle:Q.title,cardSubtitle:Q.key,className:E,onClick:_,emphasis:K,icon:R(X4,{domain:Q.domain,tags:Q.tags,stability:Q.stability,size:"md"}),iconTone:z,chips:R(WD,{tone:Y,label:Q.stability??"unknown",size:"sm"}),meta:Q.description?R("span",{className:"line-clamp-2 text-muted-foreground text-sm",children:Q.description}):void 0,preview:R(_4,{feature:D}),footer:T(D$,{gap:"md",className:"w-full justify-between text-muted-foreground text-xs",children:[T(D$,{gap:"sm",children:[X?.length?T("span",{className:"flex items-center gap-1",children:[R(VD,{className:"h-3 w-3 text-amber-500"}),X.length]}):null,J?.length?T("span",{className:"flex items-center gap-1",children:[R(UD,{className:"h-3 w-3 text-blue-500"}),J.length]}):null,U?.length?T("span",{className:"flex items-center gap-1",children:[R(ZD,{className:"h-3 w-3 text-purple-500"}),U.length]}):null]}),G&&T("span",{className:"flex items-center gap-1",children:[R(OD,{className:"h-3 w-3 text-emerald-500"}),(P?.provides?.length??0)+(P?.requires?.length??0)]})]})})}import{StatusChip as GD}from"@contractspec/lib.design-system";import{HStack as RD}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as E$}from"@contractspec/lib.ui-kit-web/ui/utils";import{Boxes as AD,ChevronDown as LD}from"lucide-react";import{jsx as F,jsxs as Q$}from"react/jsx-runtime";function P4({title:D,count:$,icon:E,isCollapsed:Q=!1,onToggle:X,className:J}){return Q$("button",{type:"button",onClick:X,className:E$("flex w-full items-center justify-between rounded-lg px-4 py-3","bg-muted/30 transition-colors hover:bg-muted/50","group cursor-pointer",J),children:[Q$(RD,{gap:"sm",className:"items-center",children:[F("div",{className:"text-muted-foreground transition-colors group-hover:text-foreground",children:E||F(AD,{className:"h-5 w-5"})}),F("span",{className:"font-semibold text-lg capitalize transition-colors group-hover:text-primary",children:D}),F(GD,{tone:"neutral",label:`${$} ${$===1?"feature":"features"}`,size:"sm"})]}),F(LD,{className:E$("h-5 w-5 text-muted-foreground transition-transform duration-200",Q&&"-rotate-90")})]})}import{Button as W4,Input as MD}from"@contractspec/lib.design-system";import{HStack as Z4,VStack as BD}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as ID}from"@contractspec/lib.ui-kit-web/ui/utils";import{jsx as C,jsxs as m}from"react/jsx-runtime";function U4({uniqueTags:D,uniqueStabilities:$,filters:E,setSearch:Q,toggleTag:X,toggleStability:J,clearFilters:U,hasActiveFilters:P,className:Y}){return m(BD,{gap:"md",className:ID("w-full",Y),children:[m(Z4,{gap:"md",justify:"between",className:"w-full",children:[C(MD,{placeholder:"Search features...",value:E.search,onChange:(z)=>Q(z.target.value),className:"max-w-md","aria-label":"Search features"}),P&&C(W4,{variant:"ghost",size:"sm",onClick:U,children:"Clear filters"})]}),$.length>0&&m(Z4,{gap:"xs",wrap:"wrap",children:[C("span",{className:"text-muted-foreground text-sm",children:"Stability:"}),$.map((z)=>C(W4,{variant:E.stability.includes(z)?"default":"outline",size:"sm",onClick:()=>J(z),"aria-pressed":E.stability.includes(z),children:z},z))]}),D.length>0&&m(Z4,{gap:"xs",wrap:"wrap",children:[C("span",{className:"text-muted-foreground text-sm",children:"Tags:"}),D.slice(0,10).map((z)=>m(W4,{variant:E.tags.includes(z)?"default":"outline",size:"sm",onClick:()=>X(z),"aria-pressed":E.tags.includes(z),children:["#",z]},z)),D.length>10&&m("span",{className:"text-muted-foreground text-sm",children:["+",D.length-10," more"]})]})]})}import{EntityCard as HD}from"@contractspec/lib.design-system";import{Table as TD}from"lucide-react";import{jsx as O4}from"react/jsx-runtime";function mD({feature:D}){if(!D.dataViews?.length)return null;return O4("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:D.dataViews.map(($)=>{let E=t($.key,$.version);return O4(HD,{cardTitle:$.key,cardSubtitle:`v${$.version}`,footer:E?.meta.description,icon:O4(TD,{className:"h-4 w-4"}),href:`/features/${D.meta.key}/dataviews/${$.key}`},$.key)})})}import{StatCard as V4,StatCardGroup as wD,StatusChip as M}from"@contractspec/lib.design-system";import{Box as c,HStack as k,VStack as qD}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as hD}from"@contractspec/lib.ui-kit-web/ui/utils";import N4 from"next/link";import{jsx as W,jsxs as B}from"react/jsx-runtime";var FD={stable:"success",beta:"warning",experimental:"info",deprecated:"danger"};function J$({feature:D,className:$}){let{meta:E,operations:Q,events:X,presentations:J,capabilities:U}=D,P=FD[E.stability]??"neutral";return B(qD,{gap:"lg",className:hD("w-full",$),children:[B(k,{gap:"sm",children:[W(M,{tone:P,label:E.stability??"unknown"}),W(M,{tone:"neutral",label:E.key,size:"sm"}),W(M,{tone:"neutral",label:`v${E.version}`,size:"sm"})]}),B(wD,{children:[W(N4,{href:`./${D.meta.key}/operations`,children:W(V4,{label:"Operations",value:Q?.length??0})}),W(N4,{href:`./${D.meta.key}/events`,children:W(V4,{label:"Events",value:X?.length??0})}),W(N4,{href:`./${D.meta.key}/presentations`,children:W(V4,{label:"Presentations",value:J?.length??0})})]}),U?.provides?.length?B(c,{className:"flex-col rounded-lg border p-4",gap:"sm",align:"start",children:[W("span",{className:"font-semibold",children:"Provides Capabilities"}),W(k,{gap:"xs",wrap:"wrap",children:U.provides.map((Y)=>W(M,{tone:"success",label:`${Y.key} v${Y.version}`,size:"sm"},`${Y.key}-${Y.version}`))})]}):null,U?.requires?.length?B(c,{className:"flex-col rounded-lg border p-4",gap:"sm",align:"start",children:[W("span",{className:"font-semibold",children:"Requires Capabilities"}),W(k,{gap:"xs",wrap:"wrap",children:U.requires.map((Y)=>W(M,{tone:"info",label:`${Y.key}${Y.version?` v${Y.version}`:""}${Y.optional?" (optional)":""}`,size:"sm"},Y.key))})]}):null,E.tags?.length?B(c,{className:"flex-col rounded-lg border p-4",gap:"sm",align:"start",children:[W("span",{className:"font-semibold",children:"Tags"}),W(k,{gap:"xs",wrap:"wrap",children:E.tags.map((Y)=>W(M,{tone:"neutral",label:`#${Y}`,size:"sm"},Y))})]}):null,E.owners?.length?B(c,{className:"flex-col rounded-lg border p-4",gap:"sm",align:"start",children:[W("span",{className:"font-semibold",children:"Owners"}),W(k,{gap:"xs",wrap:"wrap",children:E.owners.map((Y)=>W(M,{tone:"neutral",label:Y,size:"sm"},Y))})]}):null]})}import{Button as CD,EmptyState as kD,PageHeaderResponsive as vD,StatusChip as dD}from"@contractspec/lib.design-system";import{HStack as K$,VStack as v}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as G4}from"@contractspec/lib.ui-kit-web/ui/utils";import{LayoutGrid as SD,List as yD,Star as bD}from"lucide-react";import*as H from"react";import{jsx as V,jsxs as I}from"react/jsx-runtime";function fD(D){let $={};for(let E of D){let Q=E.meta.domain||"Other";if(!$[Q])$[Q]=[];$[Q].push(E)}return $}function pD(D){let $=["stable","beta","experimental","deprecated","unknown"],E={};for(let X of D){let J=X.meta.stability||"unknown";if(!E[J])E[J]=[];E[J].push(X)}let Q={};for(let X of $)if(E[X])Q[X]=E[X];return Q}function X$({onSelectFeature:D,className:$,defaultViewMode:E="grid",groupBy:Q="domain",showFeatured:X=!0}){let{features:J,getUniqueTags:U,getUniqueStabilities:P}=e4(),{filters:Y,setSearch:z,toggleTag:K,toggleStability:_,clearFilters:G,filteredFeatures:A,hasActiveFilters:o}=t4(J),Y$=U(),_$=P(),[n,B4]=H.useState(E),[I4,z$]=H.useState(new Set),l=H.useMemo(()=>A.filter((O)=>O.meta.stability==="stable"),[A]),d=H.useMemo(()=>X?A.filter((O)=>O.meta.stability!=="stable"):A,[A,X]),H4=H.useMemo(()=>{if(Q==="none")return null;if(Q==="domain")return fD(d);return pD(d)},[d,Q]),P$=(O)=>{z$((L)=>{let S=new Set(L);if(S.has(O))S.delete(O);else S.add(O);return S})},W$=n==="grid"?"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3":"flex flex-col gap-3",u=(O)=>V("div",{className:W$,children:O.map((L)=>V(z4,{feature:L,onSelect:D},L.meta.key))});return I(v,{gap:"lg",className:G4("w-full p-6",$),children:[I("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[V(vD,{title:"Feature Discovery",subtitle:`Browse ${J.length} available ContractSpec features`}),I(K$,{gap:"xs",children:[V("button",{type:"button",onClick:()=>B4("grid"),className:G4("rounded-md p-2 transition-colors",n==="grid"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"),"aria-label":"Grid view",children:V(SD,{className:"h-4 w-4"})}),V("button",{type:"button",onClick:()=>B4("list"),className:G4("rounded-md p-2 transition-colors",n==="list"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"),"aria-label":"List view",children:V(yD,{className:"h-4 w-4"})})]})]}),V(U4,{uniqueTags:Y$,uniqueStabilities:_$,filters:Y,setSearch:z,toggleTag:K,toggleStability:_,clearFilters:G,hasActiveFilters:o}),A.length===0?V(kD,{title:"No features found",description:o?"Try adjusting your search or filters":"No features are registered yet",primaryAction:o?V(CD,{variant:"outline",onClick:G,children:"Clear filters"}):void 0}):I(v,{gap:"lg",children:[X&&l.length>0&&I(v,{gap:"sm",children:[I(K$,{gap:"sm",className:"items-center",children:[V(bD,{className:"h-5 w-5 fill-amber-500 text-amber-500"}),V("span",{className:"font-semibold text-lg",children:"Featured"}),V(dD,{tone:"success",label:`${l.length} stable`,size:"sm"})]}),u(l)]}),H4?V(v,{gap:"md",children:Object.entries(H4).map(([O,L])=>I(v,{gap:"sm",children:[V(P4,{title:O,count:L.length,isCollapsed:I4.has(O),onToggle:()=>P$(O)}),!I4.has(O)&&u(L)]},O))}):u(d)]})]})}import{EntityCard as xD}from"@contractspec/lib.design-system";import{Radio as jD}from"lucide-react";import{jsx as R4}from"react/jsx-runtime";function gD({feature:D}){if(!D.events?.length)return null;return R4("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:D.events.map(($)=>{let E=i($.key,$.version);return R4(xD,{cardTitle:$.key,cardSubtitle:`v${$.version}`,footer:E?.meta.description,icon:R4(jD,{className:"h-4 w-4"}),href:`/features/${D.meta.key}/events/${$.key}`},$.key)})})}import{EntityCard as cD}from"@contractspec/lib.design-system";import{FormInput as oD}from"lucide-react";import{jsx as A4}from"react/jsx-runtime";function nD({feature:D}){if(!D.forms?.length)return null;return A4("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:D.forms.map(($)=>{let E=s($.key,$.version);return A4(cD,{cardTitle:$.key,cardSubtitle:$.version?`v${$.version}`:void 0,footer:E?.meta.description,icon:A4(oD,{className:"h-4 w-4"}),href:`/features/${D.meta.key}/forms/${$.key}`},$.key)})})}import{EntityCard as lD}from"@contractspec/lib.design-system";import{Zap as uD}from"lucide-react";import{jsx as L4}from"react/jsx-runtime";function rD({feature:D}){if(!D.operations?.length)return null;return L4("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:D.operations.map(($)=>{let E=r($.key,$.version);return L4(lD,{cardTitle:$.key,cardSubtitle:`v${$.version}`,footer:E?.meta.description,icon:L4(uD,{className:"h-4 w-4"}),href:`/features/${D.meta.key}/operations/${$.key}`},$.key)})})}import{EntityCard as iD}from"@contractspec/lib.design-system";import{Layout as aD}from"lucide-react";import{jsx as M4}from"react/jsx-runtime";function tD({feature:D}){if(!D.presentations?.length)return null;return M4("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:D.presentations.map(($)=>{let E=a($.key,$.version);return M4(iD,{cardTitle:$.key,cardSubtitle:`v${$.version}`,footer:E?.meta.description,icon:M4(aD,{className:"h-4 w-4"}),href:`/features/${D.meta.key}/presentations/${$.key}`},$.key)})})}export{tD as FeaturePresentationsList,rD as FeatureOperationsList,nD as FeatureFormsList,gD as FeatureEventsList,X$ as FeatureDiscovery,J$ as FeatureDetail,mD as FeatureDataViewsList};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{defaultDocRegistry as
|
|
2
|
+
var D=Object.defineProperty;var H=(z)=>z;function K(z,I){this[z]=H.bind(null,I)}var R=(z,I)=>{for(var W in I)D(z,W,{get:I[W],enumerable:!0,configurable:!0,set:K.bind(I,W)})};var y=(z,I)=>()=>(z&&(I=z(z=0)),I);import{defaultDocRegistry as V}from"@contractspec/lib.contracts-spec/docs";import{useMemo as g}from"react";function E(z,I){return g(()=>{try{return V.list().filter(({block:Q})=>{let J=Q.id.toLowerCase().includes(z.toLowerCase())||Q.title.toLowerCase().includes(z.toLowerCase()),Y=I?.some((G)=>Q.tags?.some((N)=>N.toLowerCase().includes(G.toLowerCase())));return J||Y}).map(({block:Q,route:J})=>({id:Q.id,title:Q.title,summary:Q.summary,route:J}))}catch(F){return console.error("Failed to fetch related docs:",F),[]}},[z,I])}import{Breadcrumbs as L,CodeBlock as _,EmptyState as h,PageHeaderResponsive as O,StatusChip as X}from"@contractspec/lib.design-system";import{Card as $}from"@contractspec/lib.ui-kit-web/ui/card";import{Box as P,HStack as Z,VStack as U}from"@contractspec/lib.ui-kit-web/ui/stack";import{cn as T}from"@contractspec/lib.ui-kit-web/ui/utils";import{BookOpen as B,Code as m,Database as n,Table as M}from"lucide-react";import C from"next/link";import{jsx as q,jsxs as A}from"react/jsx-runtime";function r({feature:z,viewKey:I,view:W,spec:F,className:Q}){let J=W??z.dataViews?.find((G)=>G.key===I),Y=E(J?.key||"",F?.meta?.tags);if(!J)return A(U,{gap:"lg",className:T("mx-auto w-full max-w-5xl p-6",Q),children:[q(O,{title:"Data View Not Found",subtitle:`Data View ${I} not found in feature ${z.meta.key}`,breadcrumb:q(L,{items:[{label:"Features",href:"/features"},{label:z.meta.title||z.meta.key,href:`/features/${z.meta.key}`},{label:"Data Views"}]})}),q(h,{title:"Data View not found",description:`The data view '${I}' could not be found in this feature.`,icon:q(M,{className:"h-12 w-12 text-muted-foreground"})})]});return A(U,{gap:"lg",className:T("mx-auto w-full max-w-5xl p-6",Q),children:[q(O,{title:J.key,subtitle:`Data View defined in ${z.meta.title??z.meta.key}`,breadcrumb:q(L,{items:[{label:"Features",href:"/features"},{label:z.meta.title||z.meta.key,href:`/features/${z.meta.key}`},{label:"Data Views",href:`/features/${z.meta.key}#dataviews`},{label:J.key}]})}),A(Z,{gap:"sm",children:[q(X,{tone:"neutral",label:J.key,size:"sm",icon:q(M,{className:"h-3 w-3"})}),q(X,{tone:"neutral",label:`v${J.version}`,size:"sm"}),F?.meta?.stability?q(X,{tone:F.meta.stability==="stable"?"success":"warning",label:F.meta.stability,size:"sm"}):null]}),A("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-3",children:[q("div",{className:"space-y-6 lg:col-span-2",children:q($,{className:"p-6",children:A(U,{gap:"md",children:[A(Z,{className:"items-center gap-2 border-b pb-2",children:[q(m,{className:"h-5 w-5 text-muted-foreground"}),q("h3",{className:"font-semibold text-lg",children:"View Definition"})]}),F?A(U,{gap:"lg",children:[F.meta.description&&q("p",{className:"text-muted-foreground",children:F.meta.description}),A(P,{className:"flex-col gap-2",children:[q("span",{className:"font-medium text-muted-foreground text-sm uppercase tracking-wider",children:"Source Query"}),q(_,{code:JSON.stringify(F.source,null,2),language:"json"})]}),A(P,{className:"flex-col gap-2",children:[q("span",{className:"font-medium text-muted-foreground text-sm uppercase tracking-wider",children:"View Configuration"}),q(_,{code:JSON.stringify(F.view,null,2),language:"json"})]})]}):A(U,{gap:"md",children:[q("p",{className:"text-muted-foreground",children:"Full definition details are not available for this data view reference."}),q(_,{code:JSON.stringify(J,null,2),language:"json"})]})]})})}),q("div",{className:"space-y-6",children:q($,{className:"p-6",children:A(U,{gap:"md",children:[A(Z,{className:"items-center gap-2 border-b pb-2",children:[q(n,{className:"h-5 w-5 text-muted-foreground"}),q("h3",{className:"font-semibold text-lg",children:"Metadata"})]}),A("dl",{className:"grid grid-cols-1 gap-4 text-sm",children:[A("div",{children:[q("dt",{className:"text-muted-foreground",children:"Key"}),q("dd",{className:"truncate font-medium",children:J.key})]}),A("div",{children:[q("dt",{className:"text-muted-foreground",children:"Version"}),q("dd",{className:"font-medium",children:J.version})]}),F?.meta?.owners&&A("div",{children:[q("dt",{className:"text-muted-foreground",children:"Owners"}),q("dd",{className:"flex flex-wrap gap-1 font-medium",children:F.meta.owners.map((G)=>q(X,{label:G,size:"sm",tone:"neutral"},G))})]}),F?.meta?.tags&&A("div",{children:[q("dt",{className:"text-muted-foreground",children:"Tags"}),q("dd",{className:"flex flex-wrap gap-1 font-medium",children:F.meta.tags.map((G)=>q(X,{label:`#${G}`,size:"sm",tone:"neutral"},G))})]})]})]})})}),Y?.length?q("div",{className:"lg:col-span-3",children:q($,{className:"p-6",children:A(U,{gap:"md",children:[A(Z,{className:"items-center gap-2 border-b pb-2",children:[q(B,{className:"h-5 w-5 text-muted-foreground"}),q("h3",{className:"font-semibold text-lg",children:"Related Documentation"})]}),q("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:Y.map((G)=>q(C,{href:G.route||`/docs/${G.id}`,className:"group block",children:A("div",{className:"h-full rounded-lg border p-4 transition-colors hover:border-primary",children:[q("h4",{className:"mb-1 font-semibold group-hover:text-primary",children:G.title}),G.summary&&q("p",{className:"line-clamp-2 text-muted-foreground text-sm",children:G.summary})]})},G.id))})]})})}):null]})]})}export{r as FeatureDataViewDetailTemplate};
|