@contractspec/bundle.library 3.4.3 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. package/.turbo/turbo-build.log +494 -488
  2. package/CHANGELOG.md +36 -0
  3. package/dist/application/index.js +8 -8
  4. package/dist/application/mcp/cliMcp.js +8 -8
  5. package/dist/application/mcp/contractsMcp.js +8 -8
  6. package/dist/application/mcp/docsMcp.js +8 -8
  7. package/dist/application/mcp/index.js +8 -8
  8. package/dist/application/mcp/internalMcp.js +8 -8
  9. package/dist/application/mcp/providerRankingMcp.js +8 -8
  10. package/dist/bundles/LibraryBundle.d.ts +126 -0
  11. package/dist/bundles/LibraryBundle.js +139 -0
  12. package/dist/bundles/index.d.ts +1 -0
  13. package/dist/bundles/index.js +139 -0
  14. package/dist/components/docs/DocsIndexPage.js +91 -91
  15. package/dist/components/docs/advanced/AdvancedMCPPage.js +125 -125
  16. package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +49 -49
  17. package/dist/components/docs/advanced/AdvancedRenderersPage.js +51 -51
  18. package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +35 -35
  19. package/dist/components/docs/advanced/AdvancedTelemetryPage.js +177 -177
  20. package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +45 -45
  21. package/dist/components/docs/advanced/index.js +482 -482
  22. package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +107 -107
  23. package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +73 -73
  24. package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +117 -117
  25. package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +175 -175
  26. package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +71 -71
  27. package/dist/components/docs/architecture/ArchitectureOverviewPage.js +205 -205
  28. package/dist/components/docs/architecture/index.js +748 -748
  29. package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +117 -117
  30. package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +111 -111
  31. package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +117 -117
  32. package/dist/components/docs/comparison/ComparisonOverviewPage.js +97 -97
  33. package/dist/components/docs/comparison/ComparisonWindmillPage.js +125 -125
  34. package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +171 -171
  35. package/dist/components/docs/comparison/index.js +738 -738
  36. package/dist/components/docs/ecosystem/IntegrationsPage.js +45 -45
  37. package/dist/components/docs/ecosystem/PluginsPage.js +73 -73
  38. package/dist/components/docs/ecosystem/RegistryPage.js +37 -37
  39. package/dist/components/docs/ecosystem/TemplatesPage.js +56 -56
  40. package/dist/components/docs/ecosystem/index.js +211 -211
  41. package/dist/components/docs/examples/DocsExamplesPage.js +21 -21
  42. package/dist/components/docs/examples/index.js +21 -21
  43. package/dist/components/docs/getting-started/CLIPage.js +95 -95
  44. package/dist/components/docs/getting-started/CompatibilityPage.js +81 -81
  45. package/dist/components/docs/getting-started/DataViewTutorialPage.js +57 -57
  46. package/dist/components/docs/getting-started/DeveloperToolsPage.js +61 -61
  47. package/dist/components/docs/getting-started/HelloWorldPage.js +77 -77
  48. package/dist/components/docs/getting-started/InstallationPage.js +65 -65
  49. package/dist/components/docs/getting-started/StartHerePage.js +51 -51
  50. package/dist/components/docs/getting-started/TroubleshootingPage.js +73 -73
  51. package/dist/components/docs/getting-started/VSCodeExtensionPage.js +171 -171
  52. package/dist/components/docs/getting-started/index.js +731 -731
  53. package/dist/components/docs/guides/GuideCIDiffGatingPage.js +80 -80
  54. package/dist/components/docs/guides/GuideContractTypesPage.js +232 -232
  55. package/dist/components/docs/guides/GuideDocsPipelinePage.js +82 -82
  56. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +84 -84
  57. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +324 -324
  58. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +106 -106
  59. package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +78 -78
  60. package/dist/components/docs/guides/GuidesIndexPage.js +43 -43
  61. package/dist/components/docs/guides/index.js +975 -975
  62. package/dist/components/docs/index.js +10791 -10791
  63. package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +17 -17
  64. package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +47 -47
  65. package/dist/components/docs/integrations/IntegrationsGithubPage.js +61 -61
  66. package/dist/components/docs/integrations/IntegrationsGmailPage.js +49 -49
  67. package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +33 -33
  68. package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +65 -65
  69. package/dist/components/docs/integrations/IntegrationsMistralPage.js +69 -69
  70. package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +65 -65
  71. package/dist/components/docs/integrations/IntegrationsOverviewPage.js +313 -313
  72. package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +101 -101
  73. package/dist/components/docs/integrations/IntegrationsPowensPage.js +121 -121
  74. package/dist/components/docs/integrations/IntegrationsQdrantPage.js +49 -49
  75. package/dist/components/docs/integrations/IntegrationsResendPage.js +45 -45
  76. package/dist/components/docs/integrations/IntegrationsS3Page.js +57 -57
  77. package/dist/components/docs/integrations/IntegrationsSlackPage.js +63 -63
  78. package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +139 -139
  79. package/dist/components/docs/integrations/IntegrationsStripePage.js +159 -159
  80. package/dist/components/docs/integrations/IntegrationsTwilioPage.js +61 -61
  81. package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +63 -63
  82. package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +65 -65
  83. package/dist/components/docs/integrations/index.js +1642 -1642
  84. package/dist/components/docs/intent/ContractFirstApiPage.js +51 -51
  85. package/dist/components/docs/intent/DeterministicCodegenPage.js +59 -59
  86. package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +85 -85
  87. package/dist/components/docs/intent/OpenapiAlternativePage.js +91 -91
  88. package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +59 -59
  89. package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +51 -51
  90. package/dist/components/docs/intent/index.js +396 -396
  91. package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +371 -371
  92. package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +79 -79
  93. package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +185 -185
  94. package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +187 -187
  95. package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +141 -141
  96. package/dist/components/docs/knowledge/index.js +963 -963
  97. package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +85 -85
  98. package/dist/components/docs/libraries/LibrariesAiAgentPage.js +63 -63
  99. package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +33 -33
  100. package/dist/components/docs/libraries/LibrariesContentGenPage.js +43 -43
  101. package/dist/components/docs/libraries/LibrariesContractsPage.js +125 -125
  102. package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +45 -45
  103. package/dist/components/docs/libraries/LibrariesDataBackendPage.js +69 -69
  104. package/dist/components/docs/libraries/LibrariesDataViewsPage.js +79 -79
  105. package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +129 -129
  106. package/dist/components/docs/libraries/LibrariesEvolutionPage.js +49 -49
  107. package/dist/components/docs/libraries/LibrariesGraphQLPage.js +73 -73
  108. package/dist/components/docs/libraries/LibrariesGrowthPage.js +35 -35
  109. package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +43 -43
  110. package/dist/components/docs/libraries/LibrariesObservabilityPage.js +53 -53
  111. package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +45 -45
  112. package/dist/components/docs/libraries/LibrariesOverviewPage.js +191 -191
  113. package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +47 -47
  114. package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +53 -53
  115. package/dist/components/docs/libraries/LibrariesResiliencePage.js +49 -49
  116. package/dist/components/docs/libraries/LibrariesRuntimePage.js +87 -87
  117. package/dist/components/docs/libraries/LibrariesSLOPage.js +47 -47
  118. package/dist/components/docs/libraries/LibrariesSchemaPage.js +139 -139
  119. package/dist/components/docs/libraries/LibrariesSupportBotPage.js +57 -57
  120. package/dist/components/docs/libraries/LibrariesTestingPage.js +49 -49
  121. package/dist/components/docs/libraries/LibrariesUIKitPage.js +107 -107
  122. package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +35 -35
  123. package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +89 -89
  124. package/dist/components/docs/libraries/index.js +1919 -1919
  125. package/dist/components/docs/manifesto/ManifestoPage.js +79 -79
  126. package/dist/components/docs/ops/AutoEvolutionOpsPage.js +59 -59
  127. package/dist/components/docs/ops/DistributedTracingOpsPage.js +33 -33
  128. package/dist/components/docs/ops/index.js +92 -92
  129. package/dist/components/docs/reference/DocsMarkdownContent.js +27 -27
  130. package/dist/components/docs/reference/DocsReferenceContent.js +34 -34
  131. package/dist/components/docs/reference/DocsReferenceIndexClient.js +23 -23
  132. package/dist/components/docs/reference/DocsReferenceIndexPage.js +26 -26
  133. package/dist/components/docs/reference/DocsReferencePage.js +37 -37
  134. package/dist/components/docs/reference/index.js +63 -63
  135. package/dist/components/docs/safety/SafetyAuditingPage.js +161 -161
  136. package/dist/components/docs/safety/SafetyMigrationsPage.js +169 -169
  137. package/dist/components/docs/safety/SafetyOverviewPage.js +99 -99
  138. package/dist/components/docs/safety/SafetyPDPPage.js +137 -137
  139. package/dist/components/docs/safety/SafetySecurityTrustPage.js +95 -95
  140. package/dist/components/docs/safety/SafetySigningPage.js +39 -39
  141. package/dist/components/docs/safety/SafetyTenantIsolationPage.js +33 -33
  142. package/dist/components/docs/safety/index.js +733 -733
  143. package/dist/components/docs/shared/StudioPrompt.js +9 -9
  144. package/dist/components/docs/specs/SpecsCapabilitiesPage.js +61 -61
  145. package/dist/components/docs/specs/SpecsDataViewsPage.js +119 -119
  146. package/dist/components/docs/specs/SpecsOverlaysPage.js +171 -171
  147. package/dist/components/docs/specs/SpecsOverviewPage.js +167 -167
  148. package/dist/components/docs/specs/SpecsPolicyPage.js +179 -179
  149. package/dist/components/docs/specs/SpecsWorkflowsPage.js +141 -141
  150. package/dist/components/docs/specs/index.js +838 -838
  151. package/dist/components/docs/studio/StudioBYOKPage.js +9 -9
  152. package/dist/components/docs/studio/StudioDeploymentsPage.js +9 -9
  153. package/dist/components/docs/studio/StudioGettingStartedPage.js +9 -9
  154. package/dist/components/docs/studio/StudioIntegrationsPage.js +9 -9
  155. package/dist/components/docs/studio/StudioOverviewPage.js +33 -33
  156. package/dist/components/docs/studio/StudioVisualBuilderPage.js +9 -9
  157. package/dist/components/docs/studio/index.js +78 -78
  158. package/dist/components/integrations/index.js +209 -209
  159. package/dist/components/integrations/molecules/IntegrationCard.js +33 -33
  160. package/dist/components/integrations/organisms/IntegrationMarketplace.js +71 -71
  161. package/dist/components/integrations/organisms/IntegrationSettings.js +98 -98
  162. package/dist/components/integrations/organisms/KnowledgeSourceList.js +40 -40
  163. package/dist/components/legal/PrivacyTemplate.js +477 -477
  164. package/dist/components/legal/TermsTemplate.js +421 -421
  165. package/dist/components/legal/index.js +898 -898
  166. package/dist/components/shared/FeatureGateNotice.js +13 -13
  167. package/dist/components/shared/index.js +13 -13
  168. package/dist/components/shell/WorkspaceHeader.js +37 -37
  169. package/dist/components/shell/WorkspaceProjectShellLayout.js +77 -77
  170. package/dist/components/shell/WorkspaceShellRenderer.d.ts +17 -0
  171. package/dist/components/shell/WorkspaceShellRenderer.js +229 -0
  172. package/dist/components/shell/WorkspaceSidebar.js +27 -27
  173. package/dist/components/shell/index.d.ts +1 -0
  174. package/dist/components/shell/index.js +140 -77
  175. package/dist/components/templates/index.js +272 -272
  176. package/dist/components/templates/messaging/ConversationList.js +27 -27
  177. package/dist/components/templates/messaging/MessageComposer.js +27 -27
  178. package/dist/components/templates/messaging/MessageThread.js +18 -18
  179. package/dist/components/templates/messaging/MessagingWorkspace.js +65 -65
  180. package/dist/components/templates/messaging/index.js +65 -65
  181. package/dist/components/templates/recipes/LanguageSwitcher.js +5 -5
  182. package/dist/components/templates/recipes/RecipeCard.js +26 -26
  183. package/dist/components/templates/recipes/RecipeDetail.js +33 -33
  184. package/dist/components/templates/recipes/RecipeList.js +80 -80
  185. package/dist/components/templates/recipes/index.js +80 -80
  186. package/dist/components/templates/todos/FilterBar.js +39 -39
  187. package/dist/components/templates/todos/TaskForm.js +43 -43
  188. package/dist/components/templates/todos/TaskItem.js +30 -30
  189. package/dist/components/templates/todos/TaskList.js +127 -127
  190. package/dist/components/templates/todos/index.js +127 -127
  191. package/dist/index.js +12323 -12260
  192. package/dist/infrastructure/elysia/index.js +8 -8
  193. package/dist/infrastructure/elysia/logger.js +8 -8
  194. package/dist/infrastructure/index.js +8 -8
  195. package/dist/libs/posthog/client.js +2 -2
  196. package/dist/node/application/index.js +8 -8
  197. package/dist/node/application/mcp/cliMcp.js +8 -8
  198. package/dist/node/application/mcp/contractsMcp.js +8 -8
  199. package/dist/node/application/mcp/docsMcp.js +8 -8
  200. package/dist/node/application/mcp/index.js +8 -8
  201. package/dist/node/application/mcp/internalMcp.js +8 -8
  202. package/dist/node/application/mcp/providerRankingMcp.js +8 -8
  203. package/dist/node/bundles/LibraryBundle.js +138 -0
  204. package/dist/node/bundles/index.js +138 -0
  205. package/dist/node/components/docs/DocsIndexPage.js +91 -91
  206. package/dist/node/components/docs/advanced/AdvancedMCPPage.js +125 -125
  207. package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +49 -49
  208. package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +51 -51
  209. package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +35 -35
  210. package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +177 -177
  211. package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +45 -45
  212. package/dist/node/components/docs/advanced/index.js +482 -482
  213. package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +107 -107
  214. package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +73 -73
  215. package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +117 -117
  216. package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +175 -175
  217. package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +71 -71
  218. package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +205 -205
  219. package/dist/node/components/docs/architecture/index.js +748 -748
  220. package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +117 -117
  221. package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +111 -111
  222. package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +117 -117
  223. package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +97 -97
  224. package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +125 -125
  225. package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +171 -171
  226. package/dist/node/components/docs/comparison/index.js +738 -738
  227. package/dist/node/components/docs/ecosystem/IntegrationsPage.js +45 -45
  228. package/dist/node/components/docs/ecosystem/PluginsPage.js +73 -73
  229. package/dist/node/components/docs/ecosystem/RegistryPage.js +37 -37
  230. package/dist/node/components/docs/ecosystem/TemplatesPage.js +56 -56
  231. package/dist/node/components/docs/ecosystem/index.js +211 -211
  232. package/dist/node/components/docs/examples/DocsExamplesPage.js +21 -21
  233. package/dist/node/components/docs/examples/index.js +21 -21
  234. package/dist/node/components/docs/getting-started/CLIPage.js +95 -95
  235. package/dist/node/components/docs/getting-started/CompatibilityPage.js +81 -81
  236. package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +57 -57
  237. package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +61 -61
  238. package/dist/node/components/docs/getting-started/HelloWorldPage.js +77 -77
  239. package/dist/node/components/docs/getting-started/InstallationPage.js +65 -65
  240. package/dist/node/components/docs/getting-started/StartHerePage.js +51 -51
  241. package/dist/node/components/docs/getting-started/TroubleshootingPage.js +73 -73
  242. package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +171 -171
  243. package/dist/node/components/docs/getting-started/index.js +731 -731
  244. package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +80 -80
  245. package/dist/node/components/docs/guides/GuideContractTypesPage.js +232 -232
  246. package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +82 -82
  247. package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +84 -84
  248. package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +324 -324
  249. package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +106 -106
  250. package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +78 -78
  251. package/dist/node/components/docs/guides/GuidesIndexPage.js +43 -43
  252. package/dist/node/components/docs/guides/index.js +975 -975
  253. package/dist/node/components/docs/index.js +10791 -10791
  254. package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +17 -17
  255. package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +47 -47
  256. package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +61 -61
  257. package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +49 -49
  258. package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +33 -33
  259. package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +65 -65
  260. package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +69 -69
  261. package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +65 -65
  262. package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +313 -313
  263. package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +101 -101
  264. package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +121 -121
  265. package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +49 -49
  266. package/dist/node/components/docs/integrations/IntegrationsResendPage.js +45 -45
  267. package/dist/node/components/docs/integrations/IntegrationsS3Page.js +57 -57
  268. package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +63 -63
  269. package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +139 -139
  270. package/dist/node/components/docs/integrations/IntegrationsStripePage.js +159 -159
  271. package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +61 -61
  272. package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +63 -63
  273. package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +65 -65
  274. package/dist/node/components/docs/integrations/index.js +1642 -1642
  275. package/dist/node/components/docs/intent/ContractFirstApiPage.js +51 -51
  276. package/dist/node/components/docs/intent/DeterministicCodegenPage.js +59 -59
  277. package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +85 -85
  278. package/dist/node/components/docs/intent/OpenapiAlternativePage.js +91 -91
  279. package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +59 -59
  280. package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +51 -51
  281. package/dist/node/components/docs/intent/index.js +396 -396
  282. package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +371 -371
  283. package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +79 -79
  284. package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +185 -185
  285. package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +187 -187
  286. package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +141 -141
  287. package/dist/node/components/docs/knowledge/index.js +963 -963
  288. package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +85 -85
  289. package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +63 -63
  290. package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +33 -33
  291. package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +43 -43
  292. package/dist/node/components/docs/libraries/LibrariesContractsPage.js +125 -125
  293. package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +45 -45
  294. package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +69 -69
  295. package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +79 -79
  296. package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +129 -129
  297. package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +49 -49
  298. package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +73 -73
  299. package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +35 -35
  300. package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +43 -43
  301. package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +53 -53
  302. package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +45 -45
  303. package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +191 -191
  304. package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +47 -47
  305. package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +53 -53
  306. package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +49 -49
  307. package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +87 -87
  308. package/dist/node/components/docs/libraries/LibrariesSLOPage.js +47 -47
  309. package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +139 -139
  310. package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +57 -57
  311. package/dist/node/components/docs/libraries/LibrariesTestingPage.js +49 -49
  312. package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +107 -107
  313. package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +35 -35
  314. package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +89 -89
  315. package/dist/node/components/docs/libraries/index.js +1919 -1919
  316. package/dist/node/components/docs/manifesto/ManifestoPage.js +79 -79
  317. package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +59 -59
  318. package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +33 -33
  319. package/dist/node/components/docs/ops/index.js +92 -92
  320. package/dist/node/components/docs/reference/DocsMarkdownContent.js +27 -27
  321. package/dist/node/components/docs/reference/DocsReferenceContent.js +34 -34
  322. package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +23 -23
  323. package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +26 -26
  324. package/dist/node/components/docs/reference/DocsReferencePage.js +37 -37
  325. package/dist/node/components/docs/reference/index.js +63 -63
  326. package/dist/node/components/docs/safety/SafetyAuditingPage.js +161 -161
  327. package/dist/node/components/docs/safety/SafetyMigrationsPage.js +169 -169
  328. package/dist/node/components/docs/safety/SafetyOverviewPage.js +99 -99
  329. package/dist/node/components/docs/safety/SafetyPDPPage.js +137 -137
  330. package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +95 -95
  331. package/dist/node/components/docs/safety/SafetySigningPage.js +39 -39
  332. package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +33 -33
  333. package/dist/node/components/docs/safety/index.js +733 -733
  334. package/dist/node/components/docs/shared/StudioPrompt.js +9 -9
  335. package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +61 -61
  336. package/dist/node/components/docs/specs/SpecsDataViewsPage.js +119 -119
  337. package/dist/node/components/docs/specs/SpecsOverlaysPage.js +171 -171
  338. package/dist/node/components/docs/specs/SpecsOverviewPage.js +167 -167
  339. package/dist/node/components/docs/specs/SpecsPolicyPage.js +179 -179
  340. package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +141 -141
  341. package/dist/node/components/docs/specs/index.js +838 -838
  342. package/dist/node/components/docs/studio/StudioBYOKPage.js +9 -9
  343. package/dist/node/components/docs/studio/StudioDeploymentsPage.js +9 -9
  344. package/dist/node/components/docs/studio/StudioGettingStartedPage.js +9 -9
  345. package/dist/node/components/docs/studio/StudioIntegrationsPage.js +9 -9
  346. package/dist/node/components/docs/studio/StudioOverviewPage.js +33 -33
  347. package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +9 -9
  348. package/dist/node/components/docs/studio/index.js +78 -78
  349. package/dist/node/components/integrations/index.js +209 -209
  350. package/dist/node/components/integrations/molecules/IntegrationCard.js +33 -33
  351. package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +71 -71
  352. package/dist/node/components/integrations/organisms/IntegrationSettings.js +98 -98
  353. package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +40 -40
  354. package/dist/node/components/legal/PrivacyTemplate.js +477 -477
  355. package/dist/node/components/legal/TermsTemplate.js +421 -421
  356. package/dist/node/components/legal/index.js +898 -898
  357. package/dist/node/components/shared/FeatureGateNotice.js +13 -13
  358. package/dist/node/components/shared/index.js +13 -13
  359. package/dist/node/components/shell/WorkspaceHeader.js +37 -37
  360. package/dist/node/components/shell/WorkspaceProjectShellLayout.js +77 -77
  361. package/dist/node/components/shell/WorkspaceShellRenderer.js +228 -0
  362. package/dist/node/components/shell/WorkspaceSidebar.js +27 -27
  363. package/dist/node/components/shell/index.js +140 -77
  364. package/dist/node/components/templates/index.js +272 -272
  365. package/dist/node/components/templates/messaging/ConversationList.js +27 -27
  366. package/dist/node/components/templates/messaging/MessageComposer.js +27 -27
  367. package/dist/node/components/templates/messaging/MessageThread.js +18 -18
  368. package/dist/node/components/templates/messaging/MessagingWorkspace.js +65 -65
  369. package/dist/node/components/templates/messaging/index.js +65 -65
  370. package/dist/node/components/templates/recipes/LanguageSwitcher.js +5 -5
  371. package/dist/node/components/templates/recipes/RecipeCard.js +26 -26
  372. package/dist/node/components/templates/recipes/RecipeDetail.js +33 -33
  373. package/dist/node/components/templates/recipes/RecipeList.js +80 -80
  374. package/dist/node/components/templates/recipes/index.js +80 -80
  375. package/dist/node/components/templates/todos/FilterBar.js +39 -39
  376. package/dist/node/components/templates/todos/TaskForm.js +43 -43
  377. package/dist/node/components/templates/todos/TaskItem.js +30 -30
  378. package/dist/node/components/templates/todos/TaskList.js +127 -127
  379. package/dist/node/components/templates/todos/index.js +127 -127
  380. package/dist/node/index.js +12323 -12260
  381. package/dist/node/infrastructure/elysia/index.js +8 -8
  382. package/dist/node/infrastructure/elysia/logger.js +8 -8
  383. package/dist/node/infrastructure/index.js +8 -8
  384. package/dist/node/libs/posthog/client.js +2 -2
  385. package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +3 -3
  386. package/dist/node/presentation/features/atoms/FeatureIcon/index.js +3 -3
  387. package/dist/node/presentation/features/atoms/index.js +3 -3
  388. package/dist/node/presentation/features/index.js +915 -915
  389. package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +101 -101
  390. package/dist/node/presentation/features/molecules/FeatureCard/index.js +101 -101
  391. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +15 -15
  392. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +15 -15
  393. package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +23 -23
  394. package/dist/node/presentation/features/molecules/FeatureFilters/index.js +23 -23
  395. package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +67 -67
  396. package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +67 -67
  397. package/dist/node/presentation/features/molecules/index.js +139 -139
  398. package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +7 -7
  399. package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +57 -57
  400. package/dist/node/presentation/features/organisms/FeatureDetail/index.js +57 -57
  401. package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +183 -183
  402. package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +183 -183
  403. package/dist/node/presentation/features/organisms/FeatureEventsList.js +7 -7
  404. package/dist/node/presentation/features/organisms/FeatureFormsList.js +7 -7
  405. package/dist/node/presentation/features/organisms/FeatureOperationsList.js +7 -7
  406. package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +7 -7
  407. package/dist/node/presentation/features/organisms/index.js +275 -275
  408. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +126 -126
  409. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +126 -126
  410. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +16 -16
  411. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +16 -16
  412. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +112 -112
  413. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +112 -112
  414. package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +16 -16
  415. package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +16 -16
  416. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +126 -126
  417. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +126 -126
  418. package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +16 -16
  419. package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +16 -16
  420. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +110 -110
  421. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +110 -110
  422. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +16 -16
  423. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +16 -16
  424. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +66 -66
  425. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +66 -66
  426. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +112 -112
  427. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +112 -112
  428. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +16 -16
  429. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +16 -16
  430. package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +3 -3
  431. package/dist/presentation/features/atoms/FeatureIcon/index.js +3 -3
  432. package/dist/presentation/features/atoms/index.js +3 -3
  433. package/dist/presentation/features/index.js +915 -915
  434. package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +101 -101
  435. package/dist/presentation/features/molecules/FeatureCard/index.js +101 -101
  436. package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +15 -15
  437. package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +15 -15
  438. package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +23 -23
  439. package/dist/presentation/features/molecules/FeatureFilters/index.js +23 -23
  440. package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +67 -67
  441. package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +67 -67
  442. package/dist/presentation/features/molecules/index.js +139 -139
  443. package/dist/presentation/features/organisms/FeatureDataViewsList.js +7 -7
  444. package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +57 -57
  445. package/dist/presentation/features/organisms/FeatureDetail/index.js +57 -57
  446. package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +183 -183
  447. package/dist/presentation/features/organisms/FeatureDiscovery/index.js +183 -183
  448. package/dist/presentation/features/organisms/FeatureEventsList.js +7 -7
  449. package/dist/presentation/features/organisms/FeatureFormsList.js +7 -7
  450. package/dist/presentation/features/organisms/FeatureOperationsList.js +7 -7
  451. package/dist/presentation/features/organisms/FeaturePresentationsList.js +7 -7
  452. package/dist/presentation/features/organisms/index.js +275 -275
  453. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +126 -126
  454. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +126 -126
  455. package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +16 -16
  456. package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +16 -16
  457. package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +112 -112
  458. package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +112 -112
  459. package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +16 -16
  460. package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +16 -16
  461. package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +126 -126
  462. package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +126 -126
  463. package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +16 -16
  464. package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +16 -16
  465. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +110 -110
  466. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +110 -110
  467. package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +16 -16
  468. package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +16 -16
  469. package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +66 -66
  470. package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +66 -66
  471. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +112 -112
  472. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +112 -112
  473. package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +16 -16
  474. package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +16 -16
  475. package/package.json +71 -22
  476. package/src/bundles/LibraryBundle.ts +152 -0
  477. package/src/bundles/index.ts +1 -0
  478. package/src/components/shell/WorkspaceShellRenderer.tsx +90 -0
  479. package/src/components/shell/index.ts +1 -0
