@contractspec/bundle.library 3.9.0 → 3.9.3

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 (724) hide show
  1. package/.turbo/turbo-build.log +612 -608
  2. package/CHANGELOG.md +89 -0
  3. package/README.md +2 -1
  4. package/dist/__tests__/mocks/prisma.d.ts +5 -5
  5. package/dist/application/context-storage/index.js +1 -1
  6. package/dist/application/index.js +6 -6
  7. package/dist/application/mcp/cliMcp.js +2 -2
  8. package/dist/application/mcp/cliMcp.onboarding.js +1 -1
  9. package/dist/application/mcp/common.js +1 -1
  10. package/dist/application/mcp/contractsMcp.js +2 -2
  11. package/dist/application/mcp/contractsMcpAdoptionTools.js +1 -1
  12. package/dist/application/mcp/contractsMcpResources.js +2 -2
  13. package/dist/application/mcp/contractsMcpTools.js +1 -1
  14. package/dist/application/mcp/docsMcp.catalog.js +2 -2
  15. package/dist/application/mcp/docsMcp.data.js +1 -1
  16. package/dist/application/mcp/docsMcp.js +3 -3
  17. package/dist/application/mcp/docsMcp.prompts.js +3 -3
  18. package/dist/application/mcp/docsMcp.reference.js +2 -2
  19. package/dist/application/mcp/docsMcp.resources.js +2 -2
  20. package/dist/application/mcp/docsMcp.tools.js +2 -2
  21. package/dist/application/mcp/index.js +6 -6
  22. package/dist/application/mcp/internalMcp.js +2 -2
  23. package/dist/application/mcp/normalizeMcpRequest.js +1 -1
  24. package/dist/application/mcp/providerRankingMcp.js +1 -1
  25. package/dist/bundles/LibraryBundle.d.ts +19 -111
  26. package/dist/bundles/LibraryBundle.js +1 -1
  27. package/dist/bundles/index.js +1 -1
  28. package/dist/components/docs/DocsIndexPage.js +2 -2
  29. package/dist/components/docs/advanced/AdvancedMCPPage.js +3 -3
  30. package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -1
  31. package/dist/components/docs/advanced/AdvancedRenderersPage.js +2 -2
  32. package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -4
  33. package/dist/components/docs/advanced/AdvancedTelemetryPage.js +2 -2
  34. package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -2
  35. package/dist/components/docs/advanced/index.js +9 -9
  36. package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +6 -6
  37. package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +3 -3
  38. package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -7
  39. package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -6
  40. package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -2
  41. package/dist/components/docs/architecture/ArchitectureOverviewPage.js +1 -1
  42. package/dist/components/docs/architecture/index.js +20 -20
  43. package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -1
  44. package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -1
  45. package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -1
  46. package/dist/components/docs/comparison/ComparisonOverviewPage.js +1 -1
  47. package/dist/components/docs/comparison/ComparisonWindmillPage.js +1 -1
  48. package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -1
  49. package/dist/components/docs/comparison/index.js +1 -1
  50. package/dist/components/docs/docsManifest.js +1 -1
  51. package/dist/components/docs/ecosystem/IntegrationsPage.js +2 -2
  52. package/dist/components/docs/ecosystem/PluginsPage.js +4 -4
  53. package/dist/components/docs/ecosystem/RegistryPage.js +4 -4
  54. package/dist/components/docs/ecosystem/TemplatesPage.js +3 -3
  55. package/dist/components/docs/ecosystem/index.js +11 -11
  56. package/dist/components/docs/examples/DocsExamplesPage.js +1 -1
  57. package/dist/components/docs/examples/ExampleShowcasePage.js +2 -2
  58. package/dist/components/docs/examples/exampleShowcaseData.js +2 -2
  59. package/dist/components/docs/examples/index.js +2 -2
  60. package/dist/components/docs/generated/docs-index.generated.js +1 -1
  61. package/dist/components/docs/generated/index.d.ts +7 -1
  62. package/dist/components/docs/generated/index.js +1 -1
  63. package/dist/components/docs/generated/loader.js +1 -1
  64. package/dist/components/docs/getting-started/CLIPage.js +4 -4
  65. package/dist/components/docs/getting-started/CompatibilityPage.js +1 -1
  66. package/dist/components/docs/getting-started/DataViewTutorialPage.js +4 -4
  67. package/dist/components/docs/getting-started/DeveloperToolsPage.js +1 -1
  68. package/dist/components/docs/getting-started/HelloWorldPage.js +5 -5
  69. package/dist/components/docs/getting-started/InstallationPage.js +3 -3
  70. package/dist/components/docs/getting-started/StartHerePage.js +3 -3
  71. package/dist/components/docs/getting-started/TroubleshootingPage.js +2 -2
  72. package/dist/components/docs/getting-started/VSCodeExtensionPage.js +1 -1
  73. package/dist/components/docs/getting-started/getting-started.docblocks.js +2 -2
  74. package/dist/components/docs/getting-started/index.js +17 -17
  75. package/dist/components/docs/guides/GuideCIDiffGatingPage.js +2 -2
  76. package/dist/components/docs/guides/GuideConnectInRepoPage.js +6 -6
  77. package/dist/components/docs/guides/GuideContractTypesPage.js +6 -6
  78. package/dist/components/docs/guides/GuideDocsPipelinePage.js +3 -3
  79. package/dist/components/docs/guides/GuideFirstModuleBundlePage.js +4 -4
  80. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -2
  81. package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.js +7 -7
  82. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -8
  83. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
  84. package/dist/components/docs/guides/GuideReleaseCapsulesPage.js +3 -3
  85. package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +4 -4
  86. package/dist/components/docs/guides/GuidesIndexPage.js +2 -2
  87. package/dist/components/docs/guides/index.js +43 -43
  88. package/dist/components/docs/index.js +375 -255
  89. package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -2
  90. package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -3
  91. package/dist/components/docs/integrations/IntegrationsGithubPage.js +2 -2
  92. package/dist/components/docs/integrations/IntegrationsGmailPage.js +3 -3
  93. package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -3
  94. package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +2 -2
  95. package/dist/components/docs/integrations/IntegrationsMistralPage.js +2 -2
  96. package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +2 -2
  97. package/dist/components/docs/integrations/IntegrationsOverviewPage.js +1 -1
  98. package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +2 -2
  99. package/dist/components/docs/integrations/IntegrationsPowensPage.js +2 -2
  100. package/dist/components/docs/integrations/IntegrationsQdrantPage.js +5 -5
  101. package/dist/components/docs/integrations/IntegrationsResendPage.js +3 -3
  102. package/dist/components/docs/integrations/IntegrationsS3Page.js +4 -4
  103. package/dist/components/docs/integrations/IntegrationsSlackPage.js +2 -2
  104. package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +2 -2
  105. package/dist/components/docs/integrations/IntegrationsStripePage.js +2 -2
  106. package/dist/components/docs/integrations/IntegrationsTwilioPage.js +3 -3
  107. package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -2
  108. package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -2
  109. package/dist/components/docs/integrations/index.js +39 -39
  110. package/dist/components/docs/intent/ContractFirstApiPage.js +2 -2
  111. package/dist/components/docs/intent/DeterministicCodegenPage.js +2 -2
  112. package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +7 -7
  113. package/dist/components/docs/intent/OpenapiAlternativePage.js +3 -3
  114. package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +4 -4
  115. package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -2
  116. package/dist/components/docs/intent/index.js +15 -15
  117. package/dist/components/docs/intent/intent-pages.docblocks.js +1 -1
  118. package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +2 -2
  119. package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +2 -2
  120. package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +1 -1
  121. package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +2 -2
  122. package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +2 -2
  123. package/dist/components/docs/knowledge/index.js +5 -5
  124. package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +3 -3
  125. package/dist/components/docs/libraries/LibrariesAiAgentPage.js +3 -3
  126. package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +4 -4
  127. package/dist/components/docs/libraries/LibrariesContentGenPage.js +2 -2
  128. package/dist/components/docs/libraries/LibrariesContractsPage.js +2 -2
  129. package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +3 -3
  130. package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.content.d.ts +67 -0
  131. package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.content.js +86 -0
  132. package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.d.ts +1 -0
  133. package/dist/components/docs/libraries/LibrariesCrossPlatformUIPage.js +86 -0
  134. package/dist/components/docs/libraries/LibrariesDataBackendPage.js +2 -2
  135. package/dist/components/docs/libraries/LibrariesDataViewsPage.js +3 -3
  136. package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +38 -2
  137. package/dist/components/docs/libraries/LibrariesEvolutionPage.js +4 -4
  138. package/dist/components/docs/libraries/LibrariesGraphQLPage.js +2 -2
  139. package/dist/components/docs/libraries/LibrariesGrowthPage.js +3 -3
  140. package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -3
  141. package/dist/components/docs/libraries/LibrariesObservabilityPage.js +5 -5
  142. package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -4
  143. package/dist/components/docs/libraries/LibrariesOverviewPage.js +1 -1
  144. package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +4 -4
  145. package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -3
  146. package/dist/components/docs/libraries/LibrariesResiliencePage.js +4 -4
  147. package/dist/components/docs/libraries/LibrariesRuntimePage.js +2 -2
  148. package/dist/components/docs/libraries/LibrariesSLOPage.js +3 -3
  149. package/dist/components/docs/libraries/LibrariesSchemaPage.js +3 -3
  150. package/dist/components/docs/libraries/LibrariesSupportBotPage.js +3 -3
  151. package/dist/components/docs/libraries/LibrariesTestingPage.js +3 -3
  152. package/dist/components/docs/libraries/LibrariesUIKitPage.js +2 -2
  153. package/dist/components/docs/libraries/LibrariesUIKitWebPage.js +2 -2
  154. package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -3
  155. package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +2 -2
  156. package/dist/components/docs/libraries/index.d.ts +1 -0
  157. package/dist/components/docs/libraries/index.js +173 -53
  158. package/dist/components/docs/manifesto/ManifestoPage.js +1 -1
  159. package/dist/components/docs/ops/AutoEvolutionOpsPage.js +2 -2
  160. package/dist/components/docs/ops/DistributedTracingOpsPage.js +2 -2
  161. package/dist/components/docs/ops/index.js +3 -3
  162. package/dist/components/docs/ops/ops-lifecycle.docblocks.js +2 -2
  163. package/dist/components/docs/ops/ops-runbooks-a.docblocks.js +2 -2
  164. package/dist/components/docs/ops/ops-runbooks-b.docblocks.js +2 -2
  165. package/dist/components/docs/ops/ops-slo-tenant.docblocks.js +2 -2
  166. package/dist/components/docs/ops/ops-top.docs.js +2 -2
  167. package/dist/components/docs/ops/ops.docs.js +6 -6
  168. package/dist/components/docs/product/product.docblocks.js +2 -2
  169. package/dist/components/docs/reference/DocsMarkdownContent.js +2 -2
  170. package/dist/components/docs/reference/DocsReferenceContent.js +3 -3
  171. package/dist/components/docs/reference/DocsReferenceIndexClient.js +2 -2
  172. package/dist/components/docs/reference/DocsReferenceIndexPage.js +2 -2
  173. package/dist/components/docs/reference/DocsReferencePage.js +3 -3
  174. package/dist/components/docs/reference/docsMarkdownParser.js +2 -2
  175. package/dist/components/docs/reference/index.js +4 -4
  176. package/dist/components/docs/safety/SafetyAuditingPage.js +2 -2
  177. package/dist/components/docs/safety/SafetyMigrationsPage.js +2 -2
  178. package/dist/components/docs/safety/SafetyOverviewPage.js +1 -1
  179. package/dist/components/docs/safety/SafetyPDPPage.js +2 -2
  180. package/dist/components/docs/safety/SafetySecurityTrustPage.js +1 -1
  181. package/dist/components/docs/safety/SafetySigningPage.js +3 -3
  182. package/dist/components/docs/safety/SafetyTenantIsolationPage.js +2 -2
  183. package/dist/components/docs/safety/index.js +7 -7
  184. package/dist/components/docs/shared/StudioPrompt.js +1 -1
  185. package/dist/components/docs/specs/SpecsBuilderControlPlanePage.js +4 -4
  186. package/dist/components/docs/specs/SpecsCapabilitiesPage.js +2 -2
  187. package/dist/components/docs/specs/SpecsConnectPage.js +2 -2
  188. package/dist/components/docs/specs/SpecsDataViewsPage.js +2 -2
  189. package/dist/components/docs/specs/SpecsModuleBundlesPage.js +3 -3
  190. package/dist/components/docs/specs/SpecsOverlaysPage.js +2 -2
  191. package/dist/components/docs/specs/SpecsOverviewPage.js +1 -1
  192. package/dist/components/docs/specs/SpecsPolicyPage.js +3 -3
  193. package/dist/components/docs/specs/SpecsWorkflowsPage.js +2 -2
  194. package/dist/components/docs/specs/index.js +13 -13
  195. package/dist/components/docs/studio/StudioBYOKPage.js +1 -1
  196. package/dist/components/docs/studio/StudioDeploymentsPage.js +1 -1
  197. package/dist/components/docs/studio/StudioGettingStartedPage.js +1 -1
  198. package/dist/components/docs/studio/StudioIntegrationsPage.js +1 -1
  199. package/dist/components/docs/studio/StudioOverviewPage.js +1 -1
  200. package/dist/components/docs/studio/StudioVisualBuilderPage.js +1 -1
  201. package/dist/components/docs/studio/index.js +1 -1
  202. package/dist/components/docs/tech/contracts/tech-docs.docblocks.js +2 -2
  203. package/dist/components/integrations/index.js +2 -2
  204. package/dist/components/integrations/molecules/IntegrationCard.js +1 -1
  205. package/dist/components/integrations/organisms/IntegrationMarketplace.js +1 -1
  206. package/dist/components/integrations/organisms/IntegrationSettings.js +2 -2
  207. package/dist/components/integrations/organisms/KnowledgeSourceList.js +1 -1
  208. package/dist/components/legal/PrivacyTemplate.js +1 -1
  209. package/dist/components/legal/TermsTemplate.js +1 -1
  210. package/dist/components/legal/index.js +1 -1
  211. package/dist/components/shared/FeatureGateNotice.js +1 -1
  212. package/dist/components/shared/index.js +1 -1
  213. package/dist/components/shell/WorkspaceHeader.js +1 -1
  214. package/dist/components/shell/WorkspaceProjectShellLayout.js +1 -1
  215. package/dist/components/shell/WorkspaceShellRenderer.js +1 -1
  216. package/dist/components/shell/WorkspaceSidebar.js +1 -1
  217. package/dist/components/shell/index.js +1 -1
  218. package/dist/components/templates/engine/index.js +1 -1
  219. package/dist/components/templates/index.js +11 -11
  220. package/dist/components/templates/messaging/ConversationList.js +2 -2
  221. package/dist/components/templates/messaging/MessageComposer.js +4 -4
  222. package/dist/components/templates/messaging/MessageThread.js +3 -3
  223. package/dist/components/templates/messaging/MessagingWorkspace.js +5 -5
  224. package/dist/components/templates/messaging/index.js +5 -5
  225. package/dist/components/templates/recipes/LanguageSwitcher.js +1 -1
  226. package/dist/components/templates/recipes/RecipeCard.js +1 -1
  227. package/dist/components/templates/recipes/RecipeDetail.js +1 -1
  228. package/dist/components/templates/recipes/RecipeList.js +3 -3
  229. package/dist/components/templates/recipes/index.js +3 -3
  230. package/dist/components/templates/todos/FilterBar.js +1 -1
  231. package/dist/components/templates/todos/TaskForm.js +2 -2
  232. package/dist/components/templates/todos/TaskItem.js +1 -1
  233. package/dist/components/templates/todos/TaskList.js +5 -5
  234. package/dist/components/templates/todos/index.js +5 -5
  235. package/dist/config/contractspec-blueprint.js +1 -1
  236. package/dist/config/contractspec-branding.js +1 -1
  237. package/dist/config/contractspec-routes.js +1 -1
  238. package/dist/config/index.js +1 -1
  239. package/dist/features/contracts-registry.js +1 -1
  240. package/dist/features/docs/docs.contracts.js +1 -1
  241. package/dist/features/docs/index.js +1 -1
  242. package/dist/features/docs.feature.js +1 -1
  243. package/dist/features/index.js +1 -1
  244. package/dist/features/mcp.feature.js +1 -1
  245. package/dist/features/presentations.feature.js +1 -1
  246. package/dist/features/registry.js +1 -1
  247. package/dist/index.d.ts +1 -0
  248. package/dist/index.js +382 -262
  249. package/dist/infrastructure/elysia/index.js +1 -1
  250. package/dist/infrastructure/elysia/logger.js +1 -1
  251. package/dist/infrastructure/index.js +1 -1
  252. package/dist/libs/email/client.js +1 -1
  253. package/dist/libs/email/contact.js +3 -3
  254. package/dist/libs/email/newsletter.js +3 -3
  255. package/dist/libs/email/utils.js +2 -2
  256. package/dist/libs/email/waitlist-application.js +3 -3
  257. package/dist/libs/email/waitlist.js +3 -3
  258. package/dist/libs/email.js +6 -6
  259. package/dist/libs/posthog/client.js +1 -1
  260. package/dist/libs/posthog/native.js +1 -1
  261. package/dist/libs/posthog/server.js +1 -1
  262. package/dist/libs/pricing-examples.js +1 -1
  263. package/dist/node/application/context-storage/index.js +1 -1
  264. package/dist/node/application/index.js +6 -6
  265. package/dist/node/application/mcp/cliMcp.js +2 -2
  266. package/dist/node/application/mcp/cliMcp.onboarding.js +1 -1
  267. package/dist/node/application/mcp/common.js +1 -1
  268. package/dist/node/application/mcp/contractsMcp.js +2 -2
  269. package/dist/node/application/mcp/contractsMcpAdoptionTools.js +1 -1
  270. package/dist/node/application/mcp/contractsMcpResources.js +2 -2
  271. package/dist/node/application/mcp/contractsMcpTools.js +1 -1
  272. package/dist/node/application/mcp/docsMcp.catalog.js +2 -2
  273. package/dist/node/application/mcp/docsMcp.data.js +1 -1
  274. package/dist/node/application/mcp/docsMcp.js +3 -3
  275. package/dist/node/application/mcp/docsMcp.prompts.js +3 -3
  276. package/dist/node/application/mcp/docsMcp.reference.js +2 -2
  277. package/dist/node/application/mcp/docsMcp.resources.js +2 -2
  278. package/dist/node/application/mcp/docsMcp.tools.js +2 -2
  279. package/dist/node/application/mcp/index.js +6 -6
  280. package/dist/node/application/mcp/internalMcp.js +2 -2
  281. package/dist/node/application/mcp/normalizeMcpRequest.js +1 -1
  282. package/dist/node/application/mcp/providerRankingMcp.js +1 -1
  283. package/dist/node/bundles/LibraryBundle.js +1 -1
  284. package/dist/node/bundles/index.js +1 -1
  285. package/dist/node/components/docs/DocsIndexPage.js +2 -2
  286. package/dist/node/components/docs/advanced/AdvancedMCPPage.js +3 -3
  287. package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -1
  288. package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +2 -2
  289. package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -4
  290. package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +2 -2
  291. package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -2
  292. package/dist/node/components/docs/advanced/index.js +9 -9
  293. package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +6 -6
  294. package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +3 -3
  295. package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -7
  296. package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -6
  297. package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -2
  298. package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +1 -1
  299. package/dist/node/components/docs/architecture/index.js +20 -20
  300. package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -1
  301. package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -1
  302. package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -1
  303. package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +1 -1
  304. package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +1 -1
  305. package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -1
  306. package/dist/node/components/docs/comparison/index.js +1 -1
  307. package/dist/node/components/docs/docsManifest.js +1 -1
  308. package/dist/node/components/docs/ecosystem/IntegrationsPage.js +2 -2
  309. package/dist/node/components/docs/ecosystem/PluginsPage.js +4 -4
  310. package/dist/node/components/docs/ecosystem/RegistryPage.js +4 -4
  311. package/dist/node/components/docs/ecosystem/TemplatesPage.js +3 -3
  312. package/dist/node/components/docs/ecosystem/index.js +11 -11
  313. package/dist/node/components/docs/examples/DocsExamplesPage.js +1 -1
  314. package/dist/node/components/docs/examples/ExampleShowcasePage.js +2 -2
  315. package/dist/node/components/docs/examples/exampleShowcaseData.js +2 -2
  316. package/dist/node/components/docs/examples/index.js +2 -2
  317. package/dist/node/components/docs/generated/docs-index.generated.js +1 -1
  318. package/dist/node/components/docs/generated/index.js +1 -1
  319. package/dist/node/components/docs/generated/loader.js +1 -1
  320. package/dist/node/components/docs/getting-started/CLIPage.js +4 -4
  321. package/dist/node/components/docs/getting-started/CompatibilityPage.js +1 -1
  322. package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +4 -4
  323. package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +1 -1
  324. package/dist/node/components/docs/getting-started/HelloWorldPage.js +5 -5
  325. package/dist/node/components/docs/getting-started/InstallationPage.js +3 -3
  326. package/dist/node/components/docs/getting-started/StartHerePage.js +3 -3
  327. package/dist/node/components/docs/getting-started/TroubleshootingPage.js +2 -2
  328. package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +1 -1
  329. package/dist/node/components/docs/getting-started/getting-started.docblocks.js +2 -2
  330. package/dist/node/components/docs/getting-started/index.js +17 -17
  331. package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +2 -2
  332. package/dist/node/components/docs/guides/GuideConnectInRepoPage.js +6 -6
  333. package/dist/node/components/docs/guides/GuideContractTypesPage.js +6 -6
  334. package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +3 -3
  335. package/dist/node/components/docs/guides/GuideFirstModuleBundlePage.js +4 -4
  336. package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -2
  337. package/dist/node/components/docs/guides/GuideHostBuilderWorkbenchPage.js +7 -7
  338. package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -8
  339. package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
  340. package/dist/node/components/docs/guides/GuideReleaseCapsulesPage.js +3 -3
  341. package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +4 -4
  342. package/dist/node/components/docs/guides/GuidesIndexPage.js +2 -2
  343. package/dist/node/components/docs/guides/index.js +43 -43
  344. package/dist/node/components/docs/index.js +375 -255
  345. package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -2
  346. package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -3
  347. package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +2 -2
  348. package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +3 -3
  349. package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -3
  350. package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +2 -2
  351. package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +2 -2
  352. package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +2 -2
  353. package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +1 -1
  354. package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +2 -2
  355. package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +2 -2
  356. package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +5 -5
  357. package/dist/node/components/docs/integrations/IntegrationsResendPage.js +3 -3
  358. package/dist/node/components/docs/integrations/IntegrationsS3Page.js +4 -4
  359. package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +2 -2
  360. package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +2 -2
  361. package/dist/node/components/docs/integrations/IntegrationsStripePage.js +2 -2
  362. package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +3 -3
  363. package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -2
  364. package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -2
  365. package/dist/node/components/docs/integrations/index.js +39 -39
  366. package/dist/node/components/docs/intent/ContractFirstApiPage.js +2 -2
  367. package/dist/node/components/docs/intent/DeterministicCodegenPage.js +2 -2
  368. package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +7 -7
  369. package/dist/node/components/docs/intent/OpenapiAlternativePage.js +3 -3
  370. package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +4 -4
  371. package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -2
  372. package/dist/node/components/docs/intent/index.js +15 -15
  373. package/dist/node/components/docs/intent/intent-pages.docblocks.js +1 -1
  374. package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +2 -2
  375. package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +2 -2
  376. package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +1 -1
  377. package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +2 -2
  378. package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +2 -2
  379. package/dist/node/components/docs/knowledge/index.js +5 -5
  380. package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +3 -3
  381. package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +3 -3
  382. package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +4 -4
  383. package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +2 -2
  384. package/dist/node/components/docs/libraries/LibrariesContractsPage.js +2 -2
  385. package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +3 -3
  386. package/dist/node/components/docs/libraries/LibrariesCrossPlatformUIPage.content.js +85 -0
  387. package/dist/node/components/docs/libraries/LibrariesCrossPlatformUIPage.js +85 -0
  388. package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +2 -2
  389. package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +3 -3
  390. package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +38 -2
  391. package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +4 -4
  392. package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +2 -2
  393. package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +3 -3
  394. package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -3
  395. package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +5 -5
  396. package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -4
  397. package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +1 -1
  398. package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +4 -4
  399. package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -3
  400. package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +4 -4
  401. package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +2 -2
  402. package/dist/node/components/docs/libraries/LibrariesSLOPage.js +3 -3
  403. package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +3 -3
  404. package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +3 -3
  405. package/dist/node/components/docs/libraries/LibrariesTestingPage.js +3 -3
  406. package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +2 -2
  407. package/dist/node/components/docs/libraries/LibrariesUIKitWebPage.js +2 -2
  408. package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -3
  409. package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +2 -2
  410. package/dist/node/components/docs/libraries/index.js +173 -53
  411. package/dist/node/components/docs/manifesto/ManifestoPage.js +1 -1
  412. package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +2 -2
  413. package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +2 -2
  414. package/dist/node/components/docs/ops/index.js +3 -3
  415. package/dist/node/components/docs/ops/ops-lifecycle.docblocks.js +2 -2
  416. package/dist/node/components/docs/ops/ops-runbooks-a.docblocks.js +2 -2
  417. package/dist/node/components/docs/ops/ops-runbooks-b.docblocks.js +2 -2
  418. package/dist/node/components/docs/ops/ops-slo-tenant.docblocks.js +2 -2
  419. package/dist/node/components/docs/ops/ops-top.docs.js +2 -2
  420. package/dist/node/components/docs/ops/ops.docs.js +6 -6
  421. package/dist/node/components/docs/product/product.docblocks.js +2 -2
  422. package/dist/node/components/docs/reference/DocsMarkdownContent.js +2 -2
  423. package/dist/node/components/docs/reference/DocsReferenceContent.js +3 -3
  424. package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +2 -2
  425. package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +2 -2
  426. package/dist/node/components/docs/reference/DocsReferencePage.js +3 -3
  427. package/dist/node/components/docs/reference/docsMarkdownParser.js +2 -2
  428. package/dist/node/components/docs/reference/index.js +4 -4
  429. package/dist/node/components/docs/safety/SafetyAuditingPage.js +2 -2
  430. package/dist/node/components/docs/safety/SafetyMigrationsPage.js +2 -2
  431. package/dist/node/components/docs/safety/SafetyOverviewPage.js +1 -1
  432. package/dist/node/components/docs/safety/SafetyPDPPage.js +2 -2
  433. package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +1 -1
  434. package/dist/node/components/docs/safety/SafetySigningPage.js +3 -3
  435. package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +2 -2
  436. package/dist/node/components/docs/safety/index.js +7 -7
  437. package/dist/node/components/docs/shared/StudioPrompt.js +1 -1
  438. package/dist/node/components/docs/specs/SpecsBuilderControlPlanePage.js +4 -4
  439. package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +2 -2
  440. package/dist/node/components/docs/specs/SpecsConnectPage.js +2 -2
  441. package/dist/node/components/docs/specs/SpecsDataViewsPage.js +2 -2
  442. package/dist/node/components/docs/specs/SpecsModuleBundlesPage.js +3 -3
  443. package/dist/node/components/docs/specs/SpecsOverlaysPage.js +2 -2
  444. package/dist/node/components/docs/specs/SpecsOverviewPage.js +1 -1
  445. package/dist/node/components/docs/specs/SpecsPolicyPage.js +3 -3
  446. package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +2 -2
  447. package/dist/node/components/docs/specs/index.js +13 -13
  448. package/dist/node/components/docs/studio/StudioBYOKPage.js +1 -1
  449. package/dist/node/components/docs/studio/StudioDeploymentsPage.js +1 -1
  450. package/dist/node/components/docs/studio/StudioGettingStartedPage.js +1 -1
  451. package/dist/node/components/docs/studio/StudioIntegrationsPage.js +1 -1
  452. package/dist/node/components/docs/studio/StudioOverviewPage.js +1 -1
  453. package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +1 -1
  454. package/dist/node/components/docs/studio/index.js +1 -1
  455. package/dist/node/components/docs/tech/contracts/tech-docs.docblocks.js +2 -2
  456. package/dist/node/components/integrations/index.js +2 -2
  457. package/dist/node/components/integrations/molecules/IntegrationCard.js +1 -1
  458. package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +1 -1
  459. package/dist/node/components/integrations/organisms/IntegrationSettings.js +2 -2
  460. package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +1 -1
  461. package/dist/node/components/legal/PrivacyTemplate.js +1 -1
  462. package/dist/node/components/legal/TermsTemplate.js +1 -1
  463. package/dist/node/components/legal/index.js +1 -1
  464. package/dist/node/components/shared/FeatureGateNotice.js +1 -1
  465. package/dist/node/components/shared/index.js +1 -1
  466. package/dist/node/components/shell/WorkspaceHeader.js +1 -1
  467. package/dist/node/components/shell/WorkspaceProjectShellLayout.js +1 -1
  468. package/dist/node/components/shell/WorkspaceShellRenderer.js +1 -1
  469. package/dist/node/components/shell/WorkspaceSidebar.js +1 -1
  470. package/dist/node/components/shell/index.js +1 -1
  471. package/dist/node/components/templates/engine/index.js +1 -1
  472. package/dist/node/components/templates/index.js +11 -11
  473. package/dist/node/components/templates/messaging/ConversationList.js +2 -2
  474. package/dist/node/components/templates/messaging/MessageComposer.js +4 -4
  475. package/dist/node/components/templates/messaging/MessageThread.js +3 -3
  476. package/dist/node/components/templates/messaging/MessagingWorkspace.js +5 -5
  477. package/dist/node/components/templates/messaging/index.js +5 -5
  478. package/dist/node/components/templates/recipes/LanguageSwitcher.js +1 -1
  479. package/dist/node/components/templates/recipes/RecipeCard.js +1 -1
  480. package/dist/node/components/templates/recipes/RecipeDetail.js +1 -1
  481. package/dist/node/components/templates/recipes/RecipeList.js +3 -3
  482. package/dist/node/components/templates/recipes/index.js +3 -3
  483. package/dist/node/components/templates/todos/FilterBar.js +1 -1
  484. package/dist/node/components/templates/todos/TaskForm.js +2 -2
  485. package/dist/node/components/templates/todos/TaskItem.js +1 -1
  486. package/dist/node/components/templates/todos/TaskList.js +5 -5
  487. package/dist/node/components/templates/todos/index.js +5 -5
  488. package/dist/node/config/contractspec-blueprint.js +1 -1
  489. package/dist/node/config/contractspec-branding.js +1 -1
  490. package/dist/node/config/contractspec-routes.js +1 -1
  491. package/dist/node/config/index.js +1 -1
  492. package/dist/node/features/contracts-registry.js +1 -1
  493. package/dist/node/features/docs/docs.contracts.js +1 -1
  494. package/dist/node/features/docs/index.js +1 -1
  495. package/dist/node/features/docs.feature.js +1 -1
  496. package/dist/node/features/index.js +1 -1
  497. package/dist/node/features/mcp.feature.js +1 -1
  498. package/dist/node/features/presentations.feature.js +1 -1
  499. package/dist/node/features/registry.js +1 -1
  500. package/dist/node/index.js +382 -262
  501. package/dist/node/infrastructure/elysia/index.js +1 -1
  502. package/dist/node/infrastructure/elysia/logger.js +1 -1
  503. package/dist/node/infrastructure/index.js +1 -1
  504. package/dist/node/libs/email/client.js +1 -1
  505. package/dist/node/libs/email/contact.js +3 -3
  506. package/dist/node/libs/email/newsletter.js +3 -3
  507. package/dist/node/libs/email/utils.js +2 -2
  508. package/dist/node/libs/email/waitlist-application.js +3 -3
  509. package/dist/node/libs/email/waitlist.js +3 -3
  510. package/dist/node/libs/email.js +6 -6
  511. package/dist/node/libs/posthog/client.js +1 -1
  512. package/dist/node/libs/posthog/native.js +1 -1
  513. package/dist/node/libs/posthog/server.js +1 -1
  514. package/dist/node/libs/pricing-examples.js +1 -1
  515. package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -1
  516. package/dist/node/presentation/features/atoms/FeatureIcon/index.js +1 -1
  517. package/dist/node/presentation/features/atoms/index.js +1 -1
  518. package/dist/node/presentation/features/hooks/index.js +1 -1
  519. package/dist/node/presentation/features/hooks/useContractsRegistry.js +1 -1
  520. package/dist/node/presentation/features/hooks/useFeatureFilters.js +1 -1
  521. package/dist/node/presentation/features/hooks/useFeatureRegistry.js +1 -1
  522. package/dist/node/presentation/features/hooks/useRelatedDocs.js +1 -1
  523. package/dist/node/presentation/features/index.js +1 -1
  524. package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -1
  525. package/dist/node/presentation/features/molecules/FeatureCard/index.js +1 -1
  526. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -1
  527. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -1
  528. package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -1
  529. package/dist/node/presentation/features/molecules/FeatureFilters/index.js +1 -1
  530. package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -1
  531. package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +1 -1
  532. package/dist/node/presentation/features/molecules/index.js +1 -1
  533. package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +1 -1
  534. package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -1
  535. package/dist/node/presentation/features/organisms/FeatureDetail/index.js +1 -1
  536. package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -1
  537. package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +1 -1
  538. package/dist/node/presentation/features/organisms/FeatureEventsList.js +1 -1
  539. package/dist/node/presentation/features/organisms/FeatureFormsList.js +1 -1
  540. package/dist/node/presentation/features/organisms/FeatureOperationsList.js +1 -1
  541. package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +1 -1
  542. package/dist/node/presentation/features/organisms/index.js +1 -1
  543. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -1
  544. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -1
  545. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -1
  546. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -1
  547. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -1
  548. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -1
  549. package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -1
  550. package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +1 -1
  551. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -1
  552. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -1
  553. package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -1
  554. package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +1 -1
  555. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -1
  556. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -1
  557. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -1
  558. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -1
  559. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -1
  560. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -1
  561. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -1
  562. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -1
  563. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -1
  564. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -1
  565. package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -1
  566. package/dist/presentation/features/atoms/FeatureIcon/index.js +1 -1
  567. package/dist/presentation/features/atoms/index.js +1 -1
  568. package/dist/presentation/features/hooks/index.js +1 -1
  569. package/dist/presentation/features/hooks/useContractsRegistry.js +1 -1
  570. package/dist/presentation/features/hooks/useFeatureFilters.js +1 -1
  571. package/dist/presentation/features/hooks/useFeatureRegistry.js +1 -1
  572. package/dist/presentation/features/hooks/useRelatedDocs.js +1 -1
  573. package/dist/presentation/features/index.js +1 -1
  574. package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -1
  575. package/dist/presentation/features/molecules/FeatureCard/index.js +1 -1
  576. package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -1
  577. package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -1
  578. package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -1
  579. package/dist/presentation/features/molecules/FeatureFilters/index.js +1 -1
  580. package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -1
  581. package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +1 -1
  582. package/dist/presentation/features/molecules/index.js +1 -1
  583. package/dist/presentation/features/organisms/FeatureDataViewsList.js +1 -1
  584. package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -1
  585. package/dist/presentation/features/organisms/FeatureDetail/index.js +1 -1
  586. package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -1
  587. package/dist/presentation/features/organisms/FeatureDiscovery/index.js +1 -1
  588. package/dist/presentation/features/organisms/FeatureEventsList.js +1 -1
  589. package/dist/presentation/features/organisms/FeatureFormsList.js +1 -1
  590. package/dist/presentation/features/organisms/FeatureOperationsList.js +1 -1
  591. package/dist/presentation/features/organisms/FeaturePresentationsList.js +1 -1
  592. package/dist/presentation/features/organisms/index.js +1 -1
  593. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -1
  594. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -1
  595. package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -1
  596. package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -1
  597. package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -1
  598. package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -1
  599. package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -1
  600. package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +1 -1
  601. package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -1
  602. package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -1
  603. package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -1
  604. package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +1 -1
  605. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -1
  606. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -1
  607. package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -1
  608. package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -1
  609. package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -1
  610. package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -1
  611. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -1
  612. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -1
  613. package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -1
  614. package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -1
  615. package/package.json +49 -24
  616. package/src/application/mcp/internalMcp.ts +1 -1
  617. package/src/bundles/LibraryBundle.ts +19 -130
  618. package/src/components/docs/docsManifest.test.ts +14 -0
  619. package/src/components/docs/docsManifest.ts +10 -0
  620. package/src/components/docs/examples/DocsExamplesPage.tsx +3 -3
  621. package/src/components/docs/examples/ExampleShowcasePage.tsx +1 -1
  622. package/src/components/docs/examples/exampleShowcaseData.test.ts +5 -3
  623. package/src/components/docs/examples/exampleShowcaseData.ts +3 -3
  624. package/src/components/docs/generated/docs-index._common.json +1699 -2008
  625. package/src/components/docs/generated/docs-index.agent-console.json +377 -377
  626. package/src/components/docs/generated/docs-index.ai-chat-assistant.json +17 -17
  627. package/src/components/docs/generated/docs-index.ai-chat.json +105 -105
  628. package/src/components/docs/generated/docs-index.ai-support-bot.json +9 -9
  629. package/src/components/docs/generated/docs-index.analytics-dashboard.json +169 -169
  630. package/src/components/docs/generated/docs-index.app-config.json +137 -137
  631. package/src/components/docs/generated/docs-index.artisan-knowledge-product.json +17 -17
  632. package/src/components/docs/generated/docs-index.artisan-payments-stripe.json +33 -33
  633. package/src/components/docs/generated/docs-index.audit-trail.json +49 -49
  634. package/src/components/docs/generated/docs-index.calendar-google.json +9 -9
  635. package/src/components/docs/generated/docs-index.content-generation.json +9 -9
  636. package/src/components/docs/generated/docs-index.control-plane.json +17 -17
  637. package/src/components/docs/generated/docs-index.crm-pipeline.json +161 -161
  638. package/src/components/docs/generated/docs-index.data-grid-showcase.json +25 -25
  639. package/src/components/docs/generated/docs-index.defineExample.json +9 -9
  640. package/src/components/docs/generated/docs-index.email-gmail.json +9 -9
  641. package/src/components/docs/generated/docs-index.feature-flags.json +217 -217
  642. package/src/components/docs/generated/docs-index.files.json +177 -177
  643. package/src/components/docs/generated/docs-index.generated.ts +20 -20
  644. package/src/components/docs/generated/docs-index.harness-lab.json +9 -9
  645. package/src/components/docs/generated/docs-index.health.json +97 -97
  646. package/src/components/docs/generated/docs-index.identity-rbac.json +313 -313
  647. package/src/components/docs/generated/docs-index.in-app-docs.json +9 -9
  648. package/src/components/docs/generated/docs-index.integration-hub.json +265 -265
  649. package/src/components/docs/generated/docs-index.integration-posthog.json +9 -9
  650. package/src/components/docs/generated/docs-index.integration-stripe.json +9 -9
  651. package/src/components/docs/generated/docs-index.integration-supabase.json +9 -9
  652. package/src/components/docs/generated/docs-index.jobs.json +137 -137
  653. package/src/components/docs/generated/docs-index.kb-update-pipeline.json +129 -129
  654. package/src/components/docs/generated/docs-index.knowledge-canon.json +9 -9
  655. package/src/components/docs/generated/docs-index.learning-journey-ambient-coach.json +9 -9
  656. package/src/components/docs/generated/docs-index.learning-journey-crm-onboarding.json +49 -49
  657. package/src/components/docs/generated/docs-index.learning-journey-duo-drills.json +9 -9
  658. package/src/components/docs/generated/docs-index.learning-journey-platform-tour.json +49 -49
  659. package/src/components/docs/generated/docs-index.learning-journey-quest-challenges.json +9 -9
  660. package/src/components/docs/generated/docs-index.learning-journey-registry.json +33 -33
  661. package/src/components/docs/generated/docs-index.learning-journey-studio-onboarding.json +49 -49
  662. package/src/components/docs/generated/docs-index.learning-journey-ui-coaching.json +9 -9
  663. package/src/components/docs/generated/docs-index.learning-journey-ui-gamified.json +9 -9
  664. package/src/components/docs/generated/docs-index.learning-journey-ui-onboarding.json +9 -9
  665. package/src/components/docs/generated/docs-index.learning-journey-ui-shared.json +9 -9
  666. package/src/components/docs/generated/docs-index.learning-journey.json +241 -241
  667. package/src/components/docs/generated/docs-index.learning-patterns.json +9 -9
  668. package/src/components/docs/generated/docs-index.lifecycle-cli.json +9 -9
  669. package/src/components/docs/generated/docs-index.lifecycle-dashboard.json +9 -9
  670. package/src/components/docs/generated/docs-index.locale-jurisdiction-gate.json +65 -65
  671. package/src/components/docs/generated/docs-index.manifest.json +432 -432
  672. package/src/components/docs/generated/docs-index.marketplace.json +337 -337
  673. package/src/components/docs/generated/docs-index.meeting-recorder-providers.json +9 -9
  674. package/src/components/docs/generated/docs-index.meeting-recorder.json +49 -49
  675. package/src/components/docs/generated/docs-index.messaging-agent-actions.json +17 -17
  676. package/src/components/docs/generated/docs-index.metrics.json +201 -201
  677. package/src/components/docs/generated/docs-index.minimal.json +17 -17
  678. package/src/components/docs/generated/docs-index.mobile-demo-landing.json +42 -0
  679. package/src/components/docs/generated/docs-index.notifications.json +65 -65
  680. package/src/components/docs/generated/docs-index.openbanking-powens.json +9 -9
  681. package/src/components/docs/generated/docs-index.openbanking.json +65 -65
  682. package/src/components/docs/generated/docs-index.opencode-cli.json +17 -17
  683. package/src/components/docs/generated/docs-index.personalization.json +9 -9
  684. package/src/components/docs/generated/docs-index.platform-acp.json +137 -137
  685. package/src/components/docs/generated/docs-index.platform-agent.json +201 -201
  686. package/src/components/docs/generated/docs-index.platform-context.json +121 -121
  687. package/src/components/docs/generated/docs-index.platform-control-plane.json +321 -321
  688. package/src/components/docs/generated/docs-index.platform-database.json +89 -89
  689. package/src/components/docs/generated/docs-index.platform-docs.json +161 -161
  690. package/src/components/docs/generated/docs-index.platform-harness.json +177 -177
  691. package/src/components/docs/generated/docs-index.platform-integrations.json +329 -329
  692. package/src/components/docs/generated/docs-index.platform-knowledge.json +57 -57
  693. package/src/components/docs/generated/docs-index.platform-provider-ranking.json +217 -217
  694. package/src/components/docs/generated/docs-index.pocket-family-office.json +129 -129
  695. package/src/components/docs/generated/docs-index.policy-safe-knowledge-assistant.json +9 -9
  696. package/src/components/docs/generated/docs-index.product-intent.json +9 -9
  697. package/src/components/docs/generated/docs-index.project-management-sync.json +9 -9
  698. package/src/components/docs/generated/docs-index.saas-boilerplate.json +209 -209
  699. package/src/components/docs/generated/docs-index.service-business-os.json +193 -193
  700. package/src/components/docs/generated/docs-index.team-hub.json +185 -185
  701. package/src/components/docs/generated/docs-index.unknown.json +521 -521
  702. package/src/components/docs/generated/docs-index.versioned-knowledge-base.json +81 -81
  703. package/src/components/docs/generated/docs-index.video-api-showcase.json +33 -33
  704. package/src/components/docs/generated/docs-index.video-docs-terminal.json +9 -9
  705. package/src/components/docs/generated/docs-index.video-marketing-clip.json +9 -9
  706. package/src/components/docs/generated/docs-index.visualization-showcase.json +17 -17
  707. package/src/components/docs/generated/docs-index.voice-providers.json +9 -9
  708. package/src/components/docs/generated/docs-index.wealth-snapshot.json +153 -153
  709. package/src/components/docs/generated/docs-index.workflow-system.json +433 -433
  710. package/src/components/docs/generated/docs-index.workspace-cli.json +9 -9
  711. package/src/components/docs/generated/index.ts +20 -5
  712. package/src/components/docs/generated/loader.ts +15 -8
  713. package/src/components/docs/getting-started/CompatibilityPage.tsx +14 -0
  714. package/src/components/docs/libraries/LibrariesCrossPlatformUIPage.content.ts +252 -0
  715. package/src/components/docs/libraries/LibrariesCrossPlatformUIPage.tsx +232 -0
  716. package/src/components/docs/libraries/LibrariesDesignSystemPage.tsx +79 -0
  717. package/src/components/docs/libraries/LibrariesOverviewPage.tsx +6 -0
  718. package/src/components/docs/libraries/LibrariesRuntimePage.tsx +15 -0
  719. package/src/components/docs/libraries/LibrariesUIKitPage.tsx +15 -0
  720. package/src/components/docs/libraries/LibrariesUIKitWebPage.tsx +14 -0
  721. package/src/components/docs/libraries/index.ts +1 -0
  722. package/src/components/docs/reference/DocsReferenceIndexPage.tsx +1 -1
  723. package/src/index.ts +1 -1
  724. package/src/components/docs/generated/docs-index.mobile-demo-tasks.json +0 -34
