@maizzle/framework 6.0.0-rc.2 → 6.0.0-rc.20
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.mjs → build.js} +33 -19
- 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/{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} +2 -2
- package/dist/composables/useEvent.d.ts.map +1 -0
- package/dist/composables/{useEvent.mjs → useEvent.js} +3 -4
- 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} +10 -4
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/{index.mjs → index.js} +21 -5
- package/dist/events/index.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.js +37 -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 +319 -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 -79
- 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 +727 -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/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.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,37 @@
|
|
|
1
|
+
import { MaizzleConfig } from "../types/config.js";
|
|
2
|
+
import { EventMap, EventName } from "../events/index.js";
|
|
3
|
+
import { UsePlaintextOptions } from "./usePlaintext.js";
|
|
4
|
+
import { InjectionKey } from "vue";
|
|
5
|
+
|
|
6
|
+
//#region src/composables/renderContext.d.ts
|
|
7
|
+
interface FontRegistration {
|
|
8
|
+
family: string;
|
|
9
|
+
slug: string;
|
|
10
|
+
declaration: string;
|
|
11
|
+
url: string;
|
|
12
|
+
}
|
|
13
|
+
interface TailwindBlock {
|
|
14
|
+
id: string;
|
|
15
|
+
/** Optional raw CSS from the component's `#config` slot. */
|
|
16
|
+
css?: string;
|
|
17
|
+
}
|
|
18
|
+
interface RenderContext {
|
|
19
|
+
doctype?: string;
|
|
20
|
+
preheader?: {
|
|
21
|
+
text: string;
|
|
22
|
+
fillerCount: number;
|
|
23
|
+
shyCount: number;
|
|
24
|
+
};
|
|
25
|
+
sfcConfig?: MaizzleConfig;
|
|
26
|
+
sfcEventHandlers: Array<{
|
|
27
|
+
name: EventName;
|
|
28
|
+
handler: EventMap[EventName];
|
|
29
|
+
}>;
|
|
30
|
+
plaintext?: UsePlaintextOptions;
|
|
31
|
+
fonts?: FontRegistration[];
|
|
32
|
+
tailwindBlocks?: TailwindBlock[];
|
|
33
|
+
}
|
|
34
|
+
declare const RenderContextKey: InjectionKey<RenderContext>;
|
|
35
|
+
//#endregion
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderContext.js","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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { UrlConfig } from "../types/config.js";
|
|
2
|
+
//#region src/composables/useBaseUrl.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Set the base URL for the current email template — same as
|
|
5
|
+
* `config.url.base`, scoped to one SFC.
|
|
6
|
+
*
|
|
7
|
+
* Pass a string to prepend to all default tags/attributes, or an object
|
|
8
|
+
* for fine-grained control (which tags/attributes, style tags, etc.).
|
|
9
|
+
*
|
|
10
|
+
* Usage in SFC <script setup>:
|
|
11
|
+
* ```ts
|
|
12
|
+
* useBaseUrl('https://cdn.example.com/emails/')
|
|
13
|
+
* useBaseUrl({ url: 'https://cdn.example.com/', styleTag: true })
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
declare function useBaseUrl(value: UrlConfig['base']): void;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { useBaseUrl };
|
|
19
|
+
//# sourceMappingURL=useBaseUrl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBaseUrl.d.ts","names":[],"sources":["../../src/composables/useBaseUrl.ts"],"mappings":";;;;;AAkBA;;;;;;;;;;iBAAgB,UAAA,CAAW,KAAA,EAAO,SAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { RenderContextKey } from "./renderContext.js";
|
|
2
|
+
import { defu as defu$1 } from "defu";
|
|
3
|
+
import { inject } from "vue";
|
|
4
|
+
//#region src/composables/useBaseUrl.ts
|
|
5
|
+
/**
|
|
6
|
+
* Set the base URL for the current email template — same as
|
|
7
|
+
* `config.url.base`, scoped to one SFC.
|
|
8
|
+
*
|
|
9
|
+
* Pass a string to prepend to all default tags/attributes, or an object
|
|
10
|
+
* for fine-grained control (which tags/attributes, style tags, etc.).
|
|
11
|
+
*
|
|
12
|
+
* Usage in SFC <script setup>:
|
|
13
|
+
* ```ts
|
|
14
|
+
* useBaseUrl('https://cdn.example.com/emails/')
|
|
15
|
+
* useBaseUrl({ url: 'https://cdn.example.com/', styleTag: true })
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
function useBaseUrl(value) {
|
|
19
|
+
const ctx = inject(RenderContextKey);
|
|
20
|
+
if (!ctx) return;
|
|
21
|
+
ctx.sfcConfig = defu$1({ url: { base: value } }, ctx.sfcConfig ?? {});
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { useBaseUrl };
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=useBaseUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBaseUrl.js","names":["merge"],"sources":["../../src/composables/useBaseUrl.ts"],"sourcesContent":["import { inject } from 'vue'\nimport { defu as merge } from 'defu'\nimport { RenderContextKey } from './renderContext.ts'\nimport type { UrlConfig } from '../types/index.ts'\n\n/**\n * Set the base URL for the current email template — same as\n * `config.url.base`, scoped to one SFC.\n *\n * Pass a string to prepend to all default tags/attributes, or an object\n * for fine-grained control (which tags/attributes, style tags, etc.).\n *\n * Usage in SFC <script setup>:\n * ```ts\n * useBaseUrl('https://cdn.example.com/emails/')\n * useBaseUrl({ url: 'https://cdn.example.com/', styleTag: true })\n * ```\n */\nexport function useBaseUrl(value: UrlConfig['base']): void {\n const ctx = inject(RenderContextKey)\n if (!ctx) return\n ctx.sfcConfig = merge({ url: { base: value } }, ctx.sfcConfig ?? {})\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,SAAgB,WAAW,OAAgC;CACzD,MAAM,MAAM,OAAO,iBAAiB;CACpC,IAAI,CAAC,KAAK;CACV,IAAI,YAAYA,OAAM,EAAE,KAAK,EAAE,MAAM,OAAO,EAAE,EAAE,IAAI,aAAa,EAAE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MaizzleConfig } from "../types/config.
|
|
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.
|
|
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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { inject } from "vue";
|
|
2
|
-
|
|
3
2
|
//#region src/composables/useConfig.ts
|
|
4
3
|
const MaizzleConfigKey = Symbol("MaizzleConfig");
|
|
5
4
|
function useConfig() {
|
|
@@ -7,7 +6,7 @@ function useConfig() {
|
|
|
7
6
|
if (!config) throw new Error("useConfig() requires the Maizzle plugin to provide config. Make sure you are using it inside a Maizzle template.");
|
|
8
7
|
return config;
|
|
9
8
|
}
|
|
10
|
-
|
|
11
9
|
//#endregion
|
|
12
10
|
export { MaizzleConfigKey, useConfig };
|
|
13
|
-
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=useConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useConfig.js","names":[],"sources":["../../src/composables/useConfig.ts"],"sourcesContent":["import { inject } from 'vue'\nimport type { InjectionKey } from 'vue'\nimport type { MaizzleConfig } from '../types/index.ts'\n\nexport const MaizzleConfigKey: InjectionKey<MaizzleConfig> = Symbol('MaizzleConfig')\n\nexport function useConfig(): MaizzleConfig {\n const config = inject(MaizzleConfigKey)\n\n if (!config) {\n throw new Error('useConfig() requires the Maizzle plugin to provide config. Make sure you are using it inside a Maizzle template.')\n }\n\n return config\n}\n"],"mappings":";;AAIA,MAAa,mBAAgD,OAAO,gBAAgB;AAEpF,SAAgB,YAA2B;CACzC,MAAM,SAAS,OAAO,iBAAiB;CAEvC,IAAI,CAAC,QACH,MAAM,IAAI,MAAM,mHAAmH;CAGrI,OAAO"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDoctype.d.ts","names":[],"sources":["../../src/composables/useDoctype.ts"],"mappings":";;AAWA;;;;;;;iBAAgB,UAAA,CAAW,OAAA"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { RenderContextKey } from "./renderContext.
|
|
1
|
+
import { RenderContextKey } from "./renderContext.js";
|
|
2
2
|
import { inject } from "vue";
|
|
3
|
-
|
|
4
3
|
//#region src/composables/useDoctype.ts
|
|
5
4
|
/**
|
|
6
5
|
* Set the doctype for the current email template.
|
|
@@ -14,7 +13,7 @@ function useDoctype(doctype) {
|
|
|
14
13
|
const ctx = inject(RenderContextKey);
|
|
15
14
|
if (ctx) ctx.doctype = doctype;
|
|
16
15
|
}
|
|
17
|
-
|
|
18
16
|
//#endregion
|
|
19
17
|
export { useDoctype };
|
|
20
|
-
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=useDoctype.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDoctype.js","names":[],"sources":["../../src/composables/useDoctype.ts"],"sourcesContent":["import { inject } from 'vue'\nimport { RenderContextKey } from './renderContext.ts'\n\n/**\n * Set the doctype for the current email template.\n *\n * Usage in SFC <script setup>:\n * ```ts\n * useDoctype('<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">')\n * ```\n */\nexport function useDoctype(doctype: string): void {\n const ctx = inject(RenderContextKey)\n if (ctx) ctx.doctype = doctype\n}\n"],"mappings":";;;;;;;;;;;AAWA,SAAgB,WAAW,SAAuB;CAChD,MAAM,MAAM,OAAO,iBAAiB;CACpC,IAAI,KAAK,IAAI,UAAU"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventMap, EventName } from "../events/index.
|
|
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.
|
|
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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { RenderContextKey } from "./renderContext.
|
|
1
|
+
import { RenderContextKey } from "./renderContext.js";
|
|
2
2
|
import { inject } from "vue";
|
|
3
|
-
|
|
4
3
|
//#region src/composables/useEvent.ts
|
|
5
4
|
/**
|
|
6
5
|
* Register an event handler from within an SFC's <script setup>.
|
|
@@ -19,7 +18,7 @@ function useEvent(name, handler) {
|
|
|
19
18
|
handler
|
|
20
19
|
});
|
|
21
20
|
}
|
|
22
|
-
|
|
23
21
|
//#endregion
|
|
24
22
|
export { useEvent };
|
|
25
|
-
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=useEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEvent.js","names":[],"sources":["../../src/composables/useEvent.ts"],"sourcesContent":["import { inject } from 'vue'\nimport { RenderContextKey } from './renderContext.ts'\nimport type { EventName, EventMap } from '../events/index.ts'\n\n/**\n * Register an event handler from within an SFC's <script setup>.\n *\n * Usage:\n * ```ts\n * useEvent('beforeRender', ({ config, template }) => {\n * return template.replace('foo', 'bar')\n * })\n * ```\n */\nexport function useEvent<K extends EventName>(name: K, handler: EventMap[K]) {\n const ctx = inject(RenderContextKey)\n if (ctx) ctx.sfcEventHandlers.push({ name, handler })\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,SAAgB,SAA8B,MAAS,SAAsB;CAC3E,MAAM,MAAM,OAAO,iBAAiB;CACpC,IAAI,KAAK,IAAI,iBAAiB,KAAK;EAAE;EAAM;EAAS,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
//#region src/composables/useFont.d.ts
|
|
2
|
+
type FontProvider = 'google' | 'bunny';
|
|
3
|
+
interface UseFontOptions {
|
|
4
|
+
/**
|
|
5
|
+
* A single font family name, e.g. `"Roboto"` or `"Open Sans"`.
|
|
6
|
+
*
|
|
7
|
+
* For fallback fonts, use the `fallback` option instead of a
|
|
8
|
+
* comma-separated list here.
|
|
9
|
+
*/
|
|
10
|
+
family: string;
|
|
11
|
+
/** CSS fallback list appended to the `font-family` declaration. */
|
|
12
|
+
fallback?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Font provider used to build the stylesheet URL when `url` is omitted.
|
|
15
|
+
* Bunny Fonts is a drop-in, privacy-friendly Google Fonts mirror.
|
|
16
|
+
* @default 'google'
|
|
17
|
+
*/
|
|
18
|
+
provider?: FontProvider;
|
|
19
|
+
/**
|
|
20
|
+
* Stylesheet URL. When provided, used as-is for the `<link href>`.
|
|
21
|
+
* When omitted, a URL is built from `provider`, `family`, `weights`,
|
|
22
|
+
* `display` and `styles`.
|
|
23
|
+
*/
|
|
24
|
+
url?: string;
|
|
25
|
+
/** Font weights to load. Ignored when `url` is provided. */
|
|
26
|
+
weights?: number[];
|
|
27
|
+
/** `font-display` value. Ignored when `url` is provided. */
|
|
28
|
+
display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';
|
|
29
|
+
/** Font styles to load. Ignored when `url` is provided. */
|
|
30
|
+
styles?: Array<'normal' | 'italic'>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Register a font for the current email template.
|
|
34
|
+
*
|
|
35
|
+
* Builds a Google Fonts stylesheet URL from `family`/`weights`/`display`/`styles`
|
|
36
|
+
* (or uses `url` as-is). The renderer injects a `<link>` tag into `<head>`
|
|
37
|
+
* and merges `--font-{slug}` declarations into the template's existing
|
|
38
|
+
* `@import "tailwindcss"` style block so a `font-{slug}` utility class
|
|
39
|
+
* is generated. If no Tailwind import is found, falls back to a `:root`
|
|
40
|
+
* declaration so the CSS variable is still available.
|
|
41
|
+
*
|
|
42
|
+
* Usage in SFC <script setup>:
|
|
43
|
+
* ```ts
|
|
44
|
+
* useFont({ family: 'Roboto', fallback: 'Verdana, sans-serif', weights: [400, 600] })
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
declare function useFont(options: UseFontOptions): void;
|
|
48
|
+
//#endregion
|
|
49
|
+
export { FontProvider, UseFontOptions, useFont };
|
|
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,92 @@
|
|
|
1
|
+
import { RenderContextKey } from "./renderContext.js";
|
|
2
|
+
import { inject } from "vue";
|
|
3
|
+
//#region src/composables/useFont.ts
|
|
4
|
+
const FAMILY_CATEGORIES = {
|
|
5
|
+
"Roboto": "sans",
|
|
6
|
+
"Open Sans": "sans",
|
|
7
|
+
"Inter": "sans",
|
|
8
|
+
"Lato": "sans",
|
|
9
|
+
"Montserrat": "sans",
|
|
10
|
+
"Merriweather": "serif",
|
|
11
|
+
"Playfair Display": "serif",
|
|
12
|
+
"Lora": "serif",
|
|
13
|
+
"PT Serif": "serif",
|
|
14
|
+
"Noto Serif": "serif",
|
|
15
|
+
"Oswald": "display",
|
|
16
|
+
"Bebas Neue": "display",
|
|
17
|
+
"Anton": "display",
|
|
18
|
+
"Lobster": "display",
|
|
19
|
+
"Pacifico": "display",
|
|
20
|
+
"Dancing Script": "handwriting",
|
|
21
|
+
"Caveat": "handwriting",
|
|
22
|
+
"Shadows Into Light": "handwriting",
|
|
23
|
+
"Satisfy": "handwriting",
|
|
24
|
+
"Great Vibes": "handwriting",
|
|
25
|
+
"Roboto Mono": "mono",
|
|
26
|
+
"Source Code Pro": "mono",
|
|
27
|
+
"JetBrains Mono": "mono",
|
|
28
|
+
"Fira Code": "mono",
|
|
29
|
+
"Inconsolata": "mono"
|
|
30
|
+
};
|
|
31
|
+
const DEFAULT_FALLBACKS = {
|
|
32
|
+
sans: "ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", sans-serif",
|
|
33
|
+
serif: "ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
|
|
34
|
+
mono: "ui-monospace, Menlo, Consolas, monospace",
|
|
35
|
+
display: "Impact, \"Arial Black\", system-ui, sans-serif",
|
|
36
|
+
handwriting: "\"Segoe Script\", \"Brush Script MT\", cursive"
|
|
37
|
+
};
|
|
38
|
+
const PROVIDER_BASE_URL = {
|
|
39
|
+
google: "https://fonts.googleapis.com/css2",
|
|
40
|
+
bunny: "https://fonts.bunny.net/css2"
|
|
41
|
+
};
|
|
42
|
+
function slugify(family) {
|
|
43
|
+
return family.trim().toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9-]/g, "");
|
|
44
|
+
}
|
|
45
|
+
function buildProviderUrl(opts) {
|
|
46
|
+
const familyParam = opts.family.trim().replace(/\s+/g, "+");
|
|
47
|
+
const weights = [...opts.weights].sort((a, b) => a - b);
|
|
48
|
+
const hasItalic = opts.styles.includes("italic");
|
|
49
|
+
const hasNormal = opts.styles.includes("normal");
|
|
50
|
+
const axis = hasItalic ? `:ital,wght@${weights.flatMap((w) => [...hasNormal ? [`0,${w}`] : [], `1,${w}`]).join(";")}` : `:wght@${weights.join(";")}`;
|
|
51
|
+
return `${PROVIDER_BASE_URL[opts.provider]}?family=${familyParam}${axis}&display=${opts.display}`;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Register a font for the current email template.
|
|
55
|
+
*
|
|
56
|
+
* Builds a Google Fonts stylesheet URL from `family`/`weights`/`display`/`styles`
|
|
57
|
+
* (or uses `url` as-is). The renderer injects a `<link>` tag into `<head>`
|
|
58
|
+
* and merges `--font-{slug}` declarations into the template's existing
|
|
59
|
+
* `@import "tailwindcss"` style block so a `font-{slug}` utility class
|
|
60
|
+
* is generated. If no Tailwind import is found, falls back to a `:root`
|
|
61
|
+
* declaration so the CSS variable is still available.
|
|
62
|
+
*
|
|
63
|
+
* Usage in SFC <script setup>:
|
|
64
|
+
* ```ts
|
|
65
|
+
* useFont({ family: 'Roboto', fallback: 'Verdana, sans-serif', weights: [400, 600] })
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
function useFont(options) {
|
|
69
|
+
const ctx = inject(RenderContextKey);
|
|
70
|
+
if (!ctx) return;
|
|
71
|
+
ctx.fonts = ctx.fonts ?? [];
|
|
72
|
+
if (ctx.fonts.some((f) => f.family === options.family)) return;
|
|
73
|
+
const url = options.url ?? buildProviderUrl({
|
|
74
|
+
family: options.family,
|
|
75
|
+
provider: options.provider ?? "google",
|
|
76
|
+
weights: options.weights ?? [400],
|
|
77
|
+
display: options.display ?? "swap",
|
|
78
|
+
styles: options.styles ?? ["normal"]
|
|
79
|
+
});
|
|
80
|
+
const fallback = options.fallback ?? DEFAULT_FALLBACKS[FAMILY_CATEGORIES[options.family] ?? "sans"];
|
|
81
|
+
const declaration = `${/\s/.test(options.family) ? `"${options.family}"` : options.family}, ${fallback}`;
|
|
82
|
+
ctx.fonts.push({
|
|
83
|
+
family: options.family,
|
|
84
|
+
slug: slugify(options.family),
|
|
85
|
+
declaration,
|
|
86
|
+
url
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
//#endregion
|
|
90
|
+
export { useFont };
|
|
91
|
+
|
|
92
|
+
//# sourceMappingURL=useFont.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFont.js","names":[],"sources":["../../src/composables/useFont.ts"],"sourcesContent":["import { inject } from 'vue'\nimport { RenderContextKey } from './renderContext.ts'\n\ntype FontCategory = 'sans' | 'serif' | 'mono' | 'display' | 'handwriting'\n\nconst FAMILY_CATEGORIES: Record<string, FontCategory> = {\n // Sans-serif\n 'Roboto': 'sans',\n 'Open Sans': 'sans',\n 'Inter': 'sans',\n 'Lato': 'sans',\n 'Montserrat': 'sans',\n // Serif\n 'Merriweather': 'serif',\n 'Playfair Display': 'serif',\n 'Lora': 'serif',\n 'PT Serif': 'serif',\n 'Noto Serif': 'serif',\n // Display\n 'Oswald': 'display',\n 'Bebas Neue': 'display',\n 'Anton': 'display',\n 'Lobster': 'display',\n 'Pacifico': 'display',\n // Handwriting\n 'Dancing Script': 'handwriting',\n 'Caveat': 'handwriting',\n 'Shadows Into Light': 'handwriting',\n 'Satisfy': 'handwriting',\n 'Great Vibes': 'handwriting',\n // Monospace\n 'Roboto Mono': 'mono',\n 'Source Code Pro': 'mono',\n 'JetBrains Mono': 'mono',\n 'Fira Code': 'mono',\n 'Inconsolata': 'mono',\n}\n\nconst DEFAULT_FALLBACKS: Record<FontCategory, string> = {\n sans: 'ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", sans-serif',\n serif: 'ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif',\n mono: 'ui-monospace, Menlo, Consolas, monospace',\n display: 'Impact, \"Arial Black\", system-ui, sans-serif',\n handwriting: '\"Segoe Script\", \"Brush Script MT\", cursive',\n}\n\nexport type FontProvider = 'google' | 'bunny'\n\nexport interface UseFontOptions {\n /**\n * A single font family name, e.g. `\"Roboto\"` or `\"Open Sans\"`.\n *\n * For fallback fonts, use the `fallback` option instead of a\n * comma-separated list here.\n */\n family: string\n /** CSS fallback list appended to the `font-family` declaration. */\n fallback?: string\n /**\n * Font provider used to build the stylesheet URL when `url` is omitted.\n * Bunny Fonts is a drop-in, privacy-friendly Google Fonts mirror.\n * @default 'google'\n */\n provider?: FontProvider\n /**\n * Stylesheet URL. When provided, used as-is for the `<link href>`.\n * When omitted, a URL is built from `provider`, `family`, `weights`,\n * `display` and `styles`.\n */\n url?: string\n /** Font weights to load. Ignored when `url` is provided. */\n weights?: number[]\n /** `font-display` value. Ignored when `url` is provided. */\n display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional'\n /** Font styles to load. Ignored when `url` is provided. */\n styles?: Array<'normal' | 'italic'>\n}\n\nconst PROVIDER_BASE_URL: Record<FontProvider, string> = {\n google: 'https://fonts.googleapis.com/css2',\n bunny: 'https://fonts.bunny.net/css2',\n}\n\nfunction slugify(family: string): string {\n return family\n .trim()\n .toLowerCase()\n .replace(/\\s+/g, '-')\n .replace(/[^a-z0-9-]/g, '')\n}\n\nfunction buildProviderUrl(opts: Required<Omit<UseFontOptions, 'url' | 'fallback'>>): string {\n const familyParam = opts.family.trim().replace(/\\s+/g, '+')\n const weights = [...opts.weights].sort((a, b) => a - b)\n const hasItalic = opts.styles.includes('italic')\n const hasNormal = opts.styles.includes('normal')\n\n const axis = hasItalic\n ? `:ital,wght@${weights.flatMap(w => [\n ...(hasNormal ? [`0,${w}`] : []),\n `1,${w}`,\n ]).join(';')}`\n : `:wght@${weights.join(';')}`\n\n return `${PROVIDER_BASE_URL[opts.provider]}?family=${familyParam}${axis}&display=${opts.display}`\n}\n\n/**\n * Register a font for the current email template.\n *\n * Builds a Google Fonts stylesheet URL from `family`/`weights`/`display`/`styles`\n * (or uses `url` as-is). The renderer injects a `<link>` tag into `<head>`\n * and merges `--font-{slug}` declarations into the template's existing\n * `@import \"tailwindcss\"` style block so a `font-{slug}` utility class\n * is generated. If no Tailwind import is found, falls back to a `:root`\n * declaration so the CSS variable is still available.\n *\n * Usage in SFC <script setup>:\n * ```ts\n * useFont({ family: 'Roboto', fallback: 'Verdana, sans-serif', weights: [400, 600] })\n * ```\n */\nexport function useFont(options: UseFontOptions): void {\n const ctx = inject(RenderContextKey)\n if (!ctx) return\n\n ctx.fonts = ctx.fonts ?? []\n if (ctx.fonts.some(f => f.family === options.family)) return\n\n const url = options.url ?? buildProviderUrl({\n family: options.family,\n provider: options.provider ?? 'google',\n weights: options.weights ?? [400],\n display: options.display ?? 'swap',\n styles: options.styles ?? ['normal'],\n })\n\n const fallback = options.fallback\n ?? DEFAULT_FALLBACKS[FAMILY_CATEGORIES[options.family] ?? 'sans']\n const quoted = /\\s/.test(options.family) ? `\"${options.family}\"` : options.family\n const declaration = `${quoted}, ${fallback}`\n\n ctx.fonts.push({\n family: options.family,\n slug: slugify(options.family),\n declaration,\n url,\n })\n}\n"],"mappings":";;;AAKA,MAAM,oBAAkD;CAEtD,UAAU;CACV,aAAa;CACb,SAAS;CACT,QAAQ;CACR,cAAc;CAEd,gBAAgB;CAChB,oBAAoB;CACpB,QAAQ;CACR,YAAY;CACZ,cAAc;CAEd,UAAU;CACV,cAAc;CACd,SAAS;CACT,WAAW;CACX,YAAY;CAEZ,kBAAkB;CAClB,UAAU;CACV,sBAAsB;CACtB,WAAW;CACX,eAAe;CAEf,eAAe;CACf,mBAAmB;CACnB,kBAAkB;CAClB,aAAa;CACb,eAAe;CAChB;AAED,MAAM,oBAAkD;CACtD,MAAM;CACN,OAAO;CACP,MAAM;CACN,SAAS;CACT,aAAa;CACd;AAkCD,MAAM,oBAAkD;CACtD,QAAQ;CACR,OAAO;CACR;AAED,SAAS,QAAQ,QAAwB;CACvC,OAAO,OACJ,MAAM,CACN,aAAa,CACb,QAAQ,QAAQ,IAAI,CACpB,QAAQ,eAAe,GAAG;;AAG/B,SAAS,iBAAiB,MAAkE;CAC1F,MAAM,cAAc,KAAK,OAAO,MAAM,CAAC,QAAQ,QAAQ,IAAI;CAC3D,MAAM,UAAU,CAAC,GAAG,KAAK,QAAQ,CAAC,MAAM,GAAG,MAAM,IAAI,EAAE;CACvD,MAAM,YAAY,KAAK,OAAO,SAAS,SAAS;CAChD,MAAM,YAAY,KAAK,OAAO,SAAS,SAAS;CAEhD,MAAM,OAAO,YACT,cAAc,QAAQ,SAAQ,MAAK,CACjC,GAAI,YAAY,CAAC,KAAK,IAAI,GAAG,EAAE,EAC/B,KAAK,IACN,CAAC,CAAC,KAAK,IAAI,KACZ,SAAS,QAAQ,KAAK,IAAI;CAE9B,OAAO,GAAG,kBAAkB,KAAK,UAAU,UAAU,cAAc,KAAK,WAAW,KAAK;;;;;;;;;;;;;;;;;AAkB1F,SAAgB,QAAQ,SAA+B;CACrD,MAAM,MAAM,OAAO,iBAAiB;CACpC,IAAI,CAAC,KAAK;CAEV,IAAI,QAAQ,IAAI,SAAS,EAAE;CAC3B,IAAI,IAAI,MAAM,MAAK,MAAK,EAAE,WAAW,QAAQ,OAAO,EAAE;CAEtD,MAAM,MAAM,QAAQ,OAAO,iBAAiB;EAC1C,QAAQ,QAAQ;EAChB,UAAU,QAAQ,YAAY;EAC9B,SAAS,QAAQ,WAAW,CAAC,IAAI;EACjC,SAAS,QAAQ,WAAW;EAC5B,QAAQ,QAAQ,UAAU,CAAC,SAAS;EACrC,CAAC;CAEF,MAAM,WAAW,QAAQ,YACpB,kBAAkB,kBAAkB,QAAQ,WAAW;CAE5D,MAAM,cAAc,GADL,KAAK,KAAK,QAAQ,OAAO,GAAG,IAAI,QAAQ,OAAO,KAAK,QAAQ,OAC7C,IAAI;CAElC,IAAI,MAAM,KAAK;EACb,QAAQ,QAAQ;EAChB,MAAM,QAAQ,QAAQ,OAAO;EAC7B;EACA;EACD,CAAC"}
|
|
@@ -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,29 @@
|
|
|
1
|
+
import { inject, provide } from "vue";
|
|
2
|
+
//#region src/composables/useOutlookFallback.ts
|
|
3
|
+
const OutlookFallbackKey = Symbol("OutlookFallback");
|
|
4
|
+
/**
|
|
5
|
+
* Toggle whether descendants emit Outlook (MSO) and VML fallback markup.
|
|
6
|
+
*
|
|
7
|
+
* Call once in a Layout/template's `<script setup>` to disable for the
|
|
8
|
+
* whole tree:
|
|
9
|
+
* `useOutlookFallback(false)`
|
|
10
|
+
*
|
|
11
|
+
* Components inheriting `false` skip MSO ghost tables, VML rectangles,
|
|
12
|
+
* `xmlns:v`/`xmlns:o`, mso-specific CSS, and Button's `<Outlook>`
|
|
13
|
+
* spacers. Each MSO-aware component still accepts an `outlook-fallback`
|
|
14
|
+
* prop that overrides inheritance for its subtree.
|
|
15
|
+
*
|
|
16
|
+
* @param value Pass `true`/`false` to set; omit to just read the
|
|
17
|
+
* inherited value (defaults to `true` at the root).
|
|
18
|
+
* @returns The resolved boolean for the current component.
|
|
19
|
+
*/
|
|
20
|
+
function useOutlookFallback(value) {
|
|
21
|
+
const inherited = inject(OutlookFallbackKey, true);
|
|
22
|
+
const enabled = value == null ? inherited : value;
|
|
23
|
+
provide(OutlookFallbackKey, enabled);
|
|
24
|
+
return enabled;
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { useOutlookFallback };
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=useOutlookFallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOutlookFallback.js","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;CAC5C,QAAQ,oBAAoB,QAAQ;CACpC,OAAO"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
interface UsePlaintextOptions {
|
|
3
3
|
extension?: string;
|
|
4
4
|
destination?: string;
|
|
5
|
+
options?: Record<string, unknown>;
|
|
5
6
|
}
|
|
6
7
|
/**
|
|
7
8
|
* Enable plaintext generation for the current email template.
|
|
@@ -11,9 +12,10 @@ interface UsePlaintextOptions {
|
|
|
11
12
|
* usePlaintext()
|
|
12
13
|
* usePlaintext({ extension: 'text' })
|
|
13
14
|
* usePlaintext({ destination: '/custom/path' })
|
|
15
|
+
* usePlaintext({ options: { ignoreTags: ['br'] } })
|
|
14
16
|
* ```
|
|
15
17
|
*/
|
|
16
18
|
declare function usePlaintext(options?: UsePlaintextOptions): void;
|
|
17
19
|
//#endregion
|
|
18
20
|
export { UsePlaintextOptions, usePlaintext };
|
|
19
|
-
//# sourceMappingURL=usePlaintext.d.
|
|
21
|
+
//# 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;EACA,OAAA,GAAU,MAAA;AAAA;;;;;;;AAcZ;;;;;iBAAgB,YAAA,CAAa,OAAA,GAAU,mBAAA"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { RenderContextKey } from "./renderContext.
|
|
1
|
+
import { RenderContextKey } from "./renderContext.js";
|
|
2
2
|
import { inject } from "vue";
|
|
3
|
-
|
|
4
3
|
//#region src/composables/usePlaintext.ts
|
|
5
4
|
/**
|
|
6
5
|
* Enable plaintext generation for the current email template.
|
|
@@ -10,13 +9,14 @@ import { inject } from "vue";
|
|
|
10
9
|
* usePlaintext()
|
|
11
10
|
* usePlaintext({ extension: 'text' })
|
|
12
11
|
* usePlaintext({ destination: '/custom/path' })
|
|
12
|
+
* usePlaintext({ options: { ignoreTags: ['br'] } })
|
|
13
13
|
* ```
|
|
14
14
|
*/
|
|
15
15
|
function usePlaintext(options) {
|
|
16
16
|
const ctx = inject(RenderContextKey);
|
|
17
17
|
if (ctx) ctx.plaintext = options ?? {};
|
|
18
18
|
}
|
|
19
|
-
|
|
20
19
|
//#endregion
|
|
21
20
|
export { usePlaintext };
|
|
22
|
-
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=usePlaintext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePlaintext.js","names":[],"sources":["../../src/composables/usePlaintext.ts"],"sourcesContent":["import { inject } from 'vue'\nimport { RenderContextKey } from './renderContext.ts'\n\nexport interface UsePlaintextOptions {\n extension?: string\n destination?: string\n options?: Record<string, unknown>\n}\n\n/**\n * Enable plaintext generation for the current email template.\n *\n * Usage in SFC <script setup>:\n * ```ts\n * usePlaintext()\n * usePlaintext({ extension: 'text' })\n * usePlaintext({ destination: '/custom/path' })\n * usePlaintext({ options: { ignoreTags: ['br'] } })\n * ```\n */\nexport function usePlaintext(options?: UsePlaintextOptions): void {\n const ctx = inject(RenderContextKey)\n if (ctx) ctx.plaintext = options ?? {}\n}\n"],"mappings":";;;;;;;;;;;;;;AAoBA,SAAgB,aAAa,SAAqC;CAChE,MAAM,MAAM,OAAO,iBAAiB;CACpC,IAAI,KAAK,IAAI,YAAY,WAAW,EAAE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//#region src/composables/usePreheader.d.ts
|
|
2
|
+
interface UsePreheaderOptions {
|
|
3
|
+
/** Number of  ͏ filler pairs to render. @default 150 */
|
|
4
|
+
fillerCount?: number;
|
|
5
|
+
/** Number of ­ entities to render. @default 150 */
|
|
6
|
+
shyCount?: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Set the preheader text for the current email template.
|
|
10
|
+
*
|
|
11
|
+
* Injects a hidden `<div>` at the start of `<body>` with the preheader text
|
|
12
|
+
* followed by filler characters that prevent email clients from pulling
|
|
13
|
+
* in body content after the preheader.
|
|
14
|
+
*
|
|
15
|
+
* Usage in SFC <script setup>:
|
|
16
|
+
* ```ts
|
|
17
|
+
* usePreheader('Thanks for signing up!')
|
|
18
|
+
* usePreheader('Welcome!', { fillerCount: 200, shyCount: 200 })
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
declare function usePreheader(text: string, options?: UsePreheaderOptions): void;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { UsePreheaderOptions, usePreheader };
|
|
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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { RenderContextKey } from "./renderContext.js";
|
|
2
|
+
import { inject } from "vue";
|
|
3
|
+
//#region src/composables/usePreheader.ts
|
|
4
|
+
/**
|
|
5
|
+
* Set the preheader text for the current email template.
|
|
6
|
+
*
|
|
7
|
+
* Injects a hidden `<div>` at the start of `<body>` with the preheader text
|
|
8
|
+
* followed by filler characters that prevent email clients from pulling
|
|
9
|
+
* in body content after the preheader.
|
|
10
|
+
*
|
|
11
|
+
* Usage in SFC <script setup>:
|
|
12
|
+
* ```ts
|
|
13
|
+
* usePreheader('Thanks for signing up!')
|
|
14
|
+
* usePreheader('Welcome!', { fillerCount: 200, shyCount: 200 })
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
function usePreheader(text, options) {
|
|
18
|
+
const ctx = inject(RenderContextKey);
|
|
19
|
+
if (ctx) ctx.preheader = {
|
|
20
|
+
text,
|
|
21
|
+
fillerCount: options?.fillerCount ?? 150,
|
|
22
|
+
shyCount: options?.shyCount ?? 150
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { usePreheader };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=usePreheader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePreheader.js","names":[],"sources":["../../src/composables/usePreheader.ts"],"sourcesContent":["import { inject } from 'vue'\nimport { RenderContextKey } from './renderContext.ts'\n\nexport interface UsePreheaderOptions {\n /** Number of  ͏ filler pairs to render. @default 150 */\n fillerCount?: number\n /** Number of ­ entities to render. @default 150 */\n shyCount?: number\n}\n\n/**\n * Set the preheader text for the current email template.\n *\n * Injects a hidden `<div>` at the start of `<body>` with the preheader text\n * followed by filler characters that prevent email clients from pulling\n * in body content after the preheader.\n *\n * Usage in SFC <script setup>:\n * ```ts\n * usePreheader('Thanks for signing up!')\n * usePreheader('Welcome!', { fillerCount: 200, shyCount: 200 })\n * ```\n */\nexport function usePreheader(text: string, options?: UsePreheaderOptions): void {\n const ctx = inject(RenderContextKey)\n if (ctx) {\n ctx.preheader = {\n text,\n fillerCount: options?.fillerCount ?? 150,\n shyCount: options?.shyCount ?? 150,\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAuBA,SAAgB,aAAa,MAAc,SAAqC;CAC9E,MAAM,MAAM,OAAO,iBAAiB;CACpC,IAAI,KACF,IAAI,YAAY;EACd;EACA,aAAa,SAAS,eAAe;EACrC,UAAU,SAAS,YAAY;EAChC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { TransformerToggles } from "../types/config.js";
|
|
2
|
+
//#region src/composables/useTransformers.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Toggle the transformer pipeline for the current template.
|
|
5
|
+
*
|
|
6
|
+
* - `useTransformers(false)` skips the entire pipeline (CSS inlining,
|
|
7
|
+
* purging, shorthand, etc).
|
|
8
|
+
* - `useTransformers(true)` (or no argument) keeps everything on.
|
|
9
|
+
* - `useTransformers({ inlineCss: false, minify: false })` runs the
|
|
10
|
+
* pipeline but skips the listed transformers.
|
|
11
|
+
* - `useTransformers({ prettify: true, minify: true })` *enables*
|
|
12
|
+
* transformers that would otherwise no-op (boolean-driven ones:
|
|
13
|
+
* inlineCss, purgeCss, prettify, minify, shorthandCss, sixHex,
|
|
14
|
+
* safeClassNames, entities). Same effect as setting their config
|
|
15
|
+
* slice directly, scoped to one template.
|
|
16
|
+
*
|
|
17
|
+
* Data-driven transformers (filters, baseURL, urlQuery, addAttributes,
|
|
18
|
+
* removeAttributes, replaceStrings, attributeToStyle) need actual
|
|
19
|
+
* values in config — a bare `true` toggle for them is a no-op.
|
|
20
|
+
*
|
|
21
|
+
* Mirrors the `useTransformers` config flag, scoped to a single template
|
|
22
|
+
* — no need to edit `maizzle.config.ts`.
|
|
23
|
+
*
|
|
24
|
+
* Usage in SFC <script setup>:
|
|
25
|
+
* ```ts
|
|
26
|
+
* useTransformers(false)
|
|
27
|
+
* useTransformers({ inlineCss: false, minify: false })
|
|
28
|
+
* useTransformers({ prettify: true })
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
declare function useTransformers(value?: boolean | TransformerToggles): void;
|
|
32
|
+
//#endregion
|
|
33
|
+
export { useTransformers };
|
|
34
|
+
//# sourceMappingURL=useTransformers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTransformers.d.ts","names":[],"sources":["../../src/composables/useTransformers.ts"],"mappings":";;;;;AAiCA;;;;;;;;;;;;;;;;;;;;;;;;;iBAAgB,eAAA,CAAgB,KAAA,aAAiB,kBAAA"}
|