@samva/markup 0.7.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 (176) hide show
  1. package/AGENTS.md +104 -37
  2. package/README.md +188 -52
  3. package/dist/assets-C5duwTya.d.ts +40 -0
  4. package/dist/brand-B-0bN_Ir.d.ts +88 -0
  5. package/dist/{render-aaJBnsXK.js → cascade-t6kxlgEI.js} +130 -160
  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 +19 -249
  12. package/dist/compiler.js +10 -1408
  13. package/dist/{css-COcFOT1y.d.ts → css-BVQKICKC.d.ts} +30 -4
  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 -0
  21. package/dist/email/assets.js +63 -0
  22. package/dist/email/brand-footer.d.ts +34 -0
  23. package/dist/email/brand-footer.js +63 -0
  24. package/dist/email/brand.d.ts +2 -0
  25. package/dist/email/brand.js +148 -0
  26. package/dist/email/components.d.ts +21 -10
  27. package/dist/email/components.js +46 -11
  28. package/dist/email/diagnostics.d.ts +2 -2
  29. package/dist/email/diagnostics.js +2 -1
  30. package/dist/email/elements.d.ts +1 -1
  31. package/dist/email/html.d.ts +2 -42
  32. package/dist/email/html.js +56 -2
  33. package/dist/email/jsx-dev-runtime.d.ts +2 -2
  34. package/dist/email/jsx-runtime.d.ts +1 -1
  35. package/dist/email/render.d.ts +10 -13
  36. package/dist/email/render.js +163 -6
  37. package/dist/email/text.d.ts +1 -1
  38. package/dist/fmt.d.ts +32 -0
  39. package/dist/fmt.js +174 -0
  40. package/dist/html-BJepOwZ4.d.ts +56 -0
  41. package/dist/index.d.ts +2 -0
  42. package/dist/index.js +2 -0
  43. package/dist/ir-aaqNE987.d.ts +252 -0
  44. package/dist/ir.d.ts +2 -0
  45. package/dist/ir.js +7 -0
  46. package/dist/preview-Ekdg1dXG.d.ts +100 -0
  47. package/dist/preview.d.ts +2 -0
  48. package/dist/preview.js +160 -0
  49. package/dist/profile-BH-OtdDA.js +3670 -0
  50. package/dist/render-ir.d.ts +19 -0
  51. package/dist/render-ir.js +826 -0
  52. package/dist/sms-segments.d.ts +13 -2
  53. package/dist/sms.d.ts +16 -0
  54. package/dist/sms.js +12 -0
  55. package/dist/{email/source-edit.d.ts → source-edit.d.ts} +55 -6
  56. package/dist/source-edit.js +343 -0
  57. package/dist/source-locations-C8wCsiAy.d.ts +23 -0
  58. package/dist/source-locations.d.ts +2 -2
  59. package/dist/source-locations.js +3 -89
  60. package/dist/static.d.ts +57 -0
  61. package/dist/static.js +69 -0
  62. package/dist/tailwind-CMYpZf1v.js +614 -0
  63. package/dist/template-_QE_rQND.d.ts +65 -0
  64. package/dist/template.d.ts +2 -2
  65. package/dist/template.js +15 -10
  66. package/dist/theme-css-hFqcPSar.js +587 -0
  67. package/dist/theme-css.d.ts +57 -16
  68. package/dist/theme-css.js +2 -509
  69. package/dist/theme-imports-lvBw3AD1.js +109 -0
  70. package/dist/transform-Ct2OMkFN.d.ts +153 -0
  71. package/dist/unsubscribe-link-CoesnQDU.js +26 -0
  72. package/dist/whatsapp.d.ts +57 -0
  73. package/dist/whatsapp.js +22 -0
  74. package/generated/contract.json +1782 -0
  75. package/generated/reference.md +353 -0
  76. package/package.json +56 -154
  77. package/samva-brand.d.ts +14 -0
  78. package/skills/sml/SKILL.md +123 -0
  79. package/dist/ast-BrDtApwS.d.ts +0 -107
  80. package/dist/ast.d.ts +0 -2
  81. package/dist/ast.js +0 -124
  82. package/dist/candidate.d.ts +0 -29
  83. package/dist/candidate.js +0 -88
  84. package/dist/catalog-60eaYC7b.d.ts +0 -356
  85. package/dist/checks-DBweSIPN.js +0 -58954
  86. package/dist/checks.d.ts +0 -33
  87. package/dist/checks.js +0 -2
  88. package/dist/classes.d.ts +0 -27
  89. package/dist/classes.js +0 -184
  90. package/dist/compile-sms.d.ts +0 -28
  91. package/dist/compile-sms.js +0 -44
  92. package/dist/compile-whatsapp.d.ts +0 -56
  93. package/dist/compile-whatsapp.js +0 -186
  94. package/dist/compile.d.ts +0 -18
  95. package/dist/compile.js +0 -29
  96. package/dist/components.d.ts +0 -289
  97. package/dist/components.js +0 -106
  98. package/dist/conditionals.d.ts +0 -10
  99. package/dist/conditionals.js +0 -74
  100. package/dist/corpus-BjYMqOoY.d.ts +0 -106
  101. package/dist/diagnostics-OcQKQYSY.d.ts +0 -49
  102. package/dist/email/selection.d.ts +0 -91
  103. package/dist/email/selection.js +0 -91
  104. package/dist/email/source-edit.js +0 -185
  105. package/dist/email/stylesheets.d.ts +0 -15
  106. package/dist/email/stylesheets.js +0 -45
  107. package/dist/emit.d.ts +0 -51
  108. package/dist/emit.js +0 -151
  109. package/dist/footer.d.ts +0 -66
  110. package/dist/footer.js +0 -93
  111. package/dist/interpolate.d.ts +0 -24
  112. package/dist/interpolate.js +0 -43
  113. package/dist/jsx-dev-runtime.d.ts +0 -11
  114. package/dist/jsx-dev-runtime.js +0 -15
  115. package/dist/jsx-runtime-I-1nCtl2.d.ts +0 -57
  116. package/dist/jsx-runtime.d.ts +0 -2
  117. package/dist/jsx-runtime.js +0 -121
  118. package/dist/lexer.d.ts +0 -60
  119. package/dist/lexer.js +0 -281
  120. package/dist/model.d.ts +0 -24
  121. package/dist/model.js +0 -77
  122. package/dist/ops-2aiiYO7m.js +0 -630
  123. package/dist/ops.d.ts +0 -114
  124. package/dist/ops.js +0 -2
  125. package/dist/parser-t29cHLVL.d.ts +0 -396
  126. package/dist/parser.d.ts +0 -2
  127. package/dist/parser.js +0 -859
  128. package/dist/predicate-BI6uRRM-.js +0 -549
  129. package/dist/predicate-M-05Nd7R.d.ts +0 -56
  130. package/dist/predicate.d.ts +0 -2
  131. package/dist/predicate.js +0 -2
  132. package/dist/presets/category-mapping.d.ts +0 -13
  133. package/dist/presets/category-mapping.js +0 -49
  134. package/dist/presets/corpus.d.ts +0 -2
  135. package/dist/presets/corpus.js +0 -194
  136. package/dist/presets/public-gallery.d.ts +0 -266
  137. package/dist/presets/public-gallery.js +0 -916
  138. package/dist/presets/public-handoff.d.ts +0 -164
  139. package/dist/presets/public-handoff.js +0 -361
  140. package/dist/presets/public-preview-artifacts.d.ts +0 -43
  141. package/dist/presets/public-preview-artifacts.js +0 -104
  142. package/dist/presets/public-preview.d.ts +0 -61
  143. package/dist/presets/public-preview.js +0 -83
  144. package/dist/presets/showcase.d.ts +0 -2
  145. package/dist/presets/showcase.js +0 -627
  146. package/dist/presets/sources.d.ts +0 -38
  147. package/dist/presets/sources.js +0 -6083
  148. package/dist/presets.d.ts +0 -2
  149. package/dist/presets.js +0 -881
  150. package/dist/printer.d.ts +0 -6
  151. package/dist/printer.js +0 -122
  152. package/dist/registry.d.ts +0 -42
  153. package/dist/registry.js +0 -646
  154. package/dist/render-template.d.ts +0 -45
  155. package/dist/render-template.js +0 -76
  156. package/dist/showcase-DGZAWn4Z.d.ts +0 -456
  157. package/dist/sms-segments-y4FpPilJ.d.ts +0 -13
  158. package/dist/source-locations-DrCM82Ym.d.ts +0 -67
  159. package/dist/template-DWftqh4x.d.ts +0 -60
  160. package/dist/theme-6ApjjiBo.d.ts +0 -116
  161. package/dist/theme.d.ts +0 -2
  162. package/dist/theme.js +0 -118
  163. package/dist/tokens.d.ts +0 -6
  164. package/dist/tokens.js +0 -417
  165. package/dist/tsx-source-instrumentation.d.ts +0 -30
  166. package/dist/tsx-source-instrumentation.js +0 -115
  167. package/dist/tsx-tracer.d.ts +0 -112
  168. package/dist/tsx-tracer.js +0 -985
  169. package/dist/variables-J_L3qxRa.d.ts +0 -77
  170. package/dist/variables.d.ts +0 -2
  171. package/dist/variables.js +0 -141
  172. package/dist/version-BITr58kk.js +0 -96
  173. package/generated/sml-agent-contract.json +0 -709
  174. package/generated/sml-email-agent-contract.json +0 -615
  175. package/generated/sml-email-language-reference.md +0 -94
  176. package/generated/sml-language-reference.md +0 -195
