@cloudgrid-io/ui 0.31.6 → 0.32.3

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 (139) hide show
  1. package/dist/badge/bubble.d.ts +6 -1
  2. package/dist/badge/bubble.d.ts.map +1 -1
  3. package/dist/badge/bubble.js +10 -5
  4. package/dist/badge/bubble.js.map +1 -1
  5. package/dist/badge/css-base.d.ts +5 -0
  6. package/dist/badge/css-base.d.ts.map +1 -1
  7. package/dist/badge/css-base.js +7 -0
  8. package/dist/badge/css-base.js.map +1 -1
  9. package/dist/badge/css-bubble.d.ts +9 -6
  10. package/dist/badge/css-bubble.d.ts.map +1 -1
  11. package/dist/badge/css-bubble.js +17 -16
  12. package/dist/badge/css-bubble.js.map +1 -1
  13. package/dist/badge/css-live.d.ts +21 -0
  14. package/dist/badge/css-live.d.ts.map +1 -0
  15. package/dist/badge/css-live.js +53 -0
  16. package/dist/badge/css-live.js.map +1 -0
  17. package/dist/badge/css-owner.d.ts.map +1 -1
  18. package/dist/badge/css-owner.js +12 -5
  19. package/dist/badge/css-owner.js.map +1 -1
  20. package/dist/badge/css-visitor.d.ts.map +1 -1
  21. package/dist/badge/css-visitor.js +28 -19
  22. package/dist/badge/css-visitor.js.map +1 -1
  23. package/dist/badge/index.d.ts +6 -4
  24. package/dist/badge/index.d.ts.map +1 -1
  25. package/dist/badge/index.js +8 -5
  26. package/dist/badge/index.js.map +1 -1
  27. package/dist/badge/live.d.ts +41 -0
  28. package/dist/badge/live.d.ts.map +1 -0
  29. package/dist/badge/live.js +41 -0
  30. package/dist/badge/live.js.map +1 -0
  31. package/dist/badge/marks.d.ts +5 -1
  32. package/dist/badge/marks.d.ts.map +1 -1
  33. package/dist/badge/marks.js +11 -1
  34. package/dist/badge/marks.js.map +1 -1
  35. package/dist/badge/owner.d.ts.map +1 -1
  36. package/dist/badge/owner.js +4 -3
  37. package/dist/badge/owner.js.map +1 -1
  38. package/dist/badge/palette.d.ts +1 -1
  39. package/dist/badge/palette.d.ts.map +1 -1
  40. package/dist/badge/palette.js +10 -1
  41. package/dist/badge/palette.js.map +1 -1
  42. package/dist/badge/visitor.d.ts +19 -5
  43. package/dist/badge/visitor.d.ts.map +1 -1
  44. package/dist/badge/visitor.js +18 -8
  45. package/dist/badge/visitor.js.map +1 -1
  46. package/dist/blocks/agent-prompt.d.ts.map +1 -1
  47. package/dist/blocks/agent-prompt.js +11 -1
  48. package/dist/blocks/agent-prompt.js.map +1 -1
  49. package/dist/blocks/compare-table.d.ts.map +1 -1
  50. package/dist/blocks/compare-table.js +1 -1
  51. package/dist/blocks/compare-table.js.map +1 -1
  52. package/dist/blocks/entity-card.d.ts.map +1 -1
  53. package/dist/blocks/entity-card.js +13 -33
  54. package/dist/blocks/entity-card.js.map +1 -1
  55. package/dist/blocks/eyebrow.d.ts +5 -0
  56. package/dist/blocks/eyebrow.d.ts.map +1 -1
  57. package/dist/blocks/eyebrow.js +6 -1
  58. package/dist/blocks/eyebrow.js.map +1 -1
  59. package/dist/blocks/feature-cells.d.ts.map +1 -1
  60. package/dist/blocks/feature-cells.js +1 -1
  61. package/dist/blocks/feature-cells.js.map +1 -1
  62. package/dist/blocks/icons.d.ts +23 -0
  63. package/dist/blocks/icons.d.ts.map +1 -1
  64. package/dist/blocks/icons.js +23 -0
  65. package/dist/blocks/icons.js.map +1 -1
  66. package/dist/blocks/phosphor-marks.d.ts +8 -0
  67. package/dist/blocks/phosphor-marks.d.ts.map +1 -1
  68. package/dist/blocks/phosphor-marks.js +12 -0
  69. package/dist/blocks/phosphor-marks.js.map +1 -1
  70. package/dist/blocks/pricing-tier-cards.d.ts.map +1 -1
  71. package/dist/blocks/pricing-tier-cards.js +1 -1
  72. package/dist/blocks/pricing-tier-cards.js.map +1 -1
  73. package/dist/blocks/side-nav.d.ts +6 -1
  74. package/dist/blocks/side-nav.d.ts.map +1 -1
  75. package/dist/blocks/side-nav.js.map +1 -1
  76. package/dist/blocks/stat-tile.d.ts.map +1 -1
  77. package/dist/blocks/stat-tile.js +6 -2
  78. package/dist/blocks/stat-tile.js.map +1 -1
  79. package/dist/blocks/tab-bar.d.ts +105 -2
  80. package/dist/blocks/tab-bar.d.ts.map +1 -1
  81. package/dist/blocks/tab-bar.js +15 -2
  82. package/dist/blocks/tab-bar.js.map +1 -1
  83. package/dist/blocks/tool-setup.js +1 -1
  84. package/dist/blocks/tool-setup.js.map +1 -1
  85. package/dist/brand/email/headline-access-request.png +0 -0
  86. package/dist/brand/email/headline-approval-needed.png +0 -0
  87. package/dist/brand/email/headline-new-reaction.png +0 -0
  88. package/dist/brand/email/headline-new-version.png +0 -0
  89. package/dist/brand/email/headline-picked-up.png +0 -0
  90. package/dist/brand/email/headline-remixed.png +0 -0
  91. package/dist/brand/email/headline-request-approved.png +0 -0
  92. package/dist/brand/email/headline-sign-in-link.png +0 -0
  93. package/dist/email/assets.d.ts +48 -0
  94. package/dist/email/assets.d.ts.map +1 -1
  95. package/dist/email/assets.js +8 -0
  96. package/dist/email/assets.js.map +1 -1
  97. package/dist/email/index.d.ts +34 -0
  98. package/dist/email/index.d.ts.map +1 -1
  99. package/dist/email/index.js +81 -25
  100. package/dist/email/index.js.map +1 -1
  101. package/dist/index.d.ts +2 -0
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +2 -0
  104. package/dist/index.js.map +1 -1
  105. package/dist/shadcn.css +26 -0
  106. package/dist/tokens/base.json +76 -0
  107. package/dist/tokens.css +36 -0
  108. package/dist/tokens.json +8 -0
  109. package/dist/ui/dialog.d.ts +1 -1
  110. package/dist/ui/dialog.d.ts.map +1 -1
  111. package/dist/ui/dialog.js +14 -3
  112. package/dist/ui/dialog.js.map +1 -1
  113. package/dist/ui/drawer.d.ts +1 -1
  114. package/dist/ui/drawer.d.ts.map +1 -1
  115. package/dist/ui/drawer.js +11 -3
  116. package/dist/ui/drawer.js.map +1 -1
  117. package/dist/ui/dropdown-menu.d.ts +14 -1
  118. package/dist/ui/dropdown-menu.d.ts.map +1 -1
  119. package/dist/ui/dropdown-menu.js +21 -2
  120. package/dist/ui/dropdown-menu.js.map +1 -1
  121. package/dist/ui/popover.d.ts +1 -72
  122. package/dist/ui/popover.d.ts.map +1 -1
  123. package/dist/ui/popover.js +35 -9
  124. package/dist/ui/popover.js.map +1 -1
  125. package/dist/ui/progress-bar.d.ts +7 -0
  126. package/dist/ui/progress-bar.d.ts.map +1 -0
  127. package/dist/ui/progress-bar.js +44 -0
  128. package/dist/ui/progress-bar.js.map +1 -0
  129. package/dist/ui/separator.js +1 -1
  130. package/dist/ui/separator.js.map +1 -1
  131. package/dist/ui/spinner.d.ts +44 -0
  132. package/dist/ui/spinner.d.ts.map +1 -0
  133. package/dist/ui/spinner.js +54 -0
  134. package/dist/ui/spinner.js.map +1 -0
  135. package/dist/ui/tabs.d.ts +6 -0
  136. package/dist/ui/tabs.d.ts.map +1 -1
  137. package/dist/ui/tabs.js +11 -5
  138. package/dist/ui/tabs.js.map +1 -1
  139. package/package.json +1 -1
