@maizzle/framework 6.0.0-rc.2 → 6.0.0-rc.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/bin/maizzle.mjs +1 -1
- package/dist/build.d.ts +20 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +163 -0
- package/dist/build.js.map +1 -0
- package/dist/components/Body.vue +128 -0
- package/dist/components/Button.vue +148 -52
- package/dist/components/CodeBlock.vue +69 -0
- package/dist/components/CodeInline.vue +49 -0
- package/dist/components/Column.vue +108 -0
- package/dist/components/Container.vue +123 -0
- package/dist/components/Font.vue +96 -0
- package/dist/components/Head.vue +30 -0
- package/dist/components/Heading.vue +28 -0
- package/dist/components/Hr.vue +33 -0
- package/dist/components/Html.vue +137 -0
- package/dist/components/Img.vue +70 -0
- package/dist/components/Layout.vue +143 -0
- package/dist/components/Link.vue +26 -0
- package/dist/components/Markdown.vue +89 -0
- package/dist/components/MarkdownLayout.vue +39 -0
- package/dist/components/NotPlaintext.vue +14 -0
- package/dist/components/Outlook.vue +74 -11
- package/dist/components/OutlookBg.vue +241 -0
- package/dist/components/Overlap.vue +156 -0
- package/dist/components/Plaintext.vue +14 -0
- package/dist/components/Preheader.vue +15 -0
- package/dist/components/QrCode.vue +157 -0
- package/dist/components/Raw.vue +28 -0
- package/dist/components/Row.vue +184 -0
- package/dist/components/Section.vue +124 -0
- package/dist/components/Spacer.vue +70 -21
- package/dist/components/Tailwind.vue +43 -0
- package/dist/components/Text.vue +29 -0
- package/dist/components/utils.d.ts +28 -0
- package/dist/components/utils.d.ts.map +1 -0
- package/dist/components/utils.js +50 -0
- package/dist/components/utils.js.map +1 -0
- package/dist/components/utils.ts +51 -0
- package/dist/composables/{defineConfig.d.mts → defineConfig.d.ts} +2 -2
- package/dist/composables/defineConfig.d.ts.map +1 -0
- package/dist/composables/{defineConfig.mjs → defineConfig.js} +4 -5
- package/dist/composables/defineConfig.js.map +1 -0
- package/dist/composables/renderContext.d.ts +37 -0
- package/dist/composables/renderContext.d.ts.map +1 -0
- package/dist/composables/{renderContext.mjs → renderContext.js} +2 -2
- package/dist/composables/renderContext.js.map +1 -0
- package/dist/composables/useBaseUrl.d.ts +19 -0
- package/dist/composables/useBaseUrl.d.ts.map +1 -0
- package/dist/composables/useBaseUrl.js +26 -0
- package/dist/composables/useBaseUrl.js.map +1 -0
- package/dist/composables/{useConfig.d.mts → useConfig.d.ts} +2 -2
- package/dist/composables/useConfig.d.ts.map +1 -0
- package/dist/composables/{useConfig.mjs → useConfig.js} +2 -3
- package/dist/composables/useConfig.js.map +1 -0
- package/dist/composables/useCurrentTemplate.d.ts +31 -0
- package/dist/composables/useCurrentTemplate.d.ts.map +1 -0
- package/dist/composables/useCurrentTemplate.js +35 -0
- package/dist/composables/useCurrentTemplate.js.map +1 -0
- package/dist/composables/{useDoctype.d.mts → useDoctype.d.ts} +1 -1
- package/dist/composables/useDoctype.d.ts.map +1 -0
- package/dist/composables/{useDoctype.mjs → useDoctype.js} +3 -4
- package/dist/composables/useDoctype.js.map +1 -0
- package/dist/composables/{useEvent.d.mts → useEvent.d.ts} +3 -3
- package/dist/composables/useEvent.d.ts.map +1 -0
- package/dist/composables/{useEvent.mjs → useEvent.js} +4 -5
- package/dist/composables/useEvent.js.map +1 -0
- package/dist/composables/useFont.d.ts +50 -0
- package/dist/composables/useFont.d.ts.map +1 -0
- package/dist/composables/useFont.js +92 -0
- package/dist/composables/useFont.js.map +1 -0
- package/dist/composables/useOutlookFallback.d.ts +21 -0
- package/dist/composables/useOutlookFallback.d.ts.map +1 -0
- package/dist/composables/useOutlookFallback.js +29 -0
- package/dist/composables/useOutlookFallback.js.map +1 -0
- package/dist/composables/{usePlaintext.d.mts → usePlaintext.d.ts} +3 -1
- package/dist/composables/usePlaintext.d.ts.map +1 -0
- package/dist/composables/{usePlaintext.mjs → usePlaintext.js} +4 -4
- package/dist/composables/usePlaintext.js.map +1 -0
- package/dist/composables/usePreheader.d.ts +24 -0
- package/dist/composables/usePreheader.d.ts.map +1 -0
- package/dist/composables/usePreheader.js +28 -0
- package/dist/composables/usePreheader.js.map +1 -0
- package/dist/composables/useTransformers.d.ts +34 -0
- package/dist/composables/useTransformers.d.ts.map +1 -0
- package/dist/composables/useTransformers.js +48 -0
- package/dist/composables/useTransformers.js.map +1 -0
- package/dist/composables/useUrlQuery.d.ts +19 -0
- package/dist/composables/useUrlQuery.d.ts.map +1 -0
- package/dist/composables/useUrlQuery.js +26 -0
- package/dist/composables/useUrlQuery.js.map +1 -0
- package/dist/config/{defaults.d.mts → defaults.d.ts} +2 -2
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/{defaults.mjs → defaults.js} +10 -6
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/{index.d.mts → index.d.ts} +4 -4
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/{index.mjs → index.js} +12 -10
- package/dist/config/index.js.map +1 -0
- package/dist/events/{index.d.mts → index.d.ts} +30 -12
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/{index.mjs → index.js} +26 -13
- package/dist/events/index.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.js +38 -0
- package/dist/{plaintext.d.mts → plaintext.d.ts} +1 -1
- package/dist/plaintext.d.ts.map +1 -0
- package/dist/{plaintext.mjs → plaintext.js} +4 -5
- package/dist/plaintext.js.map +1 -0
- package/dist/{plugin.d.mts → plugin.d.ts} +2 -2
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +57 -0
- package/dist/plugin.js.map +1 -0
- package/dist/plugins/postcss/{mergeMediaQueries.d.mts → mergeMediaQueries.d.ts} +2 -2
- package/dist/plugins/postcss/mergeMediaQueries.d.ts.map +1 -0
- package/dist/plugins/postcss/{mergeMediaQueries.mjs → mergeMediaQueries.js} +2 -3
- package/dist/plugins/postcss/mergeMediaQueries.js.map +1 -0
- package/dist/plugins/postcss/{pruneVars.d.mts → pruneVars.d.ts} +1 -1
- package/dist/plugins/postcss/pruneVars.d.ts.map +1 -0
- package/dist/plugins/postcss/{pruneVars.mjs → pruneVars.js} +2 -2
- package/dist/plugins/postcss/pruneVars.js.map +1 -0
- package/dist/plugins/postcss/quoteFontFamilies.d.ts +13 -0
- package/dist/plugins/postcss/quoteFontFamilies.d.ts.map +1 -0
- package/dist/plugins/postcss/quoteFontFamilies.js +84 -0
- package/dist/plugins/postcss/quoteFontFamilies.js.map +1 -0
- package/dist/plugins/postcss/{removeDeclarations.d.mts → removeDeclarations.d.ts} +1 -1
- package/dist/plugins/postcss/removeDeclarations.d.ts.map +1 -0
- package/dist/plugins/postcss/{removeDeclarations.mjs → removeDeclarations.js} +2 -2
- package/dist/plugins/postcss/removeDeclarations.js.map +1 -0
- package/dist/plugins/postcss/resolveMaizzleImports.d.ts +16 -0
- package/dist/plugins/postcss/resolveMaizzleImports.d.ts.map +1 -0
- package/dist/plugins/postcss/resolveMaizzleImports.js +39 -0
- package/dist/plugins/postcss/resolveMaizzleImports.js.map +1 -0
- package/dist/plugins/postcss/resolveProps.d.ts +8 -0
- package/dist/plugins/postcss/resolveProps.d.ts.map +1 -0
- package/dist/plugins/postcss/resolveProps.js +144 -0
- package/dist/plugins/postcss/resolveProps.js.map +1 -0
- package/dist/plugins/postcss/{tailwindCleanup.d.mts → tailwindCleanup.d.ts} +2 -2
- package/dist/plugins/postcss/tailwindCleanup.d.ts.map +1 -0
- package/dist/plugins/postcss/tailwindCleanup.js +68 -0
- package/dist/plugins/postcss/tailwindCleanup.js.map +1 -0
- package/dist/prepare.d.ts +17 -0
- package/dist/prepare.d.ts.map +1 -0
- package/dist/prepare.js +44 -0
- package/dist/prepare.js.map +1 -0
- package/dist/render/active.d.ts +8 -0
- package/dist/render/active.d.ts.map +1 -0
- package/dist/render/active.js +12 -0
- package/dist/render/active.js.map +1 -0
- package/dist/render/{createRenderer.d.mts → createRenderer.d.ts} +15 -7
- package/dist/render/createRenderer.d.ts.map +1 -0
- package/dist/render/createRenderer.js +320 -0
- package/dist/render/createRenderer.js.map +1 -0
- package/dist/render/index.d.ts +18 -0
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +53 -0
- package/dist/render/index.js.map +1 -0
- package/dist/render/injectFonts.d.ts +15 -0
- package/dist/render/injectFonts.d.ts.map +1 -0
- package/dist/render/injectFonts.js +45 -0
- package/dist/render/injectFonts.js.map +1 -0
- package/dist/render/plugins/codeBlockExtract.d.ts +14 -0
- package/dist/render/plugins/codeBlockExtract.d.ts.map +1 -0
- package/dist/render/plugins/codeBlockExtract.js +34 -0
- package/dist/render/plugins/codeBlockExtract.js.map +1 -0
- package/dist/render/plugins/markdownExtract.d.ts +12 -0
- package/dist/render/plugins/markdownExtract.d.ts.map +1 -0
- package/dist/render/plugins/markdownExtract.js +49 -0
- package/dist/render/plugins/markdownExtract.js.map +1 -0
- package/dist/render/plugins/rawExtract.d.ts +14 -0
- package/dist/render/plugins/rawExtract.d.ts.map +1 -0
- package/dist/render/plugins/rawExtract.js +34 -0
- package/dist/render/plugins/rawExtract.js.map +1 -0
- package/dist/render/plugins/rowSourceLocation.d.ts +18 -0
- package/dist/render/plugins/rowSourceLocation.d.ts.map +1 -0
- package/dist/render/plugins/rowSourceLocation.js +45 -0
- package/dist/render/plugins/rowSourceLocation.js.map +1 -0
- package/dist/{serve.d.mts → serve.d.ts} +4 -2
- package/dist/serve.d.ts.map +1 -0
- package/dist/{serve.mjs → serve.js} +203 -78
- package/dist/serve.js.map +1 -0
- package/dist/server/compatibility.d.ts +59 -0
- package/dist/server/compatibility.d.ts.map +1 -0
- package/dist/server/compatibility.js +911 -0
- package/dist/server/compatibility.js.map +1 -0
- package/dist/server/email.d.ts +17 -0
- package/dist/server/email.d.ts.map +1 -0
- package/dist/server/email.js +40 -0
- package/dist/server/email.js.map +1 -0
- package/dist/server/linter.d.ts +20 -0
- package/dist/server/linter.d.ts.map +1 -0
- package/dist/server/linter.js +339 -0
- package/dist/server/linter.js.map +1 -0
- package/dist/server/sfc-utils.d.ts +21 -0
- package/dist/server/sfc-utils.d.ts.map +1 -0
- package/dist/server/sfc-utils.js +198 -0
- package/dist/server/sfc-utils.js.map +1 -0
- package/dist/server/ui/App.vue +253 -77
- package/dist/server/ui/components/SidebarClose.vue +12 -0
- package/dist/server/ui/components/ui/checkbox/Checkbox.vue +35 -0
- package/dist/server/ui/components/ui/checkbox/index.ts +1 -0
- package/dist/server/ui/components/ui/command/Command.vue +5 -1
- package/dist/server/ui/components/ui/command/CommandDialog.vue +1 -1
- package/dist/server/ui/components/ui/command/CommandInput.vue +19 -1
- package/dist/server/ui/components/ui/command/CommandItem.vue +1 -1
- package/dist/server/ui/components/ui/command/CommandList.vue +1 -1
- package/dist/server/ui/components/ui/command/CommandShortcut.vue +1 -1
- package/dist/server/ui/components/ui/dialog/DialogOverlay.vue +9 -1
- package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuItem.vue +1 -1
- package/dist/server/ui/components/ui/input/Input.vue +1 -1
- package/dist/server/ui/components/ui/scroll-area/ScrollBar.vue +1 -1
- package/dist/server/ui/components/ui/sheet/SheetContent.vue +1 -1
- package/dist/server/ui/components/ui/sheet/SheetOverlay.vue +9 -1
- package/dist/server/ui/components/ui/sidebar/Sidebar.vue +8 -1
- package/dist/server/ui/components/ui/sidebar/SidebarProvider.vue +1 -1
- package/dist/server/ui/components/ui/sidebar/SidebarTrigger.vue +5 -4
- package/dist/server/ui/components/ui/tags-input/TagsInput.vue +26 -0
- package/dist/server/ui/components/ui/tags-input/TagsInputInput.vue +17 -0
- package/dist/server/ui/components/ui/tags-input/TagsInputItem.vue +19 -0
- package/dist/server/ui/components/ui/tags-input/TagsInputItemDelete.vue +22 -0
- package/dist/server/ui/components/ui/tags-input/TagsInputItemText.vue +17 -0
- package/dist/server/ui/components/ui/tags-input/index.ts +5 -0
- package/dist/server/ui/components/ui/toggle/index.ts +3 -3
- package/dist/server/ui/components/ui/toggle-group/ToggleGroup.vue +1 -1
- package/dist/server/ui/components/ui/toggle-group/ToggleGroupItem.vue +2 -2
- package/dist/server/ui/lib/emulated-dark-mode.ts +131 -0
- package/dist/server/ui/main.css +20 -20
- package/dist/server/ui/pages/Home.vue +12 -5
- package/dist/server/ui/pages/Preview.vue +716 -276
- package/dist/tests/render/_helpers.d.ts +6 -0
- package/dist/tests/render/_helpers.d.ts.map +1 -0
- package/dist/tests/render/_helpers.js +16 -0
- package/dist/tests/render/_helpers.js.map +1 -0
- package/dist/transformers/{addAttributes.d.mts → addAttributes.d.ts} +2 -2
- package/dist/transformers/addAttributes.d.ts.map +1 -0
- package/dist/transformers/{addAttributes.mjs → addAttributes.js} +16 -13
- package/dist/transformers/addAttributes.js.map +1 -0
- package/dist/transformers/attributeToStyle.d.ts +38 -0
- package/dist/transformers/attributeToStyle.d.ts.map +1 -0
- package/dist/transformers/attributeToStyle.js +94 -0
- package/dist/transformers/attributeToStyle.js.map +1 -0
- package/dist/transformers/base.d.ts +71 -0
- package/dist/transformers/base.d.ts.map +1 -0
- package/dist/transformers/{base.mjs → base.js} +56 -30
- package/dist/transformers/base.js.map +1 -0
- package/dist/transformers/columnWidth.d.ts +31 -0
- package/dist/transformers/columnWidth.d.ts.map +1 -0
- package/dist/transformers/columnWidth.js +546 -0
- package/dist/transformers/columnWidth.js.map +1 -0
- package/dist/transformers/entities.d.ts +37 -0
- package/dist/transformers/entities.d.ts.map +1 -0
- package/dist/transformers/entities.js +73 -0
- package/dist/transformers/entities.js.map +1 -0
- package/dist/transformers/filters/defaults.d.ts +6 -0
- package/dist/transformers/filters/defaults.d.ts.map +1 -0
- package/dist/transformers/filters/defaults.js +78 -0
- package/dist/transformers/filters/defaults.js.map +1 -0
- package/dist/transformers/filters/index.d.ts +43 -0
- package/dist/transformers/filters/index.d.ts.map +1 -0
- package/dist/transformers/filters/index.js +89 -0
- package/dist/transformers/filters/index.js.map +1 -0
- package/dist/transformers/format.d.ts +22 -0
- package/dist/transformers/format.d.ts.map +1 -0
- package/dist/transformers/format.js +30 -0
- package/dist/transformers/format.js.map +1 -0
- package/dist/transformers/{index.d.mts → index.d.ts} +14 -11
- package/dist/transformers/index.d.ts.map +1 -0
- package/dist/transformers/index.js +133 -0
- package/dist/transformers/index.js.map +1 -0
- package/dist/transformers/inlineCss.d.ts +84 -0
- package/dist/transformers/inlineCss.d.ts.map +1 -0
- package/dist/transformers/inlineCss.js +91 -0
- package/dist/transformers/inlineCss.js.map +1 -0
- package/dist/transformers/inlineLink.d.ts +35 -0
- package/dist/transformers/inlineLink.d.ts.map +1 -0
- package/dist/transformers/{inlineLink.mjs → inlineLink.js} +34 -10
- package/dist/transformers/inlineLink.js.map +1 -0
- package/dist/transformers/minify.d.ts +21 -0
- package/dist/transformers/minify.d.ts.map +1 -0
- package/dist/transformers/minify.js +25 -0
- package/dist/transformers/minify.js.map +1 -0
- package/dist/transformers/msoPlaceholders.d.ts +28 -0
- package/dist/transformers/msoPlaceholders.d.ts.map +1 -0
- package/dist/transformers/msoPlaceholders.js +88 -0
- package/dist/transformers/msoPlaceholders.js.map +1 -0
- package/dist/transformers/purgeCss.d.ts +43 -0
- package/dist/transformers/purgeCss.d.ts.map +1 -0
- package/dist/transformers/purgeCss.js +181 -0
- package/dist/transformers/purgeCss.js.map +1 -0
- package/dist/transformers/removeAttributes.d.ts +54 -0
- package/dist/transformers/removeAttributes.d.ts.map +1 -0
- package/dist/transformers/removeAttributes.js +70 -0
- package/dist/transformers/removeAttributes.js.map +1 -0
- package/dist/transformers/{replaceStrings.d.mts → replaceStrings.d.ts} +2 -2
- package/dist/transformers/replaceStrings.d.ts.map +1 -0
- package/dist/transformers/{replaceStrings.mjs → replaceStrings.js} +2 -2
- package/dist/transformers/replaceStrings.js.map +1 -0
- package/dist/transformers/{safeClassNames.d.mts → safeClassNames.d.ts} +2 -2
- package/dist/transformers/safeClassNames.d.ts.map +1 -0
- package/dist/transformers/{safeClassNames.mjs → safeClassNames.js} +4 -5
- package/dist/transformers/safeClassNames.js.map +1 -0
- package/dist/transformers/shorthandCss.d.ts +47 -0
- package/dist/transformers/shorthandCss.d.ts.map +1 -0
- package/dist/transformers/shorthandCss.js +61 -0
- package/dist/transformers/shorthandCss.js.map +1 -0
- package/dist/transformers/sixHex.d.ts +25 -0
- package/dist/transformers/sixHex.d.ts.map +1 -0
- package/dist/transformers/sixHex.js +42 -0
- package/dist/transformers/sixHex.js.map +1 -0
- package/dist/transformers/tailwindComponent.d.ts +16 -0
- package/dist/transformers/tailwindComponent.d.ts.map +1 -0
- package/dist/transformers/tailwindComponent.js +92 -0
- package/dist/transformers/tailwindComponent.js.map +1 -0
- package/dist/transformers/{tailwindcss.d.mts → tailwindcss.d.ts} +8 -4
- package/dist/transformers/tailwindcss.d.ts.map +1 -0
- package/dist/transformers/tailwindcss.js +97 -0
- package/dist/transformers/tailwindcss.js.map +1 -0
- package/dist/transformers/urlQuery.d.ts +36 -0
- package/dist/transformers/urlQuery.d.ts.map +1 -0
- package/dist/transformers/urlQuery.js +77 -0
- package/dist/transformers/urlQuery.js.map +1 -0
- package/dist/types/config.d.ts +737 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +1 -0
- package/dist/utils/ast/index.d.ts +4 -0
- package/dist/utils/ast/index.js +4 -0
- package/dist/utils/ast/{parser.d.mts → parser.d.ts} +1 -1
- package/dist/utils/ast/parser.d.ts.map +1 -0
- package/dist/utils/ast/{parser.mjs → parser.js} +2 -3
- package/dist/utils/ast/parser.js.map +1 -0
- package/dist/utils/ast/serializer.d.ts +8 -0
- package/dist/utils/ast/serializer.d.ts.map +1 -0
- package/dist/utils/ast/serializer.js +36 -0
- package/dist/utils/ast/serializer.js.map +1 -0
- package/dist/utils/ast/{walker.d.mts → walker.d.ts} +1 -1
- package/dist/utils/ast/walker.d.ts.map +1 -0
- package/dist/utils/ast/{walker.mjs → walker.js} +2 -2
- package/dist/utils/ast/walker.js.map +1 -0
- package/dist/utils/compileTailwindCss.d.ts +16 -0
- package/dist/utils/compileTailwindCss.d.ts.map +1 -0
- package/dist/utils/compileTailwindCss.js +54 -0
- package/dist/utils/compileTailwindCss.js.map +1 -0
- package/dist/utils/componentSources.d.ts +50 -0
- package/dist/utils/componentSources.d.ts.map +1 -0
- package/dist/utils/componentSources.js +50 -0
- package/dist/utils/componentSources.js.map +1 -0
- package/dist/utils/decodeStyleEntities.d.ts +15 -0
- package/dist/utils/decodeStyleEntities.d.ts.map +1 -0
- package/dist/utils/decodeStyleEntities.js +18 -0
- package/dist/utils/decodeStyleEntities.js.map +1 -0
- package/dist/utils/detect.d.ts +5 -0
- package/dist/utils/detect.d.ts.map +1 -0
- package/dist/utils/detect.js +10 -0
- package/dist/utils/detect.js.map +1 -0
- package/dist/utils/output-markers.d.ts +29 -0
- package/dist/utils/output-markers.d.ts.map +1 -0
- package/dist/utils/output-markers.js +68 -0
- package/dist/utils/output-markers.js.map +1 -0
- package/dist/utils/{url.d.mts → url.d.ts} +1 -1
- package/dist/utils/url.d.ts.map +1 -0
- package/dist/utils/{url.mjs → url.js} +2 -3
- package/dist/utils/url.js.map +1 -0
- package/dist/utils/watchPaths.d.ts +11 -0
- package/dist/utils/watchPaths.d.ts.map +1 -0
- package/dist/utils/watchPaths.js +19 -0
- package/dist/utils/watchPaths.js.map +1 -0
- package/node_modules/@clack/core/CHANGELOG.md +8 -0
- package/node_modules/@clack/core/dist/index.d.mts +18 -4
- package/node_modules/@clack/core/dist/index.mjs +16 -10
- package/node_modules/@clack/core/dist/index.mjs.map +1 -1
- package/node_modules/@clack/core/package.json +5 -2
- package/node_modules/@clack/prompts/CHANGELOG.md +15 -0
- package/node_modules/@clack/prompts/README.md +107 -2
- package/node_modules/@clack/prompts/dist/index.d.mts +16 -11
- package/node_modules/@clack/prompts/dist/index.mjs +114 -107
- package/node_modules/@clack/prompts/dist/index.mjs.map +1 -1
- package/node_modules/@clack/prompts/package.json +7 -4
- package/node_modules/fast-string-truncated-width/dist/index.js +36 -96
- package/node_modules/fast-string-truncated-width/dist/types.d.ts +0 -3
- package/node_modules/fast-string-truncated-width/dist/utils.d.ts +3 -3
- package/node_modules/fast-string-truncated-width/dist/utils.js +14 -9
- package/node_modules/fast-string-truncated-width/package.json +1 -1
- package/node_modules/fast-string-truncated-width/readme.md +2 -3
- package/node_modules/fast-string-width/package.json +2 -2
- package/node_modules/fast-string-width/readme.md +0 -3
- package/node_modules/fast-wrap-ansi/lib/main.js +4 -1
- package/node_modules/fast-wrap-ansi/lib/main.js.map +1 -1
- package/node_modules/fast-wrap-ansi/package.json +2 -2
- package/node_modules/maizzle/README.md +24 -0
- package/node_modules/maizzle/dist/commands/make/component.mjs +1 -1
- package/node_modules/maizzle/dist/commands/make/config.mjs +1 -1
- package/node_modules/maizzle/dist/commands/make/layout.mjs +3 -3
- package/node_modules/maizzle/dist/commands/make/scaffold.mjs +1 -1
- package/node_modules/maizzle/dist/commands/make/stubs/Layout.vue +146 -0
- package/node_modules/maizzle/dist/commands/make/stubs/component.vue +2 -4
- package/node_modules/maizzle/dist/commands/make/stubs/config.ts +1 -5
- package/node_modules/maizzle/dist/commands/make/template.mjs +1 -1
- package/node_modules/maizzle/dist/commands/new.mjs +32 -52
- package/node_modules/maizzle/dist/index.d.mts +1 -0
- package/node_modules/maizzle/dist/index.mjs +30 -7
- package/node_modules/maizzle/package.json +4 -3
- package/node_modules/nypm/dist/cli.mjs +28 -5
- package/node_modules/nypm/dist/index.d.mts +0 -8
- package/node_modules/nypm/dist/index.mjs +27 -4
- package/node_modules/nypm/package.json +12 -12
- package/node_modules/tinyexec/README.md +1 -1
- package/node_modules/tinyexec/dist/main.d.mts +6 -6
- package/node_modules/tinyexec/dist/main.mjs +126 -134
- package/node_modules/tinyexec/package.json +9 -9
- package/package.json +31 -21
- package/dist/build.d.mts +0 -19
- package/dist/build.d.mts.map +0 -1
- package/dist/build.mjs +0 -139
- package/dist/build.mjs.map +0 -1
- package/dist/components/Divider.vue +0 -105
- package/dist/components/Vml.vue +0 -89
- package/dist/components/utils.d.mts +0 -5
- package/dist/components/utils.d.mts.map +0 -1
- package/dist/components/utils.mjs +0 -9
- package/dist/components/utils.mjs.map +0 -1
- package/dist/composables/defineConfig.d.mts.map +0 -1
- package/dist/composables/defineConfig.mjs.map +0 -1
- package/dist/composables/renderContext.d.mts +0 -19
- package/dist/composables/renderContext.d.mts.map +0 -1
- package/dist/composables/renderContext.mjs.map +0 -1
- package/dist/composables/useConfig.d.mts.map +0 -1
- package/dist/composables/useConfig.mjs.map +0 -1
- package/dist/composables/useDoctype.d.mts.map +0 -1
- package/dist/composables/useDoctype.mjs.map +0 -1
- package/dist/composables/useEvent.d.mts.map +0 -1
- package/dist/composables/useEvent.mjs.map +0 -1
- package/dist/composables/usePlaintext.d.mts.map +0 -1
- package/dist/composables/usePlaintext.mjs.map +0 -1
- package/dist/config/defaults.d.mts.map +0 -1
- package/dist/config/defaults.mjs.map +0 -1
- package/dist/config/index.d.mts.map +0 -1
- package/dist/config/index.mjs.map +0 -1
- package/dist/events/index.d.mts.map +0 -1
- package/dist/events/index.mjs.map +0 -1
- package/dist/index.d.mts +0 -29
- package/dist/index.mjs +0 -29
- package/dist/plaintext.d.mts.map +0 -1
- package/dist/plaintext.mjs.map +0 -1
- package/dist/plugin.d.mts.map +0 -1
- package/dist/plugin.mjs +0 -41
- package/dist/plugin.mjs.map +0 -1
- package/dist/plugins/postcss/mergeMediaQueries.d.mts.map +0 -1
- package/dist/plugins/postcss/mergeMediaQueries.mjs.map +0 -1
- package/dist/plugins/postcss/pruneVars.d.mts.map +0 -1
- package/dist/plugins/postcss/pruneVars.mjs.map +0 -1
- package/dist/plugins/postcss/removeDeclarations.d.mts.map +0 -1
- package/dist/plugins/postcss/removeDeclarations.mjs.map +0 -1
- package/dist/plugins/postcss/tailwindCleanup.d.mts.map +0 -1
- package/dist/plugins/postcss/tailwindCleanup.mjs +0 -35
- package/dist/plugins/postcss/tailwindCleanup.mjs.map +0 -1
- package/dist/render/createRenderer.d.mts.map +0 -1
- package/dist/render/createRenderer.mjs +0 -155
- package/dist/render/createRenderer.mjs.map +0 -1
- package/dist/render/index.d.mts +0 -26
- package/dist/render/index.d.mts.map +0 -1
- package/dist/render/index.mjs +0 -44
- package/dist/render/index.mjs.map +0 -1
- package/dist/serve.d.mts.map +0 -1
- package/dist/serve.mjs.map +0 -1
- package/dist/server/compatibility.d.mts +0 -6
- package/dist/server/compatibility.d.mts.map +0 -1
- package/dist/server/compatibility.mjs +0 -83
- package/dist/server/compatibility.mjs.map +0 -1
- package/dist/server/linter.d.mts +0 -6
- package/dist/server/linter.d.mts.map +0 -1
- package/dist/server/linter.mjs +0 -200
- package/dist/server/linter.mjs.map +0 -1
- package/dist/server/ui/components/ui/resizable/ResizableHandle.vue +0 -30
- package/dist/server/ui/components/ui/resizable/ResizablePanel.vue +0 -21
- package/dist/server/ui/components/ui/resizable/ResizablePanelGroup.vue +0 -25
- package/dist/server/ui/components/ui/resizable/index.ts +0 -3
- package/dist/transformers/addAttributes.d.mts.map +0 -1
- package/dist/transformers/addAttributes.mjs.map +0 -1
- package/dist/transformers/attributeToStyle.d.mts +0 -25
- package/dist/transformers/attributeToStyle.d.mts.map +0 -1
- package/dist/transformers/attributeToStyle.mjs +0 -80
- package/dist/transformers/attributeToStyle.mjs.map +0 -1
- package/dist/transformers/base.d.mts +0 -8
- package/dist/transformers/base.d.mts.map +0 -1
- package/dist/transformers/base.mjs.map +0 -1
- package/dist/transformers/entities.d.mts +0 -8
- package/dist/transformers/entities.d.mts.map +0 -1
- package/dist/transformers/entities.mjs +0 -38
- package/dist/transformers/entities.mjs.map +0 -1
- package/dist/transformers/format.d.mts +0 -15
- package/dist/transformers/format.d.mts.map +0 -1
- package/dist/transformers/format.mjs +0 -26
- package/dist/transformers/format.mjs.map +0 -1
- package/dist/transformers/index.d.mts.map +0 -1
- package/dist/transformers/index.mjs +0 -73
- package/dist/transformers/index.mjs.map +0 -1
- package/dist/transformers/inlineCSS.d.mts +0 -30
- package/dist/transformers/inlineCSS.d.mts.map +0 -1
- package/dist/transformers/inlineCSS.mjs +0 -79
- package/dist/transformers/inlineCSS.mjs.map +0 -1
- package/dist/transformers/inlineLink.d.mts +0 -14
- package/dist/transformers/inlineLink.d.mts.map +0 -1
- package/dist/transformers/inlineLink.mjs.map +0 -1
- package/dist/transformers/minify.d.mts +0 -17
- package/dist/transformers/minify.d.mts.map +0 -1
- package/dist/transformers/minify.mjs +0 -24
- package/dist/transformers/minify.mjs.map +0 -1
- package/dist/transformers/purgeCSS.d.mts +0 -23
- package/dist/transformers/purgeCSS.d.mts.map +0 -1
- package/dist/transformers/purgeCSS.mjs +0 -66
- package/dist/transformers/purgeCSS.mjs.map +0 -1
- package/dist/transformers/removeAttributes.d.mts +0 -31
- package/dist/transformers/removeAttributes.d.mts.map +0 -1
- package/dist/transformers/removeAttributes.mjs +0 -63
- package/dist/transformers/removeAttributes.mjs.map +0 -1
- package/dist/transformers/replaceStrings.d.mts.map +0 -1
- package/dist/transformers/replaceStrings.mjs.map +0 -1
- package/dist/transformers/safeClassNames.d.mts.map +0 -1
- package/dist/transformers/safeClassNames.mjs.map +0 -1
- package/dist/transformers/shorthandCSS.d.mts +0 -24
- package/dist/transformers/shorthandCSS.d.mts.map +0 -1
- package/dist/transformers/shorthandCSS.mjs +0 -48
- package/dist/transformers/shorthandCSS.mjs.map +0 -1
- package/dist/transformers/tailwindcss.d.mts.map +0 -1
- package/dist/transformers/tailwindcss.mjs +0 -136
- package/dist/transformers/tailwindcss.mjs.map +0 -1
- package/dist/transformers/urlQuery.d.mts +0 -24
- package/dist/transformers/urlQuery.d.mts.map +0 -1
- package/dist/transformers/urlQuery.mjs +0 -65
- package/dist/transformers/urlQuery.mjs.map +0 -1
- package/dist/types/config.d.mts +0 -149
- package/dist/types/config.d.mts.map +0 -1
- package/dist/types/config.mjs +0 -1
- package/dist/types/index.d.mts +0 -2
- package/dist/types/index.mjs +0 -1
- package/dist/utils/ast/index.d.mts +0 -4
- package/dist/utils/ast/index.mjs +0 -5
- package/dist/utils/ast/parser.d.mts.map +0 -1
- package/dist/utils/ast/parser.mjs.map +0 -1
- package/dist/utils/ast/serializer.d.mts +0 -7
- package/dist/utils/ast/serializer.d.mts.map +0 -1
- package/dist/utils/ast/serializer.mjs +0 -13
- package/dist/utils/ast/serializer.mjs.map +0 -1
- package/dist/utils/ast/walker.d.mts.map +0 -1
- package/dist/utils/ast/walker.mjs.map +0 -1
- package/dist/utils/url.d.mts.map +0 -1
- package/dist/utils/url.mjs.map +0 -1
- package/node_modules/maizzle/dist/commands/make/stubs/layout.vue +0 -39
|
@@ -4,18 +4,26 @@ import type { HTMLAttributes } from "vue"
|
|
|
4
4
|
import { reactiveOmit } from "@vueuse/core"
|
|
5
5
|
import { DialogOverlay } from "reka-ui"
|
|
6
6
|
import { cn } from "@/lib/utils"
|
|
7
|
+
import stripesUrl from '@/stripes.svg'
|
|
7
8
|
|
|
8
9
|
const props = defineProps<DialogOverlayProps & { class?: HTMLAttributes["class"] }>()
|
|
9
10
|
|
|
10
11
|
const delegatedProps = reactiveOmit(props, "class")
|
|
12
|
+
|
|
13
|
+
const stripeBg = {
|
|
14
|
+
backgroundImage: `url(${stripesUrl})`,
|
|
15
|
+
backgroundRepeat: 'repeat',
|
|
16
|
+
backgroundAttachment: 'fixed',
|
|
17
|
+
}
|
|
11
18
|
</script>
|
|
12
19
|
|
|
13
20
|
<template>
|
|
14
21
|
<DialogOverlay
|
|
15
22
|
data-slot="dialog-overlay"
|
|
16
23
|
v-bind="delegatedProps"
|
|
17
|
-
:class="cn('data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-white/80', props.class)"
|
|
24
|
+
:class="cn('data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-white/80 dark:bg-gray-950/80 backdrop-blur-[1px]', props.class)"
|
|
18
25
|
>
|
|
26
|
+
<div class="absolute inset-0 opacity-2 dark:opacity-3" :style="stripeBg" />
|
|
19
27
|
<slot />
|
|
20
28
|
</DialogOverlay>
|
|
21
29
|
</template>
|
|
@@ -24,7 +24,7 @@ const forwardedProps = useForwardProps(delegatedProps)
|
|
|
24
24
|
:data-inset="inset ? '' : undefined"
|
|
25
25
|
:data-variant="variant"
|
|
26
26
|
v-bind="forwardedProps"
|
|
27
|
-
:class="cn('focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*=\'text-\'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4', props.class)"
|
|
27
|
+
:class="cn('focus:bg-accent dark:focus:bg-white/10 focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*=\'text-\'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\'size-\'])]:size-4', props.class)"
|
|
28
28
|
>
|
|
29
29
|
<slot />
|
|
30
30
|
</DropdownMenuItem>
|
|
@@ -24,7 +24,7 @@ const modelValue = useVModel(props, "modelValue", emits, {
|
|
|
24
24
|
v-model="modelValue"
|
|
25
25
|
data-slot="input"
|
|
26
26
|
:class="cn(
|
|
27
|
-
'file:text-foreground placeholder:text-
|
|
27
|
+
'file:text-foreground placeholder:text-gray-400 dark:placeholder:text-gray-500 selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',
|
|
28
28
|
'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',
|
|
29
29
|
'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',
|
|
30
30
|
props.class,
|
|
@@ -26,7 +26,7 @@ const delegatedProps = reactiveOmit(props, "class")
|
|
|
26
26
|
>
|
|
27
27
|
<ScrollAreaThumb
|
|
28
28
|
data-slot="scroll-area-thumb"
|
|
29
|
-
class="bg-
|
|
29
|
+
class="bg-gray-300 hover:bg-gray-400 dark:bg-gray-600 dark:hover:bg-gray-500 relative flex-1 rounded-full transition-colors"
|
|
30
30
|
/>
|
|
31
31
|
</ScrollAreaScrollbar>
|
|
32
32
|
</template>
|
|
@@ -37,7 +37,7 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
|
37
37
|
<DialogContent
|
|
38
38
|
data-slot="sheet-content"
|
|
39
39
|
:class="cn(
|
|
40
|
-
'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-
|
|
40
|
+
'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-200 data-[state=open]:duration-200',
|
|
41
41
|
side === 'right'
|
|
42
42
|
&& 'data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm',
|
|
43
43
|
side === 'left'
|
|
@@ -4,18 +4,26 @@ import type { HTMLAttributes } from "vue"
|
|
|
4
4
|
import { reactiveOmit } from "@vueuse/core"
|
|
5
5
|
import { DialogOverlay } from "reka-ui"
|
|
6
6
|
import { cn } from "@/lib/utils"
|
|
7
|
+
import stripesUrl from '@/stripes.svg'
|
|
7
8
|
|
|
8
9
|
const props = defineProps<DialogOverlayProps & { class?: HTMLAttributes["class"] }>()
|
|
9
10
|
|
|
10
11
|
const delegatedProps = reactiveOmit(props, "class")
|
|
12
|
+
|
|
13
|
+
const stripeBg = {
|
|
14
|
+
backgroundImage: `url(${stripesUrl})`,
|
|
15
|
+
backgroundRepeat: 'repeat',
|
|
16
|
+
backgroundAttachment: 'fixed',
|
|
17
|
+
}
|
|
11
18
|
</script>
|
|
12
19
|
|
|
13
20
|
<template>
|
|
14
21
|
<DialogOverlay
|
|
15
22
|
data-slot="sheet-overlay"
|
|
16
|
-
:class="cn('data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-
|
|
23
|
+
:class="cn('data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:duration-200 data-[state=open]:duration-200 fixed inset-0 z-50 bg-white/80 dark:bg-gray-950/80 backdrop-blur-[1px]', props.class)"
|
|
17
24
|
v-bind="delegatedProps"
|
|
18
25
|
>
|
|
26
|
+
<div class="absolute inset-0 opacity-2 dark:opacity-3" :style="stripeBg" />
|
|
19
27
|
<slot />
|
|
20
28
|
</DialogOverlay>
|
|
21
29
|
</template>
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import type { SidebarProps } from "."
|
|
3
|
+
import { watch } from "vue"
|
|
4
|
+
import { useRoute } from "vue-router"
|
|
3
5
|
import { cn } from "@/lib/utils"
|
|
4
6
|
import { Sheet, SheetContent } from '@/components/ui/sheet'
|
|
5
7
|
import SheetDescription from '@/components/ui/sheet/SheetDescription.vue'
|
|
@@ -17,7 +19,12 @@ const props = withDefaults(defineProps<SidebarProps>(), {
|
|
|
17
19
|
collapsible: "offcanvas",
|
|
18
20
|
})
|
|
19
21
|
|
|
22
|
+
const route = useRoute()
|
|
20
23
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar()
|
|
24
|
+
|
|
25
|
+
watch(() => route.path, () => {
|
|
26
|
+
if (isMobile.value) setOpenMobile(false)
|
|
27
|
+
})
|
|
21
28
|
</script>
|
|
22
29
|
|
|
23
30
|
<template>
|
|
@@ -36,7 +43,7 @@ const { isMobile, state, openMobile, setOpenMobile } = useSidebar()
|
|
|
36
43
|
data-slot="sidebar"
|
|
37
44
|
data-mobile="true"
|
|
38
45
|
:side="side"
|
|
39
|
-
class="bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden"
|
|
46
|
+
class="bg-sidebar! text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden"
|
|
40
47
|
:style="{
|
|
41
48
|
'--sidebar-width': SIDEBAR_WIDTH_MOBILE,
|
|
42
49
|
}"
|
|
@@ -73,7 +73,7 @@ provideSidebarContext({
|
|
|
73
73
|
'--sidebar-width': SIDEBAR_WIDTH,
|
|
74
74
|
'--sidebar-width-icon': SIDEBAR_WIDTH_ICON,
|
|
75
75
|
}"
|
|
76
|
-
:class="cn('group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex
|
|
76
|
+
:class="cn('group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex h-svh w-full', props.class)"
|
|
77
77
|
v-bind="$attrs"
|
|
78
78
|
>
|
|
79
79
|
<slot />
|
|
@@ -9,7 +9,7 @@ const props = defineProps<{
|
|
|
9
9
|
class?: HTMLAttributes["class"]
|
|
10
10
|
}>()
|
|
11
11
|
|
|
12
|
-
const { open, toggleSidebar } = useSidebar()
|
|
12
|
+
const { isMobile, open, toggleSidebar } = useSidebar()
|
|
13
13
|
</script>
|
|
14
14
|
|
|
15
15
|
<template>
|
|
@@ -18,11 +18,12 @@ const { open, toggleSidebar } = useSidebar()
|
|
|
18
18
|
data-slot="sidebar-trigger"
|
|
19
19
|
variant="ghost"
|
|
20
20
|
size="icon"
|
|
21
|
-
:class="cn('h-7 w-7', props.class)"
|
|
21
|
+
:class="cn('h-7 w-7 hover:bg-transparent', props.class)"
|
|
22
22
|
@click="toggleSidebar"
|
|
23
23
|
>
|
|
24
|
-
<
|
|
25
|
-
<
|
|
24
|
+
<PanelRightClose v-if="isMobile" class="size-4 dark:text-gray-400" :stroke-width="1" />
|
|
25
|
+
<PanelRightOpen v-else-if="open" class="dark:text-gray-400" :stroke-width="1" />
|
|
26
|
+
<PanelRightClose v-else class="dark:text-gray-400" :stroke-width="1" />
|
|
26
27
|
<span class="sr-only">Toggle Sidebar</span>
|
|
27
28
|
</Button>
|
|
28
29
|
</template>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { TagsInputRootEmits, TagsInputRootProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { TagsInputRoot, useForwardPropsEmits } from "reka-ui"
|
|
6
|
+
import { cn } from "@/lib/utils"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<TagsInputRootProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
+
const emits = defineEmits<TagsInputRootEmits>()
|
|
10
|
+
|
|
11
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
12
|
+
|
|
13
|
+
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<template>
|
|
17
|
+
<TagsInputRoot
|
|
18
|
+
v-slot="slotProps" v-bind="forwarded" :class="cn(
|
|
19
|
+
'flex flex-wrap gap-2 items-center rounded-md border border-input bg-background px-2 py-1 text-sm shadow-xs transition-[color,box-shadow] outline-none',
|
|
20
|
+
'focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]',
|
|
21
|
+
'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',
|
|
22
|
+
props.class)"
|
|
23
|
+
>
|
|
24
|
+
<slot v-bind="slotProps" />
|
|
25
|
+
</TagsInputRoot>
|
|
26
|
+
</template>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { TagsInputInputProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { TagsInputInput, useForwardProps } from "reka-ui"
|
|
6
|
+
import { cn } from "@/lib/utils"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<TagsInputInputProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
+
|
|
10
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
11
|
+
|
|
12
|
+
const forwardedProps = useForwardProps(delegatedProps)
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<TagsInputInput v-bind="forwardedProps" :class="cn('text-sm min-h-5 focus:outline-none flex-1 bg-transparent px-1 placeholder:text-gray-400 dark:placeholder:text-gray-500', props.class)" />
|
|
17
|
+
</template>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { TagsInputItemProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { TagsInputItem, useForwardProps } from "reka-ui"
|
|
6
|
+
import { cn } from "@/lib/utils"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<TagsInputItemProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
+
|
|
10
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
11
|
+
|
|
12
|
+
const forwardedProps = useForwardProps(delegatedProps)
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<TagsInputItem v-bind="forwardedProps" :class="cn('flex h-5 items-center rounded-md bg-secondary data-[state=active]:ring-ring data-[state=active]:ring-2 data-[state=active]:ring-offset-2 ring-offset-background', props.class)">
|
|
17
|
+
<slot />
|
|
18
|
+
</TagsInputItem>
|
|
19
|
+
</template>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { TagsInputItemDeleteProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { TagsInputItemDelete, useForwardProps } from "reka-ui"
|
|
6
|
+
import { X } from "lucide-vue-next"
|
|
7
|
+
import { cn } from "@/lib/utils"
|
|
8
|
+
|
|
9
|
+
const props = defineProps<TagsInputItemDeleteProps & { class?: HTMLAttributes["class"] }>()
|
|
10
|
+
|
|
11
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
12
|
+
|
|
13
|
+
const forwardedProps = useForwardProps(delegatedProps)
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<template>
|
|
17
|
+
<TagsInputItemDelete v-bind="forwardedProps" :class="cn('flex rounded bg-transparent mr-1', props.class)">
|
|
18
|
+
<slot>
|
|
19
|
+
<X class="size-3" />
|
|
20
|
+
</slot>
|
|
21
|
+
</TagsInputItemDelete>
|
|
22
|
+
</template>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { TagsInputItemTextProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { TagsInputItemText, useForwardProps } from "reka-ui"
|
|
6
|
+
import { cn } from "@/lib/utils"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<TagsInputItemTextProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
+
|
|
10
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
11
|
+
|
|
12
|
+
const forwardedProps = useForwardProps(delegatedProps)
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<template>
|
|
16
|
+
<TagsInputItemText v-bind="forwardedProps" :class="cn('py-0.5 px-2 text-sm rounded bg-transparent', props.class)" />
|
|
17
|
+
</template>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { default as TagsInput } from "./TagsInput.vue"
|
|
2
|
+
export { default as TagsInputInput } from "./TagsInputInput.vue"
|
|
3
|
+
export { default as TagsInputItem } from "./TagsInputItem.vue"
|
|
4
|
+
export { default as TagsInputItemDelete } from "./TagsInputItemDelete.vue"
|
|
5
|
+
export { default as TagsInputItemText } from "./TagsInputItemText.vue"
|
|
@@ -4,17 +4,17 @@ import { cva } from "class-variance-authority"
|
|
|
4
4
|
export { default as Toggle } from "./Toggle.vue"
|
|
5
5
|
|
|
6
6
|
export const toggleVariants = cva(
|
|
7
|
-
"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium
|
|
7
|
+
"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-white data-[state=on]:text-foreground data-[state=on]:shadow-sm data-[state=on]:dark:bg-gray-700 data-[state=on]:dark:text-gray-100 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap",
|
|
8
8
|
{
|
|
9
9
|
variants: {
|
|
10
10
|
variant: {
|
|
11
11
|
default: "bg-transparent",
|
|
12
12
|
outline:
|
|
13
|
-
"
|
|
13
|
+
"bg-transparent",
|
|
14
14
|
},
|
|
15
15
|
size: {
|
|
16
16
|
default: "h-9 px-2 min-w-9",
|
|
17
|
-
sm: "h-
|
|
17
|
+
sm: "h-6 px-1.5 min-w-6",
|
|
18
18
|
lg: "h-10 px-2.5 min-w-10",
|
|
19
19
|
},
|
|
20
20
|
},
|
|
@@ -42,7 +42,7 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
|
42
42
|
'--gap': spacing,
|
|
43
43
|
}"
|
|
44
44
|
v-bind="forwarded"
|
|
45
|
-
:class="cn('group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs', props.class)"
|
|
45
|
+
:class="cn('group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md bg-gray-50 p-1 dark:bg-gray-800/50 data-[spacing=default]:data-[variant=outline]:shadow-xs', props.class)"
|
|
46
46
|
>
|
|
47
47
|
<slot v-bind="slotProps" />
|
|
48
48
|
</ToggleGroupRoot>
|
|
@@ -37,8 +37,8 @@ const forwardedProps = useForwardProps(delegatedProps)
|
|
|
37
37
|
variant: context?.variant || variant,
|
|
38
38
|
size: context?.size || size,
|
|
39
39
|
}),
|
|
40
|
-
'w-auto min-w-0 shrink-0 px-
|
|
41
|
-
'data-[spacing=0]:rounded-
|
|
40
|
+
'w-auto min-w-0 shrink-0 px-1.5 focus:z-10 focus-visible:z-10',
|
|
41
|
+
'data-[spacing=0]:rounded-md data-[spacing=0]:shadow-none',
|
|
42
42
|
props.class)"
|
|
43
43
|
>
|
|
44
44
|
<slot v-bind="slotProps" />
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { parse, converter, formatRgb } from 'culori'
|
|
2
|
+
import safeParser from 'postcss-safe-parser'
|
|
3
|
+
|
|
4
|
+
const toLch = converter('lch')
|
|
5
|
+
|
|
6
|
+
type Mode = 'background' | 'foreground'
|
|
7
|
+
|
|
8
|
+
// CSS properties whose values contain colors we should invert, mapped to
|
|
9
|
+
// the inversion mode. Kebab-case for <style> decls; inline styles are
|
|
10
|
+
// handled via the same lookup after lowercasing.
|
|
11
|
+
const styleProps = new Map<string, Mode>([
|
|
12
|
+
['background', 'background'],
|
|
13
|
+
['background-color', 'background'],
|
|
14
|
+
['border', 'foreground'],
|
|
15
|
+
['border-color', 'foreground'],
|
|
16
|
+
['border-top', 'foreground'],
|
|
17
|
+
['border-right', 'foreground'],
|
|
18
|
+
['border-bottom', 'foreground'],
|
|
19
|
+
['border-left', 'foreground'],
|
|
20
|
+
['border-top-color', 'foreground'],
|
|
21
|
+
['border-right-color', 'foreground'],
|
|
22
|
+
['border-bottom-color', 'foreground'],
|
|
23
|
+
['border-left-color', 'foreground'],
|
|
24
|
+
['color', 'foreground'],
|
|
25
|
+
['outline', 'foreground'],
|
|
26
|
+
['outline-color', 'foreground'],
|
|
27
|
+
])
|
|
28
|
+
|
|
29
|
+
// Hex | color function with balanced-enough parens | bare word (possible named color).
|
|
30
|
+
const COLOR_TOKEN = /#[a-f0-9]{3,8}\b|(?:rgba?|hsla?|hwb|lab|lch|oklab|oklch|color)\([^)]*\)|\b[a-z]{3,20}\b/gi
|
|
31
|
+
|
|
32
|
+
// Words that look color-shaped but aren't — skip to avoid a wasted parse().
|
|
33
|
+
const NON_COLOR_KEYWORDS = /^(?:none|transparent|inherit|initial|unset|revert|currentcolor|auto|normal|solid|dashed|dotted|double|groove|ridge|inset|outset|hidden|thin|thick|medium|center|left|right|top|bottom|cover|contain|repeat|no-repeat|fixed|scroll|local|url|var|calc|linear|radial|conic|gradient)$/i
|
|
34
|
+
|
|
35
|
+
function invertOne(color: string, mode: Mode): string {
|
|
36
|
+
try {
|
|
37
|
+
const parsed = parse(color)
|
|
38
|
+
if (!parsed) return color
|
|
39
|
+
const lch = toLch(parsed) as any
|
|
40
|
+
if (!lch || typeof lch.l !== 'number' || Number.isNaN(lch.l)) return color
|
|
41
|
+
|
|
42
|
+
if (mode === 'background' && lch.l >= 50) lch.l = 50 - (lch.l - 50) * 0.75
|
|
43
|
+
if (mode === 'foreground' && lch.l < 50) lch.l = 50 - (lch.l - 50) * 0.75
|
|
44
|
+
if (typeof lch.c === 'number' && !Number.isNaN(lch.c)) lch.c *= 0.8
|
|
45
|
+
|
|
46
|
+
return formatRgb(lch) || color
|
|
47
|
+
} catch {
|
|
48
|
+
return color
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function invertValue(value: string, mode: Mode): string {
|
|
53
|
+
return value.replace(COLOR_TOKEN, (tok) => {
|
|
54
|
+
if (NON_COLOR_KEYWORDS.test(tok)) return tok
|
|
55
|
+
if (!parse(tok)) return tok
|
|
56
|
+
return invertOne(tok, mode)
|
|
57
|
+
})
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Splits an inline style attr by `;` (safe — color functions use `,` not `;`).
|
|
61
|
+
function invertInlineStyle(style: string): string {
|
|
62
|
+
return style.split(';').map((decl) => {
|
|
63
|
+
const i = decl.indexOf(':')
|
|
64
|
+
if (i === -1) return decl
|
|
65
|
+
const prop = decl.slice(0, i).trim().toLowerCase()
|
|
66
|
+
const mode = styleProps.get(prop)
|
|
67
|
+
if (!mode) return decl
|
|
68
|
+
return decl.slice(0, i + 1) + invertValue(decl.slice(i + 1), mode)
|
|
69
|
+
}).join(';')
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function invertStyleTag(css: string): string {
|
|
73
|
+
try {
|
|
74
|
+
const root = safeParser(css)
|
|
75
|
+
root.walkDecls((decl) => {
|
|
76
|
+
const mode = styleProps.get(decl.prop.toLowerCase())
|
|
77
|
+
if (mode) decl.value = invertValue(decl.value, mode)
|
|
78
|
+
})
|
|
79
|
+
return root.toString()
|
|
80
|
+
} catch {
|
|
81
|
+
return css
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const ORIG_INLINE = 'data-maizzle-orig-style'
|
|
86
|
+
const ORIG_STYLE_TAG = 'data-maizzle-orig-style-content'
|
|
87
|
+
const APPLIED_FLAG = 'data-maizzle-dark-applied'
|
|
88
|
+
|
|
89
|
+
function* walk(root: Node): Generator<Element> {
|
|
90
|
+
if (root.nodeType === 1) yield root as Element
|
|
91
|
+
for (const child of Array.from(root.childNodes)) yield* walk(child)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export function applyColorInversion(iframe: HTMLIFrameElement): void {
|
|
95
|
+
const doc = iframe.contentDocument
|
|
96
|
+
if (!doc || !doc.body || doc.body.hasAttribute(APPLIED_FLAG)) return
|
|
97
|
+
|
|
98
|
+
for (const el of walk(doc.documentElement)) {
|
|
99
|
+
const inline = el.getAttribute('style')
|
|
100
|
+
if (inline) {
|
|
101
|
+
el.setAttribute(ORIG_INLINE, inline)
|
|
102
|
+
el.setAttribute('style', invertInlineStyle(inline))
|
|
103
|
+
}
|
|
104
|
+
if (el.tagName === 'STYLE') {
|
|
105
|
+
const original = el.textContent ?? ''
|
|
106
|
+
el.setAttribute(ORIG_STYLE_TAG, original)
|
|
107
|
+
el.textContent = invertStyleTag(original)
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
doc.body.setAttribute(APPLIED_FLAG, '')
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export function undoColorInversion(iframe: HTMLIFrameElement): void {
|
|
115
|
+
const doc = iframe.contentDocument
|
|
116
|
+
if (!doc || !doc.body || !doc.body.hasAttribute(APPLIED_FLAG)) return
|
|
117
|
+
|
|
118
|
+
for (const el of walk(doc.documentElement)) {
|
|
119
|
+
const origInline = el.getAttribute(ORIG_INLINE)
|
|
120
|
+
if (origInline !== null) {
|
|
121
|
+
el.setAttribute('style', origInline)
|
|
122
|
+
el.removeAttribute(ORIG_INLINE)
|
|
123
|
+
}
|
|
124
|
+
if (el.tagName === 'STYLE' && el.hasAttribute(ORIG_STYLE_TAG)) {
|
|
125
|
+
el.textContent = el.getAttribute(ORIG_STYLE_TAG) ?? ''
|
|
126
|
+
el.removeAttribute(ORIG_STYLE_TAG)
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
doc.body.removeAttribute(APPLIED_FLAG)
|
|
131
|
+
}
|
package/dist/server/ui/main.css
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
--sidebar-foreground: #030712;
|
|
28
28
|
--sidebar-primary: #111827;
|
|
29
29
|
--sidebar-primary-foreground: #f9fafb;
|
|
30
|
-
--sidebar-accent: #
|
|
30
|
+
--sidebar-accent: #f9fafb;
|
|
31
31
|
--sidebar-accent-foreground: #111827;
|
|
32
32
|
--sidebar-border: #e5e7eb;
|
|
33
33
|
--sidebar-ring: #9ca3af;
|
|
@@ -37,31 +37,31 @@
|
|
|
37
37
|
@media (prefers-color-scheme: dark) {
|
|
38
38
|
:root {
|
|
39
39
|
--background: #030712; /* gray-950 */
|
|
40
|
-
--foreground: #
|
|
40
|
+
--foreground: #e5e7eb; /* gray-200 */
|
|
41
41
|
--card: #030712;
|
|
42
|
-
--card-foreground: #
|
|
42
|
+
--card-foreground: #e5e7eb;
|
|
43
43
|
--popover: #030712;
|
|
44
|
-
--popover-foreground: #
|
|
45
|
-
--primary: #
|
|
44
|
+
--popover-foreground: #e5e7eb;
|
|
45
|
+
--primary: #e5e7eb;
|
|
46
46
|
--primary-foreground: #030712;
|
|
47
|
-
--secondary: #
|
|
48
|
-
--secondary-foreground: #
|
|
49
|
-
--muted: #
|
|
47
|
+
--secondary: #111827; /* gray-900 */
|
|
48
|
+
--secondary-foreground: #e5e7eb;
|
|
49
|
+
--muted: #111827;
|
|
50
50
|
--muted-foreground: #9ca3af; /* gray-400 */
|
|
51
|
-
--accent: #
|
|
52
|
-
--accent-foreground: #
|
|
51
|
+
--accent: #111827;
|
|
52
|
+
--accent-foreground: #e5e7eb;
|
|
53
53
|
--destructive: #ef4444;
|
|
54
|
-
--border: #
|
|
55
|
-
--input: #
|
|
56
|
-
--ring: #
|
|
57
|
-
--sidebar-background: #
|
|
58
|
-
--sidebar-foreground: #
|
|
59
|
-
--sidebar-primary: #
|
|
60
|
-
--sidebar-primary-foreground: #
|
|
54
|
+
--border: #1f2937; /* gray-800 */
|
|
55
|
+
--input: #1f2937;
|
|
56
|
+
--ring: #4b5563; /* gray-600 */
|
|
57
|
+
--sidebar-background: #030712; /* gray-950 */
|
|
58
|
+
--sidebar-foreground: #e5e7eb;
|
|
59
|
+
--sidebar-primary: #e5e7eb;
|
|
60
|
+
--sidebar-primary-foreground: #030712;
|
|
61
61
|
--sidebar-accent: rgb(255 255 255 / 0.06);
|
|
62
|
-
--sidebar-accent-foreground: #
|
|
63
|
-
--sidebar-border: #
|
|
64
|
-
--sidebar-ring: #
|
|
62
|
+
--sidebar-accent-foreground: #e5e7eb;
|
|
63
|
+
--sidebar-border: #1f2937;
|
|
64
|
+
--sidebar-ring: #4b5563;
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed } from 'vue'
|
|
3
|
+
import { Terminal } from 'lucide-vue-next'
|
|
3
4
|
import { Kbd } from '@/components/ui/kbd'
|
|
4
5
|
import {
|
|
5
6
|
Empty,
|
|
@@ -14,6 +15,10 @@ import markUrl from '@/mark.svg'
|
|
|
14
15
|
import markGradientUrl from '@/mark-gradient.svg'
|
|
15
16
|
|
|
16
17
|
const isMac = computed(() => navigator.platform.includes('Mac'))
|
|
18
|
+
|
|
19
|
+
function openCommandPalette() {
|
|
20
|
+
document.dispatchEvent(new KeyboardEvent('keydown', { key: 'k', metaKey: true, ctrlKey: true }))
|
|
21
|
+
}
|
|
17
22
|
</script>
|
|
18
23
|
|
|
19
24
|
<template>
|
|
@@ -25,14 +30,16 @@ const isMac = computed(() => navigator.platform.includes('Mac'))
|
|
|
25
30
|
</EmptyMedia>
|
|
26
31
|
<EmptyTitle>Select an email to preview</EmptyTitle>
|
|
27
32
|
<EmptyDescription>
|
|
28
|
-
Choose an email from the sidebar to see a live preview.
|
|
33
|
+
Choose an email from the <span class="md:hidden">menu</span><span class="hidden md:inline">sidebar</span> to see a live preview.
|
|
29
34
|
</EmptyDescription>
|
|
30
35
|
</EmptyHeader>
|
|
31
36
|
<EmptyContent>
|
|
32
|
-
<p
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
37
|
+
<p
|
|
38
|
+
class="text-gray-500 dark:text-gray-400 text-sm cursor-pointer hover:text-gray-700 dark:hover:text-gray-200 transition-colors"
|
|
39
|
+
@click="openCommandPalette"
|
|
40
|
+
>
|
|
41
|
+
<span class="md:hidden inline-flex items-center gap-1.5 rounded-md bg-gray-100 dark:bg-gray-800 px-3 py-1.5"><Terminal class="size-3.5" /> Quick search</span>
|
|
42
|
+
<span class="hidden md:inline">Press <Kbd>{{ isMac ? '⌘' : 'Ctrl' }}</Kbd> + <Kbd>K</Kbd> to open the command palette</span>
|
|
36
43
|
</p>
|
|
37
44
|
</EmptyContent>
|
|
38
45
|
</Empty>
|