@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
package/dist/presets.js DELETED
@@ -1,881 +0,0 @@
1
- //#region presets/catalog.ts
2
- const RECOMMENDED_THEME = {
3
- colors: {
4
- brand: "#4f46e5",
5
- "brand-foreground": "#ffffff"
6
- },
7
- radiusPx: { brand: 8 }
8
- };
9
- const presetCatalog = [
10
- {
11
- id: "linear-login-code",
12
- channel: "email",
13
- category: "transactional",
14
- name: "Linear login code",
15
- description: "Recreate Linear's login code email with an editable magic link, code, and bundled logo.",
16
- variables: [
17
- "expiryNotice",
18
- "homeUrl",
19
- "loginUrl",
20
- "productName",
21
- "validationCode"
22
- ]
23
- },
24
- {
25
- id: "product-newsletter",
26
- channel: "email",
27
- category: "digest",
28
- name: "Product newsletter",
29
- description: "A monthly product newsletter with a lead story, mapped secondary stories, a changelog and one action.",
30
- variables: [
31
- "changelog",
32
- "issueMonth",
33
- "issueNumber",
34
- "issueUrl",
35
- "leadImage",
36
- "leadSummary",
37
- "leadTitle",
38
- "leadUrl",
39
- "preferencesUrl",
40
- "stories",
41
- "unsubscribeUrl"
42
- ]
43
- },
44
- {
45
- id: "vercel-invitation",
46
- channel: "email",
47
- category: "transactional",
48
- name: "Vercel team invitation",
49
- description: "Recreate Vercel's team invitation with editable source and bundled assets.",
50
- variables: [
51
- "inviteFromIp",
52
- "inviteFromLocation",
53
- "inviteLink",
54
- "invitedByEmail",
55
- "invitedByUsername",
56
- "teamImage",
57
- "teamName",
58
- "userImage",
59
- "username"
60
- ]
61
- },
62
- {
63
- id: "order-receipt",
64
- channel: "email",
65
- category: "transactional",
66
- name: "Order receipt",
67
- description: "Itemized order receipt with product thumbnails, totals, payment summary and shipping address.",
68
- variables: [
69
- "customerName",
70
- "discount",
71
- "items",
72
- "orderDate",
73
- "orderNumber",
74
- "orderUrl",
75
- "paymentBrand",
76
- "paymentLast4",
77
- "shipping",
78
- "shippingAddress",
79
- "subtotal",
80
- "supportEmail",
81
- "tax",
82
- "total"
83
- ]
84
- },
85
- {
86
- id: "welcome",
87
- channel: "email",
88
- category: "transactional",
89
- name: "Welcome",
90
- description: "First email after signup, with a lead illustration and a numbered list of first steps from the input.",
91
- variables: [
92
- "ctaUrl",
93
- "docsUrl",
94
- "firstName",
95
- "planNote",
96
- "steps",
97
- "supportEmail",
98
- "workspace"
99
- ]
100
- },
101
- {
102
- id: "email-verification",
103
- channel: "email",
104
- category: "transactional",
105
- name: "Email verification",
106
- description: "Confirm a new email address with a one-click button, a fallback code and the request details behind it.",
107
- variables: [
108
- "email",
109
- "expiryNotice",
110
- "firstName",
111
- "previousEmail",
112
- "requestDetails",
113
- "supportEmail",
114
- "verificationCode",
115
- "verifyUrl",
116
- "workspace"
117
- ]
118
- },
119
- {
120
- id: "otp",
121
- channel: "email",
122
- category: "transactional",
123
- name: "One-time passcode",
124
- description: "Deliver a short-lived sign-in code as the only thing on the page, with the request details under it.",
125
- variables: [
126
- "code",
127
- "expiryNotice",
128
- "helpUrl",
129
- "newDevice",
130
- "requestDetails",
131
- "workspace"
132
- ]
133
- },
134
- {
135
- id: "password-reset",
136
- channel: "email",
137
- category: "transactional",
138
- name: "Password reset",
139
- description: "Send an expiring reset link with the request details, a paste-able fallback URL and an optional passkey offer.",
140
- variables: [
141
- "expiryNotice",
142
- "firstName",
143
- "passkeyPrompt",
144
- "requestDetails",
145
- "resetUrl",
146
- "securityUrl",
147
- "supportEmail",
148
- "workspace"
149
- ]
150
- },
151
- {
152
- id: "payment-failed",
153
- channel: "email",
154
- category: "transactional",
155
- name: "Payment failed",
156
- description: "Declined-charge notice with the amount due, the card on file, the held order and every charge attempt.",
157
- variables: [
158
- "amountDue",
159
- "attempts",
160
- "automaticRetry",
161
- "customerName",
162
- "declineReason",
163
- "holdUntil",
164
- "items",
165
- "orderNumber",
166
- "paymentBrand",
167
- "paymentLast4",
168
- "supportEmail",
169
- "updatePaymentUrl"
170
- ]
171
- },
172
- {
173
- id: "shipping-update",
174
- channel: "email",
175
- category: "transactional",
176
- name: "Shipping update",
177
- description: "Shipment notice with the carrier, tracking, delivery estimate, the packed items and anything still to come.",
178
- variables: [
179
- "carrier",
180
- "customerName",
181
- "estimatedDelivery",
182
- "items",
183
- "orderNumber",
184
- "pendingItems",
185
- "shippedDate",
186
- "shippingAddress",
187
- "supportEmail",
188
- "trackingNumber",
189
- "trackingUrl"
190
- ]
191
- },
192
- {
193
- id: "notification",
194
- channel: "email",
195
- category: "transactional",
196
- name: "Activity notification",
197
- description: "Workspace activity notification with the actor, the message quoted in full, recent activity and a deep link back.",
198
- variables: [
199
- "actionSummary",
200
- "actorAvatar",
201
- "actorName",
202
- "attachment",
203
- "itemTitle",
204
- "itemUrl",
205
- "message",
206
- "otherActivity",
207
- "settingsUrl",
208
- "timestamp",
209
- "workspaceName"
210
- ]
211
- },
212
- {
213
- id: "team-invite",
214
- channel: "email",
215
- category: "transactional",
216
- name: "Team invite",
217
- description: "Invite someone into a workspace with one accept action, the inviter's note and the people already there.",
218
- variables: [
219
- "acceptUrl",
220
- "expiryNotice",
221
- "inviteeEmail",
222
- "inviterAvatarUrl",
223
- "inviterEmail",
224
- "inviterName",
225
- "personalNote",
226
- "productName",
227
- "teammates",
228
- "workspace"
229
- ]
230
- },
231
- {
232
- id: "data-sharing-review",
233
- channel: "email",
234
- category: "transactional",
235
- name: "Data-sharing review",
236
- description: "Ask a customer to keep or remove a third-party connection, listing every permission it holds.",
237
- variables: [
238
- "connectedServiceIconUrl",
239
- "connectedServiceName",
240
- "connectedSince",
241
- "keepConnectionUrl",
242
- "lastAccess",
243
- "recipientEmail",
244
- "referenceCode",
245
- "removeConnectionUrl",
246
- "scopes",
247
- "securityUrl",
248
- "settingsUrl",
249
- "workspace"
250
- ]
251
- },
252
- {
253
- id: "product-digest",
254
- channel: "email",
255
- category: "digest",
256
- name: "Weekly digest",
257
- description: "A weekly reader digest: mapped stories with their desk and reading time, a most-read list, and an optional audio edition.",
258
- variables: [
259
- "archiveUrl",
260
- "editionLabel",
261
- "mostRead",
262
- "podcast",
263
- "preferencesUrl",
264
- "readerName",
265
- "stories",
266
- "unsubscribeUrl"
267
- ]
268
- },
269
- {
270
- id: "editorial-newsletter",
271
- channel: "email",
272
- category: "digest",
273
- name: "Long-form newsletter",
274
- description: "A long-form editorial issue: a byline, an essay that renders from a list of paragraphs, a pull quote, an optional labelled sponsor and a reading list.",
275
- variables: [
276
- "authorAvatar",
277
- "authorName",
278
- "authorRole",
279
- "heroImage",
280
- "issueLabel",
281
- "paragraphs",
282
- "preferencesUrl",
283
- "pullQuote",
284
- "readingList",
285
- "sponsor",
286
- "standfirst",
287
- "storyUrl",
288
- "subscribeUrl",
289
- "title",
290
- "unsubscribeUrl"
291
- ]
292
- },
293
- {
294
- id: "events-roundup",
295
- channel: "email",
296
- category: "digest",
297
- name: "Events roundup",
298
- description: "A dated events digest: an optional spotlight billing and a grid of upcoming shows with images, dates, rooms, prices and per-event tickets.",
299
- variables: [
300
- "calendarUrl",
301
- "cityName",
302
- "events",
303
- "helpUrl",
304
- "seasonLabel",
305
- "spotlight",
306
- "unsubscribeUrl"
307
- ]
308
- },
309
- {
310
- id: "industry-news-digest",
311
- channel: "email",
312
- category: "digest",
313
- name: "Industry news digest",
314
- description: "A dense industry brief: an agenda, a lead story with details and analysis, mapped desk stories, an optional labelled sponsor, and tool and job lists.",
315
- variables: [
316
- "agenda",
317
- "audienceSize",
318
- "editionDate",
319
- "editionUrl",
320
- "intro",
321
- "jobs",
322
- "lead",
323
- "sponsor",
324
- "sponsorContactUrl",
325
- "stories",
326
- "tools",
327
- "unsubscribeUrl"
328
- ]
329
- },
330
- {
331
- id: "announcement",
332
- channel: "email",
333
- category: "marketing",
334
- name: "Feature announcement",
335
- description: "Announce one change with a hero image, highlights from a list, an availability date and a single action.",
336
- variables: [
337
- "availableFrom",
338
- "ctaUrl",
339
- "featureDescription",
340
- "featureName",
341
- "featureTagline",
342
- "firstName",
343
- "highlights",
344
- "preferencesUrl",
345
- "releaseNoteUrl",
346
- "unsubscribeUrl"
347
- ]
348
- },
349
- {
350
- id: "event-invite",
351
- channel: "email",
352
- category: "marketing",
353
- name: "Event invite",
354
- description: "Invite members to an event with the date, the place, an agenda from a list, and one RSVP action.",
355
- variables: [
356
- "agenda",
357
- "capacityNote",
358
- "declineUrl",
359
- "eventAddress",
360
- "eventDate",
361
- "eventDescription",
362
- "eventLocation",
363
- "eventName",
364
- "eventTagline",
365
- "eventTime",
366
- "firstName",
367
- "preferencesUrl",
368
- "rsvpUrl",
369
- "travelNote",
370
- "unsubscribeUrl"
371
- ]
372
- },
373
- {
374
- id: "membership-promo",
375
- channel: "email",
376
- category: "marketing",
377
- name: "Membership promotion",
378
- description: "Promote a paid membership with tier cards from a list, a discount code, a deadline, and one join action.",
379
- variables: [
380
- "compareUrl",
381
- "discountPercent",
382
- "firstName",
383
- "headline",
384
- "joinUrl",
385
- "offerEnds",
386
- "preferencesUrl",
387
- "promoCode",
388
- "savingsNote",
389
- "subhead",
390
- "tiers",
391
- "unsubscribeUrl"
392
- ]
393
- },
394
- {
395
- id: "member-referral-offer",
396
- channel: "email",
397
- category: "marketing",
398
- name: "Member referral offer",
399
- description: "Ask a member to bring people onto their account for a limited-time reward, with the steps and the terms as lists.",
400
- variables: [
401
- "firstName",
402
- "headline",
403
- "maxMembers",
404
- "maxReward",
405
- "offerEnds",
406
- "offerStarts",
407
- "preferencesUrl",
408
- "referralCode",
409
- "referralUrl",
410
- "reminderNote",
411
- "rewardPerMember",
412
- "spendMinimum",
413
- "steps",
414
- "subhead",
415
- "terms",
416
- "termsUrl",
417
- "unsubscribeUrl"
418
- ]
419
- },
420
- {
421
- id: "catalog-sale-newsletter",
422
- channel: "email",
423
- category: "marketing",
424
- name: "Catalog sale newsletter",
425
- description: "Open a catalogue-wide sale with a bundle offer, a product grid from a list, a discount code, and the shop dates.",
426
- variables: [
427
- "bundleListPrice",
428
- "bundleName",
429
- "bundleSalePrice",
430
- "bundleUrl",
431
- "dates",
432
- "discountCode",
433
- "editionLabel",
434
- "editionYear",
435
- "firstName",
436
- "headline",
437
- "intro",
438
- "items",
439
- "offerEnds",
440
- "preferencesUrl",
441
- "shopUrl",
442
- "stockNote",
443
- "unsubscribeUrl"
444
- ]
445
- },
446
- {
447
- id: "limited-time-savings",
448
- channel: "email",
449
- category: "marketing",
450
- name: "Limited-time savings",
451
- description: "A time-boxed savings offer with the hours remaining, reasons from a list, member quotes, and one claim action.",
452
- variables: [
453
- "claimUrl",
454
- "firstName",
455
- "headline",
456
- "hoursRemaining",
457
- "listPrice",
458
- "offerEnds",
459
- "postscript",
460
- "preferencesUrl",
461
- "promoCode",
462
- "reasons",
463
- "salePrice",
464
- "savingsAmount",
465
- "subhead",
466
- "testimonials",
467
- "timezoneUrl",
468
- "unsubscribeUrl"
469
- ]
470
- },
471
- {
472
- id: "rewards-milestone",
473
- channel: "email",
474
- category: "marketing",
475
- name: "Rewards milestone",
476
- description: "Show a member how far through a rewards ladder they are, what the next step unlocks, and what each tier is worth.",
477
- variables: [
478
- "bonusNote",
479
- "expiresOn",
480
- "firstName",
481
- "headline",
482
- "milestoneLabel",
483
- "nextReward",
484
- "pointsBalance",
485
- "preferencesUrl",
486
- "rewardsUrl",
487
- "steps",
488
- "stepsCompleted",
489
- "stepsTotal",
490
- "subhead",
491
- "termsUrl",
492
- "tiers",
493
- "unsubscribeUrl"
494
- ]
495
- },
496
- {
497
- id: "travel-rewards-promo",
498
- channel: "email",
499
- category: "marketing",
500
- name: "Travel rewards promotion",
501
- description: "A travel rewards promotion with a member balance, earning tiers from a list, and partner offers.",
502
- variables: [
503
- "accountUrl",
504
- "bookUrl",
505
- "firstName",
506
- "headline",
507
- "memberNumber",
508
- "milesBalance",
509
- "offerEnds",
510
- "partners",
511
- "preferencesUrl",
512
- "subhead",
513
- "termsUrl",
514
- "tierName",
515
- "tiers",
516
- "unsubscribeUrl"
517
- ]
518
- },
519
- {
520
- id: "product-updates-roundup",
521
- channel: "email",
522
- category: "marketing",
523
- name: "Product updates roundup",
524
- description: "A monthly product roundup with a metrics strip, shipped updates from a list, and an optional event.",
525
- variables: [
526
- "changelogUrl",
527
- "event",
528
- "firstName",
529
- "headline",
530
- "intro",
531
- "issueMonth",
532
- "issueNumber",
533
- "metrics",
534
- "preferencesUrl",
535
- "unsubscribeUrl",
536
- "updates"
537
- ]
538
- },
539
- {
540
- id: "flash-getaway-offer",
541
- channel: "email",
542
- category: "marketing",
543
- name: "Flash getaway offer",
544
- description: "A flash getaway offer with an input countdown, destinations from a list, and one booking action.",
545
- variables: [
546
- "countdown",
547
- "destinations",
548
- "exploreUrl",
549
- "firstName",
550
- "headline",
551
- "offerEnds",
552
- "offerWindow",
553
- "preferencesUrl",
554
- "subhead",
555
- "termsUrl",
556
- "unsubscribeUrl"
557
- ]
558
- },
559
- {
560
- id: "membership-benefits-promo",
561
- channel: "email",
562
- category: "marketing",
563
- name: "Membership benefits promotion",
564
- description: "A paid-membership promotion with a price panel, benefits from a list, and one join action.",
565
- variables: [
566
- "benefits",
567
- "billingNote",
568
- "comparePlansUrl",
569
- "firstName",
570
- "headline",
571
- "joinUrl",
572
- "preferencesUrl",
573
- "priceLabel",
574
- "renewsOn",
575
- "subhead",
576
- "supportEmail",
577
- "trialLabel",
578
- "unsubscribeUrl"
579
- ]
580
- },
581
- {
582
- id: "weekly-deals-circular",
583
- channel: "email",
584
- category: "marketing",
585
- name: "Weekly deals circular",
586
- description: "A weekly retail circular with deals from a list, clippable coupons, and one shop action.",
587
- variables: [
588
- "coupons",
589
- "deals",
590
- "headline",
591
- "intro",
592
- "memberPerk",
593
- "membershipUrl",
594
- "preferencesUrl",
595
- "shopUrl",
596
- "unsubscribeUrl",
597
- "validThrough",
598
- "weekLabel"
599
- ]
600
- },
601
- {
602
- id: "seasonal-sale-flyer",
603
- channel: "email",
604
- category: "marketing",
605
- name: "Seasonal sale flyer",
606
- description: "A seasonal sale flyer with tiered promo codes, a category grid, and an optional gift-card offer.",
607
- variables: [
608
- "categories",
609
- "giftCard",
610
- "headline",
611
- "intro",
612
- "offerWindow",
613
- "preferencesUrl",
614
- "promoTiers",
615
- "seasonLabel",
616
- "shopUrl",
617
- "subhead",
618
- "termsUrl",
619
- "unsubscribeUrl"
620
- ]
621
- },
622
- {
623
- id: "feature-release-roundup",
624
- channel: "email",
625
- category: "marketing",
626
- name: "Feature release roundup",
627
- description: "A feature release roundup with image-left rows from a list, release badges, and docs links.",
628
- variables: [
629
- "changelogUrl",
630
- "firstName",
631
- "headline",
632
- "intro",
633
- "migrationUrl",
634
- "preferencesUrl",
635
- "releases",
636
- "sunsetOn",
637
- "unsubscribeUrl"
638
- ]
639
- },
640
- {
641
- id: "season-clearance-promo",
642
- channel: "email",
643
- category: "marketing",
644
- name: "Season clearance promotion",
645
- description: "A last-chance clearance promotion with marked-down highlights three a row and one shop action.",
646
- variables: [
647
- "deadlinePhrase",
648
- "firstName",
649
- "headline",
650
- "highlights",
651
- "intro",
652
- "newArrivalsUrl",
653
- "preferencesUrl",
654
- "remainingNote",
655
- "shopUrl",
656
- "unsubscribeUrl"
657
- ]
658
- },
659
- {
660
- id: "product-launch-promo",
661
- channel: "email",
662
- category: "marketing",
663
- name: "Product launch promotion",
664
- description: "Launch a collection with a hero, a four-product grid, a discount code, and one shop action.",
665
- variables: [
666
- "bestSellersUrl",
667
- "discountCode",
668
- "firstName",
669
- "headline",
670
- "newArrivalsUrl",
671
- "offerEnds",
672
- "preferencesUrl",
673
- "products",
674
- "saleUrl",
675
- "shopUrl",
676
- "subhead",
677
- "unsubscribeUrl"
678
- ]
679
- },
680
- {
681
- id: "onboarding-step",
682
- channel: "email",
683
- category: "lifecycle",
684
- name: "Onboarding step",
685
- description: "One step of an onboarding sequence, with the whole setup list, its progress, and a single next action.",
686
- variables: [
687
- "actionUrl",
688
- "docsUrl",
689
- "firstName",
690
- "stepBody",
691
- "stepNumber",
692
- "stepTitle",
693
- "steps",
694
- "supportEmail",
695
- "tip",
696
- "workspace"
697
- ]
698
- },
699
- {
700
- id: "trial-ending",
701
- channel: "email",
702
- category: "lifecycle",
703
- name: "Trial ending",
704
- description: "Warn a trial user their access is ending, with what the trial produced, the plan that keeps it, and an optional offer.",
705
- variables: [
706
- "contactUrl",
707
- "daysLeft",
708
- "firstName",
709
- "highlights",
710
- "keeps",
711
- "offer",
712
- "plan",
713
- "trialEndDate",
714
- "upgradeUrl",
715
- "workspace"
716
- ]
717
- },
718
- {
719
- id: "win-back",
720
- channel: "email",
721
- category: "lifecycle",
722
- name: "Win-back",
723
- description: "Re-engage a lapsed user with an illustrated list of what shipped while they were away, and an optional return offer.",
724
- variables: [
725
- "firstName",
726
- "lastActive",
727
- "offer",
728
- "preferencesUrl",
729
- "returnUrl",
730
- "unsubscribeUrl",
731
- "updates",
732
- "workspace"
733
- ]
734
- },
735
- {
736
- id: "feedback-request",
737
- channel: "email",
738
- category: "lifecycle",
739
- name: "Feedback request",
740
- description: "Ask an active user one question with clickable answers, a short survey, and a named sender who reads the replies.",
741
- variables: [
742
- "firstName",
743
- "incentive",
744
- "options",
745
- "question",
746
- "sender",
747
- "surveyUrl",
748
- "tenure",
749
- "workspace"
750
- ]
751
- },
752
- {
753
- id: "product-onboarding-tour",
754
- channel: "email",
755
- category: "lifecycle",
756
- name: "Product onboarding tour",
757
- description: "Walk a new user through the features worth turning on first, each with a still, its own points and a link, followed by a reading list.",
758
- variables: [
759
- "features",
760
- "firstName",
761
- "helpCenterUrl",
762
- "intro",
763
- "mobile",
764
- "preferencesUrl",
765
- "reads",
766
- "unsubscribeUrl"
767
- ]
768
- },
769
- {
770
- id: "setup-checklist",
771
- channel: "email",
772
- category: "lifecycle",
773
- name: "Setup checklist",
774
- description: "Welcome a new customer with the setup steps that remain, each marked done or outstanding, and one link back into the flow.",
775
- variables: [
776
- "continueUrl",
777
- "firstName",
778
- "helpUrl",
779
- "note",
780
- "steps",
781
- "unsubscribeUrl",
782
- "welcome",
783
- "workspace"
784
- ]
785
- },
786
- {
787
- id: "sms-otp",
788
- channel: "sms",
789
- category: "transactional",
790
- name: "One-time passcode (SMS)",
791
- description: "Deliver a short-lived sign-in or 2FA code in a single GSM-7 segment.",
792
- variables: [
793
- "code",
794
- "expiryMinutes",
795
- "workspace"
796
- ]
797
- },
798
- {
799
- id: "sms-shipping-update",
800
- channel: "sms",
801
- category: "transactional",
802
- name: "Shipping update (SMS)",
803
- description: "Tell a customer their order shipped, with a tracking link.",
804
- variables: [
805
- "orderNumber",
806
- "trackingUrl",
807
- "workspace"
808
- ]
809
- },
810
- {
811
- id: "sms-appointment-reminder",
812
- channel: "sms",
813
- category: "lifecycle",
814
- name: "Appointment reminder (SMS)",
815
- description: "Remind a customer of an upcoming appointment with a reschedule path.",
816
- variables: [
817
- "appointmentDate",
818
- "appointmentTime",
819
- "workspace"
820
- ]
821
- },
822
- {
823
- id: "sms-flash-sale",
824
- channel: "sms",
825
- category: "marketing",
826
- name: "Flash sale (SMS)",
827
- description: "Drive a limited-time offer with a promo code and a conditional urgency line.",
828
- variables: [
829
- "endsToday",
830
- "offerHeadline",
831
- "promoCode",
832
- "shopUrl",
833
- "workspace"
834
- ]
835
- },
836
- {
837
- id: "whatsapp-order-update",
838
- channel: "whatsapp",
839
- category: "transactional",
840
- name: "Order update (WhatsApp)",
841
- description: "Utility template: shipping confirmation with a tracking URL button.",
842
- variables: [
843
- "estimatedDelivery",
844
- "firstName",
845
- "orderNumber",
846
- "trackingUrl"
847
- ]
848
- },
849
- {
850
- id: "whatsapp-appointment-reminder",
851
- channel: "whatsapp",
852
- category: "lifecycle",
853
- name: "Appointment reminder (WhatsApp)",
854
- description: "Utility template: appointment reminder with confirm/reschedule quick replies.",
855
- variables: [
856
- "appointmentDate",
857
- "appointmentTime",
858
- "firstName",
859
- "workspace"
860
- ]
861
- },
862
- {
863
- id: "whatsapp-flash-sale",
864
- channel: "whatsapp",
865
- category: "marketing",
866
- name: "Flash sale (WhatsApp)",
867
- description: "Marketing template: limited-time offer with a copyable promo code and a shop button.",
868
- variables: [
869
- "endsToday",
870
- "firstName",
871
- "offerDetails",
872
- "offerHeadline",
873
- "promoCode",
874
- "shopUrl"
875
- ]
876
- }
877
- ];
878
- //#endregion
879
- export { RECOMMENDED_THEME, presetCatalog };
880
-
881
- //# sourceMappingURL=presets.js.map