@samva/markup 0.1.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.
- package/AGENTS.md +8 -0
- package/LICENSE +21 -0
- package/README.md +41 -0
- package/dist/ast-DAhnAvQN.d.ts +120 -0
- package/dist/ast.d.ts +2 -0
- package/dist/ast.js +159 -0
- package/dist/ast.js.map +1 -0
- package/dist/candidate.d.ts +29 -0
- package/dist/candidate.js +88 -0
- package/dist/candidate.js.map +1 -0
- package/dist/checks-CW0nFj5n.js +58922 -0
- package/dist/checks-CW0nFj5n.js.map +1 -0
- package/dist/checks.d.ts +26 -0
- package/dist/checks.js +2 -0
- package/dist/classes.d.ts +27 -0
- package/dist/classes.js +184 -0
- package/dist/classes.js.map +1 -0
- package/dist/compile-sms.d.ts +28 -0
- package/dist/compile-sms.js +44 -0
- package/dist/compile-sms.js.map +1 -0
- package/dist/compile-whatsapp.d.ts +56 -0
- package/dist/compile-whatsapp.js +186 -0
- package/dist/compile-whatsapp.js.map +1 -0
- package/dist/compile.d.ts +93 -0
- package/dist/compile.js +938 -0
- package/dist/compile.js.map +1 -0
- package/dist/components.d.ts +289 -0
- package/dist/components.js +106 -0
- package/dist/components.js.map +1 -0
- package/dist/conditionals.d.ts +10 -0
- package/dist/conditionals.js +42 -0
- package/dist/conditionals.js.map +1 -0
- package/dist/diagnostics-oveE-laV.d.ts +79 -0
- package/dist/diagnostics.d.ts +2 -0
- package/dist/diagnostics.js +62 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/emit.d.ts +50 -0
- package/dist/emit.js +151 -0
- package/dist/emit.js.map +1 -0
- package/dist/footer.d.ts +66 -0
- package/dist/footer.js +90 -0
- package/dist/footer.js.map +1 -0
- package/dist/interpolate.d.ts +27 -0
- package/dist/interpolate.js +61 -0
- package/dist/interpolate.js.map +1 -0
- package/dist/jsx-dev-runtime.d.ts +10 -0
- package/dist/jsx-dev-runtime.js +7 -0
- package/dist/jsx-dev-runtime.js.map +1 -0
- package/dist/jsx-runtime-fSxcvlx4.d.ts +57 -0
- package/dist/jsx-runtime.d.ts +2 -0
- package/dist/jsx-runtime.js +102 -0
- package/dist/jsx-runtime.js.map +1 -0
- package/dist/lexer.d.ts +60 -0
- package/dist/lexer.js +269 -0
- package/dist/lexer.js.map +1 -0
- package/dist/model.d.ts +39 -0
- package/dist/model.js +90 -0
- package/dist/model.js.map +1 -0
- package/dist/ops.d.ts +208 -0
- package/dist/ops.js +546 -0
- package/dist/ops.js.map +1 -0
- package/dist/parser-yzjUOGhc.d.ts +387 -0
- package/dist/parser.d.ts +2 -0
- package/dist/parser.js +821 -0
- package/dist/parser.js.map +1 -0
- package/dist/predicate-DTtVtLK7.d.ts +49 -0
- package/dist/predicate.d.ts +2 -0
- package/dist/predicate.js +417 -0
- package/dist/predicate.js.map +1 -0
- package/dist/presets/category-mapping.d.ts +13 -0
- package/dist/presets/category-mapping.js +49 -0
- package/dist/presets/category-mapping.js.map +1 -0
- package/dist/presets/public-gallery.d.ts +490 -0
- package/dist/presets/public-gallery.js +563 -0
- package/dist/presets/public-gallery.js.map +1 -0
- package/dist/presets/public-handoff.d.ts +68 -0
- package/dist/presets/public-handoff.js +105 -0
- package/dist/presets/public-handoff.js.map +1 -0
- package/dist/presets/public-preview-artifacts.d.ts +41 -0
- package/dist/presets/public-preview-artifacts.js +109 -0
- package/dist/presets/public-preview-artifacts.js.map +1 -0
- package/dist/presets/public-preview.d.ts +1168 -0
- package/dist/presets/public-preview.js +1158 -0
- package/dist/presets/public-preview.js.map +1 -0
- package/dist/presets/sources.d.ts +7 -0
- package/dist/presets/sources.js +54 -0
- package/dist/presets/sources.js.map +1 -0
- package/dist/presets.d.ts +350 -0
- package/dist/presets.js +1251 -0
- package/dist/presets.js.map +1 -0
- package/dist/printer.d.ts +6 -0
- package/dist/printer.js +122 -0
- package/dist/printer.js.map +1 -0
- package/dist/registry.d.ts +42 -0
- package/dist/registry.js +646 -0
- package/dist/registry.js.map +1 -0
- package/dist/render-template.d.ts +42 -0
- package/dist/render-template.js +74 -0
- package/dist/render-template.js.map +1 -0
- package/dist/sms-segments-y4FpPilJ.d.ts +13 -0
- package/dist/sms-segments.d.ts +2 -0
- package/dist/sms-segments.js +46 -0
- package/dist/sms-segments.js.map +1 -0
- package/dist/theme-6ApjjiBo.d.ts +116 -0
- package/dist/theme-css.d.ts +24 -0
- package/dist/theme-css.js +509 -0
- package/dist/theme-css.js.map +1 -0
- package/dist/theme.d.ts +2 -0
- package/dist/theme.js +95 -0
- package/dist/theme.js.map +1 -0
- package/dist/tokens.d.ts +6 -0
- package/dist/tokens.js +417 -0
- package/dist/tokens.js.map +1 -0
- package/dist/variables-3NGLpNTB.d.ts +77 -0
- package/dist/variables.d.ts +2 -0
- package/dist/variables.js +141 -0
- package/dist/variables.js.map +1 -0
- package/dist/version-BITr58kk.js +96 -0
- package/dist/version-BITr58kk.js.map +1 -0
- package/generated/sml-agent-contract.json +917 -0
- package/generated/sml-email-agent-contract.json +790 -0
- package/generated/sml-email-language-reference.md +160 -0
- package/generated/sml-language-reference.md +220 -0
- package/package.json +203 -0
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
import { d as Channel } from "./ast-DAhnAvQN.js";
|
|
2
|
+
import { o as TokenOverrides } from "./theme-6ApjjiBo.js";
|
|
3
|
+
//#region presets/catalog.d.ts
|
|
4
|
+
type PresetCategory = "transactional" | "digest" | "marketing" | "lifecycle";
|
|
5
|
+
interface PresetMeta {
|
|
6
|
+
/** Stable id and source filename stem (`${id}.samva`). */
|
|
7
|
+
readonly id: string;
|
|
8
|
+
/** The source's root-tag channel; the gallery filters by it. */
|
|
9
|
+
readonly channel: Channel;
|
|
10
|
+
readonly category: PresetCategory;
|
|
11
|
+
/** Human title for the gallery card. */
|
|
12
|
+
readonly name: string;
|
|
13
|
+
/** One-line description of when to reach for this preset. */
|
|
14
|
+
readonly description: string;
|
|
15
|
+
/**
|
|
16
|
+
* Every variable the source interpolates, sorted. A sender fills these in;
|
|
17
|
+
* an org theme re-themes the brand tokens. Kept in exact parity with
|
|
18
|
+
* collectVariableReferences(source) by the preset test suite.
|
|
19
|
+
*/
|
|
20
|
+
readonly variables: ReadonlyArray<string>;
|
|
21
|
+
}
|
|
22
|
+
declare const RECOMMENDED_THEME: TokenOverrides;
|
|
23
|
+
declare const presetCatalog: readonly [{
|
|
24
|
+
readonly id: "welcome";
|
|
25
|
+
readonly channel: "email";
|
|
26
|
+
readonly category: "transactional";
|
|
27
|
+
readonly name: "Welcome";
|
|
28
|
+
readonly description: "First email after signup — orient the new user and point them at their dashboard.";
|
|
29
|
+
readonly variables: readonly ["ctaUrl", "docsUrl", "firstName", "logoUrl", "workspace"];
|
|
30
|
+
}, {
|
|
31
|
+
readonly id: "email-verification";
|
|
32
|
+
readonly channel: "email";
|
|
33
|
+
readonly category: "transactional";
|
|
34
|
+
readonly name: "Email verification";
|
|
35
|
+
readonly description: "Confirm a new email address with a one-click button and a fallback code.";
|
|
36
|
+
readonly variables: readonly ["email", "firstName", "logoUrl", "verificationCode", "verifyUrl", "workspace"];
|
|
37
|
+
}, {
|
|
38
|
+
readonly id: "otp";
|
|
39
|
+
readonly channel: "email";
|
|
40
|
+
readonly category: "transactional";
|
|
41
|
+
readonly name: "One-time passcode";
|
|
42
|
+
readonly description: "Deliver a short-lived sign-in or 2FA code with a prominent, copyable value.";
|
|
43
|
+
readonly variables: readonly ["code", "expiryMinutes", "logoUrl", "workspace"];
|
|
44
|
+
}, {
|
|
45
|
+
readonly id: "password-reset";
|
|
46
|
+
readonly channel: "email";
|
|
47
|
+
readonly category: "transactional";
|
|
48
|
+
readonly name: "Password reset";
|
|
49
|
+
readonly description: "Send a secure, expiring reset link with a paste-able fallback URL.";
|
|
50
|
+
readonly variables: readonly ["expiryMinutes", "firstName", "logoUrl", "resetUrl", "workspace"];
|
|
51
|
+
}, {
|
|
52
|
+
readonly id: "receipt";
|
|
53
|
+
readonly channel: "email";
|
|
54
|
+
readonly category: "transactional";
|
|
55
|
+
readonly name: "Receipt";
|
|
56
|
+
readonly description: "Confirm a completed payment with an itemized summary and an invoice link.";
|
|
57
|
+
readonly variables: readonly ["firstName", "invoiceUrl", "logoUrl", "orderNumber", "paidDate", "paymentMethod", "total", "workspace"];
|
|
58
|
+
}, {
|
|
59
|
+
readonly id: "payment-failed";
|
|
60
|
+
readonly channel: "email";
|
|
61
|
+
readonly category: "transactional";
|
|
62
|
+
readonly name: "Payment failed";
|
|
63
|
+
readonly description: "Alert a customer to a declined charge and prompt them to update billing.";
|
|
64
|
+
readonly variables: readonly ["amountDue", "contactUrl", "firstName", "logoUrl", "paymentMethod", "planName", "retryDate", "updatePaymentUrl", "workspace"];
|
|
65
|
+
}, {
|
|
66
|
+
readonly id: "shipping-update";
|
|
67
|
+
readonly channel: "email";
|
|
68
|
+
readonly category: "transactional";
|
|
69
|
+
readonly name: "Shipping update";
|
|
70
|
+
readonly description: "Tell a customer their order shipped, with carrier, ETA, and a tracking link.";
|
|
71
|
+
readonly variables: readonly ["carrier", "estimatedDelivery", "firstName", "logoUrl", "orderNumber", "trackingNumber", "trackingUrl", "workspace"];
|
|
72
|
+
}, {
|
|
73
|
+
readonly id: "notification";
|
|
74
|
+
readonly channel: "email";
|
|
75
|
+
readonly category: "transactional";
|
|
76
|
+
readonly name: "Activity notification";
|
|
77
|
+
readonly description: "Notify a user that someone acted in their workspace, with a deep link back.";
|
|
78
|
+
readonly variables: readonly ["actionSummary", "actorName", "ctaUrl", "logoUrl", "notificationBody", "settingsUrl", "timestamp", "workspace"];
|
|
79
|
+
}, {
|
|
80
|
+
readonly id: "team-invite";
|
|
81
|
+
readonly channel: "email";
|
|
82
|
+
readonly category: "transactional";
|
|
83
|
+
readonly name: "Team invite";
|
|
84
|
+
readonly description: "Invite someone to collaborate in a workspace with a single accept action.";
|
|
85
|
+
readonly variables: readonly ["acceptUrl", "inviteeEmail", "inviterEmail", "inviterName", "logoUrl", "productName", "workspace"];
|
|
86
|
+
}, {
|
|
87
|
+
readonly id: "order-delivered";
|
|
88
|
+
readonly channel: "email";
|
|
89
|
+
readonly category: "transactional";
|
|
90
|
+
readonly name: "Order delivered";
|
|
91
|
+
readonly description: "Confirm a delivered order with the itemized contents, delivery address, tracking, and a reorder path.";
|
|
92
|
+
readonly variables: readonly ["apparelUrl", "carrierName", "gearUrl", "homeUrl", "productOneImageUrl", "productOneName", "productOneQuantity", "productOneTotal", "productOneVariant", "productThreeImageUrl", "productThreeName", "productThreeQuantity", "productThreeTotal", "productThreeVariant", "productTwoImageUrl", "productTwoName", "productTwoQuantity", "productTwoTotal", "productTwoVariant", "recipientName", "shippingAddressLine1", "shippingCityStateZip", "shippingCountry", "shopAllUrl", "socialFourIconUrl", "socialFourUrl", "socialOneIconUrl", "socialOneUrl", "socialThreeIconUrl", "socialThreeUrl", "socialTwoIconUrl", "socialTwoUrl", "trackOrderUrl", "trackingNumber", "trackingUrl", "unsubscribeUrl"];
|
|
93
|
+
}, {
|
|
94
|
+
readonly id: "data-sharing-review";
|
|
95
|
+
readonly channel: "email";
|
|
96
|
+
readonly category: "transactional";
|
|
97
|
+
readonly name: "Data-sharing review";
|
|
98
|
+
readonly description: "Prompt a customer to review a third-party data connection and keep or remove it, with a reference code.";
|
|
99
|
+
readonly variables: readonly ["accountSettingsUrl", "appDownloadIconUrl", "appDownloadUrl", "connectedServiceName", "contactUrl", "copyrightYear", "daysSinceConnection", "fraudCenterUrl", "fraudHelpUrl", "keepConnectionUrl", "privacyUrl", "recipientEmail", "referenceCode", "removeConnectionUrl", "signInIconUrl", "signInUrl", "socialFiveIconUrl", "socialFourIconUrl", "socialOneIconUrl", "socialThreeIconUrl", "socialTwoIconUrl"];
|
|
100
|
+
}, {
|
|
101
|
+
readonly id: "product-digest";
|
|
102
|
+
readonly channel: "email";
|
|
103
|
+
readonly category: "digest";
|
|
104
|
+
readonly name: "Weekly digest";
|
|
105
|
+
readonly description: "Recap the week's activity as a scannable list of stories with read-more links.";
|
|
106
|
+
readonly variables: readonly ["dashboardUrl", "highlightCount", "logoUrl", "storyOneSummary", "storyOneTitle", "storyOneUrl", "storyTwoSummary", "storyTwoTitle", "storyTwoUrl", "unsubscribeUrl", "weekRange", "workspace"];
|
|
107
|
+
}, {
|
|
108
|
+
readonly id: "newsletter";
|
|
109
|
+
readonly channel: "email";
|
|
110
|
+
readonly category: "digest";
|
|
111
|
+
readonly name: "Newsletter";
|
|
112
|
+
readonly description: "An editorial newsletter with a hero story, secondary links, and subscribe controls.";
|
|
113
|
+
readonly variables: readonly ["heroImage", "issueNumber", "leadBody", "leadHeadline", "leadUrl", "linkOneTitle", "linkOneUrl", "linkTwoTitle", "linkTwoUrl", "newsletterName", "publishDate", "subscribeUrl", "unsubscribeUrl"];
|
|
114
|
+
}, {
|
|
115
|
+
readonly id: "editorial-newsletter";
|
|
116
|
+
readonly channel: "email";
|
|
117
|
+
readonly category: "digest";
|
|
118
|
+
readonly name: "Long-form newsletter";
|
|
119
|
+
readonly description: "Long-form editorial newsletter with a lead story, sponsor slot, and a reading list.";
|
|
120
|
+
readonly variables: readonly ["advertiseEmailUrl", "authorAvatarUrl", "authorProfileUrl", "bookUrl", "commentIconUrl", "commentUrl", "communityUrl", "concordStoryUrl", "founderQuoteUrl", "heroImageUrl", "leakStoryUrl", "likeIconUrl", "likeUrl", "marketReportUrl", "northbeamStoryUrl", "platformCtaImageUrl", "podcastCastUrl", "podcastGenericUrl", "podcastImageUrl", "podcastStreamUrl", "postUrl", "publishDate", "quoteOfWeekUrl", "quoteSourceUrl", "readInAppIconUrl", "readInAppUrl", "reading1Url", "reading2Url", "reading3Url", "reading4Url", "reading5Url", "repostIconUrl", "repostUrl", "shareIconUrl", "shareMailIconUrl", "shareNotesIconUrl", "shareSocialOneIconUrl", "shareSocialTwoIconUrl", "shareUrl", "sponsorImageUrl", "sponsorUrl", "stagnationStoryUrl", "statOfWeek", "statStoryUrl", "subscribeUrl", "subscriptionPrice", "tipsEmailUrl", "unsubscribeUrl", "upgradeUrl", "usersStoryUrl", "valuationStoryUrl"];
|
|
121
|
+
}, {
|
|
122
|
+
readonly id: "events-roundup";
|
|
123
|
+
readonly channel: "email";
|
|
124
|
+
readonly category: "digest";
|
|
125
|
+
readonly name: "Events roundup";
|
|
126
|
+
readonly description: "A dated events digest: a grid of upcoming shows with images, dates, prices, and per-event links.";
|
|
127
|
+
readonly variables: readonly ["copyrightYear", "event10Date", "event10ImageUrl", "event10Price", "event10Url", "event11Date", "event11ImageUrl", "event11Price", "event11Url", "event1Date", "event1ImageUrl", "event1Price", "event1Url", "event2Date", "event2ImageUrl", "event2Price", "event2Url", "event3Date", "event3ImageUrl", "event3Price", "event3Url", "event4Date", "event4ImageUrl", "event4Price", "event4Url", "event5Date", "event5ImageUrl", "event5Price", "event5Url", "event6Date", "event6ImageUrl", "event6Price", "event6Url", "event7Date", "event7ImageUrl", "event7Price", "event7Url", "event8Date", "event8ImageUrl", "event8Price", "event8Url", "event9Date", "event9ImageUrl", "event9Price", "event9Url", "helpUrl", "moreEventsUrl", "socialFourIconUrl", "socialOneIconUrl", "socialThreeIconUrl", "socialTwoIconUrl", "termsUrl", "unsubscribeUrl"];
|
|
128
|
+
}, {
|
|
129
|
+
readonly id: "industry-news-digest";
|
|
130
|
+
readonly channel: "email";
|
|
131
|
+
readonly category: "digest";
|
|
132
|
+
readonly name: "Industry news digest";
|
|
133
|
+
readonly description: "A dense industry news digest with lead stories, a jobs board, tools index, sponsors, and a workshop.";
|
|
134
|
+
readonly variables: readonly ["advertiseUrl", "audienceSize", "bastionClaimsUrl", "bastionDealImageUrl", "bastionDealUrl", "bastionLeakUrl", "bastionReplyingUrl", "bastionReportedUrl", "bastionSayingUrl", "bastionStruckUrl", "bastionUnveilingUrl", "copyrightYear", "feedbackAverageUrl", "feedbackFailUrl", "feedbackGreatUrl", "freeSignupUrl", "jobGatebenchUrl", "jobLedgerUrl", "jobScalebenchUrl", "jobVaultbridgeUrl", "jobsIndexUrl", "latentPrivilegeImageUrl", "latentPrivilegePublishedUrl", "latentPrivilegeUrl", "moreNewsBetaUrl", "moreNewsComputeUrl", "moreNewsFlashUrl", "moreNewsHiredUrl", "moreNewsMedalUrl", "moreNewsPoachedUrl", "moreNewsQuillUrl", "moreNewsStanceUrl", "moreNewsUrl", "playbookTutorialImageUrl", "playbookTutorialUrl", "podcastUrl", "pulsebandAcquiringUrl", "pulsebandDealImageUrl", "pulsebandDealUrl", "pulsebandReviewsUrl", "readOnlineUrl", "referralUrl", "ridgelockCareersUrl", "ridgelockSponsorImageUrl", "ridgelockSponsorUrl", "sealpathCtaUrl", "sealpathSponsorImageUrl", "sealpathSponsorUrl", "signUpUrl", "socialOneIconUrl", "socialThreeIconUrl", "socialTwoIconUrl", "sponsorContactUrl", "termsUrl", "toolActTwoUrl", "toolClipcastUrl", "toolHierarchyUrl", "toolQuillUrl", "toolsIndexUrl", "universityFooterUrl", "universityUrl", "unsubscribeUrl", "workshopDate", "workshopDay", "workshopImageUrl", "workshopRsvpUrl", "workshopTime", "workshopUrl"];
|
|
135
|
+
}, {
|
|
136
|
+
readonly id: "announcement";
|
|
137
|
+
readonly channel: "email";
|
|
138
|
+
readonly category: "marketing";
|
|
139
|
+
readonly name: "Feature announcement";
|
|
140
|
+
readonly description: "Announce a new feature with a bold branded header and a link to the changelog.";
|
|
141
|
+
readonly variables: readonly ["changelogUrl", "ctaLabel", "ctaUrl", "featureDescription", "featureImage", "featureName", "featureTagline", "firstName", "unsubscribeUrl", "workspace"];
|
|
142
|
+
}, {
|
|
143
|
+
readonly id: "promo";
|
|
144
|
+
readonly channel: "email";
|
|
145
|
+
readonly category: "marketing";
|
|
146
|
+
readonly name: "Promotion";
|
|
147
|
+
readonly description: "Drive a limited-time offer with a highlighted promo code and a shop CTA.";
|
|
148
|
+
readonly variables: readonly ["expiryDate", "firstName", "offerHeadline", "offerSubhead", "promoCode", "shopUrl", "termsUrl", "unsubscribeUrl"];
|
|
149
|
+
}, {
|
|
150
|
+
readonly id: "event-invite";
|
|
151
|
+
readonly channel: "email";
|
|
152
|
+
readonly category: "marketing";
|
|
153
|
+
readonly name: "Event invite";
|
|
154
|
+
readonly description: "Invite recipients to an event with when/where details and an RSVP button.";
|
|
155
|
+
readonly variables: readonly ["declineUrl", "eventAddress", "eventDate", "eventDescription", "eventLocation", "eventName", "eventTime", "firstName", "rsvpUrl", "unsubscribeUrl"];
|
|
156
|
+
}, {
|
|
157
|
+
readonly id: "membership-promo";
|
|
158
|
+
readonly channel: "email";
|
|
159
|
+
readonly category: "marketing";
|
|
160
|
+
readonly name: "Membership promotion";
|
|
161
|
+
readonly description: "Promote a paid membership with a tiered plan comparison, a discount code, and a repeated upgrade CTA.";
|
|
162
|
+
readonly variables: readonly ["advertiseUrl", "appDownloadUrl", "claimOfferUrl", "discountPercent", "flexibleDatesImageUrl", "getAlertsUrl", "offerEndDate", "preferencesUrl", "promoCode", "promoCodeUrl", "socialFiveIconUrl", "socialFourIconUrl", "socialOneIconUrl", "socialThreeIconUrl", "socialTwoIconUrl", "specificTripImageUrl", "summitNowPrice", "summitWasPrice", "trailNowPrice", "trailWasPrice", "unsubscribeUrl", "websiteUrl"];
|
|
163
|
+
}, {
|
|
164
|
+
readonly id: "member-referral-offer";
|
|
165
|
+
readonly channel: "email";
|
|
166
|
+
readonly category: "marketing";
|
|
167
|
+
readonly name: "Member referral offer";
|
|
168
|
+
readonly description: "Invite customers to add members to their account for a limited-time reward, with the full terms.";
|
|
169
|
+
readonly variables: readonly ["accountUrl", "addMemberUrl", "addressUrl", "appIconImageUrl", "applicationEvalUrl", "circleFeatureImageUrl", "coOwnerBonus", "coOwnerSpendMin", "copyrightYear", "creditBuildAge", "creditReportingUrl", "customerAgreementUrl", "heroImageUrl", "learnCircleUrl", "learnDailyTideUrl", "maxBonusAmount", "maxNewMembers", "memberRisksUrl", "minMemberAge", "offerEndDate", "offerEndDateFull", "offerStartDate", "participantBonus", "participantSpendMin", "privacyUrl", "rewardsFeatureImageUrl", "signInUrl", "supportUrl", "termsUrl", "tidePayInfoUrl", "unsubscribeUrl"];
|
|
170
|
+
}, {
|
|
171
|
+
readonly id: "catalog-sale-newsletter";
|
|
172
|
+
readonly channel: "email";
|
|
173
|
+
readonly category: "marketing";
|
|
174
|
+
readonly name: "Catalog sale newsletter";
|
|
175
|
+
readonly description: "Announce a new release and run a catalog-wide bundle sale with per-item discount links.";
|
|
176
|
+
readonly variables: readonly ["bundleListPrice", "bundleSalePrice", "bundleUrl", "courseUrl", "discountAdvancedOneUrl", "discountAdvancedThreeUrl", "discountAdvancedTwoUrl", "discountCanvasPlayUrl", "discountChallengesUrl", "discountConcurrencyUrl", "discountDataLayerUrl", "discountDesktopPathUrl", "discountInterfaceByExampleUrl", "discountLegacyInteropUrl", "discountLiveSeriesUrl", "discountLivingRoomPathUrl", "discountMobilePathUrl", "discountOutsideEditorUrl", "discountPatternsUrl", "discountProInterfaceUrl", "discountProSystemsUrl", "discountSundayBuildsUrl", "discountTestingUrl", "discountWearablesPathUrl", "editionLabel", "editionYear", "eventChicagoUrl", "eventEnglandUrl", "eventFranceUrl", "eventGermanyUrl", "eventItalyUrl", "eventSkopjeUrl", "eventTokyoUrl", "eventWalesUrl", "friendBookUrl", "friendVideoUrl", "harborcraftUrl", "podcastEpisodeUrl", "poweredByUrl", "sponsorUrl", "unsubscribeUrl"];
|
|
177
|
+
}, {
|
|
178
|
+
readonly id: "limited-time-savings";
|
|
179
|
+
readonly channel: "email";
|
|
180
|
+
readonly category: "marketing";
|
|
181
|
+
readonly name: "Limited-time savings";
|
|
182
|
+
readonly description: "A focused, time-boxed savings offer with a single enrol action and a countdown of hours remaining.";
|
|
183
|
+
readonly variables: readonly ["advocacyLetterUrl", "enrollUrl", "essentialsDiscountPercent", "essentialsOfferUrl", "hoursRemaining", "listPrice", "productUrl", "salePrice", "savingsAmount", "timezoneGuideUrl", "unsubscribeUrl"];
|
|
184
|
+
}, {
|
|
185
|
+
readonly id: "rewards-milestone";
|
|
186
|
+
readonly channel: "email";
|
|
187
|
+
readonly category: "marketing";
|
|
188
|
+
readonly name: "Rewards milestone";
|
|
189
|
+
readonly description: "Drive engagement with a milestone reward program: complete steps, unlock perks, and see the reward tiers.";
|
|
190
|
+
readonly variables: readonly ["accountLastFour", "airAccidentCover", "beSecureUrl", "benefitIconUrl", "campaignCode", "continueGuideUrl", "diningCreditAmount", "eventTicketCount", "familyMemberLimit", "heroBannerImageUrl", "internetBankingIconUrl", "internetBankingUrl", "learnMoreUrl", "lockerDiscountPercent", "loungeVisitCount", "maxRewardAmount", "milestoneCount", "milestoneLabel", "mobileAppIconUrl", "mobileAppUrl", "mobileVersionUrl", "movieTicketCount", "personalAccidentCover", "recipientName", "rewardsCardImageUrl", "rmSmsKeyword", "rmSmsPhone", "rmSmsShortcode", "secureChatIconUrl", "secureChatPhone", "secureChatUrl", "securityPolicyUrl", "termsUrl", "tollFreePhone", "unsubscribeUrl", "webVersionUrl", "websiteUrl", "welcomeRewardAmount"];
|
|
191
|
+
}, {
|
|
192
|
+
readonly id: "travel-rewards-promo";
|
|
193
|
+
readonly channel: "email";
|
|
194
|
+
readonly category: "marketing";
|
|
195
|
+
readonly name: "Travel rewards promotion";
|
|
196
|
+
readonly description: "A rewards-program promotion with bonus tiers, partner discount codes, and a member balance summary.";
|
|
197
|
+
readonly variables: readonly ["accountPromptImageUrl", "accountUrl", "additionalTermsUrl", "androidAppUrl", "appDownloadUrl", "bookUrl", "campaignCode", "contactUrl", "copyrightYear", "couponBonusMiles", "dealsUrl", "discountPercent", "firstName", "heroImageUrl", "iosAppUrl", "longBonusMiles", "longRentalDays", "maxBonusMiles", "memberId", "midBonusMiles", "midRentalDays", "mileageBalance", "offerEndDate", "offerEndDateShort", "offerStartDate", "partnerOneCoupon", "partnerOneDiscountCode", "partnerOneDiscountCodeAlt", "partnerTwoCoupon", "partnerTwoDiscountCode", "partnerTwoDiscountCodeAlt", "partnerTwoDiscountPercent", "preferencesUrl", "privacyUrl", "recipientEmail", "recipientEmailUrl", "reservationsUrl", "rewardsUrl", "signInUrl", "socialFourIconUrl", "socialOneIconUrl", "socialThreeIconUrl", "socialTwoIconUrl", "tierFourMiles", "tierOneMiles", "tierThreeMiles", "tierTwoMiles", "unsubscribeUrl", "viewOnlineUrl", "websiteUrl"];
|
|
198
|
+
}, {
|
|
199
|
+
readonly id: "product-updates-roundup";
|
|
200
|
+
readonly channel: "email";
|
|
201
|
+
readonly category: "marketing";
|
|
202
|
+
readonly name: "Product updates roundup";
|
|
203
|
+
readonly description: "Round up recent product updates and an upcoming event, with stats and a walkthrough video.";
|
|
204
|
+
readonly variables: readonly ["accessibilityGuideUrl", "accessibilityReportUrl", "accessibilityReportYear", "agentAdapterGuideUrl", "agentAdapterUrl", "blastVolume", "conferenceDate", "conferenceTicketsUrl", "contactsImportUrl", "customerStoryUrl", "domainTransferUrl", "emailsAnalyzed", "emailsPassed", "meetupDate", "meetupTime", "meetupUrl", "meetupVenue", "passRate", "unsubscribeUrl", "walkthroughVideoUrl"];
|
|
205
|
+
}, {
|
|
206
|
+
readonly id: "flash-getaway-offer";
|
|
207
|
+
readonly channel: "email";
|
|
208
|
+
readonly category: "marketing";
|
|
209
|
+
readonly name: "Flash getaway offer";
|
|
210
|
+
readonly description: "A limited-time getaway offer with a live countdown, two destinations, and a points-or-cash price.";
|
|
211
|
+
readonly variables: readonly ["copyrightYear", "countdownDays", "countdownHours", "countdownMinutes", "destinationOneImageUrl", "destinationOneRetailValue", "destinationOneUrl", "destinationTwoImageUrl", "destinationTwoRetailValue", "destinationTwoUrl", "exploreOffersUrl", "invitationId", "learnMoreUrl", "marketingCode", "minimumPoints", "nightlyValueRange", "offerExpiresDate", "ownershipPriceHigh", "ownershipPriceLow", "phoneDisplay", "phoneTelUrl", "pointsPriceHigh", "pointsPriceLow", "privacyUrl", "recipientInitials", "stayDurationLabel", "stayPrice", "termsUrl", "travelWindowMonths", "unsubscribeUrl", "viewInBrowserUrl"];
|
|
212
|
+
}, {
|
|
213
|
+
readonly id: "membership-benefits-promo";
|
|
214
|
+
readonly channel: "email";
|
|
215
|
+
readonly category: "marketing";
|
|
216
|
+
readonly name: "Membership benefits promotion";
|
|
217
|
+
readonly description: "Promote a paid membership by laying out its perks with icons and a single get-started action.";
|
|
218
|
+
readonly variables: readonly ["accountSettingsUrl", "cafeLocationsUrl", "cafePerkIconUrl", "contactUsUrl", "deliveryIconUrl", "getStartedUrl", "groceryIconUrl", "logoImageUrl", "monthlyCreditIconUrl", "offerGalleryUrl", "onlineShoppingFaqsUrl", "organicIconUrl", "petCareIconUrl", "privacyPolicyUrl", "recipientEmail", "rewardsIconUrl", "rewardsTermsUrl", "supportEmail", "termsOfUseUrl", "unsubscribeUrl", "vipPhoneIconUrl"];
|
|
219
|
+
}, {
|
|
220
|
+
readonly id: "weekly-deals-circular";
|
|
221
|
+
readonly channel: "email";
|
|
222
|
+
readonly category: "marketing";
|
|
223
|
+
readonly name: "Weekly deals circular";
|
|
224
|
+
readonly description: "A weekly retail circular with multi-buy deals, clippable coupons, membership perks, and app links.";
|
|
225
|
+
readonly variables: readonly ["allDealsUrl", "androidAppBadgeUrl", "androidAppUrl", "browserViewUrl", "clipCouponsUrl", "contactUrl", "copyrightYear", "couponFourImageUrl", "couponOneImageUrl", "couponThreeImageUrl", "couponTwoImageUrl", "couponsUrl", "deliveryMinimum", "digitalCouponsUrl", "feedbackUrl", "homeUrl", "iosAppBadgeUrl", "iosAppUrl", "membershipDetailsUrl", "membershipTrialUrl", "membershipUrl", "multiBuyQuantity", "multiBuyUnitSavings", "pointsMultiplier", "preferencesUrl", "privacyUrl", "produceUrl", "recipientEmail", "shopDealUrl", "socialFourIconUrl", "socialFourUrl", "socialOneIconUrl", "socialOneUrl", "socialThreeIconUrl", "socialThreeUrl", "socialTwoIconUrl", "socialTwoUrl", "specialtySavings", "termsUrl", "trialDays", "unsubscribeUrl", "weeklyAdNavUrl", "weeklyAdUrl", "wellnessDiscountPercent", "wellnessUrl"];
|
|
226
|
+
}, {
|
|
227
|
+
readonly id: "seasonal-sale-flyer";
|
|
228
|
+
readonly channel: "email";
|
|
229
|
+
readonly category: "marketing";
|
|
230
|
+
readonly name: "Seasonal sale flyer";
|
|
231
|
+
readonly description: "A dense seasonal sale flyer with tiered promo codes, gift-card offers, product grids, and category links.";
|
|
232
|
+
readonly variables: readonly ["alternatorsImageUrl", "alternatorsUrl", "antifreezeImageUrl", "antifreezeUrl", "appBadgeFiveImageUrl", "appBadgeFourImageUrl", "appBadgeOneImageUrl", "appBadgeThreeImageUrl", "appBadgeTwoImageUrl", "appDownloadUrl", "batteriesImageUrl", "batteriesUrl", "brakePadsImageUrl", "brakePadsUrl", "contactUrl", "copyrightYear", "findStoreUrl", "fogGiftCardAmount", "fogOfferImageUrl", "fogOfferUrl", "freeServicesDetailsUrl", "headlightGiftCardAmount", "headlightGuideUrl", "headlightHeroImageUrl", "headlightOfferUrl", "howtoBannerImageUrl", "lightingBrandStripImageUrl", "lightingImageUrl", "lightingUrl", "offerEndDate", "offersValidRange", "oilBundlesDetailsUrl", "oilBundlesImageUrl", "oilBundlesUrl", "privacyUrl", "productThumbFourImageUrl", "productThumbOneImageUrl", "productThumbThreeImageUrl", "productThumbTwoImageUrl", "promoCode", "promoCodeUrl", "promoMaxSavings", "promoOrderThreshold", "promoPercentNoMin", "promoPercentThreshold", "promoShopUrl", "rewardsUrl", "servicesUrl", "shopOnlineUrl", "sparkPlugsImageUrl", "sparkPlugsUrl", "unsubscribeUrl", "viewInBrowserUrl", "websiteUrl", "weeklyDealsUrl", "wiperGiftCardAmount", "wiperOfferImageUrl", "wiperOfferUrl", "wipersImageUrl", "wipersUrl"];
|
|
233
|
+
}, {
|
|
234
|
+
readonly id: "feature-release-roundup";
|
|
235
|
+
readonly channel: "email";
|
|
236
|
+
readonly category: "marketing";
|
|
237
|
+
readonly name: "Feature release roundup";
|
|
238
|
+
readonly description: "Announce several new features in one email, each with an illustration, detail, and a learn-more link.";
|
|
239
|
+
readonly variables: readonly ["activityFeedImageUrl", "activityFeedUrl", "apiBlogUrl", "apiDocsUrl", "apiGaImageUrl", "brandedShortenersImageUrl", "changelogUrl", "continentsAnalyticsUrl", "domainMgmtUrl", "ledgerpathShortenerUrl", "linksWorkspaceBlogUrl", "linksWorkspaceImageUrl", "notificationsUrl", "preferencesUrl", "reviewUrl", "shortenerSunsetUrl", "sketchlaneShortenerUrl", "socialOneIconUrl", "socialThreeIconUrl", "socialTwoIconUrl", "unsubscribeUrl"];
|
|
240
|
+
}, {
|
|
241
|
+
readonly id: "season-clearance-promo";
|
|
242
|
+
readonly channel: "email";
|
|
243
|
+
readonly category: "marketing";
|
|
244
|
+
readonly name: "Season clearance promotion";
|
|
245
|
+
readonly description: "A last-chance clearance promotion with a hero banner, a deadline phrase, and a single shop action.";
|
|
246
|
+
readonly variables: readonly ["contactEmailUrl", "grabDealsUrl", "heroImageUrl", "offerDeadlinePhrase", "offerEndLong", "offerEndShort", "onlineVersionUrl", "preferencesUrl", "seasonYear", "secondaryBannerImageUrl", "socialFourIconUrl", "socialOneIconUrl", "socialThreeIconUrl", "socialTwoIconUrl", "termsUrl", "unsubscribeUrl"];
|
|
247
|
+
}, {
|
|
248
|
+
readonly id: "onboarding-step";
|
|
249
|
+
readonly channel: "email";
|
|
250
|
+
readonly category: "lifecycle";
|
|
251
|
+
readonly name: "Onboarding step";
|
|
252
|
+
readonly description: "One step in an onboarding sequence, with progress and a single next action.";
|
|
253
|
+
readonly variables: readonly ["ctaLabel", "ctaUrl", "docsUrl", "firstName", "logoUrl", "stepDescription", "stepNumber", "stepTitle", "stepTotal", "workspace"];
|
|
254
|
+
}, {
|
|
255
|
+
readonly id: "trial-ending";
|
|
256
|
+
readonly channel: "email";
|
|
257
|
+
readonly category: "lifecycle";
|
|
258
|
+
readonly name: "Trial ending";
|
|
259
|
+
readonly description: "Warn a trial user their access is ending and prompt an upgrade before it lapses.";
|
|
260
|
+
readonly variables: readonly ["contactUrl", "daysLeft", "firstName", "logoUrl", "planName", "planPrice", "planSummary", "trialEndDate", "upgradeUrl", "workspace"];
|
|
261
|
+
}, {
|
|
262
|
+
readonly id: "win-back";
|
|
263
|
+
readonly channel: "email";
|
|
264
|
+
readonly category: "lifecycle";
|
|
265
|
+
readonly name: "Win-back";
|
|
266
|
+
readonly description: "Re-engage a lapsed user by surfacing what's new and inviting them back.";
|
|
267
|
+
readonly variables: readonly ["ctaUrl", "firstName", "logoUrl", "unsubscribeUrl", "whatsNew", "workspace"];
|
|
268
|
+
}, {
|
|
269
|
+
readonly id: "feedback-request";
|
|
270
|
+
readonly channel: "email";
|
|
271
|
+
readonly category: "lifecycle";
|
|
272
|
+
readonly name: "Feedback request";
|
|
273
|
+
readonly description: "Ask an active user for feedback with a short survey and a reply-to fallback.";
|
|
274
|
+
readonly variables: readonly ["firstName", "logoUrl", "senderName", "surveyUrl", "tenure", "workspace"];
|
|
275
|
+
}, {
|
|
276
|
+
readonly id: "product-onboarding-tour";
|
|
277
|
+
readonly channel: "email";
|
|
278
|
+
readonly category: "lifecycle";
|
|
279
|
+
readonly name: "Product onboarding tour";
|
|
280
|
+
readonly description: "Walk a new user through the product's core features with an illustrated tour and app-store links.";
|
|
281
|
+
readonly variables: readonly ["appStoreBadgeUrl", "emailGuideImageUrl", "emailGuideUrl", "helpCenterUrl", "incomeDashboardImageUrl", "incomeDashboardUrl", "incomeGuideImageUrl", "incomeGuideUrl", "mediaKitImageUrl", "mediaKitUrl", "playStoreBadgeUrl", "socialOneIconUrl", "socialThreeIconUrl", "socialTwoIconUrl", "unsubscribeUrl", "welcomeEmailImageUrl", "welcomeEmailUrl"];
|
|
282
|
+
}, {
|
|
283
|
+
readonly id: "setup-checklist";
|
|
284
|
+
readonly channel: "email";
|
|
285
|
+
readonly category: "lifecycle";
|
|
286
|
+
readonly name: "Setup checklist";
|
|
287
|
+
readonly description: "A short welcome email that walks a new customer through three setup steps to launch their storefront.";
|
|
288
|
+
readonly variables: readonly ["addAppsImageUrl", "continueUrl", "copyrightYear", "pricingImageUrl", "storePageImageUrl", "unsubscribeUrl"];
|
|
289
|
+
}, {
|
|
290
|
+
readonly id: "sms-otp";
|
|
291
|
+
readonly channel: "sms";
|
|
292
|
+
readonly category: "transactional";
|
|
293
|
+
readonly name: "One-time passcode (SMS)";
|
|
294
|
+
readonly description: "Deliver a short-lived sign-in or 2FA code in a single GSM-7 segment.";
|
|
295
|
+
readonly variables: readonly ["code", "expiryMinutes", "workspace"];
|
|
296
|
+
}, {
|
|
297
|
+
readonly id: "sms-shipping-update";
|
|
298
|
+
readonly channel: "sms";
|
|
299
|
+
readonly category: "transactional";
|
|
300
|
+
readonly name: "Shipping update (SMS)";
|
|
301
|
+
readonly description: "Tell a customer their order shipped, with a tracking link.";
|
|
302
|
+
readonly variables: readonly ["orderNumber", "trackingUrl", "workspace"];
|
|
303
|
+
}, {
|
|
304
|
+
readonly id: "sms-appointment-reminder";
|
|
305
|
+
readonly channel: "sms";
|
|
306
|
+
readonly category: "lifecycle";
|
|
307
|
+
readonly name: "Appointment reminder (SMS)";
|
|
308
|
+
readonly description: "Remind a customer of an upcoming appointment with a reschedule path.";
|
|
309
|
+
readonly variables: readonly ["appointmentDate", "appointmentTime", "workspace"];
|
|
310
|
+
}, {
|
|
311
|
+
readonly id: "sms-flash-sale";
|
|
312
|
+
readonly channel: "sms";
|
|
313
|
+
readonly category: "marketing";
|
|
314
|
+
readonly name: "Flash sale (SMS)";
|
|
315
|
+
readonly description: "Drive a limited-time offer with a promo code and a conditional urgency line.";
|
|
316
|
+
readonly variables: readonly ["endsToday", "offerHeadline", "promoCode", "shopUrl", "workspace"];
|
|
317
|
+
}, {
|
|
318
|
+
readonly id: "whatsapp-order-update";
|
|
319
|
+
readonly channel: "whatsapp";
|
|
320
|
+
readonly category: "transactional";
|
|
321
|
+
readonly name: "Order update (WhatsApp)";
|
|
322
|
+
readonly description: "Utility template: shipping confirmation with a tracking URL button.";
|
|
323
|
+
readonly variables: readonly ["estimatedDelivery", "firstName", "orderNumber", "trackingUrl"];
|
|
324
|
+
}, {
|
|
325
|
+
readonly id: "whatsapp-appointment-reminder";
|
|
326
|
+
readonly channel: "whatsapp";
|
|
327
|
+
readonly category: "lifecycle";
|
|
328
|
+
readonly name: "Appointment reminder (WhatsApp)";
|
|
329
|
+
readonly description: "Utility template: appointment reminder with confirm/reschedule quick replies.";
|
|
330
|
+
readonly variables: readonly ["appointmentDate", "appointmentTime", "firstName", "workspace"];
|
|
331
|
+
}, {
|
|
332
|
+
readonly id: "whatsapp-flash-sale";
|
|
333
|
+
readonly channel: "whatsapp";
|
|
334
|
+
readonly category: "marketing";
|
|
335
|
+
readonly name: "Flash sale (WhatsApp)";
|
|
336
|
+
readonly description: "Marketing template: limited-time offer with a copyable promo code and a shop button.";
|
|
337
|
+
readonly variables: readonly ["endsToday", "firstName", "offerDetails", "offerHeadline", "promoCode", "shopUrl"];
|
|
338
|
+
}];
|
|
339
|
+
type PresetId = (typeof presetCatalog)[number]["id"];
|
|
340
|
+
type PresetVariable = (typeof presetCatalog)[number]["variables"][number];
|
|
341
|
+
type EmailPreset = Extract<(typeof presetCatalog)[number], {
|
|
342
|
+
channel: "email";
|
|
343
|
+
}>;
|
|
344
|
+
type EmailPresetId = EmailPreset["id"];
|
|
345
|
+
type EmailPresetVariable = EmailPreset extends (infer Preset) ? Preset extends {
|
|
346
|
+
readonly variables: ReadonlyArray<infer Variable>;
|
|
347
|
+
} ? Variable : never : never;
|
|
348
|
+
//#endregion
|
|
349
|
+
export { EmailPresetId, EmailPresetVariable, PresetCategory, PresetId, PresetMeta, PresetVariable, RECOMMENDED_THEME, presetCatalog };
|
|
350
|
+
//# sourceMappingURL=presets.d.ts.map
|