@contractspec/bundle.library 1.12.0 → 1.13.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 (1524) hide show
  1. package/.turbo/turbo-build.log +571 -1228
  2. package/.turbo/turbo-prebuild.log +1 -0
  3. package/CHANGELOG.md +21 -0
  4. package/dist/__tests__/env-setup.d.ts +2 -0
  5. package/dist/__tests__/env-setup.d.ts.map +1 -0
  6. package/dist/__tests__/mocks/prisma.d.ts +16 -0
  7. package/dist/__tests__/mocks/prisma.d.ts.map +1 -0
  8. package/dist/__tests__/setup.d.ts +2 -0
  9. package/dist/__tests__/setup.d.ts.map +1 -0
  10. package/dist/application/index.d.ts +2 -4
  11. package/dist/application/index.d.ts.map +1 -0
  12. package/dist/application/index.js +696 -5
  13. package/dist/application/mcp/cliMcp.d.ts +79 -85
  14. package/dist/application/mcp/cliMcp.d.ts.map +1 -1
  15. package/dist/application/mcp/cliMcp.js +329 -218
  16. package/dist/application/mcp/common.d.ts +90 -103
  17. package/dist/application/mcp/common.d.ts.map +1 -1
  18. package/dist/application/mcp/common.js +73 -61
  19. package/dist/application/mcp/docsMcp.d.ts +79 -85
  20. package/dist/application/mcp/docsMcp.d.ts.map +1 -1
  21. package/dist/application/mcp/docsMcp.js +259 -136
  22. package/dist/application/mcp/index.d.ts +4 -4
  23. package/dist/application/mcp/index.d.ts.map +1 -0
  24. package/dist/application/mcp/index.js +696 -4
  25. package/dist/application/mcp/internalMcp.d.ts +79 -85
  26. package/dist/application/mcp/internalMcp.d.ts.map +1 -1
  27. package/dist/application/mcp/internalMcp.js +285 -172
  28. package/dist/components/docs/DocsIndexPage.d.ts +1 -6
  29. package/dist/components/docs/DocsIndexPage.d.ts.map +1 -1
  30. package/dist/components/docs/DocsIndexPage.js +259 -211
  31. package/dist/components/docs/advanced/AdvancedMCPPage.d.ts +1 -6
  32. package/dist/components/docs/advanced/AdvancedMCPPage.d.ts.map +1 -1
  33. package/dist/components/docs/advanced/AdvancedMCPPage.js +269 -212
  34. package/dist/components/docs/advanced/AdvancedOverlayEditorPage.d.ts +1 -6
  35. package/dist/components/docs/advanced/AdvancedOverlayEditorPage.d.ts.map +1 -1
  36. package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +105 -74
  37. package/dist/components/docs/advanced/AdvancedRenderersPage.d.ts +1 -6
  38. package/dist/components/docs/advanced/AdvancedRenderersPage.d.ts.map +1 -1
  39. package/dist/components/docs/advanced/AdvancedRenderersPage.js +116 -86
  40. package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.d.ts +1 -6
  41. package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.d.ts.map +1 -1
  42. package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +88 -71
  43. package/dist/components/docs/advanced/AdvancedTelemetryPage.d.ts +1 -6
  44. package/dist/components/docs/advanced/AdvancedTelemetryPage.d.ts.map +1 -1
  45. package/dist/components/docs/advanced/AdvancedTelemetryPage.js +371 -203
  46. package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.d.ts +1 -6
  47. package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.d.ts.map +1 -1
  48. package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +97 -72
  49. package/dist/components/docs/advanced/index.d.ts +7 -7
  50. package/dist/components/docs/advanced/index.d.ts.map +1 -0
  51. package/dist/components/docs/advanced/index.js +1221 -8
  52. package/dist/components/docs/architecture/ArchitectureAppConfigPage.d.ts +1 -6
  53. package/dist/components/docs/architecture/ArchitectureAppConfigPage.d.ts.map +1 -1
  54. package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +235 -171
  55. package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.d.ts +1 -6
  56. package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.d.ts.map +1 -1
  57. package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +251 -180
  58. package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.d.ts +1 -6
  59. package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.d.ts.map +1 -1
  60. package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +366 -282
  61. package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.d.ts +1 -6
  62. package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.d.ts.map +1 -1
  63. package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +162 -113
  64. package/dist/components/docs/architecture/ArchitectureOverviewPage.d.ts +1 -6
  65. package/dist/components/docs/architecture/ArchitectureOverviewPage.d.ts.map +1 -1
  66. package/dist/components/docs/architecture/ArchitectureOverviewPage.js +446 -321
  67. package/dist/components/docs/architecture/index.d.ts +6 -6
  68. package/dist/components/docs/architecture/index.d.ts.map +1 -0
  69. package/dist/components/docs/architecture/index.js +1913 -6
  70. package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.d.ts +1 -6
  71. package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.d.ts.map +1 -1
  72. package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +244 -198
  73. package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.d.ts +1 -6
  74. package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.d.ts.map +1 -1
  75. package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +228 -168
  76. package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.d.ts +1 -6
  77. package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.d.ts.map +1 -1
  78. package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +244 -198
  79. package/dist/components/docs/comparison/ComparisonOverviewPage.d.ts +1 -6
  80. package/dist/components/docs/comparison/ComparisonOverviewPage.d.ts.map +1 -1
  81. package/dist/components/docs/comparison/ComparisonOverviewPage.js +201 -166
  82. package/dist/components/docs/comparison/ComparisonWindmillPage.d.ts +1 -6
  83. package/dist/components/docs/comparison/ComparisonWindmillPage.d.ts.map +1 -1
  84. package/dist/components/docs/comparison/ComparisonWindmillPage.js +253 -175
  85. package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.d.ts +1 -6
  86. package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.d.ts.map +1 -1
  87. package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +338 -274
  88. package/dist/components/docs/comparison/index.d.ts +7 -7
  89. package/dist/components/docs/comparison/index.d.ts.map +1 -0
  90. package/dist/components/docs/comparison/index.js +1511 -8
  91. package/dist/components/docs/ecosystem/IntegrationsPage.d.ts +1 -6
  92. package/dist/components/docs/ecosystem/IntegrationsPage.d.ts.map +1 -1
  93. package/dist/components/docs/ecosystem/IntegrationsPage.js +96 -76
  94. package/dist/components/docs/ecosystem/PluginsPage.d.ts +1 -6
  95. package/dist/components/docs/ecosystem/PluginsPage.d.ts.map +1 -1
  96. package/dist/components/docs/ecosystem/PluginsPage.js +139 -114
  97. package/dist/components/docs/ecosystem/RegistryPage.d.ts +1 -6
  98. package/dist/components/docs/ecosystem/RegistryPage.d.ts.map +1 -1
  99. package/dist/components/docs/ecosystem/RegistryPage.js +81 -71
  100. package/dist/components/docs/ecosystem/TemplatesPage.d.ts +1 -6
  101. package/dist/components/docs/ecosystem/TemplatesPage.d.ts.map +1 -1
  102. package/dist/components/docs/ecosystem/TemplatesPage.js +136 -84
  103. package/dist/components/docs/ecosystem/ecosystem.docblocks.d.ts +2 -1
  104. package/dist/components/docs/ecosystem/ecosystem.docblocks.d.ts.map +1 -0
  105. package/dist/components/docs/ecosystem/ecosystem.docblocks.js +45 -51
  106. package/dist/components/docs/ecosystem/index.d.ts +6 -5
  107. package/dist/components/docs/ecosystem/index.d.ts.map +1 -0
  108. package/dist/components/docs/ecosystem/index.js +614 -6
  109. package/dist/components/docs/examples/DocsExamplesPage.d.ts +1 -6
  110. package/dist/components/docs/examples/DocsExamplesPage.d.ts.map +1 -1
  111. package/dist/components/docs/examples/DocsExamplesPage.js +79 -65
  112. package/dist/components/docs/examples/index.d.ts +2 -2
  113. package/dist/components/docs/examples/index.d.ts.map +1 -0
  114. package/dist/components/docs/examples/index.js +85 -3
  115. package/dist/components/docs/generated/docs-index.generated.d.ts +24 -27
  116. package/dist/components/docs/generated/docs-index.generated.d.ts.map +1 -1
  117. package/dist/components/docs/generated/docs-index.generated.js +6 -6
  118. package/dist/components/docs/generated/index.d.ts +3 -3
  119. package/dist/components/docs/generated/index.d.ts.map +1 -0
  120. package/dist/components/docs/generated/index.js +74 -2
  121. package/dist/components/docs/generated/loader.d.ts +6 -10
  122. package/dist/components/docs/generated/loader.d.ts.map +1 -1
  123. package/dist/components/docs/generated/loader.js +60 -48
  124. package/dist/components/docs/getting-started/CLIPage.d.ts +1 -6
  125. package/dist/components/docs/getting-started/CLIPage.d.ts.map +1 -1
  126. package/dist/components/docs/getting-started/CLIPage.js +265 -231
  127. package/dist/components/docs/getting-started/CompatibilityPage.d.ts +1 -6
  128. package/dist/components/docs/getting-started/CompatibilityPage.d.ts.map +1 -1
  129. package/dist/components/docs/getting-started/CompatibilityPage.js +171 -115
  130. package/dist/components/docs/getting-started/DataViewTutorialPage.d.ts +1 -6
  131. package/dist/components/docs/getting-started/DataViewTutorialPage.d.ts.map +1 -1
  132. package/dist/components/docs/getting-started/DataViewTutorialPage.js +128 -105
  133. package/dist/components/docs/getting-started/DeveloperToolsPage.d.ts +1 -6
  134. package/dist/components/docs/getting-started/DeveloperToolsPage.d.ts.map +1 -1
  135. package/dist/components/docs/getting-started/DeveloperToolsPage.js +191 -151
  136. package/dist/components/docs/getting-started/HelloWorldPage.d.ts +1 -6
  137. package/dist/components/docs/getting-started/HelloWorldPage.d.ts.map +1 -1
  138. package/dist/components/docs/getting-started/HelloWorldPage.js +176 -138
  139. package/dist/components/docs/getting-started/InstallationPage.d.ts +1 -6
  140. package/dist/components/docs/getting-started/InstallationPage.d.ts.map +1 -1
  141. package/dist/components/docs/getting-started/InstallationPage.js +149 -115
  142. package/dist/components/docs/getting-started/StartHerePage.d.ts +1 -6
  143. package/dist/components/docs/getting-started/StartHerePage.d.ts.map +1 -1
  144. package/dist/components/docs/getting-started/StartHerePage.js +125 -98
  145. package/dist/components/docs/getting-started/TroubleshootingPage.d.ts +1 -6
  146. package/dist/components/docs/getting-started/TroubleshootingPage.d.ts.map +1 -1
  147. package/dist/components/docs/getting-started/TroubleshootingPage.js +164 -111
  148. package/dist/components/docs/getting-started/VSCodeExtensionPage.d.ts +1 -6
  149. package/dist/components/docs/getting-started/VSCodeExtensionPage.d.ts.map +1 -1
  150. package/dist/components/docs/getting-started/VSCodeExtensionPage.js +429 -353
  151. package/dist/components/docs/getting-started/getting-started.docblocks.d.ts +2 -6
  152. package/dist/components/docs/getting-started/getting-started.docblocks.d.ts.map +1 -1
  153. package/dist/components/docs/getting-started/getting-started.docblocks.js +36 -37
  154. package/dist/components/docs/getting-started/index.d.ts +11 -11
  155. package/dist/components/docs/getting-started/index.d.ts.map +1 -0
  156. package/dist/components/docs/getting-started/index.js +2184 -12
  157. package/dist/components/docs/guides/GuideCIDiffGatingPage.d.ts +1 -6
  158. package/dist/components/docs/guides/GuideCIDiffGatingPage.d.ts.map +1 -1
  159. package/dist/components/docs/guides/GuideCIDiffGatingPage.js +192 -143
  160. package/dist/components/docs/guides/GuideContractTypesPage.d.ts +1 -6
  161. package/dist/components/docs/guides/GuideContractTypesPage.d.ts.map +1 -1
  162. package/dist/components/docs/guides/GuideContractTypesPage.js +532 -440
  163. package/dist/components/docs/guides/GuideDocsPipelinePage.d.ts +1 -6
  164. package/dist/components/docs/guides/GuideDocsPipelinePage.d.ts.map +1 -1
  165. package/dist/components/docs/guides/GuideDocsPipelinePage.js +202 -142
  166. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.d.ts +1 -6
  167. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.d.ts.map +1 -1
  168. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +205 -152
  169. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.d.ts +1 -6
  170. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.d.ts.map +1 -1
  171. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +743 -543
  172. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.d.ts +1 -6
  173. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.d.ts.map +1 -1
  174. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +260 -199
  175. package/dist/components/docs/guides/GuideSpecValidationTypingPage.d.ts +1 -6
  176. package/dist/components/docs/guides/GuideSpecValidationTypingPage.d.ts.map +1 -1
  177. package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +190 -139
  178. package/dist/components/docs/guides/GuidesIndexPage.d.ts +1 -6
  179. package/dist/components/docs/guides/GuidesIndexPage.d.ts.map +1 -1
  180. package/dist/components/docs/guides/GuidesIndexPage.js +141 -115
  181. package/dist/components/docs/guides/guides.docblocks.d.ts +2 -1
  182. package/dist/components/docs/guides/guides.docblocks.d.ts.map +1 -0
  183. package/dist/components/docs/guides/guides.docblocks.js +65 -87
  184. package/dist/components/docs/guides/index.d.ts +10 -9
  185. package/dist/components/docs/guides/index.d.ts.map +1 -0
  186. package/dist/components/docs/guides/index.js +2903 -11
  187. package/dist/components/docs/index.d.ts +20 -135
  188. package/dist/components/docs/index.d.ts.map +1 -0
  189. package/dist/components/docs/index.js +28182 -136
  190. package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.d.ts +1 -6
  191. package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.d.ts.map +1 -1
  192. package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +40 -33
  193. package/dist/components/docs/integrations/IntegrationsElevenLabsPage.d.ts +1 -6
  194. package/dist/components/docs/integrations/IntegrationsElevenLabsPage.d.ts.map +1 -1
  195. package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +103 -72
  196. package/dist/components/docs/integrations/IntegrationsGmailPage.d.ts +1 -6
  197. package/dist/components/docs/integrations/IntegrationsGmailPage.d.ts.map +1 -1
  198. package/dist/components/docs/integrations/IntegrationsGmailPage.js +107 -79
  199. package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.d.ts +1 -6
  200. package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.d.ts.map +1 -1
  201. package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +77 -57
  202. package/dist/components/docs/integrations/IntegrationsOpenAIPage.d.ts +1 -6
  203. package/dist/components/docs/integrations/IntegrationsOpenAIPage.d.ts.map +1 -1
  204. package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +138 -95
  205. package/dist/components/docs/integrations/IntegrationsOverviewPage.d.ts +1 -6
  206. package/dist/components/docs/integrations/IntegrationsOverviewPage.d.ts.map +1 -1
  207. package/dist/components/docs/integrations/IntegrationsOverviewPage.js +598 -481
  208. package/dist/components/docs/integrations/IntegrationsPostmarkPage.d.ts +1 -6
  209. package/dist/components/docs/integrations/IntegrationsPostmarkPage.d.ts.map +1 -1
  210. package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +217 -146
  211. package/dist/components/docs/integrations/IntegrationsPowensPage.d.ts +1 -6
  212. package/dist/components/docs/integrations/IntegrationsPowensPage.d.ts.map +1 -1
  213. package/dist/components/docs/integrations/IntegrationsPowensPage.js +298 -243
  214. package/dist/components/docs/integrations/IntegrationsQdrantPage.d.ts +1 -6
  215. package/dist/components/docs/integrations/IntegrationsQdrantPage.d.ts.map +1 -1
  216. package/dist/components/docs/integrations/IntegrationsQdrantPage.js +112 -82
  217. package/dist/components/docs/integrations/IntegrationsResendPage.d.ts +1 -6
  218. package/dist/components/docs/integrations/IntegrationsResendPage.d.ts.map +1 -1
  219. package/dist/components/docs/integrations/IntegrationsResendPage.js +100 -71
  220. package/dist/components/docs/integrations/IntegrationsS3Page.d.ts +1 -6
  221. package/dist/components/docs/integrations/IntegrationsS3Page.d.ts.map +1 -1
  222. package/dist/components/docs/integrations/IntegrationsS3Page.js +122 -84
  223. package/dist/components/docs/integrations/IntegrationsSpecModelPage.d.ts +1 -6
  224. package/dist/components/docs/integrations/IntegrationsSpecModelPage.d.ts.map +1 -1
  225. package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +248 -167
  226. package/dist/components/docs/integrations/IntegrationsStripePage.d.ts +1 -6
  227. package/dist/components/docs/integrations/IntegrationsStripePage.d.ts.map +1 -1
  228. package/dist/components/docs/integrations/IntegrationsStripePage.js +332 -255
  229. package/dist/components/docs/integrations/IntegrationsTwilioPage.d.ts +1 -6
  230. package/dist/components/docs/integrations/IntegrationsTwilioPage.d.ts.map +1 -1
  231. package/dist/components/docs/integrations/IntegrationsTwilioPage.js +126 -87
  232. package/dist/components/docs/integrations/index.d.ts +15 -15
  233. package/dist/components/docs/integrations/index.d.ts.map +1 -0
  234. package/dist/components/docs/integrations/index.js +3312 -16
  235. package/dist/components/docs/intent/ContractFirstApiPage.d.ts +3 -9
  236. package/dist/components/docs/intent/ContractFirstApiPage.d.ts.map +1 -1
  237. package/dist/components/docs/intent/ContractFirstApiPage.js +120 -96
  238. package/dist/components/docs/intent/DeterministicCodegenPage.d.ts +3 -9
  239. package/dist/components/docs/intent/DeterministicCodegenPage.d.ts.map +1 -1
  240. package/dist/components/docs/intent/DeterministicCodegenPage.js +138 -117
  241. package/dist/components/docs/intent/GenerateClientFromSchemaPage.d.ts +3 -9
  242. package/dist/components/docs/intent/GenerateClientFromSchemaPage.d.ts.map +1 -1
  243. package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +198 -168
  244. package/dist/components/docs/intent/OpenapiAlternativePage.d.ts +3 -9
  245. package/dist/components/docs/intent/OpenapiAlternativePage.d.ts.map +1 -1
  246. package/dist/components/docs/intent/OpenapiAlternativePage.js +196 -146
  247. package/dist/components/docs/intent/SchemaValidationTypescriptPage.d.ts +3 -9
  248. package/dist/components/docs/intent/SchemaValidationTypescriptPage.d.ts.map +1 -1
  249. package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +138 -117
  250. package/dist/components/docs/intent/SpecDrivenDevelopmentPage.d.ts +3 -9
  251. package/dist/components/docs/intent/SpecDrivenDevelopmentPage.d.ts.map +1 -1
  252. package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +120 -96
  253. package/dist/components/docs/intent/index.d.ts +8 -7
  254. package/dist/components/docs/intent/index.d.ts.map +1 -0
  255. package/dist/components/docs/intent/index.js +1595 -8
  256. package/dist/components/docs/intent/intent-pages.docblocks.d.ts +7 -11
  257. package/dist/components/docs/intent/intent-pages.docblocks.d.ts.map +1 -1
  258. package/dist/components/docs/intent/intent-pages.docblocks.js +196 -173
  259. package/dist/components/docs/knowledge/KnowledgeCategoriesPage.d.ts +1 -6
  260. package/dist/components/docs/knowledge/KnowledgeCategoriesPage.d.ts.map +1 -1
  261. package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +748 -447
  262. package/dist/components/docs/knowledge/KnowledgeExamplesPage.d.ts +1 -6
  263. package/dist/components/docs/knowledge/KnowledgeExamplesPage.d.ts.map +1 -1
  264. package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +189 -125
  265. package/dist/components/docs/knowledge/KnowledgeOverviewPage.d.ts +1 -6
  266. package/dist/components/docs/knowledge/KnowledgeOverviewPage.d.ts.map +1 -1
  267. package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +405 -294
  268. package/dist/components/docs/knowledge/KnowledgeSourcesPage.d.ts +1 -6
  269. package/dist/components/docs/knowledge/KnowledgeSourcesPage.d.ts.map +1 -1
  270. package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +389 -288
  271. package/dist/components/docs/knowledge/KnowledgeSpacesPage.d.ts +1 -6
  272. package/dist/components/docs/knowledge/KnowledgeSpacesPage.d.ts.map +1 -1
  273. package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +300 -227
  274. package/dist/components/docs/knowledge/index.d.ts +6 -6
  275. package/dist/components/docs/knowledge/index.d.ts.map +1 -0
  276. package/dist/components/docs/knowledge/index.js +2444 -6
  277. package/dist/components/docs/libraries/LibrariesAccessibilityPage.d.ts +1 -6
  278. package/dist/components/docs/libraries/LibrariesAccessibilityPage.d.ts.map +1 -1
  279. package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +193 -132
  280. package/dist/components/docs/libraries/LibrariesAiAgentPage.d.ts +1 -6
  281. package/dist/components/docs/libraries/LibrariesAiAgentPage.d.ts.map +1 -1
  282. package/dist/components/docs/libraries/LibrariesAiAgentPage.js +141 -89
  283. package/dist/components/docs/libraries/LibrariesAnalyticsPage.d.ts +1 -6
  284. package/dist/components/docs/libraries/LibrariesAnalyticsPage.d.ts.map +1 -1
  285. package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +75 -59
  286. package/dist/components/docs/libraries/LibrariesContentGenPage.d.ts +1 -6
  287. package/dist/components/docs/libraries/LibrariesContentGenPage.d.ts.map +1 -1
  288. package/dist/components/docs/libraries/LibrariesContentGenPage.js +96 -67
  289. package/dist/components/docs/libraries/LibrariesContractsPage.d.ts +1 -6
  290. package/dist/components/docs/libraries/LibrariesContractsPage.d.ts.map +1 -1
  291. package/dist/components/docs/libraries/LibrariesContractsPage.js +277 -140
  292. package/dist/components/docs/libraries/LibrariesCostTrackingPage.d.ts +1 -6
  293. package/dist/components/docs/libraries/LibrariesCostTrackingPage.d.ts.map +1 -1
  294. package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +107 -76
  295. package/dist/components/docs/libraries/LibrariesDataBackendPage.d.ts +1 -6
  296. package/dist/components/docs/libraries/LibrariesDataBackendPage.d.ts.map +1 -1
  297. package/dist/components/docs/libraries/LibrariesDataBackendPage.js +162 -106
  298. package/dist/components/docs/libraries/LibrariesDataViewsPage.d.ts +1 -6
  299. package/dist/components/docs/libraries/LibrariesDataViewsPage.d.ts.map +1 -1
  300. package/dist/components/docs/libraries/LibrariesDataViewsPage.js +181 -112
  301. package/dist/components/docs/libraries/LibrariesDesignSystemPage.d.ts +1 -6
  302. package/dist/components/docs/libraries/LibrariesDesignSystemPage.d.ts.map +1 -1
  303. package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +273 -158
  304. package/dist/components/docs/libraries/LibrariesEvolutionPage.d.ts +1 -6
  305. package/dist/components/docs/libraries/LibrariesEvolutionPage.d.ts.map +1 -1
  306. package/dist/components/docs/libraries/LibrariesEvolutionPage.js +121 -91
  307. package/dist/components/docs/libraries/LibrariesGraphQLPage.d.ts +1 -6
  308. package/dist/components/docs/libraries/LibrariesGraphQLPage.d.ts.map +1 -1
  309. package/dist/components/docs/libraries/LibrariesGraphQLPage.js +169 -118
  310. package/dist/components/docs/libraries/LibrariesGrowthPage.d.ts +1 -6
  311. package/dist/components/docs/libraries/LibrariesGrowthPage.d.ts.map +1 -1
  312. package/dist/components/docs/libraries/LibrariesGrowthPage.js +83 -62
  313. package/dist/components/docs/libraries/LibrariesMultiTenancyPage.d.ts +1 -6
  314. package/dist/components/docs/libraries/LibrariesMultiTenancyPage.d.ts.map +1 -1
  315. package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +103 -84
  316. package/dist/components/docs/libraries/LibrariesObservabilityPage.d.ts +1 -6
  317. package/dist/components/docs/libraries/LibrariesObservabilityPage.d.ts.map +1 -1
  318. package/dist/components/docs/libraries/LibrariesObservabilityPage.js +123 -100
  319. package/dist/components/docs/libraries/LibrariesOverlayEnginePage.d.ts +1 -6
  320. package/dist/components/docs/libraries/LibrariesOverlayEnginePage.d.ts.map +1 -1
  321. package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +104 -86
  322. package/dist/components/docs/libraries/LibrariesOverviewPage.d.ts +1 -6
  323. package/dist/components/docs/libraries/LibrariesOverviewPage.d.ts.map +1 -1
  324. package/dist/components/docs/libraries/LibrariesOverviewPage.js +481 -356
  325. package/dist/components/docs/libraries/LibrariesPersonalizationPage.d.ts +1 -6
  326. package/dist/components/docs/libraries/LibrariesPersonalizationPage.d.ts.map +1 -1
  327. package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +108 -93
  328. package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.d.ts +1 -6
  329. package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.d.ts.map +1 -1
  330. package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +127 -96
  331. package/dist/components/docs/libraries/LibrariesResiliencePage.d.ts +1 -6
  332. package/dist/components/docs/libraries/LibrariesResiliencePage.d.ts.map +1 -1
  333. package/dist/components/docs/libraries/LibrariesResiliencePage.js +114 -97
  334. package/dist/components/docs/libraries/LibrariesRuntimePage.d.ts +1 -6
  335. package/dist/components/docs/libraries/LibrariesRuntimePage.d.ts.map +1 -1
  336. package/dist/components/docs/libraries/LibrariesRuntimePage.js +196 -116
  337. package/dist/components/docs/libraries/LibrariesSLOPage.d.ts +1 -6
  338. package/dist/components/docs/libraries/LibrariesSLOPage.d.ts.map +1 -1
  339. package/dist/components/docs/libraries/LibrariesSLOPage.js +111 -83
  340. package/dist/components/docs/libraries/LibrariesSchemaPage.d.ts +1 -6
  341. package/dist/components/docs/libraries/LibrariesSchemaPage.d.ts.map +1 -1
  342. package/dist/components/docs/libraries/LibrariesSchemaPage.js +268 -151
  343. package/dist/components/docs/libraries/LibrariesSupportBotPage.d.ts +1 -6
  344. package/dist/components/docs/libraries/LibrariesSupportBotPage.d.ts.map +1 -1
  345. package/dist/components/docs/libraries/LibrariesSupportBotPage.js +129 -77
  346. package/dist/components/docs/libraries/LibrariesTestingPage.d.ts +1 -6
  347. package/dist/components/docs/libraries/LibrariesTestingPage.d.ts.map +1 -1
  348. package/dist/components/docs/libraries/LibrariesTestingPage.js +121 -91
  349. package/dist/components/docs/libraries/LibrariesUIKitPage.d.ts +1 -6
  350. package/dist/components/docs/libraries/LibrariesUIKitPage.d.ts.map +1 -1
  351. package/dist/components/docs/libraries/LibrariesUIKitPage.js +226 -136
  352. package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.d.ts +1 -6
  353. package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.d.ts.map +1 -1
  354. package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +83 -62
  355. package/dist/components/docs/libraries/LibrariesWorkflowsPage.d.ts +1 -6
  356. package/dist/components/docs/libraries/LibrariesWorkflowsPage.d.ts.map +1 -1
  357. package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +177 -111
  358. package/dist/components/docs/libraries/index.d.ts +28 -28
  359. package/dist/components/docs/libraries/index.d.ts.map +1 -0
  360. package/dist/components/docs/libraries/index.js +5005 -29
  361. package/dist/components/docs/manifesto/ManifestoPage.d.ts +1 -6
  362. package/dist/components/docs/manifesto/ManifestoPage.d.ts.map +1 -1
  363. package/dist/components/docs/manifesto/ManifestoPage.js +190 -183
  364. package/dist/components/docs/ops/AutoEvolutionOpsPage.d.ts +1 -6
  365. package/dist/components/docs/ops/AutoEvolutionOpsPage.d.ts.map +1 -1
  366. package/dist/components/docs/ops/AutoEvolutionOpsPage.js +130 -92
  367. package/dist/components/docs/ops/DistributedTracingOpsPage.d.ts +1 -6
  368. package/dist/components/docs/ops/DistributedTracingOpsPage.d.ts.map +1 -1
  369. package/dist/components/docs/ops/DistributedTracingOpsPage.js +69 -55
  370. package/dist/components/docs/ops/index.d.ts +3 -3
  371. package/dist/components/docs/ops/index.d.ts.map +1 -0
  372. package/dist/components/docs/ops/index.js +213 -3
  373. package/dist/components/docs/ops/ops-lifecycle.docblocks.d.ts +2 -6
  374. package/dist/components/docs/ops/ops-lifecycle.docblocks.d.ts.map +1 -1
  375. package/dist/components/docs/ops/ops-lifecycle.docblocks.js +38 -38
  376. package/dist/components/docs/ops/ops-runbooks-a.docblocks.d.ts +2 -6
  377. package/dist/components/docs/ops/ops-runbooks-a.docblocks.d.ts.map +1 -1
  378. package/dist/components/docs/ops/ops-runbooks-a.docblocks.js +68 -68
  379. package/dist/components/docs/ops/ops-runbooks-b.docblocks.d.ts +2 -6
  380. package/dist/components/docs/ops/ops-runbooks-b.docblocks.d.ts.map +1 -1
  381. package/dist/components/docs/ops/ops-runbooks-b.docblocks.js +69 -69
  382. package/dist/components/docs/ops/ops-slo-tenant.docblocks.d.ts +2 -6
  383. package/dist/components/docs/ops/ops-slo-tenant.docblocks.d.ts.map +1 -1
  384. package/dist/components/docs/ops/ops-slo-tenant.docblocks.js +69 -69
  385. package/dist/components/docs/ops/ops-top.docs.d.ts +2 -6
  386. package/dist/components/docs/ops/ops-top.docs.d.ts.map +1 -1
  387. package/dist/components/docs/ops/ops-top.docs.js +17 -15
  388. package/dist/components/docs/ops/ops.docs.d.ts +2 -6
  389. package/dist/components/docs/ops/ops.docs.d.ts.map +1 -1
  390. package/dist/components/docs/ops/ops.docs.js +579 -16
  391. package/dist/components/docs/product/product.docblocks.d.ts +2 -6
  392. package/dist/components/docs/product/product.docblocks.d.ts.map +1 -1
  393. package/dist/components/docs/product/product.docblocks.js +66 -67
  394. package/dist/components/docs/reference/DocsMarkdownContent.d.ts +3 -10
  395. package/dist/components/docs/reference/DocsMarkdownContent.d.ts.map +1 -1
  396. package/dist/components/docs/reference/DocsMarkdownContent.js +188 -64
  397. package/dist/components/docs/reference/DocsReferenceContent.d.ts +5 -12
  398. package/dist/components/docs/reference/DocsReferenceContent.d.ts.map +1 -1
  399. package/dist/components/docs/reference/DocsReferenceContent.js +251 -45
  400. package/dist/components/docs/reference/DocsReferenceIndexClient.d.ts +4 -10
  401. package/dist/components/docs/reference/DocsReferenceIndexClient.d.ts.map +1 -1
  402. package/dist/components/docs/reference/DocsReferenceIndexClient.js +120 -98
  403. package/dist/components/docs/reference/DocsReferenceIndexPage.d.ts +1 -6
  404. package/dist/components/docs/reference/DocsReferenceIndexPage.d.ts.map +1 -1
  405. package/dist/components/docs/reference/DocsReferenceIndexPage.js +205 -9
  406. package/dist/components/docs/reference/DocsReferencePage.d.ts +5 -12
  407. package/dist/components/docs/reference/DocsReferencePage.d.ts.map +1 -1
  408. package/dist/components/docs/reference/DocsReferencePage.js +264 -11
  409. package/dist/components/docs/reference/docsMarkdownParser.d.ts +15 -18
  410. package/dist/components/docs/reference/docsMarkdownParser.d.ts.map +1 -1
  411. package/dist/components/docs/reference/docsMarkdownParser.js +87 -90
  412. package/dist/components/docs/reference/index.d.ts +3 -3
  413. package/dist/components/docs/reference/index.d.ts.map +1 -0
  414. package/dist/components/docs/reference/index.js +472 -3
  415. package/dist/components/docs/safety/SafetyAuditingPage.d.ts +1 -6
  416. package/dist/components/docs/safety/SafetyAuditingPage.d.ts.map +1 -1
  417. package/dist/components/docs/safety/SafetyAuditingPage.js +348 -210
  418. package/dist/components/docs/safety/SafetyMigrationsPage.d.ts +1 -6
  419. package/dist/components/docs/safety/SafetyMigrationsPage.d.ts.map +1 -1
  420. package/dist/components/docs/safety/SafetyMigrationsPage.js +357 -220
  421. package/dist/components/docs/safety/SafetyOverviewPage.d.ts +1 -6
  422. package/dist/components/docs/safety/SafetyOverviewPage.d.ts.map +1 -1
  423. package/dist/components/docs/safety/SafetyOverviewPage.js +236 -194
  424. package/dist/components/docs/safety/SafetyPDPPage.d.ts +1 -6
  425. package/dist/components/docs/safety/SafetyPDPPage.d.ts.map +1 -1
  426. package/dist/components/docs/safety/SafetyPDPPage.js +299 -201
  427. package/dist/components/docs/safety/SafetySecurityTrustPage.d.ts +1 -6
  428. package/dist/components/docs/safety/SafetySecurityTrustPage.d.ts.map +1 -1
  429. package/dist/components/docs/safety/SafetySecurityTrustPage.js +204 -154
  430. package/dist/components/docs/safety/SafetySigningPage.d.ts +1 -6
  431. package/dist/components/docs/safety/SafetySigningPage.d.ts.map +1 -1
  432. package/dist/components/docs/safety/SafetySigningPage.js +89 -66
  433. package/dist/components/docs/safety/SafetyTenantIsolationPage.d.ts +1 -6
  434. package/dist/components/docs/safety/SafetyTenantIsolationPage.d.ts.map +1 -1
  435. package/dist/components/docs/safety/SafetyTenantIsolationPage.js +77 -59
  436. package/dist/components/docs/safety/index.d.ts +8 -8
  437. package/dist/components/docs/safety/index.d.ts.map +1 -0
  438. package/dist/components/docs/safety/index.js +1698 -9
  439. package/dist/components/docs/shared/StudioPrompt.d.ts +6 -15
  440. package/dist/components/docs/shared/StudioPrompt.d.ts.map +1 -1
  441. package/dist/components/docs/shared/StudioPrompt.js +30 -26
  442. package/dist/components/docs/specs/SpecsCapabilitiesPage.d.ts +1 -6
  443. package/dist/components/docs/specs/SpecsCapabilitiesPage.d.ts.map +1 -1
  444. package/dist/components/docs/specs/SpecsCapabilitiesPage.js +156 -126
  445. package/dist/components/docs/specs/SpecsDataViewsPage.d.ts +1 -6
  446. package/dist/components/docs/specs/SpecsDataViewsPage.d.ts.map +1 -1
  447. package/dist/components/docs/specs/SpecsDataViewsPage.js +258 -168
  448. package/dist/components/docs/specs/SpecsOverlaysPage.d.ts +1 -6
  449. package/dist/components/docs/specs/SpecsOverlaysPage.d.ts.map +1 -1
  450. package/dist/components/docs/specs/SpecsOverlaysPage.js +370 -205
  451. package/dist/components/docs/specs/SpecsOverviewPage.d.ts +1 -6
  452. package/dist/components/docs/specs/SpecsOverviewPage.d.ts.map +1 -1
  453. package/dist/components/docs/specs/SpecsOverviewPage.js +346 -277
  454. package/dist/components/docs/specs/SpecsPolicyPage.d.ts +1 -6
  455. package/dist/components/docs/specs/SpecsPolicyPage.d.ts.map +1 -1
  456. package/dist/components/docs/specs/SpecsPolicyPage.js +418 -311
  457. package/dist/components/docs/specs/SpecsWorkflowsPage.d.ts +1 -6
  458. package/dist/components/docs/specs/SpecsWorkflowsPage.d.ts.map +1 -1
  459. package/dist/components/docs/specs/SpecsWorkflowsPage.js +310 -205
  460. package/dist/components/docs/specs/index.d.ts +7 -7
  461. package/dist/components/docs/specs/index.d.ts.map +1 -0
  462. package/dist/components/docs/specs/index.js +2082 -8
  463. package/dist/components/docs/studio/StudioBYOKPage.d.ts +1 -6
  464. package/dist/components/docs/studio/StudioBYOKPage.d.ts.map +1 -1
  465. package/dist/components/docs/studio/StudioBYOKPage.js +78 -76
  466. package/dist/components/docs/studio/StudioDeploymentsPage.d.ts +1 -6
  467. package/dist/components/docs/studio/StudioDeploymentsPage.d.ts.map +1 -1
  468. package/dist/components/docs/studio/StudioDeploymentsPage.js +99 -81
  469. package/dist/components/docs/studio/StudioGettingStartedPage.d.ts +1 -6
  470. package/dist/components/docs/studio/StudioGettingStartedPage.d.ts.map +1 -1
  471. package/dist/components/docs/studio/StudioGettingStartedPage.js +82 -80
  472. package/dist/components/docs/studio/StudioIntegrationsPage.d.ts +1 -6
  473. package/dist/components/docs/studio/StudioIntegrationsPage.d.ts.map +1 -1
  474. package/dist/components/docs/studio/StudioIntegrationsPage.js +70 -65
  475. package/dist/components/docs/studio/StudioOverviewPage.d.ts +1 -6
  476. package/dist/components/docs/studio/StudioOverviewPage.d.ts.map +1 -1
  477. package/dist/components/docs/studio/StudioOverviewPage.js +71 -66
  478. package/dist/components/docs/studio/StudioVisualBuilderPage.d.ts +1 -6
  479. package/dist/components/docs/studio/StudioVisualBuilderPage.d.ts.map +1 -1
  480. package/dist/components/docs/studio/StudioVisualBuilderPage.js +118 -99
  481. package/dist/components/docs/studio/index.d.ts +7 -7
  482. package/dist/components/docs/studio/index.d.ts.map +1 -0
  483. package/dist/components/docs/studio/index.js +538 -8
  484. package/dist/components/docs/tech/contracts/tech-docs.docblocks.d.ts +2 -6
  485. package/dist/components/docs/tech/contracts/tech-docs.docblocks.d.ts.map +1 -1
  486. package/dist/components/docs/tech/contracts/tech-docs.docblocks.js +17 -16
  487. package/dist/components/integrations/index.d.ts +5 -5
  488. package/dist/components/integrations/index.d.ts.map +1 -0
  489. package/dist/components/integrations/index.js +601 -5
  490. package/dist/components/integrations/molecules/IntegrationCard.d.ts +11 -26
  491. package/dist/components/integrations/molecules/IntegrationCard.d.ts.map +1 -1
  492. package/dist/components/integrations/molecules/IntegrationCard.js +98 -60
  493. package/dist/components/integrations/organisms/IntegrationMarketplace.d.ts +13 -22
  494. package/dist/components/integrations/organisms/IntegrationMarketplace.d.ts.map +1 -1
  495. package/dist/components/integrations/organisms/IntegrationMarketplace.js +211 -77
  496. package/dist/components/integrations/organisms/IntegrationSettings.d.ts +15 -27
  497. package/dist/components/integrations/organisms/IntegrationSettings.d.ts.map +1 -1
  498. package/dist/components/integrations/organisms/IntegrationSettings.js +281 -189
  499. package/dist/components/integrations/organisms/KnowledgeSourceList.d.ts +12 -22
  500. package/dist/components/integrations/organisms/KnowledgeSourceList.d.ts.map +1 -1
  501. package/dist/components/integrations/organisms/KnowledgeSourceList.js +102 -65
  502. package/dist/components/legal/PrivacyTemplate.d.ts +3 -9
  503. package/dist/components/legal/PrivacyTemplate.d.ts.map +1 -1
  504. package/dist/components/legal/PrivacyTemplate.js +1023 -842
  505. package/dist/components/legal/TermsTemplate.d.ts +3 -9
  506. package/dist/components/legal/TermsTemplate.d.ts.map +1 -1
  507. package/dist/components/legal/TermsTemplate.js +939 -780
  508. package/dist/components/legal/index.d.ts +3 -3
  509. package/dist/components/legal/index.d.ts.map +1 -0
  510. package/dist/components/legal/index.js +1963 -3
  511. package/dist/components/shared/FeatureGateNotice.d.ts +6 -16
  512. package/dist/components/shared/FeatureGateNotice.d.ts.map +1 -1
  513. package/dist/components/shared/FeatureGateNotice.js +37 -32
  514. package/dist/components/shared/index.d.ts +2 -2
  515. package/dist/components/shared/index.d.ts.map +1 -0
  516. package/dist/components/shared/index.js +39 -3
  517. package/dist/components/shell/WorkspaceHeader.d.ts +19 -32
  518. package/dist/components/shell/WorkspaceHeader.d.ts.map +1 -1
  519. package/dist/components/shell/WorkspaceHeader.js +97 -59
  520. package/dist/components/shell/WorkspaceProjectShellLayout.d.ts +9 -28
  521. package/dist/components/shell/WorkspaceProjectShellLayout.d.ts.map +1 -1
  522. package/dist/components/shell/WorkspaceProjectShellLayout.js +220 -35
  523. package/dist/components/shell/WorkspaceSidebar.d.ts +12 -22
  524. package/dist/components/shell/WorkspaceSidebar.d.ts.map +1 -1
  525. package/dist/components/shell/WorkspaceSidebar.js +67 -31
  526. package/dist/components/shell/index.d.ts +4 -4
  527. package/dist/components/shell/index.d.ts.map +1 -0
  528. package/dist/components/shell/index.js +224 -4
  529. package/dist/components/templates/engine/index.d.ts +18 -11
  530. package/dist/components/templates/engine/index.d.ts.map +1 -1
  531. package/dist/components/templates/engine/index.js +28 -41
  532. package/dist/components/templates/index.d.ts +4 -16
  533. package/dist/components/templates/index.d.ts.map +1 -0
  534. package/dist/components/templates/index.js +1067 -17
  535. package/dist/components/templates/messaging/ConversationList.d.ts +4 -12
  536. package/dist/components/templates/messaging/ConversationList.d.ts.map +1 -1
  537. package/dist/components/templates/messaging/ConversationList.js +79 -52
  538. package/dist/components/templates/messaging/MessageComposer.d.ts +5 -14
  539. package/dist/components/templates/messaging/MessageComposer.d.ts.map +1 -1
  540. package/dist/components/templates/messaging/MessageComposer.js +159 -52
  541. package/dist/components/templates/messaging/MessageThread.d.ts +5 -14
  542. package/dist/components/templates/messaging/MessageThread.d.ts.map +1 -1
  543. package/dist/components/templates/messaging/MessageThread.js +78 -75
  544. package/dist/components/templates/messaging/MessagingWorkspace.d.ts +1 -6
  545. package/dist/components/templates/messaging/MessagingWorkspace.d.ts.map +1 -1
  546. package/dist/components/templates/messaging/MessagingWorkspace.js +290 -25
  547. package/dist/components/templates/messaging/index.d.ts +5 -5
  548. package/dist/components/templates/messaging/index.d.ts.map +1 -0
  549. package/dist/components/templates/messaging/index.js +300 -5
  550. package/dist/components/templates/messaging/types.d.ts +20 -23
  551. package/dist/components/templates/messaging/types.d.ts.map +1 -1
  552. package/dist/components/templates/messaging/types.js +1 -0
  553. package/dist/components/templates/recipes/LanguageSwitcher.d.ts +4 -12
  554. package/dist/components/templates/recipes/LanguageSwitcher.d.ts.map +1 -1
  555. package/dist/components/templates/recipes/LanguageSwitcher.js +15 -16
  556. package/dist/components/templates/recipes/RecipeCard.d.ts +6 -15
  557. package/dist/components/templates/recipes/RecipeCard.d.ts.map +1 -1
  558. package/dist/components/templates/recipes/RecipeCard.js +79 -57
  559. package/dist/components/templates/recipes/RecipeDetail.d.ts +4 -11
  560. package/dist/components/templates/recipes/RecipeDetail.d.ts.map +1 -1
  561. package/dist/components/templates/recipes/RecipeDetail.js +72 -47
  562. package/dist/components/templates/recipes/RecipeList.d.ts +1 -6
  563. package/dist/components/templates/recipes/RecipeList.d.ts.map +1 -1
  564. package/dist/components/templates/recipes/RecipeList.js +236 -72
  565. package/dist/components/templates/recipes/index.d.ts +5 -5
  566. package/dist/components/templates/recipes/index.d.ts.map +1 -0
  567. package/dist/components/templates/recipes/index.js +282 -5
  568. package/dist/components/templates/recipes/types.d.ts +23 -26
  569. package/dist/components/templates/recipes/types.d.ts.map +1 -1
  570. package/dist/components/templates/recipes/types.js +1 -0
  571. package/dist/components/templates/todos/FilterBar.d.ts +11 -20
  572. package/dist/components/templates/todos/FilterBar.d.ts.map +1 -1
  573. package/dist/components/templates/todos/FilterBar.js +106 -95
  574. package/dist/components/templates/todos/TaskForm.d.ts +4 -11
  575. package/dist/components/templates/todos/TaskForm.d.ts.map +1 -1
  576. package/dist/components/templates/todos/TaskForm.js +150 -127
  577. package/dist/components/templates/todos/TaskItem.d.ts +6 -15
  578. package/dist/components/templates/todos/TaskItem.d.ts.map +1 -1
  579. package/dist/components/templates/todos/TaskItem.js +75 -64
  580. package/dist/components/templates/todos/TaskList.d.ts +1 -6
  581. package/dist/components/templates/todos/TaskList.d.ts.map +1 -1
  582. package/dist/components/templates/todos/TaskList.js +446 -102
  583. package/dist/components/templates/todos/index.d.ts +5 -5
  584. package/dist/components/templates/todos/index.d.ts.map +1 -0
  585. package/dist/components/templates/todos/index.js +488 -5
  586. package/dist/components/templates/todos/types.d.ts +14 -17
  587. package/dist/components/templates/todos/types.d.ts.map +1 -1
  588. package/dist/components/templates/todos/types.js +1 -0
  589. package/dist/config/contractspec-blueprint.d.ts +2 -6
  590. package/dist/config/contractspec-blueprint.d.ts.map +1 -1
  591. package/dist/config/contractspec-blueprint.js +122 -70
  592. package/dist/config/contractspec-branding.d.ts +3 -7
  593. package/dist/config/contractspec-branding.d.ts.map +1 -1
  594. package/dist/config/contractspec-branding.js +43 -66
  595. package/dist/config/contractspec-routes.d.ts +2 -6
  596. package/dist/config/contractspec-routes.d.ts.map +1 -1
  597. package/dist/config/contractspec-routes.js +24 -68
  598. package/dist/config/index.d.ts +5 -5
  599. package/dist/config/index.d.ts.map +1 -0
  600. package/dist/config/index.js +126 -4
  601. package/dist/features/contracts-registry.d.ts +39 -36
  602. package/dist/features/contracts-registry.d.ts.map +1 -1
  603. package/dist/features/contracts-registry.js +122 -85
  604. package/dist/features/docs/docs.contracts.d.ts +2 -2
  605. package/dist/features/docs/docs.contracts.d.ts.map +1 -0
  606. package/dist/features/docs/docs.contracts.js +18 -3
  607. package/dist/features/docs/index.d.ts +2 -2
  608. package/dist/features/docs/index.d.ts.map +1 -0
  609. package/dist/features/docs/index.js +18 -3
  610. package/dist/features/docs.feature.d.ts +2 -6
  611. package/dist/features/docs.feature.d.ts.map +1 -1
  612. package/dist/features/docs.feature.js +33 -59
  613. package/dist/features/index.d.ts +10 -9
  614. package/dist/features/index.d.ts.map +1 -0
  615. package/dist/features/index.js +310 -8
  616. package/dist/features/mcp.feature.d.ts +2 -6
  617. package/dist/features/mcp.feature.d.ts.map +1 -1
  618. package/dist/features/mcp.feature.js +30 -56
  619. package/dist/features/presentations.feature.d.ts +2 -6
  620. package/dist/features/presentations.feature.d.ts.map +1 -1
  621. package/dist/features/presentations.feature.js +33 -60
  622. package/dist/features/registry.d.ts +4 -8
  623. package/dist/features/registry.d.ts.map +1 -1
  624. package/dist/features/registry.js +109 -31
  625. package/dist/index.d.ts +9 -158
  626. package/dist/index.d.ts.map +1 -0
  627. package/dist/index.js +32497 -158
  628. package/dist/infrastructure/elysia/index.d.ts +2 -2
  629. package/dist/infrastructure/elysia/index.d.ts.map +1 -0
  630. package/dist/infrastructure/elysia/index.js +36 -3
  631. package/dist/infrastructure/elysia/logger.d.ts +6 -9
  632. package/dist/infrastructure/elysia/logger.d.ts.map +1 -1
  633. package/dist/infrastructure/elysia/logger.js +33 -29
  634. package/dist/infrastructure/index.d.ts +2 -3
  635. package/dist/infrastructure/index.d.ts.map +1 -0
  636. package/dist/infrastructure/index.js +36 -4
  637. package/dist/libs/email/client.d.ts +9 -12
  638. package/dist/libs/email/client.d.ts.map +1 -1
  639. package/dist/libs/email/client.js +107 -105
  640. package/dist/libs/email/client.test.d.ts +2 -0
  641. package/dist/libs/email/client.test.d.ts.map +1 -0
  642. package/dist/libs/email/contact.d.ts +2 -6
  643. package/dist/libs/email/contact.d.ts.map +1 -1
  644. package/dist/libs/email/contact.js +153 -41
  645. package/dist/libs/email/newsletter.d.ts +2 -6
  646. package/dist/libs/email/newsletter.d.ts.map +1 -1
  647. package/dist/libs/email/newsletter.js +167 -54
  648. package/dist/libs/email/types.d.ts +48 -52
  649. package/dist/libs/email/types.d.ts.map +1 -1
  650. package/dist/libs/email/types.js +3 -1
  651. package/dist/libs/email/utils.d.ts +2 -5
  652. package/dist/libs/email/utils.d.ts.map +1 -1
  653. package/dist/libs/email/utils.js +9 -7
  654. package/dist/libs/email/waitlist-application.d.ts +2 -6
  655. package/dist/libs/email/waitlist-application.d.ts.map +1 -1
  656. package/dist/libs/email/waitlist-application.js +187 -69
  657. package/dist/libs/email/waitlist.d.ts +2 -6
  658. package/dist/libs/email/waitlist.d.ts.map +1 -1
  659. package/dist/libs/email/waitlist.js +169 -56
  660. package/dist/libs/email.d.ts +6 -6
  661. package/dist/libs/email.d.ts.map +1 -0
  662. package/dist/libs/email.js +541 -6
  663. package/dist/libs/posthog/client.d.ts +15 -17
  664. package/dist/libs/posthog/client.d.ts.map +1 -1
  665. package/dist/libs/posthog/client.js +56 -44
  666. package/dist/libs/posthog/native.d.ts +6 -9
  667. package/dist/libs/posthog/native.d.ts.map +1 -1
  668. package/dist/libs/posthog/native.js +21 -16
  669. package/dist/libs/posthog/server.d.ts +3 -6
  670. package/dist/libs/posthog/server.d.ts.map +1 -1
  671. package/dist/libs/posthog/server.js +12 -12
  672. package/dist/libs/pricing-examples.d.ts +13 -16
  673. package/dist/libs/pricing-examples.d.ts.map +1 -1
  674. package/dist/libs/pricing-examples.js +18 -20
  675. package/dist/node/application/index.js +696 -0
  676. package/dist/node/application/mcp/cliMcp.js +341 -0
  677. package/dist/node/application/mcp/common.js +77 -0
  678. package/dist/node/application/mcp/docsMcp.js +267 -0
  679. package/dist/node/application/mcp/index.js +696 -0
  680. package/dist/node/application/mcp/internalMcp.js +294 -0
  681. package/dist/node/components/docs/DocsIndexPage.js +270 -0
  682. package/dist/node/components/docs/advanced/AdvancedMCPPage.js +337 -0
  683. package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +107 -0
  684. package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +132 -0
  685. package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +124 -0
  686. package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +417 -0
  687. package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +108 -0
  688. package/dist/node/components/docs/advanced/index.js +1220 -0
  689. package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +383 -0
  690. package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +386 -0
  691. package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +528 -0
  692. package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +172 -0
  693. package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +448 -0
  694. package/dist/node/components/docs/architecture/index.js +1913 -0
  695. package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +245 -0
  696. package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +230 -0
  697. package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +245 -0
  698. package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +202 -0
  699. package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +254 -0
  700. package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +339 -0
  701. package/dist/node/components/docs/comparison/index.js +1510 -0
  702. package/dist/node/components/docs/ecosystem/IntegrationsPage.js +102 -0
  703. package/dist/node/components/docs/ecosystem/PluginsPage.js +200 -0
  704. package/dist/node/components/docs/ecosystem/RegistryPage.js +119 -0
  705. package/dist/node/components/docs/ecosystem/TemplatesPage.js +146 -0
  706. package/dist/node/components/docs/ecosystem/ecosystem.docblocks.js +49 -0
  707. package/dist/node/components/docs/ecosystem/index.js +614 -0
  708. package/dist/node/components/docs/examples/DocsExamplesPage.js +84 -0
  709. package/dist/node/components/docs/examples/index.js +84 -0
  710. package/dist/node/components/docs/generated/docs-index.generated.js +5 -0
  711. package/dist/node/components/docs/generated/index.js +74 -0
  712. package/dist/node/components/docs/generated/loader.js +74 -0
  713. package/dist/node/components/docs/getting-started/CLIPage.js +292 -0
  714. package/dist/node/components/docs/getting-started/CompatibilityPage.js +173 -0
  715. package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +238 -0
  716. package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +194 -0
  717. package/dist/node/components/docs/getting-started/HelloWorldPage.js +273 -0
  718. package/dist/node/components/docs/getting-started/InstallationPage.js +156 -0
  719. package/dist/node/components/docs/getting-started/StartHerePage.js +129 -0
  720. package/dist/node/components/docs/getting-started/TroubleshootingPage.js +169 -0
  721. package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +432 -0
  722. package/dist/node/components/docs/getting-started/getting-started.docblocks.js +137 -0
  723. package/dist/node/components/docs/getting-started/index.js +2183 -0
  724. package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +197 -0
  725. package/dist/node/components/docs/guides/GuideContractTypesPage.js +738 -0
  726. package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +225 -0
  727. package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +211 -0
  728. package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +878 -0
  729. package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +318 -0
  730. package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +255 -0
  731. package/dist/node/components/docs/guides/GuidesIndexPage.js +149 -0
  732. package/dist/node/components/docs/guides/guides.docblocks.js +111 -0
  733. package/dist/node/components/docs/guides/index.js +2902 -0
  734. package/dist/node/components/docs/index.js +28181 -0
  735. package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +51 -0
  736. package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +123 -0
  737. package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +131 -0
  738. package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +104 -0
  739. package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +195 -0
  740. package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +650 -0
  741. package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +261 -0
  742. package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +352 -0
  743. package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +178 -0
  744. package/dist/node/components/docs/integrations/IntegrationsResendPage.js +123 -0
  745. package/dist/node/components/docs/integrations/IntegrationsS3Page.js +163 -0
  746. package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +422 -0
  747. package/dist/node/components/docs/integrations/IntegrationsStripePage.js +425 -0
  748. package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +146 -0
  749. package/dist/node/components/docs/integrations/index.js +3311 -0
  750. package/dist/node/components/docs/intent/ContractFirstApiPage.js +159 -0
  751. package/dist/node/components/docs/intent/DeterministicCodegenPage.js +184 -0
  752. package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +398 -0
  753. package/dist/node/components/docs/intent/OpenapiAlternativePage.js +237 -0
  754. package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +236 -0
  755. package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +197 -0
  756. package/dist/node/components/docs/intent/index.js +1594 -0
  757. package/dist/node/components/docs/intent/intent-pages.docblocks.js +201 -0
  758. package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +829 -0
  759. package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +340 -0
  760. package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +464 -0
  761. package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +454 -0
  762. package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +361 -0
  763. package/dist/node/components/docs/knowledge/index.js +2444 -0
  764. package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +227 -0
  765. package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +168 -0
  766. package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +96 -0
  767. package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +119 -0
  768. package/dist/node/components/docs/libraries/LibrariesContractsPage.js +302 -0
  769. package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +123 -0
  770. package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +183 -0
  771. package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +204 -0
  772. package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +312 -0
  773. package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +164 -0
  774. package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +186 -0
  775. package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +116 -0
  776. package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +118 -0
  777. package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +149 -0
  778. package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +135 -0
  779. package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +483 -0
  780. package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +129 -0
  781. package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +151 -0
  782. package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +138 -0
  783. package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +239 -0
  784. package/dist/node/components/docs/libraries/LibrariesSLOPage.js +126 -0
  785. package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +304 -0
  786. package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +144 -0
  787. package/dist/node/components/docs/libraries/LibrariesTestingPage.js +159 -0
  788. package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +247 -0
  789. package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +108 -0
  790. package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +200 -0
  791. package/dist/node/components/docs/libraries/index.js +5004 -0
  792. package/dist/node/components/docs/manifesto/ManifestoPage.js +191 -0
  793. package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +141 -0
  794. package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +73 -0
  795. package/dist/node/components/docs/ops/index.js +213 -0
  796. package/dist/node/components/docs/ops/ops-lifecycle.docblocks.js +151 -0
  797. package/dist/node/components/docs/ops/ops-runbooks-a.docblocks.js +123 -0
  798. package/dist/node/components/docs/ops/ops-runbooks-b.docblocks.js +134 -0
  799. package/dist/node/components/docs/ops/ops-slo-tenant.docblocks.js +146 -0
  800. package/dist/node/components/docs/ops/ops-top.docs.js +25 -0
  801. package/dist/node/components/docs/ops/ops.docs.js +580 -0
  802. package/dist/node/components/docs/product/product.docblocks.js +78 -0
  803. package/dist/node/components/docs/reference/DocsMarkdownContent.js +196 -0
  804. package/dist/node/components/docs/reference/DocsReferenceContent.js +257 -0
  805. package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +128 -0
  806. package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +207 -0
  807. package/dist/node/components/docs/reference/DocsReferencePage.js +266 -0
  808. package/dist/node/components/docs/reference/docsMarkdownParser.js +92 -0
  809. package/dist/node/components/docs/reference/index.js +472 -0
  810. package/dist/node/components/docs/safety/SafetyAuditingPage.js +380 -0
  811. package/dist/node/components/docs/safety/SafetyMigrationsPage.js +381 -0
  812. package/dist/node/components/docs/safety/SafetyOverviewPage.js +238 -0
  813. package/dist/node/components/docs/safety/SafetyPDPPage.js +318 -0
  814. package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +206 -0
  815. package/dist/node/components/docs/safety/SafetySigningPage.js +92 -0
  816. package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +88 -0
  817. package/dist/node/components/docs/safety/index.js +1697 -0
  818. package/dist/node/components/docs/shared/StudioPrompt.js +31 -0
  819. package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +195 -0
  820. package/dist/node/components/docs/specs/SpecsDataViewsPage.js +299 -0
  821. package/dist/node/components/docs/specs/SpecsOverlaysPage.js +408 -0
  822. package/dist/node/components/docs/specs/SpecsOverviewPage.js +348 -0
  823. package/dist/node/components/docs/specs/SpecsPolicyPage.js +473 -0
  824. package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +363 -0
  825. package/dist/node/components/docs/specs/index.js +2081 -0
  826. package/dist/node/components/docs/studio/StudioBYOKPage.js +80 -0
  827. package/dist/node/components/docs/studio/StudioDeploymentsPage.js +101 -0
  828. package/dist/node/components/docs/studio/StudioGettingStartedPage.js +94 -0
  829. package/dist/node/components/docs/studio/StudioIntegrationsPage.js +72 -0
  830. package/dist/node/components/docs/studio/StudioOverviewPage.js +74 -0
  831. package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +121 -0
  832. package/dist/node/components/docs/studio/index.js +537 -0
  833. package/dist/node/components/docs/tech/contracts/tech-docs.docblocks.js +20 -0
  834. package/dist/node/components/integrations/index.js +601 -0
  835. package/dist/node/components/integrations/molecules/IntegrationCard.js +100 -0
  836. package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +214 -0
  837. package/dist/node/components/integrations/organisms/IntegrationSettings.js +285 -0
  838. package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +103 -0
  839. package/dist/node/components/legal/PrivacyTemplate.js +1025 -0
  840. package/dist/node/components/legal/TermsTemplate.js +941 -0
  841. package/dist/node/components/legal/index.js +1963 -0
  842. package/dist/node/components/shared/FeatureGateNotice.js +38 -0
  843. package/dist/node/components/shared/index.js +38 -0
  844. package/dist/node/components/shell/WorkspaceHeader.js +100 -0
  845. package/dist/node/components/shell/WorkspaceProjectShellLayout.js +222 -0
  846. package/dist/node/components/shell/WorkspaceSidebar.js +68 -0
  847. package/dist/node/components/shell/index.js +224 -0
  848. package/dist/node/components/templates/engine/index.js +39 -0
  849. package/dist/node/components/templates/index.js +1066 -0
  850. package/dist/node/components/templates/messaging/ConversationList.js +96 -0
  851. package/dist/node/components/templates/messaging/MessageComposer.js +168 -0
  852. package/dist/node/components/templates/messaging/MessageThread.js +96 -0
  853. package/dist/node/components/templates/messaging/MessagingWorkspace.js +296 -0
  854. package/dist/node/components/templates/messaging/index.js +300 -0
  855. package/dist/node/components/templates/messaging/types.js +0 -0
  856. package/dist/node/components/templates/recipes/LanguageSwitcher.js +16 -0
  857. package/dist/node/components/templates/recipes/RecipeCard.js +80 -0
  858. package/dist/node/components/templates/recipes/RecipeDetail.js +74 -0
  859. package/dist/node/components/templates/recipes/RecipeList.js +279 -0
  860. package/dist/node/components/templates/recipes/index.js +282 -0
  861. package/dist/node/components/templates/recipes/types.js +0 -0
  862. package/dist/node/components/templates/todos/FilterBar.js +107 -0
  863. package/dist/node/components/templates/todos/TaskForm.js +164 -0
  864. package/dist/node/components/templates/todos/TaskItem.js +77 -0
  865. package/dist/node/components/templates/todos/TaskList.js +485 -0
  866. package/dist/node/components/templates/todos/index.js +488 -0
  867. package/dist/node/components/templates/todos/types.js +0 -0
  868. package/dist/node/config/contractspec-blueprint.js +123 -0
  869. package/dist/node/config/contractspec-branding.js +44 -0
  870. package/dist/node/config/contractspec-routes.js +24 -0
  871. package/dist/node/config/index.js +126 -0
  872. package/dist/node/features/contracts-registry.js +174 -0
  873. package/dist/node/features/docs/docs.contracts.js +17 -0
  874. package/dist/node/features/docs/index.js +17 -0
  875. package/dist/node/features/docs.feature.js +33 -0
  876. package/dist/node/features/index.js +311 -0
  877. package/dist/node/features/mcp.feature.js +30 -0
  878. package/dist/node/features/presentations.feature.js +33 -0
  879. package/dist/node/features/registry.js +116 -0
  880. package/dist/node/index.js +32496 -0
  881. package/dist/node/infrastructure/elysia/index.js +35 -0
  882. package/dist/node/infrastructure/elysia/logger.js +35 -0
  883. package/dist/node/infrastructure/index.js +35 -0
  884. package/dist/node/libs/email/client.js +114 -0
  885. package/dist/node/libs/email/contact.js +182 -0
  886. package/dist/node/libs/email/newsletter.js +207 -0
  887. package/dist/node/libs/email/types.js +2 -0
  888. package/dist/node/libs/email/utils.js +8 -0
  889. package/dist/node/libs/email/waitlist-application.js +281 -0
  890. package/dist/node/libs/email/waitlist.js +217 -0
  891. package/dist/node/libs/email.js +542 -0
  892. package/dist/node/libs/posthog/client.js +63 -0
  893. package/dist/node/libs/posthog/native.js +23 -0
  894. package/dist/node/libs/posthog/server.js +13 -0
  895. package/dist/node/libs/pricing-examples.js +18 -0
  896. package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +97 -0
  897. package/dist/node/presentation/features/atoms/FeatureIcon/index.js +97 -0
  898. package/dist/node/presentation/features/atoms/index.js +97 -0
  899. package/dist/node/presentation/features/hooks/index.js +393 -0
  900. package/dist/node/presentation/features/hooks/useContractsRegistry.js +285 -0
  901. package/dist/node/presentation/features/hooks/useFeatureFilters.js +75 -0
  902. package/dist/node/presentation/features/hooks/useFeatureRegistry.js +147 -0
  903. package/dist/node/presentation/features/hooks/useRelatedDocs.js +28 -0
  904. package/dist/node/presentation/features/index.js +3059 -0
  905. package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +366 -0
  906. package/dist/node/presentation/features/molecules/FeatureCard/index.js +366 -0
  907. package/dist/node/presentation/features/molecules/FeatureCard/types.js +0 -0
  908. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +50 -0
  909. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +50 -0
  910. package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +92 -0
  911. package/dist/node/presentation/features/molecules/FeatureFilters/index.js +92 -0
  912. package/dist/node/presentation/features/molecules/FeatureFilters/types.js +0 -0
  913. package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +176 -0
  914. package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +176 -0
  915. package/dist/node/presentation/features/molecules/index.js +505 -0
  916. package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +300 -0
  917. package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +154 -0
  918. package/dist/node/presentation/features/organisms/FeatureDetail/index.js +154 -0
  919. package/dist/node/presentation/features/organisms/FeatureDetail/types.js +0 -0
  920. package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +909 -0
  921. package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +909 -0
  922. package/dist/node/presentation/features/organisms/FeatureDiscovery/types.js +0 -0
  923. package/dist/node/presentation/features/organisms/FeatureEventsList.js +298 -0
  924. package/dist/node/presentation/features/organisms/FeatureFormsList.js +298 -0
  925. package/dist/node/presentation/features/organisms/FeatureOperationsList.js +176 -0
  926. package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +300 -0
  927. package/dist/node/presentation/features/organisms/index.js +1355 -0
  928. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +332 -0
  929. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +332 -0
  930. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/types.js +0 -0
  931. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +338 -0
  932. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +338 -0
  933. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +303 -0
  934. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +303 -0
  935. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/types.js +0 -0
  936. package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +336 -0
  937. package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +336 -0
  938. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +329 -0
  939. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +329 -0
  940. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/types.js +0 -0
  941. package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +336 -0
  942. package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +336 -0
  943. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +302 -0
  944. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +302 -0
  945. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/types.js +0 -0
  946. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +214 -0
  947. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +214 -0
  948. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +187 -0
  949. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +187 -0
  950. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +306 -0
  951. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +306 -0
  952. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/types.js +0 -0
  953. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +338 -0
  954. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +338 -0
  955. package/dist/node/presentation/features/templates/types.js +0 -0
  956. package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.d.ts +16 -28
  957. package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.d.ts.map +1 -1
  958. package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +89 -78
  959. package/dist/presentation/features/atoms/FeatureIcon/index.d.ts +2 -2
  960. package/dist/presentation/features/atoms/FeatureIcon/index.d.ts.map +1 -0
  961. package/dist/presentation/features/atoms/FeatureIcon/index.js +98 -3
  962. package/dist/presentation/features/atoms/index.d.ts +2 -3
  963. package/dist/presentation/features/atoms/index.d.ts.map +1 -0
  964. package/dist/presentation/features/atoms/index.js +98 -4
  965. package/dist/presentation/features/hooks/index.d.ts +4 -4
  966. package/dist/presentation/features/hooks/index.d.ts.map +1 -0
  967. package/dist/presentation/features/hooks/index.js +393 -4
  968. package/dist/presentation/features/hooks/useContractsRegistry.d.ts +10 -14
  969. package/dist/presentation/features/hooks/useContractsRegistry.d.ts.map +1 -1
  970. package/dist/presentation/features/hooks/useContractsRegistry.js +282 -19
  971. package/dist/presentation/features/hooks/useFeatureFilters.d.ts +24 -28
  972. package/dist/presentation/features/hooks/useFeatureFilters.d.ts.map +1 -1
  973. package/dist/presentation/features/hooks/useFeatureFilters.js +73 -74
  974. package/dist/presentation/features/hooks/useFeatureRegistry.d.ts +17 -21
  975. package/dist/presentation/features/hooks/useFeatureRegistry.d.ts.map +1 -1
  976. package/dist/presentation/features/hooks/useFeatureRegistry.js +144 -33
  977. package/dist/presentation/features/hooks/useRelatedDocs.d.ts +5 -8
  978. package/dist/presentation/features/hooks/useRelatedDocs.d.ts.map +1 -1
  979. package/dist/presentation/features/hooks/useRelatedDocs.js +25 -28
  980. package/dist/presentation/features/index.d.ts +27 -57
  981. package/dist/presentation/features/index.d.ts.map +1 -0
  982. package/dist/presentation/features/index.js +3060 -48
  983. package/dist/presentation/features/molecules/FeatureCard/FeatureCard.d.ts +2 -11
  984. package/dist/presentation/features/molecules/FeatureCard/FeatureCard.d.ts.map +1 -1
  985. package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +364 -80
  986. package/dist/presentation/features/molecules/FeatureCard/index.d.ts +3 -3
  987. package/dist/presentation/features/molecules/FeatureCard/index.d.ts.map +1 -0
  988. package/dist/presentation/features/molecules/FeatureCard/index.js +367 -3
  989. package/dist/presentation/features/molecules/FeatureCard/types.d.ts +8 -12
  990. package/dist/presentation/features/molecules/FeatureCard/types.d.ts.map +1 -1
  991. package/dist/presentation/features/molecules/FeatureCard/types.js +1 -0
  992. package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.d.ts +15 -27
  993. package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.d.ts.map +1 -1
  994. package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +48 -40
  995. package/dist/presentation/features/molecules/FeatureCategoryHeader/index.d.ts +2 -2
  996. package/dist/presentation/features/molecules/FeatureCategoryHeader/index.d.ts.map +1 -0
  997. package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +51 -3
  998. package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.d.ts +2 -17
  999. package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.d.ts.map +1 -1
  1000. package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +90 -77
  1001. package/dist/presentation/features/molecules/FeatureFilters/index.d.ts +3 -3
  1002. package/dist/presentation/features/molecules/FeatureFilters/index.d.ts.map +1 -0
  1003. package/dist/presentation/features/molecules/FeatureFilters/index.js +93 -3
  1004. package/dist/presentation/features/molecules/FeatureFilters/types.d.ts +20 -24
  1005. package/dist/presentation/features/molecules/FeatureFilters/types.d.ts.map +1 -1
  1006. package/dist/presentation/features/molecules/FeatureFilters/types.js +1 -0
  1007. package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.d.ts +5 -12
  1008. package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.d.ts.map +1 -1
  1009. package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +173 -136
  1010. package/dist/presentation/features/molecules/FeatureHoverPreview/index.d.ts +2 -2
  1011. package/dist/presentation/features/molecules/FeatureHoverPreview/index.d.ts.map +1 -0
  1012. package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +177 -3
  1013. package/dist/presentation/features/molecules/index.d.ts +5 -11
  1014. package/dist/presentation/features/molecules/index.d.ts.map +1 -0
  1015. package/dist/presentation/features/molecules/index.js +506 -10
  1016. package/dist/presentation/features/organisms/FeatureDataViewsList.d.ts +4 -11
  1017. package/dist/presentation/features/organisms/FeatureDataViewsList.d.ts.map +1 -1
  1018. package/dist/presentation/features/organisms/FeatureDataViewsList.js +297 -25
  1019. package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.d.ts +2 -10
  1020. package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.d.ts.map +1 -1
  1021. package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +150 -138
  1022. package/dist/presentation/features/organisms/FeatureDetail/index.d.ts +3 -3
  1023. package/dist/presentation/features/organisms/FeatureDetail/index.d.ts.map +1 -0
  1024. package/dist/presentation/features/organisms/FeatureDetail/index.js +155 -3
  1025. package/dist/presentation/features/organisms/FeatureDetail/types.d.ts +6 -10
  1026. package/dist/presentation/features/organisms/FeatureDetail/types.d.ts.map +1 -1
  1027. package/dist/presentation/features/organisms/FeatureDetail/types.js +1 -0
  1028. package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.d.ts +2 -13
  1029. package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.d.ts.map +1 -1
  1030. package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +901 -154
  1031. package/dist/presentation/features/organisms/FeatureDiscovery/index.d.ts +3 -3
  1032. package/dist/presentation/features/organisms/FeatureDiscovery/index.d.ts.map +1 -0
  1033. package/dist/presentation/features/organisms/FeatureDiscovery/index.js +909 -2
  1034. package/dist/presentation/features/organisms/FeatureDiscovery/types.d.ts +14 -18
  1035. package/dist/presentation/features/organisms/FeatureDiscovery/types.d.ts.map +1 -1
  1036. package/dist/presentation/features/organisms/FeatureDiscovery/types.js +1 -0
  1037. package/dist/presentation/features/organisms/FeatureEventsList.d.ts +4 -11
  1038. package/dist/presentation/features/organisms/FeatureEventsList.d.ts.map +1 -1
  1039. package/dist/presentation/features/organisms/FeatureEventsList.js +295 -25
  1040. package/dist/presentation/features/organisms/FeatureFormsList.d.ts +4 -11
  1041. package/dist/presentation/features/organisms/FeatureFormsList.d.ts.map +1 -1
  1042. package/dist/presentation/features/organisms/FeatureFormsList.js +295 -25
  1043. package/dist/presentation/features/organisms/FeatureOperationsList.d.ts +4 -11
  1044. package/dist/presentation/features/organisms/FeatureOperationsList.d.ts.map +1 -1
  1045. package/dist/presentation/features/organisms/FeatureOperationsList.js +174 -25
  1046. package/dist/presentation/features/organisms/FeaturePresentationsList.d.ts +4 -11
  1047. package/dist/presentation/features/organisms/FeaturePresentationsList.d.ts.map +1 -1
  1048. package/dist/presentation/features/organisms/FeaturePresentationsList.js +297 -25
  1049. package/dist/presentation/features/organisms/index.d.ts +8 -12
  1050. package/dist/presentation/features/organisms/index.d.ts.map +1 -0
  1051. package/dist/presentation/features/organisms/index.js +1356 -11
  1052. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.d.ts +2 -13
  1053. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.d.ts.map +1 -1
  1054. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +329 -231
  1055. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.d.ts +3 -3
  1056. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.d.ts.map +1 -0
  1057. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +332 -2
  1058. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/types.d.ts +8 -12
  1059. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/types.d.ts.map +1 -1
  1060. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/types.js +1 -0
  1061. package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.d.ts +2 -10
  1062. package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.d.ts.map +1 -1
  1063. package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +335 -30
  1064. package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.d.ts +2 -2
  1065. package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.d.ts.map +1 -0
  1066. package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +338 -2
  1067. package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.d.ts +2 -13
  1068. package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.d.ts.map +1 -1
  1069. package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +300 -210
  1070. package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.d.ts +3 -3
  1071. package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.d.ts.map +1 -0
  1072. package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +303 -2
  1073. package/dist/presentation/features/templates/FeatureEventDetailTemplate/types.d.ts +8 -12
  1074. package/dist/presentation/features/templates/FeatureEventDetailTemplate/types.d.ts.map +1 -1
  1075. package/dist/presentation/features/templates/FeatureEventDetailTemplate/types.js +1 -0
  1076. package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.d.ts +2 -10
  1077. package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.d.ts.map +1 -1
  1078. package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +333 -30
  1079. package/dist/presentation/features/templates/FeatureEventsTemplate/index.d.ts +2 -2
  1080. package/dist/presentation/features/templates/FeatureEventsTemplate/index.d.ts.map +1 -0
  1081. package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +336 -2
  1082. package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.d.ts +2 -13
  1083. package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.d.ts.map +1 -1
  1084. package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +326 -231
  1085. package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.d.ts +3 -3
  1086. package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.d.ts.map +1 -0
  1087. package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +329 -2
  1088. package/dist/presentation/features/templates/FeatureFormDetailTemplate/types.d.ts +8 -12
  1089. package/dist/presentation/features/templates/FeatureFormDetailTemplate/types.d.ts.map +1 -1
  1090. package/dist/presentation/features/templates/FeatureFormDetailTemplate/types.js +1 -0
  1091. package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.d.ts +2 -10
  1092. package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.d.ts.map +1 -1
  1093. package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +333 -30
  1094. package/dist/presentation/features/templates/FeatureFormsTemplate/index.d.ts +2 -2
  1095. package/dist/presentation/features/templates/FeatureFormsTemplate/index.d.ts.map +1 -0
  1096. package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +336 -2
  1097. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.d.ts +2 -13
  1098. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.d.ts.map +1 -1
  1099. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +300 -205
  1100. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.d.ts +3 -3
  1101. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.d.ts.map +1 -0
  1102. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +302 -2
  1103. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/types.d.ts +8 -12
  1104. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/types.d.ts.map +1 -1
  1105. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/types.js +1 -0
  1106. package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.d.ts +2 -10
  1107. package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.d.ts.map +1 -1
  1108. package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +212 -31
  1109. package/dist/presentation/features/templates/FeatureOperationsTemplate/index.d.ts +2 -2
  1110. package/dist/presentation/features/templates/FeatureOperationsTemplate/index.d.ts.map +1 -0
  1111. package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +214 -2
  1112. package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.d.ts +5 -13
  1113. package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.d.ts.map +1 -1
  1114. package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +186 -26
  1115. package/dist/presentation/features/templates/FeatureOverviewTemplate/index.d.ts +2 -2
  1116. package/dist/presentation/features/templates/FeatureOverviewTemplate/index.d.ts.map +1 -0
  1117. package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +188 -3
  1118. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.d.ts +2 -13
  1119. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.d.ts.map +1 -1
  1120. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +303 -210
  1121. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.d.ts +3 -3
  1122. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.d.ts.map +1 -0
  1123. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +306 -2
  1124. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/types.d.ts +9 -13
  1125. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/types.d.ts.map +1 -1
  1126. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/types.js +1 -0
  1127. package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.d.ts +2 -10
  1128. package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.d.ts.map +1 -1
  1129. package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +335 -30
  1130. package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.d.ts +2 -2
  1131. package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.d.ts.map +1 -0
  1132. package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +338 -2
  1133. package/dist/presentation/features/templates/types.d.ts +4 -8
  1134. package/dist/presentation/features/templates/types.d.ts.map +1 -1
  1135. package/dist/presentation/features/templates/types.js +1 -0
  1136. package/package.json +2107 -303
  1137. package/src/components/docs/generated/docs-index.manifest.json +1 -1
  1138. package/src/components/docs/generated/docs-index.platform-integrations.json +1 -1
  1139. package/tsdown.config.js +1 -2
  1140. package/.turbo/turbo-build$colon$bundle.log +0 -1230
  1141. package/dist/application/mcp/cliMcp.js.map +0 -1
  1142. package/dist/application/mcp/common.js.map +0 -1
  1143. package/dist/application/mcp/docsMcp.js.map +0 -1
  1144. package/dist/application/mcp/internalMcp.js.map +0 -1
  1145. package/dist/components/docs/DocsIndexPage.js.map +0 -1
  1146. package/dist/components/docs/advanced/AdvancedMCPPage.js.map +0 -1
  1147. package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js.map +0 -1
  1148. package/dist/components/docs/advanced/AdvancedRenderersPage.js.map +0 -1
  1149. package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js.map +0 -1
  1150. package/dist/components/docs/advanced/AdvancedTelemetryPage.js.map +0 -1
  1151. package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js.map +0 -1
  1152. package/dist/components/docs/architecture/ArchitectureAppConfigPage.js.map +0 -1
  1153. package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js.map +0 -1
  1154. package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js.map +0 -1
  1155. package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js.map +0 -1
  1156. package/dist/components/docs/architecture/ArchitectureOverviewPage.js.map +0 -1
  1157. package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js.map +0 -1
  1158. package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js.map +0 -1
  1159. package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js.map +0 -1
  1160. package/dist/components/docs/comparison/ComparisonOverviewPage.js.map +0 -1
  1161. package/dist/components/docs/comparison/ComparisonWindmillPage.js.map +0 -1
  1162. package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js.map +0 -1
  1163. package/dist/components/docs/ecosystem/IntegrationsPage.js.map +0 -1
  1164. package/dist/components/docs/ecosystem/PluginsPage.js.map +0 -1
  1165. package/dist/components/docs/ecosystem/RegistryPage.js.map +0 -1
  1166. package/dist/components/docs/ecosystem/TemplatesPage.js.map +0 -1
  1167. package/dist/components/docs/ecosystem/ecosystem.docblocks.js.map +0 -1
  1168. package/dist/components/docs/examples/DocsExamplesPage.js.map +0 -1
  1169. package/dist/components/docs/generated/docs-index.generated.js.map +0 -1
  1170. package/dist/components/docs/generated/loader.js.map +0 -1
  1171. package/dist/components/docs/getting-started/CLIPage.js.map +0 -1
  1172. package/dist/components/docs/getting-started/CompatibilityPage.js.map +0 -1
  1173. package/dist/components/docs/getting-started/DataViewTutorialPage.js.map +0 -1
  1174. package/dist/components/docs/getting-started/DeveloperToolsPage.js.map +0 -1
  1175. package/dist/components/docs/getting-started/HelloWorldPage.js.map +0 -1
  1176. package/dist/components/docs/getting-started/InstallationPage.js.map +0 -1
  1177. package/dist/components/docs/getting-started/StartHerePage.js.map +0 -1
  1178. package/dist/components/docs/getting-started/TroubleshootingPage.js.map +0 -1
  1179. package/dist/components/docs/getting-started/VSCodeExtensionPage.js.map +0 -1
  1180. package/dist/components/docs/getting-started/getting-started.docblocks.js.map +0 -1
  1181. package/dist/components/docs/guides/GuideCIDiffGatingPage.js.map +0 -1
  1182. package/dist/components/docs/guides/GuideContractTypesPage.js.map +0 -1
  1183. package/dist/components/docs/guides/GuideDocsPipelinePage.js.map +0 -1
  1184. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js.map +0 -1
  1185. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js.map +0 -1
  1186. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js.map +0 -1
  1187. package/dist/components/docs/guides/GuideSpecValidationTypingPage.js.map +0 -1
  1188. package/dist/components/docs/guides/GuidesIndexPage.js.map +0 -1
  1189. package/dist/components/docs/guides/guides.docblocks.js.map +0 -1
  1190. package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js.map +0 -1
  1191. package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js.map +0 -1
  1192. package/dist/components/docs/integrations/IntegrationsGmailPage.js.map +0 -1
  1193. package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js.map +0 -1
  1194. package/dist/components/docs/integrations/IntegrationsOpenAIPage.js.map +0 -1
  1195. package/dist/components/docs/integrations/IntegrationsOverviewPage.js.map +0 -1
  1196. package/dist/components/docs/integrations/IntegrationsPostmarkPage.js.map +0 -1
  1197. package/dist/components/docs/integrations/IntegrationsPowensPage.js.map +0 -1
  1198. package/dist/components/docs/integrations/IntegrationsQdrantPage.js.map +0 -1
  1199. package/dist/components/docs/integrations/IntegrationsResendPage.js.map +0 -1
  1200. package/dist/components/docs/integrations/IntegrationsS3Page.js.map +0 -1
  1201. package/dist/components/docs/integrations/IntegrationsSpecModelPage.js.map +0 -1
  1202. package/dist/components/docs/integrations/IntegrationsStripePage.js.map +0 -1
  1203. package/dist/components/docs/integrations/IntegrationsTwilioPage.js.map +0 -1
  1204. package/dist/components/docs/intent/ContractFirstApiPage.js.map +0 -1
  1205. package/dist/components/docs/intent/DeterministicCodegenPage.js.map +0 -1
  1206. package/dist/components/docs/intent/GenerateClientFromSchemaPage.js.map +0 -1
  1207. package/dist/components/docs/intent/OpenapiAlternativePage.js.map +0 -1
  1208. package/dist/components/docs/intent/SchemaValidationTypescriptPage.js.map +0 -1
  1209. package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js.map +0 -1
  1210. package/dist/components/docs/intent/intent-pages.docblocks.js.map +0 -1
  1211. package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js.map +0 -1
  1212. package/dist/components/docs/knowledge/KnowledgeExamplesPage.js.map +0 -1
  1213. package/dist/components/docs/knowledge/KnowledgeOverviewPage.js.map +0 -1
  1214. package/dist/components/docs/knowledge/KnowledgeSourcesPage.js.map +0 -1
  1215. package/dist/components/docs/knowledge/KnowledgeSpacesPage.js.map +0 -1
  1216. package/dist/components/docs/libraries/LibrariesAccessibilityPage.js.map +0 -1
  1217. package/dist/components/docs/libraries/LibrariesAiAgentPage.js.map +0 -1
  1218. package/dist/components/docs/libraries/LibrariesAnalyticsPage.js.map +0 -1
  1219. package/dist/components/docs/libraries/LibrariesContentGenPage.js.map +0 -1
  1220. package/dist/components/docs/libraries/LibrariesContractsPage.js.map +0 -1
  1221. package/dist/components/docs/libraries/LibrariesCostTrackingPage.js.map +0 -1
  1222. package/dist/components/docs/libraries/LibrariesDataBackendPage.js.map +0 -1
  1223. package/dist/components/docs/libraries/LibrariesDataViewsPage.js.map +0 -1
  1224. package/dist/components/docs/libraries/LibrariesDesignSystemPage.js.map +0 -1
  1225. package/dist/components/docs/libraries/LibrariesEvolutionPage.js.map +0 -1
  1226. package/dist/components/docs/libraries/LibrariesGraphQLPage.js.map +0 -1
  1227. package/dist/components/docs/libraries/LibrariesGrowthPage.js.map +0 -1
  1228. package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js.map +0 -1
  1229. package/dist/components/docs/libraries/LibrariesObservabilityPage.js.map +0 -1
  1230. package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js.map +0 -1
  1231. package/dist/components/docs/libraries/LibrariesOverviewPage.js.map +0 -1
  1232. package/dist/components/docs/libraries/LibrariesPersonalizationPage.js.map +0 -1
  1233. package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js.map +0 -1
  1234. package/dist/components/docs/libraries/LibrariesResiliencePage.js.map +0 -1
  1235. package/dist/components/docs/libraries/LibrariesRuntimePage.js.map +0 -1
  1236. package/dist/components/docs/libraries/LibrariesSLOPage.js.map +0 -1
  1237. package/dist/components/docs/libraries/LibrariesSchemaPage.js.map +0 -1
  1238. package/dist/components/docs/libraries/LibrariesSupportBotPage.js.map +0 -1
  1239. package/dist/components/docs/libraries/LibrariesTestingPage.js.map +0 -1
  1240. package/dist/components/docs/libraries/LibrariesUIKitPage.js.map +0 -1
  1241. package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js.map +0 -1
  1242. package/dist/components/docs/libraries/LibrariesWorkflowsPage.js.map +0 -1
  1243. package/dist/components/docs/manifesto/ManifestoPage.js.map +0 -1
  1244. package/dist/components/docs/ops/AutoEvolutionOpsPage.js.map +0 -1
  1245. package/dist/components/docs/ops/DistributedTracingOpsPage.js.map +0 -1
  1246. package/dist/components/docs/ops/ops-lifecycle.docblocks.js.map +0 -1
  1247. package/dist/components/docs/ops/ops-runbooks-a.docblocks.js.map +0 -1
  1248. package/dist/components/docs/ops/ops-runbooks-b.docblocks.js.map +0 -1
  1249. package/dist/components/docs/ops/ops-slo-tenant.docblocks.js.map +0 -1
  1250. package/dist/components/docs/ops/ops-top.docs.js.map +0 -1
  1251. package/dist/components/docs/ops/ops.docs.js.map +0 -1
  1252. package/dist/components/docs/product/product.docblocks.js.map +0 -1
  1253. package/dist/components/docs/reference/DocsMarkdownContent.js.map +0 -1
  1254. package/dist/components/docs/reference/DocsReferenceContent.js.map +0 -1
  1255. package/dist/components/docs/reference/DocsReferenceIndexClient.js.map +0 -1
  1256. package/dist/components/docs/reference/DocsReferenceIndexPage.js.map +0 -1
  1257. package/dist/components/docs/reference/DocsReferencePage.js.map +0 -1
  1258. package/dist/components/docs/reference/docsMarkdownParser.js.map +0 -1
  1259. package/dist/components/docs/safety/SafetyAuditingPage.js.map +0 -1
  1260. package/dist/components/docs/safety/SafetyMigrationsPage.js.map +0 -1
  1261. package/dist/components/docs/safety/SafetyOverviewPage.js.map +0 -1
  1262. package/dist/components/docs/safety/SafetyPDPPage.js.map +0 -1
  1263. package/dist/components/docs/safety/SafetySecurityTrustPage.js.map +0 -1
  1264. package/dist/components/docs/safety/SafetySigningPage.js.map +0 -1
  1265. package/dist/components/docs/safety/SafetyTenantIsolationPage.js.map +0 -1
  1266. package/dist/components/docs/shared/StudioPrompt.js.map +0 -1
  1267. package/dist/components/docs/specs/SpecsCapabilitiesPage.js.map +0 -1
  1268. package/dist/components/docs/specs/SpecsDataViewsPage.js.map +0 -1
  1269. package/dist/components/docs/specs/SpecsOverlaysPage.js.map +0 -1
  1270. package/dist/components/docs/specs/SpecsOverviewPage.js.map +0 -1
  1271. package/dist/components/docs/specs/SpecsPolicyPage.js.map +0 -1
  1272. package/dist/components/docs/specs/SpecsWorkflowsPage.js.map +0 -1
  1273. package/dist/components/docs/studio/StudioBYOKPage.js.map +0 -1
  1274. package/dist/components/docs/studio/StudioDeploymentsPage.js.map +0 -1
  1275. package/dist/components/docs/studio/StudioGettingStartedPage.js.map +0 -1
  1276. package/dist/components/docs/studio/StudioIntegrationsPage.js.map +0 -1
  1277. package/dist/components/docs/studio/StudioOverviewPage.js.map +0 -1
  1278. package/dist/components/docs/studio/StudioVisualBuilderPage.js.map +0 -1
  1279. package/dist/components/docs/tech/contracts/tech-docs.docblocks.js.map +0 -1
  1280. package/dist/components/integrations/molecules/IntegrationCard.js.map +0 -1
  1281. package/dist/components/integrations/organisms/IntegrationMarketplace.js.map +0 -1
  1282. package/dist/components/integrations/organisms/IntegrationSettings.js.map +0 -1
  1283. package/dist/components/integrations/organisms/KnowledgeSourceList.js.map +0 -1
  1284. package/dist/components/legal/PrivacyTemplate.js.map +0 -1
  1285. package/dist/components/legal/TermsTemplate.js.map +0 -1
  1286. package/dist/components/shared/FeatureGateNotice.js.map +0 -1
  1287. package/dist/components/shell/WorkspaceHeader.js.map +0 -1
  1288. package/dist/components/shell/WorkspaceProjectShellLayout.js.map +0 -1
  1289. package/dist/components/shell/WorkspaceSidebar.js.map +0 -1
  1290. package/dist/components/templates/engine/index.js.map +0 -1
  1291. package/dist/components/templates/messaging/ConversationList.js.map +0 -1
  1292. package/dist/components/templates/messaging/MessageComposer.js.map +0 -1
  1293. package/dist/components/templates/messaging/MessageThread.js.map +0 -1
  1294. package/dist/components/templates/messaging/MessagingWorkspace.js.map +0 -1
  1295. package/dist/components/templates/recipes/LanguageSwitcher.js.map +0 -1
  1296. package/dist/components/templates/recipes/RecipeCard.js.map +0 -1
  1297. package/dist/components/templates/recipes/RecipeDetail.js.map +0 -1
  1298. package/dist/components/templates/recipes/RecipeList.js.map +0 -1
  1299. package/dist/components/templates/todos/FilterBar.js.map +0 -1
  1300. package/dist/components/templates/todos/TaskForm.js.map +0 -1
  1301. package/dist/components/templates/todos/TaskItem.js.map +0 -1
  1302. package/dist/components/templates/todos/TaskList.js.map +0 -1
  1303. package/dist/config/contractspec-blueprint.js.map +0 -1
  1304. package/dist/config/contractspec-branding.js.map +0 -1
  1305. package/dist/config/contractspec-routes.js.map +0 -1
  1306. package/dist/features/contracts-registry.js.map +0 -1
  1307. package/dist/features/docs.feature.js.map +0 -1
  1308. package/dist/features/mcp.feature.js.map +0 -1
  1309. package/dist/features/presentations.feature.js.map +0 -1
  1310. package/dist/features/registry.js.map +0 -1
  1311. package/dist/infrastructure/elysia/logger.js.map +0 -1
  1312. package/dist/libs/email/client.js.map +0 -1
  1313. package/dist/libs/email/contact.js.map +0 -1
  1314. package/dist/libs/email/newsletter.js.map +0 -1
  1315. package/dist/libs/email/utils.js.map +0 -1
  1316. package/dist/libs/email/waitlist-application.js.map +0 -1
  1317. package/dist/libs/email/waitlist.js.map +0 -1
  1318. package/dist/libs/posthog/client.js.map +0 -1
  1319. package/dist/libs/posthog/native.js.map +0 -1
  1320. package/dist/libs/posthog/server.js.map +0 -1
  1321. package/dist/libs/pricing-examples.js.map +0 -1
  1322. package/dist/node_modules/next/dist/build/adapter/build-complete.d.ts +0 -3
  1323. package/dist/node_modules/next/dist/build/analysis/get-page-static-info.d.ts +0 -15
  1324. package/dist/node_modules/next/dist/build/analysis/get-page-static-info.d.ts.map +0 -1
  1325. package/dist/node_modules/next/dist/build/build-context.d.ts +0 -3
  1326. package/dist/node_modules/next/dist/build/index.d.ts +0 -19
  1327. package/dist/node_modules/next/dist/build/index.d.ts.map +0 -1
  1328. package/dist/node_modules/next/dist/build/load-jsconfig.d.ts +0 -1
  1329. package/dist/node_modules/next/dist/build/segment-config/app/app-segments.d.ts +0 -3
  1330. package/dist/node_modules/next/dist/build/static-paths/types.d.ts +0 -2
  1331. package/dist/node_modules/next/dist/build/swc/generated-native.d.ts +0 -1
  1332. package/dist/node_modules/next/dist/build/swc/types.d.ts +0 -2
  1333. package/dist/node_modules/next/dist/build/templates/app-page.d.ts +0 -1
  1334. package/dist/node_modules/next/dist/build/templates/app-route.d.ts +0 -3
  1335. package/dist/node_modules/next/dist/build/utils.d.ts +0 -8
  1336. package/dist/node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts +0 -2
  1337. package/dist/node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts +0 -1
  1338. package/dist/node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts +0 -3
  1339. package/dist/node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts +0 -7
  1340. package/dist/node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts.map +0 -1
  1341. package/dist/node_modules/next/dist/build/webpack-config.d.ts +0 -5
  1342. package/dist/node_modules/next/dist/build/worker.d.ts +0 -2
  1343. package/dist/node_modules/next/dist/cli/next-test.d.ts +0 -6
  1344. package/dist/node_modules/next/dist/cli/next-test.d.ts.map +0 -1
  1345. package/dist/node_modules/next/dist/client/components/app-router-headers.d.ts +0 -5
  1346. package/dist/node_modules/next/dist/client/components/app-router-headers.d.ts.map +0 -1
  1347. package/dist/node_modules/next/dist/client/components/client-page.d.ts +0 -3
  1348. package/dist/node_modules/next/dist/client/components/client-segment.d.ts +0 -2
  1349. package/dist/node_modules/next/dist/client/components/error-boundary.d.ts +0 -1
  1350. package/dist/node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts +0 -2
  1351. package/dist/node_modules/next/dist/client/components/layout-router.d.ts +0 -2
  1352. package/dist/node_modules/next/dist/client/components/render-from-template-context.d.ts +0 -1
  1353. package/dist/node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts +0 -2
  1354. package/dist/node_modules/next/dist/client/components/router-reducer/ppr-navigations.d.ts +0 -1
  1355. package/dist/node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts +0 -3
  1356. package/dist/node_modules/next/dist/client/components/segment-cache/navigation.d.ts +0 -3
  1357. package/dist/node_modules/next/dist/client/flight-data-helpers.d.ts +0 -1
  1358. package/dist/node_modules/next/dist/client/page-loader.d.ts +0 -16
  1359. package/dist/node_modules/next/dist/client/page-loader.d.ts.map +0 -1
  1360. package/dist/node_modules/next/dist/client/route-loader.d.ts +0 -22
  1361. package/dist/node_modules/next/dist/client/route-loader.d.ts.map +0 -1
  1362. package/dist/node_modules/next/dist/client/router.d.ts +0 -2
  1363. package/dist/node_modules/next/dist/client/with-router.d.ts +0 -3
  1364. package/dist/node_modules/next/dist/export/types.d.ts +0 -8
  1365. package/dist/node_modules/next/dist/export/worker.d.ts +0 -1
  1366. package/dist/node_modules/next/dist/lib/constants.d.ts +0 -1
  1367. package/dist/node_modules/next/dist/lib/framework/boundary-components.d.ts +0 -1
  1368. package/dist/node_modules/next/dist/lib/load-custom-routes.d.ts +0 -47
  1369. package/dist/node_modules/next/dist/lib/load-custom-routes.d.ts.map +0 -1
  1370. package/dist/node_modules/next/dist/lib/metadata/metadata.d.ts +0 -6
  1371. package/dist/node_modules/next/dist/lib/metadata/resolve-metadata.d.ts +0 -4
  1372. package/dist/node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts +0 -22
  1373. package/dist/node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts.map +0 -1
  1374. package/dist/node_modules/next/dist/lib/metadata/types/extra-types.d.ts +0 -79
  1375. package/dist/node_modules/next/dist/lib/metadata/types/extra-types.d.ts.map +0 -1
  1376. package/dist/node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts +0 -479
  1377. package/dist/node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts.map +0 -1
  1378. package/dist/node_modules/next/dist/lib/metadata/types/metadata-types.d.ts +0 -97
  1379. package/dist/node_modules/next/dist/lib/metadata/types/metadata-types.d.ts.map +0 -1
  1380. package/dist/node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts +0 -134
  1381. package/dist/node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts.map +0 -1
  1382. package/dist/node_modules/next/dist/lib/metadata/types/twitter-types.d.ts +0 -58
  1383. package/dist/node_modules/next/dist/lib/metadata/types/twitter-types.d.ts.map +0 -1
  1384. package/dist/node_modules/next/dist/next-devtools/dev-overlay/container/runtime-error/render-error.d.ts +0 -3
  1385. package/dist/node_modules/next/dist/next-devtools/dev-overlay/shared.d.ts +0 -2
  1386. package/dist/node_modules/next/dist/next-devtools/dev-overlay/utils/get-error-by-type.d.ts +0 -1
  1387. package/dist/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts +0 -2
  1388. package/dist/node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts +0 -2
  1389. package/dist/node_modules/next/dist/server/after/after-context.d.ts +0 -1
  1390. package/dist/node_modules/next/dist/server/api-utils/index.d.ts +0 -2
  1391. package/dist/node_modules/next/dist/server/app-render/app-render.d.ts +0 -11
  1392. package/dist/node_modules/next/dist/server/app-render/collect-segment-data.d.ts +0 -2
  1393. package/dist/node_modules/next/dist/server/app-render/create-error-handler.d.ts +0 -7
  1394. package/dist/node_modules/next/dist/server/app-render/create-error-handler.d.ts.map +0 -1
  1395. package/dist/node_modules/next/dist/server/app-render/dynamic-rendering.d.ts +0 -2
  1396. package/dist/node_modules/next/dist/server/app-render/entry-base.d.ts +0 -22
  1397. package/dist/node_modules/next/dist/server/app-render/entry-base.d.ts.map +0 -1
  1398. package/dist/node_modules/next/dist/server/app-render/rsc/postpone.d.ts +0 -1
  1399. package/dist/node_modules/next/dist/server/app-render/types.d.ts +0 -11
  1400. package/dist/node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts +0 -1
  1401. package/dist/node_modules/next/dist/server/app-render/work-async-storage.external.d.ts +0 -5
  1402. package/dist/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts +0 -1
  1403. package/dist/node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts +0 -9
  1404. package/dist/node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts +0 -3
  1405. package/dist/node_modules/next/dist/server/async-storage/work-store.d.ts +0 -5
  1406. package/dist/node_modules/next/dist/server/base-http/index.d.ts +0 -2
  1407. package/dist/node_modules/next/dist/server/base-http/node.d.ts +0 -3
  1408. package/dist/node_modules/next/dist/server/base-server.d.ts +0 -21
  1409. package/dist/node_modules/next/dist/server/config-shared.d.ts +0 -1128
  1410. package/dist/node_modules/next/dist/server/config-shared.d.ts.map +0 -1
  1411. package/dist/node_modules/next/dist/server/dev/debug-channel.d.ts +0 -1
  1412. package/dist/node_modules/next/dist/server/dev/hot-reloader-types.d.ts +0 -5
  1413. package/dist/node_modules/next/dist/server/dev/next-dev-server.d.ts +0 -17
  1414. package/dist/node_modules/next/dist/server/dev/static-paths-worker.d.ts +0 -3
  1415. package/dist/node_modules/next/dist/server/image-optimizer.d.ts +0 -3
  1416. package/dist/node_modules/next/dist/server/lib/app-dir-module.d.ts +0 -1
  1417. package/dist/node_modules/next/dist/server/lib/dev-bundler-service.d.ts +0 -2
  1418. package/dist/node_modules/next/dist/server/lib/experimental/ppr.d.ts +0 -12
  1419. package/dist/node_modules/next/dist/server/lib/experimental/ppr.d.ts.map +0 -1
  1420. package/dist/node_modules/next/dist/server/lib/i18n-provider.d.ts +0 -2
  1421. package/dist/node_modules/next/dist/server/lib/implicit-tags.d.ts +0 -1
  1422. package/dist/node_modules/next/dist/server/lib/incremental-cache/index.d.ts +0 -3
  1423. package/dist/node_modules/next/dist/server/lib/render-server.d.ts +0 -6
  1424. package/dist/node_modules/next/dist/server/lib/router-server.d.ts +0 -1
  1425. package/dist/node_modules/next/dist/server/lib/router-utils/filesystem.d.ts +0 -3
  1426. package/dist/node_modules/next/dist/server/lib/router-utils/router-server-context.d.ts +0 -2
  1427. package/dist/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts +0 -7
  1428. package/dist/node_modules/next/dist/server/load-components.d.ts +0 -3
  1429. package/dist/node_modules/next/dist/server/load-default-error-components.d.ts +0 -2
  1430. package/dist/node_modules/next/dist/server/next-server.d.ts +0 -19
  1431. package/dist/node_modules/next/dist/server/next.d.ts +0 -4
  1432. package/dist/node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts +0 -1
  1433. package/dist/node_modules/next/dist/server/render-result.d.ts +0 -3
  1434. package/dist/node_modules/next/dist/server/render.d.ts +0 -9
  1435. package/dist/node_modules/next/dist/server/request/fallback-params.d.ts +0 -3
  1436. package/dist/node_modules/next/dist/server/request/params.d.ts +0 -1
  1437. package/dist/node_modules/next/dist/server/request/search-params.d.ts +0 -1
  1438. package/dist/node_modules/next/dist/server/request-meta.d.ts +0 -21
  1439. package/dist/node_modules/next/dist/server/request-meta.d.ts.map +0 -1
  1440. package/dist/node_modules/next/dist/server/response-cache/index.d.ts +0 -1
  1441. package/dist/node_modules/next/dist/server/response-cache/types.d.ts +0 -1
  1442. package/dist/node_modules/next/dist/server/resume-data-cache/cache-store.d.ts +0 -1
  1443. package/dist/node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts +0 -1
  1444. package/dist/node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts +0 -3
  1445. package/dist/node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts +0 -1
  1446. package/dist/node_modules/next/dist/server/route-matchers/route-matcher.d.ts +0 -2
  1447. package/dist/node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts +0 -1
  1448. package/dist/node_modules/next/dist/server/route-matches/route-match.d.ts +0 -1
  1449. package/dist/node_modules/next/dist/server/route-modules/app-page/module.d.ts +0 -15
  1450. package/dist/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts +0 -6
  1451. package/dist/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts +0 -2
  1452. package/dist/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts +0 -2
  1453. package/dist/node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts +0 -1
  1454. package/dist/node_modules/next/dist/server/route-modules/app-route/module.d.ts +0 -11
  1455. package/dist/node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts +0 -1
  1456. package/dist/node_modules/next/dist/server/route-modules/pages/builtin/_error.d.ts +0 -1
  1457. package/dist/node_modules/next/dist/server/route-modules/pages/module.d.ts +0 -7
  1458. package/dist/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts +0 -9
  1459. package/dist/node_modules/next/dist/server/route-modules/route-module.d.ts +0 -11
  1460. package/dist/node_modules/next/dist/server/web/adapter.d.ts +0 -4
  1461. package/dist/node_modules/next/dist/server/web/next-url.d.ts +0 -2
  1462. package/dist/node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts +0 -1
  1463. package/dist/node_modules/next/dist/server/web/spec-extension/request.d.ts +0 -2
  1464. package/dist/node_modules/next/dist/server/web/spec-extension/response.d.ts +0 -2
  1465. package/dist/node_modules/next/dist/server/web/types.d.ts +0 -5
  1466. package/dist/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts +0 -4
  1467. package/dist/node_modules/next/dist/shared/lib/app-router-types.d.ts +0 -1
  1468. package/dist/node_modules/next/dist/shared/lib/constants.d.ts +0 -9
  1469. package/dist/node_modules/next/dist/shared/lib/constants.d.ts.map +0 -1
  1470. package/dist/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts +0 -1
  1471. package/dist/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts +0 -2
  1472. package/dist/node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts +0 -3
  1473. package/dist/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts +0 -1
  1474. package/dist/node_modules/next/dist/shared/lib/image-config.d.ts +0 -78
  1475. package/dist/node_modules/next/dist/shared/lib/image-config.d.ts.map +0 -1
  1476. package/dist/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts +0 -1
  1477. package/dist/node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts +0 -9
  1478. package/dist/node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts.map +0 -1
  1479. package/dist/node_modules/next/dist/shared/lib/router/router.d.ts +0 -13
  1480. package/dist/node_modules/next/dist/shared/lib/router/router.d.ts.map +0 -1
  1481. package/dist/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts +0 -3
  1482. package/dist/node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts +0 -1
  1483. package/dist/node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts +0 -2
  1484. package/dist/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.d.ts +0 -1
  1485. package/dist/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts +0 -1
  1486. package/dist/node_modules/next/dist/shared/lib/size-limit.d.ts +0 -1
  1487. package/dist/node_modules/next/dist/shared/lib/utils.d.ts +0 -45
  1488. package/dist/node_modules/next/dist/shared/lib/utils.d.ts.map +0 -1
  1489. package/dist/node_modules/next/dist/types.d.ts +0 -39
  1490. package/dist/node_modules/next/dist/types.d.ts.map +0 -1
  1491. package/dist/node_modules/next/index.d.ts +0 -20
  1492. package/dist/node_modules/next/types.d.ts +0 -3
  1493. package/dist/packages/libs/content-gen/dist/seo/optimizer.js +0 -49
  1494. package/dist/packages/libs/content-gen/dist/seo/optimizer.js.map +0 -1
  1495. package/dist/packages/libs/content-gen/dist/types.d.ts +0 -27
  1496. package/dist/packages/libs/content-gen/dist/types.d.ts.map +0 -1
  1497. package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js.map +0 -1
  1498. package/dist/presentation/features/hooks/useContractsRegistry.js.map +0 -1
  1499. package/dist/presentation/features/hooks/useFeatureFilters.js.map +0 -1
  1500. package/dist/presentation/features/hooks/useFeatureRegistry.js.map +0 -1
  1501. package/dist/presentation/features/hooks/useRelatedDocs.js.map +0 -1
  1502. package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js.map +0 -1
  1503. package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js.map +0 -1
  1504. package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js.map +0 -1
  1505. package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js.map +0 -1
  1506. package/dist/presentation/features/organisms/FeatureDataViewsList.js.map +0 -1
  1507. package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js.map +0 -1
  1508. package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js.map +0 -1
  1509. package/dist/presentation/features/organisms/FeatureEventsList.js.map +0 -1
  1510. package/dist/presentation/features/organisms/FeatureFormsList.js.map +0 -1
  1511. package/dist/presentation/features/organisms/FeatureOperationsList.js.map +0 -1
  1512. package/dist/presentation/features/organisms/FeaturePresentationsList.js.map +0 -1
  1513. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js.map +0 -1
  1514. package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js.map +0 -1
  1515. package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js.map +0 -1
  1516. package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js.map +0 -1
  1517. package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js.map +0 -1
  1518. package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js.map +0 -1
  1519. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js.map +0 -1
  1520. package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js.map +0 -1
  1521. package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js.map +0 -1
  1522. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js.map +0 -1
  1523. package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js.map +0 -1
  1524. package/tsconfig.tsbuildinfo +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpecsPolicyPage.js","names":[],"sources":["../../../../src/components/docs/specs/SpecsPolicyPage.tsx"],"sourcesContent":["import Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\n\n// export const metadata = {\n// title: 'Policy: ContractSpec Docs',\n// description:\n// 'Learn how to define attribute-based access control and data protection policies in ContractSpec.',\n// };\n\nexport function SpecsPolicyPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-4\">\n <h1 className=\"text-4xl font-bold\">Policy</h1>\n <p className=\"text-muted-foreground\">\n A <strong>PolicySpec</strong> defines who can do what, when, and under\n what conditions. ContractSpec uses attribute-based access control\n (ABAC) to enforce policies across your entire application—from API\n endpoints to UI components.\n </p>\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">Why policies matter</h2>\n <p className=\"text-muted-foreground\">\n Traditional access control relies on roles (RBAC), which can become\n unwieldy as applications grow. ABAC is more flexible—it evaluates\n policies based on attributes of the user, resource, action, and\n context.\n </p>\n <p className=\"text-muted-foreground\">\n ContractSpec's policy engine ensures that access control is consistent\n across all surfaces. You don't have to remember to add authorization\n checks in every API endpoint or UI component—the{' '}\n <Link\n href=\"/docs/safety/pdp\"\n className=\"text-violet-400 hover:text-violet-300\"\n >\n Policy Decision Point\n </Link>{' '}\n enforces policies automatically.\n </p>\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">Policy structure</h2>\n <p className=\"text-muted-foreground\">\n A PolicySpec contains one or more rules. Each rule has:\n </p>\n <ul className=\"text-muted-foreground list-inside list-disc space-y-2\">\n <li>\n <strong>Effect</strong> – PERMIT, DENY, or REDACT\n </li>\n <li>\n <strong>Condition</strong> – A boolean expression that determines\n when the rule applies\n </li>\n <li>\n <strong>Scope</strong> – Which resources, actions, or fields the\n rule applies to\n </li>\n <li>\n <strong>Priority</strong> – Rules are evaluated in priority order;\n the first matching rule wins\n </li>\n </ul>\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">Example PolicySpec</h2>\n <p className=\"text-muted-foreground\">\n Here's a policy that controls access to customer data in TypeScript:\n </p>\n <div className=\"bg-background/50 border-border text-muted-foreground overflow-x-auto rounded-lg border p-4 font-mono text-sm\">\n <pre>{`import { definePolicy } from '@contractspec/lib.contracts';\n\nexport const CustomerDataAccess = definePolicy({\n meta: {\n key: 'customer.data.access',\n version: '1.0.0',\n },\n rules: [\n {\n id: 'admin-full-access',\n priority: 100,\n effect: 'PERMIT',\n condition: (ctx) => ctx.user.role === 'admin',\n scope: {\n resources: ['customer'],\n actions: ['read', 'write', 'delete'],\n },\n },\n {\n id: 'sales-read-assigned',\n priority: 200,\n effect: 'PERMIT',\n condition: (ctx) => \n ctx.user.role === 'sales' && \n ctx.resource.assignedTo === ctx.user.id,\n scope: {\n resources: ['customer'],\n actions: ['read', 'write'],\n },\n },\n {\n id: 'support-read-redacted',\n priority: 300,\n effect: 'REDACT',\n condition: (ctx) => ctx.user.role === 'support',\n scope: {\n resources: ['customer'],\n actions: ['read'],\n },\n redactFields: ['creditCard', 'ssn', 'bankAccount'],\n },\n ],\n});`}</pre>\n </div>\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">Attributes</h2>\n <p className=\"text-muted-foreground\">\n Policy conditions can reference attributes from four categories:\n </p>\n <div className=\"space-y-3\">\n <div>\n <h3 className=\"text-lg font-semibold\">User attributes</h3>\n <p className=\"text-muted-foreground\">\n <code className=\"bg-background/50 rounded px-2 py-1\">\n user.id\n </code>\n ,{' '}\n <code className=\"bg-background/50 rounded px-2 py-1\">\n user.role\n </code>\n ,{' '}\n <code className=\"bg-background/50 rounded px-2 py-1\">\n user.groups\n </code>\n ,{' '}\n <code className=\"bg-background/50 rounded px-2 py-1\">\n user.department\n </code>\n , custom attributes\n </p>\n </div>\n <div>\n <h3 className=\"text-lg font-semibold\">Resource attributes</h3>\n <p className=\"text-muted-foreground\">\n <code className=\"bg-background/50 rounded px-2 py-1\">\n resource.type\n </code>\n ,{' '}\n <code className=\"bg-background/50 rounded px-2 py-1\">\n resource.owner\n </code>\n ,{' '}\n <code className=\"bg-background/50 rounded px-2 py-1\">\n resource.sensitivity\n </code>\n , custom attributes\n </p>\n </div>\n <div>\n <h3 className=\"text-lg font-semibold\">Action attributes</h3>\n <p className=\"text-muted-foreground\">\n <code className=\"bg-background/50 rounded px-2 py-1\">action</code>{' '}\n (read, write, delete, execute, export, etc.)\n </p>\n </div>\n <div>\n <h3 className=\"text-lg font-semibold\">Context attributes</h3>\n <p className=\"text-muted-foreground\">\n <code className=\"bg-background/50 rounded px-2 py-1\">\n time.hour\n </code>\n ,{' '}\n <code className=\"bg-background/50 rounded px-2 py-1\">\n time.dayOfWeek\n </code>\n ,{' '}\n <code className=\"bg-background/50 rounded px-2 py-1\">\n request.ipAddress\n </code>\n ,{' '}\n <code className=\"bg-background/50 rounded px-2 py-1\">\n request.userAgent\n </code>\n </p>\n </div>\n </div>\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">Data classification</h2>\n <p className=\"text-muted-foreground\">\n You can tag fields with sensitivity levels in your{' '}\n <Link\n href=\"/docs/specs/capabilities\"\n className=\"text-violet-400 hover:text-violet-300\"\n >\n CapabilitySpecs\n </Link>{' '}\n and{' '}\n <Link\n href=\"/docs/specs/dataviews\"\n className=\"text-violet-400 hover:text-violet-300\"\n >\n DataViewSpecs\n </Link>\n :\n </p>\n <div className=\"bg-background/50 border-border text-muted-foreground overflow-x-auto rounded-lg border p-4 font-mono text-sm\">\n <pre>{`fields:\n - name: email\n type: string\n sensitivity: PII\n - name: creditCard\n type: string\n sensitivity: PII\n encrypted: true\n - name: diagnosis\n type: string\n sensitivity: PHI\n - name: salary\n type: number\n sensitivity: confidential`}</pre>\n </div>\n <p className=\"text-muted-foreground\">\n Policies can then reference these tags to enforce blanket rules like\n \"support staff cannot see PII\" or \"PHI can only be accessed from\n approved IP addresses.\"\n </p>\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">Testing policies</h2>\n <p className=\"text-muted-foreground\">\n ContractSpec provides tools for testing policies before deployment:\n </p>\n <ul className=\"text-muted-foreground list-inside list-disc space-y-2\">\n <li>\n <strong>Policy simulator</strong> – Test how policies evaluate for\n different users and scenarios\n </li>\n <li>\n <strong>Coverage analysis</strong> – Identify resources or actions\n that aren't covered by any policy\n </li>\n <li>\n <strong>Conflict detection</strong> – Find rules that might conflict\n or produce unexpected results\n </li>\n <li>\n <strong>Audit mode</strong> – Run policies in audit-only mode to see\n what would be blocked without actually blocking it\n </li>\n </ul>\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">Best practices</h2>\n <ul className=\"text-muted-foreground list-inside list-disc space-y-2\">\n <li>\n Start with a deny-by-default policy—explicitly permit what should be\n allowed.\n </li>\n <li>\n Use clear, descriptive rule IDs that explain what the rule does.\n </li>\n <li>\n Set priorities carefully to ensure rules are evaluated in the right\n order.\n </li>\n <li>\n Test policies thoroughly with realistic user scenarios before\n deploying.\n </li>\n <li>\n Monitor policy decisions in production using{' '}\n <Link\n href=\"/docs/safety/auditing\"\n className=\"text-violet-400 hover:text-violet-300\"\n >\n audit logs\n </Link>\n .\n </li>\n <li>\n Review and update policies regularly as your application and\n requirements evolve.\n </li>\n </ul>\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link href=\"/docs/specs/workflows\" className=\"btn-ghost\">\n Previous: Workflows\n </Link>\n <Link href=\"/docs/specs/overlays\" className=\"btn-primary\">\n Next: Overlays <ChevronRight size={16} />\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpecsWorkflowsPage.js","names":[],"sources":["../../../../src/components/docs/specs/SpecsWorkflowsPage.tsx"],"sourcesContent":["import Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\n\n// export const metadata = {\n// title: 'Workflows: ContractSpec Docs',\n// description:\n// 'Learn how to define multi-step workflows with retries, compensation, and monitoring in ContractSpec.',\n// };\n\nexport function SpecsWorkflowsPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-4\">\n <h1 className=\"text-4xl font-bold\">Workflows</h1>\n <p className=\"text-muted-foreground\">\n A <strong>WorkflowSpec</strong> orchestrates multi-step processes. It\n defines the sequence of operations, handles failures with retries and\n compensation, and provides observability into long-running tasks.\n </p>\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">Core concepts</h2>\n <div className=\"space-y-3\">\n <div>\n <h3 className=\"text-lg font-semibold\">Identifiers</h3>\n <p className=\"text-muted-foreground\">\n Each workflow has a unique{' '}\n <code className=\"bg-background/50 rounded px-2 py-1\">\n workflowId\n </code>{' '}\n and a{' '}\n <code className=\"bg-background/50 rounded px-2 py-1\">\n version\n </code>\n . This allows you to run multiple versions of the same workflow\n simultaneously during migrations or A/B tests.\n </p>\n </div>\n <div>\n <h3 className=\"text-lg font-semibold\">Steps</h3>\n <p className=\"text-muted-foreground\">\n A workflow is composed of <strong>steps</strong>. Each step\n invokes a{' '}\n <Link\n href=\"/docs/specs/capabilities\"\n className=\"text-violet-400 hover:text-violet-300\"\n >\n CapabilitySpec\n </Link>\n , passes inputs, and receives outputs. Steps can run sequentially\n or in parallel.\n </p>\n </div>\n <div>\n <h3 className=\"text-lg font-semibold\">Transitions</h3>\n <p className=\"text-muted-foreground\">\n <strong>Transitions</strong> define the flow between steps. They\n can be conditional (e.g., \"if payment succeeds, go to step 3;\n otherwise, go to step 5\") or unconditional.\n </p>\n </div>\n <div>\n <h3 className=\"text-lg font-semibold\">Retries</h3>\n <p className=\"text-muted-foreground\">\n If a step fails, the workflow can retry it with exponential\n backoff. You specify the maximum number of retries and the backoff\n strategy in the spec.\n </p>\n </div>\n <div>\n <h3 className=\"text-lg font-semibold\">Compensation</h3>\n <p className=\"text-muted-foreground\">\n When a workflow fails partway through,{' '}\n <strong>compensation</strong> steps undo the effects of completed\n steps (e.g., refunding a payment, releasing a reservation). This\n ensures consistency even in failure scenarios.\n </p>\n </div>\n <div>\n <h3 className=\"text-lg font-semibold\">SLAs</h3>\n <p className=\"text-muted-foreground\">\n You can define Service Level Agreements (SLAs) for each step or\n the entire workflow. If a step exceeds its SLA, the system can\n trigger alerts or escalations.\n </p>\n </div>\n </div>\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">\n Example WorkflowSpec (TypeScript)\n </h2>\n <p className=\"text-muted-foreground\">\n Here's a simplified example of a payment workflow in TypeScript:\n </p>\n <div className=\"bg-background/50 border-border text-muted-foreground overflow-x-auto rounded-lg border p-4 font-mono text-sm\">\n <pre>{`import { defineWorkflow } from '@contractspec/lib.contracts';\nimport { ValidatePaymentMethod, ChargePayment, SendEmail } from './specs';\n\nexport const PaymentFlow = defineWorkflow({\n meta: {\n key: 'payment.flow',\n version: '1.0.0',\n description: 'End-to-end payment processing',\n owners: ['team-payments'],\n tags: ['payments'],\n stability: 'stable',\n },\n steps: [\n {\n id: 'validate-payment',\n operation: ValidatePaymentMethod,\n inputs: (ctx, input) => ({\n userId: ctx.userId,\n paymentMethodId: input.paymentMethodId,\n }),\n retry: {\n maxAttempts: 3,\n backoff: 'exponential',\n },\n onSuccess: 'charge-payment',\n onFailure: 'notify-user',\n },\n {\n id: 'charge-payment',\n operation: ChargePayment,\n inputs: (ctx, input, steps) => ({\n amount: input.amount,\n paymentMethodId: input.paymentMethodId,\n }),\n compensation: 'refund-payment',\n onSuccess: 'send-receipt',\n onFailure: 'notify-admin',\n },\n {\n id: 'send-receipt',\n operation: SendEmail,\n inputs: (ctx, input, steps) => ({\n to: ctx.userEmail,\n template: 'payment-receipt',\n data: steps['charge-payment'].output,\n }),\n },\n ],\n sla: {\n maxDuration: 30000, // milliseconds\n alertOnBreach: true,\n },\n});`}</pre>\n </div>\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">Triggers</h2>\n <p className=\"text-muted-foreground\">\n Workflows can be triggered in several ways:\n </p>\n <ul className=\"text-muted-foreground list-inside list-disc space-y-2\">\n <li>\n <strong>Manual invocation</strong> – A user or system calls the\n workflow via an API endpoint.\n </li>\n <li>\n <strong>Event-driven</strong> – The workflow starts automatically\n when a specific event occurs (e.g., a new order is created).\n </li>\n <li>\n <strong>Scheduled</strong> – The workflow runs on a cron schedule\n (e.g., nightly batch processing).\n </li>\n <li>\n <strong>Chained</strong> – One workflow can invoke another as a\n step.\n </li>\n </ul>\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">Monitoring and versioning</h2>\n <p className=\"text-muted-foreground\">\n ContractSpec automatically instruments workflows with telemetry. You\n can view:\n </p>\n <ul className=\"text-muted-foreground list-inside list-disc space-y-2\">\n <li>Real-time execution status for each step</li>\n <li>Historical run data and success/failure rates</li>\n <li>Latency distributions and SLA compliance</li>\n <li>Compensation events and retry attempts</li>\n </ul>\n <p className=\"text-muted-foreground\">\n When you update a workflow, you increment its version. Running\n workflows continue on their original version, while new invocations\n use the latest version. This allows safe, zero-downtime deployments.\n </p>\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">Best practices</h2>\n <ul className=\"text-muted-foreground list-inside list-disc space-y-2\">\n <li>\n Keep steps idempotent – they should be safe to retry without side\n effects.\n </li>\n <li>\n Define compensation for any step that modifies external state.\n </li>\n <li>Use meaningful step IDs that describe the operation.</li>\n <li>Set realistic SLAs and monitor them in production.</li>\n <li>Test failure scenarios locally before deploying.</li>\n </ul>\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link href=\"/docs/specs/capabilities\" className=\"btn-ghost\">\n Previous: Capabilities\n </Link>\n <Link href=\"/docs/safety\" className=\"btn-primary\">\n Next: Safety Features <ChevronRight size={16} />\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"StudioBYOKPage.js","names":[],"sources":["../../../../src/components/docs/studio/StudioBYOKPage.tsx"],"sourcesContent":["// export const metadata: Metadata = {\n// title: 'Studio – BYOK Setup',\n// description:\n// 'Configure Bring Your Own Key for ContractSpec Studio. Secure credentials, rotate keys, and audit access.',\n// };\n\nconst steps = [\n {\n title: '1. Provide vault endpoint',\n body: 'Enter your Vault/HSM URL and the key identifier. Studio only stores the reference.',\n },\n {\n title: '2. Verify encryption',\n body: 'Studio runs a test by encrypting a dummy payload and asking you to decrypt it.',\n },\n {\n title: '3. Store credentials',\n body: 'When integrations are connected, secrets get encrypted client side before landing in the database.',\n },\n {\n title: '4. Rotate keys',\n body: 'Trigger rotation from the BYOK manager. Studio fetches existing secrets, decrypts with the old key, and re-encrypts with the new one.',\n },\n];\n\nexport function StudioBYOKPage() {\n return (\n <main className=\"space-y-12 py-12\">\n <header className=\"space-y-3\">\n <p className=\"text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase\">\n BYOK\n </p>\n <h1 className=\"text-4xl font-bold\">Bring your own key to Studio</h1>\n <p className=\"text-muted-foreground max-w-3xl text-lg\">\n Keep secrets under your control. Studio never touches plaintext\n credentials; everything is encrypted with tenant-specific material.\n </p>\n </header>\n <section className=\"grid gap-4 md:grid-cols-2\">\n {steps.map((step) => (\n <article key={step.title} className=\"card-subtle space-y-2 p-6\">\n <h2 className=\"text-xl font-semibold\">{step.title}</h2>\n <p className=\"text-muted-foreground text-sm\">{step.body}</p>\n </article>\n ))}\n </section>\n <section className=\"space-y-2\">\n <h2 className=\"text-2xl font-semibold\">Audit trail</h2>\n <p className=\"text-muted-foreground text-sm\">\n Every decrypt operation logs who requested it, what integration was\n involved, and the purpose (sync, deploy, manual action).\n </p>\n <p className=\"text-muted-foreground text-sm\">\n You can stream audit logs to your SIEM via webhooks or export CSVs for\n compliance reviews.\n </p>\n </section>\n </main>\n );\n}\n"],"mappings":";;;AAMA,MAAM,QAAQ;CACZ;EACE,OAAO;EACP,MAAM;EACP;CACD;EACE,OAAO;EACP,MAAM;EACP;CACD;EACE,OAAO;EACP,MAAM;EACP;CACD;EACE,OAAO;EACP,MAAM;EACP;CACF;AAED,SAAgB,iBAAiB;AAC/B,QACE,qBAAC;EAAK,WAAU;;GACd,qBAAC;IAAO,WAAU;;KAChB,oBAAC;MAAE,WAAU;gBAAmE;OAE5E;KACJ,oBAAC;MAAG,WAAU;gBAAqB;OAAiC;KACpE,oBAAC;MAAE,WAAU;gBAA0C;OAGnD;;KACG;GACT,oBAAC;IAAQ,WAAU;cAChB,MAAM,KAAK,SACV,qBAAC;KAAyB,WAAU;gBAClC,oBAAC;MAAG,WAAU;gBAAyB,KAAK;OAAW,EACvD,oBAAC;MAAE,WAAU;gBAAiC,KAAK;OAAS;OAFhD,KAAK,MAGT,CACV;KACM;GACV,qBAAC;IAAQ,WAAU;;KACjB,oBAAC;MAAG,WAAU;gBAAyB;OAAgB;KACvD,oBAAC;MAAE,WAAU;gBAAgC;OAGzC;KACJ,oBAAC;MAAE,WAAU;gBAAgC;OAGzC;;KACI;;GACL"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"StudioDeploymentsPage.js","names":[],"sources":["../../../../src/components/docs/studio/StudioDeploymentsPage.tsx"],"sourcesContent":["// export const metadata: Metadata = {\n// title: 'Studio – Deployment Guide',\n// description:\n// 'Learn how Studio provisions shared and dedicated environments, monitors health, and rolls back safely.',\n// };\n\nconst comparisons = [\n {\n label: 'Shared',\n points: [\n 'Ready in seconds',\n 'DEV + STAGE by default',\n 'Best for prototypes',\n 'Managed SSL',\n ],\n },\n {\n label: 'Dedicated',\n points: [\n 'Isolated clusters',\n 'Choose region + VPC',\n 'Rolling deploys',\n 'Custom observability sinks',\n ],\n },\n];\n\nconst checklist = [\n 'Validate specs before deploying (Studio does this automatically).',\n 'Tag deployments with a description so rituals have context.',\n 'Monitor status cards—failed deploys trigger alerts and auto rollback.',\n 'Use the CLI to export deployment manifests if you want infra-as-code.',\n];\n\nexport function StudioDeploymentsPage() {\n return (\n <main className=\"space-y-12 py-12\">\n <header className=\"space-y-3\">\n <p className=\"text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase\">\n Deployments\n </p>\n <h1 className=\"text-4xl font-bold\">Shared vs dedicated workflows</h1>\n <p className=\"text-muted-foreground max-w-3xl text-lg\">\n Studio abstracts infra, but you still stay in control. This guide\n explains how environments are provisioned, monitored, and rolled back.\n </p>\n </header>\n <section className=\"grid gap-4 md:grid-cols-2\">\n {comparisons.map((option) => (\n <article key={option.label} className=\"card-subtle space-y-2 p-6\">\n <h2 className=\"text-2xl font-semibold\">\n {option.label} deployments\n </h2>\n <ul className=\"space-y-1 text-sm\">\n {option.points.map((point) => (\n <li key={point}>• {point}</li>\n ))}\n </ul>\n </article>\n ))}\n </section>\n <section className=\"space-y-3\">\n <h2 className=\"text-2xl font-semibold\">Health & rollback</h2>\n <p className=\"text-muted-foreground text-sm\">\n Every deployment emits health events. If a check fails, Studio pauses\n traffic and offers rollback controls with diff context.\n </p>\n <ul className=\"space-y-2 text-sm\">\n {checklist.map((item) => (\n <li key={item}>• {item}</li>\n ))}\n </ul>\n </section>\n </main>\n );\n}\n"],"mappings":";;;AAMA,MAAM,cAAc,CAClB;CACE,OAAO;CACP,QAAQ;EACN;EACA;EACA;EACA;EACD;CACF,EACD;CACE,OAAO;CACP,QAAQ;EACN;EACA;EACA;EACA;EACD;CACF,CACF;AAED,MAAM,YAAY;CAChB;CACA;CACA;CACA;CACD;AAED,SAAgB,wBAAwB;AACtC,QACE,qBAAC;EAAK,WAAU;;GACd,qBAAC;IAAO,WAAU;;KAChB,oBAAC;MAAE,WAAU;gBAAmE;OAE5E;KACJ,oBAAC;MAAG,WAAU;gBAAqB;OAAkC;KACrE,oBAAC;MAAE,WAAU;gBAA0C;OAGnD;;KACG;GACT,oBAAC;IAAQ,WAAU;cAChB,YAAY,KAAK,WAChB,qBAAC;KAA2B,WAAU;gBACpC,qBAAC;MAAG,WAAU;iBACX,OAAO,OAAM;OACX,EACL,oBAAC;MAAG,WAAU;gBACX,OAAO,OAAO,KAAK,UAClB,qBAAC,mBAAe,MAAG,UAAV,MAAqB,CAC9B;OACC;OARO,OAAO,MASX,CACV;KACM;GACV,qBAAC;IAAQ,WAAU;;KACjB,oBAAC;MAAG,WAAU;gBAAyB;OAAsB;KAC7D,oBAAC;MAAE,WAAU;gBAAgC;OAGzC;KACJ,oBAAC;MAAG,WAAU;gBACX,UAAU,KAAK,SACd,qBAAC,mBAAc,MAAG,SAAT,KAAmB,CAC5B;OACC;;KACG;;GACL"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"StudioGettingStartedPage.js","names":[],"sources":["../../../../src/components/docs/studio/StudioGettingStartedPage.tsx"],"sourcesContent":["// export const metadata: Metadata = {\n// title: 'Studio – Getting Started',\n// description:\n// 'Create your first ContractSpec Studio project, add specs, and deploy to shared infrastructure.',\n// };\n\nconst steps = [\n {\n title: '1. Create a Studio workspace',\n body: 'Sign in, pick “Studio managed” as product, and invite teammates. We provision the workspace plus default shared environments.',\n },\n {\n title: '2. Add your first project',\n body: 'Click “New project”, choose Starter tier, and keep BYOK disabled for the trial. You can upgrade later.',\n },\n {\n title: '3. Author a spec',\n body: 'Use the Visual Builder or Spec Editor. Pick “Capability” as type and describe the operation (e.g., capture donation).',\n },\n {\n title: '4. Deploy to shared infra',\n body: 'Open the deployment panel, select Development, and hit Deploy. Studio provisions the runtime slice automatically.',\n },\n {\n title: '5. Wire integrations',\n body: 'From Integration Hub, connect one provider (e.g., PostHog). Starter plan supports two providers.',\n },\n];\n\nexport function StudioGettingStartedPage() {\n return (\n <main className=\"space-y-12 py-12\">\n <header className=\"space-y-3\">\n <p className=\"text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase\">\n Getting started\n </p>\n <h1 className=\"text-4xl font-bold\">Launch your first Studio project</h1>\n <p className=\"text-muted-foreground max-w-3xl text-lg\">\n This short guide takes you from workspace creation to the first\n deployment. Every step is mobile-friendly and safe to undo.\n </p>\n </header>\n <section className=\"grid gap-4\">\n {steps.map((step) => (\n <article key={step.title} className=\"card-subtle space-y-2 p-6\">\n <h2 className=\"text-xl font-semibold\">{step.title}</h2>\n <p className=\"text-muted-foreground text-sm\">{step.body}</p>\n </article>\n ))}\n </section>\n <section className=\"space-y-4\">\n <h2 className=\"text-2xl font-semibold\">CLI helper (optional)</h2>\n <p className=\"text-muted-foreground text-sm\">\n Prefer automation? Use the CLI to pull specs and push overlays.\n </p>\n <pre className=\"bg-muted/40 border-border overflow-auto rounded-xl border p-4 text-left font-mono text-sm\">\n {`# Authenticate\ncs login\n\n# List projects\ncs studio projects list\n\n# Pull specs locally\ncs studio specs pull <project-id>\n\n# Push after editing\ncs studio specs push <project-id>`}\n </pre>\n </section>\n </main>\n );\n}\n"],"mappings":";;;AAMA,MAAM,QAAQ;CACZ;EACE,OAAO;EACP,MAAM;EACP;CACD;EACE,OAAO;EACP,MAAM;EACP;CACD;EACE,OAAO;EACP,MAAM;EACP;CACD;EACE,OAAO;EACP,MAAM;EACP;CACD;EACE,OAAO;EACP,MAAM;EACP;CACF;AAED,SAAgB,2BAA2B;AACzC,QACE,qBAAC;EAAK,WAAU;;GACd,qBAAC;IAAO,WAAU;;KAChB,oBAAC;MAAE,WAAU;gBAAmE;OAE5E;KACJ,oBAAC;MAAG,WAAU;gBAAqB;OAAqC;KACxE,oBAAC;MAAE,WAAU;gBAA0C;OAGnD;;KACG;GACT,oBAAC;IAAQ,WAAU;cAChB,MAAM,KAAK,SACV,qBAAC;KAAyB,WAAU;gBAClC,oBAAC;MAAG,WAAU;gBAAyB,KAAK;OAAW,EACvD,oBAAC;MAAE,WAAU;gBAAiC,KAAK;OAAS;OAFhD,KAAK,MAGT,CACV;KACM;GACV,qBAAC;IAAQ,WAAU;;KACjB,oBAAC;MAAG,WAAU;gBAAyB;OAA0B;KACjE,oBAAC;MAAE,WAAU;gBAAgC;OAEzC;KACJ,oBAAC;MAAI,WAAU;gBACZ;;;;;;;;;;;OAWG;;KACE;;GACL"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"StudioIntegrationsPage.js","names":[],"sources":["../../../../src/components/docs/studio/StudioIntegrationsPage.tsx"],"sourcesContent":["// export const metadata: Metadata = {\n// title: 'Studio – Integration Hub Guide',\n// description:\n// 'Connect providers, manage BYOK credentials, and sync data in the Studio Integration Hub.',\n// };\n\nconst flow = [\n {\n title: 'Connect a provider',\n body: 'Choose a provider from the marketplace, enter credentials, and run the test connection. Studio encrypts secrets immediately.',\n },\n {\n title: 'Schedule syncs',\n body: 'Define sync cadence (manual, hourly, daily). Studio tracks usage count and last sync timestamp.',\n },\n {\n title: 'Index knowledge',\n body: 'Add documentation or API specs as knowledge sources. Reindex whenever files change.',\n },\n];\n\nexport function StudioIntegrationsPage() {\n return (\n <main className=\"space-y-12 py-12\">\n <header className=\"space-y-3\">\n <p className=\"text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase\">\n Integration hub\n </p>\n <h1 className=\"text-4xl font-bold\">Unified connections with BYOK</h1>\n <p className=\"text-muted-foreground max-w-3xl text-lg\">\n Manage SaaS providers and knowledge sources without scattering secrets\n across tools. Studio gives you a simple card layout plus CLI\n automation.\n </p>\n </header>\n <section className=\"grid gap-4 md:grid-cols-3\">\n {flow.map((step) => (\n <article key={step.title} className=\"card-subtle space-y-2 p-6\">\n <h2 className=\"text-xl font-semibold\">{step.title}</h2>\n <p className=\"text-muted-foreground text-sm\">{step.body}</p>\n </article>\n ))}\n </section>\n <section className=\"space-y-2\">\n <h2 className=\"text-2xl font-semibold\">Monitoring</h2>\n <p className=\"text-muted-foreground text-sm\">\n Every integration exposes sync logs and failure alerts. Use the\n webhook to forward sync events to Slack or PagerDuty.\n </p>\n </section>\n </main>\n );\n}\n"],"mappings":";;;AAMA,MAAM,OAAO;CACX;EACE,OAAO;EACP,MAAM;EACP;CACD;EACE,OAAO;EACP,MAAM;EACP;CACD;EACE,OAAO;EACP,MAAM;EACP;CACF;AAED,SAAgB,yBAAyB;AACvC,QACE,qBAAC;EAAK,WAAU;;GACd,qBAAC;IAAO,WAAU;;KAChB,oBAAC;MAAE,WAAU;gBAAmE;OAE5E;KACJ,oBAAC;MAAG,WAAU;gBAAqB;OAAkC;KACrE,oBAAC;MAAE,WAAU;gBAA0C;OAInD;;KACG;GACT,oBAAC;IAAQ,WAAU;cAChB,KAAK,KAAK,SACT,qBAAC;KAAyB,WAAU;gBAClC,oBAAC;MAAG,WAAU;gBAAyB,KAAK;OAAW,EACvD,oBAAC;MAAE,WAAU;gBAAiC,KAAK;OAAS;OAFhD,KAAK,MAGT,CACV;KACM;GACV,qBAAC;IAAQ,WAAU;eACjB,oBAAC;KAAG,WAAU;eAAyB;MAAe,EACtD,oBAAC;KAAE,WAAU;eAAgC;MAGzC;KACI;;GACL"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"StudioOverviewPage.js","names":[],"sources":["../../../../src/components/docs/studio/StudioOverviewPage.tsx"],"sourcesContent":["import Link from '@contractspec/lib.ui-link';\n\n// export const metadata: Metadata = {\n// title: 'Studio Documentation – ContractSpec',\n// description:\n// 'Official ContractSpec Studio documentation. Jump into getting started, visual builder, deployments, BYOK, and integration guides.',\n// };\n\nconst sections = [\n {\n title: '1. Getting started',\n body: 'Provision your Studio workspace, create a project, and run the first deployment.',\n href: '/docs/studio/getting-started',\n },\n {\n title: '2. Visual builder',\n body: 'Learn the canvas controls, component palette, and spec validation workflow.',\n href: '/docs/studio/visual-builder',\n },\n {\n title: '3. Deployments',\n body: 'Switch between shared and dedicated environments, monitor health, and roll back safely.',\n href: '/docs/studio/deployments',\n },\n {\n title: '4. BYOK security',\n body: 'Configure your vault, rotate keys, and audit credential access.',\n href: '/docs/studio/byok',\n },\n {\n title: '5. Integration hub',\n body: 'Connect third-party providers, sync data, and index knowledge sources.',\n href: '/docs/studio/integrations',\n },\n];\n\nexport function StudioOverviewPage() {\n return (\n <main className=\"space-y-16 py-16\">\n <section className=\"section-padding\">\n <p className=\"text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase\">\n Studio docs\n </p>\n <h1 className=\"mt-4 text-4xl font-bold\">\n Everything you need to run Studio.\n </h1>\n <p className=\"text-muted-foreground mt-4 max-w-3xl text-lg\">\n ContractSpec Studio pairs a visual builder with managed\n infrastructure. These guides keep teams aligned—especially when\n engineers and operators share the same console.\n </p>\n </section>\n <section className=\"section-padding grid gap-4\">\n {sections.map((section) => (\n <Link\n key={section.href}\n href={section.href}\n className=\"card-subtle group space-y-2 p-6 transition hover:border-violet-500/40\"\n >\n <h2 className=\"text-xl font-semibold group-hover:text-violet-400\">\n {section.title}\n </h2>\n <p className=\"text-muted-foreground text-sm\">{section.body}</p>\n </Link>\n ))}\n </section>\n </main>\n );\n}\n"],"mappings":";;;;AAQA,MAAM,WAAW;CACf;EACE,OAAO;EACP,MAAM;EACN,MAAM;EACP;CACD;EACE,OAAO;EACP,MAAM;EACN,MAAM;EACP;CACD;EACE,OAAO;EACP,MAAM;EACN,MAAM;EACP;CACD;EACE,OAAO;EACP,MAAM;EACN,MAAM;EACP;CACD;EACE,OAAO;EACP,MAAM;EACN,MAAM;EACP;CACF;AAED,SAAgB,qBAAqB;AACnC,QACE,qBAAC;EAAK,WAAU;aACd,qBAAC;GAAQ,WAAU;;IACjB,oBAAC;KAAE,WAAU;eAAmE;MAE5E;IACJ,oBAAC;KAAG,WAAU;eAA0B;MAEnC;IACL,oBAAC;KAAE,WAAU;eAA+C;MAIxD;;IACI,EACV,oBAAC;GAAQ,WAAU;aAChB,SAAS,KAAK,YACb,qBAAC;IAEC,MAAM,QAAQ;IACd,WAAU;eAEV,oBAAC;KAAG,WAAU;eACX,QAAQ;MACN,EACL,oBAAC;KAAE,WAAU;eAAiC,QAAQ;MAAS;MAP1D,QAAQ,KAQR,CACP;IACM;GACL"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"StudioVisualBuilderPage.js","names":[],"sources":["../../../../src/components/docs/studio/StudioVisualBuilderPage.tsx"],"sourcesContent":["import Image from 'next/image';\n\n// export const metadata: Metadata = {\n// title: 'Studio – Visual Builder Guide',\n// description:\n// 'Understand the Studio visual builder: canvas controls, component palette, bindings, and validation.',\n// };\n\nconst tips = [\n 'Use two-finger drag on touch devices to pan the canvas.',\n 'Tap a component to open the spec sidebar and edit props.',\n 'The timeline records every change; tap a dot to roll back.',\n 'Validation runs automatically before deploy. Errors show inline.',\n];\n\nexport function StudioVisualBuilderPage() {\n return (\n <main className=\"space-y-12 py-12\">\n <header className=\"space-y-3\">\n <p className=\"text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase\">\n Visual builder\n </p>\n <h1 className=\"text-4xl font-bold\">Canvas, palette, and spec editor</h1>\n <p className=\"text-muted-foreground max-w-3xl text-lg\">\n Studio’s builder keeps designers, operators, and engineers in sync.\n Every action updates the underlying spec and can be undone.\n </p>\n </header>\n <section className=\"border-border bg-card rounded-2xl border p-6\">\n <Image\n src=\"/assets/images/studio/visual-builder.png\"\n alt=\"Studio visual builder overview\"\n width={1024}\n height={576}\n className=\"border-border rounded-xl border\"\n />\n </section>\n <section className=\"grid gap-4 md:grid-cols-2\">\n <article className=\"card-subtle space-y-2 p-6\">\n <h2 className=\"text-2xl font-semibold\">Canvas controls</h2>\n <p className=\"text-muted-foreground text-sm\">\n Drag to pan, scroll/ pinch to zoom. The right panel shows a tree\n view.\n </p>\n </article>\n <article className=\"card-subtle space-y-2 p-6\">\n <h2 className=\"text-2xl font-semibold\">Component palette</h2>\n <p className=\"text-muted-foreground text-sm\">\n Search by intent (“capture payment”) or category. Drag components or\n tap to add.\n </p>\n </article>\n <article className=\"card-subtle space-y-2 p-6\">\n <h2 className=\"text-2xl font-semibold\">Spec editor</h2>\n <p className=\"text-muted-foreground text-sm\">\n Toggle between visual and code views. Changes stay in sync and\n include diff previews.\n </p>\n </article>\n <article className=\"card-subtle space-y-2 p-6\">\n <h2 className=\"text-2xl font-semibold\">Deploy panel</h2>\n <p className=\"text-muted-foreground text-sm\">\n Choose environment, review validations, and deploy with one button.\n Rollback is one tap away.\n </p>\n </article>\n </section>\n <section className=\"space-y-3\">\n <h2 className=\"text-2xl font-semibold\">Tips</h2>\n <ul className=\"space-y-2 text-sm\">\n {tips.map((tip) => (\n <li key={tip}>• {tip}</li>\n ))}\n </ul>\n </section>\n </main>\n );\n}\n"],"mappings":";;;;AAQA,MAAM,OAAO;CACX;CACA;CACA;CACA;CACD;AAED,SAAgB,0BAA0B;AACxC,QACE,qBAAC;EAAK,WAAU;;GACd,qBAAC;IAAO,WAAU;;KAChB,oBAAC;MAAE,WAAU;gBAAmE;OAE5E;KACJ,oBAAC;MAAG,WAAU;gBAAqB;OAAqC;KACxE,oBAAC;MAAE,WAAU;gBAA0C;OAGnD;;KACG;GACT,oBAAC;IAAQ,WAAU;cACjB,oBAAC;KACC,KAAI;KACJ,KAAI;KACJ,OAAO;KACP,QAAQ;KACR,WAAU;MACV;KACM;GACV,qBAAC;IAAQ,WAAU;;KACjB,qBAAC;MAAQ,WAAU;iBACjB,oBAAC;OAAG,WAAU;iBAAyB;QAAoB,EAC3D,oBAAC;OAAE,WAAU;iBAAgC;QAGzC;OACI;KACV,qBAAC;MAAQ,WAAU;iBACjB,oBAAC;OAAG,WAAU;iBAAyB;QAAsB,EAC7D,oBAAC;OAAE,WAAU;iBAAgC;QAGzC;OACI;KACV,qBAAC;MAAQ,WAAU;iBACjB,oBAAC;OAAG,WAAU;iBAAyB;QAAgB,EACvD,oBAAC;OAAE,WAAU;iBAAgC;QAGzC;OACI;KACV,qBAAC;MAAQ,WAAU;iBACjB,oBAAC;OAAG,WAAU;iBAAyB;QAAiB,EACxD,oBAAC;OAAE,WAAU;iBAAgC;QAGzC;OACI;;KACF;GACV,qBAAC;IAAQ,WAAU;eACjB,oBAAC;KAAG,WAAU;eAAyB;MAAS,EAChD,oBAAC;KAAG,WAAU;eACX,KAAK,KAAK,QACT,qBAAC,mBAAa,MAAG,QAAR,IAAiB,CAC1B;MACC;KACG;;GACL"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tech-docs.docblocks.js","names":[],"sources":["../../../../../src/components/docs/tech/contracts/tech-docs.docblocks.ts"],"sourcesContent":["import type { DocBlock } from '@contractspec/lib.contracts/docs';\nimport { registerDocBlocks } from '@contractspec/lib.contracts/docs';\n\nexport const techContractsDocBlocks: DocBlock[] = [\n {\n id: 'docs.tech.contracts.index',\n title: 'Contracts tech docs',\n summary: 'Entry for ContractSpec contracts technical documentation.',\n kind: 'goal',\n visibility: 'public',\n route: '/docs/tech/contracts',\n tags: ['tech', 'contracts'],\n body: `# Contracts Tech Docs\n\nReference docs for ContractSpec contracts: app-config, capabilities, data-views, integrations, policy, presentations, overlays, and more.`,\n },\n];\nregisterDocBlocks(techContractsDocBlocks);\n"],"mappings":";;;AAGA,MAAa,yBAAqC,CAChD;CACE,IAAI;CACJ,OAAO;CACP,SAAS;CACT,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM,CAAC,QAAQ,YAAY;CAC3B,MAAM;;;CAGP,CACF;AACD,kBAAkB,uBAAuB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IntegrationCard.js","names":[],"sources":["../../../../src/components/integrations/molecules/IntegrationCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport { PlugZap, ToggleRight } from 'lucide-react';\nimport { Button } from '@contractspec/lib.design-system';\n\nexport interface IntegrationCardProps {\n id: string;\n provider: string;\n name: string;\n category?: string;\n enabled?: boolean;\n lastSyncAt?: string | null;\n status?: 'connected' | 'disconnected' | 'error';\n onToggle?: (id: string, enabled: boolean) => void;\n onConfigure?: (id: string) => void;\n}\n\nexport function IntegrationCard({\n id,\n provider,\n name,\n category,\n enabled = true,\n lastSyncAt,\n status = 'connected',\n onToggle,\n onConfigure,\n}: IntegrationCardProps) {\n const tone =\n status === 'connected'\n ? 'text-emerald-500 bg-emerald-500/10 border-emerald-500/30'\n : status === 'error'\n ? 'text-red-500 bg-red-500/10 border-red-500/30'\n : 'text-gray-500 bg-gray-500/10 border-gray-500/30';\n\n return (\n <div className=\"border-border bg-card flex flex-col gap-4 rounded-2xl border p-4 shadow-sm\">\n <header className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-xl font-semibold\">{name}</p>\n <p className=\"text-muted-foreground text-sm\">{provider}</p>\n </div>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className={`inline-flex items-center gap-2 rounded-full border px-3 py-1 text-xs font-semibold tracking-wide uppercase ${tone}`}\n onPress={() => onToggle?.(id, !enabled)}\n >\n <ToggleRight className=\"h-3.5 w-3.5\" />\n {enabled ? 'Enabled' : 'Disabled'}\n </Button>\n </header>\n <div className=\"text-muted-foreground text-sm\">\n {category && <span className=\"font-medium\">{category}</span>}\n <div className=\"mt-2 flex flex-wrap items-center gap-3 text-xs tracking-wide uppercase\">\n <span className=\"inline-flex items-center gap-1\">\n <PlugZap className=\"h-3 w-3\" />\n {status}\n </span>\n <span>\n Last sync:{' '}\n {lastSyncAt\n ? new Date(lastSyncAt).toLocaleString()\n : 'Not synced yet'}\n </span>\n </div>\n </div>\n <footer className=\"flex items-center gap-2\">\n <Button className=\"flex-1\" onPress={() => onConfigure?.(id)}>\n Configure\n </Button>\n <Button\n variant=\"ghost\"\n className=\"flex-1\"\n onPress={() => onToggle?.(id, !enabled)}\n >\n {enabled ? 'Disconnect' : 'Connect'}\n </Button>\n </footer>\n </div>\n );\n}\n"],"mappings":";;;;;;AAgBA,SAAgB,gBAAgB,EAC9B,IACA,UACA,MACA,UACA,UAAU,MACV,YACA,SAAS,aACT,UACA,eACuB;AAQvB,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAO,WAAU;eAChB,qBAAC,oBACC,oBAAC;KAAE,WAAU;eAAyB;MAAS,EAC/C,oBAAC;KAAE,WAAU;eAAiC;MAAa,IACvD,EACN,qBAAC;KACC,SAAQ;KACR,MAAK;KACL,WAAW,8GAhBjB,WAAW,cACP,6DACA,WAAW,UACT,iDACA;KAaA,eAAe,WAAW,IAAI,CAAC,QAAQ;gBAEvC,oBAAC,eAAY,WAAU,gBAAgB,EACtC,UAAU,YAAY;MAChB;KACF;GACT,qBAAC;IAAI,WAAU;eACZ,YAAY,oBAAC;KAAK,WAAU;eAAe;MAAgB,EAC5D,qBAAC;KAAI,WAAU;gBACb,qBAAC;MAAK,WAAU;iBACd,oBAAC,WAAQ,WAAU,YAAY,EAC9B;OACI,EACP,qBAAC;MAAK;MACO;MACV,aACG,IAAI,KAAK,WAAW,CAAC,gBAAgB,GACrC;SACC;MACH;KACF;GACN,qBAAC;IAAO,WAAU;eAChB,oBAAC;KAAO,WAAU;KAAS,eAAe,cAAc,GAAG;eAAE;MAEpD,EACT,oBAAC;KACC,SAAQ;KACR,WAAU;KACV,eAAe,WAAW,IAAI,CAAC,QAAQ;eAEtC,UAAU,eAAe;MACnB;KACF;;GACL"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IntegrationMarketplace.js","names":[],"sources":["../../../../src/components/integrations/organisms/IntegrationMarketplace.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Boxes, Search } from 'lucide-react';\nimport { IntegrationCard } from '../molecules/IntegrationCard';\nimport { Input } from '@contractspec/lib.design-system';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@contractspec/lib.ui-kit-web/ui/select';\n\nexport interface MarketplaceIntegration {\n id: string;\n provider: string;\n name: string;\n category: string;\n enabled?: boolean;\n status?: 'connected' | 'disconnected' | 'error';\n lastSyncAt?: string | null;\n}\n\nexport interface IntegrationMarketplaceProps {\n integrations: MarketplaceIntegration[];\n onToggle?: (id: string, enabled: boolean) => void;\n onConfigure?: (id: string) => void;\n}\n\nexport function IntegrationMarketplace({\n integrations,\n onToggle,\n onConfigure,\n}: IntegrationMarketplaceProps) {\n const [search, setSearch] = React.useState('');\n const [category, setCategory] = React.useState('all');\n // const integrationHubEnabled = Math.random() < 10 || useStudioFeatureFlag(\n // ContractSpecFeatureFlags.STUDIO_INTEGRATION_HUB\n // );\n\n const categories = React.useMemo(\n () =>\n Array.from(\n new Set(integrations.map((integration) => integration.category))\n ),\n [integrations]\n );\n\n const filtered = integrations.filter((integration) => {\n const matchesSearch =\n integration.name.toLowerCase().includes(search.toLowerCase()) ||\n integration.provider.toLowerCase().includes(search.toLowerCase());\n const matchesCategory =\n category === 'all' ? true : integration.category === category;\n return matchesSearch && matchesCategory;\n });\n\n // if (!integrationHubEnabled) {\n // return (\n // <div className=\"border-border bg-card/40 rounded-2xl border border-dashed p-8 text-center\">\n // <FeatureGateNotice\n // title=\"Integration hub is still locked\"\n // description=\"Enable STUDIO_INTEGRATION_HUB to connect third-party providers and route credentials via BYOK.\"\n // actionLabel=\"Talk to sales\"\n // />\n // </div>\n // );\n // }\n\n return (\n <div className=\"border-border bg-card space-y-4 rounded-2xl border p-4\">\n <header className=\"flex flex-wrap items-center justify-between gap-3\">\n <div>\n <p className=\"text-sm font-semibold tracking-wide uppercase\">\n Integration marketplace\n </p>\n <p className=\"text-muted-foreground text-sm\">\n Connect AI providers, payments, analytics, and internal tools with\n BYOK controls.\n </p>\n </div>\n <Boxes className=\"text-muted-foreground h-5 w-5\" />\n </header>\n <div className=\"flex flex-wrap gap-3\">\n <div className=\"relative min-w-[200px] flex-1\">\n <Search className=\"text-muted-foreground pointer-events-none absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2\" />\n <Input\n type=\"search\"\n aria-label=\"Search providers\"\n className=\"w-full py-2 pr-3 pl-9 text-sm\"\n value={search}\n onChange={(event) => setSearch(event.target.value)}\n placeholder=\"Search providers\"\n />\n </div>\n <Select value={category} onValueChange={setCategory}>\n <SelectTrigger className=\"w-[200px]\">\n <SelectValue placeholder=\"All categories\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">All categories</SelectItem>\n {categories.map((item) => (\n <SelectItem key={item} value={item}>\n {item}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"grid gap-4 md:grid-cols-2\">\n {filtered.length ? (\n filtered.map((integration) => (\n <IntegrationCard\n key={integration.id}\n id={integration.id}\n provider={integration.provider}\n name={integration.name}\n category={integration.category}\n enabled={integration.enabled}\n status={integration.status}\n lastSyncAt={integration.lastSyncAt}\n onToggle={onToggle}\n onConfigure={onConfigure}\n />\n ))\n ) : (\n <div className=\"text-muted-foreground border-border rounded-xl border border-dashed p-6 text-center text-sm md:col-span-2\">\n No integrations match your filters.\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;AA4BA,SAAgB,uBAAuB,EACrC,cACA,UACA,eAC8B;CAC9B,MAAM,CAAC,QAAQ,aAAa,MAAM,SAAS,GAAG;CAC9C,MAAM,CAAC,UAAU,eAAe,MAAM,SAAS,MAAM;CAKrD,MAAM,aAAa,MAAM,cAErB,MAAM,KACJ,IAAI,IAAI,aAAa,KAAK,gBAAgB,YAAY,SAAS,CAAC,CACjE,EACH,CAAC,aAAa,CACf;CAED,MAAM,WAAW,aAAa,QAAQ,gBAAgB;EACpD,MAAM,gBACJ,YAAY,KAAK,aAAa,CAAC,SAAS,OAAO,aAAa,CAAC,IAC7D,YAAY,SAAS,aAAa,CAAC,SAAS,OAAO,aAAa,CAAC;EACnE,MAAM,kBACJ,aAAa,QAAQ,OAAO,YAAY,aAAa;AACvD,SAAO,iBAAiB;GACxB;AAcF,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAO,WAAU;eAChB,qBAAC,oBACC,oBAAC;KAAE,WAAU;eAAgD;MAEzD,EACJ,oBAAC;KAAE,WAAU;eAAgC;MAGzC,IACA,EACN,oBAAC,SAAM,WAAU,kCAAkC;KAC5C;GACT,qBAAC;IAAI,WAAU;eACb,qBAAC;KAAI,WAAU;gBACb,oBAAC,UAAO,WAAU,+FAA+F,EACjH,oBAAC;MACC,MAAK;MACL,cAAW;MACX,WAAU;MACV,OAAO;MACP,WAAW,UAAU,UAAU,MAAM,OAAO,MAAM;MAClD,aAAY;OACZ;MACE,EACN,qBAAC;KAAO,OAAO;KAAU,eAAe;gBACtC,oBAAC;MAAc,WAAU;gBACvB,oBAAC,eAAY,aAAY,mBAAmB;OAC9B,EAChB,qBAAC,4BACC,oBAAC;MAAW,OAAM;gBAAM;OAA2B,EAClD,WAAW,KAAK,SACf,oBAAC;MAAsB,OAAO;gBAC3B;QADc,KAEJ,CACb,IACY;MACT;KACL;GACN,oBAAC;IAAI,WAAU;cACZ,SAAS,SACR,SAAS,KAAK,gBACZ,oBAAC;KAEC,IAAI,YAAY;KAChB,UAAU,YAAY;KACtB,MAAM,YAAY;KAClB,UAAU,YAAY;KACtB,SAAS,YAAY;KACrB,QAAQ,YAAY;KACpB,YAAY,YAAY;KACd;KACG;OATR,YAAY,GAUjB,CACF,GAEF,oBAAC;KAAI,WAAU;eAA4G;MAErH;KAEJ;;GACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IntegrationSettings.js","names":[],"sources":["../../../../src/components/integrations/organisms/IntegrationSettings.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ShieldCheck, Key, TestTube2 } from 'lucide-react';\nimport { Button, Input, Textarea } from '@contractspec/lib.design-system';\nimport { Checkbox } from '@contractspec/lib.ui-kit-web/ui/checkbox';\nimport { Label } from '@contractspec/lib.ui-kit-web/ui/label';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@contractspec/lib.ui-kit-web/ui/select';\n\nexport interface IntegrationSettingsForm {\n apiKey: string;\n secret?: string;\n ownershipMode?: 'managed' | 'byok';\n secretProvider?: 'env' | 'gcp';\n secretRef?: string;\n config?: string;\n}\n\nexport interface IntegrationSettingsProps {\n provider: string;\n initialValues?: IntegrationSettingsForm;\n onTestConnection?: (values: IntegrationSettingsForm) => Promise<void> | void;\n onSave?: (values: IntegrationSettingsForm) => Promise<void> | void;\n isSaving?: boolean;\n isTesting?: boolean;\n}\n\nexport function IntegrationSettings({\n provider,\n initialValues,\n onTestConnection,\n onSave,\n isSaving,\n isTesting,\n}: IntegrationSettingsProps) {\n const [values, setValues] = React.useState<IntegrationSettingsForm>({\n apiKey: initialValues?.apiKey ?? '',\n secret: initialValues?.secret ?? '',\n ownershipMode: initialValues?.ownershipMode ?? 'managed',\n secretProvider: initialValues?.secretProvider ?? 'env',\n secretRef: initialValues?.secretRef ?? '',\n config: initialValues?.config ?? '{\\n \"region\": \"eu-west-1\"\\n}',\n });\n\n const handleChange = (\n event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>\n ) => {\n const target = event.target;\n const { name, value } = target;\n setValues((prev) => ({\n ...prev,\n [name]: value,\n }));\n };\n\n return (\n <div className=\"border-border bg-card space-y-4 rounded-2xl border p-4\">\n <header className=\"flex flex-wrap items-center justify-between gap-3\">\n <div>\n <p className=\"text-sm font-semibold tracking-wide uppercase\">\n {provider} credentials\n </p>\n <p className=\"text-muted-foreground text-sm\">\n Store encrypted keys with BYOK and run safe connection tests.\n </p>\n </div>\n <ShieldCheck className=\"text-muted-foreground h-5 w-5\" />\n </header>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"ownershipMode\">Ownership</Label>\n <Select\n value={values.ownershipMode ?? 'managed'}\n onValueChange={(next) =>\n setValues((prev) => ({\n ...prev,\n ownershipMode: next as IntegrationSettingsForm['ownershipMode'],\n }))\n }\n >\n <SelectTrigger id=\"ownershipMode\" className=\"w-full\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"managed\">Managed (store encrypted)</SelectItem>\n <SelectItem value=\"byok\">\n BYOK (store secret reference)\n </SelectItem>\n </SelectContent>\n </Select>\n </div>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n <div className=\"space-y-1 text-sm\">\n <Label htmlFor=\"apiKey\" className=\"font-semibold\">\n API key\n </Label>\n <div className=\"relative\">\n <Key className=\"text-muted-foreground pointer-events-none absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2\" />\n <Input\n type=\"text\"\n name=\"apiKey\"\n id=\"apiKey\"\n className=\"w-full py-2 pr-3 pl-9\"\n value={values.apiKey}\n onChange={handleChange}\n required\n />\n </div>\n </div>\n <div className=\"space-y-1 text-sm\">\n <Label htmlFor=\"secret\" className=\"font-semibold\">\n Secret\n </Label>\n <Input\n type=\"password\"\n id=\"secret\"\n name=\"secret\"\n className=\"w-full px-3 py-2\"\n value={values.secret}\n onChange={handleChange}\n />\n </div>\n </div>\n\n {values.ownershipMode === 'byok' ? (\n <div className=\"space-y-4 rounded-xl border border-blue-500/20 bg-blue-500/5 p-4\">\n <p className=\"text-sm font-semibold\">BYOK secret reference</p>\n <div className=\"grid gap-4 md:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"secretProvider\">Secret provider</Label>\n <Select\n value={values.secretProvider ?? 'env'}\n onValueChange={(next) =>\n setValues((prev) => ({\n ...prev,\n secretProvider:\n next as IntegrationSettingsForm['secretProvider'],\n }))\n }\n >\n <SelectTrigger id=\"secretProvider\" className=\"w-full\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"env\">Environment</SelectItem>\n <SelectItem value=\"gcp\">GCP Secret Manager</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"secretRef\">Secret reference</Label>\n <Input\n id=\"secretRef\"\n name=\"secretRef\"\n placeholder={\n values.secretProvider === 'gcp'\n ? 'gcp://projects/.../secrets/...'\n : 'env://MY_TOKEN_ENV_VAR'\n }\n value={values.secretRef ?? ''}\n onChange={handleChange}\n />\n </div>\n </div>\n </div>\n ) : (\n <div className=\"flex items-center gap-3 rounded-xl border border-emerald-500/20 bg-emerald-500/5 p-4 text-sm\">\n <Checkbox\n checked\n onCheckedChange={() => {\n /* no-op */\n }}\n aria-label=\"Managed\"\n />\n <div>\n <p className=\"font-semibold\">Managed encryption enabled</p>\n <p className=\"text-muted-foreground\">\n Secrets are encrypted server-side for this tenant.\n </p>\n </div>\n </div>\n )}\n\n <div className=\"space-y-1 text-sm\">\n <Label htmlFor=\"config\" className=\"font-semibold\">\n Configuration (JSON)\n </Label>\n <Textarea\n id=\"config\"\n name=\"config\"\n className=\"min-h-[140px] w-full font-mono text-sm\"\n value={values.config}\n onChange={handleChange}\n />\n </div>\n\n <div className=\"flex flex-wrap items-center gap-3\">\n <Button\n variant=\"ghost\"\n onPress={() => onTestConnection?.(values)}\n disabled={isTesting}\n >\n <TestTube2 className=\"h-4 w-4\" />\n Test connection\n </Button>\n <Button\n variant=\"default\"\n onPress={() => onSave?.(values)}\n disabled={isSaving}\n >\n Save settings\n </Button>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"KnowledgeSourceList.js","names":[],"sources":["../../../../src/components/integrations/organisms/KnowledgeSourceList.tsx"],"sourcesContent":["import * as React from 'react';\nimport { BookCopy, Plus, RefreshCcw } from 'lucide-react';\n\nexport interface KnowledgeSourceItem {\n id: string;\n name: string;\n type: string;\n indexed: boolean;\n lastIndexed?: string | null;\n}\n\nexport interface KnowledgeSourceListProps {\n sources: KnowledgeSourceItem[];\n onRefresh?: (id: string) => void;\n onDelete?: (id: string) => void;\n onAdd?: () => void;\n}\n\nexport function KnowledgeSourceList({\n sources,\n onRefresh,\n onDelete,\n onAdd,\n}: KnowledgeSourceListProps) {\n // const knowledgeHubEnabled = useStudioFeatureFlag(\n // ContractSpecFeatureFlags.STUDIO_KNOWLEDGE_HUB\n // );\n //\n // if (!knowledgeHubEnabled) {\n // return (\n // <div className=\"border-border bg-card/40 rounded-2xl border border-dashed p-8 text-center\">\n // <FeatureGateNotice\n // title=\"Knowledge hub is paused\"\n // description=\"Turn on STUDIO_KNOWLEDGE_HUB to index docs and feed answers into the Studio canvas.\"\n // />\n // </div>\n // );\n // }\n\n return (\n <div className=\"border-border bg-card space-y-4 rounded-2xl border p-4\">\n <header className=\"flex flex-wrap items-center justify-between gap-3\">\n <div>\n <p className=\"text-sm font-semibold tracking-wide uppercase\">\n Knowledge sources\n </p>\n <p className=\"text-muted-foreground text-sm\">\n Manage documentation, specs, and repos powering Studio RAG flows.\n </p>\n </div>\n <button\n type=\"button\"\n className=\"btn-primary inline-flex items-center gap-2\"\n onClick={onAdd}\n >\n <Plus className=\"h-4 w-4\" />\n Add source\n </button>\n </header>\n <div className=\"space-y-3\">\n {sources.length ? (\n sources.map((source) => (\n <div\n key={source.id}\n className=\"border-border bg-background flex flex-wrap items-center justify-between gap-3 rounded-xl border p-4\"\n >\n <div className=\"flex items-center gap-3\">\n <BookCopy className=\"text-muted-foreground h-8 w-8\" />\n <div>\n <p className=\"text-base font-semibold\">{source.name}</p>\n <p className=\"text-muted-foreground text-sm\">{source.type}</p>\n <p className=\"text-muted-foreground text-xs\">\n {source.indexed\n ? `Indexed ${source.lastIndexed ? new Date(source.lastIndexed).toLocaleString() : ''}`\n : 'Pending indexing'}\n </p>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n className=\"btn-ghost inline-flex items-center gap-1 text-sm\"\n onClick={() => onRefresh?.(source.id)}\n >\n <RefreshCcw className=\"h-3.5 w-3.5\" />\n Reindex\n </button>\n <button\n type=\"button\"\n className=\"btn-ghost text-destructive text-sm\"\n onClick={() => onDelete?.(source.id)}\n >\n Remove\n </button>\n </div>\n </div>\n ))\n ) : (\n <div className=\"text-muted-foreground border-border rounded-xl border border-dashed p-6 text-center text-sm\">\n No knowledge sources added yet.\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;AAkBA,SAAgB,oBAAoB,EAClC,SACA,WACA,UACA,SAC2B;AAgB3B,QACE,qBAAC;EAAI,WAAU;aACb,qBAAC;GAAO,WAAU;cAChB,qBAAC,oBACC,oBAAC;IAAE,WAAU;cAAgD;KAEzD,EACJ,oBAAC;IAAE,WAAU;cAAgC;KAEzC,IACA,EACN,qBAAC;IACC,MAAK;IACL,WAAU;IACV,SAAS;eAET,oBAAC,QAAK,WAAU,YAAY;KAErB;IACF,EACT,oBAAC;GAAI,WAAU;aACZ,QAAQ,SACP,QAAQ,KAAK,WACX,qBAAC;IAEC,WAAU;eAEV,qBAAC;KAAI,WAAU;gBACb,oBAAC,YAAS,WAAU,kCAAkC,EACtD,qBAAC;MACC,oBAAC;OAAE,WAAU;iBAA2B,OAAO;QAAS;MACxD,oBAAC;OAAE,WAAU;iBAAiC,OAAO;QAAS;MAC9D,oBAAC;OAAE,WAAU;iBACV,OAAO,UACJ,WAAW,OAAO,cAAc,IAAI,KAAK,OAAO,YAAY,CAAC,gBAAgB,GAAG,OAChF;QACF;SACA;MACF,EACN,qBAAC;KAAI,WAAU;gBACb,qBAAC;MACC,MAAK;MACL,WAAU;MACV,eAAe,YAAY,OAAO,GAAG;iBAErC,oBAAC,cAAW,WAAU,gBAAgB;OAE/B,EACT,oBAAC;MACC,MAAK;MACL,WAAU;MACV,eAAe,WAAW,OAAO,GAAG;gBACrC;OAEQ;MACL;MA/BD,OAAO,GAgCR,CACN,GAEF,oBAAC;IAAI,WAAU;cAA8F;KAEvG;IAEJ;GACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PrivacyTemplate.js","names":[],"sources":["../../../src/components/legal/PrivacyTemplate.tsx"],"sourcesContent":["import type { Metadata } from 'next';\n\nexport const metadata: Metadata = {\n title: 'Privacy Policy | ContractSpec',\n description:\n 'Learn how ContractSpec collects, uses, and protects your personal data in compliance with GDPR.',\n};\n\nexport function PrivacyTemplate() {\n return (\n <main className=\"flex grow flex-col items-center justify-center pt-24\">\n <section className=\"section-padding\">\n <div className=\"prose prose-invert mx-auto max-w-3xl\">\n <h1 className=\"mb-4 text-4xl font-bold\">Privacy Policy</h1>\n <p className=\"text-muted-foreground mb-8\">\n Last updated: December 18, 2025\n </p>\n\n {/* 1. Who We Are */}\n <section className=\"space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 1. Who We Are\n </h2>\n <p className=\"text-muted-foreground\">\n <strong className=\"text-foreground\">ContractSpec</strong> is a\n brand of{' '}\n <strong className=\"text-foreground\">CHAMAN VENTURES</strong>, a\n simplified joint-stock company (SASU) registered in France.\n </p>\n <div className=\"text-muted-foreground rounded-lg border border-white/10 bg-white/5 p-4\">\n <p className=\"mb-2\">\n <strong className=\"text-foreground\">Data Controller:</strong>\n </p>\n <ul className=\"list-none space-y-1 pl-0\">\n <li>CHAMAN VENTURES, SASU</li>\n <li>RCS Paris • SIREN 989 498 902</li>\n <li>229 rue Saint-Honoré, 75001 Paris, France</li>\n <li>\n Contact:{' '}\n <a\n href=\"mailto:privacy@contractspec.io\"\n className=\"text-primary hover:underline\"\n >\n privacy@contractspec.io\n </a>\n </li>\n </ul>\n </div>\n <p className=\"text-muted-foreground\">\n We are responsible for deciding how we hold and use personal data\n about you. We are required under data protection legislation to\n notify you of the information contained in this privacy policy.\n </p>\n </section>\n\n {/* 2. What This Policy Covers */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 2. What This Policy Covers\n </h2>\n <p className=\"text-muted-foreground\">\n This privacy policy explains:\n </p>\n <ul className=\"text-muted-foreground list-disc space-y-2 pl-6\">\n <li>\n What personal data we collect through the ContractSpec website\n and services\n </li>\n <li>Why we collect and process your data</li>\n <li>How we store and protect your data</li>\n <li>Who we may share your data with</li>\n <li>\n Your rights under the General Data Protection Regulation (GDPR)\n </li>\n </ul>\n <p className=\"text-muted-foreground\">\n This policy applies to visitors of our website, users who sign up\n for our waitlist or contact us, and customers who use our\n services.\n </p>\n </section>\n\n {/* 3. Data We Collect */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 3. Data We Collect\n </h2>\n <p className=\"text-muted-foreground\">\n We collect different types of data depending on how you interact\n with ContractSpec:\n </p>\n\n <div className=\"overflow-x-auto\">\n <table className=\"text-muted-foreground w-full border-collapse text-sm\">\n <thead>\n <tr className=\"border-b border-white/20\">\n <th className=\"text-foreground py-3 pr-4 text-left font-semibold\">\n Category\n </th>\n <th className=\"text-foreground py-3 pr-4 text-left font-semibold\">\n Data Collected\n </th>\n <th className=\"text-foreground py-3 text-left font-semibold\">\n When Collected\n </th>\n </tr>\n </thead>\n <tbody>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">Website Analytics</td>\n <td className=\"py-3 pr-4\">\n Page views, click events, device type, browser,\n approximate location (country level), session duration,\n referral source\n </td>\n <td className=\"py-3\">\n When browsing our website (with consent in EU/EEA)\n </td>\n </tr>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">\n Contact / Waitlist\n </td>\n <td className=\"py-3 pr-4\">\n Name, email address, message content\n </td>\n <td className=\"py-3\">\n When you submit a form or join our waitlist\n </td>\n </tr>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">Account Data</td>\n <td className=\"py-3 pr-4\">\n <em>Not yet applicable</em> — We do not currently offer\n user accounts. This section will be updated when accounts\n are introduced.\n </td>\n <td className=\"py-3\">—</td>\n </tr>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">Billing Data</td>\n <td className=\"py-3 pr-4\">\n <em>Not yet applicable</em> — We do not currently process\n payments. This section will be updated when billing is\n introduced.\n </td>\n <td className=\"py-3\">—</td>\n </tr>\n </tbody>\n </table>\n </div>\n </section>\n\n {/* 4. Why We Process Data */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 4. Why We Process Data (Purposes & Legal Bases)\n </h2>\n <p className=\"text-muted-foreground\">\n Under GDPR, we must have a lawful basis for processing your\n personal data. We rely on the following:\n </p>\n\n <div className=\"overflow-x-auto\">\n <table className=\"text-muted-foreground w-full border-collapse text-sm\">\n <thead>\n <tr className=\"border-b border-white/20\">\n <th className=\"text-foreground py-3 pr-4 text-left font-semibold\">\n Purpose\n </th>\n <th className=\"text-foreground py-3 pr-4 text-left font-semibold\">\n Legal Basis\n </th>\n <th className=\"text-foreground py-3 text-left font-semibold\">\n Details\n </th>\n </tr>\n </thead>\n <tbody>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">\n Website operation & security\n </td>\n <td className=\"py-3 pr-4\">Legitimate interest</td>\n <td className=\"py-3\">\n Ensuring our website functions correctly, preventing\n abuse, and maintaining security\n </td>\n </tr>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">\n Analytics & improvement\n </td>\n <td className=\"py-3 pr-4\">Consent</td>\n <td className=\"py-3\">\n Understanding how users interact with our site to improve\n our services (gated behind consent in EU/EEA)\n </td>\n </tr>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">\n Responding to enquiries\n </td>\n <td className=\"py-3 pr-4\">\n Legitimate interest / Contract\n </td>\n <td className=\"py-3\">\n Responding to your questions, processing waitlist\n requests, or pre-contractual discussions\n </td>\n </tr>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">Service delivery</td>\n <td className=\"py-3 pr-4\">Contract</td>\n <td className=\"py-3\">\n If/when you become a customer, processing your data is\n necessary to fulfil our contractual obligations\n </td>\n </tr>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">Legal compliance</td>\n <td className=\"py-3 pr-4\">Legal obligation</td>\n <td className=\"py-3\">\n Complying with applicable laws, regulations, or legal\n processes\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </section>\n\n {/* 5. Cookies & Tracking */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 5. Cookies & Tracking\n </h2>\n <p className=\"text-muted-foreground\">\n We use <strong className=\"text-foreground\">PostHog</strong> for\n product analytics to understand how visitors use our website.\n PostHog may use cookies or similar technologies to collect this\n information.\n </p>\n\n <h3 className=\"text-foreground mt-6 text-xl font-semibold\">\n Consent in the EU/EEA\n </h3>\n <p className=\"text-muted-foreground\">\n If you are located in the European Union or European Economic\n Area, we gate analytics tracking behind your explicit consent.\n Analytics cookies will not be set until you opt-in through our\n cookie consent mechanism.\n </p>\n\n <h3 className=\"text-foreground mt-6 text-xl font-semibold\">\n Withdrawing Consent / Opting Out\n </h3>\n <p className=\"text-muted-foreground\">\n You can withdraw consent or opt out at any time:\n </p>\n <ul className=\"text-muted-foreground list-disc space-y-2 pl-6\">\n <li>\n <strong>Cookie settings:</strong> Use the cookie preferences\n link in our website footer to manage your consent\n </li>\n <li>\n <strong>Browser settings:</strong> Configure your browser to\n reject cookies or alert you when cookies are being set\n </li>\n <li>\n <strong>PostHog opt-out:</strong> PostHog respects \"Do Not\n Track\" browser signals where applicable\n </li>\n </ul>\n <p className=\"text-muted-foreground\">\n Note: Rejecting analytics cookies will not affect your ability to\n use our website.\n </p>\n </section>\n\n {/* 6. Sub-processors / Recipients */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 6. Sub-processors & Recipients\n </h2>\n <p className=\"text-muted-foreground\">\n We share data with the following third-party service providers who\n process data on our behalf:\n </p>\n\n <div className=\"overflow-x-auto\">\n <table className=\"text-muted-foreground w-full border-collapse text-sm\">\n <thead>\n <tr className=\"border-b border-white/20\">\n <th className=\"text-foreground py-3 pr-4 text-left font-semibold\">\n Provider\n </th>\n <th className=\"text-foreground py-3 pr-4 text-left font-semibold\">\n Purpose\n </th>\n <th className=\"text-foreground py-3 text-left font-semibold\">\n Location\n </th>\n </tr>\n </thead>\n <tbody>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">PostHog</td>\n <td className=\"py-3 pr-4\">Product analytics</td>\n <td className=\"py-3\">EU (PostHog Cloud EU) or US</td>\n </tr>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">Vercel</td>\n <td className=\"py-3 pr-4\">Website hosting & CDN</td>\n <td className=\"py-3\">Global (including EU regions)</td>\n </tr>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">Scaleway</td>\n <td className=\"py-3 pr-4\">Cloud infrastructure</td>\n <td className=\"py-3\">France / EU</td>\n </tr>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">\n Email provider <em>(TBD)</em>\n </td>\n <td className=\"py-3 pr-4\">\n Transactional & marketing emails\n </td>\n <td className=\"py-3\">\n <em>To be confirmed</em>\n </td>\n </tr>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">\n Error tracking <em>(TBD)</em>\n </td>\n <td className=\"py-3 pr-4\">Application error monitoring</td>\n <td className=\"py-3\">\n <em>To be confirmed</em>\n </td>\n </tr>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">\n Payment processor <em>(TBD)</em>\n </td>\n <td className=\"py-3 pr-4\">\n Billing & subscription management\n </td>\n <td className=\"py-3\">\n <em>To be confirmed</em>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <p className=\"text-muted-foreground mt-4\">\n We carefully select our sub-processors and require them to\n maintain appropriate security measures and only process data\n according to our instructions.\n </p>\n </section>\n\n {/* 7. International Transfers */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 7. International Data Transfers\n </h2>\n <p className=\"text-muted-foreground\">\n As a France-based company, we aim to keep your data within the\n European Union wherever possible.\n </p>\n <p className=\"text-muted-foreground\">\n However, some of our service providers may process data outside\n the EU/EEA. When this occurs, we ensure appropriate safeguards are\n in place, such as:\n </p>\n <ul className=\"text-muted-foreground list-disc space-y-2 pl-6\">\n <li>\n <strong>Standard Contractual Clauses (SCCs)</strong> approved by\n the European Commission\n </li>\n <li>\n <strong>Adequacy decisions</strong> where the recipient country\n has been deemed to provide adequate protection\n </li>\n <li>\n <strong>Binding Corporate Rules</strong> where applicable\n </li>\n </ul>\n <p className=\"text-muted-foreground\">\n You may request more information about these safeguards by\n contacting us at{' '}\n <a\n href=\"mailto:privacy@contractspec.io\"\n className=\"text-primary hover:underline\"\n >\n privacy@contractspec.io\n </a>\n .\n </p>\n </section>\n\n {/* 8. Retention */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 8. Data Retention\n </h2>\n <p className=\"text-muted-foreground\">\n We retain your personal data only for as long as necessary to\n fulfil the purposes for which it was collected:\n </p>\n\n <div className=\"overflow-x-auto\">\n <table className=\"text-muted-foreground w-full border-collapse text-sm\">\n <thead>\n <tr className=\"border-b border-white/20\">\n <th className=\"text-foreground py-3 pr-4 text-left font-semibold\">\n Data Type\n </th>\n <th className=\"text-foreground py-3 text-left font-semibold\">\n Retention Period\n </th>\n </tr>\n </thead>\n <tbody>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">Analytics data</td>\n <td className=\"py-3\">24 months from collection</td>\n </tr>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">\n Waitlist / contact form data\n </td>\n <td className=\"py-3\">\n Until you request deletion or 24 months after last\n interaction\n </td>\n </tr>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">\n Account data (when applicable)\n </td>\n <td className=\"py-3\">\n Duration of account plus 12 months after closure\n </td>\n </tr>\n <tr className=\"border-b border-white/10\">\n <td className=\"py-3 pr-4 font-medium\">\n Billing records (when applicable)\n </td>\n <td className=\"py-3\">\n 10 years (French legal requirement)\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <p className=\"text-muted-foreground mt-4\">\n We may retain certain data longer if required by law or to\n establish, exercise, or defend legal claims.\n </p>\n </section>\n\n {/* 9. Your Rights */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 9. Your Rights Under GDPR\n </h2>\n <p className=\"text-muted-foreground\">\n As a data subject in the EU, you have the following rights:\n </p>\n\n <ul className=\"text-muted-foreground list-disc space-y-3 pl-6\">\n <li>\n <strong className=\"text-foreground\">Right to access</strong> —\n Request a copy of the personal data we hold about you\n </li>\n <li>\n <strong className=\"text-foreground\">\n Right to rectification\n </strong>{' '}\n — Request correction of inaccurate or incomplete data\n </li>\n <li>\n <strong className=\"text-foreground\">\n Right to erasure (\"right to be forgotten\")\n </strong>{' '}\n — Request deletion of your personal data in certain\n circumstances\n </li>\n <li>\n <strong className=\"text-foreground\">\n Right to restriction\n </strong>{' '}\n — Request that we limit how we use your data\n </li>\n <li>\n <strong className=\"text-foreground\">\n Right to data portability\n </strong>{' '}\n — Receive your data in a structured, machine-readable format\n </li>\n <li>\n <strong className=\"text-foreground\">Right to object</strong> —\n Object to processing based on legitimate interests or direct\n marketing\n </li>\n <li>\n <strong className=\"text-foreground\">\n Right to withdraw consent\n </strong>{' '}\n — Where processing is based on consent, withdraw it at any time\n </li>\n </ul>\n\n <p className=\"text-muted-foreground mt-4\">\n To exercise any of these rights, please contact us at{' '}\n <a\n href=\"mailto:privacy@contractspec.io\"\n className=\"text-primary hover:underline\"\n >\n privacy@contractspec.io\n </a>\n . We will respond within one month as required by GDPR.\n </p>\n </section>\n\n {/* 10. Security */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">10. Security</h2>\n <p className=\"text-muted-foreground\">\n We implement appropriate technical and organisational measures to\n protect your personal data against unauthorised access,\n alteration, disclosure, or destruction. These measures include:\n </p>\n <ul className=\"text-muted-foreground list-disc space-y-2 pl-6\">\n <li>Encryption of data in transit (TLS/HTTPS)</li>\n <li>Encryption of data at rest where appropriate</li>\n <li>Access controls and authentication</li>\n <li>Regular security reviews and updates</li>\n <li>Careful vetting of sub-processors</li>\n </ul>\n <p className=\"text-muted-foreground\">\n While we strive to protect your data, no method of transmission\n over the Internet or electronic storage is 100% secure. We cannot\n guarantee absolute security but are committed to continuous\n improvement.\n </p>\n </section>\n\n {/* 11. Contact & Complaints */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 11. Contact & Complaints\n </h2>\n <p className=\"text-muted-foreground\">\n If you have any questions, concerns, or requests regarding this\n privacy policy or our data practices, please contact us:\n </p>\n <div className=\"text-muted-foreground rounded-lg border border-white/10 bg-white/5 p-4\">\n <p>\n <strong className=\"text-foreground\">Email:</strong>{' '}\n <a\n href=\"mailto:privacy@contractspec.io\"\n className=\"text-primary hover:underline\"\n >\n privacy@contractspec.io\n </a>\n </p>\n <p className=\"mt-2\">\n <strong className=\"text-foreground\">Address:</strong> CHAMAN\n VENTURES, 229 rue Saint-Honoré, 75001 Paris, France\n </p>\n </div>\n\n <h3 className=\"text-foreground mt-6 text-xl font-semibold\">\n Supervisory Authority\n </h3>\n <p className=\"text-muted-foreground\">\n If you are not satisfied with our response or believe we are\n processing your data unlawfully, you have the right to lodge a\n complaint with a supervisory authority. In France, the relevant\n authority is:\n </p>\n <div className=\"text-muted-foreground rounded-lg border border-white/10 bg-white/5 p-4\">\n <p>\n <strong className=\"text-foreground\">\n Commission Nationale de l'Informatique et des Libertés (CNIL)\n </strong>\n </p>\n <p>3 Place de Fontenoy, TSA 80715, 75334 Paris Cedex 07</p>\n <p>\n Website:{' '}\n <a\n href=\"https://www.cnil.fr\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-primary hover:underline\"\n >\n www.cnil.fr\n </a>\n </p>\n </div>\n </section>\n\n {/* Changes Notice */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 12. Changes to This Policy\n </h2>\n <p className=\"text-muted-foreground\">\n We may update this privacy policy from time to time to reflect\n changes in our practices, technology, legal requirements, or for\n other operational reasons. We will notify you of any material\n changes by updating the \"Last updated\" date at the top of this\n page.\n </p>\n <p className=\"text-muted-foreground\">\n We encourage you to review this policy periodically to stay\n informed about how we protect your data.\n </p>\n </section>\n\n {/* Footer */}\n <div className=\"mt-12 border-t border-white/10 pt-8\">\n <p className=\"text-muted-foreground text-sm\">\n For questions about this privacy policy, please contact us at{' '}\n <a\n href=\"mailto:privacy@contractspec.io\"\n className=\"text-primary hover:underline\"\n >\n privacy@contractspec.io\n </a>\n </p>\n </div>\n </div>\n </section>\n </main>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TermsTemplate.js","names":[],"sources":["../../../src/components/legal/TermsTemplate.tsx"],"sourcesContent":["import type { Metadata } from 'next';\n\nexport const metadata: Metadata = {\n title: 'Terms of Service | ContractSpec',\n description:\n 'Terms of Service for ContractSpec. Read our terms governing use of the ContractSpec website and services.',\n};\n\nexport function TermsTemplate() {\n return (\n <main className=\"flex grow flex-col items-center justify-center pt-24\">\n <section className=\"section-padding\">\n <div className=\"prose prose-invert mx-auto max-w-3xl\">\n <h1 className=\"mb-4 text-4xl font-bold\">Terms of Service</h1>\n <p className=\"text-muted-foreground mb-8\">\n Last updated: December 18, 2025\n </p>\n\n {/* 1. Definitions */}\n <section className=\"space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 1. Definitions\n </h2>\n <p className=\"text-muted-foreground\">\n In these Terms of Service (\"Terms\"), the following definitions\n apply:\n </p>\n <ul className=\"text-muted-foreground list-disc space-y-2 pl-6\">\n <li>\n <strong className=\"text-foreground\">\"ContractSpec\"</strong>,{' '}\n <strong className=\"text-foreground\">\"we\"</strong>,{' '}\n <strong className=\"text-foreground\">\"us\"</strong>, or{' '}\n <strong className=\"text-foreground\">\"our\"</strong> refers to\n CHAMAN VENTURES, SASU, operating under the ContractSpec brand.\n </li>\n <li>\n <strong className=\"text-foreground\">\"Service\"</strong> or{' '}\n <strong className=\"text-foreground\">\"Services\"</strong> refers\n to the ContractSpec website, ContractSpec Studio, APIs,\n documentation, and any related products or features we provide.\n </li>\n <li>\n <strong className=\"text-foreground\">\"User\"</strong>,{' '}\n <strong className=\"text-foreground\">\"you\"</strong>, or{' '}\n <strong className=\"text-foreground\">\"your\"</strong> refers to\n any individual or entity accessing or using the Services.\n </li>\n <li>\n <strong className=\"text-foreground\">\"User Content\"</strong>{' '}\n refers to any data, specifications, configurations, or other\n materials you create, upload, or submit through the Services.\n </li>\n <li>\n <strong className=\"text-foreground\">\"ContractSpec Core\"</strong>{' '}\n refers to the open-source components of ContractSpec available\n under their respective open-source licenses.\n </li>\n <li>\n <strong className=\"text-foreground\">\"Design Partner\"</strong>{' '}\n refers to early users who have entered into a separate design\n partnership arrangement with us.\n </li>\n </ul>\n </section>\n\n {/* 2. Who We Are */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 2. Who We Are\n </h2>\n <p className=\"text-muted-foreground\">\n ContractSpec is a brand of{' '}\n <strong className=\"text-foreground\">CHAMAN VENTURES</strong>, a\n simplified joint-stock company (SASU) registered in France.\n </p>\n <div className=\"text-muted-foreground rounded-lg border border-white/10 bg-white/5 p-4\">\n <ul className=\"list-none space-y-1 pl-0\">\n <li>CHAMAN VENTURES, SASU</li>\n <li>RCS Paris • SIREN 989 498 902</li>\n <li>229 rue Saint-Honoré, 75001 Paris, France</li>\n <li>\n Contact:{' '}\n <a\n href=\"mailto:legal@contractspec.io\"\n className=\"text-primary hover:underline\"\n >\n legal@contractspec.io\n </a>\n </li>\n </ul>\n </div>\n </section>\n\n {/* 3. Acceptance of Terms */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 3. Acceptance of Terms\n </h2>\n <p className=\"text-muted-foreground\">\n By accessing or using ContractSpec, you agree to be bound by these\n Terms and our{' '}\n <a href=\"/legal/privacy\" className=\"text-primary hover:underline\">\n Privacy Policy\n </a>\n . If you do not agree to these Terms, you must not use the\n Services.\n </p>\n <p className=\"text-muted-foreground\">\n We may update these Terms from time to time. We will notify you of\n material changes by updating the \"Last updated\" date. Continued\n use of the Services after changes constitutes acceptance of the\n updated Terms.\n </p>\n </section>\n\n {/* 4. Eligibility */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 4. Eligibility\n </h2>\n <p className=\"text-muted-foreground\">\n To use the Services, you must:\n </p>\n <ul className=\"text-muted-foreground list-disc space-y-2 pl-6\">\n <li>\n Be at least 18 years old or the age of majority in your\n jurisdiction\n </li>\n <li>Have the legal capacity to enter into binding contracts</li>\n <li>\n Not be prohibited from using the Services under applicable laws\n </li>\n <li>\n If acting on behalf of an organisation, have the authority to\n bind that organisation to these Terms\n </li>\n </ul>\n </section>\n\n {/* 5. Accounts */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">5. Accounts</h2>\n <div className=\"text-muted-foreground rounded-lg border border-yellow-500/20 bg-yellow-500/5 p-4\">\n <p className=\"mb-2 font-medium text-yellow-500\">Note</p>\n <p>\n User accounts are not yet available. When accounts are\n introduced, the following terms will apply:\n </p>\n </div>\n <ul className=\"text-muted-foreground mt-4 list-disc space-y-2 pl-6\">\n <li>\n You are responsible for maintaining the confidentiality of your\n account credentials\n </li>\n <li>\n You are responsible for all activities that occur under your\n account\n </li>\n <li>\n You must notify us immediately of any unauthorised use of your\n account\n </li>\n <li>\n We reserve the right to suspend or terminate accounts that\n violate these Terms\n </li>\n </ul>\n </section>\n\n {/* 6. License & Intellectual Property */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 6. License & Intellectual Property\n </h2>\n\n <h3 className=\"text-foreground mt-6 text-xl font-semibold\">\n 6.1 Our Intellectual Property\n </h3>\n <p className=\"text-muted-foreground\">\n The ContractSpec name, logo, website design, proprietary software,\n documentation, and all associated intellectual property rights are\n owned by CHAMAN VENTURES. Subject to these Terms, we grant you a\n limited, non-exclusive, non-transferable, revocable license to\n access and use the Services for their intended purpose.\n </p>\n\n <h3 className=\"text-foreground mt-6 text-xl font-semibold\">\n 6.2 Open-Source Components\n </h3>\n <p className=\"text-muted-foreground\">\n Certain components of ContractSpec (\"ContractSpec Core\") are made\n available as open-source software under their respective licenses\n (e.g., MIT, Apache 2.0). Your use of open-source components is\n governed by those licenses, which may grant you additional rights\n not covered by these Terms. In case of conflict between these\n Terms and an open-source license, the open-source license prevails\n for the applicable component.\n </p>\n\n <h3 className=\"text-foreground mt-6 text-xl font-semibold\">\n 6.3 Your Content\n </h3>\n <p className=\"text-muted-foreground\">\n <strong className=\"text-foreground\">You retain ownership</strong>{' '}\n of all User Content you create, upload, or submit through the\n Services. This includes your specifications, configurations, and\n any other materials you generate.\n </p>\n <p className=\"text-muted-foreground\">\n By using the Services, you grant us a limited, non-exclusive,\n worldwide, royalty-free license to host, store, process, and\n display your User Content solely to the extent necessary to\n provide and improve the Services. This license terminates when you\n delete your User Content or close your account, except where\n retention is required by law or for legitimate business purposes\n (e.g., backups, legal compliance).\n </p>\n\n <h3 className=\"text-foreground mt-6 text-xl font-semibold\">\n 6.4 Feedback\n </h3>\n <p className=\"text-muted-foreground\">\n If you provide feedback, suggestions, or ideas about the Services,\n you grant us a perpetual, irrevocable, royalty-free license to\n use, modify, and incorporate such feedback without obligation to\n you.\n </p>\n </section>\n\n {/* 7. Acceptable Use */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 7. Acceptable Use\n </h2>\n <p className=\"text-muted-foreground\">\n When using the Services, you agree not to:\n </p>\n\n <ul className=\"text-muted-foreground list-disc space-y-2 pl-6\">\n <li>\n <strong className=\"text-foreground\">Abuse the Services:</strong>{' '}\n Use the Services in a manner that disrupts, damages, or impairs\n our infrastructure or other users' experience\n </li>\n <li>\n <strong className=\"text-foreground\">Probe security:</strong>{' '}\n Attempt to gain unauthorised access to our systems, networks, or\n data; perform security testing without prior written permission\n </li>\n <li>\n <strong className=\"text-foreground\">\n Distribute harmful content:\n </strong>{' '}\n Upload, share, or distribute malware, viruses, or other\n malicious code\n </li>\n <li>\n <strong className=\"text-foreground\">\n Engage in illegal activity:\n </strong>{' '}\n Use the Services for any purpose that is unlawful, fraudulent,\n or harmful\n </li>\n <li>\n <strong className=\"text-foreground\">\n Interfere with operations:\n </strong>{' '}\n Attempt to interfere with, disrupt, or circumvent any security\n or access controls\n </li>\n <li>\n <strong className=\"text-foreground\">Violate rights:</strong>{' '}\n Infringe upon the intellectual property, privacy, or other\n rights of third parties\n </li>\n <li>\n <strong className=\"text-foreground\">\n Misrepresent identity:\n </strong>{' '}\n Impersonate any person or entity, or falsely claim affiliation\n with ContractSpec\n </li>\n <li>\n <strong className=\"text-foreground\">Circumvent limits:</strong>{' '}\n Attempt to bypass any usage limits, rate limits, or access\n restrictions\n </li>\n </ul>\n\n <p className=\"text-muted-foreground mt-4\">\n We reserve the right to investigate violations and take\n appropriate action, including suspension or termination of access.\n </p>\n </section>\n\n {/* 8. Beta / Preview Disclaimer */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 8. Beta & Preview Services\n </h2>\n <div className=\"text-muted-foreground rounded-lg border border-orange-500/20 bg-orange-500/5 p-4\">\n <p className=\"mb-2 font-medium text-orange-400\">⚠️ Important</p>\n <p>\n ContractSpec is currently in active development. Some features\n may be labelled as \"Beta\", \"Preview\", \"Alpha\", or similar\n designations.\n </p>\n </div>\n\n <p className=\"text-muted-foreground mt-4\">\n By using beta or preview features, you acknowledge:\n </p>\n <ul className=\"text-muted-foreground list-disc space-y-2 pl-6\">\n <li>\n <strong className=\"text-foreground\">Things may break:</strong>{' '}\n Beta features may contain bugs, errors, or unexpected behaviour\n </li>\n <li>\n <strong className=\"text-foreground\">\n No availability guarantee:\n </strong>{' '}\n We do not guarantee uptime, availability, or continuity of beta\n features\n </li>\n <li>\n <strong className=\"text-foreground\">\n Features may change or disappear:\n </strong>{' '}\n We may modify, suspend, or discontinue beta features at any time\n without notice\n </li>\n <li>\n <strong className=\"text-foreground\">Not for production:</strong>{' '}\n Beta features should not be relied upon for mission-critical or\n production workloads unless you accept these risks\n </li>\n <li>\n <strong className=\"text-foreground\">Data may be lost:</strong>{' '}\n We cannot guarantee the preservation of data created using beta\n features\n </li>\n </ul>\n </section>\n\n {/* 9. Design Partner Terms */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 9. Design Partner Program\n </h2>\n <p className=\"text-muted-foreground\">\n We offer a Design Partner program for early users who wish to\n collaborate closely with us to shape the product. If you\n participate as a Design Partner:\n </p>\n\n <h3 className=\"text-foreground mt-6 text-xl font-semibold\">\n 9.1 Scope\n </h3>\n <p className=\"text-muted-foreground\">\n Design Partners receive early access to features, provide\n feedback, and help validate product direction. The specific scope\n of your participation will be outlined in a separate agreement or\n communication.\n </p>\n\n <h3 className=\"text-foreground mt-6 text-xl font-semibold\">\n 9.2 Feedback\n </h3>\n <p className=\"text-muted-foreground\">\n We value your input. Feedback you provide may be used to improve\n the Services. See Section 6.4 for licensing terms regarding\n feedback.\n </p>\n\n <h3 className=\"text-foreground mt-6 text-xl font-semibold\">\n 9.3 Confidentiality\n </h3>\n <p className=\"text-muted-foreground\">\n Design Partners may receive access to confidential or pre-release\n information. Unless otherwise specified in a separate agreement,\n you agree to keep such information confidential and not share it\n publicly without our prior written consent.\n </p>\n\n <h3 className=\"text-foreground mt-6 text-xl font-semibold\">\n 9.4 Mutual Expectations\n </h3>\n <ul className=\"text-muted-foreground list-disc space-y-2 pl-6\">\n <li>\n <strong className=\"text-foreground\">From us:</strong> Regular\n communications, responsiveness to feedback, and transparency\n about product direction\n </li>\n <li>\n <strong className=\"text-foreground\">From you:</strong> Timely\n and honest feedback, reasonable engagement, and adherence to\n these Terms\n </li>\n </ul>\n </section>\n\n {/* 10. Fees & Billing */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 10. Fees & Billing\n </h2>\n <div className=\"text-muted-foreground rounded-lg border border-yellow-500/20 bg-yellow-500/5 p-4\">\n <p className=\"mb-2 font-medium text-yellow-500\">Note</p>\n <p>\n Paid plans are not yet available. When paid plans are\n introduced, the following terms will apply:\n </p>\n </div>\n <ul className=\"text-muted-foreground mt-4 list-disc space-y-2 pl-6\">\n <li>\n Fees will be clearly communicated before you commit to a paid\n plan\n </li>\n <li>\n Payment terms, billing cycles, and refund policies will be\n specified at that time\n </li>\n <li>\n We reserve the right to change pricing with reasonable notice\n </li>\n <li>\n Failure to pay may result in suspension or termination of paid\n features\n </li>\n </ul>\n </section>\n\n {/* 11. Third-Party Services */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 11. Third-Party Services\n </h2>\n <p className=\"text-muted-foreground\">\n The Services may integrate with or contain links to third-party\n services, websites, or content. We do not control and are not\n responsible for third-party services.\n </p>\n <ul className=\"text-muted-foreground list-disc space-y-2 pl-6\">\n <li>\n Your use of third-party services is governed by their respective\n terms and policies\n </li>\n <li>\n We make no warranties or representations about third-party\n services\n </li>\n <li>Links to third-party sites do not imply endorsement</li>\n <li>\n You are responsible for reviewing the terms of any third-party\n services you use\n </li>\n </ul>\n </section>\n\n {/* 12. Disclaimer of Warranties */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 12. Disclaimer of Warranties\n </h2>\n <div className=\"text-muted-foreground rounded-lg border border-white/10 bg-white/5 p-4\">\n <p className=\"font-medium uppercase\">\n THE SERVICES ARE PROVIDED \"AS IS\" AND \"AS AVAILABLE\" WITHOUT\n WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED.\n </p>\n </div>\n\n <p className=\"text-muted-foreground mt-4\">\n To the fullest extent permitted by law, we disclaim:\n </p>\n <ul className=\"text-muted-foreground list-disc space-y-2 pl-6\">\n <li>\n Warranties of merchantability, fitness for a particular purpose,\n and non-infringement\n </li>\n <li>\n Any warranty that the Services will be uninterrupted, secure, or\n error-free\n </li>\n <li>\n Any warranty regarding the accuracy, reliability, or\n completeness of content\n </li>\n <li>\n Any warranty that defects will be corrected or that the Services\n are free of viruses or harmful components\n </li>\n </ul>\n\n <h3 className=\"text-foreground mt-6 text-xl font-semibold\">\n No Professional Advice\n </h3>\n <p className=\"text-muted-foreground\">\n The Services are tools for software development. Nothing in the\n Services constitutes legal, financial, technical, or other\n professional advice. You are solely responsible for evaluating the\n suitability of the Services for your needs and for any decisions\n you make based on the output.\n </p>\n </section>\n\n {/* 13. Limitation of Liability */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 13. Limitation of Liability\n </h2>\n <p className=\"text-muted-foreground\">\n To the maximum extent permitted by applicable law:\n </p>\n <ul className=\"text-muted-foreground list-disc space-y-2 pl-6\">\n <li>\n <strong className=\"text-foreground\">\n No indirect damages:\n </strong>{' '}\n We shall not be liable for any indirect, incidental, special,\n consequential, or punitive damages, including loss of profits,\n data, goodwill, or other intangible losses\n </li>\n <li>\n <strong className=\"text-foreground\">\n Limited direct liability:\n </strong>{' '}\n Our total aggregate liability for any claims arising from or\n related to the Services shall not exceed the greater of: (a) the\n amount you paid us in the 12 months preceding the claim, or (b)\n €100\n </li>\n <li>\n <strong className=\"text-foreground\">Exceptions:</strong> These\n limitations do not apply to liability that cannot be excluded\n under applicable law, including liability for fraud or wilful\n misconduct\n </li>\n </ul>\n <p className=\"text-muted-foreground mt-4\">\n You acknowledge that these limitations reflect a reasonable\n allocation of risk and are a fundamental basis of the agreement\n between us.\n </p>\n </section>\n\n {/* 14. Termination */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 14. Termination\n </h2>\n\n <h3 className=\"text-foreground mt-6 text-xl font-semibold\">\n 14.1 By You\n </h3>\n <p className=\"text-muted-foreground\">\n You may stop using the Services at any time. When accounts are\n available, you may close your account through the account settings\n or by contacting us.\n </p>\n\n <h3 className=\"text-foreground mt-6 text-xl font-semibold\">\n 14.2 By Us\n </h3>\n <p className=\"text-muted-foreground\">\n We may suspend or terminate your access to the Services at any\n time, with or without cause, with or without notice. Reasons for\n termination may include:\n </p>\n <ul className=\"text-muted-foreground list-disc space-y-2 pl-6\">\n <li>Violation of these Terms</li>\n <li>\n Conduct that we believe is harmful to other users or our\n business\n </li>\n <li>Extended inactivity</li>\n <li>Discontinuation of the Services</li>\n </ul>\n\n <h3 className=\"text-foreground mt-6 text-xl font-semibold\">\n 14.3 Effect of Termination\n </h3>\n <p className=\"text-muted-foreground\">\n Upon termination, your right to use the Services ceases\n immediately. Provisions that by their nature should survive\n termination will survive, including intellectual property rights,\n disclaimers, limitations of liability, and dispute resolution.\n </p>\n </section>\n\n {/* 15. Governing Law & Jurisdiction */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 15. Governing Law & Jurisdiction\n </h2>\n <p className=\"text-muted-foreground\">\n These Terms are governed by and construed in accordance with the\n laws of <strong className=\"text-foreground\">France</strong>,\n without regard to conflict of law principles.\n </p>\n <p className=\"text-muted-foreground\">\n Any disputes arising from or related to these Terms or the\n Services shall be subject to the exclusive jurisdiction of the\n courts of{' '}\n <strong className=\"text-foreground\">Paris, France</strong>.\n </p>\n <p className=\"text-muted-foreground\">\n If you are a consumer in the European Union, nothing in these\n Terms affects your rights under mandatory consumer protection laws\n of your country of residence.\n </p>\n </section>\n\n {/* 16. Contact */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">16. Contact</h2>\n <p className=\"text-muted-foreground\">\n If you have any questions about these Terms, please contact us:\n </p>\n <div className=\"text-muted-foreground rounded-lg border border-white/10 bg-white/5 p-4\">\n <p>\n <strong className=\"text-foreground\">Email:</strong>{' '}\n <a\n href=\"mailto:legal@contractspec.io\"\n className=\"text-primary hover:underline\"\n >\n legal@contractspec.io\n </a>\n </p>\n <p className=\"mt-2\">\n <strong className=\"text-foreground\">Address:</strong> CHAMAN\n VENTURES, 229 rue Saint-Honoré, 75001 Paris, France\n </p>\n </div>\n </section>\n\n {/* Miscellaneous */}\n <section className=\"mt-10 space-y-4\">\n <h2 className=\"text-foreground text-2xl font-bold\">\n 17. Miscellaneous\n </h2>\n <ul className=\"text-muted-foreground list-disc space-y-2 pl-6\">\n <li>\n <strong className=\"text-foreground\">Entire Agreement:</strong>{' '}\n These Terms, together with our Privacy Policy and any additional\n agreements, constitute the entire agreement between you and\n ContractSpec regarding the Services\n </li>\n <li>\n <strong className=\"text-foreground\">Severability:</strong> If\n any provision of these Terms is found unenforceable, the\n remaining provisions will continue in effect\n </li>\n <li>\n <strong className=\"text-foreground\">Waiver:</strong> Our failure\n to enforce any right or provision does not constitute a waiver\n of that right or provision\n </li>\n <li>\n <strong className=\"text-foreground\">Assignment:</strong> You may\n not assign or transfer your rights under these Terms without our\n consent. We may assign our rights freely\n </li>\n </ul>\n </section>\n\n {/* Footer */}\n <div className=\"mt-12 border-t border-white/10 pt-8\">\n <p className=\"text-muted-foreground text-sm\">\n For questions about these terms, please contact us at{' '}\n <a\n href=\"mailto:legal@contractspec.io\"\n className=\"text-primary hover:underline\"\n >\n legal@contractspec.io\n </a>\n </p>\n </div>\n </div>\n </section>\n </main>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FeatureGateNotice.js","names":[],"sources":["../../../src/components/shared/FeatureGateNotice.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Lock } from 'lucide-react';\n\nexport interface FeatureGateNoticeProps {\n title: string;\n description: string;\n actionLabel?: string;\n onAction?: () => void;\n}\n\nexport function FeatureGateNotice({\n title,\n description,\n actionLabel,\n onAction,\n}: FeatureGateNoticeProps) {\n return (\n <div className=\"text-center\">\n <div className=\"bg-muted/40 mx-auto flex h-12 w-12 items-center justify-center rounded-full\">\n <Lock className=\"text-muted-foreground h-5 w-5\" />\n </div>\n <h3 className=\"mt-4 text-lg font-semibold\">{title}</h3>\n <p className=\"text-muted-foreground mt-2 text-sm\">{description}</p>\n {actionLabel ? (\n <button\n type=\"button\"\n className=\"btn-primary mt-4 inline-flex items-center justify-center\"\n onClick={onAction}\n >\n {actionLabel}\n </button>\n ) : null}\n </div>\n );\n}\n"],"mappings":";;;;;AAUA,SAAgB,kBAAkB,EAChC,OACA,aACA,aACA,YACyB;AACzB,QACE,qBAAC;EAAI,WAAU;;GACb,oBAAC;IAAI,WAAU;cACb,oBAAC,QAAK,WAAU,kCAAkC;KAC9C;GACN,oBAAC;IAAG,WAAU;cAA8B;KAAW;GACvD,oBAAC;IAAE,WAAU;cAAsC;KAAgB;GAClE,cACC,oBAAC;IACC,MAAK;IACL,WAAU;IACV,SAAS;cAER;KACM,GACP;;GACA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorkspaceHeader.js","names":[],"sources":["../../../src/components/shell/WorkspaceHeader.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@contractspec/lib.ui-kit-web/ui/select';\n\nexport interface ShellSelectOption {\n value: string;\n label: string;\n}\n\nexport interface ShellSelect {\n label: string;\n value: string;\n options: ShellSelectOption[];\n onChange: (value: string) => void;\n placeholder?: string;\n}\n\nexport interface WorkspaceHeaderProps {\n title: string;\n subtitle?: string;\n workspaceSelect?: ShellSelect;\n projectSelect?: ShellSelect;\n environmentSelect?: ShellSelect;\n stickyHeaderOffsetPx?: number;\n headerRight?: React.ReactNode;\n}\n\nexport function WorkspaceHeader({\n title,\n subtitle,\n workspaceSelect,\n projectSelect,\n environmentSelect,\n stickyHeaderOffsetPx,\n headerRight,\n}: WorkspaceHeaderProps) {\n return (\n <div\n className=\"border-border bg-card sticky top-0 z-10 border-b\"\n style={{ top: stickyHeaderOffsetPx ?? 0 }}\n >\n <div className=\"mx-auto flex w-full max-w-7xl flex-col gap-3 px-4 py-3 md:flex-row md:items-center md:justify-between\">\n <div className=\"min-w-0\">\n <div className=\"flex items-center gap-2\">\n <p className=\"truncate text-base font-semibold\">{title}</p>\n {subtitle ? (\n <p className=\"text-muted-foreground hidden text-sm md:block\">\n {subtitle}\n </p>\n ) : null}\n </div>\n <div className=\"mt-2 flex flex-wrap gap-2\">\n {workspaceSelect ? (\n <ShellSelectControl select={workspaceSelect} />\n ) : null}\n {projectSelect ? (\n <ShellSelectControl select={projectSelect} />\n ) : null}\n {environmentSelect ? (\n <ShellSelectControl select={environmentSelect} />\n ) : null}\n </div>\n </div>\n <div className=\"flex items-center justify-between gap-2 md:justify-end\">\n {headerRight}\n </div>\n </div>\n </div>\n );\n}\n\nfunction ShellSelectControl({ select }: { select: ShellSelect }) {\n const labelId = React.useId();\n return (\n <div className=\"flex min-w-[220px] flex-col gap-1\">\n <span id={labelId} className=\"text-muted-foreground text-xs\">\n {select.label}\n </span>\n <Select value={select.value} onValueChange={select.onChange}>\n <SelectTrigger aria-labelledby={labelId} className=\"w-full\">\n <SelectValue placeholder={select.placeholder ?? select.label} />\n </SelectTrigger>\n <SelectContent>\n {select.options.map((o) => (\n <SelectItem key={o.value} value={o.value}>\n {o.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n );\n}\n"],"mappings":";;;;;AAgCA,SAAgB,gBAAgB,EAC9B,OACA,UACA,iBACA,eACA,mBACA,sBACA,eACuB;AACvB,QACE,oBAAC;EACC,WAAU;EACV,OAAO,EAAE,KAAK,wBAAwB,GAAG;YAEzC,qBAAC;GAAI,WAAU;cACb,qBAAC;IAAI,WAAU;eACb,qBAAC;KAAI,WAAU;gBACb,oBAAC;MAAE,WAAU;gBAAoC;OAAU,EAC1D,WACC,oBAAC;MAAE,WAAU;gBACV;OACC,GACF;MACA,EACN,qBAAC;KAAI,WAAU;;MACZ,kBACC,oBAAC,sBAAmB,QAAQ,kBAAmB,GAC7C;MACH,gBACC,oBAAC,sBAAmB,QAAQ,gBAAiB,GAC3C;MACH,oBACC,oBAAC,sBAAmB,QAAQ,oBAAqB,GAC/C;;MACA;KACF,EACN,oBAAC;IAAI,WAAU;cACZ;KACG;IACF;GACF;;AAIV,SAAS,mBAAmB,EAAE,UAAmC;CAC/D,MAAM,UAAU,MAAM,OAAO;AAC7B,QACE,qBAAC;EAAI,WAAU;aACb,oBAAC;GAAK,IAAI;GAAS,WAAU;aAC1B,OAAO;IACH,EACP,qBAAC;GAAO,OAAO,OAAO;GAAO,eAAe,OAAO;cACjD,oBAAC;IAAc,mBAAiB;IAAS,WAAU;cACjD,oBAAC,eAAY,aAAa,OAAO,eAAe,OAAO,QAAS;KAClD,EAChB,oBAAC,2BACE,OAAO,QAAQ,KAAK,MACnB,oBAAC;IAAyB,OAAO,EAAE;cAChC,EAAE;MADY,EAAE,MAEN,CACb,GACY;IACT;GACL"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorkspaceProjectShellLayout.js","names":[],"sources":["../../../src/components/shell/WorkspaceProjectShellLayout.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cn } from '@contractspec/lib.ui-kit-web/ui/utils';\nimport {\n SidebarProvider,\n SidebarInset,\n} from '@contractspec/lib.ui-kit-web/ui/sidebar';\nimport {\n WorkspaceHeader,\n type WorkspaceHeaderProps,\n type ShellSelect,\n type ShellSelectOption,\n} from './WorkspaceHeader';\nimport {\n WorkspaceSidebar,\n type WorkspaceSidebarProps,\n type ShellModuleItem,\n} from './WorkspaceSidebar';\n\nexport type { ShellSelect, ShellSelectOption, ShellModuleItem };\n\nexport interface WorkspaceProjectShellLayoutProps\n extends WorkspaceSidebarProps, WorkspaceHeaderProps {\n assistant?: React.ReactNode;\n children: React.ReactNode;\n className?: string;\n}\n\nexport function WorkspaceProjectShellLayout({\n // Header props\n title,\n subtitle,\n workspaceSelect,\n projectSelect,\n environmentSelect,\n stickyHeaderOffsetPx,\n headerRight,\n // Sidebar props\n modules,\n activeModuleId,\n onModuleChange,\n sidebarFooter,\n // Layout props\n assistant,\n children,\n className,\n}: WorkspaceProjectShellLayoutProps) {\n return (\n <SidebarProvider>\n <WorkspaceSidebar\n modules={modules}\n activeModuleId={activeModuleId}\n onModuleChange={onModuleChange}\n sidebarFooter={sidebarFooter}\n />\n <SidebarInset>\n <div className={cn('bg-background min-h-svh', className)}>\n <WorkspaceHeader\n title={title}\n subtitle={subtitle}\n workspaceSelect={workspaceSelect}\n projectSelect={projectSelect}\n environmentSelect={environmentSelect}\n stickyHeaderOffsetPx={stickyHeaderOffsetPx}\n headerRight={headerRight}\n />\n <main className=\"m-4\">{children}</main>\n </div>\n </SidebarInset>\n {assistant}\n </SidebarProvider>\n );\n}\n"],"mappings":";;;;;;;;AA2BA,SAAgB,4BAA4B,EAE1C,OACA,UACA,iBACA,eACA,mBACA,sBACA,aAEA,SACA,gBACA,gBACA,eAEA,WACA,UACA,aACmC;AACnC,QACE,qBAAC;EACC,oBAAC;GACU;GACO;GACA;GACD;IACf;EACF,oBAAC,0BACC,qBAAC;GAAI,WAAW,GAAG,2BAA2B,UAAU;cACtD,oBAAC;IACQ;IACG;IACO;IACF;IACI;IACG;IACT;KACb,EACF,oBAAC;IAAK,WAAU;IAAO;KAAgB;IACnC,GACO;EACd;KACe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorkspaceSidebar.js","names":[],"sources":["../../../src/components/shell/WorkspaceSidebar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Settings } from 'lucide-react';\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarHeader,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarRail,\n} from '@contractspec/lib.ui-kit-web/ui/sidebar';\n\nexport interface ShellModuleItem {\n id: string;\n label: string;\n icon?: React.ReactNode;\n badge?: string | number;\n}\n\nexport interface WorkspaceSidebarProps {\n modules: ShellModuleItem[];\n activeModuleId: string;\n onModuleChange: (moduleId: string) => void;\n sidebarFooter?: React.ReactNode;\n}\n\nexport function WorkspaceSidebar({\n modules,\n activeModuleId,\n onModuleChange,\n sidebarFooter,\n}: WorkspaceSidebarProps) {\n return (\n <Sidebar>\n <SidebarRail />\n <SidebarHeader />\n <SidebarContent>\n <SidebarMenu>\n {modules.map((m) => (\n <SidebarMenuItem key={m.id}>\n <SidebarMenuButton\n isActive={m.id === activeModuleId}\n onClick={() => onModuleChange(m.id)}\n >\n {m.icon}\n <span>{m.label}</span>\n {m.badge != null ? (\n <span className=\"text-muted-foreground ml-auto text-xs\">\n {String(m.badge)}\n </span>\n ) : null}\n </SidebarMenuButton>\n </SidebarMenuItem>\n ))}\n <SidebarMenuItem>\n <SidebarMenuButton\n isActive={activeModuleId === 'settings'}\n onClick={() => onModuleChange('settings')}\n >\n <Settings className=\"size-4\" />\n <span>Settings</span>\n </SidebarMenuButton>\n </SidebarMenuItem>\n </SidebarMenu>\n </SidebarContent>\n <SidebarFooter>{sidebarFooter}</SidebarFooter>\n </Sidebar>\n );\n}\n"],"mappings":";;;;;;AA2BA,SAAgB,iBAAiB,EAC/B,SACA,gBACA,gBACA,iBACwB;AACxB,QACE,qBAAC;EACC,oBAAC,gBAAc;EACf,oBAAC,kBAAgB;EACjB,oBAAC,4BACC,qBAAC,0BACE,QAAQ,KAAK,MACZ,oBAAC,6BACC,qBAAC;GACC,UAAU,EAAE,OAAO;GACnB,eAAe,eAAe,EAAE,GAAG;;IAElC,EAAE;IACH,oBAAC,oBAAM,EAAE,QAAa;IACrB,EAAE,SAAS,OACV,oBAAC;KAAK,WAAU;eACb,OAAO,EAAE,MAAM;MACX,GACL;;IACc,IAZA,EAAE,GAaN,CAClB,EACF,oBAAC,6BACC,qBAAC;GACC,UAAU,mBAAmB;GAC7B,eAAe,eAAe,WAAW;cAEzC,oBAAC,YAAS,WAAU,WAAW,EAC/B,oBAAC,oBAAK,aAAe;IACH,GACJ,IACN,GACC;EACjB,oBAAC,2BAAe,gBAA8B;KACtC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/templates/engine/index.ts"],"sourcesContent":["/**\n * Template TransformEngine Setup\n *\n * Creates and configures a TransformEngine for rendering template presentations\n * to multiple targets (React, Markdown, JSON).\n *\n * Note: This file provides engine creation functions.\n * The actual presentation definitions are in example packages.\n * Import presentations dynamically or use the main templates/engine.ts\n * which handles the build order correctly.\n */\nimport {\n createDefaultTransformEngine,\n type PresentationSpec,\n registerBasicValidation,\n registerDefaultReactRenderer,\n TransformEngine,\n} from '@contractspec/lib.contracts';\n\n/**\n * Create a configured TransformEngine for template rendering\n */\nexport function createTemplateTransformEngine(): TransformEngine {\n const engine = createDefaultTransformEngine();\n\n // Add React renderer that returns serializable descriptors\n registerDefaultReactRenderer(engine);\n\n // Add basic validation for description, etc.\n registerBasicValidation(engine);\n\n return engine;\n}\n\n/**\n * Find a presentation by name and version from a list\n */\nexport function findPresentation(\n presentations: PresentationSpec[],\n name: string,\n version: number\n): PresentationSpec | undefined {\n return presentations.find(\n (p) => p.meta.key === name && String(p.meta.version) === String(version)\n );\n}\n\n/**\n * Get all presentations for a given domain from a list\n */\nexport function filterPresentationsByDomain(\n presentations: PresentationSpec[],\n domain: string\n): PresentationSpec[] {\n return presentations.filter((p) => p.meta.domain === domain);\n}\n\n/**\n * Check if a presentation supports a given target\n */\nexport function supportsTarget(\n presentation: PresentationSpec,\n target: 'react' | 'markdown' | 'application/json' | 'application/xml'\n): boolean {\n return presentation.targets.includes(target);\n}\n\n// Export singleton engine instance\nlet engineInstance: TransformEngine | null = null;\n\nexport function getTemplateEngine(): TransformEngine {\n if (!engineInstance) {\n engineInstance = createTemplateTransformEngine();\n }\n return engineInstance;\n}\n\nexport function resetTemplateEngine(): void {\n engineInstance = null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAsBA,SAAgB,gCAAiD;CAC/D,MAAM,SAAS,8BAA8B;AAG7C,8BAA6B,OAAO;AAGpC,yBAAwB,OAAO;AAE/B,QAAO;;;;;AAMT,SAAgB,iBACd,eACA,MACA,SAC8B;AAC9B,QAAO,cAAc,MAClB,MAAM,EAAE,KAAK,QAAQ,QAAQ,OAAO,EAAE,KAAK,QAAQ,KAAK,OAAO,QAAQ,CACzE;;;;;AAMH,SAAgB,4BACd,eACA,QACoB;AACpB,QAAO,cAAc,QAAQ,MAAM,EAAE,KAAK,WAAW,OAAO;;;;;AAM9D,SAAgB,eACd,cACA,QACS;AACT,QAAO,aAAa,QAAQ,SAAS,OAAO;;AAI9C,IAAI,iBAAyC;AAE7C,SAAgB,oBAAqC;AACnD,KAAI,CAAC,eACH,kBAAiB,+BAA+B;AAElD,QAAO;;AAGT,SAAgB,sBAA4B;AAC1C,kBAAiB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConversationList.js","names":[],"sources":["../../../../src/components/templates/messaging/ConversationList.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client/react';\nimport { gql } from '@apollo/client';\nimport { MessageCircle, Users } from 'lucide-react';\nimport { useMemo } from 'react';\n\nimport { type Conversation } from './types';\nimport { useTemplateRuntime } from '@contractspec/lib.example-shared-ui';\n\nconst CONVERSATIONS_QUERY = gql`\n query Conversations($projectId: ID!) {\n conversations(projectId: $projectId) {\n id\n name\n isGroup\n updatedAt\n participants {\n id\n userId\n displayName\n }\n }\n }\n`;\n\nexport interface ConversationListProps {\n selectedId?: string;\n onSelect?: (conversationId: string) => void;\n}\n\nexport function ConversationList({\n selectedId,\n onSelect,\n}: ConversationListProps) {\n const { projectId } = useTemplateRuntime();\n const { data, loading } = useQuery<{ conversations: Conversation[] }>(\n CONVERSATIONS_QUERY,\n {\n variables: { projectId },\n fetchPolicy: 'cache-and-network',\n }\n );\n\n const conversations: Conversation[] = useMemo(\n () => data?.conversations ?? [],\n [data]\n );\n\n return (\n <aside className=\"border-border bg-card h-full overflow-y-auto rounded-2xl border\">\n <header className=\"border-border px -4 flex items-center justify-between border-b px-4 py-3\">\n <div>\n <p className=\"text-sm font-semibold\">Conversations</p>\n <p className=\"text-muted-foreground text-xs\">\n {loading ? 'Loading…' : `${conversations.length} active`}\n </p>\n </div>\n <Users className=\"text-muted-foreground h-4 w-4\" />\n </header>\n <div className=\"divide-border/70 divide-y\">\n {conversations.map((conversation) => {\n const isSelected = selectedId === conversation.id;\n return (\n <button\n key={conversation.id}\n type=\"button\"\n className={`flex w-full flex-col items-start gap-1 px-4 py-3 text-left transition ${\n isSelected\n ? 'text-foreground bg-violet-500/10'\n : 'hover:bg-muted/40'\n }`}\n onClick={() => onSelect?.(conversation.id)}\n >\n <div className=\"flex items-center gap-2\">\n <MessageCircle className=\"text-muted-foreground h-4 w-4\" />\n <span className=\"text-sm font-medium\">\n {conversation.name || 'Untitled conversation'}\n </span>\n </div>\n <p className=\"text-muted-foreground text-xs\">\n {conversation.participants\n .map(\n (participant) =>\n participant.displayName || participant.userId\n )\n .join(' · ')}\n </p>\n </button>\n );\n })}\n {!loading && conversations.length === 0 ? (\n <p className=\"text-muted-foreground p-4 text-center text-xs\">\n No conversations yet.\n </p>\n ) : null}\n </div>\n </aside>\n );\n}\n"],"mappings":";;;;;;;;AAQA,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;AAqB/B,SAAgB,iBAAiB,EAC/B,YACA,YACwB;CACxB,MAAM,EAAE,cAAc,oBAAoB;CAC1C,MAAM,EAAE,MAAM,YAAY,SACxB,qBACA;EACE,WAAW,EAAE,WAAW;EACxB,aAAa;EACd,CACF;CAED,MAAM,gBAAgC,cAC9B,MAAM,iBAAiB,EAAE,EAC/B,CAAC,KAAK,CACP;AAED,QACE,qBAAC;EAAM,WAAU;aACf,qBAAC;GAAO,WAAU;cAChB,qBAAC,oBACC,oBAAC;IAAE,WAAU;cAAwB;KAAiB,EACtD,oBAAC;IAAE,WAAU;cACV,UAAU,aAAa,GAAG,cAAc,OAAO;KAC9C,IACA,EACN,oBAAC,SAAM,WAAU,kCAAkC;IAC5C,EACT,qBAAC;GAAI,WAAU;cACZ,cAAc,KAAK,iBAAiB;AAEnC,WACE,qBAAC;KAEC,MAAK;KACL,WAAW,yEALI,eAAe,aAAa,KAOrC,qCACA;KAEN,eAAe,WAAW,aAAa,GAAG;gBAE1C,qBAAC;MAAI,WAAU;iBACb,oBAAC,iBAAc,WAAU,kCAAkC,EAC3D,oBAAC;OAAK,WAAU;iBACb,aAAa,QAAQ;QACjB;OACH,EACN,oBAAC;MAAE,WAAU;gBACV,aAAa,aACX,KACE,gBACC,YAAY,eAAe,YAAY,OAC1C,CACA,KAAK,MAAM;OACZ;OAtBC,aAAa,GAuBX;KAEX,EACD,CAAC,WAAW,cAAc,WAAW,IACpC,oBAAC;IAAE,WAAU;cAAgD;KAEzD,GACF;IACA;GACA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MessageComposer.js","names":[],"sources":["../../../../src/components/templates/messaging/MessageComposer.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\nimport { useMutation } from '@apollo/client/react';\nimport { gql } from '@apollo/client';\nimport { Send } from 'lucide-react';\nimport { useTemplateRuntime } from '@contractspec/lib.example-shared-ui';\nimport { MESSAGES_QUERY } from './MessageThread';\n\nconst SEND_MESSAGE = gql`\n mutation SendMessage($input: SendMessageInput!) {\n sendMessage(input: $input) {\n id\n }\n }\n`;\n\nexport interface MessageComposerProps {\n conversationId?: string;\n viewerId?: string;\n viewerName?: string;\n}\n\nexport function MessageComposer({\n conversationId,\n viewerId = 'local-user',\n viewerName = 'You',\n}: MessageComposerProps) {\n const { projectId } = useTemplateRuntime();\n const [content, setContent] = useState('');\n const [sendMessage, { loading }] = useMutation(SEND_MESSAGE);\n\n const handleSubmit = async (event: React.FormEvent) => {\n event.preventDefault();\n if (!conversationId || !content.trim()) return;\n await sendMessage({\n variables: {\n input: {\n projectId,\n conversationId,\n senderId: viewerId,\n senderName: viewerName,\n content: content.trim(),\n },\n },\n refetchQueries: [\n {\n query: MESSAGES_QUERY,\n variables: { conversationId },\n },\n ],\n });\n setContent('');\n };\n\n return (\n <form\n onSubmit={handleSubmit}\n className=\"border-border bg-card mt-3 flex items-center gap-2 rounded-2xl border px-4 py-3\"\n >\n <input\n type=\"text\"\n className=\"text-foreground flex-1 bg-transparent text-sm outline-none\"\n placeholder={\n conversationId ? 'Type a message…' : 'Select a conversation to start'\n }\n disabled={!conversationId || loading}\n value={content}\n onChange={(event) => setContent(event.target.value)}\n />\n <button\n type=\"submit\"\n className=\"btn-primary inline-flex items-center gap-1 text-sm\"\n disabled={!conversationId || loading || !content.trim()}\n >\n <Send className=\"h-4 w-4\" />\n Send\n </button>\n </form>\n );\n}\n"],"mappings":";;;;;;;;;;;AASA,MAAM,eAAe,GAAG;;;;;;;AAcxB,SAAgB,gBAAgB,EAC9B,gBACA,WAAW,cACX,aAAa,SACU;CACvB,MAAM,EAAE,cAAc,oBAAoB;CAC1C,MAAM,CAAC,SAAS,cAAc,SAAS,GAAG;CAC1C,MAAM,CAAC,aAAa,EAAE,aAAa,YAAY,aAAa;CAE5D,MAAM,eAAe,OAAO,UAA2B;AACrD,QAAM,gBAAgB;AACtB,MAAI,CAAC,kBAAkB,CAAC,QAAQ,MAAM,CAAE;AACxC,QAAM,YAAY;GAChB,WAAW,EACT,OAAO;IACL;IACA;IACA,UAAU;IACV,YAAY;IACZ,SAAS,QAAQ,MAAM;IACxB,EACF;GACD,gBAAgB,CACd;IACE,OAAO;IACP,WAAW,EAAE,gBAAgB;IAC9B,CACF;GACF,CAAC;AACF,aAAW,GAAG;;AAGhB,QACE,qBAAC;EACC,UAAU;EACV,WAAU;aAEV,oBAAC;GACC,MAAK;GACL,WAAU;GACV,aACE,iBAAiB,oBAAoB;GAEvC,UAAU,CAAC,kBAAkB;GAC7B,OAAO;GACP,WAAW,UAAU,WAAW,MAAM,OAAO,MAAM;IACnD,EACF,qBAAC;GACC,MAAK;GACL,WAAU;GACV,UAAU,CAAC,kBAAkB,WAAW,CAAC,QAAQ,MAAM;cAEvD,oBAAC,QAAK,WAAU,YAAY;IAErB;GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MessageThread.js","names":[],"sources":["../../../../src/components/templates/messaging/MessageThread.tsx"],"sourcesContent":["'use client';\n\nimport { useMutation, useQuery } from '@apollo/client/react';\nimport { gql } from '@apollo/client';\nimport { useEffect, useRef } from 'react';\n\nimport { useTemplateRuntime } from '@contractspec/lib.example-shared-ui';\nimport { type Message } from './types';\n\nexport const MESSAGES_QUERY = gql`\n query Messages($conversationId: ID!) {\n messages(conversationId: $conversationId, limit: 50) {\n id\n content\n senderId\n senderName\n createdAt\n status\n }\n }\n`;\n\nconst SET_READ = gql`\n mutation SetMessagesRead($conversationId: ID!, $userId: String!) {\n setMessagesRead(conversationId: $conversationId, userId: $userId)\n }\n`;\n\nexport interface MessageThreadProps {\n conversationId?: string;\n viewerId?: string;\n}\n\nexport function MessageThread({\n conversationId,\n viewerId = 'local-user',\n}: MessageThreadProps) {\n const scrollRef = useRef<HTMLDivElement>(null);\n const enabled = Boolean(conversationId);\n const { data, loading } = useQuery<{ messages: Message[] }>(MESSAGES_QUERY, {\n variables: { conversationId },\n skip: !enabled,\n fetchPolicy: 'cache-and-network',\n });\n const [setRead] = useMutation(SET_READ);\n const { projectId } = useTemplateRuntime();\n void projectId; // reserved for future perms\n\n const messages: Message[] = data?.messages ?? [];\n\n useEffect(() => {\n if (!enabled || !conversationId) return;\n setRead({ variables: { conversationId, userId: viewerId } }).catch(() => {\n /* ignore */\n });\n }, [conversationId, enabled, setRead, viewerId]);\n\n useEffect(() => {\n const container = scrollRef.current;\n if (!container) return;\n container.scrollTop = container.scrollHeight;\n }, [messages]);\n\n if (!conversationId) {\n return (\n <div className=\"border-border flex flex-1 items-center justify-center rounded-2xl border border-dashed\">\n <p className=\"text-muted-foreground text-sm\">Select a conversation</p>\n </div>\n );\n }\n\n return (\n <div className=\"border-border bg-card flex flex-1 flex-col rounded-2xl border\">\n <div ref={scrollRef} className=\"flex-1 space-y-3 overflow-y-auto p-4\">\n {loading ? (\n <p className=\"text-muted-foreground text-center text-sm\">Loading…</p>\n ) : (\n messages\n .slice()\n .reverse()\n .map((message) => (\n <div\n key={message.id}\n className={`flex flex-col ${\n message.senderId === viewerId ? 'items-end' : 'items-start'\n }`}\n >\n <div\n className={`max-w-xs rounded-2xl px-3 py-2 text-sm ${\n message.senderId === viewerId\n ? 'bg-violet-500 text-white'\n : 'bg-muted text-foreground'\n }`}\n >\n <p>{message.content}</p>\n </div>\n <span className=\"text-muted-foreground mt-1 text-xs\">\n {message.senderName || message.senderId} ·{' '}\n {new Date(message.createdAt).toLocaleTimeString([], {\n hour: '2-digit',\n minute: '2-digit',\n })}\n </span>\n </div>\n ))\n )}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;AASA,MAAa,iBAAiB,GAAG;;;;;;;;;;;;AAajC,MAAM,WAAW,GAAG;;;;;AAWpB,SAAgB,cAAc,EAC5B,gBACA,WAAW,gBACU;CACrB,MAAM,YAAY,OAAuB,KAAK;CAC9C,MAAM,UAAU,QAAQ,eAAe;CACvC,MAAM,EAAE,MAAM,YAAY,SAAkC,gBAAgB;EAC1E,WAAW,EAAE,gBAAgB;EAC7B,MAAM,CAAC;EACP,aAAa;EACd,CAAC;CACF,MAAM,CAAC,WAAW,YAAY,SAAS;CACvC,MAAM,EAAE,cAAc,oBAAoB;CAG1C,MAAM,WAAsB,MAAM,YAAY,EAAE;AAEhD,iBAAgB;AACd,MAAI,CAAC,WAAW,CAAC,eAAgB;AACjC,UAAQ,EAAE,WAAW;GAAE;GAAgB,QAAQ;GAAU,EAAE,CAAC,CAAC,YAAY,GAEvE;IACD;EAAC;EAAgB;EAAS;EAAS;EAAS,CAAC;AAEhD,iBAAgB;EACd,MAAM,YAAY,UAAU;AAC5B,MAAI,CAAC,UAAW;AAChB,YAAU,YAAY,UAAU;IAC/B,CAAC,SAAS,CAAC;AAEd,KAAI,CAAC,eACH,QACE,oBAAC;EAAI,WAAU;YACb,oBAAC;GAAE,WAAU;aAAgC;IAAyB;GAClE;AAIV,QACE,oBAAC;EAAI,WAAU;YACb,oBAAC;GAAI,KAAK;GAAW,WAAU;aAC5B,UACC,oBAAC;IAAE,WAAU;cAA4C;KAAY,GAErE,SACG,OAAO,CACP,SAAS,CACT,KAAK,YACJ,qBAAC;IAEC,WAAW,iBACT,QAAQ,aAAa,WAAW,cAAc;eAGhD,oBAAC;KACC,WAAW,0CACT,QAAQ,aAAa,WACjB,6BACA;eAGN,oBAAC,iBAAG,QAAQ,UAAY;MACpB,EACN,qBAAC;KAAK,WAAU;;MACb,QAAQ,cAAc,QAAQ;MAAS;MAAG;MAC1C,IAAI,KAAK,QAAQ,UAAU,CAAC,mBAAmB,EAAE,EAAE;OAClD,MAAM;OACN,QAAQ;OACT,CAAC;;MACG;MApBF,QAAQ,GAqBT,CACN;IAEF;GACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MessagingWorkspace.js","names":[],"sources":["../../../../src/components/templates/messaging/MessagingWorkspace.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\n\nimport { registerTemplateComponents } from '@contractspec/lib.example-shared-ui';\nimport { ConversationList } from './ConversationList';\nimport { MessageThread } from './MessageThread';\nimport { MessageComposer } from './MessageComposer';\n\nexport function MessagingWorkspace() {\n const [conversationId, setConversationId] = useState<string | undefined>();\n\n return (\n <div className=\"grid gap-4 md:grid-cols-[280px,1fr]\">\n <ConversationList\n selectedId={conversationId}\n onSelect={setConversationId}\n />\n <div className=\"flex flex-col gap-3\">\n <MessageThread conversationId={conversationId} />\n <MessageComposer conversationId={conversationId} />\n </div>\n </div>\n );\n}\n\nregisterTemplateComponents('messaging-app', {\n list: MessagingWorkspace,\n detail: MessageThread,\n form: MessageComposer,\n});\n"],"mappings":";;;;;;;;;;AASA,SAAgB,qBAAqB;CACnC,MAAM,CAAC,gBAAgB,qBAAqB,UAA8B;AAE1E,QACE,qBAAC;EAAI,WAAU;aACb,oBAAC;GACC,YAAY;GACZ,UAAU;IACV,EACF,qBAAC;GAAI,WAAU;cACb,oBAAC,iBAA8B,iBAAkB,EACjD,oBAAC,mBAAgC,iBAAkB;IAC/C;GACF;;AAIV,2BAA2B,iBAAiB;CAC1C,MAAM;CACN,QAAQ;CACR,MAAM;CACP,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LanguageSwitcher.js","names":[],"sources":["../../../../src/components/templates/recipes/LanguageSwitcher.tsx"],"sourcesContent":["export interface LanguageSwitcherProps {\n locale: 'EN' | 'FR';\n onChange: (locale: 'EN' | 'FR') => void;\n}\n\nexport function LanguageSwitcher({ locale, onChange }: LanguageSwitcherProps) {\n return (\n <div className=\"border-border bg-card text-muted-foreground inline-flex rounded-full border p-1 text-xs font-semibold\">\n {(['EN', 'FR'] as const).map((language) => (\n <button\n key={language}\n type=\"button\"\n className={`rounded-full px-3 py-1 transition ${\n locale === language\n ? 'bg-violet-500 text-white'\n : 'hover:text-foreground'\n }`}\n onClick={() => onChange(language)}\n >\n {language === 'EN' ? 'English' : 'Français'}\n </button>\n ))}\n </div>\n );\n}\n"],"mappings":";;;AAKA,SAAgB,iBAAiB,EAAE,QAAQ,YAAmC;AAC5E,QACE,oBAAC;EAAI,WAAU;YACX,CAAC,MAAM,KAAK,CAAW,KAAK,aAC5B,oBAAC;GAEC,MAAK;GACL,WAAW,qCACT,WAAW,WACP,6BACA;GAEN,eAAe,SAAS,SAAS;aAEhC,aAAa,OAAO,YAAY;KAT5B,SAUE,CACT;GACE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RecipeCard.js","names":[],"sources":["../../../../src/components/templates/recipes/RecipeCard.tsx"],"sourcesContent":["import { Heart } from 'lucide-react';\n\nimport { type Recipe } from './types';\n\nexport interface RecipeCardProps {\n recipe: Recipe;\n onSelect?: (recipe: Recipe) => void;\n onToggleFavorite?: (recipe: Recipe) => void;\n}\n\nexport function RecipeCard({\n recipe,\n onSelect,\n onToggleFavorite,\n}: RecipeCardProps) {\n return (\n <button\n type=\"button\"\n onClick={() => onSelect?.(recipe)}\n className=\"border-border bg-card flex flex-col gap-3 rounded-2xl border text-left transition hover:border-violet-400\"\n >\n {recipe.heroImageUrl ? (\n <img\n src={recipe.heroImageUrl}\n alt={recipe.name}\n className=\"h-40 w-full rounded-t-2xl object-cover\"\n />\n ) : (\n <div className=\"bg-muted h-40 rounded-t-2xl\" />\n )}\n <div className=\"space-y-2 p-4\">\n <div className=\"flex items-center justify-between\">\n <p className=\"text-base font-semibold\">{recipe.name}</p>\n <button\n type=\"button\"\n className={`inline-flex items-center justify-center rounded-full border border-transparent p-2 ${\n recipe.isFavorite\n ? 'text-red-400'\n : 'text-muted-foreground hover:text-red-400'\n }`}\n onClick={(event) => {\n event.stopPropagation();\n onToggleFavorite?.(recipe);\n }}\n >\n <Heart\n className={`h-4 w-4 ${recipe.isFavorite ? 'fill-red-400' : ''}`}\n />\n </button>\n </div>\n <p className=\"text-muted-foreground line-clamp-2 text-sm\">\n {recipe.description}\n </p>\n <div className=\"text-muted-foreground flex flex-wrap gap-3 text-xs\">\n {recipe.prepTimeMinutes ? (\n <span>Prep {recipe.prepTimeMinutes}m</span>\n ) : null}\n {recipe.cookTimeMinutes ? (\n <span>Cook {recipe.cookTimeMinutes}m</span>\n ) : null}\n {recipe.servings ? <span>{recipe.servings} servings</span> : null}\n </div>\n </div>\n </button>\n );\n}\n"],"mappings":";;;;AAUA,SAAgB,WAAW,EACzB,QACA,UACA,oBACkB;AAClB,QACE,qBAAC;EACC,MAAK;EACL,eAAe,WAAW,OAAO;EACjC,WAAU;aAET,OAAO,eACN,oBAAC;GACC,KAAK,OAAO;GACZ,KAAK,OAAO;GACZ,WAAU;IACV,GAEF,oBAAC,SAAI,WAAU,gCAAgC,EAEjD,qBAAC;GAAI,WAAU;;IACb,qBAAC;KAAI,WAAU;gBACb,oBAAC;MAAE,WAAU;gBAA2B,OAAO;OAAS,EACxD,oBAAC;MACC,MAAK;MACL,WAAW,sFACT,OAAO,aACH,iBACA;MAEN,UAAU,UAAU;AAClB,aAAM,iBAAiB;AACvB,0BAAmB,OAAO;;gBAG5B,oBAAC,SACC,WAAW,WAAW,OAAO,aAAa,iBAAiB,OAC3D;OACK;MACL;IACN,oBAAC;KAAE,WAAU;eACV,OAAO;MACN;IACJ,qBAAC;KAAI,WAAU;;MACZ,OAAO,kBACN,qBAAC;OAAK;OAAM,OAAO;OAAgB;UAAQ,GACzC;MACH,OAAO,kBACN,qBAAC;OAAK;OAAM,OAAO;OAAgB;UAAQ,GACzC;MACH,OAAO,WAAW,qBAAC,qBAAM,OAAO,UAAS,eAAgB,GAAG;;MACzD;;IACF;GACC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RecipeDetail.js","names":[],"sources":["../../../../src/components/templates/recipes/RecipeDetail.tsx"],"sourcesContent":["import { BookOpen } from 'lucide-react';\n\nimport { type Recipe } from './types';\n\nexport interface RecipeDetailProps {\n recipe?: Recipe;\n}\n\nexport function RecipeDetail({ recipe }: RecipeDetailProps) {\n if (!recipe) {\n return (\n <div className=\"border-border flex flex-1 items-center justify-center rounded-2xl border border-dashed\">\n <p className=\"text-muted-foreground text-sm\">\n Select a recipe to view details.\n </p>\n </div>\n );\n }\n\n return (\n <article className=\"border-border bg-card space-y-4 rounded-2xl border p-6\">\n <header className=\"flex flex-wrap items-center gap-3\">\n <BookOpen className=\"text-muted-foreground h-5 w-5\" />\n <div>\n <h2 className=\"text-xl font-semibold\">{recipe.name}</h2>\n <p className=\"text-muted-foreground text-sm\">{recipe.description}</p>\n </div>\n </header>\n\n <section>\n <h3 className=\"text-muted-foreground text-sm font-semibold tracking-wide uppercase\">\n Ingredients\n </h3>\n <ul className=\"text-foreground mt-2 list-disc space-y-1 pl-6 text-sm\">\n {recipe.ingredients.map((ingredient) => (\n <li key={ingredient.id}>\n {ingredient.name} – {ingredient.quantity}\n </li>\n ))}\n </ul>\n </section>\n\n <section>\n <h3 className=\"text-muted-foreground text-sm font-semibold tracking-wide uppercase\">\n Instructions\n </h3>\n <ol className=\"text-foreground mt-2 list-decimal space-y-2 pl-6 text-sm\">\n {recipe.instructions.map((instruction) => (\n <li key={instruction.id}>{instruction.content}</li>\n ))}\n </ol>\n </section>\n </article>\n );\n}\n"],"mappings":";;;;AAQA,SAAgB,aAAa,EAAE,UAA6B;AAC1D,KAAI,CAAC,OACH,QACE,oBAAC;EAAI,WAAU;YACb,oBAAC;GAAE,WAAU;aAAgC;IAEzC;GACA;AAIV,QACE,qBAAC;EAAQ,WAAU;;GACjB,qBAAC;IAAO,WAAU;eAChB,oBAAC,YAAS,WAAU,kCAAkC,EACtD,qBAAC,oBACC,oBAAC;KAAG,WAAU;eAAyB,OAAO;MAAU,EACxD,oBAAC;KAAE,WAAU;eAAiC,OAAO;MAAgB,IACjE;KACC;GAET,qBAAC,wBACC,oBAAC;IAAG,WAAU;cAAsE;KAE/E,EACL,oBAAC;IAAG,WAAU;cACX,OAAO,YAAY,KAAK,eACvB,qBAAC;KACE,WAAW;KAAK;KAAI,WAAW;SADzB,WAAW,GAEf,CACL;KACC,IACG;GAEV,qBAAC,wBACC,oBAAC;IAAG,WAAU;cAAsE;KAE/E,EACL,oBAAC;IAAG,WAAU;cACX,OAAO,aAAa,KAAK,gBACxB,oBAAC,kBAAyB,YAAY,WAA7B,YAAY,GAA8B,CACnD;KACC,IACG;;GACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RecipeList.js","names":[],"sources":["../../../../src/components/templates/recipes/RecipeList.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\nimport { useMutation, useQuery } from '@apollo/client/react';\nimport { gql } from '@apollo/client';\n\nimport {\n registerTemplateComponents,\n useTemplateRuntime,\n} from '@contractspec/lib.example-shared-ui';\nimport { LanguageSwitcher } from './LanguageSwitcher';\nimport { RecipeCard } from './RecipeCard';\nimport { RecipeDetail } from './RecipeDetail';\nimport { type Recipe } from './types';\n\nconst RECIPES_QUERY = gql`\n query Recipes($projectId: ID!, $locale: RecipeLocale!) {\n recipes(projectId: $projectId, locale: $locale) {\n id\n name\n description\n heroImageUrl\n prepTimeMinutes\n cookTimeMinutes\n servings\n isFavorite\n locale\n category {\n id\n nameEn\n nameFr\n }\n ingredients {\n id\n name\n quantity\n }\n instructions {\n id\n content\n ordering\n }\n }\n }\n`;\n\nconst FAVORITE_RECIPE = gql`\n mutation FavoriteRecipe($id: ID!, $isFavorite: Boolean!) {\n favoriteRecipe(id: $id, isFavorite: $isFavorite) {\n id\n isFavorite\n }\n }\n`;\n\nexport function RecipeList() {\n const { projectId } = useTemplateRuntime();\n const [locale, setLocale] = useState<'EN' | 'FR'>('EN');\n const [selected, setSelected] = useState<Recipe | undefined>();\n const [search, setSearch] = useState('');\n const { data, loading } = useQuery<{ recipes: Recipe[] }>(RECIPES_QUERY, {\n variables: { projectId, locale },\n fetchPolicy: 'cache-and-network',\n });\n const [favoriteRecipe] = useMutation(FAVORITE_RECIPE);\n\n const recipes: Recipe[] = data?.recipes ?? [];\n const filtered = recipes.filter((recipe) =>\n recipe.name.toLowerCase().includes(search.toLowerCase())\n );\n\n const handleToggleFavorite = async (recipe: Recipe) => {\n await favoriteRecipe({\n variables: { id: recipe.id, isFavorite: !recipe.isFavorite },\n optimisticResponse: {\n favoriteRecipe: {\n __typename: 'Recipe',\n id: recipe.id,\n isFavorite: !recipe.isFavorite,\n },\n },\n });\n };\n\n return (\n <div className=\"space-y-4\">\n <div className=\"flex flex-wrap items-center gap-3\">\n <LanguageSwitcher locale={locale} onChange={setLocale} />\n <input\n type=\"search\"\n placeholder={\n locale === 'EN' ? 'Search recipes' : 'Rechercher des recettes'\n }\n className=\"border-border bg-card flex-1 rounded-full border px-4 py-2 text-sm\"\n value={search}\n onChange={(event) => setSearch(event.target.value)}\n />\n </div>\n\n {loading ? (\n <p className=\"text-muted-foreground text-sm\">Loading recipes…</p>\n ) : (\n <div className=\"grid gap-4 md:grid-cols-3\">\n {filtered.map((recipe) => (\n <RecipeCard\n key={recipe.id}\n recipe={recipe}\n onSelect={setSelected}\n onToggleFavorite={handleToggleFavorite}\n />\n ))}\n </div>\n )}\n\n <RecipeDetail recipe={selected} />\n </div>\n );\n}\n\nregisterTemplateComponents('recipe-app-i18n', {\n list: RecipeList,\n detail: RecipeDetail,\n});\n"],"mappings":";;;;;;;;;;;;AAeA,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BzB,MAAM,kBAAkB,GAAG;;;;;;;;AAS3B,SAAgB,aAAa;CAC3B,MAAM,EAAE,cAAc,oBAAoB;CAC1C,MAAM,CAAC,QAAQ,aAAa,SAAsB,KAAK;CACvD,MAAM,CAAC,UAAU,eAAe,UAA8B;CAC9D,MAAM,CAAC,QAAQ,aAAa,SAAS,GAAG;CACxC,MAAM,EAAE,MAAM,YAAY,SAAgC,eAAe;EACvE,WAAW;GAAE;GAAW;GAAQ;EAChC,aAAa;EACd,CAAC;CACF,MAAM,CAAC,kBAAkB,YAAY,gBAAgB;CAGrD,MAAM,YADoB,MAAM,WAAW,EAAE,EACpB,QAAQ,WAC/B,OAAO,KAAK,aAAa,CAAC,SAAS,OAAO,aAAa,CAAC,CACzD;CAED,MAAM,uBAAuB,OAAO,WAAmB;AACrD,QAAM,eAAe;GACnB,WAAW;IAAE,IAAI,OAAO;IAAI,YAAY,CAAC,OAAO;IAAY;GAC5D,oBAAoB,EAClB,gBAAgB;IACd,YAAY;IACZ,IAAI,OAAO;IACX,YAAY,CAAC,OAAO;IACrB,EACF;GACF,CAAC;;AAGJ,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAyB;KAAQ,UAAU;MAAa,EACzD,oBAAC;KACC,MAAK;KACL,aACE,WAAW,OAAO,mBAAmB;KAEvC,WAAU;KACV,OAAO;KACP,WAAW,UAAU,UAAU,MAAM,OAAO,MAAM;MAClD;KACE;GAEL,UACC,oBAAC;IAAE,WAAU;cAAgC;KAAoB,GAEjE,oBAAC;IAAI,WAAU;cACZ,SAAS,KAAK,WACb,oBAAC;KAES;KACR,UAAU;KACV,kBAAkB;OAHb,OAAO,GAIZ,CACF;KACE;GAGR,oBAAC,gBAAa,QAAQ,WAAY;;GAC9B;;AAIV,2BAA2B,mBAAmB;CAC5C,MAAM;CACN,QAAQ;CACT,CAAC"}