@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,13 @@
|
|
|
1
|
+
import { Plugin } from "postcss";
|
|
2
|
+
|
|
3
|
+
//#region src/plugins/postcss/quoteFontFamilies.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Re-quote multi-word font-family identifiers that lightningcss "optimised"
|
|
6
|
+
* by removing quotes. CSS allows space-separated identifiers as a family
|
|
7
|
+
* name, but Google Fonts (and most style guides) prescribe quoted form.
|
|
8
|
+
*/
|
|
9
|
+
declare function quoteFontFamilies(): Plugin;
|
|
10
|
+
declare const postcss = true;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { postcss, quoteFontFamilies };
|
|
13
|
+
//# sourceMappingURL=quoteFontFamilies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quoteFontFamilies.d.ts","names":[],"sources":["../../../src/plugins/postcss/quoteFontFamilies.ts"],"mappings":";;;;;AA+CA;;;iBAAgB,iBAAA,CAAA,GAAqB,MAAA;AAAA,cA6BxB,OAAA"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
//#region src/plugins/postcss/quoteFontFamilies.ts
|
|
2
|
+
const GENERIC_KEYWORDS = new Set([
|
|
3
|
+
"serif",
|
|
4
|
+
"sans-serif",
|
|
5
|
+
"monospace",
|
|
6
|
+
"cursive",
|
|
7
|
+
"fantasy",
|
|
8
|
+
"system-ui",
|
|
9
|
+
"ui-serif",
|
|
10
|
+
"ui-sans-serif",
|
|
11
|
+
"ui-monospace",
|
|
12
|
+
"ui-rounded",
|
|
13
|
+
"emoji",
|
|
14
|
+
"math",
|
|
15
|
+
"fangsong",
|
|
16
|
+
"inherit",
|
|
17
|
+
"initial",
|
|
18
|
+
"unset",
|
|
19
|
+
"revert",
|
|
20
|
+
"revert-layer"
|
|
21
|
+
]);
|
|
22
|
+
/**
|
|
23
|
+
* Split a font-family value on top-level commas only, preserving quoted
|
|
24
|
+
* strings and parenthesised groups like `var(...)`.
|
|
25
|
+
*/
|
|
26
|
+
function splitFamilies(value) {
|
|
27
|
+
const parts = [];
|
|
28
|
+
let depth = 0;
|
|
29
|
+
let quote = null;
|
|
30
|
+
let start = 0;
|
|
31
|
+
for (let i = 0; i < value.length; i++) {
|
|
32
|
+
const ch = value[i];
|
|
33
|
+
if (quote) {
|
|
34
|
+
if (ch === "\\") {
|
|
35
|
+
i++;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
if (ch === quote) quote = null;
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (ch === "\"" || ch === "'") {
|
|
42
|
+
quote = ch;
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (ch === "(") depth++;
|
|
46
|
+
else if (ch === ")") depth--;
|
|
47
|
+
else if (ch === "," && depth === 0) {
|
|
48
|
+
parts.push(value.slice(start, i).trim());
|
|
49
|
+
start = i + 1;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
parts.push(value.slice(start).trim());
|
|
53
|
+
return parts.filter(Boolean);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Re-quote multi-word font-family identifiers that lightningcss "optimised"
|
|
57
|
+
* by removing quotes. CSS allows space-separated identifiers as a family
|
|
58
|
+
* name, but Google Fonts (and most style guides) prescribe quoted form.
|
|
59
|
+
*/
|
|
60
|
+
function quoteFontFamilies() {
|
|
61
|
+
return {
|
|
62
|
+
postcssPlugin: "quote-font-families",
|
|
63
|
+
Declaration: { "font-family": (decl) => {
|
|
64
|
+
const value = decl.value;
|
|
65
|
+
if (!value || !/\s/.test(value)) return;
|
|
66
|
+
const families = splitFamilies(value);
|
|
67
|
+
let changed = false;
|
|
68
|
+
const fixed = families.map((token) => {
|
|
69
|
+
if (token.startsWith("\"") || token.startsWith("'")) return token;
|
|
70
|
+
if (token.startsWith("var(")) return token;
|
|
71
|
+
if (!token.includes(" ")) return token;
|
|
72
|
+
if (GENERIC_KEYWORDS.has(token.toLowerCase())) return token;
|
|
73
|
+
changed = true;
|
|
74
|
+
return `"${token}"`;
|
|
75
|
+
});
|
|
76
|
+
if (changed) decl.value = fixed.join(", ");
|
|
77
|
+
} }
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
const postcss = true;
|
|
81
|
+
//#endregion
|
|
82
|
+
export { postcss, quoteFontFamilies };
|
|
83
|
+
|
|
84
|
+
//# sourceMappingURL=quoteFontFamilies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quoteFontFamilies.js","names":[],"sources":["../../../src/plugins/postcss/quoteFontFamilies.ts"],"sourcesContent":["import type { Plugin } from 'postcss'\n\nconst GENERIC_KEYWORDS = new Set([\n 'serif', 'sans-serif', 'monospace', 'cursive', 'fantasy',\n 'system-ui', 'ui-serif', 'ui-sans-serif', 'ui-monospace', 'ui-rounded',\n 'emoji', 'math', 'fangsong',\n 'inherit', 'initial', 'unset', 'revert', 'revert-layer',\n])\n\n/**\n * Split a font-family value on top-level commas only, preserving quoted\n * strings and parenthesised groups like `var(...)`.\n */\nfunction splitFamilies(value: string): string[] {\n const parts: string[] = []\n let depth = 0\n let quote: string | null = null\n let start = 0\n\n for (let i = 0; i < value.length; i++) {\n const ch = value[i]\n if (quote) {\n if (ch === '\\\\') { i++; continue }\n if (ch === quote) quote = null\n continue\n }\n if (ch === '\"' || ch === \"'\") {\n quote = ch\n continue\n }\n if (ch === '(') depth++\n else if (ch === ')') depth--\n else if (ch === ',' && depth === 0) {\n parts.push(value.slice(start, i).trim())\n start = i + 1\n }\n }\n\n parts.push(value.slice(start).trim())\n return parts.filter(Boolean)\n}\n\n/**\n * Re-quote multi-word font-family identifiers that lightningcss \"optimised\"\n * by removing quotes. CSS allows space-separated identifiers as a family\n * name, but Google Fonts (and most style guides) prescribe quoted form.\n */\nexport function quoteFontFamilies(): Plugin {\n return {\n postcssPlugin: 'quote-font-families',\n Declaration: {\n 'font-family': (decl) => {\n const value = decl.value\n if (!value || !/\\s/.test(value)) return\n\n const families = splitFamilies(value)\n let changed = false\n\n const fixed = families.map((token) => {\n if (token.startsWith('\"') || token.startsWith(\"'\")) return token\n if (token.startsWith('var(')) return token\n if (!token.includes(' ')) return token\n if (GENERIC_KEYWORDS.has(token.toLowerCase())) return token\n\n changed = true\n return `\"${token}\"`\n })\n\n if (changed) {\n decl.value = fixed.join(', ')\n }\n },\n },\n }\n}\n\nexport const postcss = true\n"],"mappings":";AAEA,MAAM,mBAAmB,IAAI,IAAI;CAC/B;CAAS;CAAc;CAAa;CAAW;CAC/C;CAAa;CAAY;CAAiB;CAAgB;CAC1D;CAAS;CAAQ;CACjB;CAAW;CAAW;CAAS;CAAU;CAC1C,CAAC;;;;;AAMF,SAAS,cAAc,OAAyB;CAC9C,MAAM,QAAkB,EAAE;CAC1B,IAAI,QAAQ;CACZ,IAAI,QAAuB;CAC3B,IAAI,QAAQ;CAEZ,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;EACrC,MAAM,KAAK,MAAM;EACjB,IAAI,OAAO;GACT,IAAI,OAAO,MAAM;IAAE;IAAK;;GACxB,IAAI,OAAO,OAAO,QAAQ;GAC1B;;EAEF,IAAI,OAAO,QAAO,OAAO,KAAK;GAC5B,QAAQ;GACR;;EAEF,IAAI,OAAO,KAAK;OACX,IAAI,OAAO,KAAK;OAChB,IAAI,OAAO,OAAO,UAAU,GAAG;GAClC,MAAM,KAAK,MAAM,MAAM,OAAO,EAAE,CAAC,MAAM,CAAC;GACxC,QAAQ,IAAI;;;CAIhB,MAAM,KAAK,MAAM,MAAM,MAAM,CAAC,MAAM,CAAC;CACrC,OAAO,MAAM,OAAO,QAAQ;;;;;;;AAQ9B,SAAgB,oBAA4B;CAC1C,OAAO;EACL,eAAe;EACf,aAAa,EACX,gBAAgB,SAAS;GACvB,MAAM,QAAQ,KAAK;GACnB,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,MAAM,EAAE;GAEjC,MAAM,WAAW,cAAc,MAAM;GACrC,IAAI,UAAU;GAEd,MAAM,QAAQ,SAAS,KAAK,UAAU;IACpC,IAAI,MAAM,WAAW,KAAI,IAAI,MAAM,WAAW,IAAI,EAAE,OAAO;IAC3D,IAAI,MAAM,WAAW,OAAO,EAAE,OAAO;IACrC,IAAI,CAAC,MAAM,SAAS,IAAI,EAAE,OAAO;IACjC,IAAI,iBAAiB,IAAI,MAAM,aAAa,CAAC,EAAE,OAAO;IAEtD,UAAU;IACV,OAAO,IAAI,MAAM;KACjB;GAEF,IAAI,SACF,KAAK,QAAQ,MAAM,KAAK,KAAK;KAGlC;EACF;;AAGH,MAAa,UAAU"}
|
|
@@ -9,4 +9,4 @@ declare const _default: (options: RemoveDeclarationsOptions) => Plugin;
|
|
|
9
9
|
declare const postcss = true;
|
|
10
10
|
//#endregion
|
|
11
11
|
export { RemoveDeclarationsOptions, RemoveValue, _default as default, postcss };
|
|
12
|
-
//# sourceMappingURL=removeDeclarations.d.
|
|
12
|
+
//# sourceMappingURL=removeDeclarations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removeDeclarations.d.ts","names":[],"sources":["../../../src/plugins/postcss/removeDeclarations.ts"],"mappings":";;;KA0BY,WAAA,6BAIR,MAAA;AAAA,UAEa,yBAAA;EACf,MAAA,EAAQ,MAAA,SAAe,WAAA;AAAA;AAAA,cACxB,QAAA,GAQe,OAAA,EAAS,yBAAA,KAA4B,MAAA;AAAA,cAyDxC,OAAA"}
|
|
@@ -39,7 +39,7 @@ var removeDeclarations_default = (options) => {
|
|
|
39
39
|
};
|
|
40
40
|
};
|
|
41
41
|
const postcss = true;
|
|
42
|
-
|
|
43
42
|
//#endregion
|
|
44
43
|
export { removeDeclarations_default as default, postcss };
|
|
45
|
-
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=removeDeclarations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removeDeclarations.js","names":[],"sources":["../../../src/plugins/postcss/removeDeclarations.ts"],"sourcesContent":["/**\n * postcss-remove-declarations\n *\n * Removes CSS declarations (or whole rules) based on a selector map.\n *\n * The `remove` option maps a selector string to one of:\n *\n * - `\"*\"` — remove the entire rule\n * - `string` — remove the single named property\n * - `string[]` — remove every listed property\n * - `Record<string, string>` — remove a property only when its value matches.\n * Append `!important` to the value to restrict the match\n * to non-important declarations only.\n *\n * Example:\n * removeDeclarations({\n * remove: {\n * ':root': '*',\n * '.foo': ['color', 'margin'],\n * '.bar': { color: 'red' },\n * }\n * })\n */\n\nimport type { Plugin, Root } from 'postcss'\n\nexport type RemoveValue =\n | '*'\n | string\n | string[]\n | Record<string, string>\n\nexport interface RemoveDeclarationsOptions {\n remove: Record<string, RemoveValue>\n}\n\nconst IMPORTANT = '!important'\n\nfunction normalizeSelector(selector: string): string {\n return selector.replace(/(\\r\\n|\\n|\\r)/gm, '')\n}\n\nexport default (options: RemoveDeclarationsOptions): Plugin => {\n return {\n postcssPlugin: 'postcss-remove-declarations',\n\n Once(root: Root) {\n const remove = options.remove ?? {}\n\n root.walkRules((rule) => {\n let toRemove = remove[normalizeSelector(rule.selector)]\n\n if (!toRemove) return\n\n // Remove the entire rule\n if (toRemove === '*') {\n rule.remove()\n return\n }\n\n // Normalise a bare string into an array\n if (typeof toRemove === 'string') {\n toRemove = [toRemove]\n }\n\n if (Array.isArray(toRemove)) {\n const props = toRemove as string[]\n rule.walkDecls((decl) => {\n if (props.includes(decl.prop)) decl.remove()\n })\n } else if (typeof toRemove === 'object') {\n // Object: match both property and value\n const map = toRemove as Record<string, string>\n rule.walkDecls((decl) => {\n if (!(decl.prop in map)) return\n\n let expected = map[decl.prop]\n const requireNonImportant = expected.endsWith(IMPORTANT)\n\n if (requireNonImportant) {\n expected = expected.slice(0, -IMPORTANT.length).trim()\n }\n\n if (decl.value !== expected) return\n if (decl.important && requireNonImportant) return\n\n decl.remove()\n })\n }\n\n // Remove the rule if all declarations were removed\n if (rule.nodes?.length === 0) {\n rule.remove()\n }\n })\n },\n }\n}\n\nexport const postcss = true\n"],"mappings":";AAoCA,MAAM,YAAY;AAElB,SAAS,kBAAkB,UAA0B;CACnD,OAAO,SAAS,QAAQ,kBAAkB,GAAG;;AAG/C,IAAA,8BAAgB,YAA+C;CAC7D,OAAO;EACL,eAAe;EAEf,KAAK,MAAY;GACf,MAAM,SAAS,QAAQ,UAAU,EAAE;GAEnC,KAAK,WAAW,SAAS;IACvB,IAAI,WAAW,OAAO,kBAAkB,KAAK,SAAS;IAEtD,IAAI,CAAC,UAAU;IAGf,IAAI,aAAa,KAAK;KACpB,KAAK,QAAQ;KACb;;IAIF,IAAI,OAAO,aAAa,UACtB,WAAW,CAAC,SAAS;IAGvB,IAAI,MAAM,QAAQ,SAAS,EAAE;KAC3B,MAAM,QAAQ;KACd,KAAK,WAAW,SAAS;MACvB,IAAI,MAAM,SAAS,KAAK,KAAK,EAAE,KAAK,QAAQ;OAC5C;WACG,IAAI,OAAO,aAAa,UAAU;KAEvC,MAAM,MAAM;KACZ,KAAK,WAAW,SAAS;MACvB,IAAI,EAAE,KAAK,QAAQ,MAAM;MAEzB,IAAI,WAAW,IAAI,KAAK;MACxB,MAAM,sBAAsB,SAAS,SAAS,UAAU;MAExD,IAAI,qBACF,WAAW,SAAS,MAAM,GAAG,IAAkB,CAAC,MAAM;MAGxD,IAAI,KAAK,UAAU,UAAU;MAC7B,IAAI,KAAK,aAAa,qBAAqB;MAE3C,KAAK,QAAQ;OACb;;IAIJ,IAAI,KAAK,OAAO,WAAW,GACzB,KAAK,QAAQ;KAEf;;EAEL;;AAGH,MAAa,UAAU"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Plugin } from "postcss";
|
|
2
|
+
|
|
3
|
+
//#region src/plugins/postcss/resolveMaizzleImports.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Rewrite `@import "@maizzle/tailwindcss"` (and subpaths like
|
|
6
|
+
* `@maizzle/tailwindcss/mso`) to absolute file paths so postcss/Tailwind
|
|
7
|
+
* can resolve them regardless of where the user's template lives or how
|
|
8
|
+
* their package manager hoists dependencies.
|
|
9
|
+
*
|
|
10
|
+
* Resolution order: prefer the user's project copy (so explicit installs
|
|
11
|
+
* win), then fall back to the copy bundled with the framework.
|
|
12
|
+
*/
|
|
13
|
+
declare function resolveMaizzleImports(userRoot?: string): Plugin;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { resolveMaizzleImports };
|
|
16
|
+
//# sourceMappingURL=resolveMaizzleImports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveMaizzleImports.d.ts","names":[],"sources":["../../../src/plugins/postcss/resolveMaizzleImports.ts"],"mappings":";;;;;AAiBA;;;;;;;iBAAgB,qBAAA,CAAsB,QAAA,YAAmC,MAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
//#region src/plugins/postcss/resolveMaizzleImports.ts
|
|
3
|
+
const SUBPATH_RE = new RegExp(`^@maizzle/tailwindcss(?:/|$)`);
|
|
4
|
+
const requireFromFramework = createRequire(import.meta.url);
|
|
5
|
+
/**
|
|
6
|
+
* Rewrite `@import "@maizzle/tailwindcss"` (and subpaths like
|
|
7
|
+
* `@maizzle/tailwindcss/mso`) to absolute file paths so postcss/Tailwind
|
|
8
|
+
* can resolve them regardless of where the user's template lives or how
|
|
9
|
+
* their package manager hoists dependencies.
|
|
10
|
+
*
|
|
11
|
+
* Resolution order: prefer the user's project copy (so explicit installs
|
|
12
|
+
* win), then fall back to the copy bundled with the framework.
|
|
13
|
+
*/
|
|
14
|
+
function resolveMaizzleImports(userRoot = process.cwd()) {
|
|
15
|
+
const requireFromUser = createRequire(`${userRoot}/_maizzle.js`);
|
|
16
|
+
function resolve(spec) {
|
|
17
|
+
try {
|
|
18
|
+
return requireFromUser.resolve(spec);
|
|
19
|
+
} catch {}
|
|
20
|
+
try {
|
|
21
|
+
return requireFromFramework.resolve(spec);
|
|
22
|
+
} catch {}
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
postcssPlugin: "maizzle:resolve-tw-imports",
|
|
26
|
+
AtRule: { import(rule) {
|
|
27
|
+
const m = rule.params.match(/^\s*["']([^"']+)["']/);
|
|
28
|
+
if (!m) return;
|
|
29
|
+
const spec = m[1];
|
|
30
|
+
if (!SUBPATH_RE.test(spec)) return;
|
|
31
|
+
const abs = resolve(spec);
|
|
32
|
+
if (abs) rule.params = rule.params.replace(m[0], `"${abs}"`);
|
|
33
|
+
} }
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//#endregion
|
|
37
|
+
export { resolveMaizzleImports };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=resolveMaizzleImports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveMaizzleImports.js","names":[],"sources":["../../../src/plugins/postcss/resolveMaizzleImports.ts"],"sourcesContent":["import { createRequire } from 'node:module'\nimport type { Plugin } from 'postcss'\n\nconst PKG = '@maizzle/tailwindcss'\nconst SUBPATH_RE = new RegExp(`^${PKG}(?:/|$)`)\n\nconst requireFromFramework = createRequire(import.meta.url)\n\n/**\n * Rewrite `@import \"@maizzle/tailwindcss\"` (and subpaths like\n * `@maizzle/tailwindcss/mso`) to absolute file paths so postcss/Tailwind\n * can resolve them regardless of where the user's template lives or how\n * their package manager hoists dependencies.\n *\n * Resolution order: prefer the user's project copy (so explicit installs\n * win), then fall back to the copy bundled with the framework.\n */\nexport function resolveMaizzleImports(userRoot: string = process.cwd()): Plugin {\n const requireFromUser = createRequire(`${userRoot}/_maizzle.js`)\n\n function resolve(spec: string): string | undefined {\n try { return requireFromUser.resolve(spec) } catch {}\n try { return requireFromFramework.resolve(spec) } catch {}\n return undefined\n }\n\n return {\n postcssPlugin: 'maizzle:resolve-tw-imports',\n AtRule: {\n import(rule) {\n const m = rule.params.match(/^\\s*[\"']([^\"']+)[\"']/)\n if (!m) return\n const spec = m[1]\n if (!SUBPATH_RE.test(spec)) return\n\n const abs = resolve(spec)\n if (abs) rule.params = rule.params.replace(m[0], `\"${abs}\"`)\n },\n },\n }\n}\n"],"mappings":";;AAIA,MAAM,aAAa,IAAI,OAAO,+BAAiB;AAE/C,MAAM,uBAAuB,cAAc,OAAO,KAAK,IAAI;;;;;;;;;;AAW3D,SAAgB,sBAAsB,WAAmB,QAAQ,KAAK,EAAU;CAC9E,MAAM,kBAAkB,cAAc,GAAG,SAAS,cAAc;CAEhE,SAAS,QAAQ,MAAkC;EACjD,IAAI;GAAE,OAAO,gBAAgB,QAAQ,KAAK;UAAS;EACnD,IAAI;GAAE,OAAO,qBAAqB,QAAQ,KAAK;UAAS;;CAI1D,OAAO;EACL,eAAe;EACf,QAAQ,EACN,OAAO,MAAM;GACX,MAAM,IAAI,KAAK,OAAO,MAAM,uBAAuB;GACnD,IAAI,CAAC,GAAG;GACR,MAAM,OAAO,EAAE;GACf,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;GAE5B,MAAM,MAAM,QAAQ,KAAK;GACzB,IAAI,KAAK,KAAK,SAAS,KAAK,OAAO,QAAQ,EAAE,IAAI,IAAI,IAAI,GAAG;KAE/D;EACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveProps.d.ts","names":[],"sources":["../../../src/plugins/postcss/resolveProps.ts"],"mappings":";;;cAiByD,QAAA,QA6FtC,MAAA;AAAA,cA8IN,OAAA"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
//#region src/plugins/postcss/resolveProps.ts
|
|
2
|
+
/** Check if a rule's selector includes :root */
|
|
3
|
+
function isRootRule(rule) {
|
|
4
|
+
const sel = rule.selector;
|
|
5
|
+
return sel === ":root" || sel.includes(":root");
|
|
6
|
+
}
|
|
7
|
+
/** Check if a rule is inside @layer (not @media or other at-rules) */
|
|
8
|
+
function isInLayer(rule) {
|
|
9
|
+
return rule.parent?.type === "atrule" && rule.parent.name === "layer";
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Parse the first var() call in a string by counting parens.
|
|
13
|
+
* Returns null if no var() found.
|
|
14
|
+
*/
|
|
15
|
+
function findVar(value, startFrom = 0) {
|
|
16
|
+
const idx = value.indexOf("var(", startFrom);
|
|
17
|
+
if (idx === -1) return null;
|
|
18
|
+
let depth = 1;
|
|
19
|
+
let i = idx + 4;
|
|
20
|
+
let commaIdx = -1;
|
|
21
|
+
while (i < value.length && depth > 0) {
|
|
22
|
+
const ch = value.charCodeAt(i);
|
|
23
|
+
if (ch === 40) depth++;
|
|
24
|
+
else if (ch === 41) {
|
|
25
|
+
if (--depth === 0) break;
|
|
26
|
+
} else if (ch === 44 && depth === 1 && commaIdx === -1) commaIdx = i;
|
|
27
|
+
i++;
|
|
28
|
+
}
|
|
29
|
+
if (depth !== 0) return null;
|
|
30
|
+
const name = commaIdx === -1 ? value.slice(idx + 4, i).trim() : value.slice(idx + 4, commaIdx).trim();
|
|
31
|
+
const fallback = commaIdx === -1 ? void 0 : value.slice(commaIdx + 1, i);
|
|
32
|
+
return {
|
|
33
|
+
start: idx,
|
|
34
|
+
end: i + 1,
|
|
35
|
+
name,
|
|
36
|
+
fallback
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Resolve all var() references in a value string.
|
|
41
|
+
* Iterates until no resolvable var() remain.
|
|
42
|
+
*/
|
|
43
|
+
function resolveValue(value, localVars, rootVars, propertyDefaults) {
|
|
44
|
+
let result = value;
|
|
45
|
+
let safety = 10;
|
|
46
|
+
while (safety-- > 0) {
|
|
47
|
+
const v = findVar(result);
|
|
48
|
+
if (!v) break;
|
|
49
|
+
const resolved = localVars.get(v.name) ?? rootVars.get(v.name) ?? propertyDefaults?.get(v.name);
|
|
50
|
+
if (resolved !== void 0) result = result.slice(0, v.start) + resolved + result.slice(v.end);
|
|
51
|
+
else if (v.fallback !== void 0) result = result.slice(0, v.start) + v.fallback.trim() + result.slice(v.end);
|
|
52
|
+
else {
|
|
53
|
+
if (!findVar(result, v.end)) break;
|
|
54
|
+
const tail = resolveValue(result.slice(v.end), localVars, rootVars, propertyDefaults);
|
|
55
|
+
result = result.slice(0, v.end) + tail;
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
var resolveProps_default = () => {
|
|
62
|
+
return {
|
|
63
|
+
postcssPlugin: "postcss-resolve-props",
|
|
64
|
+
Once(root) {
|
|
65
|
+
const propertyDefaults = /* @__PURE__ */ new Map();
|
|
66
|
+
root.walkAtRules("property", (rule) => {
|
|
67
|
+
const name = rule.params.trim();
|
|
68
|
+
if (!name.startsWith("--")) return;
|
|
69
|
+
rule.walkDecls("initial-value", (decl) => {
|
|
70
|
+
propertyDefaults.set(name, decl.value);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
const rootVars = /* @__PURE__ */ new Map();
|
|
74
|
+
root.walkRules((rule) => {
|
|
75
|
+
if (!isRootRule(rule)) return;
|
|
76
|
+
if (rule.parent?.type !== "root" && !isInLayer(rule)) return;
|
|
77
|
+
rule.each((node) => {
|
|
78
|
+
if (node.type === "decl" && node.prop.startsWith("--")) rootVars.set(node.prop, node.value);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
if (rootVars.size > 0) {
|
|
82
|
+
let changed = true;
|
|
83
|
+
let iterations = 5;
|
|
84
|
+
while (changed && iterations-- > 0) {
|
|
85
|
+
changed = false;
|
|
86
|
+
for (const [name, value] of rootVars) {
|
|
87
|
+
if (!value.includes("var(")) continue;
|
|
88
|
+
const resolved = resolveValue(value, rootVars, rootVars, propertyDefaults);
|
|
89
|
+
if (resolved !== value) {
|
|
90
|
+
rootVars.set(name, resolved);
|
|
91
|
+
changed = true;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
root.walkRules((rule) => {
|
|
97
|
+
if (isRootRule(rule)) {
|
|
98
|
+
if (rule.parent?.type !== "root" && !isInLayer(rule)) return;
|
|
99
|
+
}
|
|
100
|
+
const localVars = /* @__PURE__ */ new Map();
|
|
101
|
+
const localDecls = [];
|
|
102
|
+
let hasVarRefs = false;
|
|
103
|
+
rule.walk((node) => {
|
|
104
|
+
if (node.type !== "decl") return;
|
|
105
|
+
if (node.prop.startsWith("--")) localDecls.push(node);
|
|
106
|
+
else if (node.value.includes("var(")) hasVarRefs = true;
|
|
107
|
+
});
|
|
108
|
+
if (!hasVarRefs && localDecls.length === 0) return;
|
|
109
|
+
for (const decl of localDecls) {
|
|
110
|
+
const value = decl.value.includes("var(") ? resolveValue(decl.value, localVars, rootVars, propertyDefaults) : decl.value;
|
|
111
|
+
localVars.set(decl.prop, value);
|
|
112
|
+
}
|
|
113
|
+
if (hasVarRefs) rule.walk((node) => {
|
|
114
|
+
if (node.type !== "decl") return;
|
|
115
|
+
if (node.prop.startsWith("--")) return;
|
|
116
|
+
if (!node.value.includes("var(")) return;
|
|
117
|
+
const resolved = resolveValue(node.value, localVars, rootVars, propertyDefaults);
|
|
118
|
+
if (resolved !== node.value) {
|
|
119
|
+
const cleaned = resolved.replace(/ +/g, " ").trim();
|
|
120
|
+
if (cleaned) node.value = cleaned;
|
|
121
|
+
else node.remove();
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
for (const decl of localDecls) decl.remove();
|
|
125
|
+
});
|
|
126
|
+
root.walkAtRules("property", (rule) => {
|
|
127
|
+
rule.remove();
|
|
128
|
+
});
|
|
129
|
+
root.walkRules((rule) => {
|
|
130
|
+
if (!isRootRule(rule)) return;
|
|
131
|
+
if (rule.parent?.type !== "root" && !isInLayer(rule)) return;
|
|
132
|
+
rule.each((node) => {
|
|
133
|
+
if (node.type === "decl" && node.prop.startsWith("--")) node.remove();
|
|
134
|
+
});
|
|
135
|
+
if (rule.nodes?.length === 0) rule.remove();
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
const postcss = true;
|
|
141
|
+
//#endregion
|
|
142
|
+
export { resolveProps_default as default, postcss };
|
|
143
|
+
|
|
144
|
+
//# sourceMappingURL=resolveProps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveProps.js","names":[],"sources":["../../../src/plugins/postcss/resolveProps.ts"],"sourcesContent":["/**\n * postcss-resolve-props\n *\n * Resolves CSS custom properties (var() references) and removes\n * the consumed declarations, producing flat CSS for email inlining.\n *\n * Resolution order per var():\n * 1. Local declaration in the same rule\n * 2. :root declaration (top-level only, not inside @media)\n * 3. @property initial-value (Tailwind v4 composable defaults)\n * 4. Fallback value from the var() itself\n *\n * Handles nested var() in both values and fallbacks.\n * Replaces postcss-custom-properties with correct support for\n * local var declarations (Tailwind composable pattern, user CSS).\n */\n\nimport type { AtRule, Plugin, Root, Rule } from 'postcss'\n\n/** Check if a rule's selector includes :root */\nfunction isRootRule(rule: Rule): boolean {\n const sel = rule.selector\n return sel === ':root' || sel.includes(':root')\n}\n\n/** Check if a rule is inside @layer (not @media or other at-rules) */\nfunction isInLayer(rule: Rule): boolean {\n return rule.parent?.type === 'atrule' && (rule.parent as any).name === 'layer'\n}\n\n/**\n * Parse the first var() call in a string by counting parens.\n * Returns null if no var() found.\n */\nfunction findVar(value: string, startFrom = 0): {\n start: number\n end: number\n name: string\n fallback: string | undefined\n} | null {\n const idx = value.indexOf('var(', startFrom)\n if (idx === -1) return null\n\n let depth = 1\n let i = idx + 4\n let commaIdx = -1\n\n while (i < value.length && depth > 0) {\n const ch = value.charCodeAt(i)\n if (ch === 40 /* ( */) depth++\n else if (ch === 41 /* ) */) {\n if (--depth === 0) break\n } else if (ch === 44 /* , */ && depth === 1 && commaIdx === -1) {\n commaIdx = i\n }\n i++\n }\n\n if (depth !== 0) return null\n\n const name = commaIdx === -1\n ? value.slice(idx + 4, i).trim()\n : value.slice(idx + 4, commaIdx).trim()\n\n const fallback = commaIdx === -1\n ? undefined\n : value.slice(commaIdx + 1, i)\n\n return { start: idx, end: i + 1, name, fallback }\n}\n\n/**\n * Resolve all var() references in a value string.\n * Iterates until no resolvable var() remain.\n */\nfunction resolveValue(\n value: string,\n localVars: Map<string, string>,\n rootVars: Map<string, string>,\n propertyDefaults?: Map<string, string>,\n): string {\n let result = value\n let safety = 10\n\n while (safety-- > 0) {\n const v = findVar(result)\n if (!v) break\n\n const resolved = localVars.get(v.name) ?? rootVars.get(v.name) ?? propertyDefaults?.get(v.name)\n\n if (resolved !== undefined) {\n result = result.slice(0, v.start) + resolved + result.slice(v.end)\n } else if (v.fallback !== undefined) {\n result = result.slice(0, v.start) + v.fallback.trim() + result.slice(v.end)\n } else {\n // Unresolvable with no fallback — skip past it to avoid infinite loop\n // Try to find another var() after this one\n const next = findVar(result, v.end)\n if (!next) break\n\n // Process the rest of the string from after this var()\n const tail = resolveValue(result.slice(v.end), localVars, rootVars, propertyDefaults)\n result = result.slice(0, v.end) + tail\n break\n }\n }\n\n return result\n}\n\nexport default (): Plugin => {\n return {\n postcssPlugin: 'postcss-resolve-props',\n\n Once(root: Root) {\n // Pass 0: collect @property initial-value defaults (Tailwind v4 composable pattern)\n const propertyDefaults = new Map<string, string>()\n\n root.walkAtRules('property', (rule: AtRule) => {\n const name = rule.params.trim()\n if (!name.startsWith('--')) return\n\n rule.walkDecls('initial-value', (decl) => {\n propertyDefaults.set(name, decl.value)\n })\n })\n\n // Pass 1: collect :root vars (top-level and inside @layer)\n // Skip :root inside @media — those are for dark mode and should stay.\n const rootVars = new Map<string, string>()\n\n root.walkRules((rule) => {\n if (!isRootRule(rule)) return\n\n // Allow :root at top level or inside @layer (Tailwind theme vars)\n // Skip :root inside @media or other non-layer at-rules\n if (rule.parent?.type !== 'root' && !isInLayer(rule)) return\n\n rule.each((node) => {\n if (node.type === 'decl' && node.prop.startsWith('--')) {\n rootVars.set(node.prop, node.value)\n }\n })\n })\n\n // Resolve :root vars referencing other :root vars\n if (rootVars.size > 0) {\n let changed = true\n let iterations = 5\n\n while (changed && iterations-- > 0) {\n changed = false\n for (const [name, value] of rootVars) {\n if (!value.includes('var(')) continue\n const resolved = resolveValue(value, rootVars, rootVars, propertyDefaults)\n if (resolved !== value) {\n rootVars.set(name, resolved)\n changed = true\n }\n }\n }\n }\n\n // Pass 2: resolve var() in all rules\n root.walkRules((rule) => {\n // Skip :root inside @media — those vars are for dark mode etc.\n // and must stay in the <style> tag as-is.\n // Allow :root at top level and inside @layer (processed in pass 3).\n if (isRootRule(rule)) {\n if (rule.parent?.type !== 'root' && !isInLayer(rule)) return\n }\n\n // Collect local --* declarations (walk into nested @media etc.)\n const localVars = new Map<string, string>()\n const localDecls: Declaration[] = []\n let hasVarRefs = false\n\n rule.walk((node) => {\n if (node.type !== 'decl') return\n\n if (node.prop.startsWith('--')) {\n localDecls.push(node)\n } else if (node.value.includes('var(')) {\n hasVarRefs = true\n }\n })\n\n // Skip rules with no var() references and no local vars to clean up\n if (!hasVarRefs && localDecls.length === 0) return\n\n // Build local vars map — resolve values that reference other locals or :root\n for (const decl of localDecls) {\n const value = decl.value.includes('var(')\n ? resolveValue(decl.value, localVars, rootVars, propertyDefaults)\n : decl.value\n\n localVars.set(decl.prop, value)\n }\n\n // Resolve var() in non-custom-property declarations (walk into nested @media etc.)\n if (hasVarRefs) {\n rule.walk((node) => {\n if (node.type !== 'decl') return\n if (node.prop.startsWith('--')) return\n if (!node.value.includes('var(')) return\n\n const resolved = resolveValue(node.value, localVars, rootVars, propertyDefaults)\n\n if (resolved !== node.value) {\n // Clean up: collapse whitespace, trim\n const cleaned = resolved.replace(/ +/g, ' ').trim()\n\n if (cleaned) {\n node.value = cleaned\n } else {\n // Value resolved to empty — remove the declaration\n node.remove()\n }\n }\n })\n }\n\n // Remove local --* declarations (consumed or no longer needed)\n for (const decl of localDecls) {\n decl.remove()\n }\n })\n\n // Remove @property rules (not supported in email clients)\n root.walkAtRules('property', (rule) => {\n rule.remove()\n })\n\n // Pass 3: clean up :root (same scope as pass 1)\n root.walkRules((rule) => {\n if (!isRootRule(rule)) return\n if (rule.parent?.type !== 'root' && !isInLayer(rule)) return\n\n rule.each((node) => {\n if (node.type === 'decl' && node.prop.startsWith('--')) {\n node.remove()\n }\n })\n\n if (rule.nodes?.length === 0) {\n rule.remove()\n }\n })\n },\n }\n}\n\nexport const postcss = true\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MaizzleConfig } from "../../types/config.
|
|
1
|
+
import { MaizzleConfig } from "../../types/config.js";
|
|
2
2
|
import postcss from "postcss";
|
|
3
3
|
|
|
4
4
|
//#region src/plugins/postcss/tailwindCleanup.d.ts
|
|
@@ -15,4 +15,4 @@ import postcss from "postcss";
|
|
|
15
15
|
declare function tailwindCleanup(config: MaizzleConfig): postcss.Plugin[];
|
|
16
16
|
//#endregion
|
|
17
17
|
export { tailwindCleanup };
|
|
18
|
-
//# sourceMappingURL=tailwindCleanup.d.
|
|
18
|
+
//# sourceMappingURL=tailwindCleanup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwindCleanup.d.ts","names":[],"sources":["../../../src/plugins/postcss/tailwindCleanup.ts"],"mappings":";;;;;;AA0CA;;;;;;;;iBAAgB,eAAA,CAAgB,MAAA,EAAQ,aAAA,GAAgB,OAAA,CAAQ,MAAA"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
//#region src/plugins/postcss/tailwindCleanup.ts
|
|
2
|
+
const DEFAULT_SELECTORS = [":host", ":lang"];
|
|
3
|
+
const DEFAULT_AT_RULES = ["layer", "property"];
|
|
4
|
+
/**
|
|
5
|
+
* Split a selector list on top-level commas only.
|
|
6
|
+
*
|
|
7
|
+
* Commas inside parenthesised groups like `:not(:is(:lang(ae), :lang(ar)))`
|
|
8
|
+
* are not treated as selector separators.
|
|
9
|
+
*/
|
|
10
|
+
function splitSelector(selector) {
|
|
11
|
+
const parts = [];
|
|
12
|
+
let depth = 0;
|
|
13
|
+
let start = 0;
|
|
14
|
+
for (let i = 0; i < selector.length; i++) {
|
|
15
|
+
const ch = selector[i];
|
|
16
|
+
if (ch === "(") depth++;
|
|
17
|
+
else if (ch === ")") depth--;
|
|
18
|
+
else if (ch === "," && depth === 0) {
|
|
19
|
+
parts.push(selector.slice(start, i).trim());
|
|
20
|
+
start = i + 1;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
parts.push(selector.slice(start).trim());
|
|
24
|
+
return parts.filter(Boolean);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Removes CSS rules whose every comma-separated selector part starts with
|
|
28
|
+
* one of the configured prefixes (e.g. ':host', ':lang'). Rules with mixed
|
|
29
|
+
* selectors have the unwanted parts stripped.
|
|
30
|
+
*
|
|
31
|
+
* Also removes entire at-rules by name (e.g. '@layer', '@property').
|
|
32
|
+
*
|
|
33
|
+
* Intended to clean up Tailwind's compiled output after lightningcss has
|
|
34
|
+
* flattened all modern CSS syntax.
|
|
35
|
+
*/
|
|
36
|
+
function tailwindCleanup(config) {
|
|
37
|
+
const selectors = config.postcss?.removeSelectors ?? DEFAULT_SELECTORS;
|
|
38
|
+
const atRules = config.postcss?.removeAtRules ?? DEFAULT_AT_RULES;
|
|
39
|
+
return [
|
|
40
|
+
{
|
|
41
|
+
postcssPlugin: "tailwind-cleanup-selectors",
|
|
42
|
+
Rule(rule) {
|
|
43
|
+
const parts = splitSelector(rule.selector);
|
|
44
|
+
const kept = parts.filter((p) => !selectors.some((s) => p === s || p.includes(`${s}(`)));
|
|
45
|
+
if (kept.length === 0) rule.remove();
|
|
46
|
+
else if (kept.length < parts.length) rule.selector = kept.join(", ");
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
postcssPlugin: "tailwind-cleanup-at-rules",
|
|
51
|
+
AtRule(rule) {
|
|
52
|
+
if (!atRules.includes(rule.name)) return;
|
|
53
|
+
if (rule.nodes?.length) rule.replaceWith(rule.nodes);
|
|
54
|
+
else rule.remove();
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
postcssPlugin: "tailwind-cleanup-text-decoration",
|
|
59
|
+
Declaration(decl) {
|
|
60
|
+
if (decl.prop === "text-decoration-line") decl.prop = "text-decoration";
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
];
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
export { tailwindCleanup };
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=tailwindCleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwindCleanup.js","names":[],"sources":["../../../src/plugins/postcss/tailwindCleanup.ts"],"sourcesContent":["import postcss from 'postcss'\nimport type { MaizzleConfig } from '../../types/config.ts'\n\nconst DEFAULT_SELECTORS = [':host', ':lang']\nconst DEFAULT_AT_RULES = ['layer', 'property']\n\n/**\n * Split a selector list on top-level commas only.\n *\n * Commas inside parenthesised groups like `:not(:is(:lang(ae), :lang(ar)))`\n * are not treated as selector separators.\n */\nfunction splitSelector(selector: string): string[] {\n const parts: string[] = []\n let depth = 0\n let start = 0\n\n for (let i = 0; i < selector.length; i++) {\n const ch = selector[i]\n if (ch === '(') depth++\n else if (ch === ')') depth--\n else if (ch === ',' && depth === 0) {\n parts.push(selector.slice(start, i).trim())\n start = i + 1\n }\n }\n\n parts.push(selector.slice(start).trim())\n\n return parts.filter(Boolean)\n}\n\n/**\n * Removes CSS rules whose every comma-separated selector part starts with\n * one of the configured prefixes (e.g. ':host', ':lang'). Rules with mixed\n * selectors have the unwanted parts stripped.\n *\n * Also removes entire at-rules by name (e.g. '@layer', '@property').\n *\n * Intended to clean up Tailwind's compiled output after lightningcss has\n * flattened all modern CSS syntax.\n */\nexport function tailwindCleanup(config: MaizzleConfig): postcss.Plugin[] {\n const selectors: string[] = config.postcss?.removeSelectors ?? DEFAULT_SELECTORS\n const atRules: string[] = config.postcss?.removeAtRules ?? DEFAULT_AT_RULES\n\n return [\n {\n postcssPlugin: 'tailwind-cleanup-selectors',\n Rule(rule) {\n const parts = splitSelector(rule.selector)\n const kept = parts.filter(p => !selectors.some(s => p === s || p.includes(`${s}(`)))\n if (kept.length === 0) {\n rule.remove()\n } else if (kept.length < parts.length) {\n rule.selector = kept.join(', ')\n }\n },\n },\n {\n postcssPlugin: 'tailwind-cleanup-at-rules',\n AtRule(rule) {\n if (!atRules.includes(rule.name)) return\n\n if (rule.nodes?.length) {\n // Unwrap: keep children, remove the at-rule wrapper\n rule.replaceWith(rule.nodes)\n } else {\n rule.remove()\n }\n },\n },\n {\n postcssPlugin: 'tailwind-cleanup-text-decoration',\n Declaration(decl) {\n if (decl.prop === 'text-decoration-line') {\n decl.prop = 'text-decoration'\n }\n },\n },\n ]\n}\n"],"mappings":";AAGA,MAAM,oBAAoB,CAAC,SAAS,QAAQ;AAC5C,MAAM,mBAAmB,CAAC,SAAS,WAAW;;;;;;;AAQ9C,SAAS,cAAc,UAA4B;CACjD,MAAM,QAAkB,EAAE;CAC1B,IAAI,QAAQ;CACZ,IAAI,QAAQ;CAEZ,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;EACxC,MAAM,KAAK,SAAS;EACpB,IAAI,OAAO,KAAK;OACX,IAAI,OAAO,KAAK;OAChB,IAAI,OAAO,OAAO,UAAU,GAAG;GAClC,MAAM,KAAK,SAAS,MAAM,OAAO,EAAE,CAAC,MAAM,CAAC;GAC3C,QAAQ,IAAI;;;CAIhB,MAAM,KAAK,SAAS,MAAM,MAAM,CAAC,MAAM,CAAC;CAExC,OAAO,MAAM,OAAO,QAAQ;;;;;;;;;;;;AAa9B,SAAgB,gBAAgB,QAAyC;CACvE,MAAM,YAAsB,OAAO,SAAS,mBAAmB;CAC/D,MAAM,UAAoB,OAAO,SAAS,iBAAiB;CAE3D,OAAO;EACL;GACE,eAAe;GACf,KAAK,MAAM;IACT,MAAM,QAAQ,cAAc,KAAK,SAAS;IAC1C,MAAM,OAAO,MAAM,QAAO,MAAK,CAAC,UAAU,MAAK,MAAK,MAAM,KAAK,EAAE,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;IACpF,IAAI,KAAK,WAAW,GAClB,KAAK,QAAQ;SACR,IAAI,KAAK,SAAS,MAAM,QAC7B,KAAK,WAAW,KAAK,KAAK,KAAK;;GAGpC;EACD;GACE,eAAe;GACf,OAAO,MAAM;IACX,IAAI,CAAC,QAAQ,SAAS,KAAK,KAAK,EAAE;IAElC,IAAI,KAAK,OAAO,QAEd,KAAK,YAAY,KAAK,MAAM;SAE5B,KAAK,QAAQ;;GAGlB;EACD;GACE,eAAe;GACf,YAAY,MAAM;IAChB,IAAI,KAAK,SAAS,wBAChB,KAAK,OAAO;;GAGjB;EACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/prepare.d.ts
|
|
2
|
+
interface PrepareOptions {
|
|
3
|
+
/** Path to a Maizzle config file. */
|
|
4
|
+
config?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Generate IDE type definitions in `.maizzle/`
|
|
8
|
+
* (`auto-imports.d.ts` and `components.d.ts`).
|
|
9
|
+
*
|
|
10
|
+
* Intended as a `postinstall` step so editors get autocompletion before the
|
|
11
|
+
* user runs `dev` or `build`. Spins up the renderer with `dts: true`, runs
|
|
12
|
+
* a trivial render to trigger the unplugin scans, then shuts down.
|
|
13
|
+
*/
|
|
14
|
+
declare function prepare(options?: PrepareOptions): Promise<void>;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { PrepareOptions, prepare };
|
|
17
|
+
//# sourceMappingURL=prepare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare.d.ts","names":[],"sources":["../src/prepare.ts"],"mappings":";UAOiB,cAAA;EAAA;EAEf,MAAA;AAAA;;;AAWF;;;;;;iBAAsB,OAAA,CAAQ,OAAA,GAAS,cAAA,GAAsB,OAAA"}
|
package/dist/prepare.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { resolveConfig } from "./config/index.js";
|
|
2
|
+
import { isLaravel } from "./utils/detect.js";
|
|
3
|
+
import { normalizeComponentSources } from "./utils/componentSources.js";
|
|
4
|
+
import { createRenderer } from "./render/createRenderer.js";
|
|
5
|
+
import { relative, resolve } from "node:path";
|
|
6
|
+
import ora from "ora";
|
|
7
|
+
//#region src/prepare.ts
|
|
8
|
+
/**
|
|
9
|
+
* Generate IDE type definitions in `.maizzle/`
|
|
10
|
+
* (`auto-imports.d.ts` and `components.d.ts`).
|
|
11
|
+
*
|
|
12
|
+
* Intended as a `postinstall` step so editors get autocompletion before the
|
|
13
|
+
* user runs `dev` or `build`. Spins up the renderer with `dts: true`, runs
|
|
14
|
+
* a trivial render to trigger the unplugin scans, then shuts down.
|
|
15
|
+
*/
|
|
16
|
+
async function prepare(options = {}) {
|
|
17
|
+
const spinner = ora({
|
|
18
|
+
text: "Generating types...",
|
|
19
|
+
spinner: "circleHalves"
|
|
20
|
+
}).start();
|
|
21
|
+
const config = await resolveConfig(options.config);
|
|
22
|
+
const renderer = await createRenderer({
|
|
23
|
+
dts: true,
|
|
24
|
+
markdown: config.markdown,
|
|
25
|
+
root: config.root,
|
|
26
|
+
componentDirs: normalizeComponentSources(config.components?.source, process.cwd()),
|
|
27
|
+
vite: config.vite
|
|
28
|
+
});
|
|
29
|
+
try {
|
|
30
|
+
await renderer.render("<template><div></div></template>", config);
|
|
31
|
+
} finally {
|
|
32
|
+
await renderer.close();
|
|
33
|
+
}
|
|
34
|
+
const dtsDir = isLaravel() ? resolve(process.cwd(), "resources/js/types/maizzle") : resolve(config.root, ".maizzle");
|
|
35
|
+
const displayPath = relative(process.cwd(), dtsDir) || dtsDir;
|
|
36
|
+
spinner.stopAndPersist({
|
|
37
|
+
symbol: "✅",
|
|
38
|
+
text: `Types generated in ${displayPath}`
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
export { prepare };
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=prepare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare.js","names":[],"sources":["../src/prepare.ts"],"sourcesContent":["import { relative, resolve } from 'node:path'\nimport ora from 'ora'\nimport { resolveConfig } from './config/index.ts'\nimport { createRenderer } from './render/createRenderer.ts'\nimport { isLaravel } from './utils/detect.ts'\nimport { normalizeComponentSources } from './utils/componentSources.ts'\n\nexport interface PrepareOptions {\n /** Path to a Maizzle config file. */\n config?: string\n}\n\n/**\n * Generate IDE type definitions in `.maizzle/`\n * (`auto-imports.d.ts` and `components.d.ts`).\n *\n * Intended as a `postinstall` step so editors get autocompletion before the\n * user runs `dev` or `build`. Spins up the renderer with `dts: true`, runs\n * a trivial render to trigger the unplugin scans, then shuts down.\n */\nexport async function prepare(options: PrepareOptions = {}): Promise<void> {\n const spinner = ora({ text: 'Generating types...', spinner: 'circleHalves' }).start()\n\n const config = await resolveConfig(options.config)\n\n const renderer = await createRenderer({\n dts: true,\n markdown: config.markdown,\n root: config.root,\n componentDirs: normalizeComponentSources(config.components?.source, process.cwd()),\n vite: config.vite,\n })\n\n try {\n await renderer.render('<template><div></div></template>', config)\n } finally {\n await renderer.close()\n }\n\n const dtsDir = isLaravel()\n ? resolve(process.cwd(), 'resources/js/types/maizzle')\n : resolve(config.root, '.maizzle')\n const displayPath = relative(process.cwd(), dtsDir) || dtsDir\n\n spinner.stopAndPersist({\n symbol: '✅',\n text: `Types generated in ${displayPath}`,\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;AAoBA,eAAsB,QAAQ,UAA0B,EAAE,EAAiB;CACzE,MAAM,UAAU,IAAI;EAAE,MAAM;EAAuB,SAAS;EAAgB,CAAC,CAAC,OAAO;CAErF,MAAM,SAAS,MAAM,cAAc,QAAQ,OAAO;CAElD,MAAM,WAAW,MAAM,eAAe;EACpC,KAAK;EACL,UAAU,OAAO;EACjB,MAAM,OAAO;EACb,eAAe,0BAA0B,OAAO,YAAY,QAAQ,QAAQ,KAAK,CAAC;EAClF,MAAM,OAAO;EACd,CAAC;CAEF,IAAI;EACF,MAAM,SAAS,OAAO,oCAAoC,OAAO;WACzD;EACR,MAAM,SAAS,OAAO;;CAGxB,MAAM,SAAS,WAAW,GACtB,QAAQ,QAAQ,KAAK,EAAE,6BAA6B,GACpD,QAAQ,OAAO,MAAM,WAAW;CACpC,MAAM,cAAc,SAAS,QAAQ,KAAK,EAAE,OAAO,IAAI;CAEvD,QAAQ,eAAe;EACrB,QAAQ;EACR,MAAM,sBAAsB;EAC7B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Renderer } from "./createRenderer.js";
|
|
2
|
+
|
|
3
|
+
//#region src/render/active.d.ts
|
|
4
|
+
declare function setActiveRenderer(renderer: Renderer | null): void;
|
|
5
|
+
declare function getActiveRenderer(): Renderer | null;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { getActiveRenderer, setActiveRenderer };
|
|
8
|
+
//# sourceMappingURL=active.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active.d.ts","names":[],"sources":["../../src/render/active.ts"],"mappings":";;;iBAIgB,iBAAA,CAAkB,QAAA,EAAU,QAAA;AAAA,iBAI5B,iBAAA,CAAA,GAAqB,QAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/render/active.ts
|
|
2
|
+
let activeRenderer = null;
|
|
3
|
+
function setActiveRenderer(renderer) {
|
|
4
|
+
activeRenderer = renderer;
|
|
5
|
+
}
|
|
6
|
+
function getActiveRenderer() {
|
|
7
|
+
return activeRenderer;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { getActiveRenderer, setActiveRenderer };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=active.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active.js","names":[],"sources":["../../src/render/active.ts"],"sourcesContent":["import type { Renderer } from './createRenderer.ts'\n\nlet activeRenderer: Renderer | null = null\n\nexport function setActiveRenderer(renderer: Renderer | null): void {\n activeRenderer = renderer\n}\n\nexport function getActiveRenderer(): Renderer | null {\n return activeRenderer\n}\n"],"mappings":";AAEA,IAAI,iBAAkC;AAEtC,SAAgB,kBAAkB,UAAiC;CACjE,iBAAiB;;AAGnB,SAAgB,oBAAqC;CACnD,OAAO"}
|