@contractspec/bundle.marketing 3.8.7 → 3.8.9

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 (76) hide show
  1. package/.turbo/turbo-build.log +64 -32
  2. package/CHANGELOG.md +63 -0
  3. package/dist/browser/components/templates/TemplateCard.js +83 -0
  4. package/dist/browser/components/templates/TemplateCommandDialog.js +110 -0
  5. package/dist/browser/components/templates/TemplatePreviewContent.js +96 -0
  6. package/dist/browser/components/templates/TemplatesBrowseControls.js +115 -0
  7. package/dist/browser/components/templates/TemplatesCatalogSection.js +284 -0
  8. package/dist/browser/components/templates/TemplatesClientPage.js +840 -917
  9. package/dist/browser/components/templates/TemplatesHeroSection.js +87 -0
  10. package/dist/browser/components/templates/TemplatesNextStepsSection.js +126 -0
  11. package/dist/browser/components/templates/TemplatesPreviewModal.js +136 -126
  12. package/dist/browser/components/templates/index.js +873 -950
  13. package/dist/browser/components/templates/template-catalog.js +81 -0
  14. package/dist/browser/components/templates/template-new.js +23 -0
  15. package/dist/browser/components/templates/template-preview.js +43 -0
  16. package/dist/browser/components/templates/template-source.js +19 -0
  17. package/dist/browser/index.js +873 -950
  18. package/dist/components/templates/TemplateCard.d.ts +12 -0
  19. package/dist/components/templates/TemplateCard.js +78 -0
  20. package/dist/components/templates/TemplateCommandDialog.d.ts +6 -0
  21. package/dist/components/templates/TemplateCommandDialog.js +105 -0
  22. package/dist/components/templates/TemplatePreviewContent.d.ts +5 -0
  23. package/dist/components/templates/TemplatePreviewContent.js +91 -0
  24. package/dist/components/templates/TemplatesBrowseControls.d.ts +13 -0
  25. package/dist/components/templates/TemplatesBrowseControls.js +110 -0
  26. package/dist/components/templates/TemplatesCatalogSection.d.ts +14 -0
  27. package/dist/components/templates/TemplatesCatalogSection.js +279 -0
  28. package/dist/components/templates/TemplatesClientPage.js +840 -917
  29. package/dist/components/templates/TemplatesHeroSection.d.ts +5 -0
  30. package/dist/components/templates/TemplatesHeroSection.js +82 -0
  31. package/dist/components/templates/TemplatesNextStepsSection.d.ts +1 -0
  32. package/dist/components/templates/TemplatesNextStepsSection.js +121 -0
  33. package/dist/components/templates/TemplatesPreviewModal.d.ts +3 -4
  34. package/dist/components/templates/TemplatesPreviewModal.js +136 -126
  35. package/dist/components/templates/index.js +873 -950
  36. package/dist/components/templates/template-catalog.d.ts +27 -0
  37. package/dist/components/templates/template-catalog.js +76 -0
  38. package/dist/components/templates/template-catalog.test.d.ts +1 -0
  39. package/dist/components/templates/template-new.d.ts +2 -0
  40. package/dist/components/templates/template-new.js +18 -0
  41. package/dist/components/templates/template-preview.d.ts +18 -0
  42. package/dist/components/templates/template-preview.js +38 -0
  43. package/dist/components/templates/template-source.d.ts +3 -0
  44. package/dist/components/templates/template-source.js +14 -0
  45. package/dist/index.js +873 -950
  46. package/dist/node/components/templates/TemplateCard.js +78 -0
  47. package/dist/node/components/templates/TemplateCommandDialog.js +105 -0
  48. package/dist/node/components/templates/TemplatePreviewContent.js +91 -0
  49. package/dist/node/components/templates/TemplatesBrowseControls.js +110 -0
  50. package/dist/node/components/templates/TemplatesCatalogSection.js +279 -0
  51. package/dist/node/components/templates/TemplatesClientPage.js +840 -917
  52. package/dist/node/components/templates/TemplatesHeroSection.js +82 -0
  53. package/dist/node/components/templates/TemplatesNextStepsSection.js +121 -0
  54. package/dist/node/components/templates/TemplatesPreviewModal.js +136 -126
  55. package/dist/node/components/templates/index.js +873 -950
  56. package/dist/node/components/templates/template-catalog.js +76 -0
  57. package/dist/node/components/templates/template-new.js +18 -0
  58. package/dist/node/components/templates/template-preview.js +38 -0
  59. package/dist/node/components/templates/template-source.js +14 -0
  60. package/dist/node/index.js +873 -950
  61. package/package.json +185 -30
  62. package/src/components/templates/TemplateCard.tsx +74 -0
  63. package/src/components/templates/TemplateCommandDialog.tsx +92 -0
  64. package/src/components/templates/TemplatePreviewContent.tsx +182 -0
  65. package/src/components/templates/TemplatesBrowseControls.tsx +120 -0
  66. package/src/components/templates/TemplatesCatalogSection.tsx +166 -0
  67. package/src/components/templates/TemplatesClientPage.tsx +109 -741
  68. package/src/components/templates/TemplatesHeroSection.tsx +41 -0
  69. package/src/components/templates/TemplatesNextStepsSection.tsx +80 -0
  70. package/src/components/templates/TemplatesPreviewModal.tsx +19 -294
  71. package/src/components/templates/template-catalog.test.ts +66 -0
  72. package/src/components/templates/template-catalog.ts +132 -0
  73. package/src/components/templates/template-new.ts +12 -0
  74. package/src/components/templates/template-preview.ts +57 -0
  75. package/src/components/templates/template-source.ts +13 -0
  76. package/.turbo/turbo-prebuild.log +0 -1