@@ -1,4 +1,4 @@
1
- import{gql as $}from"@apollo/client";import{useMutation as D,useQuery as U}from"@apollo/client/react";import{useTemplateRuntime as Y}from"@contractspec/lib.example-shared-ui";import{useEffect as X,useRef as h}from"react";import{jsx as B,jsxs as Z}from"react/jsx-runtime";var W=$`
1
+ var D=Object.defineProperty;var U=(k)=>k;function Y(k,z){this[k]=U.bind(null,z)}var p=(k,z)=>{for(var F in z)D(k,F,{get:z[F],enumerable:!0,configurable:!0,set:Y.bind(z,F)})};var R=(k,z)=>()=>(k&&(z=k(k=0)),z);import{gql as $}from"@apollo/client";import{useMutation as h,useQuery as q}from"@apollo/client/react";import{useTemplateRuntime as G}from"@contractspec/lib.example-shared-ui";import{useEffect as X,useRef as N}from"react";import{jsx as H,jsxs as Z}from"react/jsx-runtime";var W=$`
2
2
  query Messages($conversationId: ID!) {
3
3
  messages(conversationId: $conversationId, limit: 50) {
4
4
  id
@@ -9,14 +9,14 @@ import{gql as $}from"@apollo/client";import{useMutation as D,useQuery as U}from"
9
9
  status
10
10
  }
11
11
  }