@@ -1,1504 +1,1504 @@
1
1
  // src/components/docs/comparison/ComparisonAutomationPlatformsPage.tsx
2
- import { jsxDEV } from "react/jsx-dev-runtime";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  function ComparisonAutomationPlatformsPage() {
4
- return /* @__PURE__ */ jsxDEV("div", {
4
+ return /* @__PURE__ */ jsxs("div", {
5
5
  className: "space-y-8",
6
6
  children: [
7
- /* @__PURE__ */ jsxDEV("div", {
7
+ /* @__PURE__ */ jsxs("div", {
8
8
  className: "space-y-4",
9
9
  children: [
10
- /* @__PURE__ */ jsxDEV("h1", {
10
+ /* @__PURE__ */ jsx("h1", {
11
11
  className: "text-4xl font-bold",
12
12
  children: "Automation platforms"
13
- }, undefined, false, undefined, this),
14
- /* @__PURE__ */ jsxDEV("p", {
13
+ }),
14
+ /* @__PURE__ */ jsx("p", {
15
15
  className: "text-muted-foreground",
16
16
  children: "Automation platforms connect apps and automate tasks through triggers and actions. They serve operations and non-technical users well but stop short of generating full applications or enforcing fine-grained policies."
17
- }, undefined, false, undefined, this)
17
+ })
18
18
  ]
19
- }, undefined, true, undefined, this),
20
- /* @__PURE__ */ jsxDEV("div", {
19
+ }),
20
+ /* @__PURE__ */ jsxs("div", {
21
21
  className: "space-y-4",
22
22
  children: [
23
- /* @__PURE__ */ jsxDEV("h2", {
23
+ /* @__PURE__ */ jsx("h2", {
24
24
  className: "text-2xl font-bold",
25
25
  children: "Feature comparison"
26
- }, undefined, false, undefined, this),
27
- /* @__PURE__ */ jsxDEV("div", {
26
+ }),
27
+ /* @__PURE__ */ jsx("div", {
28
28
  className: "border-border/50 overflow-x-auto rounded-lg border",
29
- children: /* @__PURE__ */ jsxDEV("table", {
29
+ children: /* @__PURE__ */ jsxs("table", {
30
30
  className: "w-full text-left text-sm",
31
31
  children: [
32
- /* @__PURE__ */ jsxDEV("thead", {
32
+ /* @__PURE__ */ jsx("thead", {
33
33
  className: "bg-card/50",
34
- children: /* @__PURE__ */ jsxDEV("tr", {
34
+ children: /* @__PURE__ */ jsxs("tr", {
35
35
  className: "border-border/50 border-b",
36
36
  children: [
37
- /* @__PURE__ */ jsxDEV("th", {
37
+ /* @__PURE__ */ jsx("th", {
38
38
  className: "px-4 py-3 font-semibold",
39
39
  children: "Feature"
40
- }, undefined, false, undefined, this),
41
- /* @__PURE__ */ jsxDEV("th", {
40
+ }),
41
+ /* @__PURE__ */ jsx("th", {
42
42
  className: "px-4 py-3 font-semibold",
43
43
  children: "Zapier"
44
- }, undefined, false, undefined, this),
45
- /* @__PURE__ */ jsxDEV("th", {
44
+ }),
45
+ /* @__PURE__ */ jsx("th", {
46
46
  className: "px-4 py-3 font-semibold",
47
47
  children: "Make (Integromat)"
48
- }, undefined, false, undefined, this),
49
- /* @__PURE__ */ jsxDEV("th", {
48
+ }),
49
+ /* @__PURE__ */ jsx("th", {
50
50
  className: "px-4 py-3 font-semibold",
51
51
  children: "n8n"
52
- }, undefined, false, undefined, this),
53
- /* @__PURE__ */ jsxDEV("th", {
52
+ }),
53
+ /* @__PURE__ */ jsx("th", {
54
54
  className: "px-4 py-3 font-semibold",
55
55
  children: "Pipedream"
56
- }, undefined, false, undefined, this)
56
+ })
57
57
  ]
58
- }, undefined, true, undefined, this)
59
- }, undefined, false, undefined, this),
60
- /* @__PURE__ */ jsxDEV("tbody", {
58
+ })
59
+ }),
60
+ /* @__PURE__ */ jsxs("tbody", {
61
61
  className: "divide-border/50 divide-y",
62
62
  children: [
63
- /* @__PURE__ */ jsxDEV("tr", {
63
+ /* @__PURE__ */ jsxs("tr", {
64
64
  children: [
65
- /* @__PURE__ */ jsxDEV("td", {
65
+ /* @__PURE__ */ jsx("td", {
66
66
  className: "px-4 py-3 align-top font-semibold",
67
67
  children: "Workflow model"
68
- }, undefined, false, undefined, this),
69
- /* @__PURE__ */ jsxDEV("td", {
68
+ }),
69
+ /* @__PURE__ */ jsx("td", {
70
70
  className: "px-4 py-3 align-top",
71
71
  children: "Zaps: trigger + one or more actions"
72
- }, undefined, false, undefined, this),
73
- /* @__PURE__ */ jsxDEV("td", {
72
+ }),
73
+ /* @__PURE__ */ jsx("td", {
74
74
  className: "px-4 py-3 align-top",
75
75
  children: "Real-time visual orchestration for AI agents and automations"
76
- }, undefined, false, undefined, this),
77
- /* @__PURE__ */ jsxDEV("td", {
76
+ }),
77
+ /* @__PURE__ */ jsx("td", {
78
78
  className: "px-4 py-3 align-top",
79
79
  children: "Node-based workflow builder with drag-and-drop and code; build multi-step AI agents"
80
- }, undefined, false, undefined, this),
81
- /* @__PURE__ */ jsxDEV("td", {
80
+ }),
81
+ /* @__PURE__ */ jsx("td", {
82
82
  className: "px-4 py-3 align-top",
83
83
  children: "Workflows connect any API; Pipedream Connect SDK adds integrations quickly"
84
- }, undefined, false, undefined, this)
84
+ })
85
85
  ]
86
- }, undefined, true, undefined, this),
87
- /* @__PURE__ */ jsxDEV("tr", {
86
+ }),
87
+ /* @__PURE__ */ jsxs("tr", {
88
88
  children: [
89
- /* @__PURE__ */ jsxDEV("td", {
89
+ /* @__PURE__ */ jsx("td", {
90
90
  className: "px-4 py-3 align-top font-semibold",
91
91
  children: "Visual builder?"
92
- }, undefined, false, undefined, this),
93
- /* @__PURE__ */ jsxDEV("td", {
92
+ }),
93
+ /* @__PURE__ */ jsx("td", {
94
94
  className: "px-4 py-3 align-top",
95
95
  children: "Yes (simple; web-based)."
96
- }, undefined, false, undefined, this),
97
- /* @__PURE__ */ jsxDEV("td", {
96
+ }),
97
+ /* @__PURE__ */ jsx("td", {
98
98
  className: "px-4 py-3 align-top",
99
99
  children: "Yes; AI-assisted editor"
100
- }, undefined, false, undefined, this),
101
- /* @__PURE__ */ jsxDEV("td", {
100
+ }),
101
+ /* @__PURE__ */ jsx("td", {
102
102
  className: "px-4 py-3 align-top",
103
103
  children: "Yes; visual canvas."
104
- }, undefined, false, undefined, this),
105
- /* @__PURE__ */ jsxDEV("td", {
104
+ }),
105
+ /* @__PURE__ */ jsx("td", {
106
106
  className: "px-4 py-3 align-top",
107
107
  children: "Code-centric editor; no visual UI builder"
108
- }, undefined, false, undefined, this)
108
+ })
109
109
  ]
110
- }, undefined, true, undefined, this),
111
- /* @__PURE__ */ jsxDEV("tr", {
110
+ }),
111
+ /* @__PURE__ */ jsxs("tr", {
112
112
  children: [
113
- /* @__PURE__ */ jsxDEV("td", {
113
+ /* @__PURE__ */ jsx("td", {
114
114
  className: "px-4 py-3 align-top font-semibold",
115
115
  children: "Self-host?"
116
- }, undefined, false, undefined, this),
117
- /* @__PURE__ */ jsxDEV("td", {
116
+ }),
117
+ /* @__PURE__ */ jsx("td", {
118
118
  className: "px-4 py-3 align-top",
119
119
  children: "No (cloud only)."
120
- }, undefined, false, undefined, this),
121
- /* @__PURE__ */ jsxDEV("td", {
120
+ }),
121
+ /* @__PURE__ */ jsx("td", {
122
122
  className: "px-4 py-3 align-top",
123
123
  children: "Cloud only."
124
- }, undefined, false, undefined, this),
125
- /* @__PURE__ */ jsxDEV("td", {
124
+ }),
125
+ /* @__PURE__ */ jsx("td", {
126
126
  className: "px-4 py-3 align-top",
127
127
  children: "Yes (Docker, self-host)"
128
- }, undefined, false, undefined, this),
129
- /* @__PURE__ */ jsxDEV("td", {
128
+ }),
129
+ /* @__PURE__ */ jsx("td", {
130
130
  className: "px-4 py-3 align-top",
131
131
  children: "Cloud only (hosted)."
132
- }, undefined, false, undefined, this)
132
+ })
133
133
  ]
134
- }, undefined, true, undefined, this),
135
- /* @__PURE__ */ jsxDEV("tr", {
134
+ }),
135
+ /* @__PURE__ */ jsxs("tr", {
136
136
  children: [
137
- /* @__PURE__ */ jsxDEV("td", {
137
+ /* @__PURE__ */ jsx("td", {
138
138
  className: "px-4 py-3 align-top font-semibold",
139
139
  children: "Integrations & AI"
140
- }, undefined, false, undefined, this),
141
- /* @__PURE__ */ jsxDEV("td", {
140
+ }),
141
+ /* @__PURE__ */ jsx("td", {
142
142
  className: "px-4 py-3 align-top",
143
143
  children: "Connects almost 8 000 apps; limited AI features."
144
- }, undefined, false, undefined, this),
145
- /* @__PURE__ */ jsxDEV("td", {
144
+ }),
145
+ /* @__PURE__ */ jsx("td", {
146
146
  className: "px-4 py-3 align-top",
147
147
  children: "3 000+ pre-built apps; supports GenAI tools; GDPR/SOC2 and SSO"
148
- }, undefined, false, undefined, this),
149
- /* @__PURE__ */ jsxDEV("td", {
148
+ }),
149
+ /* @__PURE__ */ jsx("td", {
150
150
  className: "px-4 py-3 align-top",
151
151
  children: "Integrates LLMs; allows JS or Python code and library imports; chatbots with Slack/Teams"
152
- }, undefined, false, undefined, this),
153
- /* @__PURE__ */ jsxDEV("td", {
152
+ }),
153
+ /* @__PURE__ */ jsx("td", {
154
154
  className: "px-4 py-3 align-top",
155
155
  children: "MCP servers add 3 000+ APIs and 10 000+ tools to agents; AI agent builder prompts and deploys agents; SOC 2/ HIPAA/GDPR compliant"
156
- }, undefined, false, undefined, this)
156
+ })
157
157
  ]
158
- }, undefined, true, undefined, this),
159
- /* @__PURE__ */ jsxDEV("tr", {
158
+ }),
159
+ /* @__PURE__ */ jsxs("tr", {
160
160
  children: [
161
- /* @__PURE__ */ jsxDEV("td", {
161
+ /* @__PURE__ */ jsx("td", {
162
162
  className: "px-4 py-3 align-top font-semibold",
163
163
  children: "Policy & UI generation"
164
- }, undefined, false, undefined, this),
165
- /* @__PURE__ */ jsxDEV("td", {
164
+ }),
165
+ /* @__PURE__ */ jsx("td", {
166
166
  className: "px-4 py-3 align-top",
167
167
  children: "No policy engine; does not generate user interfaces."
168
- }, undefined, false, undefined, this),
169
- /* @__PURE__ */ jsxDEV("td", {
168
+ }),
169
+ /* @__PURE__ */ jsx("td", {
170
170
  className: "px-4 py-3 align-top",
171
171
  children: "No policy engine; does not generate UIs beyond a workflow dashboard."
172
- }, undefined, false, undefined, this),
173
- /* @__PURE__ */ jsxDEV("td", {
172
+ }),
173
+ /* @__PURE__ */ jsx("td", {
174
174
  className: "px-4 py-3 align-top",
175
175
  children: "No policy engine; no UI builder"
176
- }, undefined, false, undefined, this),
177
- /* @__PURE__ */ jsxDEV("td", {
176
+ }),
177
+ /* @__PURE__ */ jsx("td", {
178
178
  className: "px-4 py-3 align-top",
179
179
  children: "No policy engine; does not generate UI."
180
- }, undefined, false, undefined, this)
180
+ })
181
181
  ]
182
- }, undefined, true, undefined, this)
182
+ })
183
183
  ]
184
- }, undefined, true, undefined, this)
184
+ })
185
185
  ]
186
- }, undefined, true, undefined, this)
187
- }, undefined, false, undefined, this)
186
+ })
187
+ })
188
188
  ]
189
- }, undefined, true, undefined, this),
190
- /* @__PURE__ */ jsxDEV("div", {
189
+ }),
190
+ /* @__PURE__ */ jsxs("div", {
191
191
  className: "space-y-3",
192
192
  children: [
193
- /* @__PURE__ */ jsxDEV("h2", {
193
+ /* @__PURE__ */ jsx("h2", {
194
194
  className: "text-2xl font-bold",
195
195
  children: "Why ContractSpec differs"
196
- }, undefined, false, undefined, this),
197
- /* @__PURE__ */ jsxDEV("ul", {
196
+ }),
197
+ /* @__PURE__ */ jsxs("ul", {
198
198
  className: "text-muted-foreground space-y-2",
199
199
  children: [
200
- /* @__PURE__ */ jsxDEV("li", {
200
+ /* @__PURE__ */ jsxs("li", {
201
201
  children: [
202
- /* @__PURE__ */ jsxDEV("strong", {
202
+ /* @__PURE__ */ jsx("strong", {
203
203
  children: "Full application generation"
204
- }, undefined, false, undefined, this),
204
+ }),
205
205
  " – ContractSpec compiles specs into back-end, events and user interfaces for both web and mobile."
206
206
  ]
207
- }, undefined, true, undefined, this),
208
- /* @__PURE__ */ jsxDEV("li", {
207
+ }),
208
+ /* @__PURE__ */ jsxs("li", {
209
209
  children: [
210
- /* @__PURE__ */ jsxDEV("strong", {
210
+ /* @__PURE__ */ jsx("strong", {
211
211
  children: "Policy enforcement"
212
- }, undefined, false, undefined, this),
212
+ }),
213
213
  " – A built-in policy engine governs PII access and mutations across the UI."
214
214
  ]
215
- }, undefined, true, undefined, this),
216
- /* @__PURE__ */ jsxDEV("li", {
215
+ }),
216
+ /* @__PURE__ */ jsxs("li", {
217
217
  children: [
218
- /* @__PURE__ */ jsxDEV("strong", {
218
+ /* @__PURE__ */ jsx("strong", {
219
219
  children: "Customisation via overlays"
220
- }, undefined, false, undefined, this),
220
+ }),
221
221
  " – Non-technical users can safely personalise layouts while respecting policies."
222
222
  ]
223
- }, undefined, true, undefined, this),
224
- /* @__PURE__ */ jsxDEV("li", {
223
+ }),
224
+ /* @__PURE__ */ jsxs("li", {
225
225
  children: [
226
- /* @__PURE__ */ jsxDEV("strong", {
226
+ /* @__PURE__ */ jsx("strong", {
227
227
  children: "Extensible capabilities"
228
- }, undefined, false, undefined, this),
228
+ }),
229
229
  " – Connect to external APIs and services via capability providers while maintaining type safety."
230
230
  ]
231
- }, undefined, true, undefined, this)
231
+ })
232
232
  ]
233
- }, undefined, true, undefined, this),
234
- /* @__PURE__ */ jsxDEV("p", {
233
+ }),
234
+ /* @__PURE__ */ jsx("p", {
235
235
  className: "text-muted-foreground",
236
236
  children: "Automation tools simplify integrations and tasks; ContractSpec goes further by generating a complete, policy-safe application around your data and processes."
237
- }, undefined, false, undefined, this)
237
+ })
238
238
  ]
239
- }, undefined, true, undefined, this)
239
+ })
240
240
  ]
241
- }, undefined, true, undefined, this);
241
+ });
242
242
  }