@@ -1,15 +1,12 @@
1
1
  $ contractspec-bun-build prebuild
2
- $ bun run prebuild && bun run build:bundle && bun run build:types
3
- $ contractspec-bun-build prebuild
2
+ $ bun run build:bundle && bun run build:types
4
3
  $ contractspec-bun-build transpile
5
- [contractspec-bun-build] transpile target=bun root=src entries=45 noBundle=false
6
- Bundled 45 modules in 21ms
4
+ [contractspec-bun-build] transpile target=bun root=src entries=56 noBundle=false
5
+ Bundled 56 modules in 23ms
7
6
 
8
7
  bundles/MarketingBundle.js 8.0 KB (entry point)
9
8
  libs/email/types.js 49 bytes (entry point)
10
- ./index.js 229.90 KB (entry point)
11
- libs/email/waitlist-application.js 11.18 KB (entry point)
12
- libs/email/waitlist.js 7.48 KB (entry point)
9
+ ./index.js 218.93 KB (entry point)
13
10
  registry/index.js 154.47 KB (entry point)
14
11
  registry/types.js 8 bytes (entry point)
15
12
  registry/utils.js 154.1 KB (entry point)
@@ -18,11 +15,24 @@ Bundled 45 modules in 21ms
18
15
  registry/registry-docs.js 27.11 KB (entry point)
19
16
  registry/registry-landing.js 124.66 KB (entry point)
20
17
  registry/factory.js 1.35 KB (entry point)
21
- components/templates/index.js 181.15 KB (entry point)
22
- components/templates/TemplatesClientPage.js 174.21 KB (entry point)
23
- components/templates/TemplatesPage.js 6.85 KB (entry point)
24
- components/templates/TemplatesPreviewModal.js 9.86 KB (entry point)
25
18
  libs/email/newsletter.js 6.88 KB (entry point)
19
+ libs/email/waitlist-application.js 11.18 KB (entry point)
20
+ libs/email/waitlist.js 7.48 KB (entry point)
21
+ components/templates/index.js 170.18 KB (entry point)
22
+ components/templates/TemplatesPage.js 6.85 KB (entry point)
23
+ components/templates/TemplatesClientPage.js 163.21 KB (entry point)
24
+ components/templates/TemplatesPreviewModal.js 7.43 KB (entry point)
25
+ components/templates/template-source.js 379 bytes (entry point)
26
+ components/templates/TemplateCommandDialog.js 3.99 KB (entry point)
27
+ components/templates/TemplatePreviewContent.js 5.19 KB (entry point)
28
+ components/templates/TemplatesBrowseControls.js 5.19 KB (entry point)
29
+ components/templates/TemplatesCatalogSection.js 11.84 KB (entry point)
30
+ components/templates/template-catalog.js 3.14 KB (entry point)
31
+ components/templates/template-new.js 414 bytes (entry point)
32
+ components/templates/template-preview.js 1.1 KB (entry point)
33
+ components/templates/TemplateCard.js 2.92 KB (entry point)
34
+ components/templates/TemplatesHeroSection.js 3.37 KB (entry point)
35
+ components/templates/TemplatesNextStepsSection.js 5.90 KB (entry point)
26
36
  components/marketing/sections/FearsSection.js 3.36 KB (entry point)
27
37
  components/marketing/sections/HeroMarketingSection.js 3.65 KB (entry point)
28
38
  components/marketing/sections/OutputsSection.js 3.26 KB (entry point)
@@ -44,21 +54,19 @@ Bundled 45 modules in 21ms
44
54
  components/marketing/CofounderPage.js 10.29 KB (entry point)
45
55
  components/marketing/ContactClient.js 19.15 KB (entry point)
46
56
  libs/email/contact.js 6.12 KB (entry point)
47
- libs/email/utils.js 311 bytes (entry point)
48
57
  libs/email/client.js 3.42 KB (entry point)
58
+ libs/email/utils.js 311 bytes (entry point)
49
59
  components/marketing/studio-signup-section.js 2.58 KB (entry point)
50
60
  components/marketing/ContributePage.js 11.12 KB (entry point)
51
61
  components/marketing/DesignPartnerPage.js 10.45 KB (entry point)
52
62
  components/marketing/LandingPage.js 25.71 KB (entry point)
53
63
 
54
- [contractspec-bun-build] transpile target=node root=src entries=45 noBundle=false
55
- Bundled 45 modules in 20ms
64
+ [contractspec-bun-build] transpile target=node root=src entries=56 noBundle=false
65
+ Bundled 56 modules in 21ms
56
66
 
57
67
  bundles/MarketingBundle.js 8.1 KB (entry point)
58
68
  libs/email/types.js 41 bytes (entry point)
59
- ./index.js 229.85 KB (entry point)
60
- libs/email/waitlist-application.js 11.23 KB (entry point)
61
- libs/email/waitlist.js 7.53 KB (entry point)
69
+ ./index.js 218.90 KB (entry point)
62
70
  registry/index.js 154.50 KB (entry point)