@@ -1,194 +0,0 @@
1
- import { n as isObject } from "../guards-eV1qLbf2.js";
2
- import { presetCatalog } from "../presets.js";
3
- import { showcaseProject, showcaseProjects, showcaseSourcePath } from "./showcase.js";
4
- import { Result } from "better-result";
5
- //#region presets/corpus.ts
6
- const templateFacetOptions = {
7
- jobType: [
8
- "account-access",
9
- "commerce",
10
- "product-communication",
11
- "lifecycle",
12
- "publishing-campaigns"
13
- ],
14
- lifecycle: [
15
- "acquisition",
16
- "activation",
17
- "engagement",
18
- "transaction",
19
- "retention",
20
- "recovery"
21
- ],
22
- industry: [
23
- "saas",
24
- "ecommerce",
25
- "developer-tools",
26
- "newsletters-media"
27
- ],
28
- season: ["evergreen", "seasonal"],
29
- audience: [
30
- "product-users",
31
- "customers",
32
- "members",
33
- "readers",
34
- "shoppers",
35
- "teams"
36
- ],
37
- design: [
38
- "minimal",
39
- "branded",
40
- "editorial",
41
- "data-heavy",
42
- "single-cta"
43
- ],
44
- brandProvenance: ["samva-original", "third-party-reference"]
45
- };
46
- /** Clean-room recreations of a named brand's own email, authored as editable Samva projects. */
47
- const brandRecreationProvenance = Object.fromEntries(showcaseProjects.flatMap((project) => project.provenance.kind === "brand-recreation" ? [[project.id, {
48
- owner: "Samva",
49
- sourcePath: showcaseSourcePath(project),
50
- recordedAt: project.recordedAt,
51
- brand: project.provenance.brand,
52
- subject: project.provenance.subject,
53
- reviewedNote: project.provenance.reviewedNote
54
- }]] : []));
55
- /**
56
- * Owned presets authored as complete showcase projects with their own stylesheet and assets.
57
- * Every other owned preset is the single module `packages/markup/presets/<id>.tsx`.
58
- */
59
- const ownedShowcasePresetSources = Object.fromEntries(showcaseProjects.flatMap((project) => project.provenance.kind === "owned" ? [[project.id, showcaseSourcePath(project)]] : []));
60
- const ownedPresetSourcePath = (id) => {
61
- const project = showcaseProject(id);
62
- return project === void 0 || project.provenance.kind !== "owned" ? `packages/markup/presets/${id}.tsx` : showcaseSourcePath(project);
63
- };
64
- const ISO_TIMESTAMP = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z$/;
65
- const nonEmpty = (value) => value.trim().length > 0;
66
- const isHttpsUrl = (value) => {
67
- const url = URL.parse(value);
68
- return url?.protocol === "https:" && url.hostname.length > 0 && url.username.length === 0 && url.password.length === 0;
69
- };
70
- const requiredFacetDimensions = [
71
- "jobType",
72
- "lifecycle",
73
- "industry",
74
- "season",
75
- "audience",
76
- "design",
77
- "brandProvenance"
78
- ];
79
- /** Exact key sets: a record carrying anything else is not the shape this gate admits. */
80
- const exactKeys = (value, keys) => isObject(value) && Object.keys(value).length === keys.length && keys.every((key) => Object.hasOwn(value, key));
81
- const isStringIn = (value, values) => typeof value === "string" && values.includes(value);
82
- const isStringArrayIn = (value, values) => Array.isArray(value) && value.every((entry) => isStringIn(entry, values));
83
- const isReview = (value) => exactKeys(value, [
84
- "state",
85
- "reviewedBy",
86
- "reviewedAt",
87
- "notes"
88
- ]) && isStringIn(value.state, [
89
- "draft",
90
- "approved",
91
- "rejected"
92
- ]) && typeof value.reviewedBy === "string" && typeof value.reviewedAt === "string" && typeof value.notes === "string";
93
- const isDisplay = (value) => exactKeys(value, ["state", "attributionLabel"]) && isStringIn(value.state, ["hidden", "public"]) && typeof value.attributionLabel === "string";
94
- const isRetention = (value) => exactKeys(value, ["policy", "reviewedAt"]) && isStringIn(value.policy, ["retain-until-withdrawn", "retain-while-linked"]) && typeof value.reviewedAt === "string";
95
- const isTakedown = (value) => exactKeys(value, [
96
- "state",
97
- "contact",
98
- "procedureUrl"
99
- ]) && isStringIn(value.state, ["active", "removed"]) && typeof value.contact === "string" && typeof value.procedureUrl === "string";
100
- /** The four governance blocks every corpus record carries, whatever its kind. */
101
- const hasGovernance = (value) => isReview(value.review) && isDisplay(value.display) && isRetention(value.retention) && isTakedown(value.takedown);
102
- const CORPUS_KEYS = [
103
- "type",
104
- "corpusKind",
105
- "provenance",
106
- "review",
107
- "display",
108
- "retention",
109
- "takedown"
110
- ];
111
- const isCorpusRecord = (value) => {
112
- if (!exactKeys(value, CORPUS_KEYS) || !hasGovernance(value)) return false;
113
- const provenance = value.provenance;
114
- if (value.type === "OwnedEditablePreset") return value.corpusKind === "owned-editable-sml" && exactKeys(provenance, [
115
- "owner",
116
- "sourcePath",
117
- "recordedAt"
118
- ]) && provenance.owner === "Samva" && typeof provenance.sourcePath === "string" && typeof provenance.recordedAt === "string";
119
- if (value.type === "BrandRecreationPreset") return value.corpusKind === "brand-recreation-sml" && exactKeys(provenance, [
120
- "owner",
121
- "sourcePath",
122
- "recordedAt",
123
- "brand",
124
- "subject",
125
- "reviewedNote"
126
- ]) && provenance.owner === "Samva" && typeof provenance.sourcePath === "string" && typeof provenance.recordedAt === "string" && typeof provenance.brand === "string" && typeof provenance.subject === "string" && typeof provenance.reviewedNote === "string";
127
- return value.type === "InspirationReference" && value.corpusKind === "inspiration-reference" && exactKeys(provenance, [
128
- "publisher",
129
- "sourceUrl",
130
- "capturedAt",
131
- "rightsBasis"
132
- ]) && typeof provenance.publisher === "string" && typeof provenance.sourceUrl === "string" && typeof provenance.capturedAt === "string" && isStringIn(provenance.rightsBasis, ["display-link-and-commentary", "permission"]);
133
- };
134
- const isFacetSet = (value) => exactKeys(value, requiredFacetDimensions) && requiredFacetDimensions.every((dimension) => isStringArrayIn(value[dimension], templateFacetOptions[dimension]));
135
- const isCorpusEntry = (value) => exactKeys(value, [
136
- "id",
137
- "corpus",
138
- "facets"
139
- ]) && typeof value.id === "string" && isCorpusRecord(value.corpus) && isFacetSet(value.facets);
140
- const canonicalOwnedPresetSources = new Map(presetCatalog.filter((preset) => preset.channel === "email" && !Object.hasOwn(brandRecreationProvenance, preset.id)).map((preset) => [preset.id, ownedPresetSourcePath(preset.id)]));
141
- /** Decode and gate a record before it can enter any public projection. */
142
- const registerPublicCorpusEntry = (input) => {
143
- if (!isCorpusEntry(input)) return Result.err({
144
- id: "unknown",
145
- message: "record does not match a corpus schema"
146
- });
147
- const { id, corpus, facets } = input;
148
- const timestamps = [
149
- corpus.review.reviewedAt,
150
- corpus.retention.reviewedAt,
151
- corpus.type === "InspirationReference" ? corpus.provenance.capturedAt : corpus.provenance.recordedAt
152
- ];
153
- if (!nonEmpty(id) || corpus.review.state !== "approved" || !nonEmpty(corpus.review.reviewedBy) || !nonEmpty(corpus.review.notes) || corpus.display.state !== "public" || !nonEmpty(corpus.display.attributionLabel) || corpus.takedown.state !== "active" || !nonEmpty(corpus.takedown.contact) || !isHttpsUrl(corpus.takedown.procedureUrl) || timestamps.some((timestamp) => !ISO_TIMESTAMP.test(timestamp))) return Result.err({
154
- id,
155
- message: "public corpus records require approved review, display, retention, and takedown metadata"
156
- });
157
- if (corpus.type === "OwnedEditablePreset" && (canonicalOwnedPresetSources.get(id) !== corpus.provenance.sourcePath || corpus.retention.policy !== "retain-until-withdrawn" || facets.brandProvenance.some((value) => value !== "samva-original"))) return Result.err({
158
- id,
159
- message: "owned presets require a canonical editable TSX source"
160
- });
161
- if (corpus.type === "BrandRecreationPreset") {
162
- const canonical = Object.entries(brandRecreationProvenance).find(([presetId]) => presetId === id)?.[1];
163
- 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.err({
164
- id,
165
- message: "brand recreations require a canonical source, a referenced brand and subject, and third-party provenance"
166
- });
167
- }
168
- if (corpus.type === "InspirationReference" && (!isHttpsUrl(corpus.provenance.sourceUrl) || corpus.retention.policy !== "retain-while-linked" || facets.brandProvenance.some((value) => value !== "third-party-reference"))) return Result.err({
169
- id,
170
- message: "inspiration references require an HTTPS source and third-party provenance facet"
171
- });
172
- for (const dimension of requiredFacetDimensions) {
173
- const values = facets[dimension];
174
- if (values.length === 0 || new Set(values).size !== values.length) return Result.err({
175
- id,
176
- message: `facet ${dimension} must be populated without duplicates`
177
- });
178
- }
179
- return Result.ok({
180
- id,
181
- corpus,
182
- facets
183
- });
184
- };
185
- /** Strict intersection: every selected value in every selected dimension must match. */
186
- const matchesTemplateFacets = (facets, query) => requiredFacetDimensions.every((dimension) => {
187
- const selected = query[dimension];
188
- const available = new Set(facets[dimension]);
189
- return selected === void 0 || selected.every((value) => available.has(value));
190
- });
191
- //#endregion
192
- export { brandRecreationProvenance, matchesTemplateFacets, ownedPresetSourcePath, ownedShowcasePresetSources, registerPublicCorpusEntry, templateFacetOptions };
193
-
194
- //# sourceMappingURL=corpus.js.map
@@ -1,266 +0,0 @@
1
- import { t as EmailPresetId } from "../catalog-60eaYC7b.js";
2
- import { c as TemplateFacetQuery, l as TemplateFacetSet, r as OwnedEditablePreset, t as BrandRecreationPreset } from "../corpus-BjYMqOoY.js";
3
- //#region presets/public-gallery.d.ts
4
- declare const templateUseCases: readonly ["account-access", "commerce", "product-communication", "lifecycle", "publishing-campaigns"];
5
- declare const templateCollectionFamilies: readonly ["category", "industry", "stage", "style"];
6
- type TemplateUseCase = (typeof templateUseCases)[number];
7
- type TemplateCollectionFamily = (typeof templateCollectionFamilies)[number];
8
- interface PublicTemplate {
9
- readonly presetId: EmailPresetId;
10
- readonly slug: string;
11
- readonly path: `/templates/${string}`;
12
- readonly useCase: TemplateUseCase;
13
- readonly collections: ReadonlyArray<TemplateCollectionId>;
14
- readonly relatedTemplates: ReadonlyArray<EmailPresetId>;
15
- /** Editable SML authored by Samva, either an original or a named-brand recreation. */
16
- readonly corpus: OwnedEditablePreset | BrandRecreationPreset;
17
- readonly facets: TemplateFacetSet;
18
- }
19
- declare const isMadeWithSamvaTemplate: (template: Pick<PublicTemplate, "corpus">) => boolean;
20
- interface TemplateCollection {
21
- readonly id: TemplateCollectionId;
22
- readonly family: TemplateCollectionFamily;
23
- readonly slug: string;
24
- readonly path: `/templates/${TemplateCollectionFamily}/${string}`;
25
- readonly templates: ReadonlyArray<EmailPresetId>;
26
- readonly relatedCollections: ReadonlyArray<TemplateCollectionId>;
27
- }
28
- type TemplateCollectionId = "category:transactional" | "category:lifecycle" | "category:marketing" | "category:digest-editorial" | "industry:saas" | "industry:ecommerce" | "industry:developer-tools" | "industry:newsletters-media" | "stage:acquisition" | "stage:activation" | "stage:engagement" | "stage:transaction" | "stage:retention" | "stage:recovery" | "style:minimal" | "style:branded" | "style:editorial" | "style:data-heavy" | "style:single-cta";
29
- /** Explicit evidence for every owned preset reviewed in the 2026-08-31 catalog pass. */
30
- declare const ownedPresetReviewManifest: {
31
- readonly welcome: {
32
- readonly sourcePath: "examples/email-showcase/emails/welcome.tsx";
33
- readonly reviewedBy: "Samva catalog review";
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
- };
37
- readonly "email-verification": {
38
- readonly sourcePath: "examples/email-showcase/emails/email-verification.tsx";
39
- readonly reviewedBy: "Samva catalog review";
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
- };
43
- readonly otp: {
44
- readonly sourcePath: "examples/email-showcase/emails/otp.tsx";
45
- readonly reviewedBy: "Samva catalog review";
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
- };
49
- readonly "password-reset": {
50
- readonly sourcePath: "examples/email-showcase/emails/password-reset.tsx";
51
- readonly reviewedBy: "Samva catalog review";
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.";
54
- };
55
- readonly "payment-failed": {
56
- readonly sourcePath: "examples/email-showcase/emails/payment-failed.tsx";
57
- readonly reviewedBy: "Samva catalog review";
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.";
60
- };
61
- readonly "shipping-update": {
62
- readonly sourcePath: "examples/email-showcase/emails/shipping-update.tsx";
63
- readonly reviewedBy: "Samva catalog review";
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.";
66
- };
67
- readonly notification: {
68
- readonly sourcePath: "examples/email-showcase/emails/notification.tsx";
69
- readonly reviewedBy: "Samva catalog review";
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.";
72
- };
73
- readonly "team-invite": {
74
- readonly sourcePath: "examples/email-showcase/emails/team-invite.tsx";
75
- readonly reviewedBy: "Samva catalog review";
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.";
78
- };
79
- readonly "product-newsletter": {
80
- readonly sourcePath: "examples/email-showcase/emails/product-newsletter.tsx";
81
- readonly reviewedBy: "Samva catalog review";
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.";
84
- };
85
- readonly "product-digest": {
86
- readonly sourcePath: "examples/email-showcase/emails/product-digest.tsx";
87
- readonly reviewedBy: "Samva catalog review";
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.";
90
- };
91
- readonly announcement: {
92
- readonly sourcePath: "examples/email-showcase/emails/announcement.tsx";
93
- readonly reviewedBy: "Samva catalog review";
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.";
96
- };
97
- readonly "event-invite": {
98
- readonly sourcePath: "examples/email-showcase/emails/event-invite.tsx";
99
- readonly reviewedBy: "Samva catalog review";
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.";
102
- };
103
- readonly "membership-promo": {
104
- readonly sourcePath: "examples/email-showcase/emails/membership-promo.tsx";
105
- readonly reviewedBy: "Samva catalog review";
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.";
108
- };
109
- readonly "onboarding-step": {
110
- readonly sourcePath: "examples/email-showcase/emails/onboarding-step.tsx";
111
- readonly reviewedBy: "Samva catalog review";
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.";
114
- };
115
- readonly "trial-ending": {
116
- readonly sourcePath: "examples/email-showcase/emails/trial-ending.tsx";
117
- readonly reviewedBy: "Samva catalog review";
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.";
120
- };
121
- readonly "win-back": {
122
- readonly sourcePath: "examples/email-showcase/emails/win-back.tsx";
123
- readonly reviewedBy: "Samva catalog review";
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.";
126
- };
127
- readonly "feedback-request": {
128
- readonly sourcePath: "examples/email-showcase/emails/feedback-request.tsx";
129
- readonly reviewedBy: "Samva catalog review";
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.";
132
- };
133
- readonly "editorial-newsletter": {
134
- readonly sourcePath: "examples/email-showcase/emails/editorial-newsletter.tsx";
135
- readonly reviewedBy: "Samva catalog review";
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.";
138
- };
139
- readonly "member-referral-offer": {
140
- readonly sourcePath: "examples/email-showcase/emails/member-referral-offer.tsx";
141
- readonly reviewedBy: "Samva catalog review";
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.";
144
- };
145
- readonly "catalog-sale-newsletter": {
146
- readonly sourcePath: "examples/email-showcase/emails/catalog-sale-newsletter.tsx";
147
- readonly reviewedBy: "Samva catalog review";
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.";
150
- };
151
- readonly "limited-time-savings": {
152
- readonly sourcePath: "examples/email-showcase/emails/limited-time-savings.tsx";
153
- readonly reviewedBy: "Samva catalog review";
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.";
156
- };
157
- readonly "rewards-milestone": {
158
- readonly sourcePath: "examples/email-showcase/emails/rewards-milestone.tsx";
159
- readonly reviewedBy: "Samva catalog review";
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.";
162
- };
163
- readonly "order-receipt": {
164
- readonly sourcePath: "examples/email-showcase/emails/order-receipt.tsx";
165
- readonly reviewedBy: "Samva catalog review";
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.";
168
- };
169
- readonly "travel-rewards-promo": {
170
- readonly sourcePath: "examples/email-showcase/emails/travel-rewards-promo.tsx";
171
- readonly reviewedBy: "Samva catalog review";
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.";
174
- };
175
- readonly "events-roundup": {
176
- readonly sourcePath: "examples/email-showcase/emails/events-roundup.tsx";
177
- readonly reviewedBy: "Samva catalog review";
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.";
180
- };
181
- readonly "product-onboarding-tour": {
182
- readonly sourcePath: "examples/email-showcase/emails/product-onboarding-tour.tsx";
183
- readonly reviewedBy: "Samva catalog review";
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.";
186
- };
187
- readonly "product-updates-roundup": {
188
- readonly sourcePath: "examples/email-showcase/emails/product-updates-roundup.tsx";
189
- readonly reviewedBy: "Samva catalog review";
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.";
192
- };
193
- readonly "flash-getaway-offer": {
194
- readonly sourcePath: "examples/email-showcase/emails/flash-getaway-offer.tsx";
195
- readonly reviewedBy: "Samva catalog review";
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.";
198
- };
199
- readonly "membership-benefits-promo": {
200
- readonly sourcePath: "examples/email-showcase/emails/membership-benefits-promo.tsx";
201
- readonly reviewedBy: "Samva catalog review";
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.";
204
- };
205
- readonly "industry-news-digest": {
206
- readonly sourcePath: "examples/email-showcase/emails/industry-news-digest.tsx";
207
- readonly reviewedBy: "Samva catalog review";
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.";
210
- };
211
- readonly "weekly-deals-circular": {
212
- readonly sourcePath: "examples/email-showcase/emails/weekly-deals-circular.tsx";
213
- readonly reviewedBy: "Samva catalog review";
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.";
216
- };
217
- readonly "data-sharing-review": {
218
- readonly sourcePath: "examples/email-showcase/emails/data-sharing-review.tsx";
219
- readonly reviewedBy: "Samva catalog review";
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.";
222
- };
223
- readonly "seasonal-sale-flyer": {
224
- readonly sourcePath: "examples/email-showcase/emails/seasonal-sale-flyer.tsx";
225
- readonly reviewedBy: "Samva catalog review";
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.";
228
- };
229
- readonly "setup-checklist": {
230
- readonly sourcePath: "examples/email-showcase/emails/setup-checklist.tsx";
231
- readonly reviewedBy: "Samva catalog review";
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.";
234
- };
235
- readonly "feature-release-roundup": {
236
- readonly sourcePath: "examples/email-showcase/emails/feature-release-roundup.tsx";
237
- readonly reviewedBy: "Samva catalog review";
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.";
240
- };
241
- readonly "season-clearance-promo": {
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";
249
- readonly reviewedBy: "Samva catalog review";
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.";
252
- };
253
- };
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];
255
- /** Deterministic strict-intersection search over the canonical public corpus order. */
256
- declare const filterPublicTemplatesByFacets: (query: TemplateFacetQuery) => ReadonlyArray<PublicTemplate>;
257
- declare const templateCollections: readonly [TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection];
258
- declare const publicTemplateGallery: {
259
- readonly hubPath: "/templates";
260
- readonly useCases: readonly ["account-access", "commerce", "product-communication", "lifecycle", "publishing-campaigns"];
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];
262
- readonly collections: readonly [TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection, TemplateCollection];
263
- };
264
- //#endregion
265
- export { PublicTemplate, TemplateCollection, TemplateCollectionFamily, TemplateCollectionId, TemplateUseCase, filterPublicTemplatesByFacets, isMadeWithSamvaTemplate, ownedPresetReviewManifest, publicTemplateGallery, publicTemplates, templateCollectionFamilies, templateCollections, templateUseCases };
266
- //# sourceMappingURL=public-gallery.d.ts.map