react-email 4.0.15 → 4.0.16

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 (163) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cli/index.d.mts +1 -0
  3. package/dist/cli/index.d.ts +1 -0
  4. package/dist/cli/index.js +2785 -0
  5. package/dist/cli/index.mjs +1 -1
  6. package/dist/index.d.mts +20 -0
  7. package/dist/index.d.ts +20 -0
  8. package/dist/index.js +1407 -0
  9. package/dist/index.mjs +21 -0
  10. package/dist/package/index.d.mts +33 -0
  11. package/dist/package/index.d.ts +33 -0
  12. package/dist/package/index.js +62 -0
  13. package/dist/package/index.mjs +7 -0
  14. package/dist/preview/.next/BUILD_ID +1 -1
  15. package/dist/preview/.next/app-build-manifest.json +10 -10
  16. package/dist/preview/.next/app-path-routes-manifest.json +1 -1
  17. package/dist/preview/.next/build-manifest.json +3 -3
  18. package/dist/preview/.next/next-minimal-server.js.nft.json +1 -1
  19. package/dist/preview/.next/next-server.js.nft.json +1 -1
  20. package/dist/preview/.next/prerender-manifest.json +3 -3
  21. package/dist/preview/.next/required-server-files.json +4 -4
  22. package/dist/preview/.next/server/app/_not-found/page.js +1 -1
  23. package/dist/preview/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  24. package/dist/preview/.next/server/app/favicon.ico/route.js +1 -1
  25. package/dist/preview/.next/server/app/page.js +1 -1
  26. package/dist/preview/.next/server/app/page.js.nft.json +1 -1
  27. package/dist/preview/.next/server/app/page_client-reference-manifest.js +1 -1
  28. package/dist/preview/.next/server/app/preview/[...slug]/page.js +15 -15
  29. package/dist/preview/.next/server/app/preview/[...slug]/page.js.nft.json +1 -1
  30. package/dist/preview/.next/server/app/preview/[...slug]/page_client-reference-manifest.js +1 -1
  31. package/dist/preview/.next/server/app-paths-manifest.json +1 -1
  32. package/dist/preview/.next/server/chunks/235.js +4 -4
  33. package/dist/preview/.next/server/chunks/275.js +1 -0
  34. package/dist/preview/.next/server/middleware-build-manifest.js +1 -1
  35. package/dist/preview/.next/server/next-font-manifest.js +1 -1
  36. package/dist/preview/.next/server/next-font-manifest.json +1 -1
  37. package/dist/preview/.next/server/pages/500.html +1 -1
  38. package/dist/preview/.next/server/server-reference-manifest.js +1 -1
  39. package/dist/preview/.next/server/server-reference-manifest.json +1 -1
  40. package/dist/preview/.next/static/chunks/484-e38a627386aae911.js +1 -0
  41. package/dist/preview/.next/static/chunks/app/layout-269b5cbd8f4cd2e3.js +1 -0
  42. package/dist/preview/.next/static/chunks/app/page-2dbfb5b2dc4b1191.js +1 -0
  43. package/dist/preview/.next/static/chunks/app/preview/[...slug]/page-79e0c9b528a62f8b.js +1 -0
  44. package/dist/preview/.next/static/chunks/main-app-976577a424e11c75.js +1 -0
  45. package/dist/preview/.next/static/css/{35e8811589f0962b.css → ac3decd5d6736fbe.css} +1 -1
  46. package/dist/preview/.next/static/media/8e9860b6e62d6359-s.woff2 +0 -0
  47. package/dist/preview/.next/static/media/e4af272ccee01ff0-s.p.woff2 +0 -0
  48. package/dist/preview/.next/trace +27 -27
  49. package/dist/preview/.next/types/app/layout.ts +1 -1
  50. package/dist/preview/.next/types/app/page.ts +1 -1
  51. package/dist/preview/.next/types/app/preview/[...slug]/page.ts +1 -1
  52. package/package.json +1 -1
  53. package/src/app/layout.tsx +2 -2
  54. package/src/commands/testing/out/notifications/yelp-recent-login.html +1 -1
  55. package/src/commands/testing/out/reset-password/twitch-reset-password.html +1 -1
  56. package/src/components/shell.tsx +4 -1
  57. package/src/package/body/dist/index.d.mts +6 -0
  58. package/src/package/body/dist/index.d.ts +6 -0
  59. package/src/package/body/dist/index.js +79 -0
  60. package/src/package/body/dist/index.mjs +45 -0
  61. package/src/package/button/dist/index.d.mts +6 -0
  62. package/src/package/button/dist/index.d.ts +6 -0
  63. package/src/package/button/dist/index.js +252 -0
  64. package/src/package/button/dist/index.mjs +218 -0
  65. package/src/package/code-block/dist/index.d.mts +4906 -0
  66. package/src/package/code-block/dist/index.d.ts +4906 -0
  67. package/src/package/code-block/dist/index.js +18205 -0
  68. package/src/package/code-block/dist/index.mjs +18133 -0
  69. package/src/package/code-inline/dist/index.d.mts +11 -0
  70. package/src/package/code-inline/dist/index.d.ts +11 -0
  71. package/src/package/code-inline/dist/index.js +106 -0
  72. package/src/package/code-inline/dist/index.mjs +72 -0
  73. package/src/package/column/dist/index.d.mts +6 -0
  74. package/src/package/column/dist/index.d.ts +6 -0
  75. package/src/package/column/dist/index.js +79 -0
  76. package/src/package/column/dist/index.mjs +45 -0
  77. package/src/package/components/dist/index.d.mts +20 -0
  78. package/src/package/components/dist/index.d.ts +20 -0
  79. package/src/package/components/dist/index.js +62 -0
  80. package/src/package/components/dist/index.mjs +21 -0
  81. package/src/package/container/dist/index.d.mts +6 -0
  82. package/src/package/container/dist/index.d.ts +6 -0
  83. package/src/package/container/dist/index.js +93 -0
  84. package/src/package/container/dist/index.mjs +59 -0
  85. package/src/package/font/dist/index.d.mts +25 -0
  86. package/src/package/font/dist/index.d.ts +25 -0
  87. package/src/package/font/dist/index.js +55 -0
  88. package/src/package/font/dist/index.mjs +28 -0
  89. package/src/package/head/dist/index.d.mts +6 -0
  90. package/src/package/head/dist/index.d.ts +6 -0
  91. package/src/package/head/dist/index.js +83 -0
  92. package/src/package/head/dist/index.mjs +49 -0
  93. package/src/package/heading/dist/index.d.mts +43 -0
  94. package/src/package/heading/dist/index.d.ts +43 -0
  95. package/src/package/heading/dist/index.js +113 -0
  96. package/src/package/heading/dist/index.mjs +79 -0
  97. package/src/package/hr/dist/index.d.mts +6 -0
  98. package/src/package/hr/dist/index.d.ts +6 -0
  99. package/src/package/hr/dist/index.js +89 -0
  100. package/src/package/hr/dist/index.mjs +55 -0
  101. package/src/package/html/dist/index.d.mts +6 -0
  102. package/src/package/html/dist/index.d.ts +6 -0
  103. package/src/package/html/dist/index.js +79 -0
  104. package/src/package/html/dist/index.mjs +45 -0
  105. package/src/package/img/dist/index.d.mts +6 -0
  106. package/src/package/img/dist/index.d.ts +6 -0
  107. package/src/package/img/dist/index.js +94 -0
  108. package/src/package/img/dist/index.mjs +60 -0
  109. package/src/package/link/dist/index.d.mts +6 -0
  110. package/src/package/link/dist/index.d.ts +6 -0
  111. package/src/package/link/dist/index.js +90 -0
  112. package/src/package/link/dist/index.mjs +56 -0
  113. package/src/package/markdown/dist/index.d.mts +15 -0
  114. package/src/package/markdown/dist/index.d.ts +15 -0
  115. package/src/package/markdown/dist/index.js +92 -0
  116. package/src/package/markdown/dist/index.mjs +58 -0
  117. package/src/package/preview/dist/index.d.mts +12 -0
  118. package/src/package/preview/dist/index.d.ts +12 -0
  119. package/src/package/preview/dist/index.js +108 -0
  120. package/src/package/preview/dist/index.mjs +73 -0
  121. package/src/package/render/dist/browser/index.d.mts +24 -0
  122. package/src/package/render/dist/browser/index.d.ts +24 -0
  123. package/src/package/render/dist/browser/index.js +250 -0
  124. package/src/package/render/dist/browser/index.mjs +214 -0
  125. package/src/package/render/dist/index.d.mts +23 -0
  126. package/src/package/render/dist/index.d.ts +23 -0
  127. package/src/package/render/dist/index.js +768 -0
  128. package/src/package/render/dist/index.mjs +733 -0
  129. package/src/package/render/dist/node/index.d.mts +27 -0
  130. package/src/package/render/dist/node/index.d.ts +27 -0
  131. package/src/package/render/dist/node/index.js +212 -0
  132. package/src/package/render/dist/node/index.mjs +176 -0
  133. package/src/package/row/dist/index.d.mts +10 -0
  134. package/src/package/row/dist/index.d.ts +10 -0
  135. package/src/package/row/dist/index.js +93 -0
  136. package/src/package/row/dist/index.mjs +59 -0
  137. package/src/package/section/dist/index.d.mts +6 -0
  138. package/src/package/section/dist/index.d.ts +6 -0
  139. package/src/package/section/dist/index.js +93 -0
  140. package/src/package/section/dist/index.mjs +59 -0
  141. package/src/package/tailwind/dist/index.d.ts +19 -0
  142. package/src/package/tailwind/dist/index.js +48 -0
  143. package/src/package/tailwind/dist/index.mjs +17167 -0
  144. package/src/package/tailwind/dist/tailwindcss/config.d.ts +376 -0
  145. package/src/package/tailwind/dist/tailwindcss/generated/.gitkeep +0 -0
  146. package/src/package/tailwind/dist/tailwindcss/generated/colors.d.ts +298 -0
  147. package/src/package/tailwind/dist/tailwindcss/generated/corePluginList.d.ts +1 -0
  148. package/src/package/tailwind/dist/tailwindcss/generated/default-theme.d.ts +397 -0
  149. package/src/package/tailwind/dist/tailwindcss/index.d.ts +11 -0
  150. package/src/package/text/dist/index.d.mts +6 -0
  151. package/src/package/text/dist/index.d.ts +6 -0
  152. package/src/package/text/dist/index.js +89 -0
  153. package/src/package/text/dist/index.mjs +55 -0
  154. package/dist/preview/.next/server/chunks/488.js +0 -1
  155. package/dist/preview/.next/static/chunks/484-21e30f98c67e8d58.js +0 -1
  156. package/dist/preview/.next/static/chunks/app/layout-3044a159bf29302b.js +0 -1
  157. package/dist/preview/.next/static/chunks/app/page-ed77f0af99f8ff62.js +0 -1
  158. package/dist/preview/.next/static/chunks/app/preview/[...slug]/page-994a4d501e46f3f8.js +0 -1
  159. package/dist/preview/.next/static/chunks/main-app-5bc2d814f500db60.js +0 -1
  160. package/dist/preview/.next/static/media/6d93bde91c0c2823-s.woff2 +0 -0
  161. package/dist/preview/.next/static/media/a34f9d1faa5f3315-s.p.woff2 +0 -0
  162. /package/dist/preview/.next/static/{0LFN6rP55keVoTJYuP-4s → yxjkw7Y7HRLmRWkl3S43z}/_buildManifest.js +0 -0
  163. /package/dist/preview/.next/static/{0LFN6rP55keVoTJYuP-4s → yxjkw7Y7HRLmRWkl3S43z}/_ssgManifest.js +0 -0
