@depup/react-email 5.2.10-depup.1 → 6.9.0-depup.1

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 (404) hide show
  1. package/CHANGELOG.md +313 -0
  2. package/README.md +11 -10
  3. package/changes.json +21 -17
  4. package/dev/CHANGELOG.md +2 -0
  5. package/dev/index.js +1 -1
  6. package/dev/package.json +1 -1
  7. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  8. package/dist/cli/index.mjs +7801 -0
  9. package/dist/components/body/body.cjs +39 -0
  10. package/dist/components/body/body.d.cts +7 -0
  11. package/dist/components/body/body.d.mts +7 -0
  12. package/dist/components/body/body.mjs +37 -0
  13. package/dist/components/body/index.d.cts +1 -0
  14. package/dist/components/body/index.d.mts +1 -0
  15. package/dist/components/body/margin-properties.cjs +30 -0
  16. package/dist/components/body/margin-properties.mjs +29 -0
  17. package/dist/components/button/button.cjs +64 -0
  18. package/dist/components/button/button.d.cts +13 -0
  19. package/dist/components/button/button.d.mts +13 -0
  20. package/dist/components/button/button.mjs +62 -0
  21. package/dist/components/button/index.d.cts +1 -0
  22. package/dist/components/button/index.d.mts +1 -0
  23. package/dist/components/button/utils/parse-padding.cjs +90 -0
  24. package/dist/components/button/utils/parse-padding.mjs +90 -0
  25. package/dist/components/button/utils/px-to-pt.cjs +4 -0
  26. package/dist/components/button/utils/px-to-pt.mjs +4 -0
  27. package/dist/components/code-block/code-block.cjs +79 -0
  28. package/dist/components/code-block/code-block.d.cts +20 -0
  29. package/dist/components/code-block/code-block.d.mts +20 -0
  30. package/dist/components/code-block/code-block.mjs +77 -0
  31. package/dist/components/code-block/index.d.cts +3 -0
  32. package/dist/components/code-block/index.d.mts +3 -0
  33. package/dist/components/code-block/languages-available.d.cts +4 -0
  34. package/dist/components/code-block/languages-available.d.mts +4 -0
  35. package/dist/components/code-block/prism.cjs +14564 -0
  36. package/dist/components/code-block/prism.mjs +14562 -0
  37. package/dist/components/code-block/themes.cjs +2578 -0
  38. package/dist/components/code-block/themes.d.cts +4877 -0
  39. package/dist/components/code-block/themes.d.mts +4877 -0
  40. package/dist/components/code-block/themes.mjs +2541 -0
  41. package/dist/components/code-inline/code-inline.cjs +43 -0
  42. package/dist/components/code-inline/code-inline.d.cts +12 -0
  43. package/dist/components/code-inline/code-inline.d.mts +12 -0
  44. package/dist/components/code-inline/code-inline.mjs +41 -0
  45. package/dist/components/code-inline/index.d.cts +1 -0
  46. package/dist/components/code-inline/index.d.mts +1 -0
  47. package/dist/components/column/column.cjs +19 -0
  48. package/dist/components/column/column.d.cts +7 -0
  49. package/dist/components/column/column.d.mts +7 -0
  50. package/dist/components/column/column.mjs +17 -0
  51. package/dist/components/column/index.d.cts +1 -0
  52. package/dist/components/column/index.d.mts +1 -0
  53. package/dist/components/container/container.cjs +42 -0
  54. package/dist/components/container/container.d.cts +7 -0
  55. package/dist/components/container/container.d.mts +7 -0
  56. package/dist/components/container/container.mjs +40 -0
  57. package/dist/components/container/index.d.cts +1 -0
  58. package/dist/components/container/index.d.mts +1 -0
  59. package/dist/components/element-marker.cjs +8 -0
  60. package/dist/components/element-marker.mjs +7 -0
  61. package/dist/components/font/font.cjs +22 -0
  62. package/dist/components/font/font.d.cts +26 -0
  63. package/dist/components/font/font.d.mts +26 -0
  64. package/dist/components/font/font.mjs +21 -0
  65. package/dist/components/font/index.d.cts +1 -0
  66. package/dist/components/font/index.d.mts +1 -0
  67. package/dist/components/head/head.cjs +20 -0
  68. package/dist/components/head/head.d.cts +7 -0
  69. package/dist/components/head/head.d.mts +7 -0
  70. package/dist/components/head/head.mjs +18 -0
  71. package/dist/components/head/index.d.cts +1 -0
  72. package/dist/components/head/index.d.mts +1 -0
  73. package/dist/components/heading/heading.cjs +30 -0
  74. package/dist/components/heading/heading.d.cts +22 -0
  75. package/dist/components/heading/heading.d.mts +22 -0
  76. package/dist/components/heading/heading.mjs +28 -0
  77. package/dist/components/heading/index.d.cts +1 -0
  78. package/dist/components/heading/index.d.mts +1 -0
  79. package/dist/components/heading/utils/as.d.cts +16 -0
  80. package/dist/components/heading/utils/as.d.mts +16 -0
  81. package/dist/components/heading/utils/spaces.cjs +24 -0
  82. package/dist/components/heading/utils/spaces.d.cts +14 -0
  83. package/dist/components/heading/utils/spaces.d.mts +14 -0
  84. package/dist/components/heading/utils/spaces.mjs +24 -0
  85. package/dist/components/hr/hr.cjs +21 -0
  86. package/dist/components/hr/hr.d.cts +7 -0
  87. package/dist/components/hr/hr.d.mts +7 -0
  88. package/dist/components/hr/hr.mjs +19 -0
  89. package/dist/components/hr/index.d.cts +1 -0
  90. package/dist/components/hr/index.d.mts +1 -0
  91. package/dist/components/html/html.cjs +15 -0
  92. package/dist/components/html/html.d.cts +7 -0
  93. package/dist/components/html/html.d.mts +7 -0
  94. package/dist/components/html/html.mjs +13 -0
  95. package/dist/components/html/index.d.cts +1 -0
  96. package/dist/components/html/index.d.mts +1 -0
  97. package/dist/components/img/img.cjs +25 -0
  98. package/dist/components/img/img.d.cts +7 -0
  99. package/dist/components/img/img.d.mts +7 -0
  100. package/dist/components/img/img.mjs +23 -0
  101. package/dist/components/img/index.d.cts +1 -0
  102. package/dist/components/img/index.d.mts +1 -0
  103. package/dist/components/index.d.cts +24 -0
  104. package/dist/components/index.d.mts +24 -0
  105. package/dist/components/link/index.d.cts +1 -0
  106. package/dist/components/link/index.d.mts +1 -0
  107. package/dist/components/link/link.cjs +21 -0
  108. package/dist/components/link/link.d.cts +7 -0
  109. package/dist/components/link/link.d.mts +7 -0
  110. package/dist/components/link/link.mjs +19 -0
  111. package/dist/components/markdown/index.d.cts +1 -0
  112. package/dist/components/markdown/index.d.mts +1 -0
  113. package/dist/components/markdown/markdown.cjs +101 -0
  114. package/dist/components/markdown/markdown.d.cts +16 -0
  115. package/dist/components/markdown/markdown.d.mts +16 -0
  116. package/dist/components/markdown/markdown.mjs +99 -0
  117. package/dist/components/markdown/styles.cjs +92 -0
  118. package/dist/components/markdown/styles.d.cts +31 -0
  119. package/dist/components/markdown/styles.d.mts +31 -0
  120. package/dist/components/markdown/styles.mjs +92 -0
  121. package/dist/components/markdown/utils/parse-css-in-js-to-inline-css.cjs +60 -0
  122. package/dist/components/markdown/utils/parse-css-in-js-to-inline-css.mjs +60 -0
  123. package/dist/components/preview/index.d.cts +1 -0
  124. package/dist/components/preview/index.d.mts +1 -0
  125. package/dist/components/preview/preview.cjs +34 -0
  126. package/dist/components/preview/preview.d.cts +21 -0
  127. package/dist/components/preview/preview.d.mts +21 -0
  128. package/dist/components/preview/preview.mjs +31 -0
  129. package/dist/components/row/index.d.cts +1 -0
  130. package/dist/components/row/index.d.mts +1 -0
  131. package/dist/components/row/row.cjs +30 -0
  132. package/dist/components/row/row.d.cts +11 -0
  133. package/dist/components/row/row.d.mts +11 -0
  134. package/dist/components/row/row.mjs +28 -0
  135. package/dist/components/section/index.d.cts +1 -0
  136. package/dist/components/section/index.d.mts +1 -0
  137. package/dist/components/section/section.cjs +36 -0
  138. package/dist/components/section/section.d.cts +7 -0
  139. package/dist/components/section/section.d.mts +7 -0
  140. package/dist/components/section/section.mjs +34 -0
  141. package/dist/components/tailwind/hooks/use-suspended-promise.cjs +15 -0
  142. package/dist/components/tailwind/hooks/use-suspended-promise.mjs +15 -0
  143. package/dist/components/tailwind/index.d.cts +4 -0
  144. package/dist/components/tailwind/index.d.mts +4 -0
  145. package/dist/components/tailwind/inline-styles.cjs +11 -0
  146. package/dist/components/tailwind/inline-styles.d.cts +6 -0
  147. package/dist/components/tailwind/inline-styles.d.mts +6 -0
  148. package/dist/components/tailwind/inline-styles.mjs +11 -0
  149. package/dist/components/tailwind/sanitize-stylesheet.cjs +11 -0
  150. package/dist/components/tailwind/sanitize-stylesheet.d.cts +6 -0
  151. package/dist/components/tailwind/sanitize-stylesheet.d.mts +6 -0
  152. package/dist/components/tailwind/sanitize-stylesheet.mjs +11 -0
  153. package/dist/components/tailwind/tailwind.cjs +120 -0
  154. package/dist/components/tailwind/tailwind.d.cts +25 -0
  155. package/dist/components/tailwind/tailwind.d.mts +25 -0
  156. package/dist/components/tailwind/tailwind.mjs +117 -0
  157. package/dist/components/tailwind/utils/compatibility/get-react-property.cjs +10 -0
  158. package/dist/components/tailwind/utils/compatibility/get-react-property.mjs +10 -0
  159. package/dist/components/tailwind/utils/compatibility/sanitize-class-name.cjs +26 -0
  160. package/dist/components/tailwind/utils/compatibility/sanitize-class-name.mjs +26 -0
  161. package/dist/components/tailwind/utils/css/downlevel-for-email-clients.cjs +126 -0
  162. package/dist/components/tailwind/utils/css/downlevel-for-email-clients.mjs +125 -0
  163. package/dist/components/tailwind/utils/css/extract-rules-per-class.cjs +45 -0
  164. package/dist/components/tailwind/utils/css/extract-rules-per-class.mjs +44 -0
  165. package/dist/components/tailwind/utils/css/get-custom-properties.cjs +35 -0
  166. package/dist/components/tailwind/utils/css/get-custom-properties.mjs +34 -0
  167. package/dist/components/tailwind/utils/css/is-part-inlinable.cjs +10 -0
  168. package/dist/components/tailwind/utils/css/is-part-inlinable.mjs +9 -0
  169. package/dist/components/tailwind/utils/css/is-rule-inlinable.cjs +10 -0
  170. package/dist/components/tailwind/utils/css/is-rule-inlinable.mjs +9 -0
  171. package/dist/components/tailwind/utils/css/make-inline-styles-for.cjs +52 -0
  172. package/dist/components/tailwind/utils/css/make-inline-styles-for.mjs +51 -0
  173. package/dist/components/tailwind/utils/css/resolve-all-css-variables.cjs +89 -0
  174. package/dist/components/tailwind/utils/css/resolve-all-css-variables.mjs +88 -0
  175. package/dist/components/tailwind/utils/css/resolve-calc-expressions.cjs +92 -0
  176. package/dist/components/tailwind/utils/css/resolve-calc-expressions.mjs +91 -0
  177. package/dist/components/tailwind/utils/css/sanitize-declarations.cjs +310 -0
  178. package/dist/components/tailwind/utils/css/sanitize-declarations.mjs +309 -0
  179. package/dist/components/tailwind/utils/css/sanitize-non-inlinable-rules.cjs +46 -0
  180. package/dist/components/tailwind/utils/css/sanitize-non-inlinable-rules.mjs +45 -0
  181. package/dist/components/tailwind/utils/css/split-mixed-rule.cjs +41 -0
  182. package/dist/components/tailwind/utils/css/split-mixed-rule.mjs +40 -0
  183. package/dist/components/tailwind/utils/css/strip-empty-tailwind-vars.cjs +52 -0
  184. package/dist/components/tailwind/utils/css/strip-empty-tailwind-vars.mjs +51 -0
  185. package/dist/components/tailwind/utils/css/unwrap-value.cjs +7 -0
  186. package/dist/components/tailwind/utils/css/unwrap-value.mjs +7 -0
  187. package/dist/components/tailwind/utils/react/is-component.cjs +7 -0
  188. package/dist/components/tailwind/utils/react/is-component.mjs +7 -0
  189. package/dist/components/tailwind/utils/react/map-react-tree.cjs +32 -0
  190. package/dist/components/tailwind/utils/react/map-react-tree.mjs +30 -0
  191. package/dist/components/tailwind/utils/tailwindcss/clone-element-with-inlined-styles.cjs +37 -0
  192. package/dist/components/tailwind/utils/tailwindcss/clone-element-with-inlined-styles.mjs +35 -0
  193. package/dist/components/tailwind/utils/tailwindcss/setup-tailwind.cjs +77 -0
  194. package/dist/components/tailwind/utils/tailwindcss/setup-tailwind.d.cts +19 -0
  195. package/dist/components/tailwind/utils/tailwindcss/setup-tailwind.d.mts +19 -0
  196. package/dist/components/tailwind/utils/tailwindcss/setup-tailwind.mjs +76 -0
  197. package/dist/components/tailwind/utils/tailwindcss/tailwind-stylesheets/index.cjs +901 -0
  198. package/dist/components/tailwind/utils/tailwindcss/tailwind-stylesheets/index.mjs +901 -0
  199. package/dist/components/tailwind/utils/tailwindcss/tailwind-stylesheets/preflight.cjs +398 -0
  200. package/dist/components/tailwind/utils/tailwindcss/tailwind-stylesheets/preflight.mjs +398 -0
  201. package/dist/components/tailwind/utils/tailwindcss/tailwind-stylesheets/theme.cjs +467 -0
  202. package/dist/components/tailwind/utils/tailwindcss/tailwind-stylesheets/theme.mjs +467 -0
  203. package/dist/components/tailwind/utils/tailwindcss/tailwind-stylesheets/utilities.cjs +6 -0
  204. package/dist/components/tailwind/utils/tailwindcss/tailwind-stylesheets/utilities.mjs +6 -0
  205. package/dist/components/tailwind/utils/text/from-dash-case-to-camel-case.cjs +6 -0
  206. package/dist/components/tailwind/utils/text/from-dash-case-to-camel-case.mjs +6 -0
  207. package/dist/components/text/index.d.cts +1 -0
  208. package/dist/components/text/index.d.mts +1 -0
  209. package/dist/components/text/text.cjs +43 -0
  210. package/dist/components/text/text.d.cts +7 -0
  211. package/dist/components/text/text.d.mts +7 -0
  212. package/dist/components/text/text.mjs +41 -0
  213. package/dist/components/text/utils/compute-margins.cjs +62 -0
  214. package/dist/components/text/utils/compute-margins.mjs +62 -0
  215. package/dist/index.cjs +95 -0
  216. package/dist/index.d.cts +26 -0
  217. package/dist/index.d.mts +26 -0
  218. package/dist/index.mjs +25 -7326
  219. package/package.json +64 -32
  220. package/src/components/body/__snapshots__/body.spec.tsx.snap +23 -0
  221. package/src/components/body/body.spec.tsx +78 -0
  222. package/src/components/body/body.tsx +62 -0
  223. package/src/components/body/index.ts +1 -0
  224. package/src/components/body/margin-properties.ts +27 -0
  225. package/src/components/button/button.spec.tsx +53 -0
  226. package/src/components/button/button.tsx +114 -0
  227. package/src/components/button/index.ts +1 -0
  228. package/src/components/button/utils/parse-padding.ts +137 -0
  229. package/src/components/button/utils/px-to-pt.ts +4 -0
  230. package/src/components/button/utils/utils.spec.ts +153 -0
  231. package/src/components/code-block/code-block.tsx +136 -0
  232. package/src/components/code-block/index.ts +3 -0
  233. package/src/components/code-block/languages-available.ts +402 -0
  234. package/src/components/code-block/prism.ts +15618 -0
  235. package/src/components/code-block/themes.ts +4929 -0
  236. package/src/components/code-inline/code-inline.tsx +60 -0
  237. package/src/components/code-inline/index.ts +1 -0
  238. package/src/components/column/column.spec.tsx +28 -0
  239. package/src/components/column/column.tsx +17 -0
  240. package/src/components/column/index.ts +1 -0
  241. package/src/components/container/container.spec.tsx +33 -0
  242. package/src/components/container/container.tsx +59 -0
  243. package/src/components/container/index.ts +1 -0
  244. package/src/components/element-marker.ts +5 -0
  245. package/src/components/font/font.spec.tsx +63 -0
  246. package/src/components/font/font.tsx +76 -0
  247. package/src/components/font/index.ts +1 -0
  248. package/src/components/head/head.spec.tsx +34 -0
  249. package/src/components/head/head.tsx +15 -0
  250. package/src/components/head/index.ts +1 -0
  251. package/src/components/heading/heading.spec.tsx +32 -0
  252. package/src/components/heading/heading.tsx +31 -0
  253. package/src/components/heading/index.ts +1 -0
  254. package/src/components/heading/utils/as.ts +26 -0
  255. package/src/components/heading/utils/spaces.ts +64 -0
  256. package/src/components/heading/utils/utils.spec.ts +70 -0
  257. package/src/components/hr/hr.spec.tsx +22 -0
  258. package/src/components/hr/hr.tsx +23 -0
  259. package/src/components/hr/index.ts +1 -0
  260. package/src/components/html/html.spec.tsx +26 -0
  261. package/src/components/html/html.tsx +13 -0
  262. package/src/components/html/index.ts +1 -0
  263. package/src/components/img/img.spec.tsx +30 -0
  264. package/src/components/img/img.tsx +27 -0
  265. package/src/components/img/index.ts +1 -0
  266. package/src/components/index.ts +19 -0
  267. package/src/components/link/index.ts +1 -0
  268. package/src/components/link/link.spec.tsx +37 -0
  269. package/src/components/link/link.tsx +24 -0
  270. package/src/components/markdown/index.ts +1 -0
  271. package/src/components/markdown/markdown.spec.tsx +221 -0
  272. package/src/components/markdown/markdown.tsx +239 -0
  273. package/src/components/markdown/styles.ts +130 -0
  274. package/src/components/markdown/utils/parse-css-in-js-to-inline-css.spec.ts +42 -0
  275. package/src/components/markdown/utils/parse-css-in-js-to-inline-css.ts +73 -0
  276. package/src/components/preview/index.ts +1 -0
  277. package/src/components/preview/preview.spec.tsx +49 -0
  278. package/src/components/preview/preview.tsx +56 -0
  279. package/src/components/row/index.ts +1 -0
  280. package/src/components/row/row.spec.tsx +28 -0
  281. package/src/components/row/row.tsx +33 -0
  282. package/src/components/section/index.ts +1 -0
  283. package/src/components/section/section.spec.tsx +58 -0
  284. package/src/components/section/section.tsx +59 -0
  285. package/src/components/tailwind/e2e/integrations.spec.ts +44 -0
  286. package/src/components/tailwind/e2e/nextjs/README.md +9 -0
  287. package/src/components/tailwind/e2e/nextjs/emails/vercel-invite-user.tsx +151 -0
  288. package/src/components/tailwind/e2e/nextjs/next.config.mjs +6 -0
  289. package/src/components/tailwind/e2e/nextjs/package.json +24 -0
  290. package/src/components/tailwind/e2e/nextjs/src/app/favicon.ico +0 -0
  291. package/src/components/tailwind/e2e/nextjs/src/app/layout.tsx +23 -0
  292. package/src/components/tailwind/e2e/nextjs/src/app/page.tsx +7 -0
  293. package/src/components/tailwind/e2e/nextjs/tsconfig.json +27 -0
  294. package/src/components/tailwind/e2e/vite/README.md +9 -0
  295. package/src/components/tailwind/e2e/vite/emails/vercel-invite-user.tsx +151 -0
  296. package/src/components/tailwind/e2e/vite/index.html +13 -0
  297. package/src/components/tailwind/e2e/vite/package.json +25 -0
  298. package/src/components/tailwind/e2e/vite/public/vite.svg +1 -0
  299. package/src/components/tailwind/e2e/vite/src/App.tsx +10 -0
  300. package/src/components/tailwind/e2e/vite/src/main.tsx +9 -0
  301. package/src/components/tailwind/e2e/vite/src/vite-env.d.ts +1 -0
  302. package/src/components/tailwind/e2e/vite/tsconfig.json +25 -0
  303. package/src/components/tailwind/e2e/vite/tsconfig.node.json +11 -0
  304. package/src/components/tailwind/e2e/vite/vite.config.ts +7 -0
  305. package/src/components/tailwind/hooks/use-suspended-promise.ts +34 -0
  306. package/src/components/tailwind/hooks/use-suspensed-promise.spec.ts +263 -0
  307. package/src/components/tailwind/index.ts +4 -0
  308. package/src/components/tailwind/inline-styles.spec.ts +49 -0
  309. package/src/components/tailwind/inline-styles.ts +21 -0
  310. package/src/components/tailwind/sanitize-stylesheet.ts +10 -0
  311. package/src/components/tailwind/tailwind.spec.tsx +1390 -0
  312. package/src/components/tailwind/tailwind.tsx +178 -0
  313. package/src/components/tailwind/utils/__snapshots__/quick-safe-render-to-string.spec.tsx.snap +3 -0
  314. package/src/components/tailwind/utils/compatibility/escape-class-name.spec.ts +17 -0
  315. package/src/components/tailwind/utils/compatibility/escape-class-name.ts +18 -0
  316. package/src/components/tailwind/utils/compatibility/get-react-property.ts +15 -0
  317. package/src/components/tailwind/utils/compatibility/sanitize-class-name.spec.ts +7 -0
  318. package/src/components/tailwind/utils/compatibility/sanitize-class-name.ts +36 -0
  319. package/src/components/tailwind/utils/compatibility/unescape-class.ts +3 -0
  320. package/src/components/tailwind/utils/css/__snapshots__/extract-rules-matching-classes.spec.ts.snap +23 -0
  321. package/src/components/tailwind/utils/css/__snapshots__/remove-rule-duplicates-from-root.spec.ts.snap +3 -0
  322. package/src/components/tailwind/utils/css/__snapshots__/sanitize-non-inlinable-classes.spec.ts.snap +7 -0
  323. package/src/components/tailwind/utils/css/downlevel-for-email-clients.spec.ts +119 -0
  324. package/src/components/tailwind/utils/css/downlevel-for-email-clients.ts +244 -0
  325. package/src/components/tailwind/utils/css/extract-rules-per-class.spec.ts +232 -0
  326. package/src/components/tailwind/utils/css/extract-rules-per-class.ts +76 -0
  327. package/src/components/tailwind/utils/css/get-custom-properties.ts +49 -0
  328. package/src/components/tailwind/utils/css/is-part-inlinable.ts +15 -0
  329. package/src/components/tailwind/utils/css/is-rule-inlinable.ts +15 -0
  330. package/src/components/tailwind/utils/css/make-inline-styles-for.spec.ts +124 -0
  331. package/src/components/tailwind/utils/css/make-inline-styles-for.ts +73 -0
  332. package/src/components/tailwind/utils/css/resolve-all-css-variables.spec.ts +296 -0
  333. package/src/components/tailwind/utils/css/resolve-all-css-variables.ts +236 -0
  334. package/src/components/tailwind/utils/css/resolve-calc-expressions.spec.ts +36 -0
  335. package/src/components/tailwind/utils/css/resolve-calc-expressions.ts +147 -0
  336. package/src/components/tailwind/utils/css/sanitize-declarations.spec.ts +491 -0
  337. package/src/components/tailwind/utils/css/sanitize-declarations.ts +443 -0
  338. package/src/components/tailwind/utils/css/sanitize-non-inlinable-rules.spec.ts +72 -0
  339. package/src/components/tailwind/utils/css/sanitize-non-inlinable-rules.ts +48 -0
  340. package/src/components/tailwind/utils/css/split-mixed-rule.ts +68 -0
  341. package/src/components/tailwind/utils/css/strip-empty-tailwind-vars.spec.ts +128 -0
  342. package/src/components/tailwind/utils/css/strip-empty-tailwind-vars.ts +70 -0
  343. package/src/components/tailwind/utils/css/unwrap-value.ts +9 -0
  344. package/src/components/tailwind/utils/react/is-component.ts +12 -0
  345. package/src/components/tailwind/utils/react/map-react-tree.spec.tsx +58 -0
  346. package/src/components/tailwind/utils/react/map-react-tree.ts +58 -0
  347. package/src/components/tailwind/utils/tailwindcss/clone-element-with-inlined-styles.ts +61 -0
  348. package/src/components/tailwind/utils/tailwindcss/setup-tailwind.spec.ts +25 -0
  349. package/src/components/tailwind/utils/tailwindcss/setup-tailwind.ts +121 -0
  350. package/src/components/tailwind/utils/tailwindcss/tailwind-stylesheets/index.ts +900 -0
  351. package/src/components/tailwind/utils/tailwindcss/tailwind-stylesheets/preflight.ts +397 -0
  352. package/src/components/tailwind/utils/tailwindcss/tailwind-stylesheets/theme.ts +466 -0
  353. package/src/components/tailwind/utils/tailwindcss/tailwind-stylesheets/utilities.ts +5 -0
  354. package/src/components/tailwind/utils/text/from-dash-case-to-camel-case.ts +3 -0
  355. package/src/components/text/index.ts +1 -0
  356. package/src/components/text/text.spec.tsx +35 -0
  357. package/src/components/text/text.tsx +50 -0
  358. package/src/components/text/utils/compute-margins.spec.ts +67 -0
  359. package/src/components/text/utils/compute-margins.ts +102 -0
  360. package/src/index.ts +2 -110
  361. package/tsconfig.json +9 -4
  362. package/tsdown.config.ts +51 -6
  363. package/vitest.config.ts +1 -0
  364. package/vitest.e2e.config.ts +17 -0
  365. package/src/commands/build.ts +0 -269
  366. package/src/commands/dev.ts +0 -27
  367. package/src/commands/export.ts +0 -204
  368. package/src/commands/resend/reset.ts +0 -8
  369. package/src/commands/resend/setup.ts +0 -29
  370. package/src/commands/start.ts +0 -38
  371. package/src/utils/conf.ts +0 -9
  372. package/src/utils/esbuild/escape-string-for-regex.ts +0 -3
  373. package/src/utils/esbuild/renderring-utilities-exporter.ts +0 -63
  374. package/src/utils/get-emails-directory-metadata.spec.ts +0 -82
  375. package/src/utils/get-emails-directory-metadata.ts +0 -140
  376. package/src/utils/get-preview-server-location.ts +0 -50
  377. package/src/utils/index.ts +0 -2
  378. package/src/utils/packageJson.ts +0 -4
  379. package/src/utils/preview/get-env-variables-for-preview-app.ts +0 -20
  380. package/src/utils/preview/hot-reloading/create-dependency-graph.spec.ts +0 -226
  381. package/src/utils/preview/hot-reloading/create-dependency-graph.ts +0 -343
  382. package/src/utils/preview/hot-reloading/get-imported-modules.spec.ts +0 -151
  383. package/src/utils/preview/hot-reloading/get-imported-modules.ts +0 -49
  384. package/src/utils/preview/hot-reloading/resolve-path-aliases.spec.ts +0 -11
  385. package/src/utils/preview/hot-reloading/resolve-path-aliases.ts +0 -32
  386. package/src/utils/preview/hot-reloading/setup-hot-reloading.ts +0 -121
  387. package/src/utils/preview/hot-reloading/test/dependency-graph/inner/data-to-import.json +0 -1
  388. package/src/utils/preview/hot-reloading/test/dependency-graph/inner/file-a.ts +0 -5
  389. package/src/utils/preview/hot-reloading/test/dependency-graph/inner/file-b.ts +0 -5
  390. package/src/utils/preview/hot-reloading/test/dependency-graph/inner/general-importing-file.ts +0 -9
  391. package/src/utils/preview/hot-reloading/test/dependency-graph/inner/outer-dependency.ts +0 -3
  392. package/src/utils/preview/hot-reloading/test/dependency-graph/inner/path-aliases.ts +0 -1
  393. package/src/utils/preview/hot-reloading/test/dependency-graph/outer.ts +0 -5
  394. package/src/utils/preview/hot-reloading/test/some-file.ts +0 -0
  395. package/src/utils/preview/hot-reloading/test/tsconfig.json +0 -8
  396. package/src/utils/preview/index.ts +0 -2
  397. package/src/utils/preview/serve-static-file.ts +0 -51
  398. package/src/utils/preview/start-dev-server.ts +0 -252
  399. package/src/utils/register-spinner-autostopping.ts +0 -28
  400. package/src/utils/style-text.ts +0 -11
  401. package/src/utils/tree.spec.ts +0 -29
  402. package/src/utils/tree.ts +0 -76
  403. package/src/utils/types/hot-reload-change.ts +0 -6
  404. package/src/utils/types/hot-reload-event.ts +0 -3
