@maizzle/framework 6.0.0-rc.17 → 6.0.0-rc.19
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/bin/maizzle.mjs +1 -1
- package/dist/build.d.ts +6 -5
- package/dist/build.d.ts.map +1 -1
- package/dist/{build.mjs → build.js} +23 -15
- package/dist/build.js.map +1 -0
- package/dist/components/Body.vue +10 -0
- package/dist/components/Button.vue +86 -49
- package/dist/components/Column.vue +10 -0
- package/dist/components/Container.vue +35 -7
- package/dist/components/Hr.vue +33 -0
- package/dist/components/Html.vue +29 -1
- package/dist/components/Layout.vue +27 -12
- package/dist/components/MarkdownLayout.vue +39 -0
- package/dist/components/NotPlaintext.vue +14 -0
- package/dist/components/{Vml.vue → OutlookBg.vue} +1 -1
- package/dist/components/Overlap.vue +10 -0
- package/dist/components/Plaintext.vue +14 -0
- package/dist/components/Preheader.vue +3 -8
- package/dist/components/QrCode.vue +157 -0
- package/dist/components/Row.vue +10 -0
- package/dist/components/Section.vue +10 -0
- package/dist/components/Spacer.vue +28 -27
- package/dist/components/{utils.mjs → utils.js} +2 -2
- package/dist/components/utils.js.map +1 -0
- package/dist/composables/{defineConfig.mjs → defineConfig.js} +4 -5
- package/dist/composables/defineConfig.js.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.mjs → useConfig.js} +2 -3
- package/dist/composables/useConfig.js.map +1 -0
- package/dist/composables/{useDoctype.mjs → useDoctype.js} +3 -4
- package/dist/composables/useDoctype.js.map +1 -0
- package/dist/composables/{useEvent.mjs → useEvent.js} +3 -4
- package/dist/composables/useEvent.js.map +1 -0
- package/dist/composables/{useFont.mjs → useFont.js} +3 -4
- package/dist/composables/useFont.js.map +1 -0
- package/dist/composables/{useOutlookFallback.mjs → useOutlookFallback.js} +2 -3
- package/dist/composables/useOutlookFallback.js.map +1 -0
- package/dist/composables/usePlaintext.d.ts +2 -0
- package/dist/composables/usePlaintext.d.ts.map +1 -1
- package/dist/composables/{usePlaintext.mjs → usePlaintext.js} +4 -4
- package/dist/composables/usePlaintext.js.map +1 -0
- package/dist/composables/{usePreheader.mjs → usePreheader.js} +3 -4
- 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.mjs → defaults.js} +9 -3
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/{index.mjs → index.js} +4 -5
- package/dist/config/index.js.map +1 -0
- package/dist/events/index.d.ts +8 -2
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/{index.mjs → index.js} +21 -5
- package/dist/events/index.js.map +1 -0
- package/dist/index.d.ts +12 -9
- package/dist/index.js +36 -0
- package/dist/{plaintext.mjs → plaintext.js} +4 -5
- package/dist/plaintext.js.map +1 -0
- package/dist/{plugin.mjs → plugin.js} +6 -7
- package/dist/plugin.js.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.mjs → pruneVars.js} +2 -2
- package/dist/plugins/postcss/pruneVars.js.map +1 -0
- package/dist/plugins/postcss/{quoteFontFamilies.mjs → quoteFontFamilies.js} +2 -2
- package/dist/plugins/postcss/quoteFontFamilies.js.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.mjs → resolveMaizzleImports.js} +2 -3
- package/dist/plugins/postcss/resolveMaizzleImports.js.map +1 -0
- package/dist/plugins/postcss/{resolveProps.mjs → resolveProps.js} +2 -2
- package/dist/plugins/postcss/resolveProps.js.map +1 -0
- package/dist/plugins/postcss/{tailwindCleanup.mjs → tailwindCleanup.js} +2 -2
- package/dist/plugins/postcss/tailwindCleanup.js.map +1 -0
- package/dist/{prepare.mjs → prepare.js} +5 -6
- 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.ts.map +1 -1
- package/dist/render/{createRenderer.mjs → createRenderer.js} +24 -19
- package/dist/render/createRenderer.js.map +1 -0
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/{index.mjs → index.js} +18 -11
- package/dist/render/index.js.map +1 -0
- package/dist/render/{injectFonts.mjs → injectFonts.js} +3 -4
- package/dist/render/injectFonts.js.map +1 -0
- package/dist/render/plugins/{codeBlockExtract.mjs → codeBlockExtract.js} +2 -2
- package/dist/render/plugins/codeBlockExtract.js.map +1 -0
- package/dist/render/plugins/{markdownExtract.mjs → markdownExtract.js} +2 -3
- package/dist/render/plugins/markdownExtract.js.map +1 -0
- package/dist/render/plugins/{rawExtract.mjs → rawExtract.js} +2 -2
- package/dist/render/plugins/rawExtract.js.map +1 -0
- package/dist/render/plugins/{rowSourceLocation.mjs → rowSourceLocation.js} +2 -2
- package/dist/render/plugins/rowSourceLocation.js.map +1 -0
- package/dist/serve.d.ts +2 -0
- package/dist/serve.d.ts.map +1 -1
- package/dist/{serve.mjs → serve.js} +20 -15
- package/dist/serve.js.map +1 -0
- package/dist/server/{compatibility.mjs → compatibility.js} +5 -6
- package/dist/server/compatibility.js.map +1 -0
- package/dist/server/{email.mjs → email.js} +2 -3
- package/dist/server/email.js.map +1 -0
- package/dist/server/{linter.mjs → linter.js} +3 -4
- package/dist/server/linter.js.map +1 -0
- package/dist/server/{sfc-utils.mjs → sfc-utils.js} +2 -3
- package/dist/server/sfc-utils.js.map +1 -0
- package/dist/server/ui/App.vue +18 -0
- package/dist/server/ui/components/ui/command/Command.vue +4 -1
- 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.mjs → addAttributes.js} +6 -7
- package/dist/transformers/addAttributes.js.map +1 -0
- package/dist/transformers/attributeToStyle.d.ts +27 -14
- package/dist/transformers/attributeToStyle.d.ts.map +1 -1
- package/dist/transformers/attributeToStyle.js +94 -0
- package/dist/transformers/attributeToStyle.js.map +1 -0
- package/dist/transformers/base.d.ts +66 -3
- package/dist/transformers/base.d.ts.map +1 -1
- package/dist/transformers/{base.mjs → base.js} +56 -30
- package/dist/transformers/base.js.map +1 -0
- package/dist/transformers/{columnWidth.mjs → columnWidth.js} +4 -5
- package/dist/transformers/columnWidth.js.map +1 -0
- package/dist/transformers/entities.d.ts +31 -2
- package/dist/transformers/entities.d.ts.map +1 -1
- package/dist/transformers/entities.js +73 -0
- package/dist/transformers/entities.js.map +1 -0
- package/dist/transformers/filters/{defaults.mjs → defaults.js} +2 -2
- package/dist/transformers/filters/defaults.js.map +1 -0
- package/dist/transformers/filters/index.d.ts +31 -10
- package/dist/transformers/filters/index.d.ts.map +1 -1
- package/dist/transformers/filters/index.js +89 -0
- package/dist/transformers/filters/index.js.map +1 -0
- package/dist/transformers/format.d.ts +14 -7
- package/dist/transformers/format.d.ts.map +1 -1
- package/dist/transformers/format.js +30 -0
- package/dist/transformers/format.js.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.mjs → inlineCss.js} +28 -18
- package/dist/transformers/inlineCss.js.map +1 -0
- package/dist/transformers/inlineLink.d.ts +26 -5
- package/dist/transformers/inlineLink.d.ts.map +1 -1
- package/dist/transformers/{inlineLink.mjs → inlineLink.js} +34 -10
- package/dist/transformers/inlineLink.js.map +1 -0
- package/dist/transformers/minify.d.ts +13 -9
- package/dist/transformers/minify.d.ts.map +1 -1
- 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.mjs → purgeCss.js} +36 -29
- package/dist/transformers/purgeCss.js.map +1 -0
- package/dist/transformers/removeAttributes.d.ts +43 -20
- package/dist/transformers/removeAttributes.d.ts.map +1 -1
- package/dist/transformers/removeAttributes.js +70 -0
- package/dist/transformers/removeAttributes.js.map +1 -0
- package/dist/transformers/{replaceStrings.mjs → replaceStrings.js} +2 -2
- package/dist/transformers/replaceStrings.js.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 +16 -7
- package/dist/transformers/sixHex.d.ts.map +1 -1
- package/dist/transformers/sixHex.js +42 -0
- package/dist/transformers/sixHex.js.map +1 -0
- package/dist/transformers/{tailwindComponent.mjs → tailwindComponent.js} +5 -6
- package/dist/transformers/tailwindComponent.js.map +1 -0
- package/dist/transformers/{tailwindcss.mjs → tailwindcss.js} +6 -7
- package/dist/transformers/tailwindcss.js.map +1 -0
- package/dist/transformers/urlQuery.d.ts +26 -14
- package/dist/transformers/urlQuery.d.ts.map +1 -1
- package/dist/transformers/urlQuery.js +77 -0
- package/dist/transformers/urlQuery.js.map +1 -0
- package/dist/types/config.d.ts +108 -15
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +1 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.js +1 -0
- package/dist/utils/ast/index.js +4 -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.mjs → serializer.js} +3 -4
- package/dist/utils/ast/serializer.js.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.mjs → compileTailwindCss.js} +8 -9
- package/dist/utils/compileTailwindCss.js.map +1 -0
- package/dist/utils/{decodeStyleEntities.mjs → decodeStyleEntities.js} +2 -2
- package/dist/utils/decodeStyleEntities.js.map +1 -0
- package/dist/utils/{detect.mjs → detect.js} +2 -3
- package/dist/utils/detect.js.map +1 -0
- package/dist/utils/output-markers.d.ts +29 -0
- package/dist/utils/output-markers.d.ts.map +1 -0
- package/dist/utils/output-markers.js +68 -0
- package/dist/utils/output-markers.js.map +1 -0
- package/dist/utils/{url.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 +29 -24
- package/node_modules/maizzle/dist/index.mjs +28 -8
- package/node_modules/maizzle/package.json +1 -1
- 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 +4 -4
- package/dist/build.mjs.map +0 -1
- package/dist/components/Divider.vue +0 -133
- package/dist/components/utils.mjs.map +0 -1
- package/dist/composables/defineConfig.mjs.map +0 -1
- package/dist/composables/renderContext.mjs.map +0 -1
- package/dist/composables/useConfig.mjs.map +0 -1
- package/dist/composables/useDoctype.mjs.map +0 -1
- package/dist/composables/useEvent.mjs.map +0 -1
- package/dist/composables/useFont.mjs.map +0 -1
- package/dist/composables/useOutlookFallback.mjs.map +0 -1
- package/dist/composables/usePlaintext.mjs.map +0 -1
- package/dist/composables/usePreheader.mjs.map +0 -1
- package/dist/config/defaults.mjs.map +0 -1
- package/dist/config/index.mjs.map +0 -1
- package/dist/events/index.mjs.map +0 -1
- package/dist/index.mjs +0 -34
- package/dist/plaintext.mjs.map +0 -1
- package/dist/plugin.mjs.map +0 -1
- package/dist/plugins/postcss/mergeMediaQueries.mjs.map +0 -1
- package/dist/plugins/postcss/pruneVars.mjs.map +0 -1
- package/dist/plugins/postcss/quoteFontFamilies.mjs.map +0 -1
- package/dist/plugins/postcss/removeDeclarations.mjs.map +0 -1
- package/dist/plugins/postcss/resolveMaizzleImports.mjs.map +0 -1
- package/dist/plugins/postcss/resolveProps.mjs.map +0 -1
- package/dist/plugins/postcss/tailwindCleanup.mjs.map +0 -1
- package/dist/prepare.mjs.map +0 -1
- package/dist/render/createRenderer.mjs.map +0 -1
- package/dist/render/index.mjs.map +0 -1
- package/dist/render/injectFonts.mjs.map +0 -1
- package/dist/render/plugins/codeBlockExtract.mjs.map +0 -1
- package/dist/render/plugins/markdownExtract.mjs.map +0 -1
- package/dist/render/plugins/rawExtract.mjs.map +0 -1
- package/dist/render/plugins/rowSourceLocation.mjs.map +0 -1
- package/dist/serve.mjs.map +0 -1
- package/dist/server/compatibility.mjs.map +0 -1
- package/dist/server/email.mjs.map +0 -1
- package/dist/server/linter.mjs.map +0 -1
- package/dist/server/sfc-utils.mjs.map +0 -1
- package/dist/transformers/addAttributes.mjs.map +0 -1
- package/dist/transformers/attributeToStyle.mjs +0 -80
- package/dist/transformers/attributeToStyle.mjs.map +0 -1
- package/dist/transformers/base.mjs.map +0 -1
- package/dist/transformers/columnWidth.mjs.map +0 -1
- package/dist/transformers/entities.mjs +0 -41
- package/dist/transformers/entities.mjs.map +0 -1
- package/dist/transformers/filters/defaults.mjs.map +0 -1
- package/dist/transformers/filters/index.mjs +0 -67
- package/dist/transformers/filters/index.mjs.map +0 -1
- package/dist/transformers/format.mjs +0 -26
- package/dist/transformers/format.mjs.map +0 -1
- package/dist/transformers/index.mjs +0 -87
- package/dist/transformers/index.mjs.map +0 -1
- package/dist/transformers/inlineCSS.d.ts +0 -17
- package/dist/transformers/inlineCSS.d.ts.map +0 -1
- package/dist/transformers/inlineCSS.mjs.map +0 -1
- package/dist/transformers/inlineLink.mjs.map +0 -1
- package/dist/transformers/minify.mjs +0 -24
- package/dist/transformers/minify.mjs.map +0 -1
- package/dist/transformers/msoWidthFromClass.d.ts +0 -19
- package/dist/transformers/msoWidthFromClass.d.ts.map +0 -1
- package/dist/transformers/msoWidthFromClass.mjs +0 -61
- package/dist/transformers/msoWidthFromClass.mjs.map +0 -1
- package/dist/transformers/purgeCSS.d.ts +0 -23
- package/dist/transformers/purgeCSS.d.ts.map +0 -1
- package/dist/transformers/purgeCSS.mjs.map +0 -1
- package/dist/transformers/removeAttributes.mjs +0 -63
- package/dist/transformers/removeAttributes.mjs.map +0 -1
- package/dist/transformers/replaceStrings.mjs.map +0 -1
- package/dist/transformers/safeClassNames.mjs.map +0 -1
- package/dist/transformers/shorthandCSS.d.ts +0 -24
- package/dist/transformers/shorthandCSS.d.ts.map +0 -1
- package/dist/transformers/shorthandCSS.mjs +0 -48
- package/dist/transformers/shorthandCSS.mjs.map +0 -1
- package/dist/transformers/sixHex.mjs +0 -30
- package/dist/transformers/sixHex.mjs.map +0 -1
- package/dist/transformers/tailwindComponent.mjs.map +0 -1
- package/dist/transformers/tailwindcss.mjs.map +0 -1
- package/dist/transformers/urlQuery.mjs +0 -65
- package/dist/transformers/urlQuery.mjs.map +0 -1
- package/dist/types/config.mjs +0 -1
- package/dist/types/index.mjs +0 -1
- package/dist/utils/ast/index.mjs +0 -5
- package/dist/utils/ast/parser.mjs.map +0 -1
- package/dist/utils/ast/serializer.mjs.map +0 -1
- package/dist/utils/ast/walker.mjs.map +0 -1
- package/dist/utils/compileTailwindCss.mjs.map +0 -1
- package/dist/utils/decodeStyleEntities.mjs.map +0 -1
- package/dist/utils/detect.mjs.map +0 -1
- package/dist/utils/url.mjs.map +0 -1
- package/node_modules/maizzle/dist/commands/make/stubs/layout.vue +0 -39
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clack/prompts",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.mjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -46,11 +46,14 @@
|
|
|
46
46
|
"stdin",
|
|
47
47
|
"ui"
|
|
48
48
|
],
|
|
49
|
+
"engines": {
|
|
50
|
+
"node": ">= 20.12.0"
|
|
51
|
+
},
|
|
49
52
|
"dependencies": {
|
|
50
|
-
"fast-string-width": "^
|
|
51
|
-
"fast-wrap-ansi": "^0.
|
|
53
|
+
"fast-string-width": "^3.0.2",
|
|
54
|
+
"fast-wrap-ansi": "^0.2.0",
|
|
52
55
|
"sisteransi": "^1.0.5",
|
|
53
|
-
"@clack/core": "1.
|
|
56
|
+
"@clack/core": "1.3.0"
|
|
54
57
|
},
|
|
55
58
|
"devDependencies": {
|
|
56
59
|
"is-unicode-supported": "^1.3.0",
|
|
@@ -1,28 +1,35 @@
|
|
|
1
1
|
/* IMPORT */
|
|
2
|
-
import {
|
|
2
|
+
import { getCodePointsLength, isFullWidth, isWideNotCJKTNotEmoji } from './utils.js';
|
|
3
3
|
/* HELPERS */
|
|
4
|
-
const ANSI_RE = /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y;
|
|
4
|
+
const ANSI_RE = /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y;
|
|
5
5
|
const CONTROL_RE = /[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y;
|
|
6
|
+
const CJKT_WIDE_RE = /(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu;
|
|
6
7
|
const TAB_RE = /\t{1,1000}/y;
|
|
7
8
|
const EMOJI_RE = /[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/yu;
|
|
8
9
|
const LATIN_RE = /(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y;
|
|
9
10
|
const MODIFIER_RE = /\p{M}+/gu;
|
|
10
11
|
const NO_TRUNCATION = { limit: Infinity, ellipsis: '' };
|
|
11
12
|
/* MAIN */
|
|
12
|
-
//TODO: Optimize matching non-latin letters
|
|
13
13
|
const getStringTruncatedWidth = (input, truncationOptions = {}, widthOptions = {}) => {
|
|
14
14
|
/* CONSTANTS */
|
|
15
15
|
const LIMIT = truncationOptions.limit ?? Infinity;
|
|
16
16
|
const ELLIPSIS = truncationOptions.ellipsis ?? '';
|
|
17
17
|
const ELLIPSIS_WIDTH = truncationOptions?.ellipsisWidth ?? (ELLIPSIS ? getStringTruncatedWidth(ELLIPSIS, NO_TRUNCATION, widthOptions).width : 0);
|
|
18
|
-
const ANSI_WIDTH =
|
|
18
|
+
const ANSI_WIDTH = 0;
|
|
19
19
|
const CONTROL_WIDTH = widthOptions.controlWidth ?? 0;
|
|
20
20
|
const TAB_WIDTH = widthOptions.tabWidth ?? 8;
|
|
21
|
-
const AMBIGUOUS_WIDTH = widthOptions.ambiguousWidth ?? 1;
|
|
22
21
|
const EMOJI_WIDTH = widthOptions.emojiWidth ?? 2;
|
|
23
|
-
const FULL_WIDTH_WIDTH =
|
|
22
|
+
const FULL_WIDTH_WIDTH = 2;
|
|
24
23
|
const REGULAR_WIDTH = widthOptions.regularWidth ?? 1;
|
|
25
|
-
const WIDE_WIDTH = widthOptions.wideWidth ??
|
|
24
|
+
const WIDE_WIDTH = widthOptions.wideWidth ?? FULL_WIDTH_WIDTH;
|
|
25
|
+
const PARSE_BLOCKS = [
|
|
26
|
+
[LATIN_RE, REGULAR_WIDTH],
|
|
27
|
+
[ANSI_RE, ANSI_WIDTH],
|
|
28
|
+
[CONTROL_RE, CONTROL_WIDTH],
|
|
29
|
+
[TAB_RE, TAB_WIDTH],
|
|
30
|
+
[EMOJI_RE, EMOJI_WIDTH],
|
|
31
|
+
[CJKT_WIDE_RE, WIDE_WIDTH],
|
|
32
|
+
];
|
|
26
33
|
/* STATE */
|
|
27
34
|
let indexPrev = 0;
|
|
28
35
|
let index = 0;
|
|
@@ -46,12 +53,9 @@ const getStringTruncatedWidth = (input, truncationOptions = {}, widthOptions = {
|
|
|
46
53
|
if (isFullWidth(codePoint)) {
|
|
47
54
|
widthExtra = FULL_WIDTH_WIDTH;
|
|
48
55
|
}
|
|
49
|
-
else if (
|
|
56
|
+
else if (isWideNotCJKTNotEmoji(codePoint)) {
|
|
50
57
|
widthExtra = WIDE_WIDTH;
|
|
51
58
|
}
|
|
52
|
-
else if (AMBIGUOUS_WIDTH !== REGULAR_WIDTH && isAmbiguous(codePoint)) {
|
|
53
|
-
widthExtra = AMBIGUOUS_WIDTH;
|
|
54
|
-
}
|
|
55
59
|
else {
|
|
56
60
|
widthExtra = REGULAR_WIDTH;
|
|
57
61
|
}
|
|
@@ -68,93 +72,29 @@ const getStringTruncatedWidth = (input, truncationOptions = {}, widthOptions = {
|
|
|
68
72
|
unmatchedStart = unmatchedEnd = 0;
|
|
69
73
|
}
|
|
70
74
|
/* EXITING */
|
|
71
|
-
if (index >= length)
|
|
72
|
-
break;
|
|
73
|
-
/* LATIN */
|
|
74
|
-
LATIN_RE.lastIndex = index;
|
|
75
|
-
if (LATIN_RE.test(input)) {
|
|
76
|
-
lengthExtra = LATIN_RE.lastIndex - index;
|
|
77
|
-
widthExtra = lengthExtra * REGULAR_WIDTH;
|
|
78
|
-
if ((width + widthExtra) > truncationLimit) {
|
|
79
|
-
truncationIndex = Math.min(truncationIndex, index + Math.floor((truncationLimit - width) / REGULAR_WIDTH));
|
|
80
|
-
}
|
|
81
|
-
if ((width + widthExtra) > LIMIT) {
|
|
82
|
-
truncationEnabled = true;
|
|
83
|
-
break;
|
|
84
|
-
}
|
|
85
|
-
width += widthExtra;
|
|
86
|
-
unmatchedStart = indexPrev;
|
|
87
|
-
unmatchedEnd = index;
|
|
88
|
-
index = indexPrev = LATIN_RE.lastIndex;
|
|
89
|
-
continue;
|
|
90
|
-
}
|
|
91
|
-
/* ANSI */
|
|
92
|
-
ANSI_RE.lastIndex = index;
|
|
93
|
-
if (ANSI_RE.test(input)) {
|
|
94
|
-
if ((width + ANSI_WIDTH) > truncationLimit) {
|
|
95
|
-
truncationIndex = Math.min(truncationIndex, index);
|
|
96
|
-
}
|
|
97
|
-
if ((width + ANSI_WIDTH) > LIMIT) {
|
|
98
|
-
truncationEnabled = true;
|
|
99
|
-
break;
|
|
100
|
-
}
|
|
101
|
-
width += ANSI_WIDTH;
|
|
102
|
-
unmatchedStart = indexPrev;
|
|
103
|
-
unmatchedEnd = index;
|
|
104
|
-
index = indexPrev = ANSI_RE.lastIndex;
|
|
105
|
-
continue;
|
|
106
|
-
}
|
|
107
|
-
/* CONTROL */
|
|
108
|
-
CONTROL_RE.lastIndex = index;
|
|
109
|
-
if (CONTROL_RE.test(input)) {
|
|
110
|
-
lengthExtra = CONTROL_RE.lastIndex - index;
|
|
111
|
-
widthExtra = lengthExtra * CONTROL_WIDTH;
|
|
112
|
-
if ((width + widthExtra) > truncationLimit) {
|
|
113
|
-
truncationIndex = Math.min(truncationIndex, index + Math.floor((truncationLimit - width) / CONTROL_WIDTH));
|
|
114
|
-
}
|
|
115
|
-
if ((width + widthExtra) > LIMIT) {
|
|
116
|
-
truncationEnabled = true;
|
|
117
|
-
break;
|
|
118
|
-
}
|
|
119
|
-
width += widthExtra;
|
|
120
|
-
unmatchedStart = indexPrev;
|
|
121
|
-
unmatchedEnd = index;
|
|
122
|
-
index = indexPrev = CONTROL_RE.lastIndex;
|
|
123
|
-
continue;
|
|
124
|
-
}
|
|
125
|
-
/* TAB */
|
|
126
|
-
TAB_RE.lastIndex = index;
|
|
127
|
-
if (TAB_RE.test(input)) {
|
|
128
|
-
lengthExtra = TAB_RE.lastIndex - index;
|
|
129
|
-
widthExtra = lengthExtra * TAB_WIDTH;
|
|
130
|
-
if ((width + widthExtra) > truncationLimit) {
|
|
131
|
-
truncationIndex = Math.min(truncationIndex, index + Math.floor((truncationLimit - width) / TAB_WIDTH));
|
|
132
|
-
}
|
|
133
|
-
if ((width + widthExtra) > LIMIT) {
|
|
134
|
-
truncationEnabled = true;
|
|
135
|
-
break;
|
|
136
|
-
}
|
|
137
|
-
width += widthExtra;
|
|
138
|
-
unmatchedStart = indexPrev;
|
|
139
|
-
unmatchedEnd = index;
|
|
140
|
-
index = indexPrev = TAB_RE.lastIndex;
|
|
141
|
-
continue;
|
|
75
|
+
if (index >= length) {
|
|
76
|
+
break outer;
|
|
142
77
|
}
|
|
143
|
-
/*
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
78
|
+
/* PARSE BLOCKS */
|
|
79
|
+
for (let i = 0, l = PARSE_BLOCKS.length; i < l; i++) {
|
|
80
|
+
const [BLOCK_RE, BLOCK_WIDTH] = PARSE_BLOCKS[i];
|
|
81
|
+
BLOCK_RE.lastIndex = index;
|
|
82
|
+
if (BLOCK_RE.test(input)) {
|
|
83
|
+
lengthExtra = BLOCK_RE === CJKT_WIDE_RE ? getCodePointsLength(input.slice(index, BLOCK_RE.lastIndex)) : BLOCK_RE === EMOJI_RE ? 1 : BLOCK_RE.lastIndex - index;
|
|
84
|
+
widthExtra = lengthExtra * BLOCK_WIDTH;
|
|
85
|
+
if ((width + widthExtra) > truncationLimit) {
|
|
86
|
+
truncationIndex = Math.min(truncationIndex, index + Math.floor((truncationLimit - width) / BLOCK_WIDTH));
|
|
87
|
+
}
|
|
88
|
+
if ((width + widthExtra) > LIMIT) {
|
|
89
|
+
truncationEnabled = true;
|
|
90
|
+
break outer;
|
|
91
|
+
}
|
|
92
|
+
width += widthExtra;
|
|
93
|
+
unmatchedStart = indexPrev;
|
|
94
|
+
unmatchedEnd = index;
|
|
95
|
+
index = indexPrev = BLOCK_RE.lastIndex;
|
|
96
|
+
continue outer;
|
|
152
97
|
}
|
|
153
|
-
width += EMOJI_WIDTH;
|
|
154
|
-
unmatchedStart = indexPrev;
|
|
155
|
-
unmatchedEnd = index;
|
|
156
|
-
index = indexPrev = EMOJI_RE.lastIndex;
|
|
157
|
-
continue;
|
|
158
98
|
}
|
|
159
99
|
/* UNMATCHED INDEX */
|
|
160
100
|
index += 1;
|
|
@@ -4,12 +4,9 @@ type TruncationOptions = {
|
|
|
4
4
|
ellipsisWidth?: number;
|
|
5
5
|
};
|
|
6
6
|
type WidthOptions = {
|
|
7
|
-
ansiWidth?: number;
|
|
8
7
|
controlWidth?: number;
|
|
9
8
|
tabWidth?: number;
|
|
10
|
-
ambiguousWidth?: number;
|
|
11
9
|
emojiWidth?: number;
|
|
12
|
-
fullWidthWidth?: number;
|
|
13
10
|
regularWidth?: number;
|
|
14
11
|
wideWidth?: number;
|
|
15
12
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare const
|
|
1
|
+
declare const getCodePointsLength: (input: string) => number;
|
|
2
2
|
declare const isFullWidth: (x: number) => boolean;
|
|
3
|
-
declare const
|
|
4
|
-
export {
|
|
3
|
+
declare const isWideNotCJKTNotEmoji: (x: number) => boolean;
|
|
4
|
+
export { getCodePointsLength, isFullWidth, isWideNotCJKTNotEmoji };
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
/* MAIN */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
const getCodePointsLength = (() => {
|
|
3
|
+
const SURROGATE_PAIR_RE = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
|
|
4
|
+
return (input) => {
|
|
5
|
+
let surrogatePairsNr = 0;
|
|
6
|
+
SURROGATE_PAIR_RE.lastIndex = 0;
|
|
7
|
+
while (SURROGATE_PAIR_RE.test(input)) {
|
|
8
|
+
surrogatePairsNr += 1;
|
|
9
|
+
}
|
|
10
|
+
return input.length - surrogatePairsNr;
|
|
11
|
+
};
|
|
12
|
+
})();
|
|
8
13
|
const isFullWidth = (x) => {
|
|
9
14
|
return x === 0x3000 || x >= 0xFF01 && x <= 0xFF60 || x >= 0xFFE0 && x <= 0xFFE6;
|
|
10
15
|
};
|
|
11
|
-
const
|
|
12
|
-
return x
|
|
16
|
+
const isWideNotCJKTNotEmoji = (x) => {
|
|
17
|
+
return x === 0x231B || x === 0x2329 || x >= 0x2FF0 && x <= 0x2FFF || x >= 0x3001 && x <= 0x303E || x >= 0x3099 && x <= 0x30FF || x >= 0x3105 && x <= 0x312F || x >= 0x3131 && x <= 0x318E || x >= 0x3190 && x <= 0x31E3 || x >= 0x31EF && x <= 0x321E || x >= 0x3220 && x <= 0x3247 || x >= 0x3250 && x <= 0x4DBF || x >= 0xFE10 && x <= 0xFE19 || x >= 0xFE30 && x <= 0xFE52 || x >= 0xFE54 && x <= 0xFE66 || x >= 0xFE68 && x <= 0xFE6B || x >= 0x1F200 && x <= 0x1F202 || x >= 0x1F210 && x <= 0x1F23B || x >= 0x1F240 && x <= 0x1F248 || x >= 0x20000 && x <= 0x2FFFD || x >= 0x30000 && x <= 0x3FFFD;
|
|
13
18
|
};
|
|
14
19
|
/* EXPORT */
|
|
15
|
-
export {
|
|
20
|
+
export { getCodePointsLength, isFullWidth, isWideNotCJKTNotEmoji };
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"repository": "github:fabiospampinato/fast-string-truncated-width",
|
|
4
4
|
"description": "A fast function for calculating where a string should be truncated, given an optional width limit and an ellipsis string.",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"version": "
|
|
6
|
+
"version": "3.0.3",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "dist/index.js",
|
|
9
9
|
"exports": "./dist/index.js",
|
|
@@ -4,6 +4,8 @@ A fast function for calculating where a string should be truncated, given a widt
|
|
|
4
4
|
|
|
5
5
|
This is a low-level function that basically calculates the visual width of a string and the index at which it should be truncated once printed to the terminal, but taking into account an optional width limit and an optional ellipsis string, so that the string doesn't have to be processed multiple times to be truncated, and how long the part after the truncation point is doesn't cost us anything because we can just ignore it.
|
|
6
6
|
|
|
7
|
+
Note that codepoints considered "ambiguous" in Unicode will always use "regularWidth" as their width, if you need to customize this you should use [`string-width`](https://www.npmjs.com/package/string-width) instead.
|
|
8
|
+
|
|
7
9
|
## Install
|
|
8
10
|
|
|
9
11
|
```sh
|
|
@@ -18,12 +20,9 @@ import fastStringTruncatedWidth from 'fast-string-truncated-width';
|
|
|
18
20
|
// The width of various classes of characters is configurable
|
|
19
21
|
|
|
20
22
|
const widthOptions = {
|
|
21
|
-
ansiWidth: 0,
|
|
22
23
|
controlWidth: 0,
|
|
23
24
|
tabWidth: 8,
|
|
24
|
-
ambiguousWidth: 1,
|
|
25
25
|
emojiWidth: 2,
|
|
26
|
-
fullWidthWidth: 2,
|
|
27
26
|
regularWidth: 1,
|
|
28
27
|
wideWidth: 2
|
|
29
28
|
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"repository": "github:fabiospampinato/fast-string-width",
|
|
4
4
|
"description": "A fast function for calculating the visual width of a string once printed to the terminal.",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"version": "
|
|
6
|
+
"version": "3.0.2",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "dist/index.js",
|
|
9
9
|
"exports": "./dist/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"terminal"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"fast-string-truncated-width": "^
|
|
27
|
+
"fast-string-truncated-width": "^3.0.2"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"fava": "^0.3.4",
|
|
@@ -18,12 +18,9 @@ import fastStringWidth from 'fast-string-width';
|
|
|
18
18
|
// The width of various classes of characters is configurable
|
|
19
19
|
|
|
20
20
|
const options = {
|
|
21
|
-
ansiWidth: 0,
|
|
22
21
|
controlWidth: 0,
|
|
23
22
|
tabWidth: 8,
|
|
24
|
-
ambiguousWidth: 1,
|
|
25
23
|
emojiWidth: 2,
|
|
26
|
-
fullWidthWidth: 2,
|
|
27
24
|
regularWidth: 1,
|
|
28
25
|
wideWidth: 2
|
|
29
26
|
};
|
|
@@ -169,9 +169,12 @@ const exec = (string, columns, options = {}) => {
|
|
|
169
169
|
returnValue += character;
|
|
170
170
|
if (!inSurrogate) {
|
|
171
171
|
inSurrogate = character >= '\ud800' && character <= '\udbff';
|
|
172
|
+
if (inSurrogate) {
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
172
175
|
}
|
|
173
176
|
else {
|
|
174
|
-
|
|
177
|
+
inSurrogate = false;
|
|
175
178
|
}
|
|
176
179
|
if (character === ESC || character === CSI) {
|
|
177
180
|
GROUP_REGEX.lastIndex = i + 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,6 +78,8 @@ Start a local development server:
|
|
|
78
78
|
maizzle serve
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
+
`maizzle dev` is an alias for `maizzle serve`.
|
|
82
|
+
|
|
81
83
|
### Build
|
|
82
84
|
|
|
83
85
|
Build emails for production:
|
|
@@ -86,6 +88,28 @@ Build emails for production:
|
|
|
86
88
|
maizzle build
|
|
87
89
|
```
|
|
88
90
|
|
|
91
|
+
#### Options
|
|
92
|
+
|
|
93
|
+
| Option | Description |
|
|
94
|
+
|--------|-------------|
|
|
95
|
+
| `-c, --config <path>` | Path to a Maizzle config file |
|
|
96
|
+
| `-o, --output <path>` | Output directory |
|
|
97
|
+
| `--dir <path>` | Source directory for email templates |
|
|
98
|
+
| `--ext <extension>` | Output file extension |
|
|
99
|
+
| `--pretty` | Pretty-print HTML output |
|
|
100
|
+
| `--minify` | Minify HTML output |
|
|
101
|
+
| `--plaintext` | Generate plaintext versions alongside HTML |
|
|
102
|
+
|
|
103
|
+
When `-c, --config` is set, the override flags (`-o`, `--dir`, `--ext`, `--pretty`, `--minify`, `--plaintext`) are ignored — your config file is used as-is.
|
|
104
|
+
|
|
105
|
+
### Prepare
|
|
106
|
+
|
|
107
|
+
Generate IDE type definitions in `.maizzle/`. Run after adding new components or composables when you want auto-import types to update without starting the dev server:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
maizzle prepare
|
|
111
|
+
```
|
|
112
|
+
|
|
89
113
|
### Scaffolding
|
|
90
114
|
|
|
91
115
|
You may use the `make` command to scaffold new files for your project.
|
|
@@ -19,9 +19,9 @@ async function makeComponent(filePath) {
|
|
|
19
19
|
path: () => p.text({
|
|
20
20
|
message: "Directory to place it in",
|
|
21
21
|
placeholder: "./components",
|
|
22
|
+
initialValue: "./components",
|
|
22
23
|
validate: (value) => {
|
|
23
24
|
if (!value) return "Please enter a path.";
|
|
24
|
-
if (value[0] !== ".") return "Please enter a relative path.";
|
|
25
25
|
}
|
|
26
26
|
})
|
|
27
27
|
}, { onCancel });
|
|
@@ -13,7 +13,7 @@ async function makeConfig(name) {
|
|
|
13
13
|
placeholder: "production",
|
|
14
14
|
validate: (value) => {
|
|
15
15
|
if (!value) return "Please enter a config name.";
|
|
16
|
-
if (value.includes(" ")) return "Use - instead of spaces.";
|
|
16
|
+
if (value.includes(" ")) return "Use - or . instead of spaces.";
|
|
17
17
|
}
|
|
18
18
|
}) }, { onCancel })).name}.config.ts`, "config.ts");
|
|
19
19
|
}
|
|
@@ -4,7 +4,7 @@ import * as p from "@clack/prompts";
|
|
|
4
4
|
//#region src/commands/make/layout.ts
|
|
5
5
|
async function makeLayout(filePath) {
|
|
6
6
|
if (filePath) {
|
|
7
|
-
await scaffold(filePath, "
|
|
7
|
+
await scaffold(filePath, "Layout.vue");
|
|
8
8
|
return;
|
|
9
9
|
}
|
|
10
10
|
p.intro(`${color.bgCyan(color.black(" maizzle make:layout "))}`);
|
|
@@ -19,13 +19,13 @@ async function makeLayout(filePath) {
|
|
|
19
19
|
path: () => p.text({
|
|
20
20
|
message: "Directory to place it in",
|
|
21
21
|
placeholder: "./components",
|
|
22
|
+
initialValue: "./components",
|
|
22
23
|
validate: (value) => {
|
|
23
24
|
if (!value) return "Please enter a path.";
|
|
24
|
-
if (value[0] !== ".") return "Please enter a relative path.";
|
|
25
25
|
}
|
|
26
26
|
})
|
|
27
27
|
}, { onCancel });
|
|
28
|
-
await scaffold(`${result.path}/${result.filename}`, "
|
|
28
|
+
await scaffold(`${result.path}/${result.filename}`, "Layout.vue");
|
|
29
29
|
}
|
|
30
30
|
//#endregion
|
|
31
31
|
export { makeLayout as default };
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { computed, useAttrs, createStaticVNode, type PropType } from 'vue'
|
|
3
|
+
import { twMerge } from 'tailwind-merge'
|
|
4
|
+
import { outlookFallbackProp } from './utils.ts'
|
|
5
|
+
import { useOutlookFallback } from '../composables/useOutlookFallback'
|
|
6
|
+
|
|
7
|
+
defineOptions({ inheritAttrs: false })
|
|
8
|
+
|
|
9
|
+
const props = defineProps({
|
|
10
|
+
/**
|
|
11
|
+
* Classes to add to the `<body>` tag.
|
|
12
|
+
*/
|
|
13
|
+
bodyClass: {
|
|
14
|
+
type: String,
|
|
15
|
+
default: ''
|
|
16
|
+
},
|
|
17
|
+
/**
|
|
18
|
+
* Language code for the `lang` and `xml:lang` attributes.
|
|
19
|
+
*
|
|
20
|
+
* @default 'en'
|
|
21
|
+
*/
|
|
22
|
+
lang: {
|
|
23
|
+
type: String,
|
|
24
|
+
default: 'en'
|
|
25
|
+
},
|
|
26
|
+
/**
|
|
27
|
+
* Text direction.
|
|
28
|
+
*
|
|
29
|
+
* @default 'ltr'
|
|
30
|
+
*/
|
|
31
|
+
dir: {
|
|
32
|
+
type: String as PropType<'ltr' | 'rtl'>,
|
|
33
|
+
default: 'ltr'
|
|
34
|
+
},
|
|
35
|
+
/**
|
|
36
|
+
* Render an empty `<head>` before the main head element.
|
|
37
|
+
*
|
|
38
|
+
* This is a workaround for Yahoo! Mail on Android, which
|
|
39
|
+
* strips the first `<head>` element it finds.
|
|
40
|
+
*
|
|
41
|
+
* @default false
|
|
42
|
+
*/
|
|
43
|
+
doubleHead: {
|
|
44
|
+
type: [Boolean, String],
|
|
45
|
+
default: false
|
|
46
|
+
},
|
|
47
|
+
/**
|
|
48
|
+
* Accessible label for the email article wrapper.
|
|
49
|
+
*
|
|
50
|
+
* Used as the `aria-label` on the inner `<div role="article">`.
|
|
51
|
+
*
|
|
52
|
+
* @example 'Order confirmation'
|
|
53
|
+
*/
|
|
54
|
+
ariaLabel: {
|
|
55
|
+
type: String,
|
|
56
|
+
default: undefined
|
|
57
|
+
},
|
|
58
|
+
/**
|
|
59
|
+
* Toggle Outlook (MSO) and VML fallback markup for this
|
|
60
|
+
* component and all descendants.
|
|
61
|
+
*
|
|
62
|
+
* When `false`, skips MSO ghost tables, VML shapes,
|
|
63
|
+
* `xmlns:v`/`xmlns:o` attributes, and mso-specific CSS
|
|
64
|
+
* in all built-in components.
|
|
65
|
+
*
|
|
66
|
+
* @default true
|
|
67
|
+
*/
|
|
68
|
+
outlookFallback: outlookFallbackProp,
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
const outlookFallback = useOutlookFallback(props.outlookFallback)
|
|
72
|
+
|
|
73
|
+
const attrs = useAttrs()
|
|
74
|
+
const bodyMergedClass = computed(() => twMerge('m-0 p-0 size-full [word-break:break-word]', props.bodyClass))
|
|
75
|
+
const articleMergedClass = computed(() => twMerge('[font-size:max(16px,1rem)] font-inter', attrs.class as string))
|
|
76
|
+
|
|
77
|
+
const EmptyHead = () => createStaticVNode('<head></head>', 1)
|
|
78
|
+
|
|
79
|
+
const MsoHead = () => createStaticVNode(
|
|
80
|
+
`<!--[if mso]>
|
|
81
|
+
<style>
|
|
82
|
+
td,th,div,p,a,h1,h2,h3,h4,h5,h6 {font-family: "Segoe UI", sans-serif; mso-line-height-rule: exactly;}
|
|
83
|
+
.mso-break-all {word-break: break-all;}
|
|
84
|
+
</style>
|
|
85
|
+
<![endif]-->`,
|
|
86
|
+
1
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
const msoBody = `<!--[if mso]>
|
|
90
|
+
<xml>
|
|
91
|
+
<o:OfficeDocumentSettings>
|
|
92
|
+
<o:PixelsPerInch>96</o:PixelsPerInch>
|
|
93
|
+
</o:OfficeDocumentSettings>
|
|
94
|
+
<w:WordDocument>
|
|
95
|
+
<w:DontUseAdvancedTypographyReadingMail />
|
|
96
|
+
</w:WordDocument>
|
|
97
|
+
</xml>
|
|
98
|
+
<![endif]-->`
|
|
99
|
+
|
|
100
|
+
const htmlXmlns = computed(() => outlookFallback ? {
|
|
101
|
+
'xmlns:v': 'urn:schemas-microsoft-com:vml',
|
|
102
|
+
'xmlns:o': 'urn:schemas-microsoft-com:office:office',
|
|
103
|
+
} : {})
|
|
104
|
+
</script>
|
|
105
|
+
|
|
106
|
+
<template>
|
|
107
|
+
<html :lang="lang" :dir="dir" v-bind="htmlXmlns">
|
|
108
|
+
<EmptyHead v-if="props.doubleHead === true || props.doubleHead === 'true'" />
|
|
109
|
+
|
|
110
|
+
<head>
|
|
111
|
+
<meta charset="utf-8">
|
|
112
|
+
<meta name="x-apple-disable-message-reformatting">
|
|
113
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
114
|
+
<meta name="format-detection" content="telephone=no, date=no, address=no, email=no, url=no">
|
|
115
|
+
<meta name="color-scheme" content="light dark">
|
|
116
|
+
<meta name="supported-color-schemes" content="light dark">
|
|
117
|
+
<MsoHead v-if="outlookFallback" />
|
|
118
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
119
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous">
|
|
120
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet" media="screen">
|
|
121
|
+
<style>
|
|
122
|
+
@import "@maizzle/tailwindcss";
|
|
123
|
+
|
|
124
|
+
img {
|
|
125
|
+
@apply max-w-full align-middle;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
</style>
|
|
129
|
+
</head>
|
|
130
|
+
|
|
131
|
+
<body :xml:lang="outlookFallback ? lang : null" :class="bodyMergedClass">
|
|
132
|
+
<span v-if="outlookFallback" style="display: none" v-html="msoBody"></span>
|
|
133
|
+
<div
|
|
134
|
+
role="article"
|
|
135
|
+
aria-roledescription="email"
|
|
136
|
+
:aria-label="ariaLabel"
|
|
137
|
+
:lang="lang"
|
|
138
|
+
:dir="dir"
|
|
139
|
+
style="font-size: medium;"
|
|
140
|
+
:class="articleMergedClass">
|
|
141
|
+
<slot />
|
|
142
|
+
</div>
|
|
143
|
+
</body>
|
|
144
|
+
|
|
145
|
+
</html>
|
|
146
|
+
</template>
|