63
71
  registry/types.js 0 KB (entry point)
64
72
  registry/utils.js 154.1 KB (entry point)
@@ -67,11 +75,24 @@ Bundled 45 modules in 20ms
67
75
  registry/registry-docs.js 27.18 KB (entry point)
68
76
  registry/registry-landing.js 124.69 KB (entry point)
69
77
  registry/factory.js 1.42 KB (entry point)
70
- components/templates/index.js 181.15 KB (entry point)
71
- components/templates/TemplatesClientPage.js 174.21 KB (entry point)
72
- components/templates/TemplatesPage.js 6.91 KB (entry point)
73
- components/templates/TemplatesPreviewModal.js 9.92 KB (entry point)
74
78
  libs/email/newsletter.js 6.93 KB (entry point)
79
+ libs/email/waitlist-application.js 11.23 KB (entry point)
80
+ libs/email/waitlist.js 7.53 KB (entry point)
81
+ components/templates/index.js 170.20 KB (entry point)
82
+ components/templates/TemplatesPage.js 6.91 KB (entry point)
83
+ components/templates/TemplatesClientPage.js 163.23 KB (entry point)
84
+ components/templates/TemplatesPreviewModal.js 7.50 KB (entry point)
85
+ components/templates/template-source.js 443 bytes (entry point)
86
+ components/templates/TemplateCommandDialog.js 4.1 KB (entry point)
87
+ components/templates/TemplatePreviewContent.js 5.26 KB (entry point)
88
+ components/templates/TemplatesBrowseControls.js 5.26 KB (entry point)
89
+ components/templates/TemplatesCatalogSection.js 11.90 KB (entry point)
90
+ components/templates/template-catalog.js 3.21 KB (entry point)
91
+ components/templates/template-new.js 478 bytes (entry point)
92
+ components/templates/template-preview.js 1.15 KB (entry point)
93
+ components/templates/TemplateCard.js 2.98 KB (entry point)
94
+ components/templates/TemplatesHeroSection.js 3.43 KB (entry point)
95
+ components/templates/TemplatesNextStepsSection.js 5.96 KB (entry point)
75
96
  components/marketing/sections/FearsSection.js 3.42 KB (entry point)
76
97
  components/marketing/sections/HeroMarketingSection.js 3.71 KB (entry point)
77
98
  components/marketing/sections/OutputsSection.js 3.32 KB (entry point)
@@ -93,21 +114,19 @@ Bundled 45 modules in 20ms
93
114
  components/marketing/CofounderPage.js 10.35 KB (entry point)
94
115
  components/marketing/ContactClient.js 19.21 KB (entry point)
95
116
  libs/email/contact.js 6.18 KB (entry point)
96
- libs/email/utils.js 375 bytes (entry point)
97
117
  libs/email/client.js 3.48 KB (entry point)
118
+ libs/email/utils.js 375 bytes (entry point)
98
119
  components/marketing/studio-signup-section.js 2.64 KB (entry point)
99
120
  components/marketing/ContributePage.js 11.19 KB (entry point)
100
121
  components/marketing/DesignPartnerPage.js 10.51 KB (entry point)
101
122
  components/marketing/LandingPage.js 25.76 KB (entry point)
102
123
 
103
- [contractspec-bun-build] transpile target=browser root=src entries=45 noBundle=false
104
- Bundled 45 modules in 22ms
124
+ [contractspec-bun-build] transpile target=browser root=src entries=56 noBundle=false
125
+ Bundled 56 modules in 31ms
105
126
 
106
127
  bundles/MarketingBundle.js 8.36 KB (entry point)
107
128
  libs/email/types.js 41 bytes (entry point)
108
- ./index.js 230.11 KB (entry point)
109
- libs/email/waitlist-application.js 11.49 KB (entry point)
110
- libs/email/waitlist.js 7.79 KB (entry point)
129
+ ./index.js 219.16 KB (entry point)
111
130
  registry/index.js 154.76 KB (entry point)
112
131
  registry/types.js 0 KB (entry point)
113
132
  registry/utils.js 154.36 KB (entry point)
@@ -116,11 +135,24 @@ Bundled 45 modules in 22ms
116
135
  registry/registry-docs.js 27.44 KB (entry point)
117
136
  registry/registry-landing.js 124.95 KB (entry point)
118
137
  registry/factory.js 1.68 KB (entry point)
119
- components/templates/index.js 181.41 KB (entry point)
120
- components/templates/TemplatesClientPage.js 174.47 KB (entry point)
121
- components/templates/TemplatesPage.js 7.17 KB (entry point)
122
- components/templates/TemplatesPreviewModal.js 10.18 KB (entry point)
123
138
  libs/email/newsletter.js 7.19 KB (entry point)