12
- `,q=$`
12
+ `,Q=$`
13
13
  mutation SetMessagesRead($conversationId: ID!, $userId: String!) {
14
14
  setMessagesRead(conversationId: $conversationId, userId: $userId)
15
15
  }
16
- `;function R({conversationId:z,viewerId:F="local-user"}){let K=h(null),J=Boolean(z),{data:H,loading:L}=U(W,{variables:{conversationId:z},skip:!J,fetchPolicy:"cache-and-network"}),[O]=D(q),{projectId:P}=Y(),V=H?.messages??[];if(X(()=>{if(!J||!z)return;O({variables:{conversationId:z,userId:F}}).catch(()=>{})},[z,J,O,F]),X(()=>{let k=K.current;if(!k)return;k.scrollTop=k.scrollHeight},[V]),!z)return B("div",{className:"flex flex-1 items-center justify-center rounded-2xl border border-border border-dashed",children:B("p",{className:"text-muted-foreground text-sm",children:"Select a conversation"})});return B("div",{className:"flex flex-1 flex-col rounded-2xl border border-border bg-card",children:B("div",{ref:K,className:"flex-1 space-y-3 overflow-y-auto p-4",children:L?B("p",{className:"text-center text-muted-foreground text-sm",children:"Loading…"}):V.slice().reverse().map((k)=>Z("div",{className:`flex flex-col ${k.senderId===F?"items-end":"items-start"}`,children:[B("div",{className:`max-w-xs rounded-2xl px-3 py-2 text-sm ${k.senderId===F?"bg-violet-500 text-white":"bg-muted text-foreground"}`,children:B("p",{children:k.content})}),Z("span",{className:"mt-1 text-muted-foreground text-xs",children:[k.senderName||k.senderId," ·"," ",new Date(k.createdAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})]})]},k.id))})})}import{gql as G}from"@apollo/client";import{useMutation as N}from"@apollo/client/react";import{useTemplateRuntime as Q}from"@contractspec/lib.example-shared-ui";import{Send as A}from"lucide-react";import{useState as T}from"react";import{jsx as y,jsxs as C}from"react/jsx-runtime";var _=G`
16
+ `;function u({conversationId:k,viewerId:z="local-user"}){let F=N(null),K=Boolean(k),{data:J,loading:L}=q(W,{variables:{conversationId:k},skip:!K,fetchPolicy:"cache-and-network"}),[O]=h(Q),{projectId:P}=G(),V=J?.messages??[];if(X(()=>{if(!K||!k)return;O({variables:{conversationId:k,userId:z}}).catch(()=>{})},[k,K,O,z]),X(()=>{let B=F.current;if(!B)return;B.scrollTop=B.scrollHeight},[V]),!k)return H("div",{className:"flex flex-1 items-center justify-center rounded-2xl border border-border border-dashed",children:H("p",{className:"text-muted-foreground text-sm",children:"Select a conversation"})});return H("div",{className:"flex flex-1 flex-col rounded-2xl border border-border bg-card",children:H("div",{ref:F,className:"flex-1 space-y-3 overflow-y-auto p-4",children:L?H("p",{className:"text-center text-muted-foreground text-sm",children:"Loading…"}):V.slice().reverse().map((B)=>Z("div",{className:`flex flex-col ${B.senderId===z?"items-end":"items-start"}`,children:[H("div",{className:`max-w-xs rounded-2xl px-3 py-2 text-sm ${B.senderId===z?"bg-violet-500 text-white":"bg-muted text-foreground"}`,children:H("p",{children:B.content})}),Z("span",{className:"mt-1 text-muted-foreground text-xs",children:[B.senderName||B.senderId," ·"," ",new Date(B.createdAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})]})]},B.id))})})}import{gql as A}from"@apollo/client";import{useMutation as T}from"@apollo/client/react";import{useTemplateRuntime as _}from"@contractspec/lib.example-shared-ui";import{Send as b}from"lucide-react";import{useState as f}from"react";import{jsx as y,jsxs as C}from"react/jsx-runtime";var M=A`
17
17
  mutation SendMessage($input: SendMessageInput!) {
18
18
  sendMessage(input: $input) {
19
19
  id
20
20
  }
21
21
  }
22
- `;function m({conversationId:z,viewerId:F="local-user",viewerName:K="You"}){let{projectId:J}=Q(),[H,L]=T(""),[O,{loading:P}]=N(_);return C("form",{onSubmit:async(k)=>{if(k.preventDefault(),!z||!H.trim())return;await O({variables:{input:{projectId:J,conversationId:z,senderId:F,senderName:K,content:H.trim()}},refetchQueries:[{query:W,variables:{conversationId:z}}]}),L("")},className:"mt-3 flex items-center gap-2 rounded-2xl border border-border bg-card px-4 py-3",children:[y("input",{type:"text",className:"flex-1 bg-transparent text-foreground text-sm outline-none",placeholder:z?"Type a message…":"Select a conversation to start",disabled:!z||P,value:H,onChange:(k)=>L(k.target.value)}),C("button",{type:"submit",className:"btn-primary inline-flex items-center gap-1 text-sm",disabled:!z||P||!H.trim(),children:[y(A,{className:"h-4 w-4"}),"Send"]})]})}export{m as MessageComposer};
22
+ `;function r({conversationId:k,viewerId:z="local-user",viewerName:F="You"}){let{projectId:K}=_(),[J,L]=f(""),[O,{loading:P}]=T(M);return C("form",{onSubmit:async(B)=>{if(B.preventDefault(),!k||!J.trim())return;await O({variables:{input:{projectId:K,conversationId:k,senderId:z,senderName:F,content:J.trim()}},refetchQueries:[{query:W,variables:{conversationId:k}}]}),L("")},className:"mt-3 flex items-center gap-2 rounded-2xl border border-border bg-card px-4 py-3",children:[y("input",{type:"text",className:"flex-1 bg-transparent text-foreground text-sm outline-none",placeholder:k?"Type a message…":"Select a conversation to start",disabled:!k||P,value:J,onChange:(B)=>L(B.target.value)}),C("button",{type:"submit",className:"btn-primary inline-flex items-center gap-1 text-sm",disabled:!k||P||!J.trim(),children:[y(b,{className:"h-4 w-4"}),"Send"]})]})}export{r as MessageComposer};
@@ -1,4 +1,4 @@
1
- import{gql as O}from"@apollo/client";import{useMutation as X,useQuery as Z}from"@apollo/client/react";import{useTemplateRuntime as $}from"@contractspec/lib.example-shared-ui";import{useEffect as L,useRef as h}from"react";import{jsx as z,jsxs as N}from"react/jsx-runtime";var y=O`
1
+ var X=Object.defineProperty;var Z=(k)=>k;function $(k,z){this[k]=Z.bind(null,z)}var q=(k,z)=>{for(var F in z)X(k,F,{get:z[F],enumerable:!0,configurable:!0,set:$.bind(z,F)})};var A=(k,z)=>()=>(k&&(z=k(k=0)),z);import{gql as O}from"@apollo/client";import{useMutation as h,useQuery as y}from"@apollo/client/react";import{useTemplateRuntime as D}from"@contractspec/lib.example-shared-ui";import{useEffect as L,useRef as G}from"react";import{jsx as C,jsxs as N}from"react/jsx-runtime";var U=O`
2
2
  query Messages($conversationId: ID!) {
3
3
  messages(conversationId: $conversationId, limit: 50) {
4
4
  id
@@ -9,8 +9,8 @@ import{gql as O}from"@apollo/client";import{useMutation as X,useQuery as Z}from"
9
9
  status
10
10
  }
11
11
  }
12
- `,D=O`
12
+ `,Y=O`
13
13
  mutation SetMessagesRead($conversationId: ID!, $userId: String!) {
14
14
  setMessagesRead(conversationId: $conversationId, userId: $userId)
15
15
  }
16
- `;function A({conversationId:B,viewerId:C="local-user"}){let H=h(null),F=Boolean(B),{data:P,loading:V}=Z(y,{variables:{conversationId:B},skip:!F,fetchPolicy:"cache-and-network"}),[J]=X(D),{projectId:W}=$(),K=P?.messages??[];if(L(()=>{if(!F||!B)return;J({variables:{conversationId:B,userId:C}}).catch(()=>{})},[B,F,J,C]),L(()=>{let k=H.current;if(!k)return;k.scrollTop=k.scrollHeight},[K]),!B)return z("div",{className:"flex flex-1 items-center justify-center rounded-2xl border border-border border-dashed",children:z("p",{className:"text-muted-foreground text-sm",children:"Select a conversation"})});return z("div",{className:"flex flex-1 flex-col rounded-2xl border border-border bg-card",children:z("div",{ref:H,className:"flex-1 space-y-3 overflow-y-auto p-4",children:V?z("p",{className:"text-center text-muted-foreground text-sm",children:"Loading…"}):K.slice().reverse().map((k)=>N("div",{className:`flex flex-col ${k.senderId===C?"items-end":"items-start"}`,children:[z("div",{className:`max-w-xs rounded-2xl px-3 py-2 text-sm ${k.senderId===C?"bg-violet-500 text-white":"bg-muted text-foreground"}`,children:z("p",{children:k.content})}),N("span",{className:"mt-1 text-muted-foreground text-xs",children:[k.senderName||k.senderId," ·"," ",new Date(k.createdAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})]})]},k.id))})})}export{A as MessageThread,y as MESSAGES_QUERY};
16
+ `;function p({conversationId:k,viewerId:z="local-user"}){let F=G(null),H=Boolean(k),{data:P,loading:V}=y(U,{variables:{conversationId:k},skip:!H,fetchPolicy:"cache-and-network"}),[J]=h(Y),{projectId:W}=D(),K=P?.messages??[];if(L(()=>{if(!H||!k)return;J({variables:{conversationId:k,userId:z}}).catch(()=>{})},[k,H,J,z]),L(()=>{let B=F.current;if(!B)return;B.scrollTop=B.scrollHeight},[K]),!k)return C("div",{className:"flex flex-1 items-center justify-center rounded-2xl border border-border border-dashed",children:C("p",{className:"text-muted-foreground text-sm",children:"Select a conversation"})});return C("div",{className:"flex flex-1 flex-col rounded-2xl border border-border bg-card",children:C("div",{ref:F,className:"flex-1 space-y-3 overflow-y-auto p-4",children:V?C("p",{className:"text-center text-muted-foreground text-sm",children:"Loading…"}):K.slice().reverse().map((B)=>N("div",{className:`flex flex-col ${B.senderId===z?"items-end":"items-start"}`,children:[C("div",{className:`max-w-xs rounded-2xl px-3 py-2 text-sm ${B.senderId===z?"bg-violet-500 text-white":"bg-muted text-foreground"}`,children:C("p",{children:B.content})}),N("span",{className:"mt-1 text-muted-foreground text-xs",children:[B.senderName||B.senderId," ·"," ",new Date(B.createdAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})]})]},B.id))})})}export{p as MessageThread,U as MESSAGES_QUERY};
@@ -1,4 +1,4 @@
1
- import{gql as _}from"@apollo/client";import{useQuery as b}from"@apollo/client/react";import{useTemplateRuntime as f}from"@contractspec/lib.example-shared-ui";import{MessageCircle as h,Users as T}from"lucide-react";import{useMemo as C}from"react";import{jsx as X,jsxs as W}from"react/jsx-runtime";var w=_`
1
+ var _=Object.defineProperty;var b=(z)=>z;function f(z,B){this[z]=b.bind(null,B)}var o=(z,B)=>{for(var H in B)_(z,H,{get:B[H],enumerable:!0,configurable:!0,set:f.bind(B,H)})};var t=(z,B)=>()=>(z&&(B=z(z=0)),B);import{gql as h}from"@apollo/client";import{useQuery as T}from"@apollo/client/react";import{useTemplateRuntime as C}from"@contractspec/lib.example-shared-ui";import{MessageCircle as w,Users as R}from"lucide-react";import{useMemo as E}from"react";import{jsx as Z,jsxs as W}from"react/jsx-runtime";var M=h`
2
2
  query Conversations($projectId: ID!) {
3
3
  conversations(projectId: $projectId) {
4
4
  id
@@ -12,7 +12,7 @@ import{gql as _}from"@apollo/client";import{useQuery as b}from"@apollo/client/re
12
12
  }
13
13
  }
14
14
  }
15
- `;function G({selectedId:z,onSelect:F}){let{projectId:$}=f(),{data:K,loading:J}=b(w,{variables:{projectId:$},fetchPolicy:"cache-and-network"}),P=C(()=>K?.conversations??[],[K]);return W("aside",{className:"h-full overflow-y-auto rounded-2xl border border-border bg-card",children:[W("header",{className:"px -4 flex items-center justify-between border-border border-b px-4 py-3",children:[W("div",{children:[X("p",{className:"font-semibold text-sm",children:"Conversations"}),X("p",{className:"text-muted-foreground text-xs",children:J?"Loading…":`${P.length} active`})]}),X(T,{className:"h-4 w-4 text-muted-foreground"})]}),W("div",{className:"divide-y divide-border/70",children:[P.map((H)=>{let k=z===H.id;return W("button",{type:"button",className:`flex w-full flex-col items-start gap-1 px-4 py-3 text-left transition ${k?"bg-violet-500/10 text-foreground":"hover:bg-muted/40"}`,onClick:()=>F?.(H.id),children:[W("div",{className:"flex items-center gap-2",children:[X(h,{className:"h-4 w-4 text-muted-foreground"}),X("span",{className:"font-medium text-sm",children:H.name||"Untitled conversation"})]}),X("p",{className:"text-muted-foreground text-xs",children:H.participants.map((V)=>V.displayName||V.userId).join(" · ")})]},H.id)}),!J&&P.length===0?X("p",{className:"p-4 text-center text-muted-foreground text-xs",children:"No conversations yet."}):null]})]})}import{gql as U}from"@apollo/client";import{useMutation as R,useQuery as E}from"@apollo/client/react";import{useTemplateRuntime as M}from"@contractspec/lib.example-shared-ui";import{useEffect as Y,useRef as S}from"react";import{jsx as Z,jsxs as q}from"react/jsx-runtime";var y=U`
15
+ `;function G({selectedId:z,onSelect:B}){let{projectId:H}=C(),{data:P,loading:K}=T(M,{variables:{projectId:H},fetchPolicy:"cache-and-network"}),X=E(()=>P?.conversations??[],[P]);return W("aside",{className:"h-full overflow-y-auto rounded-2xl border border-border bg-card",children:[W("header",{className:"px -4 flex items-center justify-between border-border border-b px-4 py-3",children:[W("div",{children:[Z("p",{className:"font-semibold text-sm",children:"Conversations"}),Z("p",{className:"text-muted-foreground text-xs",children:K?"Loading…":`${X.length} active`})]}),Z(R,{className:"h-4 w-4 text-muted-foreground"})]}),W("div",{className:"divide-y divide-border/70",children:[X.map((J)=>{let k=z===J.id;return W("button",{type:"button",className:`flex w-full flex-col items-start gap-1 px-4 py-3 text-left transition ${k?"bg-violet-500/10 text-foreground":"hover:bg-muted/40"}`,onClick:()=>B?.(J.id),children:[W("div",{className:"flex items-center gap-2",children:[Z(w,{className:"h-4 w-4 text-muted-foreground"}),Z("span",{className:"font-medium text-sm",children:J.name||"Untitled conversation"})]}),Z("p",{className:"text-muted-foreground text-xs",children:J.participants.map((V)=>V.displayName||V.userId).join(" · ")})]},J.id)}),!K&&X.length===0?Z("p",{className:"p-4 text-center text-muted-foreground text-xs",children:"No conversations yet."}):null]})]})}import{gql as U}from"@apollo/client";import{useMutation as S,useQuery as p}from"@apollo/client/react";import{useTemplateRuntime as u}from"@contractspec/lib.example-shared-ui";import{useEffect as Y,useRef as l}from"react";import{jsx as $,jsxs as q}from"react/jsx-runtime";var y=U`
16
16
  query Messages($conversationId: ID!) {
17
17
  messages(conversationId: $conversationId, limit: 50) {
18
18
  id
@@ -23,14 +23,14 @@ import{gql as _}from"@apollo/client";import{useQuery as b}from"@apollo/client/re
23
23
  status
24
24
  }
25
25
  }
26
- `,p=U`
26
+ `,g=U`
27
27
  mutation SetMessagesRead($conversationId: ID!, $userId: String!) {
28
28
  setMessagesRead(conversationId: $conversationId, userId: $userId)
29
29
  }
