@maizzle/framework 6.0.0-rc.0 → 6.0.0-rc.10

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 (341) hide show
  1. package/bin/maizzle.mjs +1 -1
  2. package/dist/_virtual/_rolldown/runtime.mjs +32 -0
  3. package/dist/build.mjs +29 -9
  4. package/dist/build.mjs.map +1 -1
  5. package/dist/components/Body.vue +111 -0
  6. package/dist/components/Button.vue +68 -14
  7. package/dist/components/CodeBlock.vue +68 -0
  8. package/dist/components/CodeInline.vue +49 -0
  9. package/dist/components/Column.vue +86 -0
  10. package/dist/components/Container.vue +48 -0
  11. package/dist/components/Divider.vue +28 -0
  12. package/dist/components/Head.vue +30 -0
  13. package/dist/components/Heading.vue +28 -0
  14. package/dist/components/Html.vue +104 -0
  15. package/dist/components/Image.vue +70 -0
  16. package/dist/components/Layout.vue +93 -0
  17. package/dist/components/Link.vue +26 -0
  18. package/dist/components/Markdown.vue +89 -0
  19. package/dist/components/Outlook.vue +36 -0
  20. package/dist/components/Overlap.vue +80 -0
  21. package/dist/components/Preheader.vue +20 -0
  22. package/dist/components/Row.vue +91 -0
  23. package/dist/components/Section.vue +83 -0
  24. package/dist/components/Spacer.vue +50 -7
  25. package/dist/components/Text.vue +29 -0
  26. package/dist/components/Vml.vue +165 -13
  27. package/dist/composables/renderContext.d.mts +5 -0
  28. package/dist/composables/renderContext.d.mts.map +1 -1
  29. package/dist/composables/renderContext.mjs.map +1 -1
  30. package/dist/composables/usePreviewText.d.mts +24 -0
  31. package/dist/composables/usePreviewText.d.mts.map +1 -0
  32. package/dist/composables/usePreviewText.mjs +29 -0
  33. package/dist/composables/usePreviewText.mjs.map +1 -0
  34. package/dist/config/index.mjs +25 -1
  35. package/dist/config/index.mjs.map +1 -1
  36. package/dist/index.d.mts +4 -2
  37. package/dist/index.mjs +3 -1
  38. package/dist/node_modules/picomatch/index.mjs +13 -0
  39. package/dist/node_modules/picomatch/index.mjs.map +1 -0
  40. package/dist/node_modules/picomatch/lib/constants.mjs +174 -0
  41. package/dist/node_modules/picomatch/lib/constants.mjs.map +1 -0
  42. package/dist/node_modules/picomatch/lib/parse.mjs +1067 -0
  43. package/dist/node_modules/picomatch/lib/parse.mjs.map +1 -0
  44. package/dist/node_modules/picomatch/lib/picomatch.mjs +304 -0
  45. package/dist/node_modules/picomatch/lib/picomatch.mjs.map +1 -0
  46. package/dist/node_modules/picomatch/lib/scan.mjs +296 -0
  47. package/dist/node_modules/picomatch/lib/scan.mjs.map +1 -0
  48. package/dist/node_modules/picomatch/lib/utils.mjs +53 -0
  49. package/dist/node_modules/picomatch/lib/utils.mjs.map +1 -0
  50. package/dist/plugin.d.mts.map +1 -1
  51. package/dist/plugin.mjs +24 -7
  52. package/dist/plugin.mjs.map +1 -1
  53. package/dist/plugins/postcss/tailwindCleanup.d.mts.map +1 -1
  54. package/dist/plugins/postcss/tailwindCleanup.mjs +44 -13
  55. package/dist/plugins/postcss/tailwindCleanup.mjs.map +1 -1
  56. package/dist/render/createRenderer.d.mts +10 -3
  57. package/dist/render/createRenderer.d.mts.map +1 -1
  58. package/dist/render/createRenderer.mjs +147 -10
  59. package/dist/render/createRenderer.mjs.map +1 -1
  60. package/dist/render/index.mjs +9 -3
  61. package/dist/render/index.mjs.map +1 -1
  62. package/dist/serve.d.mts.map +1 -1
  63. package/dist/serve.mjs +159 -63
  64. package/dist/serve.mjs.map +1 -1
  65. package/dist/server/compatibility.d.mts +1 -2
  66. package/dist/server/compatibility.d.mts.map +1 -1
  67. package/dist/server/compatibility.mjs +30 -16
  68. package/dist/server/compatibility.mjs.map +1 -1
  69. package/dist/server/email.d.mts +17 -0
  70. package/dist/server/email.d.mts.map +1 -0
  71. package/dist/server/email.mjs +41 -0
  72. package/dist/server/email.mjs.map +1 -0
  73. package/dist/server/linter.d.mts +1 -2
  74. package/dist/server/linter.d.mts.map +1 -1
  75. package/dist/server/linter.mjs +60 -71
  76. package/dist/server/linter.mjs.map +1 -1
  77. package/dist/server/ui/App.vue +205 -69
  78. package/dist/server/ui/components/ui/checkbox/Checkbox.vue +35 -0
  79. package/dist/server/ui/components/ui/checkbox/index.ts +1 -0
  80. package/dist/server/ui/components/ui/command/CommandDialog.vue +1 -1
  81. package/dist/server/ui/components/ui/command/CommandInput.vue +19 -1
  82. package/dist/server/ui/components/ui/command/CommandItem.vue +1 -1
  83. package/dist/server/ui/components/ui/command/CommandList.vue +1 -1
  84. package/dist/server/ui/components/ui/command/CommandShortcut.vue +1 -1
  85. package/dist/server/ui/components/ui/dialog/DialogOverlay.vue +9 -1
  86. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuItem.vue +1 -1
  87. package/dist/server/ui/components/ui/scroll-area/ScrollBar.vue +1 -1
  88. package/dist/server/ui/components/ui/sheet/SheetContent.vue +1 -1
  89. package/dist/server/ui/components/ui/sheet/SheetOverlay.vue +9 -1
  90. package/dist/server/ui/components/ui/sidebar/Sidebar.vue +8 -1
  91. package/dist/server/ui/components/ui/sidebar/SidebarProvider.vue +1 -1
  92. package/dist/server/ui/components/ui/sidebar/SidebarTrigger.vue +5 -4
  93. package/dist/server/ui/components/ui/tags-input/TagsInput.vue +26 -0
  94. package/dist/server/ui/components/ui/tags-input/TagsInputInput.vue +17 -0
  95. package/dist/server/ui/components/ui/tags-input/TagsInputItem.vue +19 -0
  96. package/dist/server/ui/components/ui/tags-input/TagsInputItemDelete.vue +22 -0
  97. package/dist/server/ui/components/ui/tags-input/TagsInputItemText.vue +17 -0
  98. package/dist/server/ui/components/ui/tags-input/index.ts +5 -0
  99. package/dist/server/ui/components/ui/toggle/index.ts +3 -3
  100. package/dist/server/ui/components/ui/toggle-group/ToggleGroup.vue +1 -1
  101. package/dist/server/ui/components/ui/toggle-group/ToggleGroupItem.vue +2 -2
  102. package/dist/server/ui/main.css +20 -20
  103. package/dist/server/ui/pages/Home.vue +12 -5
  104. package/dist/server/ui/pages/Preview.vue +506 -216
  105. package/dist/transformers/entities.d.mts.map +1 -1
  106. package/dist/transformers/entities.mjs +3 -0
  107. package/dist/transformers/entities.mjs.map +1 -1
  108. package/dist/transformers/filters/defaults.d.mts +6 -0
  109. package/dist/transformers/filters/defaults.d.mts.map +1 -0
  110. package/dist/transformers/filters/defaults.mjs +78 -0
  111. package/dist/transformers/filters/defaults.mjs.map +1 -0
  112. package/dist/transformers/filters/index.d.mts +22 -0
  113. package/dist/transformers/filters/index.d.mts.map +1 -0
  114. package/dist/transformers/filters/index.mjs +67 -0
  115. package/dist/transformers/filters/index.mjs.map +1 -0
  116. package/dist/transformers/index.d.mts +11 -9
  117. package/dist/transformers/index.d.mts.map +1 -1
  118. package/dist/transformers/index.mjs +19 -11
  119. package/dist/transformers/index.mjs.map +1 -1
  120. package/dist/transformers/inlineCSS.d.mts +1 -14
  121. package/dist/transformers/inlineCSS.d.mts.map +1 -1
  122. package/dist/transformers/inlineCSS.mjs +25 -34
  123. package/dist/transformers/inlineCSS.mjs.map +1 -1
  124. package/dist/transformers/purgeCSS.d.mts.map +1 -1
  125. package/dist/transformers/purgeCSS.mjs +67 -1
  126. package/dist/transformers/purgeCSS.mjs.map +1 -1
  127. package/dist/transformers/sixHex.d.mts +16 -0
  128. package/dist/transformers/sixHex.d.mts.map +1 -0
  129. package/dist/transformers/sixHex.mjs +30 -0
  130. package/dist/transformers/sixHex.mjs.map +1 -0
  131. package/dist/transformers/tailwindcss.d.mts +6 -2
  132. package/dist/transformers/tailwindcss.d.mts.map +1 -1
  133. package/dist/transformers/tailwindcss.mjs +52 -28
  134. package/dist/transformers/tailwindcss.mjs.map +1 -1
  135. package/dist/types/config.d.mts +459 -17
  136. package/dist/types/config.d.mts.map +1 -1
  137. package/dist/types/index.d.mts +2 -2
  138. package/dist/utils/ast/serializer.d.mts +3 -2
  139. package/dist/utils/ast/serializer.d.mts.map +1 -1
  140. package/dist/utils/ast/serializer.mjs +24 -0
  141. package/dist/utils/ast/serializer.mjs.map +1 -1
  142. package/dist/utils/detect.d.mts +5 -0
  143. package/dist/utils/detect.d.mts.map +1 -0
  144. package/dist/utils/detect.mjs +11 -0
  145. package/dist/utils/detect.mjs.map +1 -0
  146. package/node_modules/@clack/core/CHANGELOG.md +87 -4
  147. package/node_modules/@clack/core/README.md +1 -1
  148. package/node_modules/@clack/core/dist/index.d.mts +186 -48
  149. package/node_modules/@clack/core/dist/index.mjs +10 -14
  150. package/node_modules/@clack/core/dist/index.mjs.map +1 -1
  151. package/node_modules/@clack/core/package.json +7 -9
  152. package/node_modules/@clack/prompts/CHANGELOG.md +171 -7
  153. package/node_modules/@clack/prompts/README.md +66 -3
  154. package/node_modules/@clack/prompts/dist/index.d.mts +302 -76
  155. package/node_modules/@clack/prompts/dist/index.mjs +134 -84
  156. package/node_modules/@clack/prompts/dist/index.mjs.map +1 -1
  157. package/node_modules/@clack/prompts/package.json +14 -10
  158. package/node_modules/citty/LICENSE +0 -15
  159. package/node_modules/citty/README.md +166 -69
  160. package/node_modules/citty/dist/index.d.mts +88 -56
  161. package/node_modules/citty/dist/index.mjs +399 -437
  162. package/node_modules/citty/package.json +28 -35
  163. package/node_modules/giget/README.md +59 -11
  164. package/node_modules/giget/dist/THIRD-PARTY-LICENSES.md +205 -0
  165. package/node_modules/giget/dist/_chunks/giget.mjs +508 -0
  166. package/node_modules/giget/dist/_chunks/libs/citty.mjs +269 -0
  167. package/node_modules/giget/dist/_chunks/libs/nypm.d.mts +1 -0
  168. package/node_modules/giget/dist/_chunks/libs/nypm.mjs +669 -0
  169. package/node_modules/giget/dist/_chunks/libs/tar.mjs +2931 -0
  170. package/node_modules/giget/dist/_chunks/rolldown-runtime.mjs +14 -0
  171. package/node_modules/giget/dist/cli.d.mts +1 -0
  172. package/node_modules/giget/dist/cli.mjs +89 -111
  173. package/node_modules/giget/dist/index.d.mts +46 -35
  174. package/node_modules/giget/dist/index.mjs +2 -22
  175. package/node_modules/giget/package.json +32 -45
  176. package/node_modules/maizzle/README.md +140 -0
  177. package/node_modules/maizzle/bin/maizzle.mjs +5 -0
  178. package/node_modules/maizzle/dist/commands/new.d.mts +7 -0
  179. package/node_modules/maizzle/dist/commands/new.mjs +278 -0
  180. package/node_modules/{@maizzle/cli → maizzle}/dist/index.d.mts +1 -1
  181. package/node_modules/maizzle/dist/index.mjs +44 -0
  182. package/node_modules/{commander → maizzle/node_modules/commander}/Readme.md +94 -67
  183. package/node_modules/{commander → maizzle/node_modules/commander}/lib/argument.js +5 -4
  184. package/node_modules/{commander → maizzle/node_modules/commander}/lib/command.js +154 -39
  185. package/node_modules/{commander → maizzle/node_modules/commander}/lib/help.js +77 -39
  186. package/node_modules/{commander → maizzle/node_modules/commander}/lib/option.js +16 -3
  187. package/node_modules/{commander → maizzle/node_modules/commander}/package-support.json +4 -1
  188. package/node_modules/{commander → maizzle/node_modules/commander}/package.json +8 -8
  189. package/node_modules/{commander → maizzle/node_modules/commander}/typings/index.d.ts +71 -3
  190. package/node_modules/{@maizzle/cli → maizzle}/package.json +13 -11
  191. package/node_modules/tinyexec/README.md +49 -3
  192. package/node_modules/tinyexec/dist/main.d.mts +25 -14
  193. package/node_modules/tinyexec/dist/main.mjs +148 -100
  194. package/node_modules/tinyexec/package.json +9 -8
  195. package/package.json +9 -4
  196. package/dist/server/ui/components/ui/resizable/ResizableHandle.vue +0 -30
  197. package/dist/server/ui/components/ui/resizable/ResizablePanel.vue +0 -21
  198. package/dist/server/ui/components/ui/resizable/ResizablePanelGroup.vue +0 -25
  199. package/dist/server/ui/components/ui/resizable/index.ts +0 -3
  200. package/node_modules/@clack/core/dist/index.cjs +0 -15
  201. package/node_modules/@clack/core/dist/index.cjs.map +0 -1
  202. package/node_modules/@clack/core/dist/index.d.cts +0 -211
  203. package/node_modules/@clack/core/dist/index.d.ts +0 -211
  204. package/node_modules/@clack/prompts/dist/index.cjs +0 -87
  205. package/node_modules/@clack/prompts/dist/index.cjs.map +0 -1
  206. package/node_modules/@clack/prompts/dist/index.d.cts +0 -165
  207. package/node_modules/@clack/prompts/dist/index.d.ts +0 -165
  208. package/node_modules/@maizzle/cli/README.md +0 -58
  209. package/node_modules/@maizzle/cli/dist/index.mjs +0 -42
  210. package/node_modules/citty/dist/index.cjs +0 -475
  211. package/node_modules/citty/dist/index.d.cts +0 -80
  212. package/node_modules/citty/dist/index.d.ts +0 -80
  213. package/node_modules/consola/LICENSE +0 -47
  214. package/node_modules/consola/README.md +0 -352
  215. package/node_modules/consola/basic.d.ts +0 -1
  216. package/node_modules/consola/browser.d.ts +0 -1
  217. package/node_modules/consola/core.d.ts +0 -1
  218. package/node_modules/consola/dist/basic.cjs +0 -32
  219. package/node_modules/consola/dist/basic.d.cts +0 -23
  220. package/node_modules/consola/dist/basic.d.mts +0 -21
  221. package/node_modules/consola/dist/basic.d.ts +0 -23
  222. package/node_modules/consola/dist/basic.mjs +0 -24
  223. package/node_modules/consola/dist/browser.cjs +0 -84
  224. package/node_modules/consola/dist/browser.d.cts +0 -23
  225. package/node_modules/consola/dist/browser.d.mts +0 -21
  226. package/node_modules/consola/dist/browser.d.ts +0 -23
  227. package/node_modules/consola/dist/browser.mjs +0 -76
  228. package/node_modules/consola/dist/chunks/prompt.cjs +0 -288
  229. package/node_modules/consola/dist/chunks/prompt.mjs +0 -280
  230. package/node_modules/consola/dist/core.cjs +0 -517
  231. package/node_modules/consola/dist/core.d.cts +0 -459
  232. package/node_modules/consola/dist/core.d.mts +0 -459
  233. package/node_modules/consola/dist/core.d.ts +0 -459
  234. package/node_modules/consola/dist/core.mjs +0 -512
  235. package/node_modules/consola/dist/index.cjs +0 -663
  236. package/node_modules/consola/dist/index.d.cts +0 -24
  237. package/node_modules/consola/dist/index.d.mts +0 -22
  238. package/node_modules/consola/dist/index.d.ts +0 -24
  239. package/node_modules/consola/dist/index.mjs +0 -651
  240. package/node_modules/consola/dist/shared/consola.DCGIlDNP.cjs +0 -75
  241. package/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +0 -72
  242. package/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +0 -288
  243. package/node_modules/consola/dist/shared/consola.DwRq1yyg.cjs +0 -312
  244. package/node_modules/consola/dist/utils.cjs +0 -64
  245. package/node_modules/consola/dist/utils.d.cts +0 -286
  246. package/node_modules/consola/dist/utils.d.mts +0 -286
  247. package/node_modules/consola/dist/utils.d.ts +0 -286
  248. package/node_modules/consola/dist/utils.mjs +0 -54
  249. package/node_modules/consola/lib/index.cjs +0 -10
  250. package/node_modules/consola/package.json +0 -136
  251. package/node_modules/consola/utils.d.ts +0 -1
  252. package/node_modules/create-maizzle/README.md +0 -86
  253. package/node_modules/create-maizzle/bin/create-maizzle.mjs +0 -4
  254. package/node_modules/create-maizzle/node_modules/@clack/core/CHANGELOG.md +0 -340
  255. package/node_modules/create-maizzle/node_modules/@clack/core/LICENSE +0 -9
  256. package/node_modules/create-maizzle/node_modules/@clack/core/README.md +0 -22
  257. package/node_modules/create-maizzle/node_modules/@clack/core/dist/index.d.mts +0 -349
  258. package/node_modules/create-maizzle/node_modules/@clack/core/dist/index.mjs +0 -11
  259. package/node_modules/create-maizzle/node_modules/@clack/core/dist/index.mjs.map +0 -1
  260. package/node_modules/create-maizzle/node_modules/@clack/core/package.json +0 -60
  261. package/node_modules/create-maizzle/node_modules/@clack/prompts/CHANGELOG.md +0 -576
  262. package/node_modules/create-maizzle/node_modules/@clack/prompts/LICENSE +0 -9
  263. package/node_modules/create-maizzle/node_modules/@clack/prompts/README.md +0 -270
  264. package/node_modules/create-maizzle/node_modules/@clack/prompts/dist/index.d.mts +0 -391
  265. package/node_modules/create-maizzle/node_modules/@clack/prompts/dist/index.mjs +0 -137
  266. package/node_modules/create-maizzle/node_modules/@clack/prompts/dist/index.mjs.map +0 -1
  267. package/node_modules/create-maizzle/node_modules/@clack/prompts/package.json +0 -65
  268. package/node_modules/create-maizzle/package.json +0 -47
  269. package/node_modules/create-maizzle/src/index.js +0 -242
  270. package/node_modules/defu/LICENSE +0 -21
  271. package/node_modules/defu/README.md +0 -171
  272. package/node_modules/defu/dist/defu.cjs +0 -77
  273. package/node_modules/defu/dist/defu.d.cts +0 -31
  274. package/node_modules/defu/dist/defu.d.mts +0 -29
  275. package/node_modules/defu/dist/defu.d.ts +0 -31
  276. package/node_modules/defu/dist/defu.mjs +0 -69
  277. package/node_modules/defu/lib/defu.cjs +0 -10
  278. package/node_modules/defu/lib/defu.d.cts +0 -12
  279. package/node_modules/defu/package.json +0 -48
  280. package/node_modules/giget/dist/shared/giget.OCaTp9b-.mjs +0 -468
  281. package/node_modules/node-fetch-native/LICENSE +0 -114
  282. package/node_modules/node-fetch-native/README.md +0 -225
  283. package/node_modules/node-fetch-native/dist/chunks/multipart-parser.cjs +0 -2
  284. package/node_modules/node-fetch-native/dist/chunks/multipart-parser.mjs +0 -2
  285. package/node_modules/node-fetch-native/dist/index.cjs +0 -1
  286. package/node_modules/node-fetch-native/dist/index.mjs +0 -1
  287. package/node_modules/node-fetch-native/dist/native.cjs +0 -1
  288. package/node_modules/node-fetch-native/dist/native.mjs +0 -1
  289. package/node_modules/node-fetch-native/dist/node.cjs +0 -19
  290. package/node_modules/node-fetch-native/dist/node.mjs +0 -19
  291. package/node_modules/node-fetch-native/dist/polyfill.cjs +0 -1
  292. package/node_modules/node-fetch-native/dist/polyfill.mjs +0 -1
  293. package/node_modules/node-fetch-native/dist/proxy-stub.cjs +0 -1
  294. package/node_modules/node-fetch-native/dist/proxy-stub.mjs +0 -1
  295. package/node_modules/node-fetch-native/dist/proxy.cjs +0 -58
  296. package/node_modules/node-fetch-native/dist/shared/node-fetch-native.DfbY2q-x.mjs +0 -1
  297. package/node_modules/node-fetch-native/dist/shared/node-fetch-native.DhEqb06g.cjs +0 -1
  298. package/node_modules/node-fetch-native/index.d.ts +0 -1
  299. package/node_modules/node-fetch-native/lib/empty.cjs +0 -0
  300. package/node_modules/node-fetch-native/lib/empty.mjs +0 -0
  301. package/node_modules/node-fetch-native/lib/index.cjs +0 -11
  302. package/node_modules/node-fetch-native/lib/index.d.cts +0 -10
  303. package/node_modules/node-fetch-native/lib/index.d.mts +0 -10
  304. package/node_modules/node-fetch-native/lib/index.d.ts +0 -10
  305. package/node_modules/node-fetch-native/lib/native.cjs +0 -11
  306. package/node_modules/node-fetch-native/lib/polyfill.d.cts +0 -1
  307. package/node_modules/node-fetch-native/lib/polyfill.d.mts +0 -1
  308. package/node_modules/node-fetch-native/lib/polyfill.d.ts +0 -1
  309. package/node_modules/node-fetch-native/lib/proxy.d.ts +0 -32
  310. package/node_modules/node-fetch-native/node.d.ts +0 -1
  311. package/node_modules/node-fetch-native/package.json +0 -138
  312. package/node_modules/node-fetch-native/polyfill.d.ts +0 -1
  313. package/node_modules/node-fetch-native/proxy.d.ts +0 -1
  314. package/node_modules/nypm/node_modules/citty/LICENSE +0 -21
  315. package/node_modules/nypm/node_modules/citty/README.md +0 -231
  316. package/node_modules/nypm/node_modules/citty/dist/index.d.mts +0 -112
  317. package/node_modules/nypm/node_modules/citty/dist/index.mjs +0 -425
  318. package/node_modules/nypm/node_modules/citty/package.json +0 -42
  319. /package/node_modules/{nypm/node_modules/citty → citty}/dist/THIRD-PARTY-LICENSES.md +0 -0
  320. /package/node_modules/{nypm/node_modules/citty → citty}/dist/_chunks/libs/scule.mjs +0 -0
  321. /package/node_modules/{@maizzle/cli → maizzle}/LICENSE +0 -0
  322. /package/node_modules/{@maizzle/cli → maizzle}/dist/commands/make/component.d.mts +0 -0
  323. /package/node_modules/{@maizzle/cli → maizzle}/dist/commands/make/component.mjs +0 -0
  324. /package/node_modules/{@maizzle/cli → maizzle}/dist/commands/make/config.d.mts +0 -0
  325. /package/node_modules/{@maizzle/cli → maizzle}/dist/commands/make/config.mjs +0 -0
  326. /package/node_modules/{@maizzle/cli → maizzle}/dist/commands/make/layout.d.mts +0 -0
  327. /package/node_modules/{@maizzle/cli → maizzle}/dist/commands/make/layout.mjs +0 -0
  328. /package/node_modules/{@maizzle/cli → maizzle}/dist/commands/make/scaffold.d.mts +0 -0
  329. /package/node_modules/{@maizzle/cli → maizzle}/dist/commands/make/scaffold.mjs +0 -0
  330. /package/node_modules/{@maizzle/cli → maizzle}/dist/commands/make/stubs/component.vue +0 -0
  331. /package/node_modules/{@maizzle/cli → maizzle}/dist/commands/make/stubs/config.ts +0 -0
  332. /package/node_modules/{@maizzle/cli → maizzle}/dist/commands/make/stubs/layout.vue +0 -0
  333. /package/node_modules/{@maizzle/cli → maizzle}/dist/commands/make/stubs/template.vue +0 -0
  334. /package/node_modules/{@maizzle/cli → maizzle}/dist/commands/make/template.d.mts +0 -0
  335. /package/node_modules/{@maizzle/cli → maizzle}/dist/commands/make/template.mjs +0 -0
  336. /package/node_modules/{commander → maizzle/node_modules/commander}/LICENSE +0 -0
  337. /package/node_modules/{commander → maizzle/node_modules/commander}/esm.mjs +0 -0
  338. /package/node_modules/{commander → maizzle/node_modules/commander}/index.js +0 -0
  339. /package/node_modules/{commander → maizzle/node_modules/commander}/lib/error.js +0 -0
  340. /package/node_modules/{commander → maizzle/node_modules/commander}/lib/suggestSimilar.js +0 -0
  341. /package/node_modules/{commander → maizzle/node_modules/commander}/typings/esm.d.mts +0 -0
