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