@@ -0,0 +1,218 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+
33
+ // src/button.tsx
34
+ import * as React from "react";
35
+
36
+ // src/utils/parse-padding.ts
37
+ function convertToPx(value) {
38
+ let px = 0;
39
+ if (!value) {
40
+ return px;
41
+ }
42
+ if (typeof value === "number") {
43
+ return value;
44
+ }
45
+ const matches = /^([\d.]+)(px|em|rem|%)$/.exec(value);
46
+ if (matches && matches.length === 3) {
47
+ const numValue = parseFloat(matches[1]);
48
+ const unit = matches[2];
49
+ switch (unit) {
50
+ case "px":
51
+ return numValue;
52
+ case "em":
53
+ case "rem":
54
+ px = numValue * 16;
55
+ return px;
56
+ case "%":
57
+ px = numValue / 100 * 600;
58
+ return px;
59
+ default:
60
+ return numValue;
61
+ }
62
+ } else {
63
+ return 0;
64
+ }
65
+ }
66
+ function parsePadding({
67
+ padding = "",
68
+ paddingTop,
69
+ paddingRight,
70
+ paddingBottom,
71
+ paddingLeft
72
+ }) {
73
+ let pt = 0;
74
+ let pr = 0;
75
+ let pb = 0;
76
+ let pl = 0;
77
+ if (typeof padding === "number") {
78
+ pt = padding;
79
+ pr = padding;
80
+ pb = padding;
81
+ pl = padding;
82
+ } else {
83
+ const values = padding.split(/\s+/);
84
+ switch (values.length) {
85
+ case 1:
86
+ pt = convertToPx(values[0]);
87
+ pr = convertToPx(values[0]);
88
+ pb = convertToPx(values[0]);
89
+ pl = convertToPx(values[0]);
90
+ break;
91
+ case 2:
92
+ pt = convertToPx(values[0]);
93
+ pb = convertToPx(values[0]);
94
+ pr = convertToPx(values[1]);
95
+ pl = convertToPx(values[1]);
96
+ break;
97
+ case 3:
98
+ pt = convertToPx(values[0]);
99
+ pr = convertToPx(values[1]);
100
+ pl = convertToPx(values[1]);
101
+ pb = convertToPx(values[2]);
102
+ break;
103
+ case 4:
104
+ pt = convertToPx(values[0]);
105
+ pr = convertToPx(values[1]);
106
+ pb = convertToPx(values[2]);
107
+ pl = convertToPx(values[3]);
108
+ break;
109
+ default:
110
+ break;
111
+ }
112
+ }
113
+ return {
114
+ pt: paddingTop ? convertToPx(paddingTop) : pt,
115
+ pr: paddingRight ? convertToPx(paddingRight) : pr,
116
+ pb: paddingBottom ? convertToPx(paddingBottom) : pb,
117
+ pl: paddingLeft ? convertToPx(paddingLeft) : pl
118
+ };
119
+ }
120
+
121
+ // src/utils/px-to-pt.ts
122
+ var pxToPt = (px) => typeof px === "number" && !isNaN(Number(px)) ? px * 3 / 4 : null;
123
+
124
+ // src/button.tsx
125
+ import { jsx, jsxs } from "react/jsx-runtime";
126
+ var maxFontWidth = 5;
127
+ function computeFontWidthAndSpaceCount(expectedWidth) {
128
+ if (expectedWidth === 0) return [0, 0];
129
+ let smallestSpaceCount = 0;
130
+ const computeRequiredFontWidth = () => {
131
+ if (smallestSpaceCount > 0) {
132
+ return expectedWidth / smallestSpaceCount / 2;
133
+ }
134
+ return Infinity;
135
+ };
136
+ while (computeRequiredFontWidth() > maxFontWidth) {
137
+ smallestSpaceCount++;
138
+ }
139
+ return [computeRequiredFontWidth(), smallestSpaceCount];
140
+ }
141
+ var Button = React.forwardRef(
142
+ (_a, ref) => {
143
+ var _b = _a, { children, style, target = "_blank" } = _b, props = __objRest(_b, ["children", "style", "target"]);
144
+ var _a2, _b2, _c, _d;
145
+ const { pt, pr, pb, pl } = parsePadding({
146
+ padding: style == null ? void 0 : style.padding,
147
+ paddingLeft: (_a2 = style == null ? void 0 : style.paddingLeft) != null ? _a2 : style == null ? void 0 : style.paddingInline,
148
+ paddingRight: (_b2 = style == null ? void 0 : style.paddingRight) != null ? _b2 : style == null ? void 0 : style.paddingInline,
149
+ paddingTop: (_c = style == null ? void 0 : style.paddingTop) != null ? _c : style == null ? void 0 : style.paddingBlock,
150
+ paddingBottom: (_d = style == null ? void 0 : style.paddingBottom) != null ? _d : style == null ? void 0 : style.paddingBlock
151
+ });
152
+ const y = pt + pb;
153
+ const textRaise = pxToPt(y);
154
+ const [plFontWidth, plSpaceCount] = computeFontWidthAndSpaceCount(pl);
155
+ const [prFontWidth, prSpaceCount] = computeFontWidthAndSpaceCount(pr);
156
+ return /* @__PURE__ */ jsxs(
157
+ "a",
158
+ __spreadProps(__spreadValues({}, props), {
159
+ ref,
160
+ style: buttonStyle(__spreadProps(__spreadValues({}, style), { pt, pr, pb, pl })),
161
+ target,
162
+ children: [
163
+ /* @__PURE__ */ jsx(
164
+ "span",
165
+ {
166
+ dangerouslySetInnerHTML: {
167
+ // The `&#8202;` is as close to `1px` of an empty character as we can get, then, we use the `mso-font-width`
168
+ // to scale it according to what padding the developer wants. `mso-font-width` also does not allow for percentages
169
+ // >= 500% so we need to add extra spaces accordingly.
170
+ //
171
+ // See https://github.com/resend/react-email/issues/1512 for why we do not use letter-spacing instead.
172
+ __html: `<!--[if mso]><i style="mso-font-width:${plFontWidth * 100}%;mso-text-raise:${textRaise}" hidden>${"&#8202;".repeat(
173
+ plSpaceCount
174
+ )}</i><![endif]-->`
175
+ }
176
+ }
177
+ ),
178
+ /* @__PURE__ */ jsx("span", { style: buttonTextStyle(pb), children }),
179
+ /* @__PURE__ */ jsx(
180
+ "span",
181
+ {
182
+ dangerouslySetInnerHTML: {
183
+ __html: `<!--[if mso]><i style="mso-font-width:${prFontWidth * 100}%" hidden>${"&#8202;".repeat(
184
+ prSpaceCount
185
+ )}&#8203;</i><![endif]-->`
186
+ }
187
+ }
188
+ )
189
+ ]
190
+ })
191
+ );
192
+ }
193
+ );
194
+ Button.displayName = "Button";
195
+ var buttonStyle = (style) => {
196
+ const _a = style || {}, { pt, pr, pb, pl } = _a, rest = __objRest(_a, ["pt", "pr", "pb", "pl"]);
197
+ return __spreadProps(__spreadValues({
198
+ lineHeight: "100%",
199
+ textDecoration: "none",
200
+ display: "inline-block",
201
+ maxWidth: "100%",
202
+ msoPaddingAlt: "0px"
203
+ }, rest), {
204
+ padding: `${pt}px ${pr}px ${pb}px ${pl}px`
205
+ });
206
+ };
207
+ var buttonTextStyle = (pb) => {
208
+ return {
209
+ maxWidth: "100%",
210
+ display: "inline-block",
211
+ lineHeight: "120%",
212
+ msoPaddingAlt: "0px",
213
+ msoTextRaise: pxToPt(pb || 0)
214
+ };
215
+ };
216
+ export {
217
+ Button
218
+ };