139
+ libs/email/waitlist-application.js 11.49 KB (entry point)
140
+ libs/email/waitlist.js 7.79 KB (entry point)
141
+ components/templates/index.js 170.46 KB (entry point)
142
+ components/templates/TemplatesPage.js 7.17 KB (entry point)
143
+ components/templates/TemplatesClientPage.js 163.49 KB (entry point)
144
+ components/templates/TemplatesPreviewModal.js 7.76 KB (entry point)
145
+ components/templates/template-source.js 0.70 KB (entry point)
146
+ components/templates/TemplateCommandDialog.js 4.31 KB (entry point)
147
+ components/templates/TemplatePreviewContent.js 5.52 KB (entry point)
148
+ components/templates/TemplatesBrowseControls.js 5.52 KB (entry point)
149
+ components/templates/TemplatesCatalogSection.js 12.16 KB (entry point)
150
+ components/templates/template-catalog.js 3.47 KB (entry point)
151
+ components/templates/template-new.js 0.74 KB (entry point)
152
+ components/templates/template-preview.js 1.41 KB (entry point)
153
+ components/templates/TemplateCard.js 3.24 KB (entry point)
154
+ components/templates/TemplatesHeroSection.js 3.69 KB (entry point)
155
+ components/templates/TemplatesNextStepsSection.js 6.22 KB (entry point)
124
156
  components/marketing/sections/FearsSection.js 3.68 KB (entry point)
125
157
  components/marketing/sections/HeroMarketingSection.js 3.97 KB (entry point)
126
158
  components/marketing/sections/OutputsSection.js 3.58 KB (entry point)
@@ -142,8 +174,8 @@ Bundled 45 modules in 22ms
142
174
  components/marketing/CofounderPage.js 10.61 KB (entry point)
143
175
  components/marketing/ContactClient.js 19.47 KB (entry point)
144
176
  libs/email/contact.js 6.44 KB (entry point)
145
- libs/email/utils.js 0.64 KB (entry point)
146
177
  libs/email/client.js 3.74 KB (entry point)
178
+ libs/email/utils.js 0.64 KB (entry point)
147
179
  components/marketing/studio-signup-section.js 2.90 KB (entry point)
148
180
  components/marketing/ContributePage.js 11.45 KB (entry point)
149
181
  components/marketing/DesignPartnerPage.js 10.77 KB (entry point)
package/CHANGELOG.md CHANGED
@@ -1,5 +1,68 @@
1
1
  # @contractspec/bundle.marketing
2
2
 
3
+ ## 3.8.9
4
+
5
+ ### Patch Changes
6
+
7
+ - 2b59171: fix: crypto package issue due to nodejs only runtime
8
+ - Updated dependencies [2b59171]
9
+ - @contractspec/lib.contracts-runtime-client-react@3.8.4
10
+ - @contractspec/example.visualization-showcase@3.9.8
11
+ - @contractspec/example.analytics-dashboard@3.9.8
12
+ - @contractspec/example.data-grid-showcase@3.8.8
13
+ - @contractspec/example.ai-chat-assistant@3.8.8
14
+ - @contractspec/example.saas-boilerplate@3.8.8
15
+ - @contractspec/example.integration-hub@3.8.8
16
+ - @contractspec/example.workflow-system@3.8.8
17
+ - @contractspec/example.agent-console@3.8.8
18
+ - @contractspec/lib.example-shared-ui@6.0.16
19
+ - @contractspec/example.crm-pipeline@3.7.16
20
+ - @contractspec/example.marketplace@3.8.8
21
+ - @contractspec/lib.runtime-sandbox@2.7.13
22
+ - @contractspec/lib.surface-runtime@0.5.16
23
+ - @contractspec/lib.contracts-spec@5.0.4
24
+ - @contractspec/lib.design-system@3.8.9
25
+ - @contractspec/lib.ui-kit-core@3.7.12
26
+ - @contractspec/module.examples@3.8.8
27
+ - @contractspec/bundle.library@3.8.9
28
+ - @contractspec/lib.ui-kit-web@3.9.8
29
+ - @contractspec/lib.ui-link@3.7.12
30
+ - @contractspec/lib.logger@3.7.12
31
+ - @contractspec/lib.email@3.7.12
32
+
33
+ ## 3.8.8
34
+
35
+ ### Patch Changes
36
+
37
+ - cce2b13: Add first-class Workflow DevKit support for `WorkflowSpec`, including new runtime metadata, stricter validation for Workflow-backed workflows, a dedicated Workflow DevKit integration package, CLI artifact generation, and Workflow-aware chat route helpers exposed from `@contractspec/module.ai-chat/core/workflow` so standard chat imports do not pull Workflow-only runtime assets into non-Workflow builds.
38
+
39
+ Also harden supporting runtime surfaces by reusing Playwright browser instances in the harness runtime, mapping design-system button `onPress` handlers correctly to DOM clicks, and switching the workspace git adapter to argument-safe subprocess calls while tightening slow test coverage around those flows.
40
+
41
+ - Updated dependencies [cce2b13]
42
+ - Updated dependencies [cce2b13]
43
+ - @contractspec/example.agent-console@3.8.7
44
+ - @contractspec/lib.contracts-runtime-client-react@3.8.3
45
+ - @contractspec/example.visualization-showcase@3.9.7
46
+ - @contractspec/example.analytics-dashboard@3.9.7
47
+ - @contractspec/example.data-grid-showcase@3.8.7
48
+ - @contractspec/example.saas-boilerplate@3.8.7
49
+ - @contractspec/example.integration-hub@3.8.7
50
+ - @contractspec/example.workflow-system@3.8.7
51
+ - @contractspec/lib.example-shared-ui@6.0.15
52
+ - @contractspec/example.crm-pipeline@3.7.15
53
+ - @contractspec/example.marketplace@3.8.7
54
+ - @contractspec/lib.runtime-sandbox@2.7.12
55
+ - @contractspec/lib.surface-runtime@0.5.15
56
+ - @contractspec/lib.contracts-spec@5.0.3
57
+ - @contractspec/lib.design-system@3.8.8
58
+ - @contractspec/lib.ui-kit-core@3.7.11
59
+ - @contractspec/module.examples@3.8.7
60
+ - @contractspec/bundle.library@3.8.8
61
+ - @contractspec/lib.ui-kit-web@3.9.7
62
+ - @contractspec/lib.ui-link@3.7.11
63
+ - @contractspec/lib.logger@3.7.11
64
+ - @contractspec/lib.email@3.7.11
65
+
3
66
  ## 3.8.7