@@ -0,0 +1,48 @@
1
+ <script setup lang="ts">
2
+ import { computed, provide, createStaticVNode, useAttrs } from 'vue'
3
+ import { normalizeToPixels } from './utils.ts'
4
+
5
+ defineOptions({ inheritAttrs: false })
6
+
7
+ const attrs = useAttrs()
8
+
9
+ const props = defineProps({
10
+ /**
11
+ * Max width of the container.
12
+ *
13
+ * Applied as `max-width` on the div and as `width` on the MSO table.
14
+ * Also provided to child `Row` and `Column` components for
15
+ * automatic column width calculation.
16
+ *
17
+ * @default '37.5em'
18
+ */
19
+ width: {
20
+ type: [String, Number],
21
+ default: '37.5em'
22
+ }
23
+ })
24
+
25
+ provide('containerWidth', computed(() => props.width))
26
+
27
+ const styles = computed(() => {
28
+ return `max-width: ${normalizeToPixels(props.width)}; margin: 0 auto;`
29
+ })
30
+
31
+ const MsoBefore = () => createStaticVNode(
32
+ `<!--[if mso]><table role="none" cellpadding="0" cellspacing="0" style="width: ${normalizeToPixels(props.width)}" align="center"><tr><td><![endif]-->`,
33
+ 1
34
+ )
35
+
36
+ const MsoAfter = () => createStaticVNode(
37
+ '<!--[if mso]></td></tr></table><![endif]-->',
38
+ 1
39
+ )
40
+ </script>
41
+
42
+ <template>
43
+ <MsoBefore />
44
+ <div v-bind="attrs" :style="styles">
45
+ <slot />
46
+ </div>
47
+ <MsoAfter />
48
+ </template>
@@ -5,34 +5,62 @@ import { normalizeToPixels } from './utils.ts'
5
5
  const attrs = useAttrs()
