@clay-design-system/email 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build/asset-scoring.d.ts.map +1 -1
- package/dist/build/asset-scoring.js +2 -1
- package/dist/build/asset-scoring.js.map +1 -1
- package/dist/build/compile.js +1 -1
- package/dist/build/icon-registry-map.d.ts +2 -2
- package/dist/build/icon-registry-map.d.ts.map +1 -1
- package/dist/build/icon-registry-map.js +1 -1
- package/dist/build/visual-resolver.d.ts +2 -2
- package/dist/build/visual-resolver.js +2 -2
- package/dist/catalog.json +77 -77
- package/dist/emails/component-buttons-icons.html +9 -9
- package/dist/emails/component-buttons-integration.html +9 -9
- package/dist/emails/component-buttons-primary.html +9 -9
- package/dist/emails/component-buttons-secondary.html +9 -9
- package/dist/emails/component-buttons-two-integrations.html +9 -9
- package/dist/emails/component-images-card-280h.html +9 -9
- package/dist/emails/component-images-card-320h.html +9 -9
- package/dist/emails/component-images-card.html +9 -9
- package/dist/emails/component-images-full-bleed-280h.html +9 -9
- package/dist/emails/component-images-full-bleed-400h.html +9 -9
- package/dist/emails/component-images-full-bleed.html +9 -9
- package/dist/emails/component-text-h1.html +9 -9
- package/dist/emails/component-text-h2.html +9 -9
- package/dist/emails/component-text-h3.html +9 -9
- package/dist/emails/component-text-h4.html +9 -9
- package/dist/emails/component-text-h5.html +9 -9
- package/dist/emails/component-text-p2.html +9 -9
- package/dist/emails/component-text-p3.html +11 -11
- package/dist/emails/component-text-p4.html +11 -11
- package/dist/emails/container.html +10 -10
- package/dist/emails/section-changelog-icon-list.html +9 -9
- package/dist/emails/section-divider-line.html +11 -11
- package/dist/emails/section-feature-highlight-reversed.html +9 -9
- package/dist/emails/section-feature-highlight.html +9 -9
- package/dist/emails/section-feature-rows.html +9 -9
- package/dist/emails/section-feature-story-row-reversed.html +11 -11
- package/dist/emails/section-feature-story-row.html +11 -11
- package/dist/emails/section-footer-lifecycle.html +9 -9
- package/dist/emails/section-footer-two-column-minimal.html +11 -11
- package/dist/emails/section-footer.html +15 -15
- package/dist/emails/section-header.html +9 -9
- package/dist/emails/section-hero.html +9 -9
- package/dist/emails/section-icon-feature-list.html +9 -9
- package/dist/emails/section-image-caption-block.html +9 -9
- package/dist/emails/section-image-hero.html +10 -10
- package/dist/emails/section-lesson-card.html +11 -11
- package/dist/emails/section-list-action-items.html +9 -9
- package/dist/emails/section-list-feature-items.html +9 -9
- package/dist/emails/section-list-icon-items.html +13 -13
- package/dist/emails/section-list-numbered-items.html +9 -9
- package/dist/emails/section-logo-header.html +9 -9
- package/dist/emails/section-newsletter-hero.html +10 -10
- package/dist/emails/section-product-ui-hero.html +9 -9
- package/dist/emails/section-promo-banner.html +9 -9
- package/dist/emails/section-qa-block.html +9 -9
- package/dist/emails/section-resource-link-list.html +9 -9
- package/dist/emails/section-signoff.html +9 -9
- package/dist/emails/section-single-column-author.html +9 -9
- package/dist/emails/section-single-column-feature-card.html +9 -9
- package/dist/emails/section-single-column-product-card.html +10 -10
- package/dist/emails/section-single-column-promo-card.html +10 -10
- package/dist/emails/section-spacer-fill.html +12 -12
- package/dist/emails/section-testimonial-dark-card.html +9 -9
- package/dist/emails/section-text-h1-regular.html +9 -9
- package/dist/emails/section-text-h2-regular.html +9 -9
- package/dist/emails/section-text-h3-regular.html +9 -9
- package/dist/emails/section-text-h4-regular.html +9 -9
- package/dist/emails/section-text-h5-regular.html +9 -9
- package/dist/emails/section-text-mixed-heading.html +9 -9
- package/dist/emails/section-text-overline-heading.html +11 -11
- package/dist/emails/section-text-p1-bold.html +9 -9
- package/dist/emails/section-text-p1-regular.html +9 -9
- package/dist/emails/section-text-paragraph.html +9 -9
- package/dist/emails/section-text-quote-card.html +9 -9
- package/dist/emails/section-text-quote.html +9 -9
- package/dist/emails/section-text-small-headline.html +10 -10
- package/dist/emails/section-three-column-content-cards.html +9 -9
- package/dist/emails/section-three-column-icon-cards.html +9 -9
- package/dist/emails/section-three-column-image-grid.html +9 -9
- package/dist/emails/section-three-up-icon-benefits.html +9 -9
- package/dist/emails/section-two-column-feature-cards.html +9 -9
- package/dist/emails/section-two-column-grid.html +9 -9
- package/dist/emails/section-two-column-img-text.html +9 -9
- package/dist/emails/section-two-column-live-tags.html +10 -10
- package/dist/emails/section-two-column-stacked.html +9 -9
- package/dist/emails/section-upsell-cta.html +9 -9
- package/dist/emails/section-value-bullet-list.html +9 -9
- package/dist/generated/email-tokens.d.ts +1 -1
- package/dist/generated/email-tokens.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/tokens/build-email-assets.js +1 -1
- package/dist/tokens/build-email-assets.js.map +1 -1
- package/dist/tokens/build-email-tokens.js +10 -10
- package/dist/tokens/build-email-tokens.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-scoring.d.ts","sourceRoot":"","sources":["../../src/build/asset-scoring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"asset-scoring.d.ts","sourceRoot":"","sources":["../../src/build/asset-scoring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAIzE;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAA;AAEvE;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAMlE,CAAA;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAA;IAC9B,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAA;IAChC,2FAA2F;IAC3F,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,CAAA;CACtC;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAA;IACR,mKAAmK;IACnK,eAAe,EAAE,MAAM,EAAE,CAAA;CAC1B;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAgB/F"}
|
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
*/
|
|
19
19
|
export function containsWord(haystackLower, word) {
|
|
20
20
|
const escaped = word.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
21
|
-
|
|
21
|
+
// Whole word, tolerating a simple English plural in the haystack ("agents" matches tag "agent").
|
|
22
|
+
return new RegExp(`\\b${escaped}(?:s|es)?\\b`).test(haystackLower);
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
24
25
|
* Which of stock-library-source.csv's curated `ratio` values ('square' | 'wide' | 'super wide')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-scoring.js","sourceRoot":"","sources":["../../src/build/asset-scoring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,aAAqB,EAAE,IAAY;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;IAC3D,OAAO,IAAI,MAAM,CAAC,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"asset-scoring.js","sourceRoot":"","sources":["../../src/build/asset-scoring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,aAAqB,EAAE,IAAY;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;IAC3D,iGAAiG;IACjG,OAAO,IAAI,MAAM,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AACpE,CAAC;AASD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAmC;IACrE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzB,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;IACjB,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;CACrB,CAAA;AAeD,MAAM,UAAU,eAAe,CAAI,UAAe,EAAE,IAAoB;IACtE,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA;IAC/H,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAE/B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAA;IACjE,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,UAAU,CAAC,CAAA;IAC1E,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,CAAA;IAE/F,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IACnH,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAA;IAC5E,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAElC,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,YAAY,CAAC,CAAA;IACvF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC9C,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACxC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AACvG,CAAC"}
|
package/dist/build/compile.js
CHANGED
|
@@ -31,7 +31,7 @@ const cloudinaryIndex = cloudinaryManifest ? indexManifestByCampaignEmailFile(cl
|
|
|
31
31
|
*
|
|
32
32
|
* Two independent hosted-URL sources:
|
|
33
33
|
* - `icons/<name>.svg` → the Clay icon registry's `cloudinaryPngUrl` (icons.json, populated by
|
|
34
|
-
* scripts/upload-icons-to-cloudinary.ts). PNG, not the icon's own SVG source: many email
|
|
34
|
+
* scripts/cloudinary/upload-icons-to-cloudinary.ts). PNG, not the icon's own SVG source: many email
|
|
35
35
|
* clients (notably Outlook) don't reliably render SVG in <img>, so hosted icon delivery
|
|
36
36
|
* follows the same raster-only rule as everything else here — only the *authoring* format is
|
|
37
37
|
* SVG. An icon not yet uploaded (brand-new, before its first `icons:upload-cloudinary` run)
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* rootDir: "src", so a cross-package relative TS import would violate it; a plain JSON file read
|
|
7
7
|
* doesn't, same trick build-email-assets.ts already uses to reach
|
|
8
8
|
* packages/react/src/icons/svg/*.svg for the actual SVG bytes. icons.json is itself generated by
|
|
9
|
-
* the real
|
|
9
|
+
* the real Clay icon pipeline (scripts/docs/generate-icons.ts) — nothing here is invented.
|
|
10
10
|
*/
|
|
11
11
|
import { type RankedMatch } from './asset-scoring';
|
|
12
12
|
export interface IconRegistryEntry {
|
|
@@ -14,7 +14,7 @@ export interface IconRegistryEntry {
|
|
|
14
14
|
category: string;
|
|
15
15
|
description: string;
|
|
16
16
|
tags: string[];
|
|
17
|
-
/** Present only once scripts/upload-icons-to-cloudinary.ts has uploaded this icon. */
|
|
17
|
+
/** Present only once scripts/cloudinary/upload-icons-to-cloudinary.ts has uploaded this icon. */
|
|
18
18
|
cloudinarySvgUrl?: string;
|
|
19
19
|
cloudinaryPngUrl?: string;
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-registry-map.d.ts","sourceRoot":"","sources":["../../src/build/icon-registry-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAAiC,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAKjF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,
|
|
1
|
+
{"version":3,"file":"icon-registry-map.d.ts","sourceRoot":"","sources":["../../src/build/icon-registry-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAAiC,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAKjF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,iGAAiG;IACjG,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAOD,eAAO,MAAM,aAAa,EAAE,iBAAiB,EAAuB,CAAA;AAEpE,2FAA2F;AAC3F,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAErE;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAOnF"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* rootDir: "src", so a cross-package relative TS import would violate it; a plain JSON file read
|
|
7
7
|
* doesn't, same trick build-email-assets.ts already uses to reach
|
|
8
8
|
* packages/react/src/icons/svg/*.svg for the actual SVG bytes. icons.json is itself generated by
|
|
9
|
-
* the real
|
|
9
|
+
* the real Clay icon pipeline (scripts/docs/generate-icons.ts) — nothing here is invented.
|
|
10
10
|
*/
|
|
11
11
|
import { existsSync, readFileSync } from 'node:fs';
|
|
12
12
|
import { dirname, resolve } from 'node:path';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Visual-brief resolver (
|
|
2
|
+
* Visual-brief resolver (OPEN-QUESTIONS.md M3 + D6/D8/D21; BRIEF-HANDOVER.md §3).
|
|
3
3
|
*
|
|
4
4
|
* Takes the 4-field per-slot visual brief (slot / intent / source / assetRef) and resolves each
|
|
5
5
|
* slot to exactly one of three outcomes, per the priority order already documented in
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* they need a human decision, not a silent swap.
|
|
23
23
|
*
|
|
24
24
|
* Every slot gets exactly one of the three statuses above — never nothing. That's the literal
|
|
25
|
-
* "no silent gaps" contract from
|
|
25
|
+
* "no silent gaps" contract from OPEN-QUESTIONS.md M3's "Done when".
|
|
26
26
|
*
|
|
27
27
|
* Usage: tsx src/build/visual-resolver.ts --brief=<path-to-visual-brief.json>
|
|
28
28
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Visual-brief resolver (
|
|
2
|
+
* Visual-brief resolver (OPEN-QUESTIONS.md M3 + D6/D8/D21; BRIEF-HANDOVER.md §3).
|
|
3
3
|
*
|
|
4
4
|
* Takes the 4-field per-slot visual brief (slot / intent / source / assetRef) and resolves each
|
|
5
5
|
* slot to exactly one of three outcomes, per the priority order already documented in
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* they need a human decision, not a silent swap.
|
|
23
23
|
*
|
|
24
24
|
* Every slot gets exactly one of the three statuses above — never nothing. That's the literal
|
|
25
|
-
* "no silent gaps" contract from
|
|
25
|
+
* "no silent gaps" contract from OPEN-QUESTIONS.md M3's "Done when".
|
|
26
26
|
*
|
|
27
27
|
* Usage: tsx src/build/visual-resolver.ts --brief=<path-to-visual-brief.json>
|
|
28
28
|
*/
|