@maizzle/framework 6.0.0-rc.2 → 6.0.0-rc.21
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.
- package/README.md +3 -3
- package/bin/maizzle.mjs +1 -1
- package/dist/build.d.ts +20 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +163 -0
- package/dist/build.js.map +1 -0
- package/dist/components/Body.vue +128 -0
- package/dist/components/Button.vue +148 -52
- package/dist/components/CodeBlock.vue +69 -0
- package/dist/components/CodeInline.vue +49 -0
- package/dist/components/Column.vue +108 -0
- package/dist/components/Container.vue +123 -0
- package/dist/components/Font.vue +96 -0
- package/dist/components/Head.vue +30 -0
- package/dist/components/Heading.vue +28 -0
- package/dist/components/Hr.vue +33 -0
- package/dist/components/Html.vue +137 -0
- package/dist/components/Img.vue +70 -0
- package/dist/components/Layout.vue +143 -0
- package/dist/components/Link.vue +26 -0
- package/dist/components/Markdown.vue +89 -0
- package/dist/components/MarkdownLayout.vue +39 -0
- package/dist/components/NotPlaintext.vue +14 -0
- package/dist/components/Outlook.vue +74 -11
- package/dist/components/OutlookBg.vue +241 -0
- package/dist/components/Overlap.vue +156 -0
- package/dist/components/Plaintext.vue +14 -0
- package/dist/components/Preheader.vue +15 -0
- package/dist/components/QrCode.vue +157 -0
- package/dist/components/Raw.vue +28 -0
- package/dist/components/Row.vue +184 -0
- package/dist/components/Section.vue +124 -0
- package/dist/components/Spacer.vue +70 -21
- package/dist/components/Tailwind.vue +43 -0
- package/dist/components/Text.vue +29 -0
- package/dist/components/utils.d.ts +28 -0
- package/dist/components/utils.d.ts.map +1 -0
- package/dist/components/utils.js +50 -0
- package/dist/components/utils.js.map +1 -0
- package/dist/components/utils.ts +51 -0
- package/dist/composables/{defineConfig.d.mts → defineConfig.d.ts} +2 -2
- package/dist/composables/defineConfig.d.ts.map +1 -0
- package/dist/composables/{defineConfig.mjs → defineConfig.js} +4 -5
- package/dist/composables/defineConfig.js.map +1 -0
- package/dist/composables/renderContext.d.ts +37 -0
- package/dist/composables/renderContext.d.ts.map +1 -0
- package/dist/composables/{renderContext.mjs → renderContext.js} +2 -2
- package/dist/composables/renderContext.js.map +1 -0
- package/dist/composables/useBaseUrl.d.ts +19 -0
- package/dist/composables/useBaseUrl.d.ts.map +1 -0
- package/dist/composables/useBaseUrl.js +26 -0
- package/dist/composables/useBaseUrl.js.map +1 -0
- package/dist/composables/{useConfig.d.mts → useConfig.d.ts} +2 -2
- package/dist/composables/useConfig.d.ts.map +1 -0
- package/dist/composables/{useConfig.mjs → useConfig.js} +2 -3
- package/dist/composables/useConfig.js.map +1 -0
- package/dist/composables/useCurrentTemplate.d.ts +31 -0
- package/dist/composables/useCurrentTemplate.d.ts.map +1 -0
- package/dist/composables/useCurrentTemplate.js +35 -0
- package/dist/composables/useCurrentTemplate.js.map +1 -0
- package/dist/composables/{useDoctype.d.mts → useDoctype.d.ts} +1 -1
- package/dist/composables/useDoctype.d.ts.map +1 -0
- package/dist/composables/{useDoctype.mjs → useDoctype.js} +3 -4
- package/dist/composables/useDoctype.js.map +1 -0
- package/dist/composables/{useEvent.d.mts → useEvent.d.ts} +3 -3
- package/dist/composables/useEvent.d.ts.map +1 -0
- package/dist/composables/{useEvent.mjs → useEvent.js} +4 -5
- package/dist/composables/useEvent.js.map +1 -0
- package/dist/composables/useFont.d.ts +50 -0
- package/dist/composables/useFont.d.ts.map +1 -0
- package/dist/composables/useFont.js +92 -0
- package/dist/composables/useFont.js.map +1 -0
- package/dist/composables/useOutlookFallback.d.ts +21 -0
- package/dist/composables/useOutlookFallback.d.ts.map +1 -0
- package/dist/composables/useOutlookFallback.js +29 -0
- package/dist/composables/useOutlookFallback.js.map +1 -0
- package/dist/composables/{usePlaintext.d.mts → usePlaintext.d.ts} +3 -1
- package/dist/composables/usePlaintext.d.ts.map +1 -0
- package/dist/composables/{usePlaintext.mjs → usePlaintext.js} +4 -4
- package/dist/composables/usePlaintext.js.map +1 -0
- package/dist/composables/usePreheader.d.ts +24 -0
- package/dist/composables/usePreheader.d.ts.map +1 -0
- package/dist/composables/usePreheader.js +28 -0
- package/dist/composables/usePreheader.js.map +1 -0
- package/dist/composables/useTransformers.d.ts +34 -0
- package/dist/composables/useTransformers.d.ts.map +1 -0
- package/dist/composables/useTransformers.js +48 -0
- package/dist/composables/useTransformers.js.map +1 -0
- package/dist/composables/useUrlQuery.d.ts +19 -0
- package/dist/composables/useUrlQuery.d.ts.map +1 -0
- package/dist/composables/useUrlQuery.js +26 -0
- package/dist/composables/useUrlQuery.js.map +1 -0
- package/dist/config/{defaults.d.mts → defaults.d.ts} +2 -2
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/{defaults.mjs → defaults.js} +10 -6
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/{index.d.mts → index.d.ts} +4 -4
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/{index.mjs → index.js} +12 -10
- package/dist/config/index.js.map +1 -0
- package/dist/events/{index.d.mts → index.d.ts} +30 -12
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/{index.mjs → index.js} +26 -13
- package/dist/events/index.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.js +38 -0
- package/dist/{plaintext.d.mts → plaintext.d.ts} +1 -1
- package/dist/plaintext.d.ts.map +1 -0
- package/dist/{plaintext.mjs → plaintext.js} +4 -5
- package/dist/plaintext.js.map +1 -0
- package/dist/{plugin.d.mts → plugin.d.ts} +2 -2
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +57 -0
- package/dist/plugin.js.map +1 -0
- package/dist/plugins/postcss/{mergeMediaQueries.d.mts → mergeMediaQueries.d.ts} +2 -2
- package/dist/plugins/postcss/mergeMediaQueries.d.ts.map +1 -0
- package/dist/plugins/postcss/{mergeMediaQueries.mjs → mergeMediaQueries.js} +2 -3
- package/dist/plugins/postcss/mergeMediaQueries.js.map +1 -0
- package/dist/plugins/postcss/{pruneVars.d.mts → pruneVars.d.ts} +1 -1
- package/dist/plugins/postcss/pruneVars.d.ts.map +1 -0
- package/dist/plugins/postcss/{pruneVars.mjs → pruneVars.js} +2 -2
- package/dist/plugins/postcss/pruneVars.js.map +1 -0
- package/dist/plugins/postcss/quoteFontFamilies.d.ts +13 -0
- package/dist/plugins/postcss/quoteFontFamilies.d.ts.map +1 -0
- package/dist/plugins/postcss/quoteFontFamilies.js +84 -0
- package/dist/plugins/postcss/quoteFontFamilies.js.map +1 -0
- package/dist/plugins/postcss/{removeDeclarations.d.mts → removeDeclarations.d.ts} +1 -1
- package/dist/plugins/postcss/removeDeclarations.d.ts.map +1 -0
- package/dist/plugins/postcss/{removeDeclarations.mjs → removeDeclarations.js} +2 -2
- package/dist/plugins/postcss/removeDeclarations.js.map +1 -0
- package/dist/plugins/postcss/resolveMaizzleImports.d.ts +16 -0
- package/dist/plugins/postcss/resolveMaizzleImports.d.ts.map +1 -0
- package/dist/plugins/postcss/resolveMaizzleImports.js +39 -0
- package/dist/plugins/postcss/resolveMaizzleImports.js.map +1 -0
- package/dist/plugins/postcss/resolveProps.d.ts +8 -0
- package/dist/plugins/postcss/resolveProps.d.ts.map +1 -0
- package/dist/plugins/postcss/resolveProps.js +144 -0
- package/dist/plugins/postcss/resolveProps.js.map +1 -0
- package/dist/plugins/postcss/{tailwindCleanup.d.mts → tailwindCleanup.d.ts} +2 -2
- package/dist/plugins/postcss/tailwindCleanup.d.ts.map +1 -0
- package/dist/plugins/postcss/tailwindCleanup.js +68 -0
- package/dist/plugins/postcss/tailwindCleanup.js.map +1 -0
- package/dist/prepare.d.ts +17 -0
- package/dist/prepare.d.ts.map +1 -0
- package/dist/prepare.js +44 -0
- package/dist/prepare.js.map +1 -0
- package/dist/render/active.d.ts +8 -0
- package/dist/render/active.d.ts.map +1 -0
- package/dist/render/active.js +12 -0
- package/dist/render/active.js.map +1 -0
- package/dist/render/{createRenderer.d.mts → createRenderer.d.ts} +15 -7
- package/dist/render/createRenderer.d.ts.map +1 -0
- package/dist/render/createRenderer.js +320 -0
- package/dist/render/createRenderer.js.map +1 -0
- package/dist/render/index.d.ts +18 -0
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +53 -0
- package/dist/render/index.js.map +1 -0
- package/dist/render/injectFonts.d.ts +15 -0
- package/dist/render/injectFonts.d.ts.map +1 -0
- package/dist/render/injectFonts.js +45 -0
- package/dist/render/injectFonts.js.map +1 -0
- package/dist/render/plugins/codeBlockExtract.d.ts +14 -0
- package/dist/render/plugins/codeBlockExtract.d.ts.map +1 -0
- package/dist/render/plugins/codeBlockExtract.js +34 -0
- package/dist/render/plugins/codeBlockExtract.js.map +1 -0
- package/dist/render/plugins/markdownExtract.d.ts +12 -0
- package/dist/render/plugins/markdownExtract.d.ts.map +1 -0
- package/dist/render/plugins/markdownExtract.js +49 -0
- package/dist/render/plugins/markdownExtract.js.map +1 -0
- package/dist/render/plugins/rawExtract.d.ts +14 -0
- package/dist/render/plugins/rawExtract.d.ts.map +1 -0
- package/dist/render/plugins/rawExtract.js +34 -0
- package/dist/render/plugins/rawExtract.js.map +1 -0
- package/dist/render/plugins/rowSourceLocation.d.ts +18 -0
- package/dist/render/plugins/rowSourceLocation.d.ts.map +1 -0
- package/dist/render/plugins/rowSourceLocation.js +45 -0
- package/dist/render/plugins/rowSourceLocation.js.map +1 -0
- package/dist/{serve.d.mts → serve.d.ts} +4 -2
- package/dist/serve.d.ts.map +1 -0
- package/dist/{serve.mjs → serve.js} +203 -78
- package/dist/serve.js.map +1 -0
- package/dist/server/compatibility.d.ts +59 -0
- package/dist/server/compatibility.d.ts.map +1 -0
- package/dist/server/compatibility.js +911 -0
- package/dist/server/compatibility.js.map +1 -0
- package/dist/server/email.d.ts +17 -0
- package/dist/server/email.d.ts.map +1 -0
- package/dist/server/email.js +40 -0
- package/dist/server/email.js.map +1 -0
- package/dist/server/linter.d.ts +20 -0
- package/dist/server/linter.d.ts.map +1 -0
- package/dist/server/linter.js +339 -0
- package/dist/server/linter.js.map +1 -0
- package/dist/server/sfc-utils.d.ts +21 -0
- package/dist/server/sfc-utils.d.ts.map +1 -0
- package/dist/server/sfc-utils.js +198 -0
- package/dist/server/sfc-utils.js.map +1 -0
- package/dist/server/ui/App.vue +253 -77
- package/dist/server/ui/components/SidebarClose.vue +12 -0
- package/dist/server/ui/components/ui/checkbox/Checkbox.vue +35 -0
- package/dist/server/ui/components/ui/checkbox/index.ts +1 -0
- package/dist/server/ui/components/ui/command/Command.vue +5 -1
- package/dist/server/ui/components/ui/command/CommandDialog.vue +1 -1
- package/dist/server/ui/components/ui/command/CommandInput.vue +19 -1
- package/dist/server/ui/components/ui/command/CommandItem.vue +1 -1
- package/dist/server/ui/components/ui/command/CommandList.vue +1 -1
- package/dist/server/ui/components/ui/command/CommandShortcut.vue +1 -1
- package/dist/server/ui/components/ui/dialog/DialogOverlay.vue +9 -1
- package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuItem.vue +1 -1
- package/dist/server/ui/components/ui/input/Input.vue +1 -1
- package/dist/server/ui/components/ui/scroll-area/ScrollBar.vue +1 -1
- package/dist/server/ui/components/ui/sheet/SheetContent.vue +1 -1
- package/dist/server/ui/components/ui/sheet/SheetOverlay.vue +9 -1
- package/dist/server/ui/components/ui/sidebar/Sidebar.vue +8 -1
- package/dist/server/ui/components/ui/sidebar/SidebarProvider.vue +1 -1
- package/dist/server/ui/components/ui/sidebar/SidebarTrigger.vue +5 -4
- package/dist/server/ui/components/ui/tags-input/TagsInput.vue +26 -0
- package/dist/server/ui/components/ui/tags-input/TagsInputInput.vue +17 -0
- package/dist/server/ui/components/ui/tags-input/TagsInputItem.vue +19 -0
- package/dist/server/ui/components/ui/tags-input/TagsInputItemDelete.vue +22 -0
- package/dist/server/ui/components/ui/tags-input/TagsInputItemText.vue +17 -0
- package/dist/server/ui/components/ui/tags-input/index.ts +5 -0
- package/dist/server/ui/components/ui/toggle/index.ts +3 -3
- package/dist/server/ui/components/ui/toggle-group/ToggleGroup.vue +1 -1
- package/dist/server/ui/components/ui/toggle-group/ToggleGroupItem.vue +2 -2
- package/dist/server/ui/lib/emulated-dark-mode.ts +131 -0
- package/dist/server/ui/main.css +20 -20
- package/dist/server/ui/pages/Home.vue +12 -5
- package/dist/server/ui/pages/Preview.vue +716 -276
- package/dist/tests/render/_helpers.d.ts +6 -0
- package/dist/tests/render/_helpers.d.ts.map +1 -0
- package/dist/tests/render/_helpers.js +16 -0
- package/dist/tests/render/_helpers.js.map +1 -0
- package/dist/transformers/{addAttributes.d.mts → addAttributes.d.ts} +2 -2
- package/dist/transformers/addAttributes.d.ts.map +1 -0
- package/dist/transformers/{addAttributes.mjs → addAttributes.js} +16 -13
- package/dist/transformers/addAttributes.js.map +1 -0
- package/dist/transformers/attributeToStyle.d.ts +38 -0
- package/dist/transformers/attributeToStyle.d.ts.map +1 -0
- package/dist/transformers/attributeToStyle.js +94 -0
- package/dist/transformers/attributeToStyle.js.map +1 -0
- package/dist/transformers/base.d.ts +71 -0
- package/dist/transformers/base.d.ts.map +1 -0
- package/dist/transformers/{base.mjs → base.js} +56 -30
- package/dist/transformers/base.js.map +1 -0
- package/dist/transformers/columnWidth.d.ts +31 -0
- package/dist/transformers/columnWidth.d.ts.map +1 -0
- package/dist/transformers/columnWidth.js +546 -0
- package/dist/transformers/columnWidth.js.map +1 -0
- package/dist/transformers/entities.d.ts +37 -0
- package/dist/transformers/entities.d.ts.map +1 -0
- package/dist/transformers/entities.js +73 -0
- package/dist/transformers/entities.js.map +1 -0
- package/dist/transformers/filters/defaults.d.ts +6 -0
- package/dist/transformers/filters/defaults.d.ts.map +1 -0
- package/dist/transformers/filters/defaults.js +78 -0
- package/dist/transformers/filters/defaults.js.map +1 -0
- package/dist/transformers/filters/index.d.ts +43 -0
- package/dist/transformers/filters/index.d.ts.map +1 -0
- package/dist/transformers/filters/index.js +89 -0
- package/dist/transformers/filters/index.js.map +1 -0
- package/dist/transformers/format.d.ts +22 -0
- package/dist/transformers/format.d.ts.map +1 -0
- package/dist/transformers/format.js +30 -0
- package/dist/transformers/format.js.map +1 -0
- package/dist/transformers/{index.d.mts → index.d.ts} +14 -11
- package/dist/transformers/index.d.ts.map +1 -0
- package/dist/transformers/index.js +133 -0
- package/dist/transformers/index.js.map +1 -0
- package/dist/transformers/inlineCss.d.ts +84 -0
- package/dist/transformers/inlineCss.d.ts.map +1 -0
- package/dist/transformers/inlineCss.js +91 -0
- package/dist/transformers/inlineCss.js.map +1 -0
- package/dist/transformers/inlineLink.d.ts +35 -0
- package/dist/transformers/inlineLink.d.ts.map +1 -0
- package/dist/transformers/{inlineLink.mjs → inlineLink.js} +34 -10
- package/dist/transformers/inlineLink.js.map +1 -0
- package/dist/transformers/minify.d.ts +21 -0
- package/dist/transformers/minify.d.ts.map +1 -0
- package/dist/transformers/minify.js +25 -0
- package/dist/transformers/minify.js.map +1 -0
- package/dist/transformers/msoPlaceholders.d.ts +28 -0
- package/dist/transformers/msoPlaceholders.d.ts.map +1 -0
- package/dist/transformers/msoPlaceholders.js +88 -0
- package/dist/transformers/msoPlaceholders.js.map +1 -0
- package/dist/transformers/purgeCss.d.ts +43 -0
- package/dist/transformers/purgeCss.d.ts.map +1 -0
- package/dist/transformers/purgeCss.js +181 -0
- package/dist/transformers/purgeCss.js.map +1 -0
- package/dist/transformers/removeAttributes.d.ts +54 -0
- package/dist/transformers/removeAttributes.d.ts.map +1 -0
- package/dist/transformers/removeAttributes.js +70 -0
- package/dist/transformers/removeAttributes.js.map +1 -0
- package/dist/transformers/{replaceStrings.d.mts → replaceStrings.d.ts} +2 -2
- package/dist/transformers/replaceStrings.d.ts.map +1 -0
- package/dist/transformers/{replaceStrings.mjs → replaceStrings.js} +2 -2
- package/dist/transformers/replaceStrings.js.map +1 -0
- package/dist/transformers/{safeClassNames.d.mts → safeClassNames.d.ts} +2 -2
- package/dist/transformers/safeClassNames.d.ts.map +1 -0
- package/dist/transformers/{safeClassNames.mjs → safeClassNames.js} +4 -5
- package/dist/transformers/safeClassNames.js.map +1 -0
- package/dist/transformers/shorthandCss.d.ts +47 -0
- package/dist/transformers/shorthandCss.d.ts.map +1 -0
- package/dist/transformers/shorthandCss.js +61 -0
- package/dist/transformers/shorthandCss.js.map +1 -0
- package/dist/transformers/sixHex.d.ts +25 -0
- package/dist/transformers/sixHex.d.ts.map +1 -0
- package/dist/transformers/sixHex.js +42 -0
- package/dist/transformers/sixHex.js.map +1 -0
- package/dist/transformers/tailwindComponent.d.ts +16 -0
- package/dist/transformers/tailwindComponent.d.ts.map +1 -0
- package/dist/transformers/tailwindComponent.js +92 -0
- package/dist/transformers/tailwindComponent.js.map +1 -0
- package/dist/transformers/{tailwindcss.d.mts → tailwindcss.d.ts} +8 -4
- package/dist/transformers/tailwindcss.d.ts.map +1 -0
- package/dist/transformers/tailwindcss.js +97 -0
- package/dist/transformers/tailwindcss.js.map +1 -0
- package/dist/transformers/urlQuery.d.ts +36 -0
- package/dist/transformers/urlQuery.d.ts.map +1 -0
- package/dist/transformers/urlQuery.js +77 -0
- package/dist/transformers/urlQuery.js.map +1 -0
- package/dist/types/config.d.ts +737 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +1 -0
- package/dist/utils/ast/index.d.ts +4 -0
- package/dist/utils/ast/index.js +4 -0
- package/dist/utils/ast/{parser.d.mts → parser.d.ts} +1 -1
- package/dist/utils/ast/parser.d.ts.map +1 -0
- package/dist/utils/ast/{parser.mjs → parser.js} +2 -3
- package/dist/utils/ast/parser.js.map +1 -0
- package/dist/utils/ast/serializer.d.ts +8 -0
- package/dist/utils/ast/serializer.d.ts.map +1 -0
- package/dist/utils/ast/serializer.js +36 -0
- package/dist/utils/ast/serializer.js.map +1 -0
- package/dist/utils/ast/{walker.d.mts → walker.d.ts} +1 -1
- package/dist/utils/ast/walker.d.ts.map +1 -0
- package/dist/utils/ast/{walker.mjs → walker.js} +2 -2
- package/dist/utils/ast/walker.js.map +1 -0
- package/dist/utils/compileTailwindCss.d.ts +16 -0
- package/dist/utils/compileTailwindCss.d.ts.map +1 -0
- package/dist/utils/compileTailwindCss.js +54 -0
- package/dist/utils/compileTailwindCss.js.map +1 -0
- package/dist/utils/componentSources.d.ts +50 -0
- package/dist/utils/componentSources.d.ts.map +1 -0
- package/dist/utils/componentSources.js +50 -0
- package/dist/utils/componentSources.js.map +1 -0
- package/dist/utils/decodeStyleEntities.d.ts +15 -0
- package/dist/utils/decodeStyleEntities.d.ts.map +1 -0
- package/dist/utils/decodeStyleEntities.js +18 -0
- package/dist/utils/decodeStyleEntities.js.map +1 -0
- package/dist/utils/detect.d.ts +5 -0
- package/dist/utils/detect.d.ts.map +1 -0
- package/dist/utils/detect.js +10 -0
- package/dist/utils/detect.js.map +1 -0
- package/dist/utils/output-markers.d.ts +29 -0
- package/dist/utils/output-markers.d.ts.map +1 -0
- package/dist/utils/output-markers.js +68 -0
- package/dist/utils/output-markers.js.map +1 -0
- package/dist/utils/{url.d.mts → url.d.ts} +1 -1
- package/dist/utils/url.d.ts.map +1 -0
- package/dist/utils/{url.mjs → url.js} +2 -3
- package/dist/utils/url.js.map +1 -0
- package/dist/utils/watchPaths.d.ts +11 -0
- package/dist/utils/watchPaths.d.ts.map +1 -0
- package/dist/utils/watchPaths.js +19 -0
- package/dist/utils/watchPaths.js.map +1 -0
- package/node_modules/@clack/core/CHANGELOG.md +8 -0
- package/node_modules/@clack/core/dist/index.d.mts +18 -4
- package/node_modules/@clack/core/dist/index.mjs +16 -10
- package/node_modules/@clack/core/dist/index.mjs.map +1 -1
- package/node_modules/@clack/core/package.json +5 -2
- package/node_modules/@clack/prompts/CHANGELOG.md +15 -0
- package/node_modules/@clack/prompts/README.md +107 -2
- package/node_modules/@clack/prompts/dist/index.d.mts +16 -11
- package/node_modules/@clack/prompts/dist/index.mjs +114 -107
- package/node_modules/@clack/prompts/dist/index.mjs.map +1 -1
- package/node_modules/@clack/prompts/package.json +7 -4
- package/node_modules/fast-string-truncated-width/dist/index.js +36 -96
- package/node_modules/fast-string-truncated-width/dist/types.d.ts +0 -3
- package/node_modules/fast-string-truncated-width/dist/utils.d.ts +3 -3
- package/node_modules/fast-string-truncated-width/dist/utils.js +14 -9
- package/node_modules/fast-string-truncated-width/package.json +1 -1
- package/node_modules/fast-string-truncated-width/readme.md +2 -3
- package/node_modules/fast-string-width/package.json +2 -2
- package/node_modules/fast-string-width/readme.md +0 -3
- package/node_modules/fast-wrap-ansi/lib/main.js +4 -1
- package/node_modules/fast-wrap-ansi/lib/main.js.map +1 -1
- package/node_modules/fast-wrap-ansi/package.json +2 -2
- package/node_modules/maizzle/README.md +24 -0
- package/node_modules/maizzle/dist/commands/make/component.mjs +1 -1
- package/node_modules/maizzle/dist/commands/make/config.mjs +1 -1
- package/node_modules/maizzle/dist/commands/make/layout.mjs +3 -3
- package/node_modules/maizzle/dist/commands/make/scaffold.mjs +1 -1
- package/node_modules/maizzle/dist/commands/make/stubs/Layout.vue +146 -0
- package/node_modules/maizzle/dist/commands/make/stubs/component.vue +2 -4
- package/node_modules/maizzle/dist/commands/make/stubs/config.ts +1 -5
- package/node_modules/maizzle/dist/commands/make/template.mjs +1 -1
- package/node_modules/maizzle/dist/commands/new.mjs +32 -52
- package/node_modules/maizzle/dist/index.d.mts +1 -0
- package/node_modules/maizzle/dist/index.mjs +30 -7
- package/node_modules/maizzle/package.json +4 -3
- package/node_modules/nypm/dist/cli.mjs +28 -5
- package/node_modules/nypm/dist/index.d.mts +0 -8
- package/node_modules/nypm/dist/index.mjs +27 -4
- package/node_modules/nypm/package.json +12 -12
- package/node_modules/tinyexec/README.md +1 -1
- package/node_modules/tinyexec/dist/main.d.mts +6 -6
- package/node_modules/tinyexec/dist/main.mjs +126 -134
- package/node_modules/tinyexec/package.json +9 -9
- package/package.json +31 -21
- package/dist/build.d.mts +0 -19
- package/dist/build.d.mts.map +0 -1
- package/dist/build.mjs +0 -139
- package/dist/build.mjs.map +0 -1
- package/dist/components/Divider.vue +0 -105
- package/dist/components/Vml.vue +0 -89
- package/dist/components/utils.d.mts +0 -5
- package/dist/components/utils.d.mts.map +0 -1
- package/dist/components/utils.mjs +0 -9
- package/dist/components/utils.mjs.map +0 -1
- package/dist/composables/defineConfig.d.mts.map +0 -1
- package/dist/composables/defineConfig.mjs.map +0 -1
- package/dist/composables/renderContext.d.mts +0 -19
- package/dist/composables/renderContext.d.mts.map +0 -1
- package/dist/composables/renderContext.mjs.map +0 -1
- package/dist/composables/useConfig.d.mts.map +0 -1
- package/dist/composables/useConfig.mjs.map +0 -1
- package/dist/composables/useDoctype.d.mts.map +0 -1
- package/dist/composables/useDoctype.mjs.map +0 -1
- package/dist/composables/useEvent.d.mts.map +0 -1
- package/dist/composables/useEvent.mjs.map +0 -1
- package/dist/composables/usePlaintext.d.mts.map +0 -1
- package/dist/composables/usePlaintext.mjs.map +0 -1
- package/dist/config/defaults.d.mts.map +0 -1
- package/dist/config/defaults.mjs.map +0 -1
- package/dist/config/index.d.mts.map +0 -1
- package/dist/config/index.mjs.map +0 -1
- package/dist/events/index.d.mts.map +0 -1
- package/dist/events/index.mjs.map +0 -1
- package/dist/index.d.mts +0 -29
- package/dist/index.mjs +0 -29
- package/dist/plaintext.d.mts.map +0 -1
- package/dist/plaintext.mjs.map +0 -1
- package/dist/plugin.d.mts.map +0 -1
- package/dist/plugin.mjs +0 -41
- package/dist/plugin.mjs.map +0 -1
- package/dist/plugins/postcss/mergeMediaQueries.d.mts.map +0 -1
- package/dist/plugins/postcss/mergeMediaQueries.mjs.map +0 -1
- package/dist/plugins/postcss/pruneVars.d.mts.map +0 -1
- package/dist/plugins/postcss/pruneVars.mjs.map +0 -1
- package/dist/plugins/postcss/removeDeclarations.d.mts.map +0 -1
- package/dist/plugins/postcss/removeDeclarations.mjs.map +0 -1
- package/dist/plugins/postcss/tailwindCleanup.d.mts.map +0 -1
- package/dist/plugins/postcss/tailwindCleanup.mjs +0 -35
- package/dist/plugins/postcss/tailwindCleanup.mjs.map +0 -1
- package/dist/render/createRenderer.d.mts.map +0 -1
- package/dist/render/createRenderer.mjs +0 -155
- package/dist/render/createRenderer.mjs.map +0 -1
- package/dist/render/index.d.mts +0 -26
- package/dist/render/index.d.mts.map +0 -1
- package/dist/render/index.mjs +0 -44
- package/dist/render/index.mjs.map +0 -1
- package/dist/serve.d.mts.map +0 -1
- package/dist/serve.mjs.map +0 -1
- package/dist/server/compatibility.d.mts +0 -6
- package/dist/server/compatibility.d.mts.map +0 -1
- package/dist/server/compatibility.mjs +0 -83
- package/dist/server/compatibility.mjs.map +0 -1
- package/dist/server/linter.d.mts +0 -6
- package/dist/server/linter.d.mts.map +0 -1
- package/dist/server/linter.mjs +0 -200
- package/dist/server/linter.mjs.map +0 -1
- package/dist/server/ui/components/ui/resizable/ResizableHandle.vue +0 -30
- package/dist/server/ui/components/ui/resizable/ResizablePanel.vue +0 -21
- package/dist/server/ui/components/ui/resizable/ResizablePanelGroup.vue +0 -25
- package/dist/server/ui/components/ui/resizable/index.ts +0 -3
- package/dist/transformers/addAttributes.d.mts.map +0 -1
- package/dist/transformers/addAttributes.mjs.map +0 -1
- package/dist/transformers/attributeToStyle.d.mts +0 -25
- package/dist/transformers/attributeToStyle.d.mts.map +0 -1
- package/dist/transformers/attributeToStyle.mjs +0 -80
- package/dist/transformers/attributeToStyle.mjs.map +0 -1
- package/dist/transformers/base.d.mts +0 -8
- package/dist/transformers/base.d.mts.map +0 -1
- package/dist/transformers/base.mjs.map +0 -1
- package/dist/transformers/entities.d.mts +0 -8
- package/dist/transformers/entities.d.mts.map +0 -1
- package/dist/transformers/entities.mjs +0 -38
- package/dist/transformers/entities.mjs.map +0 -1
- package/dist/transformers/format.d.mts +0 -15
- package/dist/transformers/format.d.mts.map +0 -1
- package/dist/transformers/format.mjs +0 -26
- package/dist/transformers/format.mjs.map +0 -1
- package/dist/transformers/index.d.mts.map +0 -1
- package/dist/transformers/index.mjs +0 -73
- package/dist/transformers/index.mjs.map +0 -1
- package/dist/transformers/inlineCSS.d.mts +0 -30
- package/dist/transformers/inlineCSS.d.mts.map +0 -1
- package/dist/transformers/inlineCSS.mjs +0 -79
- package/dist/transformers/inlineCSS.mjs.map +0 -1
- package/dist/transformers/inlineLink.d.mts +0 -14
- package/dist/transformers/inlineLink.d.mts.map +0 -1
- package/dist/transformers/inlineLink.mjs.map +0 -1
- package/dist/transformers/minify.d.mts +0 -17
- package/dist/transformers/minify.d.mts.map +0 -1
- package/dist/transformers/minify.mjs +0 -24
- package/dist/transformers/minify.mjs.map +0 -1
- package/dist/transformers/purgeCSS.d.mts +0 -23
- package/dist/transformers/purgeCSS.d.mts.map +0 -1
- package/dist/transformers/purgeCSS.mjs +0 -66
- package/dist/transformers/purgeCSS.mjs.map +0 -1
- package/dist/transformers/removeAttributes.d.mts +0 -31
- package/dist/transformers/removeAttributes.d.mts.map +0 -1
- package/dist/transformers/removeAttributes.mjs +0 -63
- package/dist/transformers/removeAttributes.mjs.map +0 -1
- package/dist/transformers/replaceStrings.d.mts.map +0 -1
- package/dist/transformers/replaceStrings.mjs.map +0 -1
- package/dist/transformers/safeClassNames.d.mts.map +0 -1
- package/dist/transformers/safeClassNames.mjs.map +0 -1
- package/dist/transformers/shorthandCSS.d.mts +0 -24
- package/dist/transformers/shorthandCSS.d.mts.map +0 -1
- package/dist/transformers/shorthandCSS.mjs +0 -48
- package/dist/transformers/shorthandCSS.mjs.map +0 -1
- package/dist/transformers/tailwindcss.d.mts.map +0 -1
- package/dist/transformers/tailwindcss.mjs +0 -136
- package/dist/transformers/tailwindcss.mjs.map +0 -1
- package/dist/transformers/urlQuery.d.mts +0 -24
- package/dist/transformers/urlQuery.d.mts.map +0 -1
- package/dist/transformers/urlQuery.mjs +0 -65
- package/dist/transformers/urlQuery.mjs.map +0 -1
- package/dist/types/config.d.mts +0 -149
- package/dist/types/config.d.mts.map +0 -1
- package/dist/types/config.mjs +0 -1
- package/dist/types/index.d.mts +0 -2
- package/dist/types/index.mjs +0 -1
- package/dist/utils/ast/index.d.mts +0 -4
- package/dist/utils/ast/index.mjs +0 -5
- package/dist/utils/ast/parser.d.mts.map +0 -1
- package/dist/utils/ast/parser.mjs.map +0 -1
- package/dist/utils/ast/serializer.d.mts +0 -7
- package/dist/utils/ast/serializer.d.mts.map +0 -1
- package/dist/utils/ast/serializer.mjs +0 -13
- package/dist/utils/ast/serializer.mjs.map +0 -1
- package/dist/utils/ast/walker.d.mts.map +0 -1
- package/dist/utils/ast/walker.mjs.map +0 -1
- package/dist/utils/url.d.mts.map +0 -1
- package/dist/utils/url.mjs.map +0 -1
- package/node_modules/maizzle/dist/commands/make/stubs/layout.vue +0 -39
|
@@ -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 motionSrc 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
|
+
motionSrc: {
|
|
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 motionType = computed(() => mimeFromExtension(props.motionSrc ?? ''))
|
|
55
|
+
|
|
56
|
+
const imgWidth = computed(() => Number.parseInt(String(props.width), 10))
|
|
57
|
+
|
|
58
|
+
const usePicture = computed(() => props.darkSrc || props.motionSrc)
|
|
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="motionSrc" :srcset="motionSrc" :type="motionType || 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,143 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { computed, useAttrs, createStaticVNode, type PropType } from 'vue'
|
|
3
|
+
import { twMerge } from 'tailwind-merge'
|
|
4
|
+
import { outlookFallbackProp } from './utils.ts'
|
|
5
|
+
import { useOutlookFallback } from '../composables/useOutlookFallback'
|
|
6
|
+
|
|
7
|
+
defineOptions({ inheritAttrs: false })
|
|
8
|
+
|
|
9
|
+
const props = defineProps({
|
|
10
|
+
/**
|
|
11
|
+
* Classes to add to the `<body>` tag.
|
|
12
|
+
*/
|
|
13
|
+
bodyClass: {
|
|
14
|
+
type: String,
|
|
15
|
+
default: ''
|
|
16
|
+
},
|
|
17
|
+
/**
|
|
18
|
+
* Language code for the `lang` and `xml:lang` attributes.
|
|
19
|
+
*
|
|
20
|
+
* @default 'en'
|
|
21
|
+
*/
|
|
22
|
+
lang: {
|
|
23
|
+
type: String,
|
|
24
|
+
default: 'en'
|
|
25
|
+
},
|
|
26
|
+
/**
|
|
27
|
+
* Text direction.
|
|
28
|
+
*
|
|
29
|
+
* @default 'ltr'
|
|
30
|
+
*/
|
|
31
|
+
dir: {
|
|
32
|
+
type: String as PropType<'ltr' | 'rtl'>,
|
|
33
|
+
default: 'ltr'
|
|
34
|
+
},
|
|
35
|
+
/**
|
|
36
|
+
* Render an empty `<head>` before the main head element.
|
|
37
|
+
*
|
|
38
|
+
* This is a workaround for Yahoo! Mail on Android, which
|
|
39
|
+
* strips the first `<head>` element it finds.
|
|
40
|
+
*
|
|
41
|
+
* @default false
|
|
42
|
+
*/
|
|
43
|
+
doubleHead: {
|
|
44
|
+
type: [Boolean, String],
|
|
45
|
+
default: false
|
|
46
|
+
},
|
|
47
|
+
/**
|
|
48
|
+
* Accessible label for the email article wrapper.
|
|
49
|
+
*
|
|
50
|
+
* Used as the `aria-label` on the inner `<div role="article">`.
|
|
51
|
+
*
|
|
52
|
+
* @example 'Order confirmation'
|
|
53
|
+
*/
|
|
54
|
+
ariaLabel: {
|
|
55
|
+
type: String,
|
|
56
|
+
default: undefined
|
|
57
|
+
},
|
|
58
|
+
/**
|
|
59
|
+
* Toggle Outlook (MSO) and VML fallback markup for this
|
|
60
|
+
* component and all descendants.
|
|
61
|
+
*
|
|
62
|
+
* When `false`, skips MSO ghost tables, VML shapes,
|
|
63
|
+
* `xmlns:v`/`xmlns:o` attributes, and mso-specific CSS
|
|
64
|
+
* in all built-in components.
|
|
65
|
+
*
|
|
66
|
+
* @default true
|
|
67
|
+
*/
|
|
68
|
+
outlookFallback: outlookFallbackProp,
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
const outlookFallback = useOutlookFallback(props.outlookFallback)
|
|
72
|
+
|
|
73
|
+
const attrs = useAttrs()
|
|
74
|
+
const bodyMergedClass = computed(() => twMerge('m-0 p-0 size-full [word-break:break-word]', props.bodyClass))
|
|
75
|
+
const articleMergedClass = computed(() => twMerge('[font-size:max(16px,1rem)] font-inter', attrs.class as string))
|
|
76
|
+
|
|
77
|
+
const EmptyHead = () => createStaticVNode('<head></head>', 1)
|
|
78
|
+
|
|
79
|
+
const MsoHead = () => createStaticVNode(
|
|
80
|
+
`<!--[if mso]>
|
|
81
|
+
<style>
|
|
82
|
+
td,th,div,p,a,h1,h2,h3,h4,h5,h6 {font-family: "Segoe UI", sans-serif; mso-line-height-rule: exactly;}
|
|
83
|
+
.mso-break-all {word-break: break-all;}
|
|
84
|
+
</style>
|
|
85
|
+
<![endif]-->`,
|
|
86
|
+
1
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
const msoBody = `<!--[if mso]>
|
|
90
|
+
<xml>
|
|
91
|
+
<o:OfficeDocumentSettings>
|
|
92
|
+
<o:PixelsPerInch>96</o:PixelsPerInch>
|
|
93
|
+
</o:OfficeDocumentSettings>
|
|
94
|
+
<w:WordDocument>
|
|
95
|
+
<w:DontUseAdvancedTypographyReadingMail />
|
|
96
|
+
</w:WordDocument>
|
|
97
|
+
</xml>
|
|
98
|
+
<![endif]-->`
|
|
99
|
+
|
|
100
|
+
const htmlXmlns = computed(() => outlookFallback ? {
|
|
101
|
+
'xmlns:v': 'urn:schemas-microsoft-com:vml',
|
|
102
|
+
'xmlns:o': 'urn:schemas-microsoft-com:office:office',
|
|
103
|
+
} : {})
|
|
104
|
+
</script>
|
|
105
|
+
|
|
106
|
+
<template>
|
|
107
|
+
<html :lang="lang" :dir="dir" v-bind="htmlXmlns">
|
|
108
|
+
<EmptyHead v-if="props.doubleHead === true || props.doubleHead === 'true'" />
|
|
109
|
+
<head>
|
|
110
|
+
<meta charset="utf-8">
|
|
111
|
+
<meta name="x-apple-disable-message-reformatting">
|
|
112
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
113
|
+
<meta name="format-detection" content="telephone=no, date=no, address=no, email=no, url=no">
|
|
114
|
+
<meta name="color-scheme" content="light dark">
|
|
115
|
+
<meta name="supported-color-schemes" content="light dark">
|
|
116
|
+
<MsoHead v-if="outlookFallback" />
|
|
117
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
118
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous">
|
|
119
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet" media="screen">
|
|
120
|
+
<style>
|
|
121
|
+
@import "@maizzle/tailwindcss";
|
|
122
|
+
|
|
123
|
+
img {
|
|
124
|
+
@apply max-w-full align-middle;
|
|
125
|
+
}
|
|
126
|
+
</style>
|
|
127
|
+
</head>
|
|
128
|
+
<body :xml:lang="outlookFallback ? lang : null" :class="bodyMergedClass">
|
|
129
|
+
<span v-if="outlookFallback" style="display: none" v-html="msoBody"></span>
|
|
130
|
+
<div
|
|
131
|
+
role="article"
|
|
132
|
+
aria-roledescription="email"
|
|
133
|
+
:aria-label="ariaLabel"
|
|
134
|
+
:lang="lang"
|
|
135
|
+
:dir="dir"
|
|
136
|
+
style="font-size: medium;"
|
|
137
|
+
:class="articleMergedClass"
|
|
138
|
+
>
|
|
139
|
+
<slot />
|
|
140
|
+
</div>
|
|
141
|
+
</body>
|
|
142
|
+
</html>
|
|
143
|
+
</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>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { PropType } from 'vue'
|
|
3
|
+
import Layout from './Layout.vue'
|
|
4
|
+
import Container from './Container.vue'
|
|
5
|
+
|
|
6
|
+
defineOptions({ inheritAttrs: false })
|
|
7
|
+
|
|
8
|
+
const props = defineProps({
|
|
9
|
+
/**
|
|
10
|
+
* Frontmatter object — wired in automatically when this layout
|
|
11
|
+
* wraps a `.md` template (the default behavior, or via the
|
|
12
|
+
* `layout: MarkdownLayout` frontmatter key).
|
|
13
|
+
*
|
|
14
|
+
* Keys matching `Layout`'s props (`lang`, `dir`, `bodyClass`,
|
|
15
|
+
* `doubleHead`, `ariaLabel`, `outlookFallback`) flow through to
|
|
16
|
+
* the wrapped `Layout`. Missing keys fall back to `Layout`'s
|
|
17
|
+
* own defaults.
|
|
18
|
+
*/
|
|
19
|
+
frontmatter: {
|
|
20
|
+
type: Object as PropType<Record<string, unknown>>,
|
|
21
|
+
default: () => ({})
|
|
22
|
+
},
|
|
23
|
+
})
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<template>
|
|
27
|
+
<Layout
|
|
28
|
+
:lang="props.frontmatter.lang as string | undefined"
|
|
29
|
+
:dir="props.frontmatter.dir as 'ltr' | 'rtl' | undefined"
|
|
30
|
+
:body-class="props.frontmatter.bodyClass as string | undefined"
|
|
31
|
+
:double-head="props.frontmatter.doubleHead as boolean | string | undefined"
|
|
32
|
+
:aria-label="props.frontmatter.ariaLabel as string | undefined"
|
|
33
|
+
:outlook-fallback="props.frontmatter.outlookFallback as boolean | undefined"
|
|
34
|
+
>
|
|
35
|
+
<Container class="max-w-xl">
|
|
36
|
+
<slot />
|
|
37
|
+
</Container>
|
|
38
|
+
</Layout>
|
|
39
|
+
</template>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import { computed, createStaticVNode } from 'vue'
|
|
2
|
+
import { computed, createStaticVNode, type PropType } from 'vue'
|
|
3
3
|
|
|
4
4
|
const VERSION_MAP = {
|
|
5
5
|
2003: 11,
|
|
@@ -10,7 +10,10 @@ const VERSION_MAP = {
|
|
|
10
10
|
2019: 16
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
type Year = `${keyof typeof VERSION_MAP}`
|
|
14
|
+
type YearList = Year | (string & {})
|
|
15
|
+
|
|
16
|
+
const toMso = (v: string) => VERSION_MAP[v as unknown as keyof typeof VERSION_MAP]
|
|
14
17
|
|
|
15
18
|
const parseList = (value: string) =>
|
|
16
19
|
value
|
|
@@ -22,12 +25,72 @@ const parseList = (value: string) =>
|
|
|
22
25
|
export default {
|
|
23
26
|
name: 'Outlook',
|
|
24
27
|
props: {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Render content only in the specified Outlook version(s).
|
|
30
|
+
*
|
|
31
|
+
* Comma-separated list of years.
|
|
32
|
+
*
|
|
33
|
+
* @example '2013'
|
|
34
|
+
* @example '2013,2016'
|
|
35
|
+
*/
|
|
36
|
+
only: String as PropType<YearList>,
|
|
37
|
+
/**
|
|
38
|
+
* Render content in all Outlook versions except the specified one(s).
|
|
39
|
+
*
|
|
40
|
+
* Comma-separated list of years.
|
|
41
|
+
*
|
|
42
|
+
* @example '2007'
|
|
43
|
+
* @example '2007,2010'
|
|
44
|
+
*/
|
|
45
|
+
not: String as PropType<YearList>,
|
|
46
|
+
/**
|
|
47
|
+
* Render content in Outlook versions lower than the specified year.
|
|
48
|
+
*
|
|
49
|
+
* @example '2013'
|
|
50
|
+
*/
|
|
51
|
+
lt: String as PropType<Year>,
|
|
52
|
+
/**
|
|
53
|
+
* Render content in Outlook versions lower than or equal to the specified year.
|
|
54
|
+
*
|
|
55
|
+
* @example '2013'
|
|
56
|
+
*/
|
|
57
|
+
lte: String as PropType<Year>,
|
|
58
|
+
/**
|
|
59
|
+
* Render content in Outlook versions greater than the specified year.
|
|
60
|
+
*
|
|
61
|
+
* @example '2010'
|
|
62
|
+
*/
|
|
63
|
+
gt: String as PropType<Year>,
|
|
64
|
+
/**
|
|
65
|
+
* Render content in Outlook versions greater than or equal to the specified year.
|
|
66
|
+
*
|
|
67
|
+
* @example '2010'
|
|
68
|
+
*/
|
|
69
|
+
gte: String as PropType<Year>,
|
|
70
|
+
/**
|
|
71
|
+
* Raw HTML inserted at the start of the conditional comment, before the slot.
|
|
72
|
+
*
|
|
73
|
+
* Bypasses Vue's template parser, so unbalanced tags are preserved — useful
|
|
74
|
+
* for MSO ghost tables where the opening `<table><tr><td>` must live inside
|
|
75
|
+
* the conditional comment.
|
|
76
|
+
*
|
|
77
|
+
* @example '<table align="center" width="600"><tr><td>'
|
|
78
|
+
*/
|
|
79
|
+
open: {
|
|
80
|
+
type: String,
|
|
81
|
+
default: ''
|
|
82
|
+
},
|
|
83
|
+
/**
|
|
84
|
+
* Raw HTML inserted at the end of the conditional comment, after the slot.
|
|
85
|
+
*
|
|
86
|
+
* Pair with `open` to close ghost-table tags inside the conditional.
|
|
87
|
+
*
|
|
88
|
+
* @example '</td></tr></table>'
|
|
89
|
+
*/
|
|
90
|
+
close: {
|
|
91
|
+
type: String,
|
|
92
|
+
default: ''
|
|
93
|
+
}
|
|
31
94
|
},
|
|
32
95
|
setup(props, { slots }) {
|
|
33
96
|
const condition = computed(() => {
|
|
@@ -61,13 +124,13 @@ export default {
|
|
|
61
124
|
return 'mso'
|
|
62
125
|
})
|
|
63
126
|
|
|
64
|
-
const start = computed(() => `<!--[if ${condition.value}]
|
|
65
|
-
const end =
|
|
127
|
+
const start = computed(() => `<!--[if ${condition.value}]>${props.open}`)
|
|
128
|
+
const end = computed(() => `${props.close}<![endif]-->`)
|
|
66
129
|
|
|
67
130
|
return () => [
|
|
68
131
|
createStaticVNode(start.value, 1),
|
|
69
132
|
slots.default?.(),
|
|
70
|
-
createStaticVNode(end, 1),
|
|
133
|
+
createStaticVNode(end.value, 1),
|
|
71
134
|
]
|
|
72
135
|
}
|
|
73
136
|
}
|