@@ -75,6 +75,18 @@
75
75
  * caller names; without it the system stack renders.
76
76
  * - An item's `imageUrl` is the caller's own URL and is used as given.
77
77
  *
78
+ * ## Left to right, always (cloudgrid#4647)
79
+ *
80
+ * The email is English, and a mail client in a right-to-left locale (Gmail or
81
+ * Outlook in Hebrew) wraps the message in its own `dir="rtl"`. Inherited, that
82
+ * moves a sentence's full stop to the start of the line and mirrors the item
83
+ * row, putting the status pill left of the name with its dot on the wrong
84
+ * side. So the layout states its direction everywhere a client might cut in:
85
+ * `dir="ltr"` on `<html>`, on `<body>` and on every table it emits (Gmail drops
86
+ * `<html>` and `<body>`, so the tables are what hold), `direction:ltr` on the
87
+ * outer wrapper, and an explicit `text-align` wherever alignment carries
88
+ * meaning.
89
+ *
78
90
  * ## Escaping
79
91
  *
80
92
  * Every string the caller passes is text, never HTML: `&`, `<`, `>`, `"` and
@@ -164,8 +176,11 @@ function altSize(text, width) {
164
176
  // ---- the shape --------------------------------------------------------------
165
177
  const BODY = S.fontBody;
166
178
  const UI = S.fontUi;
167
- /** Every layout table: no spacing, no border, announced as nothing. */
168
- const TABLE = 'role="presentation" cellpadding="0" cellspacing="0" border="0"';
179
+ /**
180
+ * Every layout table: no spacing, no border, announced as nothing, and left to
181
+ * right whatever direction the client wraps the message in (cloudgrid#4647).
182
+ */
183
+ const TABLE = 'role="presentation" dir="ltr" cellpadding="0" cellspacing="0" border="0"';
169
184
  /**
170
185
  * The width an item's picture is drawn at: the 560 column, less the container's
171
186
  * 1px border and 40px padding a side, less the card's own 1px border.
@@ -189,7 +204,7 @@ function button(link, small = false) {
189
204
  const pad = small ? "6px 16px" : "10px 20px";
190
205
  const size = small ? 14 : 15;
191
206
  return (`<table ${TABLE} style="border-collapse:separate;"><tr>` +
192
- `<td align="center" bgcolor="${C.button}" style="background-color:${C.button};border-radius:${S.radiusButton}px;mso-padding-alt:${pad};">` +
207
+ `<td align="center" bgcolor="${C.button}" style="background-color:${C.button};border-radius:${S.radiusButton}px;mso-padding-alt:${pad};text-align:center;">` +
193
208
  `<a href="${attrUrl(link.url)}" target="_blank" rel="noopener" style="display:inline-block;padding:${pad};font-family:${UI};font-size:${size}px;font-weight:700;line-height:20px;color:${C.onButton};text-decoration:none;border-radius:${S.radiusButton}px;white-space:nowrap;">` +
194
209
  `${escapeHtml(link.label)}</a></td></tr></table>`);
195
210
  }
@@ -197,7 +212,7 @@ function button(link, small = false) {
197
212
  function statusPill(status) {
198
213
  const t = STATUS[status.tone] ?? STATUS.soon;
199
214
  return (`<table ${TABLE} style="border-collapse:separate;"><tr>` +
200
- `<td bgcolor="${t.fill}" style="background-color:${t.fill};border:1px solid ${t.border};border-radius:999px;padding:2px 10px;font-family:${BODY};font-size:13px;line-height:19px;font-weight:500;color:${t.text};white-space:nowrap;">` +
215
+ `<td align="left" bgcolor="${t.fill}" style="background-color:${t.fill};border:1px solid ${t.border};border-radius:999px;padding:2px 10px;font-family:${BODY};font-size:13px;line-height:19px;font-weight:500;color:${t.text};white-space:nowrap;text-align:left;">` +
201
216
  `<span style="display:inline-block;width:6px;height:6px;border-radius:999px;background-color:${t.dot};vertical-align:middle;margin:0 6px 2px 0;font-size:0;line-height:0;">&nbsp;</span>` +
202
217
  `${escapeHtml(status.label)}</td></tr></table>`);
203
218
  }
@@ -241,15 +256,17 @@ function item(it, base) {
241
256
  // Outlook never gets the picture: it blocks images by default, so it gets the tile.
242
257
  const media = picture ? `${notMso(`<tr>${picture}</tr>`)}${mso(`<tr>${tile}</tr>`)}` : `<tr>${tile}</tr>`;
243
258
  const meta = `<table ${TABLE} width="100%" style="width:100%;"><tr>` +
244
- `<td valign="middle" style="font-family:${BODY};">` +
245
- `<div style="font-size:16px;line-height:1.35;font-weight:500;color:${C.text};">${escapeHtml(it.name)}</div>` +
246
- `<div style="font-size:13px;line-height:1.45;color:${C.textSecondary};">${escapeHtml(it.detail)}</div></td>` +
247
- (status ? `<td align="right" valign="middle" style="padding-left:12px;">${statusPill(status)}</td>` : "") +
259
+ `<td align="left" valign="middle" style="font-family:${BODY};text-align:left;">` +
260
+ `<div style="font-size:16px;line-height:1.35;font-weight:500;color:${C.text};text-align:left;">${escapeHtml(it.name)}</div>` +
261
+ `<div style="font-size:13px;line-height:1.45;color:${C.textSecondary};text-align:left;">${escapeHtml(it.detail)}</div></td>` +
262
+ // width="1": the cell shrinks to the pill, so the name takes the rest and
263
+ // the pill sits at the card's right edge, in every direction.
264
+ (status ? `<td width="1" align="right" valign="middle" style="padding-left:12px;text-align:right;white-space:nowrap;">${statusPill(status)}</td>` : "") +
248
265
  `</tr></table>` +
249
- (it.action ? `<table ${TABLE} style="margin-top:14px;"><tr><td>${button(it.action, true)}</td></tr></table>` : "");
266
+ (it.action ? `<table ${TABLE} style="margin-top:14px;"><tr><td align="left" style="text-align:left;">${button(it.action, true)}</td></tr></table>` : "");
250
267
  return (`<table ${TABLE} width="100%" bgcolor="${C.card}" style="width:100%;background-color:${C.card};border:1px solid ${C.hairline};border-radius:${r}px;border-collapse:separate;">` +
251
268
  media +
252
- `<tr><td style="padding:14px 16px 16px;">${meta}</td></tr>` +
269
+ `<tr><td align="left" style="padding:14px 16px 16px;text-align:left;">${meta}</td></tr>` +
253
270
  `</table>`);
254
271
  }
255
272
  /** One block of the card, spaced from the one above it. */
@@ -258,14 +275,14 @@ function headlineBlock(content, base) {
258
275
  const h = content.headline ? EMAIL_HEADLINES[content.headline] : undefined;
259
276
  if (!h) {
260
277
  // No headline: the title is the heading, in the body face.
261
- return `<h1 style="margin:0;font-family:${BODY};font-size:24px;line-height:1.25;font-weight:700;color:${C.text};">${escapeHtml(content.title)}</h1>`;
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>`;
262
279
  }
263
280
  const words = escapeHtml(h.text);
264
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>`;
265
282
  // No base: live text for everyone, the treatment Outlook gets.
266
283
  if (!base)
267
- return `<h1 style="margin:0;font-size:0;line-height:0;">${live}</h1>`;
268
- return (`<h1 style="margin:0;font-size:0;line-height:0;">` +
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;">` +
269
286
  // The picture, its alt text styled as a heading for a client that blocks it.
270
287
  // No height attribute: a blocked image then takes the alt text's height
271
288
  // rather than holding an empty box.
@@ -284,12 +301,40 @@ function headlineBlock(content, base) {
284
301
  function pointsList(points) {
285
302
  const rows = points
286
303
  .map((p) => `<tr>` +
287
- `<td valign="top" style="padding:3px 10px 3px 0;font-family:${BODY};font-size:15px;line-height:22px;font-weight:700;color:${C.primary};">•</td>` +
304
+ `<td valign="top" align="left" style="padding:3px 10px 3px 0;font-family:${BODY};font-size:15px;line-height:22px;font-weight:700;color:${C.primary};text-align:left;">•</td>` +
288
305
  `<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>` +
289
306
  `</tr>`)
290
307
  .join("");
291
308
  return `<table ${TABLE} align="center" style="margin:0 auto;">${rows}</table>`;
292
309
  }
310
+ /** Newlines in caller text, as line breaks, after escaping. */
311
+ const breaks = (text) => escapeHtml(text).replace(/\r?\n/g, "<br>");
312
+ /**
313
+ * 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
315
+ * muted above it.
316
+ */
317
+ function quoteBlock(quote) {
318
+ const label = quote.label
319
+ ? `<p style="margin:0 0 6px;font-family:${BODY};font-size:13px;line-height:1.46;color:${C.textMuted};text-align:left;">${escapeHtml(quote.label)}</p>`
320
+ : "";
321
+ return (`<table ${TABLE} width="100%" style="width:100%;border-collapse:separate;"><tr>` +
322
+ `<td align="left" style="border-left:3px solid ${C.primary};padding:2px 0 2px 16px;text-align:left;">` +
323
+ label +
324
+ `<p style="margin:0;font-family:${BODY};font-size:15px;line-height:1.55;color:${C.text};text-align:left;">${breaks(quote.text)}</p>` +
325
+ `</td></tr></table>`);
326
+ }
327
+ /**
328
+ * A terminal command: its line in small print, then the command in the mono
329
+ * face on the raised ground, left to right, wrapping anywhere rather than
330
+ * pushing the card wide.
331
+ */
332
+ 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>` +
334
+ `<table ${TABLE} width="100%" style="width:100%;border-collapse:separate;"><tr>` +
335
+ `<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
+ `${escapeHtml(command.text)}</td></tr></table>`);
337
+ }
293
338
  function cardRows(content, base) {
294
339
  const rows = [row(headlineBlock(content, base), 0)];
295
340
  if (content.headline && EMAIL_HEADLINES[content.headline]) {
@@ -297,7 +342,7 @@ function cardRows(content, base) {
297
342
  }
298
343
  if (content.code) {
299
344
  rows.push(row(`<table ${TABLE} width="100%" style="width:100%;border-collapse:separate;"><tr>` +
300
- `<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};">` +
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;">` +
301
346
  `${escapeHtml(content.code)}</td></tr></table>`, 24));
302
347
  }
303
348
  if (content.points?.length)
@@ -305,9 +350,12 @@ function cardRows(content, base) {
305
350
  (content.lines ?? []).forEach((line, i) => {
306
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));
307
352
  });
353
+ if (content.quote?.text)
354
+ rows.push(row(quoteBlock(content.quote), 20, "left"));
308
355
  (content.items ?? []).forEach((it, i) => rows.push(row(item(it, base), i === 0 ? 28 : 16, "left")));
309
- if (content.action)
310
- rows.push(row(`<table ${TABLE} align="center"><tr><td>${button(content.action)}</td></tr></table>`, 28));
356
+ 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));
358
+ }
311
359
  if (content.note) {
312
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));
313
361
  }
