@contractspec/bundle.marketing 3.4.2 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,278 @@
1
+ import { createRequire } from "node:module";
2
+ var __require = /* @__PURE__ */ createRequire(import.meta.url);
3
+
4
+ // src/bundles/MarketingBundle.ts
5
+ import { defineModuleBundle } from "@contractspec/lib.surface-runtime/spec";
6
+ var MarketingBundle = defineModuleBundle({
7
+ meta: {
8
+ key: "marketing.pages",
9
+ version: "0.1.0",
10
+ title: "Marketing Pages",
11
+ description: "Adaptive surfaces for landing, template gallery, changelog, and product pages",
12
+ owners: ["team-platform"],
13
+ tags: ["marketing", "landing", "templates", "changelog"],
14
+ stability: "experimental"
15
+ },
16
+ routes: [
17
+ {
18
+ routeId: "landing",
19
+ path: "/",
20
+ defaultSurface: "landing"
21
+ },
22
+ {
23
+ routeId: "product",
24
+ path: "/product",
25
+ defaultSurface: "product"
26
+ },
27
+ {
28
+ routeId: "templates",
29
+ path: "/templates",
30
+ defaultSurface: "template-gallery"
31
+ },
32
+ {
33
+ routeId: "changelog",
34
+ path: "/changelog",
35
+ defaultSurface: "changelog"
36
+ },
37
+ {
38
+ routeId: "contact",
39
+ path: "/contact",
40
+ defaultSurface: "contact"
41
+ }
42
+ ],
43
+ surfaces: {
44
+ landing: {
45
+ surfaceId: "landing",
46
+ kind: "overview",
47
+ title: "Landing Page",
48
+ slots: [
49
+ {
50
+ slotId: "header",
51
+ role: "header",
52
+ accepts: ["action-bar"],
53
+ cardinality: "many"
54
+ },
55
+ {
56
+ slotId: "primary",
57
+ role: "primary",
58
+ accepts: ["entity-section", "custom-widget"],
59
+ cardinality: "many"
60
+ }
61
+ ],
62
+ layouts: [
63
+ {
64
+ layoutId: "single-column",
65
+ title: "Single column",
66
+ root: {
67
+ type: "panel-group",
68
+ direction: "vertical",
69
+ persistKey: "marketing.landing",
70
+ children: [
71
+ { type: "slot", slotId: "header" },
72
+ { type: "slot", slotId: "primary" }
73
+ ]
74
+ }
75
+ }
76
+ ],
77
+ data: [],
78
+ verification: {
79
+ dimensions: {
80
+ guidance: "Can reveal product tour, feature highlights, and contextual CTAs.",
81
+ density: "Can select compact hero or detailed multi-section layouts.",
82
+ dataDepth: "Controls section depth and inline expansion.",
83
+ control: "Shows advanced navigation when allowed.",
84
+ media: "Supports text-first, visual hero, and hybrid modes.",
85
+ pace: "Maps to scroll and transition behavior.",
86
+ narrative: "Can order hero before or after problem/solution sections."
87
+ }
88
+ }
89
+ },
90
+ "template-gallery": {
91
+ surfaceId: "template-gallery",
92
+ kind: "list",
93
+ title: "Template Gallery",
94
+ slots: [
95
+ {
96
+ slotId: "header",
97
+ role: "header",
98
+ accepts: ["action-bar"],
99
+ cardinality: "many"
100
+ },
101
+ {
102
+ slotId: "primary",
103
+ role: "primary",
104
+ accepts: ["entity-section", "table", "custom-widget"],
105
+ cardinality: "many"
106
+ }
107
+ ],
108
+ layouts: [
109
+ {
110
+ layoutId: "gallery",
111
+ title: "Gallery",
112
+ root: {
113
+ type: "panel-group",
114
+ direction: "vertical",
115
+ persistKey: "marketing.templates",
116
+ children: [
117
+ { type: "slot", slotId: "header" },
118
+ { type: "slot", slotId: "primary" }
119
+ ]
120
+ }
121
+ }
122
+ ],
123
+ data: [],
124
+ verification: {
125
+ dimensions: {
126
+ guidance: "Can reveal template descriptions, filters, and preview hints.",
127
+ density: "Can select grid density (compact, standard, detailed cards).",
128
+ dataDepth: "Controls template metadata and preview depth.",
129
+ control: "Shows filters and sort when allowed.",
130
+ media: "Supports card grid, list, and preview modes.",
131
+ pace: "Maps to modal and transition behavior.",
132
+ narrative: "Can order featured templates before or after full list."
133
+ }
134
+ }
135
+ },
136
+ changelog: {
137
+ surfaceId: "changelog",
138
+ kind: "timeline",
139
+ title: "Changelog",
140
+ slots: [
141
+ {
142
+ slotId: "header",
143
+ role: "header",
144
+ accepts: ["action-bar"],
145
+ cardinality: "many"
146
+ },
147
+ {
148
+ slotId: "primary",
149
+ role: "primary",
150
+ accepts: ["entity-section", "timeline", "custom-widget"],
151
+ cardinality: "many"
152
+ }
153
+ ],
154
+ layouts: [
155
+ {
156
+ layoutId: "timeline",
157
+ title: "Timeline",
158
+ root: {
159
+ type: "panel-group",
160
+ direction: "vertical",
161
+ persistKey: "marketing.changelog",
162
+ children: [
163
+ { type: "slot", slotId: "header" },
164
+ { type: "slot", slotId: "primary" }
165
+ ]
166
+ }
167
+ }
168
+ ],
169
+ data: [],
170
+ verification: {
171
+ dimensions: {
172
+ guidance: "Can reveal version notes and migration hints.",
173
+ density: "Can select compact or detailed changelog entries.",
174
+ dataDepth: "Controls entry expansion and diff visibility.",
175
+ control: "Shows filters and version navigation when allowed.",
176
+ media: "Supports text-first and code-highlight modes.",
177
+ pace: "Maps to scroll and expand behavior.",
178
+ narrative: "Can order newest-first or oldest-first chronology."
179
+ }
180
+ }
181
+ },
182
+ product: {
183
+ surfaceId: "product",
184
+ kind: "overview",
185
+ title: "Product Page",
186
+ slots: [
187
+ {
188
+ slotId: "header",
189
+ role: "header",
190
+ accepts: ["action-bar"],
191
+ cardinality: "many"
192
+ },
193
+ {
194
+ slotId: "primary",
195
+ role: "primary",
196
+ accepts: ["entity-section", "custom-widget"],
197
+ cardinality: "many"
198
+ }
199
+ ],
200
+ layouts: [
201
+ {
202
+ layoutId: "product-layout",
203
+ title: "Product",
204
+ root: {
205
+ type: "panel-group",
206
+ direction: "vertical",
207
+ persistKey: "marketing.product",
208
+ children: [
209
+ { type: "slot", slotId: "header" },
210
+ { type: "slot", slotId: "primary" }
211
+ ]
212
+ }
213
+ }
214
+ ],
215
+ data: [],
216
+ verification: {
217
+ dimensions: {
218
+ guidance: "Can reveal product features and comparison hints.",
219
+ density: "Can select compact or detailed product sections.",
220
+ dataDepth: "Controls feature depth and comparison tables.",
221
+ control: "Shows pricing and plan details when allowed.",
222
+ media: "Supports text-first and visual feature modes.",
223
+ pace: "Maps to section transitions.",
224
+ narrative: "Can order value prop before or after feature details."
225
+ }
226
+ }
227
+ },
228
+ contact: {
229
+ surfaceId: "contact",
230
+ kind: "detail",
231
+ title: "Contact",
232
+ slots: [
233
+ {
234
+ slotId: "header",
235
+ role: "header",
236
+ accepts: ["action-bar"],
237
+ cardinality: "many"
238
+ },
239
+ {
240
+ slotId: "primary",
241
+ role: "primary",
242
+ accepts: ["form", "entity-section", "custom-widget"],
243
+ cardinality: "many"
244
+ }
245
+ ],
246
+ layouts: [
247
+ {
248
+ layoutId: "contact-layout",
249
+ title: "Contact",
250
+ root: {
251
+ type: "panel-group",
252
+ direction: "vertical",
253
+ persistKey: "marketing.contact",
254
+ children: [
255
+ { type: "slot", slotId: "header" },
256
+ { type: "slot", slotId: "primary" }
257
+ ]
258
+ }
259
+ }
260
+ ],
261
+ data: [],
262
+ verification: {
263
+ dimensions: {
264
+ guidance: "Can reveal form hints and validation help.",
265
+ density: "Can select compact or detailed form layout.",
266
+ dataDepth: "Controls field visibility and validation depth.",
267
+ control: "Shows additional contact options when allowed.",
268
+ media: "Supports text-first form and hybrid modes.",
269
+ pace: "Maps to validation and submit feedback.",
270
+ narrative: "Can order form before or after contact info."
271
+ }
272
+ }
273
+ }
274
+ }
275
+ });
276
+ export {
277
+ MarketingBundle
278
+ };
@@ -0,0 +1,278 @@
1
+ import { createRequire } from "node:module";
2
+ var __require = /* @__PURE__ */ createRequire(import.meta.url);
3
+
4
+ // src/bundles/MarketingBundle.ts
5
+ import { defineModuleBundle } from "@contractspec/lib.surface-runtime/spec";
6
+ var MarketingBundle = defineModuleBundle({
7
+ meta: {
8
+ key: "marketing.pages",
9
+ version: "0.1.0",
10
+ title: "Marketing Pages",
11
+ description: "Adaptive surfaces for landing, template gallery, changelog, and product pages",
12
+ owners: ["team-platform"],
13
+ tags: ["marketing", "landing", "templates", "changelog"],
14
+ stability: "experimental"
15
+ },
16
+ routes: [
17
+ {
18
+ routeId: "landing",
19
+ path: "/",
20
+ defaultSurface: "landing"
21
+ },
22
+ {
23
+ routeId: "product",
24
+ path: "/product",
25
+ defaultSurface: "product"
26
+ },
27
+ {
28
+ routeId: "templates",
29
+ path: "/templates",
30
+ defaultSurface: "template-gallery"
31
+ },
32
+ {
33
+ routeId: "changelog",
34
+ path: "/changelog",
35
+ defaultSurface: "changelog"
36
+ },
37
+ {
38
+ routeId: "contact",
39
+ path: "/contact",
40
+ defaultSurface: "contact"
41
+ }
42
+ ],
43
+ surfaces: {
44
+ landing: {
45
+ surfaceId: "landing",
46
+ kind: "overview",
47
+ title: "Landing Page",
48
+ slots: [
49
+ {
50
+ slotId: "header",
51
+ role: "header",
52
+ accepts: ["action-bar"],
53
+ cardinality: "many"
54
+ },
55
+ {
56
+ slotId: "primary",
57
+ role: "primary",
58
+ accepts: ["entity-section", "custom-widget"],
59
+ cardinality: "many"
60
+ }
61
+ ],
62
+ layouts: [
63
+ {
64
+ layoutId: "single-column",
65
+ title: "Single column",
66
+ root: {
67
+ type: "panel-group",
68
+ direction: "vertical",
69
+ persistKey: "marketing.landing",
70
+ children: [
71
+ { type: "slot", slotId: "header" },
72
+ { type: "slot", slotId: "primary" }
73
+ ]
74
+ }
75
+ }
76
+ ],
77
+ data: [],
78
+ verification: {
79
+ dimensions: {
80
+ guidance: "Can reveal product tour, feature highlights, and contextual CTAs.",
81
+ density: "Can select compact hero or detailed multi-section layouts.",
82
+ dataDepth: "Controls section depth and inline expansion.",
83
+ control: "Shows advanced navigation when allowed.",
84
+ media: "Supports text-first, visual hero, and hybrid modes.",
85
+ pace: "Maps to scroll and transition behavior.",
86
+ narrative: "Can order hero before or after problem/solution sections."
87
+ }
88
+ }
89
+ },
90
+ "template-gallery": {
91
+ surfaceId: "template-gallery",
92
+ kind: "list",
93
+ title: "Template Gallery",
94
+ slots: [
95
+ {
96
+ slotId: "header",
97
+ role: "header",
98
+ accepts: ["action-bar"],
99
+ cardinality: "many"
100
+ },
101
+ {
102
+ slotId: "primary",
103
+ role: "primary",
104
+ accepts: ["entity-section", "table", "custom-widget"],
105
+ cardinality: "many"
106
+ }
107
+ ],
108
+ layouts: [
109
+ {
110
+ layoutId: "gallery",
111
+ title: "Gallery",
112
+ root: {
113
+ type: "panel-group",
114
+ direction: "vertical",
115
+ persistKey: "marketing.templates",
116
+ children: [
117
+ { type: "slot", slotId: "header" },
118
+ { type: "slot", slotId: "primary" }
119
+ ]
120
+ }
121
+ }
122
+ ],
123
+ data: [],
124
+ verification: {
125
+ dimensions: {
126
+ guidance: "Can reveal template descriptions, filters, and preview hints.",
127
+ density: "Can select grid density (compact, standard, detailed cards).",
128
+ dataDepth: "Controls template metadata and preview depth.",
129
+ control: "Shows filters and sort when allowed.",
130
+ media: "Supports card grid, list, and preview modes.",
131
+ pace: "Maps to modal and transition behavior.",
132
+ narrative: "Can order featured templates before or after full list."
133
+ }
134
+ }
135
+ },
136
+ changelog: {
137
+ surfaceId: "changelog",
138
+ kind: "timeline",
139
+ title: "Changelog",
140
+ slots: [
141
+ {
142
+ slotId: "header",
143
+ role: "header",
144
+ accepts: ["action-bar"],
145
+ cardinality: "many"
146
+ },
147
+ {
148
+ slotId: "primary",
149
+ role: "primary",
150
+ accepts: ["entity-section", "timeline", "custom-widget"],
151
+ cardinality: "many"
152
+ }
153
+ ],
154
+ layouts: [
155
+ {
156
+ layoutId: "timeline",
157
+ title: "Timeline",
158
+ root: {
159
+ type: "panel-group",
160
+ direction: "vertical",
161
+ persistKey: "marketing.changelog",
162
+ children: [
163
+ { type: "slot", slotId: "header" },
164
+ { type: "slot", slotId: "primary" }
165
+ ]
166
+ }
167
+ }
168
+ ],
169
+ data: [],
170
+ verification: {
171
+ dimensions: {
172
+ guidance: "Can reveal version notes and migration hints.",
173
+ density: "Can select compact or detailed changelog entries.",
174
+ dataDepth: "Controls entry expansion and diff visibility.",
175
+ control: "Shows filters and version navigation when allowed.",
176
+ media: "Supports text-first and code-highlight modes.",
177
+ pace: "Maps to scroll and expand behavior.",
178
+ narrative: "Can order newest-first or oldest-first chronology."
179
+ }
180
+ }
181
+ },
182
+ product: {
183
+ surfaceId: "product",
184
+ kind: "overview",
185
+ title: "Product Page",
186
+ slots: [
187
+ {
188
+ slotId: "header",
189
+ role: "header",
190
+ accepts: ["action-bar"],
191
+ cardinality: "many"
192
+ },
193
+ {
194
+ slotId: "primary",
195
+ role: "primary",
196
+ accepts: ["entity-section", "custom-widget"],
197
+ cardinality: "many"
198
+ }
199
+ ],
200
+ layouts: [
201
+ {
202
+ layoutId: "product-layout",
203
+ title: "Product",
204
+ root: {
205
+ type: "panel-group",
206
+ direction: "vertical",
207
+ persistKey: "marketing.product",
208
+ children: [
209
+ { type: "slot", slotId: "header" },
210
+ { type: "slot", slotId: "primary" }
211
+ ]
212
+ }
213
+ }
214
+ ],
215
+ data: [],
216
+ verification: {
217
+ dimensions: {
218
+ guidance: "Can reveal product features and comparison hints.",
219
+ density: "Can select compact or detailed product sections.",
220
+ dataDepth: "Controls feature depth and comparison tables.",
221
+ control: "Shows pricing and plan details when allowed.",
222
+ media: "Supports text-first and visual feature modes.",
223
+ pace: "Maps to section transitions.",
224
+ narrative: "Can order value prop before or after feature details."
225
+ }
226
+ }
227
+ },
228
+ contact: {
229
+ surfaceId: "contact",
230
+ kind: "detail",
231
+ title: "Contact",
232
+ slots: [
233
+ {
234
+ slotId: "header",
235
+ role: "header",
236
+ accepts: ["action-bar"],
237
+ cardinality: "many"
238
+ },
239
+ {
240
+ slotId: "primary",
241
+ role: "primary",
242
+ accepts: ["form", "entity-section", "custom-widget"],
243
+ cardinality: "many"
244
+ }
245
+ ],
246
+ layouts: [
247
+ {
248
+ layoutId: "contact-layout",
249
+ title: "Contact",
250
+ root: {
251
+ type: "panel-group",
252
+ direction: "vertical",
253
+ persistKey: "marketing.contact",
254
+ children: [
255
+ { type: "slot", slotId: "header" },
256
+ { type: "slot", slotId: "primary" }
257
+ ]
258
+ }
259
+ }
260
+ ],
261
+ data: [],
262
+ verification: {
263
+ dimensions: {
264
+ guidance: "Can reveal form hints and validation help.",
265
+ density: "Can select compact or detailed form layout.",
266
+ dataDepth: "Controls field visibility and validation depth.",
267
+ control: "Shows additional contact options when allowed.",
268
+ media: "Supports text-first form and hybrid modes.",
269
+ pace: "Maps to validation and submit feedback.",
270
+ narrative: "Can order form before or after contact info."
271
+ }
272
+ }
273
+ }
274
+ }
275
+ });
276
+ export {
277
+ MarketingBundle
278
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contractspec/bundle.marketing",
3
- "version": "3.4.2",
3
+ "version": "3.5.0",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "clean": "rm -rf dist",
@@ -24,6 +24,27 @@
24
24
  "browser": "./dist/browser/index.js",
25
25
  "default": "./dist/index.js"
26
26
  },