243
243
 
244
244
  // src/components/docs/comparison/ComparisonEnterprisePlatformsPage.tsx
245
245
  import Link from "@contractspec/lib.ui-link";
246
- import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
246
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
247
247
  function ComparisonEnterprisePlatformsPage() {
248
- return /* @__PURE__ */ jsxDEV2("div", {
248
+ return /* @__PURE__ */ jsxs2("div", {
249
249
  className: "space-y-8",
250
250
  children: [
251
- /* @__PURE__ */ jsxDEV2("div", {
251
+ /* @__PURE__ */ jsxs2("div", {
252
252
  className: "space-y-4",
253
253
  children: [
254
- /* @__PURE__ */ jsxDEV2("h1", {
254
+ /* @__PURE__ */ jsx2("h1", {
255
255
  className: "text-4xl font-bold",
256
256
  children: "Enterprise orchestration platforms"
257
- }, undefined, false, undefined, this),
258
- /* @__PURE__ */ jsxDEV2("p", {
257
+ }),
258
+ /* @__PURE__ */ jsx2("p", {
259
259
  className: "text-muted-foreground",
260
260
  children: "Enterprise orchestration platforms manage mission-critical workloads and integrate deeply with ERP systems. They prioritise governance, reliability and compliance, but they do not provide spec-driven app generation or per-user customisation."
261
- }, undefined, false, undefined, this)
261
+ })
262
262
  ]
263
- }, undefined, true, undefined, this),
264
- /* @__PURE__ */ jsxDEV2("div", {
263
+ }),
264
+ /* @__PURE__ */ jsxs2("div", {
265
265
  className: "space-y-4",
266
266
  children: [
267
- /* @__PURE__ */ jsxDEV2("h2", {
267
+ /* @__PURE__ */ jsx2("h2", {
268
268
  className: "text-2xl font-bold",
269
269
  children: "Redwood RunMyJobs"
270
- }, undefined, false, undefined, this),
271
- /* @__PURE__ */ jsxDEV2("p", {
270
+ }),
271
+ /* @__PURE__ */ jsxs2("p", {
272
272
  className: "text-muted-foreground",
273
273
  children: [
274
- /* @__PURE__ */ jsxDEV2(Link, {
274
+ /* @__PURE__ */ jsx2(Link, {
275
275
  href: "https://www.redwood.com/workload-automation/",
276
276
  className: "hover:text-foreground underline decoration-dotted underline-offset-4",
277
277
  target: "_blank",
278
278
  rel: "noreferrer",
279
279
  children: "RunMyJobs by Redwood"
280
- }, undefined, false, undefined, this),
280
+ }),
281
281
  " ",
282
282
  "is a cloud-native service orchestration and automation platform. Key attributes include:"
283
283
  ]
284
- }, undefined, true, undefined, this),
285
- /* @__PURE__ */ jsxDEV2("ul", {
284
+ }),
285
+ /* @__PURE__ */ jsxs2("ul", {
286
286
  className: "text-muted-foreground space-y-2",
287
287
  children: [
288
- /* @__PURE__ */ jsxDEV2("li", {
288
+ /* @__PURE__ */ jsxs2("li", {
289
289
  children: [
290
- /* @__PURE__ */ jsxDEV2("strong", {
290
+ /* @__PURE__ */ jsx2("strong", {
291
291
  children: "Self-service portal."
292
- }, undefined, false, undefined, this),
292
+ }),
293
293
  " Business users can run and customise workloads while IT ensures governance and compliance"
294
294
  ]
295
- }, undefined, true, undefined, this),
296
- /* @__PURE__ */ jsxDEV2("li", {
295
+ }),
296
+ /* @__PURE__ */ jsxs2("li", {
297
297
  children: [
298
- /* @__PURE__ */ jsxDEV2("strong", {
298
+ /* @__PURE__ */ jsx2("strong", {
299
299
  children: "Full-stack orchestration."
300
- }, undefined, false, undefined, this),
300
+ }),
301
301
  " Integrates with both SAP and non-SAP systems; Redwood is recognised as a Leader in Gartner’s Magic Quadrant for service orchestration"
302
302
  ]
303
- }, undefined, true, undefined, this),
304
- /* @__PURE__ */ jsxDEV2("li", {
303
+ }),
304
+ /* @__PURE__ */ jsxs2("li", {
305
305
  children: [
306
- /* @__PURE__ */ jsxDEV2("strong", {
306
+ /* @__PURE__ */ jsx2("strong", {
307
307
  children: "Observability and AI insights."
308
- }, undefined, false, undefined, this),
308
+ }),
309
309
  " Dashboards and AI-enhanced analytics identify bottlenecks and forecast issues"
310
310
  ]
311
- }, undefined, true, undefined, this),
312
- /* @__PURE__ */ jsxDEV2("li", {
311
+ }),
312
+ /* @__PURE__ */ jsxs2("li", {
313
313
  children: [
314
- /* @__PURE__ */ jsxDEV2("strong", {
314
+ /* @__PURE__ */ jsx2("strong", {
315
315
  children: "Deep SAP integration."
316
- }, undefined, false, undefined, this),
316
+ }),
317
317
  " Supports SAP’s latest technologies and orchestrates mission-critical business processes"
318
318
  ]
319
- }, undefined, true, undefined, this),
320
- /* @__PURE__ */ jsxDEV2("li", {
319
+ }),
320
+ /* @__PURE__ */ jsxs2("li", {
321
321
  children: [
322
- /* @__PURE__ */ jsxDEV2("strong", {
322
+ /* @__PURE__ */ jsx2("strong", {
323
323
  children: "Connectors & wizard."
324
- }, undefined, false, undefined, this),
324
+ }),
325
325
  " Provides pre-built connectors and a wizard to link on-prem and cloud systems"
326
326
  ]
327
- }, undefined, true, undefined, this)
327
+ })
328
328
  ]
329
- }, undefined, true, undefined, this)
329
+ })
330
330
  ]
331
- }, undefined, true, undefined, this),
332
- /* @__PURE__ */ jsxDEV2("div", {
331
+ }),
332
+ /* @__PURE__ */ jsxs2("div", {
333
333
  className: "space-y-4",
334
334
  children: [
335
- /* @__PURE__ */ jsxDEV2("h3", {
335
+ /* @__PURE__ */ jsx2("h3", {
336
336
  className: "text-xl font-semibold",
337
337
  children: "Comparison with ContractSpec"
338
- }, undefined, false, undefined, this),
339
- /* @__PURE__ */ jsxDEV2("div", {
338
+ }),
339
+ /* @__PURE__ */ jsx2("div", {
340
340
  className: "border-border/50 overflow-x-auto rounded-lg border",
341
- children: /* @__PURE__ */ jsxDEV2("table", {
341
+ children: /* @__PURE__ */ jsxs2("table", {
342
342
  className: "w-full text-left text-sm",
343
343
  children: [
344
- /* @__PURE__ */ jsxDEV2("thead", {
344
+ /* @__PURE__ */ jsx2("thead", {
345
345
  className: "bg-card/50",
346
- children: /* @__PURE__ */ jsxDEV2("tr", {
346
+ children: /* @__PURE__ */ jsxs2("tr", {
347
347
  className: "border-border/50 border-b",
348
348
  children: [
349
- /* @__PURE__ */ jsxDEV2("th", {
349
+ /* @__PURE__ */ jsx2("th", {
350
350
  className: "px-4 py-3 font-semibold",
351
351
  children: "Aspect"
352
- }, undefined, false, undefined, this),
353
- /* @__PURE__ */ jsxDEV2("th", {
352
+ }),
353
+ /* @__PURE__ */ jsx2("th", {
354
354
  className: "px-4 py-3 font-semibold",
355
355
  children: "RunMyJobs"
356
- }, undefined, false, undefined, this),
357
- /* @__PURE__ */ jsxDEV2("th", {
356
+ }),
357
+ /* @__PURE__ */ jsx2("th", {
358
358
  className: "px-4 py-3 font-semibold",
359
359
  children: "ContractSpec"
360
- }, undefined, false, undefined, this)
360
+ })
361
361
  ]
362
- }, undefined, true, undefined, this)
363
- }, undefined, false, undefined, this),
364
- /* @__PURE__ */ jsxDEV2("tbody", {
362
+ })
363
+ }),
364
+ /* @__PURE__ */ jsxs2("tbody", {
365
365
  className: "divide-border/50 divide-y",
366
366
  children: [
367
- /* @__PURE__ */ jsxDEV2("tr", {
367
+ /* @__PURE__ */ jsxs2("tr", {
368
368
  children: [
369
- /* @__PURE__ */ jsxDEV2("td", {
369
+ /* @__PURE__ */ jsx2("td", {
370
370
  className: "px-4 py-3 align-top",
371
- children: /* @__PURE__ */ jsxDEV2("strong", {
371
+ children: /* @__PURE__ */ jsx2("strong", {
372
372
  children: "Target user"
373
- }, undefined, false, undefined, this)
374
- }, undefined, false, undefined, this),
375
- /* @__PURE__ */ jsxDEV2("td", {
373
+ })
374
+ }),
375
+ /* @__PURE__ */ jsx2("td", {
376
376
  className: "px-4 py-3 align-top",
377
377
  children: "Enterprise IT and operations teams automating SAP and mission-critical workflows."
378
- }, undefined, false, undefined, this),
379
- /* @__PURE__ */ jsxDEV2("td", {
378
+ }),
379
+ /* @__PURE__ */ jsx2("td", {
380
380
  className: "px-4 py-3 align-top",
381
381
  children: "Developers, product teams and SMBs wanting to generate policy-safe apps with customisable UIs."
382
- }, undefined, false, undefined, this)
382
+ })
383
383
  ]
384
- }, undefined, true, undefined, this),
385
- /* @__PURE__ */ jsxDEV2("tr", {
384
+ }),
385
+ /* @__PURE__ */ jsxs2("tr", {
386
386
  children: [
387
- /* @__PURE__ */ jsxDEV2("td", {
387
+ /* @__PURE__ */ jsx2("td", {
388
388
  className: "px-4 py-3 align-top",
389
- children: /* @__PURE__ */ jsxDEV2("strong", {
389
+ children: /* @__PURE__ */ jsx2("strong", {
390
390
  children: "Workload focus"
391
- }, undefined, false, undefined, this)
392
- }, undefined, false, undefined, this),
393
- /* @__PURE__ */ jsxDEV2("td", {
391
+ })
392
+ }),
393
+ /* @__PURE__ */ jsx2("td", {
394
394
  className: "px-4 py-3 align-top",
395
395
  children: "Service orchestration and job scheduling across ERP/legacy systems"
396
- }, undefined, false, undefined, this),
397
- /* @__PURE__ */ jsxDEV2("td", {
396
+ }),
397
+ /* @__PURE__ */ jsx2("td", {
398
398
  className: "px-4 py-3 align-top",
399
399
  children: "End-to-end application generation with back-end, UI and policies."
400
- }, undefined, false, undefined, this)
400
+ })
401
401
  ]
402
- }, undefined, true, undefined, this),
403
- /* @__PURE__ */ jsxDEV2("tr", {
402
+ }),
403
+ /* @__PURE__ */ jsxs2("tr", {
404
404
  children: [
405
- /* @__PURE__ */ jsxDEV2("td", {
405
+ /* @__PURE__ */ jsx2("td", {
406
406
  className: "px-4 py-3 align-top",
407
- children: /* @__PURE__ */ jsxDEV2("strong", {
407
+ children: /* @__PURE__ */ jsx2("strong", {
408
408
  children: "User interface"
409
- }, undefined, false, undefined, this)
410
- }, undefined, false, undefined, this),
411
- /* @__PURE__ */ jsxDEV2("td", {
409
+ })
410
+ }),
411
+ /* @__PURE__ */ jsx2("td", {
412
412
  className: "px-4 py-3 align-top",
413
413
  children: "Self-service portal to run/monitor jobs; no custom UI generation for new apps."
414
- }, undefined, false, undefined, this),
415
- /* @__PURE__ */ jsxDEV2("td", {
414
+ }),
415
+ /* @__PURE__ */ jsx2("td", {
416
416
  className: "px-4 py-3 align-top",
417
417
  children: "Generates React/React-Native UIs from specs; users can personalise layout via overlays."
418
- }, undefined, false, undefined, this)
418
+ })
419
419
  ]
420
- }, undefined, true, undefined, this),
421
- /* @__PURE__ */ jsxDEV2("tr", {
420
+ }),
421
+ /* @__PURE__ */ jsxs2("tr", {
422
422
  children: [
423
- /* @__PURE__ */ jsxDEV2("td", {
423
+ /* @__PURE__ */ jsx2("td", {
424
424
  className: "px-4 py-3 align-top",
425
- children: /* @__PURE__ */ jsxDEV2("strong", {
425
+ children: /* @__PURE__ */ jsx2("strong", {
426
426
  children: "Open source"
427
- }, undefined, false, undefined, this)
428
- }, undefined, false, undefined, this),
429
- /* @__PURE__ */ jsxDEV2("td", {
427
+ })
428
+ }),
429
+ /* @__PURE__ */ jsx2("td", {
430
430
  className: "px-4 py-3 align-top",
431
431
  children: "Proprietary SaaS; enterprise agreements."
432
- }, undefined, false, undefined, this),
433
- /* @__PURE__ */ jsxDEV2("td", {
432
+ }),
433
+ /* @__PURE__ */ jsx2("td", {
434
434
  className: "px-4 py-3 align-top",
435
435
  children: "Core compiler is proprietary; SDK and certain modules may be open-source; offers hosted and on-prem options."
436
- }, undefined, false, undefined, this)
436
+ })
437
437
  ]
438
- }, undefined, true, undefined, this),
439
- /* @__PURE__ */ jsxDEV2("tr", {
438
+ }),
439
+ /* @__PURE__ */ jsxs2("tr", {
440
440
  children: [
441
- /* @__PURE__ */ jsxDEV2("td", {
441
+ /* @__PURE__ */ jsx2("td", {
442
442
  className: "px-4 py-3 align-top",
443
- children: /* @__PURE__ */ jsxDEV2("strong", {
443
+ children: /* @__PURE__ */ jsx2("strong", {
444
444
  children: "Policy & personalisation"
445
- }, undefined, false, undefined, this)
446
- }, undefined, false, undefined, this),
447
- /* @__PURE__ */ jsxDEV2("td", {
445
+ })
446
+ }),
447
+ /* @__PURE__ */ jsx2("td", {
448
448
  className: "px-4 py-3 align-top",
449
449
  children: "IT controls governance; no per-user overlay concept."
450
- }, undefined, false, undefined, this),
451
- /* @__PURE__ */ jsxDEV2("td", {
450
+ }),
451
+ /* @__PURE__ */ jsx2("td", {
452
452
  className: "px-4 py-3 align-top",
453
453
  children: "Built-in policy engine and per-user overlays for safe personalisation."
454
- }, undefined, false, undefined, this)
454
+ })
455
455
  ]
456
- }, undefined, true, undefined, this)
456
+ })
457
457
  ]
458
- }, undefined, true, undefined, this)
458
+ })
459
459
  ]
460
- }, undefined, true, undefined, this)
461
- }, undefined, false, undefined, this),
462
- /* @__PURE__ */ jsxDEV2("p", {
460
+ })
461
+ }),
462
+ /* @__PURE__ */ jsx2("p", {
463
463
  className: "text-muted-foreground",
464
464
  children: "Redwood RunMyJobs is designed for orchestrating enterprise workloads and SAP processes. ContractSpec targets a different problem: generating complete applications from typed specs and letting end users adapt them safely."
465
- }, undefined, false, undefined, this)
465
+ })
466
466
  ]
467
- }, undefined, true, undefined, this)
467
+ })
468
468
  ]
469
- }, undefined, true, undefined, this);
469
+ });
470
470
  }