4
67
 
5
68
  ### Patch Changes
@@ -0,0 +1,83 @@
1
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
+ }) : x)(function(x) {
4
+ if (typeof require !== "undefined")
5
+ return require.apply(this, arguments);
6
+ throw Error('Dynamic require of "' + x + '" is not supported');
7
+ });
8
+
9
+ // src/components/templates/TemplateCard.tsx
10
+ import { jsxDEV } from "react/jsx-dev-runtime";
11
+ "use client";
12
+ function TemplateCard({
13
+ title,
14
+ description,
15
+ metaBadges,
16
+ tags,
17
+ featureList = [],
18
+ isNew = false,
19
+ previewAction,
20
+ useAction
21
+ }) {
22
+ return /* @__PURE__ */ jsxDEV("div", {
23
+ className: "editorial-panel relative flex flex-col space-y-4 transition-colors hover:border-[color:rgb(162_79_42_/_0.55)]",
24
+ children: [
25
+ isNew ? /* @__PURE__ */ jsxDEV("span", {
26
+ className: "absolute top-4 right-4 rounded-full bg-[color:var(--success)] px-2.5 py-1 font-medium text-[11px] text-white uppercase",
27
+ children: "New"
28
+ }, undefined, false, undefined, this) : null,
29
+ /* @__PURE__ */ jsxDEV("div", {
30
+ children: [
31
+ /* @__PURE__ */ jsxDEV("h3", {
32
+ className: "font-serif text-2xl tracking-[-0.03em]",
33
+ children: title
34
+ }, undefined, false, undefined, this),
35
+ /* @__PURE__ */ jsxDEV("p", {
36
+ className: "mt-1 text-muted-foreground text-sm",
37
+ children: description
38
+ }, undefined, false, undefined, this)
39
+ ]
40
+ }, undefined, true, undefined, this),
41
+ /* @__PURE__ */ jsxDEV("div", {
42
+ className: "flex-1 space-y-3",
43
+ children: [
44
+ /* @__PURE__ */ jsxDEV("div", {
45
+ className: "flex flex-wrap gap-2",
46
+ children: metaBadges.map((badge) => /* @__PURE__ */ jsxDEV("span", {
47
+ className: "rounded-full border border-border bg-background px-3 py-1 text-[11px] text-foreground",
48
+ children: badge
49
+ }, badge, false, undefined, this))
50
+ }, undefined, false, undefined, this),
51
+ featureList.length > 0 ? /* @__PURE__ */ jsxDEV("p", {
52
+ className: "text-muted-foreground text-xs",
53
+ children: [
54
+ /* @__PURE__ */ jsxDEV("span", {
55
+ className: "font-medium text-foreground",
56
+ children: "Features:"
57
+ }, undefined, false, undefined, this),
58
+ " ",
59
+ featureList.join(", ")
60
+ ]
61
+ }, undefined, true, undefined, this) : null,
62
+ /* @__PURE__ */ jsxDEV("div", {
63
+ className: "flex flex-wrap gap-1",
64
+ children: tags.map((tag) => /* @__PURE__ */ jsxDEV("span", {
65
+ className: "rounded-full border border-border bg-muted px-3 py-1 text-[11px] text-muted-foreground",
66
+ children: tag
67
+ }, tag, false, undefined, this))
68
+ }, undefined, false, undefined, this)
69
+ ]
70
+ }, undefined, true, undefined, this),
71
+ /* @__PURE__ */ jsxDEV("div", {
72
+ className: "flex gap-2 pt-4",
73
+ children: [
74
+ previewAction,
75
+ useAction
76
+ ]
77
+ }, undefined, true, undefined, this)
78
+ ]
79
+ }, undefined, true, undefined, this);
80
+ }
81
+ export {
82
+ TemplateCard
83
+ };
@@ -0,0 +1,110 @@
1
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
+ }) : x)(function(x) {
4
+ if (typeof require !== "undefined")
5
+ return require.apply(this, arguments);
6
+ throw Error('Dynamic require of "' + x + '" is not supported');
7
+ });
8
+
9
+ // src/components/templates/TemplateCommandDialog.tsx
10
+ import {
11
+ analyticsEventNames,
12
+ captureAnalyticsEvent
13
+ } from "@contractspec/bundle.library/libs/posthog/client";
14
+ import {
15
+ Dialog,
16
+ DialogContent,
17
+ DialogDescription,
18
+ DialogHeader,
19
+ DialogTitle
20
+ } from "@contractspec/lib.ui-kit-web/ui/dialog";
21
+ import { jsxDEV } from "react/jsx-dev-runtime";
22
+ "use client";
23
+ function TemplateCommandDialog({
24
+ templateId,
25
+ onClose,
26
+ onDeployStudio
27
+ }) {
28
+ const command = templateId ? `npx contractspec init --template ${templateId}` : "";
29
+ return /* @__PURE__ */ jsxDEV(Dialog, {
30
+ open: !!templateId,
31
+ onOpenChange: (open) => !open && onClose(),
32
+ children: /* @__PURE__ */ jsxDEV(DialogContent, {
33
+ className: "max-w-md",
34
+ children: [
35
+ /* @__PURE__ */ jsxDEV(DialogHeader, {
36
+ children: [
37
+ /* @__PURE__ */ jsxDEV(DialogTitle, {
38
+ children: "Use this template"
39
+ }, undefined, false, undefined, this),
40
+ /* @__PURE__ */ jsxDEV(DialogDescription, {
41
+ children: "Initialize a new project with this template using the CLI."
42
+ }, undefined, false, undefined, this)
43
+ ]
44
+ }, undefined, true, undefined, this),
45
+ /* @__PURE__ */ jsxDEV("div", {
46
+ className: "space-y-4 pt-4",
47
+ children: [
48
+ /* @__PURE__ */ jsxDEV("div", {
49
+ className: "rounded-md border border-zinc-800 bg-zinc-950 p-4 font-mono text-sm text-zinc-50",
50
+ children: command
51
+ }, undefined, false, undefined, this),
52
+ /* @__PURE__ */ jsxDEV("div", {
53
+ className: "flex gap-2",
54
+ children: /* @__PURE__ */ jsxDEV("button", {
55
+ className: "btn-secondary w-full",
56
+ onClick: () => {
57
+ if (!templateId) {
58
+ return;
59
+ }
60
+ navigator.clipboard.writeText(command);
61
+ captureAnalyticsEvent(analyticsEventNames.COPY_COMMAND_CLICK, {
62
+ surface: "templates",
63
+ templateId,
64
+ filename: "templates-cli"
65
+ });
66
+ },
67
+ children: "Copy Command"
68
+ }, undefined, false, undefined, this)
69
+ }, undefined, false, undefined, this),
70
+ /* @__PURE__ */ jsxDEV("div", {
71
+ className: "relative",
72
+ children: [
73
+ /* @__PURE__ */ jsxDEV("div", {
74
+ className: "absolute inset-0 flex items-center",
75
+ children: /* @__PURE__ */ jsxDEV("span", {
76
+ className: "w-full border-border border-t"
77
+ }, undefined, false, undefined, this)
78
+ }, undefined, false, undefined, this),
79
+ /* @__PURE__ */ jsxDEV("div", {
80
+ className: "relative flex justify-center text-xs uppercase",
81
+ children: /* @__PURE__ */ jsxDEV("span", {
82
+ className: "bg-background px-2 text-muted-foreground",
83
+ children: "Or"
84
+ }, undefined, false, undefined, this)
85
+ }, undefined, false, undefined, this)
86
+ ]
87
+ }, undefined, true, undefined, this),
88
+ /* @__PURE__ */ jsxDEV("button", {
89
+ className: "btn-ghost w-full text-sm",
90
+ onClick: () => {
91
+ if (!templateId) {
92
+ return;
93
+ }
94
+ captureAnalyticsEvent(analyticsEventNames.CTA_STUDIO_CLICK, {
95
+ surface: "templates",
96
+ templateId
97
+ });
98
+ onDeployStudio();
99
+ },
100
+ children: "Deploy to Studio"
101
+ }, undefined, false, undefined, this)
102
+ ]
103
+ }, undefined, true, undefined, this)
104
+ ]
105
+ }, undefined, true, undefined, this)
106
+ }, undefined, false, undefined, this);
107
+ }
108
+ export {
109
+ TemplateCommandDialog
110
+ };
@@ -0,0 +1,96 @@
1
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
+ }) : x)(function(x) {
4
+ if (typeof require !== "undefined")
5
+ return require.apply(this, arguments);
6
+ throw Error('Dynamic require of "' + x + '" is not supported');
7
+ });
8
+
9
+ // src/components/templates/TemplatePreviewContent.tsx
10
+ import {
11
+ TemplateShell
12
+ } from "@contractspec/lib.example-shared-ui";
13
+ import { LoadingSpinner } from "@contractspec/lib.ui-kit-web/ui/atoms/LoadingSpinner";
14
+ import dynamic from "next/dynamic";
15
+ import { jsxDEV } from "react/jsx-dev-runtime";
16
+ "use client";
17
+ var SaasDashboard = dynamic(() => import("@contractspec/example.saas-boilerplate").then((module) => module.SaasDashboard), { ssr: false, loading: () => /* @__PURE__ */ jsxDEV(LoadingSpinner, {}, undefined, false, undefined, this) });
18
+ var CrmDashboard = dynamic(() => import("@contractspec/example.crm-pipeline").then((module) => module.CrmDashboard), { ssr: false, loading: () => /* @__PURE__ */ jsxDEV(LoadingSpinner, {}, undefined, false, undefined, this) });
19
+ var DataGridShowcase = dynamic(() => import("@contractspec/example.data-grid-showcase/ui").then((module) => module.DataGridShowcase), { ssr: false, loading: () => /* @__PURE__ */ jsxDEV(LoadingSpinner, {}, undefined, false, undefined, this) });
20
+ var VisualizationShowcase = dynamic(() => import("@contractspec/example.visualization-showcase/ui").then((module) => module.VisualizationShowcase), { ssr: false, loading: () => /* @__PURE__ */ jsxDEV(LoadingSpinner, {}, undefined, false, undefined, this) });
21
+ var AgentDashboard = dynamic(() => import("@contractspec/example.agent-console/ui").then((module) => module.AgentDashboard), { ssr: false, loading: () => /* @__PURE__ */ jsxDEV(LoadingSpinner, {}, undefined, false, undefined, this) });
22
+ var AiChatAssistantDashboard = dynamic(() => import("@contractspec/example.ai-chat-assistant").then((module) => module.AiChatAssistantDashboard), { ssr: false, loading: () => /* @__PURE__ */ jsxDEV(LoadingSpinner, {}, undefined, false, undefined, this) });
23
+ var WorkflowDashboard = dynamic(() => import("@contractspec/example.workflow-system/ui").then((module) => module.WorkflowDashboard), { ssr: false, loading: () => /* @__PURE__ */ jsxDEV(LoadingSpinner, {}, undefined, false, undefined, this) });
24
+ var MarketplaceDashboard = dynamic(() => import("@contractspec/example.marketplace/ui").then((module) => module.MarketplaceDashboard), { ssr: false, loading: () => /* @__PURE__ */ jsxDEV(LoadingSpinner, {}, undefined, false, undefined, this) });
25
+ var IntegrationDashboard = dynamic(() => import("@contractspec/example.integration-hub/ui").then((module) => module.IntegrationDashboard), { ssr: false, loading: () => /* @__PURE__ */ jsxDEV(LoadingSpinner, {}, undefined, false, undefined, this) });
26
+ var AnalyticsDashboard = dynamic(() => import("@contractspec/example.analytics-dashboard").then((module) => module.AnalyticsDashboard), { ssr: false, loading: () => /* @__PURE__ */ jsxDEV(LoadingSpinner, {}, undefined, false, undefined, this) });
27
+ var PREVIEW_DEFINITIONS = {
28
+ "saas-boilerplate": {
29
+ title: "SaaS Boilerplate",
30
+ description: "Multi-tenant organizations, projects, settings, and billing usage tracking.",
31
+ component: SaasDashboard
32
+ },
33
+ "crm-pipeline": {
34
+ title: "CRM Pipeline",
35
+ description: "Sales CRM with contacts, companies, deals, and pipeline stages.",
36
+ component: CrmDashboard
37
+ },
38
+ "data-grid-showcase": {
39
+ title: "Data Grid Showcase",
40
+ description: "Shared ContractSpec table primitives with client, server, and DataView-driven lanes.",
41
+ component: DataGridShowcase
42
+ },
43
+ "visualization-showcase": {
44
+ title: "Visualization Showcase",
45
+ description: "ContractSpec-owned chart primitives rendered through shared visualization contracts and design-system wrappers.",
46
+ component: VisualizationShowcase
47
+ },
48
+ "agent-console": {
49
+ title: "AI Agent Console",
50
+ description: "AI agent orchestration with tools, agents, runs, and execution logs.",
51
+ component: AgentDashboard
52
+ },
53
+ "ai-chat-assistant": {
54
+ title: "AI Chat Assistant",
55
+ description: "Focused assistant surface with reasoning, sources, suggestions, and MCP-aware tools.",
56
+ component: AiChatAssistantDashboard
57
+ },
58
+ "workflow-system": {
59
+ title: "Workflow System",
60
+ description: "Multi-step workflows with role-based approvals.",
61
+ component: WorkflowDashboard
62
+ },
63
+ marketplace: {
64
+ title: "Marketplace",
65
+ description: "Two-sided marketplace with stores, products, orders, and payouts.",
66
+ component: MarketplaceDashboard
67
+ },
68
+ "integration-hub": {
69
+ title: "Integration Hub",
70
+ description: "Third-party integrations with connections, sync configs, and field mapping.",
71
+ component: IntegrationDashboard
72
+ },
73
+ "analytics-dashboard": {
74
+ title: "Analytics Dashboard",
75
+ description: "Custom dashboards with widgets and queries.",
76
+ component: AnalyticsDashboard
77
+ }
78
+ };
79
+ function TemplatePreviewContent({
80
+ templateId
81
+ }) {
82
+ const preview = PREVIEW_DEFINITIONS[templateId];
83
+ if (!preview) {
84
+ return null;
85
+ }
86
+ const PreviewComponent = preview.component;
87
+ return /* @__PURE__ */ jsxDEV(TemplateShell, {
88
+ title: preview.title,
89
+ description: preview.description,
90
+ showSaveAction: false,
91
+ children: /* @__PURE__ */ jsxDEV(PreviewComponent, {}, undefined, false, undefined, this)
92
+ }, undefined, false, undefined, this);
93
+ }
94
+ export {
95
+ TemplatePreviewContent
96
+ };
@@ -0,0 +1,115 @@
1
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
+ }) : x)(function(x) {
4
+ if (typeof require !== "undefined")
5
+ return require.apply(this, arguments);
6
+ throw Error('Dynamic require of "' + x + '" is not supported');
7
+ });
8
+
9
+ // src/components/templates/TemplatesBrowseControls.tsx
10
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
11
+ import { Search } from "lucide-react";
12
+ import { jsxDEV } from "react/jsx-dev-runtime";
13
+ "use client";
14
+ function TemplatesBrowseControls({
15
+ registryConfigured,
16
+ availableSources,
17
+ source,
18
+ onSourceChange,
19
+ search,
20
+ onSearchChange,
21
+ selectedTag,
22
+ onTagChange,
23
+ availableTags
24
+ }) {
25
+ return /* @__PURE__ */ jsxDEV("section", {
26
+ className: "editorial-section",
27
+ children: /* @__PURE__ */ jsxDEV("div", {
28
+ className: "editorial-shell space-y-6",
29
+ children: [
30
+ /* @__PURE__ */ jsxDEV("div", {
31
+ className: "flex flex-col gap-6 lg:flex-row lg:items-end lg:justify-between",
32
+ children: [
33
+ /* @__PURE__ */ jsxDEV("div", {
34
+ className: "max-w-3xl space-y-3",
35
+ children: [
36
+ /* @__PURE__ */ jsxDEV("p", {
37
+ className: "editorial-kicker",
38
+ children: "Browse by source"
39
+ }, undefined, false, undefined, this),
40
+ /* @__PURE__ */ jsxDEV("h2", {
41
+ className: "font-serif text-4xl tracking-[-0.04em]",
42
+ children: "Use local scenarios for core proof, then scan the community."
43
+ }, undefined, false, undefined, this),
44
+ /* @__PURE__ */ jsxDEV("p", {
45
+ className: "text-muted-foreground text-sm leading-7",
46
+ children: registryConfigured ? "Local templates show the official adoption path. Community templates show where the ecosystem is pushing the system next." : "Local templates show the official adoption path. Community browsing appears automatically when a registry URL is configured."
47
+ }, undefined, false, undefined, this)
48
+ ]
49
+ }, undefined, true, undefined, this),
50
+ registryConfigured ? /* @__PURE__ */ jsxDEV("div", {
51
+ className: "flex gap-2",
52
+ children: availableSources.map((option) => /* @__PURE__ */ jsxDEV("button", {
53
+ onClick: () => onSourceChange(option),
54
+ className: cn("rounded-full px-4 py-2 font-medium text-sm transition-colors", {
55
+ "bg-primary text-primary-foreground": source === option,
56
+ "border border-border bg-card hover:bg-card/80": source !== option
57
+ }),
58
+ "aria-pressed": source === option,
59
+ children: option === "local" ? "Local" : "Community"
60
+ }, option, false, undefined, this))
61
+ }, undefined, false, undefined, this) : null
62
+ ]
63
+ }, undefined, true, undefined, this),
64
+ /* @__PURE__ */ jsxDEV("div", {
65
+ className: "editorial-panel space-y-5",
66
+ children: [
67
+ /* @__PURE__ */ jsxDEV("div", {
68
+ className: "relative",
69
+ children: [
70
+ /* @__PURE__ */ jsxDEV(Search, {
71
+ className: "absolute top-3.5 left-4 text-muted-foreground",
72
+ size: 18
73
+ }, undefined, false, undefined, this),
74
+ /* @__PURE__ */ jsxDEV("input", {
75
+ type: "text",
76
+ placeholder: "Search scenarios, industries, or tags",
77
+ value: search,
78
+ onChange: (event) => onSearchChange(event.target.value),
79
+ className: "w-full rounded-full border border-border bg-background px-12 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring",
80
+ "aria-label": "Search templates"
81
+ }, undefined, false, undefined, this)
82
+ ]
83
+ }, undefined, true, undefined, this),
84
+ /* @__PURE__ */ jsxDEV("div", {
85
+ className: "flex flex-wrap gap-2",
86
+ children: [
87
+ /* @__PURE__ */ jsxDEV("button", {
88
+ onClick: () => onTagChange(null),
89
+ className: cn("rounded-full px-4 py-2 font-medium text-sm transition-colors", {
90
+ "bg-primary text-primary-foreground": selectedTag === null,
91
+ "border border-border bg-card hover:bg-card/80": selectedTag !== null
92
+ }),
93
+ "aria-pressed": selectedTag === null,
94
+ children: "All"
95
+ }, undefined, false, undefined, this),
96
+ availableTags.map((tag) => /* @__PURE__ */ jsxDEV("button", {
97
+ onClick: () => onTagChange(tag),
98
+ className: cn("rounded-full px-4 py-2 font-medium text-sm transition-colors", {
99
+ "bg-primary text-primary-foreground": selectedTag === tag,
100
+ "border border-border bg-card hover:bg-card/80": selectedTag !== tag
101
+ }),
102
+ "aria-pressed": selectedTag === tag,
103
+ children: tag
104
+ }, tag, false, undefined, this))
105
+ ]
106
+ }, undefined, true, undefined, this)
107
+ ]
108
+ }, undefined, true, undefined, this)
109
+ ]
110
+ }, undefined, true, undefined, this)
111
+ }, undefined, false, undefined, this);
112
+ }
113
+ export {
114
+ TemplatesBrowseControls
115
+ };