27
+ "./bundles": {
28
+ "types": "./dist/bundles/index.d.ts",
29
+ "bun": "./dist/bundles/index.js",
30
+ "node": "./dist/node/bundles/index.js",
31
+ "browser": "./dist/browser/bundles/index.js",
32
+ "default": "./dist/bundles/index.js"
33
+ },
34
+ "./bundles/index": {
35
+ "types": "./dist/bundles/index.d.ts",
36
+ "bun": "./dist/bundles/index.js",
37
+ "node": "./dist/node/bundles/index.js",
38
+ "browser": "./dist/browser/bundles/index.js",
39
+ "default": "./dist/bundles/index.js"
40
+ },
41
+ "./bundles/MarketingBundle": {
42
+ "types": "./dist/bundles/MarketingBundle.d.ts",
43
+ "bun": "./dist/bundles/MarketingBundle.js",
44
+ "node": "./dist/node/bundles/MarketingBundle.js",
45
+ "browser": "./dist/browser/bundles/MarketingBundle.js",
46
+ "default": "./dist/bundles/MarketingBundle.js"
47
+ },
27
48
  "./components/marketing": {
28
49
  "types": "./dist/components/marketing/index.d.ts",
29
50
  "bun": "./dist/components/marketing/index.js",
@@ -342,31 +363,32 @@
342
363
  },
