@maizzle/framework 6.0.13 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -203,7 +203,7 @@ const MsoIconGap = () => createStaticVNode(
203
203
  <MsoSpacerLeft v-if="outlookFallback" />
204
204
  <template v-if="icon && iconPosition === 'left'">
205
205
  <span :style="textSpanStyle">
206
- <img :src="icon" :width="parsedIconWidth" :alt="iconAlt" style="vertical-align: baseline; max-width: 100%;" :class="iconClass">
206
+ <img :src="icon" :width="parsedIconWidth" :alt="iconAlt" :class="twMerge('max-w-full align-baseline', iconClass)">
207
207
  </span>
208
208
  <MsoIconGap v-if="outlookFallback" />
209
209
  </template>
@@ -211,7 +211,7 @@ const MsoIconGap = () => createStaticVNode(
211
211
  <template v-if="icon && iconPosition === 'right'">
212
212
  <MsoIconGap v-if="outlookFallback" />
213
213
  <span :style="textSpanStyle">
214
- <img :src="icon" :width="parsedIconWidth" :alt="iconAlt" style="vertical-align: baseline; max-width: 100%;" :class="iconClass">
214
+ <img :src="icon" :width="parsedIconWidth" :alt="iconAlt" :class="twMerge('max-w-full align-baseline', iconClass)">
215
215
  </span>
216
216
  </template>
217
217
  <MsoSpacerRight v-if="outlookFallback" />
@@ -0,0 +1,14 @@
1
+ import { Plugin } from "postcss";
2
+ //#region src/plugins/postcss/flattenGradients.d.ts
3
+ /** A gradient combo found on a DOM element. */
4
+ interface GradientCombo {
5
+ /** Generated class name to emit the flat rule for. */
6
+ className: string;
7
+ /** The gradient utility class tokens present on the element. */
8
+ classes: string[];
9
+ }
10
+ declare const _default: (combos?: GradientCombo[]) => Plugin;
11
+ declare const postcss = true;
12
+ //#endregion
13
+ export { GradientCombo, _default as default, postcss };
14
+ //# sourceMappingURL=flattenGradients.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flattenGradients.d.ts","names":[],"sources":["../../../src/plugins/postcss/flattenGradients.ts"],"mappings":";;;UA6BiB;;EAEf;;EAEA;;cAuCc,WAAA,SAAQ,oBAAuB;cA4HlC"}
@@ -0,0 +1,144 @@
1
+ import { Rule } from "postcss";
2
+ //#region src/plugins/postcss/flattenGradients.ts
3
+ /**
4
+ * postcss-flatten-gradients
5
+ *
6
+ * Tailwind v4 renders gradients as CSS-variable machinery split across
7
+ * separate utility rules (`bg-linear-*`, `from-*`, `via-*`, `to-*`),
8
+ * combining only on the element that carries every class. Email clients
9
+ * don't support `var()` and Maizzle inlines styles, so the variables
10
+ * never resolve and the gradient renders nothing.
11
+ *
12
+ * Given the per-element gradient combos (computed from the DOM by the
13
+ * tailwindcss transformer), this plugin reads the `--tw-gradient-*`
14
+ * values off the utility rules and emits a single flat rule per combo:
15
+ *
16
+ * .bg-linear-gradient-to-bl-from-indigo-50-to-indigo-600 {
17
+ * background-image: linear-gradient(to bottom left,
18
+ * var(--color-indigo-50), var(--color-indigo-600));
19
+ * }
20
+ *
21
+ * Colors stay as `var(--color-*)` (or literals) so the downstream
22
+ * resolveProps + lightningcss steps convert them to hex, exactly like
23
+ * every other Tailwind color. The dead utility rules are then removed.
24
+ */
25
+ const PLUGIN_NAME = "postcss-flatten-gradients";
26
+ const GRADIENT_UTILITY_RE = /^(from|via|to)-|^bg-(linear|radial|conic)\b/;
27
+ const GENERATED_RE = /^bg-(linear|radial|conic)-gradient-/;
28
+ /**
29
+ * Color-interpolation method Tailwind appends to the position (e.g.
30
+ * `in oklab`, `in oklch longer hue`). It always trails the direction and
31
+ * is unsupported in email, so strip from `in <space>` to the end.
32
+ */
33
+ const INTERP_RE = /(?:^|\s+)in\s+\S.*$/i;
34
+ /** Turn a single-class selector into its raw class token (`.from-\[\#f00\]` -> `from-[#f00]`). */
35
+ function selectorToClass(selector) {
36
+ const match = selector.match(/^\.((?:\\.|[^\s,>+~.])+)$/);
37
+ if (!match) return null;
38
+ return match[1].replace(/\\(.)/g, "$1");
39
+ }
40
+ /** Strip the interpolation method so `to top in oklab` becomes `to top`. */
41
+ function stripInterpolation(position) {
42
+ return position.replace(INTERP_RE, "").trim();
43
+ }
44
+ var flattenGradients_default = (combos = []) => {
45
+ return {
46
+ postcssPlugin: PLUGIN_NAME,
47
+ Once(root) {
48
+ if (!combos.length) return;
49
+ const utilities = /* @__PURE__ */ new Map();
50
+ root.walkRules((rule) => {
51
+ const cls = selectorToClass(rule.selector);
52
+ if (!cls || !GRADIENT_UTILITY_RE.test(cls)) return;
53
+ const info = utilities.get(cls) ?? {};
54
+ rule.each((node) => {
55
+ if (node.type !== "decl") return;
56
+ switch (node.prop) {
57
+ case "--tw-gradient-position":
58
+ info.position = node.value;
59
+ break;
60
+ case "--tw-gradient-from":
61
+ info.from = node.value;
62
+ break;
63
+ case "--tw-gradient-via":
64
+ info.via = node.value;
65
+ break;
66
+ case "--tw-gradient-to":
67
+ info.to = node.value;
68
+ break;
69
+ case "--tw-gradient-from-position":
70
+ info.fromPosition = node.value;
71
+ break;
72
+ case "--tw-gradient-via-position":
73
+ info.viaPosition = node.value;
74
+ break;
75
+ case "--tw-gradient-to-position":
76
+ info.toPosition = node.value;
77
+ break;
78
+ case "background-image": {
79
+ const fn = node.value.match(/^(linear|radial|conic)-gradient\(/);
80
+ if (fn) info.fn = fn[1];
81
+ break;
82
+ }
83
+ }
84
+ });
85
+ info.rule = rule;
86
+ utilities.set(cls, info);
87
+ });
88
+ for (const combo of combos) {
89
+ const fnClass = combo.classes.find((c) => /^bg-(linear|radial|conic)\b/.test(c));
90
+ if (!fnClass) continue;
91
+ const fnInfo = utilities.get(fnClass);
92
+ const fn = fnInfo?.fn;
93
+ if (!fn) continue;
94
+ let from;
95
+ let via;
96
+ let to;
97
+ let fromPosition;
98
+ let viaPosition;
99
+ let toPosition;
100
+ for (const cls of combo.classes) {
101
+ const info = utilities.get(cls);
102
+ if (!info) continue;
103
+ if (info.from !== void 0) from = info.from;
104
+ if (info.via !== void 0) via = info.via;
105
+ if (info.to !== void 0) to = info.to;
106
+ if (info.fromPosition !== void 0) fromPosition = info.fromPosition;
107
+ if (info.viaPosition !== void 0) viaPosition = info.viaPosition;
108
+ if (info.toPosition !== void 0) toPosition = info.toPosition;
109
+ }
110
+ from = from ?? "transparent";
111
+ to = to ?? "transparent";
112
+ const direction = fnInfo?.position ? stripInterpolation(fnInfo.position) : "";
113
+ const stops = [];
114
+ stops.push(fromPosition && fromPosition !== "0%" ? `${from} ${fromPosition}` : from);
115
+ if (via !== void 0) stops.push(viaPosition && viaPosition !== "50%" ? `${via} ${viaPosition}` : via);
116
+ stops.push(toPosition && toPosition !== "100%" ? `${to} ${toPosition}` : to);
117
+ const args = direction ? `${direction}, ${stops.join(", ")}` : stops.join(", ");
118
+ const generated = new Rule({ selector: `.${combo.className}` });
119
+ generated.append({
120
+ prop: "background-image",
121
+ value: `${fn}-gradient(${args})`
122
+ });
123
+ /**
124
+ * Insert at the position of the source utility rule (still present
125
+ * — removal happens below) so the gradient keeps that rule's place
126
+ * in the cascade. Appending to the root would move it past any
127
+ * later author CSS that should override it.
128
+ */
129
+ const anchor = fnInfo?.rule;
130
+ if (anchor?.parent) anchor.before(generated);
131
+ else root.append(generated);
132
+ }
133
+ root.walkRules((rule) => {
134
+ const cls = selectorToClass(rule.selector);
135
+ if (cls && !GENERATED_RE.test(cls) && GRADIENT_UTILITY_RE.test(cls)) rule.remove();
136
+ });
137
+ }
138
+ };
139
+ };
140
+ const postcss = true;
141
+ //#endregion
142
+ export { flattenGradients_default as default, postcss };
143
+
144
+ //# sourceMappingURL=flattenGradients.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flattenGradients.js","names":[],"sources":["../../../src/plugins/postcss/flattenGradients.ts"],"sourcesContent":["/**\n * postcss-flatten-gradients\n *\n * Tailwind v4 renders gradients as CSS-variable machinery split across\n * separate utility rules (`bg-linear-*`, `from-*`, `via-*`, `to-*`),\n * combining only on the element that carries every class. Email clients\n * don't support `var()` and Maizzle inlines styles, so the variables\n * never resolve and the gradient renders nothing.\n *\n * Given the per-element gradient combos (computed from the DOM by the\n * tailwindcss transformer), this plugin reads the `--tw-gradient-*`\n * values off the utility rules and emits a single flat rule per combo:\n *\n * .bg-linear-gradient-to-bl-from-indigo-50-to-indigo-600 {\n * background-image: linear-gradient(to bottom left,\n * var(--color-indigo-50), var(--color-indigo-600));\n * }\n *\n * Colors stay as `var(--color-*)` (or literals) so the downstream\n * resolveProps + lightningcss steps convert them to hex, exactly like\n * every other Tailwind color. The dead utility rules are then removed.\n */\n\nimport { Rule } from 'postcss'\nimport type { Plugin, Root } from 'postcss'\n\nconst PLUGIN_NAME = 'postcss-flatten-gradients'\n\n/** A gradient combo found on a DOM element. */\nexport interface GradientCombo {\n /** Generated class name to emit the flat rule for. */\n className: string\n /** The gradient utility class tokens present on the element. */\n classes: string[]\n}\n\ntype GradientFn = 'linear' | 'radial' | 'conic'\n\ninterface UtilityInfo {\n fn?: GradientFn\n position?: string\n from?: string\n via?: string\n to?: string\n fromPosition?: string\n viaPosition?: string\n toPosition?: string\n /** The source rule, used to anchor the generated rule in the cascade. */\n rule?: Rule\n}\n\nconst GRADIENT_UTILITY_RE = /^(from|via|to)-|^bg-(linear|radial|conic)\\b/\nconst GENERATED_RE = /^bg-(linear|radial|conic)-gradient-/\n/**\n * Color-interpolation method Tailwind appends to the position (e.g.\n * `in oklab`, `in oklch longer hue`). It always trails the direction and\n * is unsupported in email, so strip from `in <space>` to the end.\n */\nconst INTERP_RE = /(?:^|\\s+)in\\s+\\S.*$/i\n\n/** Turn a single-class selector into its raw class token (`.from-\\[\\#f00\\]` -> `from-[#f00]`). */\nfunction selectorToClass(selector: string): string | null {\n const match = selector.match(/^\\.((?:\\\\.|[^\\s,>+~.])+)$/)\n if (!match) return null\n return match[1].replace(/\\\\(.)/g, '$1')\n}\n\n/** Strip the interpolation method so `to top in oklab` becomes `to top`. */\nfunction stripInterpolation(position: string): string {\n return position.replace(INTERP_RE, '').trim()\n}\n\nexport default (combos: GradientCombo[] = []): Plugin => {\n return {\n postcssPlugin: PLUGIN_NAME,\n\n Once(root: Root) {\n if (!combos.length) return\n\n // Index every single-class gradient utility rule by its class token.\n const utilities = new Map<string, UtilityInfo>()\n\n root.walkRules((rule) => {\n const cls = selectorToClass(rule.selector)\n if (!cls || !GRADIENT_UTILITY_RE.test(cls)) return\n\n const info = utilities.get(cls) ?? {}\n\n // Only read declarations directly on the rule, skipping the\n // nested @supports overrides Tailwind adds for oklab.\n rule.each((node) => {\n if (node.type !== 'decl') return\n switch (node.prop) {\n case '--tw-gradient-position':\n info.position = node.value\n break\n case '--tw-gradient-from':\n info.from = node.value\n break\n case '--tw-gradient-via':\n info.via = node.value\n break\n case '--tw-gradient-to':\n info.to = node.value\n break\n case '--tw-gradient-from-position':\n info.fromPosition = node.value\n break\n case '--tw-gradient-via-position':\n info.viaPosition = node.value\n break\n case '--tw-gradient-to-position':\n info.toPosition = node.value\n break\n case 'background-image': {\n const fn = node.value.match(/^(linear|radial|conic)-gradient\\(/)\n if (fn) info.fn = fn[1] as GradientFn\n break\n }\n }\n })\n\n info.rule = rule\n utilities.set(cls, info)\n })\n\n // Emit one flat rule per combo.\n for (const combo of combos) {\n const fnClass = combo.classes.find(c => /^bg-(linear|radial|conic)\\b/.test(c))\n if (!fnClass) continue\n\n const fnInfo = utilities.get(fnClass)\n const fn = fnInfo?.fn\n if (!fn) continue\n\n let from: string | undefined\n let via: string | undefined\n let to: string | undefined\n let fromPosition: string | undefined\n let viaPosition: string | undefined\n let toPosition: string | undefined\n\n for (const cls of combo.classes) {\n const info = utilities.get(cls)\n if (!info) continue\n if (info.from !== undefined) from = info.from\n if (info.via !== undefined) via = info.via\n if (info.to !== undefined) to = info.to\n if (info.fromPosition !== undefined) fromPosition = info.fromPosition\n if (info.viaPosition !== undefined) viaPosition = info.viaPosition\n if (info.toPosition !== undefined) toPosition = info.toPosition\n }\n\n // Tailwind defaults an unset from/to to transparent (#0000).\n from = from ?? 'transparent'\n to = to ?? 'transparent'\n\n const direction = fnInfo?.position ? stripInterpolation(fnInfo.position) : ''\n\n const stops: string[] = []\n stops.push(fromPosition && fromPosition !== '0%' ? `${from} ${fromPosition}` : from)\n if (via !== undefined) {\n stops.push(viaPosition && viaPosition !== '50%' ? `${via} ${viaPosition}` : via)\n }\n stops.push(toPosition && toPosition !== '100%' ? `${to} ${toPosition}` : to)\n\n const args = direction ? `${direction}, ${stops.join(', ')}` : stops.join(', ')\n\n const generated = new Rule({ selector: `.${combo.className}` })\n generated.append({ prop: 'background-image', value: `${fn}-gradient(${args})` })\n\n /**\n * Insert at the position of the source utility rule (still present\n * — removal happens below) so the gradient keeps that rule's place\n * in the cascade. Appending to the root would move it past any\n * later author CSS that should override it.\n */\n const anchor = fnInfo?.rule\n if (anchor?.parent) {\n anchor.before(generated)\n } else {\n root.append(generated)\n }\n }\n\n // Remove the now-dead gradient utility rules.\n root.walkRules((rule) => {\n const cls = selectorToClass(rule.selector)\n if (cls && !GENERATED_RE.test(cls) && GRADIENT_UTILITY_RE.test(cls)) {\n rule.remove()\n }\n })\n },\n }\n}\n\nexport const postcss = true\n"],"mappings":"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"}
@@ -1,67 +1,67 @@
1
1
  {
2
- "hash": "da0a6e25",
3
- "configHash": "b212ebf5",
2
+ "hash": "d911c788",
3
+ "configHash": "f30e72cc",
4
4
  "lockfileHash": "e3b0c442",
5
- "browserHash": "301a5498",
5
+ "browserHash": "e06e436e",
6
6
  "optimized": {
7
7
  "@lucide/vue": {
8
8
  "src": "../../../../../node_modules/@lucide/vue/dist/esm/lucide-vue.mjs",
9
9
  "file": "@lucide_vue.js",
10
- "fileHash": "678a9764",
10
+ "fileHash": "9aa466eb",
11
11
  "needsInterop": false
12
12
  },
13
13
  "@vueuse/core": {
14
14
  "src": "../../../../../node_modules/@vueuse/core/dist/index.js",
15
15
  "file": "@vueuse_core.js",
16
- "fileHash": "8ce516c5",
16
+ "fileHash": "ab3d1d06",
17
17
  "needsInterop": false
18
18
  },
19
19
  "@vueuse/shared": {
20
20
  "src": "../../../../../node_modules/@vueuse/shared/dist/index.js",
21
21
  "file": "@vueuse_shared.js",
22
- "fileHash": "794dbf7a",
22
+ "fileHash": "45075773",
23
23
  "needsInterop": false
24
24
  },
25
25
  "class-variance-authority": {
26
26
  "src": "../../../../../node_modules/class-variance-authority/dist/index.mjs",
27
27
  "file": "class-variance-authority.js",
28
- "fileHash": "d2ce50b9",
28
+ "fileHash": "16ab9b85",
29
29
  "needsInterop": false
30
30
  },
31
31
  "clsx": {
32
32
  "src": "../../../../../node_modules/clsx/dist/clsx.mjs",
33
33
  "file": "clsx.js",
34
- "fileHash": "7c01443d",
34
+ "fileHash": "30b50a06",
35
35
  "needsInterop": false
36
36
  },
37
37
  "culori": {
38
38
  "src": "../../../../../node_modules/culori/src/index.js",
39
39
  "file": "culori.js",
40
- "fileHash": "c77a9983",
40
+ "fileHash": "06b22b9a",
41
41
  "needsInterop": false
42
42
  },
43
43
  "reka-ui": {
44
44
  "src": "../../../../../node_modules/reka-ui/dist/index.js",
45
45
  "file": "reka-ui.js",
46
- "fileHash": "1032cd9a",
46
+ "fileHash": "e2455ae5",
47
47
  "needsInterop": false
48
48
  },
49
49
  "tailwind-merge": {
50
50
  "src": "../../../../../node_modules/tailwind-merge/dist/bundle-cjs.js",
51
51
  "file": "tailwind-merge.js",
52
- "fileHash": "04e043e4",
52
+ "fileHash": "d658c1c9",
53
53
  "needsInterop": true
54
54
  },
55
55
  "vue-router": {
56
56
  "src": "../../../../../node_modules/vue-router/dist/vue-router.js",
57
57
  "file": "vue-router.js",
58
- "fileHash": "5dd654c7",
58
+ "fileHash": "47dd3c59",
59
59
  "needsInterop": false
60
60
  },
61
61
  "vue": {
62
62
  "src": "../../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
63
63
  "file": "vue.js",
64
- "fileHash": "4ea85af4",
64
+ "fileHash": "b53353fd",
65
65
  "needsInterop": false
66
66
  }
67
67
  },