@samva/markup 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/AGENTS.md +104 -37
  2. package/README.md +188 -52
  3. package/dist/assets-C5duwTya.d.ts +40 -0
  4. package/dist/brand-B-0bN_Ir.d.ts +88 -0
  5. package/dist/{render-aaJBnsXK.js → cascade-t6kxlgEI.js} +130 -160
  6. package/dist/channel-edit.d.ts +121 -0
  7. package/dist/channel-edit.js +609 -0
  8. package/dist/channel-specs-B6M_HlaV.js +29 -0
  9. package/dist/channel-specs-C2feJwuP.d.ts +13 -0
  10. package/dist/compatibility-DbISoFIq.js +589 -0
  11. package/dist/compiler.d.ts +19 -249
  12. package/dist/compiler.js +10 -1408
  13. package/dist/{css-COcFOT1y.d.ts → css-BVQKICKC.d.ts} +30 -4
  14. package/dist/diagnostic-codes.d.ts +403 -0
  15. package/dist/diagnostic-codes.js +399 -0
  16. package/dist/{diagnostics-BMYtBCQk.d.ts → diagnostics-B-Gym34R.d.ts} +8 -4
  17. package/dist/diagnostics.d.ts +31 -2
  18. package/dist/diagnostics.js +1 -19
  19. package/dist/{elements-BzjjnoCS.d.ts → elements-cqldpaJt.d.ts} +3 -3
  20. package/dist/email/assets.d.ts +2 -0
  21. package/dist/email/assets.js +63 -0
  22. package/dist/email/brand-footer.d.ts +34 -0
  23. package/dist/email/brand-footer.js +63 -0
  24. package/dist/email/brand.d.ts +2 -0
  25. package/dist/email/brand.js +148 -0
  26. package/dist/email/components.d.ts +21 -10
  27. package/dist/email/components.js +46 -11
  28. package/dist/email/diagnostics.d.ts +2 -2
  29. package/dist/email/diagnostics.js +2 -1
  30. package/dist/email/elements.d.ts +1 -1
  31. package/dist/email/html.d.ts +2 -42
  32. package/dist/email/html.js +56 -2
  33. package/dist/email/jsx-dev-runtime.d.ts +2 -2
  34. package/dist/email/jsx-runtime.d.ts +1 -1
  35. package/dist/email/render.d.ts +10 -13
  36. package/dist/email/render.js +163 -6
  37. package/dist/email/text.d.ts +1 -1
  38. package/dist/fmt.d.ts +32 -0
  39. package/dist/fmt.js +174 -0
  40. package/dist/html-BJepOwZ4.d.ts +56 -0
  41. package/dist/index.d.ts +2 -0
  42. package/dist/index.js +2 -0
  43. package/dist/ir-aaqNE987.d.ts +252 -0
  44. package/dist/ir.d.ts +2 -0
  45. package/dist/ir.js +7 -0
  46. package/dist/preview-Ekdg1dXG.d.ts +100 -0
  47. package/dist/preview.d.ts +2 -0
  48. package/dist/preview.js +160 -0
  49. package/dist/profile-BH-OtdDA.js +3670 -0
  50. package/dist/render-ir.d.ts +19 -0
  51. package/dist/render-ir.js +826 -0
  52. package/dist/sms-segments.d.ts +13 -2
  53. package/dist/sms.d.ts +16 -0
  54. package/dist/sms.js +12 -0
  55. package/dist/{email/source-edit.d.ts → source-edit.d.ts} +55 -6
  56. package/dist/source-edit.js +343 -0
  57. package/dist/source-locations-C8wCsiAy.d.ts +23 -0
  58. package/dist/source-locations.d.ts +2 -2
  59. package/dist/source-locations.js +3 -89
  60. package/dist/static.d.ts +57 -0
  61. package/dist/static.js +69 -0
  62. package/dist/tailwind-CMYpZf1v.js +614 -0
  63. package/dist/template-_QE_rQND.d.ts +65 -0
  64. package/dist/template.d.ts +2 -2
  65. package/dist/template.js +15 -10
  66. package/dist/theme-css-hFqcPSar.js +587 -0
  67. package/dist/theme-css.d.ts +57 -16
  68. package/dist/theme-css.js +2 -509
  69. package/dist/theme-imports-lvBw3AD1.js +109 -0
  70. package/dist/transform-Ct2OMkFN.d.ts +153 -0
  71. package/dist/unsubscribe-link-CoesnQDU.js +26 -0
  72. package/dist/whatsapp.d.ts +57 -0
  73. package/dist/whatsapp.js +22 -0
  74. package/generated/contract.json +1782 -0
  75. package/generated/reference.md +353 -0
  76. package/package.json +56 -154
  77. package/samva-brand.d.ts +14 -0
  78. package/skills/sml/SKILL.md +123 -0
  79. package/dist/ast-BrDtApwS.d.ts +0 -107
  80. package/dist/ast.d.ts +0 -2
  81. package/dist/ast.js +0 -124
  82. package/dist/candidate.d.ts +0 -29
  83. package/dist/candidate.js +0 -88
  84. package/dist/catalog-60eaYC7b.d.ts +0 -356
  85. package/dist/checks-DBweSIPN.js +0 -58954
  86. package/dist/checks.d.ts +0 -33
  87. package/dist/checks.js +0 -2
  88. package/dist/classes.d.ts +0 -27
  89. package/dist/classes.js +0 -184
  90. package/dist/compile-sms.d.ts +0 -28
  91. package/dist/compile-sms.js +0 -44
  92. package/dist/compile-whatsapp.d.ts +0 -56
  93. package/dist/compile-whatsapp.js +0 -186
  94. package/dist/compile.d.ts +0 -18
  95. package/dist/compile.js +0 -29
  96. package/dist/components.d.ts +0 -289
  97. package/dist/components.js +0 -106
  98. package/dist/conditionals.d.ts +0 -10
  99. package/dist/conditionals.js +0 -74
  100. package/dist/corpus-BjYMqOoY.d.ts +0 -106
  101. package/dist/diagnostics-OcQKQYSY.d.ts +0 -49
  102. package/dist/email/selection.d.ts +0 -91
  103. package/dist/email/selection.js +0 -91
  104. package/dist/email/source-edit.js +0 -185
  105. package/dist/email/stylesheets.d.ts +0 -15
  106. package/dist/email/stylesheets.js +0 -45
  107. package/dist/emit.d.ts +0 -51
  108. package/dist/emit.js +0 -151
  109. package/dist/footer.d.ts +0 -66
  110. package/dist/footer.js +0 -93
  111. package/dist/interpolate.d.ts +0 -24
  112. package/dist/interpolate.js +0 -43
  113. package/dist/jsx-dev-runtime.d.ts +0 -11
  114. package/dist/jsx-dev-runtime.js +0 -15
  115. package/dist/jsx-runtime-I-1nCtl2.d.ts +0 -57
  116. package/dist/jsx-runtime.d.ts +0 -2
  117. package/dist/jsx-runtime.js +0 -121
  118. package/dist/lexer.d.ts +0 -60
  119. package/dist/lexer.js +0 -281
  120. package/dist/model.d.ts +0 -24
  121. package/dist/model.js +0 -77
  122. package/dist/ops-2aiiYO7m.js +0 -630
  123. package/dist/ops.d.ts +0 -114
  124. package/dist/ops.js +0 -2
  125. package/dist/parser-t29cHLVL.d.ts +0 -396
  126. package/dist/parser.d.ts +0 -2
  127. package/dist/parser.js +0 -859
  128. package/dist/predicate-BI6uRRM-.js +0 -549
  129. package/dist/predicate-M-05Nd7R.d.ts +0 -56
  130. package/dist/predicate.d.ts +0 -2
  131. package/dist/predicate.js +0 -2
  132. package/dist/presets/category-mapping.d.ts +0 -13
  133. package/dist/presets/category-mapping.js +0 -49
  134. package/dist/presets/corpus.d.ts +0 -2
  135. package/dist/presets/corpus.js +0 -194
  136. package/dist/presets/public-gallery.d.ts +0 -266
  137. package/dist/presets/public-gallery.js +0 -916
  138. package/dist/presets/public-handoff.d.ts +0 -164
  139. package/dist/presets/public-handoff.js +0 -361
  140. package/dist/presets/public-preview-artifacts.d.ts +0 -43
  141. package/dist/presets/public-preview-artifacts.js +0 -104
  142. package/dist/presets/public-preview.d.ts +0 -61
  143. package/dist/presets/public-preview.js +0 -83
  144. package/dist/presets/showcase.d.ts +0 -2
  145. package/dist/presets/showcase.js +0 -627
  146. package/dist/presets/sources.d.ts +0 -38
  147. package/dist/presets/sources.js +0 -6083
  148. package/dist/presets.d.ts +0 -2
  149. package/dist/presets.js +0 -881
  150. package/dist/printer.d.ts +0 -6
  151. package/dist/printer.js +0 -122
  152. package/dist/registry.d.ts +0 -42
  153. package/dist/registry.js +0 -646
  154. package/dist/render-template.d.ts +0 -45
  155. package/dist/render-template.js +0 -76
  156. package/dist/showcase-DGZAWn4Z.d.ts +0 -456
  157. package/dist/sms-segments-y4FpPilJ.d.ts +0 -13
  158. package/dist/source-locations-DrCM82Ym.d.ts +0 -67
  159. package/dist/template-DWftqh4x.d.ts +0 -60
  160. package/dist/theme-6ApjjiBo.d.ts +0 -116
  161. package/dist/theme.d.ts +0 -2
  162. package/dist/theme.js +0 -118
  163. package/dist/tokens.d.ts +0 -6
  164. package/dist/tokens.js +0 -417
  165. package/dist/tsx-source-instrumentation.d.ts +0 -30
  166. package/dist/tsx-source-instrumentation.js +0 -115
  167. package/dist/tsx-tracer.d.ts +0 -112
  168. package/dist/tsx-tracer.js +0 -985
  169. package/dist/variables-J_L3qxRa.d.ts +0 -77
  170. package/dist/variables.d.ts +0 -2
  171. package/dist/variables.js +0 -141
  172. package/dist/version-BITr58kk.js +0 -96
  173. package/generated/sml-agent-contract.json +0 -709
  174. package/generated/sml-email-agent-contract.json +0 -615
  175. package/generated/sml-email-language-reference.md +0 -94
  176. package/generated/sml-language-reference.md +0 -195