30
- `;function D({conversationId:z,viewerId:F="local-user"}){let $=S(null),K=Boolean(z),{data:J,loading:P}=E(y,{variables:{conversationId:z},skip:!K,fetchPolicy:"cache-and-network"}),[H]=R(p),{projectId:k}=M(),V=J?.messages??[];if(Y(()=>{if(!K||!z)return;H({variables:{conversationId:z,userId:F}}).catch(()=>{})},[z,K,H,F]),Y(()=>{let B=$.current;if(!B)return;B.scrollTop=B.scrollHeight},[V]),!z)return Z("div",{className:"flex flex-1 items-center justify-center rounded-2xl border border-border border-dashed",children:Z("p",{className:"text-muted-foreground text-sm",children:"Select a conversation"})});return Z("div",{className:"flex flex-1 flex-col rounded-2xl border border-border bg-card",children:Z("div",{ref:$,className:"flex-1 space-y-3 overflow-y-auto p-4",children:P?Z("p",{className:"text-center text-muted-foreground text-sm",children:"Loading…"}):V.slice().reverse().map((B)=>q("div",{className:`flex flex-col ${B.senderId===F?"items-end":"items-start"}`,children:[Z("div",{className:`max-w-xs rounded-2xl px-3 py-2 text-sm ${B.senderId===F?"bg-violet-500 text-white":"bg-muted text-foreground"}`,children:Z("p",{children:B.content})}),q("span",{className:"mt-1 text-muted-foreground text-xs",children:[B.senderName||B.senderId," ·"," ",new Date(B.createdAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})]})]},B.id))})})}import{gql as u}from"@apollo/client";import{useMutation as l}from"@apollo/client/react";import{useTemplateRuntime as g}from"@contractspec/lib.example-shared-ui";import{Send as j}from"lucide-react";import{useState as m}from"react";import{jsx as A,jsxs as N}from"react/jsx-runtime";var x=u`
30
+ `;function D({conversationId:z,viewerId:B="local-user"}){let H=l(null),P=Boolean(z),{data:K,loading:X}=p(y,{variables:{conversationId:z},skip:!P,fetchPolicy:"cache-and-network"}),[J]=S(g),{projectId:k}=u(),V=K?.messages??[];if(Y(()=>{if(!P||!z)return;J({variables:{conversationId:z,userId:B}}).catch(()=>{})},[z,P,J,B]),Y(()=>{let F=H.current;if(!F)return;F.scrollTop=F.scrollHeight},[V]),!z)return $("div",{className:"flex flex-1 items-center justify-center rounded-2xl border border-border border-dashed",children:$("p",{className:"text-muted-foreground text-sm",children:"Select a conversation"})});return $("div",{className:"flex flex-1 flex-col rounded-2xl border border-border bg-card",children:$("div",{ref:H,className:"flex-1 space-y-3 overflow-y-auto p-4",children:X?$("p",{className:"text-center text-muted-foreground text-sm",children:"Loading…"}):V.slice().reverse().map((F)=>q("div",{className:`flex flex-col ${F.senderId===B?"items-end":"items-start"}`,children:[$("div",{className:`max-w-xs rounded-2xl px-3 py-2 text-sm ${F.senderId===B?"bg-violet-500 text-white":"bg-muted text-foreground"}`,children:$("p",{children:F.content})}),q("span",{className:"mt-1 text-muted-foreground text-xs",children:[F.senderName||F.senderId," ·"," ",new Date(F.createdAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})]})]},F.id))})})}import{gql as j}from"@apollo/client";import{useMutation as m}from"@apollo/client/react";import{useTemplateRuntime as x}from"@contractspec/lib.example-shared-ui";import{Send as I}from"lucide-react";import{useState as v}from"react";import{jsx as A,jsxs as N}from"react/jsx-runtime";var d=j`
31
31
  mutation SendMessage($input: SendMessageInput!) {
32
32
  sendMessage(input: $input) {
33
33
  id
34
34
  }
35
35
  }
36
- `;function L({conversationId:z,viewerId:F="local-user",viewerName:$="You"}){let{projectId:K}=g(),[J,P]=m(""),[H,{loading:k}]=l(x);return N("form",{onSubmit:async(B)=>{if(B.preventDefault(),!z||!J.trim())return;await H({variables:{input:{projectId:K,conversationId:z,senderId:F,senderName:$,content:J.trim()}},refetchQueries:[{query:y,variables:{conversationId:z}}]}),P("")},className:"mt-3 flex items-center gap-2 rounded-2xl border border-border bg-card px-4 py-3",children:[A("input",{type:"text",className:"flex-1 bg-transparent text-foreground text-sm outline-none",placeholder:z?"Type a message…":"Select a conversation to start",disabled:!z||k,value:J,onChange:(B)=>P(B.target.value)}),N("button",{type:"submit",className:"btn-primary inline-flex items-center gap-1 text-sm",disabled:!z||k||!J.trim(),children:[A(j,{className:"h-4 w-4"}),"Send"]})]})}import{registerTemplateComponents as I}from"@contractspec/lib.example-shared-ui";import{useState as v}from"react";import{jsx as O,jsxs as Q}from"react/jsx-runtime";function d(){let[z,F]=v();return Q("div",{className:"grid gap-4 md:grid-cols-[280px,1fr]",children:[O(G,{selectedId:z,onSelect:F}),Q("div",{className:"flex flex-col gap-3",children:[O(D,{conversationId:z}),O(L,{conversationId:z})]})]})}I("messaging-app",{list:d,detail:D,form:L});export{d as MessagingWorkspace};
36
+ `;function L({conversationId:z,viewerId:B="local-user",viewerName:H="You"}){let{projectId:P}=x(),[K,X]=v(""),[J,{loading:k}]=m(d);return N("form",{onSubmit:async(F)=>{if(F.preventDefault(),!z||!K.trim())return;await J({variables:{input:{projectId:P,conversationId:z,senderId:B,senderName:H,content:K.trim()}},refetchQueries:[{query:y,variables:{conversationId:z}}]}),X("")},className:"mt-3 flex items-center gap-2 rounded-2xl border border-border bg-card px-4 py-3",children:[A("input",{type:"text",className:"flex-1 bg-transparent text-foreground text-sm outline-none",placeholder:z?"Type a message…":"Select a conversation to start",disabled:!z||k,value:K,onChange:(F)=>X(F.target.value)}),N("button",{type:"submit",className:"btn-primary inline-flex items-center gap-1 text-sm",disabled:!z||k||!K.trim(),children:[A(I,{className:"h-4 w-4"}),"Send"]})]})}import{registerTemplateComponents as c}from"@contractspec/lib.example-shared-ui";import{useState as i}from"react";import{jsx as O,jsxs as Q}from"react/jsx-runtime";function r(){let[z,B]=i();return Q("div",{className:"grid gap-4 md:grid-cols-[280px,1fr]",children:[O(G,{selectedId:z,onSelect:B}),Q("div",{className:"flex flex-col gap-3",children:[O(D,{conversationId:z}),O(L,{conversationId:z})]})]})}c("messaging-app",{list:r,detail:D,form:L});export{r as MessagingWorkspace};
@@ -1,4 +1,4 @@
1
- import{gql as Q}from"@apollo/client";import{useQuery as _}from"@apollo/client/react";import{useTemplateRuntime as b}from"@contractspec/lib.example-shared-ui";import{MessageCircle as h,Users as T}from"lucide-react";import{useMemo as C}from"react";import{jsx as X,jsxs as W}from"react/jsx-runtime";var w=Q`
1
+ var Q=Object.defineProperty;var _=(z)=>z;function b(z,B){this[z]=_.bind(null,B)}var o=(z,B)=>{for(var H in B)Q(z,H,{get:B[H],enumerable:!0,configurable:!0,set:b.bind(B,H)})};var t=(z,B)=>()=>(z&&(B=z(z=0)),B);import{gql as h}from"@apollo/client";import{useQuery as T}from"@apollo/client/react";import{useTemplateRuntime as C}from"@contractspec/lib.example-shared-ui";import{MessageCircle as w,Users as R}from"lucide-react";import{useMemo as E}from"react";import{jsx as Z,jsxs as W}from"react/jsx-runtime";var M=h`
2
2
  query Conversations($projectId: ID!) {
3
3
  conversations(projectId: $projectId) {
4
4
  id
@@ -12,7 +12,7 @@ import{gql as Q}from"@apollo/client";import{useQuery as _}from"@apollo/client/re
12
12
  }
13
13
  }
14
14
  }
15
- `;function f({selectedId:z,onSelect:F}){let{projectId:$}=b(),{data:K,loading:J}=_(w,{variables:{projectId:$},fetchPolicy:"cache-and-network"}),P=C(()=>K?.conversations??[],[K]);return W("aside",{className:"h-full overflow-y-auto rounded-2xl border border-border bg-card",children:[W("header",{className:"px -4 flex items-center justify-between border-border border-b px-4 py-3",children:[W("div",{children:[X("p",{className:"font-semibold text-sm",children:"Conversations"}),X("p",{className:"text-muted-foreground text-xs",children:J?"Loading…":`${P.length} active`})]}),X(T,{className:"h-4 w-4 text-muted-foreground"})]}),W("div",{className:"divide-y divide-border/70",children:[P.map((H)=>{let k=z===H.id;return W("button",{type:"button",className:`flex w-full flex-col items-start gap-1 px-4 py-3 text-left transition ${k?"bg-violet-500/10 text-foreground":"hover:bg-muted/40"}`,onClick:()=>F?.(H.id),children:[W("div",{className:"flex items-center gap-2",children:[X(h,{className:"h-4 w-4 text-muted-foreground"}),X("span",{className:"font-medium text-sm",children:H.name||"Untitled conversation"})]}),X("p",{className:"text-muted-foreground text-xs",children:H.participants.map((V)=>V.displayName||V.userId).join(" · ")})]},H.id)}),!J&&P.length===0?X("p",{className:"p-4 text-center text-muted-foreground text-xs",children:"No conversations yet."}):null]})]})}import{gql as q}from"@apollo/client";import{useMutation as R,useQuery as E}from"@apollo/client/react";import{useTemplateRuntime as M}from"@contractspec/lib.example-shared-ui";import{useEffect as G,useRef as S}from"react";import{jsx as Z,jsxs as Y}from"react/jsx-runtime";var y=q`
15
+ `;function f({selectedId:z,onSelect:B}){let{projectId:H}=C(),{data:P,loading:K}=T(M,{variables:{projectId:H},fetchPolicy:"cache-and-network"}),X=E(()=>P?.conversations??[],[P]);return W("aside",{className:"h-full overflow-y-auto rounded-2xl border border-border bg-card",children:[W("header",{className:"px -4 flex items-center justify-between border-border border-b px-4 py-3",children:[W("div",{children:[Z("p",{className:"font-semibold text-sm",children:"Conversations"}),Z("p",{className:"text-muted-foreground text-xs",children:K?"Loading…":`${X.length} active`})]}),Z(R,{className:"h-4 w-4 text-muted-foreground"})]}),W("div",{className:"divide-y divide-border/70",children:[X.map((J)=>{let k=z===J.id;return W("button",{type:"button",className:`flex w-full flex-col items-start gap-1 px-4 py-3 text-left transition ${k?"bg-violet-500/10 text-foreground":"hover:bg-muted/40"}`,onClick:()=>B?.(J.id),children:[W("div",{className:"flex items-center gap-2",children:[Z(w,{className:"h-4 w-4 text-muted-foreground"}),Z("span",{className:"font-medium text-sm",children:J.name||"Untitled conversation"})]}),Z("p",{className:"text-muted-foreground text-xs",children:J.participants.map((V)=>V.displayName||V.userId).join(" · ")})]},J.id)}),!K&&X.length===0?Z("p",{className:"p-4 text-center text-muted-foreground text-xs",children:"No conversations yet."}):null]})]})}import{gql as q}from"@apollo/client";import{useMutation as S,useQuery as p}from"@apollo/client/react";import{useTemplateRuntime as u}from"@contractspec/lib.example-shared-ui";import{useEffect as G,useRef as m}from"react";import{jsx as $,jsxs as Y}from"react/jsx-runtime";var y=q`
16
16
  query Messages($conversationId: ID!) {
17
17
  messages(conversationId: $conversationId, limit: 50) {
18
18
  id
@@ -23,14 +23,14 @@ import{gql as Q}from"@apollo/client";import{useQuery as _}from"@apollo/client/re
23
23
  status
24
24
  }
25
25
  }
26
- `,p=q`
26
+ `,x=q`
27
27
  mutation SetMessagesRead($conversationId: ID!, $userId: String!) {
28
28
  setMessagesRead(conversationId: $conversationId, userId: $userId)
29
29
  }
30
- `;function D({conversationId:z,viewerId:F="local-user"}){let $=S(null),K=Boolean(z),{data:J,loading:P}=E(y,{variables:{conversationId:z},skip:!K,fetchPolicy:"cache-and-network"}),[H]=R(p),{projectId:k}=M(),V=J?.messages??[];if(G(()=>{if(!K||!z)return;H({variables:{conversationId:z,userId:F}}).catch(()=>{})},[z,K,H,F]),G(()=>{let B=$.current;if(!B)return;B.scrollTop=B.scrollHeight},[V]),!z)return Z("div",{className:"flex flex-1 items-center justify-center rounded-2xl border border-border border-dashed",children:Z("p",{className:"text-muted-foreground text-sm",children:"Select a conversation"})});return Z("div",{className:"flex flex-1 flex-col rounded-2xl border border-border bg-card",children:Z("div",{ref:$,className:"flex-1 space-y-3 overflow-y-auto p-4",children:P?Z("p",{className:"text-center text-muted-foreground text-sm",children:"Loading…"}):V.slice().reverse().map((B)=>Y("div",{className:`flex flex-col ${B.senderId===F?"items-end":"items-start"}`,children:[Z("div",{className:`max-w-xs rounded-2xl px-3 py-2 text-sm ${B.senderId===F?"bg-violet-500 text-white":"bg-muted text-foreground"}`,children:Z("p",{children:B.content})}),Y("span",{className:"mt-1 text-muted-foreground text-xs",children:[B.senderName||B.senderId," ·"," ",new Date(B.createdAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})]})]},B.id))})})}import{gql as u}from"@apollo/client";import{useMutation as m}from"@apollo/client/react";import{useTemplateRuntime as x}from"@contractspec/lib.example-shared-ui";import{Send as l}from"lucide-react";import{useState as g}from"react";import{jsx as U,jsxs as A}from"react/jsx-runtime";var j=u`
30
+ `;function D({conversationId:z,viewerId:B="local-user"}){let H=m(null),P=Boolean(z),{data:K,loading:X}=p(y,{variables:{conversationId:z},skip:!P,fetchPolicy:"cache-and-network"}),[J]=S(x),{projectId:k}=u(),V=K?.messages??[];if(G(()=>{if(!P||!z)return;J({variables:{conversationId:z,userId:B}}).catch(()=>{})},[z,P,J,B]),G(()=>{let F=H.current;if(!F)return;F.scrollTop=F.scrollHeight},[V]),!z)return $("div",{className:"flex flex-1 items-center justify-center rounded-2xl border border-border border-dashed",children:$("p",{className:"text-muted-foreground text-sm",children:"Select a conversation"})});return $("div",{className:"flex flex-1 flex-col rounded-2xl border border-border bg-card",children:$("div",{ref:H,className:"flex-1 space-y-3 overflow-y-auto p-4",children:X?$("p",{className:"text-center text-muted-foreground text-sm",children:"Loading…"}):V.slice().reverse().map((F)=>Y("div",{className:`flex flex-col ${F.senderId===B?"items-end":"items-start"}`,children:[$("div",{className:`max-w-xs rounded-2xl px-3 py-2 text-sm ${F.senderId===B?"bg-violet-500 text-white":"bg-muted text-foreground"}`,children:$("p",{children:F.content})}),Y("span",{className:"mt-1 text-muted-foreground text-xs",children:[F.senderName||F.senderId," ·"," ",new Date(F.createdAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})]})]},F.id))})})}import{gql as l}from"@apollo/client";import{useMutation as g}from"@apollo/client/react";import{useTemplateRuntime as j}from"@contractspec/lib.example-shared-ui";import{Send as I}from"lucide-react";import{useState as v}from"react";import{jsx as U,jsxs as A}from"react/jsx-runtime";var d=l`
31
31
  mutation SendMessage($input: SendMessageInput!) {
32
32
  sendMessage(input: $input) {
33
33
  id
34
34
  }
35
35
  }
