@samva/markup 0.2.0 → 0.4.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.
@@ -1,6 +1,6 @@
1
- import { n as compileEmail, r as renderEmail, t as EMAIL_DOCTYPE } from "../render-Cddsy_XF.js";
1
+ import { i as renderEmail, n as bindStylesheets, r as compileEmail, t as EMAIL_DOCTYPE } from "../render-ykQhtMs_.js";
2
2
  import "./html.js";
3
3
  import "./diagnostics.js";
4
4
  import "./stylesheets.js";
5
5
  import "./text.js";
6
- export { EMAIL_DOCTYPE, compileEmail, renderEmail };
6
+ export { EMAIL_DOCTYPE, bindStylesheets, compileEmail, renderEmail };
@@ -1,2 +1,15 @@
1
- import { i as resetStylesheets, n as hasStylesheets, r as registerStylesheet, t as collectStylesheets } from "../stylesheets-oDRAnYA3.js";
2
- export { collectStylesheets, hasStylesheets, registerStylesheet, resetStylesheets };
1
+ import { i as Stylesheet } from "../css-ar2lU3NC.js";
2
+ //#region src/email/stylesheets.d.ts
3
+ /** Called by a compiler-generated stylesheet module at import time. */
4
+ declare const registerStylesheet: (sheet: Stylesheet) => void;
5
+ /** Drop every registration. The render entry calls this before a render. */
6
+ declare const resetStylesheets: () => void;
7
+ /** Every registered sheet flattened into one, with order preserved across sheets. */
8
+ declare const collectStylesheets: () => Stylesheet;
9
+ /** True when a template registered no styles at all, so the render can skip the pass. */
10
+ declare const hasStylesheets: () => boolean;
11
+ /** The registry as it stands, or `undefined` when no sheet registered. */
12
+ declare const snapshotStylesheets: () => Stylesheet | undefined;
13
+ //#endregion
14
+ export { collectStylesheets, hasStylesheets, registerStylesheet, resetStylesheets, snapshotStylesheets };
15
+ //# sourceMappingURL=stylesheets.d.ts.map
@@ -37,7 +37,9 @@ const collectStylesheets = () => {
37
37
  };
38
38
  /** True when a template registered no styles at all, so the render can skip the pass. */
39
39
  const hasStylesheets = () => registry.length > 0;
40
+ /** The registry as it stands, or `undefined` when no sheet registered. */
41
+ const snapshotStylesheets = () => hasStylesheets() ? collectStylesheets() : void 0;
40
42
  //#endregion
41
- export { collectStylesheets, hasStylesheets, registerStylesheet, resetStylesheets };
43
+ export { collectStylesheets, hasStylesheets, registerStylesheet, resetStylesheets, snapshotStylesheets };
42
44
 
43
45
  //# sourceMappingURL=stylesheets.js.map
@@ -4,6 +4,14 @@ const PARAGRAPH = "\n\n";
4
4
  const LINE = "\n";
5
5
  const INVISIBLE = /\u200b|\u200c|\u200d|\u200e|\u200f|\u2060|\ufeff/g;
6
6
  const isLayoutTable = (props) => props.role === "presentation" || props.role === "none";
7
+ /**
8
+ * A data-table cell that reads as nothing and holds only imagery with empty alt text carries no
9
+ * column of its own; an empty cell without such an image is a positional placeholder.
10
+ */
11
+ const isDecorativeCell = (cell, context) => {
12
+ const images = collect(cell.children, (tag) => tag === "img", () => true);
13
+ return images.length > 0 && images.every((image) => image.props.alt === "") && childText(cell, context).trim() === "";
14
+ };
7
15
  /** Wrap a block's content in separators; empty blocks contribute nothing. */