6
6
 
7
7
  const props = defineProps({
8
+ /**
9
+ * Height (thickness) of the divider line.
10
+ *
11
+ * @default '1px'
12
+ */
8
13
  height: {
9
14
  type: [String, Number],
10
15
  default: '1px'
11
16
  },
17
+ /**
18
+ * Background color of the divider line.
19
+ *
20
+ * Defaults to `#cbd5e1` when no Tailwind `bg-*` class is used.
21
+ *
22
+ * @example '#e2e8f0'
23
+ */
12
24
  color: {
13
25
  type: String,
14
26
  default: null
15
27
  },
28
+ /**
29
+ * Vertical spacing (margin) above and below the divider.
30
+ *
31
+ * Overridden by `top` and `bottom` if set.
32
+ *
33
+ * @default '24px'
34
+ */
16
35
  spaceY: {
17
36
  type: [String, Number],
18
37
  default: '24px'
19
38
  },
39
+ /**
40
+ * Horizontal spacing (margin) on both sides of the divider.
41
+ *
42
+ * Overridden by `left` and `right` if set.
43
+ */
20
44
  spaceX: {
21
45
  type: [String, Number],
22
46
  default: null
23
47
  },
48
+ /** Margin above the divider. Overrides `spaceY` for the top side. */
24
49
  top: {
25
50
  type: [String, Number],
26
51
  default: null
27
52
  },
53
+ /** Margin below the divider. Overrides `spaceY` for the bottom side. */
28
54
  bottom: {
29
55
  type: [String, Number],
30
56
  default: null
31
57
  },
58
+ /** Margin to the left of the divider. Overrides `spaceX` for the left side. */
32
59
  left: {
33
60
  type: [String, Number],
34
61
  default: null
35
62
  },
63
+ /** Margin to the right of the divider. Overrides `spaceX` for the right side. */
36
64
  right: {
37
65
  type: [String, Number],
38
66
  default: null
@@ -0,0 +1,30 @@
1
+ <script setup lang="ts">
2
+ import { createStaticVNode } from 'vue'
3
+
4
+ const props = defineProps({
5
+ /**
6
+ * Render an empty `<head>` before the main head element.
7
+ *
8
+ * This is a workaround for Yahoo! Mail on Android, which
9
+ * strips styles from the first `<head>` element.
10
+ *
11
+ * @default false
12
+ */
13
+ double: {
14
+ type: [Boolean, String],
15
+ default: false
16
+ }
17
+ })
18
+
19
+ const EmptyHead = () => createStaticVNode('<head></head>', 1)
20
+ </script>
21
+
22
+ <template>
23
+ <EmptyHead v-if="props.double === true || props.double === 'true'" />
24
+ <head>
25
+ <meta charset="utf-8">
26
+ <meta name="x-apple-disable-message-reformatting">
27
+ <meta name="viewport" content="width=device-width, initial-scale=1">
28
+ <slot />
29
+ </head>
30
+ </template>
@@ -0,0 +1,28 @@
1
+ <script setup lang="ts">
2
+ import { computed, useAttrs } from 'vue'
3
+ import { twMerge } from 'tailwind-merge'
4
+
5
+ defineOptions({ inheritAttrs: false })
6
+
7
+ const props = defineProps({
8
+ /**
9
+ * The heading level (1-6), corresponding to `<h1>` through `<h6>`.
10
+ * @default 1
11
+ */
12
+ level: {
13
+ type: [String, Number],
14
+ default: 1,
15
+ validator: (v: string | number) => [1, 2, 3, 4, 5, 6].includes(Number(v)),
16
+ },
17
+ })
18
+
19
+ const attrs = useAttrs()
20
+ const tag = computed(() => `h${props.level}`)
21
+ const mergedClass = computed(() => twMerge('m-0', attrs.class as string))
22
+ </script>
23
+
24
+ <template>
25
+ <component :is="tag" v-bind="$attrs" :class="mergedClass">
26
+ <slot />
27
+ </component>
28
+ </template>
@@ -0,0 +1,104 @@
1
+ <script setup lang="ts">
2
+ import { createStaticVNode, provide, useAttrs, useSlots } from 'vue'
3
+ import type { PropType } from 'vue'
4
+
5
+ defineOptions({ inheritAttrs: false })
6
+
7
+ const attrs = useAttrs()
8
+ const slots = useSlots()
9
+
10
+ const props = defineProps({
11
+ /**
12
+ * Language code for the `lang` attribute on `<html>`.
13
+ *
14
+ * Also provided to the child `Body` component for `xml:lang`.
15
+ *
16
+ * @default 'en'
17
+ */
18
+ lang: {
19
+ type: String as PropType<
20
+ | 'af' | 'ar' | 'az'
21
+ | 'be' | 'bg' | 'bs'
22
+ | 'ca' | 'cs' | 'cy'
23
+ | 'da' | 'de' | 'dv'
24
+ | 'el' | 'en' | 'es' | 'et' | 'eu'
25
+ | 'fa' | 'fi' | 'fo' | 'fr'
26
+ | 'gl' | 'gu'
27
+ | 'he' | 'hi' | 'hr' | 'hu' | 'hy'
28
+ | 'id' | 'is' | 'it'
29
+ | 'ja'
30
+ | 'ka' | 'kk' | 'kn' | 'ko' | 'ky'
31
+ | 'lt' | 'lv'
32
+ | 'mk' | 'mn' | 'mr' | 'ms' | 'mt'
33
+ | 'nb' | 'nl' | 'nn' | 'no'
34
+ | 'pa' | 'pl' | 'pt'
35
+ | 'ro' | 'ru'
36
+ | 'sa' | 'se' | 'sk' | 'sl' | 'sq' | 'sr' | 'sv' | 'sw'
37
+ | 'ta' | 'te' | 'th' | 'tr' | 'tt'
38
+ | 'uk' | 'ur' | 'uz'
39
+ | 'vi'
40
+ | 'zh'
41
+ | (string & {})
42
+ >,
43
+ default: 'en'
44
+ },
45
+ /**
46
+ * Text direction of the document.
47
+ *
48
+ * - `ltr` — left to right (default)
49
+ * - `rtl` — right to left
50
+ *
51
+ * @default 'ltr'
52
+ */
53
+ dir: {
54
+ type: String as PropType<'ltr' | 'rtl'>,
55
+ default: 'ltr'
56
+ },
57
+ /**
58
+ * Whether to include VML and Office XML namespace declarations.
59
+ *
60
+ * Required for Outlook VML support (background images, etc.).
61
+ * Set to `false` to omit the `xmlns:v` and `xmlns:o` attributes.
62
+ *
63
+ * @default true
64
+ */
65
+ xmlns: {
66
+ type: [Boolean, String],
67
+ default: true
68
+ }
69
+ })
70
+
71
+ provide('htmlLang', props.lang)
72
+
73
+ const render = () => {
74
+ const extraAttrs = Object.entries(attrs)
75
+ .map(([key, value]) => value === true ? key : `${key}="${value}"`)
76
+ .join(' ')
77
+
78
+ const parts = [
79
+ `lang="${props.lang}"`,
80
+ `dir="${props.dir}"`,
81
+ ]
82
+
83
+ if (props.xmlns !== false && props.xmlns !== 'false') {
84
+ parts.push(
85
+ 'xmlns:v="urn:schemas-microsoft-com:vml"',
86
+ 'xmlns:o="urn:schemas-microsoft-com:office:office"',
87
+ )
88
+ }
89
+
90
+ if (extraAttrs) {
91
+ parts.push(extraAttrs)
92
+ }
93
+
94
+ return [
95
+ createStaticVNode(`<html ${parts.join(' ')}>`, 1),
96
+ slots.default?.(),
97
+ createStaticVNode('</html>', 1),
98
+ ]
99
+ }
100
+ </script>
101
+
102
+ <template>
103
+ <render />
104
+ </template>
@@ -0,0 +1,70 @@
1
+ <script setup lang="ts">
2
+ import { computed, useAttrs } from 'vue'
3
+
4
+ defineOptions({ inheritAttrs: false })
5
+
6
+ const attrs = useAttrs()
7
+
8
+ const props = defineProps({
9
+ /** The image source URL. When reducedMotionSrc is used, this becomes the static fallback. */
10
+ src: {
11
+ type: String,
12
+ required: true
13
+ },
14
+ /** Alt text for the image. */
15
+ alt: {
16
+ type: String,
17
+ default: ''
18
+ },
19
+ /** Image source for dark mode. */
20
+ darkSrc: {
21
+ type: String,
22
+ default: null
23
+ },
24
+ /** The width of the image, rendered without units. */
25
+ width: {
26
+ type: [String, Number],
27
+ required: true
28
+ },
29
+ /** Animated image source, shown when user has no reduced motion preference. */
30
+ reducedMotionSrc: {
31
+ type: String,
32
+ default: null
33
+ }
34
+ })
35
+
36
+ function mimeFromExtension(src: string): string {
37
+ const ext = src.split('.').pop()?.toLowerCase() ?? ''
38
+
39
+ const types: Record<string, string> = {
40
+ apng: 'image/apng',
41
+ avif: 'image/avif',
42
+ gif: 'image/gif',
43
+ jpg: 'image/jpeg',
44
+ jpeg: 'image/jpeg',
45
+ jfif: 'image/jpeg',
46
+ png: 'image/png',
47
+ svg: 'image/svg+xml',
48
+ webp: 'image/webp',
49
+ }
50
+
51
+ return types[ext] ?? ''
52
+ }
53
+
54
+ const reducedMotionType = computed(() => mimeFromExtension(props.reducedMotionSrc ?? ''))
55
+
56
+ const imgWidth = computed(() => Number.parseInt(String(props.width), 10))
57
+
58
+ const usePicture = computed(() => props.darkSrc || props.reducedMotionSrc)
59
+
60
+ const imgStyle = 'max-width: 100%; vertical-align: middle;'
61
+ </script>
62
+
63
+ <template>
64
+ <picture v-if="usePicture">
65
+ <source v-if="darkSrc" :srcset="darkSrc" media="(prefers-color-scheme: dark)">
66
+ <source v-if="reducedMotionSrc" :srcset="reducedMotionSrc" :type="reducedMotionType || undefined" media="(prefers-reduced-motion: no-preference)">
67
+ <img v-bind="attrs" :src="src" :alt="alt" :width="imgWidth" :style="imgStyle">
68
+ </picture>
69
+ <img v-else v-bind="attrs" :src="src" :alt="alt" :width="imgWidth" :style="imgStyle">
70
+ </template>
@@ -0,0 +1,93 @@
1
+ <script setup lang="ts">
2
+ import type { PropType } from 'vue'
3
+
4
+ defineOptions({ inheritAttrs: false })
5
+
6
+ defineProps({
7
+ /**
8
+ * Classes to add to the `<body>` tag.
9
+ */
10
+ bodyClass: {
11
+ type: String,
12
+ default: ''
13
+ },
14
+ /**
15
+ * Language code for the `lang` and `xml:lang` attributes.
16
+ *
17
+ * @default 'en'
18
+ */
19
+ lang: {
20
+ type: String,
21
+ default: 'en'
22
+ },
23
+ /**
24
+ * Text direction.
25
+ *
26
+ * @default 'ltr'
27
+ */
28
+ dir: {
29
+ type: String as PropType<'ltr' | 'rtl'>,
30
+ default: 'ltr'
31
+ },
32
+ /**
33
+ * Accessible label for the email article wrapper.
34
+ *
35
+ * Used as the `aria-label` on the inner `<div role="article">`.
36
+ *
37
+ * @example 'Order confirmation'
38
+ */
39
+ ariaLabel: {
40
+ type: String,
41
+ default: undefined
42
+ }
43
+ })
44
+ </script>
45
+
46
+ <template>
47
+ <html :lang="lang" :dir="dir" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
48
+ <head>
49
+ <meta charset="utf-8">
50
+ <meta name="x-apple-disable-message-reformatting">
51
+ <meta name="viewport" content="width=device-width, initial-scale=1">
52
+ <meta name="format-detection" content="telephone=no, date=no, address=no, email=no, url=no">
53
+ <meta name="color-scheme" content="light dark">
54
+ <meta name="supported-color-schemes" content="light dark">
55
+ <!--[if mso]>
56
+ <noscript>
57
+ <xml>
58
+ <o:OfficeDocumentSettings xmlns:o="urn:schemas-microsoft-com:office:office">
59
+ <o:PixelsPerInch>96</o:PixelsPerInch>
60
+ </o:OfficeDocumentSettings>
61
+ </xml>
62
+ </noscript>
63
+ <style>
64
+ td,th,div,p,a,h1,h2,h3,h4,h5,h6 {font-family: "Segoe UI", sans-serif; mso-line-height-rule: exactly;}
65
+ .mso-break-all {word-break: break-all;}
66
+ </style>
67
+ <![endif]-->
68
+ <link rel="preconnect" href="https://fonts.googleapis.com">
69
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous">
70
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet" media="screen">
71
+ <style>
72
+ @import "@maizzle/tailwindcss";
73
+
74
+ img {
75
+ @apply max-w-full align-middle;
76
+ }
77
+ </style>
78
+ </head>
79
+ <body :xml:lang="lang" :class="['m-0 p-0 size-full [word-break:break-word]', bodyClass]">
80
+ <div
81
+ role="article"
82
+ aria-roledescription="email"
83
+ :aria-label="ariaLabel"
84
+ :lang="lang"
85
+ :dir="dir"
86
+ style="font-size: medium;"
87
+ :class="['[font-size:max(16px,1rem)]', $attrs.class]"
88
+ >
89
+ <slot />
90
+ </div>
91
+ </body>
92
+ </html>
93
+ </template>
@@ -0,0 +1,26 @@
1
+ <script setup lang="ts">
2
+ import { computed, useAttrs } from 'vue'
3
+ import { twMerge } from 'tailwind-merge'
4
+
5
+ defineOptions({ inheritAttrs: false })
6
+
7
+ defineProps({
8
+ /**
9
+ * The URL the link points to.
10
+ */
11
+ href: {
12
+ type: String,
13
+ required: true,
14
+ validator: (v: string) => v.trim().length > 0,
15
+ },
16
+ })
17
+
18
+ const attrs = useAttrs()
19
+ const mergedClass = computed(() => twMerge('no-underline', attrs.class as string))
20
+ </script>
21
+
22
+ <template>
23
+ <a :href="href" v-bind="$attrs" :class="mergedClass">
24
+ <slot />
25
+ </a>
26
+ </template>
@@ -0,0 +1,89 @@
1
+ <script lang="ts">
2
+ import { createStaticVNode, type PropType } from 'vue'
3
+ import { createMarkdownExit, type MarkdownExitOptions } from 'markdown-exit'
4
+ import { codeToHtml, type BundledTheme } from 'shiki'
5
+
6
+ export default {
7
+ props: {
8
+ /** Markdown content string. Overrides slot content. */
9
+ content: {
10
+ type: String,
11
+ default: ''
12
+ },
13
+ /** Path to a markdown file to render. Resolved at build time. */
14
+ src: {
15
+ type: String,
16
+ default: ''
17
+ },
18
+ /** Shiki theme for fenced code blocks. @default 'github-dark-high-contrast' */
19
+ shikiTheme: {
20
+ type: String as PropType<BundledTheme>,
21
+ default: 'github-dark-high-contrast'
22
+ },
23
+ /** Wrap output in a div element. @default false */
24
+ wrapper: {
25
+ type: Boolean,
26
+ default: false
27
+ },
28
+ /** markdown-exit configuration options. Merged with defaults. */
29
+ config: {
30
+ type: Object as PropType<MarkdownExitOptions>,
31
+ default: () => ({})
32
+ },
33
+ },
34
+ inheritAttrs: false,
35
+ async setup(props, { slots, attrs }) {
36
+ let source = props.content
37
+
38
+ if (!source) {
39
+ const slotContent = slots.default?.()
40
+ source = slotContent
41
+ ?.map((vnode: any) => (typeof vnode.children === 'string' ? vnode.children : ''))
42
+ .join('') ?? ''
43
+ }
44
+
45
+ source = source.trim()
46
+
47
+ if (!source) {
48
+ return () => createStaticVNode('', 0)
49
+ }
50
+
51
+ const md = createMarkdownExit({
52
+ html: true,
53
+ linkify: true,
54
+ typographer: true,
55
+ highlight: async (code, lang) => {
56
+ try {
57
+ return await codeToHtml(code, { lang, theme: props.shikiTheme })
58
+ } catch {
59
+ return ''
60
+ }
61
+ },
62
+ ...props.config,
63
+ })
64
+
65
+ const wrapPre = (html: string) =>
66
+ `<table class="w-full"><tr><td class="max-w-0 mso-padding-alt-4">${html}</td></tr></table>\n`
67
+
68
+ const defaultFence = md.renderer.rules.fence!
69
+ md.renderer.rules.fence = (...args) => {
70
+ const result = defaultFence(...args)
71
+ if (typeof result === 'string') return wrapPre(result)
72
+ return result.then(wrapPre)
73
+ }
74
+
75
+ const defaultCodeBlock = md.renderer.rules.code_block!
76
+ md.renderer.rules.code_block = (...args) => wrapPre(defaultCodeBlock(...args) as string)
77
+
78
+ let html = await md.renderAsync(source)
79
+
80
+ if (props.wrapper) {
81
+ const classes = attrs.class ? ` class="${attrs.class}"` : ''
82
+ const style = attrs.style ? ` style="${attrs.style}"` : ''
83
+ html = `<div${classes}${style}>${html}</div>`
84
+ }
85
+
86
+ return () => createStaticVNode(html, 1)
87
+ }
88
+ }
89
+ </script>
@@ -22,11 +22,47 @@ const parseList = (value: string) =>
22
22
  export default {
23
23
  name: 'Outlook',
24
24
  props: {
25
+ /**
26
+ * Render content only in the specified Outlook version(s).
27
+ *
28
+ * Comma-separated list of years.
29
+ *
30
+ * @example '2013'
31
+ * @example '2013,2016'
32
+ */
25
33
  only: String,
34
+ /**
35
+ * Render content in all Outlook versions except the specified one(s).
36
+ *
37
+ * Comma-separated list of years.
38
+ *
39
+ * @example '2007'
40
+ * @example '2007,2010'
41
+ */
26
42
  not: String,
43
+ /**
44
+ * Render content in Outlook versions lower than the specified year.
45
+ *
46
+ * @example '2013'
47
+ */
27
48
  lt: String,
49
+ /**
50
+ * Render content in Outlook versions lower than or equal to the specified year.
51
+ *
52
+ * @example '2013'
53
+ */
28
54
  lte: String,
55
+ /**
56
+ * Render content in Outlook versions greater than the specified year.
57
+ *
58
+ * @example '2010'
59
+ */
29
60
  gt: String,
61
+ /**
62
+ * Render content in Outlook versions greater than or equal to the specified year.
63
+ *
64
+ * @example '2010'
65
+ */
30
66
  gte: String
31
67
  },
32
68
  setup(props, { slots }) {
@@ -0,0 +1,80 @@
1
+ <script setup lang="ts">
2
+ import { computed, useAttrs, createStaticVNode } from 'vue'
3
+ import { normalizeToPixels } from './utils.ts'
4
+
5
+ defineOptions({ inheritAttrs: false })
6
+
7
+ const attrs = useAttrs()
8
+
9
+ const props = defineProps({
10
+ /**
11
+ * Max height of the background (default slot) content.
12
+ *
13
+ * This constrains the visible area of the background layer.
14
+ */
15
+ height: {
16
+ type: [String, Number],
17
+ required: true
18
+ },
19
+ /**
20
+ * Width of the overlay table and VML rectangle.
21
+ *
22
+ * Should match the width of the content being overlapped.
23
+ */
24
+ width: {
25
+ type: [String, Number],
26
+ required: true
27
+ },
28
+ /**
29
+ * Height of the VML rectangle in Outlook.
30
+ *
31
+ * Defaults to the `height` prop value. Use this to fine-tune
32
+ * the overlay height specifically for Outlook rendering.
33
+ */
34
+ msoHeight: {
35
+ type: [String, Number],
36
+ default: null
37
+ },
38
+ /**
39
+ * VML textbox inset for Outlook positioning.
40
+ *
41
+ * Controls the offset of the overlay content as `top,right,bottom,left`.
42
+ * Use negative values to shift content upward into the background area.
43
+ *
44
+ * @default '0,-60px,0,0'
45
+ */
46
+ msoInset: {
47
+ type: String,
48
+ default: '0,-60px,0,0'
49
+ },
50
+ })
51
+
52
+ const backgroundStyles = computed(() => {
53
+ return `max-height: ${normalizeToPixels(props.height)}; margin: 0 auto; text-align: center;`
54
+ })
55
+
56
+ const vmlOpen = computed(() => {
57
+ const w = normalizeToPixels(props.width)
58
+ const h = normalizeToPixels(props.msoHeight ?? props.height)
59
+
60
+ return `<!--[if mso]><v:rect xmlns:v="urn:schemas-microsoft-com:vml" stroked="f" filled="f" style="width: ${w}; height: ${h};"><v:textbox inset="${props.msoInset}"><![endif]-->`
61
+ })
62
+
63
+ const VmlBefore = () => createStaticVNode(vmlOpen.value, 1)
64
+ const VmlAfter = () => createStaticVNode('<!--[if mso]></v:textbox></v:rect><![endif]-->', 1)
65
+ </script>
66
+
67
+ <template>
68
+ <div v-bind="attrs" :style="backgroundStyles">
69
+ <slot />
70
+ </div>
71
+ <table style="max-height: 0; position: relative; opacity: 0.999;">
72
+ <tr>
73
+ <td :style="`width: ${normalizeToPixels(props.width)}; max-width: 100%; vertical-align: top;`">
74
+ <VmlBefore />
75
+ <slot name="overlay" />
76
+ <VmlAfter />
77
+ </td>
78
+ </tr>
79
+ </table>
80
+ </template>