react-email 3.0.5 → 3.0.7-canary.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.
Files changed (192) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cli/index.js +764 -769
  3. package/dist/cli/index.mjs +488 -499
  4. package/dist/preview/.next/BUILD_ID +1 -1
  5. package/dist/preview/.next/app-build-manifest.json +10 -10
  6. package/dist/preview/.next/build-manifest.json +3 -3
  7. package/dist/preview/.next/cache/.rscinfo +1 -1
  8. package/dist/preview/.next/cache/webpack/client-production/0.pack +0 -0
  9. package/dist/preview/.next/cache/webpack/client-production/index.pack +0 -0
  10. package/dist/preview/.next/cache/webpack/edge-server-production/index.pack +0 -0
  11. package/dist/preview/.next/cache/webpack/server-production/0.pack +0 -0
  12. package/dist/preview/.next/cache/webpack/server-production/index.pack +0 -0
  13. package/dist/preview/.next/next-minimal-server.js.nft.json +1 -1
  14. package/dist/preview/.next/next-server.js.nft.json +1 -1
  15. package/dist/preview/.next/prerender-manifest.json +1 -1
  16. package/dist/preview/.next/required-server-files.json +1 -1
  17. package/dist/preview/.next/server/app/_not-found/page.js +1 -1
  18. package/dist/preview/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/dist/preview/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/dist/preview/.next/server/app/favicon.ico/route.js +1 -1
  21. package/dist/preview/.next/server/app/page.js +1 -1
  22. package/dist/preview/.next/server/app/page.js.nft.json +1 -1
  23. package/dist/preview/.next/server/app/page_client-reference-manifest.js +1 -1
  24. package/dist/preview/.next/server/app/preview/[...slug]/page.js +7 -6
  25. package/dist/preview/.next/server/app/preview/[...slug]/page.js.nft.json +1 -1
  26. package/dist/preview/.next/server/app/preview/[...slug]/page_client-reference-manifest.js +1 -1
  27. package/dist/preview/.next/server/chunks/196.js +5 -0
  28. package/dist/preview/.next/server/chunks/650.js +1 -0
  29. package/dist/preview/.next/server/chunks/720.js +3 -3
  30. package/dist/preview/.next/server/middleware-build-manifest.js +1 -1
  31. package/dist/preview/.next/server/next-font-manifest.js +1 -1
  32. package/dist/preview/.next/server/next-font-manifest.json +1 -1
  33. package/dist/preview/.next/server/pages/500.html +1 -1
  34. package/dist/preview/.next/server/server-reference-manifest.js +1 -1
  35. package/dist/preview/.next/server/server-reference-manifest.json +1 -1
  36. package/dist/preview/.next/static/chunks/154-ca55c1fde27d0922.js +1 -0
  37. package/dist/preview/.next/static/chunks/app/layout-7b9224888c7ffd05.js +1 -0
  38. package/dist/preview/.next/static/chunks/app/page-36853df2e13e583f.js +1 -0
  39. package/dist/preview/.next/static/chunks/app/preview/[...slug]/page-48ce00470ce06446.js +1 -0
  40. package/dist/preview/.next/static/chunks/main-app-cd104297c6bcc87e.js +1 -0
  41. package/dist/preview/.next/static/css/{eb0a93282704d7ab.css → a34876a6c565fff8.css} +1 -1
  42. package/dist/preview/.next/trace +21 -20
  43. package/dist/preview/.next/types/app/layout.ts +1 -1
  44. package/dist/preview/.next/types/app/preview/[...slug]/page.ts +1 -1
  45. package/package.json +4 -8
  46. package/postcss.config.js +1 -1
  47. package/src/actions/get-email-path-from-slug.ts +7 -4
  48. package/src/actions/get-emails-directory-metadata-action.ts +19 -0
  49. package/src/actions/render-email-by-path.tsx +3 -3
  50. package/src/app/layout.tsx +2 -2
  51. package/src/app/page.tsx +1 -1
  52. package/src/app/preview/[...slug]/page.tsx +2 -2
  53. package/src/app/preview/[...slug]/preview.tsx +2 -2
  54. package/src/components/button.tsx +1 -1
  55. package/src/components/code-container.tsx +1 -1
  56. package/src/components/heading.tsx +1 -1
  57. package/src/components/sidebar/sidebar-directory-children.tsx +5 -8
  58. package/src/components/sidebar/sidebar-directory.tsx +2 -2
  59. package/src/components/sidebar/sidebar.tsx +2 -2
  60. package/src/components/text.tsx +1 -1
  61. package/src/components/tooltip-content.tsx +1 -1
  62. package/src/components/tooltip.tsx +1 -1
  63. package/src/components/topbar.tsx +1 -1
  64. package/src/contexts/emails.tsx +3 -5
  65. package/src/hooks/use-email-rendering-result.ts +2 -2
  66. package/src/utils/cn.ts +1 -1
  67. package/src/utils/esbuild/renderring-utilities-exporter.ts +1 -1
  68. package/src/utils/get-email-component.ts +6 -6
  69. package/src/{actions → utils}/get-emails-directory-metadata.spec.ts +1 -2
  70. package/src/utils/get-emails-directory-metadata.ts +119 -0
  71. package/src/utils/improve-error-with-sourcemap.ts +1 -1
  72. package/src/utils/static-node-modules-for-vm.ts +6 -6
  73. package/tsconfig.json +1 -6
  74. package/.eslintrc.js +0 -52
  75. package/.prettierignore +0 -3
  76. package/.prettierrc.js +0 -8
  77. package/dist/index.d.mts +0 -20
  78. package/dist/index.d.ts +0 -20
  79. package/dist/index.js +0 -96
  80. package/dist/index.mjs +0 -21
  81. package/dist/package/index.d.mts +0 -33
  82. package/dist/package/index.d.ts +0 -33
  83. package/dist/package/index.js +0 -62
  84. package/dist/package/index.mjs +0 -7
  85. package/dist/preview/.next/cache/eslint/.cache_1vyas3k +0 -1
  86. package/dist/preview/.next/server/chunks/420.js +0 -1
  87. package/dist/preview/.next/server/chunks/625.js +0 -5
  88. package/dist/preview/.next/static/chunks/154-69b91a0c2fd801b8.js +0 -1
  89. package/dist/preview/.next/static/chunks/app/layout-e1b6f1534cbbe5bd.js +0 -1
  90. package/dist/preview/.next/static/chunks/app/page-2c3e297e38c526ef.js +0 -1
  91. package/dist/preview/.next/static/chunks/app/preview/[...slug]/page-2b4988ba6daf34e1.js +0 -1
  92. package/dist/preview/.next/static/chunks/main-app-2c7f96205a73f128.js +0 -1
  93. package/src/actions/get-emails-directory-metadata.ts +0 -123
  94. package/src/package/body/dist/index.d.mts +0 -6
  95. package/src/package/body/dist/index.d.ts +0 -6
  96. package/src/package/body/dist/index.js +0 -79
  97. package/src/package/body/dist/index.mjs +0 -45
  98. package/src/package/button/dist/index.d.mts +0 -6
  99. package/src/package/button/dist/index.d.ts +0 -6
  100. package/src/package/button/dist/index.js +0 -252
  101. package/src/package/button/dist/index.mjs +0 -218
  102. package/src/package/code-block/dist/index.d.mts +0 -4906
  103. package/src/package/code-block/dist/index.d.ts +0 -4906
  104. package/src/package/code-block/dist/index.js +0 -18205
  105. package/src/package/code-block/dist/index.mjs +0 -18133
  106. package/src/package/code-inline/dist/index.d.mts +0 -11
  107. package/src/package/code-inline/dist/index.d.ts +0 -11
  108. package/src/package/code-inline/dist/index.js +0 -106
  109. package/src/package/code-inline/dist/index.mjs +0 -72
  110. package/src/package/column/dist/index.d.mts +0 -6
  111. package/src/package/column/dist/index.d.ts +0 -6
  112. package/src/package/column/dist/index.js +0 -79
  113. package/src/package/column/dist/index.mjs +0 -45
  114. package/src/package/components/dist/index.d.mts +0 -20
  115. package/src/package/components/dist/index.d.ts +0 -20
  116. package/src/package/components/dist/index.js +0 -62
  117. package/src/package/components/dist/index.mjs +0 -21
  118. package/src/package/container/dist/index.d.mts +0 -6
  119. package/src/package/container/dist/index.d.ts +0 -6
  120. package/src/package/container/dist/index.js +0 -93
  121. package/src/package/container/dist/index.mjs +0 -59
  122. package/src/package/font/dist/index.d.mts +0 -25
  123. package/src/package/font/dist/index.d.ts +0 -25
  124. package/src/package/font/dist/index.js +0 -55
  125. package/src/package/font/dist/index.mjs +0 -28
  126. package/src/package/head/dist/index.d.mts +0 -6
  127. package/src/package/head/dist/index.d.ts +0 -6
  128. package/src/package/head/dist/index.js +0 -83
  129. package/src/package/head/dist/index.mjs +0 -49
  130. package/src/package/heading/dist/index.d.mts +0 -43
  131. package/src/package/heading/dist/index.d.ts +0 -43
  132. package/src/package/heading/dist/index.js +0 -113
  133. package/src/package/heading/dist/index.mjs +0 -79
  134. package/src/package/hr/dist/index.d.mts +0 -6
  135. package/src/package/hr/dist/index.d.ts +0 -6
  136. package/src/package/hr/dist/index.js +0 -89
  137. package/src/package/hr/dist/index.mjs +0 -55
  138. package/src/package/html/dist/index.d.mts +0 -6
  139. package/src/package/html/dist/index.d.ts +0 -6
  140. package/src/package/html/dist/index.js +0 -79
  141. package/src/package/html/dist/index.mjs +0 -45
  142. package/src/package/img/dist/index.d.mts +0 -6
  143. package/src/package/img/dist/index.d.ts +0 -6
  144. package/src/package/img/dist/index.js +0 -94
  145. package/src/package/img/dist/index.mjs +0 -60
  146. package/src/package/link/dist/index.d.mts +0 -6
  147. package/src/package/link/dist/index.d.ts +0 -6
  148. package/src/package/link/dist/index.js +0 -90
  149. package/src/package/link/dist/index.mjs +0 -56
  150. package/src/package/markdown/dist/index.d.mts +0 -15
  151. package/src/package/markdown/dist/index.d.ts +0 -15
  152. package/src/package/markdown/dist/index.js +0 -92
  153. package/src/package/markdown/dist/index.mjs +0 -58
  154. package/src/package/preview/dist/index.d.mts +0 -12
  155. package/src/package/preview/dist/index.d.ts +0 -12
  156. package/src/package/preview/dist/index.js +0 -108
  157. package/src/package/preview/dist/index.mjs +0 -73
  158. package/src/package/render/dist/browser/index.d.mts +0 -24
  159. package/src/package/render/dist/browser/index.d.ts +0 -24
  160. package/src/package/render/dist/browser/index.js +0 -250
  161. package/src/package/render/dist/browser/index.mjs +0 -214
  162. package/src/package/render/dist/index.d.mts +0 -23
  163. package/src/package/render/dist/index.d.ts +0 -23
  164. package/src/package/render/dist/index.js +0 -768
  165. package/src/package/render/dist/index.mjs +0 -733
  166. package/src/package/render/dist/node/index.d.mts +0 -27
  167. package/src/package/render/dist/node/index.d.ts +0 -27
  168. package/src/package/render/dist/node/index.js +0 -212
  169. package/src/package/render/dist/node/index.mjs +0 -176
  170. package/src/package/row/dist/index.d.mts +0 -10
  171. package/src/package/row/dist/index.d.ts +0 -10
  172. package/src/package/row/dist/index.js +0 -93
  173. package/src/package/row/dist/index.mjs +0 -59
  174. package/src/package/section/dist/index.d.mts +0 -6
  175. package/src/package/section/dist/index.d.ts +0 -6
  176. package/src/package/section/dist/index.js +0 -93
  177. package/src/package/section/dist/index.mjs +0 -59
  178. package/src/package/tailwind/dist/index.d.ts +0 -19
  179. package/src/package/tailwind/dist/index.js +0 -48
  180. package/src/package/tailwind/dist/index.mjs +0 -17167
  181. package/src/package/tailwind/dist/tailwindcss/config.d.ts +0 -376
  182. package/src/package/tailwind/dist/tailwindcss/generated/.gitkeep +0 -0
  183. package/src/package/tailwind/dist/tailwindcss/generated/colors.d.ts +0 -298
  184. package/src/package/tailwind/dist/tailwindcss/generated/corePluginList.d.ts +0 -1
  185. package/src/package/tailwind/dist/tailwindcss/generated/default-theme.d.ts +0 -397
  186. package/src/package/tailwind/dist/tailwindcss/index.d.ts +0 -11
  187. package/src/package/text/dist/index.d.mts +0 -6
  188. package/src/package/text/dist/index.d.ts +0 -6
  189. package/src/package/text/dist/index.js +0 -89
  190. package/src/package/text/dist/index.mjs +0 -55
  191. /package/dist/preview/.next/static/{6K68y2QEZ1dLbv-Xhi30p → 3Ni4t_kYMdpL72HxSPHgK}/_buildManifest.js +0 -0
  192. /package/dist/preview/.next/static/{6K68y2QEZ1dLbv-Xhi30p → 3Ni4t_kYMdpL72HxSPHgK}/_ssgManifest.js +0 -0
@@ -1,218 +0,0 @@
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
- };