@maizzle/framework 6.0.0-rc.15 → 6.0.0-rc.17

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 (250) hide show
  1. package/README.md +3 -3
  2. package/dist/{build.d.mts → build.d.ts} +2 -2
  3. package/dist/build.d.ts.map +1 -0
  4. package/dist/build.mjs +1 -1
  5. package/dist/build.mjs.map +1 -1
  6. package/dist/components/Body.vue +9 -2
  7. package/dist/components/Button.vue +13 -8
  8. package/dist/components/Column.vue +22 -8
  9. package/dist/components/Container.vue +9 -5
  10. package/dist/components/Html.vue +7 -2
  11. package/dist/components/Layout.vue +30 -15
  12. package/dist/components/Overlap.vue +8 -3
  13. package/dist/components/Raw.vue +28 -0
  14. package/dist/components/Row.vue +23 -11
  15. package/dist/components/Section.vue +9 -5
  16. package/dist/components/Spacer.vue +9 -4
  17. package/dist/components/Tailwind.vue +43 -0
  18. package/dist/components/{utils.d.mts → utils.d.ts} +12 -2
  19. package/dist/components/utils.d.ts.map +1 -0
  20. package/dist/components/utils.mjs +11 -1
  21. package/dist/components/utils.mjs.map +1 -1
  22. package/dist/components/utils.ts +12 -0
  23. package/dist/composables/{defineConfig.d.mts → defineConfig.d.ts} +2 -2
  24. package/dist/composables/defineConfig.d.ts.map +1 -0
  25. package/dist/composables/{renderContext.d.mts → renderContext.d.ts} +11 -5
  26. package/dist/composables/renderContext.d.ts.map +1 -0
  27. package/dist/composables/renderContext.mjs.map +1 -1
  28. package/dist/composables/{useConfig.d.mts → useConfig.d.ts} +2 -2
  29. package/dist/composables/useConfig.d.ts.map +1 -0
  30. package/dist/composables/{useDoctype.d.mts → useDoctype.d.ts} +1 -1
  31. package/dist/composables/useDoctype.d.ts.map +1 -0
  32. package/dist/composables/{useEvent.d.mts → useEvent.d.ts} +2 -2
  33. package/dist/composables/useEvent.d.ts.map +1 -0
  34. package/dist/composables/{useFont.d.mts → useFont.d.ts} +1 -1
  35. package/dist/composables/useFont.d.ts.map +1 -0
  36. package/dist/composables/useOutlookFallback.d.ts +21 -0
  37. package/dist/composables/useOutlookFallback.d.ts.map +1 -0
  38. package/dist/composables/useOutlookFallback.mjs +30 -0
  39. package/dist/composables/useOutlookFallback.mjs.map +1 -0
  40. package/dist/composables/{usePlaintext.d.mts → usePlaintext.d.ts} +1 -1
  41. package/dist/composables/usePlaintext.d.ts.map +1 -0
  42. package/dist/composables/{usePreheader.d.mts → usePreheader.d.ts} +1 -1
  43. package/dist/composables/usePreheader.d.ts.map +1 -0
  44. package/dist/config/{defaults.d.mts → defaults.d.ts} +2 -2
  45. package/dist/config/defaults.d.ts.map +1 -0
  46. package/dist/config/{index.d.mts → index.d.ts} +4 -4
  47. package/dist/config/index.d.ts.map +1 -0
  48. package/dist/events/{index.d.mts → index.d.ts} +2 -2
  49. package/dist/events/index.d.ts.map +1 -0
  50. package/dist/index.d.ts +34 -0
  51. package/dist/index.mjs +2 -1
  52. package/dist/{plaintext.d.mts → plaintext.d.ts} +1 -1
  53. package/dist/plaintext.d.ts.map +1 -0
  54. package/dist/{plugin.d.mts → plugin.d.ts} +2 -2
  55. package/dist/plugin.d.ts.map +1 -0
  56. package/dist/plugins/postcss/{mergeMediaQueries.d.mts → mergeMediaQueries.d.ts} +2 -2
  57. package/dist/plugins/postcss/mergeMediaQueries.d.ts.map +1 -0
  58. package/dist/plugins/postcss/{pruneVars.d.mts → pruneVars.d.ts} +1 -1
  59. package/dist/plugins/postcss/pruneVars.d.ts.map +1 -0
  60. package/dist/plugins/postcss/{quoteFontFamilies.d.mts → quoteFontFamilies.d.ts} +1 -1
  61. package/dist/plugins/postcss/quoteFontFamilies.d.ts.map +1 -0
  62. package/dist/plugins/postcss/{removeDeclarations.d.mts → removeDeclarations.d.ts} +1 -1
  63. package/dist/plugins/postcss/removeDeclarations.d.ts.map +1 -0
  64. package/dist/plugins/postcss/resolveMaizzleImports.d.ts +16 -0
  65. package/dist/plugins/postcss/resolveMaizzleImports.d.ts.map +1 -0
  66. package/dist/plugins/postcss/resolveMaizzleImports.mjs +40 -0
  67. package/dist/plugins/postcss/resolveMaizzleImports.mjs.map +1 -0
  68. package/dist/plugins/postcss/{resolveProps.d.mts → resolveProps.d.ts} +1 -1
  69. package/dist/plugins/postcss/resolveProps.d.ts.map +1 -0
  70. package/dist/plugins/postcss/{tailwindCleanup.d.mts → tailwindCleanup.d.ts} +2 -2
  71. package/dist/plugins/postcss/tailwindCleanup.d.ts.map +1 -0
  72. package/dist/{prepare.d.mts → prepare.d.ts} +1 -1
  73. package/dist/prepare.d.ts.map +1 -0
  74. package/dist/render/{createRenderer.d.mts → createRenderer.d.ts} +4 -3
  75. package/dist/render/createRenderer.d.ts.map +1 -0
  76. package/dist/render/createRenderer.mjs +9 -76
  77. package/dist/render/createRenderer.mjs.map +1 -1
  78. package/dist/render/index.d.ts +18 -0
  79. package/dist/render/index.d.ts.map +1 -0
  80. package/dist/render/index.mjs +13 -14
  81. package/dist/render/index.mjs.map +1 -1
  82. package/dist/render/{injectFonts.d.mts → injectFonts.d.ts} +2 -2
  83. package/dist/render/injectFonts.d.ts.map +1 -0
  84. package/dist/render/plugins/codeBlockExtract.d.ts +14 -0
  85. package/dist/render/plugins/codeBlockExtract.d.ts.map +1 -0
  86. package/dist/render/plugins/codeBlockExtract.mjs +34 -0
  87. package/dist/render/plugins/codeBlockExtract.mjs.map +1 -0
  88. package/dist/render/plugins/markdownExtract.d.ts +12 -0
  89. package/dist/render/plugins/markdownExtract.d.ts.map +1 -0
  90. package/dist/render/plugins/markdownExtract.mjs +50 -0
  91. package/dist/render/plugins/markdownExtract.mjs.map +1 -0
  92. package/dist/render/plugins/rawExtract.d.ts +14 -0
  93. package/dist/render/plugins/rawExtract.d.ts.map +1 -0
  94. package/dist/render/plugins/rawExtract.mjs +34 -0
  95. package/dist/render/plugins/rawExtract.mjs.map +1 -0
  96. package/dist/render/plugins/{rowSourceLocation.d.mts → rowSourceLocation.d.ts} +1 -1
  97. package/dist/render/plugins/rowSourceLocation.d.ts.map +1 -0
  98. package/dist/{serve.d.mts → serve.d.ts} +2 -2
  99. package/dist/serve.d.ts.map +1 -0
  100. package/dist/serve.mjs +15 -6
  101. package/dist/serve.mjs.map +1 -1
  102. package/dist/server/{compatibility.d.mts → compatibility.d.ts} +2 -2
  103. package/dist/server/compatibility.d.ts.map +1 -0
  104. package/dist/server/{email.d.mts → email.d.ts} +2 -2
  105. package/dist/server/email.d.ts.map +1 -0
  106. package/dist/server/{linter.d.mts → linter.d.ts} +2 -2
  107. package/dist/server/linter.d.ts.map +1 -0
  108. package/dist/server/{sfc-utils.d.mts → sfc-utils.d.ts} +1 -1
  109. package/dist/server/sfc-utils.d.ts.map +1 -0
  110. package/dist/server/ui/App.vue +47 -2
  111. package/dist/server/ui/pages/Preview.vue +110 -22
  112. package/dist/transformers/{addAttributes.d.mts → addAttributes.d.ts} +2 -2
  113. package/dist/transformers/addAttributes.d.ts.map +1 -0
  114. package/dist/transformers/{attributeToStyle.d.mts → attributeToStyle.d.ts} +2 -2
  115. package/dist/transformers/attributeToStyle.d.ts.map +1 -0
  116. package/dist/transformers/{base.d.mts → base.d.ts} +2 -2
  117. package/dist/transformers/base.d.ts.map +1 -0
  118. package/dist/transformers/{columnWidth.d.mts → columnWidth.d.ts} +10 -10
  119. package/dist/transformers/columnWidth.d.ts.map +1 -0
  120. package/dist/transformers/columnWidth.mjs +422 -41
  121. package/dist/transformers/columnWidth.mjs.map +1 -1
  122. package/dist/transformers/{entities.d.mts → entities.d.ts} +2 -2
  123. package/dist/transformers/entities.d.ts.map +1 -0
  124. package/dist/transformers/filters/{defaults.d.mts → defaults.d.ts} +1 -1
  125. package/dist/transformers/filters/defaults.d.ts.map +1 -0
  126. package/dist/transformers/filters/{index.d.mts → index.d.ts} +2 -2
  127. package/dist/transformers/filters/index.d.ts.map +1 -0
  128. package/dist/transformers/{format.d.mts → format.d.ts} +2 -2
  129. package/dist/transformers/format.d.ts.map +1 -0
  130. package/dist/transformers/{index.d.mts → index.d.ts} +4 -3
  131. package/dist/transformers/index.d.ts.map +1 -0
  132. package/dist/transformers/index.mjs +3 -1
  133. package/dist/transformers/index.mjs.map +1 -1
  134. package/dist/transformers/{inlineCSS.d.mts → inlineCSS.d.ts} +2 -2
  135. package/dist/transformers/inlineCSS.d.ts.map +1 -0
  136. package/dist/transformers/inlineCSS.mjs +7 -1
  137. package/dist/transformers/inlineCSS.mjs.map +1 -1
  138. package/dist/transformers/{inlineLink.d.mts → inlineLink.d.ts} +1 -1
  139. package/dist/transformers/inlineLink.d.ts.map +1 -0
  140. package/dist/transformers/{minify.d.mts → minify.d.ts} +2 -2
  141. package/dist/transformers/minify.d.ts.map +1 -0
  142. package/dist/transformers/{msoWidthFromClass.d.mts → msoWidthFromClass.d.ts} +1 -1
  143. package/dist/transformers/msoWidthFromClass.d.ts.map +1 -0
  144. package/dist/transformers/{purgeCSS.d.mts → purgeCSS.d.ts} +2 -2
  145. package/dist/transformers/purgeCSS.d.ts.map +1 -0
  146. package/dist/transformers/purgeCSS.mjs +44 -2
  147. package/dist/transformers/purgeCSS.mjs.map +1 -1
  148. package/dist/transformers/{removeAttributes.d.mts → removeAttributes.d.ts} +2 -2
  149. package/dist/transformers/removeAttributes.d.ts.map +1 -0
  150. package/dist/transformers/{replaceStrings.d.mts → replaceStrings.d.ts} +2 -2
  151. package/dist/transformers/replaceStrings.d.ts.map +1 -0
  152. package/dist/transformers/{safeClassNames.d.mts → safeClassNames.d.ts} +2 -2
  153. package/dist/transformers/safeClassNames.d.ts.map +1 -0
  154. package/dist/transformers/{shorthandCSS.d.mts → shorthandCSS.d.ts} +2 -2
  155. package/dist/transformers/shorthandCSS.d.ts.map +1 -0
  156. package/dist/transformers/{sixHex.d.mts → sixHex.d.ts} +2 -2
  157. package/dist/transformers/sixHex.d.ts.map +1 -0
  158. package/dist/transformers/tailwindComponent.d.ts +16 -0
  159. package/dist/transformers/tailwindComponent.d.ts.map +1 -0
  160. package/dist/transformers/tailwindComponent.mjs +93 -0
  161. package/dist/transformers/tailwindComponent.mjs.map +1 -0
  162. package/dist/transformers/{tailwindcss.d.mts → tailwindcss.d.ts} +2 -2
  163. package/dist/transformers/tailwindcss.d.ts.map +1 -0
  164. package/dist/transformers/tailwindcss.mjs +2 -54
  165. package/dist/transformers/tailwindcss.mjs.map +1 -1
  166. package/dist/transformers/{urlQuery.d.mts → urlQuery.d.ts} +2 -2
  167. package/dist/transformers/urlQuery.d.ts.map +1 -0
  168. package/dist/types/{config.d.mts → config.d.ts} +2 -2
  169. package/dist/types/config.d.ts.map +1 -0
  170. package/dist/types/{index.d.mts → index.d.ts} +1 -1
  171. package/dist/utils/ast/index.d.ts +4 -0
  172. package/dist/utils/ast/{parser.d.mts → parser.d.ts} +1 -1
  173. package/dist/utils/ast/parser.d.ts.map +1 -0
  174. package/dist/utils/ast/{serializer.d.mts → serializer.d.ts} +1 -1
  175. package/dist/utils/ast/serializer.d.ts.map +1 -0
  176. package/dist/utils/ast/{walker.d.mts → walker.d.ts} +1 -1
  177. package/dist/utils/ast/walker.d.ts.map +1 -0
  178. package/dist/utils/compileTailwindCss.d.ts +16 -0
  179. package/dist/utils/compileTailwindCss.d.ts.map +1 -0
  180. package/dist/utils/compileTailwindCss.mjs +55 -0
  181. package/dist/utils/compileTailwindCss.mjs.map +1 -0
  182. package/dist/utils/{decodeStyleEntities.d.mts → decodeStyleEntities.d.ts} +1 -1
  183. package/dist/utils/decodeStyleEntities.d.ts.map +1 -0
  184. package/dist/utils/{detect.d.mts → detect.d.ts} +1 -1
  185. package/dist/utils/detect.d.ts.map +1 -0
  186. package/dist/utils/{url.d.mts → url.d.ts} +1 -1
  187. package/dist/utils/url.d.ts.map +1 -0
  188. package/package.json +13 -6
  189. package/dist/build.d.mts.map +0 -1
  190. package/dist/components/utils.d.mts.map +0 -1
  191. package/dist/composables/defineConfig.d.mts.map +0 -1
  192. package/dist/composables/renderContext.d.mts.map +0 -1
  193. package/dist/composables/useConfig.d.mts.map +0 -1
  194. package/dist/composables/useDoctype.d.mts.map +0 -1
  195. package/dist/composables/useEvent.d.mts.map +0 -1
  196. package/dist/composables/useFont.d.mts.map +0 -1
  197. package/dist/composables/usePlaintext.d.mts.map +0 -1
  198. package/dist/composables/usePreheader.d.mts.map +0 -1
  199. package/dist/config/defaults.d.mts.map +0 -1
  200. package/dist/config/index.d.mts.map +0 -1
  201. package/dist/events/index.d.mts.map +0 -1
  202. package/dist/index.d.mts +0 -33
  203. package/dist/plaintext.d.mts.map +0 -1
  204. package/dist/plugin.d.mts.map +0 -1
  205. package/dist/plugins/postcss/mergeMediaQueries.d.mts.map +0 -1
  206. package/dist/plugins/postcss/pruneVars.d.mts.map +0 -1
  207. package/dist/plugins/postcss/quoteFontFamilies.d.mts.map +0 -1
  208. package/dist/plugins/postcss/removeDeclarations.d.mts.map +0 -1
  209. package/dist/plugins/postcss/resolveProps.d.mts.map +0 -1
  210. package/dist/plugins/postcss/tailwindCleanup.d.mts.map +0 -1
  211. package/dist/prepare.d.mts.map +0 -1
  212. package/dist/render/createRenderer.d.mts.map +0 -1
  213. package/dist/render/index.d.mts +0 -26
  214. package/dist/render/index.d.mts.map +0 -1
  215. package/dist/render/injectFonts.d.mts.map +0 -1
  216. package/dist/render/plugins/rowSourceLocation.d.mts.map +0 -1
  217. package/dist/serve.d.mts.map +0 -1
  218. package/dist/server/compatibility.d.mts.map +0 -1
  219. package/dist/server/email.d.mts.map +0 -1
  220. package/dist/server/linter.d.mts.map +0 -1
  221. package/dist/server/sfc-utils.d.mts.map +0 -1
  222. package/dist/transformers/addAttributes.d.mts.map +0 -1
  223. package/dist/transformers/attributeToStyle.d.mts.map +0 -1
  224. package/dist/transformers/base.d.mts.map +0 -1
  225. package/dist/transformers/columnWidth.d.mts.map +0 -1
  226. package/dist/transformers/entities.d.mts.map +0 -1
  227. package/dist/transformers/filters/defaults.d.mts.map +0 -1
  228. package/dist/transformers/filters/index.d.mts.map +0 -1
  229. package/dist/transformers/format.d.mts.map +0 -1
  230. package/dist/transformers/index.d.mts.map +0 -1
  231. package/dist/transformers/inlineCSS.d.mts.map +0 -1
  232. package/dist/transformers/inlineLink.d.mts.map +0 -1
  233. package/dist/transformers/minify.d.mts.map +0 -1
  234. package/dist/transformers/msoWidthFromClass.d.mts.map +0 -1
  235. package/dist/transformers/purgeCSS.d.mts.map +0 -1
  236. package/dist/transformers/removeAttributes.d.mts.map +0 -1
  237. package/dist/transformers/replaceStrings.d.mts.map +0 -1
  238. package/dist/transformers/safeClassNames.d.mts.map +0 -1
  239. package/dist/transformers/shorthandCSS.d.mts.map +0 -1
  240. package/dist/transformers/sixHex.d.mts.map +0 -1
  241. package/dist/transformers/tailwindcss.d.mts.map +0 -1
  242. package/dist/transformers/urlQuery.d.mts.map +0 -1
  243. package/dist/types/config.d.mts.map +0 -1
  244. package/dist/utils/ast/index.d.mts +0 -4
  245. package/dist/utils/ast/parser.d.mts.map +0 -1
  246. package/dist/utils/ast/serializer.d.mts.map +0 -1
  247. package/dist/utils/ast/walker.d.mts.map +0 -1
  248. package/dist/utils/decodeStyleEntities.d.mts.map +0 -1
  249. package/dist/utils/detect.d.mts.map +0 -1
  250. package/dist/utils/url.d.mts.map +0 -1