471
471
 
472
472
  // src/components/docs/comparison/ComparisonInternalToolBuildersPage.tsx
473
- import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
473
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
474
474
  function ComparisonInternalToolBuildersPage() {
475
- return /* @__PURE__ */ jsxDEV3("div", {
475
+ return /* @__PURE__ */ jsxs3("div", {
476
476
  className: "space-y-8",
477
477
  children: [
478
- /* @__PURE__ */ jsxDEV3("div", {
478
+ /* @__PURE__ */ jsxs3("div", {
479
479
  className: "space-y-4",
480
480
  children: [
481
- /* @__PURE__ */ jsxDEV3("h1", {
481
+ /* @__PURE__ */ jsx3("h1", {
482
482
  className: "text-4xl font-bold",
483
483
  children: "Internal-tool builders"
484
- }, undefined, false, undefined, this),
485
- /* @__PURE__ */ jsxDEV3("p", {
484
+ }),
485
+ /* @__PURE__ */ jsx3("p", {
486
486
  className: "text-muted-foreground",
487
487
  children: "Internal-tool builders let teams quickly assemble dashboards and admin panels. These platforms often provide drag-and-drop UIs and connectors to databases and APIs, but they rely on developers to write custom code for business logic and seldom enforce policies across surfaces."
488
- }, undefined, false, undefined, this)
488
+ })
489
489
  ]
490
- }, undefined, true, undefined, this),
491
- /* @__PURE__ */ jsxDEV3("div", {
490
+ }),
491
+ /* @__PURE__ */ jsxs3("div", {
492
492
  className: "space-y-4",
493
493
  children: [
494
- /* @__PURE__ */ jsxDEV3("h2", {
494
+ /* @__PURE__ */ jsx3("h2", {
495
495
  className: "text-2xl font-bold",
496
496
  children: "Feature comparison"
497
- }, undefined, false, undefined, this),
498
- /* @__PURE__ */ jsxDEV3("div", {
497
+ }),
498
+ /* @__PURE__ */ jsx3("div", {
499
499
  className: "border-border/50 overflow-x-auto rounded-lg border",
500
- children: /* @__PURE__ */ jsxDEV3("table", {
500
+ children: /* @__PURE__ */ jsxs3("table", {
501
501
  className: "w-full text-left text-sm",
502
502
  children: [
503
- /* @__PURE__ */ jsxDEV3("thead", {
503
+ /* @__PURE__ */ jsx3("thead", {
504
504
  className: "bg-card/50",
505
- children: /* @__PURE__ */ jsxDEV3("tr", {
505
+ children: /* @__PURE__ */ jsxs3("tr", {
506
506
  className: "border-border/50 border-b",
507
507
  children: [
508
- /* @__PURE__ */ jsxDEV3("th", {
508
+ /* @__PURE__ */ jsx3("th", {
509
509
  className: "px-4 py-3 font-semibold",
510
510
  children: "Feature"
511
- }, undefined, false, undefined, this),
512
- /* @__PURE__ */ jsxDEV3("th", {
511
+ }),
512
+ /* @__PURE__ */ jsx3("th", {
513
513
  className: "px-4 py-3 font-semibold",
514
514
  children: "Retool"
515
- }, undefined, false, undefined, this),
516
- /* @__PURE__ */ jsxDEV3("th", {
515
+ }),
516
+ /* @__PURE__ */ jsx3("th", {
517
517
  className: "px-4 py-3 font-semibold",
518
518
  children: "Appsmith"
519
- }, undefined, false, undefined, this),
520
- /* @__PURE__ */ jsxDEV3("th", {
519
+ }),
520
+ /* @__PURE__ */ jsx3("th", {
521
521
  className: "px-4 py-3 font-semibold",
522
522
  children: "ToolJet"
523
- }, undefined, false, undefined, this),
524
- /* @__PURE__ */ jsxDEV3("th", {
523
+ }),
524
+ /* @__PURE__ */ jsx3("th", {
525
525
  className: "px-4 py-3 font-semibold",
526
526
  children: "Budibase"
527
- }, undefined, false, undefined, this)
527
+ })
528
528
  ]
529
- }, undefined, true, undefined, this)
530
- }, undefined, false, undefined, this),
531
- /* @__PURE__ */ jsxDEV3("tbody", {
529
+ })
530
+ }),
531
+ /* @__PURE__ */ jsxs3("tbody", {
532
532
  className: "divide-border/50 divide-y",
533
533
  children: [
534
- /* @__PURE__ */ jsxDEV3("tr", {
534
+ /* @__PURE__ */ jsxs3("tr", {
535
535
  children: [
536
- /* @__PURE__ */ jsxDEV3("td", {
536
+ /* @__PURE__ */ jsx3("td", {
537
537
  className: "px-4 py-3 align-top font-semibold",
538
538
  children: "UI builder"
539
- }, undefined, false, undefined, this),
540
- /* @__PURE__ */ jsxDEV3("td", {
539
+ }),
540
+ /* @__PURE__ */ jsx3("td", {
541
541
  className: "px-4 py-3 align-top",
542
542
  children: "Drag-and-drop canvas; shape UI components easily"
543
- }, undefined, false, undefined, this),
544
- /* @__PURE__ */ jsxDEV3("td", {
543
+ }),
544
+ /* @__PURE__ */ jsx3("td", {
545
545
  className: "px-4 py-3 align-top",
546
546
  children: "Visual builder with drag-and-drop widgets"
547
- }, undefined, false, undefined, this),
548
- /* @__PURE__ */ jsxDEV3("td", {
547
+ }),
548
+ /* @__PURE__ */ jsx3("td", {
549
549
  className: "px-4 py-3 align-top",
550
550
  children: "Drag-and-drop UI widgets (tables, charts, forms)"
551
- }, undefined, false, undefined, this),
552
- /* @__PURE__ */ jsxDEV3("td", {
551
+ }),
552
+ /* @__PURE__ */ jsx3("td", {
553
553
  className: "px-4 py-3 align-top",
554
554
  children: "Pre-built components and templates for mobile/desktop"
555
- }, undefined, false, undefined, this)
555
+ })
556
556
  ]
557
- }, undefined, true, undefined, this),
558
- /* @__PURE__ */ jsxDEV3("tr", {
557
+ }),
558
+ /* @__PURE__ */ jsxs3("tr", {
559
559
  children: [
560
- /* @__PURE__ */ jsxDEV3("td", {
560
+ /* @__PURE__ */ jsx3("td", {
561
561
  className: "px-4 py-3 align-top font-semibold",
562
562
  children: "Custom code & logic"
563
- }, undefined, false, undefined, this),
564
- /* @__PURE__ */ jsxDEV3("td", {
563
+ }),
564
+ /* @__PURE__ */ jsx3("td", {
565
565
  className: "px-4 py-3 align-top",
566
566
  children: "Full code insertion anywhere via IDE"
567
- }, undefined, false, undefined, this),
568
- /* @__PURE__ */ jsxDEV3("td", {
567
+ }),
568
+ /* @__PURE__ */ jsx3("td", {
569
569
  className: "px-4 py-3 align-top",
570
570
  children: "Logic via JavaScript or natural-language prompts in a central IDE"
571
- }, undefined, false, undefined, this),
572
- /* @__PURE__ */ jsxDEV3("td", {
571
+ }),
572
+ /* @__PURE__ */ jsx3("td", {
573
573
  className: "px-4 py-3 align-top",
574
574
  children: "Supports business logic in JavaScript or Python queries"
575
- }, undefined, false, undefined, this),
576
- /* @__PURE__ */ jsxDEV3("td", {
575
+ }),
576
+ /* @__PURE__ */ jsx3("td", {
577
577
  className: "px-4 py-3 align-top",
578
578
  children: "Custom logic via JavaScript; plugins and external embeds"
579
- }, undefined, false, undefined, this)
579
+ })
580
580
  ]
581
- }, undefined, true, undefined, this),
582
- /* @__PURE__ */ jsxDEV3("tr", {
581
+ }),
582
+ /* @__PURE__ */ jsxs3("tr", {
583
583
  children: [
584
- /* @__PURE__ */ jsxDEV3("td", {
584
+ /* @__PURE__ */ jsx3("td", {
585
585
  className: "px-4 py-3 align-top font-semibold",
586
586
  children: "Data connectors"
587
- }, undefined, false, undefined, this),
588
- /* @__PURE__ */ jsxDEV3("td", {
587
+ }),
588
+ /* @__PURE__ */ jsx3("td", {
589
589
  className: "px-4 py-3 align-top",
590
590
  children: "Wide support for databases and APIs (PostgreSQL, MongoDB, GraphQL, etc.)."
591
- }, undefined, false, undefined, this),
592
- /* @__PURE__ */ jsxDEV3("td", {
591
+ }),
592
+ /* @__PURE__ */ jsx3("td", {
593
593
  className: "px-4 py-3 align-top",
594
594
  children: "Connects to LLMs and databases"
595
- }, undefined, false, undefined, this),
596
- /* @__PURE__ */ jsxDEV3("td", {
595
+ }),
596
+ /* @__PURE__ */ jsx3("td", {
597
597
  className: "px-4 py-3 align-top",
598
598
  children: "Built-in database; connects to PostgreSQL, MongoDB, APIs, GraphQL, SaaS"
599
- }, undefined, false, undefined, this),
600
- /* @__PURE__ */ jsxDEV3("td", {
599
+ }),
600
+ /* @__PURE__ */ jsx3("td", {
601
601
  className: "px-4 py-3 align-top",
602
602
  children: "Connects to external databases, REST, CSV or built-in DB"
603
- }, undefined, false, undefined, this)
603
+ })
604
604
  ]
605
- }, undefined, true, undefined, this),
606
- /* @__PURE__ */ jsxDEV3("tr", {
605
+ }),
606
+ /* @__PURE__ */ jsxs3("tr", {
607
607
  children: [
608
- /* @__PURE__ */ jsxDEV3("td", {
608
+ /* @__PURE__ */ jsx3("td", {
609
609
  className: "px-4 py-3 align-top font-semibold",
610
610
  children: "Open source & self-host"
611
- }, undefined, false, undefined, this),
612
- /* @__PURE__ */ jsxDEV3("td", {
611
+ }),
612
+ /* @__PURE__ */ jsx3("td", {
613
613
  className: "px-4 py-3 align-top",
614
614
  children: "Proprietary; cloud or on-prem subscription."
615
- }, undefined, false, undefined, this),
616
- /* @__PURE__ */ jsxDEV3("td", {
615
+ }),
616
+ /* @__PURE__ */ jsx3("td", {
617
617
  className: "px-4 py-3 align-top",
618
618
  children: "Open source (Apache-2.0); self-host or cloud."
619
- }, undefined, false, undefined, this),
620
- /* @__PURE__ */ jsxDEV3("td", {
619
+ }),
620
+ /* @__PURE__ */ jsx3("td", {
621
621
  className: "px-4 py-3 align-top",
622
622
  children: "Open source; self-host via Docker or cloud."
623
- }, undefined, false, undefined, this),
624
- /* @__PURE__ */ jsxDEV3("td", {
623
+ }),
624
+ /* @__PURE__ */ jsx3("td", {
625
625
  className: "px-4 py-3 align-top",
626
626
  children: "Open source; self-host via Docker/Kubernetes"
627
- }, undefined, false, undefined, this)
627
+ })
628
628
  ]
629
- }, undefined, true, undefined, this),
630
- /* @__PURE__ */ jsxDEV3("tr", {
629
+ }),
630
+ /* @__PURE__ */ jsxs3("tr", {
631
631
  children: [
632
- /* @__PURE__ */ jsxDEV3("td", {
632
+ /* @__PURE__ */ jsx3("td", {
633
633
  className: "px-4 py-3 align-top font-semibold",
634
634
  children: "Policy & personalisation"
635
- }, undefined, false, undefined, this),
636
- /* @__PURE__ */ jsxDEV3("td", {
635
+ }),
636
+ /* @__PURE__ */ jsx3("td", {
637
637
  className: "px-4 py-3 align-top",
638
638
  children: "No built-in policy engine; personalisation limited to user roles."
639
- }, undefined, false, undefined, this),
640
- /* @__PURE__ */ jsxDEV3("td", {
639
+ }),
640
+ /* @__PURE__ */ jsx3("td", {
641
641
  className: "px-4 py-3 align-top",
642
642
  children: "No typed policy engine; customisation depends on user roles."
643
- }, undefined, false, undefined, this),
644
- /* @__PURE__ */ jsxDEV3("td", {
643
+ }),
644
+ /* @__PURE__ */ jsx3("td", {
645
645
  className: "px-4 py-3 align-top",
646
646
  children: "No policy engine; personalisation via user roles."
647
- }, undefined, false, undefined, this),
648
- /* @__PURE__ */ jsxDEV3("td", {
647
+ }),
648
+ /* @__PURE__ */ jsx3("td", {
649
649
  className: "px-4 py-3 align-top",
650
650
  children: "No policy engine; personalisation via RBAC & SSO"
651
- }, undefined, false, undefined, this)
651
+ })
652
652
  ]
653
- }, undefined, true, undefined, this)
653
+ })
654
654
  ]
655
- }, undefined, true, undefined, this)
655
+ })
656
656
  ]
657
- }, undefined, true, undefined, this)
658
- }, undefined, false, undefined, this)
657
+ })
658
+ })
659
659
  ]
660
- }, undefined, true, undefined, this),
661
- /* @__PURE__ */ jsxDEV3("div", {
660
+ }),
661
+ /* @__PURE__ */ jsxs3("div", {
662
662
  className: "space-y-3",
663
663
  children: [
664
- /* @__PURE__ */ jsxDEV3("h2", {
664
+ /* @__PURE__ */ jsx3("h2", {
665
665
  className: "text-2xl font-bold",
666
666
  children: "ContractSpec’s differences"
667
- }, undefined, false, undefined, this),
668
- /* @__PURE__ */ jsxDEV3("ul", {
667
+ }),
668
+ /* @__PURE__ */ jsxs3("ul", {
669
669
  className: "text-muted-foreground space-y-2",
670
670
  children: [
671
- /* @__PURE__ */ jsxDEV3("li", {
671
+ /* @__PURE__ */ jsxs3("li", {
672
672
  children: [
673
- /* @__PURE__ */ jsxDEV3("strong", {
673
+ /* @__PURE__ */ jsx3("strong", {
674
674
  children: "Typed specifications"
675
- }, undefined, false, undefined, this),
675
+ }),
676
676
  " produce both the API and UI. You define capabilities, data views and workflows, and the compiler generates code, forms and screens—no manual widget wiring."
677
677
  ]
678
- }, undefined, true, undefined, this),
679
- /* @__PURE__ */ jsxDEV3("li", {
678
+ }),
679
+ /* @__PURE__ */ jsxs3("li", {
680
680
  children: [
681
- /* @__PURE__ */ jsxDEV3("strong", {
681
+ /* @__PURE__ */ jsx3("strong", {
682
682
  children: "Policy enforcement"
683
- }, undefined, false, undefined, this),
683
+ }),
684
684
  " at run time ensures PII and ABAC rules across the entire app."
685
685
  ]
686
- }, undefined, true, undefined, this),
687
- /* @__PURE__ */ jsxDEV3("li", {
686
+ }),
687
+ /* @__PURE__ */ jsxs3("li", {
688
688
  children: [
689
- /* @__PURE__ */ jsxDEV3("strong", {
689
+ /* @__PURE__ */ jsx3("strong", {
690
690
  children: "Overlay personalisation"
691
- }, undefined, false, undefined, this),
691
+ }),
692
692
  " allows tenants and users to change layouts safely without code."
693
693
  ]
694
- }, undefined, true, undefined, this),
695
- /* @__PURE__ */ jsxDEV3("li", {
694
+ }),
695
+ /* @__PURE__ */ jsxs3("li", {
696
696
  children: [
697
- /* @__PURE__ */ jsxDEV3("strong", {
697
+ /* @__PURE__ */ jsx3("strong", {
698
698
  children: "Unified mobile/web runtime"
699
- }, undefined, false, undefined, this),
699
+ }),
700
700
  " means you don’t need separate builders for React Native vs web."
701
701
  ]
702
- }, undefined, true, undefined, this)
702
+ })
703
703
  ]
704
- }, undefined, true, undefined, this),
705
- /* @__PURE__ */ jsxDEV3("p", {
704
+ }),
705
+ /* @__PURE__ */ jsx3("p", {
706
706
  className: "text-muted-foreground",
707
707
  children: "Internal-tool builders are useful for quick dashboards. ContractSpec extends this by generating the whole stack from specs and enforcing policies throughout."
708
- }, undefined, false, undefined, this)
708
+ })
709
709
  ]
710
- }, undefined, true, undefined, this)
710
+ })
711
711
  ]
712
- }, undefined, true, undefined, this);
712
+ });
713
713
  }
