@maizzle/framework 6.2.2 → 6.3.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 (295) hide show
  1. package/dist/build.d.ts +0 -2
  2. package/dist/build.d.ts.map +1 -1
  3. package/dist/build.js +1 -2
  4. package/dist/components/WithUrl.vue +19 -3
  5. package/dist/components/utils.d.ts +0 -2
  6. package/dist/components/utils.d.ts.map +1 -1
  7. package/dist/components/utils.js +1 -2
  8. package/dist/composables/defineConfig.d.ts +0 -2
  9. package/dist/composables/defineConfig.d.ts.map +1 -1
  10. package/dist/composables/defineConfig.js +1 -2
  11. package/dist/composables/definePreviewProps.d.ts +0 -2
  12. package/dist/composables/definePreviewProps.d.ts.map +1 -1
  13. package/dist/composables/definePreviewProps.js +1 -2
  14. package/dist/composables/renderContext.d.ts +0 -2
  15. package/dist/composables/renderContext.d.ts.map +1 -1
  16. package/dist/composables/renderContext.js +1 -2
  17. package/dist/composables/useBaseUrl.d.ts +0 -2
  18. package/dist/composables/useBaseUrl.d.ts.map +1 -1
  19. package/dist/composables/useBaseUrl.js +1 -2
  20. package/dist/composables/useConfig.d.ts +0 -2
  21. package/dist/composables/useConfig.d.ts.map +1 -1
  22. package/dist/composables/useConfig.js +1 -2
  23. package/dist/composables/useCurrentTemplate.d.ts +0 -2
  24. package/dist/composables/useCurrentTemplate.d.ts.map +1 -1
  25. package/dist/composables/useCurrentTemplate.js +1 -2
  26. package/dist/composables/useDoctype.d.ts +0 -2
  27. package/dist/composables/useDoctype.d.ts.map +1 -1
  28. package/dist/composables/useDoctype.js +1 -2
  29. package/dist/composables/useEvent.d.ts +0 -2
  30. package/dist/composables/useEvent.d.ts.map +1 -1
  31. package/dist/composables/useEvent.js +1 -2
  32. package/dist/composables/useFont.d.ts +0 -2
  33. package/dist/composables/useFont.d.ts.map +1 -1
  34. package/dist/composables/useFont.js +1 -2
  35. package/dist/composables/useOutlookFallback.d.ts +0 -2
  36. package/dist/composables/useOutlookFallback.d.ts.map +1 -1
  37. package/dist/composables/useOutlookFallback.js +1 -2
  38. package/dist/composables/useOutputPath.d.ts +0 -2
  39. package/dist/composables/useOutputPath.d.ts.map +1 -1
  40. package/dist/composables/useOutputPath.js +1 -2
  41. package/dist/composables/usePlaintext.d.ts +0 -2
  42. package/dist/composables/usePlaintext.d.ts.map +1 -1
  43. package/dist/composables/usePlaintext.js +1 -2
  44. package/dist/composables/usePreheader.d.ts +0 -2
  45. package/dist/composables/usePreheader.d.ts.map +1 -1
  46. package/dist/composables/usePreheader.js +1 -2
  47. package/dist/composables/useTransformers.d.ts +0 -2
  48. package/dist/composables/useTransformers.d.ts.map +1 -1
  49. package/dist/composables/useTransformers.js +1 -2
  50. package/dist/composables/useUrlQuery.d.ts +0 -2
  51. package/dist/composables/useUrlQuery.d.ts.map +1 -1
  52. package/dist/composables/useUrlQuery.js +1 -2
  53. package/dist/config/defaults.d.ts +0 -2
  54. package/dist/config/defaults.d.ts.map +1 -1
  55. package/dist/config/defaults.js +1 -2
  56. package/dist/config/index.d.ts +0 -2
  57. package/dist/config/index.d.ts.map +1 -1
  58. package/dist/config/index.js +1 -2
  59. package/dist/events/index.d.ts +0 -2
  60. package/dist/events/index.d.ts.map +1 -1
  61. package/dist/events/index.js +1 -2
  62. package/dist/plaintext.d.ts +0 -2
  63. package/dist/plaintext.d.ts.map +1 -1
  64. package/dist/plaintext.js +1 -2
  65. package/dist/plugin.d.ts +0 -2
  66. package/dist/plugin.d.ts.map +1 -1
  67. package/dist/plugin.js +1 -2
  68. package/dist/plugins/postcss/flattenGradients.d.ts +0 -2
  69. package/dist/plugins/postcss/flattenGradients.d.ts.map +1 -1
  70. package/dist/plugins/postcss/flattenGradients.js +1 -2
  71. package/dist/plugins/postcss/mergeMediaQueries.d.ts +0 -2
  72. package/dist/plugins/postcss/mergeMediaQueries.d.ts.map +1 -1
  73. package/dist/plugins/postcss/mergeMediaQueries.js +1 -2
  74. package/dist/plugins/postcss/pruneVars.d.ts +0 -2
  75. package/dist/plugins/postcss/pruneVars.d.ts.map +1 -1
  76. package/dist/plugins/postcss/pruneVars.js +1 -2
  77. package/dist/plugins/postcss/quoteFontFamilies.d.ts +0 -2
  78. package/dist/plugins/postcss/quoteFontFamilies.d.ts.map +1 -1
  79. package/dist/plugins/postcss/quoteFontFamilies.js +1 -2
  80. package/dist/plugins/postcss/removeDeclarations.d.ts +0 -2
  81. package/dist/plugins/postcss/removeDeclarations.d.ts.map +1 -1
  82. package/dist/plugins/postcss/removeDeclarations.js +1 -2
  83. package/dist/plugins/postcss/resolveMaizzleImports.d.ts +0 -2
  84. package/dist/plugins/postcss/resolveMaizzleImports.d.ts.map +1 -1
  85. package/dist/plugins/postcss/resolveMaizzleImports.js +1 -2
  86. package/dist/plugins/postcss/resolveProps.d.ts +0 -2
  87. package/dist/plugins/postcss/resolveProps.d.ts.map +1 -1
  88. package/dist/plugins/postcss/resolveProps.js +1 -2
  89. package/dist/plugins/postcss/tailwindCleanup.d.ts +0 -2
  90. package/dist/plugins/postcss/tailwindCleanup.d.ts.map +1 -1
  91. package/dist/plugins/postcss/tailwindCleanup.js +1 -2
  92. package/dist/prepare.d.ts +1 -3
  93. package/dist/prepare.d.ts.map +1 -1
  94. package/dist/prepare.js +2 -3
  95. package/dist/prepare.js.map +1 -1
  96. package/dist/render/active.d.ts +0 -2
  97. package/dist/render/active.d.ts.map +1 -1
  98. package/dist/render/active.js +1 -2
  99. package/dist/render/buildTemplate.d.ts +0 -2
  100. package/dist/render/buildTemplate.d.ts.map +1 -1
  101. package/dist/render/buildTemplate.js +1 -2
  102. package/dist/render/createRenderer.d.ts +0 -2
  103. package/dist/render/createRenderer.d.ts.map +1 -1
  104. package/dist/render/createRenderer.js +9 -2
  105. package/dist/render/createRenderer.js.map +1 -1
  106. package/dist/render/index.d.ts +0 -2
  107. package/dist/render/index.d.ts.map +1 -1
  108. package/dist/render/index.js +1 -2
  109. package/dist/render/injectFonts.d.ts +0 -2
  110. package/dist/render/injectFonts.d.ts.map +1 -1
  111. package/dist/render/injectFonts.js +1 -2
  112. package/dist/render/parallel/buildWorker.d.ts +0 -2
  113. package/dist/render/parallel/buildWorker.d.ts.map +1 -1
  114. package/dist/render/parallel/buildWorker.js +1 -2
  115. package/dist/render/plugins/codeBlockExtract.d.ts +0 -2
  116. package/dist/render/plugins/codeBlockExtract.d.ts.map +1 -1
  117. package/dist/render/plugins/codeBlockExtract.js +1 -2
  118. package/dist/render/plugins/markdownExtract.d.ts +0 -2
  119. package/dist/render/plugins/markdownExtract.d.ts.map +1 -1
  120. package/dist/render/plugins/markdownExtract.js +1 -2
  121. package/dist/render/plugins/previewProps.d.ts +0 -2
  122. package/dist/render/plugins/previewProps.d.ts.map +1 -1
  123. package/dist/render/plugins/previewProps.js +1 -2
  124. package/dist/render/plugins/rawExtract.d.ts +0 -2
  125. package/dist/render/plugins/rawExtract.d.ts.map +1 -1
  126. package/dist/render/plugins/rawExtract.js +1 -2
  127. package/dist/render/plugins/rowSourceLocation.d.ts +0 -2
  128. package/dist/render/plugins/rowSourceLocation.d.ts.map +1 -1
  129. package/dist/render/plugins/rowSourceLocation.js +1 -2
  130. package/dist/render/withPreviewProps.d.ts +0 -2
  131. package/dist/render/withPreviewProps.d.ts.map +1 -1
  132. package/dist/render/withPreviewProps.js +1 -2
  133. package/dist/serve.d.ts +0 -2
  134. package/dist/serve.d.ts.map +1 -1
  135. package/dist/serve.js +1 -2
  136. package/dist/server/compatibility.d.ts +0 -2
  137. package/dist/server/compatibility.d.ts.map +1 -1
  138. package/dist/server/compatibility.js +1 -2
  139. package/dist/server/email.d.ts +0 -2
  140. package/dist/server/email.d.ts.map +1 -1
  141. package/dist/server/email.js +1 -2
  142. package/dist/server/linter.d.ts +0 -2
  143. package/dist/server/linter.d.ts.map +1 -1
  144. package/dist/server/linter.js +1 -2
  145. package/dist/server/sfc-utils.d.ts +0 -2
  146. package/dist/server/sfc-utils.d.ts.map +1 -1
  147. package/dist/server/sfc-utils.js +1 -2
  148. package/dist/server/static.d.ts +0 -2
  149. package/dist/server/static.d.ts.map +1 -1
  150. package/dist/server/static.js +1 -2
  151. package/dist/server/ui/.vite/deps/@lucide_vue.js +13 -24
  152. package/dist/server/ui/.vite/deps/@lucide_vue.js.map +1 -1
  153. package/dist/server/ui/.vite/deps/@vueuse_core.js +2 -3
  154. package/dist/server/ui/.vite/deps/@vueuse_shared.js +2 -3
  155. package/dist/server/ui/.vite/deps/_metadata.json +17 -17
  156. package/dist/server/ui/.vite/deps/class-variance-authority.js +1 -2
  157. package/dist/server/ui/.vite/deps/clsx.js +1 -2
  158. package/dist/server/ui/.vite/deps/culori.js +150 -303
  159. package/dist/server/ui/.vite/deps/culori.js.map +1 -1
  160. package/dist/server/ui/.vite/deps/reka-ui.js +612 -1220
  161. package/dist/server/ui/.vite/deps/reka-ui.js.map +1 -1
  162. package/dist/server/ui/.vite/deps/{rolldown-runtime-EAsCxrDo.js → rolldown-runtime-C-UrYobY.js} +2 -3
  163. package/dist/server/ui/.vite/deps/tailwind-merge.js +2 -3
  164. package/dist/server/ui/.vite/deps/vue-router.js +9 -17
  165. package/dist/server/ui/.vite/deps/vue-router.js.map +1 -1
  166. package/dist/server/ui/.vite/deps/vue.js +1 -2
  167. package/dist/server/ui/.vite/deps/{vue.runtime.esm-bundler-Dq07uCLt.js → vue.runtime.esm-bundler-Bjgap8Ka.js} +261 -115
  168. package/dist/server/ui/.vite/deps/vue.runtime.esm-bundler-Bjgap8Ka.js.map +1 -0
  169. package/dist/server/ui/App.vue +39 -9
  170. package/dist/tests/render/_helpers.d.ts +0 -2
  171. package/dist/tests/render/_helpers.d.ts.map +1 -1
  172. package/dist/tests/render/_helpers.js +1 -2
  173. package/dist/transformers/addAttributes.d.ts +0 -2
  174. package/dist/transformers/addAttributes.d.ts.map +1 -1
  175. package/dist/transformers/addAttributes.js +1 -2
  176. package/dist/transformers/attributeToStyle.d.ts +0 -2
  177. package/dist/transformers/attributeToStyle.d.ts.map +1 -1
  178. package/dist/transformers/attributeToStyle.js +1 -2
  179. package/dist/transformers/base.d.ts +0 -2
  180. package/dist/transformers/base.d.ts.map +1 -1
  181. package/dist/transformers/base.js +58 -16
  182. package/dist/transformers/base.js.map +1 -1
  183. package/dist/transformers/columnWidth.d.ts +0 -2
  184. package/dist/transformers/columnWidth.d.ts.map +1 -1
  185. package/dist/transformers/columnWidth.js +1 -2
  186. package/dist/transformers/entities.d.ts +0 -2
  187. package/dist/transformers/entities.d.ts.map +1 -1
  188. package/dist/transformers/entities.js +1 -2
  189. package/dist/transformers/filters/defaults.d.ts +0 -2
  190. package/dist/transformers/filters/defaults.d.ts.map +1 -1
  191. package/dist/transformers/filters/defaults.js +1 -2
  192. package/dist/transformers/filters/index.d.ts +0 -2
  193. package/dist/transformers/filters/index.d.ts.map +1 -1
  194. package/dist/transformers/filters/index.js +1 -2
  195. package/dist/transformers/format.d.ts +0 -2
  196. package/dist/transformers/format.d.ts.map +1 -1
  197. package/dist/transformers/format.js +1 -2
  198. package/dist/transformers/imgWidth.d.ts +0 -2
  199. package/dist/transformers/imgWidth.d.ts.map +1 -1
  200. package/dist/transformers/imgWidth.js +1 -2
  201. package/dist/transformers/index.d.ts +0 -2
  202. package/dist/transformers/index.d.ts.map +1 -1
  203. package/dist/transformers/index.js +2 -3
  204. package/dist/transformers/index.js.map +1 -1
  205. package/dist/transformers/inlineCss.d.ts +0 -2
  206. package/dist/transformers/inlineCss.d.ts.map +1 -1
  207. package/dist/transformers/inlineCss.js +1 -2
  208. package/dist/transformers/inlineLink.d.ts +0 -2
  209. package/dist/transformers/inlineLink.d.ts.map +1 -1
  210. package/dist/transformers/inlineLink.js +1 -2
  211. package/dist/transformers/minify.d.ts +0 -2
  212. package/dist/transformers/minify.d.ts.map +1 -1
  213. package/dist/transformers/minify.js +1 -2
  214. package/dist/transformers/minifyCodeInline.d.ts +0 -2
  215. package/dist/transformers/minifyCodeInline.d.ts.map +1 -1
  216. package/dist/transformers/minifyCodeInline.js +1 -2
  217. package/dist/transformers/msoConditionals.d.ts +0 -2
  218. package/dist/transformers/msoConditionals.d.ts.map +1 -1
  219. package/dist/transformers/msoConditionals.js +1 -2
  220. package/dist/transformers/msoPlaceholders.d.ts +0 -2
  221. package/dist/transformers/msoPlaceholders.d.ts.map +1 -1
  222. package/dist/transformers/msoPlaceholders.js +1 -2
  223. package/dist/transformers/purgeCss.d.ts +0 -2
  224. package/dist/transformers/purgeCss.d.ts.map +1 -1
  225. package/dist/transformers/purgeCss.js +1 -2
  226. package/dist/transformers/removeAttributes.d.ts +0 -2
  227. package/dist/transformers/removeAttributes.d.ts.map +1 -1
  228. package/dist/transformers/removeAttributes.js +1 -2
  229. package/dist/transformers/replaceStrings.d.ts +0 -2
  230. package/dist/transformers/replaceStrings.d.ts.map +1 -1
  231. package/dist/transformers/replaceStrings.js +1 -2
  232. package/dist/transformers/safeSelectors.d.ts +0 -2
  233. package/dist/transformers/safeSelectors.d.ts.map +1 -1
  234. package/dist/transformers/safeSelectors.js +1 -2
  235. package/dist/transformers/shorthandCss.d.ts +0 -2
  236. package/dist/transformers/shorthandCss.d.ts.map +1 -1
  237. package/dist/transformers/shorthandCss.js +1 -2
  238. package/dist/transformers/sixHex.d.ts +0 -2
  239. package/dist/transformers/sixHex.d.ts.map +1 -1
  240. package/dist/transformers/sixHex.js +1 -2
  241. package/dist/transformers/tailwindComponent.d.ts +0 -2
  242. package/dist/transformers/tailwindComponent.d.ts.map +1 -1
  243. package/dist/transformers/tailwindComponent.js +1 -2
  244. package/dist/transformers/tailwindcss.d.ts +0 -2
  245. package/dist/transformers/tailwindcss.d.ts.map +1 -1
  246. package/dist/transformers/tailwindcss.js +1 -2
  247. package/dist/transformers/urlQuery.d.ts +0 -2
  248. package/dist/transformers/urlQuery.d.ts.map +1 -1
  249. package/dist/transformers/urlQuery.js +1 -2
  250. package/dist/types/config.d.ts +0 -2
  251. package/dist/types/config.d.ts.map +1 -1
  252. package/dist/utils/ast/parser.d.ts +0 -2
  253. package/dist/utils/ast/parser.d.ts.map +1 -1
  254. package/dist/utils/ast/parser.js +1 -2
  255. package/dist/utils/ast/serializer.d.ts +0 -2
  256. package/dist/utils/ast/serializer.d.ts.map +1 -1
  257. package/dist/utils/ast/serializer.js +1 -2
  258. package/dist/utils/ast/walker.d.ts +0 -2
  259. package/dist/utils/ast/walker.d.ts.map +1 -1
  260. package/dist/utils/ast/walker.js +1 -2
  261. package/dist/utils/cloneConfig.d.ts +0 -2
  262. package/dist/utils/cloneConfig.d.ts.map +1 -1
  263. package/dist/utils/cloneConfig.js +1 -2
  264. package/dist/utils/compileTailwindCss.d.ts +0 -2
  265. package/dist/utils/compileTailwindCss.d.ts.map +1 -1
  266. package/dist/utils/compileTailwindCss.js +1 -2
  267. package/dist/utils/componentSources.d.ts +0 -2
  268. package/dist/utils/componentSources.d.ts.map +1 -1
  269. package/dist/utils/componentSources.js +1 -2
  270. package/dist/utils/cssBox.d.ts +0 -2
  271. package/dist/utils/cssBox.d.ts.map +1 -1
  272. package/dist/utils/cssBox.js +1 -2
  273. package/dist/utils/decodeStyleEntities.d.ts +0 -2
  274. package/dist/utils/decodeStyleEntities.d.ts.map +1 -1
  275. package/dist/utils/decodeStyleEntities.js +1 -2
  276. package/dist/utils/detect.d.ts +0 -2
  277. package/dist/utils/detect.d.ts.map +1 -1
  278. package/dist/utils/detect.js +1 -2
  279. package/dist/utils/output-markers.d.ts +0 -2
  280. package/dist/utils/output-markers.d.ts.map +1 -1
  281. package/dist/utils/output-markers.js +1 -2
  282. package/dist/utils/staticPaths.d.ts +0 -2
  283. package/dist/utils/staticPaths.d.ts.map +1 -1
  284. package/dist/utils/staticPaths.js +1 -2
  285. package/dist/utils/twMerge.d.ts +0 -2
  286. package/dist/utils/twMerge.d.ts.map +1 -1
  287. package/dist/utils/twMerge.js +1 -2
  288. package/dist/utils/url.d.ts +0 -2
  289. package/dist/utils/url.d.ts.map +1 -1
  290. package/dist/utils/url.js +1 -2
  291. package/dist/utils/watchPaths.d.ts +0 -2
  292. package/dist/utils/watchPaths.d.ts.map +1 -1
  293. package/dist/utils/watchPaths.js +1 -2
  294. package/package.json +4 -4
  295. package/dist/server/ui/.vite/deps/vue.runtime.esm-bundler-Dq07uCLt.js.map +0 -1
