@maizzle/framework 6.0.0-9 → 6.0.0-rc.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 (614) hide show
  1. package/bin/maizzle.mjs +10 -0
  2. package/dist/build.d.mts +19 -0
  3. package/dist/build.d.mts.map +1 -0
  4. package/dist/build.mjs +138 -0
  5. package/dist/build.mjs.map +1 -0
  6. package/dist/components/Button.vue +141 -0
  7. package/dist/components/Divider.vue +105 -0
  8. package/dist/components/NoWidows.vue +123 -0
  9. package/dist/components/NotOutlook.vue +17 -0
  10. package/dist/components/Outlook.vue +74 -0
  11. package/dist/components/Spacer.vue +36 -0
  12. package/dist/components/Vml.vue +89 -0
  13. package/dist/components/WithUrl.vue +190 -0
  14. package/dist/components/utils.d.mts +5 -0
  15. package/dist/components/utils.d.mts.map +1 -0
  16. package/dist/components/utils.mjs +9 -0
  17. package/dist/components/utils.mjs.map +1 -0
  18. package/dist/components/utils.ts +6 -0
  19. package/dist/composables/defineConfig.d.mts +14 -0
  20. package/dist/composables/defineConfig.d.mts.map +1 -0
  21. package/dist/composables/defineConfig.mjs +34 -0
  22. package/dist/composables/defineConfig.mjs.map +1 -0
  23. package/dist/composables/renderContext.d.mts +19 -0
  24. package/dist/composables/renderContext.d.mts.map +1 -0
  25. package/dist/composables/renderContext.mjs +6 -0
  26. package/dist/composables/renderContext.mjs.map +1 -0
  27. package/dist/composables/useConfig.d.mts +9 -0
  28. package/dist/composables/useConfig.d.mts.map +1 -0
  29. package/dist/composables/useConfig.mjs +13 -0
  30. package/dist/composables/useConfig.mjs.map +1 -0
  31. package/dist/composables/useDoctype.d.mts +13 -0
  32. package/dist/composables/useDoctype.d.mts.map +1 -0
  33. package/dist/composables/useDoctype.mjs +20 -0
  34. package/dist/composables/useDoctype.mjs.map +1 -0
  35. package/dist/composables/useEvent.d.mts +17 -0
  36. package/dist/composables/useEvent.d.mts.map +1 -0
  37. package/dist/composables/useEvent.mjs +25 -0
  38. package/dist/composables/useEvent.mjs.map +1 -0
  39. package/dist/composables/usePlaintext.d.mts +19 -0
  40. package/dist/composables/usePlaintext.d.mts.map +1 -0
  41. package/dist/composables/usePlaintext.mjs +22 -0
  42. package/dist/composables/usePlaintext.mjs.map +1 -0
  43. package/dist/config/defaults.d.mts +6 -0
  44. package/dist/config/defaults.d.mts.map +1 -0
  45. package/dist/config/defaults.mjs +28 -0
  46. package/dist/config/defaults.mjs.map +1 -0
  47. package/dist/config/index.d.mts +15 -0
  48. package/dist/config/index.d.mts.map +1 -0
  49. package/dist/config/index.mjs +64 -0
  50. package/dist/config/index.mjs.map +1 -0
  51. package/dist/events/index.d.mts +91 -0
  52. package/dist/events/index.d.mts.map +1 -0
  53. package/dist/events/index.mjs +110 -0
  54. package/dist/events/index.mjs.map +1 -0
  55. package/dist/index.d.mts +29 -0
  56. package/dist/index.mjs +29 -0
  57. package/dist/plaintext.d.mts +5 -0
  58. package/dist/plaintext.d.mts.map +1 -0
  59. package/dist/plaintext.mjs +15 -0
  60. package/dist/plaintext.mjs.map +1 -0
  61. package/dist/plugin.d.mts +17 -0
  62. package/dist/plugin.d.mts.map +1 -0
  63. package/dist/plugin.mjs +41 -0
  64. package/dist/plugin.mjs.map +1 -0
  65. package/dist/plugins/postcss/mergeMediaQueries.d.mts +18 -0
  66. package/dist/plugins/postcss/mergeMediaQueries.d.mts.map +1 -0
  67. package/dist/plugins/postcss/mergeMediaQueries.mjs +22 -0
  68. package/dist/plugins/postcss/mergeMediaQueries.mjs.map +1 -0
  69. package/dist/plugins/postcss/pruneVars.d.mts +8 -0
  70. package/dist/plugins/postcss/pruneVars.d.mts.map +1 -0
  71. package/dist/plugins/postcss/pruneVars.mjs +49 -0
  72. package/dist/plugins/postcss/pruneVars.mjs.map +1 -0
  73. package/dist/plugins/postcss/removeDeclarations.d.mts +12 -0
  74. package/dist/plugins/postcss/removeDeclarations.d.mts.map +1 -0
  75. package/dist/plugins/postcss/removeDeclarations.mjs +45 -0
  76. package/dist/plugins/postcss/removeDeclarations.mjs.map +1 -0
  77. package/dist/plugins/postcss/tailwindCleanup.d.mts +18 -0
  78. package/dist/plugins/postcss/tailwindCleanup.d.mts.map +1 -0
  79. package/dist/plugins/postcss/tailwindCleanup.mjs +35 -0
  80. package/dist/plugins/postcss/tailwindCleanup.mjs.map +1 -0
  81. package/dist/render/createRenderer.d.mts +36 -0
  82. package/dist/render/createRenderer.d.mts.map +1 -0
  83. package/dist/render/createRenderer.mjs +150 -0
  84. package/dist/render/createRenderer.mjs.map +1 -0
  85. package/dist/render/index.d.mts +26 -0
  86. package/dist/render/index.d.mts.map +1 -0
  87. package/dist/render/index.mjs +43 -0
  88. package/dist/render/index.mjs.map +1 -0
  89. package/dist/serve.d.mts +25 -0
  90. package/dist/serve.d.mts.map +1 -0
  91. package/dist/serve.mjs +404 -0
  92. package/dist/serve.mjs.map +1 -0
  93. package/dist/server/compatibility.d.mts +6 -0
  94. package/dist/server/compatibility.d.mts.map +1 -0
  95. package/dist/server/compatibility.mjs +83 -0
  96. package/dist/server/compatibility.mjs.map +1 -0
  97. package/dist/server/linter.d.mts +6 -0
  98. package/dist/server/linter.d.mts.map +1 -0
  99. package/dist/server/linter.mjs +200 -0
  100. package/dist/server/linter.mjs.map +1 -0
  101. package/dist/server/ui/App.vue +360 -0
  102. package/dist/server/ui/components/ui/button/Button.vue +31 -0
  103. package/dist/server/ui/components/ui/button/index.ts +38 -0
  104. package/dist/server/ui/components/ui/command/Command.vue +87 -0
  105. package/dist/server/ui/components/ui/command/CommandDialog.vue +31 -0
  106. package/dist/server/ui/components/ui/command/CommandEmpty.vue +27 -0
  107. package/dist/server/ui/components/ui/command/CommandGroup.vue +45 -0
  108. package/dist/server/ui/components/ui/command/CommandInput.vue +39 -0
  109. package/dist/server/ui/components/ui/command/CommandItem.vue +76 -0
  110. package/dist/server/ui/components/ui/command/CommandList.vue +25 -0
  111. package/dist/server/ui/components/ui/command/CommandSeparator.vue +21 -0
  112. package/dist/server/ui/components/ui/command/CommandShortcut.vue +17 -0
  113. package/dist/server/ui/components/ui/command/index.ts +25 -0
  114. package/dist/server/ui/components/ui/dialog/Dialog.vue +19 -0
  115. package/dist/server/ui/components/ui/dialog/DialogClose.vue +15 -0
  116. package/dist/server/ui/components/ui/dialog/DialogContent.vue +53 -0
  117. package/dist/server/ui/components/ui/dialog/DialogDescription.vue +23 -0
  118. package/dist/server/ui/components/ui/dialog/DialogFooter.vue +27 -0
  119. package/dist/server/ui/components/ui/dialog/DialogHeader.vue +17 -0
  120. package/dist/server/ui/components/ui/dialog/DialogOverlay.vue +21 -0
  121. package/dist/server/ui/components/ui/dialog/DialogScrollContent.vue +59 -0
  122. package/dist/server/ui/components/ui/dialog/DialogTitle.vue +23 -0
  123. package/dist/server/ui/components/ui/dialog/DialogTrigger.vue +15 -0
  124. package/dist/server/ui/components/ui/dialog/index.ts +10 -0
  125. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenu.vue +19 -0
  126. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  127. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  128. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  129. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  130. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  131. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  132. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  133. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  134. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  135. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  136. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  137. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  138. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  139. package/dist/server/ui/components/ui/dropdown-menu/index.ts +16 -0
  140. package/dist/server/ui/components/ui/empty/Empty.vue +20 -0
  141. package/dist/server/ui/components/ui/empty/EmptyContent.vue +20 -0
  142. package/dist/server/ui/components/ui/empty/EmptyDescription.vue +20 -0
  143. package/dist/server/ui/components/ui/empty/EmptyHeader.vue +20 -0
  144. package/dist/server/ui/components/ui/empty/EmptyMedia.vue +21 -0
  145. package/dist/server/ui/components/ui/empty/EmptyTitle.vue +17 -0
  146. package/dist/server/ui/components/ui/empty/index.ts +26 -0
  147. package/dist/server/ui/components/ui/input/Input.vue +33 -0
  148. package/dist/server/ui/components/ui/input/index.ts +1 -0
  149. package/dist/server/ui/components/ui/kbd/Kbd.vue +20 -0
  150. package/dist/server/ui/components/ui/kbd/KbdGroup.vue +17 -0
  151. package/dist/server/ui/components/ui/kbd/index.ts +2 -0
  152. package/dist/server/ui/components/ui/resizable/ResizableHandle.vue +30 -0
  153. package/dist/server/ui/components/ui/resizable/ResizablePanel.vue +21 -0
  154. package/dist/server/ui/components/ui/resizable/ResizablePanelGroup.vue +25 -0
  155. package/dist/server/ui/components/ui/resizable/index.ts +3 -0
  156. package/dist/server/ui/components/ui/scroll-area/ScrollArea.vue +33 -0
  157. package/dist/server/ui/components/ui/scroll-area/ScrollBar.vue +32 -0
  158. package/dist/server/ui/components/ui/scroll-area/index.ts +2 -0
  159. package/dist/server/ui/components/ui/separator/Separator.vue +29 -0
  160. package/dist/server/ui/components/ui/separator/index.ts +1 -0
  161. package/dist/server/ui/components/ui/sheet/Sheet.vue +19 -0
  162. package/dist/server/ui/components/ui/sheet/SheetClose.vue +15 -0
  163. package/dist/server/ui/components/ui/sheet/SheetContent.vue +62 -0
  164. package/dist/server/ui/components/ui/sheet/SheetDescription.vue +21 -0
  165. package/dist/server/ui/components/ui/sheet/SheetFooter.vue +16 -0
  166. package/dist/server/ui/components/ui/sheet/SheetHeader.vue +15 -0
  167. package/dist/server/ui/components/ui/sheet/SheetOverlay.vue +21 -0
  168. package/dist/server/ui/components/ui/sheet/SheetTitle.vue +21 -0
  169. package/dist/server/ui/components/ui/sheet/SheetTrigger.vue +15 -0
  170. package/dist/server/ui/components/ui/sheet/index.ts +8 -0
  171. package/dist/server/ui/components/ui/sidebar/Sidebar.vue +96 -0
  172. package/dist/server/ui/components/ui/sidebar/SidebarContent.vue +18 -0
  173. package/dist/server/ui/components/ui/sidebar/SidebarFooter.vue +18 -0
  174. package/dist/server/ui/components/ui/sidebar/SidebarGroup.vue +18 -0
  175. package/dist/server/ui/components/ui/sidebar/SidebarGroupAction.vue +27 -0
  176. package/dist/server/ui/components/ui/sidebar/SidebarGroupContent.vue +18 -0
  177. package/dist/server/ui/components/ui/sidebar/SidebarGroupLabel.vue +25 -0
  178. package/dist/server/ui/components/ui/sidebar/SidebarHeader.vue +18 -0
  179. package/dist/server/ui/components/ui/sidebar/SidebarInput.vue +31 -0
  180. package/dist/server/ui/components/ui/sidebar/SidebarInset.vue +21 -0
  181. package/dist/server/ui/components/ui/sidebar/SidebarMenu.vue +18 -0
  182. package/dist/server/ui/components/ui/sidebar/SidebarMenuAction.vue +35 -0
  183. package/dist/server/ui/components/ui/sidebar/SidebarMenuBadge.vue +26 -0
  184. package/dist/server/ui/components/ui/sidebar/SidebarMenuButton.vue +48 -0
  185. package/dist/server/ui/components/ui/sidebar/SidebarMenuButtonChild.vue +36 -0
  186. package/dist/server/ui/components/ui/sidebar/SidebarMenuItem.vue +18 -0
  187. package/dist/server/ui/components/ui/sidebar/SidebarMenuSkeleton.vue +35 -0
  188. package/dist/server/ui/components/ui/sidebar/SidebarMenuSub.vue +22 -0
  189. package/dist/server/ui/components/ui/sidebar/SidebarMenuSubButton.vue +36 -0
  190. package/dist/server/ui/components/ui/sidebar/SidebarMenuSubItem.vue +18 -0
  191. package/dist/server/ui/components/ui/sidebar/SidebarProvider.vue +82 -0
  192. package/dist/server/ui/components/ui/sidebar/SidebarRail.vue +33 -0
  193. package/dist/server/ui/components/ui/sidebar/SidebarSeparator.vue +19 -0
  194. package/dist/server/ui/components/ui/sidebar/SidebarTrigger.vue +28 -0
  195. package/dist/server/ui/components/ui/sidebar/index.ts +60 -0
  196. package/dist/server/ui/components/ui/sidebar/utils.ts +19 -0
  197. package/dist/server/ui/components/ui/skeleton/Skeleton.vue +17 -0
  198. package/dist/server/ui/components/ui/skeleton/index.ts +1 -0
  199. package/dist/server/ui/components/ui/tabs/Tabs.vue +24 -0
  200. package/dist/server/ui/components/ui/tabs/TabsContent.vue +21 -0
  201. package/dist/server/ui/components/ui/tabs/TabsList.vue +24 -0
  202. package/dist/server/ui/components/ui/tabs/TabsTrigger.vue +26 -0
  203. package/dist/server/ui/components/ui/tabs/index.ts +4 -0
  204. package/dist/server/ui/components/ui/toggle/Toggle.vue +35 -0
  205. package/dist/server/ui/components/ui/toggle/index.ts +28 -0
  206. package/dist/server/ui/components/ui/toggle-group/ToggleGroup.vue +49 -0
  207. package/dist/server/ui/components/ui/toggle-group/ToggleGroupItem.vue +46 -0
  208. package/dist/server/ui/components/ui/toggle-group/index.ts +2 -0
  209. package/dist/server/ui/components/ui/tooltip/Tooltip.vue +19 -0
  210. package/dist/server/ui/components/ui/tooltip/TooltipContent.vue +34 -0
  211. package/dist/server/ui/components/ui/tooltip/TooltipProvider.vue +14 -0
  212. package/dist/server/ui/components/ui/tooltip/TooltipTrigger.vue +15 -0
  213. package/dist/server/ui/components/ui/tooltip/index.ts +4 -0
  214. package/dist/server/ui/favicon.svg +1 -0
  215. package/dist/server/ui/index.html +13 -0
  216. package/dist/server/ui/lib/utils.ts +7 -0
  217. package/dist/server/ui/logo-gradient.svg +1 -0
  218. package/dist/server/ui/logo.svg +1 -0
  219. package/dist/server/ui/main.css +129 -0
  220. package/dist/server/ui/main.ts +16 -0
  221. package/dist/server/ui/mark-gradient.svg +1 -0
  222. package/dist/server/ui/mark.svg +1 -0
  223. package/dist/server/ui/pages/Home.vue +39 -0
  224. package/dist/server/ui/pages/Preview.vue +609 -0
  225. package/dist/server/ui/stripes.svg +174 -0
  226. package/dist/transformers/addAttributes.d.mts +32 -0
  227. package/dist/transformers/addAttributes.d.mts.map +1 -0
  228. package/dist/transformers/addAttributes.mjs +101 -0
  229. package/dist/transformers/addAttributes.mjs.map +1 -0
  230. package/dist/transformers/attributeToStyle.d.mts +25 -0
  231. package/dist/transformers/attributeToStyle.d.mts.map +1 -0
  232. package/dist/transformers/attributeToStyle.mjs +80 -0
  233. package/dist/transformers/attributeToStyle.mjs.map +1 -0
  234. package/dist/transformers/base.d.mts +8 -0
  235. package/dist/transformers/base.d.mts.map +1 -0
  236. package/dist/transformers/base.mjs +160 -0
  237. package/dist/transformers/base.mjs.map +1 -0
  238. package/dist/transformers/entities.d.mts +8 -0
  239. package/dist/transformers/entities.d.mts.map +1 -0
  240. package/dist/transformers/entities.mjs +38 -0
  241. package/dist/transformers/entities.mjs.map +1 -0
  242. package/dist/transformers/format.d.mts +15 -0
  243. package/dist/transformers/format.d.mts.map +1 -0
  244. package/dist/transformers/format.mjs +26 -0
  245. package/dist/transformers/format.mjs.map +1 -0
  246. package/dist/transformers/index.d.mts +35 -0
  247. package/dist/transformers/index.d.mts.map +1 -0
  248. package/dist/transformers/index.mjs +73 -0
  249. package/dist/transformers/index.mjs.map +1 -0
  250. package/dist/transformers/inlineCSS.d.mts +30 -0
  251. package/dist/transformers/inlineCSS.d.mts.map +1 -0
  252. package/dist/transformers/inlineCSS.mjs +79 -0
  253. package/dist/transformers/inlineCSS.mjs.map +1 -0
  254. package/dist/transformers/inlineLink.d.mts +14 -0
  255. package/dist/transformers/inlineLink.d.mts.map +1 -0
  256. package/dist/transformers/inlineLink.mjs +76 -0
  257. package/dist/transformers/inlineLink.mjs.map +1 -0
  258. package/dist/transformers/minify.d.mts +17 -0
  259. package/dist/transformers/minify.d.mts.map +1 -0
  260. package/dist/transformers/minify.mjs +24 -0
  261. package/dist/transformers/minify.mjs.map +1 -0
  262. package/dist/transformers/purgeCSS.d.mts +23 -0
  263. package/dist/transformers/purgeCSS.d.mts.map +1 -0
  264. package/dist/transformers/purgeCSS.mjs +66 -0
  265. package/dist/transformers/purgeCSS.mjs.map +1 -0
  266. package/dist/transformers/removeAttributes.d.mts +31 -0
  267. package/dist/transformers/removeAttributes.d.mts.map +1 -0
  268. package/dist/transformers/removeAttributes.mjs +63 -0
  269. package/dist/transformers/removeAttributes.mjs.map +1 -0
  270. package/dist/transformers/replaceStrings.d.mts +16 -0
  271. package/dist/transformers/replaceStrings.d.mts.map +1 -0
  272. package/dist/transformers/replaceStrings.mjs +19 -0
  273. package/dist/transformers/replaceStrings.mjs.map +1 -0
  274. package/dist/transformers/safeClassNames.d.mts +22 -0
  275. package/dist/transformers/safeClassNames.d.mts.map +1 -0
  276. package/dist/transformers/safeClassNames.mjs +103 -0
  277. package/dist/transformers/safeClassNames.mjs.map +1 -0
  278. package/dist/transformers/shorthandCSS.d.mts +24 -0
  279. package/dist/transformers/shorthandCSS.d.mts.map +1 -0
  280. package/dist/transformers/shorthandCSS.mjs +48 -0
  281. package/dist/transformers/shorthandCSS.mjs.map +1 -0
  282. package/dist/transformers/tailwindcss.d.mts +20 -0
  283. package/dist/transformers/tailwindcss.d.mts.map +1 -0
  284. package/dist/transformers/tailwindcss.mjs +136 -0
  285. package/dist/transformers/tailwindcss.mjs.map +1 -0
  286. package/dist/transformers/urlQuery.d.mts +24 -0
  287. package/dist/transformers/urlQuery.d.mts.map +1 -0
  288. package/dist/transformers/urlQuery.mjs +65 -0
  289. package/dist/transformers/urlQuery.mjs.map +1 -0
  290. package/dist/types/config.d.mts +146 -0
  291. package/dist/types/config.d.mts.map +1 -0
  292. package/dist/types/config.mjs +1 -0
  293. package/dist/types/index.d.mts +2 -0
  294. package/dist/types/index.mjs +1 -0
  295. package/dist/utils/ast/index.d.mts +4 -0
  296. package/dist/utils/ast/index.mjs +5 -0
  297. package/dist/utils/ast/parser.d.mts +7 -0
  298. package/dist/utils/ast/parser.d.mts.map +1 -0
  299. package/dist/utils/ast/parser.mjs +15 -0
  300. package/dist/utils/ast/parser.mjs.map +1 -0
  301. package/dist/utils/ast/serializer.d.mts +7 -0
  302. package/dist/utils/ast/serializer.d.mts.map +1 -0
  303. package/dist/utils/ast/serializer.mjs +13 -0
  304. package/dist/utils/ast/serializer.mjs.map +1 -0
  305. package/dist/utils/ast/walker.d.mts +7 -0
  306. package/dist/utils/ast/walker.d.mts.map +1 -0
  307. package/dist/utils/ast/walker.mjs +12 -0
  308. package/dist/utils/ast/walker.mjs.map +1 -0
  309. package/dist/utils/url.d.mts +8 -0
  310. package/dist/utils/url.d.mts.map +1 -0
  311. package/dist/utils/url.mjs +32 -0
  312. package/dist/utils/url.mjs.map +1 -0
  313. package/node_modules/@clack/core/CHANGELOG.md +257 -0
  314. package/node_modules/@clack/core/LICENSE +9 -0
  315. package/node_modules/@clack/core/README.md +22 -0
  316. package/node_modules/@clack/core/dist/index.cjs +15 -0
  317. package/node_modules/@clack/core/dist/index.cjs.map +1 -0
  318. package/node_modules/@clack/core/dist/index.d.cts +211 -0
  319. package/node_modules/@clack/core/dist/index.d.mts +211 -0
  320. package/node_modules/@clack/core/dist/index.d.ts +211 -0
  321. package/node_modules/@clack/core/dist/index.mjs +15 -0
  322. package/node_modules/@clack/core/dist/index.mjs.map +1 -0
  323. package/node_modules/@clack/core/package.json +62 -0
  324. package/node_modules/@clack/prompts/CHANGELOG.md +412 -0
  325. package/node_modules/@clack/prompts/LICENSE +9 -0
  326. package/node_modules/@clack/prompts/README.md +207 -0
  327. package/node_modules/@clack/prompts/dist/index.cjs +87 -0
  328. package/node_modules/@clack/prompts/dist/index.cjs.map +1 -0
  329. package/node_modules/@clack/prompts/dist/index.d.cts +165 -0
  330. package/node_modules/@clack/prompts/dist/index.d.mts +165 -0
  331. package/node_modules/@clack/prompts/dist/index.d.ts +165 -0
  332. package/node_modules/@clack/prompts/dist/index.mjs +87 -0
  333. package/node_modules/@clack/prompts/dist/index.mjs.map +1 -0
  334. package/node_modules/@clack/prompts/package.json +61 -0
  335. package/node_modules/@maizzle/cli/LICENSE +21 -0
  336. package/node_modules/@maizzle/cli/README.md +58 -0
  337. package/node_modules/@maizzle/cli/dist/commands/make/component.d.mts +4 -0
  338. package/node_modules/@maizzle/cli/dist/commands/make/component.mjs +31 -0
  339. package/node_modules/@maizzle/cli/dist/commands/make/config.d.mts +4 -0
  340. package/node_modules/@maizzle/cli/dist/commands/make/config.mjs +21 -0
  341. package/node_modules/@maizzle/cli/dist/commands/make/layout.d.mts +4 -0
  342. package/node_modules/@maizzle/cli/dist/commands/make/layout.mjs +31 -0
  343. package/node_modules/@maizzle/cli/dist/commands/make/scaffold.d.mts +5 -0
  344. package/node_modules/@maizzle/cli/dist/commands/make/scaffold.mjs +28 -0
  345. package/node_modules/@maizzle/cli/dist/commands/make/stubs/component.vue +9 -0
  346. package/node_modules/@maizzle/cli/dist/commands/make/stubs/config.ts +9 -0
  347. package/node_modules/@maizzle/cli/dist/commands/make/stubs/layout.vue +39 -0
  348. package/node_modules/@maizzle/cli/dist/commands/make/stubs/template.vue +8 -0
  349. package/node_modules/@maizzle/cli/dist/commands/make/template.d.mts +4 -0
  350. package/node_modules/@maizzle/cli/dist/commands/make/template.mjs +31 -0
  351. package/node_modules/@maizzle/cli/dist/index.d.mts +8 -0
  352. package/node_modules/@maizzle/cli/dist/index.mjs +42 -0
  353. package/node_modules/@maizzle/cli/package.json +59 -0
  354. package/node_modules/citty/LICENSE +36 -0
  355. package/node_modules/citty/README.md +134 -0
  356. package/node_modules/citty/dist/index.cjs +475 -0
  357. package/node_modules/citty/dist/index.d.cts +80 -0
  358. package/node_modules/citty/dist/index.d.mts +80 -0
  359. package/node_modules/citty/dist/index.d.ts +80 -0
  360. package/node_modules/citty/dist/index.mjs +463 -0
  361. package/node_modules/citty/package.json +49 -0
  362. package/node_modules/commander/LICENSE +22 -0
  363. package/node_modules/commander/Readme.md +1149 -0
  364. package/node_modules/commander/esm.mjs +16 -0
  365. package/node_modules/commander/index.js +24 -0
  366. package/node_modules/commander/lib/argument.js +149 -0
  367. package/node_modules/commander/lib/command.js +2662 -0
  368. package/node_modules/commander/lib/error.js +39 -0
  369. package/node_modules/commander/lib/help.js +709 -0
  370. package/node_modules/commander/lib/option.js +367 -0
  371. package/node_modules/commander/lib/suggestSimilar.js +101 -0
  372. package/node_modules/commander/package-support.json +16 -0
  373. package/node_modules/commander/package.json +82 -0
  374. package/node_modules/commander/typings/esm.d.mts +3 -0
  375. package/node_modules/commander/typings/index.d.ts +1045 -0
  376. package/node_modules/consola/LICENSE +47 -0
  377. package/node_modules/consola/README.md +352 -0
  378. package/node_modules/consola/basic.d.ts +1 -0
  379. package/node_modules/consola/browser.d.ts +1 -0
  380. package/node_modules/consola/core.d.ts +1 -0
  381. package/node_modules/consola/dist/basic.cjs +32 -0
  382. package/node_modules/consola/dist/basic.d.cts +23 -0
  383. package/node_modules/consola/dist/basic.d.mts +21 -0
  384. package/node_modules/consola/dist/basic.d.ts +23 -0
  385. package/node_modules/consola/dist/basic.mjs +24 -0
  386. package/node_modules/consola/dist/browser.cjs +84 -0
  387. package/node_modules/consola/dist/browser.d.cts +23 -0
  388. package/node_modules/consola/dist/browser.d.mts +21 -0
  389. package/node_modules/consola/dist/browser.d.ts +23 -0
  390. package/node_modules/consola/dist/browser.mjs +76 -0
  391. package/node_modules/consola/dist/chunks/prompt.cjs +288 -0
  392. package/node_modules/consola/dist/chunks/prompt.mjs +280 -0
  393. package/node_modules/consola/dist/core.cjs +517 -0
  394. package/node_modules/consola/dist/core.d.cts +459 -0
  395. package/node_modules/consola/dist/core.d.mts +459 -0
  396. package/node_modules/consola/dist/core.d.ts +459 -0
  397. package/node_modules/consola/dist/core.mjs +512 -0
  398. package/node_modules/consola/dist/index.cjs +663 -0
  399. package/node_modules/consola/dist/index.d.cts +24 -0
  400. package/node_modules/consola/dist/index.d.mts +22 -0
  401. package/node_modules/consola/dist/index.d.ts +24 -0
  402. package/node_modules/consola/dist/index.mjs +651 -0
  403. package/node_modules/consola/dist/shared/consola.DCGIlDNP.cjs +75 -0
  404. package/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +72 -0
  405. package/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +288 -0
  406. package/node_modules/consola/dist/shared/consola.DwRq1yyg.cjs +312 -0
  407. package/node_modules/consola/dist/utils.cjs +64 -0
  408. package/node_modules/consola/dist/utils.d.cts +286 -0
  409. package/node_modules/consola/dist/utils.d.mts +286 -0
  410. package/node_modules/consola/dist/utils.d.ts +286 -0
  411. package/node_modules/consola/dist/utils.mjs +54 -0
  412. package/node_modules/consola/lib/index.cjs +10 -0
  413. package/node_modules/consola/package.json +136 -0
  414. package/node_modules/consola/utils.d.ts +1 -0
  415. package/node_modules/create-maizzle/README.md +86 -0
  416. package/node_modules/create-maizzle/bin/create-maizzle.mjs +4 -0
  417. package/node_modules/create-maizzle/node_modules/@clack/core/CHANGELOG.md +340 -0
  418. package/node_modules/create-maizzle/node_modules/@clack/core/LICENSE +9 -0
  419. package/node_modules/create-maizzle/node_modules/@clack/core/README.md +22 -0
  420. package/node_modules/create-maizzle/node_modules/@clack/core/dist/index.d.mts +349 -0
  421. package/node_modules/create-maizzle/node_modules/@clack/core/dist/index.mjs +11 -0
  422. package/node_modules/create-maizzle/node_modules/@clack/core/dist/index.mjs.map +1 -0
  423. package/node_modules/create-maizzle/node_modules/@clack/core/package.json +60 -0
  424. package/node_modules/create-maizzle/node_modules/@clack/prompts/CHANGELOG.md +576 -0
  425. package/node_modules/create-maizzle/node_modules/@clack/prompts/LICENSE +9 -0
  426. package/node_modules/create-maizzle/node_modules/@clack/prompts/README.md +270 -0
  427. package/node_modules/create-maizzle/node_modules/@clack/prompts/dist/index.d.mts +391 -0
  428. package/node_modules/create-maizzle/node_modules/@clack/prompts/dist/index.mjs +137 -0
  429. package/node_modules/create-maizzle/node_modules/@clack/prompts/dist/index.mjs.map +1 -0
  430. package/node_modules/create-maizzle/node_modules/@clack/prompts/package.json +65 -0
  431. package/node_modules/create-maizzle/package.json +47 -0
  432. package/node_modules/create-maizzle/src/index.js +242 -0
  433. package/node_modules/defu/LICENSE +21 -0
  434. package/node_modules/defu/README.md +171 -0
  435. package/node_modules/defu/dist/defu.cjs +77 -0
  436. package/node_modules/defu/dist/defu.d.cts +31 -0
  437. package/node_modules/defu/dist/defu.d.mts +29 -0
  438. package/node_modules/defu/dist/defu.d.ts +31 -0
  439. package/node_modules/defu/dist/defu.mjs +69 -0
  440. package/node_modules/defu/lib/defu.cjs +10 -0
  441. package/node_modules/defu/lib/defu.d.cts +12 -0
  442. package/node_modules/defu/package.json +48 -0
  443. package/node_modules/fast-string-truncated-width/dist/index.d.ts +4 -0
  444. package/node_modules/fast-string-truncated-width/dist/index.js +171 -0
  445. package/node_modules/fast-string-truncated-width/dist/types.d.ts +22 -0
  446. package/node_modules/fast-string-truncated-width/dist/types.js +2 -0
  447. package/node_modules/fast-string-truncated-width/dist/utils.d.ts +4 -0
  448. package/node_modules/fast-string-truncated-width/dist/utils.js +15 -0
  449. package/node_modules/fast-string-truncated-width/license +21 -0
  450. package/node_modules/fast-string-truncated-width/package.json +35 -0
  451. package/node_modules/fast-string-truncated-width/readme.md +60 -0
  452. package/node_modules/fast-string-width/dist/index.d.ts +4 -0
  453. package/node_modules/fast-string-width/dist/index.js +14 -0
  454. package/node_modules/fast-string-width/license +21 -0
  455. package/node_modules/fast-string-width/package.json +34 -0
  456. package/node_modules/fast-string-width/readme.md +45 -0
  457. package/node_modules/fast-wrap-ansi/LICENSE +23 -0
  458. package/node_modules/fast-wrap-ansi/README.md +26 -0
  459. package/node_modules/fast-wrap-ansi/lib/main.d.ts +6 -0
  460. package/node_modules/fast-wrap-ansi/lib/main.js +216 -0
  461. package/node_modules/fast-wrap-ansi/lib/main.js.map +1 -0
  462. package/node_modules/fast-wrap-ansi/package.json +51 -0
  463. package/node_modules/giget/LICENSE +184 -0
  464. package/node_modules/giget/README.md +248 -0
  465. package/node_modules/giget/dist/cli.mjs +112 -0
  466. package/node_modules/giget/dist/index.d.mts +49 -0
  467. package/node_modules/giget/dist/index.mjs +22 -0
  468. package/node_modules/giget/dist/shared/giget.OCaTp9b-.mjs +468 -0
  469. package/node_modules/giget/package.json +62 -0
  470. package/node_modules/node-fetch-native/LICENSE +114 -0
  471. package/node_modules/node-fetch-native/README.md +225 -0
  472. package/node_modules/node-fetch-native/dist/chunks/multipart-parser.cjs +2 -0
  473. package/node_modules/node-fetch-native/dist/chunks/multipart-parser.mjs +2 -0
  474. package/node_modules/node-fetch-native/dist/index.cjs +1 -0
  475. package/node_modules/node-fetch-native/dist/index.mjs +1 -0
  476. package/node_modules/node-fetch-native/dist/native.cjs +1 -0
  477. package/node_modules/node-fetch-native/dist/native.mjs +1 -0
  478. package/node_modules/node-fetch-native/dist/node.cjs +19 -0
  479. package/node_modules/node-fetch-native/dist/node.mjs +19 -0
  480. package/node_modules/node-fetch-native/dist/polyfill.cjs +1 -0
  481. package/node_modules/node-fetch-native/dist/polyfill.mjs +1 -0
  482. package/node_modules/node-fetch-native/dist/proxy-stub.cjs +1 -0
  483. package/node_modules/node-fetch-native/dist/proxy-stub.mjs +1 -0
  484. package/node_modules/node-fetch-native/dist/proxy.cjs +58 -0
  485. package/node_modules/node-fetch-native/dist/shared/node-fetch-native.DfbY2q-x.mjs +1 -0
  486. package/node_modules/node-fetch-native/dist/shared/node-fetch-native.DhEqb06g.cjs +1 -0
  487. package/node_modules/node-fetch-native/index.d.ts +1 -0
  488. package/node_modules/node-fetch-native/lib/empty.cjs +0 -0
  489. package/node_modules/node-fetch-native/lib/empty.mjs +0 -0
  490. package/node_modules/node-fetch-native/lib/index.cjs +11 -0
  491. package/node_modules/node-fetch-native/lib/index.d.cts +10 -0
  492. package/node_modules/node-fetch-native/lib/index.d.mts +10 -0
  493. package/node_modules/node-fetch-native/lib/index.d.ts +10 -0
  494. package/node_modules/node-fetch-native/lib/native.cjs +11 -0
  495. package/node_modules/node-fetch-native/lib/polyfill.d.cts +1 -0
  496. package/node_modules/node-fetch-native/lib/polyfill.d.mts +1 -0
  497. package/node_modules/node-fetch-native/lib/polyfill.d.ts +1 -0
  498. package/node_modules/node-fetch-native/lib/proxy.d.ts +32 -0
  499. package/node_modules/node-fetch-native/node.d.ts +1 -0
  500. package/node_modules/node-fetch-native/package.json +138 -0
  501. package/node_modules/node-fetch-native/polyfill.d.ts +1 -0
  502. package/node_modules/node-fetch-native/proxy.d.ts +1 -0
  503. package/node_modules/nypm/LICENSE +21 -0
  504. package/node_modules/nypm/README.md +152 -0
  505. package/node_modules/nypm/dist/cli.d.mts +1 -0
  506. package/node_modules/nypm/dist/cli.mjs +460 -0
  507. package/node_modules/nypm/dist/index.d.mts +209 -0
  508. package/node_modules/nypm/dist/index.mjs +423 -0
  509. package/node_modules/nypm/node_modules/citty/LICENSE +21 -0
  510. package/node_modules/nypm/node_modules/citty/README.md +231 -0
  511. package/node_modules/nypm/node_modules/citty/dist/THIRD-PARTY-LICENSES.md +33 -0
  512. package/node_modules/nypm/node_modules/citty/dist/_chunks/libs/scule.mjs +70 -0
  513. package/node_modules/nypm/node_modules/citty/dist/index.d.mts +112 -0
  514. package/node_modules/nypm/node_modules/citty/dist/index.mjs +425 -0
  515. package/node_modules/nypm/node_modules/citty/package.json +42 -0
  516. package/node_modules/nypm/package.json +54 -0
  517. package/node_modules/pathe/LICENSE +70 -0
  518. package/node_modules/pathe/README.md +73 -0
  519. package/node_modules/pathe/dist/index.cjs +39 -0
  520. package/node_modules/pathe/dist/index.d.cts +47 -0
  521. package/node_modules/pathe/dist/index.d.mts +47 -0
  522. package/node_modules/pathe/dist/index.d.ts +47 -0
  523. package/node_modules/pathe/dist/index.mjs +19 -0
  524. package/node_modules/pathe/dist/shared/pathe.BSlhyZSM.cjs +266 -0
  525. package/node_modules/pathe/dist/shared/pathe.M-eThtNZ.mjs +249 -0
  526. package/node_modules/pathe/dist/utils.cjs +82 -0
  527. package/node_modules/pathe/dist/utils.d.cts +32 -0
  528. package/node_modules/pathe/dist/utils.d.mts +32 -0
  529. package/node_modules/pathe/dist/utils.d.ts +32 -0
  530. package/node_modules/pathe/dist/utils.mjs +77 -0
  531. package/node_modules/pathe/package.json +61 -0
  532. package/node_modules/pathe/utils.d.ts +1 -0
  533. package/node_modules/picocolors/LICENSE +15 -0
  534. package/node_modules/picocolors/README.md +21 -0
  535. package/node_modules/picocolors/package.json +25 -0
  536. package/node_modules/picocolors/picocolors.browser.js +4 -0
  537. package/node_modules/picocolors/picocolors.d.ts +5 -0
  538. package/node_modules/picocolors/picocolors.js +75 -0
  539. package/node_modules/picocolors/types.d.ts +51 -0
  540. package/node_modules/sisteransi/license +21 -0
  541. package/node_modules/sisteransi/package.json +34 -0
  542. package/node_modules/sisteransi/readme.md +113 -0
  543. package/node_modules/sisteransi/src/index.js +58 -0
  544. package/node_modules/sisteransi/src/sisteransi.d.ts +35 -0
  545. package/node_modules/tinyexec/LICENSE +21 -0
  546. package/node_modules/tinyexec/README.md +269 -0
  547. package/node_modules/tinyexec/dist/LICENSES.txt +83 -0
  548. package/node_modules/tinyexec/dist/main.d.mts +71 -0
  549. package/node_modules/tinyexec/dist/main.mjs +642 -0
  550. package/node_modules/tinyexec/package.json +62 -0
  551. package/package.json +74 -73
  552. package/CHANGELOG.md +0 -770
  553. package/bin/maizzle +0 -5
  554. package/src/commands/build.js +0 -348
  555. package/src/commands/serve.js +0 -3
  556. package/src/generators/plaintext.js +0 -222
  557. package/src/generators/render.js +0 -129
  558. package/src/index.js +0 -49
  559. package/src/posthtml/defaultComponentsConfig.js +0 -19
  560. package/src/posthtml/defaultConfig.js +0 -14
  561. package/src/posthtml/index.js +0 -102
  562. package/src/posthtml/plugins/combineMediaQueries.js +0 -42
  563. package/src/posthtml/plugins/envAttributes.js +0 -32
  564. package/src/posthtml/plugins/envTags.js +0 -33
  565. package/src/posthtml/plugins/expandLinkTag.js +0 -59
  566. package/src/posthtml/plugins/postcss/compileCss.js +0 -125
  567. package/src/posthtml/plugins/removeRawStyleAttributes.js +0 -30
  568. package/src/server/client.js +0 -182
  569. package/src/server/index.js +0 -464
  570. package/src/server/routes/hmr.js +0 -26
  571. package/src/server/routes/index.js +0 -77
  572. package/src/server/views/404.html +0 -59
  573. package/src/server/views/error.html +0 -83
  574. package/src/server/views/index.html +0 -172
  575. package/src/server/websockets.js +0 -27
  576. package/src/transformers/addAttributes.js +0 -29
  577. package/src/transformers/attributeToStyle.js +0 -90
  578. package/src/transformers/baseUrl.js +0 -154
  579. package/src/transformers/core.js +0 -32
  580. package/src/transformers/filters/defaultFilters.js +0 -146
  581. package/src/transformers/filters/index.js +0 -18
  582. package/src/transformers/index.js +0 -259
  583. package/src/transformers/inline.js +0 -306
  584. package/src/transformers/markdown.js +0 -26
  585. package/src/transformers/minify.js +0 -27
  586. package/src/transformers/posthtmlMso.js +0 -14
  587. package/src/transformers/prettify.js +0 -29
  588. package/src/transformers/preventWidows.js +0 -37
  589. package/src/transformers/purge.js +0 -56
  590. package/src/transformers/removeAttributes.js +0 -55
  591. package/src/transformers/replaceStrings.js +0 -37
  592. package/src/transformers/safeClassNames.js +0 -29
  593. package/src/transformers/shorthandCss.js +0 -20
  594. package/src/transformers/sixHex.js +0 -30
  595. package/src/transformers/template.js +0 -26
  596. package/src/transformers/urlParameters.js +0 -20
  597. package/src/transformers/useAttributeSizes.js +0 -63
  598. package/src/utils/getConfigByFilePath.js +0 -143
  599. package/src/utils/node.js +0 -68
  600. package/src/utils/string.js +0 -186
  601. package/types/build.d.ts +0 -166
  602. package/types/config.d.ts +0 -638
  603. package/types/css/combineMediaQueries.d.ts +0 -90
  604. package/types/css/inline.d.ts +0 -218
  605. package/types/css/purge.d.ts +0 -125
  606. package/types/events.d.ts +0 -153
  607. package/types/index.d.ts +0 -232
  608. package/types/markdown.d.ts +0 -33
  609. package/types/minify.d.ts +0 -138
  610. package/types/plaintext.d.ts +0 -56
  611. package/types/posthtml.d.ts +0 -162
  612. package/types/render.d.ts +0 -13
  613. package/types/urlParameters.d.ts +0 -40
  614. package/types/widowWords.d.ts +0 -38