343
364
  "types": "./dist/index.d.ts",
344
365
  "dependencies": {
345
- "@contractspec/bundle.library": "3.4.2",
346
- "@contractspec/example.agent-console": "3.4.2",
347
- "@contractspec/example.analytics-dashboard": "3.4.2",
348
- "@contractspec/example.crm-pipeline": "3.4.2",
349
- "@contractspec/example.integration-hub": "3.4.2",
350
- "@contractspec/example.marketplace": "3.4.2",
351
- "@contractspec/example.saas-boilerplate": "3.4.2",
352
- "@contractspec/example.workflow-system": "3.4.2",
353
- "@contractspec/lib.contracts-spec": "3.4.2",
354
- "@contractspec/lib.contracts-runtime-client-react": "3.4.2",
355
- "@contractspec/lib.design-system": "3.4.2",
356
- "@contractspec/lib.email": "3.4.2",
357
- "@contractspec/lib.example-shared-ui": "3.4.2",
358
- "@contractspec/lib.logger": "3.4.2",
359
- "@contractspec/lib.runtime-sandbox": "2.4.2",
360
- "@contractspec/lib.ui-kit-core": "3.4.2",
361
- "@contractspec/lib.ui-kit-web": "3.4.2",
362
- "@contractspec/lib.ui-link": "3.4.2",
363
- "@contractspec/module.examples": "3.4.2",
366
+ "@contractspec/bundle.library": "3.5.0",
367
+ "@contractspec/lib.surface-runtime": "0.3.0",
368
+ "@contractspec/example.agent-console": "3.5.0",
369
+ "@contractspec/example.analytics-dashboard": "3.5.0",
370
+ "@contractspec/example.crm-pipeline": "3.5.0",
371
+ "@contractspec/example.integration-hub": "3.5.0",
372
+ "@contractspec/example.marketplace": "3.5.0",
373
+ "@contractspec/example.saas-boilerplate": "3.5.0",
374
+ "@contractspec/example.workflow-system": "3.5.0",
375
+ "@contractspec/lib.contracts-spec": "3.5.0",
376
+ "@contractspec/lib.contracts-runtime-client-react": "3.5.0",
377
+ "@contractspec/lib.design-system": "3.5.0",
378
+ "@contractspec/lib.email": "3.5.0",
379
+ "@contractspec/lib.example-shared-ui": "4.0.0",
380
+ "@contractspec/lib.logger": "3.5.0",
381
+ "@contractspec/lib.runtime-sandbox": "2.5.0",
382
+ "@contractspec/lib.ui-kit-core": "3.5.0",
383
+ "@contractspec/lib.ui-kit-web": "3.5.0",
384
+ "@contractspec/lib.ui-link": "3.5.0",
385
+ "@contractspec/module.examples": "3.5.0",
364
386
  "@electric-sql/pglite": "^0.3.14",
365
387
  "@hookform/resolvers": "^5.2.2",
366
388
  "@scaleway/sdk": "^3.3.1",
367
389
  "@scaleway/sdk-client": "^2.2.1",
368
390
  "class-variance-authority": "^0.7.1",
369
- "framer-motion": "^12.35.0",
391
+ "framer-motion": "^12.35.1",
370
392
  "lucide-react": "^0.577.0",
371
393
  "next": "16.1.6",
372
394
  "react": "19.2.4",
@@ -375,9 +397,9 @@
375
397
  },
