react-email 6.6.9 → 6.8.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 (231) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  3. package/dist/cli/index.mjs +12 -11
  4. package/dist/components/body/body.cjs +39 -0
  5. package/dist/components/body/body.d.cts +7 -0
  6. package/dist/components/body/body.d.mts +7 -0
  7. package/dist/components/body/body.mjs +37 -0
  8. package/dist/components/body/index.d.cts +1 -0
  9. package/dist/components/body/index.d.mts +1 -0
  10. package/dist/components/body/margin-properties.cjs +30 -0
  11. package/dist/components/body/margin-properties.mjs +29 -0
  12. package/dist/components/button/button.cjs +64 -0
  13. package/dist/components/button/button.d.cts +13 -0
  14. package/dist/components/button/button.d.mts +13 -0
  15. package/dist/components/button/button.mjs +62 -0
  16. package/dist/components/button/index.d.cts +1 -0
  17. package/dist/components/button/index.d.mts +1 -0
  18. package/dist/components/button/utils/parse-padding.cjs +90 -0
  19. package/dist/components/button/utils/parse-padding.mjs +90 -0
  20. package/dist/components/button/utils/px-to-pt.cjs +4 -0
  21. package/dist/components/button/utils/px-to-pt.mjs +4 -0
  22. package/dist/components/code-block/code-block.cjs +79 -0
  23. package/dist/components/code-block/code-block.d.cts +20 -0
  24. package/dist/components/code-block/code-block.d.mts +20 -0
  25. package/dist/components/code-block/code-block.mjs +77 -0
  26. package/dist/components/code-block/index.d.cts +3 -0
  27. package/dist/components/code-block/index.d.mts +3 -0
  28. package/dist/components/code-block/languages-available.d.cts +4 -0
  29. package/dist/components/code-block/languages-available.d.mts +4 -0
  30. package/dist/components/code-block/prism.cjs +14564 -0
  31. package/dist/components/code-block/prism.mjs +14562 -0
  32. package/dist/components/code-block/themes.cjs +2578 -0
  33. package/dist/components/code-block/themes.d.cts +4877 -0
  34. package/dist/components/code-block/themes.d.mts +4877 -0
  35. package/dist/components/code-block/themes.mjs +2541 -0
  36. package/dist/components/code-inline/code-inline.cjs +43 -0
  37. package/dist/components/code-inline/code-inline.d.cts +12 -0
  38. package/dist/components/code-inline/code-inline.d.mts +12 -0
  39. package/dist/components/code-inline/code-inline.mjs +41 -0
  40. package/dist/components/code-inline/index.d.cts +1 -0
  41. package/dist/components/code-inline/index.d.mts +1 -0
  42. package/dist/components/column/column.cjs +19 -0
  43. package/dist/components/column/column.d.cts +7 -0
  44. package/dist/components/column/column.d.mts +7 -0
  45. package/dist/components/column/column.mjs +17 -0
  46. package/dist/components/column/index.d.cts +1 -0
  47. package/dist/components/column/index.d.mts +1 -0
  48. package/dist/components/container/container.cjs +42 -0
  49. package/dist/components/container/container.d.cts +7 -0
  50. package/dist/components/container/container.d.mts +7 -0
  51. package/dist/components/container/container.mjs +40 -0
  52. package/dist/components/container/index.d.cts +1 -0
  53. package/dist/components/container/index.d.mts +1 -0
  54. package/dist/components/element-marker.cjs +8 -0
  55. package/dist/components/element-marker.mjs +7 -0
  56. package/dist/components/font/font.cjs +22 -0
  57. package/dist/components/font/font.d.cts +26 -0
  58. package/dist/components/font/font.d.mts +26 -0
  59. package/dist/components/font/font.mjs +21 -0
  60. package/dist/components/font/index.d.cts +1 -0
  61. package/dist/components/font/index.d.mts +1 -0
  62. package/dist/components/head/head.cjs +20 -0
  63. package/dist/components/head/head.d.cts +7 -0
  64. package/dist/components/head/head.d.mts +7 -0
  65. package/dist/components/head/head.mjs +18 -0
  66. package/dist/components/head/index.d.cts +1 -0
  67. package/dist/components/head/index.d.mts +1 -0
  68. package/dist/components/heading/heading.cjs +30 -0
  69. package/dist/components/heading/heading.d.cts +22 -0
  70. package/dist/components/heading/heading.d.mts +22 -0
  71. package/dist/components/heading/heading.mjs +28 -0
  72. package/dist/components/heading/index.d.cts +1 -0
  73. package/dist/components/heading/index.d.mts +1 -0
  74. package/dist/components/heading/utils/as.d.cts +16 -0
  75. package/dist/components/heading/utils/as.d.mts +16 -0
  76. package/dist/components/heading/utils/spaces.cjs +24 -0
  77. package/dist/components/heading/utils/spaces.d.cts +14 -0
  78. package/dist/components/heading/utils/spaces.d.mts +14 -0
  79. package/dist/components/heading/utils/spaces.mjs +24 -0
  80. package/dist/components/hr/hr.cjs +21 -0
  81. package/dist/components/hr/hr.d.cts +7 -0
  82. package/dist/components/hr/hr.d.mts +7 -0
  83. package/dist/components/hr/hr.mjs +19 -0
  84. package/dist/components/hr/index.d.cts +1 -0
  85. package/dist/components/hr/index.d.mts +1 -0
  86. package/dist/components/html/html.cjs +15 -0
  87. package/dist/components/html/html.d.cts +7 -0
  88. package/dist/components/html/html.d.mts +7 -0
  89. package/dist/components/html/html.mjs +13 -0
  90. package/dist/components/html/index.d.cts +1 -0
  91. package/dist/components/html/index.d.mts +1 -0
  92. package/dist/components/img/img.cjs +25 -0
  93. package/dist/components/img/img.d.cts +7 -0
  94. package/dist/components/img/img.d.mts +7 -0
  95. package/dist/components/img/img.mjs +23 -0
  96. package/dist/components/img/index.d.cts +1 -0
  97. package/dist/components/img/index.d.mts +1 -0
  98. package/dist/components/index.d.cts +24 -0
  99. package/dist/components/index.d.mts +24 -0
  100. package/dist/components/link/index.d.cts +1 -0
  101. package/dist/components/link/index.d.mts +1 -0
  102. package/dist/components/link/link.cjs +21 -0
  103. package/dist/components/link/link.d.cts +7 -0
  104. package/dist/components/link/link.d.mts +7 -0
  105. package/dist/components/link/link.mjs +19 -0
  106. package/dist/components/markdown/index.d.cts +1 -0
  107. package/dist/components/markdown/index.d.mts +1 -0
  108. package/dist/components/markdown/markdown.cjs +101 -0
  109. package/dist/components/markdown/markdown.d.cts +16 -0
  110. package/dist/components/markdown/markdown.d.mts +16 -0
  111. package/dist/components/markdown/markdown.mjs +99 -0
  112. package/dist/components/markdown/styles.cjs +92 -0
  113. package/dist/components/markdown/styles.d.cts +31 -0
  114. package/dist/components/markdown/styles.d.mts +31 -0
  115. package/dist/components/markdown/styles.mjs +92 -0
  116. package/dist/components/markdown/utils/parse-css-in-js-to-inline-css.cjs +60 -0
  117. package/dist/components/markdown/utils/parse-css-in-js-to-inline-css.mjs +60 -0
  118. package/dist/components/preview/index.d.cts +1 -0
  119. package/dist/components/preview/index.d.mts +1 -0
  120. package/dist/components/preview/preview.cjs +34 -0
  121. package/dist/components/preview/preview.d.cts +21 -0
  122. package/dist/components/preview/preview.d.mts +21 -0
  123. package/dist/components/preview/preview.mjs +31 -0
  124. package/dist/components/row/index.d.cts +1 -0
  125. package/dist/components/row/index.d.mts +1 -0
  126. package/dist/components/row/row.cjs +30 -0
  127. package/dist/components/row/row.d.cts +11 -0
  128. package/dist/components/row/row.d.mts +11 -0
  129. package/dist/components/row/row.mjs +28 -0
  130. package/dist/components/section/index.d.cts +1 -0
  131. package/dist/components/section/index.d.mts +1 -0
  132. package/dist/components/section/section.cjs +36 -0
  133. package/dist/components/section/section.d.cts +7 -0
  134. package/dist/components/section/section.d.mts +7 -0
  135. package/dist/components/section/section.mjs +34 -0
  136. package/dist/components/tailwind/hooks/use-suspended-promise.cjs +15 -0
  137. package/dist/components/tailwind/hooks/use-suspended-promise.mjs +15 -0
  138. package/dist/components/tailwind/index.d.cts +4 -0
  139. package/dist/components/tailwind/index.d.mts +4 -0
  140. package/dist/components/tailwind/inline-styles.cjs +11 -0
  141. package/dist/components/tailwind/inline-styles.d.cts +6 -0
  142. package/dist/components/tailwind/inline-styles.d.mts +6 -0
  143. package/dist/components/tailwind/inline-styles.mjs +11 -0
  144. package/dist/components/tailwind/sanitize-stylesheet.cjs +11 -0
  145. package/dist/components/tailwind/sanitize-stylesheet.d.cts +6 -0
  146. package/dist/components/tailwind/sanitize-stylesheet.d.mts +6 -0
  147. package/dist/components/tailwind/sanitize-stylesheet.mjs +11 -0
  148. package/dist/components/tailwind/tailwind.cjs +120 -0
  149. package/dist/components/tailwind/tailwind.d.cts +25 -0
  150. package/dist/components/tailwind/tailwind.d.mts +25 -0
  151. package/dist/components/tailwind/tailwind.mjs +117 -0
  152. package/dist/components/tailwind/utils/compatibility/get-react-property.cjs +10 -0
  153. package/dist/components/tailwind/utils/compatibility/get-react-property.mjs +10 -0
  154. package/dist/components/tailwind/utils/compatibility/sanitize-class-name.cjs +26 -0
  155. package/dist/components/tailwind/utils/compatibility/sanitize-class-name.mjs +26 -0
  156. package/dist/components/tailwind/utils/css/downlevel-for-email-clients.cjs +126 -0
  157. package/dist/components/tailwind/utils/css/downlevel-for-email-clients.mjs +125 -0
  158. package/dist/components/tailwind/utils/css/extract-rules-per-class.cjs +45 -0
  159. package/dist/components/tailwind/utils/css/extract-rules-per-class.mjs +44 -0
  160. package/dist/components/tailwind/utils/css/get-custom-properties.cjs +35 -0
  161. package/dist/components/tailwind/utils/css/get-custom-properties.mjs +34 -0
  162. package/dist/components/tailwind/utils/css/is-part-inlinable.cjs +10 -0
  163. package/dist/components/tailwind/utils/css/is-part-inlinable.mjs +9 -0
  164. package/dist/components/tailwind/utils/css/is-rule-inlinable.cjs +10 -0
  165. package/dist/components/tailwind/utils/css/is-rule-inlinable.mjs +9 -0
  166. package/dist/components/tailwind/utils/css/make-inline-styles-for.cjs +52 -0
  167. package/dist/components/tailwind/utils/css/make-inline-styles-for.mjs +51 -0
  168. package/dist/components/tailwind/utils/css/resolve-all-css-variables.cjs +89 -0
  169. package/dist/components/tailwind/utils/css/resolve-all-css-variables.mjs +88 -0
  170. package/dist/components/tailwind/utils/css/resolve-calc-expressions.cjs +92 -0
  171. package/dist/components/tailwind/utils/css/resolve-calc-expressions.mjs +91 -0
  172. package/dist/components/tailwind/utils/css/sanitize-declarations.cjs +310 -0
  173. package/dist/components/tailwind/utils/css/sanitize-declarations.mjs +309 -0
  174. package/dist/components/tailwind/utils/css/sanitize-non-inlinable-rules.cjs +46 -0
  175. package/dist/components/tailwind/utils/css/sanitize-non-inlinable-rules.mjs +45 -0
  176. package/dist/components/tailwind/utils/css/split-mixed-rule.cjs +41 -0
  177. package/dist/components/tailwind/utils/css/split-mixed-rule.mjs +40 -0
  178. package/dist/components/tailwind/utils/css/strip-empty-tailwind-vars.cjs +52 -0
  179. package/dist/components/tailwind/utils/css/strip-empty-tailwind-vars.mjs +51 -0
  180. package/dist/components/tailwind/utils/css/unwrap-value.cjs +7 -0
  181. package/dist/components/tailwind/utils/css/unwrap-value.mjs +7 -0
  182. package/dist/components/tailwind/utils/react/is-component.cjs +7 -0
  183. package/dist/components/tailwind/utils/react/is-component.mjs +7 -0
  184. package/dist/components/tailwind/utils/react/map-react-tree.cjs +32 -0
  185. package/dist/components/tailwind/utils/react/map-react-tree.mjs +30 -0
  186. package/dist/components/tailwind/utils/tailwindcss/clone-element-with-inlined-styles.cjs +37 -0
  187. package/dist/components/tailwind/utils/tailwindcss/clone-element-with-inlined-styles.mjs +35 -0
  188. package/dist/components/tailwind/utils/tailwindcss/setup-tailwind.cjs +77 -0
  189. package/dist/components/tailwind/utils/tailwindcss/setup-tailwind.d.cts +19 -0
  190. package/dist/components/tailwind/utils/tailwindcss/setup-tailwind.d.mts +19 -0
  191. package/dist/components/tailwind/utils/tailwindcss/setup-tailwind.mjs +76 -0
  192. package/dist/components/tailwind/utils/tailwindcss/tailwind-stylesheets/index.cjs +901 -0
  193. package/dist/components/tailwind/utils/tailwindcss/tailwind-stylesheets/index.mjs +901 -0
  194. package/dist/components/tailwind/utils/tailwindcss/tailwind-stylesheets/preflight.cjs +398 -0
  195. package/dist/components/tailwind/utils/tailwindcss/tailwind-stylesheets/preflight.mjs +398 -0
  196. package/dist/components/tailwind/utils/tailwindcss/tailwind-stylesheets/theme.cjs +467 -0
  197. package/dist/components/tailwind/utils/tailwindcss/tailwind-stylesheets/theme.mjs +467 -0
  198. package/dist/components/tailwind/utils/tailwindcss/tailwind-stylesheets/utilities.cjs +6 -0
  199. package/dist/components/tailwind/utils/tailwindcss/tailwind-stylesheets/utilities.mjs +6 -0
  200. package/dist/components/tailwind/utils/text/from-dash-case-to-camel-case.cjs +6 -0
  201. package/dist/components/tailwind/utils/text/from-dash-case-to-camel-case.mjs +6 -0
  202. package/dist/components/text/index.d.cts +1 -0
  203. package/dist/components/text/index.d.mts +1 -0
  204. package/dist/components/text/text.cjs +43 -0
  205. package/dist/components/text/text.d.cts +7 -0
  206. package/dist/components/text/text.d.mts +7 -0
  207. package/dist/components/text/text.mjs +41 -0
  208. package/dist/components/text/utils/compute-margins.cjs +62 -0
  209. package/dist/components/text/utils/compute-margins.mjs +62 -0
  210. package/dist/index.cjs +85 -40759
  211. package/dist/index.d.cts +24 -5132
  212. package/dist/index.d.mts +24 -5132
  213. package/dist/index.mjs +23 -40676
  214. package/package.json +7 -6
  215. package/src/components/body/body.tsx +2 -0
  216. package/src/components/button/button.tsx +2 -0
  217. package/src/components/code-block/code-block.tsx +2 -0
  218. package/src/components/code-inline/code-inline.tsx +2 -0
  219. package/src/components/column/column.tsx +2 -0
  220. package/src/components/container/container.tsx +2 -0
  221. package/src/components/element-marker.ts +5 -0
  222. package/src/components/heading/heading.tsx +2 -0
  223. package/src/components/hr/hr.tsx +2 -0
  224. package/src/components/img/img.tsx +2 -0
  225. package/src/components/link/link.tsx +2 -0
  226. package/src/components/preview/preview.tsx +2 -0
  227. package/src/components/row/row.tsx +2 -0
  228. package/src/components/section/section.tsx +2 -0
  229. package/src/components/tailwind/utils/react/is-component.ts +2 -32
  230. package/src/components/text/text.tsx +2 -0
  231. package/tsdown.config.ts +31 -34
