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