714
714
 
715
715
  // src/components/docs/comparison/ComparisonOverviewPage.tsx
716
- import { jsxDEV as jsxDEV4 } from "react/jsx-dev-runtime";
716
+ import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
717
717
  function ComparisonOverviewPage() {
718
- return /* @__PURE__ */ jsxDEV4("div", {
718
+ return /* @__PURE__ */ jsxs4("div", {
719
719
  className: "space-y-8",
720
720
  children: [
721
- /* @__PURE__ */ jsxDEV4("div", {
721
+ /* @__PURE__ */ jsxs4("div", {
722
722
  className: "space-y-4",
723
723
  children: [
724
- /* @__PURE__ */ jsxDEV4("h1", {
724
+ /* @__PURE__ */ jsx4("h1", {
725
725
  className: "text-4xl font-bold",
726
726
  children: "Comparison overview"
727
- }, undefined, false, undefined, this),
728
- /* @__PURE__ */ jsxDEV4("p", {
727
+ }),
728
+ /* @__PURE__ */ jsx4("p", {
729
729
  className: "text-muted-foreground",
730
730
  children: "ContractSpec sits at the intersection of several tool categories. To appreciate its unique offering—typed specifications for back-end, front-end, workflows and policies with a unified web/mobile runtime—this section compares it to related products."
731
- }, undefined, false, undefined, this),
732
- /* @__PURE__ */ jsxDEV4("p", {
731
+ }),
732
+ /* @__PURE__ */ jsxs4("p", {
733
733
  className: "text-muted-foreground",
734
734
  children: [
735
735
  "ContractSpec uses ",
736
- /* @__PURE__ */ jsxDEV4("strong", {
736
+ /* @__PURE__ */ jsx4("strong", {
737
737
  children: "runtime adapters"
738
- }, undefined, false, undefined, this),
738
+ }),
739
739
  " to serve typed",
740
740
  " ",
741
- /* @__PURE__ */ jsxDEV4("strong", {
741
+ /* @__PURE__ */ jsx4("strong", {
742
742
  children: "Operations"
743
- }, undefined, false, undefined, this),
743
+ }),
744
744
  " (Commands/Queries),",
745
745
  " ",
746
- /* @__PURE__ */ jsxDEV4("strong", {
746
+ /* @__PURE__ */ jsx4("strong", {
747
747
  children: "DataViews"
748
- }, undefined, false, undefined, this),
748
+ }),
749
749
  ", ",
750
- /* @__PURE__ */ jsxDEV4("strong", {
750
+ /* @__PURE__ */ jsx4("strong", {
751
751
  children: "Workflows"
752
- }, undefined, false, undefined, this),
752
+ }),
753
753
  ", and",
754
754
  " ",
755
- /* @__PURE__ */ jsxDEV4("strong", {
755
+ /* @__PURE__ */ jsx4("strong", {
756
756
  children: "Policies"
757
- }, undefined, false, undefined, this),
757
+ }),
758
758
  " as REST/GraphQL/MCP endpoints. A",
759
759
  " ",
760
- /* @__PURE__ */ jsxDEV4("strong", {
760
+ /* @__PURE__ */ jsx4("strong", {
761
761
  children: "policy decision point"
762
- }, undefined, false, undefined, this),
762
+ }),
763
763
  " governs every operation, and",
764
764
  " ",
765
- /* @__PURE__ */ jsxDEV4("strong", {
765
+ /* @__PURE__ */ jsx4("strong", {
766
766
  children: "OverlaySpecs"
767
- }, undefined, false, undefined, this),
767
+ }),
768
768
  " allow non-technical users to personalise screens safely. Few competitors offer this combination of runtime type safety, policy enforcement, and end-user customisation."
769
769
  ]
770
- }, undefined, true, undefined, this)
770
+ })
771
771
  ]
772
- }, undefined, true, undefined, this),
773
- /* @__PURE__ */ jsxDEV4("div", {
772
+ }),
773
+ /* @__PURE__ */ jsxs4("div", {
774
774
  className: "space-y-4",
775
775
  children: [
776
- /* @__PURE__ */ jsxDEV4("h2", {
776
+ /* @__PURE__ */ jsx4("h2", {
777
777
  className: "text-2xl font-bold",
778
778
  children: "Tool categories"
779
- }, undefined, false, undefined, this),
780
- /* @__PURE__ */ jsxDEV4("div", {
779
+ }),
780
+ /* @__PURE__ */ jsx4("div", {
781
781
  className: "border-border/50 overflow-x-auto rounded-lg border",
782
- children: /* @__PURE__ */ jsxDEV4("table", {
782
+ children: /* @__PURE__ */ jsxs4("table", {
783
783
  className: "w-full text-left text-sm",
784
784
  children: [
785
- /* @__PURE__ */ jsxDEV4("thead", {
785
+ /* @__PURE__ */ jsx4("thead", {
786
786
  className: "bg-card/50",
787
- children: /* @__PURE__ */ jsxDEV4("tr", {
787
+ children: /* @__PURE__ */ jsxs4("tr", {
788
788
  className: "border-border/50 border-b",
789
789
  children: [
790
- /* @__PURE__ */ jsxDEV4("th", {
790
+ /* @__PURE__ */ jsx4("th", {
791
791
  className: "px-4 py-3 font-semibold",
792
792
  children: "Category"
793
- }, undefined, false, undefined, this),
794
- /* @__PURE__ */ jsxDEV4("th", {
793
+ }),
794
+ /* @__PURE__ */ jsx4("th", {
795
795
  className: "px-4 py-3 font-semibold",
796
796
  children: "Examples"
797
- }, undefined, false, undefined, this),
798
- /* @__PURE__ */ jsxDEV4("th", {
797
+ }),
798
+ /* @__PURE__ */ jsx4("th", {
799
799
  className: "px-4 py-3 font-semibold",
800
800
  children: "What they do"
801
- }, undefined, false, undefined, this),
802
- /* @__PURE__ */ jsxDEV4("th", {
801
+ }),
802
+ /* @__PURE__ */ jsx4("th", {
803
803
  className: "px-4 py-3 font-semibold",
804
804
  children: "Limitations"
805
- }, undefined, false, undefined, this)
805
+ })
806
806
  ]
807
- }, undefined, true, undefined, this)
808
- }, undefined, false, undefined, this),
809
- /* @__PURE__ */ jsxDEV4("tbody", {
807
+ })
808
+ }),
809
+ /* @__PURE__ */ jsxs4("tbody", {
810
810
  className: "divide-border/50 divide-y",
811
811
  children: [
812
- /* @__PURE__ */ jsxDEV4("tr", {
812
+ /* @__PURE__ */ jsxs4("tr", {
813
813
  children: [
814
- /* @__PURE__ */ jsxDEV4("td", {
814
+ /* @__PURE__ */ jsx4("td", {
815
815
  className: "px-4 py-3 align-top",
816
- children: /* @__PURE__ */ jsxDEV4("strong", {
816
+ children: /* @__PURE__ */ jsx4("strong", {
817
817
  children: "Workflow engines"
818
- }, undefined, false, undefined, this)
819
- }, undefined, false, undefined, this),
820
- /* @__PURE__ */ jsxDEV4("td", {
818
+ })
819
+ }),
820
+ /* @__PURE__ */ jsx4("td", {
821
821
  className: "px-4 py-3 align-top",
822
822
  children: "Prefect, Kestra, Temporal, Airflow, Dagster, Hatchet, Windmill"
823
- }, undefined, false, undefined, this),
824
- /* @__PURE__ */ jsxDEV4("td", {
823
+ }),
824
+ /* @__PURE__ */ jsx4("td", {
825
825
  className: "px-4 py-3 align-top",
826
826
  children: "Orchestrate code or data pipelines; handle retries, scheduling and observability"
827
- }, undefined, false, undefined, this),
828
- /* @__PURE__ */ jsxDEV4("td", {
827
+ }),
828
+ /* @__PURE__ */ jsx4("td", {
829
829
  className: "px-4 py-3 align-top",
830
830
  children: "Require writing code; no automatic UI generation or policy enforcement."
831
- }, undefined, false, undefined, this)
831
+ })
832
832
  ]
833
- }, undefined, true, undefined, this),
834
- /* @__PURE__ */ jsxDEV4("tr", {
833
+ }),
834
+ /* @__PURE__ */ jsxs4("tr", {
835
835
  children: [
836
- /* @__PURE__ */ jsxDEV4("td", {
836
+ /* @__PURE__ */ jsx4("td", {
837
837
  className: "px-4 py-3 align-top",
838
- children: /* @__PURE__ */ jsxDEV4("strong", {
838
+ children: /* @__PURE__ */ jsx4("strong", {
839
839
  children: "Internal-tool builders"
840
- }, undefined, false, undefined, this)
841
- }, undefined, false, undefined, this),
842
- /* @__PURE__ */ jsxDEV4("td", {
840
+ })
841
+ }),
842
+ /* @__PURE__ */ jsx4("td", {
843
843
  className: "px-4 py-3 align-top",
844
844
  children: "Retool, Appsmith, ToolJet, Budibase"
845
- }, undefined, false, undefined, this),
846
- /* @__PURE__ */ jsxDEV4("td", {
845
+ }),
846
+ /* @__PURE__ */ jsx4("td", {
847
847
  className: "px-4 py-3 align-top",
848
848
  children: "Drag-and-drop dashboards and admin panels; connect to databases/APIs"
849
- }, undefined, false, undefined, this),
850
- /* @__PURE__ */ jsxDEV4("td", {
849
+ }),
850
+ /* @__PURE__ */ jsx4("td", {
851
851
  className: "px-4 py-3 align-top",
852
852
  children: "No typed back-end spec; limited enforcement of policies; custom code glues logic."
853
- }, undefined, false, undefined, this)
853
+ })
854
854
  ]
855
- }, undefined, true, undefined, this),
856
- /* @__PURE__ */ jsxDEV4("tr", {
855
+ }),
856
+ /* @__PURE__ */ jsxs4("tr", {
857
857
  children: [
858
- /* @__PURE__ */ jsxDEV4("td", {
858
+ /* @__PURE__ */ jsx4("td", {
859
859
  className: "px-4 py-3 align-top",
860
- children: /* @__PURE__ */ jsxDEV4("strong", {
860
+ children: /* @__PURE__ */ jsx4("strong", {
861
861
  children: "Automation platforms"
862
- }, undefined, false, undefined, this)
863
- }, undefined, false, undefined, this),
864
- /* @__PURE__ */ jsxDEV4("td", {
862
+ })
863
+ }),
864
+ /* @__PURE__ */ jsx4("td", {
865
865
  className: "px-4 py-3 align-top",
866
866
  children: "Zapier, Make, n8n, Pipedream"
867
- }, undefined, false, undefined, this),
868
- /* @__PURE__ */ jsxDEV4("td", {
867
+ }),
868
+ /* @__PURE__ */ jsx4("td", {
869
869
  className: "px-4 py-3 align-top",
870
870
  children: "Connect apps via triggers and actions; visual or low-code interfaces"
871
- }, undefined, false, undefined, this),
872
- /* @__PURE__ */ jsxDEV4("td", {
871
+ }),
872
+ /* @__PURE__ */ jsx4("td", {
873
873
  className: "px-4 py-3 align-top",
874
874
  children: "Automate tasks but do not generate full apps or enforce per-field policies."
875
- }, undefined, false, undefined, this)
875
+ })
876
876
  ]
877
- }, undefined, true, undefined, this),
878
- /* @__PURE__ */ jsxDEV4("tr", {
877
+ }),
878
+ /* @__PURE__ */ jsxs4("tr", {
879
879
  children: [
880
- /* @__PURE__ */ jsxDEV4("td", {
880
+ /* @__PURE__ */ jsx4("td", {
881
881
  className: "px-4 py-3 align-top",
882
- children: /* @__PURE__ */ jsxDEV4("strong", {
882
+ children: /* @__PURE__ */ jsx4("strong", {
883
883
  children: "Enterprise orchestrators"
884
- }, undefined, false, undefined, this)
885
- }, undefined, false, undefined, this),
886
- /* @__PURE__ */ jsxDEV4("td", {
884
+ })
885
+ }),
886
+ /* @__PURE__ */ jsx4("td", {
887
887
  className: "px-4 py-3 align-top",
888
888
  children: "Redwood RunMyJobs"
889
- }, undefined, false, undefined, this),
890
- /* @__PURE__ */ jsxDEV4("td", {
889
+ }),
890
+ /* @__PURE__ */ jsx4("td", {
891
891
  className: "px-4 py-3 align-top",
892
892
  children: "Automate mission-critical workloads with self-service portals and SAP integrations"
893
- }, undefined, false, undefined, this),
894
- /* @__PURE__ */ jsxDEV4("td", {
893
+ }),
894
+ /* @__PURE__ */ jsx4("td", {
895
895
  className: "px-4 py-3 align-top",
896
896
  children: "Focus on IT workloads; not built for custom app creation or per-user customisation."
897
- }, undefined, false, undefined, this)
897
+ })
898
898
  ]
899
- }, undefined, true, undefined, this)
899
+ })
900
900
  ]
901
- }, undefined, true, undefined, this)
901
+ })
902
902
  ]
903
- }, undefined, true, undefined, this)
904
- }, undefined, false, undefined, this),
905
- /* @__PURE__ */ jsxDEV4("p", {
903
+ })
904
+ }),
905
+ /* @__PURE__ */ jsx4("p", {
906
906
  className: "text-muted-foreground",
907
907
  children: "Use the pages below to explore each group in detail and see how ContractSpec compares."
908
- }, undefined, false, undefined, this)
908
+ })
909
909
  ]
910
- }, undefined, true, undefined, this)
910
+ })
911
911
  ]
912
- }, undefined, true, undefined, this);
912
+ });
913
913
  }