8
16
  const block = (inner, separator) => {
9
17
  const trimmed = inner.replace(/^\s+/, "").replace(/\s+$/, "");
@@ -64,7 +72,7 @@ const derive = (node, context) => {
64
72
  }
65
73
  case "table": {
66
74
  if (isLayoutTable(node.props)) return childText(node, context);
67
- const rows = collect(node.children, (tag) => tag === "tr", (tag) => TABLE_SECTIONS.has(tag)).map((row) => collect(row.children, (tag) => tag === "td" || tag === "th", () => false).map((cell) => childText(cell, context).replace(/\s+/g, " ").trim()).join(" | "));
75
+ const rows = collect(node.children, (tag) => tag === "tr", (tag) => TABLE_SECTIONS.has(tag)).map((row) => collect(row.children, (tag) => tag === "td" || tag === "th", () => false).filter((cell) => !isDecorativeCell(cell, context)).map((cell) => childText(cell, context).replace(/\s+/g, " ").trim()).join(" | "));
68
76
  return block(rows.join(LINE), PARAGRAPH);
69
77
  }
70
78
  case "row": return block(collect(node.children, (tag) => tag === "td" || tag === "th", () => false).map((cell) => childText(cell, context).replace(/^\s+|\s+$/g, "")).filter((cell) => cell !== "").join(LINE), LINE);
@@ -1,4 +1,4 @@
1
- import { PresetCategory } from "../presets.js";
1
+ import { r as PresetCategory } from "../catalog-Ck1tAGwO.js";
2
2
  import { TemplateCollectionId } from "./public-gallery.js";
3
3
  //#region presets/category-mapping.d.ts
4
4
  declare const LAB_DIMENSIONS: readonly ["newsletter", "receipt", "security", "product-update", "onboarding", "promotion", "shipping", "social-notification"];
@@ -1,2 +1,2 @@
1
- import { a as TemplateCorpusKind, c as TemplateFacetSet, d as templateFacetOptions, i as PublicCorpusRegistrationIssue, l as matchesTemplateFacets, n as OwnedEditablePreset, o as TemplateCorpusRecord, r as PublicCorpusRegistration, s as TemplateFacetQuery, t as InspirationReference, u as registerPublicCorpusEntry } from "../corpus-Dz5irJ9x.js";
2
- export { InspirationReference, OwnedEditablePreset, PublicCorpusRegistration, PublicCorpusRegistrationIssue, TemplateCorpusKind, TemplateCorpusRecord, TemplateFacetQuery, TemplateFacetSet, matchesTemplateFacets, registerPublicCorpusEntry, templateFacetOptions };
1
+ import { a as PublicCorpusRegistrationIssue, c as TemplateFacetQuery, d as matchesTemplateFacets, f as ownedPresetSourcePath, h as templateFacetOptions, i as PublicCorpusRegistration, l as TemplateFacetSet, m as registerPublicCorpusEntry, n as InspirationReference, o as TemplateCorpusKind, p as ownedShowcasePresetSources, r as OwnedEditablePreset, s as TemplateCorpusRecord, t as BrandRecreationPreset, u as brandRecreationProvenance } from "../corpus-U2EeALvS.js";
2
+ export { BrandRecreationPreset, InspirationReference, OwnedEditablePreset, PublicCorpusRegistration, PublicCorpusRegistrationIssue, TemplateCorpusKind, TemplateCorpusRecord, TemplateFacetQuery, TemplateFacetSet, brandRecreationProvenance, matchesTemplateFacets, ownedPresetSourcePath, ownedShowcasePresetSources, registerPublicCorpusEntry, templateFacetOptions };
@@ -1,7 +1,12 @@
1
1
  import { presetCatalog } from "../presets.js";
2
+ import { showcaseProject, showcaseProjects, showcaseSourcePath } from "./showcase.js";
2
3
  import { Result, Schema } from "effect";
3
4
  //#region presets/corpus.ts
4
- const TemplateCorpusKind = Schema.Literals(["owned-editable-sml", "inspiration-reference"]);
5
+ const TemplateCorpusKind = Schema.Literals([
6
+ "owned-editable-sml",
7
+ "brand-recreation-sml",
8
+ "inspiration-reference"
9
+ ]);
5
10
  const templateFacetOptions = {
6
11
  jobType: [
7
12
  "account-access",
@@ -93,6 +98,41 @@ const OwnedEditablePreset = Schema.TaggedStruct("OwnedEditablePreset", {
93
98
  retention: CorpusRetention,
94
99
  takedown: CorpusTakedown
95
100
  });
101
+ const BrandRecreationPreset = Schema.TaggedStruct("BrandRecreationPreset", {
102
+ corpusKind: Schema.Literal("brand-recreation-sml"),
103
+ provenance: Schema.Struct({
104
+ owner: Schema.Literal("Samva"),
105
+ sourcePath: Schema.String,
106
+ recordedAt: Schema.String,
107
+ /** The brand whose own email is recreated, named on every public surface. */
108
+ brand: Schema.String,
109
+ /** What that brand's email does, in the customer's words. */
110
+ subject: Schema.String,
111
+ reviewedNote: Schema.String
112
+ }),
113
+ review: CorpusReview,
114
+ display: CorpusDisplay,
115
+ retention: CorpusRetention,
116
+ takedown: CorpusTakedown
117
+ });
118
+ /** Clean-room recreations of a named brand's own email, authored as editable Samva projects. */
119
+ const brandRecreationProvenance = Object.fromEntries(showcaseProjects.flatMap((project) => project.provenance.kind === "brand-recreation" ? [[project.id, {
120
+ owner: "Samva",
121
+ sourcePath: showcaseSourcePath(project),
122
+ recordedAt: project.recordedAt,
123
+ brand: project.provenance.brand,
124
+ subject: project.provenance.subject,
125
+ reviewedNote: project.provenance.reviewedNote
126
+ }]] : []));
127
+ /**
128
+ * Owned presets authored as complete showcase projects with their own stylesheet and assets.
129
+ * Every other owned preset is the single module `packages/markup/presets/<id>.tsx`.
130
+ */
131
+ const ownedShowcasePresetSources = Object.fromEntries(showcaseProjects.flatMap((project) => project.provenance.kind === "owned" ? [[project.id, showcaseSourcePath(project)]] : []));
132
+ const ownedPresetSourcePath = (id) => {
133
+ const project = showcaseProject(id);
134
+ return project === void 0 || project.provenance.kind !== "owned" ? `packages/markup/presets/${id}.tsx` : showcaseSourcePath(project);
135
+ };
96
136
  const InspirationReference = Schema.TaggedStruct("InspirationReference", {
97
137
  corpusKind: Schema.Literal("inspiration-reference"),
98
138
  provenance: Schema.Struct({
@@ -106,7 +146,11 @@ const InspirationReference = Schema.TaggedStruct("InspirationReference", {
106
146
  retention: CorpusRetention,
107
147
  takedown: CorpusTakedown
108
148
  });
109
- const TemplateCorpusRecord = Schema.Union([OwnedEditablePreset, InspirationReference]);
149
+ const TemplateCorpusRecord = Schema.Union([
150
+ OwnedEditablePreset,
151
+ BrandRecreationPreset,
152
+ InspirationReference
153
+ ]);
110
154
  const ISO_TIMESTAMP = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z$/;
111
155
  const nonEmpty = (value) => value.trim().length > 0;
112
156
  const isHttpsUrl = (value) => {
@@ -122,7 +166,7 @@ const requiredFacetDimensions = [
122
166
  "design",
123
167
  "brandProvenance"
124
168
  ];
125
- const canonicalOwnedPresetSources = new Map(presetCatalog.filter((preset) => preset.channel === "email").map((preset) => [preset.id, `packages/markup/presets/${preset.id}.tsx`]));
169
+ const canonicalOwnedPresetSources = new Map(presetCatalog.filter((preset) => preset.channel === "email" && !Object.hasOwn(brandRecreationProvenance, preset.id)).map((preset) => [preset.id, ownedPresetSourcePath(preset.id)]));
126
170
  /** Decode and gate a record before it can enter any public projection. */
127
171
  const registerPublicCorpusEntry = (input) => {
128
172
  const decoded = Schema.decodeUnknownResult(Schema.Struct({
@@ -148,6 +192,13 @@ const registerPublicCorpusEntry = (input) => {
148
192
  id,
149
193
  message: "owned presets require a canonical editable TSX source"
150
194
  });
195
+ if (corpus._tag === "BrandRecreationPreset") {
196
+ const canonical = Object.entries(brandRecreationProvenance).find(([presetId]) => presetId === id)?.[1];
197
+ if (canonical === void 0 || Object.entries(canonical).some(([key, value]) => corpus.provenance[key] !== value) || !nonEmpty(corpus.provenance.brand) || !nonEmpty(corpus.provenance.subject) || corpus.retention.policy !== "retain-until-withdrawn" || facets.brandProvenance.some((value) => value !== "third-party-reference")) return Result.fail({
198
+ id,
199
+ message: "brand recreations require a canonical source, a referenced brand and subject, and third-party provenance"
200
+ });
201
+ }
151
202
  if (corpus._tag === "InspirationReference" && (!isHttpsUrl(corpus.provenance.sourceUrl) || corpus.retention.policy !== "retain-while-linked" || facets.brandProvenance.some((value) => value !== "third-party-reference"))) return Result.fail({
152
203
  id,
153
204
  message: "inspiration references require an HTTPS source and third-party provenance facet"
@@ -181,6 +232,6 @@ const matchesTemplateFacets = (facets, query) => requiredFacetDimensions.every((
181
232
  return selected === void 0 || selected.every((value) => available.has(value));
182
233
  });
183
234
  //#endregion
184
- export { InspirationReference, OwnedEditablePreset, TemplateCorpusKind, TemplateCorpusRecord, TemplateFacetQuery, TemplateFacetSet, matchesTemplateFacets, registerPublicCorpusEntry, templateFacetOptions };
235
+ export { BrandRecreationPreset, InspirationReference, OwnedEditablePreset, TemplateCorpusKind, TemplateCorpusRecord, TemplateFacetQuery, TemplateFacetSet, brandRecreationProvenance, matchesTemplateFacets, ownedPresetSourcePath, ownedShowcasePresetSources, registerPublicCorpusEntry, templateFacetOptions };
185
236
 
186
237
  //# sourceMappingURL=corpus.js.map
@@ -1,5 +1,5 @@
1
- import { EmailPresetId } from "../presets.js";
2
- import { c as TemplateFacetSet, n as OwnedEditablePreset, s as TemplateFacetQuery } from "../corpus-Dz5irJ9x.js";
1
+ import { t as EmailPresetId } from "../catalog-Ck1tAGwO.js";
2
+ import { c as TemplateFacetQuery, l as TemplateFacetSet, r as OwnedEditablePreset, t as BrandRecreationPreset } from "../corpus-U2EeALvS.js";
3
3
  //#region presets/public-gallery.d.ts
4
4
  declare const templateUseCases: readonly ["account-access", "commerce", "product-communication", "lifecycle", "publishing-campaigns"];
5
5
  declare const templateCollectionFamilies: readonly ["category", "industry", "stage", "style"];
@@ -12,8 +12,8 @@ interface PublicTemplate {
12
12
  readonly useCase: TemplateUseCase;
13
13
  readonly collections: ReadonlyArray<TemplateCollectionId>;
14
14
  readonly relatedTemplates: ReadonlyArray<EmailPresetId>;
15
- /** This public record is editable Samva-owned SML, never a third-party reference. */
16
- readonly corpus: OwnedEditablePreset;
15
+ /** Editable SML authored by Samva, either an original or a named-brand recreation. */
16
+ readonly corpus: OwnedEditablePreset | BrandRecreationPreset;
17
17
  readonly facets: TemplateFacetSet;
18
18
  }
19
19
  declare const isMadeWithSamvaTemplate: (template: Pick<PublicTemplate, "corpus">) => boolean;
@@ -29,242 +29,236 @@ type TemplateCollectionId = "category:transactional" | "category:lifecycle" | "c
29
29
  /** Explicit evidence for every owned preset reviewed in the 2026-08-31 catalog pass. */
30
30
  declare const ownedPresetReviewManifest: {
31
31
  readonly welcome: {
32
- readonly sourcePath: "packages/markup/presets/welcome.tsx";
32
+ readonly sourcePath: "examples/email-showcase/emails/welcome.tsx";
33
33
  readonly reviewedBy: "Samva catalog review";
34
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
35
- readonly notes: "Reviewed welcome editable SML, public preview data, and gallery identity.";
34
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
35
+ readonly notes: "Reviewed welcome editable project with stylesheet and original Northloop assets, public preview data, and gallery identity.";
36
36
  };
37
37
  readonly "email-verification": {
38
- readonly sourcePath: "packages/markup/presets/email-verification.tsx";
38
+ readonly sourcePath: "examples/email-showcase/emails/email-verification.tsx";
39
39
  readonly reviewedBy: "Samva catalog review";
40
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
41
- readonly notes: "Reviewed email-verification editable SML, public preview data, and gallery identity.";
40
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
41
+ readonly notes: "Reviewed email-verification editable project with stylesheet and original Northloop assets, public preview data, and gallery identity.";
42
42
  };
43
43
  readonly otp: {
44
- readonly sourcePath: "packages/markup/presets/otp.tsx";
44
+ readonly sourcePath: "examples/email-showcase/emails/otp.tsx";
45
45
  readonly reviewedBy: "Samva catalog review";
46
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
47
- readonly notes: "Reviewed otp editable SML, public preview data, and gallery identity.";
46
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
47
+ readonly notes: "Reviewed otp editable project with stylesheet and original Northloop assets, public preview data, and gallery identity.";
48
48
  };
49
49
  readonly "password-reset": {
50
- readonly sourcePath: "packages/markup/presets/password-reset.tsx";
50
+ readonly sourcePath: "examples/email-showcase/emails/password-reset.tsx";
51
51
  readonly reviewedBy: "Samva catalog review";
52
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
53
- readonly notes: "Reviewed password-reset editable SML, public preview data, and gallery identity.";
54
- };
55
- readonly receipt: {
56
- readonly sourcePath: "packages/markup/presets/receipt.tsx";
57
- readonly reviewedBy: "Samva catalog review";
58
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
59
- readonly notes: "Reviewed receipt editable SML, public preview data, and gallery identity.";
52
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
53
+ readonly notes: "Reviewed password-reset editable project with stylesheet and original Northloop assets, public preview data, and gallery identity.";
60
54
  };
61
55
  readonly "payment-failed": {
62
- readonly sourcePath: "packages/markup/presets/payment-failed.tsx";
56
+ readonly sourcePath: "examples/email-showcase/emails/payment-failed.tsx";
63
57
  readonly reviewedBy: "Samva catalog review";
64
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
65
- readonly notes: "Reviewed payment-failed editable SML, public preview data, and gallery identity.";
58
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
59
+ readonly notes: "Reviewed payment-failed editable project with stylesheet and original Fernhollow assets, public preview data, and gallery identity.";
66
60
  };
67
61
  readonly "shipping-update": {
68
- readonly sourcePath: "packages/markup/presets/shipping-update.tsx";
62
+ readonly sourcePath: "examples/email-showcase/emails/shipping-update.tsx";
69
63
  readonly reviewedBy: "Samva catalog review";
70
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
71
- readonly notes: "Reviewed shipping-update editable SML, public preview data, and gallery identity.";
64
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
65
+ readonly notes: "Reviewed shipping-update editable project with stylesheet and original Fernhollow assets, public preview data, and gallery identity.";
72
66
  };
73
67
  readonly notification: {
74
- readonly sourcePath: "packages/markup/presets/notification.tsx";
68
+ readonly sourcePath: "examples/email-showcase/emails/notification.tsx";
75
69
  readonly reviewedBy: "Samva catalog review";
76
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
77
- readonly notes: "Reviewed notification editable SML, public preview data, and gallery identity.";
70
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
71
+ readonly notes: "Reviewed notification editable project with stylesheet and original Meridian assets, public preview data, and gallery identity.";
78
72
  };
79
73
  readonly "team-invite": {
80
- readonly sourcePath: "packages/markup/presets/team-invite.tsx";
74
+ readonly sourcePath: "examples/email-showcase/emails/team-invite.tsx";
81
75
  readonly reviewedBy: "Samva catalog review";
82
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
83
- readonly notes: "Reviewed team-invite editable SML, public preview data, and gallery identity.";
76
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
77
+ readonly notes: "Reviewed team-invite editable project with stylesheet and original Northloop assets, public preview data, and gallery identity.";
84
78
  };
85
- readonly "product-digest": {
86
- readonly sourcePath: "packages/markup/presets/product-digest.tsx";
79
+ readonly "product-newsletter": {
80
+ readonly sourcePath: "examples/email-showcase/emails/product-newsletter.tsx";
87
81
  readonly reviewedBy: "Samva catalog review";
88
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
89
- readonly notes: "Reviewed product-digest editable SML, public preview data, and gallery identity.";
82
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
83
+ readonly notes: "Reviewed product-newsletter editable SML project, authored assets, public preview data, and gallery identity.";
90
84
  };
91
- readonly newsletter: {
92
- readonly sourcePath: "packages/markup/presets/newsletter.tsx";
85
+ readonly "product-digest": {
86
+ readonly sourcePath: "examples/email-showcase/emails/product-digest.tsx";
93
87
  readonly reviewedBy: "Samva catalog review";
94
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
95
- readonly notes: "Reviewed newsletter editable SML, public preview data, and gallery identity.";
88
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
89
+ readonly notes: "Reviewed product-digest editable SML project, authored assets, public preview data, and gallery identity.";
96
90
  };
97
91
  readonly announcement: {
98
- readonly sourcePath: "packages/markup/presets/announcement.tsx";
92
+ readonly sourcePath: "examples/email-showcase/emails/announcement.tsx";
99
93
  readonly reviewedBy: "Samva catalog review";
100
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
101
- readonly notes: "Reviewed announcement editable SML, public preview data, and gallery identity.";
102
- };
103
- readonly promo: {
104
- readonly sourcePath: "packages/markup/presets/promo.tsx";
105
- readonly reviewedBy: "Samva catalog review";
106
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
107
- readonly notes: "Reviewed promo editable SML, public preview data, and gallery identity.";
94
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
95
+ readonly notes: "Reviewed announcement editable SML project, original Northwick assets, public preview data, and gallery identity.";
108
96
  };
109
97
  readonly "event-invite": {
110
- readonly sourcePath: "packages/markup/presets/event-invite.tsx";
98
+ readonly sourcePath: "examples/email-showcase/emails/event-invite.tsx";
111
99
  readonly reviewedBy: "Samva catalog review";
112
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
113
- readonly notes: "Reviewed event-invite editable SML, public preview data, and gallery identity.";
100
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
101
+ readonly notes: "Reviewed event-invite editable SML project, original Northwick assets, public preview data, and gallery identity.";
114
102
  };
115
103
  readonly "membership-promo": {
116
- readonly sourcePath: "packages/markup/presets/membership-promo.tsx";
104
+ readonly sourcePath: "examples/email-showcase/emails/membership-promo.tsx";
117
105
  readonly reviewedBy: "Samva catalog review";
118
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
119
- readonly notes: "Reviewed membership-promo editable SML, public preview data, and gallery identity.";
106
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
107
+ readonly notes: "Reviewed membership-promo editable SML project, original Northwick assets, public preview data, and gallery identity.";
120
108
  };
121
109
  readonly "onboarding-step": {
122
- readonly sourcePath: "packages/markup/presets/onboarding-step.tsx";
110
+ readonly sourcePath: "examples/email-showcase/emails/onboarding-step.tsx";
123
111
  readonly reviewedBy: "Samva catalog review";
124
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
125
- readonly notes: "Reviewed onboarding-step editable SML, public preview data, and gallery identity.";
112
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
113
+ readonly notes: "Reviewed onboarding-step editable project with stylesheet and original assets, public preview data, and gallery identity.";
126
114
  };
127
115
  readonly "trial-ending": {
128
- readonly sourcePath: "packages/markup/presets/trial-ending.tsx";
116
+ readonly sourcePath: "examples/email-showcase/emails/trial-ending.tsx";
129
117
  readonly reviewedBy: "Samva catalog review";
130
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
131
- readonly notes: "Reviewed trial-ending editable SML, public preview data, and gallery identity.";
118
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
119
+ readonly notes: "Reviewed trial-ending editable project with stylesheet and original assets, public preview data, and gallery identity.";
132
120
  };
133
121
  readonly "win-back": {
134
- readonly sourcePath: "packages/markup/presets/win-back.tsx";
122
+ readonly sourcePath: "examples/email-showcase/emails/win-back.tsx";
135
123
  readonly reviewedBy: "Samva catalog review";
136
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
137
- readonly notes: "Reviewed win-back editable SML, public preview data, and gallery identity.";
124
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
125
+ readonly notes: "Reviewed win-back editable project with stylesheet and original assets, public preview data, and gallery identity.";
138
126
  };
139
127
  readonly "feedback-request": {
140
- readonly sourcePath: "packages/markup/presets/feedback-request.tsx";
128
+ readonly sourcePath: "examples/email-showcase/emails/feedback-request.tsx";
141
129
  readonly reviewedBy: "Samva catalog review";
142
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
143
- readonly notes: "Reviewed feedback-request editable SML, public preview data, and gallery identity.";
130
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
131
+ readonly notes: "Reviewed feedback-request editable project with stylesheet and original assets, public preview data, and gallery identity.";
144
132
  };
145
133
  readonly "editorial-newsletter": {
146
- readonly sourcePath: "packages/markup/presets/editorial-newsletter.tsx";
134
+ readonly sourcePath: "examples/email-showcase/emails/editorial-newsletter.tsx";
147
135
  readonly reviewedBy: "Samva catalog review";
148
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
149
- readonly notes: "Reviewed editorial-newsletter editable SML, public preview data, and gallery identity.";
136
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
137
+ readonly notes: "Reviewed editorial-newsletter editable SML project, authored assets, public preview data, and gallery identity.";
150
138
  };
151
139
  readonly "member-referral-offer": {
152
- readonly sourcePath: "packages/markup/presets/member-referral-offer.tsx";
140
+ readonly sourcePath: "examples/email-showcase/emails/member-referral-offer.tsx";
153
141
  readonly reviewedBy: "Samva catalog review";
154
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
155
- readonly notes: "Reviewed member-referral-offer editable SML, public preview data, and gallery identity.";
142
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
143
+ readonly notes: "Reviewed member-referral-offer editable SML project, original Northwick assets, public preview data, and gallery identity.";
156
144
  };
157
145
  readonly "catalog-sale-newsletter": {
158
- readonly sourcePath: "packages/markup/presets/catalog-sale-newsletter.tsx";
146
+ readonly sourcePath: "examples/email-showcase/emails/catalog-sale-newsletter.tsx";
159
147
  readonly reviewedBy: "Samva catalog review";
160
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
161
- readonly notes: "Reviewed catalog-sale-newsletter editable SML, public preview data, and gallery identity.";
148
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
149
+ readonly notes: "Reviewed catalog-sale-newsletter editable SML project, original Northwick assets, public preview data, and gallery identity.";
162
150
  };
163
151
  readonly "limited-time-savings": {
164
- readonly sourcePath: "packages/markup/presets/limited-time-savings.tsx";
152
+ readonly sourcePath: "examples/email-showcase/emails/limited-time-savings.tsx";
165
153
  readonly reviewedBy: "Samva catalog review";
166
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
167
- readonly notes: "Reviewed limited-time-savings editable SML, public preview data, and gallery identity.";
154
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
155
+ readonly notes: "Reviewed limited-time-savings editable SML project, original Northwick assets, public preview data, and gallery identity.";
168
156
  };
169
157
  readonly "rewards-milestone": {
170
- readonly sourcePath: "packages/markup/presets/rewards-milestone.tsx";
158
+ readonly sourcePath: "examples/email-showcase/emails/rewards-milestone.tsx";
171
159
  readonly reviewedBy: "Samva catalog review";
172
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
173
- readonly notes: "Reviewed rewards-milestone editable SML, public preview data, and gallery identity.";
160
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
161
+ readonly notes: "Reviewed rewards-milestone editable SML project, original Northwick assets, public preview data, and gallery identity.";
174
162
  };
175
- readonly "order-delivered": {
176
- readonly sourcePath: "packages/markup/presets/order-delivered.tsx";
163
+ readonly "order-receipt": {
164
+ readonly sourcePath: "examples/email-showcase/emails/order-receipt.tsx";
177
165
  readonly reviewedBy: "Samva catalog review";
178
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
179
- readonly notes: "Reviewed order-delivered editable SML, public preview data, and gallery identity.";
166
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
167
+ readonly notes: "Reviewed order-receipt editable project with stylesheet and original assets, public preview data, and gallery identity.";
180
168
  };
181
169
  readonly "travel-rewards-promo": {
182
- readonly sourcePath: "packages/markup/presets/travel-rewards-promo.tsx";
170
+ readonly sourcePath: "examples/email-showcase/emails/travel-rewards-promo.tsx";
183
171
  readonly reviewedBy: "Samva catalog review";
184
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
185
- readonly notes: "Reviewed travel-rewards-promo editable SML, public preview data, and gallery identity.";
172
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
173
+ readonly notes: "Reviewed travel-rewards-promo editable project with stylesheet and original Wayfare assets, public preview data, and gallery identity.";
186
174
  };
187
175
  readonly "events-roundup": {
188
- readonly sourcePath: "packages/markup/presets/events-roundup.tsx";
176
+ readonly sourcePath: "examples/email-showcase/emails/events-roundup.tsx";
189
177
  readonly reviewedBy: "Samva catalog review";
190
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
191
- readonly notes: "Reviewed events-roundup editable SML, public preview data, and gallery identity.";
178
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
179
+ readonly notes: "Reviewed events-roundup editable SML project, authored assets, public preview data, and gallery identity.";
192
180
  };
193
181
  readonly "product-onboarding-tour": {
194
- readonly sourcePath: "packages/markup/presets/product-onboarding-tour.tsx";
182
+ readonly sourcePath: "examples/email-showcase/emails/product-onboarding-tour.tsx";
195
183
  readonly reviewedBy: "Samva catalog review";
196
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
197
- readonly notes: "Reviewed product-onboarding-tour editable SML, public preview data, and gallery identity.";
184
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
185
+ readonly notes: "Reviewed product-onboarding-tour editable project with stylesheet and original assets, public preview data, and gallery identity.";
198
186
  };
199
187
  readonly "product-updates-roundup": {
200
- readonly sourcePath: "packages/markup/presets/product-updates-roundup.tsx";
188
+ readonly sourcePath: "examples/email-showcase/emails/product-updates-roundup.tsx";
201
189
  readonly reviewedBy: "Samva catalog review";
202
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
203
- readonly notes: "Reviewed product-updates-roundup editable SML, public preview data, and gallery identity.";
190
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
191
+ readonly notes: "Reviewed product-updates-roundup editable project with stylesheet and original Basalt assets, public preview data, and gallery identity.";
204
192
  };
205
193
  readonly "flash-getaway-offer": {
206
- readonly sourcePath: "packages/markup/presets/flash-getaway-offer.tsx";
194
+ readonly sourcePath: "examples/email-showcase/emails/flash-getaway-offer.tsx";
207
195
  readonly reviewedBy: "Samva catalog review";
208
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
209
- readonly notes: "Reviewed flash-getaway-offer editable SML, public preview data, and gallery identity.";
196
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
197
+ readonly notes: "Reviewed flash-getaway-offer editable project with stylesheet and original Wayfare assets, public preview data, and gallery identity.";
210
198
  };
211
199
  readonly "membership-benefits-promo": {
212
- readonly sourcePath: "packages/markup/presets/membership-benefits-promo.tsx";
200
+ readonly sourcePath: "examples/email-showcase/emails/membership-benefits-promo.tsx";
213
201
  readonly reviewedBy: "Samva catalog review";
214
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
215
- readonly notes: "Reviewed membership-benefits-promo editable SML, public preview data, and gallery identity.";
202
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
203
+ readonly notes: "Reviewed membership-benefits-promo editable project with stylesheet and original Wayfare assets, public preview data, and gallery identity.";
216
204
  };
217
205
  readonly "industry-news-digest": {
218
- readonly sourcePath: "packages/markup/presets/industry-news-digest.tsx";
206
+ readonly sourcePath: "examples/email-showcase/emails/industry-news-digest.tsx";
219
207
  readonly reviewedBy: "Samva catalog review";
220
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
221
- readonly notes: "Reviewed industry-news-digest editable SML, public preview data, and gallery identity.";
208
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
209
+ readonly notes: "Reviewed industry-news-digest editable SML project, authored assets, public preview data, and gallery identity.";
222
210
  };
223
211
  readonly "weekly-deals-circular": {
224
- readonly sourcePath: "packages/markup/presets/weekly-deals-circular.tsx";
212
+ readonly sourcePath: "examples/email-showcase/emails/weekly-deals-circular.tsx";
225
213
  readonly reviewedBy: "Samva catalog review";
226
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
227
- readonly notes: "Reviewed weekly-deals-circular editable SML, public preview data, and gallery identity.";
214
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
215
+ readonly notes: "Reviewed weekly-deals-circular editable project with stylesheet and original Oakline assets, public preview data, and gallery identity.";
228
216
  };
229
217
  readonly "data-sharing-review": {
230
- readonly sourcePath: "packages/markup/presets/data-sharing-review.tsx";
218
+ readonly sourcePath: "examples/email-showcase/emails/data-sharing-review.tsx";
231
219
  readonly reviewedBy: "Samva catalog review";
232
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
233
- readonly notes: "Reviewed data-sharing-review editable SML, public preview data, and gallery identity.";
220
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
221
+ readonly notes: "Reviewed data-sharing-review editable project with stylesheet and original Northloop assets, public preview data, and gallery identity.";
234
222
  };
235
223
  readonly "seasonal-sale-flyer": {
236
- readonly sourcePath: "packages/markup/presets/seasonal-sale-flyer.tsx";
224
+ readonly sourcePath: "examples/email-showcase/emails/seasonal-sale-flyer.tsx";
237
225
  readonly reviewedBy: "Samva catalog review";
238
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
239
- readonly notes: "Reviewed seasonal-sale-flyer editable SML, public preview data, and gallery identity.";
226
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
227
+ readonly notes: "Reviewed seasonal-sale-flyer editable project with stylesheet and original Oakline assets, public preview data, and gallery identity.";
240
228
  };
241
229
  readonly "setup-checklist": {
242
- readonly sourcePath: "packages/markup/presets/setup-checklist.tsx";
230
+ readonly sourcePath: "examples/email-showcase/emails/setup-checklist.tsx";
243
231
  readonly reviewedBy: "Samva catalog review";
244
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
245
- readonly notes: "Reviewed setup-checklist editable SML, public preview data, and gallery identity.";
232
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
233
+ readonly notes: "Reviewed setup-checklist editable project with stylesheet and original assets, public preview data, and gallery identity.";
246
234
  };
247
235
  readonly "feature-release-roundup": {
248
- readonly sourcePath: "packages/markup/presets/feature-release-roundup.tsx";
236
+ readonly sourcePath: "examples/email-showcase/emails/feature-release-roundup.tsx";
249
237
  readonly reviewedBy: "Samva catalog review";
250
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
251
- readonly notes: "Reviewed feature-release-roundup editable SML, public preview data, and gallery identity.";
238
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
239
+ readonly notes: "Reviewed feature-release-roundup editable project with stylesheet and original Basalt assets, public preview data, and gallery identity.";
252
240
  };
253
241
  readonly "season-clearance-promo": {
254
- readonly sourcePath: "packages/markup/presets/season-clearance-promo.tsx";
242
+ readonly sourcePath: "examples/email-showcase/emails/season-clearance-promo.tsx";
243
+ readonly reviewedBy: "Samva catalog review";
244
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
245
+ readonly notes: "Reviewed season-clearance-promo editable project with stylesheet and original Oakline assets, public preview data, and gallery identity.";
246
+ };
247
+ readonly "product-launch-promo": {
248
+ readonly sourcePath: "examples/email-showcase/emails/product-launch-promo.tsx";
255
249
  readonly reviewedBy: "Samva catalog review";
256
- readonly reviewedAt: "2026-08-31T00:00:00.000Z";
257
- readonly notes: "Reviewed season-clearance-promo editable SML, public preview data, and gallery identity.";
250
+ readonly reviewedAt: "2026-09-08T00:00:00.000Z";
251
+ readonly notes: "Reviewed product-launch-promo editable project, original Oakline assets, public preview data, and gallery identity.";
258
252
  };
259
253
  };
260
- declare const publicTemplates: readonly [PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate];
254
+ declare const publicTemplates: readonly [PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate];
261
255
  /** Deterministic strict-intersection search over the canonical public corpus order. */
262
256
  declare const filterPublicTemplatesByFacets: (query: TemplateFacetQuery) => ReadonlyArray<PublicTemplate>;
263
257
  declare const templateCollections: readonly [TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection];
264
258
  declare const publicTemplateGallery: {
265
259
  readonly hubPath: "/templates";
266
260
  readonly useCases: readonly ["account-access", "commerce", "product-communication", "lifecycle", "publishing-campaigns"];
267
- readonly templates: readonly [PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate];
261
+ readonly templates: readonly [PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate, PublicTemplate];
268
262
  readonly collections: readonly [TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection];
269
263
  };
270
264
  //#endregion