@@ -0,0 +1,43 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_element_marker = require("../element-marker.cjs");
3
+ let react = require("react");
4
+ react = require_runtime.__toESM(react);
5
+ let react_jsx_runtime = require("react/jsx-runtime");
6
+ //#region src/components/code-inline/code-inline.tsx
7
+ /**
8
+ * If you are sending emails for users that have the Orange.fr email client,
9
+ * beware that this component will only work when you have a head containing meta tags.
10
+ */
11
+ const CodeInline = react.forwardRef(({ children, ...props }, ref) => {
12
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
13
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("style", { children: `
14
+ meta ~ .cino {
15
+ display: none !important;
16
+ opacity: 0 !important;
17
+ }
18
+
19
+ meta ~ .cio {
20
+ display: block !important;
21
+ }
22
+ ` }),
23
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
24
+ ...props,
25
+ className: `${props.className ? props.className : ""} cino`,
26
+ children
27
+ }),
28
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
29
+ ...props,
30
+ className: `${props.className ? props.className : ""} cio`,
31
+ ref,
32
+ style: {
33
+ display: "none",
34
+ ...props.style
35
+ },
36
+ children
37
+ })
38
+ ] });
39
+ });
40
+ CodeInline.displayName = "CodeInline";
41
+ require_element_marker.markAsElement(CodeInline);
42
+ //#endregion
43
+ exports.CodeInline = CodeInline;
@@ -0,0 +1,12 @@
1
+ import * as React$1 from "react";
2
+
3
+ //#region src/components/code-inline/code-inline.d.ts
4
+ type RootProps = React$1.ComponentPropsWithoutRef<'code'> & React$1.ComponentPropsWithoutRef<'span'>;
5
+ type CodeInlineProps = Readonly<RootProps>;
6
+ /**
7
+ * If you are sending emails for users that have the Orange.fr email client,
8
+ * beware that this component will only work when you have a head containing meta tags.
9
+ */
10
+ declare const CodeInline: React$1.ForwardRefExoticComponent<Readonly<RootProps> & React$1.RefAttributes<HTMLSpanElement>>;
11
+ //#endregion
12
+ export { CodeInline, CodeInlineProps };
@@ -0,0 +1,12 @@
1
+ import * as React$1 from "react";
2
+
3
+ //#region src/components/code-inline/code-inline.d.ts
4
+ type RootProps = React$1.ComponentPropsWithoutRef<'code'> & React$1.ComponentPropsWithoutRef<'span'>;
5
+ type CodeInlineProps = Readonly<RootProps>;
6
+ /**
7
+ * If you are sending emails for users that have the Orange.fr email client,
8
+ * beware that this component will only work when you have a head containing meta tags.
9
+ */
10
+ declare const CodeInline: React$1.ForwardRefExoticComponent<Readonly<RootProps> & React$1.RefAttributes<HTMLSpanElement>>;
11
+ //#endregion
12
+ export { CodeInline, CodeInlineProps };
@@ -0,0 +1,41 @@
1
+ import { markAsElement } from "../element-marker.mjs";
2
+ import * as React$1 from "react";
3
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/components/code-inline/code-inline.tsx
5
+ /**
6
+ * If you are sending emails for users that have the Orange.fr email client,
7
+ * beware that this component will only work when you have a head containing meta tags.
8
+ */
9
+ const CodeInline = React$1.forwardRef(({ children, ...props }, ref) => {
10
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
11
+ /* @__PURE__ */ jsx("style", { children: `
12
+ meta ~ .cino {
13
+ display: none !important;
14
+ opacity: 0 !important;
15
+ }
16
+
17
+ meta ~ .cio {
18
+ display: block !important;
19
+ }
20
+ ` }),
21
+ /* @__PURE__ */ jsx("code", {
22
+ ...props,
23
+ className: `${props.className ? props.className : ""} cino`,
24
+ children
25
+ }),
26
+ /* @__PURE__ */ jsx("span", {
27
+ ...props,
28
+ className: `${props.className ? props.className : ""} cio`,
29
+ ref,
30
+ style: {
31
+ display: "none",
32
+ ...props.style
33
+ },
34
+ children
35
+ })
36
+ ] });
37
+ });
38
+ CodeInline.displayName = "CodeInline";
39
+ markAsElement(CodeInline);
40
+ //#endregion
41
+ export { CodeInline };
@@ -0,0 +1 @@
1
+ import { CodeInline, CodeInlineProps } from "./code-inline.cjs";
@@ -0,0 +1 @@
1
+ import { CodeInline, CodeInlineProps } from "./code-inline.mjs";
@@ -0,0 +1,19 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_element_marker = require("../element-marker.cjs");
3
+ let react = require("react");
4
+ react = require_runtime.__toESM(react);
5
+ let react_jsx_runtime = require("react/jsx-runtime");
6
+ //#region src/components/column/column.tsx
7
+ const Column = react.forwardRef(({ children, style, ...props }, ref) => {
8
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", {
9
+ ...props,
10
+ "data-id": "__react-email-column",
11
+ ref,
12
+ style,
13
+ children
14
+ });
15
+ });
16
+ Column.displayName = "Column";
17
+ require_element_marker.markAsElement(Column);
18
+ //#endregion
19
+ exports.Column = Column;
@@ -0,0 +1,7 @@
1
+ import * as React$1 from "react";
2
+
3
+ //#region src/components/column/column.d.ts
4
+ type ColumnProps = Readonly<React$1.ComponentPropsWithoutRef<'td'>>;
5
+ declare const Column: React$1.ForwardRefExoticComponent<Readonly<Omit<React$1.DetailedHTMLProps<React$1.TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, "ref">> & React$1.RefAttributes<HTMLTableCellElement>>;
6
+ //#endregion
7
+ export { Column, ColumnProps };
@@ -0,0 +1,7 @@
1
+ import * as React$1 from "react";
2
+
3
+ //#region src/components/column/column.d.ts
4
+ type ColumnProps = Readonly<React$1.ComponentPropsWithoutRef<'td'>>;
5
+ declare const Column: React$1.ForwardRefExoticComponent<Readonly<Omit<React$1.DetailedHTMLProps<React$1.TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, "ref">> & React$1.RefAttributes<HTMLTableCellElement>>;
6
+ //#endregion
7
+ export { Column, ColumnProps };
@@ -0,0 +1,17 @@
1
+ import { markAsElement } from "../element-marker.mjs";
2
+ import * as React$1 from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/components/column/column.tsx
5
+ const Column = React$1.forwardRef(({ children, style, ...props }, ref) => {
6
+ return /* @__PURE__ */ jsx("td", {
7
+ ...props,
8
+ "data-id": "__react-email-column",
9
+ ref,
10
+ style,
11
+ children
12
+ });
13
+ });
14
+ Column.displayName = "Column";
15
+ markAsElement(Column);
16
+ //#endregion
17
+ export { Column };
@@ -0,0 +1 @@
1
+ import { Column, ColumnProps } from "./column.cjs";
@@ -0,0 +1 @@
1
+ import { Column, ColumnProps } from "./column.mjs";
@@ -0,0 +1,42 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_element_marker = require("../element-marker.cjs");
3
+ let react = require("react");
4
+ react = require_runtime.__toESM(react);
5
+ let react_jsx_runtime = require("react/jsx-runtime");
6
+ //#region src/components/container/container.tsx
7
+ const Container = react.forwardRef(({ children, style = {}, ...props }, ref) => {
8
+ const tdStyle = {};
9
+ const tableStyle = {};
10
+ const styleRecord = style;
11
+ for (const key in styleRecord) {
12
+ if (!Object.hasOwn(styleRecord, key)) continue;
13
+ const value = styleRecord[key];
14
+ if (key === "padding" || key === "paddingTop" || key === "paddingRight" || key === "paddingBottom" || key === "paddingLeft") tdStyle[key] = value;
15
+ else tableStyle[key] = value;
16
+ }
17
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("table", {
18
+ align: "center",
19
+ width: "100%",
20
+ ...props,
21
+ border: 0,
22
+ cellPadding: "0",
23
+ cellSpacing: "0",
24
+ ref,
25
+ role: "presentation",
26
+ style: {
27
+ maxWidth: "37.5em",
28
+ ...tableStyle
29
+ },
30
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("tbody", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("tr", {
31
+ style: { width: "100%" },
32
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", {
33
+ style: tdStyle,
34
+ children
35
+ })
36
+ }) })
37
+ });
38
+ });
39
+ Container.displayName = "Container";
40
+ require_element_marker.markAsElement(Container);
41
+ //#endregion
42
+ exports.Container = Container;
@@ -0,0 +1,7 @@
1
+ import * as React$1 from "react";
2
+
3
+ //#region src/components/container/container.d.ts
4
+ type ContainerProps = Readonly<React$1.ComponentPropsWithoutRef<'table'>>;
5
+ declare const Container: React$1.ForwardRefExoticComponent<Readonly<Omit<React$1.DetailedHTMLProps<React$1.TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>, "ref">> & React$1.RefAttributes<HTMLTableElement>>;
6
+ //#endregion
7
+ export { Container, ContainerProps };
@@ -0,0 +1,7 @@
1
+ import * as React$1 from "react";
2
+
3
+ //#region src/components/container/container.d.ts
4
+ type ContainerProps = Readonly<React$1.ComponentPropsWithoutRef<'table'>>;
5
+ declare const Container: React$1.ForwardRefExoticComponent<Readonly<Omit<React$1.DetailedHTMLProps<React$1.TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>, "ref">> & React$1.RefAttributes<HTMLTableElement>>;
6
+ //#endregion
7
+ export { Container, ContainerProps };
@@ -0,0 +1,40 @@
1
+ import { markAsElement } from "../element-marker.mjs";
2
+ import * as React$1 from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/components/container/container.tsx
5
+ const Container = React$1.forwardRef(({ children, style = {}, ...props }, ref) => {
6
+ const tdStyle = {};
7
+ const tableStyle = {};
8
+ const styleRecord = style;
9
+ for (const key in styleRecord) {
10
+ if (!Object.hasOwn(styleRecord, key)) continue;
11
+ const value = styleRecord[key];
12
+ if (key === "padding" || key === "paddingTop" || key === "paddingRight" || key === "paddingBottom" || key === "paddingLeft") tdStyle[key] = value;
13
+ else tableStyle[key] = value;
14
+ }
15
+ return /* @__PURE__ */ jsx("table", {
16
+ align: "center",
17
+ width: "100%",
18
+ ...props,
19
+ border: 0,
20
+ cellPadding: "0",
21
+ cellSpacing: "0",
22
+ ref,
23
+ role: "presentation",
24
+ style: {
25
+ maxWidth: "37.5em",
26
+ ...tableStyle
27
+ },
28
+ children: /* @__PURE__ */ jsx("tbody", { children: /* @__PURE__ */ jsx("tr", {
29
+ style: { width: "100%" },
30
+ children: /* @__PURE__ */ jsx("td", {
31
+ style: tdStyle,
32
+ children
33
+ })
34
+ }) })
35
+ });
36
+ });
37
+ Container.displayName = "Container";
38
+ markAsElement(Container);
39
+ //#endregion
40
+ export { Container };
@@ -0,0 +1 @@
1
+ import { Container, ContainerProps } from "./container.cjs";
@@ -0,0 +1 @@
1
+ import { Container, ContainerProps } from "./container.mjs";
@@ -0,0 +1,8 @@
1
+ //#region src/components/element-marker.ts
2
+ const elementMarker = Symbol.for("react-email.element");
3
+ const markAsElement = (component) => {
4
+ component[elementMarker] = true;
5
+ };
6
+ //#endregion
7
+ exports.elementMarker = elementMarker;
8
+ exports.markAsElement = markAsElement;
@@ -0,0 +1,7 @@
1
+ //#region src/components/element-marker.ts
2
+ const elementMarker = Symbol.for("react-email.element");
3
+ const markAsElement = (component) => {
4
+ component[elementMarker] = true;
5
+ };
6
+ //#endregion
7
+ export { elementMarker, markAsElement };
@@ -0,0 +1,22 @@
1
+ require("../../_virtual/_rolldown/runtime.cjs");
2
+ let react_jsx_runtime = require("react/jsx-runtime");
3
+ //#region src/components/font/font.tsx
4
+ /** The component MUST be place inside the <head> tag */
5
+ const Font = ({ fontFamily, fallbackFontFamily, webFont, fontStyle = "normal", fontWeight = 400 }) => {
6
+ const src = webFont ? `src: url(${webFont.url}) format('${webFont.format}');` : "";
7
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("style", { dangerouslySetInnerHTML: { __html: `
8
+ @font-face {
9
+ font-family: '${fontFamily}';
10
+ font-style: ${fontStyle};
11
+ font-weight: ${fontWeight};
12
+ mso-font-alt: '${Array.isArray(fallbackFontFamily) ? fallbackFontFamily[0] : fallbackFontFamily}';
13
+ ${src}
14
+ }
15
+
16
+ * {
17
+ font-family: '${fontFamily}', ${Array.isArray(fallbackFontFamily) ? fallbackFontFamily.join(", ") : fallbackFontFamily};
18
+ }
19
+ ` } });
20
+ };
21
+ //#endregion
22
+ exports.Font = Font;
@@ -0,0 +1,26 @@
1
+ import * as React$1 from "react";
2
+
3
+ //#region src/components/font/font.d.ts
4
+ type FallbackFont = 'Arial' | 'Helvetica' | 'Verdana' | 'Georgia' | 'Times New Roman' | 'serif' | 'sans-serif' | 'monospace' | 'cursive' | 'fantasy';
5
+ type FontFormat = 'woff' | 'woff2' | 'truetype' | 'opentype' | 'embedded-opentype' | 'svg';
6
+ type FontWeight = React$1.CSSProperties['fontWeight'];
7
+ type FontStyle = React$1.CSSProperties['fontStyle'];
8
+ interface FontProps {
9
+ /** The font you want to use. NOTE: Do not insert multiple fonts here, use fallbackFontFamily for that */
10
+ fontFamily: string;
11
+ /** An array is possible, but the order of the array is the priority order */
12
+ fallbackFontFamily: FallbackFont | FallbackFont[];
13
+ /** Not all clients support web fonts. For support check: https://www.caniemail.com/features/css-at-font-face/ */
14
+ webFont?: {
15
+ url: string;
16
+ format: FontFormat;
17
+ };
18
+ /** Default: 'normal' */
19
+ fontStyle?: FontStyle;
20
+ /** Default: 400 */
21
+ fontWeight?: FontWeight;
22
+ }
23
+ /** The component MUST be place inside the <head> tag */
24
+ declare const Font: React$1.FC<Readonly<FontProps>>;
25
+ //#endregion
26
+ export { Font, FontProps };
@@ -0,0 +1,26 @@
1
+ import * as React$1 from "react";
2
+
3
+ //#region src/components/font/font.d.ts
4
+ type FallbackFont = 'Arial' | 'Helvetica' | 'Verdana' | 'Georgia' | 'Times New Roman' | 'serif' | 'sans-serif' | 'monospace' | 'cursive' | 'fantasy';
5
+ type FontFormat = 'woff' | 'woff2' | 'truetype' | 'opentype' | 'embedded-opentype' | 'svg';
6
+ type FontWeight = React$1.CSSProperties['fontWeight'];
7
+ type FontStyle = React$1.CSSProperties['fontStyle'];
8
+ interface FontProps {
9
+ /** The font you want to use. NOTE: Do not insert multiple fonts here, use fallbackFontFamily for that */
10
+ fontFamily: string;
11
+ /** An array is possible, but the order of the array is the priority order */
12
+ fallbackFontFamily: FallbackFont | FallbackFont[];
13
+ /** Not all clients support web fonts. For support check: https://www.caniemail.com/features/css-at-font-face/ */
14
+ webFont?: {
15
+ url: string;
16
+ format: FontFormat;
17
+ };
18
+ /** Default: 'normal' */
19
+ fontStyle?: FontStyle;
20
+ /** Default: 400 */
21
+ fontWeight?: FontWeight;
22
+ }
23
+ /** The component MUST be place inside the <head> tag */
24
+ declare const Font: React$1.FC<Readonly<FontProps>>;
25
+ //#endregion
26
+ export { Font, FontProps };
@@ -0,0 +1,21 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ //#region src/components/font/font.tsx
3
+ /** The component MUST be place inside the <head> tag */
4
+ const Font = ({ fontFamily, fallbackFontFamily, webFont, fontStyle = "normal", fontWeight = 400 }) => {
5
+ const src = webFont ? `src: url(${webFont.url}) format('${webFont.format}');` : "";
6
+ return /* @__PURE__ */ jsx("style", { dangerouslySetInnerHTML: { __html: `
7
+ @font-face {
8
+ font-family: '${fontFamily}';
9
+ font-style: ${fontStyle};
10
+ font-weight: ${fontWeight};
11
+ mso-font-alt: '${Array.isArray(fallbackFontFamily) ? fallbackFontFamily[0] : fallbackFontFamily}';
12
+ ${src}
13
+ }
14
+
15
+ * {
16
+ font-family: '${fontFamily}', ${Array.isArray(fallbackFontFamily) ? fallbackFontFamily.join(", ") : fallbackFontFamily};
17
+ }
18
+ ` } });
19
+ };
20
+ //#endregion
21
+ export { Font };
@@ -0,0 +1 @@
1
+ import { Font, FontProps } from "./font.cjs";
@@ -0,0 +1 @@
1
+ import { Font, FontProps } from "./font.mjs";
@@ -0,0 +1,20 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ let react = require("react");
3
+ react = require_runtime.__toESM(react);
4
+ let react_jsx_runtime = require("react/jsx-runtime");
5
+ //#region src/components/head/head.tsx
6
+ const Head = react.forwardRef(({ children, ...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("head", {
7
+ ...props,
8
+ ref,
9
+ children: [
10
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("meta", {
11
+ content: "text/html; charset=UTF-8",
12
+ httpEquiv: "Content-Type"
13
+ }),
14
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("meta", { name: "x-apple-disable-message-reformatting" }),
15
+ children
16
+ ]
17
+ }));
18
+ Head.displayName = "Head";
19
+ //#endregion
20
+ exports.Head = Head;
@@ -0,0 +1,7 @@
1
+ import * as React$1 from "react";
2
+
3
+ //#region src/components/head/head.d.ts
4
+ type HeadProps = Readonly<React$1.ComponentPropsWithoutRef<'head'>>;
5
+ declare const Head: React$1.ForwardRefExoticComponent<Readonly<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLHeadElement>, HTMLHeadElement>, "ref">> & React$1.RefAttributes<HTMLHeadElement>>;
6
+ //#endregion
7
+ export { Head, HeadProps };
@@ -0,0 +1,7 @@
1
+ import * as React$1 from "react";
2
+
3
+ //#region src/components/head/head.d.ts
4
+ type HeadProps = Readonly<React$1.ComponentPropsWithoutRef<'head'>>;
5
+ declare const Head: React$1.ForwardRefExoticComponent<Readonly<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLHeadElement>, HTMLHeadElement>, "ref">> & React$1.RefAttributes<HTMLHeadElement>>;
6
+ //#endregion
7
+ export { Head, HeadProps };
@@ -0,0 +1,18 @@
1
+ import * as React$1 from "react";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ //#region src/components/head/head.tsx
4
+ const Head = React$1.forwardRef(({ children, ...props }, ref) => /* @__PURE__ */ jsxs("head", {
5
+ ...props,
6
+ ref,
7
+ children: [
8
+ /* @__PURE__ */ jsx("meta", {
9
+ content: "text/html; charset=UTF-8",
10
+ httpEquiv: "Content-Type"
11
+ }),
12
+ /* @__PURE__ */ jsx("meta", { name: "x-apple-disable-message-reformatting" }),
13
+ children
14
+ ]
15
+ }));
16
+ Head.displayName = "Head";
17
+ //#endregion
18
+ export { Head };
@@ -0,0 +1 @@
1
+ import { Head, HeadProps } from "./head.cjs";
@@ -0,0 +1 @@
1
+ import { Head, HeadProps } from "./head.mjs";
@@ -0,0 +1,30 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_element_marker = require("../element-marker.cjs");
3
+ const require_spaces = require("./utils/spaces.cjs");
4
+ let react = require("react");
5
+ react = require_runtime.__toESM(react);
6
+ let react_jsx_runtime = require("react/jsx-runtime");
7
+ //#region src/components/heading/heading.tsx
8
+ const Heading = react.forwardRef(({ as: Tag = "h1", children, style, m, mx, my, mt, mr, mb, ml, ...props }, ref) => {
9
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
10
+ ...props,
11
+ ref,
12
+ style: {
13
+ ...require_spaces.withMargin({
14
+ m,
15
+ mx,
16
+ my,
17
+ mt,
18
+ mr,
19
+ mb,
20
+ ml
21
+ }),
22
+ ...style
23
+ },
24
+ children
25
+ });
26
+ });
27
+ Heading.displayName = "Heading";
28
+ require_element_marker.markAsElement(Heading);
29
+ //#endregion
30
+ exports.Heading = Heading;
@@ -0,0 +1,22 @@
1
+ import { As } from "./utils/as.cjs";
2
+ import { Margin } from "./utils/spaces.cjs";
3
+ import * as React$1 from "react";
4
+
5
+ //#region src/components/heading/heading.d.ts
6
+ type HeadingAs = As<'h1', 'h2', 'h3', 'h4', 'h5', 'h6'>;
7
+ type HeadingProps = HeadingAs & Margin;
8
+ declare const Heading: React$1.ForwardRefExoticComponent<(Omit<Readonly<React$1.ClassAttributes<HTMLHeadingElement> & React$1.HTMLAttributes<HTMLHeadingElement> & {
9
+ as?: "h1" | undefined;
10
+ } & Margin>, "ref"> | Omit<Readonly<React$1.ClassAttributes<HTMLHeadingElement> & React$1.HTMLAttributes<HTMLHeadingElement> & {
11
+ as: "h2";
12
+ } & Margin>, "ref"> | Omit<Readonly<React$1.ClassAttributes<HTMLHeadingElement> & React$1.HTMLAttributes<HTMLHeadingElement> & {
13
+ as: "h3";
14
+ } & Margin>, "ref"> | Omit<Readonly<React$1.ClassAttributes<HTMLHeadingElement> & React$1.HTMLAttributes<HTMLHeadingElement> & {
15
+ as: "h4";
16
+ } & Margin>, "ref"> | Omit<Readonly<React$1.ClassAttributes<HTMLHeadingElement> & React$1.HTMLAttributes<HTMLHeadingElement> & {
17
+ as: "h5";
18
+ } & Margin>, "ref"> | Omit<Readonly<React$1.ClassAttributes<HTMLHeadingElement> & React$1.HTMLAttributes<HTMLHeadingElement> & {
19
+ as: "h6";
20
+ } & Margin>, "ref">) & React$1.RefAttributes<HTMLHeadingElement>>;
21
+ //#endregion
22
+ export { Heading, HeadingAs, HeadingProps };
@@ -0,0 +1,22 @@
1
+ import { As } from "./utils/as.mjs";
2
+ import { Margin } from "./utils/spaces.mjs";
3
+ import * as React$1 from "react";
4
+
5
+ //#region src/components/heading/heading.d.ts
6
+ type HeadingAs = As<'h1', 'h2', 'h3', 'h4', 'h5', 'h6'>;
7
+ type HeadingProps = HeadingAs & Margin;
8
+ declare const Heading: React$1.ForwardRefExoticComponent<(Omit<Readonly<React$1.ClassAttributes<HTMLHeadingElement> & React$1.HTMLAttributes<HTMLHeadingElement> & {
9
+ as?: "h1" | undefined;
10
+ } & Margin>, "ref"> | Omit<Readonly<React$1.ClassAttributes<HTMLHeadingElement> & React$1.HTMLAttributes<HTMLHeadingElement> & {
11
+ as: "h2";
12
+ } & Margin>, "ref"> | Omit<Readonly<React$1.ClassAttributes<HTMLHeadingElement> & React$1.HTMLAttributes<HTMLHeadingElement> & {
13
+ as: "h3";
14
+ } & Margin>, "ref"> | Omit<Readonly<React$1.ClassAttributes<HTMLHeadingElement> & React$1.HTMLAttributes<HTMLHeadingElement> & {
15
+ as: "h4";
16
+ } & Margin>, "ref"> | Omit<Readonly<React$1.ClassAttributes<HTMLHeadingElement> & React$1.HTMLAttributes<HTMLHeadingElement> & {
17
+ as: "h5";
18
+ } & Margin>, "ref"> | Omit<Readonly<React$1.ClassAttributes<HTMLHeadingElement> & React$1.HTMLAttributes<HTMLHeadingElement> & {
19
+ as: "h6";
20
+ } & Margin>, "ref">) & React$1.RefAttributes<HTMLHeadingElement>>;
21
+ //#endregion
22
+ export { Heading, HeadingAs, HeadingProps };
@@ -0,0 +1,28 @@
1
+ import { markAsElement } from "../element-marker.mjs";
2
+ import { withMargin } from "./utils/spaces.mjs";
3
+ import * as React$1 from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/components/heading/heading.tsx
6
+ const Heading = React$1.forwardRef(({ as: Tag = "h1", children, style, m, mx, my, mt, mr, mb, ml, ...props }, ref) => {
7
+ return /* @__PURE__ */ jsx(Tag, {
8
+ ...props,
9
+ ref,
10
+ style: {
11
+ ...withMargin({
12
+ m,
13
+ mx,
14
+ my,
15
+ mt,
16
+ mr,
17
+ mb,
18
+ ml
19
+ }),
20
+ ...style
21
+ },
22
+ children
23
+ });
24
+ });
25
+ Heading.displayName = "Heading";
26
+ markAsElement(Heading);
27
+ //#endregion
28
+ export { Heading };
@@ -0,0 +1 @@
1
+ import { Heading, HeadingAs, HeadingProps } from "./heading.cjs";
@@ -0,0 +1 @@
1
+ import { Heading, HeadingAs, HeadingProps } from "./heading.mjs";
@@ -0,0 +1,16 @@
1
+ //#region src/components/heading/utils/as.d.ts
2
+ type As<DefaultTag extends React.ElementType, T1 extends React.ElementType, T2 extends React.ElementType = T1, T3 extends React.ElementType = T1, T4 extends React.ElementType = T1, T5 extends React.ElementType = T1> = (React.ComponentPropsWithRef<DefaultTag> & {
3
+ as?: DefaultTag;
4
+ }) | (React.ComponentPropsWithRef<T1> & {
5
+ as: T1;
6
+ }) | (React.ComponentPropsWithRef<T2> & {
7
+ as: T2;
8
+ }) | (React.ComponentPropsWithRef<T3> & {
9
+ as: T3;
10
+ }) | (React.ComponentPropsWithRef<T4> & {
11
+ as: T4;
12
+ }) | (React.ComponentPropsWithRef<T5> & {
13
+ as: T5;
14
+ });
15
+ //#endregion
16
+ export { As };
@@ -0,0 +1,16 @@
1
+ //#region src/components/heading/utils/as.d.ts
2
+ type As<DefaultTag extends React.ElementType, T1 extends React.ElementType, T2 extends React.ElementType = T1, T3 extends React.ElementType = T1, T4 extends React.ElementType = T1, T5 extends React.ElementType = T1> = (React.ComponentPropsWithRef<DefaultTag> & {
3
+ as?: DefaultTag;
4
+ }) | (React.ComponentPropsWithRef<T1> & {
5
+ as: T1;
6
+ }) | (React.ComponentPropsWithRef<T2> & {
7
+ as: T2;
8
+ }) | (React.ComponentPropsWithRef<T3> & {
9
+ as: T3;
10
+ }) | (React.ComponentPropsWithRef<T4> & {
11
+ as: T4;
12
+ }) | (React.ComponentPropsWithRef<T5> & {
13
+ as: T5;
14
+ });
15
+ //#endregion
16
+ export { As };