914
914
 
915
915
  // src/components/docs/comparison/ComparisonWindmillPage.tsx
916
- import { jsxDEV as jsxDEV5 } from "react/jsx-dev-runtime";
916
+ import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
917
917
  function ComparisonWindmillPage() {
918
- return /* @__PURE__ */ jsxDEV5("div", {
918
+ return /* @__PURE__ */ jsxs5("div", {
919
919
  className: "space-y-8",
920
920
  children: [
921
- /* @__PURE__ */ jsxDEV5("div", {
921
+ /* @__PURE__ */ jsxs5("div", {
922
922
  className: "space-y-4",
923
923
  children: [
924
- /* @__PURE__ */ jsxDEV5("h1", {
924
+ /* @__PURE__ */ jsx5("h1", {
925
925
  className: "text-4xl font-bold",
926
926
  children: "Windmill"
927
- }, undefined, false, undefined, this),
928
- /* @__PURE__ */ jsxDEV5("p", {
927
+ }),
928
+ /* @__PURE__ */ jsxs5("p", {
929
929
  className: "text-muted-foreground",
930
930
  children: [
931
931
  "Windmill is an open-source platform that turns",
932
932
  " ",
933
- /* @__PURE__ */ jsxDEV5("strong", {
933
+ /* @__PURE__ */ jsx5("strong", {
934
934
  children: "scripts"
935
- }, undefined, false, undefined, this),
935
+ }),
936
936
  " into endpoints, workflows and UIs. It seeks to remove boilerplate by generating interfaces and workflows around existing code"
937
937
  ]
938
- }, undefined, true, undefined, this)
938
+ })
939
939
  ]
940
- }, undefined, true, undefined, this),
941
- /* @__PURE__ */ jsxDEV5("div", {
940
+ }),
941
+ /* @__PURE__ */ jsxs5("div", {
942
942
  className: "space-y-4",
943
943
  children: [
944
- /* @__PURE__ */ jsxDEV5("h2", {
944
+ /* @__PURE__ */ jsx5("h2", {
945
945
  className: "text-2xl font-bold",
946
946
  children: "Platform features"
947
- }, undefined, false, undefined, this),
948
- /* @__PURE__ */ jsxDEV5("ul", {
947
+ }),
948
+ /* @__PURE__ */ jsxs5("ul", {
949
949
  className: "text-muted-foreground space-y-3",
950
950
  children: [
951
- /* @__PURE__ */ jsxDEV5("li", {
951
+ /* @__PURE__ */ jsxs5("li", {
952
952
  children: [
953
- /* @__PURE__ */ jsxDEV5("strong", {
953
+ /* @__PURE__ */ jsx5("strong", {
954
954
  children: "Script-driven model."
955
- }, undefined, false, undefined, this),
955
+ }),
956
956
  " Write scripts in TypeScript, Python, Go, PHP, Bash, C#, SQL or Rust; Windmill infers dependencies, creates lockfiles and JSON schemas, then serves minimal UIs automatically"
957
957
  ]
958
- }, undefined, true, undefined, this),
959
- /* @__PURE__ */ jsxDEV5("li", {
958
+ }),
959
+ /* @__PURE__ */ jsxs5("li", {
960
960
  children: [
961
- /* @__PURE__ */ jsxDEV5("strong", {
961
+ /* @__PURE__ */ jsx5("strong", {
962
962
  children: "Visual flow editor."
963
- }, undefined, false, undefined, this),
963
+ }),
964
964
  " Compose scripts into workflows with retries, error handling, loops, branching, suspending flows and approval steps"
965
965
  ]
966
- }, undefined, true, undefined, this),
967
- /* @__PURE__ */ jsxDEV5("li", {
966
+ }),
967
+ /* @__PURE__ */ jsxs5("li", {
968
968
  children: [
969
- /* @__PURE__ */ jsxDEV5("strong", {
969
+ /* @__PURE__ */ jsx5("strong", {
970
970
  children: "Low-code UI builder."
971
- }, undefined, false, undefined, this),
971
+ }),
972
972
  " Build dashboards and admin panels using inline scripts and trigger flows from the UI"
973
973
  ]
974
- }, undefined, true, undefined, this),
975
- /* @__PURE__ */ jsxDEV5("li", {
974
+ }),
975
+ /* @__PURE__ */ jsxs5("li", {
976
976
  children: [
977
- /* @__PURE__ */ jsxDEV5("strong", {
977
+ /* @__PURE__ */ jsx5("strong", {
978
978
  children: "Enterprise readiness."
979
- }, undefined, false, undefined, this),
979
+ }),
980
980
  " Features include RBAC permissions, secret management, OAuth handling, CLI/git sync, scheduling and webhooks"
981
981
  ]
982
- }, undefined, true, undefined, this),
983
- /* @__PURE__ */ jsxDEV5("li", {
982
+ }),
983
+ /* @__PURE__ */ jsxs5("li", {
984
984
  children: [
985
- /* @__PURE__ */ jsxDEV5("strong", {
985
+ /* @__PURE__ */ jsx5("strong", {
986
986
  children: "Use cases."
987
- }, undefined, false, undefined, this),
987
+ }),
988
988
  " Deploy scripts as webhooks or cron jobs; create “applicative workflows” combining external APIs; build ETLs and interactive dashboards"
989
989
  ]
990
- }, undefined, true, undefined, this),
991
- /* @__PURE__ */ jsxDEV5("li", {
990
+ }),
991
+ /* @__PURE__ */ jsxs5("li", {
992
992
  children: [
993
- /* @__PURE__ */ jsxDEV5("strong", {
993
+ /* @__PURE__ */ jsx5("strong", {
994
994
  children: "Open source & self-hosting."
995
- }, undefined, false, undefined, this),
995
+ }),
996
996
  " Windmill emphasises an open-source codebase and self-hosting options"
997
997
  ]
998
- }, undefined, true, undefined, this)
998
+ })
999
999
  ]
1000
- }, undefined, true, undefined, this)
1000
+ })
1001
1001
  ]
1002
- }, undefined, true, undefined, this),
1003
- /* @__PURE__ */ jsxDEV5("div", {
1002
+ }),
1003
+ /* @__PURE__ */ jsxs5("div", {
1004
1004
  className: "space-y-4",
1005
1005
  children: [
1006
- /* @__PURE__ */ jsxDEV5("h2", {
1006
+ /* @__PURE__ */ jsx5("h2", {
1007
1007
  className: "text-2xl font-bold",
1008
1008
  children: "Comparison with ContractSpec"
1009
- }, undefined, false, undefined, this),
1010
- /* @__PURE__ */ jsxDEV5("div", {
1009
+ }),
1010
+ /* @__PURE__ */ jsx5("div", {
1011
1011
  className: "border-border/50 overflow-x-auto rounded-lg border",
1012
- children: /* @__PURE__ */ jsxDEV5("table", {
1012
+ children: /* @__PURE__ */ jsxs5("table", {
1013
1013
  className: "w-full text-left text-sm",
1014
1014
  children: [
1015
- /* @__PURE__ */ jsxDEV5("thead", {
1015
+ /* @__PURE__ */ jsx5("thead", {
1016
1016
  className: "bg-card/50",
1017
- children: /* @__PURE__ */ jsxDEV5("tr", {
1017
+ children: /* @__PURE__ */ jsxs5("tr", {
1018
1018
  className: "border-border/50 border-b",
1019
1019
  children: [
1020
- /* @__PURE__ */ jsxDEV5("th", {
1020
+ /* @__PURE__ */ jsx5("th", {
1021
1021
  className: "px-4 py-3 font-semibold",
1022
1022
  children: "Feature"
1023
- }, undefined, false, undefined, this),
1024
- /* @__PURE__ */ jsxDEV5("th", {
1023
+ }),
1024
+ /* @__PURE__ */ jsx5("th", {
1025
1025
  className: "px-4 py-3 font-semibold",
1026
1026
  children: "Windmill"
1027
- }, undefined, false, undefined, this),
1028
- /* @__PURE__ */ jsxDEV5("th", {
1027
+ }),
1028
+ /* @__PURE__ */ jsx5("th", {
1029
1029
  className: "px-4 py-3 font-semibold",
1030
1030
  children: "ContractSpec"
1031
- }, undefined, false, undefined, this)
1031
+ })
1032
1032
  ]
1033
- }, undefined, true, undefined, this)
1034
- }, undefined, false, undefined, this),
1035
- /* @__PURE__ */ jsxDEV5("tbody", {
1033
+ })
1034
+ }),
1035
+ /* @__PURE__ */ jsxs5("tbody", {
1036
1036
  className: "divide-border/50 divide-y",
1037
1037
  children: [
1038
- /* @__PURE__ */ jsxDEV5("tr", {
1038
+ /* @__PURE__ */ jsxs5("tr", {
1039
1039
  children: [
1040
- /* @__PURE__ */ jsxDEV5("td", {
1040
+ /* @__PURE__ */ jsx5("td", {
1041
1041
  className: "px-4 py-3 align-top",
1042
- children: /* @__PURE__ */ jsxDEV5("strong", {
1042
+ children: /* @__PURE__ */ jsx5("strong", {
1043
1043
  children: "Entry model"
1044
- }, undefined, false, undefined, this)
1045
- }, undefined, false, undefined, this),
1046
- /* @__PURE__ */ jsxDEV5("td", {
1044
+ })
1045
+ }),
1046
+ /* @__PURE__ */ jsx5("td", {
1047
1047
  className: "px-4 py-3 align-top",
1048
1048
  children: "Write scripts; platform auto-generates UI and workflows"
1049
- }, undefined, false, undefined, this),
1050
- /* @__PURE__ */ jsxDEV5("td", {
1049
+ }),
1050
+ /* @__PURE__ */ jsx5("td", {
1051
1051
  className: "px-4 py-3 align-top",
1052
1052
  children: "Define typed specs (Capabilities, DataViews, Workflows, Policies); compiler outputs back-end, front-end and forms."
1053
- }, undefined, false, undefined, this)
1053
+ })
1054
1054
  ]
1055
- }, undefined, true, undefined, this),
1056
- /* @__PURE__ */ jsxDEV5("tr", {
1055
+ }),
1056
+ /* @__PURE__ */ jsxs5("tr", {
1057
1057
  children: [
1058
- /* @__PURE__ */ jsxDEV5("td", {
1058
+ /* @__PURE__ */ jsx5("td", {
1059
1059
  className: "px-4 py-3 align-top",
1060
- children: /* @__PURE__ */ jsxDEV5("strong", {
1060
+ children: /* @__PURE__ */ jsx5("strong", {
1061
1061
  children: "Language support"
1062
- }, undefined, false, undefined, this)
1063
- }, undefined, false, undefined, this),
1064
- /* @__PURE__ */ jsxDEV5("td", {
1062
+ })
1063
+ }),
1064
+ /* @__PURE__ */ jsx5("td", {
1065
1065
  className: "px-4 py-3 align-top",
1066
1066
  children: "20+ languages via embedded runtimes"
1067
- }, undefined, false, undefined, this),
1068
- /* @__PURE__ */ jsxDEV5("td", {
1067
+ }),
1068
+ /* @__PURE__ */ jsx5("td", {
1069
1069
  className: "px-4 py-3 align-top",
1070
1070
  children: "Uses TypeScript/JavaScript for providers; supports other back-ends through capability providers."
1071
- }, undefined, false, undefined, this)
1071
+ })
1072
1072
  ]
1073
- }, undefined, true, undefined, this),
1074
- /* @__PURE__ */ jsxDEV5("tr", {
1073
+ }),
1074
+ /* @__PURE__ */ jsxs5("tr", {
1075
1075
  children: [
1076
- /* @__PURE__ */ jsxDEV5("td", {
1076
+ /* @__PURE__ */ jsx5("td", {
1077
1077
  className: "px-4 py-3 align-top",
1078
- children: /* @__PURE__ */ jsxDEV5("strong", {
1078
+ children: /* @__PURE__ */ jsx5("strong", {
1079
1079
  children: "UI generation"
1080
- }, undefined, false, undefined, this)
1081
- }, undefined, false, undefined, this),
1082
- /* @__PURE__ */ jsxDEV5("td", {
1080
+ })
1081
+ }),
1082
+ /* @__PURE__ */ jsx5("td", {
1083
1083
  className: "px-4 py-3 align-top",
1084
1084
  children: "Minimal UI forms from script parameters; low-code app builder"
1085
- }, undefined, false, undefined, this),
1086
- /* @__PURE__ */ jsxDEV5("td", {
1085
+ }),
1086
+ /* @__PURE__ */ jsx5("td", {
1087
1087
  className: "px-4 py-3 align-top",
1088
1088
  children: "Generates full web and mobile UIs from specs; user layouts can be customised via signed overlays."
1089
- }, undefined, false, undefined, this)
1089
+ })
1090
1090
  ]
1091
- }, undefined, true, undefined, this),
1092
- /* @__PURE__ */ jsxDEV5("tr", {
1091
+ }),
1092
+ /* @__PURE__ */ jsxs5("tr", {
1093
1093
  children: [
1094
- /* @__PURE__ */ jsxDEV5("td", {
1094
+ /* @__PURE__ */ jsx5("td", {
1095
1095
  className: "px-4 py-3 align-top",
1096
- children: /* @__PURE__ */ jsxDEV5("strong", {
1096
+ children: /* @__PURE__ */ jsx5("strong", {
1097
1097
  children: "Policy & personalization"
1098
- }, undefined, false, undefined, this)
1099
- }, undefined, false, undefined, this),
1100
- /* @__PURE__ */ jsxDEV5("td", {
1098
+ })
1099
+ }),
1100
+ /* @__PURE__ */ jsx5("td", {
1101
1101
  className: "px-4 py-3 align-top",
1102
1102
  children: "RBAC and secret management; no per-user overlay concept"
1103
- }, undefined, false, undefined, this),
1104
- /* @__PURE__ */ jsxDEV5("td", {
1103
+ }),
1104
+ /* @__PURE__ */ jsx5("td", {
1105
1105
  className: "px-4 py-3 align-top",
1106
1106
  children: "Built-in policy engine enforcing ABAC/PII on every render/mutate; overlays allow safe per-user customisation."
1107
- }, undefined, false, undefined, this)
1107
+ })
1108
1108
  ]
1109
- }, undefined, true, undefined, this),
1110
- /* @__PURE__ */ jsxDEV5("tr", {
1109
+ }),
1110
+ /* @__PURE__ */ jsxs5("tr", {
1111
1111
  children: [
1112
- /* @__PURE__ */ jsxDEV5("td", {
1112
+ /* @__PURE__ */ jsx5("td", {
1113
1113
  className: "px-4 py-3 align-top",
1114
- children: /* @__PURE__ */ jsxDEV5("strong", {
1114
+ children: /* @__PURE__ */ jsx5("strong", {
1115
1115
  children: "Open source"
1116
- }, undefined, false, undefined, this)
1117
- }, undefined, false, undefined, this),
1118
- /* @__PURE__ */ jsxDEV5("td", {
1116
+ })
1117
+ }),
1118
+ /* @__PURE__ */ jsx5("td", {
1119
1119
  className: "px-4 py-3 align-top",
1120
1120
  children: "Fully open source and self-hostable"
1121
- }, undefined, false, undefined, this),
1122
- /* @__PURE__ */ jsxDEV5("td", {
1121
+ }),
1122
+ /* @__PURE__ */ jsx5("td", {
1123
1123
  className: "px-4 py-3 align-top",
1124
1124
  children: "Closed-source core (SDK is open); offers hosted and on-prem modes."
1125
- }, undefined, false, undefined, this)
1125
+ })
1126
1126
  ]
1127
- }, undefined, true, undefined, this),
1128
- /* @__PURE__ */ jsxDEV5("tr", {
1127
+ }),
1128
+ /* @__PURE__ */ jsxs5("tr", {
1129
1129
  children: [
1130
- /* @__PURE__ */ jsxDEV5("td", {
1130
+ /* @__PURE__ */ jsx5("td", {
1131
1131
  className: "px-4 py-3 align-top",
1132
- children: /* @__PURE__ */ jsxDEV5("strong", {
1132
+ children: /* @__PURE__ */ jsx5("strong", {
1133
1133
  children: "Ideal for"
1134
- }, undefined, false, undefined, this)
1135
- }, undefined, false, undefined, this),
1136
- /* @__PURE__ */ jsxDEV5("td", {
1134
+ })
1135
+ }),
1136
+ /* @__PURE__ */ jsx5("td", {
1137
1137
  className: "px-4 py-3 align-top",
1138
1138
  children: "Teams wanting to expose scripts as APIs, workflows or dashboards without heavy infrastructure."
1139
- }, undefined, false, undefined, this),
1140
- /* @__PURE__ */ jsxDEV5("td", {
1139
+ }),
1140
+ /* @__PURE__ */ jsx5("td", {
1141
1141
  className: "px-4 py-3 align-top",
1142
1142
  children: "Teams needing a spec-driven platform that generates code and UI, enforces policies and lets non-technical users tailor the experience."
1143
- }, undefined, false, undefined, this)
1143
+ })
1144
1144
  ]
1145
- }, undefined, true, undefined, this)
1145
+ })
1146
1146
  ]
1147
- }, undefined, true, undefined, this)
1147
+ })
1148
1148
  ]
1149
- }, undefined, true, undefined, this)
1150
- }, undefined, false, undefined, this),
1151
- /* @__PURE__ */ jsxDEV5("p", {
1149
+ })
1150
+ }),
1151
+ /* @__PURE__ */ jsxs5("p", {
1152
1152
  className: "text-muted-foreground",
1153
1153
  children: [
1154
1154
  "Windmill excels at converting scripts into workflows and admin panels. ContractSpec takes a ",
1155
- /* @__PURE__ */ jsxDEV5("strong", {
1155
+ /* @__PURE__ */ jsx5("strong", {
1156
1156
  children: "spec-first"
1157
- }, undefined, false, undefined, this),
1157
+ }),
1158
1158
  " approach, generating the entire stack and enforcing policies, making it suitable for long-lived applications that must evolve safely."
1159
1159
  ]
1160
- }, undefined, true, undefined, this)
1160
+ })
1161
1161
  ]
1162
- }, undefined, true, undefined, this)
1162
+ })
1163
1163
  ]
1164
- }, undefined, true, undefined, this);
1164
+ });
1165
1165
  }