376
398
  "devDependencies": {
377
399
  "@types/react": "~19.2.14",
378
- "@contractspec/tool.typescript": "3.4.2",
400
+ "@contractspec/tool.typescript": "3.5.0",
379
401
  "typescript": "^5.9.3",
380
- "@contractspec/tool.bun": "3.4.2"
402
+ "@contractspec/tool.bun": "3.5.0"
381
403
  },
382
404
  "publishConfig": {
383
405
  "access": "public",
@@ -390,6 +412,27 @@
390
412
  "browser": "./dist/browser/index.js",
391
413
  "default": "./dist/index.js"
392
414
  },
415
+ "./bundles": {
416
+ "types": "./dist/bundles/index.d.ts",
417
+ "bun": "./dist/bundles/index.js",
418
+ "node": "./dist/node/bundles/index.js",
419
+ "browser": "./dist/browser/bundles/index.js",
420
+ "default": "./dist/bundles/index.js"
421
+ },
422
+ "./bundles/index": {
423
+ "types": "./dist/bundles/index.d.ts",
424
+ "bun": "./dist/bundles/index.js",
425
+ "node": "./dist/node/bundles/index.js",
426
+ "browser": "./dist/browser/bundles/index.js",
427
+ "default": "./dist/bundles/index.js"
428
+ },
429
+ "./bundles/MarketingBundle": {
430
+ "types": "./dist/bundles/MarketingBundle.d.ts",
431
+ "bun": "./dist/bundles/MarketingBundle.js",
432
+ "node": "./dist/node/bundles/MarketingBundle.js",
433
+ "browser": "./dist/browser/bundles/MarketingBundle.js",
434
+ "default": "./dist/bundles/MarketingBundle.js"
435
+ },
393
436
  "./components/marketing": {
394
437
  "types": "./dist/components/marketing/index.d.ts",
395
438
  "bun": "./dist/components/marketing/index.js",