@@ -0,0 +1,466 @@
1
+ const css = `
2
+ @theme default {
3
+ --font-sans:
4
+ ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
5
+ 'Noto Color Emoji';
6
+ --font-serif: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
7
+ --font-mono:
8
+ ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
9
+ monospace;
10
+
11
+ --color-red-50: oklch(97.1% 0.013 17.38);
12
+ --color-red-100: oklch(93.6% 0.032 17.717);
13
+ --color-red-200: oklch(88.5% 0.062 18.334);
14
+ --color-red-300: oklch(80.8% 0.114 19.571);
15
+ --color-red-400: oklch(70.4% 0.191 22.216);
16
+ --color-red-500: oklch(63.7% 0.237 25.331);
17
+ --color-red-600: oklch(57.7% 0.245 27.325);
18
+ --color-red-700: oklch(50.5% 0.213 27.518);
19
+ --color-red-800: oklch(44.4% 0.177 26.899);
20
+ --color-red-900: oklch(39.6% 0.141 25.723);
21
+ --color-red-950: oklch(25.8% 0.092 26.042);
22
+
23
+ --color-orange-50: oklch(98% 0.016 73.684);
24
+ --color-orange-100: oklch(95.4% 0.038 75.164);
25
+ --color-orange-200: oklch(90.1% 0.076 70.697);
26
+ --color-orange-300: oklch(83.7% 0.128 66.29);
27
+ --color-orange-400: oklch(75% 0.183 55.934);
28
+ --color-orange-500: oklch(70.5% 0.213 47.604);
29
+ --color-orange-600: oklch(64.6% 0.222 41.116);
30
+ --color-orange-700: oklch(55.3% 0.195 38.402);
31
+ --color-orange-800: oklch(47% 0.157 37.304);
32
+ --color-orange-900: oklch(40.8% 0.123 38.172);
33
+ --color-orange-950: oklch(26.6% 0.079 36.259);
34
+
35
+ --color-amber-50: oklch(98.7% 0.022 95.277);
36
+ --color-amber-100: oklch(96.2% 0.059 95.617);
37
+ --color-amber-200: oklch(92.4% 0.12 95.746);
38
+ --color-amber-300: oklch(87.9% 0.169 91.605);
39
+ --color-amber-400: oklch(82.8% 0.189 84.429);
40
+ --color-amber-500: oklch(76.9% 0.188 70.08);
41
+ --color-amber-600: oklch(66.6% 0.179 58.318);
42
+ --color-amber-700: oklch(55.5% 0.163 48.998);
43
+ --color-amber-800: oklch(47.3% 0.137 46.201);
44
+ --color-amber-900: oklch(41.4% 0.112 45.904);
45
+ --color-amber-950: oklch(27.9% 0.077 45.635);
46
+
47
+ --color-yellow-50: oklch(98.7% 0.026 102.212);
48
+ --color-yellow-100: oklch(97.3% 0.071 103.193);
49
+ --color-yellow-200: oklch(94.5% 0.129 101.54);
50
+ --color-yellow-300: oklch(90.5% 0.182 98.111);
51
+ --color-yellow-400: oklch(85.2% 0.199 91.936);
52
+ --color-yellow-500: oklch(79.5% 0.184 86.047);
53
+ --color-yellow-600: oklch(68.1% 0.162 75.834);
54
+ --color-yellow-700: oklch(55.4% 0.135 66.442);
55
+ --color-yellow-800: oklch(47.6% 0.114 61.907);
56
+ --color-yellow-900: oklch(42.1% 0.095 57.708);
57
+ --color-yellow-950: oklch(28.6% 0.066 53.813);
58
+
59
+ --color-lime-50: oklch(98.6% 0.031 120.757);
60
+ --color-lime-100: oklch(96.7% 0.067 122.328);
61
+ --color-lime-200: oklch(93.8% 0.127 124.321);
62
+ --color-lime-300: oklch(89.7% 0.196 126.665);
63
+ --color-lime-400: oklch(84.1% 0.238 128.85);
64
+ --color-lime-500: oklch(76.8% 0.233 130.85);
65
+ --color-lime-600: oklch(64.8% 0.2 131.684);
66
+ --color-lime-700: oklch(53.2% 0.157 131.589);
67
+ --color-lime-800: oklch(45.3% 0.124 130.933);
68
+ --color-lime-900: oklch(40.5% 0.101 131.063);
69
+ --color-lime-950: oklch(27.4% 0.072 132.109);
70
+
71
+ --color-green-50: oklch(98.2% 0.018 155.826);
72
+ --color-green-100: oklch(96.2% 0.044 156.743);
73
+ --color-green-200: oklch(92.5% 0.084 155.995);
74
+ --color-green-300: oklch(87.1% 0.15 154.449);
75
+ --color-green-400: oklch(79.2% 0.209 151.711);
76
+ --color-green-500: oklch(72.3% 0.219 149.579);
77
+ --color-green-600: oklch(62.7% 0.194 149.214);
78
+ --color-green-700: oklch(52.7% 0.154 150.069);
79
+ --color-green-800: oklch(44.8% 0.119 151.328);
80
+ --color-green-900: oklch(39.3% 0.095 152.535);
81
+ --color-green-950: oklch(26.6% 0.065 152.934);
82
+
83
+ --color-emerald-50: oklch(97.9% 0.021 166.113);
84
+ --color-emerald-100: oklch(95% 0.052 163.051);
85
+ --color-emerald-200: oklch(90.5% 0.093 164.15);
86
+ --color-emerald-300: oklch(84.5% 0.143 164.978);
87
+ --color-emerald-400: oklch(76.5% 0.177 163.223);
88
+ --color-emerald-500: oklch(69.6% 0.17 162.48);
89
+ --color-emerald-600: oklch(59.6% 0.145 163.225);
90
+ --color-emerald-700: oklch(50.8% 0.118 165.612);
91
+ --color-emerald-800: oklch(43.2% 0.095 166.913);
92
+ --color-emerald-900: oklch(37.8% 0.077 168.94);
93
+ --color-emerald-950: oklch(26.2% 0.051 172.552);
94
+
95
+ --color-teal-50: oklch(98.4% 0.014 180.72);
96
+ --color-teal-100: oklch(95.3% 0.051 180.801);
97
+ --color-teal-200: oklch(91% 0.096 180.426);
98
+ --color-teal-300: oklch(85.5% 0.138 181.071);
99
+ --color-teal-400: oklch(77.7% 0.152 181.912);
100
+ --color-teal-500: oklch(70.4% 0.14 182.503);
101
+ --color-teal-600: oklch(60% 0.118 184.704);
102
+ --color-teal-700: oklch(51.1% 0.096 186.391);
103
+ --color-teal-800: oklch(43.7% 0.078 188.216);
104
+ --color-teal-900: oklch(38.6% 0.063 188.416);
105
+ --color-teal-950: oklch(27.7% 0.046 192.524);
106
+
107
+ --color-cyan-50: oklch(98.4% 0.019 200.873);
108
+ --color-cyan-100: oklch(95.6% 0.045 203.388);
109
+ --color-cyan-200: oklch(91.7% 0.08 205.041);
110
+ --color-cyan-300: oklch(86.5% 0.127 207.078);
111
+ --color-cyan-400: oklch(78.9% 0.154 211.53);
112
+ --color-cyan-500: oklch(71.5% 0.143 215.221);
113
+ --color-cyan-600: oklch(60.9% 0.126 221.723);
114
+ --color-cyan-700: oklch(52% 0.105 223.128);
115
+ --color-cyan-800: oklch(45% 0.085 224.283);
116
+ --color-cyan-900: oklch(39.8% 0.07 227.392);
117
+ --color-cyan-950: oklch(30.2% 0.056 229.695);
118
+
119
+ --color-sky-50: oklch(97.7% 0.013 236.62);
120
+ --color-sky-100: oklch(95.1% 0.026 236.824);
121
+ --color-sky-200: oklch(90.1% 0.058 230.902);
122
+ --color-sky-300: oklch(82.8% 0.111 230.318);
123
+ --color-sky-400: oklch(74.6% 0.16 232.661);
124
+ --color-sky-500: oklch(68.5% 0.169 237.323);
125
+ --color-sky-600: oklch(58.8% 0.158 241.966);
126
+ --color-sky-700: oklch(50% 0.134 242.749);
127
+ --color-sky-800: oklch(44.3% 0.11 240.79);
128
+ --color-sky-900: oklch(39.1% 0.09 240.876);
129
+ --color-sky-950: oklch(29.3% 0.066 243.157);
130
+
131
+ --color-blue-50: oklch(97% 0.014 254.604);
132
+ --color-blue-100: oklch(93.2% 0.032 255.585);
133
+ --color-blue-200: oklch(88.2% 0.059 254.128);
134
+ --color-blue-300: oklch(80.9% 0.105 251.813);
135
+ --color-blue-400: oklch(70.7% 0.165 254.624);
136
+ --color-blue-500: oklch(62.3% 0.214 259.815);
137
+ --color-blue-600: oklch(54.6% 0.245 262.881);
138
+ --color-blue-700: oklch(48.8% 0.243 264.376);
139
+ --color-blue-800: oklch(42.4% 0.199 265.638);
140
+ --color-blue-900: oklch(37.9% 0.146 265.522);
141
+ --color-blue-950: oklch(28.2% 0.091 267.935);
142
+
143
+ --color-indigo-50: oklch(96.2% 0.018 272.314);
144
+ --color-indigo-100: oklch(93% 0.034 272.788);
145
+ --color-indigo-200: oklch(87% 0.065 274.039);
146
+ --color-indigo-300: oklch(78.5% 0.115 274.713);
147
+ --color-indigo-400: oklch(67.3% 0.182 276.935);
148
+ --color-indigo-500: oklch(58.5% 0.233 277.117);
149
+ --color-indigo-600: oklch(51.1% 0.262 276.966);
150
+ --color-indigo-700: oklch(45.7% 0.24 277.023);
151
+ --color-indigo-800: oklch(39.8% 0.195 277.366);
152
+ --color-indigo-900: oklch(35.9% 0.144 278.697);
153
+ --color-indigo-950: oklch(25.7% 0.09 281.288);
154
+
155
+ --color-violet-50: oklch(96.9% 0.016 293.756);
156
+ --color-violet-100: oklch(94.3% 0.029 294.588);
157
+ --color-violet-200: oklch(89.4% 0.057 293.283);
158
+ --color-violet-300: oklch(81.1% 0.111 293.571);
159
+ --color-violet-400: oklch(70.2% 0.183 293.541);
160
+ --color-violet-500: oklch(60.6% 0.25 292.717);
161
+ --color-violet-600: oklch(54.1% 0.281 293.009);
162
+ --color-violet-700: oklch(49.1% 0.27 292.581);
163
+ --color-violet-800: oklch(43.2% 0.232 292.759);
164
+ --color-violet-900: oklch(38% 0.189 293.745);
165
+ --color-violet-950: oklch(28.3% 0.141 291.089);
166
+
167
+ --color-purple-50: oklch(97.7% 0.014 308.299);
168
+ --color-purple-100: oklch(94.6% 0.033 307.174);
169
+ --color-purple-200: oklch(90.2% 0.063 306.703);
170
+ --color-purple-300: oklch(82.7% 0.119 306.383);
171
+ --color-purple-400: oklch(71.4% 0.203 305.504);
172
+ --color-purple-500: oklch(62.7% 0.265 303.9);
173
+ --color-purple-600: oklch(55.8% 0.288 302.321);
174
+ --color-purple-700: oklch(49.6% 0.265 301.924);
175
+ --color-purple-800: oklch(43.8% 0.218 303.724);
176
+ --color-purple-900: oklch(38.1% 0.176 304.987);
177
+ --color-purple-950: oklch(29.1% 0.149 302.717);
178
+
179
+ --color-fuchsia-50: oklch(97.7% 0.017 320.058);
180
+ --color-fuchsia-100: oklch(95.2% 0.037 318.852);
181
+ --color-fuchsia-200: oklch(90.3% 0.076 319.62);
182
+ --color-fuchsia-300: oklch(83.3% 0.145 321.434);
183
+ --color-fuchsia-400: oklch(74% 0.238 322.16);
184
+ --color-fuchsia-500: oklch(66.7% 0.295 322.15);
185
+ --color-fuchsia-600: oklch(59.1% 0.293 322.896);
186
+ --color-fuchsia-700: oklch(51.8% 0.253 323.949);
187
+ --color-fuchsia-800: oklch(45.2% 0.211 324.591);
188
+ --color-fuchsia-900: oklch(40.1% 0.17 325.612);
189
+ --color-fuchsia-950: oklch(29.3% 0.136 325.661);
190
+
191
+ --color-pink-50: oklch(97.1% 0.014 343.198);
192
+ --color-pink-100: oklch(94.8% 0.028 342.258);
193
+ --color-pink-200: oklch(89.9% 0.061 343.231);
194
+ --color-pink-300: oklch(82.3% 0.12 346.018);
195
+ --color-pink-400: oklch(71.8% 0.202 349.761);
196
+ --color-pink-500: oklch(65.6% 0.241 354.308);
197
+ --color-pink-600: oklch(59.2% 0.249 0.584);
198
+ --color-pink-700: oklch(52.5% 0.223 3.958);
199
+ --color-pink-800: oklch(45.9% 0.187 3.815);
200
+ --color-pink-900: oklch(40.8% 0.153 2.432);
201
+ --color-pink-950: oklch(28.4% 0.109 3.907);
202
+
203
+ --color-rose-50: oklch(96.9% 0.015 12.422);
204
+ --color-rose-100: oklch(94.1% 0.03 12.58);
205
+ --color-rose-200: oklch(89.2% 0.058 10.001);
206
+ --color-rose-300: oklch(81% 0.117 11.638);
207
+ --color-rose-400: oklch(71.2% 0.194 13.428);
208
+ --color-rose-500: oklch(64.5% 0.246 16.439);
209
+ --color-rose-600: oklch(58.6% 0.253 17.585);
210
+ --color-rose-700: oklch(51.4% 0.222 16.935);
211
+ --color-rose-800: oklch(45.5% 0.188 13.697);
212
+ --color-rose-900: oklch(41% 0.159 10.272);
213
+ --color-rose-950: oklch(27.1% 0.105 12.094);
214
+
215
+ --color-slate-50: oklch(98.4% 0.003 247.858);
216
+ --color-slate-100: oklch(96.8% 0.007 247.896);
217
+ --color-slate-200: oklch(92.9% 0.013 255.508);
218
+ --color-slate-300: oklch(86.9% 0.022 252.894);
219
+ --color-slate-400: oklch(70.4% 0.04 256.788);
220
+ --color-slate-500: oklch(55.4% 0.046 257.417);
221
+ --color-slate-600: oklch(44.6% 0.043 257.281);
222
+ --color-slate-700: oklch(37.2% 0.044 257.287);
223
+ --color-slate-800: oklch(27.9% 0.041 260.031);
224
+ --color-slate-900: oklch(20.8% 0.042 265.755);
225
+ --color-slate-950: oklch(12.9% 0.042 264.695);
226
+
227
+ --color-gray-50: oklch(98.5% 0.002 247.839);
228
+ --color-gray-100: oklch(96.7% 0.003 264.542);
229
+ --color-gray-200: oklch(92.8% 0.006 264.531);
230
+ --color-gray-300: oklch(87.2% 0.01 258.338);
231
+ --color-gray-400: oklch(70.7% 0.022 261.325);
232
+ --color-gray-500: oklch(55.1% 0.027 264.364);
233
+ --color-gray-600: oklch(44.6% 0.03 256.802);
234
+ --color-gray-700: oklch(37.3% 0.034 259.733);
235
+ --color-gray-800: oklch(27.8% 0.033 256.848);
236
+ --color-gray-900: oklch(21% 0.034 264.665);
237
+ --color-gray-950: oklch(13% 0.028 261.692);
238
+
239
+ --color-zinc-50: oklch(98.5% 0 0);
240
+ --color-zinc-100: oklch(96.7% 0.001 286.375);
241
+ --color-zinc-200: oklch(92% 0.004 286.32);
242
+ --color-zinc-300: oklch(87.1% 0.006 286.286);
243
+ --color-zinc-400: oklch(70.5% 0.015 286.067);
244
+ --color-zinc-500: oklch(55.2% 0.016 285.938);
245
+ --color-zinc-600: oklch(44.2% 0.017 285.786);
246
+ --color-zinc-700: oklch(37% 0.013 285.805);
247
+ --color-zinc-800: oklch(27.4% 0.006 286.033);
248
+ --color-zinc-900: oklch(21% 0.006 285.885);
249
+ --color-zinc-950: oklch(14.1% 0.005 285.823);
250
+
251
+ --color-neutral-50: oklch(98.5% 0 0);
252
+ --color-neutral-100: oklch(97% 0 0);
253
+ --color-neutral-200: oklch(92.2% 0 0);
254
+ --color-neutral-300: oklch(87% 0 0);
255
+ --color-neutral-400: oklch(70.8% 0 0);
256
+ --color-neutral-500: oklch(55.6% 0 0);
257
+ --color-neutral-600: oklch(43.9% 0 0);
258
+ --color-neutral-700: oklch(37.1% 0 0);
259
+ --color-neutral-800: oklch(26.9% 0 0);
260
+ --color-neutral-900: oklch(20.5% 0 0);
261
+ --color-neutral-950: oklch(14.5% 0 0);
262
+
263
+ --color-stone-50: oklch(98.5% 0.001 106.423);
264
+ --color-stone-100: oklch(97% 0.001 106.424);
265
+ --color-stone-200: oklch(92.3% 0.003 48.717);
266
+ --color-stone-300: oklch(86.9% 0.005 56.366);
267
+ --color-stone-400: oklch(70.9% 0.01 56.259);
268
+ --color-stone-500: oklch(55.3% 0.013 58.071);
269
+ --color-stone-600: oklch(44.4% 0.011 73.639);
270
+ --color-stone-700: oklch(37.4% 0.01 67.558);
271
+ --color-stone-800: oklch(26.8% 0.007 34.298);
272
+ --color-stone-900: oklch(21.6% 0.006 56.043);
273
+ --color-stone-950: oklch(14.7% 0.004 49.25);
274
+
275
+ --color-black: #000;
276
+ --color-white: #fff;
277
+
278
+ --spacing: 0.25rem;
279
+
280
+ --breakpoint-sm: 40rem;
281
+ --breakpoint-md: 48rem;
282
+ --breakpoint-lg: 64rem;
283
+ --breakpoint-xl: 80rem;
284
+ --breakpoint-2xl: 96rem;
285
+
286
+ --container-3xs: 16rem;
287
+ --container-2xs: 18rem;
288
+ --container-xs: 20rem;
289
+ --container-sm: 24rem;
290
+ --container-md: 28rem;
291
+ --container-lg: 32rem;
292
+ --container-xl: 36rem;
293
+ --container-2xl: 42rem;
294
+ --container-3xl: 48rem;
295
+ --container-4xl: 56rem;
296
+ --container-5xl: 64rem;
297
+ --container-6xl: 72rem;
298
+ --container-7xl: 80rem;
299
+
300
+ --text-xs: 0.75rem;
301
+ --text-xs--line-height: calc(1 / 0.75);
302
+ --text-sm: 0.875rem;
303
+ --text-sm--line-height: calc(1.25 / 0.875);
304
+ --text-base: 1rem;
305
+ --text-base--line-height: calc(1.5 / 1);
306
+ --text-lg: 1.125rem;
307
+ --text-lg--line-height: calc(1.75 / 1.125);
308
+ --text-xl: 1.25rem;
309
+ --text-xl--line-height: calc(1.75 / 1.25);
310
+ --text-2xl: 1.5rem;
311
+ --text-2xl--line-height: calc(2 / 1.5);
312
+ --text-3xl: 1.875rem;
313
+ --text-3xl--line-height: calc(2.25 / 1.875);
314
+ --text-4xl: 2.25rem;
315
+ --text-4xl--line-height: calc(2.5 / 2.25);
316
+ --text-5xl: 3rem;
317
+ --text-5xl--line-height: 1;
318
+ --text-6xl: 3.75rem;
319
+ --text-6xl--line-height: 1;
320
+ --text-7xl: 4.5rem;
321
+ --text-7xl--line-height: 1;
322
+ --text-8xl: 6rem;
323
+ --text-8xl--line-height: 1;
324
+ --text-9xl: 8rem;
325
+ --text-9xl--line-height: 1;
326
+
327
+ --font-weight-thin: 100;
328
+ --font-weight-extralight: 200;
329
+ --font-weight-light: 300;
330
+ --font-weight-normal: 400;
331
+ --font-weight-medium: 500;
332
+ --font-weight-semibold: 600;
333
+ --font-weight-bold: 700;
334
+ --font-weight-extrabold: 800;
335
+ --font-weight-black: 900;
336
+
337
+ --tracking-tighter: -0.05em;
338
+ --tracking-tight: -0.025em;
339
+ --tracking-normal: 0em;
340
+ --tracking-wide: 0.025em;
341
+ --tracking-wider: 0.05em;
342
+ --tracking-widest: 0.1em;
343
+
344
+ --leading-tight: 1.25;
345
+ --leading-snug: 1.375;
346
+ --leading-normal: 1.5;
347
+ --leading-relaxed: 1.625;
348
+ --leading-loose: 2;
349
+
350
+ --radius-xs: 0.125rem;
351
+ --radius-sm: 0.25rem;
352
+ --radius-md: 0.375rem;
353
+ --radius-lg: 0.5rem;
354
+ --radius-xl: 0.75rem;
355
+ --radius-2xl: 1rem;
356
+ --radius-3xl: 1.5rem;
357
+ --radius-4xl: 2rem;
358
+
359
+ --shadow-2xs: 0 1px rgb(0 0 0 / 0.05);
360
+ --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
361
+ --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
362
+ --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
363
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
364
+ --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
365
+ --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
366
+
367
+ --inset-shadow-2xs: inset 0 1px rgb(0 0 0 / 0.05);
368
+ --inset-shadow-xs: inset 0 1px 1px rgb(0 0 0 / 0.05);
369
+ --inset-shadow-sm: inset 0 2px 4px rgb(0 0 0 / 0.05);
370
+
371
+ --drop-shadow-xs: 0 1px 1px rgb(0 0 0 / 0.05);
372
+ --drop-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.15);
373
+ --drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12);
374
+ --drop-shadow-lg: 0 4px 4px rgb(0 0 0 / 0.15);
375
+ --drop-shadow-xl: 0 9px 7px rgb(0 0 0 / 0.1);
376
+ --drop-shadow-2xl: 0 25px 25px rgb(0 0 0 / 0.15);
377
+
378
+ --text-shadow-2xs: 0px 1px 0px rgb(0 0 0 / 0.15);
379
+ --text-shadow-xs: 0px 1px 1px rgb(0 0 0 / 0.2);
380
+ --text-shadow-sm:
381
+ 0px 1px 0px rgb(0 0 0 / 0.075), 0px 1px 1px rgb(0 0 0 / 0.075), 0px 2px 2px rgb(0 0 0 / 0.075);
382
+ --text-shadow-md:
383
+ 0px 1px 1px rgb(0 0 0 / 0.1), 0px 1px 2px rgb(0 0 0 / 0.1), 0px 2px 4px rgb(0 0 0 / 0.1);
384
+ --text-shadow-lg:
385
+ 0px 1px 2px rgb(0 0 0 / 0.1), 0px 3px 2px rgb(0 0 0 / 0.1), 0px 4px 8px rgb(0 0 0 / 0.1);
386
+
387
+ --ease-in: cubic-bezier(0.4, 0, 1, 1);
388
+ --ease-out: cubic-bezier(0, 0, 0.2, 1);
389
+ --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
390
+
391
+ --animate-spin: spin 1s linear infinite;
392
+ --animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
393
+ --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
394
+ --animate-bounce: bounce 1s infinite;
395
+
396
+ @keyframes spin {
397
+ to {
398
+ transform: rotate(360deg);
399
+ }
400
+ }
401
+
402
+ @keyframes ping {
403
+ 75%,
404
+ 100% {
405
+ transform: scale(2);
406
+ opacity: 0;
407
+ }
408
+ }
409
+
410
+ @keyframes pulse {
411
+ 50% {
412
+ opacity: 0.5;
413
+ }
414
+ }
415
+
416
+ @keyframes bounce {
417
+ 0%,
418
+ 100% {
419
+ transform: translateY(-25%);
420
+ animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
421
+ }
422
+
423
+ 50% {
424
+ transform: none;
425
+ animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
426
+ }
427
+ }
428
+
429
+ --blur-xs: 4px;
430
+ --blur-sm: 8px;
431
+ --blur-md: 12px;
432
+ --blur-lg: 16px;
433
+ --blur-xl: 24px;
434
+ --blur-2xl: 40px;
435
+ --blur-3xl: 64px;
436
+
437
+ --perspective-dramatic: 100px;
438
+ --perspective-near: 300px;
439
+ --perspective-normal: 500px;
440
+ --perspective-midrange: 800px;
441
+ --perspective-distant: 1200px;
442
+
443
+ --aspect-video: 16 / 9;
444
+
445
+ --default-transition-duration: 150ms;
446
+ --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
447
+ --default-font-family: --theme(--font-sans, initial);
448
+ --default-font-feature-settings: --theme(--font-sans--font-feature-settings, initial);
449
+ --default-font-variation-settings: --theme(--font-sans--font-variation-settings, initial);
450
+ --default-mono-font-family: --theme(--font-mono, initial);
451
+ --default-mono-font-feature-settings: --theme(--font-mono--font-feature-settings, initial);
452
+ --default-mono-font-variation-settings: --theme(--font-mono--font-variation-settings, initial);
453
+ }
454
+
455
+ /* Deprecated */
456
+ @theme default inline reference {
457
+ --blur: 8px;
458
+ --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
459
+ --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
460
+ --drop-shadow: 0 1px 2px rgb(0 0 0 / 0.1), 0 1px 1px rgb(0 0 0 / 0.06);
461
+ --radius: 0.25rem;
462
+ --max-width-prose: 65ch;
463
+ }
464
+ `;
465
+
466
+ export default css;
@@ -0,0 +1,5 @@
1
+ const css = `
2
+ @tailwind utilities;
3
+ `;
4
+
5
+ export default css;
@@ -0,0 +1,3 @@
1
+ export const fromDashCaseToCamelCase = (text: string) => {
2
+ return text.replace(/-(\w|$)/g, (_, p1: string) => p1.toUpperCase());
3
+ };
@@ -0,0 +1 @@
1
+ export * from './text.js';
@@ -0,0 +1,35 @@
1
+ import { render } from '@react-email/render';
2
+ import { Text } from './index.js';
3
+
4
+ describe('<Text> component', () => {
5
+ it('renders children correctly', async () => {
6
+ const testMessage = 'Test message';
7
+ const html = await render(<Text>{testMessage}</Text>);
8
+ expect(html).toMatchInlineSnapshot(
9
+ `"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><!--$--><p style="font-size:14px;line-height:24px;margin-top:16px;margin-bottom:16px">Test message</p><!--/$-->"`,
10
+ );
11
+ });
12
+
13
+ it("gives priority to the user's style", async () => {
14
+ const style = { margin: '12px', marginTop: '0px' };
15
+ const html = await render(<Text style={style} />);
16
+ expect(html).toMatchInlineSnapshot(
17
+ `"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><!--$--><p style="font-size:14px;line-height:24px;margin:12px;margin-top:0px;margin-bottom:12px;margin-left:12px;margin-right:12px"></p><!--/$-->"`,
18
+ );
19
+ });
20
+
21
+ it('passes style and other props correctly', async () => {
22
+ const style = { fontSize: '16px' };
23
+ const html = await render(<Text style={style}>Test</Text>);
24
+ expect(html).toMatchInlineSnapshot(
25
+ `"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><!--$--><p style="font-size:16px;line-height:24px;margin-top:16px;margin-bottom:16px">Test</p><!--/$-->"`,
26
+ );
27
+ });
28
+
29
+ it('renders correctly', async () => {
30
+ const actualOutput = await render(<Text>Lorem ipsum</Text>);
31
+ expect(actualOutput).toMatchInlineSnapshot(
32
+ `"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><!--$--><p style="font-size:14px;line-height:24px;margin-top:16px;margin-bottom:16px">Lorem ipsum</p><!--/$-->"`,
33
+ );
34
+ });
35
+ });
@@ -0,0 +1,50 @@
1
+ import * as React from 'react';
2
+ import { markAsElement } from '../element-marker.js';
3
+ import { computeMargins } from './utils/compute-margins.js';
4
+
5
+ export type TextProps = Readonly<React.ComponentPropsWithoutRef<'p'>>;
6
+
7
+ export const Text = React.forwardRef<HTMLParagraphElement, TextProps>(
8
+ ({ style, ...props }, ref) => {
9
+ /**
10
+ * we do this clunky way of spreading these default margins because
11
+ * if we were to simply spread, the ordering of the margins would be lost
12
+ *
13
+ * ex:
14
+ * ```js
15
+ * { ...{ marginTop: '16px', marginBottom: '16px' }, ...{ marginTop: '24px' } }
16
+ * // would result in
17
+ * { marginTop: '24px', marginBottom: '16px' }
18
+ * // not the expected
19
+ * { marginBottom: '16px', marginTop: '24px' }
20
+ * ```
21
+ */
22
+ const defaultMargins: React.CSSProperties = {};
23
+ if (style?.marginTop === undefined) {
24
+ defaultMargins.marginTop = '16px';
25
+ }
26
+ if (style?.marginBottom === undefined) {
27
+ defaultMargins.marginBottom = '16px';
28
+ }
29
+ const margins = computeMargins({
30
+ ...defaultMargins,
31
+ ...style,
32
+ });
33
+
34
+ return (
35
+ <p
36
+ {...props}
37
+ ref={ref}
38
+ style={{
39
+ fontSize: '14px',
40
+ lineHeight: '24px',
41
+ ...style,
42
+ ...margins,
43
+ }}
44
+ />
45
+ );
46
+ },
47
+ );
48
+
49
+ Text.displayName = 'Text';
50
+ markAsElement(Text);
@@ -0,0 +1,67 @@
1
+ import { computeMargins } from './compute-margins.js';
2
+
3
+ describe('parseMargins()', () => {
4
+ it('works with numeric and text margins', () => {
5
+ expect(computeMargins({ margin: 24 })).toEqual({
6
+ marginTop: 24,
7
+ marginRight: 24,
8
+ marginBottom: 24,
9
+ marginLeft: 24,
10
+ });
11
+
12
+ expect(computeMargins({ margin: '24px' })).toEqual({
13
+ marginTop: '24px',
14
+ marginRight: '24px',
15
+ marginBottom: '24px',
16
+ marginLeft: '24px',
17
+ });
18
+
19
+ expect(computeMargins({ margin: '24px', marginTop: 10 })).toEqual({
20
+ marginTop: 10,
21
+ marginRight: '24px',
22
+ marginBottom: '24px',
23
+ marginLeft: '24px',
24
+ });
25
+ });
26
+
27
+ it('computes the margins according to the order of styles', () => {
28
+ expect(
29
+ computeMargins({
30
+ margin: 0,
31
+ marginBottom: '1rem',
32
+ }),
33
+ ).toEqual({
34
+ marginTop: 0,
35
+ marginRight: 0,
36
+ marginLeft: 0,
37
+ marginBottom: '1rem',
38
+ });
39
+
40
+ expect(
41
+ computeMargins({
42
+ marginBottom: '1rem',
43
+ margin: 0,
44
+ }),
45
+ ).toEqual({
46
+ marginTop: 0,
47
+ marginRight: 0,
48
+ marginLeft: 0,
49
+ marginBottom: 0,
50
+ });
51
+
52
+ expect(
53
+ computeMargins({
54
+ marginTop: '2rem',
55
+ marginLeft: '10px',
56
+ margin: '3em',
57
+ marginRight: '9px',
58
+ marginBottom: '1px',
59
+ }),
60
+ ).toEqual({
61
+ marginTop: '3em',
62
+ marginLeft: '3em',
63
+ marginRight: '9px',
64
+ marginBottom: '1px',
65
+ });
66
+ });
67
+ });