@samva/markup 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/AGENTS.md +90 -37
  2. package/README.md +188 -52
  3. package/dist/assets-C5duwTya.d.ts +40 -0
  4. package/dist/{brand-DcoVkh_S.d.ts → brand-B-0bN_Ir.d.ts} +2 -2
  5. package/dist/{render-vAv_4r9v.js → cascade-t6kxlgEI.js} +93 -280
  6. package/dist/channel-edit.d.ts +121 -0
  7. package/dist/channel-edit.js +609 -0
  8. package/dist/channel-specs-B6M_HlaV.js +29 -0
  9. package/dist/channel-specs-C2feJwuP.d.ts +13 -0
  10. package/dist/compatibility-DbISoFIq.js +589 -0
  11. package/dist/compiler.d.ts +10 -257
  12. package/dist/compiler.js +10 -730
  13. package/dist/{css-CS2jLID6.d.ts → css-BVQKICKC.d.ts} +3 -3
  14. package/dist/diagnostic-codes.d.ts +403 -0
  15. package/dist/diagnostic-codes.js +399 -0
  16. package/dist/{diagnostics-BMYtBCQk.d.ts → diagnostics-B-Gym34R.d.ts} +8 -4
  17. package/dist/diagnostics.d.ts +31 -2
  18. package/dist/diagnostics.js +1 -19
  19. package/dist/{elements-BzjjnoCS.d.ts → elements-cqldpaJt.d.ts} +3 -3
  20. package/dist/email/assets.d.ts +2 -40
  21. package/dist/email/brand-footer.d.ts +2 -2
  22. package/dist/email/brand-footer.js +4 -3
  23. package/dist/email/brand.d.ts +1 -1
  24. package/dist/email/brand.js +1 -1
  25. package/dist/email/components.d.ts +21 -10
  26. package/dist/email/components.js +46 -11
  27. package/dist/email/diagnostics.d.ts +2 -2
  28. package/dist/email/diagnostics.js +2 -1
  29. package/dist/email/elements.d.ts +1 -1
  30. package/dist/email/html.d.ts +2 -2
  31. package/dist/email/html.js +45 -2
  32. package/dist/email/jsx-dev-runtime.d.ts +2 -2
  33. package/dist/email/jsx-runtime.d.ts +1 -1
  34. package/dist/email/render.d.ts +8 -18
  35. package/dist/email/render.js +163 -3
  36. package/dist/email/text.d.ts +1 -1
  37. package/dist/fmt.d.ts +32 -0
  38. package/dist/fmt.js +174 -0
  39. package/dist/{html-Bl9BAdqc.d.ts → html-BJepOwZ4.d.ts} +19 -5
  40. package/dist/index.d.ts +2 -0
  41. package/dist/index.js +2 -0
  42. package/dist/ir-aaqNE987.d.ts +252 -0
  43. package/dist/ir.d.ts +2 -0
  44. package/dist/ir.js +7 -0
  45. package/dist/preview-Ekdg1dXG.d.ts +100 -0
  46. package/dist/preview.d.ts +2 -0
  47. package/dist/preview.js +160 -0
  48. package/dist/profile-BH-OtdDA.js +3670 -0
  49. package/dist/render-ir.d.ts +19 -0
  50. package/dist/render-ir.js +826 -0
  51. package/dist/sms-segments.d.ts +13 -2
  52. package/dist/sms.d.ts +16 -0
  53. package/dist/sms.js +12 -0
  54. package/dist/{email/source-edit.d.ts → source-edit.d.ts} +55 -6
  55. package/dist/source-edit.js +343 -0
  56. package/dist/source-locations-C8wCsiAy.d.ts +23 -0
  57. package/dist/source-locations.d.ts +2 -2
  58. package/dist/source-locations.js +3 -89
  59. package/dist/static.d.ts +57 -0
  60. package/dist/static.js +69 -0
  61. package/dist/tailwind-CMYpZf1v.js +614 -0
  62. package/dist/template-_QE_rQND.d.ts +65 -0
  63. package/dist/template.d.ts +2 -2
  64. package/dist/template.js +15 -10
  65. package/dist/theme-css.d.ts +1 -1
  66. package/dist/theme-imports-lvBw3AD1.js +109 -0
  67. package/dist/transform-Ct2OMkFN.d.ts +153 -0
  68. package/dist/whatsapp.d.ts +57 -0
  69. package/dist/whatsapp.js +22 -0
  70. package/generated/contract.json +1782 -0
  71. package/generated/reference.md +353 -0
  72. package/package.json +41 -151
  73. package/skills/sml/SKILL.md +123 -0
  74. package/dist/ast-BrDtApwS.d.ts +0 -107
  75. package/dist/ast.d.ts +0 -2
  76. package/dist/ast.js +0 -124
  77. package/dist/candidate.d.ts +0 -29
  78. package/dist/candidate.js +0 -88
  79. package/dist/catalog-CKuOooB8.d.ts +0 -354
  80. package/dist/checks-D73Xizbw.js +0 -59366
  81. package/dist/checks.d.ts +0 -33
  82. package/dist/checks.js +0 -2
  83. package/dist/classes.d.ts +0 -26
  84. package/dist/classes.js +0 -184
  85. package/dist/compile-sms.d.ts +0 -28
  86. package/dist/compile-sms.js +0 -44
  87. package/dist/compile-whatsapp.d.ts +0 -56
  88. package/dist/compile-whatsapp.js +0 -186
  89. package/dist/compile.d.ts +0 -18
  90. package/dist/compile.js +0 -29
  91. package/dist/components.d.ts +0 -289
  92. package/dist/components.js +0 -106
  93. package/dist/conditionals.d.ts +0 -10
  94. package/dist/conditionals.js +0 -74
  95. package/dist/corpus-CPPfgAHN.d.ts +0 -106
  96. package/dist/diagnostics-OcQKQYSY.d.ts +0 -49
  97. package/dist/email/selection.d.ts +0 -2
  98. package/dist/email/selection.js +0 -91
  99. package/dist/email/source-edit.js +0 -185
  100. package/dist/email/stylesheets.d.ts +0 -15
  101. package/dist/email/stylesheets.js +0 -48
  102. package/dist/emit.d.ts +0 -51
  103. package/dist/emit.js +0 -151
  104. package/dist/interpolate.d.ts +0 -24
  105. package/dist/interpolate.js +0 -43
  106. package/dist/jsx-dev-runtime.d.ts +0 -11
  107. package/dist/jsx-dev-runtime.js +0 -15
  108. package/dist/jsx-runtime-I-1nCtl2.d.ts +0 -57
  109. package/dist/jsx-runtime.d.ts +0 -2
  110. package/dist/jsx-runtime.js +0 -121
  111. package/dist/lexer.d.ts +0 -60
  112. package/dist/lexer.js +0 -281
  113. package/dist/model.d.ts +0 -24
  114. package/dist/model.js +0 -77
  115. package/dist/ops-BvwqHl7V.js +0 -630
  116. package/dist/ops.d.ts +0 -114
  117. package/dist/ops.js +0 -2
  118. package/dist/parser-t29cHLVL.d.ts +0 -396
  119. package/dist/parser.d.ts +0 -2
  120. package/dist/parser.js +0 -859
  121. package/dist/predicate-BI6uRRM-.js +0 -549
  122. package/dist/predicate-M-05Nd7R.d.ts +0 -56
  123. package/dist/predicate.d.ts +0 -2
  124. package/dist/predicate.js +0 -2
  125. package/dist/printer.d.ts +0 -6
  126. package/dist/printer.js +0 -122
  127. package/dist/registry-Dcp6QEK_.d.ts +0 -73
  128. package/dist/registry.d.ts +0 -2
  129. package/dist/registry.js +0 -646
  130. package/dist/render-template.d.ts +0 -45
  131. package/dist/render-template.js +0 -76
  132. package/dist/selection-CCArx9lU.d.ts +0 -91
  133. package/dist/showcase-egkusQBf.d.ts +0 -415
  134. package/dist/sms-segments-y4FpPilJ.d.ts +0 -13
  135. package/dist/source-locations-DrCM82Ym.d.ts +0 -67
  136. package/dist/starters/category-mapping.d.ts +0 -13
  137. package/dist/starters/category-mapping.js +0 -49
  138. package/dist/starters/corpus.d.ts +0 -2
  139. package/dist/starters/corpus.js +0 -194
  140. package/dist/starters/library.d.ts +0 -18
  141. package/dist/starters/library.js +0 -692
  142. package/dist/starters/public-gallery.d.ts +0 -266
  143. package/dist/starters/public-gallery.js +0 -916
  144. package/dist/starters/public-handoff.d.ts +0 -164
  145. package/dist/starters/public-handoff.js +0 -361
  146. package/dist/starters/public-preview-artifacts.d.ts +0 -43
  147. package/dist/starters/public-preview-artifacts.js +0 -104
  148. package/dist/starters/public-preview.d.ts +0 -61
  149. package/dist/starters/public-preview.js +0 -83
  150. package/dist/starters/showcase.d.ts +0 -2
  151. package/dist/starters/showcase.js +0 -335
  152. package/dist/starters/sources.d.ts +0 -45
  153. package/dist/starters/sources.js +0 -7762
  154. package/dist/starters/theme.d.ts +0 -45
  155. package/dist/starters/theme.js +0 -77
  156. package/dist/starters.d.ts +0 -2
  157. package/dist/starters.js +0 -874
  158. package/dist/tailwind-BYq7Lo6u.js +0 -727
  159. package/dist/template-DWftqh4x.d.ts +0 -60
  160. package/dist/tsx-source-instrumentation.d.ts +0 -30
  161. package/dist/tsx-source-instrumentation.js +0 -115
  162. package/dist/tsx-tracer.d.ts +0 -112
  163. package/dist/tsx-tracer.js +0 -985
  164. package/dist/variables-J_L3qxRa.d.ts +0 -77
  165. package/dist/variables.d.ts +0 -2
  166. package/dist/variables.js +0 -141
  167. package/dist/version-BITr58kk.js +0 -96
  168. package/generated/sml-agent-contract.json +0 -709
  169. package/generated/sml-email-agent-contract.json +0 -615
  170. package/generated/sml-email-language-reference.md +0 -94
  171. 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