@mulmocast/deck 0.1.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/layouts/big_quote.js +4 -1
- package/lib/layouts/columns.js +3 -2
- package/lib/layouts/stats.js +3 -0
- package/lib/layouts/title.js +6 -1
- package/lib/render.js +26 -5
- package/lib/schema.d.ts +500 -0
- package/lib/schema.js +22 -0
- package/lib/utils.d.ts +31 -1
- package/lib/utils.js +53 -6
- package/package.json +1 -1
package/lib/layouts/big_quote.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { renderInlineMarkup, accentBar, resolveAccent } from "../utils.js";
|
|
1
|
+
import { renderInlineMarkup, accentBar, resolveAccent, renderEyebrow } from "../utils.js";
|
|
2
2
|
export const layoutBigQuote = (data) => {
|
|
3
3
|
const accent = resolveAccent(data.accentColor);
|
|
4
|
+
const eyebrowHtml = renderEyebrow(data.eyebrow, accent);
|
|
4
5
|
const parts = [];
|
|
5
6
|
parts.push(`<div class="flex flex-col items-center justify-center h-full px-20">`);
|
|
7
|
+
if (eyebrowHtml)
|
|
8
|
+
parts.push(` <div class="mb-6">${eyebrowHtml}</div>`);
|
|
6
9
|
parts.push(` ${accentBar(accent, "w-24 mb-8")}`);
|
|
7
10
|
parts.push(` <blockquote class="text-[32px] text-d-text font-title italic text-center leading-relaxed">`);
|
|
8
11
|
parts.push(` “${renderInlineMarkup(data.quote)}”`);
|
package/lib/layouts/columns.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { renderInlineMarkup, c, cardWrap, numBadge, iconSquare, slideHeader, renderOptionalCallout, resolveAccent } from "../utils.js";
|
|
1
|
+
import { renderInlineMarkup, c, cardWrap, numBadge, iconSquare, slideHeader, renderOptionalCallout, resolveAccent, renderNumLabel } from "../utils.js";
|
|
2
2
|
import { renderCardContentBlocks } from "../blocks.js";
|
|
3
3
|
const buildColumnCard = (col) => {
|
|
4
4
|
const accent = resolveAccent(col.accentColor);
|
|
@@ -19,7 +19,8 @@ const buildColumnCard = (col) => {
|
|
|
19
19
|
if (col.label) {
|
|
20
20
|
inner.push(`<p class="text-sm font-bold text-${c(accent)} font-body">${renderInlineMarkup(col.label)}</p>`);
|
|
21
21
|
}
|
|
22
|
-
|
|
22
|
+
const numPrefix = renderNumLabel(col.numLabel, accent);
|
|
23
|
+
inner.push(`<h3 class="text-2xl font-title font-bold text-d-text mt-1">${numPrefix}${renderInlineMarkup(col.title)}</h3>`);
|
|
23
24
|
}
|
|
24
25
|
if (col.content) {
|
|
25
26
|
const centerCls = col.icon ? "text-center" : "";
|
package/lib/layouts/stats.js
CHANGED
|
@@ -9,6 +9,9 @@ export const layoutStats = (data) => {
|
|
|
9
9
|
const color = resolveItemColor(stat.color, data.accentColor);
|
|
10
10
|
parts.push(`<div class="flex-1 bg-d-card rounded-lg shadow-lg p-10 text-center">`);
|
|
11
11
|
parts.push(` <div class="h-[3px] bg-${c(color)} rounded-full w-12 mx-auto mb-6"></div>`);
|
|
12
|
+
if (stat.numLabel) {
|
|
13
|
+
parts.push(` <p class="font-accent font-extrabold text-${c(color)} text-sm tracking-wider mb-2">${renderInlineMarkup(stat.numLabel)}</p>`);
|
|
14
|
+
}
|
|
12
15
|
parts.push(` <p class="text-[52px] font-bold text-${c(color)} font-body leading-none">${renderInlineMarkup(stat.value)}</p>`);
|
|
13
16
|
parts.push(` <p class="text-lg text-d-muted font-body mt-4">${renderInlineMarkup(stat.label)}</p>`);
|
|
14
17
|
if (stat.change) {
|
package/lib/layouts/title.js
CHANGED
|
@@ -1,16 +1,21 @@
|
|
|
1
|
-
import { renderInlineMarkup, accentBar } from "../utils.js";
|
|
1
|
+
import { renderInlineMarkup, accentBar, renderEyebrow, renderChipRow, resolveAccent } from "../utils.js";
|
|
2
2
|
export const layoutTitle = (data) => {
|
|
3
|
+
const accent = resolveAccent(data.accentColor);
|
|
4
|
+
const eyebrowHtml = renderEyebrow(data.eyebrow, accent);
|
|
5
|
+
const chipsHtml = renderChipRow(data.chips);
|
|
3
6
|
return [
|
|
4
7
|
accentBar("primary"),
|
|
5
8
|
`<div class="absolute -top-20 -right-8 w-[360px] h-[360px] rounded-full bg-d-primary opacity-10"></div>`,
|
|
6
9
|
`<div class="absolute -bottom-12 -left-16 w-[280px] h-[280px] rounded-full bg-d-accent opacity-10"></div>`,
|
|
7
10
|
`<div class="flex flex-col justify-center h-full px-16 relative z-10">`,
|
|
11
|
+
eyebrowHtml ? ` <div class="mb-4">${eyebrowHtml}</div>` : "",
|
|
8
12
|
` <h1 class="text-[60px] leading-tight font-title font-bold text-d-text">${renderInlineMarkup(data.title)}</h1>`,
|
|
9
13
|
data.subtitle ? ` <p class="text-2xl text-d-muted mt-6 font-body">${renderInlineMarkup(data.subtitle)}</p>` : "",
|
|
10
14
|
data.author ? ` <p class="text-lg text-d-dim mt-10 font-body">${renderInlineMarkup(data.author)}</p>` : "",
|
|
11
15
|
data.note
|
|
12
16
|
? ` <div class="bg-d-card px-4 py-2 mt-6 inline-block rounded"><p class="text-sm text-d-dim font-body">${renderInlineMarkup(data.note)}</p></div>`
|
|
13
17
|
: "",
|
|
18
|
+
chipsHtml,
|
|
14
19
|
`</div>`,
|
|
15
20
|
accentBar("accent", "absolute bottom-0 left-0 right-0"),
|
|
16
21
|
]
|
package/lib/render.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { escapeHtml, buildTailwindConfig, sanitizeHex, detectBlockTypes } from "./utils.js";
|
|
1
|
+
import { escapeHtml, buildTailwindConfig, sanitizeHex, detectBlockTypes, isSafeCssBackground } from "./utils.js";
|
|
2
2
|
import { renderSlideContent } from "./layouts/index.js";
|
|
3
3
|
/** Determine if a hex color is dark (luminance < 128) */
|
|
4
4
|
const isDarkBg = (hex) => {
|
|
@@ -64,9 +64,30 @@ export const generateSlideHTML = (theme, slide, reference, branding) => {
|
|
|
64
64
|
const cdnScripts = buildCdnScripts(theme, slide);
|
|
65
65
|
const slideStyle = slide.style;
|
|
66
66
|
const hasBgOpacity = branding?.backgroundImage?.bgOpacity !== undefined;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
// Background resolution priority (any new field is optional; when absent the output is byte-identical to pre-extension behavior):
|
|
68
|
+
// slide.style.bgGradient > theme.bgGradient > slide.style.bgColor > theme.colors.bg (via `bg-d-bg` class).
|
|
69
|
+
// hasBgOpacity (branding bg image with custom opacity) still suppresses background styling, as before.
|
|
70
|
+
let bgCls = "";
|
|
71
|
+
let inlineStyle = "";
|
|
72
|
+
if (!hasBgOpacity) {
|
|
73
|
+
const slideBgGradient = slideStyle?.bgGradient && isSafeCssBackground(slideStyle.bgGradient) ? slideStyle.bgGradient : undefined;
|
|
74
|
+
const themeBgGradient = !slideBgGradient && theme.bgGradient && isSafeCssBackground(theme.bgGradient) ? theme.bgGradient : undefined;
|
|
75
|
+
const bgGradient = slideBgGradient ?? themeBgGradient;
|
|
76
|
+
if (bgGradient) {
|
|
77
|
+
inlineStyle = ` style="background:${bgGradient}"`;
|
|
78
|
+
}
|
|
79
|
+
else if (slideStyle?.bgColor) {
|
|
80
|
+
inlineStyle = ` style="background-color:#${sanitizeHex(slideStyle.bgColor)}"`;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
bgCls = "bg-d-bg";
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Optional `<style>` block: when theme.titleGradient is set (and safe), paint h1 titles with a background-clipped gradient.
|
|
87
|
+
// Prepend a newline so that when set the block appears on its own line; when empty, no extra blank line is emitted.
|
|
88
|
+
const titleGradientCss = theme.titleGradient && isSafeCssBackground(theme.titleGradient)
|
|
89
|
+
? `\n<style>h1.font-title.font-bold{background:${theme.titleGradient};-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}</style>`
|
|
90
|
+
: "";
|
|
70
91
|
const footer = slideStyle?.footer ? `<p class="absolute bottom-2 right-4 text-xs text-d-dim font-body">${escapeHtml(slideStyle.footer)}</p>` : "";
|
|
71
92
|
const referenceHtml = reference
|
|
72
93
|
? `<div class="mt-auto px-4 pb-2"><p class="text-sm text-d-muted font-body opacity-80">${escapeHtml(reference)}</p></div>`
|
|
@@ -84,7 +105,7 @@ export const generateSlideHTML = (theme, slide, reference, branding) => {
|
|
|
84
105
|
${cdnScripts}
|
|
85
106
|
<style>
|
|
86
107
|
html, body { height: 100%; margin: 0; padding: 0; overflow: hidden; }
|
|
87
|
-
</style
|
|
108
|
+
</style>${titleGradientCss}
|
|
88
109
|
</head>
|
|
89
110
|
<body class="h-full">
|
|
90
111
|
<div class="relative overflow-hidden ${bgCls} w-full h-full flex flex-col"${inlineStyle}>
|
package/lib/schema.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ export declare const slideThemeFontsSchema: z.ZodObject<{
|
|
|
28
28
|
title: z.ZodString;
|
|
29
29
|
body: z.ZodString;
|
|
30
30
|
mono: z.ZodString;
|
|
31
|
+
accent: z.ZodOptional<z.ZodString>;
|
|
31
32
|
}, z.core.$strip>;
|
|
32
33
|
export declare const slideThemeSchema: z.ZodObject<{
|
|
33
34
|
colors: z.ZodObject<{
|
|
@@ -49,7 +50,10 @@ export declare const slideThemeSchema: z.ZodObject<{
|
|
|
49
50
|
title: z.ZodString;
|
|
50
51
|
body: z.ZodString;
|
|
51
52
|
mono: z.ZodString;
|
|
53
|
+
accent: z.ZodOptional<z.ZodString>;
|
|
52
54
|
}, z.core.$strip>;
|
|
55
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
56
|
+
titleGradient: z.ZodOptional<z.ZodString>;
|
|
53
57
|
}, z.core.$strip>;
|
|
54
58
|
export declare const textBlockSchema: z.ZodObject<{
|
|
55
59
|
type: z.ZodLiteral<"text">;
|
|
@@ -891,19 +895,35 @@ export declare const cardSchema: z.ZodObject<{
|
|
|
891
895
|
footer: z.ZodOptional<z.ZodString>;
|
|
892
896
|
label: z.ZodOptional<z.ZodString>;
|
|
893
897
|
num: z.ZodOptional<z.ZodNumber>;
|
|
898
|
+
numLabel: z.ZodOptional<z.ZodString>;
|
|
894
899
|
icon: z.ZodOptional<z.ZodString>;
|
|
895
900
|
}, z.core.$strip>;
|
|
896
901
|
export declare const slideStyleSchema: z.ZodObject<{
|
|
897
902
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
903
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
898
904
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
899
905
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
900
906
|
footer: z.ZodOptional<z.ZodString>;
|
|
901
907
|
}, z.core.$strip>;
|
|
908
|
+
/** Optional kicker/category label rendered at the top of a slide (small uppercase pill). */
|
|
909
|
+
export declare const eyebrowSchema: z.ZodObject<{
|
|
910
|
+
label: z.ZodString;
|
|
911
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
912
|
+
primary: "primary";
|
|
913
|
+
accent: "accent";
|
|
914
|
+
success: "success";
|
|
915
|
+
warning: "warning";
|
|
916
|
+
danger: "danger";
|
|
917
|
+
info: "info";
|
|
918
|
+
highlight: "highlight";
|
|
919
|
+
}>>;
|
|
920
|
+
}, z.core.$strip>;
|
|
902
921
|
export declare const titleSlideSchema: z.ZodObject<{
|
|
903
922
|
title: z.ZodString;
|
|
904
923
|
subtitle: z.ZodOptional<z.ZodString>;
|
|
905
924
|
author: z.ZodOptional<z.ZodString>;
|
|
906
925
|
note: z.ZodOptional<z.ZodString>;
|
|
926
|
+
chips: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
907
927
|
accentColor: z.ZodOptional<z.ZodEnum<{
|
|
908
928
|
primary: "primary";
|
|
909
929
|
accent: "accent";
|
|
@@ -915,10 +935,23 @@ export declare const titleSlideSchema: z.ZodObject<{
|
|
|
915
935
|
}>>;
|
|
916
936
|
style: z.ZodOptional<z.ZodObject<{
|
|
917
937
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
938
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
918
939
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
919
940
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
920
941
|
footer: z.ZodOptional<z.ZodString>;
|
|
921
942
|
}, z.core.$strip>>;
|
|
943
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
944
|
+
label: z.ZodString;
|
|
945
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
946
|
+
primary: "primary";
|
|
947
|
+
accent: "accent";
|
|
948
|
+
success: "success";
|
|
949
|
+
warning: "warning";
|
|
950
|
+
danger: "danger";
|
|
951
|
+
info: "info";
|
|
952
|
+
highlight: "highlight";
|
|
953
|
+
}>>;
|
|
954
|
+
}, z.core.$strip>>;
|
|
922
955
|
layout: z.ZodLiteral<"title">;
|
|
923
956
|
}, z.core.$strip>;
|
|
924
957
|
export declare const columnsSlideSchema: z.ZodObject<{
|
|
@@ -1197,6 +1230,7 @@ export declare const columnsSlideSchema: z.ZodObject<{
|
|
|
1197
1230
|
footer: z.ZodOptional<z.ZodString>;
|
|
1198
1231
|
label: z.ZodOptional<z.ZodString>;
|
|
1199
1232
|
num: z.ZodOptional<z.ZodNumber>;
|
|
1233
|
+
numLabel: z.ZodOptional<z.ZodString>;
|
|
1200
1234
|
icon: z.ZodOptional<z.ZodString>;
|
|
1201
1235
|
}, z.core.$strip>>;
|
|
1202
1236
|
showArrows: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -1230,10 +1264,23 @@ export declare const columnsSlideSchema: z.ZodObject<{
|
|
|
1230
1264
|
}>>;
|
|
1231
1265
|
style: z.ZodOptional<z.ZodObject<{
|
|
1232
1266
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
1267
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
1233
1268
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
1234
1269
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
1235
1270
|
footer: z.ZodOptional<z.ZodString>;
|
|
1236
1271
|
}, z.core.$strip>>;
|
|
1272
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
1273
|
+
label: z.ZodString;
|
|
1274
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
1275
|
+
primary: "primary";
|
|
1276
|
+
accent: "accent";
|
|
1277
|
+
success: "success";
|
|
1278
|
+
warning: "warning";
|
|
1279
|
+
danger: "danger";
|
|
1280
|
+
info: "info";
|
|
1281
|
+
highlight: "highlight";
|
|
1282
|
+
}>>;
|
|
1283
|
+
}, z.core.$strip>>;
|
|
1237
1284
|
layout: z.ZodLiteral<"columns">;
|
|
1238
1285
|
}, z.core.$strip>;
|
|
1239
1286
|
export declare const comparisonPanelSchema: z.ZodObject<{
|
|
@@ -2082,10 +2129,23 @@ export declare const comparisonSlideSchema: z.ZodObject<{
|
|
|
2082
2129
|
}>>;
|
|
2083
2130
|
style: z.ZodOptional<z.ZodObject<{
|
|
2084
2131
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
2132
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
2085
2133
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
2086
2134
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
2087
2135
|
footer: z.ZodOptional<z.ZodString>;
|
|
2088
2136
|
}, z.core.$strip>>;
|
|
2137
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
2138
|
+
label: z.ZodString;
|
|
2139
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
2140
|
+
primary: "primary";
|
|
2141
|
+
accent: "accent";
|
|
2142
|
+
success: "success";
|
|
2143
|
+
warning: "warning";
|
|
2144
|
+
danger: "danger";
|
|
2145
|
+
info: "info";
|
|
2146
|
+
highlight: "highlight";
|
|
2147
|
+
}>>;
|
|
2148
|
+
}, z.core.$strip>>;
|
|
2089
2149
|
layout: z.ZodLiteral<"comparison">;
|
|
2090
2150
|
}, z.core.$strip>;
|
|
2091
2151
|
export declare const gridItemSchema: z.ZodObject<{
|
|
@@ -2650,10 +2710,23 @@ export declare const gridSlideSchema: z.ZodObject<{
|
|
|
2650
2710
|
}>>;
|
|
2651
2711
|
style: z.ZodOptional<z.ZodObject<{
|
|
2652
2712
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
2713
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
2653
2714
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
2654
2715
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
2655
2716
|
footer: z.ZodOptional<z.ZodString>;
|
|
2656
2717
|
}, z.core.$strip>>;
|
|
2718
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
2719
|
+
label: z.ZodString;
|
|
2720
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
2721
|
+
primary: "primary";
|
|
2722
|
+
accent: "accent";
|
|
2723
|
+
success: "success";
|
|
2724
|
+
warning: "warning";
|
|
2725
|
+
danger: "danger";
|
|
2726
|
+
info: "info";
|
|
2727
|
+
highlight: "highlight";
|
|
2728
|
+
}>>;
|
|
2729
|
+
}, z.core.$strip>>;
|
|
2657
2730
|
layout: z.ZodLiteral<"grid">;
|
|
2658
2731
|
}, z.core.$strip>;
|
|
2659
2732
|
export declare const bigQuoteSlideSchema: z.ZodObject<{
|
|
@@ -2671,10 +2744,23 @@ export declare const bigQuoteSlideSchema: z.ZodObject<{
|
|
|
2671
2744
|
}>>;
|
|
2672
2745
|
style: z.ZodOptional<z.ZodObject<{
|
|
2673
2746
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
2747
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
2674
2748
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
2675
2749
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
2676
2750
|
footer: z.ZodOptional<z.ZodString>;
|
|
2677
2751
|
}, z.core.$strip>>;
|
|
2752
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
2753
|
+
label: z.ZodString;
|
|
2754
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
2755
|
+
primary: "primary";
|
|
2756
|
+
accent: "accent";
|
|
2757
|
+
success: "success";
|
|
2758
|
+
warning: "warning";
|
|
2759
|
+
danger: "danger";
|
|
2760
|
+
info: "info";
|
|
2761
|
+
highlight: "highlight";
|
|
2762
|
+
}>>;
|
|
2763
|
+
}, z.core.$strip>>;
|
|
2678
2764
|
layout: z.ZodLiteral<"bigQuote">;
|
|
2679
2765
|
}, z.core.$strip>;
|
|
2680
2766
|
export declare const statItemSchema: z.ZodObject<{
|
|
@@ -2690,6 +2776,7 @@ export declare const statItemSchema: z.ZodObject<{
|
|
|
2690
2776
|
highlight: "highlight";
|
|
2691
2777
|
}>>;
|
|
2692
2778
|
change: z.ZodOptional<z.ZodString>;
|
|
2779
|
+
numLabel: z.ZodOptional<z.ZodString>;
|
|
2693
2780
|
}, z.core.$strip>;
|
|
2694
2781
|
export declare const statsSlideSchema: z.ZodObject<{
|
|
2695
2782
|
title: z.ZodString;
|
|
@@ -2708,6 +2795,7 @@ export declare const statsSlideSchema: z.ZodObject<{
|
|
|
2708
2795
|
highlight: "highlight";
|
|
2709
2796
|
}>>;
|
|
2710
2797
|
change: z.ZodOptional<z.ZodString>;
|
|
2798
|
+
numLabel: z.ZodOptional<z.ZodString>;
|
|
2711
2799
|
}, z.core.$strip>>;
|
|
2712
2800
|
callout: z.ZodOptional<z.ZodObject<{
|
|
2713
2801
|
text: z.ZodString;
|
|
@@ -2738,10 +2826,23 @@ export declare const statsSlideSchema: z.ZodObject<{
|
|
|
2738
2826
|
}>>;
|
|
2739
2827
|
style: z.ZodOptional<z.ZodObject<{
|
|
2740
2828
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
2829
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
2741
2830
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
2742
2831
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
2743
2832
|
footer: z.ZodOptional<z.ZodString>;
|
|
2744
2833
|
}, z.core.$strip>>;
|
|
2834
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
2835
|
+
label: z.ZodString;
|
|
2836
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
2837
|
+
primary: "primary";
|
|
2838
|
+
accent: "accent";
|
|
2839
|
+
success: "success";
|
|
2840
|
+
warning: "warning";
|
|
2841
|
+
danger: "danger";
|
|
2842
|
+
info: "info";
|
|
2843
|
+
highlight: "highlight";
|
|
2844
|
+
}>>;
|
|
2845
|
+
}, z.core.$strip>>;
|
|
2745
2846
|
layout: z.ZodLiteral<"stats">;
|
|
2746
2847
|
}, z.core.$strip>;
|
|
2747
2848
|
export declare const timelineItemSchema: z.ZodObject<{
|
|
@@ -2789,10 +2890,23 @@ export declare const timelineSlideSchema: z.ZodObject<{
|
|
|
2789
2890
|
}>>;
|
|
2790
2891
|
style: z.ZodOptional<z.ZodObject<{
|
|
2791
2892
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
2893
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
2792
2894
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
2793
2895
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
2794
2896
|
footer: z.ZodOptional<z.ZodString>;
|
|
2795
2897
|
}, z.core.$strip>>;
|
|
2898
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
2899
|
+
label: z.ZodString;
|
|
2900
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
2901
|
+
primary: "primary";
|
|
2902
|
+
accent: "accent";
|
|
2903
|
+
success: "success";
|
|
2904
|
+
warning: "warning";
|
|
2905
|
+
danger: "danger";
|
|
2906
|
+
info: "info";
|
|
2907
|
+
highlight: "highlight";
|
|
2908
|
+
}>>;
|
|
2909
|
+
}, z.core.$strip>>;
|
|
2796
2910
|
layout: z.ZodLiteral<"timeline">;
|
|
2797
2911
|
}, z.core.$strip>;
|
|
2798
2912
|
export declare const splitPanelSchema: z.ZodObject<{
|
|
@@ -3647,10 +3761,23 @@ export declare const splitSlideSchema: z.ZodObject<{
|
|
|
3647
3761
|
}>>;
|
|
3648
3762
|
style: z.ZodOptional<z.ZodObject<{
|
|
3649
3763
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
3764
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
3650
3765
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
3651
3766
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
3652
3767
|
footer: z.ZodOptional<z.ZodString>;
|
|
3653
3768
|
}, z.core.$strip>>;
|
|
3769
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
3770
|
+
label: z.ZodString;
|
|
3771
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
3772
|
+
primary: "primary";
|
|
3773
|
+
accent: "accent";
|
|
3774
|
+
success: "success";
|
|
3775
|
+
warning: "warning";
|
|
3776
|
+
danger: "danger";
|
|
3777
|
+
info: "info";
|
|
3778
|
+
highlight: "highlight";
|
|
3779
|
+
}>>;
|
|
3780
|
+
}, z.core.$strip>>;
|
|
3654
3781
|
layout: z.ZodLiteral<"split">;
|
|
3655
3782
|
}, z.core.$strip>;
|
|
3656
3783
|
export declare const matrixCellSchema: z.ZodObject<{
|
|
@@ -4222,10 +4349,23 @@ export declare const matrixSlideSchema: z.ZodObject<{
|
|
|
4222
4349
|
}>>;
|
|
4223
4350
|
style: z.ZodOptional<z.ZodObject<{
|
|
4224
4351
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
4352
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
4225
4353
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
4226
4354
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
4227
4355
|
footer: z.ZodOptional<z.ZodString>;
|
|
4228
4356
|
}, z.core.$strip>>;
|
|
4357
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
4358
|
+
label: z.ZodString;
|
|
4359
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
4360
|
+
primary: "primary";
|
|
4361
|
+
accent: "accent";
|
|
4362
|
+
success: "success";
|
|
4363
|
+
warning: "warning";
|
|
4364
|
+
danger: "danger";
|
|
4365
|
+
info: "info";
|
|
4366
|
+
highlight: "highlight";
|
|
4367
|
+
}>>;
|
|
4368
|
+
}, z.core.$strip>>;
|
|
4229
4369
|
layout: z.ZodLiteral<"matrix">;
|
|
4230
4370
|
}, z.core.$strip>;
|
|
4231
4371
|
export declare const tableSlideSchema: z.ZodObject<{
|
|
@@ -4278,10 +4418,23 @@ export declare const tableSlideSchema: z.ZodObject<{
|
|
|
4278
4418
|
}>>;
|
|
4279
4419
|
style: z.ZodOptional<z.ZodObject<{
|
|
4280
4420
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
4421
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
4281
4422
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
4282
4423
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
4283
4424
|
footer: z.ZodOptional<z.ZodString>;
|
|
4284
4425
|
}, z.core.$strip>>;
|
|
4426
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
4427
|
+
label: z.ZodString;
|
|
4428
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
4429
|
+
primary: "primary";
|
|
4430
|
+
accent: "accent";
|
|
4431
|
+
success: "success";
|
|
4432
|
+
warning: "warning";
|
|
4433
|
+
danger: "danger";
|
|
4434
|
+
info: "info";
|
|
4435
|
+
highlight: "highlight";
|
|
4436
|
+
}>>;
|
|
4437
|
+
}, z.core.$strip>>;
|
|
4285
4438
|
layout: z.ZodLiteral<"table">;
|
|
4286
4439
|
}, z.core.$strip>;
|
|
4287
4440
|
export declare const waterfallItemSchema: z.ZodObject<{
|
|
@@ -4346,10 +4499,23 @@ export declare const waterfallSlideSchema: z.ZodObject<{
|
|
|
4346
4499
|
}>>;
|
|
4347
4500
|
style: z.ZodOptional<z.ZodObject<{
|
|
4348
4501
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
4502
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
4349
4503
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
4350
4504
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
4351
4505
|
footer: z.ZodOptional<z.ZodString>;
|
|
4352
4506
|
}, z.core.$strip>>;
|
|
4507
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
4508
|
+
label: z.ZodString;
|
|
4509
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
4510
|
+
primary: "primary";
|
|
4511
|
+
accent: "accent";
|
|
4512
|
+
success: "success";
|
|
4513
|
+
warning: "warning";
|
|
4514
|
+
danger: "danger";
|
|
4515
|
+
info: "info";
|
|
4516
|
+
highlight: "highlight";
|
|
4517
|
+
}>>;
|
|
4518
|
+
}, z.core.$strip>>;
|
|
4353
4519
|
layout: z.ZodLiteral<"waterfall">;
|
|
4354
4520
|
}, z.core.$strip>;
|
|
4355
4521
|
export declare const funnelStageSchema: z.ZodObject<{
|
|
@@ -4413,10 +4579,23 @@ export declare const funnelSlideSchema: z.ZodObject<{
|
|
|
4413
4579
|
}>>;
|
|
4414
4580
|
style: z.ZodOptional<z.ZodObject<{
|
|
4415
4581
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
4582
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
4416
4583
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
4417
4584
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
4418
4585
|
footer: z.ZodOptional<z.ZodString>;
|
|
4419
4586
|
}, z.core.$strip>>;
|
|
4587
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
4588
|
+
label: z.ZodString;
|
|
4589
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
4590
|
+
primary: "primary";
|
|
4591
|
+
accent: "accent";
|
|
4592
|
+
success: "success";
|
|
4593
|
+
warning: "warning";
|
|
4594
|
+
danger: "danger";
|
|
4595
|
+
info: "info";
|
|
4596
|
+
highlight: "highlight";
|
|
4597
|
+
}>>;
|
|
4598
|
+
}, z.core.$strip>>;
|
|
4420
4599
|
layout: z.ZodLiteral<"funnel">;
|
|
4421
4600
|
}, z.core.$strip>;
|
|
4422
4601
|
export declare const slideBrandingLogoSchema: z.ZodObject<{
|
|
@@ -4484,6 +4663,7 @@ export declare const slideLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
4484
4663
|
subtitle: z.ZodOptional<z.ZodString>;
|
|
4485
4664
|
author: z.ZodOptional<z.ZodString>;
|
|
4486
4665
|
note: z.ZodOptional<z.ZodString>;
|
|
4666
|
+
chips: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
4487
4667
|
accentColor: z.ZodOptional<z.ZodEnum<{
|
|
4488
4668
|
primary: "primary";
|
|
4489
4669
|
accent: "accent";
|
|
@@ -4495,10 +4675,23 @@ export declare const slideLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
4495
4675
|
}>>;
|
|
4496
4676
|
style: z.ZodOptional<z.ZodObject<{
|
|
4497
4677
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
4678
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
4498
4679
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
4499
4680
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
4500
4681
|
footer: z.ZodOptional<z.ZodString>;
|
|
4501
4682
|
}, z.core.$strip>>;
|
|
4683
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
4684
|
+
label: z.ZodString;
|
|
4685
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
4686
|
+
primary: "primary";
|
|
4687
|
+
accent: "accent";
|
|
4688
|
+
success: "success";
|
|
4689
|
+
warning: "warning";
|
|
4690
|
+
danger: "danger";
|
|
4691
|
+
info: "info";
|
|
4692
|
+
highlight: "highlight";
|
|
4693
|
+
}>>;
|
|
4694
|
+
}, z.core.$strip>>;
|
|
4502
4695
|
layout: z.ZodLiteral<"title">;
|
|
4503
4696
|
}, z.core.$strip>, z.ZodObject<{
|
|
4504
4697
|
title: z.ZodString;
|
|
@@ -4776,6 +4969,7 @@ export declare const slideLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
4776
4969
|
footer: z.ZodOptional<z.ZodString>;
|
|
4777
4970
|
label: z.ZodOptional<z.ZodString>;
|
|
4778
4971
|
num: z.ZodOptional<z.ZodNumber>;
|
|
4972
|
+
numLabel: z.ZodOptional<z.ZodString>;
|
|
4779
4973
|
icon: z.ZodOptional<z.ZodString>;
|
|
4780
4974
|
}, z.core.$strip>>;
|
|
4781
4975
|
showArrows: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -4809,10 +5003,23 @@ export declare const slideLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
4809
5003
|
}>>;
|
|
4810
5004
|
style: z.ZodOptional<z.ZodObject<{
|
|
4811
5005
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
5006
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
4812
5007
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
4813
5008
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
4814
5009
|
footer: z.ZodOptional<z.ZodString>;
|
|
4815
5010
|
}, z.core.$strip>>;
|
|
5011
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
5012
|
+
label: z.ZodString;
|
|
5013
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
5014
|
+
primary: "primary";
|
|
5015
|
+
accent: "accent";
|
|
5016
|
+
success: "success";
|
|
5017
|
+
warning: "warning";
|
|
5018
|
+
danger: "danger";
|
|
5019
|
+
info: "info";
|
|
5020
|
+
highlight: "highlight";
|
|
5021
|
+
}>>;
|
|
5022
|
+
}, z.core.$strip>>;
|
|
4816
5023
|
layout: z.ZodLiteral<"columns">;
|
|
4817
5024
|
}, z.core.$strip>, z.ZodObject<{
|
|
4818
5025
|
title: z.ZodString;
|
|
@@ -5389,10 +5596,23 @@ export declare const slideLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
5389
5596
|
}>>;
|
|
5390
5597
|
style: z.ZodOptional<z.ZodObject<{
|
|
5391
5598
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
5599
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
5392
5600
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
5393
5601
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
5394
5602
|
footer: z.ZodOptional<z.ZodString>;
|
|
5395
5603
|
}, z.core.$strip>>;
|
|
5604
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
5605
|
+
label: z.ZodString;
|
|
5606
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
5607
|
+
primary: "primary";
|
|
5608
|
+
accent: "accent";
|
|
5609
|
+
success: "success";
|
|
5610
|
+
warning: "warning";
|
|
5611
|
+
danger: "danger";
|
|
5612
|
+
info: "info";
|
|
5613
|
+
highlight: "highlight";
|
|
5614
|
+
}>>;
|
|
5615
|
+
}, z.core.$strip>>;
|
|
5396
5616
|
layout: z.ZodLiteral<"comparison">;
|
|
5397
5617
|
}, z.core.$strip>, z.ZodObject<{
|
|
5398
5618
|
title: z.ZodString;
|
|
@@ -5683,10 +5903,23 @@ export declare const slideLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
5683
5903
|
}>>;
|
|
5684
5904
|
style: z.ZodOptional<z.ZodObject<{
|
|
5685
5905
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
5906
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
5686
5907
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
5687
5908
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
5688
5909
|
footer: z.ZodOptional<z.ZodString>;
|
|
5689
5910
|
}, z.core.$strip>>;
|
|
5911
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
5912
|
+
label: z.ZodString;
|
|
5913
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
5914
|
+
primary: "primary";
|
|
5915
|
+
accent: "accent";
|
|
5916
|
+
success: "success";
|
|
5917
|
+
warning: "warning";
|
|
5918
|
+
danger: "danger";
|
|
5919
|
+
info: "info";
|
|
5920
|
+
highlight: "highlight";
|
|
5921
|
+
}>>;
|
|
5922
|
+
}, z.core.$strip>>;
|
|
5690
5923
|
layout: z.ZodLiteral<"grid">;
|
|
5691
5924
|
}, z.core.$strip>, z.ZodObject<{
|
|
5692
5925
|
quote: z.ZodString;
|
|
@@ -5703,10 +5936,23 @@ export declare const slideLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
5703
5936
|
}>>;
|
|
5704
5937
|
style: z.ZodOptional<z.ZodObject<{
|
|
5705
5938
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
5939
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
5706
5940
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
5707
5941
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
5708
5942
|
footer: z.ZodOptional<z.ZodString>;
|
|
5709
5943
|
}, z.core.$strip>>;
|
|
5944
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
5945
|
+
label: z.ZodString;
|
|
5946
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
5947
|
+
primary: "primary";
|
|
5948
|
+
accent: "accent";
|
|
5949
|
+
success: "success";
|
|
5950
|
+
warning: "warning";
|
|
5951
|
+
danger: "danger";
|
|
5952
|
+
info: "info";
|
|
5953
|
+
highlight: "highlight";
|
|
5954
|
+
}>>;
|
|
5955
|
+
}, z.core.$strip>>;
|
|
5710
5956
|
layout: z.ZodLiteral<"bigQuote">;
|
|
5711
5957
|
}, z.core.$strip>, z.ZodObject<{
|
|
5712
5958
|
title: z.ZodString;
|
|
@@ -5725,6 +5971,7 @@ export declare const slideLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
5725
5971
|
highlight: "highlight";
|
|
5726
5972
|
}>>;
|
|
5727
5973
|
change: z.ZodOptional<z.ZodString>;
|
|
5974
|
+
numLabel: z.ZodOptional<z.ZodString>;
|
|
5728
5975
|
}, z.core.$strip>>;
|
|
5729
5976
|
callout: z.ZodOptional<z.ZodObject<{
|
|
5730
5977
|
text: z.ZodString;
|
|
@@ -5755,10 +6002,23 @@ export declare const slideLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
5755
6002
|
}>>;
|
|
5756
6003
|
style: z.ZodOptional<z.ZodObject<{
|
|
5757
6004
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
6005
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
5758
6006
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
5759
6007
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
5760
6008
|
footer: z.ZodOptional<z.ZodString>;
|
|
5761
6009
|
}, z.core.$strip>>;
|
|
6010
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
6011
|
+
label: z.ZodString;
|
|
6012
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
6013
|
+
primary: "primary";
|
|
6014
|
+
accent: "accent";
|
|
6015
|
+
success: "success";
|
|
6016
|
+
warning: "warning";
|
|
6017
|
+
danger: "danger";
|
|
6018
|
+
info: "info";
|
|
6019
|
+
highlight: "highlight";
|
|
6020
|
+
}>>;
|
|
6021
|
+
}, z.core.$strip>>;
|
|
5762
6022
|
layout: z.ZodLiteral<"stats">;
|
|
5763
6023
|
}, z.core.$strip>, z.ZodObject<{
|
|
5764
6024
|
title: z.ZodString;
|
|
@@ -5790,10 +6050,23 @@ export declare const slideLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
5790
6050
|
}>>;
|
|
5791
6051
|
style: z.ZodOptional<z.ZodObject<{
|
|
5792
6052
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
6053
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
5793
6054
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
5794
6055
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
5795
6056
|
footer: z.ZodOptional<z.ZodString>;
|
|
5796
6057
|
}, z.core.$strip>>;
|
|
6058
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
6059
|
+
label: z.ZodString;
|
|
6060
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
6061
|
+
primary: "primary";
|
|
6062
|
+
accent: "accent";
|
|
6063
|
+
success: "success";
|
|
6064
|
+
warning: "warning";
|
|
6065
|
+
danger: "danger";
|
|
6066
|
+
info: "info";
|
|
6067
|
+
highlight: "highlight";
|
|
6068
|
+
}>>;
|
|
6069
|
+
}, z.core.$strip>>;
|
|
5797
6070
|
layout: z.ZodLiteral<"timeline">;
|
|
5798
6071
|
}, z.core.$strip>, z.ZodObject<{
|
|
5799
6072
|
left: z.ZodOptional<z.ZodObject<{
|
|
@@ -6367,10 +6640,23 @@ export declare const slideLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
6367
6640
|
}>>;
|
|
6368
6641
|
style: z.ZodOptional<z.ZodObject<{
|
|
6369
6642
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
6643
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
6370
6644
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
6371
6645
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
6372
6646
|
footer: z.ZodOptional<z.ZodString>;
|
|
6373
6647
|
}, z.core.$strip>>;
|
|
6648
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
6649
|
+
label: z.ZodString;
|
|
6650
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
6651
|
+
primary: "primary";
|
|
6652
|
+
accent: "accent";
|
|
6653
|
+
success: "success";
|
|
6654
|
+
warning: "warning";
|
|
6655
|
+
danger: "danger";
|
|
6656
|
+
info: "info";
|
|
6657
|
+
highlight: "highlight";
|
|
6658
|
+
}>>;
|
|
6659
|
+
}, z.core.$strip>>;
|
|
6374
6660
|
layout: z.ZodLiteral<"split">;
|
|
6375
6661
|
}, z.core.$strip>, z.ZodObject<{
|
|
6376
6662
|
title: z.ZodString;
|
|
@@ -6670,10 +6956,23 @@ export declare const slideLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
6670
6956
|
}>>;
|
|
6671
6957
|
style: z.ZodOptional<z.ZodObject<{
|
|
6672
6958
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
6959
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
6673
6960
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
6674
6961
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
6675
6962
|
footer: z.ZodOptional<z.ZodString>;
|
|
6676
6963
|
}, z.core.$strip>>;
|
|
6964
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
6965
|
+
label: z.ZodString;
|
|
6966
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
6967
|
+
primary: "primary";
|
|
6968
|
+
accent: "accent";
|
|
6969
|
+
success: "success";
|
|
6970
|
+
warning: "warning";
|
|
6971
|
+
danger: "danger";
|
|
6972
|
+
info: "info";
|
|
6973
|
+
highlight: "highlight";
|
|
6974
|
+
}>>;
|
|
6975
|
+
}, z.core.$strip>>;
|
|
6677
6976
|
layout: z.ZodLiteral<"matrix">;
|
|
6678
6977
|
}, z.core.$strip>, z.ZodObject<{
|
|
6679
6978
|
title: z.ZodString;
|
|
@@ -6725,10 +7024,23 @@ export declare const slideLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
6725
7024
|
}>>;
|
|
6726
7025
|
style: z.ZodOptional<z.ZodObject<{
|
|
6727
7026
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
7027
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
6728
7028
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
6729
7029
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
6730
7030
|
footer: z.ZodOptional<z.ZodString>;
|
|
6731
7031
|
}, z.core.$strip>>;
|
|
7032
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
7033
|
+
label: z.ZodString;
|
|
7034
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
7035
|
+
primary: "primary";
|
|
7036
|
+
accent: "accent";
|
|
7037
|
+
success: "success";
|
|
7038
|
+
warning: "warning";
|
|
7039
|
+
danger: "danger";
|
|
7040
|
+
info: "info";
|
|
7041
|
+
highlight: "highlight";
|
|
7042
|
+
}>>;
|
|
7043
|
+
}, z.core.$strip>>;
|
|
6732
7044
|
layout: z.ZodLiteral<"table">;
|
|
6733
7045
|
}, z.core.$strip>, z.ZodObject<{
|
|
6734
7046
|
title: z.ZodString;
|
|
@@ -6777,10 +7089,23 @@ export declare const slideLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
6777
7089
|
}>>;
|
|
6778
7090
|
style: z.ZodOptional<z.ZodObject<{
|
|
6779
7091
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
7092
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
6780
7093
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
6781
7094
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
6782
7095
|
footer: z.ZodOptional<z.ZodString>;
|
|
6783
7096
|
}, z.core.$strip>>;
|
|
7097
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
7098
|
+
label: z.ZodString;
|
|
7099
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
7100
|
+
primary: "primary";
|
|
7101
|
+
accent: "accent";
|
|
7102
|
+
success: "success";
|
|
7103
|
+
warning: "warning";
|
|
7104
|
+
danger: "danger";
|
|
7105
|
+
info: "info";
|
|
7106
|
+
highlight: "highlight";
|
|
7107
|
+
}>>;
|
|
7108
|
+
}, z.core.$strip>>;
|
|
6784
7109
|
layout: z.ZodLiteral<"funnel">;
|
|
6785
7110
|
}, z.core.$strip>, z.ZodObject<{
|
|
6786
7111
|
title: z.ZodString;
|
|
@@ -6830,10 +7155,23 @@ export declare const slideLayoutSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
6830
7155
|
}>>;
|
|
6831
7156
|
style: z.ZodOptional<z.ZodObject<{
|
|
6832
7157
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
7158
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
6833
7159
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
6834
7160
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
6835
7161
|
footer: z.ZodOptional<z.ZodString>;
|
|
6836
7162
|
}, z.core.$strip>>;
|
|
7163
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
7164
|
+
label: z.ZodString;
|
|
7165
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
7166
|
+
primary: "primary";
|
|
7167
|
+
accent: "accent";
|
|
7168
|
+
success: "success";
|
|
7169
|
+
warning: "warning";
|
|
7170
|
+
danger: "danger";
|
|
7171
|
+
info: "info";
|
|
7172
|
+
highlight: "highlight";
|
|
7173
|
+
}>>;
|
|
7174
|
+
}, z.core.$strip>>;
|
|
6837
7175
|
layout: z.ZodLiteral<"waterfall">;
|
|
6838
7176
|
}, z.core.$strip>], "layout">;
|
|
6839
7177
|
/** Media schema registered in mulmoImageAssetSchema */
|
|
@@ -6859,13 +7197,17 @@ export declare const mulmoSlideMediaSchema: z.ZodObject<{
|
|
|
6859
7197
|
title: z.ZodString;
|
|
6860
7198
|
body: z.ZodString;
|
|
6861
7199
|
mono: z.ZodString;
|
|
7200
|
+
accent: z.ZodOptional<z.ZodString>;
|
|
6862
7201
|
}, z.core.$strip>;
|
|
7202
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
7203
|
+
titleGradient: z.ZodOptional<z.ZodString>;
|
|
6863
7204
|
}, z.core.$strip>>;
|
|
6864
7205
|
slide: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
6865
7206
|
title: z.ZodString;
|
|
6866
7207
|
subtitle: z.ZodOptional<z.ZodString>;
|
|
6867
7208
|
author: z.ZodOptional<z.ZodString>;
|
|
6868
7209
|
note: z.ZodOptional<z.ZodString>;
|
|
7210
|
+
chips: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
6869
7211
|
accentColor: z.ZodOptional<z.ZodEnum<{
|
|
6870
7212
|
primary: "primary";
|
|
6871
7213
|
accent: "accent";
|
|
@@ -6877,10 +7219,23 @@ export declare const mulmoSlideMediaSchema: z.ZodObject<{
|
|
|
6877
7219
|
}>>;
|
|
6878
7220
|
style: z.ZodOptional<z.ZodObject<{
|
|
6879
7221
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
7222
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
6880
7223
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
6881
7224
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
6882
7225
|
footer: z.ZodOptional<z.ZodString>;
|
|
6883
7226
|
}, z.core.$strip>>;
|
|
7227
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
7228
|
+
label: z.ZodString;
|
|
7229
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
7230
|
+
primary: "primary";
|
|
7231
|
+
accent: "accent";
|
|
7232
|
+
success: "success";
|
|
7233
|
+
warning: "warning";
|
|
7234
|
+
danger: "danger";
|
|
7235
|
+
info: "info";
|
|
7236
|
+
highlight: "highlight";
|
|
7237
|
+
}>>;
|
|
7238
|
+
}, z.core.$strip>>;
|
|
6884
7239
|
layout: z.ZodLiteral<"title">;
|
|
6885
7240
|
}, z.core.$strip>, z.ZodObject<{
|
|
6886
7241
|
title: z.ZodString;
|
|
@@ -7158,6 +7513,7 @@ export declare const mulmoSlideMediaSchema: z.ZodObject<{
|
|
|
7158
7513
|
footer: z.ZodOptional<z.ZodString>;
|
|
7159
7514
|
label: z.ZodOptional<z.ZodString>;
|
|
7160
7515
|
num: z.ZodOptional<z.ZodNumber>;
|
|
7516
|
+
numLabel: z.ZodOptional<z.ZodString>;
|
|
7161
7517
|
icon: z.ZodOptional<z.ZodString>;
|
|
7162
7518
|
}, z.core.$strip>>;
|
|
7163
7519
|
showArrows: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -7191,10 +7547,23 @@ export declare const mulmoSlideMediaSchema: z.ZodObject<{
|
|
|
7191
7547
|
}>>;
|
|
7192
7548
|
style: z.ZodOptional<z.ZodObject<{
|
|
7193
7549
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
7550
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
7194
7551
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
7195
7552
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
7196
7553
|
footer: z.ZodOptional<z.ZodString>;
|
|
7197
7554
|
}, z.core.$strip>>;
|
|
7555
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
7556
|
+
label: z.ZodString;
|
|
7557
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
7558
|
+
primary: "primary";
|
|
7559
|
+
accent: "accent";
|
|
7560
|
+
success: "success";
|
|
7561
|
+
warning: "warning";
|
|
7562
|
+
danger: "danger";
|
|
7563
|
+
info: "info";
|
|
7564
|
+
highlight: "highlight";
|
|
7565
|
+
}>>;
|
|
7566
|
+
}, z.core.$strip>>;
|
|
7198
7567
|
layout: z.ZodLiteral<"columns">;
|
|
7199
7568
|
}, z.core.$strip>, z.ZodObject<{
|
|
7200
7569
|
title: z.ZodString;
|
|
@@ -7771,10 +8140,23 @@ export declare const mulmoSlideMediaSchema: z.ZodObject<{
|
|
|
7771
8140
|
}>>;
|
|
7772
8141
|
style: z.ZodOptional<z.ZodObject<{
|
|
7773
8142
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
8143
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
7774
8144
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
7775
8145
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
7776
8146
|
footer: z.ZodOptional<z.ZodString>;
|
|
7777
8147
|
}, z.core.$strip>>;
|
|
8148
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
8149
|
+
label: z.ZodString;
|
|
8150
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
8151
|
+
primary: "primary";
|
|
8152
|
+
accent: "accent";
|
|
8153
|
+
success: "success";
|
|
8154
|
+
warning: "warning";
|
|
8155
|
+
danger: "danger";
|
|
8156
|
+
info: "info";
|
|
8157
|
+
highlight: "highlight";
|
|
8158
|
+
}>>;
|
|
8159
|
+
}, z.core.$strip>>;
|
|
7778
8160
|
layout: z.ZodLiteral<"comparison">;
|
|
7779
8161
|
}, z.core.$strip>, z.ZodObject<{
|
|
7780
8162
|
title: z.ZodString;
|
|
@@ -8065,10 +8447,23 @@ export declare const mulmoSlideMediaSchema: z.ZodObject<{
|
|
|
8065
8447
|
}>>;
|
|
8066
8448
|
style: z.ZodOptional<z.ZodObject<{
|
|
8067
8449
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
8450
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
8068
8451
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
8069
8452
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
8070
8453
|
footer: z.ZodOptional<z.ZodString>;
|
|
8071
8454
|
}, z.core.$strip>>;
|
|
8455
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
8456
|
+
label: z.ZodString;
|
|
8457
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
8458
|
+
primary: "primary";
|
|
8459
|
+
accent: "accent";
|
|
8460
|
+
success: "success";
|
|
8461
|
+
warning: "warning";
|
|
8462
|
+
danger: "danger";
|
|
8463
|
+
info: "info";
|
|
8464
|
+
highlight: "highlight";
|
|
8465
|
+
}>>;
|
|
8466
|
+
}, z.core.$strip>>;
|
|
8072
8467
|
layout: z.ZodLiteral<"grid">;
|
|
8073
8468
|
}, z.core.$strip>, z.ZodObject<{
|
|
8074
8469
|
quote: z.ZodString;
|
|
@@ -8085,10 +8480,23 @@ export declare const mulmoSlideMediaSchema: z.ZodObject<{
|
|
|
8085
8480
|
}>>;
|
|
8086
8481
|
style: z.ZodOptional<z.ZodObject<{
|
|
8087
8482
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
8483
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
8088
8484
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
8089
8485
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
8090
8486
|
footer: z.ZodOptional<z.ZodString>;
|
|
8091
8487
|
}, z.core.$strip>>;
|
|
8488
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
8489
|
+
label: z.ZodString;
|
|
8490
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
8491
|
+
primary: "primary";
|
|
8492
|
+
accent: "accent";
|
|
8493
|
+
success: "success";
|
|
8494
|
+
warning: "warning";
|
|
8495
|
+
danger: "danger";
|
|
8496
|
+
info: "info";
|
|
8497
|
+
highlight: "highlight";
|
|
8498
|
+
}>>;
|
|
8499
|
+
}, z.core.$strip>>;
|
|
8092
8500
|
layout: z.ZodLiteral<"bigQuote">;
|
|
8093
8501
|
}, z.core.$strip>, z.ZodObject<{
|
|
8094
8502
|
title: z.ZodString;
|
|
@@ -8107,6 +8515,7 @@ export declare const mulmoSlideMediaSchema: z.ZodObject<{
|
|
|
8107
8515
|
highlight: "highlight";
|
|
8108
8516
|
}>>;
|
|
8109
8517
|
change: z.ZodOptional<z.ZodString>;
|
|
8518
|
+
numLabel: z.ZodOptional<z.ZodString>;
|
|
8110
8519
|
}, z.core.$strip>>;
|
|
8111
8520
|
callout: z.ZodOptional<z.ZodObject<{
|
|
8112
8521
|
text: z.ZodString;
|
|
@@ -8137,10 +8546,23 @@ export declare const mulmoSlideMediaSchema: z.ZodObject<{
|
|
|
8137
8546
|
}>>;
|
|
8138
8547
|
style: z.ZodOptional<z.ZodObject<{
|
|
8139
8548
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
8549
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
8140
8550
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
8141
8551
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
8142
8552
|
footer: z.ZodOptional<z.ZodString>;
|
|
8143
8553
|
}, z.core.$strip>>;
|
|
8554
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
8555
|
+
label: z.ZodString;
|
|
8556
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
8557
|
+
primary: "primary";
|
|
8558
|
+
accent: "accent";
|
|
8559
|
+
success: "success";
|
|
8560
|
+
warning: "warning";
|
|
8561
|
+
danger: "danger";
|
|
8562
|
+
info: "info";
|
|
8563
|
+
highlight: "highlight";
|
|
8564
|
+
}>>;
|
|
8565
|
+
}, z.core.$strip>>;
|
|
8144
8566
|
layout: z.ZodLiteral<"stats">;
|
|
8145
8567
|
}, z.core.$strip>, z.ZodObject<{
|
|
8146
8568
|
title: z.ZodString;
|
|
@@ -8172,10 +8594,23 @@ export declare const mulmoSlideMediaSchema: z.ZodObject<{
|
|
|
8172
8594
|
}>>;
|
|
8173
8595
|
style: z.ZodOptional<z.ZodObject<{
|
|
8174
8596
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
8597
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
8175
8598
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
8176
8599
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
8177
8600
|
footer: z.ZodOptional<z.ZodString>;
|
|
8178
8601
|
}, z.core.$strip>>;
|
|
8602
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
8603
|
+
label: z.ZodString;
|
|
8604
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
8605
|
+
primary: "primary";
|
|
8606
|
+
accent: "accent";
|
|
8607
|
+
success: "success";
|
|
8608
|
+
warning: "warning";
|
|
8609
|
+
danger: "danger";
|
|
8610
|
+
info: "info";
|
|
8611
|
+
highlight: "highlight";
|
|
8612
|
+
}>>;
|
|
8613
|
+
}, z.core.$strip>>;
|
|
8179
8614
|
layout: z.ZodLiteral<"timeline">;
|
|
8180
8615
|
}, z.core.$strip>, z.ZodObject<{
|
|
8181
8616
|
left: z.ZodOptional<z.ZodObject<{
|
|
@@ -8749,10 +9184,23 @@ export declare const mulmoSlideMediaSchema: z.ZodObject<{
|
|
|
8749
9184
|
}>>;
|
|
8750
9185
|
style: z.ZodOptional<z.ZodObject<{
|
|
8751
9186
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
9187
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
8752
9188
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
8753
9189
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
8754
9190
|
footer: z.ZodOptional<z.ZodString>;
|
|
8755
9191
|
}, z.core.$strip>>;
|
|
9192
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
9193
|
+
label: z.ZodString;
|
|
9194
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
9195
|
+
primary: "primary";
|
|
9196
|
+
accent: "accent";
|
|
9197
|
+
success: "success";
|
|
9198
|
+
warning: "warning";
|
|
9199
|
+
danger: "danger";
|
|
9200
|
+
info: "info";
|
|
9201
|
+
highlight: "highlight";
|
|
9202
|
+
}>>;
|
|
9203
|
+
}, z.core.$strip>>;
|
|
8756
9204
|
layout: z.ZodLiteral<"split">;
|
|
8757
9205
|
}, z.core.$strip>, z.ZodObject<{
|
|
8758
9206
|
title: z.ZodString;
|
|
@@ -9052,10 +9500,23 @@ export declare const mulmoSlideMediaSchema: z.ZodObject<{
|
|
|
9052
9500
|
}>>;
|
|
9053
9501
|
style: z.ZodOptional<z.ZodObject<{
|
|
9054
9502
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
9503
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
9055
9504
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
9056
9505
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
9057
9506
|
footer: z.ZodOptional<z.ZodString>;
|
|
9058
9507
|
}, z.core.$strip>>;
|
|
9508
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
9509
|
+
label: z.ZodString;
|
|
9510
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
9511
|
+
primary: "primary";
|
|
9512
|
+
accent: "accent";
|
|
9513
|
+
success: "success";
|
|
9514
|
+
warning: "warning";
|
|
9515
|
+
danger: "danger";
|
|
9516
|
+
info: "info";
|
|
9517
|
+
highlight: "highlight";
|
|
9518
|
+
}>>;
|
|
9519
|
+
}, z.core.$strip>>;
|
|
9059
9520
|
layout: z.ZodLiteral<"matrix">;
|
|
9060
9521
|
}, z.core.$strip>, z.ZodObject<{
|
|
9061
9522
|
title: z.ZodString;
|
|
@@ -9107,10 +9568,23 @@ export declare const mulmoSlideMediaSchema: z.ZodObject<{
|
|
|
9107
9568
|
}>>;
|
|
9108
9569
|
style: z.ZodOptional<z.ZodObject<{
|
|
9109
9570
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
9571
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
9110
9572
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
9111
9573
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
9112
9574
|
footer: z.ZodOptional<z.ZodString>;
|
|
9113
9575
|
}, z.core.$strip>>;
|
|
9576
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
9577
|
+
label: z.ZodString;
|
|
9578
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
9579
|
+
primary: "primary";
|
|
9580
|
+
accent: "accent";
|
|
9581
|
+
success: "success";
|
|
9582
|
+
warning: "warning";
|
|
9583
|
+
danger: "danger";
|
|
9584
|
+
info: "info";
|
|
9585
|
+
highlight: "highlight";
|
|
9586
|
+
}>>;
|
|
9587
|
+
}, z.core.$strip>>;
|
|
9114
9588
|
layout: z.ZodLiteral<"table">;
|
|
9115
9589
|
}, z.core.$strip>, z.ZodObject<{
|
|
9116
9590
|
title: z.ZodString;
|
|
@@ -9159,10 +9633,23 @@ export declare const mulmoSlideMediaSchema: z.ZodObject<{
|
|
|
9159
9633
|
}>>;
|
|
9160
9634
|
style: z.ZodOptional<z.ZodObject<{
|
|
9161
9635
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
9636
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
9162
9637
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
9163
9638
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
9164
9639
|
footer: z.ZodOptional<z.ZodString>;
|
|
9165
9640
|
}, z.core.$strip>>;
|
|
9641
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
9642
|
+
label: z.ZodString;
|
|
9643
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
9644
|
+
primary: "primary";
|
|
9645
|
+
accent: "accent";
|
|
9646
|
+
success: "success";
|
|
9647
|
+
warning: "warning";
|
|
9648
|
+
danger: "danger";
|
|
9649
|
+
info: "info";
|
|
9650
|
+
highlight: "highlight";
|
|
9651
|
+
}>>;
|
|
9652
|
+
}, z.core.$strip>>;
|
|
9166
9653
|
layout: z.ZodLiteral<"funnel">;
|
|
9167
9654
|
}, z.core.$strip>, z.ZodObject<{
|
|
9168
9655
|
title: z.ZodString;
|
|
@@ -9212,10 +9699,23 @@ export declare const mulmoSlideMediaSchema: z.ZodObject<{
|
|
|
9212
9699
|
}>>;
|
|
9213
9700
|
style: z.ZodOptional<z.ZodObject<{
|
|
9214
9701
|
bgColor: z.ZodOptional<z.ZodString>;
|
|
9702
|
+
bgGradient: z.ZodOptional<z.ZodString>;
|
|
9215
9703
|
decorations: z.ZodOptional<z.ZodBoolean>;
|
|
9216
9704
|
bgOpacity: z.ZodOptional<z.ZodNumber>;
|
|
9217
9705
|
footer: z.ZodOptional<z.ZodString>;
|
|
9218
9706
|
}, z.core.$strip>>;
|
|
9707
|
+
eyebrow: z.ZodOptional<z.ZodObject<{
|
|
9708
|
+
label: z.ZodString;
|
|
9709
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
9710
|
+
primary: "primary";
|
|
9711
|
+
accent: "accent";
|
|
9712
|
+
success: "success";
|
|
9713
|
+
warning: "warning";
|
|
9714
|
+
danger: "danger";
|
|
9715
|
+
info: "info";
|
|
9716
|
+
highlight: "highlight";
|
|
9717
|
+
}>>;
|
|
9718
|
+
}, z.core.$strip>>;
|
|
9219
9719
|
layout: z.ZodLiteral<"waterfall">;
|
|
9220
9720
|
}, z.core.$strip>], "layout">;
|
|
9221
9721
|
reference: z.ZodOptional<z.ZodString>;
|
package/lib/schema.js
CHANGED
|
@@ -25,10 +25,16 @@ export const slideThemeFontsSchema = z.object({
|
|
|
25
25
|
title: z.string(),
|
|
26
26
|
body: z.string(),
|
|
27
27
|
mono: z.string(),
|
|
28
|
+
/** Optional secondary font for numbers / English labels (e.g. "Outfit"). When set, registers a `font-accent` Tailwind utility. */
|
|
29
|
+
accent: z.string().optional(),
|
|
28
30
|
});
|
|
29
31
|
export const slideThemeSchema = z.object({
|
|
30
32
|
colors: slideThemeColorsSchema,
|
|
31
33
|
fonts: slideThemeFontsSchema,
|
|
34
|
+
/** Optional CSS background value applied to every slide (e.g. `linear-gradient(...)`). Per-slide `style.bgGradient` wins over this. */
|
|
35
|
+
bgGradient: z.string().optional(),
|
|
36
|
+
/** Optional CSS gradient injected as `<style>` to paint `h1.font-title.font-bold` with `background-clip: text`. */
|
|
37
|
+
titleGradient: z.string().optional(),
|
|
32
38
|
});
|
|
33
39
|
// ═══════════════════════════════════════════════════════════
|
|
34
40
|
// Content Blocks — the atoms of slide content
|
|
@@ -164,6 +170,8 @@ export const cardSchema = z.object({
|
|
|
164
170
|
footer: z.string().optional(),
|
|
165
171
|
label: z.string().optional(),
|
|
166
172
|
num: z.number().optional(),
|
|
173
|
+
/** Optional accent-colored typographic prefix before the card title (e.g. "01", "Ⅱ", "★"). */
|
|
174
|
+
numLabel: z.string().optional(),
|
|
167
175
|
icon: z.string().optional(),
|
|
168
176
|
});
|
|
169
177
|
// ═══════════════════════════════════════════════════════════
|
|
@@ -171,14 +179,24 @@ export const cardSchema = z.object({
|
|
|
171
179
|
// ═══════════════════════════════════════════════════════════
|
|
172
180
|
export const slideStyleSchema = z.object({
|
|
173
181
|
bgColor: z.string().optional(),
|
|
182
|
+
/** Optional per-slide CSS background value (e.g. `linear-gradient(...)`); wins over `theme.bgGradient` and `bgColor`. */
|
|
183
|
+
bgGradient: z.string().optional(),
|
|
174
184
|
decorations: z.boolean().optional(),
|
|
175
185
|
bgOpacity: z.number().optional(),
|
|
176
186
|
footer: z.string().optional(),
|
|
177
187
|
});
|
|
188
|
+
/** Optional kicker/category label rendered at the top of a slide (small uppercase pill). */
|
|
189
|
+
export const eyebrowSchema = z.object({
|
|
190
|
+
label: z.string(),
|
|
191
|
+
/** Color token (e.g. "primary", "amber", "success"). Falls back to slide.accentColor / theme primary when absent. */
|
|
192
|
+
color: accentColorKeySchema.optional(),
|
|
193
|
+
});
|
|
178
194
|
/** Common slide properties shared across all layouts */
|
|
179
195
|
const slideBaseFields = {
|
|
180
196
|
accentColor: accentColorKeySchema.optional(),
|
|
181
197
|
style: slideStyleSchema.optional(),
|
|
198
|
+
/** Optional eyebrow (small uppercase pill) shown at the top of the slide above the header/title. */
|
|
199
|
+
eyebrow: eyebrowSchema.optional(),
|
|
182
200
|
};
|
|
183
201
|
// ═══════════════════════════════════════════════════════════
|
|
184
202
|
// Layouts
|
|
@@ -191,6 +209,8 @@ export const titleSlideSchema = z.object({
|
|
|
191
209
|
subtitle: z.string().optional(),
|
|
192
210
|
author: z.string().optional(),
|
|
193
211
|
note: z.string().optional(),
|
|
212
|
+
/** Optional row of small pill badges shown below the subtitle / note (e.g. ["🚀 deploy or die", "⚡ weekly output"]). */
|
|
213
|
+
chips: z.array(z.string()).optional(),
|
|
194
214
|
});
|
|
195
215
|
// ─── columns ───
|
|
196
216
|
export const columnsSlideSchema = z.object({
|
|
@@ -253,6 +273,8 @@ export const statItemSchema = z.object({
|
|
|
253
273
|
label: z.string(),
|
|
254
274
|
color: accentColorKeySchema.optional(),
|
|
255
275
|
change: z.string().optional(),
|
|
276
|
+
/** Optional accent-colored typographic prefix shown above the value (e.g. "01"). */
|
|
277
|
+
numLabel: z.string().optional(),
|
|
256
278
|
});
|
|
257
279
|
export const statsSlideSchema = z.object({
|
|
258
280
|
layout: z.literal("stats"),
|
package/lib/utils.d.ts
CHANGED
|
@@ -27,6 +27,12 @@ export declare const resolveChangeColor: (change: string) => string;
|
|
|
27
27
|
export declare const renderOptionalCallout: (callout: CalloutBar | undefined) => string;
|
|
28
28
|
/** Build the Tailwind config JSON string for theme colors and fonts */
|
|
29
29
|
export declare const buildTailwindConfig: (theme: SlideTheme) => string;
|
|
30
|
+
/**
|
|
31
|
+
* Validate a user-supplied CSS background value before injecting it into an HTML attribute or `<style>` block.
|
|
32
|
+
* Accepts gradient / color syntax; rejects anything that could break out of the attribute context, inject script,
|
|
33
|
+
* or pull external resources. Returns true only when the string is safe to embed verbatim.
|
|
34
|
+
*/
|
|
35
|
+
export declare const isSafeCssBackground: (s: string) => boolean;
|
|
30
36
|
/** Render a numbered circle badge */
|
|
31
37
|
export declare const numBadge: (num: number, colorKey: string) => string;
|
|
32
38
|
/** Render an icon in a square container */
|
|
@@ -41,19 +47,39 @@ export declare const renderCalloutBar: (obj: {
|
|
|
41
47
|
align?: string;
|
|
42
48
|
leftBar?: boolean;
|
|
43
49
|
}) => string;
|
|
50
|
+
/**
|
|
51
|
+
* Render an eyebrow pill (small uppercase letter-spaced category label).
|
|
52
|
+
* Renders nothing when `eyebrow` is undefined, so callers can pass through unconditionally.
|
|
53
|
+
*/
|
|
54
|
+
export declare const renderEyebrow: (eyebrow: {
|
|
55
|
+
label: string;
|
|
56
|
+
color?: string;
|
|
57
|
+
} | undefined, defaultColor?: string) => string;
|
|
58
|
+
/** Render a chip-row (small bordered pill badges, e.g. tags below a title). Empty / undefined input renders nothing. */
|
|
59
|
+
export declare const renderChipRow: (chips: string[] | undefined) => string;
|
|
60
|
+
/** Render an accent-colored typographic prefix (e.g. "01") to be placed before a card / stat title. */
|
|
61
|
+
export declare const renderNumLabel: (label: string | undefined, colorKey?: string) => string;
|
|
44
62
|
/** Render header text elements (stepLabel + title + subtitle) without wrapping div */
|
|
45
63
|
export declare const renderHeaderText: (data: {
|
|
46
64
|
accentColor?: string;
|
|
47
65
|
stepLabel?: string;
|
|
48
66
|
title: string;
|
|
49
67
|
subtitle?: string;
|
|
68
|
+
eyebrow?: {
|
|
69
|
+
label: string;
|
|
70
|
+
color?: string;
|
|
71
|
+
};
|
|
50
72
|
}) => string;
|
|
51
|
-
/** Render the common slide header (accent bar + title + subtitle) */
|
|
73
|
+
/** Render the common slide header (accent bar + title + subtitle, plus optional eyebrow pill) */
|
|
52
74
|
export declare const slideHeader: (data: {
|
|
53
75
|
accentColor?: string;
|
|
54
76
|
stepLabel?: string;
|
|
55
77
|
title: string;
|
|
56
78
|
subtitle?: string;
|
|
79
|
+
eyebrow?: {
|
|
80
|
+
label: string;
|
|
81
|
+
color?: string;
|
|
82
|
+
};
|
|
57
83
|
}) => string;
|
|
58
84
|
/** Render accent bar + vertically-centered wrapper with header text (used by stats, timeline) */
|
|
59
85
|
export declare const centeredSlideHeader: (data: {
|
|
@@ -61,6 +87,10 @@ export declare const centeredSlideHeader: (data: {
|
|
|
61
87
|
stepLabel?: string;
|
|
62
88
|
title: string;
|
|
63
89
|
subtitle?: string;
|
|
90
|
+
eyebrow?: {
|
|
91
|
+
label: string;
|
|
92
|
+
color?: string;
|
|
93
|
+
};
|
|
64
94
|
}) => string;
|
|
65
95
|
/** Generate a unique ID with the given prefix (e.g. "chart-0", "mermaid-1") */
|
|
66
96
|
export declare const generateSlideId: (prefix: string) => string;
|
package/lib/utils.js
CHANGED
|
@@ -90,19 +90,37 @@ export const buildTailwindConfig = (theme) => {
|
|
|
90
90
|
colorMap[mapped] = `#${v}`;
|
|
91
91
|
}
|
|
92
92
|
});
|
|
93
|
+
const fontFamily = {
|
|
94
|
+
title: [theme.fonts.title, "serif"],
|
|
95
|
+
body: [theme.fonts.body, "Arial", "sans-serif"],
|
|
96
|
+
mono: [theme.fonts.mono, "monospace"],
|
|
97
|
+
};
|
|
98
|
+
if (theme.fonts.accent) {
|
|
99
|
+
fontFamily.accent = [theme.fonts.accent, "ui-sans-serif", "system-ui", "sans-serif"];
|
|
100
|
+
}
|
|
93
101
|
return JSON.stringify({
|
|
94
102
|
theme: {
|
|
95
103
|
extend: {
|
|
96
104
|
colors: { d: colorMap },
|
|
97
|
-
fontFamily
|
|
98
|
-
title: [theme.fonts.title, "serif"],
|
|
99
|
-
body: [theme.fonts.body, "Arial", "sans-serif"],
|
|
100
|
-
mono: [theme.fonts.mono, "monospace"],
|
|
101
|
-
},
|
|
105
|
+
fontFamily,
|
|
102
106
|
},
|
|
103
107
|
},
|
|
104
108
|
});
|
|
105
109
|
};
|
|
110
|
+
/**
|
|
111
|
+
* Validate a user-supplied CSS background value before injecting it into an HTML attribute or `<style>` block.
|
|
112
|
+
* Accepts gradient / color syntax; rejects anything that could break out of the attribute context, inject script,
|
|
113
|
+
* or pull external resources. Returns true only when the string is safe to embed verbatim.
|
|
114
|
+
*/
|
|
115
|
+
export const isSafeCssBackground = (s) => {
|
|
116
|
+
if (!s || typeof s !== "string" || s.length > 2000)
|
|
117
|
+
return false;
|
|
118
|
+
if (/[<>"'`{};:\\\r\n]/.test(s))
|
|
119
|
+
return false;
|
|
120
|
+
if (/(javascript|vbscript|data\s+|expression\s*\(|behavior|@import|url\s*\(|attr\s*\(|content\s*\()/i.test(s))
|
|
121
|
+
return false;
|
|
122
|
+
return true;
|
|
123
|
+
};
|
|
106
124
|
/** Render a numbered circle badge */
|
|
107
125
|
export const numBadge = (num, colorKey) => {
|
|
108
126
|
return `<div class="w-10 h-10 rounded-full bg-${c(colorKey)} flex items-center justify-center shrink-0">
|
|
@@ -137,10 +155,39 @@ export const renderCalloutBar = (obj) => {
|
|
|
137
155
|
<div class="px-4 py-3 text-sm font-body flex-1">${inner}</div>
|
|
138
156
|
</div>`;
|
|
139
157
|
};
|
|
158
|
+
/**
|
|
159
|
+
* Render an eyebrow pill (small uppercase letter-spaced category label).
|
|
160
|
+
* Renders nothing when `eyebrow` is undefined, so callers can pass through unconditionally.
|
|
161
|
+
*/
|
|
162
|
+
export const renderEyebrow = (eyebrow, defaultColor) => {
|
|
163
|
+
if (!eyebrow)
|
|
164
|
+
return "";
|
|
165
|
+
const color = c(eyebrow.color ?? defaultColor ?? "primary");
|
|
166
|
+
return `<span class="inline-flex items-center gap-2 font-accent font-extrabold uppercase tracking-[0.16em] text-[12px] px-3 py-1 rounded-full border border-d-textDim/30 bg-${color}/10 text-${color}">${renderInlineMarkup(eyebrow.label)}</span>`;
|
|
167
|
+
};
|
|
168
|
+
/** Render a chip-row (small bordered pill badges, e.g. tags below a title). Empty / undefined input renders nothing. */
|
|
169
|
+
export const renderChipRow = (chips) => {
|
|
170
|
+
if (!chips || chips.length === 0)
|
|
171
|
+
return "";
|
|
172
|
+
const items = chips
|
|
173
|
+
.map((label) => `<span class="text-sm px-3 py-1.5 rounded-full border border-d-textDim/30 bg-d-card/40 text-d-text">${renderInlineMarkup(label)}</span>`)
|
|
174
|
+
.join("");
|
|
175
|
+
return `<div class="flex gap-2 flex-wrap mt-4">${items}</div>`;
|
|
176
|
+
};
|
|
177
|
+
/** Render an accent-colored typographic prefix (e.g. "01") to be placed before a card / stat title. */
|
|
178
|
+
export const renderNumLabel = (label, colorKey) => {
|
|
179
|
+
if (!label)
|
|
180
|
+
return "";
|
|
181
|
+
const color = c(colorKey ?? "primary");
|
|
182
|
+
return `<span class="font-accent font-extrabold text-${color} mr-2">${renderInlineMarkup(label)}</span>`;
|
|
183
|
+
};
|
|
140
184
|
/** Render header text elements (stepLabel + title + subtitle) without wrapping div */
|
|
141
185
|
export const renderHeaderText = (data) => {
|
|
142
186
|
const accent = resolveAccent(data.accentColor);
|
|
143
187
|
const lines = [];
|
|
188
|
+
const eyebrowHtml = renderEyebrow(data.eyebrow, accent);
|
|
189
|
+
if (eyebrowHtml)
|
|
190
|
+
lines.push(`<div class="mb-2">${eyebrowHtml}</div>`);
|
|
144
191
|
if (data.stepLabel) {
|
|
145
192
|
lines.push(`<p class="text-sm font-bold text-${c(accent)} font-body">${renderInlineMarkup(data.stepLabel)}</p>`);
|
|
146
193
|
}
|
|
@@ -150,7 +197,7 @@ export const renderHeaderText = (data) => {
|
|
|
150
197
|
}
|
|
151
198
|
return lines.join("\n");
|
|
152
199
|
};
|
|
153
|
-
/** Render the common slide header (accent bar + title + subtitle) */
|
|
200
|
+
/** Render the common slide header (accent bar + title + subtitle, plus optional eyebrow pill) */
|
|
154
201
|
export const slideHeader = (data) => {
|
|
155
202
|
const accent = resolveAccent(data.accentColor);
|
|
156
203
|
return [accentBar(accent), `<div class="px-12 pt-5 shrink-0">`, renderHeaderText(data), `</div>`].join("\n");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mulmocast/deck",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "MulmoCast deck DSL: JSON-described semantic slide layouts (stats, comparison, timeline, ...) rendered to Tailwind-based HTML",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|