@@ -1,306 +0,0 @@
1
- import juice from 'juice'
2
- import postcss from 'postcss'
3
- import get from 'lodash-es/get.js'
4
- import has from 'lodash-es/has.js'
5
- import * as cheerio from 'cheerio/slim'
6
- import remove from 'lodash-es/remove.js'
7
- import { render } from 'posthtml-render'
8
- import isEmpty from 'lodash-es/isEmpty.js'
9
- import { match } from 'posthtml/lib/api.js'
10
- import safeParser from 'postcss-safe-parser'
11
- import isObject from 'lodash-es/isObject.js'
12
- import { parser as parse } from 'posthtml-parser'
13
- import { useAttributeSizes } from './useAttributeSizes.js'
14
- import { getPosthtmlOptions } from '../posthtml/defaultConfig.js'
15
-
16
- /**
17
- * PostHTML plugin to inline CSS
18
- * @param {*} options `css.inline` object from config
19
- * @returns {Function} PostHTML tree
20
- */
21
- export default (options = {}) => tree => {
22
- return inline(render(tree), options)
23
- }
24
-
25
- /**
26
- * Function to inline CSS styles with Posthtml and Juice.
27
- *
28
- * @param {*} html HTML string to process
29
- * @param {*} options Options for Juice
30
- * @returns {string} HTML with inlined styles
31
- */
32
- export async function inline(html = '', options = {}) {
33
- // Exit early if no HTML is passed
34
- if (typeof html !== 'string' || html === '') {
35
- return html
36
- }
37
-
38
- const removeStyleTags = get(options, 'removeStyleTags', false)
39
- const css = get(options, 'customCSS', false)
40
-
41
- options.removeInlinedSelectors = get(options, 'removeInlinedSelectors', true)
42
- options.preferUnitlessValues = get(options, 'preferUnitlessValues', true)
43
- options.safelist = new Set([
44
- ...get(options, 'safelist', []),
45
- ...[
46
- 'body', // Gmail
47
- 'gmail', // Gmail
48
- 'apple', // Apple Mail
49
- 'ios', // Mail on iOS
50
- 'ox-', // Open-Xchange
51
- 'yahoo', // Yahoo! Mail
52
- 'outlook', // Outlook Mac and Android
53
- '[data-ogs', // Outlook.com
54
- 'bloop_container', // Airmail
55
- 'Singleton', // Apple Mail 10
56
- 'unused', // Notes 8
57
- 'moz-text-html', // Thunderbird
58
- 'mail-detail-content', // Comcast, Libero webmail
59
- 'mail-content', // Notion
60
- 'edo', // Edison (all)
61
- '#msgBody', // Freenet uses #msgBody
62
- 'lang', // Fenced code blocks
63
- 'ShadowHTML', // Superhuman
64
- 'spark', // Spark
65
- 'at-', // Safe class names for container queries
66
- ],
67
- ])
68
-
69
- juice.styleToAttribute = get(options, 'styleToAttribute', {})
70
- juice.applyWidthAttributes = get(options, 'applyWidthAttributes', true)
71
- juice.applyHeightAttributes = get(options, 'applyHeightAttributes', true)
72
- juice.excludedProperties.push(...get(options, 'excludedProperties', []))
73
- juice.widthElements = get(options, 'widthElements', ['img', 'video']).map(i => i.toUpperCase())
74
- juice.heightElements = get(options, 'heightElements', ['img', 'video']).map(i => i.toUpperCase())
75
-
76
- if (isObject(options.codeBlocks) && !isEmpty(options.codeBlocks)) {
77
- Object.entries(options.codeBlocks).forEach(([k, v]) => {
78
- juice.codeBlocks[k] = v
79
- })
80
- }
81
-
82
- /**
83
- * Inline the CSS
84
- *
85
- * If customCSS is passed, inline that CSS specifically
86
- * Otherwise, use Juice's default inlining
87
- */
88
- const tree = parse(html, getPosthtmlOptions())
89
- tree.match = match
90
-
91
- /**
92
- * Add a `data-embed` attribute to style tags that have the `embed`
93
- * attribute, so that Juice can skip them.
94
- */
95
- tree.match({ tag: 'style' }, (node) => {
96
- if (node.attrs && node.attrs.embed !== undefined) {
97
- node.attrs['data-embed'] = true
98
- }
99
-
100
- if (node.attrs && node.attrs['data-embed'] !== undefined) {
101
- node.attrs.embed = true
102
- }
103
-
104
- return node
105
- })
106
-
107
- let inlined_html = css
108
- ? juice.inlineContent(render(tree), css, { removeStyleTags, ...options })
109
- : juice(render(tree), { removeStyleTags, ...options })
110
-
111
- /**
112
- * Prefer attribute sizes
113
- *
114
- * Prefer HTML `width` and `height` attributes over inline CSS.
115
- * Useful for retina images in MSO Outlook, where CSS sizes
116
- * aren't respected and will render the image in its
117
- * natural size.
118
- */
119
- if (options.useAttributeSizes) {
120
- inlined_html = await useAttributeSizes(inlined_html, {
121
- width: juice.widthElements,
122
- height: juice.heightElements,
123
- }, getPosthtmlOptions())
124
- }
125
-
126
- /**
127
- * Remove inlined selectors from the HTML
128
- *
129
- */
130
- const inlined_tree = parse(inlined_html, getPosthtmlOptions())
131
- inlined_tree.match = match
132
-
133
- const preservedAtRules = get(options, 'preservedAtRules', ['media'])
134
- const selectors = new Set()
135
-
136
- inlined_tree.match({ tag: 'style' }, node => {
137
- // If this is an embedded style tag, exit early
138
- if (node.attrs && ('data-embed' in node.attrs || 'embed' in node.attrs)) {
139
- return node
140
- }
141
-
142
- // Parse the CSS
143
- const { root } = postcss()
144
- .process(
145
- Array.isArray(node.content)
146
- ? node.content.join('')
147
- : node.content,
148
- {
149
- from: undefined,
150
- parser: safeParser
151
- }
152
- )
153
-
154
- // Precompile a single regex to match any substring from the preservedClasses set
155
- const combinedPattern = Array.from(options.safelist)
156
- .map(pattern => pattern.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&')) // Escape special regex chars
157
- .join('|') // Combine all patterns into a single regex pattern with 'OR' (|)
158
-
159
- const combinedRegex = new RegExp(combinedPattern)
160
-
161
- // Preserve selectors in predefined at-rules
162
- root.walkAtRules(rule => {
163
- if (preservedAtRules.includes(rule.name)) {
164
- rule.walkRules(rule => {
165
- options.safelist.add(rule.selector)
166
- })
167
- } else {
168
- // Remove the at rule if it's not predefined
169
- rule.remove()
170
- }
171
- })
172
-
173
- // For each rule in the CSS block we're parsing
174
- root.walkRules(rule => {
175
- // Create a set of selectors
176
- const { selector } = rule
177
-
178
- // Add the selector to the set as long as it's not a pseudo selector
179
- if (!/.+[^\\\s]::?\w+/.test(selector)) {
180
- selectors.add({
181
- name: selector,
182
- prop: get(rule.nodes[0], 'prop')
183
- })
184
- }
185
- else {
186
- // Preserve pseudo selectors
187
- options.safelist.add(selector)
188
- }
189
-
190
-
191
- if (options.removeInlinedSelectors) {
192
- // Remove the rule in the <style> tag as long as it's not a preserved class
193
- if (!options.safelist.has(selector) && !combinedRegex.test(selector)) {
194
- rule.remove()
195
- }
196
-
197
- // Update the <style> tag contents
198
- node.content = root.toString()
199
- }
200
- })
201
-
202
- // This is inlined_tree
203
- return node
204
- })
205
-
206
- /**
207
- * CSS optimizations
208
- *
209
- * `preferUnitlessValues` - Replace unit values with `0` where possible
210
- * `removeInlinedSelectors` - Remove inlined selectors from the HTML
211
- */
212
-
213
- const $ = cheerio.load(render(inlined_tree), {
214
- xml: {
215
- decodeEntities: false,
216
- xmlMode: false,
217
- }
218
- })
219
-
220
- // Loop over selectors that we found in the <style> tags
221
- selectors.forEach(({ name, prop }) => {
222
- try {
223
- const elements = $(name).get()
224
- // If the property is excluded from inlining, skip
225
- if (!juice.excludedProperties.includes(prop)) {
226
- // Find the selector in the HTML
227
- elements.forEach((el) => {
228
- // Get a `property|value` list from the inline style attribute
229
- const styleAttr = $(el).attr('style')
230
- // Store the element's inline styles
231
- const inlineStyles = {}
232
-
233
- // `preferUnitlessValues`
234
- if (styleAttr) {
235
- try {
236
- const root = postcss.parse(`* { ${styleAttr} }`)
237
-
238
- root.first.each((decl) => {
239
- const property = decl.prop
240
- let value = decl.value
241
-
242
- if (value && options.preferUnitlessValues) {
243
- value = value.replace(
244
- /\b0(px|rem|em|%|vh|vw|vmin|vmax|in|cm|mm|pt|pc|ex|ch)\b/g,
245
- '0'
246
- )
247
- }
248
-
249
- if (property) {
250
- inlineStyles[property] = value
251
- }
252
- })
253
-
254
- // Update the element's style attribute with the new value
255
- $(el).attr(
256
- 'style',
257
- Object.entries(inlineStyles).map(([property, value]) => `${property}: ${value}`).join('; ')
258
- )
259
- } catch { }
260
- }
261
-
262
- // Get the classes from the element's class attribute
263
- const classes = $(el).attr('class')
264
-
265
- // `removeInlinedSelectors`
266
- if (options.removeInlinedSelectors && classes) {
267
- const classList = classes.split(' ')
268
-
269
- // If the class has been inlined in the style attribute...
270
- if (has(inlineStyles, prop)) {
271
- // Try to remove the classes that have been inlined
272
- if (![...options.safelist].some(item => item.includes(name))) {
273
- remove(classList, classToRemove => name.includes(classToRemove))
274
- }
275
-
276
- // Update the class list on the element with the new classes
277
- if (classList.length > 0) {
278
- $(el).attr('class', classList.join(' '))
279
- } else {
280
- $(el).removeAttr('class')
281
- }
282
- }
283
- }
284
- })
285
- }
286
- } catch { }
287
- })
288
-
289
- const optimized_tree = parse($.html(), getPosthtmlOptions())
290
- optimized_tree.match = match
291
-
292
- /**
293
- * Remove the `embed` attribute from style tags
294
- */
295
- optimized_tree.match({ tag: 'style' }, (node) => {
296
- // If this is an embedded style tag, exit early
297
- if (node.attrs && node.attrs.embed !== undefined) {
298
- delete node.attrs.embed
299
- }
300
-
301
- return node
302
- })
303
-
304
- // Finally, return the inlined html
305
- return render(optimized_tree)
306
- }
@@ -1,26 +0,0 @@
1
- import posthtml from 'posthtml'
2
- import md from 'posthtml-markdownit'
3
-
4
- export async function markdown(input = '', options = {}, posthtmlOptions = {}) {
5
- /**
6
- * If no input is provided, return an empty string.
7
- */
8
- if (!input) {
9
- return ''
10
- }
11
-
12
- /**
13
- * Automatically wrap in <md> tag, unless manual mode is enabled.
14
- *
15
- * With manual mode, user must wrap the input in a <md> tag.
16
- *
17
- * https://github.com/posthtml/posthtml-markdownit#usage
18
- */
19
- input = options.manual ? input : `<md>${input}</md>`
20
-
21
- return posthtml([
22
- md(options)
23
- ])
24
- .process(input, posthtmlOptions)
25
- .then(result => result.html)
26
- }
@@ -1,27 +0,0 @@
1
- import posthtml from 'posthtml'
2
- import { crush } from 'html-crush'
3
- import { defu as merge } from 'defu'
4
- import { render } from 'posthtml-render'
5
- import { parser as parse } from 'posthtml-parser'
6
- import { getPosthtmlOptions } from '../posthtml/defaultConfig.js'
7
-
8
- const posthtmlPlugin = (options = {}) => tree => {
9
- options = merge(options, {
10
- removeLineBreaks: true,
11
- })
12
-
13
- const posthtmlConfig = getPosthtmlOptions()
14
- const { result: html } = crush(render(tree), options)
15
-
16
- return parse(html, posthtmlConfig)
17
- }
18
-
19
- export default posthtmlPlugin
20
-
21
- export async function minify(html = '', options = {}, posthtmlOptions = {}) {
22
- return posthtml([
23
- posthtmlPlugin(options)
24
- ])
25
- .process(html, posthtmlOptions)
26
- .then(result => result.html)
27
- }
@@ -1,14 +0,0 @@
1
- import posthtml from 'posthtml'
2
- import posthtmlMso from 'posthtml-mso'
3
-
4
- export default function posthtmlPlugin(options = {}) {
5
- return posthtmlMso(options)
6
- }
7
-
8
- export async function useMso(html = '', options = {}, posthtmlOptions = {}) {
9
- return posthtml([
10
- posthtmlPlugin(options)
11
- ])
12
- .process(html, posthtmlOptions)
13
- .then(result => result.html)
14
- }
@@ -1,29 +0,0 @@
1
- import pretty from 'pretty'
2
- import posthtml from 'posthtml'
3
- import { defu as merge } from 'defu'
4
- import { render } from 'posthtml-render'
5
- import { parser as parse } from 'posthtml-parser'
6
- import { getPosthtmlOptions } from '../posthtml/defaultConfig.js'
7
-
8
- const posthtmlPlugin = (options = {}) => tree => {
9
- const defaultConfig = {
10
- space_around_combinator: true, // Preserve space around CSS selector combinators
11
- newline_between_rules: false, // Remove empty lines between CSS rules
12
- indent_inner_html: false, // Helps reduce file size
13
- extra_liners: [] // Don't add extra new line before any tag
14
- }
15
-
16
- const config = merge(options, defaultConfig)
17
-
18
- return parse(pretty(render(tree), config), getPosthtmlOptions())
19
- }
20
-
21
- export default posthtmlPlugin
22
-
23
- export async function prettify(html = '', options = {}, posthtmlOptions = {}) {
24
- return posthtml([
25
- posthtmlPlugin(options)
26
- ])
27
- .process(html, posthtmlOptions)
28
- .then(result => result.html)
29
- }
@@ -1,37 +0,0 @@
1
- import posthtml from 'posthtml'
2
- import posthtmlWidows from 'posthtml-widows'
3
- import { defu as merge } from 'defu'
4
-
5
- export default function posthtmlPlugin(options = {}) {
6
- options = merge(options, {
7
- minWords: 3
8
- })
9
-
10
- // Custom ignores
11
- const mappings = [
12
- // MSO comments
13
- {
14
- start: '<!--[',
15
- end: ']>'
16
- },
17
- // <![endif]-->
18
- {
19
- start: '<![',
20
- end: ']--><'
21
- }
22
- ]
23
-
24
- if (Array.isArray(options.ignore)) {
25
- options.ignore = options.ignore.concat(mappings)
26
- }
27
-
28
- return posthtmlWidows(options)
29
- }
30
-
31
- export async function preventWidows(html = '', options = {}, posthtmlOptions = {}) {
32
- return posthtml([
33
- posthtmlPlugin(options)
34
- ])
35
- .process(html, posthtmlOptions)
36
- .then(result => result.html)
37
- }
@@ -1,56 +0,0 @@
1
- import posthtml from 'posthtml'
2
- import { comb } from 'email-comb'
3
- import get from 'lodash-es/get.js'
4
- import { defu as merge } from 'defu'
5
- import { render } from 'posthtml-render'
6
- import { parser as parse } from 'posthtml-parser'
7
- import { getPosthtmlOptions } from '../posthtml/defaultConfig.js'
8
-
9
- const posthtmlPlugin = options => tree => {
10
- const defaultSafelist = [
11
- '*body*', // Gmail
12
- '*gmail*', // Gmail
13
- '*apple*', // Apple Mail
14
- '*ios*', // Mail on iOS
15
- '*ox-*', // Open-Xchange
16
- '*outlook*', // Outlook.com
17
- '[data-ogs*', // Outlook.com
18
- '*bloop_container*', // Airmail
19
- '*Singleton*', // Apple Mail 10
20
- '*unused', // Notes 8
21
- '*moz-text-html*', // Thunderbird
22
- '*mail-detail-content*', // Comcast, Libero webmail
23
- '*mail-content-*', // Notion
24
- '*edo*', // Edison (all)
25
- '#*', // Freenet uses #msgBody
26
- '*lang*', // Fenced code blocks
27
- '*ShadowHTML*', // Superhuman
28
- '*spark*', // Spark
29
- '*at-*', // Safe class names for container queries
30
- ]
31
-
32
- const defaultOptions = {
33
- backend: [
34
- { heads: '{{', tails: '}}' },
35
- { heads: '{%', tails: '%}' },
36
- ],
37
- whitelist: [...defaultSafelist, ...get(options, 'safelist', [])]
38
- }
39
-
40
- options = merge(options, defaultOptions)
41
-
42
- const posthtmlConfig = getPosthtmlOptions()
43
- const { result: html } = comb(render(tree), options)
44
-
45
- return parse(html, posthtmlConfig)
46
- }
47
-
48
- export default posthtmlPlugin
49
-
50
- export async function purge(html = '', pluginOptions = {}, posthtmlOptions = {}) {
51
- return posthtml([
52
- posthtmlPlugin(pluginOptions)
53
- ])
54
- .process(html, posthtmlOptions)
55
- .then(result => result.html)
56
- }
@@ -1,55 +0,0 @@
1
- import posthtml from 'posthtml'
2
- import get from 'lodash-es/get.js'
3
- import { getPosthtmlOptions } from '../posthtml/defaultConfig.js'
4
-
5
- /**
6
- * Remove empty attributes with PostHTML
7
- *
8
- * Condition 1:
9
- * `boolean` is for attributes without ="" (respects `recognizeNoValueAttribute` in PostHTML)
10
- * `''` if the attribute included ="", i.e. style=""
11
- *
12
- * Condition 2: attribute value is a string and matches the one on the node
13
- *
14
- * Condition 3: same as 2, but for regular expressions
15
- */
16
- const posthtmlPlugin = (attributes = [], posthtmlOptions = {}) => tree => {
17
- attributes.push('style', 'class')
18
-
19
- const process = node => {
20
- const normalizedAttrs = attributes.map(attribute => {
21
- return {
22
- name: get(attribute, 'name', typeof attribute === 'string' ? attribute : false),
23
- value: get(attribute, 'value', get(posthtmlOptions, 'recognizeNoValueAttributes', true))
24
- }
25
- })
26
-
27
- if (node.attrs) {
28
- normalizedAttrs.forEach(attr => {
29
- const targetAttrValue = get(node.attrs, attr.name)
30
-
31
- if (
32
- typeof targetAttrValue === 'boolean' || targetAttrValue === '' ||
33
- (typeof attr.value === 'string' && node.attrs[attr.name] === attr.value) ||
34
- (attr.value instanceof RegExp && attr.value.test(node.attrs[attr.name]))
35
- ) {
36
- node.attrs[attr.name] = false
37
- }
38
- })
39
- }
40
-
41
- return node
42
- }
43
-
44
- return tree.walk(process)
45
- }
46
-
47
- export default posthtmlPlugin
48
-
49
- export async function removeAttributes(html = '', attributes = [], posthtmlOptions = {}) {
50
- return posthtml([
51
- posthtmlPlugin(attributes, getPosthtmlOptions(posthtmlOptions))
52
- ])
53
- .process(html, getPosthtmlOptions())
54
- .then(result => result.html)
55
- }
@@ -1,37 +0,0 @@
1
- import posthtml from 'posthtml'
2
- import { render } from 'posthtml-render'
3
- import isEmpty from 'lodash-es/isEmpty.js'
4
- import { parser as parse } from 'posthtml-parser'
5
- import { getPosthtmlOptions } from '../posthtml/defaultConfig.js'
6
-
7
- const posthtmlPlugin = (replacements = {}) => tree => {
8
- if (!isEmpty(replacements)) {
9
- const regexes = Object.entries(replacements).map(([k, v]) => [new RegExp(k, 'gi'), v])
10
- const patterns = new RegExp(Object.keys(replacements).join('|'), 'gi')
11
-
12
- return parse(
13
- render(tree).replace(patterns, matched => {
14
- for (const [regex, replacement] of regexes) {
15
- if (regex.test(matched)) {
16
- return matched.replace(regex, replacement)
17
- }
18
- }
19
-
20
- return matched
21
- }),
22
- getPosthtmlOptions()
23
- )
24
- }
25
-
26
- return tree
27
- }
28
-
29
- export default posthtmlPlugin
30
-
31
- export async function replaceStrings(html = '', replacements = {}, posthtmlOptions = {}) {
32
- return posthtml([
33
- posthtmlPlugin(replacements)
34
- ])
35
- .process(html, posthtmlOptions)
36
- .then(result => result.html)
37
- }
@@ -1,29 +0,0 @@
1
- import posthtml from 'posthtml'
2
- import { defu as merge } from 'defu'
3
- import posthtmlSafeClassNames from 'posthtml-safe-class-names'
4
-
5
- export default function posthtmlPlugin(options = {}) {
6
- // If options is boolean, convert to object
7
- if (typeof options === 'boolean') {
8
- options = {}
9
- }
10
-
11
- // Default options
12
- options = merge({
13
- replacements: {
14
- '{': '{',
15
- '}': '}',
16
- '&': '&',
17
- }
18
- }, options)
19
-
20
- return posthtmlSafeClassNames(options)
21
- }
22
-
23
- export async function safeClassNames(html = '', options = {}, posthtmlOptions = {}) {
24
- return posthtml([
25
- posthtmlPlugin(options)
26
- ])
27
- .process(html, posthtmlOptions)
28
- .then(result => result.html)
29
- }
@@ -1,20 +0,0 @@
1
- import posthtml from 'posthtml'
2
- import posthtmlMergeLonghand from 'posthtml-postcss-merge-longhand'
3
-
4
- export default function posthtmlPlugin(options = {}) {
5
- if (Array.isArray(options.tags)) {
6
- return posthtmlMergeLonghand({
7
- tags: options.tags,
8
- })
9
- }
10
-
11
- return posthtmlMergeLonghand()
12
- }
13
-
14
- export async function shorthandCSS(html = '', options = {}, posthtmlOptions = {}) {
15
- return posthtml([
16
- posthtmlPlugin(options)
17
- ])
18
- .process(html, posthtmlOptions)
19
- .then(result => result.html)
20
- }
@@ -1,30 +0,0 @@
1
- import posthtml from 'posthtml'
2
- import { conv } from 'color-shorthand-hex-to-six-digit'
3
-
4
- const posthtmlPlugin = () => tree => {
5
- const targets = new Set(['bgcolor', 'color'])
6
-
7
- const process = node => {
8
- if (node.attrs) {
9
- Object.entries(node.attrs).forEach(([name, value]) => {
10
- if (targets.has(name) && node.attrs[name]) {
11
- node.attrs[name] = conv(value)
12
- }
13
- })
14
- }
15
-
16
- return node
17
- }
18
-
19
- return tree.walk(process)
20
- }
21
-
22
- export default posthtmlPlugin
23
-
24
- export async function sixHEX(html = '', posthtmlOptions = {}) {
25
- return posthtml([
26
- posthtmlPlugin()
27
- ])
28
- .process(html, posthtmlOptions)
29
- .then(result => result.html)
30
- }