@cloudgrid-io/ui 0.45.0 → 0.46.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.
@@ -93,6 +93,12 @@ export declare const EMAIL_HEADLINES: {
93
93
  readonly width: 303;
94
94
  readonly height: 47;
95
95
  };
96
+ readonly "new-address": {
97
+ readonly text: "NEW GRID ADDRESS";
98
+ readonly file: "headline-new-address.png";
99
+ readonly width: 300;
100
+ readonly height: 47;
101
+ };
96
102
  };
97
103
  export type EmailHeadline = keyof typeof EMAIL_HEADLINES;
98
104
  //# sourceMappingURL=assets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/email/assets.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc;;;;;CAA8E,CAAA;AAEzG,eAAO,MAAM,UAAU;;;CAA0C,CAAA;AAEjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAelB,CAAA;AAEV,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,eAAe,CAAA"}
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/email/assets.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc;;;;;CAA8E,CAAA;AAEzG,eAAO,MAAM,UAAU;;;CAA0C,CAAA;AAEjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBlB,CAAA;AAEV,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,eAAe,CAAA"}
@@ -20,5 +20,6 @@ export const EMAIL_HEADLINES = {
20
20
  "access-request": { text: "ACCESS REQUEST", file: "headline-access-request.png", width: 260, height: 47 },
21
21
  "approval-needed": { text: "APPROVAL NEEDED", file: "headline-approval-needed.png", width: 283, height: 47 },
22
22
  "request-approved": { text: "REQUEST APPROVED", file: "headline-request-approved.png", width: 303, height: 47 },
23
+ "new-address": { text: "NEW GRID ADDRESS", file: "headline-new-address.png", width: 300, height: 47 },
23
24
  };
24
25
  //# sourceMappingURL=assets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/email/assets.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,kEAAkE;AAClE,iFAAiF;AACjF,0DAA0D;AAE1D,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,EAAW,CAAA;AAEzG,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAW,CAAA;AAEjE,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,eAAe,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACtG,kBAAkB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,+BAA+B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAC/G,SAAS,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACvF,cAAc,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACxG,SAAS,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3F,UAAU,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAC/F,cAAc,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACxG,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAChG,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAC1F,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACpF,cAAc,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACnG,gBAAgB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,6BAA6B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACzG,iBAAiB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAC5G,kBAAkB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,+BAA+B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;CACvG,CAAA"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/email/assets.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,kEAAkE;AAClE,iFAAiF;AACjF,0DAA0D;AAE1D,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,EAAW,CAAA;AAEzG,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAW,CAAA;AAEjE,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,eAAe,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACtG,kBAAkB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,+BAA+B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAC/G,SAAS,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACvF,cAAc,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACxG,SAAS,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3F,UAAU,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAC/F,cAAc,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACxG,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAChG,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAC1F,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACpF,cAAc,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACnG,gBAAgB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,6BAA6B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IACzG,iBAAiB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAC5G,kBAAkB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,+BAA+B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAC/G,aAAa,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;CAC7F,CAAA"}
@@ -31,8 +31,30 @@
31
31
  * the monogram tile), name and kind, and the expiring status
32
32
  * pill exactly as `EntityExpiryStatus` draws it
33
33
  * the frame lavender ground, the white container at the library's