@@ -1,627 +0,0 @@
1
- //#region presets/showcase.ts
2
- /** Repository-relative root of the showcase project, used to build canonical source paths. */
3
- const SHOWCASE_ROOT = "examples/email-showcase";
4
- const showcaseProjects = [
5
- {
6
- id: "data-sharing-review",
7
- entryPath: "emails/data-sharing-review.tsx",
8
- files: [
9
- "emails/data-sharing-review.css",
10
- "emails/assets/data-sharing-review-connection.png",
11
- "emails/assets/data-sharing-review-wordmark.png"
12
- ],
13
- provenance: { kind: "owned" },
14
- category: "transactional",
15
- gallerySlug: "data-sharing-review",
16
- recordedAt: "2026-09-08T00:00:00.000Z"
17
- },
18
- {
19
- id: "editorial-newsletter",
20
- entryPath: "emails/editorial-newsletter.tsx",
21
- files: [
22
- "emails/editorial-newsletter.css",
23
- "emails/assets/editorial-newsletter-author.png",
24
- "emails/assets/editorial-newsletter-hero.png",
25
- "emails/assets/editorial-newsletter-sponsor.png",
26
- "emails/assets/editorial-newsletter-wordmark.png"
27
- ],
28
- provenance: { kind: "owned" },
29
- category: "digest",
30
- gallerySlug: "editorial-newsletter",
31
- recordedAt: "2026-09-08T00:00:00.000Z"
32
- },
33
- {
34
- id: "email-verification",
35
- entryPath: "emails/email-verification.tsx",
36
- files: [
37
- "emails/email-verification.css",
38
- "emails/assets/email-verification-badge.png",
39
- "emails/assets/email-verification-wordmark.png"
40
- ],
41
- provenance: { kind: "owned" },
42
- category: "transactional",
43
- gallerySlug: "email-verification",
44
- recordedAt: "2026-09-08T00:00:00.000Z"
45
- },
46
- {
47
- id: "events-roundup",
48
- entryPath: "emails/events-roundup.tsx",
49
- files: [
50
- "emails/events-roundup.css",
51
- "emails/assets/events-roundup-spotlight.png",
52
- "emails/assets/events-roundup-tile-five.png",
53
- "emails/assets/events-roundup-tile-four.png",
54
- "emails/assets/events-roundup-tile-one.png",
55
- "emails/assets/events-roundup-tile-six.png",
56
- "emails/assets/events-roundup-tile-three.png",
57
- "emails/assets/events-roundup-tile-two.png",
58
- "emails/assets/events-roundup-wordmark.png"
59
- ],
60
- provenance: { kind: "owned" },
61
- category: "digest",
62
- gallerySlug: "events-roundup",
63
- recordedAt: "2026-09-08T00:00:00.000Z"
64
- },
65
- {
66
- id: "feature-release-roundup",
67
- entryPath: "emails/feature-release-roundup.tsx",
68
- files: [
69
- "emails/feature-release-roundup.css",
70
- "emails/assets/feature-release-roundup-release-activity.png",
71
- "emails/assets/feature-release-roundup-release-branching.png",
72
- "emails/assets/feature-release-roundup-release-keys.png",
73
- "emails/assets/feature-release-roundup-release-nodes.png",
74
- "emails/assets/feature-release-roundup-release-regions.png",
75
- "emails/assets/feature-release-roundup-wordmark.png"
76
- ],
77
- provenance: { kind: "owned" },
78
- category: "marketing",
79
- gallerySlug: "feature-release-roundup",
80
- recordedAt: "2026-09-08T00:00:00.000Z"
81
- },
82
- {
83
- id: "feedback-request",
84
- entryPath: "emails/feedback-request.tsx",
85
- files: [
86
- "emails/feedback-request.css",
87
- "emails/assets/feedback-request-avatar.png",
88
- "emails/assets/feedback-request-wordmark.png"
89
- ],
90
- provenance: { kind: "owned" },
91
- category: "lifecycle",
92
- gallerySlug: "feedback-request",
93
- recordedAt: "2026-09-08T00:00:00.000Z"
94
- },
95
- {
96
- id: "flash-getaway-offer",
97
- entryPath: "emails/flash-getaway-offer.tsx",
98
- files: [
99
- "emails/flash-getaway-offer.css",
100
- "emails/assets/flash-getaway-offer-banner.png",
101
- "emails/assets/flash-getaway-offer-city-harbour.png",
102
- "emails/assets/flash-getaway-offer-desert-canyon.png",
103
- "emails/assets/flash-getaway-offer-reef-bay.png",
104
- "emails/assets/flash-getaway-offer-snow-ridge.png",
105
- "emails/assets/flash-getaway-offer-wordmark.png"
106
- ],
107
- provenance: { kind: "owned" },
108
- category: "marketing",
109
- gallerySlug: "flash-getaway-offer",
110
- recordedAt: "2026-09-08T00:00:00.000Z"
111
- },
112
- {
113
- id: "industry-news-digest",
114
- entryPath: "emails/industry-news-digest.tsx",
115
- files: [
116
- "emails/industry-news-digest.css",
117
- "emails/assets/industry-news-digest-lead.png",
118
- "emails/assets/industry-news-digest-sponsor.png",
119
- "emails/assets/industry-news-digest-wordmark.png"
120
- ],
121
- provenance: { kind: "owned" },
122
- category: "digest",
123
- gallerySlug: "industry-news-digest",
124
- recordedAt: "2026-09-08T00:00:00.000Z"
125
- },
126
- {
127
- id: "rewards-milestone",
128
- entryPath: "emails/rewards-milestone.tsx",
129
- files: [
130
- "emails/assets/rewards-milestone-banner.png",
131
- "emails/assets/rewards-milestone-tier-amber.png",
132
- "emails/assets/rewards-milestone-tier-brass.png",
133
- "emails/assets/rewards-milestone-tier-copper.png",
134
- "emails/assets/rewards-milestone-tier-slate.png",
135
- "emails/assets/rewards-milestone-wordmark.png",
136
- "emails/rewards-milestone.css"
137
- ],
138
- provenance: { kind: "owned" },
139
- category: "marketing",
140
- gallerySlug: "rewards-milestone",
141
- recordedAt: "2026-09-08T00:00:00.000Z"
142
- },
143
- {
144
- id: "member-referral-offer",
145
- entryPath: "emails/member-referral-offer.tsx",
146
- files: [
147
- "emails/assets/member-referral-offer-hero.png",
148
- "emails/assets/member-referral-offer-step-earn.png",
149
- "emails/assets/member-referral-offer-step-join.png",
150
- "emails/assets/member-referral-offer-step-share.png",
151
- "emails/assets/member-referral-offer-wordmark.png",
152
- "emails/member-referral-offer.css"
153
- ],
154
- provenance: { kind: "owned" },
155
- category: "marketing",
156
- gallerySlug: "member-referral-offer",
157
- recordedAt: "2026-09-08T00:00:00.000Z"
158
- },
159
- {
160
- id: "catalog-sale-newsletter",
161
- entryPath: "emails/catalog-sale-newsletter.tsx",
162
- files: [
163
- "emails/assets/catalog-sale-newsletter-banner.png",
164
- "emails/assets/catalog-sale-newsletter-item-blanket.png",
165
- "emails/assets/catalog-sale-newsletter-item-crate.png",
166
- "emails/assets/catalog-sale-newsletter-item-kettle.png",
167
- "emails/assets/catalog-sale-newsletter-item-lantern.png",
168
- "emails/assets/catalog-sale-newsletter-wordmark.png",
169
- "emails/catalog-sale-newsletter.css"
170
- ],
171
- provenance: { kind: "owned" },
172
- category: "marketing",
173
- gallerySlug: "catalog-sale-newsletter",
174
- recordedAt: "2026-09-08T00:00:00.000Z"
175
- },
176
- {
177
- id: "event-invite",
178
- entryPath: "emails/event-invite.tsx",
179
- files: [
180
- "emails/assets/event-invite-hero.png",
181
- "emails/assets/event-invite-wordmark.png",
182
- "emails/event-invite.css"
183
- ],
184
- provenance: { kind: "owned" },
185
- category: "marketing",
186
- gallerySlug: "event-invite",
187
- recordedAt: "2026-09-08T00:00:00.000Z"
188
- },
189
- {
190
- id: "limited-time-savings",
191
- entryPath: "emails/limited-time-savings.tsx",
192
- files: [
193
- "emails/assets/limited-time-savings-banner.png",
194
- "emails/assets/limited-time-savings-wordmark.png",
195
- "emails/limited-time-savings.css"
196
- ],
197
- provenance: { kind: "owned" },
198
- category: "marketing",
199
- gallerySlug: "limited-time-savings",
200
- recordedAt: "2026-09-08T00:00:00.000Z"
201
- },
202
- {
203
- id: "membership-promo",
204
- entryPath: "emails/membership-promo.tsx",
205
- files: [
206
- "emails/assets/membership-promo-hero.png",
207
- "emails/assets/membership-promo-tier-cellar.png",
208
- "emails/assets/membership-promo-tier-market.png",
209
- "emails/assets/membership-promo-tier-pantry.png",
210
- "emails/assets/membership-promo-wordmark.png",
211
- "emails/membership-promo.css"
212
- ],
213
- provenance: { kind: "owned" },
214
- category: "marketing",
215
- gallerySlug: "membership-promotion",
216
- recordedAt: "2026-09-08T00:00:00.000Z"
217
- },
218
- {
219
- id: "announcement",
220
- entryPath: "emails/announcement.tsx",
221
- files: [
222
- "emails/announcement.css",
223
- "emails/assets/announcement-hero.png",
224
- "emails/assets/announcement-wordmark.png"
225
- ],
226
- provenance: { kind: "owned" },
227
- category: "marketing",
228
- gallerySlug: "feature-announcement",
229
- recordedAt: "2026-09-08T00:00:00.000Z"
230
- },
231
- {
232
- id: "linear-login-code",
233
- entryPath: "emails/linear-login-code.tsx",
234
- files: [
235
- "emails/linear-login-code.css",
236
- "README.md",
237
- "emails/assets/linear-logo.png"
238
- ],
239
- provenance: {
240
- kind: "brand-recreation",
241
- brand: "Linear",
242
- subject: "login code",
243
- reviewedNote: "Reviewed recreation of Linear's login code email, its canonical project assets, and its brand attribution."
244
- },
245
- category: "transactional",
246
- gallerySlug: "linear-login-code",
247
- recordedAt: "2026-09-08T00:00:00.000Z"
248
- },
249
- {
250
- id: "membership-benefits-promo",
251
- entryPath: "emails/membership-benefits-promo.tsx",
252
- files: [
253
- "emails/membership-benefits-promo.css",
254
- "emails/assets/membership-benefits-promo-icon-concierge.png",
255
- "emails/assets/membership-benefits-promo-icon-lounge.png",
256
- "emails/assets/membership-benefits-promo-icon-shield.png",
257
- "emails/assets/membership-benefits-promo-icon-suitcase.png",
258
- "emails/assets/membership-benefits-promo-icon-table.png",
259
- "emails/assets/membership-benefits-promo-icon-ticket.png",
260
- "emails/assets/membership-benefits-promo-panel.png",
261
- "emails/assets/membership-benefits-promo-wordmark.png"
262
- ],
263
- provenance: { kind: "owned" },
264
- category: "marketing",
265
- gallerySlug: "membership-benefits-promo",
266
- recordedAt: "2026-09-08T00:00:00.000Z"
267
- },
268
- {
269
- id: "notification",
270
- entryPath: "emails/notification.tsx",
271
- files: [
272
- "emails/notification.css",
273
- "emails/assets/notification-avatar-one.png",
274
- "emails/assets/notification-avatar-three.png",
275
- "emails/assets/notification-avatar-two.png",
276
- "emails/assets/notification-wordmark.png"
277
- ],
278
- provenance: { kind: "owned" },
279
- category: "transactional",
280
- gallerySlug: "activity-notification",
281
- recordedAt: "2026-09-08T00:00:00.000Z"
282
- },
283
- {
284
- id: "onboarding-step",
285
- entryPath: "emails/onboarding-step.tsx",
286
- files: [
287
- "emails/onboarding-step.css",
288
- "emails/assets/onboarding-step-illustration.png",
289
- "emails/assets/onboarding-step-wordmark.png"
290
- ],
291
- provenance: { kind: "owned" },
292
- category: "lifecycle",
293
- gallerySlug: "onboarding-step",
294
- recordedAt: "2026-09-08T00:00:00.000Z"
295
- },
296
- {
297
- id: "order-receipt",
298
- entryPath: "emails/order-receipt.tsx",
299
- files: [
300
- "emails/order-receipt.css",
301
- "emails/assets/order-receipt-candles.png",
302
- "emails/assets/order-receipt-mug.png",
303
- "emails/assets/order-receipt-napkins.png",
304
- "emails/assets/order-receipt-throw.png",
305
- "emails/assets/order-receipt-wordmark.png"
306
- ],
307
- provenance: { kind: "owned" },
308
- category: "transactional",
309
- gallerySlug: "order-receipt",
310
- recordedAt: "2026-09-08T00:00:00.000Z"
311
- },
312
- {
313
- id: "otp",
314
- entryPath: "emails/otp.tsx",
315
- files: ["emails/otp.css", "emails/assets/otp-wordmark.png"],
316
- provenance: { kind: "owned" },
317
- category: "transactional",
318
- gallerySlug: "one-time-passcode",
319
- recordedAt: "2026-09-08T00:00:00.000Z"
320
- },
321
- {
322
- id: "password-reset",
323
- entryPath: "emails/password-reset.tsx",
324
- files: [
325
- "emails/password-reset.css",
326
- "emails/assets/password-reset-lock.png",
327
- "emails/assets/password-reset-wordmark.png"
328
- ],
329
- provenance: { kind: "owned" },
330
- category: "transactional",
331
- gallerySlug: "password-reset",
332
- recordedAt: "2026-09-08T00:00:00.000Z"
333
- },
334
- {
335
- id: "payment-failed",
336
- entryPath: "emails/payment-failed.tsx",
337
- files: [
338
- "emails/payment-failed.css",
339
- "emails/assets/payment-failed-bowls.png",
340
- "emails/assets/payment-failed-kettle.png",
341
- "emails/assets/payment-failed-tray.png",
342
- "emails/assets/payment-failed-wordmark.png"
343
- ],
344
- provenance: { kind: "owned" },
345
- category: "transactional",
346
- gallerySlug: "payment-failed",
347
- recordedAt: "2026-09-08T00:00:00.000Z"
348
- },
349
- {
350
- id: "product-digest",
351
- entryPath: "emails/product-digest.tsx",
352
- files: [
353
- "emails/product-digest.css",
354
- "emails/assets/product-digest-podcast.png",
355
- "emails/assets/product-digest-wordmark.png"
356
- ],
357
- provenance: { kind: "owned" },
358
- category: "digest",
359
- gallerySlug: "product-digest",
360
- recordedAt: "2026-09-08T00:00:00.000Z"
361
- },
362
- {
363
- id: "product-launch-promo",
364
- entryPath: "emails/product-launch-promo.tsx",
365
- files: [
366
- "emails/product-launch-promo.css",
367
- "emails/assets/oakline-hero.png",
368
- "emails/assets/oakline-wordmark.png",
369
- "emails/assets/product-chair.png",
370
- "emails/assets/product-lamp.png",
371
- "emails/assets/product-mirror.png",
372
- "emails/assets/product-stool.png",
373
- "emails/assets/product-throw.png",
374
- "emails/assets/product-vase.png"
375
- ],
376
- provenance: { kind: "owned" },
377
- category: "marketing",
378
- gallerySlug: "product-launch-promotion",
379
- recordedAt: "2026-09-08T00:00:00.000Z"
380
- },
381
- {
382
- id: "product-newsletter",
383
- entryPath: "emails/product-newsletter.tsx",
384
- files: [
385
- "emails/product-newsletter.css",
386
- "emails/assets/newsletter-lead.png",
387
- "emails/assets/newsletter-story-five.png",
388
- "emails/assets/newsletter-story-four.png",
389
- "emails/assets/newsletter-story-one.png",
390
- "emails/assets/newsletter-story-three.png",
391
- "emails/assets/newsletter-story-two.png",
392
- "emails/assets/newsletter-wordmark.png"
393
- ],
394
- provenance: { kind: "owned" },
395
- category: "digest",
396
- gallerySlug: "product-newsletter",
397
- recordedAt: "2026-09-08T00:00:00.000Z"
398
- },
399
- {
400
- id: "product-onboarding-tour",
401
- entryPath: "emails/product-onboarding-tour.tsx",
402
- files: [
403
- "emails/product-onboarding-tour.css",
404
- "emails/assets/product-onboarding-tour-feature-alerts.png",
405
- "emails/assets/product-onboarding-tour-feature-digest.png",
406
- "emails/assets/product-onboarding-tour-feature-questions.png",
407
- "emails/assets/product-onboarding-tour-read-alerts.png",
408
- "emails/assets/product-onboarding-tour-read-metrics.png",
409
- "emails/assets/product-onboarding-tour-wordmark.png"
410
- ],
411
- provenance: { kind: "owned" },
412
- category: "lifecycle",
413
- gallerySlug: "product-onboarding-tour",
414
- recordedAt: "2026-09-08T00:00:00.000Z"
415
- },
416
- {
417
- id: "product-updates-roundup",
418
- entryPath: "emails/product-updates-roundup.tsx",
419
- files: [
420
- "emails/product-updates-roundup.css",
421
- "emails/assets/product-updates-roundup-access-matrix.png",
422
- "emails/assets/product-updates-roundup-import-pipeline.png",
423
- "emails/assets/product-updates-roundup-query-timeline.png",
424
- "emails/assets/product-updates-roundup-status-board.png",
425
- "emails/assets/product-updates-roundup-usage-chart.png",
426
- "emails/assets/product-updates-roundup-webhook-retry.png",
427
- "emails/assets/product-updates-roundup-wordmark.png"
428
- ],
429
- provenance: { kind: "owned" },
430
- category: "marketing",
431
- gallerySlug: "product-updates-roundup",
432
- recordedAt: "2026-09-08T00:00:00.000Z"
433
- },
434
- {
435
- id: "season-clearance-promo",
436
- entryPath: "emails/season-clearance-promo.tsx",
437
- files: [
438
- "emails/season-clearance-promo.css",
439
- "emails/assets/season-clearance-promo-banner.png",
440
- "emails/assets/season-clearance-promo-cushions.png",
441
- "emails/assets/season-clearance-promo-planter.png",
442
- "emails/assets/season-clearance-promo-secondary.png",
443
- "emails/assets/season-clearance-promo-side-table.png",
444
- "emails/assets/season-clearance-promo-wall-clock.png",
445
- "emails/assets/season-clearance-promo-wordmark.png"
446
- ],
447
- provenance: { kind: "owned" },
448
- category: "marketing",
449
- gallerySlug: "season-clearance-promo",
450
- recordedAt: "2026-09-08T00:00:00.000Z"
451
- },
452
- {
453
- id: "seasonal-sale-flyer",
454
- entryPath: "emails/seasonal-sale-flyer.tsx",
455
- files: [
456
- "emails/seasonal-sale-flyer.css",
457
- "emails/assets/seasonal-sale-flyer-bedding.png",
458
- "emails/assets/seasonal-sale-flyer-cookware.png",
459
- "emails/assets/seasonal-sale-flyer-hero.png",
460
- "emails/assets/seasonal-sale-flyer-lighting.png",
461
- "emails/assets/seasonal-sale-flyer-outdoor.png",
462
- "emails/assets/seasonal-sale-flyer-storage.png",
463
- "emails/assets/seasonal-sale-flyer-tableware.png",
464
- "emails/assets/seasonal-sale-flyer-wordmark.png"
465
- ],
466
- provenance: { kind: "owned" },
467
- category: "marketing",
468
- gallerySlug: "seasonal-sale-flyer",
469
- recordedAt: "2026-09-08T00:00:00.000Z"
470
- },
471
- {
472
- id: "setup-checklist",
473
- entryPath: "emails/setup-checklist.tsx",
474
- files: [
475
- "emails/setup-checklist.css",
476
- "emails/assets/setup-checklist-step-invite.png",
477
- "emails/assets/setup-checklist-step-publish.png",
478
- "emails/assets/setup-checklist-step-source.png",
479
- "emails/assets/setup-checklist-wordmark.png"
480
- ],
481
- provenance: { kind: "owned" },
482
- category: "lifecycle",
483
- gallerySlug: "setup-checklist",
484
- recordedAt: "2026-09-08T00:00:00.000Z"
485
- },
486
- {
487
- id: "shipping-update",
488
- entryPath: "emails/shipping-update.tsx",
489
- files: [
490
- "emails/shipping-update.css",
491
- "emails/assets/shipping-update-runner.png",
492
- "emails/assets/shipping-update-teapot.png",
493
- "emails/assets/shipping-update-tumblers.png",
494
- "emails/assets/shipping-update-wordmark.png"
495
- ],
496
- provenance: { kind: "owned" },
497
- category: "transactional",
498
- gallerySlug: "shipping-update",
499
- recordedAt: "2026-09-08T00:00:00.000Z"
500
- },
501
- {
502
- id: "team-invite",
503
- entryPath: "emails/team-invite.tsx",
504
- files: [
505
- "emails/team-invite.css",
506
- "emails/assets/team-invite-inviter.png",
507
- "emails/assets/team-invite-teammate-one.png",
508
- "emails/assets/team-invite-teammate-three.png",
509
- "emails/assets/team-invite-teammate-two.png",
510
- "emails/assets/team-invite-wordmark.png"
511
- ],
512
- provenance: { kind: "owned" },
513
- category: "transactional",
514
- gallerySlug: "team-invite",
515
- recordedAt: "2026-09-08T00:00:00.000Z"
516
- },
517
- {
518
- id: "travel-rewards-promo",
519
- entryPath: "emails/travel-rewards-promo.tsx",
520
- files: [
521
- "emails/travel-rewards-promo.css",
522
- "emails/assets/travel-rewards-promo-hero.png",
523
- "emails/assets/travel-rewards-promo-partner-dining.png",
524
- "emails/assets/travel-rewards-promo-partner-drives.png",
525
- "emails/assets/travel-rewards-promo-partner-lounges.png",
526
- "emails/assets/travel-rewards-promo-partner-stays.png",
527
- "emails/assets/travel-rewards-promo-wordmark.png"
528
- ],
529
- provenance: { kind: "owned" },
530
- category: "marketing",
531
- gallerySlug: "travel-rewards-promo",
532
- recordedAt: "2026-09-08T00:00:00.000Z"
533
- },
534
- {
535
- id: "trial-ending",
536
- entryPath: "emails/trial-ending.tsx",
537
- files: [
538
- "emails/trial-ending.css",
539
- "emails/assets/trial-ending-countdown.png",
540
- "emails/assets/trial-ending-wordmark.png"
541
- ],
542
- provenance: { kind: "owned" },
543
- category: "lifecycle",
544
- gallerySlug: "trial-ending",
545
- recordedAt: "2026-09-08T00:00:00.000Z"
546
- },
547
- {
548
- id: "vercel-invitation",
549
- entryPath: "emails/vercel-invitation.tsx",
550
- files: [
551
- "emails/vercel-invitation.css",
552
- "README.md",
553
- "emails/assets/vercel-arrow.png",
554
- "emails/assets/vercel-logo.png",
555
- "emails/assets/vercel-team.png",
556
- "emails/assets/vercel-user.png"
557
- ],
558
- provenance: {
559
- kind: "brand-recreation",
560
- brand: "Vercel",
561
- subject: "team invitation",
562
- reviewedNote: "Reviewed recreation of Vercel's team invitation email, its canonical project assets, and its brand attribution."
563
- },
564
- category: "transactional",
565
- gallerySlug: "vercel-team-invitation",
566
- recordedAt: "2026-09-08T00:00:00.000Z"
567
- },
568
- {
569
- id: "weekly-deals-circular",
570
- entryPath: "emails/weekly-deals-circular.tsx",
571
- files: [
572
- "emails/weekly-deals-circular.css",
573
- "emails/assets/weekly-deals-circular-banner.png",
574
- "emails/assets/weekly-deals-circular-basket.png",
575
- "emails/assets/weekly-deals-circular-board.png",
576
- "emails/assets/weekly-deals-circular-bowls.png",
577
- "emails/assets/weekly-deals-circular-duvet.png",
578
- "emails/assets/weekly-deals-circular-kettle.png",
579
- "emails/assets/weekly-deals-circular-rug.png",
580
- "emails/assets/weekly-deals-circular-wordmark.png"
581
- ],
582
- provenance: { kind: "owned" },
583
- category: "marketing",
584
- gallerySlug: "weekly-deals-circular",
585
- recordedAt: "2026-09-08T00:00:00.000Z"
586
- },
587
- {
588
- id: "welcome",
589
- entryPath: "emails/welcome.tsx",
590
- files: [
591
- "emails/welcome.css",
592
- "emails/assets/welcome-hero.png",
593
- "emails/assets/welcome-wordmark.png"
594
- ],
595
- provenance: { kind: "owned" },
596
- category: "transactional",
597
- gallerySlug: "welcome-email",
598
- recordedAt: "2026-09-08T00:00:00.000Z"
599
- },
600
- {
601
- id: "win-back",
602
- entryPath: "emails/win-back.tsx",
603
- files: [
604
- "emails/win-back.css",
605
- "emails/assets/win-back-update-alerts.png",
606
- "emails/assets/win-back-update-exports.png",
607
- "emails/assets/win-back-update-mobile.png",
608
- "emails/assets/win-back-update-speed.png",
609
- "emails/assets/win-back-update-workspaces.png",
610
- "emails/assets/win-back-wordmark.png"
611
- ],
612
- provenance: { kind: "owned" },
613
- category: "lifecycle",
614
- gallerySlug: "win-back",
615
- recordedAt: "2026-09-08T00:00:00.000Z"
616
- }
617
- ];
618
- const isShowcaseProjectId = (id) => showcaseProjects.some((project) => project.id === id);
619
- const showcaseProject = (id) => showcaseProjects.find((project) => project.id === id);
620
- /** Repository-relative path of a showcase project's TSX entry. */
621
- const showcaseSourcePath = (project) => `${SHOWCASE_ROOT}/${project.entryPath}`;
622
- /** Every file the project bundles, entry first in sorted order — the shape codegen writes. */
623
- const showcaseProjectPaths = (project) => [project.entryPath, ...project.files].sort((left, right) => left.localeCompare(right));
624
- //#endregion
625
- export { SHOWCASE_ROOT, isShowcaseProjectId, showcaseProject, showcaseProjectPaths, showcaseProjects, showcaseSourcePath };
626
-
627
- //# sourceMappingURL=showcase.js.map
@@ -1,38 +0,0 @@
1
- //#region presets/sources.gen.d.ts
2
- /** A declared fixture value: JSON, so a template can take a list of stories as well as a string. */
3
- type PresetEmailFixtureValue = string | number | boolean | null | ReadonlyArray<PresetEmailFixtureValue> | {
4
- readonly [key: string]: PresetEmailFixtureValue;
5
- };
6
- interface PresetEmailFixture {
7
- readonly input: Readonly<Record<string, PresetEmailFixtureValue>>;
8
- readonly subject: string;
9
- readonly preheader: string;
10
- readonly html: string;
11
- readonly text: string;
12
- }
13
- interface PresetProjectFile {
14
- readonly path: string;
15
- readonly content: string;
16
- readonly encoding: "utf8" | "base64";
17
- }
18
- interface PresetProject {
19
- readonly entryPath: string;
20
- readonly files: ReadonlyArray<PresetProjectFile>;
21
- readonly digest: string;
22
- }
23
- /** Complete editable projects, including styles and assets. */
24
- declare const presetProjects: Readonly<Record<string, PresetProject>>;
25
- declare const presetProject: (id: string) => PresetProject | undefined;
26
- declare const presetEmailAssets: Readonly<Record<string, ReadonlyArray<string>>>;
27
- /** Canonical TSX entry source, loaded on demand by authoring surfaces. */
28
- declare const presetModuleSources: Readonly<Record<string, string>>;
29
- declare const presetModuleDigests: Readonly<Record<string, string>>;
30
- declare const presetModuleManifestDigest = "63da21459954795b60bc1332032fa55b9db8ba829dadbad73faecd0db73d864f";
31
- /** SML belongs only to the gated SMS and WhatsApp template compilers. */
32
- declare const structuredPresetSources: Readonly<Record<string, string>>;
33
- /** Gallery snapshots generated by executing each declared fixture with actual input. */
34
- declare const presetEmailFixtures: Readonly<Record<string, Readonly<Record<string, PresetEmailFixture>>>>;
35
- declare const presetModuleSource: (id: string) => string | undefined;
36
- //#endregion
37
- export { PresetEmailFixture, PresetEmailFixtureValue, PresetProject, PresetProjectFile, presetEmailAssets, presetEmailFixtures, presetModuleDigests, presetModuleManifestDigest, presetModuleSource, presetModuleSources, presetProject, presetProjects, structuredPresetSources };
38
- //# sourceMappingURL=sources.d.ts.map