@@ -316,6 +364,8 @@ function cardRows(content, base) {
316
364
  rows.push(row(`<p style="margin:0;font-family:${BODY};font-size:13px;line-height:1.5;color:${C.textSecondary};">${escapeHtml(prefix)} ` +
317
365
  `<a href="${attrUrl(link.url)}" target="_blank" rel="noopener" style="color:${C.text};text-decoration:underline;">${escapeHtml(link.label)}</a></p>`, 16));
318
366
  }
367
+ if (content.command?.text)
368
+ rows.push(row(commandBlock(content.command), 20));
319
369
  return rows.join("");
320
370
  }
321
371
  /** The sign-in footer's copyright line. */
@@ -347,7 +397,7 @@ function renderHtml(content) {
347
397
  const w = EMAIL_WORDMARK;
348
398
  const liveMark = `<span style="font-family:${WORDMARK_FACE};font-size:26px;line-height:${w.height}px;font-weight:700;letter-spacing:-0.5px;color:${C.primary};">cloudgrid</span>`;
349
399
  return (`<!doctype html>` +
350
- `<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:o="urn:schemas-microsoft-com:office:office">` +
400
+ `<html lang="en" dir="ltr" xmlns="http://www.w3.org/1999/xhtml" xmlns:o="urn:schemas-microsoft-com:office:office">` +
351
401
  `<head>` +
352
402
  `<meta charset="utf-8">` +
353
403
  `<meta name="viewport" content="width=device-width, initial-scale=1">` +
@@ -360,16 +410,16 @@ function renderHtml(content) {
360
410
  `<!--[if mso]><noscript><xml><o:OfficeDocumentSettings><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml></noscript><![endif]-->` +
361
411
  `<style>body{margin:0;padding:0;width:100%!important;-webkit-text-size-adjust:100%;}table{border-collapse:collapse;mso-table-lspace:0pt;mso-table-rspace:0pt;}img{border:0;outline:none;text-decoration:none;-ms-interpolation-mode:bicubic;}@media (max-width:600px){.cg-card{padding:32px 20px!important;}}</style>` +
362
412
  `</head>` +
363
- `<body bgcolor="${C.page}" style="margin:0;padding:0;background-color:${C.page};">` +
413
+ `<body dir="ltr" bgcolor="${C.page}" style="margin:0;padding:0;background-color:${C.page};direction:ltr;text-align:left;">` +
364
414
  preheader(content.preheader) +
365
- `<table ${TABLE} width="100%" bgcolor="${C.page}" style="width:100%;background-color:${C.page};"><tr>` +
366
- `<td align="center" style="padding:32px 16px 40px;">` +
415
+ `<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;">` +
367
417
  `<!--[if mso]><table ${TABLE} width="560" align="center"><tr><td><![endif]-->` +
368
418
  // separate, not the reset's collapse: a collapsed table draws a rounded
369
419
  // cell's border square, which showed as a faint edge behind the corners.
370
- `<table ${TABLE} width="100%" style="width:100%;max-width:560px;border-collapse:separate;">` +
420
+ `<table ${TABLE} width="100%" style="width:100%;max-width:560px;border-collapse:separate;direction:ltr;">` +
371
421
  // the wordmark, top left
372
- `<tr><td align="left" style="padding:0 4px 24px;">` +
422
+ `<tr><td align="left" style="padding:0 4px 24px;text-align:left;">` +
373
423
  // The alt says the name; blocked, it is set lowercase and purple, as the mark reads.
374
424
  // No base: the live wordmark for everyone.
375
425
  (base
@@ -378,11 +428,11 @@ function renderHtml(content) {
378
428
  : liveMark) +
379
429
  `</td></tr>` +
380
430
  // the container
381
- `<tr><td class="cg-card" bgcolor="${C.card}" style="background-color:${C.card};border:1px solid ${C.hairline};border-radius:${S.radiusContainer}px;padding:44px 40px 40px;">` +
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;">` +
382
432
  `<table ${TABLE} width="100%" style="width:100%;">${cardRows(content, base)}</table>` +
383
433
  `</td></tr>` +
384
434
  // the footer
385
- `<tr><td align="center" style="padding:24px 16px 0;">${footer(content)}</td></tr>` +
435
+ `<tr><td align="center" style="padding:24px 16px 0;text-align:center;">${footer(content)}</td></tr>` +
386
436
  `</table>` +
387
437
  `<!--[if mso]></td></tr></table><![endif]-->` +
388
438
  `</td></tr></table>` +
@@ -400,6 +450,10 @@ function renderText(content) {
400
450
  if (content.points?.length)
401
451
  out.push(content.points.map((p) => `- ${p}`).join("\n"));
402
452
  out.push(...(content.lines ?? []));
453
+ if (content.quote?.text) {
454
+ const quoted = content.quote.text.split(/\r?\n/).map((l) => `> ${l}`).join("\n");
455
+ out.push(content.quote.label ? `${content.quote.label}\n${quoted}` : quoted);
456
+ }
403
457
  for (const it of content.items ?? []) {
404
458
  const status = it.status ?? it.badge;
405
459
  const lines = [status ? `${it.name} (${status.label})` : it.name, it.detail];
@@ -414,6 +468,8 @@ function renderText(content) {
414
468
  if (content.secondary) {
415
469
  out.push(`${content.secondary.prefix} ${safeUrl(content.secondary.link.url)}`);
416
470
  }
471
+ if (content.command?.text)
472
+ out.push(`${content.command.label}\n${content.command.text}`);
417
473
  const foot = [...content.footer.lines];
418
474
  const link = content.footer.link;
419
475
  if (link)
@@ -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/dist/index.d.ts CHANGED
@@ -14,11 +14,13 @@ export * from "./ui/input.js";
14
14
  export * from "./ui/number-field.js";
15
15
  export * from "./ui/panel.js";
16
16
  export * from "./ui/popover.js";
17
+ export * from "./ui/progress-bar.js";
17
18
  export * from "./ui/radio-group.js";
18
19
  export * from "./ui/select.js";
19
20
  export * from "./ui/separator.js";
20
21
  export * from "./ui/skeleton.js";
21
22
  export * from "./ui/sonner.js";
23
+ export * from "./ui/spinner.js";
22
24
  export * from "./ui/switch.js";
23
25
  export * from "./ui/table.js";
24
26
  export * from "./ui/tabs.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAG/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA;AACpC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AAGtC,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAG/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA;AACpC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AAGtC,cAAc,uBAAuB,CAAA"}
package/dist/index.js CHANGED
@@ -30,11 +30,13 @@ export * from "./ui/input.js";
30
30
  export * from "./ui/number-field.js";
31
31
  export * from "./ui/panel.js";
32
32
  export * from "./ui/popover.js";
33
+ export * from "./ui/progress-bar.js";
33
34
  export * from "./ui/radio-group.js";
34
35
  export * from "./ui/select.js";
35
36
  export * from "./ui/separator.js";
36
37
  export * from "./ui/skeleton.js";
37
38
  export * from "./ui/sonner.js";
39
+ export * from "./ui/spinner.js";
38
40
  export * from "./ui/switch.js";
39
41
  export * from "./ui/table.js";
40
42
  export * from "./ui/tabs.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,oEAAoE;AACpE,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,yEAAyE;AACzE,gFAAgF;AAChF,4EAA4E;AAC5E,EAAE;AACF,kEAAkE;AAClE,8EAA8E;AAC9E,uEAAuE;AAEvE,cAAc;AACd,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAE/B,mBAAmB;AACnB,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA;AACpC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AAEtC,0EAA0E;AAC1E,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,oEAAoE;AACpE,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,yEAAyE;AACzE,gFAAgF;AAChF,4EAA4E;AAC5E,EAAE;AACF,kEAAkE;AAClE,8EAA8E;AAC9E,uEAAuE;AAEvE,cAAc;AACd,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAE/B,mBAAmB;AACnB,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA;AACpC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AAEtC,0EAA0E;AAC1E,cAAc,uBAAuB,CAAA"}
package/dist/shadcn.css CHANGED
@@ -206,6 +206,32 @@
206
206
  }
207
207
 
208
208
 
209
+ /*
210
+ The overlay ground: opaque on every surface (#230).
211
+
212
+ `--popover` maps to `--cg-surface-card`, and that token is deliberately
213
+ `transparent` inside the panel and a 4% white wash inside ink, because a CARD
214
+ on a dark brand surface is meant to let it through. An OVERLAY is the one thing
215
+ that cannot: it is drawn over arbitrary content, so a see-through popup paints
216
+ its words and the words behind it in the same pixels. Dialog, DropdownMenu,
217
+ Select and Combobox all paint `bg-popover`, and every one of them was
218
+ see-through on both dark grounds whenever it was portaled into the scope.
219
+
220
+ Each dark scope takes its OWN ground, which is opaque: rgb(90,71,240) on the
221
+ panel and rgb(34,34,34) on ink. No new colour. The popup is then told apart
222
+ from what is behind it by its ring and shadow rather than by a tint, the same
223
+ call `popover.tsx` and `drawer.tsx` made for themselves before this bridge
224
+ existed. Measured in registry/e2e/overlay-ground.spec.ts on all three grounds.
225
+ */
226
+ [data-cg-surface="panel"] {
227
+ --popover: var(--cg-surface-panel);
228
+ }
229
+
230
+ [data-cg-surface="ink"] {
231
+ --popover: var(--cg-surface-code);
232
+ }
233
+
234
+
209
235
  /*
210
236
  The default border colour: the hairline, on every element, on every surface.
211
237
 
@@ -1726,6 +1726,16 @@
1726
1726
  }
1727
1727
  }
1728
1728
  },
1729
+ "shadow-card-hover": {
1730
+ "$description": "SOURCE: the designer's badge overlay (ui#322, coolapps.cloudgrid.io/cloudgrid-overlay-acbb), its\n\"--cg-shadow-hover\": the lift a floating control takes on hover, over --cg-shadow-card\nat rest. Two layers where --cg-shadow-hover has one: the wide 8/24 bloom and a tight\n4/6 contact shadow. The design's own value is pure black at 8% and 6%; this keeps the\nramp's ink base and the design's geometry, the reading --cg-shadow-card took of\n\"Elevation 1 New\".",
1731
+ "$value": "0 8px 24px rgba(34, 34, 34, 0.08), 0 4px 6px rgba(34, 34, 34, 0.06)",
1732
+ "$extensions": {
1733
+ "io.cloudgrid": {
1734
+ "raw": true,
1735
+ "css": "--cg-shadow-card-hover"
1736
+ }
1737
+ }
1738
+ },
1729
1739
  "shadow-panel": {
1730
1740
  "$value": "0 10px 40px rgba(90, 71, 240, 0.18)",
1731
1741
  "$extensions": {
@@ -1822,6 +1832,72 @@
1822
1832
  }
1823
1833
  }
1824
1834
  },
1835
+ "ease-out-expo": {
1836
+ "$description": "The badge overlay's curves (ui#322), from the designer's page\n(coolapps.cloudgrid.io/cloudgrid-overlay-acbb). The first motion in the brand that DOES\nmove things in: the live badge and the feedback bubble rise into the corner of\nsomebody's app, once, on load. Named by curve, not by use, so a second surface can\nreach for the same one.\n\n out-expo arrivals: fast in, long settle\n out-quint a horizontal expand (the live badge's label opening)\n out-quart a small layout spread on hover\n in-out-cubic a wipe that starts and ends at rest\n in exits\n spring a 12% overshoot",
1837
+ "$value": "cubic-bezier(0.16, 1, 0.3, 1)",
1838
+ "$type": "cubicBezier",
1839
+ "$extensions": {
1840
+ "io.cloudgrid": {
1841
+ "css": "--cg-ease-out-expo"
1842
+ }
1843
+ }
1844
+ },
1845
+ "ease-out-quint": {
1846
+ "$value": "cubic-bezier(0.22, 1, 0.36, 1)",
1847
+ "$type": "cubicBezier",
1848
+ "$extensions": {
1849
+ "io.cloudgrid": {
1850
+ "css": "--cg-ease-out-quint"
1851
+ }
1852
+ }
1853
+ },
1854
+ "ease-out-quart": {
1855
+ "$value": "cubic-bezier(0.25, 1, 0.5, 1)",
1856
+ "$type": "cubicBezier",
1857
+ "$extensions": {
1858
+ "io.cloudgrid": {
1859
+ "css": "--cg-ease-out-quart"
1860
+ }
1861
+ }
1862
+ },
1863
+ "ease-in-out-cubic": {
1864
+ "$value": "cubic-bezier(0.65, 0, 0.35, 1)",
1865
+ "$type": "cubicBezier",
1866
+ "$extensions": {
1867
+ "io.cloudgrid": {
1868
+ "css": "--cg-ease-in-out-cubic"
1869
+ }
1870
+ }
1871
+ },
1872
+ "ease-in": {
1873
+ "$value": "cubic-bezier(0.5, 0, 0.75, 0)",
1874
+ "$type": "cubicBezier",
1875
+ "$extensions": {
1876
+ "io.cloudgrid": {
1877
+ "css": "--cg-ease-in"
1878
+ }
1879
+ }
1880
+ },
1881
+ "ease-spring": {
1882
+ "$description": "The spring every browser draws: a cubic-bezier with about 12% overshoot. Where the\nbrowser supports linear() easing, a surface swaps it for --cg-ease-spring-damped under\n@supports; the badge does.",
1883
+ "$value": "cubic-bezier(0.34, 1.56, 0.64, 1)",
1884
+ "$type": "cubicBezier",
1885
+ "$extensions": {
1886
+ "io.cloudgrid": {
1887
+ "css": "--cg-ease-spring"
1888
+ }
1889
+ }
1890
+ },
1891
+ "ease-spring-damped": {
1892
+ "$description": "The real damped spring (zeta 0.55, about 12% overshoot) as linear() easing, from the\ndesigner's overlay (ui#322). Only for a browser that supports linear(); elsewhere\n--cg-ease-spring.",
1893
+ "$value": "linear(0, 0.034, 0.122, 0.244, 0.383, 0.526, 0.662, 0.785, 0.889, 0.974, 1.038, 1.083, 1.111, 1.124, 1.126, 1.119, 1.106, 1.09, 1.072, 1.054, 1.038, 1.023, 1.01, 1, 0.993, 0.988, 0.985, 0.984, 0.984, 0.985, 0.987, 0.989, 0.992, 0.994, 0.996, 0.998, 0.999, 1, 1.001, 1.002, 1)",
1894
+ "$extensions": {
1895
+ "io.cloudgrid": {
1896
+ "raw": true,
1897
+ "css": "--cg-ease-spring-damped"
1898
+ }
1899
+ }
1900
+ },
1825
1901
  "transition-control": {
1826
1902
  "$value": "background-color var(--cg-duration) var(--cg-ease-out), border-color var(--cg-duration) var(--cg-ease-out), color var(--cg-duration) var(--cg-ease-out), box-shadow var(--cg-duration) var(--cg-ease-out)",
1827
1903
  "$extensions": {
package/dist/tokens.css CHANGED
@@ -1389,6 +1389,14 @@
1389
1389
  --cg-shadow-mark: 0 2px 1px rgba(34, 34, 34, 0.06), 0 2px 4px rgba(34, 34, 34, 0.08);
1390
1390
  --cg-shadow-raised: 0 4px 14px rgba(34, 34, 34, 0.06);
1391
1391
  --cg-shadow-hover: 0 8px 24px rgba(34, 34, 34, 0.08);
1392
+ /*
1393
+ SOURCE: the designer's badge overlay (ui#322, coolapps.cloudgrid.io/cloudgrid-overlay-acbb), its
1394
+ "--cg-shadow-hover": the lift a floating control takes on hover, over --cg-shadow-card
1395
+ at rest. Two layers where --cg-shadow-hover has one: the wide 8/24 bloom and a tight
1396
+ 4/6 contact shadow. The design's own value is pure black at 8% and 6%; this keeps the
1397
+ ramp's ink base and the design's geometry, the reading --cg-shadow-card took of
1398
+ "Elevation 1 New". */
1399
+ --cg-shadow-card-hover: 0 8px 24px rgba(34, 34, 34, 0.08), 0 4px 6px rgba(34, 34, 34, 0.06);
1392
1400
  --cg-shadow-panel: 0 10px 40px rgba(90, 71, 240, 0.18);
1393
1401
  /*
1394
1402
  The lift under a picture tile that sits directly on a surface: the showcase's
@@ -1426,6 +1434,34 @@
1426
1434
  --cg-duration-slow: 280ms;
1427
1435
  --cg-ease-out: cubic-bezier(0, 0, 0.2, 1);
1428
1436
  --cg-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
1437
+ /*
1438
+ The badge overlay's curves (ui#322), from the designer's page
1439
+ (coolapps.cloudgrid.io/cloudgrid-overlay-acbb). The first motion in the brand that DOES
1440
+ move things in: the live badge and the feedback bubble rise into the corner of
1441
+ somebody's app, once, on load. Named by curve, not by use, so a second surface can
1442
+ reach for the same one.
1443
+
1444
+ out-expo arrivals: fast in, long settle
1445
+ out-quint a horizontal expand (the live badge's label opening)
1446
+ out-quart a small layout spread on hover
1447
+ in-out-cubic a wipe that starts and ends at rest
1448
+ in exits
1449
+ spring a 12% overshoot */
1450
+ --cg-ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
1451
+ --cg-ease-out-quint: cubic-bezier(0.22, 1, 0.36, 1);
1452
+ --cg-ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
1453
+ --cg-ease-in-out-cubic: cubic-bezier(0.65, 0, 0.35, 1);
1454
+ --cg-ease-in: cubic-bezier(0.5, 0, 0.75, 0);
1455
+ /*
1456
+ The spring every browser draws: a cubic-bezier with about 12% overshoot. Where the
1457
+ browser supports linear() easing, a surface swaps it for --cg-ease-spring-damped under
1458
+ @supports; the badge does. */
1459
+ --cg-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
1460
+ /*
1461
+ The real damped spring (zeta 0.55, about 12% overshoot) as linear() easing, from the
1462
+ designer's overlay (ui#322). Only for a browser that supports linear(); elsewhere
1463
+ --cg-ease-spring. */
1464
+ --cg-ease-spring-damped: linear(0, 0.034, 0.122, 0.244, 0.383, 0.526, 0.662, 0.785, 0.889, 0.974, 1.038, 1.083, 1.111, 1.124, 1.126, 1.119, 1.106, 1.09, 1.072, 1.054, 1.038, 1.023, 1.01, 1, 0.993, 0.988, 0.985, 0.984, 0.984, 0.985, 0.987, 0.989, 0.992, 0.994, 0.996, 0.998, 0.999, 1, 1.001, 1.002, 1);
1429
1465
  --cg-transition-control: background-color var(--cg-duration) var(--cg-ease-out), border-color var(--cg-duration) var(--cg-ease-out), color var(--cg-duration) var(--cg-ease-out), box-shadow var(--cg-duration) var(--cg-ease-out);
1430
1466
  --cg-lift-hover: translateY(-1px);
1431
1467
  --cg-press-scale: 0.985;
package/dist/tokens.json CHANGED
@@ -182,6 +182,7 @@
182
182
  "--cg-shadow-mark": "0 2px 1px rgba(34, 34, 34, 0.06), 0 2px 4px rgba(34, 34, 34, 0.08)",
183
183
  "--cg-shadow-raised": "0 4px 14px rgba(34, 34, 34, 0.06)",
184
184
  "--cg-shadow-hover": "0 8px 24px rgba(34, 34, 34, 0.08)",
185
+ "--cg-shadow-card-hover": "0 8px 24px rgba(34, 34, 34, 0.08), 0 4px 6px rgba(34, 34, 34, 0.06)",
185
186
  "--cg-shadow-panel": "0 10px 40px rgba(90, 71, 240, 0.18)",
186
187
  "--cg-shadow-tile": "var(--cg-shadow-card)",
187
188
  "--cg-shadow-tile-hover": "var(--cg-shadow-hover)",
@@ -192,6 +193,13 @@
192
193
  "--cg-duration-slow": "280ms",
193
194
  "--cg-ease-out": "cubic-bezier(0, 0, 0.2, 1)",
194
195
  "--cg-ease-in-out": "cubic-bezier(0.4, 0, 0.2, 1)",
196
+ "--cg-ease-out-expo": "cubic-bezier(0.16, 1, 0.3, 1)",
197
+ "--cg-ease-out-quint": "cubic-bezier(0.22, 1, 0.36, 1)",
198
+ "--cg-ease-out-quart": "cubic-bezier(0.25, 1, 0.5, 1)",
199
+ "--cg-ease-in-out-cubic": "cubic-bezier(0.65, 0, 0.35, 1)",
200
+ "--cg-ease-in": "cubic-bezier(0.5, 0, 0.75, 0)",
201
+ "--cg-ease-spring": "cubic-bezier(0.34, 1.56, 0.64, 1)",
202
+ "--cg-ease-spring-damped": "linear(0, 0.034, 0.122, 0.244, 0.383, 0.526, 0.662, 0.785, 0.889, 0.974, 1.038, 1.083, 1.111, 1.124, 1.126, 1.119, 1.106, 1.09, 1.072, 1.054, 1.038, 1.023, 1.01, 1, 0.993, 0.988, 0.985, 0.984, 0.984, 0.985, 0.987, 0.989, 0.992, 0.994, 0.996, 0.998, 0.999, 1, 1.001, 1.002, 1)",
195
203
  "--cg-transition-control": "background-color var(--cg-duration) var(--cg-ease-out), border-color var(--cg-duration) var(--cg-ease-out), color var(--cg-duration) var(--cg-ease-out), box-shadow var(--cg-duration) var(--cg-ease-out)",
196
204
  "--cg-lift-hover": "translateY(-1px)",
197
205
  "--cg-press-scale": "0.985",
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
  import { Dialog as DialogPrimitive } from "@base-ui/react/dialog";
3
- declare function Dialog({ ...props }: DialogPrimitive.Root.Props): React.JSX.Element;
3
+ declare function Dialog({ modal, ...props }: DialogPrimitive.Root.Props): React.JSX.Element;
4
4
  declare function DialogTrigger({ ...props }: DialogPrimitive.Trigger.Props): React.JSX.Element;
5
5
  declare function DialogPortal({ ...props }: DialogPrimitive.Portal.Props): React.JSX.Element;
6
6
  declare function DialogClose({ ...props }: DialogPrimitive.Close.Props): React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/ui/dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAMjE,iBAAS,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,qBAEvD;AAED,iBAAS,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,qBAEjE;AAED,iBAAS,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,qBAE/D;AAED,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,qBAE7D;AAED;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,WAAkB,EAClB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,qBAYhC;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,qBA+BA;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQzE;AAED,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,eAAuB,EACvB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,qBAkBA;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,qBAWxE;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,qBAWnC;AAED,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,GACd,CAAA"}
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/ui/dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAiBjE,iBAAS,MAAM,CAAC,EAAE,KAAY,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,qBAMrE;AAED,iBAAS,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,qBAEjE;AAED,iBAAS,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,qBAE/D;AAED,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,qBAE7D;AAED;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,WAAkB,EAClB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,qBAYhC;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,qBAiCA;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQzE;AAED,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,eAAuB,EACvB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,qBAkBA;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,qBAWxE;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,qBAWnC;AAED,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,GACd,CAAA"}
package/dist/ui/dialog.js CHANGED
@@ -5,8 +5,18 @@ import { Dialog as DialogPrimitive } from "@base-ui/react/dialog";
5
5
  import { cn } from "../lib/cloudgrid-cn.js";
6
6
  import { Button } from "./button.js";
7
7
  import { CloseIcon } from "../blocks/icons.js";
8
- function Dialog({ ...props }) {
9
- return _jsx(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
8
+ /**
9
+ * The root's `modal`, handed to the popup so it can say `aria-modal` (#247).
10
+ *
11
+ * Base UI hides the rest of the document with `aria-hidden` when the dialog is
12
+ * modal, but never sets `aria-modal` on the popup, and its popup state does not
13
+ * carry `modal`. So the root records the value it was given and `DialogContent`
14
+ * reads it: `aria-modal="true"` exactly when the dialog is modal, absent when a
15
+ * caller passes `modal={false}`. Base UI's own default is `true`.
16
+ */
17
+ const DialogModalContext = React.createContext(true);
18
+ function Dialog({ modal = true, ...props }) {
19
+ return (_jsx(DialogModalContext.Provider, { value: modal, children: _jsx(DialogPrimitive.Root, { "data-slot": "dialog", modal: modal, ...props }) }));
10
20
  }
11
21
  function DialogTrigger({ ...props }) {
12
22
  return _jsx(DialogPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
@@ -37,7 +47,8 @@ function DialogOverlay({ className, forceRender = true, ...props }) {
37
47
  return (_jsx(DialogPrimitive.Backdrop, { "data-slot": "dialog-overlay", forceRender: forceRender, className: cn("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0", className), ...props }));
38
48
  }
39
49
  function DialogContent({ className, children, showCloseButton = true, ...props }) {
40
- return (_jsxs(DialogPortal, { children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Popup, { "data-slot": "dialog-content", className: cn("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-body-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className), ...props, children: [children, showCloseButton && (_jsxs(DialogPrimitive.Close, { "data-slot": "dialog-close", render: _jsx(Button, { variant: "ghost", className: "absolute top-2 right-2", size: "icon-sm" }), children: [_jsx(CloseIcon, {}), _jsx("span", { className: "sr-only", children: "Close" })] }))] })] }));
50
+ const modal = React.useContext(DialogModalContext);
51
+ return (_jsxs(DialogPortal, { children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Popup, { "data-slot": "dialog-content", "aria-modal": modal !== false ? true : undefined, className: cn("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-body-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className), ...props, children: [children, showCloseButton && (_jsxs(DialogPrimitive.Close, { "data-slot": "dialog-close", render: _jsx(Button, { variant: "ghost", className: "absolute top-2 right-2", size: "icon-sm" }), children: [_jsx(CloseIcon, {}), _jsx("span", { className: "sr-only", children: "Close" })] }))] })] }));
41
52
  }
42
53
  function DialogHeader({ className, ...props }) {
43
54
  return (_jsx("div", { "data-slot": "dialog-header", className: cn("flex flex-col gap-2", className), ...props }));