@@ -2,7 +2,7 @@ import { walk } from "../utils/ast/walker.js";
2
2
  import "../utils/ast/index.js";
3
3
  import { horizontalBorderPx, horizontalPaddingPx, lengthToPx } from "../utils/cssBox.js";
4
4
  import safeParser from "postcss-safe-parser";
5
- //#region src/transformers/imgWidth.ts
5
+ // src/transformers/imgWidth.ts
6
6
  const MARKER = "data-maizzle-img-width";
7
7
  function firstDeclValue(root, prop) {
8
8
  let found;
@@ -70,7 +70,6 @@ function imgWidthDom(dom) {
70
70
  }
71
71
  return dom;
72
72
  }
73
- //#endregion
74
73
  export { imgWidthDom };
75
74
 
76
75
  //# sourceMappingURL=imgWidth.js.map
@@ -1,6 +1,5 @@
1
1
  import { MaizzleConfig } from "../types/config.js";
2
2
  import { TailwindBlock } from "../composables/renderContext.js";
3
- //#region src/transformers/index.d.ts
4
3
  /**
5
4
  * Run all Maizzle transformers on the rendered HTML.
6
5
  *
@@ -34,5 +33,4 @@ import { TailwindBlock } from "../composables/renderContext.js";
34
33
  * 16. Minify
35
34
  */
