@maizzle/framework 6.0.0-rc.8 → 6.0.0
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 +38 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +234 -0
- package/dist/build.js.map +1 -0
- package/dist/components/Body.vue +32 -3
- package/dist/components/Button.vue +91 -62
- package/dist/components/CodeBlock.vue +6 -4
- package/dist/components/CodeInline.vue +77 -6
- package/dist/components/Column.vue +67 -31
- package/dist/components/Container.vue +73 -12
- package/dist/components/Font.vue +96 -0
- package/dist/components/Head.vue +1 -1
- package/dist/components/Heading.vue +1 -1
- package/dist/components/Hr.vue +33 -0
- package/dist/components/Html.vue +36 -3
- package/dist/components/Img.vue +332 -0
- package/dist/components/Layout.vue +71 -21
- package/dist/components/Link.vue +1 -1
- package/dist/components/Markdown.vue +56 -23
- package/dist/components/MarkdownLayout.vue +39 -0
- package/dist/components/NotPlaintext.vue +14 -0
- package/dist/components/Outlook.vue +38 -11
- package/dist/components/OutlookBg.vue +241 -0
- package/dist/components/Plaintext.vue +14 -0
- package/dist/components/Preheader.vue +35 -10
- package/dist/components/QrCode.vue +157 -0
- package/dist/components/Raw.vue +28 -0
- package/dist/components/Row.vue +115 -22
- package/dist/components/Section.vue +65 -26
- package/dist/components/Spacer.vue +35 -29
- package/dist/components/Tailwind.vue +45 -0
- package/dist/components/Text.vue +3 -3
- package/dist/components/Vml.vue +207 -94
- package/dist/components/utils.d.ts +53 -0
- package/dist/components/utils.d.ts.map +1 -0
- package/dist/components/utils.js +80 -0
- package/dist/components/utils.js.map +1 -0
- package/dist/components/utils.ts +102 -0
- package/dist/composables/defineConfig.d.ts +13 -0
- package/dist/composables/defineConfig.d.ts.map +1 -0
- package/dist/composables/{defineConfig.mjs → defineConfig.js} +7 -9
- 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.js +6 -0
- 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.ts +16 -0
- package/dist/composables/useConfig.d.ts.map +1 -0
- package/dist/composables/useConfig.js +19 -0
- 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 +42 -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/useOutputPath.d.ts +17 -0
- package/dist/composables/useOutputPath.d.ts.map +1 -0
- package/dist/composables/useOutputPath.js +23 -0
- package/dist/composables/useOutputPath.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 +25 -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.ts +24 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/{index.mjs → index.js} +45 -14
- package/dist/config/index.js.map +1 -0
- package/dist/events/{index.d.mts → index.d.ts} +35 -12
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/{index.mjs → index.js} +31 -13
- package/dist/events/index.js.map +1 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.js +40 -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.mjs → plugin.js} +16 -13
- 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 +155 -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.mjs → tailwindCleanup.js} +29 -5
- 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/buildTemplate.d.ts +49 -0
- package/dist/render/buildTemplate.d.ts.map +1 -0
- package/dist/render/buildTemplate.js +141 -0
- package/dist/render/buildTemplate.js.map +1 -0
- package/dist/render/{createRenderer.d.mts → createRenderer.d.ts} +17 -6
- package/dist/render/createRenderer.d.ts.map +1 -0
- package/dist/render/createRenderer.js +468 -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 +59 -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/parallel/buildWorker.d.ts +31 -0
- package/dist/render/parallel/buildWorker.d.ts.map +1 -0
- package/dist/render/parallel/buildWorker.js +66 -0
- package/dist/render/parallel/buildWorker.js.map +1 -0
- package/dist/render/parallel/worker.mjs +28 -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 +38 -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} +5 -3
- package/dist/serve.d.ts.map +1 -0
- package/dist/{serve.mjs → serve.js} +207 -106
- 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 +959 -0
- package/dist/server/compatibility.js.map +1 -0
- package/dist/server/{email.d.mts → email.d.ts} +2 -2
- package/dist/server/email.d.ts.map +1 -0
- package/dist/server/{email.mjs → email.js} +2 -3
- 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 +345 -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/.vite/deps/@lucide_vue.js +44967 -0
- package/dist/server/ui/.vite/deps/@lucide_vue.js.map +1 -0
- package/dist/server/ui/.vite/deps/@vueuse_core.js +8155 -0
- package/dist/server/ui/.vite/deps/@vueuse_core.js.map +1 -0
- package/dist/server/ui/.vite/deps/@vueuse_shared.js +1859 -0
- package/dist/server/ui/.vite/deps/@vueuse_shared.js.map +1 -0
- package/dist/server/ui/.vite/deps/_metadata.json +78 -0
- package/dist/server/ui/.vite/deps/chunk-EAsCxrDo.js +14 -0
- package/dist/server/ui/.vite/deps/class-variance-authority.js +57 -0
- package/dist/server/ui/.vite/deps/class-variance-authority.js.map +1 -0
- package/dist/server/ui/.vite/deps/clsx.js +18 -0
- package/dist/server/ui/.vite/deps/clsx.js.map +1 -0
- package/dist/server/ui/.vite/deps/culori.js +4312 -0
- package/dist/server/ui/.vite/deps/culori.js.map +1 -0
- package/dist/server/ui/.vite/deps/package.json +3 -0
- package/dist/server/ui/.vite/deps/reka-ui.js +44464 -0
- package/dist/server/ui/.vite/deps/reka-ui.js.map +1 -0
- package/dist/server/ui/.vite/deps/tailwind-merge.js +3458 -0
- package/dist/server/ui/.vite/deps/tailwind-merge.js.map +1 -0
- package/dist/server/ui/.vite/deps/vue-router.js +6383 -0
- package/dist/server/ui/.vite/deps/vue-router.js.map +1 -0
- package/dist/server/ui/.vite/deps/vue.js +2 -0
- package/dist/server/ui/.vite/deps/vue.runtime.esm-bundler-DaqjATE_.js +8785 -0
- package/dist/server/ui/.vite/deps/vue.runtime.esm-bundler-DaqjATE_.js.map +1 -0
- package/dist/server/ui/App.vue +106 -66
- package/dist/server/ui/components/SidebarClose.vue +12 -0
- package/dist/server/ui/components/ui/checkbox/Checkbox.vue +1 -1
- package/dist/server/ui/components/ui/command/Command.vue +5 -1
- package/dist/server/ui/components/ui/command/CommandInput.vue +2 -2
- package/dist/server/ui/components/ui/dialog/DialogContent.vue +1 -1
- package/dist/server/ui/components/ui/dialog/DialogScrollContent.vue +1 -1
- package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +1 -1
- package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +1 -1
- package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +1 -1
- package/dist/server/ui/components/ui/input/Input.vue +1 -1
- package/dist/server/ui/components/ui/sheet/SheetContent.vue +1 -1
- package/dist/server/ui/components/ui/sidebar/SidebarTrigger.vue +2 -2
- package/dist/server/ui/components/ui/tags-input/TagsInputInput.vue +1 -1
- package/dist/server/ui/components/ui/tags-input/TagsInputItemDelete.vue +1 -1
- package/dist/server/ui/lib/emulated-dark-mode.ts +146 -0
- package/dist/server/ui/main.css +25 -0
- package/dist/server/ui/pages/Home.vue +1 -1
- package/dist/server/ui/pages/Preview.vue +377 -186
- package/dist/server/ui/vite-env.d.ts +1 -0
- 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.ts +42 -0
- package/dist/transformers/addAttributes.d.ts.map +1 -0
- package/dist/transformers/{addAttributes.mjs → addAttributes.js} +40 -24
- 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} +65 -40
- 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 +527 -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 +74 -0
- package/dist/transformers/entities.js.map +1 -0
- package/dist/transformers/filters/{defaults.d.mts → defaults.d.ts} +1 -1
- package/dist/transformers/filters/defaults.d.ts.map +1 -0
- package/dist/transformers/filters/{defaults.mjs → defaults.js} +2 -2
- 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/imgWidth.d.ts +20 -0
- package/dist/transformers/imgWidth.d.ts.map +1 -0
- package/dist/transformers/imgWidth.js +76 -0
- package/dist/transformers/imgWidth.js.map +1 -0
- package/dist/transformers/{index.d.mts → index.d.ts} +14 -12
- package/dist/transformers/index.d.ts.map +1 -0
- package/dist/transformers/index.js +163 -0
- package/dist/transformers/index.js.map +1 -0
- package/dist/transformers/inlineCss.d.ts +85 -0
- package/dist/transformers/inlineCss.d.ts.map +1 -0
- package/dist/transformers/inlineCss.js +112 -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} +35 -11
- 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/minifyCodeInline.d.ts +29 -0
- package/dist/transformers/minifyCodeInline.d.ts.map +1 -0
- package/dist/transformers/minifyCodeInline.js +36 -0
- package/dist/transformers/minifyCodeInline.js.map +1 -0
- package/dist/transformers/msoPlaceholders.d.ts +33 -0
- package/dist/transformers/msoPlaceholders.d.ts.map +1 -0
- package/dist/transformers/msoPlaceholders.js +114 -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 +207 -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 +72 -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/safeSelectors.d.ts +37 -0
- package/dist/transformers/safeSelectors.d.ts.map +1 -0
- package/dist/transformers/{safeClassNames.mjs → safeSelectors.js} +40 -10
- package/dist/transformers/safeSelectors.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 +92 -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 +101 -0
- package/dist/transformers/tailwindComponent.js.map +1 -0
- package/dist/transformers/{tailwindcss.d.mts → tailwindcss.d.ts} +2 -2
- package/dist/transformers/tailwindcss.d.ts.map +1 -0
- package/dist/transformers/{tailwindcss.mjs → tailwindcss.js} +33 -74
- 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.mts → config.d.ts} +270 -40
- 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.mts → serializer.d.ts} +1 -1
- package/dist/utils/ast/serializer.d.ts.map +1 -0
- package/dist/utils/ast/serializer.js +46 -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/cloneConfig.d.ts +13 -0
- package/dist/utils/cloneConfig.d.ts.map +1 -0
- package/dist/utils/cloneConfig.js +21 -0
- package/dist/utils/cloneConfig.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 +55 -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/cssBox.d.ts +42 -0
- package/dist/utils/cssBox.d.ts.map +1 -0
- package/dist/utils/cssBox.js +151 -0
- package/dist/utils/cssBox.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.mts → detect.d.ts} +1 -1
- package/dist/utils/detect.d.ts.map +1 -0
- package/dist/utils/{detect.mjs → detect.js} +2 -3
- 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 +44 -0
- package/node_modules/@clack/core/dist/index.d.mts +125 -5
- package/node_modules/@clack/core/dist/index.mjs +972 -11
- package/node_modules/@clack/core/package.json +6 -2
- package/node_modules/@clack/prompts/CHANGELOG.md +70 -0
- package/node_modules/@clack/prompts/README.md +129 -3
- package/node_modules/@clack/prompts/dist/index.d.mts +567 -33
- package/node_modules/@clack/prompts/dist/index.mjs +1378 -133
- 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 -2
- package/node_modules/fast-wrap-ansi/package.json +11 -11
- 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 +8 -7
- 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 +46 -135
- 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 +5 -4
- 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 +9 -1
- package/node_modules/tinyexec/dist/main.d.mts +22 -7
- package/node_modules/tinyexec/dist/main.mjs +189 -491
- package/node_modules/tinyexec/package.json +14 -16
- package/package.json +38 -30
- package/dist/build.d.mts +0 -19
- package/dist/build.d.mts.map +0 -1
- package/dist/build.mjs +0 -140
- package/dist/build.mjs.map +0 -1
- package/dist/components/Divider.vue +0 -133
- package/dist/components/Image.vue +0 -70
- package/dist/components/Overlap.vue +0 -80
- 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 +0 -14
- package/dist/composables/defineConfig.d.mts.map +0 -1
- package/dist/composables/defineConfig.mjs.map +0 -1
- package/dist/composables/renderContext.d.mts +0 -24
- package/dist/composables/renderContext.d.mts.map +0 -1
- package/dist/composables/renderContext.mjs +0 -6
- package/dist/composables/renderContext.mjs.map +0 -1
- package/dist/composables/useConfig.d.mts +0 -9
- package/dist/composables/useConfig.d.mts.map +0 -1
- package/dist/composables/useConfig.mjs +0 -13
- 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/composables/usePreviewText.d.mts +0 -24
- package/dist/composables/usePreviewText.d.mts.map +0 -1
- package/dist/composables/usePreviewText.mjs +0 -29
- package/dist/composables/usePreviewText.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 +0 -15
- 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 -30
- package/dist/index.mjs +0 -30
- 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.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.map +0 -1
- package/dist/render/createRenderer.d.mts.map +0 -1
- package/dist/render/createRenderer.mjs +0 -279
- 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 -45
- 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 -5
- package/dist/server/compatibility.d.mts.map +0 -1
- package/dist/server/compatibility.mjs +0 -97
- package/dist/server/compatibility.mjs.map +0 -1
- package/dist/server/email.d.mts.map +0 -1
- package/dist/server/email.mjs.map +0 -1
- package/dist/server/linter.d.mts +0 -5
- package/dist/server/linter.d.mts.map +0 -1
- package/dist/server/linter.mjs +0 -189
- package/dist/server/linter.mjs.map +0 -1
- package/dist/transformers/addAttributes.d.mts +0 -32
- 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 -41
- package/dist/transformers/entities.mjs.map +0 -1
- package/dist/transformers/filters/defaults.d.mts.map +0 -1
- package/dist/transformers/filters/defaults.mjs.map +0 -1
- package/dist/transformers/filters/index.d.mts +0 -22
- package/dist/transformers/filters/index.d.mts.map +0 -1
- package/dist/transformers/filters/index.mjs +0 -67
- package/dist/transformers/filters/index.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 -78
- package/dist/transformers/index.mjs.map +0 -1
- package/dist/transformers/inlineCSS.d.mts +0 -17
- package/dist/transformers/inlineCSS.d.mts.map +0 -1
- package/dist/transformers/inlineCSS.mjs +0 -70
- 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 -132
- 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 +0 -22
- 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.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.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.map +0 -1
- package/dist/utils/ast/serializer.mjs +0 -37
- 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/detect.d.mts.map +0 -1
- package/dist/utils/detect.mjs.map +0 -1
- package/dist/utils/url.d.mts.map +0 -1
- package/dist/utils/url.mjs.map +0 -1
- package/node_modules/@clack/core/dist/index.mjs.map +0 -1
- package/node_modules/@clack/prompts/dist/index.mjs.map +0 -1
- package/node_modules/fast-wrap-ansi/lib/main.js.map +0 -1
- package/node_modules/maizzle/dist/commands/make/stubs/layout.vue +0 -39
- package/node_modules/tinyexec/dist/LICENSES.txt +0 -83
package/dist/components/Row.vue
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
const warnedLocations = new Set<string>()
|
|
3
|
+
</script>
|
|
4
|
+
|
|
1
5
|
<script setup lang="ts">
|
|
2
|
-
import { Comment, computed, createStaticVNode,
|
|
3
|
-
import type {
|
|
6
|
+
import { Comment, Text, computed, createStaticVNode, provide, useAttrs, useSlots, Fragment } from 'vue'
|
|
7
|
+
import type { VNode } from 'vue'
|
|
8
|
+
import { twMerge } from 'tailwind-merge'
|
|
9
|
+
import Column from './Column.vue'
|
|
10
|
+
import { hasWidthInStyle, hasWidthUtility, normalizeToPixels, outlookFallbackProp } from './utils.ts'
|
|
11
|
+
import { useOutlookFallback } from '../composables/useOutlookFallback'
|
|
4
12
|
|
|
5
13
|
defineOptions({ inheritAttrs: false })
|
|
6
14
|
|
|
@@ -8,10 +16,12 @@ const attrs = useAttrs()
|
|
|
8
16
|
|
|
9
17
|
const props = defineProps({
|
|
10
18
|
/**
|
|
11
|
-
*
|
|
19
|
+
* Explicit row width.
|
|
12
20
|
*
|
|
13
|
-
* Used
|
|
14
|
-
*
|
|
21
|
+
* Used as the width source for column min-width calculation.
|
|
22
|
+
* When not set, the nearest sized ancestor (`Container`, `Section`,
|
|
23
|
+
* outer `Column`, or this row's own width class/inline style) is
|
|
24
|
+
* used instead.
|
|
15
25
|
*/
|
|
16
26
|
width: {
|
|
17
27
|
type: [String, Number],
|
|
@@ -27,9 +37,22 @@ const props = defineProps({
|
|
|
27
37
|
cols: {
|
|
28
38
|
type: Number,
|
|
29
39
|
default: null
|
|
30
|
-
}
|
|
40
|
+
},
|
|
41
|
+
/**
|
|
42
|
+
* Toggle Outlook (MSO) and VML fallback markup for this
|
|
43
|
+
* component and all descendants.
|
|
44
|
+
*
|
|
45
|
+
* When `false`, skips MSO ghost tables, VML shapes,
|
|
46
|
+
* `xmlns:v`/`xmlns:o` attributes, and mso-specific CSS
|
|
47
|
+
* in all built-in components.
|
|
48
|
+
*
|
|
49
|
+
* @default true
|
|
50
|
+
*/
|
|
51
|
+
outlookFallback: outlookFallbackProp,
|
|
31
52
|
})
|
|
32
53
|
|
|
54
|
+
const outlookFallback = useOutlookFallback(props.outlookFallback)
|
|
55
|
+
|
|
33
56
|
const slots = useSlots()
|
|
34
57
|
|
|
35
58
|
function countChildren(vnodes: VNode[]): number {
|
|
@@ -46,6 +69,41 @@ function countChildren(vnodes: VNode[]): number {
|
|
|
46
69
|
return count
|
|
47
70
|
}
|
|
48
71
|
|
|
72
|
+
function hasColumnChild(vnodes: VNode[]): boolean {
|
|
73
|
+
for (const vnode of vnodes) {
|
|
74
|
+
if (vnode.type === Fragment && Array.isArray(vnode.children)) {
|
|
75
|
+
if (hasColumnChild(vnode.children as VNode[])) return true
|
|
76
|
+
} else if (vnode.type === Column) {
|
|
77
|
+
return true
|
|
78
|
+
} else if (
|
|
79
|
+
typeof vnode.type === 'object'
|
|
80
|
+
&& vnode.type !== null
|
|
81
|
+
&& '__name' in vnode.type
|
|
82
|
+
&& (vnode.type as { __name?: string }).__name === 'Column'
|
|
83
|
+
) {
|
|
84
|
+
return true
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return false
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function hasMeaningfulContent(vnodes: VNode[]): boolean {
|
|
91
|
+
for (const vnode of vnodes) {
|
|
92
|
+
if (vnode.type === Comment) continue
|
|
93
|
+
if (vnode.type === Fragment && Array.isArray(vnode.children)) {
|
|
94
|
+
if (hasMeaningfulContent(vnode.children as VNode[])) return true
|
|
95
|
+
continue
|
|
96
|
+
}
|
|
97
|
+
if (vnode.type === Text) {
|
|
98
|
+
if (typeof vnode.children === 'string' && vnode.children.trim()) return true
|
|
99
|
+
continue
|
|
100
|
+
}
|
|
101
|
+
if (typeof vnode.type === 'symbol') continue
|
|
102
|
+
return true
|
|
103
|
+
}
|
|
104
|
+
return false
|
|
105
|
+
}
|
|
106
|
+
|
|
49
107
|
const columnCount = computed(() => {
|
|
50
108
|
if (props.cols) return props.cols
|
|
51
109
|
|
|
@@ -53,26 +111,45 @@ const columnCount = computed(() => {
|
|
|
53
111
|
return countChildren(children) || 1
|
|
54
112
|
})
|
|
55
113
|
|
|
56
|
-
|
|
114
|
+
provide('columnCount', columnCount)
|
|
57
115
|
|
|
58
|
-
const
|
|
116
|
+
const userStyle = computed(() => {
|
|
117
|
+
const s = attrs.style
|
|
118
|
+
if (!s) return ''
|
|
119
|
+
return typeof s === 'object'
|
|
120
|
+
? Object.entries(s).map(([k, v]) => `${k.replace(/([A-Z])/g, '-$1').toLowerCase()}: ${v}`).join('; ')
|
|
121
|
+
: String(s)
|
|
122
|
+
})
|
|
59
123
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
124
|
+
const userHasWidth = computed(() => {
|
|
125
|
+
const cls = (attrs.class as string) ?? ''
|
|
126
|
+
return hasWidthUtility(cls) || hasWidthInStyle(userStyle.value)
|
|
127
|
+
})
|
|
64
128
|
|
|
65
|
-
|
|
66
|
-
|
|
129
|
+
const colWidthSource = computed(() => {
|
|
130
|
+
if (props.width != null) return normalizeToPixels(props.width)
|
|
131
|
+
if (userHasWidth.value) return ''
|
|
132
|
+
return null
|
|
133
|
+
})
|
|
67
134
|
|
|
68
|
-
|
|
69
|
-
}
|
|
135
|
+
const restAttrs = computed(() => {
|
|
136
|
+
const { style: _, class: __, 'data-maizzle-loc': ___, ...rest } = attrs
|
|
137
|
+
return rest
|
|
138
|
+
})
|
|
70
139
|
|
|
71
|
-
|
|
72
|
-
|
|
140
|
+
/**
|
|
141
|
+
* `font-size: 0;` removes the whitespace gap between inline-block
|
|
142
|
+
* children. Lives in a class so users can override (e.g. via a custom
|
|
143
|
+
* `text-*`) and twMerge resolves the conflict cleanly instead of the
|
|
144
|
+
* inline declaration silently shadowing the user's class.
|
|
145
|
+
*/
|
|
146
|
+
const baseClass = 'text-0'
|
|
147
|
+
const mergedClass = computed(() => twMerge(baseClass, (attrs.class as string) ?? ''))
|
|
148
|
+
|
|
149
|
+
const divStyle = computed(() => userStyle.value || undefined)
|
|
73
150
|
|
|
74
151
|
const MsoBefore = () => createStaticVNode(
|
|
75
|
-
'<!--[if mso]><table role="none" cellpadding="0" cellspacing="0"
|
|
152
|
+
'<!--[if mso]><table role="none" cellpadding="0" cellspacing="0" style="width: 100%"><tr><![endif]-->',
|
|
76
153
|
1
|
|
77
154
|
)
|
|
78
155
|
|
|
@@ -80,12 +157,28 @@ const MsoAfter = () => createStaticVNode(
|
|
|
80
157
|
'<!--[if mso]></tr></table><![endif]-->',
|
|
81
158
|
1
|
|
82
159
|
)
|
|
160
|
+
|
|
161
|
+
const initialChildren = slots.default?.() ?? []
|
|
162
|
+
if (hasMeaningfulContent(initialChildren) && !hasColumnChild(initialChildren)) {
|
|
163
|
+
const loc = (attrs['data-maizzle-loc'] as string | undefined) ?? '<unknown location>'
|
|
164
|
+
if (!warnedLocations.has(loc)) {
|
|
165
|
+
warnedLocations.add(loc)
|
|
166
|
+
const display = loc.split('/').pop() ?? loc
|
|
167
|
+
const suffix = outlookFallback ? ' Layout will break in Outlook.' : ''
|
|
168
|
+
console.warn(`[maizzle] <Row> in ${display} has no <Column> inside it.${suffix}`)
|
|
169
|
+
}
|
|
170
|
+
}
|
|
83
171
|
</script>
|
|
84
172
|
|
|
85
173
|
<template>
|
|
86
|
-
<MsoBefore />
|
|
87
|
-
<div
|
|
174
|
+
<MsoBefore v-if="outlookFallback" />
|
|
175
|
+
<div
|
|
176
|
+
v-bind="restAttrs"
|
|
177
|
+
:class="mergedClass"
|
|
178
|
+
:style="divStyle"
|
|
179
|
+
:data-maizzle-cw="colWidthSource"
|
|
180
|
+
>
|
|
88
181
|
<slot />
|
|
89
182
|
</div>
|
|
90
|
-
<MsoAfter />
|
|
183
|
+
<MsoAfter v-if="outlookFallback" />
|
|
91
184
|
</template>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed, createStaticVNode, useAttrs } from 'vue'
|
|
3
|
-
import {
|
|
3
|
+
import { twMerge } from 'tailwind-merge'
|
|
4
|
+
import { hasWidthInStyle, hasWidthUtility, nextId, normalizeToPixels, outlookFallbackProp } from './utils.ts'
|
|
5
|
+
import { useOutlookFallback } from '../composables/useOutlookFallback'
|
|
4
6
|
|
|
5
7
|
defineOptions({ inheritAttrs: false })
|
|
6
8
|
|
|
@@ -12,11 +14,14 @@ const props = defineProps({
|
|
|
12
14
|
*
|
|
13
15
|
* Applied as `max-width` on the div and as `width` on the MSO table.
|
|
14
16
|
*
|
|
15
|
-
*
|
|
17
|
+
* When not set, the MSO table width is auto-derived from a width
|
|
18
|
+
* utility class (e.g. `max-w-md`) or inline style (`max-width`/
|
|
19
|
+
* `width`) on the component, after CSS inlining. Falls back to
|
|
20
|
+
* `100%` when no width source is provided.
|
|
16
21
|
*/
|
|
17
22
|
width: {
|
|
18
23
|
type: [String, Number],
|
|
19
|
-
default:
|
|
24
|
+
default: null
|
|
20
25
|
},
|
|
21
26
|
/**
|
|
22
27
|
* Inline CSS applied only to the MSO `<td>` element.
|
|
@@ -28,10 +33,21 @@ const props = defineProps({
|
|
|
28
33
|
msoStyle: {
|
|
29
34
|
type: String,
|
|
30
35
|
default: undefined
|
|
31
|
-
}
|
|
36
|
+
},
|
|
37
|
+
/**
|
|
38
|
+
* Toggle Outlook (MSO) and VML fallback markup for this
|
|
39
|
+
* component and all descendants.
|
|
40
|
+
*
|
|
41
|
+
* When `false`, skips MSO ghost tables, VML shapes,
|
|
42
|
+
* `xmlns:v`/`xmlns:o` attributes, and mso-specific CSS
|
|
43
|
+
* in all built-in components.
|
|
44
|
+
*
|
|
45
|
+
* @default true
|
|
46
|
+
*/
|
|
47
|
+
outlookFallback: outlookFallbackProp,
|
|
32
48
|
})
|
|
33
49
|
|
|
34
|
-
const
|
|
50
|
+
const outlookFallback = useOutlookFallback(props.outlookFallback)
|
|
35
51
|
|
|
36
52
|
const userStyle = computed(() => {
|
|
37
53
|
const s = attrs.style
|
|
@@ -41,32 +57,46 @@ const userStyle = computed(() => {
|
|
|
41
57
|
: String(s)
|
|
42
58
|
})
|
|
43
59
|
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
60
|
+
const userHasWidth = computed(() => {
|
|
61
|
+
const cls = (attrs.class as string) ?? ''
|
|
62
|
+
return hasWidthUtility(cls) || hasWidthInStyle(userStyle.value)
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
const useMarker = outlookFallback && props.width == null && userHasWidth.value
|
|
66
|
+
const msoId = useMarker ? nextId('s') : null
|
|
67
|
+
const tdId = outlookFallback ? nextId('st') : null
|
|
68
|
+
|
|
69
|
+
const mergedClass = computed(() => {
|
|
70
|
+
const userClass = (attrs.class as string) ?? ''
|
|
71
|
+
if (props.width == null) return userClass || undefined
|
|
72
|
+
return twMerge(`max-w-[${normalizeToPixels(props.width)}]`, userClass)
|
|
49
73
|
})
|
|
50
74
|
|
|
75
|
+
const divStyle = computed(() => userStyle.value || undefined)
|
|
76
|
+
|
|
51
77
|
const restAttrs = computed(() => {
|
|
52
|
-
const { style: _, ...rest } = attrs
|
|
78
|
+
const { style: _, class: __, ...rest } = attrs
|
|
53
79
|
return rest
|
|
54
80
|
})
|
|
55
81
|
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
if (
|
|
59
|
-
|
|
60
|
-
|
|
82
|
+
const msoWidth = computed(() => {
|
|
83
|
+
if (props.width != null) return normalizeToPixels(props.width)
|
|
84
|
+
if (useMarker) return `__MAIZZLE_MSOW_${msoId}__`
|
|
85
|
+
return '100%'
|
|
86
|
+
})
|
|
87
|
+
|
|
88
|
+
const colWidthSource = computed(() => {
|
|
89
|
+
if (props.width != null) return normalizeToPixels(props.width)
|
|
90
|
+
if (userHasWidth.value) return ''
|
|
91
|
+
return null
|
|
61
92
|
})
|
|
62
93
|
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
94
|
+
const tdMarker = tdId ? `__MAIZZLE_MSOTDSTYLE_${tdId}__` : ''
|
|
95
|
+
|
|
96
|
+
const MsoBefore = () => createStaticVNode(
|
|
97
|
+
`<!--[if mso]><table role="none" cellpadding="0" cellspacing="0" style="width: ${msoWidth.value}"><tr><td${tdMarker}><![endif]-->`,
|
|
98
|
+
1
|
|
99
|
+
)
|
|
70
100
|
|
|
71
101
|
const MsoAfter = () => createStaticVNode(
|
|
72
102
|
'<!--[if mso]></td></tr></table><![endif]-->',
|
|
@@ -75,9 +105,18 @@ const MsoAfter = () => createStaticVNode(
|
|
|
75
105
|
</script>
|
|
76
106
|
|
|
77
107
|
<template>
|
|
78
|
-
<MsoBefore />
|
|
79
|
-
<div
|
|
108
|
+
<MsoBefore v-if="outlookFallback" />
|
|
109
|
+
<div
|
|
110
|
+
v-bind="restAttrs"
|
|
111
|
+
:class="mergedClass"
|
|
112
|
+
:style="divStyle"
|
|
113
|
+
:data-maizzle-msow-id="msoId"
|
|
114
|
+
:data-maizzle-msow-fallback="useMarker ? '100%' : null"
|
|
115
|
+
:data-maizzle-cw="colWidthSource"
|
|
116
|
+
:data-maizzle-mso-td-id="tdId"
|
|
117
|
+
:data-maizzle-mso-style="tdId && props.msoStyle ? props.msoStyle : null"
|
|
118
|
+
>
|
|
80
119
|
<slot />
|
|
81
120
|
</div>
|
|
82
|
-
<MsoAfter />
|
|
121
|
+
<MsoAfter v-if="outlookFallback" />
|
|
83
122
|
</template>
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { computed } from 'vue'
|
|
3
|
-
import { normalizeToPixels } from './utils.ts'
|
|
2
|
+
import { computed, h, useAttrs } from 'vue'
|
|
3
|
+
import { normalizeToPixels, outlookFallbackProp } from './utils.ts'
|
|
4
|
+
import { useOutlookFallback } from '../composables/useOutlookFallback'
|
|
5
|
+
|
|
6
|
+
defineOptions({ inheritAttrs: false })
|
|
4
7
|
|
|
5
8
|
const props = defineProps({
|
|
6
9
|
/** The type of spacer. */
|
|
@@ -8,44 +11,41 @@ const props = defineProps({
|
|
|
8
11
|
type: String as () => 'vertical' | 'horizontal',
|
|
9
12
|
default: 'vertical'
|
|
10
13
|
},
|
|
11
|
-
/** The height of the spacer (vertical). */
|
|
12
|
-
height: {
|
|
13
|
-
type: [String, Number],
|
|
14
|
-
default: null
|
|
15
|
-
},
|
|
16
14
|
/** The width of the spacer (horizontal). */
|
|
17
15
|
width: {
|
|
18
16
|
type: [String, Number],
|
|
19
17
|
default: 16
|
|
20
18
|
},
|
|
21
|
-
|
|
22
|
-
msoHeight: {
|
|
23
|
-
type: [String, Number],
|
|
24
|
-
default: null
|
|
25
|
-
}
|
|
19
|
+
outlookFallback: outlookFallbackProp,
|
|
26
20
|
})
|
|
27
21
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return Number.parseFloat(value) || 0
|
|
31
|
-
}
|
|
22
|
+
const attrs = useAttrs()
|
|
23
|
+
const outlookFallback = useOutlookFallback(props.outlookFallback)
|
|
32
24
|
|
|
33
|
-
const
|
|
34
|
-
|
|
25
|
+
const HEIGHT_RE = /(?:^|\s)h-([\w./\-[\]%]+)/g
|
|
26
|
+
const LEADING_RE = /(?:^|\s)leading-/
|
|
35
27
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
28
|
+
const verticalClass = computed(() => {
|
|
29
|
+
const userClass = (attrs.class as string) || ''
|
|
30
|
+
if (!userClass) return ''
|
|
39
31
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
32
|
+
const heights = [...userClass.matchAll(HEIGHT_RE)]
|
|
33
|
+
const stripped = userClass.replace(HEIGHT_RE, ' ').replace(/\s+/g, ' ').trim()
|
|
43
34
|
|
|
44
|
-
|
|
35
|
+
if (!heights.length) return stripped
|
|
36
|
+
if (LEADING_RE.test(stripped)) return stripped
|
|
37
|
+
|
|
38
|
+
return `${stripped} leading-${heights[heights.length - 1][1]}`.trim()
|
|
45
39
|
})
|
|
46
40
|
|
|
41
|
+
function parsePixelValue(value: string | number): number {
|
|
42
|
+
if (typeof value === 'number') return value
|
|
43
|
+
return Number.parseFloat(value) || 0
|
|
44
|
+
}
|
|
45
|
+
|
|
47
46
|
const horizontalStyles = computed(() => {
|
|
48
|
-
|
|
47
|
+
const mso = outlookFallback ? msoFontWidth.value : ''
|
|
48
|
+
return `display:inline-block; width: ${normalizeToPixels(props.width)}; font-size: 16px;${mso}`
|
|
49
49
|
})
|
|
50
50
|
|
|
51
51
|
const msoFontWidth = computed(() => {
|
|
@@ -66,14 +66,20 @@ const emspCount = computed(() => {
|
|
|
66
66
|
})
|
|
67
67
|
|
|
68
68
|
const emsps = computed(() => '\u2003'.repeat(emspCount.value))
|
|
69
|
+
|
|
70
|
+
const HorizontalSpacer = () =>
|
|
71
|
+
h('i', { ...attrs, style: horizontalStyles.value }, emsps.value)
|
|
69
72
|
</script>
|
|
70
73
|
|
|
71
74
|
<template>
|
|
72
75
|
<template v-if="type === 'horizontal'">
|
|
73
|
-
<
|
|
76
|
+
<HorizontalSpacer />
|
|
74
77
|
</template>
|
|
75
78
|
<template v-else>
|
|
76
|
-
<div
|
|
77
|
-
|
|
79
|
+
<div
|
|
80
|
+
role="separator"
|
|
81
|
+
v-bind="{ ...$attrs, class: undefined }"
|
|
82
|
+
:class="verticalClass"
|
|
83
|
+
>‍</div>
|
|
78
84
|
</template>
|
|
79
85
|
</template>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { defineComponent, createCommentVNode, inject, h, Fragment, type VNode } from 'vue'
|
|
3
|
+
import { RenderContextKey } from '../composables/renderContext'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Walk a slot's vnode tree and concatenate its text content.
|
|
7
|
+
* Handles plain text children, arrays, and Comment vnodes.
|
|
8
|
+
* Static text in <template #config>...</template> compiles into
|
|
9
|
+
* text vnodes whose `children` is a string — that's our path.
|
|
10
|
+
*/
|
|
11
|
+
function vnodeText(input: unknown): string {
|
|
12
|
+
if (input == null || input === false) return ''
|
|
13
|
+
if (typeof input === 'string') return input
|
|
14
|
+
if (typeof input === 'number') return String(input)
|
|
15
|
+
if (Array.isArray(input)) return input.map(vnodeText).join('')
|
|
16
|
+
|
|
17
|
+
const v = input as VNode
|
|
18
|
+
if (typeof v.children === 'string') return v.children
|
|
19
|
+
if (Array.isArray(v.children)) return vnodeText(v.children)
|
|
20
|
+
return ''
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export default defineComponent({
|
|
24
|
+
name: 'Tailwind',
|
|
25
|
+
setup(_, { slots }) {
|
|
26
|
+
const ctx = inject(RenderContextKey)!
|
|
27
|
+
if (!ctx.tailwindBlocks) ctx.tailwindBlocks = []
|
|
28
|
+
const id = `tw${ctx.tailwindBlocks.length}`
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Extract optional `#config` slot content as raw CSS. Evaluated at setup
|
|
32
|
+
* time; the slot is NOT rendered into the document.
|
|
33
|
+
*/
|
|
34
|
+
const css = slots.config ? vnodeText(slots.config()).trim() : undefined
|
|
35
|
+
|
|
36
|
+
ctx.tailwindBlocks.push({ id, css: css || undefined })
|
|
37
|
+
|
|
38
|
+
return () => h(Fragment, null, [
|
|
39
|
+
createCommentVNode(`mz-tw:${id}`),
|
|
40
|
+
slots.default?.(),
|
|
41
|
+
createCommentVNode(`/mz-tw:${id}`),
|
|
42
|
+
])
|
|
43
|
+
},
|
|
44
|
+
})
|
|
45
|
+
</script>
|
package/dist/components/Text.vue
CHANGED
|
@@ -18,12 +18,12 @@ const props = defineProps({
|
|
|
18
18
|
|
|
19
19
|
const attrs = useAttrs()
|
|
20
20
|
|
|
21
|
-
const defaultClass = computed(() => props.as === 'span' ? '
|
|
22
|
-
const mergedClass = computed(() => twMerge(defaultClass.value, attrs.class as string))
|
|
21
|
+
const defaultClass = computed(() => props.as === 'span' ? '' : 'mt-4 text-base')
|
|
22
|
+
const mergedClass = computed(() => twMerge(defaultClass.value, attrs.class as string) || undefined)
|
|
23
23
|
</script>
|
|
24
24
|
|
|
25
25
|
<template>
|
|
26
|
-
<component :is="props.as" v-bind="
|
|
26
|
+
<component :is="props.as" v-bind="{ ...$attrs, class: mergedClass }">
|
|
27
27
|
<slot />
|
|
28
28
|
</component>
|
|
29
29
|
</template>
|