36
- `;function L({conversationId:z,viewerId:F="local-user",viewerName:$="You"}){let{projectId:K}=x(),[J,P]=g(""),[H,{loading:k}]=m(j);return A("form",{onSubmit:async(B)=>{if(B.preventDefault(),!z||!J.trim())return;await H({variables:{input:{projectId:K,conversationId:z,senderId:F,senderName:$,content:J.trim()}},refetchQueries:[{query:y,variables:{conversationId:z}}]}),P("")},className:"mt-3 flex items-center gap-2 rounded-2xl border border-border bg-card px-4 py-3",children:[U("input",{type:"text",className:"flex-1 bg-transparent text-foreground text-sm outline-none",placeholder:z?"Type a message…":"Select a conversation to start",disabled:!z||k,value:J,onChange:(B)=>P(B.target.value)}),A("button",{type:"submit",className:"btn-primary inline-flex items-center gap-1 text-sm",disabled:!z||k||!J.trim(),children:[U(l,{className:"h-4 w-4"}),"Send"]})]})}import{registerTemplateComponents as I}from"@contractspec/lib.example-shared-ui";import{useState as v}from"react";import{jsx as O,jsxs as N}from"react/jsx-runtime";function d(){let[z,F]=v();return N("div",{className:"grid gap-4 md:grid-cols-[280px,1fr]",children:[O(f,{selectedId:z,onSelect:F}),N("div",{className:"flex flex-col gap-3",children:[O(D,{conversationId:z}),O(L,{conversationId:z})]})]})}I("messaging-app",{list:d,detail:D,form:L});export{d as MessagingWorkspace,D as MessageThread,L as MessageComposer,y as MESSAGES_QUERY,f as ConversationList};
36
+ `;function L({conversationId:z,viewerId:B="local-user",viewerName:H="You"}){let{projectId:P}=j(),[K,X]=v(""),[J,{loading:k}]=g(d);return A("form",{onSubmit:async(F)=>{if(F.preventDefault(),!z||!K.trim())return;await J({variables:{input:{projectId:P,conversationId:z,senderId:B,senderName:H,content:K.trim()}},refetchQueries:[{query:y,variables:{conversationId:z}}]}),X("")},className:"mt-3 flex items-center gap-2 rounded-2xl border border-border bg-card px-4 py-3",children:[U("input",{type:"text",className:"flex-1 bg-transparent text-foreground text-sm outline-none",placeholder:z?"Type a message…":"Select a conversation to start",disabled:!z||k,value:K,onChange:(F)=>X(F.target.value)}),A("button",{type:"submit",className:"btn-primary inline-flex items-center gap-1 text-sm",disabled:!z||k||!K.trim(),children:[U(I,{className:"h-4 w-4"}),"Send"]})]})}import{registerTemplateComponents as c}from"@contractspec/lib.example-shared-ui";import{useState as r}from"react";import{jsx as O,jsxs as N}from"react/jsx-runtime";function i(){let[z,B]=r();return N("div",{className:"grid gap-4 md:grid-cols-[280px,1fr]",children:[O(f,{selectedId:z,onSelect:B}),N("div",{className:"flex flex-col gap-3",children:[O(D,{conversationId:z}),O(L,{conversationId:z})]})]})}c("messaging-app",{list:i,detail:D,form:L});export{i as MessagingWorkspace,D as MessageThread,L as MessageComposer,y as MESSAGES_QUERY,f as ConversationList};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";function n({locale:t,onChange:r}){return o("div",{className:"inline-flex rounded-full border border-border bg-card p-1 font-semibold text-muted-foreground text-xs",children:["EN","FR"].map((e)=>o("button",{type:"button",className:`rounded-full px-3 py-1 transition ${t===e?"bg-violet-500 text-white":"hover:text-foreground"}`,onClick:()=>r(e),children:e==="EN"?"English":"Français"},e))})}export{n as LanguageSwitcher};
1
+ var n=Object.defineProperty;var i=(e)=>e;function d(e,o){this[e]=i.bind(null,o)}var a=(e,o)=>{for(var t in o)n(e,t,{get:o[t],enumerable:!0,configurable:!0,set:d.bind(o,t)})};var l=(e,o)=>()=>(e&&(o=e(e=0)),o);import{jsx as r}from"react/jsx-runtime";function u({locale:e,onChange:o}){return r("div",{className:"inline-flex rounded-full border border-border bg-card p-1 font-semibold text-muted-foreground text-xs",children:["EN","FR"].map((t)=>r("button",{type:"button",className:`rounded-full px-3 py-1 transition ${e===t?"bg-violet-500 text-white":"hover:text-foreground"}`,onClick:()=>o(t),children:t==="EN"?"English":"Français"},t))})}export{u as LanguageSwitcher};
@@ -1 +1 @@
1
- import{Heart as l}from"lucide-react";import{jsx as o,jsxs as t}from"react/jsx-runtime";function d({recipe:e,onSelect:r,onToggleFavorite:n}){return t("button",{type:"button",onClick:()=>r?.(e),className:"flex flex-col gap-3 rounded-2xl border border-border bg-card text-left transition hover:border-violet-400",children:[e.heroImageUrl?o("img",{src:e.heroImageUrl,alt:e.name,className:"h-40 w-full rounded-t-2xl object-cover"}):o("div",{className:"h-40 rounded-t-2xl bg-muted"}),t("div",{className:"space-y-2 p-4",children:[t("div",{className:"flex items-center justify-between",children:[o("p",{className:"font-semibold text-base",children:e.name}),o("button",{type:"button",className:`inline-flex items-center justify-center rounded-full border border-transparent p-2 ${e.isFavorite?"text-red-400":"text-muted-foreground hover:text-red-400"}`,onClick:(a)=>{a.stopPropagation(),n?.(e)},children:o(l,{className:`h-4 w-4 ${e.isFavorite?"fill-red-400":""}`})})]}),o("p",{className:"line-clamp-2 text-muted-foreground text-sm",children:e.description}),t("div",{className:"flex flex-wrap gap-3 text-muted-foreground text-xs",children:[e.prepTimeMinutes?t("span",{children:["Prep ",e.prepTimeMinutes,"m"]}):null,e.cookTimeMinutes?t("span",{children:["Cook ",e.cookTimeMinutes,"m"]}):null,e.servings?t("span",{children:[e.servings," servings"]}):null]})]})]})}export{d as RecipeCard};
1
+ var l=Object.defineProperty;var i=(e)=>e;function d(e,t){this[e]=i.bind(null,t)}var m=(e,t)=>{for(var n in t)l(e,n,{get:t[n],enumerable:!0,configurable:!0,set:d.bind(t,n)})};var p=(e,t)=>()=>(e&&(t=e(e=0)),t);import{Heart as s}from"lucide-react";import{jsx as r,jsxs as o}from"react/jsx-runtime";function f({recipe:e,onSelect:t,onToggleFavorite:n}){return o("button",{type:"button",onClick:()=>t?.(e),className:"flex flex-col gap-3 rounded-2xl border border-border bg-card text-left transition hover:border-violet-400",children:[e.heroImageUrl?r("img",{src:e.heroImageUrl,alt:e.name,className:"h-40 w-full rounded-t-2xl object-cover"}):r("div",{className:"h-40 rounded-t-2xl bg-muted"}),o("div",{className:"space-y-2 p-4",children:[o("div",{className:"flex items-center justify-between",children:[r("p",{className:"font-semibold text-base",children:e.name}),r("button",{type:"button",className:`inline-flex items-center justify-center rounded-full border border-transparent p-2 ${e.isFavorite?"text-red-400":"text-muted-foreground hover:text-red-400"}`,onClick:(a)=>{a.stopPropagation(),n?.(e)},children:r(s,{className:`h-4 w-4 ${e.isFavorite?"fill-red-400":""}`})})]}),r("p",{className:"line-clamp-2 text-muted-foreground text-sm",children:e.description}),o("div",{className:"flex flex-wrap gap-3 text-muted-foreground text-xs",children:[e.prepTimeMinutes?o("span",{children:["Prep ",e.prepTimeMinutes,"m"]}):null,e.cookTimeMinutes?o("span",{children:["Cook ",e.cookTimeMinutes,"m"]}):null,e.servings?o("span",{children:[e.servings," servings"]}):null]})]})]})}export{f as RecipeCard};
@@ -1 +1 @@
1
- import{BookOpen as a}from"lucide-react";import{jsx as e,jsxs as r}from"react/jsx-runtime";function d({recipe:o}){if(!o)return e("div",{className:"flex flex-1 items-center justify-center rounded-2xl border border-border border-dashed",children:e("p",{className:"text-muted-foreground text-sm",children:"Select a recipe to view details."})});return r("article",{className:"space-y-4 rounded-2xl border border-border bg-card p-6",children:[r("header",{className:"flex flex-wrap items-center gap-3",children:[e(a,{className:"h-5 w-5 text-muted-foreground"}),r("div",{children:[e("h2",{className:"font-semibold text-xl",children:o.name}),e("p",{className:"text-muted-foreground text-sm",children:o.description})]})]}),r("section",{children:[e("h3",{className:"font-semibold text-muted-foreground text-sm uppercase tracking-wide",children:"Ingredients"}),e("ul",{className:"mt-2 list-disc space-y-1 pl-6 text-foreground text-sm",children:o.ingredients.map((t)=>r("li",{children:[t.name," – ",t.quantity]},t.id))})]}),r("section",{children:[e("h3",{className:"font-semibold text-muted-foreground text-sm uppercase tracking-wide",children:"Instructions"}),e("ol",{className:"mt-2 list-decimal space-y-2 pl-6 text-foreground text-sm",children:o.instructions.map((t)=>e("li",{children:t.content},t.id))})]})]})}export{d as RecipeDetail};
1
+ var i=Object.defineProperty;var d=(e)=>e;function l(e,t){this[e]=d.bind(null,t)}var m=(e,t)=>{for(var a in t)i(e,a,{get:t[a],enumerable:!0,configurable:!0,set:l.bind(t,a)})};var n=(e,t)=>()=>(e&&(t=e(e=0)),t);import{BookOpen as c}from"lucide-react";import{jsx as r,jsxs as o}from"react/jsx-runtime";function u({recipe:e}){if(!e)return r("div",{className:"flex flex-1 items-center justify-center rounded-2xl border border-border border-dashed",children:r("p",{className:"text-muted-foreground text-sm",children:"Select a recipe to view details."})});return o("article",{className:"space-y-4 rounded-2xl border border-border bg-card p-6",children:[o("header",{className:"flex flex-wrap items-center gap-3",children:[r(c,{className:"h-5 w-5 text-muted-foreground"}),o("div",{children:[r("h2",{className:"font-semibold text-xl",children:e.name}),r("p",{className:"text-muted-foreground text-sm",children:e.description})]})]}),o("section",{children:[r("h3",{className:"font-semibold text-muted-foreground text-sm uppercase tracking-wide",children:"Ingredients"}),r("ul",{className:"mt-2 list-disc space-y-1 pl-6 text-foreground text-sm",children:e.ingredients.map((t)=>o("li",{children:[t.name," – ",t.quantity]},t.id))})]}),o("section",{children:[r("h3",{className:"font-semibold text-muted-foreground text-sm uppercase tracking-wide",children:"Instructions"}),r("ol",{className:"mt-2 list-decimal space-y-2 pl-6 text-foreground text-sm",children:e.instructions.map((t)=>r("li",{children:t.content},t.id))})]})]})}export{u as RecipeDetail};
@@ -1,4 +1,4 @@
1
- import{jsx as p}from"react/jsx-runtime";function b({locale:t,onChange:e}){return p("div",{className:"inline-flex rounded-full border border-border bg-card p-1 font-semibold text-muted-foreground text-xs",children:["EN","FR"].map((n)=>p("button",{type:"button",className:`rounded-full px-3 py-1 transition ${t===n?"bg-violet-500 text-white":"hover:text-foreground"}`,onClick:()=>e(n),children:n==="EN"?"English":"Français"},n))})}import{Heart as F}from"lucide-react";import{jsx as a,jsxs as d}from"react/jsx-runtime";function c({recipe:t,onSelect:e,onToggleFavorite:n}){return d("button",{type:"button",onClick:()=>e?.(t),className:"flex flex-col gap-3 rounded-2xl border border-border bg-card text-left transition hover:border-violet-400",children:[t.heroImageUrl?a("img",{src:t.heroImageUrl,alt:t.name,className:"h-40 w-full rounded-t-2xl object-cover"}):a("div",{className:"h-40 rounded-t-2xl bg-muted"}),d("div",{className:"space-y-2 p-4",children:[d("div",{className:"flex items-center justify-between",children:[a("p",{className:"font-semibold text-base",children:t.name}),a("button",{type:"button",className:`inline-flex items-center justify-center rounded-full border border-transparent p-2 ${t.isFavorite?"text-red-400":"text-muted-foreground hover:text-red-400"}`,onClick:(i)=>{i.stopPropagation(),n?.(t)},children:a(F,{className:`h-4 w-4 ${t.isFavorite?"fill-red-400":""}`})})]}),a("p",{className:"line-clamp-2 text-muted-foreground text-sm",children:t.description}),d("div",{className:"flex flex-wrap gap-3 text-muted-foreground text-xs",children:[t.prepTimeMinutes?d("span",{children:["Prep ",t.prepTimeMinutes,"m"]}):null,t.cookTimeMinutes?d("span",{children:["Cook ",t.cookTimeMinutes,"m"]}):null,t.servings?d("span",{children:[t.servings," servings"]}):null]})]})]})}import{BookOpen as C}from"lucide-react";import{jsx as r,jsxs as l}from"react/jsx-runtime";function s({recipe:t}){if(!t)return r("div",{className:"flex flex-1 items-center justify-center rounded-2xl border border-border border-dashed",children:r("p",{className:"text-muted-foreground text-sm",children:"Select a recipe to view details."})});return l("article",{className:"space-y-4 rounded-2xl border border-border bg-card p-6",children:[l("header",{className:"flex flex-wrap items-center gap-3",children:[r(C,{className:"h-5 w-5 text-muted-foreground"}),l("div",{children:[r("h2",{className:"font-semibold text-xl",children:t.name}),r("p",{className:"text-muted-foreground text-sm",children:t.description})]})]}),l("section",{children:[r("h3",{className:"font-semibold text-muted-foreground text-sm uppercase tracking-wide",children:"Ingredients"}),r("ul",{className:"mt-2 list-disc space-y-1 pl-6 text-foreground text-sm",children:t.ingredients.map((e)=>l("li",{children:[e.name," – ",e.quantity]},e.id))})]}),l("section",{children:[r("h3",{className:"font-semibold text-muted-foreground text-sm uppercase tracking-wide",children:"Instructions"}),r("ol",{className:"mt-2 list-decimal space-y-2 pl-6 text-foreground text-sm",children:t.instructions.map((e)=>r("li",{children:e.content},e.id))})]})]})}import{gql as v}from"@apollo/client";import{useMutation as M,useQuery as R}from"@apollo/client/react";import{registerTemplateComponents as $,useTemplateRuntime as B}from"@contractspec/lib.example-shared-ui";import{useState as u}from"react";import{jsx as m,jsxs as N}from"react/jsx-runtime";var H=v`
1
+ var F=Object.defineProperty;var C=(t)=>t;function M(t,e){this[t]=C.bind(null,e)}var J=(t,e)=>{for(var o in e)F(t,o,{get:e[o],enumerable:!0,configurable:!0,set:M.bind(e,o)})};var K=(t,e)=>()=>(t&&(e=t(t=0)),e);import{jsx as p}from"react/jsx-runtime";function b({locale:t,onChange:e}){return p("div",{className:"inline-flex rounded-full border border-border bg-card p-1 font-semibold text-muted-foreground text-xs",children:["EN","FR"].map((o)=>p("button",{type:"button",className:`rounded-full px-3 py-1 transition ${t===o?"bg-violet-500 text-white":"hover:text-foreground"}`,onClick:()=>e(o),children:o==="EN"?"English":"Français"},o))})}import{Heart as R}from"lucide-react";import{jsx as a,jsxs as d}from"react/jsx-runtime";function c({recipe:t,onSelect:e,onToggleFavorite:o}){return d("button",{type:"button",onClick:()=>e?.(t),className:"flex flex-col gap-3 rounded-2xl border border-border bg-card text-left transition hover:border-violet-400",children:[t.heroImageUrl?a("img",{src:t.heroImageUrl,alt:t.name,className:"h-40 w-full rounded-t-2xl object-cover"}):a("div",{className:"h-40 rounded-t-2xl bg-muted"}),d("div",{className:"space-y-2 p-4",children:[d("div",{className:"flex items-center justify-between",children:[a("p",{className:"font-semibold text-base",children:t.name}),a("button",{type:"button",className:`inline-flex items-center justify-center rounded-full border border-transparent p-2 ${t.isFavorite?"text-red-400":"text-muted-foreground hover:text-red-400"}`,onClick:(i)=>{i.stopPropagation(),o?.(t)},children:a(R,{className:`h-4 w-4 ${t.isFavorite?"fill-red-400":""}`})})]}),a("p",{className:"line-clamp-2 text-muted-foreground text-sm",children:t.description}),d("div",{className:"flex flex-wrap gap-3 text-muted-foreground text-xs",children:[t.prepTimeMinutes?d("span",{children:["Prep ",t.prepTimeMinutes,"m"]}):null,t.cookTimeMinutes?d("span",{children:["Cook ",t.cookTimeMinutes,"m"]}):null,t.servings?d("span",{children:[t.servings," servings"]}):null]})]})]})}import{BookOpen as $}from"lucide-react";import{jsx as n,jsxs as l}from"react/jsx-runtime";function s({recipe:t}){if(!t)return n("div",{className:"flex flex-1 items-center justify-center rounded-2xl border border-border border-dashed",children:n("p",{className:"text-muted-foreground text-sm",children:"Select a recipe to view details."})});return l("article",{className:"space-y-4 rounded-2xl border border-border bg-card p-6",children:[l("header",{className:"flex flex-wrap items-center gap-3",children:[n($,{className:"h-5 w-5 text-muted-foreground"}),l("div",{children:[n("h2",{className:"font-semibold text-xl",children:t.name}),n("p",{className:"text-muted-foreground text-sm",children:t.description})]})]}),l("section",{children:[n("h3",{className:"font-semibold text-muted-foreground text-sm uppercase tracking-wide",children:"Ingredients"}),n("ul",{className:"mt-2 list-disc space-y-1 pl-6 text-foreground text-sm",children:t.ingredients.map((e)=>l("li",{children:[e.name," – ",e.quantity]},e.id))})]}),l("section",{children:[n("h3",{className:"font-semibold text-muted-foreground text-sm uppercase tracking-wide",children:"Instructions"}),n("ol",{className:"mt-2 list-decimal space-y-2 pl-6 text-foreground text-sm",children:t.instructions.map((e)=>n("li",{children:e.content},e.id))})]})]})}import{gql as v}from"@apollo/client";import{useMutation as B,useQuery as H}from"@apollo/client/react";import{registerTemplateComponents as T,useTemplateRuntime as U}from"@contractspec/lib.example-shared-ui";import{useState as u}from"react";import{jsx as m,jsxs as N}from"react/jsx-runtime";var z=v`
2
2
  query Recipes($projectId: ID!, $locale: RecipeLocale!) {
3
3
  recipes(projectId: $projectId, locale: $locale) {
4
4
  id
@@ -27,11 +27,11 @@ import{jsx as p}from"react/jsx-runtime";function b({locale:t,onChange:e}){return
27
27
  }
28
28
  }
29
29
  }
30
- `,T=v`
30
+ `,D=v`
31
31
  mutation FavoriteRecipe($id: ID!, $isFavorite: Boolean!) {
32
32
  favoriteRecipe(id: $id, isFavorite: $isFavorite) {
33
33
  id
34
34
  isFavorite
35
35
  }
36
36
  }
37
- `;function U(){let{projectId:t}=B(),[e,n]=u("EN"),[i,g]=u(),[f,y]=u(""),{data:h,loading:k}=R(H,{variables:{projectId:t,locale:e},fetchPolicy:"cache-and-network"}),[w]=M(T),x=(h?.recipes??[]).filter((o)=>o.name.toLowerCase().includes(f.toLowerCase())),P=async(o)=>{await w({variables:{id:o.id,isFavorite:!o.isFavorite},optimisticResponse:{favoriteRecipe:{__typename:"Recipe",id:o.id,isFavorite:!o.isFavorite}}})};return N("div",{className:"space-y-4",children:[N("div",{className:"flex flex-wrap items-center gap-3",children:[m(b,{locale:e,onChange:n}),m("input",{type:"search",placeholder:e==="EN"?"Search recipes":"Rechercher des recettes",className:"flex-1 rounded-full border border-border bg-card px-4 py-2 text-sm",value:f,onChange:(o)=>y(o.target.value)})]}),k?m("p",{className:"text-muted-foreground text-sm",children:"Loading recipes…"}):m("div",{className:"grid gap-4 md:grid-cols-3",children:x.map((o)=>m(c,{recipe:o,onSelect:g,onToggleFavorite:P},o.id))}),m(s,{recipe:i})]})}$("recipe-app-i18n",{list:U,detail:s});export{U as RecipeList};
37
+ `;function G(){let{projectId:t}=U(),[e,o]=u("EN"),[i,g]=u(),[f,y]=u(""),{data:h,loading:k}=H(z,{variables:{projectId:t,locale:e},fetchPolicy:"cache-and-network"}),[w]=B(D),x=(h?.recipes??[]).filter((r)=>r.name.toLowerCase().includes(f.toLowerCase())),P=async(r)=>{await w({variables:{id:r.id,isFavorite:!r.isFavorite},optimisticResponse:{favoriteRecipe:{__typename:"Recipe",id:r.id,isFavorite:!r.isFavorite}}})};return N("div",{className:"space-y-4",children:[N("div",{className:"flex flex-wrap items-center gap-3",children:[m(b,{locale:e,onChange:o}),m("input",{type:"search",placeholder:e==="EN"?"Search recipes":"Rechercher des recettes",className:"flex-1 rounded-full border border-border bg-card px-4 py-2 text-sm",value:f,onChange:(r)=>y(r.target.value)})]}),k?m("p",{className:"text-muted-foreground text-sm",children:"Loading recipes…"}):m("div",{className:"grid gap-4 md:grid-cols-3",children:x.map((r)=>m(c,{recipe:r,onSelect:g,onToggleFavorite:P},r.id))}),m(s,{recipe:i})]})}T("recipe-app-i18n",{list:G,detail:s});export{G as RecipeList};
@@ -1,4 +1,4 @@
1
- import{jsx as p}from"react/jsx-runtime";function b({locale:t,onChange:e}){return p("div",{className:"inline-flex rounded-full border border-border bg-card p-1 font-semibold text-muted-foreground text-xs",children:["EN","FR"].map((n)=>p("button",{type:"button",className:`rounded-full px-3 py-1 transition ${t===n?"bg-violet-500 text-white":"hover:text-foreground"}`,onClick:()=>e(n),children:n==="EN"?"English":"Français"},n))})}import{Heart as F}from"lucide-react";import{jsx as a,jsxs as d}from"react/jsx-runtime";function c({recipe:t,onSelect:e,onToggleFavorite:n}){return d("button",{type:"button",onClick:()=>e?.(t),className:"flex flex-col gap-3 rounded-2xl border border-border bg-card text-left transition hover:border-violet-400",children:[t.heroImageUrl?a("img",{src:t.heroImageUrl,alt:t.name,className:"h-40 w-full rounded-t-2xl object-cover"}):a("div",{className:"h-40 rounded-t-2xl bg-muted"}),d("div",{className:"space-y-2 p-4",children:[d("div",{className:"flex items-center justify-between",children:[a("p",{className:"font-semibold text-base",children:t.name}),a("button",{type:"button",className:`inline-flex items-center justify-center rounded-full border border-transparent p-2 ${t.isFavorite?"text-red-400":"text-muted-foreground hover:text-red-400"}`,onClick:(i)=>{i.stopPropagation(),n?.(t)},children:a(F,{className:`h-4 w-4 ${t.isFavorite?"fill-red-400":""}`})})]}),a("p",{className:"line-clamp-2 text-muted-foreground text-sm",children:t.description}),d("div",{className:"flex flex-wrap gap-3 text-muted-foreground text-xs",children:[t.prepTimeMinutes?d("span",{children:["Prep ",t.prepTimeMinutes,"m"]}):null,t.cookTimeMinutes?d("span",{children:["Cook ",t.cookTimeMinutes,"m"]}):null,t.servings?d("span",{children:[t.servings," servings"]}):null]})]})]})}import{BookOpen as C}from"lucide-react";import{jsx as r,jsxs as l}from"react/jsx-runtime";function f({recipe:t}){if(!t)return r("div",{className:"flex flex-1 items-center justify-center rounded-2xl border border-border border-dashed",children:r("p",{className:"text-muted-foreground text-sm",children:"Select a recipe to view details."})});return l("article",{className:"space-y-4 rounded-2xl border border-border bg-card p-6",children:[l("header",{className:"flex flex-wrap items-center gap-3",children:[r(C,{className:"h-5 w-5 text-muted-foreground"}),l("div",{children:[r("h2",{className:"font-semibold text-xl",children:t.name}),r("p",{className:"text-muted-foreground text-sm",children:t.description})]})]}),l("section",{children:[r("h3",{className:"font-semibold text-muted-foreground text-sm uppercase tracking-wide",children:"Ingredients"}),r("ul",{className:"mt-2 list-disc space-y-1 pl-6 text-foreground text-sm",children:t.ingredients.map((e)=>l("li",{children:[e.name," – ",e.quantity]},e.id))})]}),l("section",{children:[r("h3",{className:"font-semibold text-muted-foreground text-sm uppercase tracking-wide",children:"Instructions"}),r("ol",{className:"mt-2 list-decimal space-y-2 pl-6 text-foreground text-sm",children:t.instructions.map((e)=>r("li",{children:e.content},e.id))})]})]})}import{gql as v}from"@apollo/client";import{useMutation as M,useQuery as R}from"@apollo/client/react";import{registerTemplateComponents as $,useTemplateRuntime as B}from"@contractspec/lib.example-shared-ui";import{useState as s}from"react";import{jsx as m,jsxs as N}from"react/jsx-runtime";var H=v`
1
+ var F=Object.defineProperty;var C=(t)=>t;function M(t,e){this[t]=C.bind(null,e)}var J=(t,e)=>{for(var o in e)F(t,o,{get:e[o],enumerable:!0,configurable:!0,set:M.bind(e,o)})};var K=(t,e)=>()=>(t&&(e=t(t=0)),e);import{jsx as p}from"react/jsx-runtime";function b({locale:t,onChange:e}){return p("div",{className:"inline-flex rounded-full border border-border bg-card p-1 font-semibold text-muted-foreground text-xs",children:["EN","FR"].map((o)=>p("button",{type:"button",className:`rounded-full px-3 py-1 transition ${t===o?"bg-violet-500 text-white":"hover:text-foreground"}`,onClick:()=>e(o),children:o==="EN"?"English":"Français"},o))})}import{Heart as R}from"lucide-react";import{jsx as a,jsxs as d}from"react/jsx-runtime";function c({recipe:t,onSelect:e,onToggleFavorite:o}){return d("button",{type:"button",onClick:()=>e?.(t),className:"flex flex-col gap-3 rounded-2xl border border-border bg-card text-left transition hover:border-violet-400",children:[t.heroImageUrl?a("img",{src:t.heroImageUrl,alt:t.name,className:"h-40 w-full rounded-t-2xl object-cover"}):a("div",{className:"h-40 rounded-t-2xl bg-muted"}),d("div",{className:"space-y-2 p-4",children:[d("div",{className:"flex items-center justify-between",children:[a("p",{className:"font-semibold text-base",children:t.name}),a("button",{type:"button",className:`inline-flex items-center justify-center rounded-full border border-transparent p-2 ${t.isFavorite?"text-red-400":"text-muted-foreground hover:text-red-400"}`,onClick:(i)=>{i.stopPropagation(),o?.(t)},children:a(R,{className:`h-4 w-4 ${t.isFavorite?"fill-red-400":""}`})})]}),a("p",{className:"line-clamp-2 text-muted-foreground text-sm",children:t.description}),d("div",{className:"flex flex-wrap gap-3 text-muted-foreground text-xs",children:[t.prepTimeMinutes?d("span",{children:["Prep ",t.prepTimeMinutes,"m"]}):null,t.cookTimeMinutes?d("span",{children:["Cook ",t.cookTimeMinutes,"m"]}):null,t.servings?d("span",{children:[t.servings," servings"]}):null]})]})]})}import{BookOpen as $}from"lucide-react";import{jsx as n,jsxs as l}from"react/jsx-runtime";function f({recipe:t}){if(!t)return n("div",{className:"flex flex-1 items-center justify-center rounded-2xl border border-border border-dashed",children:n("p",{className:"text-muted-foreground text-sm",children:"Select a recipe to view details."})});return l("article",{className:"space-y-4 rounded-2xl border border-border bg-card p-6",children:[l("header",{className:"flex flex-wrap items-center gap-3",children:[n($,{className:"h-5 w-5 text-muted-foreground"}),l("div",{children:[n("h2",{className:"font-semibold text-xl",children:t.name}),n("p",{className:"text-muted-foreground text-sm",children:t.description})]})]}),l("section",{children:[n("h3",{className:"font-semibold text-muted-foreground text-sm uppercase tracking-wide",children:"Ingredients"}),n("ul",{className:"mt-2 list-disc space-y-1 pl-6 text-foreground text-sm",children:t.ingredients.map((e)=>l("li",{children:[e.name," – ",e.quantity]},e.id))})]}),l("section",{children:[n("h3",{className:"font-semibold text-muted-foreground text-sm uppercase tracking-wide",children:"Instructions"}),n("ol",{className:"mt-2 list-decimal space-y-2 pl-6 text-foreground text-sm",children:t.instructions.map((e)=>n("li",{children:e.content},e.id))})]})]})}import{gql as v}from"@apollo/client";import{useMutation as B,useQuery as H}from"@apollo/client/react";import{registerTemplateComponents as T,useTemplateRuntime as U}from"@contractspec/lib.example-shared-ui";import{useState as s}from"react";import{jsx as m,jsxs as N}from"react/jsx-runtime";var z=v`
2
2
  query Recipes($projectId: ID!, $locale: RecipeLocale!) {
3
3
  recipes(projectId: $projectId, locale: $locale) {
4
4
  id
@@ -27,11 +27,11 @@ import{jsx as p}from"react/jsx-runtime";function b({locale:t,onChange:e}){return
27
27
  }
28
28
  }
29
29
  }
