mulmocast 2.2.5 → 2.2.6
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/slide/index.d.ts +3 -2
- package/lib/slide/index.js +1 -1
- package/lib/slide/render.d.ts +15 -1
- package/lib/slide/render.js +45 -3
- package/lib/slide/schema.d.ts +103 -0
- package/lib/slide/schema.js +32 -0
- package/lib/types/schema.d.ts +410 -0
- package/lib/types/schema.js +2 -1
- package/lib/types/slide.d.ts +103 -0
- package/lib/types/slide.js +32 -0
- package/lib/utils/context.d.ts +155 -0
- package/lib/utils/image_plugins/slide.js +50 -2
- package/package.json +1 -1
- package/scripts/test/branding/banner.jpg +0 -0
- package/scripts/test/branding/logo.svg +3 -0
- package/scripts/test/test_slide_branding.json +107 -0
package/lib/utils/context.d.ts
CHANGED
|
@@ -1552,6 +1552,37 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
|
|
|
1552
1552
|
};
|
|
1553
1553
|
} | undefined;
|
|
1554
1554
|
reference?: string | undefined;
|
|
1555
|
+
branding?: {
|
|
1556
|
+
logo?: {
|
|
1557
|
+
source: {
|
|
1558
|
+
kind: "url";
|
|
1559
|
+
url: string;
|
|
1560
|
+
} | {
|
|
1561
|
+
kind: "base64";
|
|
1562
|
+
data: string;
|
|
1563
|
+
} | {
|
|
1564
|
+
kind: "path";
|
|
1565
|
+
path: string;
|
|
1566
|
+
};
|
|
1567
|
+
position: "top-left" | "top-right" | "bottom-left" | "bottom-right";
|
|
1568
|
+
width: number;
|
|
1569
|
+
} | undefined;
|
|
1570
|
+
backgroundImage?: {
|
|
1571
|
+
source: {
|
|
1572
|
+
kind: "url";
|
|
1573
|
+
url: string;
|
|
1574
|
+
} | {
|
|
1575
|
+
kind: "base64";
|
|
1576
|
+
data: string;
|
|
1577
|
+
} | {
|
|
1578
|
+
kind: "path";
|
|
1579
|
+
path: string;
|
|
1580
|
+
};
|
|
1581
|
+
size?: "contain" | "cover" | "fill" | "auto" | undefined;
|
|
1582
|
+
opacity?: number | undefined;
|
|
1583
|
+
bgOpacity?: number | undefined;
|
|
1584
|
+
} | undefined;
|
|
1585
|
+
} | null | undefined;
|
|
1555
1586
|
} | {
|
|
1556
1587
|
type: "image";
|
|
1557
1588
|
source: {
|
|
@@ -1973,6 +2004,37 @@ export declare const createStudioData: (_mulmoScript: MulmoScript, fileName: str
|
|
|
1973
2004
|
mono: string;
|
|
1974
2005
|
};
|
|
1975
2006
|
};
|
|
2007
|
+
branding?: {
|
|
2008
|
+
logo?: {
|
|
2009
|
+
source: {
|
|
2010
|
+
kind: "url";
|
|
2011
|
+
url: string;
|
|
2012
|
+
} | {
|
|
2013
|
+
kind: "base64";
|
|
2014
|
+
data: string;
|
|
2015
|
+
} | {
|
|
2016
|
+
kind: "path";
|
|
2017
|
+
path: string;
|
|
2018
|
+
};
|
|
2019
|
+
position: "top-left" | "top-right" | "bottom-left" | "bottom-right";
|
|
2020
|
+
width: number;
|
|
2021
|
+
} | undefined;
|
|
2022
|
+
backgroundImage?: {
|
|
2023
|
+
source: {
|
|
2024
|
+
kind: "url";
|
|
2025
|
+
url: string;
|
|
2026
|
+
} | {
|
|
2027
|
+
kind: "base64";
|
|
2028
|
+
data: string;
|
|
2029
|
+
} | {
|
|
2030
|
+
kind: "path";
|
|
2031
|
+
path: string;
|
|
2032
|
+
};
|
|
2033
|
+
size?: "contain" | "cover" | "fill" | "auto" | undefined;
|
|
2034
|
+
opacity?: number | undefined;
|
|
2035
|
+
bgOpacity?: number | undefined;
|
|
2036
|
+
} | undefined;
|
|
2037
|
+
} | undefined;
|
|
1976
2038
|
} | undefined;
|
|
1977
2039
|
captionParams?: {
|
|
1978
2040
|
lang?: string | undefined;
|
|
@@ -3578,6 +3640,37 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
3578
3640
|
};
|
|
3579
3641
|
} | undefined;
|
|
3580
3642
|
reference?: string | undefined;
|
|
3643
|
+
branding?: {
|
|
3644
|
+
logo?: {
|
|
3645
|
+
source: {
|
|
3646
|
+
kind: "url";
|
|
3647
|
+
url: string;
|
|
3648
|
+
} | {
|
|
3649
|
+
kind: "base64";
|
|
3650
|
+
data: string;
|
|
3651
|
+
} | {
|
|
3652
|
+
kind: "path";
|
|
3653
|
+
path: string;
|
|
3654
|
+
};
|
|
3655
|
+
position: "top-left" | "top-right" | "bottom-left" | "bottom-right";
|
|
3656
|
+
width: number;
|
|
3657
|
+
} | undefined;
|
|
3658
|
+
backgroundImage?: {
|
|
3659
|
+
source: {
|
|
3660
|
+
kind: "url";
|
|
3661
|
+
url: string;
|
|
3662
|
+
} | {
|
|
3663
|
+
kind: "base64";
|
|
3664
|
+
data: string;
|
|
3665
|
+
} | {
|
|
3666
|
+
kind: "path";
|
|
3667
|
+
path: string;
|
|
3668
|
+
};
|
|
3669
|
+
size?: "contain" | "cover" | "fill" | "auto" | undefined;
|
|
3670
|
+
opacity?: number | undefined;
|
|
3671
|
+
bgOpacity?: number | undefined;
|
|
3672
|
+
} | undefined;
|
|
3673
|
+
} | null | undefined;
|
|
3581
3674
|
} | {
|
|
3582
3675
|
type: "image";
|
|
3583
3676
|
source: {
|
|
@@ -3999,6 +4092,37 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
3999
4092
|
mono: string;
|
|
4000
4093
|
};
|
|
4001
4094
|
};
|
|
4095
|
+
branding?: {
|
|
4096
|
+
logo?: {
|
|
4097
|
+
source: {
|
|
4098
|
+
kind: "url";
|
|
4099
|
+
url: string;
|
|
4100
|
+
} | {
|
|
4101
|
+
kind: "base64";
|
|
4102
|
+
data: string;
|
|
4103
|
+
} | {
|
|
4104
|
+
kind: "path";
|
|
4105
|
+
path: string;
|
|
4106
|
+
};
|
|
4107
|
+
position: "top-left" | "top-right" | "bottom-left" | "bottom-right";
|
|
4108
|
+
width: number;
|
|
4109
|
+
} | undefined;
|
|
4110
|
+
backgroundImage?: {
|
|
4111
|
+
source: {
|
|
4112
|
+
kind: "url";
|
|
4113
|
+
url: string;
|
|
4114
|
+
} | {
|
|
4115
|
+
kind: "base64";
|
|
4116
|
+
data: string;
|
|
4117
|
+
} | {
|
|
4118
|
+
kind: "path";
|
|
4119
|
+
path: string;
|
|
4120
|
+
};
|
|
4121
|
+
size?: "contain" | "cover" | "fill" | "auto" | undefined;
|
|
4122
|
+
opacity?: number | undefined;
|
|
4123
|
+
bgOpacity?: number | undefined;
|
|
4124
|
+
} | undefined;
|
|
4125
|
+
} | undefined;
|
|
4002
4126
|
} | undefined;
|
|
4003
4127
|
captionParams?: {
|
|
4004
4128
|
lang?: string | undefined;
|
|
@@ -4360,6 +4484,37 @@ export declare const initializeContextFromFiles: (files: FileObject, raiseError:
|
|
|
4360
4484
|
mono: string;
|
|
4361
4485
|
};
|
|
4362
4486
|
};
|
|
4487
|
+
branding?: {
|
|
4488
|
+
logo?: {
|
|
4489
|
+
source: {
|
|
4490
|
+
kind: "url";
|
|
4491
|
+
url: string;
|
|
4492
|
+
} | {
|
|
4493
|
+
kind: "base64";
|
|
4494
|
+
data: string;
|
|
4495
|
+
} | {
|
|
4496
|
+
kind: "path";
|
|
4497
|
+
path: string;
|
|
4498
|
+
};
|
|
4499
|
+
position: "top-left" | "top-right" | "bottom-left" | "bottom-right";
|
|
4500
|
+
width: number;
|
|
4501
|
+
} | undefined;
|
|
4502
|
+
backgroundImage?: {
|
|
4503
|
+
source: {
|
|
4504
|
+
kind: "url";
|
|
4505
|
+
url: string;
|
|
4506
|
+
} | {
|
|
4507
|
+
kind: "base64";
|
|
4508
|
+
data: string;
|
|
4509
|
+
} | {
|
|
4510
|
+
kind: "path";
|
|
4511
|
+
path: string;
|
|
4512
|
+
};
|
|
4513
|
+
size?: "contain" | "cover" | "fill" | "auto" | undefined;
|
|
4514
|
+
opacity?: number | undefined;
|
|
4515
|
+
bgOpacity?: number | undefined;
|
|
4516
|
+
} | undefined;
|
|
4517
|
+
} | undefined;
|
|
4363
4518
|
} | undefined;
|
|
4364
4519
|
captionParams?: {
|
|
4365
4520
|
lang?: string | undefined;
|
|
@@ -4,6 +4,7 @@ import { generateSlideHTML } from "../../slide/index.js";
|
|
|
4
4
|
import { renderHTMLToImage } from "../html_render.js";
|
|
5
5
|
import { parrotingImagePath } from "./utils.js";
|
|
6
6
|
import { pathToDataUrl } from "../../methods/mulmo_media_source.js";
|
|
7
|
+
import { MulmoMediaSourceMethods } from "../../methods/mulmo_media_source.js";
|
|
7
8
|
import { imageAction, imageFileTarget, unknownMediaType } from "../error_cause.js";
|
|
8
9
|
export const imageType = "slide";
|
|
9
10
|
const slideImageRefError = (refKey) => ({
|
|
@@ -111,6 +112,51 @@ const resolveSlide = (params, converter = pathToDataUrl) => {
|
|
|
111
112
|
}
|
|
112
113
|
return slide;
|
|
113
114
|
};
|
|
115
|
+
/**
|
|
116
|
+
* Resolve branding from beat-level and global slideParams.
|
|
117
|
+
* - beat.image.branding === null → disabled (return undefined)
|
|
118
|
+
* - beat.image.branding defined → use it
|
|
119
|
+
* - otherwise → fall back to slideParams.branding
|
|
120
|
+
*/
|
|
121
|
+
const resolveBranding = (params) => {
|
|
122
|
+
const { beat, context } = params;
|
|
123
|
+
if (!beat.image || beat.image.type !== imageType)
|
|
124
|
+
return undefined;
|
|
125
|
+
const beatBranding = beat.image.branding;
|
|
126
|
+
// null means explicitly disabled
|
|
127
|
+
if (beatBranding === null)
|
|
128
|
+
return undefined;
|
|
129
|
+
return beatBranding ?? context.presentationStyle.slideParams?.branding;
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* Convert SlideBranding to ResolvedBranding (all sources → data URLs).
|
|
133
|
+
*/
|
|
134
|
+
const convertBrandingToResolved = async (branding, params) => {
|
|
135
|
+
const { context } = params;
|
|
136
|
+
const resolved = {};
|
|
137
|
+
if (branding.logo) {
|
|
138
|
+
const dataUrl = await MulmoMediaSourceMethods.toDataUrl(branding.logo.source, context);
|
|
139
|
+
resolved.logo = {
|
|
140
|
+
dataUrl,
|
|
141
|
+
position: branding.logo.position,
|
|
142
|
+
width: branding.logo.width,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
if (branding.backgroundImage) {
|
|
146
|
+
const dataUrl = await MulmoMediaSourceMethods.toDataUrl(branding.backgroundImage.source, context);
|
|
147
|
+
resolved.backgroundImage = {
|
|
148
|
+
dataUrl,
|
|
149
|
+
size: branding.backgroundImage.size ?? "cover",
|
|
150
|
+
opacity: branding.backgroundImage.opacity ?? 1,
|
|
151
|
+
bgOpacity: branding.backgroundImage.bgOpacity,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
return resolved;
|
|
155
|
+
};
|
|
156
|
+
const resolveAndConvertBranding = async (params) => {
|
|
157
|
+
const branding = resolveBranding(params);
|
|
158
|
+
return branding ? await convertBrandingToResolved(branding, params) : undefined;
|
|
159
|
+
};
|
|
114
160
|
const processSlide = async (params) => {
|
|
115
161
|
const { beat, imagePath, canvasSize } = params;
|
|
116
162
|
if (!beat.image || beat.image.type !== imageType)
|
|
@@ -118,7 +164,8 @@ const processSlide = async (params) => {
|
|
|
118
164
|
const theme = resolveTheme(params);
|
|
119
165
|
const slide = resolveSlide(params, toFileUrl);
|
|
120
166
|
const reference = beat.image.reference;
|
|
121
|
-
const
|
|
167
|
+
const resolvedBranding = await resolveAndConvertBranding(params);
|
|
168
|
+
const html = generateSlideHTML(theme, slide, reference, resolvedBranding);
|
|
122
169
|
await renderHTMLToImage(html, imagePath, canvasSize.width, canvasSize.height);
|
|
123
170
|
return imagePath;
|
|
124
171
|
};
|
|
@@ -129,7 +176,8 @@ const dumpHtml = async (params) => {
|
|
|
129
176
|
const theme = resolveTheme(params);
|
|
130
177
|
const slide = resolveSlide(params);
|
|
131
178
|
const reference = beat.image.reference;
|
|
132
|
-
|
|
179
|
+
const resolvedBranding = await resolveAndConvertBranding(params);
|
|
180
|
+
return generateSlideHTML(theme, slide, reference, resolvedBranding);
|
|
133
181
|
};
|
|
134
182
|
export const process = processSlide;
|
|
135
183
|
export const path = parrotingImagePath;
|
package/package.json
CHANGED
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="356" height="52" viewBox="0 0 356 52" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M11.242 43.352C13.002 43.352 14.564 43.0843 15.928 42.549C17.292 42.0137 18.447 41.2803 19.393 40.349C20.339 39.4177 21.0577 38.325 21.549 37.071C22.0403 35.817 22.286 34.4713 22.286 33.034C22.286 31.714 22.077 30.592 21.659 29.668C21.241 28.744 20.6873 27.963 19.998 27.325C19.3087 26.687 18.524 26.159 17.644 25.741C16.764 25.323 15.8657 24.9563 14.949 24.641C14.0323 24.3257 13.134 24.0287 12.254 23.75C11.374 23.4713 10.5893 23.156 9.89999 22.804C9.21066 22.452 8.65699 22.0267 8.23899 21.528C7.82099 21.0293 7.61199 20.406 7.61199 19.658C7.61199 19.0713 7.71466 18.5323 7.91999 18.041C8.12532 17.5497 8.437 17.128 8.855 16.776C9.273 16.424 9.78632 16.149 10.395 15.951C11.0037 15.753 11.7187 15.654 12.54 15.654C13.4493 15.654 14.2377 15.7677 14.905 15.995C15.5723 16.2223 16.1553 16.4753 16.654 16.754C17.1527 17.0327 17.5853 17.2857 17.952 17.513C18.3187 17.7403 18.6487 17.854 18.942 17.854C19.2353 17.854 19.4883 17.788 19.701 17.656C19.9137 17.524 20.1007 17.2967 20.262 16.974L21.714 14.18C20.5993 13.124 19.25 12.3027 17.666 11.716C16.082 11.1293 14.3513 10.836 12.474 10.836C10.8167 10.836 9.34266 11.0927 8.05199 11.606C6.76133 12.1193 5.67233 12.8013 4.785 13.652C3.89766 14.5027 3.22299 15.478 2.76099 16.578C2.29899 17.678 2.06799 18.8073 2.06799 19.966C2.06799 21.418 2.27699 22.639 2.69499 23.629C3.11299 24.619 3.66666 25.444 4.356 26.104C5.04533 26.764 5.82999 27.2993 6.70999 27.71C7.58999 28.1207 8.48466 28.4727 9.39399 28.766C10.3033 29.0593 11.198 29.3306 12.078 29.58C12.958 29.8293 13.7427 30.1337 14.432 30.493C15.1213 30.8523 15.675 31.296 16.093 31.824C16.511 32.352 16.72 33.034 16.72 33.87C16.72 35.366 16.258 36.5137 15.334 37.313C14.41 38.1123 13.1047 38.512 11.418 38.512C10.318 38.512 9.37566 38.3617 8.591 38.061C7.80633 37.7603 7.12432 37.4267 6.54499 37.06C5.96566 36.6933 5.46333 36.3596 5.03799 36.059C4.61266 35.7583 4.21666 35.608 3.84999 35.608C3.57132 35.608 3.31833 35.6777 3.091 35.817C2.86366 35.9563 2.66933 36.1287 2.508 36.334L0.791992 39.172C1.40799 39.8027 2.10832 40.3747 2.89299 40.888C3.67766 41.4013 4.52099 41.8413 5.42299 42.208C6.32499 42.5747 7.26733 42.857 8.24999 43.055C9.23266 43.253 10.23 43.352 11.242 43.352ZM29.59 17.26C30.074 17.26 30.5287 17.1683 30.954 16.985C31.3793 16.8017 31.7497 16.556 32.065 16.248C32.3803 15.94 32.6333 15.5807 32.824 15.17C33.0147 14.7593 33.11 14.3193 33.11 13.85C33.11 13.366 33.0147 12.9113 32.824 12.486C32.6333 12.0607 32.3803 11.694 32.065 11.386C31.7497 11.078 31.3793 10.8323 30.954 10.649C30.5287 10.4657 30.074 10.374 29.59 10.374C29.1207 10.374 28.677 10.4657 28.259 10.649C27.841 10.8323 27.478 11.078 27.17 11.386C26.862 11.694 26.6163 12.0607 26.433 12.486C26.2497 12.9113 26.158 13.366 26.158 13.85C26.158 14.3193 26.2497 14.7593 26.433 15.17C26.6163 15.5807 26.862 15.94 27.17 16.248C27.478 16.556 27.841 16.8017 28.259 16.985C28.677 17.1683 29.1207 17.26 29.59 17.26ZM32.296 43V20.428H26.862V43H32.296ZM43.868 43V26.676C44.6013 25.9427 45.3787 25.3633 46.2 24.938C47.0213 24.5127 47.9013 24.3 48.84 24.3C50.116 24.3 51.073 24.6777 51.711 25.433C52.349 26.1883 52.668 27.2553 52.668 28.634V43H58.102V28.634C58.102 27.3727 57.937 26.2177 57.607 25.169C57.277 24.1203 56.793 23.2183 56.155 22.463C55.517 21.7076 54.7213 21.121 53.768 20.703C52.8147 20.285 51.722 20.076 50.49 20.076C49.7273 20.076 49.0233 20.1493 48.378 20.296C47.7327 20.4427 47.1277 20.6553 46.563 20.934C45.9983 21.2127 45.463 21.5427 44.957 21.924C44.451 22.3053 43.9707 22.7307 43.516 23.2L43.142 21.418C42.922 20.758 42.46 20.428 41.756 20.428H38.434V43H43.868ZM71.324 50.942C73.0547 50.942 74.5947 50.7183 75.944 50.271C77.2933 49.8237 78.4337 49.2333 79.365 48.5C80.2963 47.7667 81.0077 46.9307 81.499 45.992C81.9903 45.0533 82.236 44.0853 82.236 43.088C82.236 42.0173 82.027 41.141 81.609 40.459C81.191 39.777 80.641 39.238 79.959 38.842C79.277 38.446 78.5033 38.1563 77.638 37.973C76.7727 37.7897 75.8853 37.6613 74.976 37.588C74.0667 37.5147 73.1793 37.467 72.314 37.445C71.4487 37.423 70.675 37.368 69.993 37.28C69.311 37.192 68.761 37.0417 68.343 36.829C67.925 36.6163 67.716 36.2827 67.716 35.828C67.716 35.3 68.068 34.8233 68.772 34.398C69.5787 34.5593 70.4073 34.64 71.258 34.64C72.5193 34.64 73.689 34.4677 74.767 34.123C75.845 33.7783 76.7763 33.2907 77.561 32.66C78.3457 32.0293 78.9617 31.263 79.409 30.361C79.8563 29.459 80.08 28.4506 80.08 27.336C80.08 26.8666 80.0397 26.4193 79.959 25.994C79.8783 25.5686 79.7647 25.1653 79.618 24.784L81.642 24.41C82.0673 24.3367 82.368 24.2047 82.544 24.014C82.72 23.8233 82.808 23.5593 82.808 23.222V21.198H76.318C75.614 20.8167 74.8367 20.527 73.986 20.329C73.1353 20.131 72.226 20.032 71.258 20.032C69.9673 20.032 68.7757 20.2007 67.683 20.538C66.5903 20.8753 65.6443 21.363 64.845 22.001C64.0457 22.639 63.4223 23.409 62.975 24.311C62.5277 25.213 62.304 26.2213 62.304 27.336C62.304 28.7147 62.6303 29.9173 63.283 30.944C63.9357 31.9707 64.834 32.792 65.978 33.408C65.4793 33.6573 65.0467 33.9397 64.68 34.255C64.3133 34.5703 64.009 34.904 63.767 35.256C63.525 35.608 63.3453 35.9637 63.228 36.323C63.1107 36.6823 63.052 37.0307 63.052 37.368C63.052 38.1893 63.2207 38.8567 63.558 39.37C63.8953 39.8833 64.3427 40.294 64.9 40.602C63.756 41.0273 62.8613 41.5993 62.216 42.318C61.5707 43.0367 61.248 43.924 61.248 44.98C61.248 45.7573 61.4533 46.5053 61.864 47.224C62.2747 47.9427 62.8943 48.577 63.723 49.127C64.5517 49.677 65.5967 50.117 66.858 50.447C68.1193 50.777 69.608 50.942 71.324 50.942ZM71.258 31.164C70.598 31.164 70.015 31.0723 69.509 30.889C69.003 30.7057 68.585 30.449 68.255 30.119C67.925 29.789 67.6757 29.3966 67.507 28.942C67.3383 28.4873 67.254 27.996 67.254 27.468C67.254 26.3533 67.5877 25.4696 68.255 24.817C68.9223 24.1643 69.9233 23.838 71.258 23.838C72.5927 23.838 73.5937 24.1643 74.261 24.817C74.9283 25.4696 75.262 26.3533 75.262 27.468C75.262 28.0106 75.1777 28.5093 75.009 28.964C74.8403 29.4187 74.591 29.8073 74.261 30.13C73.931 30.4526 73.5167 30.7057 73.018 30.889C72.5193 31.0723 71.9327 31.164 71.258 31.164ZM71.412 47.07C70.4147 47.07 69.5713 47.0003 68.882 46.861C68.1927 46.7217 67.6317 46.5273 67.199 46.278C66.7663 46.0287 66.451 45.7317 66.253 45.387C66.055 45.0423 65.956 44.672 65.956 44.276C65.956 43.6747 66.143 43.143 66.517 42.681C66.891 42.219 67.386 41.8193 68.002 41.482C68.6767 41.57 69.377 41.6323 70.103 41.669C70.829 41.7057 71.533 41.7423 72.215 41.779C72.897 41.8157 73.5423 41.8707 74.151 41.944C74.7597 42.0173 75.2913 42.131 75.746 42.285C76.2007 42.439 76.56 42.6553 76.824 42.934C77.088 43.2126 77.22 43.572 77.22 44.012C77.22 44.452 77.11 44.859 76.89 45.233C76.67 45.607 76.3217 45.9297 75.845 46.201C75.3683 46.4723 74.7633 46.685 74.03 46.839C73.2967 46.993 72.424 47.07 71.412 47.07ZM93.368 43.352C94.116 43.352 94.8163 43.275 95.469 43.121C96.1217 42.967 96.7303 42.7543 97.295 42.483C97.8597 42.2117 98.3913 41.8817 98.89 41.493C99.3887 41.1043 99.8727 40.6753 100.342 40.206L100.716 42.01C100.936 42.67 101.398 43 102.102 43H105.424V20.428H99.99V36.752C99.2567 37.4853 98.4793 38.061 97.658 38.479C96.8367 38.897 95.9567 39.106 95.018 39.106C93.742 39.106 92.785 38.7283 92.147 37.973C91.509 37.2177 91.19 36.1507 91.19 34.772V20.428H85.756V34.772C85.756 36.0333 85.921 37.1883 86.251 38.237C86.581 39.2857 87.0687 40.1913 87.714 40.954C88.3593 41.7167 89.155 42.307 90.101 42.725C91.047 43.143 92.136 43.352 93.368 43.352ZM117.018 43V10.308H111.584V43H117.018ZM128.59 43.352C129.397 43.352 130.13 43.286 130.79 43.154C131.45 43.022 132.073 42.824 132.66 42.56C133.247 42.296 133.815 41.9697 134.365 41.581C134.915 41.1923 135.476 40.7413 136.048 40.228L136.532 41.834C136.679 42.3033 136.899 42.615 137.192 42.769C137.485 42.923 137.889 43 138.402 43H140.844V28.744C140.844 27.468 140.657 26.2947 140.283 25.224C139.909 24.1533 139.363 23.233 138.644 22.463C137.925 21.693 137.049 21.0917 136.015 20.659C134.981 20.2263 133.804 20.01 132.484 20.01C128.817 20.01 125.686 21.198 123.09 23.574L124.08 25.312C124.241 25.5907 124.454 25.8253 124.718 26.016C124.982 26.2067 125.297 26.302 125.664 26.302C126.104 26.302 126.507 26.1993 126.874 25.994C127.241 25.7886 127.64 25.5577 128.073 25.301C128.506 25.0443 129.015 24.8133 129.602 24.608C130.189 24.4027 130.922 24.3 131.802 24.3C133.019 24.3 133.947 24.663 134.585 25.389C135.223 26.115 135.542 27.2333 135.542 28.744V30.064C132.975 30.1227 130.827 30.372 129.096 30.812C127.365 31.252 125.979 31.8057 124.938 32.473C123.897 33.1403 123.152 33.8883 122.705 34.717C122.258 35.5457 122.034 36.3853 122.034 37.236C122.034 38.248 122.195 39.1353 122.518 39.898C122.841 40.6607 123.292 41.2987 123.871 41.812C124.45 42.3253 125.143 42.7103 125.95 42.967C126.757 43.2237 127.637 43.352 128.59 43.352ZM130.284 39.612C129.375 39.612 128.638 39.4066 128.073 38.996C127.508 38.5853 127.226 37.9033 127.226 36.95C127.226 36.466 127.362 36.0187 127.633 35.608C127.904 35.1973 128.363 34.838 129.008 34.53C129.653 34.222 130.508 33.969 131.571 33.771C132.634 33.573 133.958 33.4373 135.542 33.364V37.17C135.146 37.5806 134.754 37.9363 134.365 38.237C133.976 38.5377 133.573 38.7906 133.155 38.996C132.737 39.2013 132.293 39.3553 131.824 39.458C131.355 39.5607 130.841 39.612 130.284 39.612ZM151.624 43V28.942C152.181 27.7393 152.863 26.8263 153.67 26.203C154.477 25.5796 155.445 25.268 156.574 25.268C157.205 25.268 157.711 25.3193 158.092 25.422C158.473 25.5247 158.774 25.576 158.994 25.576C159.243 25.576 159.441 25.521 159.588 25.411C159.735 25.301 159.83 25.114 159.874 24.85L160.578 20.78C159.845 20.2667 158.921 20.01 157.806 20.01C156.457 20.01 155.239 20.4133 154.154 21.22C153.069 22.0266 152.123 23.1267 151.316 24.52L150.986 21.792C150.913 21.2933 150.766 20.9413 150.546 20.736C150.326 20.5307 149.937 20.428 149.38 20.428H146.19V43H151.624ZM167.244 17.26C167.728 17.26 168.183 17.1683 168.608 16.985C169.033 16.8017 169.404 16.556 169.719 16.248C170.034 15.94 170.287 15.5807 170.478 15.17C170.669 14.7593 170.764 14.3193 170.764 13.85C170.764 13.366 170.669 12.9113 170.478 12.486C170.287 12.0607 170.034 11.694 169.719 11.386C169.404 11.078 169.033 10.8323 168.608 10.649C168.183 10.4657 167.728 10.374 167.244 10.374C166.775 10.374 166.331 10.4657 165.913 10.649C165.495 10.8323 165.132 11.078 164.824 11.386C164.516 11.694 164.27 12.0607 164.087 12.486C163.904 12.9113 163.812 13.366 163.812 13.85C163.812 14.3193 163.904 14.7593 164.087 15.17C164.27 15.5807 164.516 15.94 164.824 16.248C165.132 16.556 165.495 16.8017 165.913 16.985C166.331 17.1683 166.775 17.26 167.244 17.26ZM169.95 43V20.428H164.516V43H169.95ZM183.502 43.352C184.602 43.352 185.665 43.1833 186.692 42.846C187.719 42.5087 188.628 42.01 189.42 41.35L187.792 38.71C187.675 38.5487 187.565 38.4277 187.462 38.347C187.359 38.2663 187.227 38.226 187.066 38.226C186.934 38.226 186.802 38.2663 186.67 38.347C186.538 38.4277 186.388 38.512 186.219 38.6C186.05 38.688 185.852 38.7723 185.625 38.853C185.398 38.9337 185.115 38.974 184.778 38.974C184.191 38.974 183.722 38.776 183.37 38.38C183.018 37.984 182.842 37.434 182.842 36.73V24.498H188.782V20.626H182.842V13.52H180.026C179.703 13.52 179.436 13.6007 179.223 13.762C179.01 13.9233 178.875 14.1507 178.816 14.444L177.672 20.604L174.042 21.198V23.354C174.042 23.7353 174.148 24.0213 174.361 24.212C174.574 24.4027 174.827 24.498 175.12 24.498H177.408V37.104C177.408 39.0547 177.936 40.5837 178.992 41.691C180.048 42.7983 181.551 43.352 183.502 43.352ZM199.32 50.37C199.848 50.37 200.24 50.271 200.497 50.073C200.754 49.875 200.963 49.5853 201.124 49.204L213.422 20.428H209.066C208.729 20.428 208.424 20.5233 208.153 20.714C207.882 20.9047 207.687 21.1467 207.57 21.44L203.038 33.122C202.877 33.5327 202.726 33.936 202.587 34.332C202.448 34.728 202.319 35.1387 202.202 35.564C202.114 35.1533 202.011 34.7427 201.894 34.332C201.777 33.9213 201.637 33.5253 201.476 33.144L196.658 21.44C196.541 21.176 196.365 20.9413 196.13 20.736C195.895 20.5307 195.558 20.428 195.118 20.428H190.366L199.496 41.328L195.272 50.37H199.32ZM224.84 43.352C226.512 43.352 228.004 43.0953 229.317 42.582C230.63 42.0687 231.737 41.3647 232.639 40.47C233.541 39.5753 234.227 38.523 234.696 37.313C235.165 36.103 235.4 34.8087 235.4 33.43C235.4 32.1247 235.184 31.0246 234.751 30.13C234.318 29.2353 233.746 28.48 233.035 27.864C232.324 27.248 231.517 26.7383 230.615 26.335C229.713 25.9317 228.789 25.5687 227.843 25.246C226.897 24.9233 225.973 24.6117 225.071 24.311C224.169 24.0103 223.362 23.6546 222.651 23.244C221.94 22.8333 221.368 22.3383 220.935 21.759C220.502 21.1797 220.286 20.45 220.286 19.57C220.286 18.8807 220.411 18.239 220.66 17.645C220.909 17.051 221.28 16.534 221.771 16.094C222.262 15.654 222.875 15.3057 223.608 15.049C224.341 14.7923 225.185 14.664 226.138 14.664C227.15 14.664 228.012 14.7887 228.723 15.038C229.434 15.2873 230.043 15.5623 230.549 15.863C231.055 16.1637 231.473 16.4387 231.803 16.688C232.133 16.9373 232.423 17.062 232.672 17.062C232.907 17.062 233.097 17.007 233.244 16.897C233.391 16.787 233.53 16.622 233.662 16.402L234.696 14.378C233.611 13.322 232.342 12.5153 230.89 11.958C229.438 11.4007 227.832 11.122 226.072 11.122C224.503 11.122 223.113 11.364 221.903 11.848C220.693 12.332 219.677 12.9773 218.856 13.784C218.035 14.5907 217.408 15.5147 216.975 16.556C216.542 17.5973 216.326 18.6753 216.326 19.79C216.326 21.1833 216.542 22.353 216.975 23.299C217.408 24.245 217.976 25.0333 218.68 25.664C219.384 26.2947 220.187 26.808 221.089 27.204C221.991 27.6 222.915 27.9483 223.861 28.249C224.807 28.5497 225.731 28.843 226.633 29.129C227.535 29.415 228.338 29.7633 229.042 30.174C229.746 30.5847 230.314 31.0943 230.747 31.703C231.18 32.3117 231.396 33.0927 231.396 34.046C231.396 34.9113 231.249 35.696 230.956 36.4C230.663 37.104 230.241 37.709 229.691 38.215C229.141 38.721 228.47 39.1133 227.678 39.392C226.886 39.6706 225.984 39.81 224.972 39.81C223.755 39.81 222.724 39.645 221.881 39.315C221.038 38.985 220.319 38.622 219.725 38.226C219.131 37.83 218.636 37.467 218.24 37.137C217.844 36.807 217.492 36.642 217.184 36.642C216.979 36.642 216.792 36.697 216.623 36.807C216.454 36.917 216.311 37.0527 216.194 37.214L214.962 39.238C216.15 40.4993 217.584 41.5003 219.263 42.241C220.942 42.9817 222.801 43.352 224.84 43.352ZM249.238 43.308C250.866 43.308 252.336 43.0403 253.649 42.505C254.962 41.9697 256.076 41.2033 256.993 40.206C257.91 39.2087 258.614 38.006 259.105 36.598C259.596 35.19 259.842 33.606 259.842 31.846C259.842 30.1007 259.596 28.5203 259.105 27.105C258.614 25.6897 257.91 24.4833 256.993 23.486C256.076 22.4887 254.962 21.7187 253.649 21.176C252.336 20.6333 250.866 20.362 249.238 20.362C247.61 20.362 246.14 20.6333 244.827 21.176C243.514 21.7187 242.396 22.4887 241.472 23.486C240.548 24.4833 239.837 25.6897 239.338 27.105C238.839 28.5203 238.59 30.1007 238.59 31.846C238.59 33.606 238.839 35.19 239.338 36.598C239.837 38.006 240.548 39.2087 241.472 40.206C242.396 41.2033 243.514 41.9697 244.827 42.505C246.14 43.0403 247.61 43.308 249.238 43.308ZM249.238 40.25C248.123 40.25 247.155 40.0593 246.334 39.678C245.513 39.2967 244.827 38.7503 244.277 38.039C243.727 37.3277 243.316 36.4513 243.045 35.41C242.774 34.3687 242.638 33.188 242.638 31.868C242.638 30.548 242.774 29.3637 243.045 28.315C243.316 27.2663 243.727 26.3827 244.277 25.664C244.827 24.9453 245.513 24.3953 246.334 24.014C247.155 23.6327 248.123 23.442 249.238 23.442C251.438 23.442 253.081 24.1827 254.166 25.664C255.251 27.1453 255.794 29.2133 255.794 31.868C255.794 34.508 255.251 36.565 254.166 38.039C253.081 39.513 251.438 40.25 249.238 40.25ZM272.932 43.308C274.545 43.308 276.078 43.033 277.53 42.483C278.982 41.933 280.192 41.064 281.16 39.876L280.06 38.446C279.899 38.1967 279.649 38.072 279.312 38.072C279.048 38.072 278.784 38.1856 278.52 38.413C278.256 38.6403 277.919 38.8933 277.508 39.172C277.097 39.4507 276.584 39.7037 275.968 39.931C275.352 40.1583 274.567 40.272 273.614 40.272C272.617 40.272 271.718 40.085 270.919 39.711C270.12 39.337 269.441 38.7943 268.884 38.083C268.327 37.3717 267.894 36.4917 267.586 35.443C267.278 34.3943 267.124 33.1953 267.124 31.846C267.124 30.5553 267.267 29.3893 267.553 28.348C267.839 27.3067 268.264 26.4193 268.829 25.686C269.394 24.9527 270.094 24.3917 270.93 24.003C271.766 23.6143 272.727 23.42 273.812 23.42C274.633 23.42 275.326 23.5117 275.891 23.695C276.456 23.8783 276.936 24.08 277.332 24.3C277.728 24.52 278.054 24.7217 278.311 24.905C278.568 25.0883 278.806 25.18 279.026 25.18C279.246 25.18 279.415 25.136 279.532 25.048C279.649 24.96 279.767 24.8353 279.884 24.674L280.918 23.266C279.994 22.342 278.931 21.627 277.728 21.121C276.525 20.615 275.147 20.362 273.592 20.362C271.905 20.362 270.409 20.648 269.104 21.22C267.799 21.792 266.702 22.5877 265.815 23.607C264.928 24.6263 264.253 25.84 263.791 27.248C263.329 28.656 263.098 30.1887 263.098 31.846C263.098 33.6647 263.351 35.2853 263.857 36.708C264.363 38.1307 265.056 39.3297 265.936 40.305C266.816 41.2803 267.854 42.0246 269.049 42.538C270.244 43.0513 271.539 43.308 272.932 43.308ZM287.65 16.49C288.031 16.49 288.391 16.4167 288.728 16.27C289.065 16.1233 289.362 15.9217 289.619 15.665C289.876 15.4083 290.081 15.115 290.235 14.785C290.389 14.455 290.466 14.0993 290.466 13.718C290.466 13.3367 290.389 12.9737 290.235 12.629C290.081 12.2843 289.876 11.9837 289.619 11.727C289.362 11.4703 289.065 11.2687 288.728 11.122C288.391 10.9753 288.031 10.902 287.65 10.902C287.269 10.902 286.913 10.9753 286.583 11.122C286.253 11.2687 285.96 11.4703 285.703 11.727C285.446 11.9837 285.245 12.2843 285.098 12.629C284.951 12.9737 284.878 13.3367 284.878 13.718C284.878 14.0993 284.951 14.455 285.098 14.785C285.245 15.115 285.446 15.4083 285.703 15.665C285.96 15.9217 286.253 16.1233 286.583 16.27C286.913 16.4167 287.269 16.49 287.65 16.49ZM289.586 43V20.714H285.67V43H289.586ZM305.536 43.308C306.343 43.308 307.157 43.2383 307.978 43.099C308.799 42.9597 309.595 42.7507 310.365 42.472C311.135 42.1933 311.857 41.8377 312.532 41.405C313.207 40.9723 313.786 40.4627 314.27 39.876L313.17 38.446C312.994 38.1967 312.745 38.072 312.422 38.072C312.173 38.072 311.876 38.1856 311.531 38.413C311.186 38.6403 310.757 38.886 310.244 39.15C309.731 39.414 309.118 39.6597 308.407 39.887C307.696 40.1143 306.849 40.228 305.866 40.228C304.81 40.228 303.857 40.0556 303.006 39.711C302.155 39.3663 301.422 38.8456 300.806 38.149C300.19 37.4523 299.706 36.5833 299.354 35.542C299.002 34.5007 298.811 33.276 298.782 31.868H313.61C313.977 31.868 314.226 31.7653 314.358 31.56C314.49 31.3546 314.556 30.944 314.556 30.328C314.556 28.744 314.325 27.3323 313.863 26.093C313.401 24.8537 312.759 23.8123 311.938 22.969C311.117 22.1257 310.141 21.4803 309.012 21.033C307.883 20.5857 306.651 20.362 305.316 20.362C303.703 20.362 302.251 20.6443 300.96 21.209C299.669 21.7737 298.577 22.551 297.682 23.541C296.787 24.531 296.102 25.7007 295.625 27.05C295.148 28.3993 294.91 29.8513 294.91 31.406C294.91 33.3273 295.174 35.0286 295.702 36.51C296.23 37.9913 296.967 39.2343 297.913 40.239C298.859 41.2436 299.981 42.0063 301.279 42.527C302.577 43.0477 303.996 43.308 305.536 43.308ZM311.036 29.426H298.914C299.178 27.49 299.853 25.9756 300.938 24.883C302.023 23.7903 303.512 23.244 305.404 23.244C306.299 23.244 307.094 23.3943 307.791 23.695C308.488 23.9957 309.078 24.421 309.562 24.971C310.046 25.521 310.413 26.1737 310.662 26.929C310.911 27.6843 311.036 28.5167 311.036 29.426ZM326.304 43.352C327.316 43.352 328.299 43.1723 329.252 42.813C330.205 42.4537 331.019 41.9587 331.694 41.328L330.55 39.458C330.389 39.2087 330.205 39.084 330 39.084C329.883 39.084 329.747 39.139 329.593 39.249C329.439 39.359 329.252 39.48 329.032 39.612C328.812 39.744 328.552 39.865 328.251 39.975C327.95 40.085 327.595 40.14 327.184 40.14C326.465 40.14 325.879 39.9127 325.424 39.458C324.969 39.0033 324.742 38.3067 324.742 37.368V23.992H331.122V21.154H324.742V13.476H322.762C322.513 13.476 322.307 13.5457 322.146 13.685C321.985 13.8243 321.889 14.004 321.86 14.224L320.958 21.11L317.306 21.572V23.134C317.306 23.4273 317.387 23.6437 317.548 23.783C317.709 23.9223 317.907 23.992 318.142 23.992H320.826V37.632C320.826 39.48 321.299 40.8953 322.245 41.878C323.191 42.8606 324.544 43.352 326.304 43.352ZM341.088 50.546C341.499 50.546 341.803 50.458 342.001 50.282C342.199 50.106 342.364 49.8713 342.496 49.578L354.926 20.714H351.802C351.553 20.714 351.322 20.791 351.109 20.945C350.896 21.099 350.746 21.2933 350.658 21.528L344.872 35.542C344.74 35.8793 344.623 36.2093 344.52 36.532C344.417 36.8547 344.315 37.1847 344.212 37.522C344.139 37.1847 344.054 36.8547 343.959 36.532C343.864 36.2093 343.75 35.8867 343.618 35.564L337.656 21.528C337.568 21.3227 337.429 21.1356 337.238 20.967C337.047 20.7983 336.783 20.714 336.446 20.714H333.058L342.254 41.702L338.184 50.546H341.088Z" fill="#2979FF"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$mulmocast": { "version": "1.1" },
|
|
3
|
+
"lang": "en",
|
|
4
|
+
"title": "Slide Branding Test",
|
|
5
|
+
"slideParams": {
|
|
6
|
+
"theme": {
|
|
7
|
+
"colors": {
|
|
8
|
+
"bg": "0F172A",
|
|
9
|
+
"bgCard": "1E293B",
|
|
10
|
+
"bgCardAlt": "334155",
|
|
11
|
+
"text": "FFFFFF",
|
|
12
|
+
"textMuted": "CBD5E1",
|
|
13
|
+
"textDim": "64748B",
|
|
14
|
+
"primary": "3B82F6",
|
|
15
|
+
"accent": "8B5CF6",
|
|
16
|
+
"success": "22C55E",
|
|
17
|
+
"warning": "F97316",
|
|
18
|
+
"danger": "EF4444",
|
|
19
|
+
"info": "14B8A6",
|
|
20
|
+
"highlight": "EC4899"
|
|
21
|
+
},
|
|
22
|
+
"fonts": { "title": "Georgia", "body": "Calibri", "mono": "Consolas" }
|
|
23
|
+
},
|
|
24
|
+
"branding": {
|
|
25
|
+
"logo": {
|
|
26
|
+
"source": { "kind": "path", "path": "branding/logo.svg" },
|
|
27
|
+
"position": "top-right",
|
|
28
|
+
"width": 160
|
|
29
|
+
},
|
|
30
|
+
"backgroundImage": {
|
|
31
|
+
"source": { "kind": "path", "path": "branding/banner.jpg" },
|
|
32
|
+
"size": "cover",
|
|
33
|
+
"opacity": 1,
|
|
34
|
+
"bgOpacity": 0.7
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"beats": [
|
|
39
|
+
{
|
|
40
|
+
"text": "Title slide with global branding",
|
|
41
|
+
"image": {
|
|
42
|
+
"type": "slide",
|
|
43
|
+
"slide": {
|
|
44
|
+
"layout": "title",
|
|
45
|
+
"title": "Acme Corp Annual Report",
|
|
46
|
+
"subtitle": "2026 Q1 Results",
|
|
47
|
+
"author": "John Doe, CEO"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"text": "Key metrics with global branding",
|
|
53
|
+
"image": {
|
|
54
|
+
"type": "slide",
|
|
55
|
+
"slide": {
|
|
56
|
+
"layout": "stats",
|
|
57
|
+
"title": "Key Metrics",
|
|
58
|
+
"stats": [
|
|
59
|
+
{ "value": "$12.5M", "label": "Revenue", "change": "+32%" },
|
|
60
|
+
{ "value": "8,200", "label": "Customers", "change": "+18%" },
|
|
61
|
+
{ "value": "99.95%", "label": "Uptime" },
|
|
62
|
+
{ "value": "4.9", "label": "CSAT Score" }
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"text": "Beat with per-beat branding override: logo at bottom-left",
|
|
69
|
+
"image": {
|
|
70
|
+
"type": "slide",
|
|
71
|
+
"branding": {
|
|
72
|
+
"logo": {
|
|
73
|
+
"source": { "kind": "path", "path": "branding/logo.svg" },
|
|
74
|
+
"position": "bottom-left",
|
|
75
|
+
"width": 80
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"slide": {
|
|
79
|
+
"layout": "columns",
|
|
80
|
+
"title": "Strategic Pillars",
|
|
81
|
+
"columns": [
|
|
82
|
+
{
|
|
83
|
+
"title": "Growth",
|
|
84
|
+
"content": [{ "type": "text", "value": "Expand into 3 new markets" }]
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"title": "Innovation",
|
|
88
|
+
"content": [{ "type": "text", "value": "Launch AI-powered platform" }]
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"text": "Beat with branding explicitly disabled",
|
|
96
|
+
"image": {
|
|
97
|
+
"type": "slide",
|
|
98
|
+
"branding": null,
|
|
99
|
+
"slide": {
|
|
100
|
+
"layout": "bigQuote",
|
|
101
|
+
"quote": "The best way to predict the future is to create it.",
|
|
102
|
+
"author": "Peter Drucker"
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
}
|