@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.
- package/AGENTS.md +107 -46
- package/CHANGELOG.md +345 -0
- package/README.md +188 -52
- package/dist/{brand-DcoVkh_S.d.ts → assets-BIsyMQ92.d.ts} +41 -11
- package/dist/{email/brand.js → brand-C0MKTwmX.js} +64 -4
- package/dist/{theme-css.d.ts → brand.d.ts} +12 -3
- package/dist/brand.js +4 -0
- package/dist/channel-specs-C2feJwuP.d.ts +13 -0
- package/dist/compiler.d.ts +88 -115
- package/dist/compiler.js +750 -171
- package/dist/components-BZCqegS8.js +1864 -0
- package/dist/diagnostic-model-DJtqbETd.js +38 -0
- package/dist/{diagnostics-OcQKQYSY.d.ts → diagnostic-model-DxthUZBT.d.ts} +3 -21
- package/dist/{diagnostics-BMYtBCQk.d.ts → diagnostics-B-Gym34R.d.ts} +8 -4
- package/dist/{email/diagnostics.js → diagnostics-CnKFefKz.js} +4 -3
- package/dist/diagnostics.d.ts +410 -2
- package/dist/diagnostics.js +402 -52
- package/dist/edit.d.ts +234 -0
- package/dist/edit.js +947 -0
- package/dist/email/jsx-dev-runtime.d.ts +2 -2
- package/dist/email/jsx-dev-runtime.js +1 -2
- package/dist/email/jsx-runtime.d.ts +1 -1
- package/dist/email/jsx-runtime.js +1 -85
- package/dist/{email/components.d.ts → email.d.ts} +22 -11
- package/dist/email.js +2 -0
- package/dist/fmt.d.ts +32 -0
- package/dist/fmt.js +174 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/{render-vAv_4r9v.js → ir-CLhlklKV.js} +96 -279
- package/dist/jsx-runtime-CBlexoeR.js +98 -0
- package/dist/{elements-BzjjnoCS.d.ts → jsx-runtime-ylIOnaSf.d.ts} +76 -76
- package/dist/profile-pWGtWZXF.js +3803 -0
- package/dist/render-BPonDpCl.d.ts +539 -0
- package/dist/render-BQmfh94k.js +257 -0
- package/dist/render.d.ts +35 -0
- package/dist/render.js +49 -0
- package/dist/sms.d.ts +16 -0
- package/dist/sms.js +12 -0
- package/dist/source-locations-C8wCsiAy.d.ts +23 -0
- package/dist/template-DMPwxMSq.d.ts +65 -0
- package/dist/template-zLUjcwfF.js +42 -0
- package/dist/{theme-css-hFqcPSar.js → theme-css-JtRCm1fb.js} +2 -2
- package/dist/whatsapp.d.ts +57 -0
- package/dist/whatsapp.js +22 -0
- package/generated/contract.json +1788 -0
- package/generated/reference.md +360 -0
- package/package.json +46 -239
- package/samva-brand.d.ts +4 -4
- package/skills/sml/SKILL.md +123 -0
- package/dist/ast-BrDtApwS.d.ts +0 -107
- package/dist/ast.d.ts +0 -2
- package/dist/ast.js +0 -124
- package/dist/candidate.d.ts +0 -29
- package/dist/candidate.js +0 -88
- package/dist/catalog-CKuOooB8.d.ts +0 -354
- package/dist/checks-D73Xizbw.js +0 -59366
- package/dist/checks.d.ts +0 -33
- package/dist/checks.js +0 -2
- package/dist/classes.d.ts +0 -26
- package/dist/classes.js +0 -184
- package/dist/compile-sms.d.ts +0 -28
- package/dist/compile-sms.js +0 -44
- package/dist/compile-whatsapp.d.ts +0 -56
- package/dist/compile-whatsapp.js +0 -186
- package/dist/compile.d.ts +0 -18
- package/dist/compile.js +0 -29
- package/dist/components.d.ts +0 -289
- package/dist/components.js +0 -106
- package/dist/conditionals.d.ts +0 -10
- package/dist/conditionals.js +0 -74
- package/dist/corpus-CPPfgAHN.d.ts +0 -106
- package/dist/css-CS2jLID6.d.ts +0 -109
- package/dist/email/assets.d.ts +0 -40
- package/dist/email/assets.js +0 -63
- package/dist/email/brand-footer.d.ts +0 -34
- package/dist/email/brand-footer.js +0 -62
- package/dist/email/brand.d.ts +0 -2
- package/dist/email/components.js +0 -240
- package/dist/email/diagnostics.d.ts +0 -2
- package/dist/email/elements.d.ts +0 -2
- package/dist/email/elements.js +0 -299
- package/dist/email/html.d.ts +0 -2
- package/dist/email/html.js +0 -278
- package/dist/email/render.d.ts +0 -50
- package/dist/email/render.js +0 -3
- package/dist/email/selection.d.ts +0 -2
- package/dist/email/selection.js +0 -91
- package/dist/email/source-edit.d.ts +0 -67
- package/dist/email/source-edit.js +0 -185
- package/dist/email/stylesheets.d.ts +0 -15
- package/dist/email/stylesheets.js +0 -48
- package/dist/email/text.d.ts +0 -7
- package/dist/email/text.js +0 -100
- package/dist/emit.d.ts +0 -51
- package/dist/emit.js +0 -151
- package/dist/html-Bl9BAdqc.d.ts +0 -42
- package/dist/interpolate.d.ts +0 -24
- package/dist/interpolate.js +0 -43
- package/dist/jsx-dev-runtime.d.ts +0 -11
- package/dist/jsx-dev-runtime.js +0 -15
- package/dist/jsx-runtime-I-1nCtl2.d.ts +0 -57
- package/dist/jsx-runtime.d.ts +0 -2
- package/dist/jsx-runtime.js +0 -121
- package/dist/lexer.d.ts +0 -60
- package/dist/lexer.js +0 -281
- package/dist/model.d.ts +0 -24
- package/dist/model.js +0 -77
- package/dist/ops-BvwqHl7V.js +0 -630
- package/dist/ops.d.ts +0 -114
- package/dist/ops.js +0 -2
- package/dist/parser-t29cHLVL.d.ts +0 -396
- package/dist/parser.d.ts +0 -2
- package/dist/parser.js +0 -859
- package/dist/predicate-BI6uRRM-.js +0 -549
- package/dist/predicate-M-05Nd7R.d.ts +0 -56
- package/dist/predicate.d.ts +0 -2
- package/dist/predicate.js +0 -2
- package/dist/printer.d.ts +0 -6
- package/dist/printer.js +0 -122
- package/dist/registry-Dcp6QEK_.d.ts +0 -73
- package/dist/registry.d.ts +0 -2
- package/dist/registry.js +0 -646
- package/dist/render-template.d.ts +0 -45
- package/dist/render-template.js +0 -76
- package/dist/selection-CCArx9lU.d.ts +0 -91
- package/dist/showcase-egkusQBf.d.ts +0 -415
- package/dist/sms-segments-y4FpPilJ.d.ts +0 -13
- package/dist/sms-segments.d.ts +0 -2
- package/dist/sms-segments.js +0 -46
- package/dist/source-locations-DrCM82Ym.d.ts +0 -67
- package/dist/source-locations.d.ts +0 -2
- package/dist/source-locations.js +0 -102
- package/dist/starters/category-mapping.d.ts +0 -13
- package/dist/starters/category-mapping.js +0 -49
- package/dist/starters/corpus.d.ts +0 -2
- package/dist/starters/corpus.js +0 -194
- package/dist/starters/library.d.ts +0 -18
- package/dist/starters/library.js +0 -692
- package/dist/starters/public-gallery.d.ts +0 -266
- package/dist/starters/public-gallery.js +0 -916
- package/dist/starters/public-handoff.d.ts +0 -164
- package/dist/starters/public-handoff.js +0 -361
- package/dist/starters/public-preview-artifacts.d.ts +0 -43
- package/dist/starters/public-preview-artifacts.js +0 -104
- package/dist/starters/public-preview.d.ts +0 -61
- package/dist/starters/public-preview.js +0 -83
- package/dist/starters/showcase.d.ts +0 -2
- package/dist/starters/showcase.js +0 -335
- package/dist/starters/sources.d.ts +0 -45
- package/dist/starters/sources.js +0 -7762
- package/dist/starters/theme.d.ts +0 -45
- package/dist/starters/theme.js +0 -77
- package/dist/starters.d.ts +0 -2
- package/dist/starters.js +0 -874
- package/dist/tailwind-BYq7Lo6u.js +0 -727
- package/dist/template-DWftqh4x.d.ts +0 -60
- package/dist/template.d.ts +0 -2
- package/dist/template.js +0 -37
- package/dist/theme-css.js +0 -2
- package/dist/tsx-source-instrumentation.d.ts +0 -30
- package/dist/tsx-source-instrumentation.js +0 -115
- package/dist/tsx-tracer.d.ts +0 -112
- package/dist/tsx-tracer.js +0 -985
- package/dist/variables-J_L3qxRa.d.ts +0 -77
- package/dist/variables.d.ts +0 -2
- package/dist/variables.js +0 -141
- package/dist/version-BITr58kk.js +0 -96
- package/generated/sml-agent-contract.json +0 -709
- package/generated/sml-email-agent-contract.json +0 -615
- package/generated/sml-email-language-reference.md +0 -94
- package/generated/sml-language-reference.md +0 -195
|
@@ -1,916 +0,0 @@
|
|
|
1
|
-
import { brandRecreationProvenance, matchesTemplateFacets, registerPublicCorpusEntry } from "./corpus.js";
|
|
2
|
-
import { Result } from "better-result";
|
|
3
|
-
//#region starters/public-gallery.ts
|
|
4
|
-
const templateUseCases = [
|
|
5
|
-
"account-access",
|
|
6
|
-
"commerce",
|
|
7
|
-
"product-communication",
|
|
8
|
-
"lifecycle",
|
|
9
|
-
"publishing-campaigns"
|
|
10
|
-
];
|
|
11
|
-
const templateCollectionFamilies = [
|
|
12
|
-
"category",
|
|
13
|
-
"industry",
|
|
14
|
-
"stage",
|
|
15
|
-
"style"
|
|
16
|
-
];
|
|
17
|
-
const isMadeWithSamvaTemplate = (template) => template.corpus.type === "OwnedEditableStarter" || template.corpus.type === "BrandRecreationStarter";
|
|
18
|
-
/** Explicit evidence for every owned starter reviewed in the 2026-08-31 catalog pass. */
|
|
19
|
-
const ownedStarterReviewManifest = {
|
|
20
|
-
welcome: {
|
|
21
|
-
sourcePath: "examples/email-showcase/starters/welcome/emails/welcome.tsx",
|
|
22
|
-
reviewedBy: "Samva catalog review",
|
|
23
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
24
|
-
notes: "Reviewed welcome editable project with stylesheet and original Northloop assets, public preview data, and gallery identity."
|
|
25
|
-
},
|
|
26
|
-
"email-verification": {
|
|
27
|
-
sourcePath: "examples/email-showcase/starters/email-verification/emails/email-verification.tsx",
|
|
28
|
-
reviewedBy: "Samva catalog review",
|
|
29
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
30
|
-
notes: "Reviewed email-verification editable project with stylesheet and original Northloop assets, public preview data, and gallery identity."
|
|
31
|
-
},
|
|
32
|
-
otp: {
|
|
33
|
-
sourcePath: "examples/email-showcase/starters/otp/emails/otp.tsx",
|
|
34
|
-
reviewedBy: "Samva catalog review",
|
|
35
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
36
|
-
notes: "Reviewed otp editable project with stylesheet and original Northloop assets, public preview data, and gallery identity."
|
|
37
|
-
},
|
|
38
|
-
"password-reset": {
|
|
39
|
-
sourcePath: "examples/email-showcase/starters/password-reset/emails/password-reset.tsx",
|
|
40
|
-
reviewedBy: "Samva catalog review",
|
|
41
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
42
|
-
notes: "Reviewed password-reset editable project with stylesheet and original Northloop assets, public preview data, and gallery identity."
|
|
43
|
-
},
|
|
44
|
-
"payment-failed": {
|
|
45
|
-
sourcePath: "examples/email-showcase/starters/payment-failed/emails/payment-failed.tsx",
|
|
46
|
-
reviewedBy: "Samva catalog review",
|
|
47
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
48
|
-
notes: "Reviewed payment-failed editable project with stylesheet and original Fernhollow assets, public preview data, and gallery identity."
|
|
49
|
-
},
|
|
50
|
-
"shipping-update": {
|
|
51
|
-
sourcePath: "examples/email-showcase/starters/shipping-update/emails/shipping-update.tsx",
|
|
52
|
-
reviewedBy: "Samva catalog review",
|
|
53
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
54
|
-
notes: "Reviewed shipping-update editable project with stylesheet and original Fernhollow assets, public preview data, and gallery identity."
|
|
55
|
-
},
|
|
56
|
-
notification: {
|
|
57
|
-
sourcePath: "examples/email-showcase/starters/notification/emails/notification.tsx",
|
|
58
|
-
reviewedBy: "Samva catalog review",
|
|
59
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
60
|
-
notes: "Reviewed notification editable project with stylesheet and original Meridian assets, public preview data, and gallery identity."
|
|
61
|
-
},
|
|
62
|
-
"team-invite": {
|
|
63
|
-
sourcePath: "examples/email-showcase/starters/team-invite/emails/team-invite.tsx",
|
|
64
|
-
reviewedBy: "Samva catalog review",
|
|
65
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
66
|
-
notes: "Reviewed team-invite editable project with stylesheet and original Northloop assets, public preview data, and gallery identity."
|
|
67
|
-
},
|
|
68
|
-
"product-newsletter": {
|
|
69
|
-
sourcePath: "examples/email-showcase/starters/product-newsletter/emails/product-newsletter.tsx",
|
|
70
|
-
reviewedBy: "Samva catalog review",
|
|
71
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
72
|
-
notes: "Reviewed product-newsletter editable SML project, authored assets, public preview data, and gallery identity."
|
|
73
|
-
},
|
|
74
|
-
"product-digest": {
|
|
75
|
-
sourcePath: "examples/email-showcase/starters/product-digest/emails/product-digest.tsx",
|
|
76
|
-
reviewedBy: "Samva catalog review",
|
|
77
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
78
|
-
notes: "Reviewed product-digest editable SML project, authored assets, public preview data, and gallery identity."
|
|
79
|
-
},
|
|
80
|
-
announcement: {
|
|
81
|
-
sourcePath: "examples/email-showcase/starters/announcement/emails/announcement.tsx",
|
|
82
|
-
reviewedBy: "Samva catalog review",
|
|
83
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
84
|
-
notes: "Reviewed announcement editable SML project, original Northwick assets, public preview data, and gallery identity."
|
|
85
|
-
},
|
|
86
|
-
"event-invite": {
|
|
87
|
-
sourcePath: "examples/email-showcase/starters/event-invite/emails/event-invite.tsx",
|
|
88
|
-
reviewedBy: "Samva catalog review",
|
|
89
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
90
|
-
notes: "Reviewed event-invite editable SML project, original Northwick assets, public preview data, and gallery identity."
|
|
91
|
-
},
|
|
92
|
-
"membership-promo": {
|
|
93
|
-
sourcePath: "examples/email-showcase/starters/membership-promo/emails/membership-promo.tsx",
|
|
94
|
-
reviewedBy: "Samva catalog review",
|
|
95
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
96
|
-
notes: "Reviewed membership-promo editable SML project, original Northwick assets, public preview data, and gallery identity."
|
|
97
|
-
},
|
|
98
|
-
"onboarding-step": {
|
|
99
|
-
sourcePath: "examples/email-showcase/starters/onboarding-step/emails/onboarding-step.tsx",
|
|
100
|
-
reviewedBy: "Samva catalog review",
|
|
101
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
102
|
-
notes: "Reviewed onboarding-step editable project with stylesheet and original assets, public preview data, and gallery identity."
|
|
103
|
-
},
|
|
104
|
-
"trial-ending": {
|
|
105
|
-
sourcePath: "examples/email-showcase/starters/trial-ending/emails/trial-ending.tsx",
|
|
106
|
-
reviewedBy: "Samva catalog review",
|
|
107
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
108
|
-
notes: "Reviewed trial-ending editable project with stylesheet and original assets, public preview data, and gallery identity."
|
|
109
|
-
},
|
|
110
|
-
"win-back": {
|
|
111
|
-
sourcePath: "examples/email-showcase/starters/win-back/emails/win-back.tsx",
|
|
112
|
-
reviewedBy: "Samva catalog review",
|
|
113
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
114
|
-
notes: "Reviewed win-back editable project with stylesheet and original assets, public preview data, and gallery identity."
|
|
115
|
-
},
|
|
116
|
-
"feedback-request": {
|
|
117
|
-
sourcePath: "examples/email-showcase/starters/feedback-request/emails/feedback-request.tsx",
|
|
118
|
-
reviewedBy: "Samva catalog review",
|
|
119
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
120
|
-
notes: "Reviewed feedback-request editable project with stylesheet and original assets, public preview data, and gallery identity."
|
|
121
|
-
},
|
|
122
|
-
"editorial-newsletter": {
|
|
123
|
-
sourcePath: "examples/email-showcase/starters/editorial-newsletter/emails/editorial-newsletter.tsx",
|
|
124
|
-
reviewedBy: "Samva catalog review",
|
|
125
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
126
|
-
notes: "Reviewed editorial-newsletter editable SML project, authored assets, public preview data, and gallery identity."
|
|
127
|
-
},
|
|
128
|
-
"member-referral-offer": {
|
|
129
|
-
sourcePath: "examples/email-showcase/starters/member-referral-offer/emails/member-referral-offer.tsx",
|
|
130
|
-
reviewedBy: "Samva catalog review",
|
|
131
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
132
|
-
notes: "Reviewed member-referral-offer editable SML project, original Northwick assets, public preview data, and gallery identity."
|
|
133
|
-
},
|
|
134
|
-
"catalog-sale-newsletter": {
|
|
135
|
-
sourcePath: "examples/email-showcase/starters/catalog-sale-newsletter/emails/catalog-sale-newsletter.tsx",
|
|
136
|
-
reviewedBy: "Samva catalog review",
|
|
137
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
138
|
-
notes: "Reviewed catalog-sale-newsletter editable SML project, original Northwick assets, public preview data, and gallery identity."
|
|
139
|
-
},
|
|
140
|
-
"limited-time-savings": {
|
|
141
|
-
sourcePath: "examples/email-showcase/starters/limited-time-savings/emails/limited-time-savings.tsx",
|
|
142
|
-
reviewedBy: "Samva catalog review",
|
|
143
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
144
|
-
notes: "Reviewed limited-time-savings editable SML project, original Northwick assets, public preview data, and gallery identity."
|
|
145
|
-
},
|
|
146
|
-
"rewards-milestone": {
|
|
147
|
-
sourcePath: "examples/email-showcase/starters/rewards-milestone/emails/rewards-milestone.tsx",
|
|
148
|
-
reviewedBy: "Samva catalog review",
|
|
149
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
150
|
-
notes: "Reviewed rewards-milestone editable SML project, original Northwick assets, public preview data, and gallery identity."
|
|
151
|
-
},
|
|
152
|
-
"order-receipt": {
|
|
153
|
-
sourcePath: "examples/email-showcase/starters/order-receipt/emails/order-receipt.tsx",
|
|
154
|
-
reviewedBy: "Samva catalog review",
|
|
155
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
156
|
-
notes: "Reviewed order-receipt editable project with stylesheet and original assets, public preview data, and gallery identity."
|
|
157
|
-
},
|
|
158
|
-
"travel-rewards-promo": {
|
|
159
|
-
sourcePath: "examples/email-showcase/starters/travel-rewards-promo/emails/travel-rewards-promo.tsx",
|
|
160
|
-
reviewedBy: "Samva catalog review",
|
|
161
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
162
|
-
notes: "Reviewed travel-rewards-promo editable project with stylesheet and original Wayfare assets, public preview data, and gallery identity."
|
|
163
|
-
},
|
|
164
|
-
"events-roundup": {
|
|
165
|
-
sourcePath: "examples/email-showcase/starters/events-roundup/emails/events-roundup.tsx",
|
|
166
|
-
reviewedBy: "Samva catalog review",
|
|
167
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
168
|
-
notes: "Reviewed events-roundup editable SML project, authored assets, public preview data, and gallery identity."
|
|
169
|
-
},
|
|
170
|
-
"product-onboarding-tour": {
|
|
171
|
-
sourcePath: "examples/email-showcase/starters/product-onboarding-tour/emails/product-onboarding-tour.tsx",
|
|
172
|
-
reviewedBy: "Samva catalog review",
|
|
173
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
174
|
-
notes: "Reviewed product-onboarding-tour editable project with stylesheet and original assets, public preview data, and gallery identity."
|
|
175
|
-
},
|
|
176
|
-
"product-updates-roundup": {
|
|
177
|
-
sourcePath: "examples/email-showcase/starters/product-updates-roundup/emails/product-updates-roundup.tsx",
|
|
178
|
-
reviewedBy: "Samva catalog review",
|
|
179
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
180
|
-
notes: "Reviewed product-updates-roundup editable project with stylesheet and original Basalt assets, public preview data, and gallery identity."
|
|
181
|
-
},
|
|
182
|
-
"flash-getaway-offer": {
|
|
183
|
-
sourcePath: "examples/email-showcase/starters/flash-getaway-offer/emails/flash-getaway-offer.tsx",
|
|
184
|
-
reviewedBy: "Samva catalog review",
|
|
185
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
186
|
-
notes: "Reviewed flash-getaway-offer editable project with stylesheet and original Wayfare assets, public preview data, and gallery identity."
|
|
187
|
-
},
|
|
188
|
-
"membership-benefits-promo": {
|
|
189
|
-
sourcePath: "examples/email-showcase/starters/membership-benefits-promo/emails/membership-benefits-promo.tsx",
|
|
190
|
-
reviewedBy: "Samva catalog review",
|
|
191
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
192
|
-
notes: "Reviewed membership-benefits-promo editable project with stylesheet and original Wayfare assets, public preview data, and gallery identity."
|
|
193
|
-
},
|
|
194
|
-
"industry-news-digest": {
|
|
195
|
-
sourcePath: "examples/email-showcase/starters/industry-news-digest/emails/industry-news-digest.tsx",
|
|
196
|
-
reviewedBy: "Samva catalog review",
|
|
197
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
198
|
-
notes: "Reviewed industry-news-digest editable SML project, authored assets, public preview data, and gallery identity."
|
|
199
|
-
},
|
|
200
|
-
"weekly-deals-circular": {
|
|
201
|
-
sourcePath: "examples/email-showcase/starters/weekly-deals-circular/emails/weekly-deals-circular.tsx",
|
|
202
|
-
reviewedBy: "Samva catalog review",
|
|
203
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
204
|
-
notes: "Reviewed weekly-deals-circular editable project with stylesheet and original Oakline assets, public preview data, and gallery identity."
|
|
205
|
-
},
|
|
206
|
-
"data-sharing-review": {
|
|
207
|
-
sourcePath: "examples/email-showcase/starters/data-sharing-review/emails/data-sharing-review.tsx",
|
|
208
|
-
reviewedBy: "Samva catalog review",
|
|
209
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
210
|
-
notes: "Reviewed data-sharing-review editable project with stylesheet and original Northloop assets, public preview data, and gallery identity."
|
|
211
|
-
},
|
|
212
|
-
"seasonal-sale-flyer": {
|
|
213
|
-
sourcePath: "examples/email-showcase/starters/seasonal-sale-flyer/emails/seasonal-sale-flyer.tsx",
|
|
214
|
-
reviewedBy: "Samva catalog review",
|
|
215
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
216
|
-
notes: "Reviewed seasonal-sale-flyer editable project with stylesheet and original Oakline assets, public preview data, and gallery identity."
|
|
217
|
-
},
|
|
218
|
-
"setup-checklist": {
|
|
219
|
-
sourcePath: "examples/email-showcase/starters/setup-checklist/emails/setup-checklist.tsx",
|
|
220
|
-
reviewedBy: "Samva catalog review",
|
|
221
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
222
|
-
notes: "Reviewed setup-checklist editable project with stylesheet and original assets, public preview data, and gallery identity."
|
|
223
|
-
},
|
|
224
|
-
"feature-release-roundup": {
|
|
225
|
-
sourcePath: "examples/email-showcase/starters/feature-release-roundup/emails/feature-release-roundup.tsx",
|
|
226
|
-
reviewedBy: "Samva catalog review",
|
|
227
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
228
|
-
notes: "Reviewed feature-release-roundup editable project with stylesheet and original Basalt assets, public preview data, and gallery identity."
|
|
229
|
-
},
|
|
230
|
-
"season-clearance-promo": {
|
|
231
|
-
sourcePath: "examples/email-showcase/starters/season-clearance-promo/emails/season-clearance-promo.tsx",
|
|
232
|
-
reviewedBy: "Samva catalog review",
|
|
233
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
234
|
-
notes: "Reviewed season-clearance-promo editable project with stylesheet and original Oakline assets, public preview data, and gallery identity."
|
|
235
|
-
},
|
|
236
|
-
"product-launch-promo": {
|
|
237
|
-
sourcePath: "examples/email-showcase/starters/product-launch-promo/emails/product-launch-promo.tsx",
|
|
238
|
-
reviewedBy: "Samva catalog review",
|
|
239
|
-
reviewedAt: "2026-09-08T00:00:00.000Z",
|
|
240
|
-
notes: "Reviewed product-launch-promo editable project, original Oakline assets, public preview data, and gallery identity."
|
|
241
|
-
}
|
|
242
|
-
};
|
|
243
|
-
const isBrandRecreationStarterId = (starterId) => Object.hasOwn(brandRecreationProvenance, starterId);
|
|
244
|
-
const audienceFor = (useCase) => {
|
|
245
|
-
switch (useCase) {
|
|
246
|
-
case "account-access": return ["product-users"];
|
|
247
|
-
case "commerce": return ["customers", "shoppers"];
|
|
248
|
-
case "lifecycle": return ["product-users", "customers"];
|
|
249
|
-
case "product-communication": return ["product-users", "teams"];
|
|
250
|
-
case "publishing-campaigns": return [
|
|
251
|
-
"customers",
|
|
252
|
-
"members",
|
|
253
|
-
"readers"
|
|
254
|
-
];
|
|
255
|
-
}
|
|
256
|
-
};
|
|
257
|
-
const facetValues = (collections, prefix) => collections.filter((id) => id.startsWith(`${prefix}:`)).map((id) => id.slice(prefix.length + 1));
|
|
258
|
-
const template = (value) => {
|
|
259
|
-
const corpus = (() => {
|
|
260
|
-
if (isBrandRecreationStarterId(value.starterId)) {
|
|
261
|
-
const provenance = brandRecreationProvenance[value.starterId];
|
|
262
|
-
return {
|
|
263
|
-
type: "BrandRecreationStarter",
|
|
264
|
-
corpusKind: "brand-recreation-sml",
|
|
265
|
-
provenance,
|
|
266
|
-
review: {
|
|
267
|
-
state: "approved",
|
|
268
|
-
reviewedBy: "Samva catalog review",
|
|
269
|
-
reviewedAt: provenance.recordedAt,
|
|
270
|
-
notes: provenance.reviewedNote
|
|
271
|
-
},
|
|
272
|
-
display: {
|
|
273
|
-
state: "public",
|
|
274
|
-
attributionLabel: `Recreated with Samva. ${provenance.brand} does not endorse or have an affiliation with this example.`
|
|
275
|
-
},
|
|
276
|
-
retention: {
|
|
277
|
-
policy: "retain-until-withdrawn",
|
|
278
|
-
reviewedAt: provenance.recordedAt
|
|
279
|
-
},
|
|
280
|
-
takedown: {
|
|
281
|
-
state: "active",
|
|
282
|
-
contact: "legal@samva.dev",
|
|
283
|
-
procedureUrl: "https://samva.dev/contact?subject=Template%20takedown"
|
|
284
|
-
}
|
|
285
|
-
};
|
|
286
|
-
}
|
|
287
|
-
const review = ownedStarterReviewManifest[value.starterId];
|
|
288
|
-
return {
|
|
289
|
-
type: "OwnedEditableStarter",
|
|
290
|
-
corpusKind: "owned-editable-sml",
|
|
291
|
-
provenance: {
|
|
292
|
-
owner: "Samva",
|
|
293
|
-
sourcePath: review.sourcePath,
|
|
294
|
-
recordedAt: review.reviewedAt
|
|
295
|
-
},
|
|
296
|
-
review: {
|
|
297
|
-
state: "approved",
|
|
298
|
-
reviewedBy: review.reviewedBy,
|
|
299
|
-
reviewedAt: review.reviewedAt,
|
|
300
|
-
notes: review.notes
|
|
301
|
-
},
|
|
302
|
-
display: {
|
|
303
|
-
state: "public",
|
|
304
|
-
attributionLabel: "Made with Samva"
|
|
305
|
-
},
|
|
306
|
-
retention: {
|
|
307
|
-
policy: "retain-until-withdrawn",
|
|
308
|
-
reviewedAt: review.reviewedAt
|
|
309
|
-
},
|
|
310
|
-
takedown: {
|
|
311
|
-
state: "active",
|
|
312
|
-
contact: "legal@samva.dev",
|
|
313
|
-
procedureUrl: "https://samva.dev/contact?subject=Template%20takedown"
|
|
314
|
-
}
|
|
315
|
-
};
|
|
316
|
-
})();
|
|
317
|
-
const facets = {
|
|
318
|
-
jobType: [value.useCase],
|
|
319
|
-
lifecycle: facetValues(value.collections, "stage"),
|
|
320
|
-
industry: facetValues(value.collections, "industry"),
|
|
321
|
-
season: value.starterId === "seasonal-sale-flyer" || value.starterId === "season-clearance-promo" ? ["seasonal"] : ["evergreen"],
|
|
322
|
-
audience: audienceFor(value.useCase),
|
|
323
|
-
design: facetValues(value.collections, "style"),
|
|
324
|
-
brandProvenance: [corpus.type === "BrandRecreationStarter" ? "third-party-reference" : "samva-original"]
|
|
325
|
-
};
|
|
326
|
-
const registration = registerPublicCorpusEntry({
|
|
327
|
-
id: value.starterId,
|
|
328
|
-
corpus,
|
|
329
|
-
facets
|
|
330
|
-
});
|
|
331
|
-
if (Result.isError(registration)) throw new Error(`${registration.error.id}: ${registration.error.message}`);
|
|
332
|
-
return {
|
|
333
|
-
...value,
|
|
334
|
-
path: `/templates/${value.slug}`,
|
|
335
|
-
corpus,
|
|
336
|
-
facets: registration.value.facets
|
|
337
|
-
};
|
|
338
|
-
};
|
|
339
|
-
const publicTemplates = [
|
|
340
|
-
template({
|
|
341
|
-
starterId: "welcome",
|
|
342
|
-
slug: "welcome-email",
|
|
343
|
-
useCase: "lifecycle",
|
|
344
|
-
collections: [
|
|
345
|
-
"category:transactional",
|
|
346
|
-
"industry:saas",
|
|
347
|
-
"stage:activation",
|
|
348
|
-
"style:branded",
|
|
349
|
-
"style:single-cta"
|
|
350
|
-
],
|
|
351
|
-
relatedTemplates: ["email-verification", "onboarding-step"]
|
|
352
|
-
}),
|
|
353
|
-
template({
|
|
354
|
-
starterId: "email-verification",
|
|
355
|
-
slug: "email-verification",
|
|
356
|
-
useCase: "account-access",
|
|
357
|
-
collections: [
|
|
358
|
-
"category:transactional",
|
|
359
|
-
"industry:saas",
|
|
360
|
-
"industry:developer-tools",
|
|
361
|
-
"stage:activation",
|
|
362
|
-
"style:minimal",
|
|
363
|
-
"style:single-cta"
|
|
364
|
-
],
|
|
365
|
-
relatedTemplates: [
|
|
366
|
-
"otp",
|
|
367
|
-
"password-reset",
|
|
368
|
-
"welcome"
|
|
369
|
-
]
|
|
370
|
-
}),
|
|
371
|
-
template({
|
|
372
|
-
starterId: "otp",
|
|
373
|
-
slug: "one-time-passcode",
|
|
374
|
-
useCase: "account-access",
|
|
375
|
-
collections: [
|
|
376
|
-
"category:transactional",
|
|
377
|
-
"industry:saas",
|
|
378
|
-
"industry:developer-tools",
|
|
379
|
-
"stage:activation",
|
|
380
|
-
"style:minimal"
|
|
381
|
-
],
|
|
382
|
-
relatedTemplates: [
|
|
383
|
-
"email-verification",
|
|
384
|
-
"password-reset",
|
|
385
|
-
"linear-login-code"
|
|
386
|
-
]
|
|
387
|
-
}),
|
|
388
|
-
template({
|
|
389
|
-
starterId: "password-reset",
|
|
390
|
-
slug: "password-reset",
|
|
391
|
-
useCase: "account-access",
|
|
392
|
-
collections: [
|
|
393
|
-
"category:transactional",
|
|
394
|
-
"industry:saas",
|
|
395
|
-
"industry:developer-tools",
|
|
396
|
-
"stage:recovery",
|
|
397
|
-
"style:minimal",
|
|
398
|
-
"style:single-cta"
|
|
399
|
-
],
|
|
400
|
-
relatedTemplates: ["otp", "email-verification"]
|
|
401
|
-
}),
|
|
402
|
-
template({
|
|
403
|
-
starterId: "payment-failed",
|
|
404
|
-
slug: "payment-failed",
|
|
405
|
-
useCase: "commerce",
|
|
406
|
-
collections: [
|
|
407
|
-
"category:transactional",
|
|
408
|
-
"industry:ecommerce",
|
|
409
|
-
"industry:saas",
|
|
410
|
-
"stage:recovery",
|
|
411
|
-
"style:data-heavy",
|
|
412
|
-
"style:single-cta"
|
|
413
|
-
],
|
|
414
|
-
relatedTemplates: ["order-receipt", "trial-ending"]
|
|
415
|
-
}),
|
|
416
|
-
template({
|
|
417
|
-
starterId: "shipping-update",
|
|
418
|
-
slug: "shipping-update",
|
|
419
|
-
useCase: "commerce",
|
|
420
|
-
collections: [
|
|
421
|
-
"category:transactional",
|
|
422
|
-
"industry:ecommerce",
|
|
423
|
-
"stage:transaction",
|
|
424
|
-
"style:data-heavy",
|
|
425
|
-
"style:single-cta"
|
|
426
|
-
],
|
|
427
|
-
relatedTemplates: ["order-receipt", "notification"]
|
|
428
|
-
}),
|
|
429
|
-
template({
|
|
430
|
-
starterId: "notification",
|
|
431
|
-
slug: "activity-notification",
|
|
432
|
-
useCase: "product-communication",
|
|
433
|
-
collections: [
|
|
434
|
-
"category:transactional",
|
|
435
|
-
"industry:saas",
|
|
436
|
-
"industry:developer-tools",
|
|
437
|
-
"stage:engagement",
|
|
438
|
-
"style:minimal",
|
|
439
|
-
"style:single-cta"
|
|
440
|
-
],
|
|
441
|
-
relatedTemplates: ["team-invite", "product-digest"]
|
|
442
|
-
}),
|
|
443
|
-
template({
|
|
444
|
-
starterId: "team-invite",
|
|
445
|
-
slug: "team-invite",
|
|
446
|
-
useCase: "product-communication",
|
|
447
|
-
collections: [
|
|
448
|
-
"category:transactional",
|
|
449
|
-
"industry:saas",
|
|
450
|
-
"industry:developer-tools",
|
|
451
|
-
"stage:acquisition",
|
|
452
|
-
"style:branded",
|
|
453
|
-
"style:single-cta"
|
|
454
|
-
],
|
|
455
|
-
relatedTemplates: ["welcome", "notification"]
|
|
456
|
-
}),
|
|
457
|
-
template({
|
|
458
|
-
starterId: "product-digest",
|
|
459
|
-
slug: "product-digest",
|
|
460
|
-
useCase: "product-communication",
|
|
461
|
-
collections: [
|
|
462
|
-
"category:digest-editorial",
|
|
463
|
-
"industry:saas",
|
|
464
|
-
"industry:developer-tools",
|
|
465
|
-
"stage:engagement",
|
|
466
|
-
"style:editorial",
|
|
467
|
-
"style:data-heavy"
|
|
468
|
-
],
|
|
469
|
-
relatedTemplates: ["notification", "product-newsletter"]
|
|
470
|
-
}),
|
|
471
|
-
template({
|
|
472
|
-
starterId: "announcement",
|
|
473
|
-
slug: "feature-announcement",
|
|
474
|
-
useCase: "publishing-campaigns",
|
|
475
|
-
collections: [
|
|
476
|
-
"category:marketing",
|
|
477
|
-
"industry:saas",
|
|
478
|
-
"industry:developer-tools",
|
|
479
|
-
"stage:engagement",
|
|
480
|
-
"style:branded",
|
|
481
|
-
"style:single-cta"
|
|
482
|
-
],
|
|
483
|
-
relatedTemplates: ["product-newsletter", "event-invite"]
|
|
484
|
-
}),
|
|
485
|
-
template({
|
|
486
|
-
starterId: "event-invite",
|
|
487
|
-
slug: "event-invite",
|
|
488
|
-
useCase: "publishing-campaigns",
|
|
489
|
-
collections: [
|
|
490
|
-
"category:marketing",
|
|
491
|
-
"industry:saas",
|
|
492
|
-
"stage:acquisition",
|
|
493
|
-
"style:branded",
|
|
494
|
-
"style:single-cta"
|
|
495
|
-
],
|
|
496
|
-
relatedTemplates: ["announcement", "product-launch-promo"]
|
|
497
|
-
}),
|
|
498
|
-
template({
|
|
499
|
-
starterId: "membership-promo",
|
|
500
|
-
slug: "membership-promotion",
|
|
501
|
-
useCase: "publishing-campaigns",
|
|
502
|
-
collections: [
|
|
503
|
-
"category:marketing",
|
|
504
|
-
"industry:ecommerce",
|
|
505
|
-
"stage:retention",
|
|
506
|
-
"style:branded",
|
|
507
|
-
"style:data-heavy"
|
|
508
|
-
],
|
|
509
|
-
relatedTemplates: ["product-launch-promo", "announcement"]
|
|
510
|
-
}),
|
|
511
|
-
template({
|
|
512
|
-
starterId: "onboarding-step",
|
|
513
|
-
slug: "onboarding-step",
|
|
514
|
-
useCase: "lifecycle",
|
|
515
|
-
collections: [
|
|
516
|
-
"category:lifecycle",
|
|
517
|
-
"industry:saas",
|
|
518
|
-
"industry:developer-tools",
|
|
519
|
-
"stage:activation",
|
|
520
|
-
"style:branded",
|
|
521
|
-
"style:single-cta"
|
|
522
|
-
],
|
|
523
|
-
relatedTemplates: ["welcome", "trial-ending"]
|
|
524
|
-
}),
|
|
525
|
-
template({
|
|
526
|
-
starterId: "trial-ending",
|
|
527
|
-
slug: "trial-ending",
|
|
528
|
-
useCase: "lifecycle",
|
|
529
|
-
collections: [
|
|
530
|
-
"category:lifecycle",
|
|
531
|
-
"industry:saas",
|
|
532
|
-
"stage:retention",
|
|
533
|
-
"style:data-heavy",
|
|
534
|
-
"style:single-cta"
|
|
535
|
-
],
|
|
536
|
-
relatedTemplates: ["onboarding-step", "win-back"]
|
|
537
|
-
}),
|
|
538
|
-
template({
|
|
539
|
-
starterId: "win-back",
|
|
540
|
-
slug: "win-back",
|
|
541
|
-
useCase: "lifecycle",
|
|
542
|
-
collections: [
|
|
543
|
-
"category:lifecycle",
|
|
544
|
-
"industry:saas",
|
|
545
|
-
"stage:recovery",
|
|
546
|
-
"style:branded",
|
|
547
|
-
"style:single-cta"
|
|
548
|
-
],
|
|
549
|
-
relatedTemplates: ["trial-ending", "feedback-request"]
|
|
550
|
-
}),
|
|
551
|
-
template({
|
|
552
|
-
starterId: "feedback-request",
|
|
553
|
-
slug: "feedback-request",
|
|
554
|
-
useCase: "lifecycle",
|
|
555
|
-
collections: [
|
|
556
|
-
"category:lifecycle",
|
|
557
|
-
"industry:saas",
|
|
558
|
-
"stage:retention",
|
|
559
|
-
"style:minimal",
|
|
560
|
-
"style:single-cta"
|
|
561
|
-
],
|
|
562
|
-
relatedTemplates: ["win-back", "onboarding-step"]
|
|
563
|
-
}),
|
|
564
|
-
template({
|
|
565
|
-
starterId: "editorial-newsletter",
|
|
566
|
-
slug: "editorial-newsletter",
|
|
567
|
-
useCase: "publishing-campaigns",
|
|
568
|
-
collections: [
|
|
569
|
-
"category:digest-editorial",
|
|
570
|
-
"industry:newsletters-media",
|
|
571
|
-
"stage:engagement",
|
|
572
|
-
"style:editorial",
|
|
573
|
-
"style:data-heavy"
|
|
574
|
-
],
|
|
575
|
-
relatedTemplates: ["product-newsletter", "product-digest"]
|
|
576
|
-
}),
|
|
577
|
-
template({
|
|
578
|
-
starterId: "member-referral-offer",
|
|
579
|
-
slug: "member-referral-offer",
|
|
580
|
-
useCase: "publishing-campaigns",
|
|
581
|
-
collections: [
|
|
582
|
-
"category:marketing",
|
|
583
|
-
"industry:ecommerce",
|
|
584
|
-
"stage:acquisition",
|
|
585
|
-
"style:branded",
|
|
586
|
-
"style:data-heavy"
|
|
587
|
-
],
|
|
588
|
-
relatedTemplates: ["product-launch-promo", "membership-promo"]
|
|
589
|
-
}),
|
|
590
|
-
template({
|
|
591
|
-
starterId: "catalog-sale-newsletter",
|
|
592
|
-
slug: "catalog-sale-newsletter",
|
|
593
|
-
useCase: "publishing-campaigns",
|
|
594
|
-
collections: [
|
|
595
|
-
"category:marketing",
|
|
596
|
-
"industry:newsletters-media",
|
|
597
|
-
"stage:engagement",
|
|
598
|
-
"style:editorial",
|
|
599
|
-
"style:data-heavy"
|
|
600
|
-
],
|
|
601
|
-
relatedTemplates: ["announcement", "product-launch-promo"]
|
|
602
|
-
}),
|
|
603
|
-
template({
|
|
604
|
-
starterId: "limited-time-savings",
|
|
605
|
-
slug: "limited-time-savings",
|
|
606
|
-
useCase: "publishing-campaigns",
|
|
607
|
-
collections: [
|
|
608
|
-
"category:marketing",
|
|
609
|
-
"industry:ecommerce",
|
|
610
|
-
"stage:acquisition",
|
|
611
|
-
"style:minimal",
|
|
612
|
-
"style:single-cta"
|
|
613
|
-
],
|
|
614
|
-
relatedTemplates: ["product-launch-promo", "membership-promo"]
|
|
615
|
-
}),
|
|
616
|
-
template({
|
|
617
|
-
starterId: "rewards-milestone",
|
|
618
|
-
slug: "rewards-milestone",
|
|
619
|
-
useCase: "publishing-campaigns",
|
|
620
|
-
collections: [
|
|
621
|
-
"category:marketing",
|
|
622
|
-
"industry:ecommerce",
|
|
623
|
-
"stage:engagement",
|
|
624
|
-
"style:branded",
|
|
625
|
-
"style:data-heavy"
|
|
626
|
-
],
|
|
627
|
-
relatedTemplates: ["membership-promo", "product-launch-promo"]
|
|
628
|
-
}),
|
|
629
|
-
template({
|
|
630
|
-
starterId: "order-receipt",
|
|
631
|
-
slug: "order-receipt",
|
|
632
|
-
useCase: "commerce",
|
|
633
|
-
collections: [
|
|
634
|
-
"category:transactional",
|
|
635
|
-
"industry:ecommerce",
|
|
636
|
-
"stage:transaction",
|
|
637
|
-
"style:minimal",
|
|
638
|
-
"style:data-heavy",
|
|
639
|
-
"style:single-cta"
|
|
640
|
-
],
|
|
641
|
-
relatedTemplates: ["shipping-update", "payment-failed"]
|
|
642
|
-
}),
|
|
643
|
-
template({
|
|
644
|
-
starterId: "travel-rewards-promo",
|
|
645
|
-
slug: "travel-rewards-promo",
|
|
646
|
-
useCase: "publishing-campaigns",
|
|
647
|
-
collections: [
|
|
648
|
-
"category:marketing",
|
|
649
|
-
"industry:ecommerce",
|
|
650
|
-
"stage:retention",
|
|
651
|
-
"style:branded",
|
|
652
|
-
"style:data-heavy"
|
|
653
|
-
],
|
|
654
|
-
relatedTemplates: ["membership-promo", "product-launch-promo"]
|
|
655
|
-
}),
|
|
656
|
-
template({
|
|
657
|
-
starterId: "events-roundup",
|
|
658
|
-
slug: "events-roundup",
|
|
659
|
-
useCase: "publishing-campaigns",
|
|
660
|
-
collections: [
|
|
661
|
-
"category:digest-editorial",
|
|
662
|
-
"industry:newsletters-media",
|
|
663
|
-
"stage:engagement",
|
|
664
|
-
"style:editorial",
|
|
665
|
-
"style:data-heavy"
|
|
666
|
-
],
|
|
667
|
-
relatedTemplates: ["product-newsletter", "event-invite"]
|
|
668
|
-
}),
|
|
669
|
-
template({
|
|
670
|
-
starterId: "product-onboarding-tour",
|
|
671
|
-
slug: "product-onboarding-tour",
|
|
672
|
-
useCase: "lifecycle",
|
|
673
|
-
collections: [
|
|
674
|
-
"category:lifecycle",
|
|
675
|
-
"industry:saas",
|
|
676
|
-
"stage:activation",
|
|
677
|
-
"style:branded",
|
|
678
|
-
"style:data-heavy"
|
|
679
|
-
],
|
|
680
|
-
relatedTemplates: ["onboarding-step", "welcome"]
|
|
681
|
-
}),
|
|
682
|
-
template({
|
|
683
|
-
starterId: "product-updates-roundup",
|
|
684
|
-
slug: "product-updates-roundup",
|
|
685
|
-
useCase: "product-communication",
|
|
686
|
-
collections: [
|
|
687
|
-
"category:marketing",
|
|
688
|
-
"industry:developer-tools",
|
|
689
|
-
"stage:engagement",
|
|
690
|
-
"style:branded",
|
|
691
|
-
"style:single-cta"
|
|
692
|
-
],
|
|
693
|
-
relatedTemplates: ["announcement", "product-digest"]
|
|
694
|
-
}),
|
|
695
|
-
template({
|
|
696
|
-
starterId: "flash-getaway-offer",
|
|
697
|
-
slug: "flash-getaway-offer",
|
|
698
|
-
useCase: "publishing-campaigns",
|
|
699
|
-
collections: [
|
|
700
|
-
"category:marketing",
|
|
701
|
-
"industry:ecommerce",
|
|
702
|
-
"stage:acquisition",
|
|
703
|
-
"style:branded",
|
|
704
|
-
"style:single-cta"
|
|
705
|
-
],
|
|
706
|
-
relatedTemplates: ["product-launch-promo", "membership-promo"]
|
|
707
|
-
}),
|
|
708
|
-
template({
|
|
709
|
-
starterId: "membership-benefits-promo",
|
|
710
|
-
slug: "membership-benefits-promo",
|
|
711
|
-
useCase: "publishing-campaigns",
|
|
712
|
-
collections: [
|
|
713
|
-
"category:marketing",
|
|
714
|
-
"industry:ecommerce",
|
|
715
|
-
"stage:retention",
|
|
716
|
-
"style:branded",
|
|
717
|
-
"style:data-heavy"
|
|
718
|
-
],
|
|
719
|
-
relatedTemplates: ["membership-promo", "product-launch-promo"]
|
|
720
|
-
}),
|
|
721
|
-
template({
|
|
722
|
-
starterId: "industry-news-digest",
|
|
723
|
-
slug: "industry-news-digest",
|
|
724
|
-
useCase: "publishing-campaigns",
|
|
725
|
-
collections: [
|
|
726
|
-
"category:digest-editorial",
|
|
727
|
-
"industry:newsletters-media",
|
|
728
|
-
"stage:engagement",
|
|
729
|
-
"style:editorial",
|
|
730
|
-
"style:data-heavy"
|
|
731
|
-
],
|
|
732
|
-
relatedTemplates: ["product-newsletter", "product-digest"]
|
|
733
|
-
}),
|
|
734
|
-
template({
|
|
735
|
-
starterId: "weekly-deals-circular",
|
|
736
|
-
slug: "weekly-deals-circular",
|
|
737
|
-
useCase: "publishing-campaigns",
|
|
738
|
-
collections: [
|
|
739
|
-
"category:marketing",
|
|
740
|
-
"industry:ecommerce",
|
|
741
|
-
"stage:engagement",
|
|
742
|
-
"style:branded",
|
|
743
|
-
"style:data-heavy"
|
|
744
|
-
],
|
|
745
|
-
relatedTemplates: ["product-launch-promo", "membership-promo"]
|
|
746
|
-
}),
|
|
747
|
-
template({
|
|
748
|
-
starterId: "data-sharing-review",
|
|
749
|
-
slug: "data-sharing-review",
|
|
750
|
-
useCase: "product-communication",
|
|
751
|
-
collections: [
|
|
752
|
-
"category:transactional",
|
|
753
|
-
"industry:saas",
|
|
754
|
-
"stage:engagement",
|
|
755
|
-
"style:minimal",
|
|
756
|
-
"style:single-cta"
|
|
757
|
-
],
|
|
758
|
-
relatedTemplates: ["notification", "team-invite"]
|
|
759
|
-
}),
|
|
760
|
-
template({
|
|
761
|
-
starterId: "seasonal-sale-flyer",
|
|
762
|
-
slug: "seasonal-sale-flyer",
|
|
763
|
-
useCase: "publishing-campaigns",
|
|
764
|
-
collections: [
|
|
765
|
-
"category:marketing",
|
|
766
|
-
"industry:ecommerce",
|
|
767
|
-
"stage:acquisition",
|
|
768
|
-
"style:branded",
|
|
769
|
-
"style:data-heavy"
|
|
770
|
-
],
|
|
771
|
-
relatedTemplates: ["product-launch-promo", "announcement"]
|
|
772
|
-
}),
|
|
773
|
-
template({
|
|
774
|
-
starterId: "setup-checklist",
|
|
775
|
-
slug: "setup-checklist",
|
|
776
|
-
useCase: "lifecycle",
|
|
777
|
-
collections: [
|
|
778
|
-
"category:lifecycle",
|
|
779
|
-
"industry:saas",
|
|
780
|
-
"stage:activation",
|
|
781
|
-
"style:minimal",
|
|
782
|
-
"style:single-cta"
|
|
783
|
-
],
|
|
784
|
-
relatedTemplates: ["welcome", "onboarding-step"]
|
|
785
|
-
}),
|
|
786
|
-
template({
|
|
787
|
-
starterId: "feature-release-roundup",
|
|
788
|
-
slug: "feature-release-roundup",
|
|
789
|
-
useCase: "product-communication",
|
|
790
|
-
collections: [
|
|
791
|
-
"category:marketing",
|
|
792
|
-
"industry:developer-tools",
|
|
793
|
-
"stage:engagement",
|
|
794
|
-
"style:branded",
|
|
795
|
-
"style:data-heavy"
|
|
796
|
-
],
|
|
797
|
-
relatedTemplates: ["announcement", "product-digest"]
|
|
798
|
-
}),
|
|
799
|
-
template({
|
|
800
|
-
starterId: "season-clearance-promo",
|
|
801
|
-
slug: "season-clearance-promo",
|
|
802
|
-
useCase: "publishing-campaigns",
|
|
803
|
-
collections: [
|
|
804
|
-
"category:marketing",
|
|
805
|
-
"industry:ecommerce",
|
|
806
|
-
"stage:acquisition",
|
|
807
|
-
"style:branded",
|
|
808
|
-
"style:single-cta"
|
|
809
|
-
],
|
|
810
|
-
relatedTemplates: ["product-launch-promo", "announcement"]
|
|
811
|
-
}),
|
|
812
|
-
template({
|
|
813
|
-
starterId: "linear-login-code",
|
|
814
|
-
slug: "linear-login-code",
|
|
815
|
-
useCase: "account-access",
|
|
816
|
-
collections: [
|
|
817
|
-
"category:transactional",
|
|
818
|
-
"industry:saas",
|
|
819
|
-
"industry:developer-tools",
|
|
820
|
-
"stage:activation",
|
|
821
|
-
"style:minimal",
|
|
822
|
-
"style:branded",
|
|
823
|
-
"style:single-cta"
|
|
824
|
-
],
|
|
825
|
-
relatedTemplates: ["otp", "email-verification"]
|
|
826
|
-
}),
|
|
827
|
-
template({
|
|
828
|
-
starterId: "product-newsletter",
|
|
829
|
-
slug: "product-newsletter",
|
|
830
|
-
useCase: "publishing-campaigns",
|
|
831
|
-
collections: [
|
|
832
|
-
"category:digest-editorial",
|
|
833
|
-
"industry:saas",
|
|
834
|
-
"industry:developer-tools",
|
|
835
|
-
"stage:engagement",
|
|
836
|
-
"style:editorial",
|
|
837
|
-
"style:branded"
|
|
838
|
-
],
|
|
839
|
-
relatedTemplates: ["product-digest", "editorial-newsletter"]
|
|
840
|
-
}),
|
|
841
|
-
template({
|
|
842
|
-
starterId: "product-launch-promo",
|
|
843
|
-
slug: "product-launch-promotion",
|
|
844
|
-
useCase: "commerce",
|
|
845
|
-
collections: [
|
|
846
|
-
"category:marketing",
|
|
847
|
-
"industry:ecommerce",
|
|
848
|
-
"stage:engagement",
|
|
849
|
-
"style:branded",
|
|
850
|
-
"style:single-cta"
|
|
851
|
-
],
|
|
852
|
-
relatedTemplates: ["season-clearance-promo", "membership-promo"]
|
|
853
|
-
}),
|
|
854
|
-
template({
|
|
855
|
-
starterId: "vercel-invitation",
|
|
856
|
-
slug: "vercel-team-invitation",
|
|
857
|
-
useCase: "product-communication",
|
|
858
|
-
collections: [
|
|
859
|
-
"category:transactional",
|
|
860
|
-
"industry:saas",
|
|
861
|
-
"industry:developer-tools",
|
|
862
|
-
"stage:activation",
|
|
863
|
-
"style:minimal",
|
|
864
|
-
"style:branded",
|
|
865
|
-
"style:single-cta"
|
|
866
|
-
],
|
|
867
|
-
relatedTemplates: ["team-invite", "welcome"]
|
|
868
|
-
})
|
|
869
|
-
];
|
|
870
|
-
const publicTemplateIds = publicTemplates.map((item) => item.starterId);
|
|
871
|
-
if (new Set(publicTemplateIds).size !== publicTemplateIds.length) throw new Error("public template registry ids must be unique");
|
|
872
|
-
/** Deterministic strict-intersection search over the canonical public corpus order. */
|
|
873
|
-
const filterPublicTemplatesByFacets = (query) => publicTemplates.filter((item) => matchesTemplateFacets(item.facets, query));
|
|
874
|
-
const members = (id) => publicTemplates.filter((item) => item.collections.some((collectionId) => collectionId === id)).map((item) => item.starterId);
|
|
875
|
-
const collection = (id, relatedCollections = []) => {
|
|
876
|
-
const [family, slug] = id.split(":");
|
|
877
|
-
return {
|
|
878
|
-
id,
|
|
879
|
-
family,
|
|
880
|
-
slug,
|
|
881
|
-
path: `/templates/${family}/${slug}`,
|
|
882
|
-
templates: members(id),
|
|
883
|
-
relatedCollections
|
|
884
|
-
};
|
|
885
|
-
};
|
|
886
|
-
const templateCollections = [
|
|
887
|
-
collection("category:transactional", ["stage:transaction", "style:minimal"]),
|
|
888
|
-
collection("category:lifecycle", ["stage:activation", "stage:retention"]),
|
|
889
|
-
collection("category:marketing", ["stage:acquisition", "style:branded"]),
|
|
890
|
-
collection("category:digest-editorial", ["style:editorial", "industry:newsletters-media"]),
|
|
891
|
-
collection("industry:saas", ["industry:developer-tools", "category:lifecycle"]),
|
|
892
|
-
collection("industry:ecommerce", ["category:transactional", "stage:transaction"]),
|
|
893
|
-
collection("industry:developer-tools", ["industry:saas", "style:minimal"]),
|
|
894
|
-
collection("industry:newsletters-media", ["category:digest-editorial", "style:editorial"]),
|
|
895
|
-
collection("stage:acquisition", ["category:marketing", "stage:activation"]),
|
|
896
|
-
collection("stage:activation", ["category:lifecycle", "style:single-cta"]),
|
|
897
|
-
collection("stage:engagement", ["category:digest-editorial", "style:editorial"]),
|
|
898
|
-
collection("stage:transaction", ["category:transactional", "industry:ecommerce"]),
|
|
899
|
-
collection("stage:retention", ["category:lifecycle", "stage:recovery"]),
|
|
900
|
-
collection("stage:recovery", ["category:lifecycle", "style:minimal"]),
|
|
901
|
-
collection("style:minimal", ["category:transactional", "industry:developer-tools"]),
|
|
902
|
-
collection("style:branded", ["category:marketing", "style:single-cta"]),
|
|
903
|
-
collection("style:editorial", ["category:digest-editorial", "industry:newsletters-media"]),
|
|
904
|
-
collection("style:data-heavy", ["stage:transaction", "category:digest-editorial"]),
|
|
905
|
-
collection("style:single-cta", ["stage:activation", "category:marketing"])
|
|
906
|
-
];
|
|
907
|
-
const publicTemplateGallery = {
|
|
908
|
-
hubPath: "/templates",
|
|
909
|
-
useCases: templateUseCases,
|
|
910
|
-
templates: publicTemplates,
|
|
911
|
-
collections: templateCollections
|
|
912
|
-
};
|
|
913
|
-
//#endregion
|
|
914
|
-
export { filterPublicTemplatesByFacets, isMadeWithSamvaTemplate, ownedStarterReviewManifest, publicTemplateGallery, publicTemplates, templateCollectionFamilies, templateCollections, templateUseCases };
|
|
915
|
-
|
|
916
|
-
//# sourceMappingURL=public-gallery.js.map
|