30
- `,T=v`
30
+ `,D=v`
31
31
  mutation FavoriteRecipe($id: ID!, $isFavorite: Boolean!) {
32
32
  favoriteRecipe(id: $id, isFavorite: $isFavorite) {
33
33
  id
34
34
  isFavorite
35
35
  }
36
36
  }
37
- `;function U(){let{projectId:t}=B(),[e,n]=s("EN"),[i,g]=s(),[u,y]=s(""),{data:h,loading:x}=R(H,{variables:{projectId:t,locale:e},fetchPolicy:"cache-and-network"}),[k]=M(T),w=(h?.recipes??[]).filter((o)=>o.name.toLowerCase().includes(u.toLowerCase())),P=async(o)=>{await k({variables:{id:o.id,isFavorite:!o.isFavorite},optimisticResponse:{favoriteRecipe:{__typename:"Recipe",id:o.id,isFavorite:!o.isFavorite}}})};return N("div",{className:"space-y-4",children:[N("div",{className:"flex flex-wrap items-center gap-3",children:[m(b,{locale:e,onChange:n}),m("input",{type:"search",placeholder:e==="EN"?"Search recipes":"Rechercher des recettes",className:"flex-1 rounded-full border border-border bg-card px-4 py-2 text-sm",value:u,onChange:(o)=>y(o.target.value)})]}),x?m("p",{className:"text-muted-foreground text-sm",children:"Loading recipes…"}):m("div",{className:"grid gap-4 md:grid-cols-3",children:w.map((o)=>m(c,{recipe:o,onSelect:g,onToggleFavorite:P},o.id))}),m(f,{recipe:i})]})}$("recipe-app-i18n",{list:U,detail:f});export{U as RecipeList,f as RecipeDetail,c as RecipeCard,b as LanguageSwitcher};
37
+ `;function G(){let{projectId:t}=U(),[e,o]=s("EN"),[i,g]=s(),[u,y]=s(""),{data:h,loading:x}=H(z,{variables:{projectId:t,locale:e},fetchPolicy:"cache-and-network"}),[k]=B(D),w=(h?.recipes??[]).filter((r)=>r.name.toLowerCase().includes(u.toLowerCase())),P=async(r)=>{await k({variables:{id:r.id,isFavorite:!r.isFavorite},optimisticResponse:{favoriteRecipe:{__typename:"Recipe",id:r.id,isFavorite:!r.isFavorite}}})};return N("div",{className:"space-y-4",children:[N("div",{className:"flex flex-wrap items-center gap-3",children:[m(b,{locale:e,onChange:o}),m("input",{type:"search",placeholder:e==="EN"?"Search recipes":"Rechercher des recettes",className:"flex-1 rounded-full border border-border bg-card px-4 py-2 text-sm",value:u,onChange:(r)=>y(r.target.value)})]}),x?m("p",{className:"text-muted-foreground text-sm",children:"Loading recipes…"}):m("div",{className:"grid gap-4 md:grid-cols-3",children:w.map((r)=>m(c,{recipe:r,onSelect:g,onToggleFavorite:P},r.id))}),m(f,{recipe:i})]})}T("recipe-app-i18n",{list:G,detail:f});export{G as RecipeList,f as RecipeDetail,c as RecipeCard,b as LanguageSwitcher};
@@ -1 +1 @@
1
- import{jsx as t,jsxs as r}from"react/jsx-runtime";function n({value:o,onChange:l,categories:i}){let a=(e,d)=>{l({...o,[e]:d})};return r("div",{className:"grid gap-3 rounded-2xl border border-border bg-card p-4 md:grid-cols-4",children:[r("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Status",r("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:o.status,onChange:(e)=>a("status",e.target.value),children:[t("option",{value:"all",children:"All tasks"}),t("option",{value:"active",children:"Active"}),t("option",{value:"completed",children:"Completed"})]})]}),r("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Priority",r("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:o.priority,onChange:(e)=>a("priority",e.target.value),children:[t("option",{value:"all",children:"All"}),t("option",{value:"LOW",children:"Low"}),t("option",{value:"MEDIUM",children:"Medium"}),t("option",{value:"HIGH",children:"High"}),t("option",{value:"URGENT",children:"Urgent"})]})]}),r("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Category",r("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:o.categoryId,onChange:(e)=>a("categoryId",e.target.value),children:[t("option",{value:"all",children:"All categories"}),i.map((e)=>t("option",{value:e.id,children:e.name},e.id))]})]}),r("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Search",t("input",{type:"search",className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",placeholder:"Search by title",value:o.search,onChange:(e)=>a("search",e.target.value)})]})]})}export{n as FilterBar};
1
+ var n=Object.defineProperty;var p=(e)=>e;function c(e,o){this[e]=p.bind(null,o)}var u=(e,o)=>{for(var l in o)n(e,l,{get:o[l],enumerable:!0,configurable:!0,set:c.bind(o,l)})};var g=(e,o)=>()=>(e&&(o=e(e=0)),o);import{jsx as r,jsxs as a}from"react/jsx-runtime";function b({value:e,onChange:o,categories:l}){let i=(t,d)=>{o({...e,[t]:d})};return a("div",{className:"grid gap-3 rounded-2xl border border-border bg-card p-4 md:grid-cols-4",children:[a("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Status",a("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:e.status,onChange:(t)=>i("status",t.target.value),children:[r("option",{value:"all",children:"All tasks"}),r("option",{value:"active",children:"Active"}),r("option",{value:"completed",children:"Completed"})]})]}),a("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Priority",a("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:e.priority,onChange:(t)=>i("priority",t.target.value),children:[r("option",{value:"all",children:"All"}),r("option",{value:"LOW",children:"Low"}),r("option",{value:"MEDIUM",children:"Medium"}),r("option",{value:"HIGH",children:"High"}),r("option",{value:"URGENT",children:"Urgent"})]})]}),a("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Category",a("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:e.categoryId,onChange:(t)=>i("categoryId",t.target.value),children:[r("option",{value:"all",children:"All categories"}),l.map((t)=>r("option",{value:t.id,children:t.name},t.id))]})]}),a("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Search",r("input",{type:"search",className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",placeholder:"Search by title",value:e.search,onChange:(t)=>i("search",t.target.value)})]})]})}export{b as FilterBar};
@@ -1,8 +1,8 @@
1
- import{gql as $}from"@apollo/client";import{useMutation as b}from"@apollo/client/react";import{useTemplateRuntime as h}from"@contractspec/lib.example-shared-ui";import{useState as B}from"react";import{jsx as w,jsxs as z}from"react/jsx-runtime";var k=$`
1
+ var $=Object.defineProperty;var b=(w)=>w;function h(w,z){this[w]=b.bind(null,z)}var D=(w,z)=>{for(var G in z)$(w,G,{get:z[G],enumerable:!0,configurable:!0,set:h.bind(z,G)})};var E=(w,z)=>()=>(w&&(z=w(w=0)),z);import{gql as k}from"@apollo/client";import{useMutation as q}from"@apollo/client/react";import{useTemplateRuntime as K}from"@contractspec/lib.example-shared-ui";import{useState as H}from"react";import{jsx as B,jsxs as F}from"react/jsx-runtime";var M=k`
2
2
  mutation CreateTask($input: CreateTaskInput!) {
3
3
  createTask(input: $input) {
4
4
  id
5
5
  title
6
6
  }
7
7
  }
8
- `;function E({categories:F}){let{projectId:G}=h(),[H,L]=B(""),[N,O]=B(""),[Q,U]=B("MEDIUM"),[J,V]=B("none"),[W,X]=B(""),[Z,{loading:Y}]=b(k);return z("form",{onSubmit:async(f)=>{if(f.preventDefault(),!H.trim())return;await Z({variables:{input:{projectId:G,title:H.trim(),description:N.trim()||void 0,priority:Q,categoryId:J==="none"?void 0:J,tags:q(W)}},refetchQueries:["Tasks"],awaitRefetchQueries:!0}),L(""),O(""),U("MEDIUM"),V("none"),X("")},className:"space-y-3 rounded-2xl border border-border bg-background/60 p-4",children:[w("div",{children:z("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Title",w("input",{type:"text",className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",placeholder:"What needs to get done?",value:H,onChange:(f)=>L(f.target.value),required:!0})]})}),w("div",{children:z("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Description",w("textarea",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",rows:3,placeholder:"Add context or policy notes",value:N,onChange:(f)=>O(f.target.value)})]})}),z("div",{className:"grid gap-3 md:grid-cols-3",children:[z("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Priority",z("select",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",value:Q,onChange:(f)=>U(f.target.value),children:[w("option",{value:"LOW",children:"Low"}),w("option",{value:"MEDIUM",children:"Medium"}),w("option",{value:"HIGH",children:"High"}),w("option",{value:"URGENT",children:"Urgent"})]})]}),z("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Category",z("select",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",value:J,onChange:(f)=>V(f.target.value),children:[w("option",{value:"none",children:"None"}),F.map((f)=>w("option",{value:f.id,children:f.name},f.id))]})]}),z("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Tags",w("input",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",placeholder:"Comma separated (optional)",value:W,onChange:(f)=>X(f.target.value)})]})]}),w("button",{type:"submit",className:"btn-primary w-full py-2 font-semibold text-sm",disabled:Y,children:Y?"Saving...":"Add task"})]})}function q(F){return F.split(",").map((G)=>G.trim()).filter(Boolean)}export{E as TaskForm};
8
+ `;function T({categories:w}){let{projectId:z}=K(),[G,L]=H(""),[N,O]=H(""),[Q,U]=H("MEDIUM"),[J,V]=H("none"),[W,X]=H(""),[Z,{loading:Y}]=q(M);return F("form",{onSubmit:async(f)=>{if(f.preventDefault(),!G.trim())return;await Z({variables:{input:{projectId:z,title:G.trim(),description:N.trim()||void 0,priority:Q,categoryId:J==="none"?void 0:J,tags:_(W)}},refetchQueries:["Tasks"],awaitRefetchQueries:!0}),L(""),O(""),U("MEDIUM"),V("none"),X("")},className:"space-y-3 rounded-2xl border border-border bg-background/60 p-4",children:[B("div",{children:F("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Title",B("input",{type:"text",className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",placeholder:"What needs to get done?",value:G,onChange:(f)=>L(f.target.value),required:!0})]})}),B("div",{children:F("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Description",B("textarea",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",rows:3,placeholder:"Add context or policy notes",value:N,onChange:(f)=>O(f.target.value)})]})}),F("div",{className:"grid gap-3 md:grid-cols-3",children:[F("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Priority",F("select",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",value:Q,onChange:(f)=>U(f.target.value),children:[B("option",{value:"LOW",children:"Low"}),B("option",{value:"MEDIUM",children:"Medium"}),B("option",{value:"HIGH",children:"High"}),B("option",{value:"URGENT",children:"Urgent"})]})]}),F("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Category",F("select",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",value:J,onChange:(f)=>V(f.target.value),children:[B("option",{value:"none",children:"None"}),w.map((f)=>B("option",{value:f.id,children:f.name},f.id))]})]}),F("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Tags",B("input",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",placeholder:"Comma separated (optional)",value:W,onChange:(f)=>X(f.target.value)})]})]}),B("button",{type:"submit",className:"btn-primary w-full py-2 font-semibold text-sm",disabled:Y,children:Y?"Saving...":"Add task"})]})}function _(w){return w.split(",").map((z)=>z.trim()).filter(Boolean)}export{T as TaskForm};
@@ -1 +1 @@
1
- import{Check as n,Circle as m,Trash2 as p}from"lucide-react";import{jsx as r,jsxs as t}from"react/jsx-runtime";function u({task:e,onToggle:d,onDelete:a}){let l=e.priority==="URGENT"?"text-red-200 bg-red-500/10 border-red-500/40":e.priority==="HIGH"?"text-amber-200 bg-amber-500/10 border-amber-500/40":e.priority==="LOW"?"text-emerald-200 bg-emerald-500/10 border-emerald-500/40":"text-violet-200 bg-violet-500/10 border-violet-500/40";return t("div",{className:"flex items-start gap-4 rounded-2xl border border-border/70 bg-card/60 p-4 transition hover:border-border",children:[r("button",{type:"button",className:"rounded-full border border-border p-2 text-muted-foreground hover:bg-muted/40","aria-pressed":e.completed,onClick:()=>d?.(e),children:e.completed?r(n,{className:"h-4 w-4 text-emerald-400"}):r(m,{className:"h-4 w-4"})}),t("div",{className:"flex-1 space-y-2",children:[t("div",{className:"flex flex-wrap items-center gap-2",children:[r("p",{className:`font-medium ${e.completed?"text-muted-foreground line-through":"text-foreground"}`,children:e.title}),r("span",{className:`rounded-full border px-2 py-0.5 text-xs ${l}`,children:e.priority.charAt(0)+e.priority.slice(1).toLowerCase()}),e.category?r("span",{className:"rounded-full bg-muted/40 px-2 py-0.5 text-muted-foreground text-xs",children:e.category.name}):null,e.dueDate?t("span",{className:"text-muted-foreground text-xs",children:["Due ",new Date(e.dueDate).toLocaleDateString()]}):null]}),e.description?r("p",{className:"text-muted-foreground text-sm",children:e.description}):null,e.tags.length?r("div",{className:"flex flex-wrap gap-1",children:e.tags.map((o)=>t("span",{className:"rounded-full bg-muted/40 px-2 py-0.5 text-muted-foreground text-xs",children:["#",o]},o))}):null]}),r("button",{type:"button",className:"text-muted-foreground hover:text-destructive","aria-label":`Delete ${e.title}`,onClick:()=>a?.(e),children:r(p,{className:"h-4 w-4"})})]})}export{u as TaskItem};
1
+ var n=Object.defineProperty;var m=(e)=>e;function p(e,r){this[e]=m.bind(null,r)}var b=(e,r)=>{for(var o in r)n(e,o,{get:r[o],enumerable:!0,configurable:!0,set:p.bind(r,o)})};var s=(e,r)=>()=>(e&&(r=e(e=0)),r);import{Check as i,Circle as u,Trash2 as c}from"lucide-react";import{jsx as t,jsxs as d}from"react/jsx-runtime";function x({task:e,onToggle:r,onDelete:o}){let l=e.priority==="URGENT"?"text-red-200 bg-red-500/10 border-red-500/40":e.priority==="HIGH"?"text-amber-200 bg-amber-500/10 border-amber-500/40":e.priority==="LOW"?"text-emerald-200 bg-emerald-500/10 border-emerald-500/40":"text-violet-200 bg-violet-500/10 border-violet-500/40";return d("div",{className:"flex items-start gap-4 rounded-2xl border border-border/70 bg-card/60 p-4 transition hover:border-border",children:[t("button",{type:"button",className:"rounded-full border border-border p-2 text-muted-foreground hover:bg-muted/40","aria-pressed":e.completed,onClick:()=>r?.(e),children:e.completed?t(i,{className:"h-4 w-4 text-emerald-400"}):t(u,{className:"h-4 w-4"})}),d("div",{className:"flex-1 space-y-2",children:[d("div",{className:"flex flex-wrap items-center gap-2",children:[t("p",{className:`font-medium ${e.completed?"text-muted-foreground line-through":"text-foreground"}`,children:e.title}),t("span",{className:`rounded-full border px-2 py-0.5 text-xs ${l}`,children:e.priority.charAt(0)+e.priority.slice(1).toLowerCase()}),e.category?t("span",{className:"rounded-full bg-muted/40 px-2 py-0.5 text-muted-foreground text-xs",children:e.category.name}):null,e.dueDate?d("span",{className:"text-muted-foreground text-xs",children:["Due ",new Date(e.dueDate).toLocaleDateString()]}):null]}),e.description?t("p",{className:"text-muted-foreground text-sm",children:e.description}):null,e.tags.length?t("div",{className:"flex flex-wrap gap-1",children:e.tags.map((a)=>d("span",{className:"rounded-full bg-muted/40 px-2 py-0.5 text-muted-foreground text-xs",children:["#",a]},a))}):null]}),t("button",{type:"button",className:"text-muted-foreground hover:text-destructive","aria-label":`Delete ${e.title}`,onClick:()=>o?.(e),children:t(c,{className:"h-4 w-4"})})]})}export{x as TaskItem};
@@ -1,11 +1,11 @@
1
- import{jsx as p,jsxs as b}from"react/jsx-runtime";function x({value:e,onChange:d,categories:m}){let t=(o,c)=>{d({...e,[o]:c})};return b("div",{className:"grid gap-3 rounded-2xl border border-border bg-card p-4 md:grid-cols-4",children:[b("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Status",b("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:e.status,onChange:(o)=>t("status",o.target.value),children:[p("option",{value:"all",children:"All tasks"}),p("option",{value:"active",children:"Active"}),p("option",{value:"completed",children:"Completed"})]})]}),b("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Priority",b("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:e.priority,onChange:(o)=>t("priority",o.target.value),children:[p("option",{value:"all",children:"All"}),p("option",{value:"LOW",children:"Low"}),p("option",{value:"MEDIUM",children:"Medium"}),p("option",{value:"HIGH",children:"High"}),p("option",{value:"URGENT",children:"Urgent"})]})]}),b("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Category",b("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:e.categoryId,onChange:(o)=>t("categoryId",o.target.value),children:[p("option",{value:"all",children:"All categories"}),m.map((o)=>p("option",{value:o.id,children:o.name},o.id))]})]}),b("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Search",p("input",{type:"search",className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",placeholder:"Search by title",value:e.search,onChange:(o)=>t("search",o.target.value)})]})]})}import{gql as W}from"@apollo/client";import{useMutation as B}from"@apollo/client/react";import{useTemplateRuntime as L}from"@contractspec/lib.example-shared-ui";import{useState as y}from"react";import{jsx as a,jsxs as u}from"react/jsx-runtime";var O=W`
1
+ var W=Object.defineProperty;var B=(e)=>e;function L(e,o){this[e]=B.bind(null,o)}var T=(e,o)=>{for(var t in o)W(e,t,{get:o[t],enumerable:!0,configurable:!0,set:L.bind(o,t)})};var k=(e,o)=>()=>(e&&(o=e(e=0)),o);import{jsx as n,jsxs as b}from"react/jsx-runtime";function x({value:e,onChange:o,categories:t}){let a=(r,c)=>{o({...e,[r]:c})};return b("div",{className:"grid gap-3 rounded-2xl border border-border bg-card p-4 md:grid-cols-4",children:[b("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Status",b("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:e.status,onChange:(r)=>a("status",r.target.value),children:[n("option",{value:"all",children:"All tasks"}),n("option",{value:"active",children:"Active"}),n("option",{value:"completed",children:"Completed"})]})]}),b("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Priority",b("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:e.priority,onChange:(r)=>a("priority",r.target.value),children:[n("option",{value:"all",children:"All"}),n("option",{value:"LOW",children:"Low"}),n("option",{value:"MEDIUM",children:"Medium"}),n("option",{value:"HIGH",children:"High"}),n("option",{value:"URGENT",children:"Urgent"})]})]}),b("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Category",b("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:e.categoryId,onChange:(r)=>a("categoryId",r.target.value),children:[n("option",{value:"all",children:"All categories"}),t.map((r)=>n("option",{value:r.id,children:r.name},r.id))]})]}),b("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Search",n("input",{type:"search",className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",placeholder:"Search by title",value:e.search,onChange:(r)=>a("search",r.target.value)})]})]})}import{gql as O}from"@apollo/client";import{useMutation as z}from"@apollo/client/react";import{useTemplateRuntime as J}from"@contractspec/lib.example-shared-ui";import{useState as y}from"react";import{jsx as p,jsxs as u}from"react/jsx-runtime";var X=O`
2
2
  mutation CreateTask($input: CreateTaskInput!) {
3
3
  createTask(input: $input) {
4
4
  id
5
5
  title
6
6
  }
7
7
  }
