@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
@@ -1,61 +0,0 @@
1
- //#region starters/public-preview.d.ts
2
- type PreviewQuality = "ready" | "asset-free";
3
- /** A declared fixture value: JSON, so a template can take a list of stories as well as a string. */
4
- type PreviewSampleValue = string | number | boolean | null | ReadonlyArray<PreviewSampleValue> | {
5
- readonly [key: string]: PreviewSampleValue;
6
- };
7
- interface PublicTemplatePreview {
8
- readonly subject: string;
9
- readonly preheader: string;
10
- readonly quality: PreviewQuality;
11
- readonly sampleData: Readonly<Record<string, PreviewSampleValue>>;
12
- readonly assets: ReadonlyArray<{
13
- readonly variable: string;
14
- readonly kind: "image" | "logo";
15
- }>;
16
- }
17
- /** Gallery metadata augments the actual default fixture; it does not supply render input. */
18
- declare const publicTemplatePreviews: {
19
- readonly "linear-login-code": PublicTemplatePreview;
20
- readonly "product-newsletter": PublicTemplatePreview;
21
- readonly "order-receipt": PublicTemplatePreview;
22
- readonly "vercel-invitation": PublicTemplatePreview;
23
- readonly "product-launch-promo": PublicTemplatePreview;
24
- readonly welcome: PublicTemplatePreview;
25
- readonly "email-verification": PublicTemplatePreview;
26
- readonly otp: PublicTemplatePreview;
27
- readonly "password-reset": PublicTemplatePreview;
28
- readonly "payment-failed": PublicTemplatePreview;
29
- readonly "shipping-update": PublicTemplatePreview;
30
- readonly notification: PublicTemplatePreview;
31
- readonly "team-invite": PublicTemplatePreview;
32
- readonly "product-digest": PublicTemplatePreview;
33
- readonly announcement: PublicTemplatePreview;
34
- readonly "event-invite": PublicTemplatePreview;
35
- readonly "membership-promo": PublicTemplatePreview;
36
- readonly "onboarding-step": PublicTemplatePreview;
37
- readonly "trial-ending": PublicTemplatePreview;
38
- readonly "win-back": PublicTemplatePreview;
39
- readonly "feedback-request": PublicTemplatePreview;
40
- readonly "editorial-newsletter": PublicTemplatePreview;
41
- readonly "member-referral-offer": PublicTemplatePreview;
42
- readonly "catalog-sale-newsletter": PublicTemplatePreview;
43
- readonly "limited-time-savings": PublicTemplatePreview;
44
- readonly "rewards-milestone": PublicTemplatePreview;
45
- readonly "travel-rewards-promo": PublicTemplatePreview;
46
- readonly "events-roundup": PublicTemplatePreview;
47
- readonly "product-onboarding-tour": PublicTemplatePreview;
48
- readonly "product-updates-roundup": PublicTemplatePreview;
49
- readonly "flash-getaway-offer": PublicTemplatePreview;
50
- readonly "membership-benefits-promo": PublicTemplatePreview;
51
- readonly "industry-news-digest": PublicTemplatePreview;
52
- readonly "weekly-deals-circular": PublicTemplatePreview;
53
- readonly "data-sharing-review": PublicTemplatePreview;
54
- readonly "seasonal-sale-flyer": PublicTemplatePreview;
55
- readonly "setup-checklist": PublicTemplatePreview;
56
- readonly "feature-release-roundup": PublicTemplatePreview;
57
- readonly "season-clearance-promo": PublicTemplatePreview;
58
- };
59
- //#endregion
60
- export { PreviewQuality, PreviewSampleValue, PublicTemplatePreview, publicTemplatePreviews };
61
- //# sourceMappingURL=public-preview.d.ts.map
@@ -1,83 +0,0 @@
1
- import { starterEmailFixtures } from "./sources.js";
2
- //#region starters/public-preview.ts
3
- const preview = (id, quality, assets) => {
4
- const fixture = starterEmailFixtures[id]?.default;
5
- if (fixture === void 0) throw new Error(`Missing generated gallery fixture: ${id}`);
6
- return {
7
- subject: fixture.subject,
8
- preheader: fixture.preheader,
9
- sampleData: fixture.input,
10
- quality,
11
- assets
12
- };
13
- };
14
- /** Gallery metadata augments the actual default fixture; it does not supply render input. */
15
- const publicTemplatePreviews = {
16
- "linear-login-code": preview("linear-login-code", "ready", []),
17
- "product-newsletter": preview("product-newsletter", "ready", [{
18
- variable: "leadImage",
19
- kind: "image"
20
- }]),
21
- "order-receipt": preview("order-receipt", "ready", []),
22
- "vercel-invitation": preview("vercel-invitation", "ready", [{
23
- variable: "userImage",
24
- kind: "image"
25
- }, {
26
- variable: "teamImage",
27
- kind: "image"
28
- }]),
29
- "product-launch-promo": preview("product-launch-promo", "ready", []),
30
- welcome: preview("welcome", "ready", []),
31
- "email-verification": preview("email-verification", "ready", []),
32
- otp: preview("otp", "ready", []),
33
- "password-reset": preview("password-reset", "ready", []),
34
- "payment-failed": preview("payment-failed", "ready", []),
35
- "shipping-update": preview("shipping-update", "ready", []),
36
- notification: preview("notification", "ready", [{
37
- variable: "actorAvatar",
38
- kind: "image"
39
- }]),
40
- "team-invite": preview("team-invite", "ready", [{
41
- variable: "inviterAvatarUrl",
42
- kind: "image"
43
- }]),
44
- "product-digest": preview("product-digest", "ready", []),
45
- announcement: preview("announcement", "ready", []),
46
- "event-invite": preview("event-invite", "ready", []),
47
- "membership-promo": preview("membership-promo", "ready", []),
48
- "onboarding-step": preview("onboarding-step", "ready", []),
49
- "trial-ending": preview("trial-ending", "ready", []),
50
- "win-back": preview("win-back", "ready", []),
51
- "feedback-request": preview("feedback-request", "ready", []),
52
- "editorial-newsletter": preview("editorial-newsletter", "ready", [{
53
- variable: "authorAvatar",
54
- kind: "image"
55
- }, {
56
- variable: "heroImage",
57
- kind: "image"
58
- }]),
59
- "member-referral-offer": preview("member-referral-offer", "ready", []),
60
- "catalog-sale-newsletter": preview("catalog-sale-newsletter", "ready", []),
61
- "limited-time-savings": preview("limited-time-savings", "ready", []),
62
- "rewards-milestone": preview("rewards-milestone", "ready", []),
63
- "travel-rewards-promo": preview("travel-rewards-promo", "ready", []),
64
- "events-roundup": preview("events-roundup", "ready", []),
65
- "product-onboarding-tour": preview("product-onboarding-tour", "ready", []),
66
- "product-updates-roundup": preview("product-updates-roundup", "ready", []),
67
- "flash-getaway-offer": preview("flash-getaway-offer", "ready", []),
68
- "membership-benefits-promo": preview("membership-benefits-promo", "ready", []),
69
- "industry-news-digest": preview("industry-news-digest", "ready", []),
70
- "weekly-deals-circular": preview("weekly-deals-circular", "ready", []),
71
- "data-sharing-review": preview("data-sharing-review", "ready", [{
72
- variable: "connectedServiceIconUrl",
73
- kind: "image"
74
- }]),
75
- "seasonal-sale-flyer": preview("seasonal-sale-flyer", "ready", []),
76
- "setup-checklist": preview("setup-checklist", "ready", []),
77
- "feature-release-roundup": preview("feature-release-roundup", "ready", []),
78
- "season-clearance-promo": preview("season-clearance-promo", "ready", [])
79
- };
80
- //#endregion
81
- export { publicTemplatePreviews };
82
-
83
- //# sourceMappingURL=public-preview.js.map
@@ -1,2 +0,0 @@
1
- import { a as ShowcaseProjectId, c as showcaseProject, i as ShowcaseProject, l as showcaseProjects, n as OwnedShowcaseId, o as ShowcaseProvenance, r as SHOWCASE_ROOT, s as isShowcaseProjectId, t as BrandRecreationShowcaseId, u as showcaseSourcePath } from "../showcase-egkusQBf.js";
2
- export { BrandRecreationShowcaseId, OwnedShowcaseId, SHOWCASE_ROOT, ShowcaseProject, ShowcaseProjectId, ShowcaseProvenance, isShowcaseProjectId, showcaseProject, showcaseProjects, showcaseSourcePath };
@@ -1,335 +0,0 @@
1
- //#region starters/showcase.ts
2
- /** Repository-relative directory holding one directory per showcase project. */
3
- const SHOWCASE_ROOT = "examples/email-showcase/starters";
4
- const showcaseProjects = [
5
- {
6
- id: "data-sharing-review",
7
- entryPath: "emails/data-sharing-review.tsx",
8
- provenance: { kind: "owned" },
9
- category: "transactional",
10
- gallerySlug: "data-sharing-review",
11
- recordedAt: "2026-09-08T00:00:00.000Z"
12
- },
13
- {
14
- id: "editorial-newsletter",
15
- entryPath: "emails/editorial-newsletter.tsx",
16
- provenance: { kind: "owned" },
17
- category: "digest",
18
- gallerySlug: "editorial-newsletter",
19
- recordedAt: "2026-09-08T00:00:00.000Z"
20
- },
21
- {
22
- id: "email-verification",
23
- entryPath: "emails/email-verification.tsx",
24
- provenance: { kind: "owned" },
25
- category: "transactional",
26
- gallerySlug: "email-verification",
27
- recordedAt: "2026-09-08T00:00:00.000Z"
28
- },
29
- {
30
- id: "events-roundup",
31
- entryPath: "emails/events-roundup.tsx",
32
- provenance: { kind: "owned" },
33
- category: "digest",
34
- gallerySlug: "events-roundup",
35
- recordedAt: "2026-09-08T00:00:00.000Z"
36
- },
37
- {
38
- id: "feature-release-roundup",
39
- entryPath: "emails/feature-release-roundup.tsx",
40
- provenance: { kind: "owned" },
41
- category: "marketing",
42
- gallerySlug: "feature-release-roundup",
43
- recordedAt: "2026-09-08T00:00:00.000Z"
44
- },
45
- {
46
- id: "feedback-request",
47
- entryPath: "emails/feedback-request.tsx",
48
- provenance: { kind: "owned" },
49
- category: "lifecycle",
50
- gallerySlug: "feedback-request",
51
- recordedAt: "2026-09-08T00:00:00.000Z"
52
- },
53
- {
54
- id: "flash-getaway-offer",
55
- entryPath: "emails/flash-getaway-offer.tsx",
56
- provenance: { kind: "owned" },
57
- category: "marketing",
58
- gallerySlug: "flash-getaway-offer",
59
- recordedAt: "2026-09-08T00:00:00.000Z"
60
- },
61
- {
62
- id: "industry-news-digest",
63
- entryPath: "emails/industry-news-digest.tsx",
64
- provenance: { kind: "owned" },
65
- category: "digest",
66
- gallerySlug: "industry-news-digest",
67
- recordedAt: "2026-09-08T00:00:00.000Z"
68
- },
69
- {
70
- id: "rewards-milestone",
71
- entryPath: "emails/rewards-milestone.tsx",
72
- provenance: { kind: "owned" },
73
- category: "marketing",
74
- gallerySlug: "rewards-milestone",
75
- recordedAt: "2026-09-08T00:00:00.000Z"
76
- },
77
- {
78
- id: "member-referral-offer",
79
- entryPath: "emails/member-referral-offer.tsx",
80
- provenance: { kind: "owned" },
81
- category: "marketing",
82
- gallerySlug: "member-referral-offer",
83
- recordedAt: "2026-09-08T00:00:00.000Z"
84
- },
85
- {
86
- id: "catalog-sale-newsletter",
87
- entryPath: "emails/catalog-sale-newsletter.tsx",
88
- provenance: { kind: "owned" },
89
- category: "marketing",
90
- gallerySlug: "catalog-sale-newsletter",
91
- recordedAt: "2026-09-08T00:00:00.000Z"
92
- },
93
- {
94
- id: "event-invite",
95
- entryPath: "emails/event-invite.tsx",
96
- provenance: { kind: "owned" },
97
- category: "marketing",
98
- gallerySlug: "event-invite",
99
- recordedAt: "2026-09-08T00:00:00.000Z"
100
- },
101
- {
102
- id: "limited-time-savings",
103
- entryPath: "emails/limited-time-savings.tsx",
104
- provenance: { kind: "owned" },
105
- category: "marketing",
106
- gallerySlug: "limited-time-savings",
107
- recordedAt: "2026-09-08T00:00:00.000Z"
108
- },
109
- {
110
- id: "membership-promo",
111
- entryPath: "emails/membership-promo.tsx",
112
- provenance: { kind: "owned" },
113
- category: "marketing",
114
- gallerySlug: "membership-promotion",
115
- recordedAt: "2026-09-08T00:00:00.000Z"
116
- },
117
- {
118
- id: "announcement",
119
- entryPath: "emails/announcement.tsx",
120
- provenance: { kind: "owned" },
121
- category: "marketing",
122
- gallerySlug: "feature-announcement",
123
- recordedAt: "2026-09-08T00:00:00.000Z"
124
- },
125
- {
126
- id: "linear-login-code",
127
- entryPath: "emails/linear-login-code.tsx",
128
- provenance: {
129
- kind: "brand-recreation",
130
- brand: "Linear",
131
- subject: "login code",
132
- reviewedNote: "Reviewed recreation of Linear's login code email, its canonical project assets, and its brand attribution."
133
- },
134
- category: "transactional",
135
- gallerySlug: "linear-login-code",
136
- recordedAt: "2026-09-08T00:00:00.000Z"
137
- },
138
- {
139
- id: "membership-benefits-promo",
140
- entryPath: "emails/membership-benefits-promo.tsx",
141
- provenance: { kind: "owned" },
142
- category: "marketing",
143
- gallerySlug: "membership-benefits-promo",
144
- recordedAt: "2026-09-08T00:00:00.000Z"
145
- },
146
- {
147
- id: "notification",
148
- entryPath: "emails/notification.tsx",
149
- provenance: { kind: "owned" },
150
- category: "transactional",
151
- gallerySlug: "activity-notification",
152
- recordedAt: "2026-09-08T00:00:00.000Z"
153
- },
154
- {
155
- id: "onboarding-step",
156
- entryPath: "emails/onboarding-step.tsx",
157
- provenance: { kind: "owned" },
158
- category: "lifecycle",
159
- gallerySlug: "onboarding-step",
160
- recordedAt: "2026-09-08T00:00:00.000Z"
161
- },
162
- {
163
- id: "order-receipt",
164
- entryPath: "emails/order-receipt.tsx",
165
- provenance: { kind: "owned" },
166
- category: "transactional",
167
- gallerySlug: "order-receipt",
168
- recordedAt: "2026-09-08T00:00:00.000Z"
169
- },
170
- {
171
- id: "otp",
172
- entryPath: "emails/otp.tsx",
173
- provenance: { kind: "owned" },
174
- category: "transactional",
175
- gallerySlug: "one-time-passcode",
176
- recordedAt: "2026-09-08T00:00:00.000Z"
177
- },
178
- {
179
- id: "password-reset",
180
- entryPath: "emails/password-reset.tsx",
181
- provenance: { kind: "owned" },
182
- category: "transactional",
183
- gallerySlug: "password-reset",
184
- recordedAt: "2026-09-08T00:00:00.000Z"
185
- },
186
- {
187
- id: "payment-failed",
188
- entryPath: "emails/payment-failed.tsx",
189
- provenance: { kind: "owned" },
190
- category: "transactional",
191
- gallerySlug: "payment-failed",
192
- recordedAt: "2026-09-08T00:00:00.000Z"
193
- },
194
- {
195
- id: "product-digest",
196
- entryPath: "emails/product-digest.tsx",
197
- provenance: { kind: "owned" },
198
- category: "digest",
199
- gallerySlug: "product-digest",
200
- recordedAt: "2026-09-08T00:00:00.000Z"
201
- },
202
- {
203
- id: "product-launch-promo",
204
- entryPath: "emails/product-launch-promo.tsx",
205
- provenance: { kind: "owned" },
206
- category: "marketing",
207
- gallerySlug: "product-launch-promotion",
208
- recordedAt: "2026-09-08T00:00:00.000Z"
209
- },
210
- {
211
- id: "product-newsletter",
212
- entryPath: "emails/product-newsletter.tsx",
213
- provenance: { kind: "owned" },
214
- category: "digest",
215
- gallerySlug: "product-newsletter",
216
- recordedAt: "2026-09-08T00:00:00.000Z"
217
- },
218
- {
219
- id: "product-onboarding-tour",
220
- entryPath: "emails/product-onboarding-tour.tsx",
221
- provenance: { kind: "owned" },
222
- category: "lifecycle",
223
- gallerySlug: "product-onboarding-tour",
224
- recordedAt: "2026-09-08T00:00:00.000Z"
225
- },
226
- {
227
- id: "product-updates-roundup",
228
- entryPath: "emails/product-updates-roundup.tsx",
229
- provenance: { kind: "owned" },
230
- category: "marketing",
231
- gallerySlug: "product-updates-roundup",
232
- recordedAt: "2026-09-08T00:00:00.000Z"
233
- },
234
- {
235
- id: "season-clearance-promo",
236
- entryPath: "emails/season-clearance-promo.tsx",
237
- provenance: { kind: "owned" },
238
- category: "marketing",
239
- gallerySlug: "season-clearance-promo",
240
- recordedAt: "2026-09-08T00:00:00.000Z"
241
- },
242
- {
243
- id: "seasonal-sale-flyer",
244
- entryPath: "emails/seasonal-sale-flyer.tsx",
245
- provenance: { kind: "owned" },
246
- category: "marketing",
247
- gallerySlug: "seasonal-sale-flyer",
248
- recordedAt: "2026-09-08T00:00:00.000Z"
249
- },
250
- {
251
- id: "setup-checklist",
252
- entryPath: "emails/setup-checklist.tsx",
253
- provenance: { kind: "owned" },
254
- category: "lifecycle",
255
- gallerySlug: "setup-checklist",
256
- recordedAt: "2026-09-08T00:00:00.000Z"
257
- },
258
- {
259
- id: "shipping-update",
260
- entryPath: "emails/shipping-update.tsx",
261
- provenance: { kind: "owned" },
262
- category: "transactional",
263
- gallerySlug: "shipping-update",
264
- recordedAt: "2026-09-08T00:00:00.000Z"
265
- },
266
- {
267
- id: "team-invite",
268
- entryPath: "emails/team-invite.tsx",
269
- provenance: { kind: "owned" },
270
- category: "transactional",
271
- gallerySlug: "team-invite",
272
- recordedAt: "2026-09-08T00:00:00.000Z"
273
- },
274
- {
275
- id: "travel-rewards-promo",
276
- entryPath: "emails/travel-rewards-promo.tsx",
277
- provenance: { kind: "owned" },
278
- category: "marketing",
279
- gallerySlug: "travel-rewards-promo",
280
- recordedAt: "2026-09-08T00:00:00.000Z"
281
- },
282
- {
283
- id: "trial-ending",
284
- entryPath: "emails/trial-ending.tsx",
285
- provenance: { kind: "owned" },
286
- category: "lifecycle",
287
- gallerySlug: "trial-ending",
288
- recordedAt: "2026-09-08T00:00:00.000Z"
289
- },
290
- {
291
- id: "vercel-invitation",
292
- entryPath: "emails/vercel-invitation.tsx",
293
- provenance: {
294
- kind: "brand-recreation",
295
- brand: "Vercel",
296
- subject: "team invitation",
297
- reviewedNote: "Reviewed recreation of Vercel's team invitation email, its canonical project assets, and its brand attribution."
298
- },
299
- category: "transactional",
300
- gallerySlug: "vercel-team-invitation",
301
- recordedAt: "2026-09-08T00:00:00.000Z"
302
- },
303
- {
304
- id: "weekly-deals-circular",
305
- entryPath: "emails/weekly-deals-circular.tsx",
306
- provenance: { kind: "owned" },
307
- category: "marketing",
308
- gallerySlug: "weekly-deals-circular",
309
- recordedAt: "2026-09-08T00:00:00.000Z"
310
- },
311
- {
312
- id: "welcome",
313
- entryPath: "emails/welcome.tsx",
314
- provenance: { kind: "owned" },
315
- category: "transactional",
316
- gallerySlug: "welcome-email",
317
- recordedAt: "2026-09-08T00:00:00.000Z"
318
- },
319
- {
320
- id: "win-back",
321
- entryPath: "emails/win-back.tsx",
322
- provenance: { kind: "owned" },
323
- category: "lifecycle",
324
- gallerySlug: "win-back",
325
- recordedAt: "2026-09-08T00:00:00.000Z"
326
- }
327
- ];
328
- const isShowcaseProjectId = (id) => showcaseProjects.some((project) => project.id === id);
329
- const showcaseProject = (id) => showcaseProjects.find((project) => project.id === id);
330
- /** Repository-relative path of a showcase project's TSX entry. */
331
- const showcaseSourcePath = (project) => `${SHOWCASE_ROOT}/${project.id}/${project.entryPath}`;
332
- //#endregion
333
- export { SHOWCASE_ROOT, isShowcaseProjectId, showcaseProject, showcaseProjects, showcaseSourcePath };
334
-
335
- //# sourceMappingURL=showcase.js.map
@@ -1,45 +0,0 @@
1
- //#region starters/sources.gen.d.ts
2
- /** A declared fixture value: JSON, so a template can take a list of stories as well as a string. */
3
- type StarterEmailFixtureValue = string | number | boolean | null | ReadonlyArray<StarterEmailFixtureValue> | {
4
- readonly [key: string]: StarterEmailFixtureValue;
5
- };
6
- interface StarterEmailFixture {
7
- readonly input: Readonly<Record<string, StarterEmailFixtureValue>>;
8
- readonly subject: string;
9
- readonly preheader: string;
10
- readonly html: string;
11
- readonly text: string;
12
- }
13
- interface StarterProjectFile {
14
- readonly path: string;
15
- readonly content: string;
16
- readonly encoding: "utf8" | "base64";
17
- }
18
- interface StarterProject {
19
- readonly entryPath: string;
20
- readonly files: ReadonlyArray<StarterProjectFile>;
21
- readonly digest: string;
22
- }
23
- /** Complete editable projects, including styles and assets. */
24
- declare const starterProjects: Readonly<Record<string, StarterProject>>;
25
- declare const starterProject: (id: string) => StarterProject | undefined;
26
- declare const starterEmailAssets: Readonly<Record<string, ReadonlyArray<string>>>;
27
- /** Canonical TSX entry source, loaded on demand by authoring surfaces. */
28
- declare const starterModuleSources: Readonly<Record<string, string>>;
29
- declare const starterModuleDigests: Readonly<Record<string, string>>;
30
- declare const starterModuleManifestDigest = "0ede51f4930c174ac9bb11eeabe7bba649df992957be1f332c5442acfb3c2b8f";
31
- /** SML belongs only to the gated SMS and WhatsApp template compilers. */
32
- declare const structuredStarterSources: Readonly<Record<string, string>>;
33
- /** Gallery snapshots generated by executing each declared fixture with actual input. */
34
- declare const starterEmailFixtures: Readonly<Record<string, Readonly<Record<string, StarterEmailFixture>>>>;
35
- declare const starterModuleSource: (id: string) => string | undefined;
36
- /** Each email starter's theme variables, as its `starter.css` sets them. */
37
- declare const starterThemeVariables: Readonly<Record<string, Readonly<Record<string, string>>>>;
38
- /**
39
- * Each email starter's default fixture as a project created with its brand compiles it, against
40
- * `STARTER_PREVIEW_BRAND`. `brandStarterPreview` re-brands it with an organization's brand.
41
- */
42
- declare const starterBrandPreviews: Readonly<Record<string, string>>;
43
- //#endregion
44
- export { StarterEmailFixture, StarterEmailFixtureValue, StarterProject, StarterProjectFile, starterBrandPreviews, starterEmailAssets, starterEmailFixtures, starterModuleDigests, starterModuleManifestDigest, starterModuleSource, starterModuleSources, starterProject, starterProjects, starterThemeVariables, structuredStarterSources };
45
- //# sourceMappingURL=sources.d.ts.map