36
35
  export declare function runTransformers(html: string, config: MaizzleConfig, filePath?: string, doctype?: string, tailwindBlocks?: TailwindBlock[], sourceFiles?: string[]): Promise<string>;
37
- //#endregion
38
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/transformers/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA2DsB,gBACpB,cACA,QAAQ,eACR,mBACA,kBACA,iBAAiB,iBACjB,yBACC"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/transformers/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA2DsB,gBACpB,cACA,QAAQ,eACR,mBACA,kBACA,iBAAiB,iBACjB,yBACC"}
@@ -24,7 +24,7 @@ import { replaceStrings } from "./replaceStrings.js";
24
24
  import { format } from "./format.js";
25
25
  import { minifyCodeInline } from "./minifyCodeInline.js";
26
26
  import { minify } from "./minify.js";
27
- //#region src/transformers/index.ts
27
+ // src/transformers/index.ts
28
28
  /**
29
29
  * Run all Maizzle transformers on the rendered HTML.
30
30
  *
@@ -123,7 +123,7 @@ async function runTransformers(html, config, filePath, doctype, tailwindBlocks,
123
123
  if (enabled("sixHex") && effective.css?.sixHex !== false) dom = sixHexDom(dom);
124
124
  if (enabled("addAttributes")) dom = addAttributesDom(dom, effective.html?.attributes);
125
125
  if (enabled("filters")) dom = filtersDom(dom, effective.filters);
126
- if (enabled("baseURL") && effective.url?.base) dom = baseDom(dom, effective.url.base);
126
+ if (enabled("baseURL")) dom = baseDom(dom, effective.url?.base);
127
127
  if (enabled("urlQuery") && effective.url?.query && Object.keys(effective.url.query).length > 0) {
128
128
  const { _options: queryOptions, ...queryParams } = effective.url.query;
129
129
  dom = urlQueryDom(dom, queryParams, queryOptions ?? {});
@@ -173,7 +173,6 @@ async function runTransformers(html, config, filePath, doctype, tailwindBlocks,
173
173
  result = minifyCodeInline(result);
174
174
  return result;
175
175
  }
176
- //#endregion
177
176
  export { runTransformers };
178
177
 
179
178
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/transformers/index.ts"],"sourcesContent":["import { parse, serialize } from '../utils/ast/index.ts'\nimport { inlineLinkDom } from './inlineLink.ts'\nimport { tailwindComponent } from './tailwindComponent.ts'\nimport { tailwindcss } from './tailwindcss.ts'\nimport { safeSelectorsDom } from './safeSelectors.ts'\nimport { attributeToStyleDom } from './attributeToStyle.ts'\nimport { inlineCssDom } from './inlineCss.ts'\nimport { msoPlaceholders } from './msoPlaceholders.ts'\nimport { columnWidth } from './columnWidth.ts'\nimport { imgWidthDom } from './imgWidth.ts'\nimport { removeAttributesDom } from './removeAttributes.ts'\nimport { shorthandCssDom } from './shorthandCss.ts'\nimport { sixHexDom } from './sixHex.ts'\nimport { addAttributesDom } from './addAttributes.ts'\nimport { filtersDom } from './filters/index.ts'\nimport { baseDom } from './base.ts'\nimport { entitiesDom } from './entities.ts'\nimport { urlQueryDom } from './urlQuery.ts'\nimport { purgeCssDom } from './purgeCss.ts'\nimport { msoConditionals } from './msoConditionals.ts'\nimport { replaceStrings } from './replaceStrings.ts'\nimport { format } from './format.ts'\nimport { minifyCodeInline } from './minifyCodeInline.ts'\nimport { minify } from './minify.ts'\nimport type { MaizzleConfig } from '../types/config.ts'\nimport type { TailwindBlock } from '../composables/renderContext.ts'\n\n/**\n * Run all Maizzle transformers on the rendered HTML.\n *\n * The HTML is parsed into a DOM once at the start and passed through all\n * DOM-based transformers as a shared `ChildNode[]`. After all DOM transformers\n * complete, the DOM is serialized back to a string exactly once.\n *\n * String-only transformers (those that rely on external tools that require a\n * raw HTML string) then run on the serialized output.\n *\n * Transformers run in a specific order:\n * 0. Inline link stylesheets — replace `<link rel=\"stylesheet\">` with `<style>` tags\n * 1. Tailwind CSS — compile CSS, lower syntax, optimize (cleanup + merge media queries)\n * 2. Safe class names\n * 3. Attribute to style\n * 4. CSS inliner\n * 5. Remove attributes\n * 6. Shorthand CSS\n * 7. Six-digit HEX\n * 8. Add attributes\n * 9. Filters\n * 10. Base URL\n * 11. URL query\n * 11.5 Entities in comment nodes (before purge — protects MSO conditionals)\n * 12. Purge CSS (serializes/parses internally around email-comb)\n * 13. Entities\n * + Vue-generated comments stripped here (on serialized string)\n * 13.5 Outlook placeholders → MSO conditional comments\n * 14. Replace strings\n * 15. Prettify\n * 16. Minify\n */\nexport async function runTransformers(\n html: string,\n config: MaizzleConfig,\n filePath?: string,\n doctype?: string,\n tailwindBlocks?: TailwindBlock[],\n sourceFiles?: string[],\n): Promise<string> {\n /**\n * Whole-pipeline opt-out. `<Outlook>` placeholders still have to\n * become real conditional comments, so that one step always runs.\n */\n if (config.useTransformers === false) return msoConditionals(html)\n\n /**\n * Per-transformer skip map — only honored when useTransformers is an object.\n *\n * A toggle set to `true` *force-enables* its transformer for this run\n * by layering on the matching config slice (e.g. `prettify: true`\n * sets `html.format = true`). This only applies to transformers\n * whose enable flag is a plain boolean — data-driven ones\n * (filters, baseURL, urlQuery, etc.) need actual config\n * values, so a bare `true` for those is a no-op.\n */\n const toggles = typeof config.useTransformers === 'object' ? config.useTransformers : null\n const enabled = (key: keyof NonNullable<typeof toggles>) => toggles?.[key] !== false\n\n let effective = config\n if (toggles) {\n const cssOver: Record<string, unknown> = {}\n const htmlOver: Record<string, unknown> = {}\n if (toggles.inlineCss === true) cssOver.inline = true\n if (toggles.purgeCss === true) cssOver.purge = true\n if (toggles.safeSelectors === true) cssOver.safe = true\n if (toggles.shorthandCss === true) cssOver.shorthand = true\n if (toggles.sixHex === true) cssOver.sixHex = true\n if (toggles.prettify === true) htmlOver.format = true\n if (toggles.minify === true) htmlOver.minify = true\n if (toggles.entities === true) htmlOver.decodeEntities = true\n\n if (Object.keys(cssOver).length || Object.keys(htmlOver).length) {\n effective = {\n ...config,\n css: { ...config.css, ...cssOver },\n html: { ...config.html, ...htmlOver },\n }\n }\n }\n\n // Parse once — all DOM transformers share this array\n let dom = parse(html)\n\n // 0. Inline <link> stylesheets\n dom = await inlineLinkDom(dom, filePath)\n\n // 0.5. <Tailwind> component — compile per-block scoped CSS, inject into <head>\n if (tailwindBlocks?.length) {\n dom = await tailwindComponent(dom, tailwindBlocks, effective, filePath, sourceFiles)\n }\n\n // 1. Tailwind CSS — always runs first\n dom = await tailwindcss(dom, effective, filePath, sourceFiles)\n\n // 2. Safe class names\n if (enabled('safeSelectors')) dom = safeSelectorsDom(dom, effective.css)\n\n // 3. Attribute to style\n if (enabled('attributeToStyle') && typeof effective.css?.inline === 'object' && effective.css.inline.attributeToStyle) {\n dom = attributeToStyleDom(dom, effective.css.inline.attributeToStyle)\n }\n\n // 4. CSS inliner (serializes/parses internally around juice)\n if (enabled('inlineCss') && effective.css?.inline) {\n const inlineOptions = typeof effective.css.inline === 'object' ? effective.css.inline : {}\n dom = inlineCssDom(dom, inlineOptions)\n }\n\n // 4.5. Resolve MSO placeholders (table width + td style) from inlined CSS\n dom = msoPlaceholders(dom)\n\n // 4.6. Resolve Column min-width placeholders from nearest sized ancestor\n dom = columnWidth(dom)\n\n // 4.7. Backfill width on <Img> images that inherit their parent's width\n dom = imgWidthDom(dom)\n\n // 5. Remove attributes\n if (enabled('removeAttributes')) {\n const removeRules = effective.html?.attributes?.remove\n dom = removeAttributesDom(dom, Array.isArray(removeRules) ? removeRules : [])\n }\n\n // 6. Shorthand CSS\n if (enabled('shorthandCss') && effective.css?.shorthand) {\n const shorthandOptions = typeof effective.css.shorthand === 'object' ? effective.css.shorthand : {}\n dom = shorthandCssDom(dom, shorthandOptions)\n }\n\n // 7. Six-digit HEX\n if (enabled('sixHex') && effective.css?.sixHex !== false) dom = sixHexDom(dom)\n\n // 8. Add attributes\n if (enabled('addAttributes')) dom = addAttributesDom(dom, effective.html?.attributes)\n\n // 9. Filters\n if (enabled('filters')) dom = filtersDom(dom, effective.filters)\n\n // 10. Base URL (serializes/parses internally for VML/MSO regex passes)\n if (enabled('baseURL') && effective.url?.base) dom = baseDom(dom, effective.url.base)\n\n // 11. URL query\n if (enabled('urlQuery') && effective.url?.query && Object.keys(effective.url.query).length > 0) {\n const { _options: queryOptions, ...queryParams } = effective.url.query as Record<string, unknown>\n dom = urlQueryDom(dom, queryParams, (queryOptions ?? {}) as import('../types/config.ts').UrlQueryOptions)\n }\n\n /**\n * 11.5. Encode entities in comment nodes before purge/minify. Raw\n * invisible chars (e.g. U+00A0 from Vue decoding &nbsp; at compile\n * time) inside MSO conditionals make email-comb remove the whole\n * \"whitespace-only\" conditional and html-crush collapse the chars.\n * Text nodes are skipped here — purge's internal parse round-trip\n * would decode them again — comment data survives un-decoded.\n */\n if (enabled('entities')) dom = entitiesDom(dom, effective.html?.decodeEntities, { text: false })\n\n // 12. Remove unused CSS (serializes/parses internally around email-comb)\n if (enabled('purgeCss') && effective.css?.purge) {\n const purgeOptions = typeof effective.css.purge === 'object' ? effective.css.purge : {}\n dom = purgeCssDom(dom, purgeOptions)\n }\n\n // 13. Entities\n if (enabled('entities')) dom = entitiesDom(dom, effective.html?.decodeEntities)\n\n // Serialize once — remaining transformers operate on the HTML string\n const isXhtml = doctype ? /xhtml/i.test(doctype) : false\n let result = serialize(dom, { selfClosingTags: isXhtml })\n\n // 13.5. Collapse <Outlook> placeholders into MSO conditional comments\n result = msoConditionals(result)\n\n // 14. Replace strings\n if (enabled('replaceStrings')) result = replaceStrings(result, effective)\n\n // 15. Format — skipped when `minify` is enabled\n const minifyWillRun = enabled('minify') && !!effective.html?.minify\n if (enabled('prettify') && !minifyWillRun && effective.html?.format) {\n const formatOptions = typeof effective.html.format === 'object' ? effective.html.format : {}\n result = await format(result, formatOptions)\n }\n\n // 16. Minify\n if (enabled('minify') && effective.html?.minify) {\n const minifyOptions = typeof effective.html.minify === 'object' ? effective.html.minify : {}\n result = minify(result, minifyOptions)\n }\n\n /**\n * Strip self-closing slashes for HTML5 doctypes, but preserve content\n * inside MSO conditional comments (XML-ish, case/syntax sensitive).\n * MUST run BEFORE minifyCodeInline: at this point, CodeInline's\n * shiki output is still marker-encoded (§MZLT§/§MZGT§), so any\n * ` />` in the highlighted source code (e.g. a Vue self-close\n * tag) hasn't materialized yet and can't be mistakenly\n * stripped from inside a `<code>` element.\n */\n if (!isXhtml) {\n result = result.replace(\n /<!--\\[if [^\\]]*\\]>[\\s\\S]*?<!\\[endif\\]-->|( \\/>)/g,\n (match, selfClose) => selfClose ? '>' : match,\n )\n }\n\n /**\n * 16.5. Strip whitespace inside `data-minify-inline` markers (CodeInline's\n * Shiki output, etc.). Runs after format/minify so it cleans up the\n * pretty-printer's indentation between sibling tags.\n */\n result = minifyCodeInline(result)\n\n return result\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DA,eAAsB,gBACpB,MACA,QACA,UACA,SACA,gBACA,aACiB;;;;;CAKjB,IAAI,OAAO,oBAAoB,OAAO,OAAO,gBAAgB,IAAI;;;;;;;;;;;CAYjE,MAAM,UAAU,OAAO,OAAO,oBAAoB,WAAW,OAAO,kBAAkB;CACtF,MAAM,WAAW,QAA2C,UAAU,SAAS;CAE/E,IAAI,YAAY;CAChB,IAAI,SAAS;EACX,MAAM,UAAmC,CAAC;EAC1C,MAAM,WAAoC,CAAC;EAC3C,IAAI,QAAQ,cAAc,MAAM,QAAQ,SAAS;EACjD,IAAI,QAAQ,aAAa,MAAM,QAAQ,QAAQ;EAC/C,IAAI,QAAQ,kBAAkB,MAAM,QAAQ,OAAO;EACnD,IAAI,QAAQ,iBAAiB,MAAM,QAAQ,YAAY;EACvD,IAAI,QAAQ,WAAW,MAAM,QAAQ,SAAS;EAC9C,IAAI,QAAQ,aAAa,MAAM,SAAS,SAAS;EACjD,IAAI,QAAQ,WAAW,MAAM,SAAS,SAAS;EAC/C,IAAI,QAAQ,aAAa,MAAM,SAAS,iBAAiB;EAEzD,IAAI,OAAO,KAAK,OAAO,CAAC,CAAC,UAAU,OAAO,KAAK,QAAQ,CAAC,CAAC,QACvD,YAAY;GACV,GAAG;GACH,KAAK;IAAE,GAAG,OAAO;IAAK,GAAG;GAAQ;GACjC,MAAM;IAAE,GAAG,OAAO;IAAM,GAAG;GAAS;EACtC;CAEJ;CAGA,IAAI,MAAM,MAAM,IAAI;CAGpB,MAAM,MAAM,cAAc,KAAK,QAAQ;CAGvC,IAAI,gBAAgB,QAClB,MAAM,MAAM,kBAAkB,KAAK,gBAAgB,WAAW,UAAU,WAAW;CAIrF,MAAM,MAAM,YAAY,KAAK,WAAW,UAAU,WAAW;CAG7D,IAAI,QAAQ,eAAe,GAAG,MAAM,iBAAiB,KAAK,UAAU,GAAG;CAGvE,IAAI,QAAQ,kBAAkB,KAAK,OAAO,UAAU,KAAK,WAAW,YAAY,UAAU,IAAI,OAAO,kBACnG,MAAM,oBAAoB,KAAK,UAAU,IAAI,OAAO,gBAAgB;CAItE,IAAI,QAAQ,WAAW,KAAK,UAAU,KAAK,QAAQ;EACjD,MAAM,gBAAgB,OAAO,UAAU,IAAI,WAAW,WAAW,UAAU,IAAI,SAAS,CAAC;EACzF,MAAM,aAAa,KAAK,aAAa;CACvC;CAGA,MAAM,gBAAgB,GAAG;CAGzB,MAAM,YAAY,GAAG;CAGrB,MAAM,YAAY,GAAG;CAGrB,IAAI,QAAQ,kBAAkB,GAAG;EAC/B,MAAM,cAAc,UAAU,MAAM,YAAY;EAChD,MAAM,oBAAoB,KAAK,MAAM,QAAQ,WAAW,IAAI,cAAc,CAAC,CAAC;CAC9E;CAGA,IAAI,QAAQ,cAAc,KAAK,UAAU,KAAK,WAAW;EACvD,MAAM,mBAAmB,OAAO,UAAU,IAAI,cAAc,WAAW,UAAU,IAAI,YAAY,CAAC;EAClG,MAAM,gBAAgB,KAAK,gBAAgB;CAC7C;CAGA,IAAI,QAAQ,QAAQ,KAAK,UAAU,KAAK,WAAW,OAAO,MAAM,UAAU,GAAG;CAG7E,IAAI,QAAQ,eAAe,GAAG,MAAM,iBAAiB,KAAK,UAAU,MAAM,UAAU;CAGpF,IAAI,QAAQ,SAAS,GAAG,MAAM,WAAW,KAAK,UAAU,OAAO;CAG/D,IAAI,QAAQ,SAAS,KAAK,UAAU,KAAK,MAAM,MAAM,QAAQ,KAAK,UAAU,IAAI,IAAI;CAGpF,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,SAAS,OAAO,KAAK,UAAU,IAAI,KAAK,CAAC,CAAC,SAAS,GAAG;EAC9F,MAAM,EAAE,UAAU,cAAc,GAAG,gBAAgB,UAAU,IAAI;EACjE,MAAM,YAAY,KAAK,aAAc,gBAAgB,CAAC,CAAkD;CAC1G;;;;;;;;;CAUA,IAAI,QAAQ,UAAU,GAAG,MAAM,YAAY,KAAK,UAAU,MAAM,gBAAgB,EAAE,MAAM,MAAM,CAAC;CAG/F,IAAI,QAAQ,UAAU,KAAK,UAAU,KAAK,OAAO;EAC/C,MAAM,eAAe,OAAO,UAAU,IAAI,UAAU,WAAW,UAAU,IAAI,QAAQ,CAAC;EACtF,MAAM,YAAY,KAAK,YAAY;CACrC;CAGA,IAAI,QAAQ,UAAU,GAAG,MAAM,YAAY,KAAK,UAAU,MAAM,cAAc;CAG9E,MAAM,UAAU,UAAU,SAAS,KAAK,OAAO,IAAI;CACnD,IAAI,SAAS,UAAU,KAAK,EAAE,iBAAiB,QAAQ,CAAC;CAGxD,SAAS,gBAAgB,MAAM;CAG/B,IAAI,QAAQ,gBAAgB,GAAG,SAAS,eAAe,QAAQ,SAAS;CAGxE,MAAM,gBAAgB,QAAQ,QAAQ,KAAK,CAAC,CAAC,UAAU,MAAM;CAC7D,IAAI,QAAQ,UAAU,KAAK,CAAC,iBAAiB,UAAU,MAAM,QAAQ;EACnE,MAAM,gBAAgB,OAAO,UAAU,KAAK,WAAW,WAAW,UAAU,KAAK,SAAS,CAAC;EAC3F,SAAS,MAAM,OAAO,QAAQ,aAAa;CAC7C;CAGA,IAAI,QAAQ,QAAQ,KAAK,UAAU,MAAM,QAAQ;EAC/C,MAAM,gBAAgB,OAAO,UAAU,KAAK,WAAW,WAAW,UAAU,KAAK,SAAS,CAAC;EAC3F,SAAS,OAAO,QAAQ,aAAa;CACvC;;;;;;;;;;CAWA,IAAI,CAAC,SACH,SAAS,OAAO,QACd,qDACC,OAAO,cAAc,YAAY,MAAM,KAC1C;;;;;;CAQF,SAAS,iBAAiB,MAAM;CAEhC,OAAO;AACT"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/transformers/index.ts"],"sourcesContent":["import { parse, serialize } from '../utils/ast/index.ts'\nimport { inlineLinkDom } from './inlineLink.ts'\nimport { tailwindComponent } from './tailwindComponent.ts'\nimport { tailwindcss } from './tailwindcss.ts'\nimport { safeSelectorsDom } from './safeSelectors.ts'\nimport { attributeToStyleDom } from './attributeToStyle.ts'\nimport { inlineCssDom } from './inlineCss.ts'\nimport { msoPlaceholders } from './msoPlaceholders.ts'\nimport { columnWidth } from './columnWidth.ts'\nimport { imgWidthDom } from './imgWidth.ts'\nimport { removeAttributesDom } from './removeAttributes.ts'\nimport { shorthandCssDom } from './shorthandCss.ts'\nimport { sixHexDom } from './sixHex.ts'\nimport { addAttributesDom } from './addAttributes.ts'\nimport { filtersDom } from './filters/index.ts'\nimport { baseDom } from './base.ts'\nimport { entitiesDom } from './entities.ts'\nimport { urlQueryDom } from './urlQuery.ts'\nimport { purgeCssDom } from './purgeCss.ts'\nimport { msoConditionals } from './msoConditionals.ts'\nimport { replaceStrings } from './replaceStrings.ts'\nimport { format } from './format.ts'\nimport { minifyCodeInline } from './minifyCodeInline.ts'\nimport { minify } from './minify.ts'\nimport type { MaizzleConfig } from '../types/config.ts'\nimport type { TailwindBlock } from '../composables/renderContext.ts'\n\n/**\n * Run all Maizzle transformers on the rendered HTML.\n *\n * The HTML is parsed into a DOM once at the start and passed through all\n * DOM-based transformers as a shared `ChildNode[]`. After all DOM transformers\n * complete, the DOM is serialized back to a string exactly once.\n *\n * String-only transformers (those that rely on external tools that require a\n * raw HTML string) then run on the serialized output.\n *\n * Transformers run in a specific order:\n * 0. Inline link stylesheets — replace `<link rel=\"stylesheet\">` with `<style>` tags\n * 1. Tailwind CSS — compile CSS, lower syntax, optimize (cleanup + merge media queries)\n * 2. Safe class names\n * 3. Attribute to style\n * 4. CSS inliner\n * 5. Remove attributes\n * 6. Shorthand CSS\n * 7. Six-digit HEX\n * 8. Add attributes\n * 9. Filters\n * 10. Base URL\n * 11. URL query\n * 11.5 Entities in comment nodes (before purge — protects MSO conditionals)\n * 12. Purge CSS (serializes/parses internally around email-comb)\n * 13. Entities\n * + Vue-generated comments stripped here (on serialized string)\n * 13.5 Outlook placeholders → MSO conditional comments\n * 14. Replace strings\n * 15. Prettify\n * 16. Minify\n */\nexport async function runTransformers(\n html: string,\n config: MaizzleConfig,\n filePath?: string,\n doctype?: string,\n tailwindBlocks?: TailwindBlock[],\n sourceFiles?: string[],\n): Promise<string> {\n /**\n * Whole-pipeline opt-out. `<Outlook>` placeholders still have to\n * become real conditional comments, so that one step always runs.\n */\n if (config.useTransformers === false) return msoConditionals(html)\n\n /**\n * Per-transformer skip map — only honored when useTransformers is an object.\n *\n * A toggle set to `true` *force-enables* its transformer for this run\n * by layering on the matching config slice (e.g. `prettify: true`\n * sets `html.format = true`). This only applies to transformers\n * whose enable flag is a plain boolean — data-driven ones\n * (filters, baseURL, urlQuery, etc.) need actual config\n * values, so a bare `true` for those is a no-op.\n */\n const toggles = typeof config.useTransformers === 'object' ? config.useTransformers : null\n const enabled = (key: keyof NonNullable<typeof toggles>) => toggles?.[key] !== false\n\n let effective = config\n if (toggles) {\n const cssOver: Record<string, unknown> = {}\n const htmlOver: Record<string, unknown> = {}\n if (toggles.inlineCss === true) cssOver.inline = true\n if (toggles.purgeCss === true) cssOver.purge = true\n if (toggles.safeSelectors === true) cssOver.safe = true\n if (toggles.shorthandCss === true) cssOver.shorthand = true\n if (toggles.sixHex === true) cssOver.sixHex = true\n if (toggles.prettify === true) htmlOver.format = true\n if (toggles.minify === true) htmlOver.minify = true\n if (toggles.entities === true) htmlOver.decodeEntities = true\n\n if (Object.keys(cssOver).length || Object.keys(htmlOver).length) {\n effective = {\n ...config,\n css: { ...config.css, ...cssOver },\n html: { ...config.html, ...htmlOver },\n }\n }\n }\n\n // Parse once — all DOM transformers share this array\n let dom = parse(html)\n\n // 0. Inline <link> stylesheets\n dom = await inlineLinkDom(dom, filePath)\n\n // 0.5. <Tailwind> component — compile per-block scoped CSS, inject into <head>\n if (tailwindBlocks?.length) {\n dom = await tailwindComponent(dom, tailwindBlocks, effective, filePath, sourceFiles)\n }\n\n // 1. Tailwind CSS — always runs first\n dom = await tailwindcss(dom, effective, filePath, sourceFiles)\n\n // 2. Safe class names\n if (enabled('safeSelectors')) dom = safeSelectorsDom(dom, effective.css)\n\n // 3. Attribute to style\n if (enabled('attributeToStyle') && typeof effective.css?.inline === 'object' && effective.css.inline.attributeToStyle) {\n dom = attributeToStyleDom(dom, effective.css.inline.attributeToStyle)\n }\n\n // 4. CSS inliner (serializes/parses internally around juice)\n if (enabled('inlineCss') && effective.css?.inline) {\n const inlineOptions = typeof effective.css.inline === 'object' ? effective.css.inline : {}\n dom = inlineCssDom(dom, inlineOptions)\n }\n\n // 4.5. Resolve MSO placeholders (table width + td style) from inlined CSS\n dom = msoPlaceholders(dom)\n\n // 4.6. Resolve Column min-width placeholders from nearest sized ancestor\n dom = columnWidth(dom)\n\n // 4.7. Backfill width on <Img> images that inherit their parent's width\n dom = imgWidthDom(dom)\n\n // 5. Remove attributes\n if (enabled('removeAttributes')) {\n const removeRules = effective.html?.attributes?.remove\n dom = removeAttributesDom(dom, Array.isArray(removeRules) ? removeRules : [])\n }\n\n // 6. Shorthand CSS\n if (enabled('shorthandCss') && effective.css?.shorthand) {\n const shorthandOptions = typeof effective.css.shorthand === 'object' ? effective.css.shorthand : {}\n dom = shorthandCssDom(dom, shorthandOptions)\n }\n\n // 7. Six-digit HEX\n if (enabled('sixHex') && effective.css?.sixHex !== false) dom = sixHexDom(dom)\n\n // 8. Add attributes\n if (enabled('addAttributes')) dom = addAttributesDom(dom, effective.html?.attributes)\n\n // 9. Filters\n if (enabled('filters')) dom = filtersDom(dom, effective.filters)\n\n // 10. Base URL (serializes/parses internally for VML/MSO regex passes)\n if (enabled('baseURL')) dom = baseDom(dom, effective.url?.base)\n\n // 11. URL query\n if (enabled('urlQuery') && effective.url?.query && Object.keys(effective.url.query).length > 0) {\n const { _options: queryOptions, ...queryParams } = effective.url.query as Record<string, unknown>\n dom = urlQueryDom(dom, queryParams, (queryOptions ?? {}) as import('../types/config.ts').UrlQueryOptions)\n }\n\n /**\n * 11.5. Encode entities in comment nodes before purge/minify. Raw\n * invisible chars (e.g. U+00A0 from Vue decoding &nbsp; at compile\n * time) inside MSO conditionals make email-comb remove the whole\n * \"whitespace-only\" conditional and html-crush collapse the chars.\n * Text nodes are skipped here — purge's internal parse round-trip\n * would decode them again — comment data survives un-decoded.\n */\n if (enabled('entities')) dom = entitiesDom(dom, effective.html?.decodeEntities, { text: false })\n\n // 12. Remove unused CSS (serializes/parses internally around email-comb)\n if (enabled('purgeCss') && effective.css?.purge) {\n const purgeOptions = typeof effective.css.purge === 'object' ? effective.css.purge : {}\n dom = purgeCssDom(dom, purgeOptions)\n }\n\n // 13. Entities\n if (enabled('entities')) dom = entitiesDom(dom, effective.html?.decodeEntities)\n\n // Serialize once — remaining transformers operate on the HTML string\n const isXhtml = doctype ? /xhtml/i.test(doctype) : false\n let result = serialize(dom, { selfClosingTags: isXhtml })\n\n // 13.5. Collapse <Outlook> placeholders into MSO conditional comments\n result = msoConditionals(result)\n\n // 14. Replace strings\n if (enabled('replaceStrings')) result = replaceStrings(result, effective)\n\n // 15. Format — skipped when `minify` is enabled\n const minifyWillRun = enabled('minify') && !!effective.html?.minify\n if (enabled('prettify') && !minifyWillRun && effective.html?.format) {\n const formatOptions = typeof effective.html.format === 'object' ? effective.html.format : {}\n result = await format(result, formatOptions)\n }\n\n // 16. Minify\n if (enabled('minify') && effective.html?.minify) {\n const minifyOptions = typeof effective.html.minify === 'object' ? effective.html.minify : {}\n result = minify(result, minifyOptions)\n }\n\n /**\n * Strip self-closing slashes for HTML5 doctypes, but preserve content\n * inside MSO conditional comments (XML-ish, case/syntax sensitive).\n * MUST run BEFORE minifyCodeInline: at this point, CodeInline's\n * shiki output is still marker-encoded (§MZLT§/§MZGT§), so any\n * ` />` in the highlighted source code (e.g. a Vue self-close\n * tag) hasn't materialized yet and can't be mistakenly\n * stripped from inside a `<code>` element.\n */\n if (!isXhtml) {\n result = result.replace(\n /<!--\\[if [^\\]]*\\]>[\\s\\S]*?<!\\[endif\\]-->|( \\/>)/g,\n (match, selfClose) => selfClose ? '>' : match,\n )\n }\n\n /**\n * 16.5. Strip whitespace inside `data-minify-inline` markers (CodeInline's\n * Shiki output, etc.). Runs after format/minify so it cleans up the\n * pretty-printer's indentation between sibling tags.\n */\n result = minifyCodeInline(result)\n\n return result\n}\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { ChildNode } from "domhandler";
2
2
  import juice from "juice";
3
- //#region src/transformers/inlineCss.d.ts
4
3
  type JuiceOptions = NonNullable<Parameters<typeof juice>[1]>;
5
4
  /**
6
5
  * Options for the `inlineCss` transformer. Accepts every Juice option plus a
@@ -79,5 +78,4 @@ export declare function inlineCss(html: string, options?: InlineCssOptions): str
79
78
  * serialize/parse round-trips when chained with other transformers.
80
79
  */
81
80
  export declare function inlineCssDom(dom: ChildNode[], options?: InlineCssOptions): ChildNode[];
82
- //#endregion
83
81
  //# sourceMappingURL=inlineCss.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inlineCss.d.ts","names":[],"sources":["../../src/transformers/inlineCss.ts"],"mappings":";;;KAMK,eAAe,YAAY,kBAAkB;;;;;iBAMjC,yBAAyB;;;;;;EAMxC;;;;;;;EAOA;;;;;EAKA;;;;;EAKA,mBAAmB;;;;;EAKnB;;;;;;;EAOA;;;;;;;EAOA;;;;;EAKA,aAAa;IAAiB;IAAe;;;;;;;;;;;;;;;;;wBAiB/B,UAAU,cAAc,UAAS;;;;;;wBASjC,aAAa,KAAK,aAAa,UAAS,mBAAwB"}
1
+ {"version":3,"file":"inlineCss.d.ts","names":[],"sources":["../../src/transformers/inlineCss.ts"],"mappings":";;KAMK,eAAe,YAAY,kBAAkB;;;;;iBAMjC,yBAAyB;;;;;;EAMxC;;;;;;;EAOA;;;;;EAKA;;;;;EAKA,mBAAmB;;;;;EAKnB;;;;;;;EAOA;;;;;;;EAOA;;;;;EAKA,aAAa;IAAiB;IAAe;;;;;;;;;;;;;;;;;wBAiB/B,UAAU,cAAc,UAAS;;;;;;wBASjC,aAAa,KAAK,aAAa,UAAS,mBAAwB"}
@@ -3,7 +3,7 @@ import { walk } from "../utils/ast/walker.js";
3
3
  import { serialize } from "../utils/ast/serializer.js";
4
4
  import "../utils/ast/index.js";
5
5
  import juice from "juice";
6
- //#region src/transformers/inlineCss.ts
6
+ // src/transformers/inlineCss.ts
7
7
  /** Juice's built-in code blocks, captured before any per-call mutation. */
8
8
  const DEFAULT_CODE_BLOCKS = { ...juice.codeBlocks };
9
9
  /**
@@ -107,7 +107,6 @@ function inlineCssDom(dom, options = {}) {
107
107
  });
108
108
  return result;
109
109
  }
110
- //#endregion
111
110
  export { inlineCss, inlineCssDom };
112
111
 
113
112
  //# sourceMappingURL=inlineCss.js.map
@@ -1,5 +1,4 @@
1
1
  import { ChildNode } from "domhandler";
2
- //#region src/transformers/inlineLink.d.ts
3
2
  /**
4
3
  * Inline `<link rel="stylesheet">` tags as `<style>` tags.
5
4
  *
@@ -29,5 +28,4 @@ export declare function inlineLink(html: string, filePath?: string): Promise<str
29
28
  * serialize/parse round-trips when chained with other transformers.
30
29
  */
31
30
  export declare function inlineLinkDom(dom: ChildNode[], filePath?: string): Promise<ChildNode[]>;
32
- //#endregion
33
31
  //# sourceMappingURL=inlineLink.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inlineLink.d.ts","names":[],"sources":["../../src/transformers/inlineLink.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;wBA2BsB,WAAW,cAAc,oBAAoB;;;;;;wBAS7C,cAAc,KAAK,aAAa,oBAAoB,QAAQ"}
1
+ {"version":3,"file":"inlineLink.d.ts","names":[],"sources":["../../src/transformers/inlineLink.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;wBA2BsB,WAAW,cAAc,oBAAoB;;;;;;wBAS7C,cAAc,KAAK,aAAa,oBAAoB,QAAQ"}
@@ -4,7 +4,7 @@ import { serialize } from "../utils/ast/serializer.js";
4
4
  import "../utils/ast/index.js";
5
5
  import { readFileSync } from "node:fs";
6
6
  import { dirname, resolve } from "node:path";
7
- //#region src/transformers/inlineLink.ts
7
+ // src/transformers/inlineLink.ts
8
8
  /**
9
9
  * Inline `<link rel="stylesheet">` tags as `<style>` tags.
10
10
  *
@@ -95,7 +95,6 @@ async function inlineLinkDom(dom, filePath) {
95
95
  }
96
96
  return dom;
97
97
  }
98
- //#endregion
99
98
  export { inlineLink, inlineLinkDom };
100
99
 
101
100
  //# sourceMappingURL=inlineLink.js.map
@@ -1,5 +1,4 @@
1
1
  import { Opts, Opts as MinifyOptions } from "html-crush";
2
- //#region src/transformers/minify.d.ts
3
2
  /**
4
3
  * Minify an HTML string using `html-crush`. Maizzle's only default that
5
4
  * differs from html-crush's own defaults is `removeLineBreaks: true`.
@@ -15,6 +14,5 @@ import { Opts, Opts as MinifyOptions } from "html-crush";
15
14
  * const tight = minify('<p> hello </p>', { removeIndentations: true })
16
15
  */
17
16
  export declare function minify(html: string, options?: Partial<Opts>): string;
18
- //#endregion
19
17
  export type { MinifyOptions };
20
18
  //# sourceMappingURL=minify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"minify.d.ts","names":["HtmlCrushOptions"],"sources":["../../src/transformers/minify.ts"],"mappings":";;;;;;;;;;;;;;;;wBAwBgB,OAAO,cAAc,UAAS,QAAQA"}
1
+ {"version":3,"file":"minify.d.ts","names":["HtmlCrushOptions"],"sources":["../../src/transformers/minify.ts"],"mappings":";;;;;;;;;;;;;;;wBAwBgB,OAAO,cAAc,UAAS,QAAQA"}
@@ -1,6 +1,6 @@
1
1
  import { defu as defu$1 } from "defu";
2
2
  import { crush } from "html-crush";
3
- //#region src/transformers/minify.ts
3
+ // src/transformers/minify.ts
4
4
  const DEFAULT_OPTIONS = { removeLineBreaks: true };
5
5
  /**
6
6
  * Minify an HTML string using `html-crush`. Maizzle's only default that
@@ -20,7 +20,6 @@ function minify(html, options = {}) {
20
20
  const merged = defu$1(options, DEFAULT_OPTIONS);
21
21
  return crush(html, merged).result;
22
22
  }
23
- //#endregion
24
23
  export { minify };
25
24
 
26
25
  //# sourceMappingURL=minify.js.map
@@ -1,4 +1,3 @@
1
- //#region src/transformers/minifyCodeInline.d.ts
2
1
  /**
3
2
  * Restore HTML inside elements marked `data-minify-inline`, then strip the
4
3
  * marker attribute and trim formatter-injected whitespace.
@@ -24,5 +23,4 @@
24
23
  * the same formatter-vs-inline-structure problem can opt in.
25
24
  */
26
25
  export declare function minifyCodeInline(html: string): string;
27
- //#endregion
28
26
  //# sourceMappingURL=minifyCodeInline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"minifyCodeInline.d.ts","names":[],"sources":["../../src/transformers/minifyCodeInline.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;wBAwBgB,iBAAiB"}
1
+ {"version":3,"file":"minifyCodeInline.d.ts","names":[],"sources":["../../src/transformers/minifyCodeInline.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;wBAwBgB,iBAAiB"}
@@ -1,4 +1,4 @@
1
- //#region src/transformers/minifyCodeInline.ts
1
+ // src/transformers/minifyCodeInline.ts
2
2
  /**
3
3
  * Restore HTML inside elements marked `data-minify-inline`, then strip the
4
4
  * marker attribute and trim formatter-injected whitespace.
@@ -30,7 +30,6 @@ function minifyCodeInline(html) {
30
30
  return `${cleanedAttrs ? `<${tag} ${cleanedAttrs}>` : `<${tag}>`}${contents.replace(/§MZLT§/g, "<").replace(/§MZGT§/g, ">").trim()}</${tag}>`;
31
31
  });
32
32
  }
33
- //#endregion
34
33
  export { minifyCodeInline };
35
34
 
36
35
  //# sourceMappingURL=minifyCodeInline.js.map
@@ -1,4 +1,2 @@
1
- //#region src/transformers/msoConditionals.d.ts
2
1
  export declare function msoConditionals(html: string): string;
3
- //#endregion
4
2
  //# sourceMappingURL=msoConditionals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"msoConditionals.d.ts","names":[],"sources":["../../src/transformers/msoConditionals.ts"],"mappings":";wBAkBgB,gBAAgB"}
1
+ {"version":3,"file":"msoConditionals.d.ts","names":[],"sources":["../../src/transformers/msoConditionals.ts"],"mappings":"A,wBAkBgB,gBAAgB"}
@@ -1,4 +1,4 @@
1
- //#region src/transformers/msoConditionals.ts
1
+ // src/transformers/msoConditionals.ts
2
2
  /**
3
3
  * Resolve the placeholder comments emitted by `<Outlook>` into real MSO
4
4
  * conditional comments.
@@ -19,7 +19,6 @@ const RE_CLOSE = /<!--\[if mso\]>__MAIZZLE_MSO_CLOSE__<!\[endif\]-->/g;
19
19
  function msoConditionals(html) {
20
20
  return html.replace(RE_OPEN, "<!--[if $1]>").replace(RE_CLOSE, "<![endif]-->");
21
21
  }
22
- //#endregion
23
22
  export { msoConditionals };
24
23
 
25
24
  //# sourceMappingURL=msoConditionals.js.map
@@ -1,5 +1,4 @@
1
1
  import { ChildNode } from "domhandler";
2
- //#region src/transformers/msoPlaceholders.d.ts
3
2
  /**
4
3
  * Resolve all `__MAIZZLE_MSO*__` placeholders inside MSO conditional comments
5
4
  * by reading inlined style + `data-*` markers on the paired elements.
@@ -27,5 +26,4 @@ import { ChildNode } from "domhandler";
27
26
  * carries both marker kinds, so one element visit fills both maps.
28
27
  */
29
28
  export declare function msoPlaceholders(dom: ChildNode[]): ChildNode[];
30
- //#endregion
31
29
  //# sourceMappingURL=msoPlaceholders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"msoPlaceholders.d.ts","names":[],"sources":["../../src/transformers/msoPlaceholders.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA8CgB,gBAAgB,KAAK,cAAc"}
1
+ {"version":3,"file":"msoPlaceholders.d.ts","names":[],"sources":["../../src/transformers/msoPlaceholders.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;wBA8CgB,gBAAgB,KAAK,cAAc"}
@@ -2,7 +2,7 @@ import { walk } from "../utils/ast/walker.js";
2
2
  import "../utils/ast/index.js";
3
3
  import { horizontalBorderPx } from "../utils/cssBox.js";
4
4
  import safeParser from "postcss-safe-parser";
5
- //#region src/transformers/msoPlaceholders.ts
5
+ // src/transformers/msoPlaceholders.ts
6
6
  const RE_MAX_WIDTH = /(?:^|;\s*)max-width:\s*([^;]+)/i;
7
7
  const RE_WIDTH = /(?:^|;\s*)width:\s*([^;]+)/i;
8
8
  const RE_PERCENT = /^[\d.]+%$/;
@@ -108,7 +108,6 @@ function msoPlaceholders(dom) {
108
108
  });
109
109
  return dom;
110
110
  }
111
- //#endregion
112
111
  export { msoPlaceholders };
113
112
 
114
113
  //# sourceMappingURL=msoPlaceholders.js.map
@@ -1,6 +1,5 @@
1
1
  import { ChildNode } from "domhandler";
2
2
  import { Opts } from "email-comb";
3
- //#region src/transformers/purgeCss.d.ts
4
3
  /**
5
4
  * Options for the `purgeCss` transformer.
6
5
  */
@@ -37,5 +36,4 @@ export declare function purgeCss(html: string, options?: PurgeCssOptions): strin
37
36
  * serialize/parse round-trips when chained with other transformers.
38
37
  */
39
38
  export declare function purgeCssDom(dom: ChildNode[], options?: PurgeCssOptions): ChildNode[];
40
- //#endregion
41
39
  //# sourceMappingURL=purgeCss.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"purgeCss.d.ts","names":["CombOptions"],"sources":["../../src/transformers/purgeCss.ts"],"mappings":";;;;;;iBAsCiB,wBAAwB,QAAQ,KAAKA;;;;;;EAMpD;;;;;;;;;;;;;;;;;;;;wBAqBc,SAAS,cAAc,UAAS;;;;;;wBAShC,YAAY,KAAK,aAAa,UAAS,kBAAuB"}
1
+ {"version":3,"file":"purgeCss.d.ts","names":["CombOptions"],"sources":["../../src/transformers/purgeCss.ts"],"mappings":";;;;;iBAsCiB,wBAAwB,QAAQ,KAAKA;;;;;;EAMpD;;;;;;;;;;;;;;;;;;;;wBAqBc,SAAS,cAAc,UAAS;;;;;;wBAShC,YAAY,KAAK,aAAa,UAAS,kBAAuB"}
@@ -6,7 +6,7 @@ import { defu as defu$1 } from "defu";
6
6
  import safeParser from "postcss-safe-parser";
7
7
  import { selectAll } from "css-select";
8
8
  import { comb } from "email-comb";
9
- //#region src/transformers/purgeCss.ts
9
+ // src/transformers/purgeCss.ts
10
10
  const DEFAULT_SAFELIST = [
11
11
  "*body*",
12
12
  ".gmail*",
@@ -201,7 +201,6 @@ function deepPurge(dom, safelist) {
201
201
  });
202
202
  return dom;
203
203
  }
204
- //#endregion
205
204
  export { purgeCss, purgeCssDom };
206
205
 
207
206
  //# sourceMappingURL=purgeCss.js.map
@@ -1,5 +1,4 @@
1
1
  import { ChildNode } from "domhandler";
2
- //#region src/transformers/removeAttributes.d.ts
3
2
  /**
4
3
  * Single attribute-removal rule.
5
4
  */
@@ -48,5 +47,4 @@ export declare function removeAttributes(html: string, attributes?: RemoveAttrib
48
47
  * serialize/parse round-trips when chained with other transformers.
49
48
  */
50
49
  export declare function removeAttributesDom(dom: ChildNode[], attributes?: RemoveAttributeOption[]): ChildNode[];
51
- //#endregion
52
50
  //# sourceMappingURL=removeAttributes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"removeAttributes.d.ts","names":[],"sources":["../../src/transformers/removeAttributes.ts"],"mappings":";;;;;iBAMiB;;EAEf;;;;;;;EAOA,iBAAiB;;;;;;YAOP,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;wBAwB7B,iBAAiB,cAAc,aAAY;;;;;;wBAS3C,oBAAoB,KAAK,aAAa,aAAY,0BAA+B"}
1
+ {"version":3,"file":"removeAttributes.d.ts","names":[],"sources":["../../src/transformers/removeAttributes.ts"],"mappings":";;;;iBAMiB;;EAEf;;;;;;;EAOA,iBAAiB;;;;;;YAOP,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;wBAwB7B,iBAAiB,cAAc,aAAY;;;;;;wBAS3C,oBAAoB,KAAK,aAAa,aAAY,0BAA+B"}
@@ -2,7 +2,7 @@ import { parse } from "../utils/ast/parser.js";
2
2
  import { walk } from "../utils/ast/walker.js";
3
3
  import { serialize } from "../utils/ast/serializer.js";
4
4
  import "../utils/ast/index.js";
5
- //#region src/transformers/removeAttributes.ts
5
+ // src/transformers/removeAttributes.ts
6
6
  /**
7
7
  * Remove HTML attributes from elements.
8
8
  *
@@ -66,7 +66,6 @@ function removeAttributesDom(dom, attributes = []) {
66
66
  });
67
67
  return dom;
68
68
  }
69
- //#endregion
70
69
  export { removeAttributes, removeAttributesDom };
71
70
 
72
71
  //# sourceMappingURL=removeAttributes.js.map
@@ -1,5 +1,4 @@
1
1
  import { MaizzleConfig } from "../types/config.js";
2
- //#region src/transformers/replaceStrings.d.ts
3
2
  /**
4
3
  * Replace strings transformer.
5
4
  *
@@ -10,5 +9,4 @@ import { MaizzleConfig } from "../types/config.js";
10
9
  * Character classes must be escaped in keys, e.g. `\\s` for `\s`.
11
10
  */
12
11
  export declare function replaceStrings(html: string, config?: MaizzleConfig): string;
13
- //#endregion
14
12
  //# sourceMappingURL=replaceStrings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"replaceStrings.d.ts","names":[],"sources":["../../src/transformers/replaceStrings.ts"],"mappings":";;;;;;;;;;;wBAWgB,eAAe,cAAc,SAAQ"}
1
+ {"version":3,"file":"replaceStrings.d.ts","names":[],"sources":["../../src/transformers/replaceStrings.ts"],"mappings":";;;;;;;;;;wBAWgB,eAAe,cAAc,SAAQ"}
@@ -1,4 +1,4 @@
1
- //#region src/transformers/replaceStrings.ts
1
+ // src/transformers/replaceStrings.ts
2
2
  /**
3
3
  * Replace strings transformer.
4
4
  *
@@ -13,7 +13,6 @@ function replaceStrings(html, config = {}) {
13
13
  if (!replacements || Object.keys(replacements).length === 0) return html;
14
14
  return Object.entries(replacements).reduce((result, [pattern, replacement]) => result.replace(new RegExp(pattern, "gi"), replacement), html);
15
15
  }
16
- //#endregion
17
16
  export { replaceStrings };
18
17
 
19
18
  //# sourceMappingURL=replaceStrings.js.map
@@ -1,6 +1,5 @@
1
1
  import { CssConfig } from "../types/config.js";
2
2
  import { ChildNode } from "domhandler";
3
- //#region src/transformers/safeSelectors.d.ts
4
3
  /**
5
4
  * Safe selectors transformer.
6
5
  *
@@ -31,5 +30,4 @@ export declare function safeSelectors(html: string, config?: CssConfig): string;
31
30
  * serialize/parse round-trips when chained with other transformers.
32
31
  */
33
32
  export declare function safeSelectorsDom(dom: ChildNode[], config?: CssConfig): ChildNode[];
34
- //#endregion
35
33
  //# sourceMappingURL=safeSelectors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"safeSelectors.d.ts","names":[],"sources":["../../src/transformers/safeSelectors.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;wBA2HgB,cAAc,cAAc,SAAQ;;;;;;wBASpC,iBAAiB,KAAK,aAAa,SAAQ,YAAiB"}
1
+ {"version":3,"file":"safeSelectors.d.ts","names":[],"sources":["../../src/transformers/safeSelectors.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;wBA2HgB,cAAc,cAAc,SAAQ;;;;;;wBASpC,iBAAiB,KAAK,aAAa,SAAQ,YAAiB"}
@@ -4,7 +4,7 @@ import { serialize } from "../utils/ast/serializer.js";
4
4
  import "../utils/ast/index.js";
5
5
  import postcss from "postcss";
6
6
  import safeParser from "postcss-safe-parser";
7
- //#region src/transformers/safeSelectors.ts
7
+ // src/transformers/safeSelectors.ts
8
8
  const DEFAULT_REPLACEMENTS = {
9
9
  ":": "-",
10
10
  "/": "-",
@@ -127,7 +127,6 @@ function safeSelectorsDom(dom, config = {}) {
127
127
  });
128
128
  return dom;
129
129
  }
130
- //#endregion
131
130
  export { safeSelectors, safeSelectorsDom };
132
131
 
133
132
  //# sourceMappingURL=safeSelectors.js.map
@@ -1,5 +1,4 @@
1
1
  import { ChildNode } from "domhandler";
2
- //#region src/transformers/shorthandCss.d.ts
3
2
  /**
4
3
  * Options for the `shorthandCss` transformer.
5
4
  */
@@ -19,5 +18,4 @@ export declare function shorthandCss(html: string, options?: ShorthandCssOptions
19
18
  * serialize/parse round-trips when chained with other transformers.
20
19
  */
21
20
  export declare function shorthandCssDom(dom: ChildNode[], options?: ShorthandCssOptions): ChildNode[];
22
- //#endregion
23
21
  //# sourceMappingURL=shorthandCss.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shorthandCss.d.ts","names":[],"sources":["../../src/transformers/shorthandCss.ts"],"mappings":";;;;;iBASiB;;;;;;;EAOf;;wBAwEc,aAAa,cAAc,UAAS;;;;;;wBASpC,gBAAgB,KAAK,aAAa,UAAS,sBAA2B"}
1
+ {"version":3,"file":"shorthandCss.d.ts","names":[],"sources":["../../src/transformers/shorthandCss.ts"],"mappings":";;;;iBASiB;;;;;;;EAOf;;wBAwEc,aAAa,cAAc,UAAS;;;;;;wBASpC,gBAAgB,KAAK,aAAa,UAAS,sBAA2B"}
@@ -5,7 +5,7 @@ import "../utils/ast/index.js";
5
5
  import postcss, { list } from "postcss";
6
6
  import safeParser from "postcss-safe-parser";
7
7
  import mergeLonghand from "postcss-merge-longhand";
8
- //#region src/transformers/shorthandCss.ts
8
+ // src/transformers/shorthandCss.ts
9
9
  /**
10
10
  * Rewrite longhand CSS inside inline `style` attributes with shorthand
11
11
  * syntax. Works with margin, padding, and border when all sides are
@@ -126,7 +126,6 @@ function shorthandCssDom(dom, options = {}) {
126
126
  });
127
127
  return dom;
128
128
  }
129
- //#endregion
130
129
  export { shorthandCss, shorthandCssDom };
131
130
 
132
131
  //# sourceMappingURL=shorthandCss.js.map
@@ -1,5 +1,4 @@
1
1
  import { ChildNode } from "domhandler";
2
- //#region src/transformers/sixHex.d.ts
3
2
  /**
4
3
  * Convert 3-digit HEX color codes to 6-digit in `bgcolor` and `color`
5
4
  * attributes, for better email client compatibility.
@@ -19,5 +18,4 @@ export declare function sixHex(html: string): string;
19
18
  * serialize/parse round-trips when chained with other transformers.
20
19
  */
21
20
  export declare function sixHexDom(dom: ChildNode[]): ChildNode[];
22
- //#endregion
23
21
  //# sourceMappingURL=sixHex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sixHex.d.ts","names":[],"sources":["../../src/transformers/sixHex.ts"],"mappings":";;;;;;;;;;;;;;wBAkBgB,OAAO;;;;;;wBASP,UAAU,KAAK,cAAc"}
1
+ {"version":3,"file":"sixHex.d.ts","names":[],"sources":["../../src/transformers/sixHex.ts"],"mappings":";;;;;;;;;;;;;wBAkBgB,OAAO;;;;;;wBASP,UAAU,KAAK,cAAc"}
@@ -3,7 +3,7 @@ import { walk } from "../utils/ast/walker.js";
3
3
  import { serialize } from "../utils/ast/serializer.js";
4
4
  import "../utils/ast/index.js";
5
5
  import { conv } from "color-shorthand-hex-to-six-digit";
6
- //#region src/transformers/sixHex.ts
6
+ // src/transformers/sixHex.ts
7
7
  const targets = /* @__PURE__ */ new Set(["bgcolor", "color"]);
8
8
  /**
9
9
  * Convert 3-digit HEX color codes to 6-digit in `bgcolor` and `color`
@@ -36,7 +36,6 @@ function sixHexDom(dom) {
36
36
  });
37
37
  return dom;
38
38
  }
39
- //#endregion
40
39
  export { sixHex, sixHexDom };
41
40
 
42
41
  //# sourceMappingURL=sixHex.js.map
@@ -1,7 +1,6 @@
1
1
  import { MaizzleConfig } from "../types/config.js";
2
2
  import { TailwindBlock } from "../composables/renderContext.js";
3
3
  import { ChildNode } from "domhandler";
4
- //#region src/transformers/tailwindComponent.d.ts
5
4
  /**
6
5
  * Compile Tailwind CSS for each top-level <Tailwind> block in the render
7
6
  * context. Nested <Tailwind> instances are flattened: their classes flow
@@ -10,5 +9,4 @@ import { ChildNode } from "domhandler";
10
9
  * are stripped after.
11
10
  */
12
11
  export declare function tailwindComponent(dom: ChildNode[], blocks: TailwindBlock[], config: MaizzleConfig, filePath?: string, sourceFiles?: string[]): Promise<ChildNode[]>;
13
- //#endregion
14
12
  //# sourceMappingURL=tailwindComponent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tailwindComponent.d.ts","names":[],"sources":["../../src/transformers/tailwindComponent.ts"],"mappings":";;;;;;;;;;;wBA2BsB,kBACpB,KAAK,aACL,QAAQ,iBACR,QAAQ,eACR,mBACA,yBACC,QAAQ"}
1
+ {"version":3,"file":"tailwindComponent.d.ts","names":[],"sources":["../../src/transformers/tailwindComponent.ts"],"mappings":";;;;;;;;;;wBA2BsB,kBACpB,KAAK,aACL,QAAQ,iBACR,QAAQ,eACR,mBACA,yBACC,QAAQ"}
@@ -3,7 +3,7 @@ import "../utils/ast/index.js";
3
3
  import { compileTailwindCss } from "../utils/compileTailwindCss.js";
4
4
  import { rewriteImportsSourceNone } from "./tailwindcss.js";
5
5
  import { dirname, relative, resolve } from "pathe";
6
- //#region src/transformers/tailwindComponent.ts
6
+ // src/transformers/tailwindComponent.ts
7
7
  const DEFAULT_SEED = "@import \"@maizzle/tailwindcss\" source(none);";
8
8
  const OPEN_RE = /^mz-tw:(\S+)$/;
9
9
  const CLOSE_RE = /^\/mz-tw:(\S+)$/;
@@ -114,7 +114,6 @@ function buildCssInput(configCss, classes, scope) {
114
114
  }
115
115
  return parts.length ? `${seed}\n${parts.join("\n")}` : seed;
116
116
  }
117
- //#endregion
118
117
  export { tailwindComponent };
119
118
 
120
119
  //# sourceMappingURL=tailwindComponent.js.map
@@ -1,6 +1,5 @@
1
1
  import { MaizzleConfig } from "../types/config.js";
2
2
  import { ChildNode } from "domhandler";
3
- //#region src/transformers/tailwindcss.d.ts
4
3
  /**
5
4
  * Append ` source(none)` to Tailwind imports so auto source detection
6
5
  * is off and only our explicit `@source` directives apply. Skips
@@ -25,5 +24,4 @@ export declare function rewriteImportsSourceNone(css: string): string;
25
24
  * transformers (inliner, purge, etc.) work with fully compiled CSS.
26
25
  */
27
26
  export declare function tailwindcss(dom: ChildNode[], config: MaizzleConfig, filePath?: string, sourceFiles?: string[]): Promise<ChildNode[]>;
28
- //#endregion
29
27
  //# sourceMappingURL=tailwindcss.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tailwindcss.d.ts","names":[],"sources":["../../src/transformers/tailwindcss.ts"],"mappings":";;;;;;;;wBAgKgB,yBAAyB;;;;;;;;;;;;;;;;;;wBAwBnB,YAAY,KAAK,aAAa,QAAQ,eAAe,mBAAmB,yBAAyB,QAAQ"}
1
+ {"version":3,"file":"tailwindcss.d.ts","names":[],"sources":["../../src/transformers/tailwindcss.ts"],"mappings":";;;;;;;wBAgKgB,yBAAyB;;;;;;;;;;;;;;;;;;wBAwBnB,YAAY,KAAK,aAAa,QAAQ,eAAe,mBAAmB,yBAAyB,QAAQ"}
@@ -3,7 +3,7 @@ import "../utils/ast/index.js";
3
3
  import { decodeStyleEntities } from "../utils/decodeStyleEntities.js";
4
4
  import { compileTailwindCss } from "../utils/compileTailwindCss.js";
5
5
  import { dirname, relative, resolve } from "pathe";
6
- //#region src/transformers/tailwindcss.ts
6
+ // src/transformers/tailwindcss.ts
7
7
  /**
8
8
  * Check if CSS content uses Tailwind features that require source scanning.
9
9
  *
@@ -203,7 +203,6 @@ async function tailwindcss(dom, config, filePath, sourceFiles) {
203
203
  }
204
204
  return dom;
205
205
  }
206
- //#endregion
207
206
  export { rewriteImportsSourceNone, tailwindcss };
208
207
 
209
208
  //# sourceMappingURL=tailwindcss.js.map