@json-to-office/core-docx 0.22.0 → 0.24.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/dist/core/generator.d.ts.map +1 -1
- package/dist/index.js +317 -64
- package/dist/index.js.map +1 -1
- package/dist/plugin/createDocumentGenerator.d.ts.map +1 -1
- package/dist/plugin/example/index.js +316 -9
- package/dist/plugin/example/index.js.map +1 -1
- package/dist/styles/theme-resolver.d.ts +14 -2
- package/dist/styles/theme-resolver.d.ts.map +1 -1
- package/dist/styles/theme-validator.d.ts.map +1 -1
- package/dist/templates/themes/index.d.ts +1 -1
- package/dist/templates/themes/index.d.ts.map +1 -1
- package/dist/themes/json/index.d.ts +7 -6
- package/dist/themes/json/index.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/examples/test-spacing-debug.d.ts +0 -2
- package/dist/examples/test-spacing-debug.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/core/generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,yBAAyB,EAE1B,MAAM,UAAU,CAAC;AAClB,OAAO,
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/core/generator.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -634,10 +634,277 @@ var init_modern_docx_theme = __esm({
|
|
|
634
634
|
}
|
|
635
635
|
});
|
|
636
636
|
|
|
637
|
+
// src/templates/themes/apex.docx.theme.json
|
|
638
|
+
var apex_docx_theme_default;
|
|
639
|
+
var init_apex_docx_theme = __esm({
|
|
640
|
+
"src/templates/themes/apex.docx.theme.json"() {
|
|
641
|
+
apex_docx_theme_default = {
|
|
642
|
+
name: "apex",
|
|
643
|
+
displayName: "Apex Consulting",
|
|
644
|
+
description: "A premium consulting theme with deep navy, warm amber accents, and authoritative typography",
|
|
645
|
+
version: "2.0.0",
|
|
646
|
+
colors: {
|
|
647
|
+
primary: "#0C2340",
|
|
648
|
+
secondary: "#1B3A5C",
|
|
649
|
+
accent: "#D4A843",
|
|
650
|
+
text: "#1A1A2E",
|
|
651
|
+
background: "#FFFFFF",
|
|
652
|
+
border: "#D6DAE0",
|
|
653
|
+
textPrimary: "#1A1A2E",
|
|
654
|
+
textSecondary: "#4A5066",
|
|
655
|
+
textMuted: "#8B91A0",
|
|
656
|
+
borderPrimary: "#B8BCC6",
|
|
657
|
+
borderSecondary: "#E8EAF0",
|
|
658
|
+
backgroundPrimary: "#FFFFFF",
|
|
659
|
+
backgroundSecondary: "#F4F5F8"
|
|
660
|
+
},
|
|
661
|
+
fonts: {
|
|
662
|
+
heading: { family: "Georgia", size: 26 },
|
|
663
|
+
body: { family: "Calibri", size: 11 },
|
|
664
|
+
mono: { family: "Consolas", size: 10 },
|
|
665
|
+
light: { family: "Georgia", size: 26 }
|
|
666
|
+
},
|
|
667
|
+
page: {
|
|
668
|
+
size: "A4",
|
|
669
|
+
margins: {
|
|
670
|
+
top: 1440,
|
|
671
|
+
bottom: 1440,
|
|
672
|
+
left: 1200,
|
|
673
|
+
right: 1200,
|
|
674
|
+
header: 720,
|
|
675
|
+
footer: 720,
|
|
676
|
+
gutter: 0
|
|
677
|
+
}
|
|
678
|
+
},
|
|
679
|
+
styles: {
|
|
680
|
+
normal: {
|
|
681
|
+
font: "body",
|
|
682
|
+
color: "textPrimary",
|
|
683
|
+
lineSpacing: { type: "multiple", value: 1.4 },
|
|
684
|
+
alignment: "justify",
|
|
685
|
+
spacing: { after: 8 }
|
|
686
|
+
},
|
|
687
|
+
heading1: {
|
|
688
|
+
font: "heading",
|
|
689
|
+
size: 26,
|
|
690
|
+
bold: false,
|
|
691
|
+
color: "primary",
|
|
692
|
+
spacing: { before: 24, after: 12 },
|
|
693
|
+
keepNext: true,
|
|
694
|
+
alignment: "left",
|
|
695
|
+
borders: {
|
|
696
|
+
bottom: {
|
|
697
|
+
style: "single",
|
|
698
|
+
size: 2,
|
|
699
|
+
color: "accent",
|
|
700
|
+
space: 6
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
},
|
|
704
|
+
heading2: {
|
|
705
|
+
font: "heading",
|
|
706
|
+
size: 18,
|
|
707
|
+
bold: false,
|
|
708
|
+
color: "secondary",
|
|
709
|
+
spacing: { before: 18, after: 8 },
|
|
710
|
+
keepNext: true,
|
|
711
|
+
alignment: "left"
|
|
712
|
+
},
|
|
713
|
+
heading3: {
|
|
714
|
+
font: "body",
|
|
715
|
+
size: 13,
|
|
716
|
+
bold: true,
|
|
717
|
+
color: "accent",
|
|
718
|
+
spacing: { before: 12, after: 6 },
|
|
719
|
+
keepNext: true,
|
|
720
|
+
alignment: "left"
|
|
721
|
+
},
|
|
722
|
+
title: {
|
|
723
|
+
font: "light",
|
|
724
|
+
size: 36,
|
|
725
|
+
bold: false,
|
|
726
|
+
color: "primary",
|
|
727
|
+
alignment: "left",
|
|
728
|
+
spacing: { before: 0, after: 18 }
|
|
729
|
+
},
|
|
730
|
+
subtitle: {
|
|
731
|
+
font: "body",
|
|
732
|
+
size: 16,
|
|
733
|
+
italic: false,
|
|
734
|
+
color: "textSecondary",
|
|
735
|
+
alignment: "left",
|
|
736
|
+
spacing: { before: 0, after: 24 }
|
|
737
|
+
}
|
|
738
|
+
},
|
|
739
|
+
componentDefaults: {
|
|
740
|
+
table: {
|
|
741
|
+
borderColor: "#D6DAE0"
|
|
742
|
+
},
|
|
743
|
+
list: {
|
|
744
|
+
format: "bullet",
|
|
745
|
+
bullet: "\u2022",
|
|
746
|
+
indent: 3
|
|
747
|
+
},
|
|
748
|
+
image: {
|
|
749
|
+
alignment: "center"
|
|
750
|
+
},
|
|
751
|
+
statistic: {
|
|
752
|
+
alignment: "center"
|
|
753
|
+
},
|
|
754
|
+
section: {
|
|
755
|
+
pageBreak: false
|
|
756
|
+
},
|
|
757
|
+
heading: {
|
|
758
|
+
numbering: false
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
};
|
|
762
|
+
}
|
|
763
|
+
});
|
|
764
|
+
|
|
765
|
+
// src/templates/themes/devportal.docx.theme.json
|
|
766
|
+
var devportal_docx_theme_default;
|
|
767
|
+
var init_devportal_docx_theme = __esm({
|
|
768
|
+
"src/templates/themes/devportal.docx.theme.json"() {
|
|
769
|
+
devportal_docx_theme_default = {
|
|
770
|
+
name: "devportal",
|
|
771
|
+
displayName: "Developer Portal",
|
|
772
|
+
description: "A modern developer-focused theme with cool grays, teal accents, and monospace code styling",
|
|
773
|
+
version: "2.0.0",
|
|
774
|
+
colors: {
|
|
775
|
+
primary: "#0F172A",
|
|
776
|
+
secondary: "#334155",
|
|
777
|
+
accent: "#0D9488",
|
|
778
|
+
text: "#0F172A",
|
|
779
|
+
background: "#FFFFFF",
|
|
780
|
+
border: "#E2E8F0",
|
|
781
|
+
textPrimary: "#0F172A",
|
|
782
|
+
textSecondary: "#475569",
|
|
783
|
+
textMuted: "#94A3B8",
|
|
784
|
+
borderPrimary: "#CBD5E1",
|
|
785
|
+
borderSecondary: "#F1F5F9",
|
|
786
|
+
backgroundPrimary: "#FFFFFF",
|
|
787
|
+
backgroundSecondary: "#F8FAFC"
|
|
788
|
+
},
|
|
789
|
+
fonts: {
|
|
790
|
+
heading: { family: "Helvetica", size: 24 },
|
|
791
|
+
body: { family: "Calibri", size: 11 },
|
|
792
|
+
mono: { family: "Consolas", size: 10 },
|
|
793
|
+
light: { family: "Helvetica", size: 24 }
|
|
794
|
+
},
|
|
795
|
+
page: {
|
|
796
|
+
size: "A4",
|
|
797
|
+
margins: {
|
|
798
|
+
top: 1440,
|
|
799
|
+
bottom: 1440,
|
|
800
|
+
left: 1080,
|
|
801
|
+
right: 1080,
|
|
802
|
+
header: 720,
|
|
803
|
+
footer: 720,
|
|
804
|
+
gutter: 0
|
|
805
|
+
}
|
|
806
|
+
},
|
|
807
|
+
styles: {
|
|
808
|
+
normal: {
|
|
809
|
+
font: "body",
|
|
810
|
+
color: "textPrimary",
|
|
811
|
+
lineSpacing: { type: "multiple", value: 1.5 },
|
|
812
|
+
alignment: "left",
|
|
813
|
+
spacing: { after: 8 }
|
|
814
|
+
},
|
|
815
|
+
heading1: {
|
|
816
|
+
font: "heading",
|
|
817
|
+
size: 24,
|
|
818
|
+
bold: true,
|
|
819
|
+
color: "primary",
|
|
820
|
+
spacing: { before: 24, after: 12 },
|
|
821
|
+
keepNext: true,
|
|
822
|
+
alignment: "left",
|
|
823
|
+
borders: {
|
|
824
|
+
bottom: {
|
|
825
|
+
style: "single",
|
|
826
|
+
size: 1,
|
|
827
|
+
color: "accent",
|
|
828
|
+
space: 6
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
},
|
|
832
|
+
heading2: {
|
|
833
|
+
font: "heading",
|
|
834
|
+
size: 18,
|
|
835
|
+
bold: true,
|
|
836
|
+
color: "secondary",
|
|
837
|
+
spacing: { before: 18, after: 8 },
|
|
838
|
+
keepNext: true,
|
|
839
|
+
alignment: "left"
|
|
840
|
+
},
|
|
841
|
+
heading3: {
|
|
842
|
+
font: "body",
|
|
843
|
+
size: 13,
|
|
844
|
+
bold: true,
|
|
845
|
+
color: "accent",
|
|
846
|
+
spacing: { before: 12, after: 6 },
|
|
847
|
+
keepNext: true,
|
|
848
|
+
alignment: "left"
|
|
849
|
+
},
|
|
850
|
+
heading4: {
|
|
851
|
+
font: "body",
|
|
852
|
+
size: 12,
|
|
853
|
+
bold: true,
|
|
854
|
+
color: "textSecondary",
|
|
855
|
+
spacing: { before: 8, after: 4 },
|
|
856
|
+
keepNext: true
|
|
857
|
+
},
|
|
858
|
+
title: {
|
|
859
|
+
font: "heading",
|
|
860
|
+
size: 32,
|
|
861
|
+
bold: true,
|
|
862
|
+
color: "primary",
|
|
863
|
+
alignment: "left",
|
|
864
|
+
spacing: { before: 0, after: 12 }
|
|
865
|
+
},
|
|
866
|
+
subtitle: {
|
|
867
|
+
font: "light",
|
|
868
|
+
size: 16,
|
|
869
|
+
italic: false,
|
|
870
|
+
color: "textSecondary",
|
|
871
|
+
alignment: "left",
|
|
872
|
+
spacing: { before: 0, after: 24 }
|
|
873
|
+
}
|
|
874
|
+
},
|
|
875
|
+
componentDefaults: {
|
|
876
|
+
table: {
|
|
877
|
+
borderColor: "#E2E8F0"
|
|
878
|
+
},
|
|
879
|
+
list: {
|
|
880
|
+
format: "bullet",
|
|
881
|
+
bullet: "\u2013",
|
|
882
|
+
indent: 3
|
|
883
|
+
},
|
|
884
|
+
image: {
|
|
885
|
+
alignment: "center"
|
|
886
|
+
},
|
|
887
|
+
statistic: {
|
|
888
|
+
alignment: "center"
|
|
889
|
+
},
|
|
890
|
+
section: {
|
|
891
|
+
pageBreak: false
|
|
892
|
+
},
|
|
893
|
+
heading: {
|
|
894
|
+
numbering: false
|
|
895
|
+
}
|
|
896
|
+
}
|
|
897
|
+
};
|
|
898
|
+
}
|
|
899
|
+
});
|
|
900
|
+
|
|
637
901
|
// src/templates/themes/index.ts
|
|
638
902
|
import fs from "fs";
|
|
639
903
|
import path from "path";
|
|
640
904
|
import { fileURLToPath } from "url";
|
|
905
|
+
import {
|
|
906
|
+
isValidThemeConfig
|
|
907
|
+
} from "@json-to-office/shared-docx";
|
|
641
908
|
function loadThemesFromJson() {
|
|
642
909
|
if (_themesCache) {
|
|
643
910
|
return _themesCache;
|
|
@@ -645,7 +912,9 @@ function loadThemesFromJson() {
|
|
|
645
912
|
const themes2 = {
|
|
646
913
|
minimal: ensureThemeDefaults(minimal_docx_theme_default),
|
|
647
914
|
corporate: ensureThemeDefaults(corporate_docx_theme_default),
|
|
648
|
-
modern: ensureThemeDefaults(modern_docx_theme_default)
|
|
915
|
+
modern: ensureThemeDefaults(modern_docx_theme_default),
|
|
916
|
+
apex: ensureThemeDefaults(apex_docx_theme_default),
|
|
917
|
+
devportal: ensureThemeDefaults(devportal_docx_theme_default)
|
|
649
918
|
};
|
|
650
919
|
try {
|
|
651
920
|
const __filename = fileURLToPath(import.meta.url);
|
|
@@ -656,9 +925,18 @@ function loadThemesFromJson() {
|
|
|
656
925
|
for (const themeName of themeFiles) {
|
|
657
926
|
if (!themes2[themeName]) {
|
|
658
927
|
try {
|
|
659
|
-
const filePath = path.join(
|
|
928
|
+
const filePath = path.join(
|
|
929
|
+
themesDir,
|
|
930
|
+
`${themeName}.docx.theme.json`
|
|
931
|
+
);
|
|
660
932
|
const content = fs.readFileSync(filePath, "utf8");
|
|
661
933
|
const parsedTheme = JSON.parse(content);
|
|
934
|
+
if (!isValidThemeConfig(parsedTheme)) {
|
|
935
|
+
console.warn(
|
|
936
|
+
`Skipping theme ${themeName}: does not match the theme schema.`
|
|
937
|
+
);
|
|
938
|
+
continue;
|
|
939
|
+
}
|
|
662
940
|
themes2[themeName] = ensureThemeDefaults(parsedTheme);
|
|
663
941
|
} catch (error) {
|
|
664
942
|
console.warn(
|
|
@@ -674,7 +952,7 @@ function loadThemesFromJson() {
|
|
|
674
952
|
_themesCache = themes2;
|
|
675
953
|
return themes2;
|
|
676
954
|
}
|
|
677
|
-
var _themesCache, themes, getTheme, getThemeWithFallback, minimalTheme, corporateTheme, modernTheme;
|
|
955
|
+
var _themesCache, themes, getTheme, getThemeWithFallback, hasTheme, getThemeNames, minimalTheme, corporateTheme, modernTheme;
|
|
678
956
|
var init_themes = __esm({
|
|
679
957
|
"src/templates/themes/index.ts"() {
|
|
680
958
|
"use strict";
|
|
@@ -682,6 +960,8 @@ var init_themes = __esm({
|
|
|
682
960
|
init_minimal_docx_theme();
|
|
683
961
|
init_corporate_docx_theme();
|
|
684
962
|
init_modern_docx_theme();
|
|
963
|
+
init_apex_docx_theme();
|
|
964
|
+
init_devportal_docx_theme();
|
|
685
965
|
_themesCache = null;
|
|
686
966
|
themes = loadThemesFromJson();
|
|
687
967
|
getTheme = (themeName) => {
|
|
@@ -696,6 +976,12 @@ var init_themes = __esm({
|
|
|
696
976
|
}
|
|
697
977
|
return theme;
|
|
698
978
|
};
|
|
979
|
+
hasTheme = (themeName) => {
|
|
980
|
+
return themeName in themes;
|
|
981
|
+
};
|
|
982
|
+
getThemeNames = () => {
|
|
983
|
+
return Object.keys(themes);
|
|
984
|
+
};
|
|
699
985
|
minimalTheme = themes["minimal"];
|
|
700
986
|
corporateTheme = themes["corporate"];
|
|
701
987
|
modernTheme = themes["modern"];
|
|
@@ -1307,7 +1593,8 @@ var init_loader = __esm({
|
|
|
1307
1593
|
// src/themes/json/index.ts
|
|
1308
1594
|
import {
|
|
1309
1595
|
ThemeConfigSchema,
|
|
1310
|
-
isValidThemeConfig
|
|
1596
|
+
isValidThemeConfig as isValidThemeConfig2,
|
|
1597
|
+
createMinimalTheme
|
|
1311
1598
|
} from "@json-to-office/shared-docx";
|
|
1312
1599
|
async function loadThemeFromJson(jsonString) {
|
|
1313
1600
|
return themeParser.parse(jsonString);
|
|
@@ -1331,57 +1618,6 @@ function exportThemeToJson(theme, pretty = true) {
|
|
|
1331
1618
|
function validateThemeJsonString(jsonString) {
|
|
1332
1619
|
return themeParser.validate(jsonString);
|
|
1333
1620
|
}
|
|
1334
|
-
function createMinimalTheme() {
|
|
1335
|
-
return {
|
|
1336
|
-
name: "minimal-theme",
|
|
1337
|
-
displayName: "Minimal Theme",
|
|
1338
|
-
description: "A minimal theme with basic styling",
|
|
1339
|
-
version: "1.0.0",
|
|
1340
|
-
colors: {
|
|
1341
|
-
primary: "2563EB",
|
|
1342
|
-
secondary: "64748B",
|
|
1343
|
-
accent: "F8FAFC",
|
|
1344
|
-
text: "334155",
|
|
1345
|
-
background: "FFFFFF",
|
|
1346
|
-
border: "334155",
|
|
1347
|
-
textPrimary: "334155",
|
|
1348
|
-
textSecondary: "64748B",
|
|
1349
|
-
textMuted: "94A3B8",
|
|
1350
|
-
borderPrimary: "334155",
|
|
1351
|
-
borderSecondary: "64748B",
|
|
1352
|
-
backgroundPrimary: "FFFFFF",
|
|
1353
|
-
backgroundSecondary: "F8FAFC"
|
|
1354
|
-
},
|
|
1355
|
-
fonts: {
|
|
1356
|
-
heading: { family: "Arial", size: 14 },
|
|
1357
|
-
body: { family: "Arial", size: 11 },
|
|
1358
|
-
mono: { family: "Courier New", size: 10 },
|
|
1359
|
-
light: { family: "Arial", size: 10 }
|
|
1360
|
-
},
|
|
1361
|
-
page: {
|
|
1362
|
-
size: "A4",
|
|
1363
|
-
margins: {
|
|
1364
|
-
top: 1440,
|
|
1365
|
-
bottom: 1440,
|
|
1366
|
-
left: 1440,
|
|
1367
|
-
right: 1440,
|
|
1368
|
-
header: 720,
|
|
1369
|
-
footer: 720,
|
|
1370
|
-
gutter: 0
|
|
1371
|
-
}
|
|
1372
|
-
},
|
|
1373
|
-
styles: {
|
|
1374
|
-
normal: {
|
|
1375
|
-
font: "body",
|
|
1376
|
-
size: 11,
|
|
1377
|
-
color: "334155",
|
|
1378
|
-
alignment: "left",
|
|
1379
|
-
lineSpacing: { type: "multiple", value: 1.15 },
|
|
1380
|
-
spacing: { after: 8 }
|
|
1381
|
-
}
|
|
1382
|
-
}
|
|
1383
|
-
};
|
|
1384
|
-
}
|
|
1385
1621
|
var themeParser, themeLoader;
|
|
1386
1622
|
var init_json = __esm({
|
|
1387
1623
|
"src/themes/json/index.ts"() {
|
|
@@ -1705,8 +1941,23 @@ import {
|
|
|
1705
1941
|
isVisualComponent
|
|
1706
1942
|
} from "@json-to-office/shared-docx";
|
|
1707
1943
|
|
|
1708
|
-
// src/
|
|
1709
|
-
|
|
1944
|
+
// src/styles/theme-resolver.ts
|
|
1945
|
+
init_themes();
|
|
1946
|
+
function resolveBuiltInTheme(themeName, options = {}) {
|
|
1947
|
+
if (!hasTheme(themeName)) {
|
|
1948
|
+
const available = [
|
|
1949
|
+
...getThemeNames(),
|
|
1950
|
+
...Object.keys(options.customThemes ?? {})
|
|
1951
|
+
].sort();
|
|
1952
|
+
options.warnings?.push({
|
|
1953
|
+
component: "theme",
|
|
1954
|
+
message: `Theme "${themeName}" not found; falling back to "minimal". Available themes: ${available.join(", ")}.`,
|
|
1955
|
+
severity: "warning",
|
|
1956
|
+
context: { code: "theme_not_found", requested: themeName, available }
|
|
1957
|
+
});
|
|
1958
|
+
}
|
|
1959
|
+
return getThemeWithFallback(themeName);
|
|
1960
|
+
}
|
|
1710
1961
|
|
|
1711
1962
|
// src/utils/formatters.ts
|
|
1712
1963
|
import { format } from "date-fns";
|
|
@@ -7524,11 +7775,11 @@ async function generateDocumentWithCustomThemes(documentIn, customThemes, servic
|
|
|
7524
7775
|
if (matchingThemeKey) {
|
|
7525
7776
|
theme = customThemes[matchingThemeKey];
|
|
7526
7777
|
} else {
|
|
7527
|
-
theme =
|
|
7778
|
+
theme = resolveBuiltInTheme(themeName, { customThemes, warnings });
|
|
7528
7779
|
}
|
|
7529
7780
|
}
|
|
7530
7781
|
} else {
|
|
7531
|
-
theme =
|
|
7782
|
+
theme = resolveBuiltInTheme(themeName, { warnings });
|
|
7532
7783
|
}
|
|
7533
7784
|
const mode = applyExportMode({ doc: document, theme, fonts });
|
|
7534
7785
|
document = mode.doc;
|
|
@@ -7962,7 +8213,6 @@ async function runExample(example, options = {}) {
|
|
|
7962
8213
|
}
|
|
7963
8214
|
|
|
7964
8215
|
// src/plugin/createDocumentGenerator.ts
|
|
7965
|
-
init_styles();
|
|
7966
8216
|
import { applyExportMode as applyExportMode2, scopedThemeName as scopedThemeName2 } from "@json-to-office/shared";
|
|
7967
8217
|
|
|
7968
8218
|
// src/plugin/version-resolver.ts
|
|
@@ -8207,7 +8457,7 @@ function mergeSchemas(customComponents, standardSchemas) {
|
|
|
8207
8457
|
// src/plugin/createDocumentGenerator.ts
|
|
8208
8458
|
function createBuilderImpl(state) {
|
|
8209
8459
|
const componentMap = new Map(state.components.map((c) => [c.name, c]));
|
|
8210
|
-
function resolveDocumentTheme(themeName) {
|
|
8460
|
+
function resolveDocumentTheme(themeName, warnings) {
|
|
8211
8461
|
if (state.customThemes) {
|
|
8212
8462
|
if (state.customThemes[themeName]) {
|
|
8213
8463
|
return state.customThemes[themeName];
|
|
@@ -8222,7 +8472,10 @@ function createBuilderImpl(state) {
|
|
|
8222
8472
|
if (state.theme) {
|
|
8223
8473
|
return state.theme;
|
|
8224
8474
|
}
|
|
8225
|
-
return
|
|
8475
|
+
return resolveBuiltInTheme(themeName, {
|
|
8476
|
+
customThemes: state.customThemes,
|
|
8477
|
+
warnings
|
|
8478
|
+
});
|
|
8226
8479
|
}
|
|
8227
8480
|
async function processDocumentComponents(components, preserveSet, warningsCollector, resolvedTheme, validateEmitted, depth = 0) {
|
|
8228
8481
|
if (depth > 20) {
|
|
@@ -8424,9 +8677,9 @@ function createBuilderImpl(state) {
|
|
|
8424
8677
|
);
|
|
8425
8678
|
}
|
|
8426
8679
|
};
|
|
8427
|
-
const baseThemeName = internalDocument.props.theme || "minimal";
|
|
8428
|
-
const docTheme = resolveDocumentTheme(baseThemeName);
|
|
8429
8680
|
const warnings = [];
|
|
8681
|
+
const baseThemeName = internalDocument.props.theme || "minimal";
|
|
8682
|
+
const docTheme = resolveDocumentTheme(baseThemeName, warnings);
|
|
8430
8683
|
const mode = applyExportMode2({
|
|
8431
8684
|
doc: internalDocument,
|
|
8432
8685
|
theme: docTheme,
|