@@ -0,0 +1,43 @@
1
+ <script lang="ts">
2
+ import { defineComponent, createCommentVNode, inject, h, Fragment, type VNode } from 'vue'
3
+ import { RenderContextKey } from '../composables/renderContext'
4
+
5
+ /**
6
+ * Walk a slot's vnode tree and concatenate its text content.
7
+ * Handles plain text children, arrays, and Comment vnodes.
8
+ * Static text in <template #config>...</template> compiles into
9
+ * text vnodes whose `children` is a string — that's our path.
10
+ */
11
+ function vnodeText(input: unknown): string {
12
+ if (input == null || input === false) return ''
13
+ if (typeof input === 'string') return input
14
+ if (typeof input === 'number') return String(input)
15
+ if (Array.isArray(input)) return input.map(vnodeText).join('')
16
+
17
+ const v = input as VNode
18
+ if (typeof v.children === 'string') return v.children
19
+ if (Array.isArray(v.children)) return vnodeText(v.children)
20
+ return ''
21
+ }
22
+
23
+ export default defineComponent({
24
+ name: 'Tailwind',
25
+ setup(_, { slots }) {
26
+ const ctx = inject(RenderContextKey)!
27
+ if (!ctx.tailwindBlocks) ctx.tailwindBlocks = []
28
+ const id = `tw${ctx.tailwindBlocks.length}`
29
+
30
+ // Extract optional `#config` slot content as raw CSS. Evaluated at
31
+ // setup time; the slot is NOT rendered into the document.
32
+ const css = slots.config ? vnodeText(slots.config()).trim() : undefined
33
+
34
+ ctx.tailwindBlocks.push({ id, css: css || undefined })
35
+
36
+ return () => h(Fragment, null, [
37
+ createCommentVNode(`mz-tw:${id}`),
38
+ slots.default?.(),
39
+ createCommentVNode(`/mz-tw:${id}`),
40
+ ])
41
+ },
42
+ })
43
+ </script>
@@ -13,6 +13,16 @@ declare function hasWidthUtility(classStr: string): boolean;
13
13
  declare function hasWidthInStyle(styleStr: string): boolean;
