@zevra/ui 0.26.0 → 0.27.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.
- package/DECISIONS.md +20 -0
- package/dist/css-inline.d.ts.map +1 -1
- package/dist/css-inline.js +1 -1
- package/dist/css-inline.js.map +1 -1
- package/dist/email.d.ts +7 -1
- package/dist/email.d.ts.map +1 -1
- package/dist/email.js +12 -3
- package/dist/email.js.map +1 -1
- package/dist/glyph-urls.d.ts +14 -0
- package/dist/glyph-urls.d.ts.map +1 -0
- package/dist/glyph-urls.js +15 -0
- package/dist/glyph-urls.js.map +1 -0
- package/package.json +1 -1
- package/react/css-inline.ts +1 -1
- package/react/email.ts +16 -2
- package/react/glyph-urls.ts +16 -0
- package/src/surfaces.css +29 -3
package/dist/css-inline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-inline.js","sourceRoot":"","sources":["../react/css-inline.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,0EAA0E;AAE1E;;;iEAGiE;AACjE,MAAM,CAAC,MAAM,WAAW,GAAW,
|
|
1
|
+
{"version":3,"file":"css-inline.js","sourceRoot":"","sources":["../react/css-inline.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,0EAA0E;AAE1E;;;iEAGiE;AACjE,MAAM,CAAC,MAAM,WAAW,GAAW,w+1QAAw+1Q,CAAA;AAE3g2Q;;;yBAGyB;AACzB,MAAM,CAAC,MAAM,WAAW,GAAW,03BAA03B,CAAA"}
|
package/dist/email.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { LOGOS_PRODUITS } from './glyph-urls.js';
|
|
2
|
+
export { BASE_RESSOURCES, LOGOS_PRODUITS } from './glyph-urls.js';
|
|
1
3
|
/** Échappe ce qui entre dans le HTML. Un objet d'e-mail vient souvent d'une
|
|
2
4
|
* base de données : un nom de client avec une esperluette casserait le
|
|
3
5
|
* document, et un `<` bien placé y injecterait du balisage. */
|
|
@@ -56,6 +58,10 @@ export interface EmailOptions {
|
|
|
56
58
|
src: string;
|
|
57
59
|
hauteur?: number;
|
|
58
60
|
};
|
|
61
|
+
/** Raccourci : le glyphe d'un produit Zevra, à son URL publiée avec la
|
|
62
|
+
* planche. Écrase `logo`.
|
|
63
|
+
* ⚠️ Ne dispense PAS de `marque` : une image sur deux est bloquée. */
|
|
64
|
+
produit?: keyof typeof LOGOS_PRODUITS;
|
|
59
65
|
/** Les blocs, concaténés. */
|
|
60
66
|
contenu: string;
|
|
61
67
|
/** Sous la carte : mentions légales, désinscription. */
|
|
@@ -73,5 +79,5 @@ export interface EmailOptions {
|
|
|
73
79
|
* sombres du système : elles se font avec la bande manifeste, jamais en
|
|
74
80
|
* inversant les neutres.
|
|
75
81
|
*/
|
|
76
|
-
export declare function email({ titre, preheader, marque, logo, contenu, pied, lang, }: EmailOptions): string;
|
|
82
|
+
export declare function email({ titre, preheader, marque, logo, produit, contenu, pied, lang, }: EmailOptions): string;
|
|
77
83
|
//# sourceMappingURL=email.d.ts.map
|
package/dist/email.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../react/email.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../react/email.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AA2BjE;;gEAEgE;AAChE,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM7C;AAID;;;6DAG6D;AAC7D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOjD;AAED;2BAC2B;AAC3B,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;kBAGkB;AAClB,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;qDAIqD;AACrD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAKxF;AAED;;wBAEwB;AACxB,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEhG;AAED,6DAA6D;AAC7D,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED,8BAA8B;AAC9B,wBAAgB,UAAU,IAAI,MAAM,CAGnC;AAID,MAAM,WAAW,YAAY;IAC3B;0CACsC;IACtC,KAAK,EAAE,MAAM,CAAA;IACb;;;4CAGwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;0DAEsD;IACtD,MAAM,EAAE,MAAM,CAAA;IACd;mEAC+D;IAC/D,IAAI,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC;;2EAEuE;IACvE,OAAO,CAAC,EAAE,MAAM,OAAO,cAAc,CAAA;IACrC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,SAAS,EACT,MAAM,EACN,IAAI,EACJ,OAAO,EACP,OAAO,EACP,IAAI,EACJ,IAAW,GACZ,EAAE,YAAY,GAAG,MAAM,CAkDvB"}
|
package/dist/email.js
CHANGED
|
@@ -22,6 +22,11 @@
|
|
|
22
22
|
// s'affichera pas. Ne pas y ajouter de classes en espérant qu'elles soient
|
|
23
23
|
// stylées.
|
|
24
24
|
import { COULEURS, POLICES as PILES } from './email-tokens.js';
|
|
25
|
+
// Les URL publiques des glyphes — sept chaînes, aucune image inlinée : un
|
|
26
|
+
// client de messagerie ne résout pas une data-URI (Gmail les bloque), il lui
|
|
27
|
+
// faut une adresse absolue.
|
|
28
|
+
import { LOGOS_PRODUITS } from './glyph-urls.js';
|
|
29
|
+
export { BASE_RESSOURCES, LOGOS_PRODUITS } from './glyph-urls.js';
|
|
25
30
|
/** ⚠️ Les piles de polices du paquet contiennent des GUILLEMETS DOUBLES
|
|
26
31
|
* (`"Public Sans", …`), et tout ici s'écrit dans un attribut `style="…"`
|
|
27
32
|
* délimité par ces mêmes guillemets : l'attribut se refermerait au premier
|
|
@@ -119,9 +124,13 @@ export function emailFilet() {
|
|
|
119
124
|
* sombres du système : elles se font avec la bande manifeste, jamais en
|
|
120
125
|
* inversant les neutres.
|
|
121
126
|
*/
|
|
122
|
-
export function email({ titre, preheader, marque, logo, contenu, pied, lang = 'fr', }) {
|
|
123
|
-
const
|
|
124
|
-
|
|
127
|
+
export function email({ titre, preheader, marque, logo, produit, contenu, pied, lang = 'fr', }) {
|
|
128
|
+
const source = produit ? LOGOS_PRODUITS[produit] : logo?.src;
|
|
129
|
+
// 34px : la hauteur du logo de la barre de vitrine sous le seuil. Un
|
|
130
|
+
// e-mail se lit surtout au téléphone.
|
|
131
|
+
const hauteur = logo?.hauteur ?? 34;
|
|
132
|
+
const enTete = source
|
|
133
|
+
? `<img src="${echappe(source)}" height="${hauteur}" alt="${echappe(marque)}" style="display:block;border:0;height:${hauteur}px;width:auto;">`
|
|
125
134
|
: `<span style="font-family:${POLICES.display};font-weight:600;font-size:20px;letter-spacing:-0.02em;color:${COULEURS.ink};">${echappe(marque)}</span>`;
|
|
126
135
|
return `<!doctype html>
|
|
127
136
|
<html lang="${lang}">
|
package/dist/email.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.js","sourceRoot":"","sources":["../react/email.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,qEAAqE;AACrE,+DAA+D;AAC/D,EAAE;AACF,kEAAkE;AAClE,qEAAqE;AACrE,6EAA6E;AAC7E,2EAA2E;AAC3E,+EAA+E;AAC/E,2EAA2E;AAC3E,4EAA4E;AAC5E,0EAA0E;AAC1E,EAAE;AACF,wEAAwE;AACxE,yEAAyE;AACzE,uCAAuC;AACvC,EAAE;AACF,uEAAuE;AACvE,2EAA2E;AAC3E,WAAW;AAEX,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"email.js","sourceRoot":"","sources":["../react/email.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Où la planche publie les glyphes (staticDirs de .storybook/main.ts). */
|
|
2
|
+
export declare const BASE_RESSOURCES = "https://design.zevra.tech";
|
|
3
|
+
/** L'URL PUBLIQUE de chaque glyphe. Absolue, parce qu'un e-mail ne résout
|
|
4
|
+
* ni un chemin relatif ni une data-URI. */
|
|
5
|
+
export declare const LOGOS_PRODUITS: {
|
|
6
|
+
readonly campus: "https://design.zevra.tech/logos/glyphes/campus.png";
|
|
7
|
+
readonly lexform: "https://design.zevra.tech/logos/glyphes/lexform.png";
|
|
8
|
+
readonly mcp: "https://design.zevra.tech/logos/glyphes/mcp.png";
|
|
9
|
+
readonly memoire: "https://design.zevra.tech/logos/glyphes/memoire.png";
|
|
10
|
+
readonly plume: "https://design.zevra.tech/logos/glyphes/plume.png";
|
|
11
|
+
readonly supernovia: "https://design.zevra.tech/logos/glyphes/supernovia.png";
|
|
12
|
+
readonly zevra: "https://design.zevra.tech/logos/glyphes/zevra.png";
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=glyph-urls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glyph-urls.d.ts","sourceRoot":"","sources":["../react/glyph-urls.ts"],"names":[],"mappings":"AAEA,2EAA2E;AAC3E,eAAO,MAAM,eAAe,8BAA8B,CAAA;AAE1D;4CAC4C;AAC5C,eAAO,MAAM,cAAc;aACzB,MAAQ;aACR,OAAS;aACT,GAAK;aACL,OAAS;aACT,KAAO;aACP,UAAY;aACZ,KAAO;CACC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// GÉNÉRÉ par scripts/build-glyph-data.mjs — ne pas éditer à la main.
|
|
2
|
+
/** Où la planche publie les glyphes (staticDirs de .storybook/main.ts). */
|
|
3
|
+
export const BASE_RESSOURCES = 'https://design.zevra.tech';
|
|
4
|
+
/** L'URL PUBLIQUE de chaque glyphe. Absolue, parce qu'un e-mail ne résout
|
|
5
|
+
* ni un chemin relatif ni une data-URI. */
|
|
6
|
+
export const LOGOS_PRODUITS = {
|
|
7
|
+
'campus': `${BASE_RESSOURCES}/logos/glyphes/campus.png`,
|
|
8
|
+
'lexform': `${BASE_RESSOURCES}/logos/glyphes/lexform.png`,
|
|
9
|
+
'mcp': `${BASE_RESSOURCES}/logos/glyphes/mcp.png`,
|
|
10
|
+
'memoire': `${BASE_RESSOURCES}/logos/glyphes/memoire.png`,
|
|
11
|
+
'plume': `${BASE_RESSOURCES}/logos/glyphes/plume.png`,
|
|
12
|
+
'supernovia': `${BASE_RESSOURCES}/logos/glyphes/supernovia.png`,
|
|
13
|
+
'zevra': `${BASE_RESSOURCES}/logos/glyphes/zevra.png`,
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=glyph-urls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glyph-urls.js","sourceRoot":"","sources":["../react/glyph-urls.ts"],"names":[],"mappings":"AAAA,qEAAqE;AAErE,2EAA2E;AAC3E,MAAM,CAAC,MAAM,eAAe,GAAG,2BAA2B,CAAA;AAE1D;4CAC4C;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,QAAQ,EAAE,GAAG,eAAe,2BAA2B;IACvD,SAAS,EAAE,GAAG,eAAe,4BAA4B;IACzD,KAAK,EAAE,GAAG,eAAe,wBAAwB;IACjD,SAAS,EAAE,GAAG,eAAe,4BAA4B;IACzD,OAAO,EAAE,GAAG,eAAe,0BAA0B;IACrD,YAAY,EAAE,GAAG,eAAe,+BAA+B;IAC/D,OAAO,EAAE,GAAG,eAAe,0BAA0B;CAC7C,CAAA"}
|