8
- `;function H({categories:e}){let{projectId:d}=L(),[m,t]=y(""),[o,c]=y(""),[h,f]=y("MEDIUM"),[g,v]=y("none"),[w,C]=y(""),[r,{loading:F}]=B(O);return u("form",{onSubmit:async(l)=>{if(l.preventDefault(),!m.trim())return;await r({variables:{input:{projectId:d,title:m.trim(),description:o.trim()||void 0,priority:h,categoryId:g==="none"?void 0:g,tags:z(w)}},refetchQueries:["Tasks"],awaitRefetchQueries:!0}),t(""),c(""),f("MEDIUM"),v("none"),C("")},className:"space-y-3 rounded-2xl border border-border bg-background/60 p-4",children:[a("div",{children:u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Title",a("input",{type:"text",className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",placeholder:"What needs to get done?",value:m,onChange:(l)=>t(l.target.value),required:!0})]})}),a("div",{children:u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Description",a("textarea",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",rows:3,placeholder:"Add context or policy notes",value:o,onChange:(l)=>c(l.target.value)})]})}),u("div",{className:"grid gap-3 md:grid-cols-3",children:[u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Priority",u("select",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",value:h,onChange:(l)=>f(l.target.value),children:[a("option",{value:"LOW",children:"Low"}),a("option",{value:"MEDIUM",children:"Medium"}),a("option",{value:"HIGH",children:"High"}),a("option",{value:"URGENT",children:"Urgent"})]})]}),u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Category",u("select",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",value:g,onChange:(l)=>v(l.target.value),children:[a("option",{value:"none",children:"None"}),e.map((l)=>a("option",{value:l.id,children:l.name},l.id))]})]}),u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Tags",a("input",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",placeholder:"Comma separated (optional)",value:w,onChange:(l)=>C(l.target.value)})]})]}),a("button",{type:"submit",className:"btn-primary w-full py-2 font-semibold text-sm",disabled:F,children:F?"Saving...":"Add task"})]})}function z(e){return e.split(",").map((d)=>d.trim()).filter(Boolean)}import{Check as J,Circle as X,Trash2 as Z}from"lucide-react";import{jsx as n,jsxs as N}from"react/jsx-runtime";function $({task:e,onToggle:d,onDelete:m}){let t=e.priority==="URGENT"?"text-red-200 bg-red-500/10 border-red-500/40":e.priority==="HIGH"?"text-amber-200 bg-amber-500/10 border-amber-500/40":e.priority==="LOW"?"text-emerald-200 bg-emerald-500/10 border-emerald-500/40":"text-violet-200 bg-violet-500/10 border-violet-500/40";return N("div",{className:"flex items-start gap-4 rounded-2xl border border-border/70 bg-card/60 p-4 transition hover:border-border",children:[n("button",{type:"button",className:"rounded-full border border-border p-2 text-muted-foreground hover:bg-muted/40","aria-pressed":e.completed,onClick:()=>d?.(e),children:e.completed?n(J,{className:"h-4 w-4 text-emerald-400"}):n(X,{className:"h-4 w-4"})}),N("div",{className:"flex-1 space-y-2",children:[N("div",{className:"flex flex-wrap items-center gap-2",children:[n("p",{className:`font-medium ${e.completed?"text-muted-foreground line-through":"text-foreground"}`,children:e.title}),n("span",{className:`rounded-full border px-2 py-0.5 text-xs ${t}`,children:e.priority.charAt(0)+e.priority.slice(1).toLowerCase()}),e.category?n("span",{className:"rounded-full bg-muted/40 px-2 py-0.5 text-muted-foreground text-xs",children:e.category.name}):null,e.dueDate?N("span",{className:"text-muted-foreground text-xs",children:["Due ",new Date(e.dueDate).toLocaleDateString()]}):null]}),e.description?n("p",{className:"text-muted-foreground text-sm",children:e.description}):null,e.tags.length?n("div",{className:"flex flex-wrap gap-1",children:e.tags.map((o)=>N("span",{className:"rounded-full bg-muted/40 px-2 py-0.5 text-muted-foreground text-xs",children:["#",o]},o))}):null]}),n("button",{type:"button",className:"text-muted-foreground hover:text-destructive","aria-label":`Delete ${e.title}`,onClick:()=>m?.(e),children:n(Z,{className:"h-4 w-4"})})]})}import{gql as P}from"@apollo/client";import{useMutation as G,useQuery as A}from"@apollo/client/react";import{registerTemplateComponents as M,useTemplateRuntime as S}from"@contractspec/lib.example-shared-ui";import{useMemo as K,useState as Y}from"react";import{jsx as i,jsxs as q}from"react/jsx-runtime";var U=P`
8
+ `;function H({categories:e}){let{projectId:o}=J(),[t,a]=y(""),[r,c]=y(""),[h,f]=y("MEDIUM"),[g,v]=y("none"),[w,C]=y(""),[l,{loading:F}]=z(X);return u("form",{onSubmit:async(d)=>{if(d.preventDefault(),!t.trim())return;await l({variables:{input:{projectId:o,title:t.trim(),description:r.trim()||void 0,priority:h,categoryId:g==="none"?void 0:g,tags:Z(w)}},refetchQueries:["Tasks"],awaitRefetchQueries:!0}),a(""),c(""),f("MEDIUM"),v("none"),C("")},className:"space-y-3 rounded-2xl border border-border bg-background/60 p-4",children:[p("div",{children:u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Title",p("input",{type:"text",className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",placeholder:"What needs to get done?",value:t,onChange:(d)=>a(d.target.value),required:!0})]})}),p("div",{children:u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Description",p("textarea",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",rows:3,placeholder:"Add context or policy notes",value:r,onChange:(d)=>c(d.target.value)})]})}),u("div",{className:"grid gap-3 md:grid-cols-3",children:[u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Priority",u("select",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",value:h,onChange:(d)=>f(d.target.value),children:[p("option",{value:"LOW",children:"Low"}),p("option",{value:"MEDIUM",children:"Medium"}),p("option",{value:"HIGH",children:"High"}),p("option",{value:"URGENT",children:"Urgent"})]})]}),u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Category",u("select",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",value:g,onChange:(d)=>v(d.target.value),children:[p("option",{value:"none",children:"None"}),e.map((d)=>p("option",{value:d.id,children:d.name},d.id))]})]}),u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Tags",p("input",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",placeholder:"Comma separated (optional)",value:w,onChange:(d)=>C(d.target.value)})]})]}),p("button",{type:"submit",className:"btn-primary w-full py-2 font-semibold text-sm",disabled:F,children:F?"Saving...":"Add task"})]})}function Z(e){return e.split(",").map((o)=>o.trim()).filter(Boolean)}import{Check as A,Circle as M,Trash2 as S}from"lucide-react";import{jsx as m,jsxs as N}from"react/jsx-runtime";function $({task:e,onToggle:o,onDelete:t}){let a=e.priority==="URGENT"?"text-red-200 bg-red-500/10 border-red-500/40":e.priority==="HIGH"?"text-amber-200 bg-amber-500/10 border-amber-500/40":e.priority==="LOW"?"text-emerald-200 bg-emerald-500/10 border-emerald-500/40":"text-violet-200 bg-violet-500/10 border-violet-500/40";return N("div",{className:"flex items-start gap-4 rounded-2xl border border-border/70 bg-card/60 p-4 transition hover:border-border",children:[m("button",{type:"button",className:"rounded-full border border-border p-2 text-muted-foreground hover:bg-muted/40","aria-pressed":e.completed,onClick:()=>o?.(e),children:e.completed?m(A,{className:"h-4 w-4 text-emerald-400"}):m(M,{className:"h-4 w-4"})}),N("div",{className:"flex-1 space-y-2",children:[N("div",{className:"flex flex-wrap items-center gap-2",children:[m("p",{className:`font-medium ${e.completed?"text-muted-foreground line-through":"text-foreground"}`,children:e.title}),m("span",{className:`rounded-full border px-2 py-0.5 text-xs ${a}`,children:e.priority.charAt(0)+e.priority.slice(1).toLowerCase()}),e.category?m("span",{className:"rounded-full bg-muted/40 px-2 py-0.5 text-muted-foreground text-xs",children:e.category.name}):null,e.dueDate?N("span",{className:"text-muted-foreground text-xs",children:["Due ",new Date(e.dueDate).toLocaleDateString()]}):null]}),e.description?m("p",{className:"text-muted-foreground text-sm",children:e.description}):null,e.tags.length?m("div",{className:"flex flex-wrap gap-1",children:e.tags.map((r)=>N("span",{className:"rounded-full bg-muted/40 px-2 py-0.5 text-muted-foreground text-xs",children:["#",r]},r))}):null]}),m("button",{type:"button",className:"text-muted-foreground hover:text-destructive","aria-label":`Delete ${e.title}`,onClick:()=>t?.(e),children:m(S,{className:"h-4 w-4"})})]})}import{gql as P}from"@apollo/client";import{useMutation as G,useQuery as K}from"@apollo/client/react";import{registerTemplateComponents as Y,useTemplateRuntime as Q}from"@contractspec/lib.example-shared-ui";import{useMemo as R,useState as q}from"react";import{jsx as i,jsxs as _}from"react/jsx-runtime";var U=P`
9
9
  query Tasks($projectId: ID!) {
10
10
  taskCategories(projectId: $projectId) {
11
11
  id
@@ -27,15 +27,15 @@ import{jsx as p,jsxs as b}from"react/jsx-runtime";function x({value:e,onChange:d
27
27
  }
28
28
  }
29
29
  }
30
- `,Q=P`
30
+ `,I=P`
31
31
  mutation ToggleTask($id: ID!, $completed: Boolean!) {
32
32
  toggleTask(id: $id, completed: $completed) {
33
33
  id
34
34
  completed
35
35
  }
36
36
  }
37
- `,R=P`
37
+ `,E=P`
38
38
  mutation DeleteTask($id: ID!) {
39
39
  deleteTask(id: $id)
40
40
  }
41
- `;function V(){let{projectId:e}=S(),[d,m]=Y({status:"all",priority:"all",categoryId:"all",search:""}),{data:t,loading:o}=A(U,{variables:{projectId:e},fetchPolicy:"cache-and-network"}),[c]=G(Q),[h]=G(R),f=t?.taskCategories??[],g=t?.tasks??[],v=K(()=>{return g.filter((r)=>{if(d.status==="active"&&r.completed)return!1;if(d.status==="completed"&&!r.completed)return!1;if(d.priority!=="all"&&r.priority!==d.priority)return!1;if(d.categoryId!=="all"&&r.category?.id!==d.categoryId)return!1;if(d.search&&!r.title.toLowerCase().includes(d.search.toLowerCase()))return!1;return!0})},[g,d]),w=async(r)=>{await c({variables:{id:r.id,completed:!r.completed},optimisticResponse:{toggleTask:{__typename:"Task",id:r.id,completed:!r.completed}},update(F){F.modify({fields:{tasks(D=[]){return D.map((l)=>l.__ref?.endsWith(r.id)?{...l,completed:!r.completed}:l)}}})}})},C=async(r)=>{await h({variables:{id:r.id},refetchQueries:[{query:U,variables:{projectId:e}}]})};return q("div",{className:"space-y-6",children:[i(x,{value:d,onChange:m,categories:f}),i(H,{categories:f}),o?i("p",{className:"text-muted-foreground text-sm",children:"Loading tasks…"}):v.length?i("div",{className:"space-y-3",children:v.map((r)=>i($,{task:r,onToggle:w,onDelete:C},r.id))}):i("div",{className:"rounded-2xl border border-border border-dashed p-8 text-center",children:i("p",{className:"text-muted-foreground",children:"No tasks match your filters. Create one above."})})]})}M("todos-app",{list:V,detail:V,form:H});export{V as TaskList};
41
+ `;function V(){let{projectId:e}=Q(),[o,t]=q({status:"all",priority:"all",categoryId:"all",search:""}),{data:a,loading:r}=K(U,{variables:{projectId:e},fetchPolicy:"cache-and-network"}),[c]=G(I),[h]=G(E),f=a?.taskCategories??[],g=a?.tasks??[],v=R(()=>{return g.filter((l)=>{if(o.status==="active"&&l.completed)return!1;if(o.status==="completed"&&!l.completed)return!1;if(o.priority!=="all"&&l.priority!==o.priority)return!1;if(o.categoryId!=="all"&&l.category?.id!==o.categoryId)return!1;if(o.search&&!l.title.toLowerCase().includes(o.search.toLowerCase()))return!1;return!0})},[g,o]),w=async(l)=>{await c({variables:{id:l.id,completed:!l.completed},optimisticResponse:{toggleTask:{__typename:"Task",id:l.id,completed:!l.completed}},update(F){F.modify({fields:{tasks(D=[]){return D.map((d)=>d.__ref?.endsWith(l.id)?{...d,completed:!l.completed}:d)}}})}})},C=async(l)=>{await h({variables:{id:l.id},refetchQueries:[{query:U,variables:{projectId:e}}]})};return _("div",{className:"space-y-6",children:[i(x,{value:o,onChange:t,categories:f}),i(H,{categories:f}),r?i("p",{className:"text-muted-foreground text-sm",children:"Loading tasks…"}):v.length?i("div",{className:"space-y-3",children:v.map((l)=>i($,{task:l,onToggle:w,onDelete:C},l.id))}):i("div",{className:"rounded-2xl border border-border border-dashed p-8 text-center",children:i("p",{className:"text-muted-foreground",children:"No tasks match your filters. Create one above."})})]})}Y("todos-app",{list:V,detail:V,form:H});export{V as TaskList};
@@ -1,11 +1,11 @@
1
- import{jsx as a,jsxs as b}from"react/jsx-runtime";function D({value:e,onChange:d,categories:m}){let t=(o,c)=>{d({...e,[o]:c})};return b("div",{className:"grid gap-3 rounded-2xl border border-border bg-card p-4 md:grid-cols-4",children:[b("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Status",b("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:e.status,onChange:(o)=>t("status",o.target.value),children:[a("option",{value:"all",children:"All tasks"}),a("option",{value:"active",children:"Active"}),a("option",{value:"completed",children:"Completed"})]})]}),b("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Priority",b("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:e.priority,onChange:(o)=>t("priority",o.target.value),children:[a("option",{value:"all",children:"All"}),a("option",{value:"LOW",children:"Low"}),a("option",{value:"MEDIUM",children:"Medium"}),a("option",{value:"HIGH",children:"High"}),a("option",{value:"URGENT",children:"Urgent"})]})]}),b("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Category",b("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:e.categoryId,onChange:(o)=>t("categoryId",o.target.value),children:[a("option",{value:"all",children:"All categories"}),m.map((o)=>a("option",{value:o.id,children:o.name},o.id))]})]}),b("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Search",a("input",{type:"search",className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",placeholder:"Search by title",value:e.search,onChange:(o)=>t("search",o.target.value)})]})]})}import{gql as W}from"@apollo/client";import{useMutation as B}from"@apollo/client/react";import{useTemplateRuntime as L}from"@contractspec/lib.example-shared-ui";import{useState as y}from"react";import{jsx as p,jsxs as u}from"react/jsx-runtime";var O=W`
1
+ var W=Object.defineProperty;var B=(e)=>e;function L(e,o){this[e]=B.bind(null,o)}var T=(e,o)=>{for(var t in o)W(e,t,{get:o[t],enumerable:!0,configurable:!0,set:L.bind(o,t)})};var k=(e,o)=>()=>(e&&(o=e(e=0)),o);import{jsx as n,jsxs as b}from"react/jsx-runtime";function D({value:e,onChange:o,categories:t}){let p=(r,c)=>{o({...e,[r]:c})};return b("div",{className:"grid gap-3 rounded-2xl border border-border bg-card p-4 md:grid-cols-4",children:[b("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Status",b("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:e.status,onChange:(r)=>p("status",r.target.value),children:[n("option",{value:"all",children:"All tasks"}),n("option",{value:"active",children:"Active"}),n("option",{value:"completed",children:"Completed"})]})]}),b("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Priority",b("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:e.priority,onChange:(r)=>p("priority",r.target.value),children:[n("option",{value:"all",children:"All"}),n("option",{value:"LOW",children:"Low"}),n("option",{value:"MEDIUM",children:"Medium"}),n("option",{value:"HIGH",children:"High"}),n("option",{value:"URGENT",children:"Urgent"})]})]}),b("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Category",b("select",{className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",value:e.categoryId,onChange:(r)=>p("categoryId",r.target.value),children:[n("option",{value:"all",children:"All categories"}),t.map((r)=>n("option",{value:r.id,children:r.name},r.id))]})]}),b("label",{className:"flex flex-col text-muted-foreground text-xs uppercase tracking-wide",children:["Search",n("input",{type:"search",className:"mt-1 rounded-md border border-border bg-background px-3 py-2 text-foreground text-sm",placeholder:"Search by title",value:e.search,onChange:(r)=>p("search",r.target.value)})]})]})}import{gql as O}from"@apollo/client";import{useMutation as z}from"@apollo/client/react";import{useTemplateRuntime as J}from"@contractspec/lib.example-shared-ui";import{useState as y}from"react";import{jsx as a,jsxs as u}from"react/jsx-runtime";var X=O`
2
2
  mutation CreateTask($input: CreateTaskInput!) {
3
3
  createTask(input: $input) {
4
4
  id
5
5
  title
6
6
  }
7
7
  }