14
14
  declare function hasHeightUtility(classStr: string): boolean;
15
15
  declare function hasHeightInStyle(styleStr: string): boolean;
16
+ /**
17
+ * Shared prop for components that emit MSO/VML fallback markup. The
18
+ * `null` default acts as the "unset" sentinel — `useOutlookFallback`
19
+ * treats `null` as inherit-from-ancestor (root default `true`),
20
+ * letting users override per-component without losing inheritance.
21
+ */
22
+ declare const outlookFallbackProp: {
23
+ readonly type: BooleanConstructor;
24
+ readonly default: null;
25
+ };
16
26
  //#endregion
17
- export { hasHeightInStyle, hasHeightUtility, hasWidthInStyle, hasWidthUtility, nextId, normalizeToPixels };
18
- //# sourceMappingURL=utils.d.mts.map
27
+ export { hasHeightInStyle, hasHeightUtility, hasWidthInStyle, hasWidthUtility, nextId, normalizeToPixels, outlookFallbackProp };
28
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","names":[],"sources":["../../src/components/utils.ts"],"mappings":";iBAAgB,iBAAA,CAAkB,KAAA;AAAlC;;;;;AAiBA;;;AAjBA,iBAiBgB,MAAA,CAAO,MAAA;AAAA,iBAKP,eAAA,CAAgB,QAAA;AAAA,iBAQhB,eAAA,CAAgB,QAAA;AAAA,iBAIhB,gBAAA,CAAiB,QAAA;AAAA,iBAQjB,gBAAA,CAAiB,QAAA;;;AAZjC;;;;cAsBa,mBAAA;EAAA,eAGH,kBAAA;EAAA"}
@@ -34,7 +34,17 @@ function hasHeightUtility(classStr) {
34
34
  function hasHeightInStyle(styleStr) {
35
35
  return /(?:^|;\s*)(?:max-height|height)\s*:/i.test(styleStr);
36
36
  }
37
+ /**
38
+ * Shared prop for components that emit MSO/VML fallback markup. The
39
+ * `null` default acts as the "unset" sentinel — `useOutlookFallback`
40
+ * treats `null` as inherit-from-ancestor (root default `true`),
41
+ * letting users override per-component without losing inheritance.
42
+ */
43
+ const outlookFallbackProp = {
44
+ type: Boolean,
45
+ default: null
46
+ };
37
47
 
38
48
  //#endregion
39
- export { hasHeightInStyle, hasHeightUtility, hasWidthInStyle, hasWidthUtility, nextId, normalizeToPixels };
49
+ export { hasHeightInStyle, hasHeightUtility, hasWidthInStyle, hasWidthUtility, nextId, normalizeToPixels, outlookFallbackProp };
40
50
  //# sourceMappingURL=utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","names":[],"sources":["../../src/components/utils.ts"],"sourcesContent":["export function normalizeToPixels(value: string | number): string {\n if (typeof value === 'number' || Number.isFinite(Number(value))) {\n return `${value}px`\n }\n return value\n}\n\nconst counters: Record<string, number> = {}\n\n/**\n * Module-scoped sequential ID generator. Used by components to mint\n * unique marker ids (e.g. `c1`, `c2`) for the post-render transformer.\n *\n * Must live here (not inside `<script setup>`) because Vue compiles\n * `<script setup>` into the component's `setup()` function — any\n * `let counter = 0` there resets per instance, causing id collisions.\n */\nexport function nextId(prefix: string): string {\n counters[prefix] = (counters[prefix] ?? 0) + 1\n return `${prefix}${counters[prefix]}`\n}\n\nexport function hasWidthUtility(classStr: string): boolean {\n return classStr.split(/\\s+/).some((c) => {\n const utility = c.split(':').pop() ?? ''\n const clean = utility.replace(/^!/, '')\n return /^(w-|max-w-|min-w-)/.test(clean)\n })\n}\n\nexport function hasWidthInStyle(styleStr: string): boolean {\n return /(?:^|;\\s*)(?:max-width|width)\\s*:/i.test(styleStr)\n}\n\nexport function hasHeightUtility(classStr: string): boolean {\n return classStr.split(/\\s+/).some((c) => {\n const utility = c.split(':').pop() ?? ''\n const clean = utility.replace(/^!/, '')\n return /^(h-|max-h-|min-h-)/.test(clean)\n })\n}\n\nexport function hasHeightInStyle(styleStr: string): boolean {\n return /(?:^|;\\s*)(?:max-height|height)\\s*:/i.test(styleStr)\n}\n"],"mappings":";AAAA,SAAgB,kBAAkB,OAAgC;AAChE,KAAI,OAAO,UAAU,YAAY,OAAO,SAAS,OAAO,MAAM,CAAC,CAC7D,QAAO,GAAG,MAAM;AAElB,QAAO;;AAGT,MAAM,WAAmC,EAAE;;;;;;;;;AAU3C,SAAgB,OAAO,QAAwB;AAC7C,UAAS,WAAW,SAAS,WAAW,KAAK;AAC7C,QAAO,GAAG,SAAS,SAAS;;AAG9B,SAAgB,gBAAgB,UAA2B;AACzD,QAAO,SAAS,MAAM,MAAM,CAAC,MAAM,MAAM;EAEvC,MAAM,SADU,EAAE,MAAM,IAAI,CAAC,KAAK,IAAI,IAChB,QAAQ,MAAM,GAAG;AACvC,SAAO,sBAAsB,KAAK,MAAM;GACxC;;AAGJ,SAAgB,gBAAgB,UAA2B;AACzD,QAAO,qCAAqC,KAAK,SAAS;;AAG5D,SAAgB,iBAAiB,UAA2B;AAC1D,QAAO,SAAS,MAAM,MAAM,CAAC,MAAM,MAAM;EAEvC,MAAM,SADU,EAAE,MAAM,IAAI,CAAC,KAAK,IAAI,IAChB,QAAQ,MAAM,GAAG;AACvC,SAAO,sBAAsB,KAAK,MAAM;GACxC;;AAGJ,SAAgB,iBAAiB,UAA2B;AAC1D,QAAO,uCAAuC,KAAK,SAAS"}
1
+ {"version":3,"file":"utils.mjs","names":[],"sources":["../../src/components/utils.ts"],"sourcesContent":["export function normalizeToPixels(value: string | number): string {\n if (typeof value === 'number' || Number.isFinite(Number(value))) {\n return `${value}px`\n }\n return value\n}\n\nconst counters: Record<string, number> = {}\n\n/**\n * Module-scoped sequential ID generator. Used by components to mint\n * unique marker ids (e.g. `c1`, `c2`) for the post-render transformer.\n *\n * Must live here (not inside `<script setup>`) because Vue compiles\n * `<script setup>` into the component's `setup()` function — any\n * `let counter = 0` there resets per instance, causing id collisions.\n */\nexport function nextId(prefix: string): string {\n counters[prefix] = (counters[prefix] ?? 0) + 1\n return `${prefix}${counters[prefix]}`\n}\n\nexport function hasWidthUtility(classStr: string): boolean {\n return classStr.split(/\\s+/).some((c) => {\n const utility = c.split(':').pop() ?? ''\n const clean = utility.replace(/^!/, '')\n return /^(w-|max-w-|min-w-)/.test(clean)\n })\n}\n\nexport function hasWidthInStyle(styleStr: string): boolean {\n return /(?:^|;\\s*)(?:max-width|width)\\s*:/i.test(styleStr)\n}\n\nexport function hasHeightUtility(classStr: string): boolean {\n return classStr.split(/\\s+/).some((c) => {\n const utility = c.split(':').pop() ?? ''\n const clean = utility.replace(/^!/, '')\n return /^(h-|max-h-|min-h-)/.test(clean)\n })\n}\n\nexport function hasHeightInStyle(styleStr: string): boolean {\n return /(?:^|;\\s*)(?:max-height|height)\\s*:/i.test(styleStr)\n}\n\n/**\n * Shared prop for components that emit MSO/VML fallback markup. The\n * `null` default acts as the \"unset\" sentinel — `useOutlookFallback`\n * treats `null` as inherit-from-ancestor (root default `true`),\n * letting users override per-component without losing inheritance.\n */\nexport const outlookFallbackProp = {\n type: Boolean,\n default: null,\n} as const\n\n"],"mappings":";AAAA,SAAgB,kBAAkB,OAAgC;AAChE,KAAI,OAAO,UAAU,YAAY,OAAO,SAAS,OAAO,MAAM,CAAC,CAC7D,QAAO,GAAG,MAAM;AAElB,QAAO;;AAGT,MAAM,WAAmC,EAAE;;;;;;;;;AAU3C,SAAgB,OAAO,QAAwB;AAC7C,UAAS,WAAW,SAAS,WAAW,KAAK;AAC7C,QAAO,GAAG,SAAS,SAAS;;AAG9B,SAAgB,gBAAgB,UAA2B;AACzD,QAAO,SAAS,MAAM,MAAM,CAAC,MAAM,MAAM;EAEvC,MAAM,SADU,EAAE,MAAM,IAAI,CAAC,KAAK,IAAI,IAChB,QAAQ,MAAM,GAAG;AACvC,SAAO,sBAAsB,KAAK,MAAM;GACxC;;AAGJ,SAAgB,gBAAgB,UAA2B;AACzD,QAAO,qCAAqC,KAAK,SAAS;;AAG5D,SAAgB,iBAAiB,UAA2B;AAC1D,QAAO,SAAS,MAAM,MAAM,CAAC,MAAM,MAAM;EAEvC,MAAM,SADU,EAAE,MAAM,IAAI,CAAC,KAAK,IAAI,IAChB,QAAQ,MAAM,GAAG;AACvC,SAAO,sBAAsB,KAAK,MAAM;GACxC;;AAGJ,SAAgB,iBAAiB,UAA2B;AAC1D,QAAO,uCAAuC,KAAK,SAAS;;;;;;;;AAS9D,MAAa,sBAAsB;CACjC,MAAM;CACN,SAAS;CACV"}
@@ -43,3 +43,15 @@ export function hasHeightUtility(classStr: string): boolean {
43
43
  export function hasHeightInStyle(styleStr: string): boolean {
44
44
  return /(?:^|;\s*)(?:max-height|height)\s*:/i.test(styleStr)
45
45
  }
46
+
47
+ /**
48
+ * Shared prop for components that emit MSO/VML fallback markup. The
49
+ * `null` default acts as the "unset" sentinel — `useOutlookFallback`
50
+ * treats `null` as inherit-from-ancestor (root default `true`),
51
+ * letting users override per-component without losing inheritance.
52
+ */
53
+ export const outlookFallbackProp = {
54
+ type: Boolean,
55
+ default: null,
56
+ } as const
57
+
@@ -1,4 +1,4 @@
1
- import { MaizzleConfig } from "../types/config.mjs";
1
+ import { MaizzleConfig } from "../types/config.js";
2
2
  //#region src/composables/defineConfig.d.ts
3
3
  /**
4
4
  * Define Maizzle config.
@@ -11,4 +11,4 @@ import { MaizzleConfig } from "../types/config.mjs";
11
11
  declare function defineConfig(data?: Partial<MaizzleConfig>): MaizzleConfig;
12
12
  //#endregion
13
13
  export { defineConfig };
14
- //# sourceMappingURL=defineConfig.d.mts.map
14
+ //# sourceMappingURL=defineConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineConfig.d.ts","names":[],"sources":["../../src/composables/defineConfig.ts"],"mappings":";;;;;AAqBA;;;;;iBAAgB,YAAA,CAAa,IAAA,GAAM,OAAA,CAAQ,aAAA,IAAsB,aAAA"}
@@ -1,6 +1,6 @@
1
- import { MaizzleConfig } from "../types/config.mjs";
2
- import { EventMap, EventName } from "../events/index.mjs";
3
- import { UsePlaintextOptions } from "./usePlaintext.mjs";
1
+ import { MaizzleConfig } from "../types/config.js";
2
+ import { EventMap, EventName } from "../events/index.js";
3
+ import { UsePlaintextOptions } from "./usePlaintext.js";
4
4
  import { InjectionKey } from "vue";
5
5
 
6
6
  //#region src/composables/renderContext.d.ts
@@ -10,6 +10,11 @@ interface FontRegistration {
10
10
  declaration: string;
11
11
  url: string;
12
12
  }
13
+ interface TailwindBlock {
14
+ id: string;
15
+ /** Optional raw CSS from the component's `#config` slot. */
16
+ css?: string;
17
+ }
13
18
  interface RenderContext {
14
19
  doctype?: string;
15
20
  preheader?: {
@@ -24,8 +29,9 @@ interface RenderContext {
24
29
  }>;
25
30
  plaintext?: UsePlaintextOptions;
26
31
  fonts?: FontRegistration[];
32
+ tailwindBlocks?: TailwindBlock[];
27
33
  }
28
34
  declare const RenderContextKey: InjectionKey<RenderContext>;
29
35
  //#endregion
30
- export { FontRegistration, RenderContext, RenderContextKey };
31
- //# sourceMappingURL=renderContext.d.mts.map
36
+ export { FontRegistration, RenderContext, RenderContextKey, TailwindBlock };
37
+ //# sourceMappingURL=renderContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderContext.d.ts","names":[],"sources":["../../src/composables/renderContext.ts"],"mappings":";;;;;;UAKiB,gBAAA;EACf,MAAA;EACA,IAAA;EACA,WAAA;EACA,GAAA;AAAA;AAAA,UAGe,aAAA;EACf,EAAA;EANA;EAQA,GAAA;AAAA;AAAA,UAGe,aAAA;EACf,OAAA;EACA,SAAA;IAAc,IAAA;IAAc,WAAA;IAAqB,QAAA;EAAA;EACjD,SAAA,GAAY,aAAA;EACZ,gBAAA,EAAkB,KAAA;IAAQ,IAAA,EAAM,SAAA;IAAW,OAAA,EAAS,QAAA,CAAS,SAAA;EAAA;EAC7D,SAAA,GAAY,mBAAA;EACZ,KAAA,GAAQ,gBAAA;EACR,cAAA,GAAiB,aAAA;AAAA;AAAA,cAGN,gBAAA,EAAkB,YAAA,CAAa,aAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderContext.mjs","names":[],"sources":["../../src/composables/renderContext.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { MaizzleConfig } from '../types/index.ts'\nimport type { EventName, EventMap } from '../events/index.ts'\nimport type { UsePlaintextOptions } from './usePlaintext.ts'\n\nexport interface FontRegistration {\n family: string\n slug: string\n declaration: string\n url: string\n}\n\nexport interface RenderContext {\n doctype?: string\n preheader?: { text: string; fillerCount: number; shyCount: number }\n sfcConfig?: MaizzleConfig\n sfcEventHandlers: Array<{ name: EventName; handler: EventMap[EventName] }>\n plaintext?: UsePlaintextOptions\n fonts?: FontRegistration[]\n}\n\nexport const RenderContextKey: InjectionKey<RenderContext> = Symbol('RenderContext')\n"],"mappings":";AAqBA,MAAa,mBAAgD,OAAO,gBAAgB"}
1
+ {"version":3,"file":"renderContext.mjs","names":[],"sources":["../../src/composables/renderContext.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { MaizzleConfig } from '../types/index.ts'\nimport type { EventName, EventMap } from '../events/index.ts'\nimport type { UsePlaintextOptions } from './usePlaintext.ts'\n\nexport interface FontRegistration {\n family: string\n slug: string\n declaration: string\n url: string\n}\n\nexport interface TailwindBlock {\n id: string\n /** Optional raw CSS from the component's `#config` slot. */\n css?: string\n}\n\nexport interface RenderContext {\n doctype?: string\n preheader?: { text: string; fillerCount: number; shyCount: number }\n sfcConfig?: MaizzleConfig\n sfcEventHandlers: Array<{ name: EventName; handler: EventMap[EventName] }>\n plaintext?: UsePlaintextOptions\n fonts?: FontRegistration[]\n tailwindBlocks?: TailwindBlock[]\n}\n\nexport const RenderContextKey: InjectionKey<RenderContext> = Symbol('RenderContext')\n"],"mappings":";AA4BA,MAAa,mBAAgD,OAAO,gBAAgB"}
@@ -1,4 +1,4 @@
1
- import { MaizzleConfig } from "../types/config.mjs";
1
+ import { MaizzleConfig } from "../types/config.js";
2
2
  import { InjectionKey } from "vue";
3
3
 
4
4
  //#region src/composables/useConfig.d.ts
@@ -6,4 +6,4 @@ declare const MaizzleConfigKey: InjectionKey<MaizzleConfig>;
6
6
  declare function useConfig(): MaizzleConfig;
7
7
  //#endregion
8
8
  export { MaizzleConfigKey, useConfig };
9
- //# sourceMappingURL=useConfig.d.mts.map
9
+ //# sourceMappingURL=useConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConfig.d.ts","names":[],"sources":["../../src/composables/useConfig.ts"],"mappings":";;;;cAIa,gBAAA,EAAkB,YAAA,CAAa,aAAA;AAAA,iBAE5B,SAAA,CAAA,GAAa,aAAA"}
@@ -10,4 +10,4 @@
10
10
  declare function useDoctype(doctype: string): void;
11
11
  //#endregion
12
12
  export { useDoctype };
13
- //# sourceMappingURL=useDoctype.d.mts.map
13
+ //# sourceMappingURL=useDoctype.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDoctype.d.ts","names":[],"sources":["../../src/composables/useDoctype.ts"],"mappings":";;AAWA;;;;;;;iBAAgB,UAAA,CAAW,OAAA"}
@@ -1,4 +1,4 @@
1
- import { EventMap, EventName } from "../events/index.mjs";
1
+ import { EventMap, EventName } from "../events/index.js";
2
2
 
3
3
  //#region src/composables/useEvent.d.ts
4
4
  /**
@@ -14,4 +14,4 @@ import { EventMap, EventName } from "../events/index.mjs";
14
14
  declare function useEvent<K extends EventName>(name: K, handler: EventMap[K]): void;
15
15
  //#endregion
16
16
  export { useEvent };
17
- //# sourceMappingURL=useEvent.d.mts.map
17
+ //# sourceMappingURL=useEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEvent.d.ts","names":[],"sources":["../../src/composables/useEvent.ts"],"mappings":";;;;;AAcA;;;;;;;;iBAAgB,QAAA,WAAmB,SAAA,CAAA,CAAW,IAAA,EAAM,CAAA,EAAG,OAAA,EAAS,QAAA,CAAS,CAAA"}
@@ -47,4 +47,4 @@ interface UseFontOptions {
47
47
  declare function useFont(options: UseFontOptions): void;
48
48
  //#endregion
49
49
  export { FontProvider, UseFontOptions, useFont };
50
- //# sourceMappingURL=useFont.d.mts.map
50
+ //# sourceMappingURL=useFont.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFont.d.ts","names":[],"sources":["../../src/composables/useFont.ts"],"mappings":";KA8CY,YAAA;AAAA,UAEK,cAAA;EAFO;;;;AAExB;;EAOE,MAAA;EAoBc;EAlBd,QAAA;EAAA;;;;;EAMA,QAAA,GAAW,YAAA;EAYX;;;;AA+CF;EArDE,GAAA;;EAEA,OAAA;EAmD6C;EAjD7C,OAAA;;EAEA,MAAA,GAAS,KAAA;AAAA;;;;;;;;;;;;;;;;iBA+CK,OAAA,CAAQ,OAAA,EAAS,cAAA"}
@@ -0,0 +1,21 @@
1
+ //#region src/composables/useOutlookFallback.d.ts
2
+ /**
3
+ * Toggle whether descendants emit Outlook (MSO) and VML fallback markup.
4
+ *
5
+ * Call once in a Layout/template's `<script setup>` to disable for the
6
+ * whole tree:
7
+ * `useOutlookFallback(false)`
8
+ *
9
+ * Components inheriting `false` skip MSO ghost tables, VML rectangles,
10
+ * `xmlns:v`/`xmlns:o`, mso-specific CSS, and Button's `<Outlook>`
11
+ * spacers. Each MSO-aware component still accepts an `outlook-fallback`
12
+ * prop that overrides inheritance for its subtree.
13
+ *
14
+ * @param value Pass `true`/`false` to set; omit to just read the
15
+ * inherited value (defaults to `true` at the root).
16
+ * @returns The resolved boolean for the current component.
17
+ */
18
+ declare function useOutlookFallback(value?: boolean | null): boolean;
19
+ //#endregion
20
+ export { useOutlookFallback };
21
+ //# sourceMappingURL=useOutlookFallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOutlookFallback.d.ts","names":[],"sources":["../../src/composables/useOutlookFallback.ts"],"mappings":";;AAoBA;;;;;;;;;;;;;;;iBAAgB,kBAAA,CAAmB,KAAA"}
@@ -0,0 +1,30 @@
1
+ import { inject, provide } from "vue";
2
+
3
+ //#region src/composables/useOutlookFallback.ts
4
+ const OutlookFallbackKey = Symbol("OutlookFallback");
5
+ /**
6
+ * Toggle whether descendants emit Outlook (MSO) and VML fallback markup.
7
+ *
8
+ * Call once in a Layout/template's `<script setup>` to disable for the
9
+ * whole tree:
10
+ * `useOutlookFallback(false)`
11
+ *
12
+ * Components inheriting `false` skip MSO ghost tables, VML rectangles,
13
+ * `xmlns:v`/`xmlns:o`, mso-specific CSS, and Button's `<Outlook>`
14
+ * spacers. Each MSO-aware component still accepts an `outlook-fallback`
15
+ * prop that overrides inheritance for its subtree.
16
+ *
17
+ * @param value Pass `true`/`false` to set; omit to just read the
18
+ * inherited value (defaults to `true` at the root).
19
+ * @returns The resolved boolean for the current component.
20
+ */
21
+ function useOutlookFallback(value) {
22
+ const inherited = inject(OutlookFallbackKey, true);
23
+ const enabled = value == null ? inherited : value;
24
+ provide(OutlookFallbackKey, enabled);
25
+ return enabled;
26
+ }
27
+
28
+ //#endregion
29
+ export { useOutlookFallback };
30
+ //# sourceMappingURL=useOutlookFallback.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOutlookFallback.mjs","names":[],"sources":["../../src/composables/useOutlookFallback.ts"],"sourcesContent":["import { inject, provide, type InjectionKey } from 'vue'\n\nconst OutlookFallbackKey: InjectionKey<boolean> = Symbol('OutlookFallback')\n\n/**\n * Toggle whether descendants emit Outlook (MSO) and VML fallback markup.\n *\n * Call once in a Layout/template's `<script setup>` to disable for the\n * whole tree:\n * `useOutlookFallback(false)`\n *\n * Components inheriting `false` skip MSO ghost tables, VML rectangles,\n * `xmlns:v`/`xmlns:o`, mso-specific CSS, and Button's `<Outlook>`\n * spacers. Each MSO-aware component still accepts an `outlook-fallback`\n * prop that overrides inheritance for its subtree.\n *\n * @param value Pass `true`/`false` to set; omit to just read the\n * inherited value (defaults to `true` at the root).\n * @returns The resolved boolean for the current component.\n */\nexport function useOutlookFallback(value?: boolean | null): boolean {\n const inherited = inject(OutlookFallbackKey, true)\n const enabled = value == null ? inherited : value\n provide(OutlookFallbackKey, enabled)\n return enabled\n}\n"],"mappings":";;;AAEA,MAAM,qBAA4C,OAAO,kBAAkB;;;;;;;;;;;;;;;;;AAkB3E,SAAgB,mBAAmB,OAAiC;CAClE,MAAM,YAAY,OAAO,oBAAoB,KAAK;CAClD,MAAM,UAAU,SAAS,OAAO,YAAY;AAC5C,SAAQ,oBAAoB,QAAQ;AACpC,QAAO"}
@@ -16,4 +16,4 @@ interface UsePlaintextOptions {
16
16
  declare function usePlaintext(options?: UsePlaintextOptions): void;
17
17
  //#endregion
18
18
  export { UsePlaintextOptions, usePlaintext };
19
- //# sourceMappingURL=usePlaintext.d.mts.map
19
+ //# sourceMappingURL=usePlaintext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePlaintext.d.ts","names":[],"sources":["../../src/composables/usePlaintext.ts"],"mappings":";UAGiB,mBAAA;EACf,SAAA;EACA,WAAA;AAAA;;;AAaF;;;;;;;;iBAAgB,YAAA,CAAa,OAAA,GAAU,mBAAA"}
@@ -21,4 +21,4 @@ interface UsePreheaderOptions {
21
21
  declare function usePreheader(text: string, options?: UsePreheaderOptions): void;
22
22
  //#endregion
23
23
  export { UsePreheaderOptions, usePreheader };
24
- //# sourceMappingURL=usePreheader.d.mts.map
24
+ //# sourceMappingURL=usePreheader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePreheader.d.ts","names":[],"sources":["../../src/composables/usePreheader.ts"],"mappings":";UAGiB,mBAAA;EAAA;EAEf,WAAA;;EAEA,QAAA;AAAA;AAgBF;;;;;;;;;;;;;AAAA,iBAAgB,YAAA,CAAa,IAAA,UAAc,OAAA,GAAU,mBAAA"}
@@ -1,6 +1,6 @@
1
- import { MaizzleConfig } from "../types/config.mjs";
1
+ import { MaizzleConfig } from "../types/config.js";
2
2
  //#region src/config/defaults.d.ts
3
3
  declare const defaults: MaizzleConfig;
4
4
  //#endregion
5
5
  export { defaults };
6
- //# sourceMappingURL=defaults.d.mts.map
6
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","names":[],"sources":["../../src/config/defaults.ts"],"mappings":";;cAEa,QAAA,EAAU,aAAA"}
@@ -1,6 +1,6 @@
1
- import { MaizzleConfig } from "../types/config.mjs";
2
- import { defineConfig } from "../composables/defineConfig.mjs";
3
- import { defaults } from "./defaults.mjs";
1
+ import { MaizzleConfig } from "../types/config.js";
2
+ import { defineConfig } from "../composables/defineConfig.js";
3
+ import { defaults } from "./defaults.js";
4
4
 
5
5
  //#region src/config/index.d.ts
6
6
  /**
@@ -12,4 +12,4 @@ import { defaults } from "./defaults.mjs";
12
12
  declare function resolveConfig(config?: Partial<MaizzleConfig> | string, cwd?: string): Promise<MaizzleConfig>;
13
13
  //#endregion
14
14
  export { defaults, defineConfig, resolveConfig };
15
- //# sourceMappingURL=index.d.mts.map
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/config/index.ts"],"mappings":";;;;;;;;AA8BA;;;iBAAsB,aAAA,CACpB,MAAA,GAAS,OAAA,CAAQ,aAAA,YACjB,GAAA,YACC,OAAA,CAAQ,aAAA"}
@@ -1,4 +1,4 @@
1
- import { MaizzleConfig } from "../types/config.mjs";
1
+ import { MaizzleConfig } from "../types/config.js";
2
2
  //#region src/events/index.d.ts
3
3
  type EventName = 'beforeCreate' | 'beforeRender' | 'afterRender' | 'afterTransform' | 'afterBuild';
4
4
  interface EventMap {
@@ -88,4 +88,4 @@ declare class EventManager {
88
88
  }
89
89
  //#endregion
90
90
  export { EventManager, EventMap, EventName };
91
- //# sourceMappingURL=index.d.mts.map
91
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/events/index.ts"],"mappings":";;KAEY,SAAA;AAAA,UAEK,QAAA;EACf,YAAA,GAAe,MAAA;IAAU,MAAA,EAAQ,aAAA;EAAA,aAA2B,OAAA;EAC5D,YAAA,GAAe,MAAA;IAAU,MAAA,EAAQ,aAAA;IAAe,QAAA;EAAA,sBAAuC,OAAA;EACvF,WAAA,GAAc,MAAA;IAAU,MAAA,EAAQ,aAAA;IAAe,QAAA;IAAkB,IAAA;EAAA,sBAAmC,OAAA;EACpG,cAAA,GAAiB,MAAA;IAAU,MAAA,EAAQ,aAAA;IAAe,QAAA;IAAkB,IAAA;EAAA,sBAAmC,OAAA;EACvG,UAAA,GAAa,MAAA;IAAU,KAAA;IAAiB,MAAA,EAAQ,aAAA;EAAA,aAA2B,OAAA;AAAA;;;;;;;;cAUhE,YAAA;EAAA,QACH,QAAA;EAd+E;;;EAmBvF,cAAA,CAAe,MAAA,EAAQ,aAAA;EAlBwB;;;EAgC/C,EAAA,WAAa,SAAA,CAAA,CAAW,IAAA,EAAM,CAAA,EAAG,OAAA,EAAS,QAAA,CAAS,CAAA;EA/BnD;;;EA0CM,gBAAA,CAAiB,MAAA;IAAU,MAAA,EAAQ,aAAA;EAAA,IAAe,OAAA;EA1C+C;;;EAqDjG,gBAAA,CAAiB,MAAA;IAAU,MAAA,EAAQ,aAAA;IAAe,QAAA;EAAA,IAAqB,OAAA;EApDK;;AAUpF;EA6DQ,eAAA,CAAgB,MAAA;IAAU,MAAA,EAAQ,aAAA;IAAe,QAAA;IAAkB,IAAA;EAAA,IAAiB,OAAA;EAzChD;;;EA4DpC,kBAAA,CAAmB,MAAA;IAAU,MAAA,EAAQ,aAAA;IAAe,QAAA;IAAkB,IAAA;EAAA,IAAiB,OAAA;EAAlD;;;EAmBrC,cAAA,CAAe,MAAA;IAAU,KAAA;IAAiB,MAAA,EAAQ,aAAA;EAAA,IAAe,OAAA;EA7FvE;;;EAwGA,gBAAA,CAAA;EA1FG;;;EAsGH,KAAA,CAAA;AAAA"}
@@ -0,0 +1,34 @@
1
+ import { AttributesConfig, CssConfig, EntitiesConfig, FilterFunction, FiltersConfig, HtmlConfig, MaizzleConfig, UrlConfig, UrlQuery, UrlQueryOptions } from "./types/config.js";
2
+ import { build } from "./build.js";
3
+ import { defineConfig } from "./composables/defineConfig.js";
4
+ import { usePlaintext } from "./composables/usePlaintext.js";
5
+ import { useConfig } from "./composables/useConfig.js";
6
+ import { useDoctype } from "./composables/useDoctype.js";
7
+ import { useEvent } from "./composables/useEvent.js";
8
+ import { useFont } from "./composables/useFont.js";
9
+ import { useOutlookFallback } from "./composables/useOutlookFallback.js";
10
+ import { resolveConfig } from "./config/index.js";
11
+ import { maizzle } from "./plugin.js";
12
+ import { CreateRendererOptions, RenderedTemplate, Renderer, createRenderer } from "./render/createRenderer.js";
13
+ import { RenderResult, render } from "./render/index.js";
14
+ import { serve } from "./serve.js";
15
+ import { PrepareOptions, prepare } from "./prepare.js";
16
+ import { createPlaintext } from "./plaintext.js";
17
+ import { inlineLink } from "./transformers/inlineLink.js";
18
+ import { urlQuery } from "./transformers/urlQuery.js";
19
+ import { base } from "./transformers/base.js";
20
+ import { entities } from "./transformers/entities.js";
21
+ import { safeClassNames } from "./transformers/safeClassNames.js";
22
+ import { attributeToStyle } from "./transformers/attributeToStyle.js";
23
+ import { inlineCSS } from "./transformers/inlineCSS.js";
24
+ import { shorthandCSS } from "./transformers/shorthandCSS.js";
25
+ import { sixHex } from "./transformers/sixHex.js";
26
+ import { removeAttributes } from "./transformers/removeAttributes.js";
27
+ import { addAttributes } from "./transformers/addAttributes.js";
28
+ import { purgeCSS } from "./transformers/purgeCSS.js";
29
+ import { filters } from "./transformers/filters/index.js";
30
+ import { replaceStrings } from "./transformers/replaceStrings.js";
31
+ import { format } from "./transformers/format.js";
32
+ import { minify } from "./transformers/minify.js";
33
+ import { useHead } from "@unhead/vue";
34
+ export { type AttributesConfig, type CreateRendererOptions, type CssConfig, type EntitiesConfig, type FilterFunction, type FiltersConfig, type HtmlConfig, type MaizzleConfig, type PrepareOptions, type RenderResult, type RenderedTemplate, type Renderer, type UrlConfig, type UrlQuery, type UrlQueryOptions, addAttributes, attributeToStyle, base, build, createPlaintext, createRenderer, defineConfig, entities, filters, format, inlineCSS, inlineLink, maizzle, minify, prepare, removeAttributes, purgeCSS as removeUnusedCSS, render, replaceStrings, resolveConfig, safeClassNames, serve, shorthandCSS, sixHex, urlQuery, useConfig, useDoctype, useEvent, useFont, useHead, useOutlookFallback, usePlaintext };
package/dist/index.mjs CHANGED
@@ -27,7 +27,8 @@ import { prepare } from "./prepare.mjs";
27
27
  import { useDoctype } from "./composables/useDoctype.mjs";
28
28
  import { useEvent } from "./composables/useEvent.mjs";
29
29
  import { useFont } from "./composables/useFont.mjs";
30
+ import { useOutlookFallback } from "./composables/useOutlookFallback.mjs";
30
31
  import { usePlaintext } from "./composables/usePlaintext.mjs";
31
32
  import { useHead } from "@unhead/vue";
32
33
 
33
- export { addAttributes, attributeToStyle, base, build, createPlaintext, createRenderer, defineConfig, entities, filters, format, inlineCSS, inlineLink, maizzle, minify, prepare, removeAttributes, purgeCSS as removeUnusedCSS, render, replaceStrings, resolveConfig, safeClassNames, serve, shorthandCSS, sixHex, urlQuery, useConfig, useDoctype, useEvent, useFont, useHead, usePlaintext };
34
+ export { addAttributes, attributeToStyle, base, build, createPlaintext, createRenderer, defineConfig, entities, filters, format, inlineCSS, inlineLink, maizzle, minify, prepare, removeAttributes, purgeCSS as removeUnusedCSS, render, replaceStrings, resolveConfig, safeClassNames, serve, shorthandCSS, sixHex, urlQuery, useConfig, useDoctype, useEvent, useFont, useHead, useOutlookFallback, usePlaintext };
@@ -2,4 +2,4 @@
2
2
  declare function createPlaintext(html: string, options?: Record<string, unknown>): string;
3
3
  //#endregion
4
4
  export { createPlaintext };
5
- //# sourceMappingURL=plaintext.d.mts.map
5
+ //# sourceMappingURL=plaintext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plaintext.d.ts","names":[],"sources":["../src/plaintext.ts"],"mappings":";iBAUgB,eAAA,CAAgB,IAAA,UAAc,OAAA,GAAU,MAAA"}
@@ -1,4 +1,4 @@
1
- import { MaizzleConfig } from "./types/config.mjs";
1
+ import { MaizzleConfig } from "./types/config.js";
2
2
  import { Plugin } from "vite";
3
3
 
4
4
  //#region src/plugin.d.ts
@@ -14,4 +14,4 @@ import { Plugin } from "vite";
14
14
  declare function maizzle(configInput?: Partial<MaizzleConfig>): Plugin[];
15
15
  //#endregion
16
16
  export { maizzle };
17
- //# sourceMappingURL=plugin.d.mts.map
17
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","names":[],"sources":["../src/plugin.ts"],"mappings":";;;;;;;AAaA;;;;;;iBAAgB,OAAA,CAAQ,WAAA,GAAc,OAAA,CAAQ,aAAA,IAAiB,MAAA"}
@@ -1,4 +1,4 @@
1
- import { MaizzleConfig } from "../../types/config.mjs";
1
+ import { MaizzleConfig } from "../../types/config.js";
2
2
  import postcss from "postcss";
3
3
 
4
4
  //#region src/plugins/postcss/mergeMediaQueries.d.ts
@@ -15,4 +15,4 @@ import postcss from "postcss";
15
15
  declare function mergeMediaQueries(config: MaizzleConfig): postcss.Plugin | null;
16
16
  //#endregion
17
17
  export { mergeMediaQueries };
18
- //# sourceMappingURL=mergeMediaQueries.d.mts.map
18
+ //# sourceMappingURL=mergeMediaQueries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeMediaQueries.d.ts","names":[],"sources":["../../../src/plugins/postcss/mergeMediaQueries.ts"],"mappings":";;;;;;AAcA;;;;;;;;iBAAgB,iBAAA,CAAkB,MAAA,EAAQ,aAAA,GAAgB,OAAA,CAAQ,MAAA"}
@@ -5,4 +5,4 @@ declare const _default: () => Plugin;
5
5
  declare const postcss = true;
6
6
  //#endregion
7
7
  export { _default as default, postcss };
8
- //# sourceMappingURL=pruneVars.d.mts.map
8
+ //# sourceMappingURL=pruneVars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pruneVars.d.ts","names":[],"sources":["../../../src/plugins/postcss/pruneVars.ts"],"mappings":";;;cAKyD,QAAA,QAYtC,MAAA;AAAA,cA2DN,OAAA"}
@@ -10,4 +10,4 @@ declare function quoteFontFamilies(): Plugin;
10
10
  declare const postcss = true;
11
11
  //#endregion
12
12
  export { postcss, quoteFontFamilies };
13
- //# sourceMappingURL=quoteFontFamilies.d.mts.map
13
+ //# sourceMappingURL=quoteFontFamilies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quoteFontFamilies.d.ts","names":[],"sources":["../../../src/plugins/postcss/quoteFontFamilies.ts"],"mappings":";;;;;AA+CA;;;iBAAgB,iBAAA,CAAA,GAAqB,MAAA;AAAA,cA6BxB,OAAA"}
@@ -9,4 +9,4 @@ declare const _default: (options: RemoveDeclarationsOptions) => Plugin;
9
9
  declare const postcss = true;
10
10
  //#endregion
11
11
  export { RemoveDeclarationsOptions, RemoveValue, _default as default, postcss };
12
- //# sourceMappingURL=removeDeclarations.d.mts.map
12
+ //# sourceMappingURL=removeDeclarations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeDeclarations.d.ts","names":[],"sources":["../../../src/plugins/postcss/removeDeclarations.ts"],"mappings":";;;KA0BY,WAAA,6BAIR,MAAA;AAAA,UAEa,yBAAA;EACf,MAAA,EAAQ,MAAA,SAAe,WAAA;AAAA;AAAA,cACxB,QAAA,GAQe,OAAA,EAAS,yBAAA,KAA4B,MAAA;AAAA,cAyDxC,OAAA"}
@@ -0,0 +1,16 @@
1
+ import { Plugin } from "postcss";
2
+
3
+ //#region src/plugins/postcss/resolveMaizzleImports.d.ts
4
+ /**
5
+ * Rewrite `@import "@maizzle/tailwindcss"` (and subpaths like
6
+ * `@maizzle/tailwindcss/mso`) to absolute file paths so postcss/Tailwind
7
+ * can resolve them regardless of where the user's template lives or how
8
+ * their package manager hoists dependencies.
9
+ *
10
+ * Resolution order: prefer the user's project copy (so explicit installs
11
+ * win), then fall back to the copy bundled with the framework.
12
+ */
13
+ declare function resolveMaizzleImports(userRoot?: string): Plugin;
14
+ //#endregion
15
+ export { resolveMaizzleImports };
16
+ //# sourceMappingURL=resolveMaizzleImports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveMaizzleImports.d.ts","names":[],"sources":["../../../src/plugins/postcss/resolveMaizzleImports.ts"],"mappings":";;;;;AAiBA;;;;;;;iBAAgB,qBAAA,CAAsB,QAAA,YAAmC,MAAA"}
@@ -0,0 +1,40 @@
1
+ import { createRequire } from "node:module";
2
+
3
+ //#region src/plugins/postcss/resolveMaizzleImports.ts
4
+ const SUBPATH_RE = new RegExp(`^@maizzle/tailwindcss(?:/|$)`);
5
+ const requireFromFramework = createRequire(import.meta.url);
6
+ /**
7
+ * Rewrite `@import "@maizzle/tailwindcss"` (and subpaths like
8
+ * `@maizzle/tailwindcss/mso`) to absolute file paths so postcss/Tailwind
9
+ * can resolve them regardless of where the user's template lives or how
10
+ * their package manager hoists dependencies.
11
+ *
12
+ * Resolution order: prefer the user's project copy (so explicit installs
13
+ * win), then fall back to the copy bundled with the framework.
14
+ */
15
+ function resolveMaizzleImports(userRoot = process.cwd()) {
16
+ const requireFromUser = createRequire(`${userRoot}/_maizzle.js`);
17
+ function resolve(spec) {
18
+ try {
19
+ return requireFromUser.resolve(spec);
20
+ } catch {}
21
+ try {
22
+ return requireFromFramework.resolve(spec);
23
+ } catch {}
24
+ }
25
+ return {
26
+ postcssPlugin: "maizzle:resolve-tw-imports",
27
+ AtRule: { import(rule) {
28
+ const m = rule.params.match(/^\s*["']([^"']+)["']/);
29
+ if (!m) return;
30
+ const spec = m[1];
31
+ if (!SUBPATH_RE.test(spec)) return;
32
+ const abs = resolve(spec);
33
+ if (abs) rule.params = rule.params.replace(m[0], `"${abs}"`);
34
+ } }
35
+ };
36
+ }
37
+
38
+ //#endregion
39
+ export { resolveMaizzleImports };
40
+ //# sourceMappingURL=resolveMaizzleImports.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveMaizzleImports.mjs","names":[],"sources":["../../../src/plugins/postcss/resolveMaizzleImports.ts"],"sourcesContent":["import { createRequire } from 'node:module'\nimport type { Plugin } from 'postcss'\n\nconst PKG = '@maizzle/tailwindcss'\nconst SUBPATH_RE = new RegExp(`^${PKG}(?:/|$)`)\n\nconst requireFromFramework = createRequire(import.meta.url)\n\n/**\n * Rewrite `@import \"@maizzle/tailwindcss\"` (and subpaths like\n * `@maizzle/tailwindcss/mso`) to absolute file paths so postcss/Tailwind\n * can resolve them regardless of where the user's template lives or how\n * their package manager hoists dependencies.\n *\n * Resolution order: prefer the user's project copy (so explicit installs\n * win), then fall back to the copy bundled with the framework.\n */\nexport function resolveMaizzleImports(userRoot: string = process.cwd()): Plugin {\n const requireFromUser = createRequire(`${userRoot}/_maizzle.js`)\n\n function resolve(spec: string): string | undefined {\n try { return requireFromUser.resolve(spec) } catch {}\n try { return requireFromFramework.resolve(spec) } catch {}\n return undefined\n }\n\n return {\n postcssPlugin: 'maizzle:resolve-tw-imports',\n AtRule: {\n import(rule) {\n const m = rule.params.match(/^\\s*[\"']([^\"']+)[\"']/)\n if (!m) return\n const spec = m[1]\n if (!SUBPATH_RE.test(spec)) return\n\n const abs = resolve(spec)\n if (abs) rule.params = rule.params.replace(m[0], `\"${abs}\"`)\n },\n },\n }\n}\n"],"mappings":";;;AAIA,MAAM,aAAa,IAAI,OAAO,+BAAiB;AAE/C,MAAM,uBAAuB,cAAc,OAAO,KAAK,IAAI;;;;;;;;;;AAW3D,SAAgB,sBAAsB,WAAmB,QAAQ,KAAK,EAAU;CAC9E,MAAM,kBAAkB,cAAc,GAAG,SAAS,cAAc;CAEhE,SAAS,QAAQ,MAAkC;AACjD,MAAI;AAAE,UAAO,gBAAgB,QAAQ,KAAK;UAAS;AACnD,MAAI;AAAE,UAAO,qBAAqB,QAAQ,KAAK;UAAS;;AAI1D,QAAO;EACL,eAAe;EACf,QAAQ,EACN,OAAO,MAAM;GACX,MAAM,IAAI,KAAK,OAAO,MAAM,uBAAuB;AACnD,OAAI,CAAC,EAAG;GACR,MAAM,OAAO,EAAE;AACf,OAAI,CAAC,WAAW,KAAK,KAAK,CAAE;GAE5B,MAAM,MAAM,QAAQ,KAAK;AACzB,OAAI,IAAK,MAAK,SAAS,KAAK,OAAO,QAAQ,EAAE,IAAI,IAAI,IAAI,GAAG;KAE/D;EACF"}
@@ -5,4 +5,4 @@ declare const _default: () => Plugin;
5
5
  declare const postcss = true;
6
6
  //#endregion
7
7
  export { _default as default, postcss };
8
- //# sourceMappingURL=resolveProps.d.mts.map
8
+ //# sourceMappingURL=resolveProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveProps.d.ts","names":[],"sources":["../../../src/plugins/postcss/resolveProps.ts"],"mappings":";;;cAiByD,QAAA,QA6FtC,MAAA;AAAA,cA8IN,OAAA"}
@@ -1,4 +1,4 @@
1
- import { MaizzleConfig } from "../../types/config.mjs";
1
+ import { MaizzleConfig } from "../../types/config.js";
2
2
  import postcss from "postcss";
3
3
 
4
4
  //#region src/plugins/postcss/tailwindCleanup.d.ts
@@ -15,4 +15,4 @@ import postcss from "postcss";
15
15
  declare function tailwindCleanup(config: MaizzleConfig): postcss.Plugin[];
16
16
  //#endregion
17
17
  export { tailwindCleanup };
18
- //# sourceMappingURL=tailwindCleanup.d.mts.map
18
+ //# sourceMappingURL=tailwindCleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwindCleanup.d.ts","names":[],"sources":["../../../src/plugins/postcss/tailwindCleanup.ts"],"mappings":";;;;;;AA0CA;;;;;;;;iBAAgB,eAAA,CAAgB,MAAA,EAAQ,aAAA,GAAgB,OAAA,CAAQ,MAAA"}
@@ -14,4 +14,4 @@ interface PrepareOptions {
14
14
  declare function prepare(options?: PrepareOptions): Promise<void>;
15
15
  //#endregion
16
16
  export { PrepareOptions, prepare };
17
- //# sourceMappingURL=prepare.d.mts.map
17
+ //# sourceMappingURL=prepare.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare.d.ts","names":[],"sources":["../src/prepare.ts"],"mappings":";UAMiB,cAAA;EAAA;EAEf,MAAA;AAAA;;;AAWF;;;;;;iBAAsB,OAAA,CAAQ,OAAA,GAAS,cAAA,GAAsB,OAAA"}