34
- * container radius, centred like the sign-in and the empty
35
- * state, and the sign-in's footer
34
+ * container radius, at the left edge, and the sign-in's
35
+ * footer
36
+ *
37
+ * ## Left-aligned, nothing centred (ui#427, cloudgrid#6037)
38
+ *
39
+ * The column sits at the left edge of the ground (at most 560 wide, 16px from
40
+ * the edge), and everything in it is set left: the wordmark, the headline, the
41
+ * title, the paragraphs, the points, the sign-in code, the button, the small
42
+ * print and the footer. An email is read top to bottom, like a letter, and
43
+ * centred text reads as a banner (founder, 2026-11-07: "the email layout should
44
+ * not be centered"). Only a button's own label and an item's picture area keep
45
+ * their contents centred inside their box.
46
+ *
47
+ * ## Addresses are linked by the layout, never by the mail client
48
+ *
49
+ * A mail client links what looks like a host on its own, and it reads a host
50
+ * its own way: iPhone Mail turned `grid--acme.cloudgrid.io` into plain
51
+ * `grid--` and a blue `acme.cloudgrid.io`, and broke the line inside the host.
52
+ * So a line can carry runs (`EmailRun`): text, a link (`{ label, url }`, its
53
+ * label shown whole) and an example address (`{ example }`), which is wrapped
54
+ * in an inert anchor so no client links it. A host in a run never breaks
55
+ * inside a name: a short one stays whole, a long one breaks after a dot or a
56
+ * slash, and only a very long slug between its words, `grid--` kept on the
57
+ * first one.
36
58
  *
37
59
  * ## No React, no dependencies
38
60
  *
@@ -117,6 +139,28 @@ export type EmailCommand = {
117
139
  label: string;
118
140
  text: string;
119
141
  };
142
+ /**
143
+ * One piece of a line: text; a link, its label shown whole (for an address,
144
+ * the full host, so no mail client splits it); or an example address that is
145
+ * shown as written and linked by nobody (`acme.cloudgrid.io/name`).
146
+ */
147
+ export type EmailRun = string | EmailLink | {
148
+ example: string;
149
+ };
150
+ /** A paragraph: plain text, or runs of text, links and example addresses. */
151
+ export type EmailLine = string | EmailRun[];
152
+ /**
153
+ * One labelled fact in the facts block, for a change the reader should see at
154
+ * a glance: `{ label: "New address", value: [{ label: "grid--acme.cloudgrid.io", url }] }`.
155
+ * `note` is a small line under the value; `muted` sets the value in the
156
+ * secondary tone (the old address next to the new one).
157
+ */
158
+ export type EmailFact = {
159
+ label: string;
160
+ value: EmailLine;
161
+ note?: string;
162
+ muted?: boolean;
163
+ };
120
164
  export interface EmailItem {
121
165
  /** "Pricing Grid" */
122
166
  name: string;
@@ -157,8 +201,16 @@ export interface EmailContent {
157
201
  * use these instead of `lines` (founder, 2026-10-11: "use short points").
158
202
  */
159
203
  points?: string[];
160
- /** Paragraphs, plain text, for the emails that need prose. */
161
- lines?: string[];
204
+ /**
205
+ * Labelled facts under the title, in a raised box, one under the other:
206
+ * what changed, at a glance. Each value can link (`EmailLine`).
207
+ */
208
+ facts?: EmailFact[];
209
+ /**
210
+ * Paragraphs, for the emails that need prose. Plain text, or runs with links
211
+ * and example addresses (`EmailLine`).
212
+ */
213
+ lines?: EmailLine[];
162
214
  items?: EmailItem[];
163
215
  /** A sign-in code, e.g. "482-913". */
164
216
  code?: string;
@@ -228,11 +280,34 @@ export declare function escapeHtml(value: string): string;
228
280
  * the result through `escapeHtml` before putting it in an attribute.
229
281
  */
230
282
  export declare function safeUrl(url: string): string;
283
+ /**
284
+ * A size for a headline's alt text that fits the image's own width in the heavy
285
+ * face, so a blocked headline sets as one designed line, not a clipped one.
286
+ * Arial Black's capitals with the 0.02em tracking run about 0.84em, and a
287
+ * client may draw a broken-image icon (about 24px with its gap) before the
288
+ * words, inside the same fixed box (cloudgrid#6037).
289
+ */
290
+ export declare const ALT_ICON_ROOM = 24;
231
291
  /**
232
292
  * The width an item's picture is drawn at: the 560 column, less the container's
233
293
  * 1px border and 40px padding a side, less the card's own 1px border.
234
294
  */
235
295
  export declare const EMAIL_ITEM_IMAGE_WIDTH: number;
296
+ /**
297
+ * The widest a headline is drawn: the card's text width on a 375px phone
298
+ * (375 less the 16px gutters, the 1px border and the 20px phone padding a
299
+ * side). A wider PNG is drawn smaller, height in proportion, so its fixed
300
+ * height never squashes it there.
301
+ */
302
+ export declare const EMAIL_HEADLINE_MAX_WIDTH: number;
303
+ /** A headline's drawn size: its manifest size, scaled down to the phone column. */
304
+ export declare function headlineSize(h: {
305
+ width: number;
306
+ height: number;
307
+ }): {
308
+ width: number;
309
+ height: number;
310
+ };
236
311
  /** Render one email. Pure: the same content always gives the same strings (within a year). */
237
312
  export declare function renderEmail(content: EmailContent): RenderedEmail;
238
313
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/email/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/email/index.ts"],"names":[],"mappings":"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"}
@@ -31,8 +31,30 @@
31
31
  * the monogram tile), name and kind, and the expiring status
32
32
  * pill exactly as `EntityExpiryStatus` draws it
33
33
  * the frame lavender ground, the white container at the library's
34
- * container radius, centred like the sign-in and the empty
35
- * state, and the sign-in's footer
34
+ * container radius, at the left edge, and the sign-in's
35
+ * footer
36
+ *
37
+ * ## Left-aligned, nothing centred (ui#427, cloudgrid#6037)
38
+ *
39
+ * The column sits at the left edge of the ground (at most 560 wide, 16px from
40
+ * the edge), and everything in it is set left: the wordmark, the headline, the
41
+ * title, the paragraphs, the points, the sign-in code, the button, the small
42
+ * print and the footer. An email is read top to bottom, like a letter, and
43
+ * centred text reads as a banner (founder, 2026-11-07: "the email layout should
44
+ * not be centered"). Only a button's own label and an item's picture area keep
45
+ * their contents centred inside their box.
46
+ *
47
+ * ## Addresses are linked by the layout, never by the mail client
48
+ *
49
+ * A mail client links what looks like a host on its own, and it reads a host
50
+ * its own way: iPhone Mail turned `grid--acme.cloudgrid.io` into plain
51
+ * `grid--` and a blue `acme.cloudgrid.io`, and broke the line inside the host.
52
+ * So a line can carry runs (`EmailRun`): text, a link (`{ label, url }`, its
53
+ * label shown whole) and an example address (`{ example }`), which is wrapped
54
+ * in an inert anchor so no client links it. A host in a run never breaks
55
+ * inside a name: a short one stays whole, a long one breaks after a dot or a
56
+ * slash, and only a very long slug between its words, `grid--` kept on the
57
+ * first one.
36
58
  *
37
59
  * ## No React, no dependencies
38
60
  *
@@ -168,10 +190,13 @@ const WORDMARK_FACE = "Arial, Helvetica, sans-serif";
168
190
  /**
169
191
  * A size for a headline's alt text that fits the image's own width in the heavy
170
192
  * face, so a blocked headline sets as one designed line, not a clipped one.
171
- * Arial Black's capitals average about 0.72em.
193
+ * Arial Black's capitals with the 0.02em tracking run about 0.84em, and a
194
+ * client may draw a broken-image icon (about 24px with its gap) before the
195
+ * words, inside the same fixed box (cloudgrid#6037).
172
196
  */
197
+ export const ALT_ICON_ROOM = 24;
173
198
  function altSize(text, width) {
174
- return Math.max(18, Math.min(30, Math.floor(width / (text.length * 0.72))));
199
+ return Math.max(16, Math.min(30, Math.floor((width - ALT_ICON_ROOM) / (text.length * 0.84))));
175
200
  }
176
201
  // ---- the shape --------------------------------------------------------------
177
202
  const BODY = S.fontBody;
@@ -270,31 +295,47 @@ function item(it, base) {
270
295
  `</table>`);
271
296
  }
272
297
  /** One block of the card, spaced from the one above it. */
273
- const row = (content, top, align = "center") => `<tr><td align="${align}" style="padding-top:${top}px;text-align:${align};">${content}</td></tr>`;
298
+ const row = (content, top, align = "left") => `<tr><td align="${align}" style="padding-top:${top}px;text-align:${align};">${content}</td></tr>`;
299
+ /**
300
+ * The widest a headline is drawn: the card's text width on a 375px phone
301
+ * (375 less the 16px gutters, the 1px border and the 20px phone padding a
302
+ * side). A wider PNG is drawn smaller, height in proportion, so its fixed
303
+ * height never squashes it there.
304
+ */
305
+ export const EMAIL_HEADLINE_MAX_WIDTH = 375 - 2 * (16 + 1 + 20);
306
+ /** A headline's drawn size: its manifest size, scaled down to the phone column. */
307
+ export function headlineSize(h) {
308
+ if (h.width <= EMAIL_HEADLINE_MAX_WIDTH)
309
+ return { width: h.width, height: h.height };
310
+ return { width: EMAIL_HEADLINE_MAX_WIDTH, height: Math.round((h.height * EMAIL_HEADLINE_MAX_WIDTH) / h.width) };
311
+ }
274
312
  function headlineBlock(content, base) {
275
313
  const h = content.headline ? EMAIL_HEADLINES[content.headline] : undefined;
276
314
  if (!h) {
277
315
  // No headline: the title is the heading, in the body face.
278
- return `<h1 style="margin:0;font-family:${BODY};font-size:24px;line-height:1.25;font-weight:700;color:${C.text};text-align:center;">${escapeHtml(content.title)}</h1>`;
316
+ return `<h1 style="margin:0;font-family:${BODY};font-size:24px;line-height:1.25;font-weight:700;color:${C.text};text-align:left;">${escapeHtml(content.title)}</h1>`;
279
317
  }
280
318
  const words = escapeHtml(h.text);
281
- const live = `<span style="display:block;font-family:${HEAVY};font-size:34px;line-height:${h.height}px;font-weight:900;letter-spacing:1px;text-transform:uppercase;color:${C.primary};text-align:center;">${words}</span>`;
319
+ const { width: hw, height: hh } = headlineSize(h);
320
+ const live = `<span style="display:block;font-family:${HEAVY};font-size:34px;line-height:${h.height}px;font-weight:900;letter-spacing:1px;text-transform:uppercase;color:${C.primary};text-align:left;">${words}</span>`;
282
321
  // No base: live text for everyone, the treatment Outlook gets.
283
322
  if (!base)
284
- return `<h1 style="margin:0;font-size:0;line-height:0;text-align:center;">${live}</h1>`;
285
- return (`<h1 style="margin:0;font-size:0;line-height:0;text-align:center;">` +
323
+ return `<h1 style="margin:0;font-size:0;line-height:0;text-align:left;">${live}</h1>`;
324
+ return (`<h1 style="margin:0;font-size:0;line-height:0;text-align:left;">` +
286
325
  // The picture, its alt text styled as a heading for a client that blocks it.
287
- // No height attribute: a blocked image then takes the alt text's height
288
- // rather than holding an empty box.
289
- notMso(`<img src="${assetUrl(base, h.file)}" width="${h.width}" alt="${words}" ` +
290
- `style="display:block;margin:0 auto;border:0;outline:none;max-width:100%;height:auto;font-family:${HEAVY};font-size:${altSize(h.text, h.width)}px;line-height:${h.height}px;font-weight:900;letter-spacing:0.02em;text-transform:uppercase;color:${C.primary};text-align:center;">`) +
326
+ // Width and height as attributes and as CSS, never `height:auto`: a client
327
+ // that blocks the image (or cannot fetch it) then holds a banner-sized strip
328
+ // with the alt text in it, not a tall empty box with a broken-image icon
329
+ // (iPhone Mail, cloudgrid#6037).
330
+ notMso(`<img src="${assetUrl(base, h.file)}" width="${hw}" height="${hh}" alt="${words}" ` +
331
+ `style="display:block;margin:0;border:0;outline:none;width:${hw}px;height:${hh}px;max-width:100%;font-family:${HEAVY};font-size:${altSize(h.text, hw)}px;line-height:${hh}px;font-weight:900;letter-spacing:0.02em;text-transform:uppercase;color:${C.primary};text-align:left;">`) +
291
332
  // Outlook: the same words as live text, sized like the picture.
292
333
  mso(live) +
293
334
  `</h1>`);
294
335
  }
295
336
  /**
296
- * The points: a small table centred in the card, one row per fact, a brand
297
- * purple bullet and the words left-aligned beside it. The bullet is a text
337
+ * The points: a small table at the card's left edge, one row per fact, a brand
338
+ * purple bullet and the words beside it. The bullet is a text
298
339
  * character rather than a drawn dot, so Outlook (which draws no inline-block
299
340
  * box) shows it too; the same markup serves every branch.
300
341
  */
@@ -305,13 +346,108 @@ function pointsList(points) {
305
346
  `<td valign="top" align="left" style="padding:3px 0;font-family:${BODY};font-size:15px;line-height:22px;color:${C.text};text-align:left;">${escapeHtml(p)}</td>` +
306
347
  `</tr>`)
307
348
  .join("");
308
- return `<table ${TABLE} align="center" style="margin:0 auto;">${rows}</table>`;
349
+ return `<table ${TABLE} style="margin:0;">${rows}</table>`;
309
350
  }
310
351
  /** Newlines in caller text, as line breaks, after escaping. */
311
352
  const breaks = (text) => escapeHtml(text).replace(/\r?\n/g, "<br>");
353
+ /**
354
+ * The longest run of a host kept on one line: about a phone line at body size.
355
+ * A host this long or shorter never breaks at all.
356
+ */
357
+ const HOST_PIECE_MAX = 30;
358
+ const nowrap = (text) => `<span style="white-space:nowrap;">${escapeHtml(text)}</span>`;
359
+ /**
360
+ * A long piece (a 40-character slug) breaks after a single hyphen between
361
+ * words, with `grid--` and `name--` kept on the word they belong to; a word
362
+ * that alone is still too long may break anywhere rather than push the card
363
+ * wider than a phone.
364
+ */
365
+ function longPiece(piece) {
366
+ const words = piece.match(/[^-]+-*|-+/g) ?? [piece];
367
+ // `grid--` + `northwind-`: a double hyphen joins the word after it.
368
+ const glued = [];
369
+ for (const w of words) {
370
+ if (glued.length && glued[glued.length - 1].endsWith("--"))
371
+ glued[glued.length - 1] += w;
372
+ else
373
+ glued.push(w);
374
+ }
375
+ return glued;
376
+ }
377
+ /**
378
+ * A host or URL as text that never breaks inside a name. A short one stays on
379
+ * one line whole; a longer one breaks only after a dot or a slash
380
+ * (`grid--acme-corp.` `cloudgrid.` `io`), and a piece still too long only
381
+ * between the words of its slug. Text with a space in it is not an address and
382
+ * is escaped as is.
383
+ */
384
+ function addressText(value) {
385
+ if (/\s/.test(value))
386
+ return escapeHtml(value);
387
+ if (value.length <= HOST_PIECE_MAX)
388
+ return nowrap(value);
389
+ return (value.match(/[^./]+[./]*|[./]+/g) ?? [value])
390
+ .flatMap((piece) => (piece.length <= HOST_PIECE_MAX ? [piece] : longPiece(piece)))
391
+ .map((piece) => piece.length <= HOST_PIECE_MAX ? nowrap(piece) : `<span style="word-break:break-all;">${escapeHtml(piece)}</span>`)
392
+ .join("<wbr>");
393
+ }
394
+ const isExample = (run) => typeof run === "object" && "example" in run;
395
+ /** One line's runs as HTML. `muted` sets links in the secondary tone. */
396
+ function runsHtml(line, muted = false) {
397
+ if (typeof line === "string")
398
+ return escapeHtml(line);
399
+ return line
400
+ .map((run) => {
401
+ if (typeof run === "string")
402
+ return escapeHtml(run);
403
+ if (isExample(run)) {
404
+ // An inert anchor: a client that finds an anchor does not add its own.
405
+ return `<a href="#" style="color:inherit;text-decoration:none;pointer-events:none;cursor:text;">${addressText(run.example)}</a>`;
406
+ }
407
+ const color = muted ? C.textSecondary : C.primary;
408
+ return `<a href="${attrUrl(run.url)}" target="_blank" rel="noopener" style="color:${color};text-decoration:underline;font-weight:600;">${addressText(run.label)}</a>`;
409
+ })
410
+ .join("");
411
+ }
412
+ /** One line's runs as plain text: a link whose label is not its own address gets the URL after it. */
413
+ function runsText(line) {
414
+ if (typeof line === "string")
415
+ return line;
416
+ return line
417
+ .map((run) => {
418
+ if (typeof run === "string")
419
+ return run;
420
+ if (isExample(run))
421
+ return run.example;
422
+ const bare = safeUrl(run.url).replace(/^https?:\/\//, "").replace(/\/+$/, "");
423
+ return bare === run.label ? run.label : `${run.label} (${safeUrl(run.url)})`;
424
+ })
425
+ .join("");
426
+ }
427
+ /**
428
+ * The facts: a raised box, one fact under another (label, value, note), so it
429
+ * holds at a phone's width without a second column.
430
+ */
431
+ function factsBlock(facts) {
432
+ const rows = facts
433
+ .map((f, i) => {
434
+ const rule = i === 0 ? "" : `border-top:1px solid ${C.hairline};`;
435
+ const pad = i === 0 ? "0 0 12px" : i === facts.length - 1 ? "12px 0 0" : "12px 0";
436
+ return (`<tr><td align="left" style="${rule}padding:${facts.length === 1 ? "0" : pad};text-align:left;font-family:${BODY};">` +
437
+ `<p style="margin:0 0 2px;font-size:13px;line-height:1.46;color:${C.textMuted};text-align:left;">${escapeHtml(f.label)}</p>` +
438
+ `<p style="margin:0;font-size:17px;line-height:1.4;font-weight:${f.muted ? 500 : 600};color:${f.muted ? C.textSecondary : C.text};text-align:left;">${runsHtml(f.value, f.muted)}</p>` +
439
+ (f.note ? `<p style="margin:2px 0 0;font-size:13px;line-height:1.46;color:${C.textMuted};text-align:left;">${escapeHtml(f.note)}</p>` : "") +
440
+ `</td></tr>`);
441
+ })
442
+ .join("");
443
+ return (`<table ${TABLE} width="100%" bgcolor="${C.raised}" style="width:100%;background-color:${C.raised};border-radius:${S.radiusCard}px;border-collapse:separate;"><tr>` +
444
+ `<td align="left" style="padding:16px 18px;text-align:left;">` +
445
+ `<table ${TABLE} width="100%" style="width:100%;">${rows}</table>` +
446
+ `</td></tr></table>`);
447
+ }
312
448
  /**
313
449
  * A quoted note: a purple rule down its left edge, the words in the body face
314
- * at body size, left-aligned in the centred card, and its label small and
450
+ * at body size, left-aligned in the card, and its label small and
315
451
  * muted above it.
316
452
  */
317
453
  function quoteBlock(quote) {
@@ -330,7 +466,7 @@ function quoteBlock(quote) {
330
466
  * pushing the card wide.
331
467
  */
332
468
  function commandBlock(command) {
333
- return (`<p style="margin:0 0 8px;font-family:${BODY};font-size:13px;line-height:1.5;color:${C.textSecondary};text-align:center;">${escapeHtml(command.label)}</p>` +
469
+ return (`<p style="margin:0 0 8px;font-family:${BODY};font-size:13px;line-height:1.5;color:${C.textSecondary};text-align:left;">${escapeHtml(command.label)}</p>` +
334
470
  `<table ${TABLE} width="100%" style="width:100%;border-collapse:separate;"><tr>` +
335
471
  `<td align="left" bgcolor="${C.raised}" style="background-color:${C.raised};border-radius:${S.radiusTile}px;padding:12px 14px;font-family:${S.fontMono};font-size:13px;line-height:1.5;color:${C.text};text-align:left;word-break:break-all;">` +
336
472
  `${escapeHtml(command.text)}</td></tr></table>`);
@@ -338,31 +474,33 @@ function commandBlock(command) {
338
474
  function cardRows(content, base) {
339
475
  const rows = [row(headlineBlock(content, base), 0)];
340
476
  if (content.headline && EMAIL_HEADLINES[content.headline]) {
341
- rows.push(row(`<p style="margin:0;font-family:${BODY};font-size:19px;line-height:1.46;color:${C.textSecondary};">${escapeHtml(content.title)}</p>`, 10));
477
+ rows.push(row(`<p style="margin:0;font-family:${BODY};font-size:19px;line-height:1.46;color:${C.textSecondary};text-align:left;">${escapeHtml(content.title)}</p>`, 10));
342
478
  }
343
479
  if (content.code) {
344
480
  rows.push(row(`<table ${TABLE} width="100%" style="width:100%;border-collapse:separate;"><tr>` +
345
- `<td align="center" bgcolor="${C.raised}" style="background-color:${C.raised};border-radius:${S.radiusCard}px;padding:18px;font-family:${S.fontMono};font-size:30px;line-height:1;font-weight:600;letter-spacing:0.12em;color:${C.text};text-align:center;">` +
481
+ `<td align="left" bgcolor="${C.raised}" style="background-color:${C.raised};border-radius:${S.radiusCard}px;padding:18px 20px;font-family:${S.fontMono};font-size:30px;line-height:1;font-weight:600;letter-spacing:0.12em;color:${C.text};text-align:left;">` +
346
482
  `${escapeHtml(content.code)}</td></tr></table>`, 24));
347
483
  }
484
+ if (content.facts?.length)
485
+ rows.push(row(factsBlock(content.facts), 20));
348
486
  if (content.points?.length)
349
487
  rows.push(row(pointsList(content.points), 18));
350
488
  (content.lines ?? []).forEach((line, i) => {
351
- rows.push(row(`<p style="margin:0;font-family:${BODY};font-size:15px;line-height:1.55;color:${C.textSecondary};">${escapeHtml(line)}</p>`, i === 0 ? 16 : 10));
489
+ rows.push(row(`<p style="margin:0;font-family:${BODY};font-size:15px;line-height:1.55;color:${C.textSecondary};text-align:left;">${runsHtml(line)}</p>`, i === 0 ? 16 : 10));
352
490
  });
353
491
  if (content.quote?.text)
354
- rows.push(row(quoteBlock(content.quote), 20, "left"));
355
- (content.items ?? []).forEach((it, i) => rows.push(row(item(it, base), i === 0 ? 28 : 16, "left")));
492
+ rows.push(row(quoteBlock(content.quote), 20));
493
+ (content.items ?? []).forEach((it, i) => rows.push(row(item(it, base), i === 0 ? 28 : 16)));
356
494
  if (content.action) {
357
- rows.push(row(`<table ${TABLE} align="center"><tr><td align="center" style="text-align:center;">${button(content.action)}</td></tr></table>`, 28));
495
+ rows.push(row(button(content.action), 28));
358
496
  }
359
497
  if (content.note) {
360
- rows.push(row(`<p style="margin:0;font-family:${BODY};font-size:13px;line-height:1.46;color:${C.textMuted};">${escapeHtml(content.note)}</p>`, content.action ? 12 : 20));
498
+ rows.push(row(`<p style="margin:0;font-family:${BODY};font-size:13px;line-height:1.46;color:${C.textMuted};text-align:left;">${escapeHtml(content.note)}</p>`, content.action ? 12 : 20));
361
499
  }
362
500
  if (content.secondary) {
363
501
  const { prefix, link } = content.secondary;
364
- rows.push(row(`<p style="margin:0;font-family:${BODY};font-size:13px;line-height:1.5;color:${C.textSecondary};">${escapeHtml(prefix)} ` +
365
- `<a href="${attrUrl(link.url)}" target="_blank" rel="noopener" style="color:${C.text};text-decoration:underline;">${escapeHtml(link.label)}</a></p>`, 16));
502
+ rows.push(row(`<p style="margin:0;font-family:${BODY};font-size:13px;line-height:1.5;color:${C.textSecondary};text-align:left;">${escapeHtml(prefix)} ` +
503
+ `<a href="${attrUrl(link.url)}" target="_blank" rel="noopener" style="color:${C.text};text-decoration:underline;">${addressText(link.label)}</a></p>`, 16));
366
504
  }
367
505
  if (content.command?.text)
368
506
  rows.push(row(commandBlock(content.command), 20));
@@ -374,7 +512,7 @@ function copyright() {
374
512
  }
375
513
  function footer(content) {
376
514
  const { lines, link } = content.footer;
377
- const p = (inner, last = false) => `<p style="margin:0 0 ${last ? 0 : 6}px;font-family:${BODY};font-size:13px;line-height:1.46;color:${C.textMuted};text-align:center;">${inner}</p>`;
515
+ const p = (inner, last = false) => `<p style="margin:0 0 ${last ? 0 : 6}px;font-family:${BODY};font-size:13px;line-height:1.46;color:${C.textMuted};text-align:left;">${inner}</p>`;
378
516
  const parts = lines.map((l) => p(escapeHtml(l)));
379
517
  if (link) {
380
518
  parts.push(p(`<a href="${attrUrl(link.url)}" target="_blank" rel="noopener" style="color:${C.text};text-decoration:underline;">${escapeHtml(link.label)}</a>${escapeHtml(link.suffix ?? "")}`));
@@ -413,26 +551,28 @@ function renderHtml(content) {
413
551
  `<body dir="ltr" bgcolor="${C.page}" style="margin:0;padding:0;background-color:${C.page};direction:ltr;text-align:left;">` +
414
552
  preheader(content.preheader) +
415
553
  `<table ${TABLE} width="100%" bgcolor="${C.page}" style="width:100%;background-color:${C.page};direction:ltr;"><tr>` +
416
- `<td align="center" style="padding:32px 16px 40px;text-align:center;">` +
417
- `<!--[if mso]><table ${TABLE} width="560" align="center"><tr><td><![endif]-->` +
554
+ `<td align="left" style="padding:32px 16px 40px;text-align:left;">` +
555
+ `<!--[if mso]><table ${TABLE} width="560" align="left"><tr><td><![endif]-->` +
418
556
  // separate, not the reset's collapse: a collapsed table draws a rounded
419
557
  // cell's border square, which showed as a faint edge behind the corners.
558
+ // The column sits at the left edge of the ground, at most 560 wide, like a
559
+ // GitHub or Linear notice (founder, 2026-11-07: nothing centred).
420
560
  `<table ${TABLE} width="100%" style="width:100%;max-width:560px;border-collapse:separate;direction:ltr;">` +
421
561
  // the wordmark, top left
422
562
  `<tr><td align="left" style="padding:0 4px 24px;text-align:left;">` +
423
563
  // The alt says the name; blocked, it is set lowercase and purple, as the mark reads.
424
564
  // No base: the live wordmark for everyone.
425
565
  (base
426
- ? notMso(`<img src="${assetUrl(base, w.file)}" width="${w.width}" alt="${escapeHtml(w.alt)}" ` +
427
- `style="display:block;border:0;outline:none;width:${w.width}px;height:auto;font-family:${WORDMARK_FACE};font-size:24px;line-height:${w.height}px;font-weight:700;letter-spacing:-0.02em;text-transform:lowercase;color:${C.primary};">`) + mso(liveMark)
566
+ ? notMso(`<img src="${assetUrl(base, w.file)}" width="${w.width}" height="${w.height}" alt="${escapeHtml(w.alt)}" ` +
567
+ `style="display:block;border:0;outline:none;width:${w.width}px;height:${w.height}px;font-family:${WORDMARK_FACE};font-size:15px;line-height:${w.height}px;font-weight:700;letter-spacing:-0.02em;text-transform:lowercase;color:${C.primary};">`) + mso(liveMark)
428
568
  : liveMark) +
429
569
  `</td></tr>` +
430
570
  // the container
431
- `<tr><td class="cg-card" align="center" bgcolor="${C.card}" style="background-color:${C.card};border:1px solid ${C.hairline};border-radius:${S.radiusContainer}px;padding:44px 40px 40px;text-align:center;">` +
571
+ `<tr><td class="cg-card" align="left" bgcolor="${C.card}" style="background-color:${C.card};border:1px solid ${C.hairline};border-radius:${S.radiusContainer}px;padding:44px 40px 40px;text-align:left;">` +
432
572
  `<table ${TABLE} width="100%" style="width:100%;">${cardRows(content, base)}</table>` +
433
573
  `</td></tr>` +
434
574
  // the footer
435
- `<tr><td align="center" style="padding:24px 16px 0;text-align:center;">${footer(content)}</td></tr>` +
575
+ `<tr><td align="left" style="padding:24px 4px 0;text-align:left;">${footer(content)}</td></tr>` +
436
576
  `</table>` +
437
577
  `<!--[if mso]></td></tr></table><![endif]-->` +
438
578
  `</td></tr></table>` +
@@ -447,9 +587,11 @@ function renderText(content) {
447
587
  const out = h ? [h.text, content.title] : [content.title];
448
588
  if (content.code)
449
589
  out.push(content.code);
590
+ for (const f of content.facts ?? [])
591
+ out.push([f.label, runsText(f.value), ...(f.note ? [f.note] : [])].join("\n"));
450
592
  if (content.points?.length)
451
593
  out.push(content.points.map((p) => `- ${p}`).join("\n"));
452
- out.push(...(content.lines ?? []));
594
+ out.push(...(content.lines ?? []).map(runsText));
453
595
  if (content.quote?.text) {
454
596
  const quoted = content.quote.text.split(/\r?\n/).map((l) => `> ${l}`).join("\n");
455
597
  out.push(content.quote.label ? `${content.quote.label}\n${quoted}` : quoted);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/email/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/email/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudgrid-io/ui",
3
- "version": "0.45.0",
3
+ "version": "0.46.0",
4
4
  "description": "CloudGrid design system: React components, brand design tokens, Tailwind theme, self-hosted fonts.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/",