1166
1166
 
1167
1167
  // src/components/docs/comparison/ComparisonWorkflowEnginesPage.tsx
1168
- import { jsxDEV as jsxDEV6 } from "react/jsx-dev-runtime";
1168
+ import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
1169
1169
  function ComparisonWorkflowEnginesPage() {
1170
- return /* @__PURE__ */ jsxDEV6("div", {
1170
+ return /* @__PURE__ */ jsxs6("div", {
1171
1171
  className: "space-y-8",
1172
1172
  children: [
1173
- /* @__PURE__ */ jsxDEV6("div", {
1173
+ /* @__PURE__ */ jsxs6("div", {
1174
1174
  className: "space-y-4",
1175
1175
  children: [
1176
- /* @__PURE__ */ jsxDEV6("h1", {
1176
+ /* @__PURE__ */ jsx6("h1", {
1177
1177
  className: "text-4xl font-bold",
1178
1178
  children: "Workflow engines"
1179
- }, undefined, false, undefined, this),
1180
- /* @__PURE__ */ jsxDEV6("p", {
1179
+ }),
1180
+ /* @__PURE__ */ jsx6("p", {
1181
1181
  className: "text-muted-foreground",
1182
1182
  children: "Workflow engines orchestrate long-running tasks and data pipelines. They provide retries, scheduling and visibility, but most expect developers to write code and do not generate user interfaces. Here’s how the major engines compare to ContractSpec."
1183
- }, undefined, false, undefined, this)
1183
+ })
1184
1184
  ]
1185
- }, undefined, true, undefined, this),
1186
- /* @__PURE__ */ jsxDEV6("div", {
1185
+ }),
1186
+ /* @__PURE__ */ jsxs6("div", {
1187
1187
  className: "space-y-4",
1188
1188
  children: [
1189
- /* @__PURE__ */ jsxDEV6("h2", {
1189
+ /* @__PURE__ */ jsx6("h2", {
1190
1190
  className: "text-2xl font-bold",
1191
1191
  children: "Key differences summary"
1192
- }, undefined, false, undefined, this),
1193
- /* @__PURE__ */ jsxDEV6("div", {
1192
+ }),
1193
+ /* @__PURE__ */ jsx6("div", {
1194
1194
  className: "border-border/50 overflow-x-auto rounded-lg border",
1195
- children: /* @__PURE__ */ jsxDEV6("table", {
1195
+ children: /* @__PURE__ */ jsxs6("table", {
1196
1196
  className: "w-full text-left text-sm",
1197
1197
  children: [
1198
- /* @__PURE__ */ jsxDEV6("thead", {
1198
+ /* @__PURE__ */ jsx6("thead", {
1199
1199
  className: "bg-card/50",
1200
- children: /* @__PURE__ */ jsxDEV6("tr", {
1200
+ children: /* @__PURE__ */ jsxs6("tr", {
1201
1201
  className: "border-border/50 border-b",
1202
1202
  children: [
1203
- /* @__PURE__ */ jsxDEV6("th", {
1203
+ /* @__PURE__ */ jsx6("th", {
1204
1204
  className: "px-4 py-3 font-semibold",
1205
1205
  children: "Engine"
1206
- }, undefined, false, undefined, this),
1207
- /* @__PURE__ */ jsxDEV6("th", {
1206
+ }),
1207
+ /* @__PURE__ */ jsx6("th", {
1208
1208
  className: "px-4 py-3 font-semibold",
1209
1209
  children: "Core strengths"
1210
- }, undefined, false, undefined, this),
1211
- /* @__PURE__ */ jsxDEV6("th", {
1210
+ }),
1211
+ /* @__PURE__ */ jsx6("th", {
1212
1212
  className: "px-4 py-3 font-semibold",
1213
1213
  children: "UI generation?"
1214
- }, undefined, false, undefined, this),
1215
- /* @__PURE__ */ jsxDEV6("th", {
1214
+ }),
1215
+ /* @__PURE__ */ jsx6("th", {
1216
1216
  className: "px-4 py-3 font-semibold",
1217
1217
  children: "Policy/PII enforcement?"
1218
- }, undefined, false, undefined, this),
1219
- /* @__PURE__ */ jsxDEV6("th", {
1218
+ }),
1219
+ /* @__PURE__ */ jsx6("th", {
1220
1220
  className: "px-4 py-3 font-semibold",
1221
1221
  children: "Self-host?"
1222
- }, undefined, false, undefined, this),
1223
- /* @__PURE__ */ jsxDEV6("th", {
1222
+ }),
1223
+ /* @__PURE__ */ jsx6("th", {
1224
1224
  className: "px-4 py-3 font-semibold",
1225
1225
  children: "Primary use"
1226
- }, undefined, false, undefined, this)
1226
+ })
1227
1227
  ]
1228
- }, undefined, true, undefined, this)
1229
- }, undefined, false, undefined, this),
1230
- /* @__PURE__ */ jsxDEV6("tbody", {
1228
+ })
1229
+ }),
1230
+ /* @__PURE__ */ jsxs6("tbody", {
1231
1231
  className: "divide-border/50 divide-y",
1232
1232
  children: [
1233
- /* @__PURE__ */ jsxDEV6("tr", {
1233
+ /* @__PURE__ */ jsxs6("tr", {
1234
1234
  children: [
1235
- /* @__PURE__ */ jsxDEV6("td", {
1235
+ /* @__PURE__ */ jsx6("td", {
1236
1236
  className: "px-4 py-3 align-top",
1237
- children: /* @__PURE__ */ jsxDEV6("strong", {
1237
+ children: /* @__PURE__ */ jsx6("strong", {
1238
1238
  children: "Prefect"
1239
- }, undefined, false, undefined, this)
1240
- }, undefined, false, undefined, this),
1241
- /* @__PURE__ */ jsxDEV6("td", {
1239
+ })
1240
+ }),
1241
+ /* @__PURE__ */ jsx6("td", {
1242
1242
  className: "px-4 py-3 align-top",
1243
1243
  children: "Python-native; dynamic DAGs adapt to change; annotate code without rewriting; strong observability and audit logs"
1244
- }, undefined, false, undefined, this),
1245
- /* @__PURE__ */ jsxDEV6("td", {
1244
+ }),
1245
+ /* @__PURE__ */ jsx6("td", {
1246
1246
  className: "px-4 py-3 align-top",
1247
1247
  children: "No"
1248
- }, undefined, false, undefined, this),
1249
- /* @__PURE__ */ jsxDEV6("td", {
1248
+ }),
1249
+ /* @__PURE__ */ jsx6("td", {
1250
1250
  className: "px-4 py-3 align-top",
1251
1251
  children: "No"
1252
- }, undefined, false, undefined, this),
1253
- /* @__PURE__ */ jsxDEV6("td", {
1252
+ }),
1253
+ /* @__PURE__ */ jsx6("td", {
1254
1254
  className: "px-4 py-3 align-top",
1255
1255
  children: "Yes"
1256
- }, undefined, false, undefined, this),
1257
- /* @__PURE__ */ jsxDEV6("td", {
1256
+ }),
1257
+ /* @__PURE__ */ jsx6("td", {
1258
1258
  className: "px-4 py-3 align-top",
1259
1259
  children: "Data pipelines and dynamic workflows."
1260
- }, undefined, false, undefined, this)
1260
+ })
1261
1261
  ]
1262
- }, undefined, true, undefined, this),
1263
- /* @__PURE__ */ jsxDEV6("tr", {
1262
+ }),
1263
+ /* @__PURE__ */ jsxs6("tr", {
1264
1264
  children: [
1265
- /* @__PURE__ */ jsxDEV6("td", {
1265
+ /* @__PURE__ */ jsx6("td", {
1266
1266
  className: "px-4 py-3 align-top",
1267
- children: /* @__PURE__ */ jsxDEV6("strong", {
1267
+ children: /* @__PURE__ */ jsx6("strong", {
1268
1268
  children: "Kestra"
1269
- }, undefined, false, undefined, this)
1270
- }, undefined, false, undefined, this),
1271
- /* @__PURE__ */ jsxDEV6("td", {
1269
+ })
1270
+ }),
1271
+ /* @__PURE__ */ jsx6("td", {
1272
1272
  className: "px-4 py-3 align-top",
1273
1273
  children: "Declarative YAML; event-driven triggers; mix of code and no-code; write logic in Python/R/Java/Julia/Ruby; deploy anywhere"
1274
- }, undefined, false, undefined, this),
1275
- /* @__PURE__ */ jsxDEV6("td", {
1274
+ }),
1275
+ /* @__PURE__ */ jsx6("td", {
1276
1276
  className: "px-4 py-3 align-top",
1277
1277
  children: "No"
1278
- }, undefined, false, undefined, this),
1279
- /* @__PURE__ */ jsxDEV6("td", {
1278
+ }),
1279
+ /* @__PURE__ */ jsx6("td", {
1280
1280
  className: "px-4 py-3 align-top",
1281
1281
  children: "No"
1282
- }, undefined, false, undefined, this),
1283
- /* @__PURE__ */ jsxDEV6("td", {
1282
+ }),
1283
+ /* @__PURE__ */ jsx6("td", {
1284
1284
  className: "px-4 py-3 align-top",
1285
1285
  children: "Yes"
1286
- }, undefined, false, undefined, this),
1287
- /* @__PURE__ */ jsxDEV6("td", {
1286
+ }),
1287
+ /* @__PURE__ */ jsx6("td", {
1288
1288
  className: "px-4 py-3 align-top",
1289
1289
  children: "Data pipelines and hybrid orchestration."
1290
- }, undefined, false, undefined, this)
1290
+ })
1291
1291
  ]
1292
- }, undefined, true, undefined, this),
1293
- /* @__PURE__ */ jsxDEV6("tr", {
1292
+ }),
1293
+ /* @__PURE__ */ jsxs6("tr", {
1294
1294
  children: [
1295
- /* @__PURE__ */ jsxDEV6("td", {
1295
+ /* @__PURE__ */ jsx6("td", {
1296
1296
  className: "px-4 py-3 align-top",
1297
- children: /* @__PURE__ */ jsxDEV6("strong", {
1297
+ children: /* @__PURE__ */ jsx6("strong", {
1298
1298
  children: "Temporal"
1299
- }, undefined, false, undefined, this)
1300
- }, undefined, false, undefined, this),
1301
- /* @__PURE__ */ jsxDEV6("td", {
1299
+ })
1300
+ }),
1301
+ /* @__PURE__ */ jsx6("td", {
1302
1302
  className: "px-4 py-3 align-top",
1303
1303
  children: "Durable execution; workflows never lose state; multi-language SDKs; automatic retries"
1304
- }, undefined, false, undefined, this),
1305
- /* @__PURE__ */ jsxDEV6("td", {
1304
+ }),
1305
+ /* @__PURE__ */ jsx6("td", {
1306
1306
  className: "px-4 py-3 align-top",
1307
1307
  children: "No"
1308
- }, undefined, false, undefined, this),
1309
- /* @__PURE__ */ jsxDEV6("td", {
1308
+ }),
1309
+ /* @__PURE__ */ jsx6("td", {
1310
1310
  className: "px-4 py-3 align-top",
1311
1311
  children: "No"
1312
- }, undefined, false, undefined, this),
1313
- /* @__PURE__ */ jsxDEV6("td", {
1312
+ }),
1313
+ /* @__PURE__ */ jsx6("td", {
1314
1314
  className: "px-4 py-3 align-top",
1315
1315
  children: "Yes"
1316
- }, undefined, false, undefined, this),
1317
- /* @__PURE__ */ jsxDEV6("td", {
1316
+ }),
1317
+ /* @__PURE__ */ jsx6("td", {
1318
1318
  className: "px-4 py-3 align-top",
1319
1319
  children: "Durable microservice and business workflows."
1320
- }, undefined, false, undefined, this)
1320
+ })
1321
1321
  ]
1322
- }, undefined, true, undefined, this),
1323
- /* @__PURE__ */ jsxDEV6("tr", {
1322
+ }),
1323
+ /* @__PURE__ */ jsxs6("tr", {
1324
1324
  children: [
1325
- /* @__PURE__ */ jsxDEV6("td", {
1325
+ /* @__PURE__ */ jsx6("td", {
1326
1326
  className: "px-4 py-3 align-top",
1327
- children: /* @__PURE__ */ jsxDEV6("strong", {
1327
+ children: /* @__PURE__ */ jsx6("strong", {
1328
1328
  children: "Airflow"
1329
- }, undefined, false, undefined, this)
1330
- }, undefined, false, undefined, this),
1331
- /* @__PURE__ */ jsxDEV6("td", {
1329
+ })
1330
+ }),
1331
+ /* @__PURE__ */ jsx6("td", {
1332
1332
  className: "px-4 py-3 align-top",
1333
1333
  children: "Open-source; define workflows as Python code; schedule and monitor via UI; extensible via custom operators"
1334
- }, undefined, false, undefined, this),
1335
- /* @__PURE__ */ jsxDEV6("td", {
1334
+ }),
1335
+ /* @__PURE__ */ jsx6("td", {
1336
1336
  className: "px-4 py-3 align-top",
1337
1337
  children: "No"
1338
- }, undefined, false, undefined, this),
1339
- /* @__PURE__ */ jsxDEV6("td", {
1338
+ }),
1339
+ /* @__PURE__ */ jsx6("td", {
1340
1340
  className: "px-4 py-3 align-top",
1341
1341
  children: "No"
1342
- }, undefined, false, undefined, this),
1343
- /* @__PURE__ */ jsxDEV6("td", {
1342
+ }),
1343
+ /* @__PURE__ */ jsx6("td", {
1344
1344
  className: "px-4 py-3 align-top",
1345
1345
  children: "Yes"
1346
- }, undefined, false, undefined, this),
1347
- /* @__PURE__ */ jsxDEV6("td", {
1346
+ }),
1347
+ /* @__PURE__ */ jsx6("td", {
1348
1348
  className: "px-4 py-3 align-top",
1349
1349
  children: "Data ETL pipelines."
1350
- }, undefined, false, undefined, this)
1350
+ })
1351
1351
  ]
1352
- }, undefined, true, undefined, this),
1353
- /* @__PURE__ */ jsxDEV6("tr", {
1352
+ }),
1353
+ /* @__PURE__ */ jsxs6("tr", {
1354
1354
  children: [
1355
- /* @__PURE__ */ jsxDEV6("td", {
1355
+ /* @__PURE__ */ jsx6("td", {
1356
1356
  className: "px-4 py-3 align-top",
1357
- children: /* @__PURE__ */ jsxDEV6("strong", {
1357
+ children: /* @__PURE__ */ jsx6("strong", {
1358
1358
  children: "Dagster"
1359
- }, undefined, false, undefined, this)
1360
- }, undefined, false, undefined, this),
1361
- /* @__PURE__ */ jsxDEV6("td", {
1359
+ })
1360
+ }),
1361
+ /* @__PURE__ */ jsx6("td", {
1362
1362
  className: "px-4 py-3 align-top",
1363
1363
  children: "Data-asset model; local testing and reusable components; built-in data quality and catalog; orchestrates AI/data pipelines across multiple tools"
1364
- }, undefined, false, undefined, this),
1365
- /* @__PURE__ */ jsxDEV6("td", {
1364
+ }),
1365
+ /* @__PURE__ */ jsx6("td", {
1366
1366
  className: "px-4 py-3 align-top",
1367
1367
  children: "No"
1368
- }, undefined, false, undefined, this),
1369
- /* @__PURE__ */ jsxDEV6("td", {
1368
+ }),
1369
+ /* @__PURE__ */ jsx6("td", {
1370
1370
  className: "px-4 py-3 align-top",
1371
1371
  children: "No"
1372
- }, undefined, false, undefined, this),
1373
- /* @__PURE__ */ jsxDEV6("td", {
1372
+ }),
1373
+ /* @__PURE__ */ jsx6("td", {
1374
1374
  className: "px-4 py-3 align-top",
1375
1375
  children: "Yes"
1376
- }, undefined, false, undefined, this),
1377
- /* @__PURE__ */ jsxDEV6("td", {
1376
+ }),
1377
+ /* @__PURE__ */ jsx6("td", {
1378
1378
  className: "px-4 py-3 align-top",
1379
1379
  children: "Data/AI pipelines with strong observability."
1380
- }, undefined, false, undefined, this)
1380
+ })
1381
1381
  ]
1382
- }, undefined, true, undefined, this),
1383
- /* @__PURE__ */ jsxDEV6("tr", {
1382
+ }),
1383
+ /* @__PURE__ */ jsxs6("tr", {
1384
1384
  children: [
1385
- /* @__PURE__ */ jsxDEV6("td", {
1385
+ /* @__PURE__ */ jsx6("td", {
1386
1386
  className: "px-4 py-3 align-top",
1387
- children: /* @__PURE__ */ jsxDEV6("strong", {
1387
+ children: /* @__PURE__ */ jsx6("strong", {
1388
1388
  children: "Hatchet"
1389
- }, undefined, false, undefined, this)
1390
- }, undefined, false, undefined, this),
1391
- /* @__PURE__ */ jsxDEV6("td", {
1389
+ })
1390
+ }),
1391
+ /* @__PURE__ */ jsx6("td", {
1392
1392
  className: "px-4 py-3 align-top",
1393
1393
  children: "Modern engine focused on performance and durability; tasks and workflows as code; durable functions with guardrails and retries"
1394
- }, undefined, false, undefined, this),
1395
- /* @__PURE__ */ jsxDEV6("td", {
1394
+ }),
1395
+ /* @__PURE__ */ jsx6("td", {
1396
1396
  className: "px-4 py-3 align-top",
1397
1397
  children: "No"
1398
- }, undefined, false, undefined, this),
1399
- /* @__PURE__ */ jsxDEV6("td", {
1398
+ }),
1399
+ /* @__PURE__ */ jsx6("td", {
1400
1400
  className: "px-4 py-3 align-top",
1401
1401
  children: "No"
1402
- }, undefined, false, undefined, this),
1403
- /* @__PURE__ */ jsxDEV6("td", {
1402
+ }),
1403
+ /* @__PURE__ */ jsx6("td", {
1404
1404
  className: "px-4 py-3 align-top",
1405
1405
  children: "Yes"
1406
- }, undefined, false, undefined, this),
1407
- /* @__PURE__ */ jsxDEV6("td", {
1406
+ }),
1407
+ /* @__PURE__ */ jsx6("td", {
1408
1408
  className: "px-4 py-3 align-top",
1409
1409
  children: "High-throughput background jobs and microservices."
1410
- }, undefined, false, undefined, this)
1410
+ })
1411
1411
  ]
1412
- }, undefined, true, undefined, this),
1413
- /* @__PURE__ */ jsxDEV6("tr", {
1412
+ }),
1413
+ /* @__PURE__ */ jsxs6("tr", {
1414
1414
  children: [
1415
- /* @__PURE__ */ jsxDEV6("td", {
1415
+ /* @__PURE__ */ jsx6("td", {
1416
1416
  className: "px-4 py-3 align-top",
1417
- children: /* @__PURE__ */ jsxDEV6("strong", {
1417
+ children: /* @__PURE__ */ jsx6("strong", {
1418
1418
  children: "Windmill"
1419
- }, undefined, false, undefined, this)
1420
- }, undefined, false, undefined, this),
1421
- /* @__PURE__ */ jsxDEV6("td", {
1419
+ })
1420
+ }),
1421
+ /* @__PURE__ */ jsx6("td", {
1422
1422
  className: "px-4 py-3 align-top",
1423
1423
  children: "Multi-language scripts; auto-generates UI; integrated flow editor"
1424
- }, undefined, false, undefined, this),
1425
- /* @__PURE__ */ jsxDEV6("td", {
1424
+ }),
1425
+ /* @__PURE__ */ jsx6("td", {
1426
1426
  className: "px-4 py-3 align-top",
1427
1427
  children: "Yes (basic)"
1428
- }, undefined, false, undefined, this),
1429
- /* @__PURE__ */ jsxDEV6("td", {
1428
+ }),
1429
+ /* @__PURE__ */ jsx6("td", {
1430
1430
  className: "px-4 py-3 align-top",
1431
1431
  children: "RBAC & secrets only"
1432
- }, undefined, false, undefined, this),
1433
- /* @__PURE__ */ jsxDEV6("td", {
1432
+ }),
1433
+ /* @__PURE__ */ jsx6("td", {
1434
1434
  className: "px-4 py-3 align-top",
1435
1435
  children: "Yes"
1436
- }, undefined, false, undefined, this),
1437
- /* @__PURE__ */ jsxDEV6("td", {
1436
+ }),
1437
+ /* @__PURE__ */ jsx6("td", {
1438
1438
  className: "px-4 py-3 align-top",
1439
1439
  children: "Scripts into workflows and dashboards."
1440
- }, undefined, false, undefined, this)
1440
+ })
1441
1441
  ]
1442
- }, undefined, true, undefined, this)
1442
+ })
1443
1443
  ]
1444
- }, undefined, true, undefined, this)
1444
+ })
1445
1445
  ]
1446
- }, undefined, true, undefined, this)
1447
- }, undefined, false, undefined, this)
1446
+ })
1447
+ })
1448
1448
  ]
1449
- }, undefined, true, undefined, this),
1450
- /* @__PURE__ */ jsxDEV6("div", {
1449
+ }),
1450
+ /* @__PURE__ */ jsxs6("div", {
1451
1451
  className: "space-y-3",
1452
1452
  children: [
1453
- /* @__PURE__ */ jsxDEV6("h2", {
1453
+ /* @__PURE__ */ jsx6("h2", {
1454
1454
  className: "text-2xl font-bold",
1455
1455
  children: "Why ContractSpec differs"
1456
- }, undefined, false, undefined, this),
1457
- /* @__PURE__ */ jsxDEV6("ul", {
1456
+ }),
1457
+ /* @__PURE__ */ jsxs6("ul", {
1458
1458
  className: "text-muted-foreground space-y-2",
1459
1459
  children: [
1460
- /* @__PURE__ */ jsxDEV6("li", {
1460
+ /* @__PURE__ */ jsxs6("li", {
1461
1461
  children: [
1462
- /* @__PURE__ */ jsxDEV6("strong", {
1462
+ /* @__PURE__ */ jsx6("strong", {
1463
1463
  children: "Spec-first generation"
1464
- }, undefined, false, undefined, this),
1464
+ }),
1465
1465
  " – Instead of writing code, you define typed specs for capabilities, data views and workflows; the compiler outputs both back-end and front-end."
1466
1466
  ]
1467
- }, undefined, true, undefined, this),
1468
- /* @__PURE__ */ jsxDEV6("li", {
1467
+ }),
1468
+ /* @__PURE__ */ jsxs6("li", {
1469
1469
  children: [
1470
- /* @__PURE__ */ jsxDEV6("strong", {
1470
+ /* @__PURE__ */ jsx6("strong", {
1471
1471
  children: "Policy engine"
1472
- }, undefined, false, undefined, this),
1472
+ }),
1473
1473
  " – Every render and mutate passes through an ABAC/PII policy decision point."
1474
1474
  ]
1475
- }, undefined, true, undefined, this),
1476
- /* @__PURE__ */ jsxDEV6("li", {
1475
+ }),
1476
+ /* @__PURE__ */ jsxs6("li", {
1477
1477
  children: [
1478
- /* @__PURE__ */ jsxDEV6("strong", {
1478
+ /* @__PURE__ */ jsx6("strong", {
1479
1479
  children: "Personalisation"
1480
- }, undefined, false, undefined, this),
1480
+ }),
1481
1481
  " – Signed OverlaySpecs allow tenant/user-specific UI changes without touching code."
1482
1482
  ]
1483
- }, undefined, true, undefined, this),
1484
- /* @__PURE__ */ jsxDEV6("li", {
1483
+ }),
1484
+ /* @__PURE__ */ jsxs6("li", {
1485
1485
  children: [
1486
- /* @__PURE__ */ jsxDEV6("strong", {
1486
+ /* @__PURE__ */ jsx6("strong", {
1487
1487
  children: "Unified runtime"
1488
- }, undefined, false, undefined, this),
1488
+ }),
1489
1489
  " – React/React-Native rendering ensures consistent experiences across web and mobile."
1490
1490
  ]
1491
- }, undefined, true, undefined, this)
1491
+ })
1492
1492
  ]
1493
- }, undefined, true, undefined, this),
1494
- /* @__PURE__ */ jsxDEV6("p", {
1493
+ }),
1494
+ /* @__PURE__ */ jsx6("p", {
1495
1495
  className: "text-muted-foreground",
1496
1496
  children: "Workflow engines are excellent for orchestrating back-end tasks. ContractSpec builds on this by serving complete applications with runtime policy enforcement and user personalisation via TypeScript specs."
1497
- }, undefined, false, undefined, this)
1497
+ })
1498
1498
  ]
1499
- }, undefined, true, undefined, this)
1499
+ })
1500
1500
  ]
1501
- }, undefined, true, undefined, this);
1501
+ });
1502
1502
  }
1503
1503
  export {
1504
1504
  ComparisonWorkflowEnginesPage,