8
- `;function F({categories:e}){let{projectId:d}=L(),[m,t]=y(""),[o,c]=y(""),[h,f]=y("MEDIUM"),[g,v]=y("none"),[w,C]=y(""),[r,{loading:x}]=B(O);return u("form",{onSubmit:async(l)=>{if(l.preventDefault(),!m.trim())return;await r({variables:{input:{projectId:d,title:m.trim(),description:o.trim()||void 0,priority:h,categoryId:g==="none"?void 0:g,tags:z(w)}},refetchQueries:["Tasks"],awaitRefetchQueries:!0}),t(""),c(""),f("MEDIUM"),v("none"),C("")},className:"space-y-3 rounded-2xl border border-border bg-background/60 p-4",children:[p("div",{children:u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Title",p("input",{type:"text",className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",placeholder:"What needs to get done?",value:m,onChange:(l)=>t(l.target.value),required:!0})]})}),p("div",{children:u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Description",p("textarea",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",rows:3,placeholder:"Add context or policy notes",value:o,onChange:(l)=>c(l.target.value)})]})}),u("div",{className:"grid gap-3 md:grid-cols-3",children:[u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Priority",u("select",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",value:h,onChange:(l)=>f(l.target.value),children:[p("option",{value:"LOW",children:"Low"}),p("option",{value:"MEDIUM",children:"Medium"}),p("option",{value:"HIGH",children:"High"}),p("option",{value:"URGENT",children:"Urgent"})]})]}),u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Category",u("select",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",value:g,onChange:(l)=>v(l.target.value),children:[p("option",{value:"none",children:"None"}),e.map((l)=>p("option",{value:l.id,children:l.name},l.id))]})]}),u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Tags",p("input",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",placeholder:"Comma separated (optional)",value:w,onChange:(l)=>C(l.target.value)})]})]}),p("button",{type:"submit",className:"btn-primary w-full py-2 font-semibold text-sm",disabled:x,children:x?"Saving...":"Add task"})]})}function z(e){return e.split(",").map((d)=>d.trim()).filter(Boolean)}import{Check as J,Circle as X,Trash2 as Z}from"lucide-react";import{jsx as n,jsxs as N}from"react/jsx-runtime";function $({task:e,onToggle:d,onDelete:m}){let t=e.priority==="URGENT"?"text-red-200 bg-red-500/10 border-red-500/40":e.priority==="HIGH"?"text-amber-200 bg-amber-500/10 border-amber-500/40":e.priority==="LOW"?"text-emerald-200 bg-emerald-500/10 border-emerald-500/40":"text-violet-200 bg-violet-500/10 border-violet-500/40";return N("div",{className:"flex items-start gap-4 rounded-2xl border border-border/70 bg-card/60 p-4 transition hover:border-border",children:[n("button",{type:"button",className:"rounded-full border border-border p-2 text-muted-foreground hover:bg-muted/40","aria-pressed":e.completed,onClick:()=>d?.(e),children:e.completed?n(J,{className:"h-4 w-4 text-emerald-400"}):n(X,{className:"h-4 w-4"})}),N("div",{className:"flex-1 space-y-2",children:[N("div",{className:"flex flex-wrap items-center gap-2",children:[n("p",{className:`font-medium ${e.completed?"text-muted-foreground line-through":"text-foreground"}`,children:e.title}),n("span",{className:`rounded-full border px-2 py-0.5 text-xs ${t}`,children:e.priority.charAt(0)+e.priority.slice(1).toLowerCase()}),e.category?n("span",{className:"rounded-full bg-muted/40 px-2 py-0.5 text-muted-foreground text-xs",children:e.category.name}):null,e.dueDate?N("span",{className:"text-muted-foreground text-xs",children:["Due ",new Date(e.dueDate).toLocaleDateString()]}):null]}),e.description?n("p",{className:"text-muted-foreground text-sm",children:e.description}):null,e.tags.length?n("div",{className:"flex flex-wrap gap-1",children:e.tags.map((o)=>N("span",{className:"rounded-full bg-muted/40 px-2 py-0.5 text-muted-foreground text-xs",children:["#",o]},o))}):null]}),n("button",{type:"button",className:"text-muted-foreground hover:text-destructive","aria-label":`Delete ${e.title}`,onClick:()=>m?.(e),children:n(Z,{className:"h-4 w-4"})})]})}import{gql as H}from"@apollo/client";import{useMutation as G,useQuery as A}from"@apollo/client/react";import{registerTemplateComponents as M,useTemplateRuntime as S}from"@contractspec/lib.example-shared-ui";import{useMemo as K,useState as Y}from"react";import{jsx as i,jsxs as q}from"react/jsx-runtime";var U=H`
8
+ `;function F({categories:e}){let{projectId:o}=J(),[t,p]=y(""),[r,c]=y(""),[h,f]=y("MEDIUM"),[g,v]=y("none"),[w,C]=y(""),[l,{loading:x}]=z(X);return u("form",{onSubmit:async(d)=>{if(d.preventDefault(),!t.trim())return;await l({variables:{input:{projectId:o,title:t.trim(),description:r.trim()||void 0,priority:h,categoryId:g==="none"?void 0:g,tags:Z(w)}},refetchQueries:["Tasks"],awaitRefetchQueries:!0}),p(""),c(""),f("MEDIUM"),v("none"),C("")},className:"space-y-3 rounded-2xl border border-border bg-background/60 p-4",children:[a("div",{children:u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Title",a("input",{type:"text",className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",placeholder:"What needs to get done?",value:t,onChange:(d)=>p(d.target.value),required:!0})]})}),a("div",{children:u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Description",a("textarea",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",rows:3,placeholder:"Add context or policy notes",value:r,onChange:(d)=>c(d.target.value)})]})}),u("div",{className:"grid gap-3 md:grid-cols-3",children:[u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Priority",u("select",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",value:h,onChange:(d)=>f(d.target.value),children:[a("option",{value:"LOW",children:"Low"}),a("option",{value:"MEDIUM",children:"Medium"}),a("option",{value:"HIGH",children:"High"}),a("option",{value:"URGENT",children:"Urgent"})]})]}),u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Category",u("select",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",value:g,onChange:(d)=>v(d.target.value),children:[a("option",{value:"none",children:"None"}),e.map((d)=>a("option",{value:d.id,children:d.name},d.id))]})]}),u("label",{className:"font-semibold text-muted-foreground text-xs uppercase",children:["Tags",a("input",{className:"mt-1 w-full rounded-md border border-border bg-card px-3 py-2 text-sm",placeholder:"Comma separated (optional)",value:w,onChange:(d)=>C(d.target.value)})]})]}),a("button",{type:"submit",className:"btn-primary w-full py-2 font-semibold text-sm",disabled:x,children:x?"Saving...":"Add task"})]})}function Z(e){return e.split(",").map((o)=>o.trim()).filter(Boolean)}import{Check as A,Circle as M,Trash2 as S}from"lucide-react";import{jsx as m,jsxs as N}from"react/jsx-runtime";function $({task:e,onToggle:o,onDelete:t}){let p=e.priority==="URGENT"?"text-red-200 bg-red-500/10 border-red-500/40":e.priority==="HIGH"?"text-amber-200 bg-amber-500/10 border-amber-500/40":e.priority==="LOW"?"text-emerald-200 bg-emerald-500/10 border-emerald-500/40":"text-violet-200 bg-violet-500/10 border-violet-500/40";return N("div",{className:"flex items-start gap-4 rounded-2xl border border-border/70 bg-card/60 p-4 transition hover:border-border",children:[m("button",{type:"button",className:"rounded-full border border-border p-2 text-muted-foreground hover:bg-muted/40","aria-pressed":e.completed,onClick:()=>o?.(e),children:e.completed?m(A,{className:"h-4 w-4 text-emerald-400"}):m(M,{className:"h-4 w-4"})}),N("div",{className:"flex-1 space-y-2",children:[N("div",{className:"flex flex-wrap items-center gap-2",children:[m("p",{className:`font-medium ${e.completed?"text-muted-foreground line-through":"text-foreground"}`,children:e.title}),m("span",{className:`rounded-full border px-2 py-0.5 text-xs ${p}`,children:e.priority.charAt(0)+e.priority.slice(1).toLowerCase()}),e.category?m("span",{className:"rounded-full bg-muted/40 px-2 py-0.5 text-muted-foreground text-xs",children:e.category.name}):null,e.dueDate?N("span",{className:"text-muted-foreground text-xs",children:["Due ",new Date(e.dueDate).toLocaleDateString()]}):null]}),e.description?m("p",{className:"text-muted-foreground text-sm",children:e.description}):null,e.tags.length?m("div",{className:"flex flex-wrap gap-1",children:e.tags.map((r)=>N("span",{className:"rounded-full bg-muted/40 px-2 py-0.5 text-muted-foreground text-xs",children:["#",r]},r))}):null]}),m("button",{type:"button",className:"text-muted-foreground hover:text-destructive","aria-label":`Delete ${e.title}`,onClick:()=>t?.(e),children:m(S,{className:"h-4 w-4"})})]})}import{gql as H}from"@apollo/client";import{useMutation as G,useQuery as K}from"@apollo/client/react";import{registerTemplateComponents as Y,useTemplateRuntime as Q}from"@contractspec/lib.example-shared-ui";import{useMemo as R,useState as q}from"react";import{jsx as i,jsxs as _}from"react/jsx-runtime";var U=H`
9
9
  query Tasks($projectId: ID!) {
10
10
  taskCategories(projectId: $projectId) {
11
11
  id
@@ -27,15 +27,15 @@ import{jsx as a,jsxs as b}from"react/jsx-runtime";function D({value:e,onChange:d
27
27
  }
28
28
  }
29
29
  }
30
- `,Q=H`
30
+ `,I=H`
31
31
  mutation ToggleTask($id: ID!, $completed: Boolean!) {
32
32
  toggleTask(id: $id, completed: $completed) {
33
33
  id
34
34
  completed
35
35
  }
36
36
  }
37
- `,R=H`
37
+ `,E=H`
38
38
  mutation DeleteTask($id: ID!) {
39
39
  deleteTask(id: $id)
40
40
  }
41
- `;function V(){let{projectId:e}=S(),[d,m]=Y({status:"all",priority:"all",categoryId:"all",search:""}),{data:t,loading:o}=A(U,{variables:{projectId:e},fetchPolicy:"cache-and-network"}),[c]=G(Q),[h]=G(R),f=t?.taskCategories??[],g=t?.tasks??[],v=K(()=>{return g.filter((r)=>{if(d.status==="active"&&r.completed)return!1;if(d.status==="completed"&&!r.completed)return!1;if(d.priority!=="all"&&r.priority!==d.priority)return!1;if(d.categoryId!=="all"&&r.category?.id!==d.categoryId)return!1;if(d.search&&!r.title.toLowerCase().includes(d.search.toLowerCase()))return!1;return!0})},[g,d]),w=async(r)=>{await c({variables:{id:r.id,completed:!r.completed},optimisticResponse:{toggleTask:{__typename:"Task",id:r.id,completed:!r.completed}},update(x){x.modify({fields:{tasks(P=[]){return P.map((l)=>l.__ref?.endsWith(r.id)?{...l,completed:!r.completed}:l)}}})}})},C=async(r)=>{await h({variables:{id:r.id},refetchQueries:[{query:U,variables:{projectId:e}}]})};return q("div",{className:"space-y-6",children:[i(D,{value:d,onChange:m,categories:f}),i(F,{categories:f}),o?i("p",{className:"text-muted-foreground text-sm",children:"Loading tasks…"}):v.length?i("div",{className:"space-y-3",children:v.map((r)=>i($,{task:r,onToggle:w,onDelete:C},r.id))}):i("div",{className:"rounded-2xl border border-border border-dashed p-8 text-center",children:i("p",{className:"text-muted-foreground",children:"No tasks match your filters. Create one above."})})]})}M("todos-app",{list:V,detail:V,form:F});export{V as TaskList,$ as TaskItem,F as TaskForm,D as FilterBar};
41
+ `;function V(){let{projectId:e}=Q(),[o,t]=q({status:"all",priority:"all",categoryId:"all",search:""}),{data:p,loading:r}=K(U,{variables:{projectId:e},fetchPolicy:"cache-and-network"}),[c]=G(I),[h]=G(E),f=p?.taskCategories??[],g=p?.tasks??[],v=R(()=>{return g.filter((l)=>{if(o.status==="active"&&l.completed)return!1;if(o.status==="completed"&&!l.completed)return!1;if(o.priority!=="all"&&l.priority!==o.priority)return!1;if(o.categoryId!=="all"&&l.category?.id!==o.categoryId)return!1;if(o.search&&!l.title.toLowerCase().includes(o.search.toLowerCase()))return!1;return!0})},[g,o]),w=async(l)=>{await c({variables:{id:l.id,completed:!l.completed},optimisticResponse:{toggleTask:{__typename:"Task",id:l.id,completed:!l.completed}},update(x){x.modify({fields:{tasks(P=[]){return P.map((d)=>d.__ref?.endsWith(l.id)?{...d,completed:!l.completed}:d)}}})}})},C=async(l)=>{await h({variables:{id:l.id},refetchQueries:[{query:U,variables:{projectId:e}}]})};return _("div",{className:"space-y-6",children:[i(D,{value:o,onChange:t,categories:f}),i(F,{categories:f}),r?i("p",{className:"text-muted-foreground text-sm",children:"Loading tasks…"}):v.length?i("div",{className:"space-y-3",children:v.map((l)=>i($,{task:l,onToggle:w,onDelete:C},l.id))}):i("div",{className:"rounded-2xl border border-border border-dashed p-8 text-center",children:i("p",{className:"text-muted-foreground",children:"No tasks match your filters. Create one above."})})]})}Y("todos-app",{list:V,detail:V,form:F});export{V as TaskList,$ as TaskItem,F as TaskForm,D as FilterBar};
@@ -1 +1 @@
1
- var A={appNameKey:"ContractSpec",assets:[{type:"logo",url:"/logo.svg",dimensions:{width:180,height:40}},{type:"logo-dark",url:"/logo-dark.svg",dimensions:{width:180,height:40}},{type:"favicon",url:"/favicon.ico",dimensions:{width:32,height:32}},{type:"og-image",url:"/og-image.png",dimensions:{width:1200,height:630}}],colorTokens:{primary:"#0ea5e9",secondary:"#6366f1"}},H={appName:"ContractSpec",assets:{logo:"/logo.svg",logoDark:"/logo-dark.svg",favicon:"/favicon.ico",ogImage:"/og-image.png"},colors:{primary:"#0ea5e9",secondary:"#6366f1"},domain:"contractspec.io"};var E=[{path:"/",label:"Home"},{path:"/product",label:"Product"},{path:"/pricing",label:"Pricing"},{path:"/changelog",label:"Changelog"},{path:"/contact",label:"Contact"},{path:"/docs",label:"Documentation"},{path:"/docs/getting-started",label:"Getting Started"},{path:"/docs/architecture",label:"Architecture"},{path:"/docs/specs",label:"Specs"},{path:"/docs/integrations",label:"Integrations"},{path:"/docs/libraries",label:"Libraries"},{path:"/docs/advanced",label:"Advanced"},{path:"/features",label:"Feature Discovery",featureFlag:"feature-discovery-ui"},{path:"/sandbox",label:"Sandbox",featureFlag:"sandbox-enabled"}];var j=(z,G)=>({key:z,version:G}),q=(z)=>({key:z}),O={meta:{key:"contractspec.app",version:"1.0.0",appId:"contractspec",title:"ContractSpec",description:"The deterministic, spec-first compiler for AI-coded systems",domain:"platform",owners:["@platform.core"],tags:["contracts","specs","ai-safety","code-generation"],stability:"beta"},capabilities:{enabled:[j("contracts.operations","1.0.0"),j("contracts.presentations","1.0.0"),j("contracts.mcp","1.0.0"),j("contracts.docs","1.0.0")]},features:{include:[q("contractspec.docs"),q("contractspec.mcp"),q("contractspec.presentations"),q("app-config")]},branding:A,featureFlags:[{key:"feature-discovery-ui",enabled:!0,description:"Show feature discovery UI"},{key:"dark-mode",enabled:!0,description:"Enable dark mode theming"},{key:"ai-assistant",enabled:!1,description:"AI-powered assistant integration"},{key:"sandbox-enabled",enabled:!0,description:"Enable sandbox playground"}],routes:E,notes:"ContractSpec platform blueprint - defines the app's capabilities, features, and configuration."};export{O as contractspecBlueprint};
1
+ var I=Object.defineProperty;var J=(j)=>j;function K(j,q){this[j]=J.bind(null,q)}var N=(j,q)=>{for(var E in q)I(j,E,{get:q[E],enumerable:!0,configurable:!0,set:K.bind(q,E)})};var O=(j,q)=>()=>(j&&(q=j(j=0)),q);var G={appNameKey:"ContractSpec",assets:[{type:"logo",url:"/logo.svg",dimensions:{width:180,height:40}},{type:"logo-dark",url:"/logo-dark.svg",dimensions:{width:180,height:40}},{type:"favicon",url:"/favicon.ico",dimensions:{width:32,height:32}},{type:"og-image",url:"/og-image.png",dimensions:{width:1200,height:630}}],colorTokens:{primary:"#0ea5e9",secondary:"#6366f1"}},T={appName:"ContractSpec",assets:{logo:"/logo.svg",logoDark:"/logo-dark.svg",favicon:"/favicon.ico",ogImage:"/og-image.png"},colors:{primary:"#0ea5e9",secondary:"#6366f1"},domain:"contractspec.io"};var H=[{path:"/",label:"Home"},{path:"/product",label:"Product"},{path:"/pricing",label:"Pricing"},{path:"/changelog",label:"Changelog"},{path:"/contact",label:"Contact"},{path:"/docs",label:"Documentation"},{path:"/docs/getting-started",label:"Getting Started"},{path:"/docs/architecture",label:"Architecture"},{path:"/docs/specs",label:"Specs"},{path:"/docs/integrations",label:"Integrations"},{path:"/docs/libraries",label:"Libraries"},{path:"/docs/advanced",label:"Advanced"},{path:"/features",label:"Feature Discovery",featureFlag:"feature-discovery-ui"},{path:"/sandbox",label:"Sandbox",featureFlag:"sandbox-enabled"}];var z=(j,q)=>({key:j,version:q}),A=(j)=>({key:j}),Y={meta:{key:"contractspec.app",version:"1.0.0",appId:"contractspec",title:"ContractSpec",description:"The deterministic, spec-first compiler for AI-coded systems",domain:"platform",owners:["@platform.core"],tags:["contracts","specs","ai-safety","code-generation"],stability:"beta"},capabilities:{enabled:[z("contracts.operations","1.0.0"),z("contracts.presentations","1.0.0"),z("contracts.mcp","1.0.0"),z("contracts.docs","1.0.0")]},features:{include:[A("contractspec.docs"),A("contractspec.mcp"),A("contractspec.presentations"),A("app-config")]},branding:G,featureFlags:[{key:"feature-discovery-ui",enabled:!0,description:"Show feature discovery UI"},{key:"dark-mode",enabled:!0,description:"Enable dark mode theming"},{key:"ai-assistant",enabled:!1,description:"AI-powered assistant integration"},{key:"sandbox-enabled",enabled:!0,description:"Enable sandbox playground"}],routes:H,notes:"ContractSpec platform blueprint - defines the app's capabilities, features, and configuration."};export{Y as contractspecBlueprint};
@@ -1 +1 @@
1
- var j={appNameKey:"ContractSpec",assets:[{type:"logo",url:"/logo.svg",dimensions:{width:180,height:40}},{type:"logo-dark",url:"/logo-dark.svg",dimensions:{width:180,height:40}},{type:"favicon",url:"/favicon.ico",dimensions:{width:32,height:32}},{type:"og-image",url:"/og-image.png",dimensions:{width:1200,height:630}}],colorTokens:{primary:"#0ea5e9",secondary:"#6366f1"}},k={appName:"ContractSpec",assets:{logo:"/logo.svg",logoDark:"/logo-dark.svg",favicon:"/favicon.ico",ogImage:"/og-image.png"},colors:{primary:"#0ea5e9",secondary:"#6366f1"},domain:"contractspec.io"};export{k as contractspecResolvedBranding,j as contractspecBrandingDefaults};
1
+ var q=Object.defineProperty;var x=(j)=>j;function z(j,k){this[j]=x.bind(null,k)}var A=(j,k)=>{for(var m in k)q(j,m,{get:k[m],enumerable:!0,configurable:!0,set:z.bind(k,m)})};var B=(j,k)=>()=>(j&&(k=j(j=0)),k);var E={appNameKey:"ContractSpec",assets:[{type:"logo",url:"/logo.svg",dimensions:{width:180,height:40}},{type:"logo-dark",url:"/logo-dark.svg",dimensions:{width:180,height:40}},{type:"favicon",url:"/favicon.ico",dimensions:{width:32,height:32}},{type:"og-image",url:"/og-image.png",dimensions:{width:1200,height:630}}],colorTokens:{primary:"#0ea5e9",secondary:"#6366f1"}},F={appName:"ContractSpec",assets:{logo:"/logo.svg",logoDark:"/logo-dark.svg",favicon:"/favicon.ico",ogImage:"/og-image.png"},colors:{primary:"#0ea5e9",secondary:"#6366f1"},domain:"contractspec.io"};export{F as contractspecResolvedBranding,E as contractspecBrandingDefaults};