@usejunior/docx-core 0.11.0 → 0.11.1
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/.tsbuildinfo +1 -1
- package/dist/generation/compile.d.ts +4 -3
- package/dist/generation/compile.d.ts.map +1 -1
- package/dist/generation/compile.js +17 -5
- package/dist/generation/compile.js.map +1 -1
- package/dist/generation/emit/emit-context.d.ts +3 -1
- package/dist/generation/emit/emit-context.d.ts.map +1 -1
- package/dist/generation/emit/font-table-part.d.ts +16 -0
- package/dist/generation/emit/font-table-part.d.ts.map +1 -0
- package/dist/generation/emit/font-table-part.js +74 -0
- package/dist/generation/emit/font-table-part.js.map +1 -0
- package/dist/generation/emit/numbering-part.d.ts.map +1 -1
- package/dist/generation/emit/numbering-part.js +7 -5
- package/dist/generation/emit/numbering-part.js.map +1 -1
- package/dist/generation/emit/paragraph.js +1 -1
- package/dist/generation/emit/paragraph.js.map +1 -1
- package/dist/generation/emit/properties.d.ts +4 -2
- package/dist/generation/emit/properties.d.ts.map +1 -1
- package/dist/generation/emit/properties.js +19 -3
- package/dist/generation/emit/properties.js.map +1 -1
- package/dist/generation/emit/run.d.ts +2 -1
- package/dist/generation/emit/run.d.ts.map +1 -1
- package/dist/generation/emit/run.js +13 -13
- package/dist/generation/emit/run.js.map +1 -1
- package/dist/generation/emit/settings-part.d.ts +3 -3
- package/dist/generation/emit/settings-part.d.ts.map +1 -1
- package/dist/generation/emit/settings-part.js +49 -5
- package/dist/generation/emit/settings-part.js.map +1 -1
- package/dist/generation/emit/styles-part.d.ts.map +1 -1
- package/dist/generation/emit/styles-part.js +5 -3
- package/dist/generation/emit/styles-part.js.map +1 -1
- package/dist/generation/emit/table.d.ts.map +1 -1
- package/dist/generation/emit/table.js +15 -2
- package/dist/generation/emit/table.js.map +1 -1
- package/dist/generation/emit/theme-part.d.ts +21 -0
- package/dist/generation/emit/theme-part.d.ts.map +1 -0
- package/dist/generation/emit/theme-part.js +151 -0
- package/dist/generation/emit/theme-part.js.map +1 -0
- package/dist/generation/emit/web-settings-part.d.ts +12 -0
- package/dist/generation/emit/web-settings-part.d.ts.map +1 -0
- package/dist/generation/emit/web-settings-part.js +19 -0
- package/dist/generation/emit/web-settings-part.js.map +1 -0
- package/dist/generation/recipes.d.ts +29 -6
- package/dist/generation/recipes.d.ts.map +1 -1
- package/dist/generation/recipes.js +70 -5
- package/dist/generation/recipes.js.map +1 -1
- package/dist/generation/theme-colors.d.ts +4 -0
- package/dist/generation/theme-colors.d.ts.map +1 -0
- package/dist/generation/theme-colors.js +18 -0
- package/dist/generation/theme-colors.js.map +1 -0
- package/dist/generation/types.d.ts +32 -0
- package/dist/generation/types.d.ts.map +1 -1
- package/dist/generation/types.js +39 -1
- package/dist/generation/types.js.map +1 -1
- package/dist/generation/validate-spec.d.ts.map +1 -1
- package/dist/generation/validate-spec.js +52 -0
- package/dist/generation/validate-spec.js.map +1 -1
- package/dist/primitives/namespaces.d.ts +5 -0
- package/dist/primitives/namespaces.d.ts.map +1 -1
- package/dist/primitives/namespaces.js +6 -0
- package/dist/primitives/namespaces.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* word/theme/theme1.xml emitter.
|
|
3
|
+
*
|
|
4
|
+
* Emitted on every package. Word-authored documents always reference a theme
|
|
5
|
+
* (default fonts/colors resolve through it); shipping the canonical Office theme
|
|
6
|
+
* keeps generated output part-for-part comparable to genuine Word output and
|
|
7
|
+
* removes a suspected Word-for-Mac repair trigger (issue #482). The body is the
|
|
8
|
+
* complete, static Office default theme — a truncated fmtScheme is itself a repair
|
|
9
|
+
* trigger, so the full color/font/format scheme is emitted verbatim. Static body →
|
|
10
|
+
* determinism holds.
|
|
11
|
+
*
|
|
12
|
+
* The root is the DrawingML `a:theme` element carrying themeElements
|
|
13
|
+
* (clrScheme + fontScheme + fmtScheme). Optional generation theme input applies
|
|
14
|
+
* partial color/font overrides to that canonical template before serialization.
|
|
15
|
+
*/
|
|
16
|
+
import { parseXml, serializeXml, XML_DECL } from '../../primitives/xml.js';
|
|
17
|
+
const THEME_CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.theme+xml';
|
|
18
|
+
const THEME_REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme';
|
|
19
|
+
const A_NS = 'http://schemas.openxmlformats.org/drawingml/2006/main';
|
|
20
|
+
/** Maps each authoring slot to its `clrScheme` child element name in theme1.xml. */
|
|
21
|
+
export const THEME_SLOT_TO_CLR_SCHEME = {
|
|
22
|
+
text1: 'dk1',
|
|
23
|
+
background1: 'lt1',
|
|
24
|
+
text2: 'dk2',
|
|
25
|
+
background2: 'lt2',
|
|
26
|
+
accent1: 'accent1',
|
|
27
|
+
accent2: 'accent2',
|
|
28
|
+
accent3: 'accent3',
|
|
29
|
+
accent4: 'accent4',
|
|
30
|
+
accent5: 'accent5',
|
|
31
|
+
accent6: 'accent6',
|
|
32
|
+
hyperlink: 'hlink',
|
|
33
|
+
followedHyperlink: 'folHlink',
|
|
34
|
+
};
|
|
35
|
+
/** The canonical Office default theme (clrScheme + fontScheme + full fmtScheme). */
|
|
36
|
+
const THEME1_XML = `<a:theme xmlns:a="${A_NS}" name="Office Theme">` +
|
|
37
|
+
'<a:themeElements>' +
|
|
38
|
+
'<a:clrScheme name="Office">' +
|
|
39
|
+
'<a:dk1><a:sysClr val="windowText" lastClr="000000"/></a:dk1>' +
|
|
40
|
+
'<a:lt1><a:sysClr val="window" lastClr="FFFFFF"/></a:lt1>' +
|
|
41
|
+
'<a:dk2><a:srgbClr val="44546A"/></a:dk2>' +
|
|
42
|
+
'<a:lt2><a:srgbClr val="E7E6E6"/></a:lt2>' +
|
|
43
|
+
'<a:accent1><a:srgbClr val="4472C4"/></a:accent1>' +
|
|
44
|
+
'<a:accent2><a:srgbClr val="ED7D31"/></a:accent2>' +
|
|
45
|
+
'<a:accent3><a:srgbClr val="A5A5A5"/></a:accent3>' +
|
|
46
|
+
'<a:accent4><a:srgbClr val="FFC000"/></a:accent4>' +
|
|
47
|
+
'<a:accent5><a:srgbClr val="5B9BD5"/></a:accent5>' +
|
|
48
|
+
'<a:accent6><a:srgbClr val="70AD47"/></a:accent6>' +
|
|
49
|
+
'<a:hlink><a:srgbClr val="0563C1"/></a:hlink>' +
|
|
50
|
+
'<a:folHlink><a:srgbClr val="954F72"/></a:folHlink>' +
|
|
51
|
+
'</a:clrScheme>' +
|
|
52
|
+
'<a:fontScheme name="Office">' +
|
|
53
|
+
'<a:majorFont>' +
|
|
54
|
+
'<a:latin typeface="Calibri Light" panose="020F0302020204030204"/>' +
|
|
55
|
+
'<a:ea typeface=""/>' +
|
|
56
|
+
'<a:cs typeface=""/>' +
|
|
57
|
+
'</a:majorFont>' +
|
|
58
|
+
'<a:minorFont>' +
|
|
59
|
+
'<a:latin typeface="Calibri" panose="020F0502020204030204"/>' +
|
|
60
|
+
'<a:ea typeface=""/>' +
|
|
61
|
+
'<a:cs typeface=""/>' +
|
|
62
|
+
'</a:minorFont>' +
|
|
63
|
+
'</a:fontScheme>' +
|
|
64
|
+
'<a:fmtScheme name="Office">' +
|
|
65
|
+
'<a:fillStyleLst>' +
|
|
66
|
+
'<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>' +
|
|
67
|
+
'<a:gradFill rotWithShape="1">' +
|
|
68
|
+
'<a:gsLst>' +
|
|
69
|
+
'<a:gs pos="0"><a:schemeClr val="phClr"><a:lumMod val="110000"/><a:satMod val="105000"/><a:tint val="67000"/></a:schemeClr></a:gs>' +
|
|
70
|
+
'<a:gs pos="50000"><a:schemeClr val="phClr"><a:lumMod val="105000"/><a:satMod val="103000"/><a:tint val="73000"/></a:schemeClr></a:gs>' +
|
|
71
|
+
'<a:gs pos="100000"><a:schemeClr val="phClr"><a:lumMod val="105000"/><a:satMod val="109000"/><a:tint val="81000"/></a:schemeClr></a:gs>' +
|
|
72
|
+
'</a:gsLst>' +
|
|
73
|
+
'<a:lin ang="5400000" scaled="0"/>' +
|
|
74
|
+
'</a:gradFill>' +
|
|
75
|
+
'<a:gradFill rotWithShape="1">' +
|
|
76
|
+
'<a:gsLst>' +
|
|
77
|
+
'<a:gs pos="0"><a:schemeClr val="phClr"><a:satMod val="103000"/><a:lumMod val="102000"/><a:tint val="94000"/></a:schemeClr></a:gs>' +
|
|
78
|
+
'<a:gs pos="50000"><a:schemeClr val="phClr"><a:satMod val="110000"/><a:lumMod val="100000"/><a:shade val="100000"/></a:schemeClr></a:gs>' +
|
|
79
|
+
'<a:gs pos="100000"><a:schemeClr val="phClr"><a:lumMod val="99000"/><a:satMod val="120000"/><a:shade val="78000"/></a:schemeClr></a:gs>' +
|
|
80
|
+
'</a:gsLst>' +
|
|
81
|
+
'<a:lin ang="5400000" scaled="0"/>' +
|
|
82
|
+
'</a:gradFill>' +
|
|
83
|
+
'</a:fillStyleLst>' +
|
|
84
|
+
'<a:lnStyleLst>' +
|
|
85
|
+
'<a:ln w="6350" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/><a:miter lim="800000"/></a:ln>' +
|
|
86
|
+
'<a:ln w="12700" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/><a:miter lim="800000"/></a:ln>' +
|
|
87
|
+
'<a:ln w="19050" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/><a:miter lim="800000"/></a:ln>' +
|
|
88
|
+
'</a:lnStyleLst>' +
|
|
89
|
+
'<a:effectStyleLst>' +
|
|
90
|
+
'<a:effectStyle><a:effectLst/></a:effectStyle>' +
|
|
91
|
+
'<a:effectStyle><a:effectLst/></a:effectStyle>' +
|
|
92
|
+
'<a:effectStyle><a:effectLst><a:outerShdw blurRad="57150" dist="19050" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="63000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle>' +
|
|
93
|
+
'</a:effectStyleLst>' +
|
|
94
|
+
'<a:bgFillStyleLst>' +
|
|
95
|
+
'<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>' +
|
|
96
|
+
'<a:solidFill><a:schemeClr val="phClr"><a:tint val="95000"/><a:satMod val="170000"/></a:schemeClr></a:solidFill>' +
|
|
97
|
+
'<a:gradFill rotWithShape="1">' +
|
|
98
|
+
'<a:gsLst>' +
|
|
99
|
+
'<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="93000"/><a:satMod val="150000"/><a:shade val="98000"/><a:lumMod val="102000"/></a:schemeClr></a:gs>' +
|
|
100
|
+
'<a:gs pos="50000"><a:schemeClr val="phClr"><a:tint val="98000"/><a:satMod val="130000"/><a:shade val="90000"/><a:lumMod val="103000"/></a:schemeClr></a:gs>' +
|
|
101
|
+
'<a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="63000"/><a:satMod val="120000"/></a:schemeClr></a:gs>' +
|
|
102
|
+
'</a:gsLst>' +
|
|
103
|
+
'<a:lin ang="5400000" scaled="0"/>' +
|
|
104
|
+
'</a:gradFill>' +
|
|
105
|
+
'</a:bgFillStyleLst>' +
|
|
106
|
+
'</a:fmtScheme>' +
|
|
107
|
+
'</a:themeElements>' +
|
|
108
|
+
'<a:objectDefaults/>' +
|
|
109
|
+
'<a:extraClrSchemeLst/>' +
|
|
110
|
+
'</a:theme>';
|
|
111
|
+
export function emitThemePart(ctx, theme) {
|
|
112
|
+
ctx.registerPart('word/theme/theme1.xml', THEME_CONTENT_TYPE, THEME_REL_TYPE);
|
|
113
|
+
// Parse + reserialize: normalizes output and fails loudly if the static body is
|
|
114
|
+
// ever edited into malformed XML. Theme overrides mutate that parsed template
|
|
115
|
+
// so callers get the complete Office fmtScheme with only requested changes.
|
|
116
|
+
const doc = parseXml(THEME1_XML);
|
|
117
|
+
applyThemeOverrides(doc, theme);
|
|
118
|
+
ctx.setFileContent('word/theme/theme1.xml', XML_DECL + serializeXml(doc));
|
|
119
|
+
}
|
|
120
|
+
function applyThemeOverrides(doc, theme) {
|
|
121
|
+
if (!theme)
|
|
122
|
+
return;
|
|
123
|
+
for (const [slot, hex] of Object.entries(theme.colors ?? {})) {
|
|
124
|
+
replaceSchemeColor(doc, slot, hex);
|
|
125
|
+
}
|
|
126
|
+
if (theme.fonts?.major !== undefined) {
|
|
127
|
+
setLatinTypeface(doc, 'a:majorFont', theme.fonts.major);
|
|
128
|
+
}
|
|
129
|
+
if (theme.fonts?.minor !== undefined) {
|
|
130
|
+
setLatinTypeface(doc, 'a:minorFont', theme.fonts.minor);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
function replaceSchemeColor(doc, slot, hex) {
|
|
134
|
+
const elementName = THEME_SLOT_TO_CLR_SCHEME[slot];
|
|
135
|
+
const schemeEl = doc.getElementsByTagName(`a:${elementName}`).item(0);
|
|
136
|
+
if (!schemeEl)
|
|
137
|
+
throw new Error(`theme clrScheme is missing a:${elementName}`);
|
|
138
|
+
while (schemeEl.firstChild)
|
|
139
|
+
schemeEl.removeChild(schemeEl.firstChild);
|
|
140
|
+
const srgb = doc.createElementNS(A_NS, 'a:srgbClr');
|
|
141
|
+
srgb.setAttribute('val', hex);
|
|
142
|
+
schemeEl.appendChild(srgb);
|
|
143
|
+
}
|
|
144
|
+
function setLatinTypeface(doc, fontElementName, typeface) {
|
|
145
|
+
const fontEl = doc.getElementsByTagName(fontElementName).item(0);
|
|
146
|
+
const latin = fontEl?.getElementsByTagName('a:latin').item(0);
|
|
147
|
+
if (!latin)
|
|
148
|
+
throw new Error(`theme fontScheme is missing ${fontElementName}/a:latin`);
|
|
149
|
+
latin.setAttribute('typeface', typeface);
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=theme-part.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-part.js","sourceRoot":"","sources":["../../../src/generation/emit/theme-part.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAI3E,MAAM,kBAAkB,GAAG,yDAAyD,CAAC;AACrF,MAAM,cAAc,GAClB,2EAA2E,CAAC;AAE9E,MAAM,IAAI,GAAG,uDAAuD,CAAC;AAErE,oFAAoF;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAmC;IACtE,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,KAAK;IAClB,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,OAAO;IAClB,iBAAiB,EAAE,UAAU;CAC9B,CAAC;AAEF,oFAAoF;AACpF,MAAM,UAAU,GACd,qBAAqB,IAAI,wBAAwB;IACjD,mBAAmB;IACnB,6BAA6B;IAC7B,8DAA8D;IAC9D,0DAA0D;IAC1D,0CAA0C;IAC1C,0CAA0C;IAC1C,kDAAkD;IAClD,kDAAkD;IAClD,kDAAkD;IAClD,kDAAkD;IAClD,kDAAkD;IAClD,kDAAkD;IAClD,8CAA8C;IAC9C,oDAAoD;IACpD,gBAAgB;IAChB,8BAA8B;IAC9B,eAAe;IACf,mEAAmE;IACnE,qBAAqB;IACrB,qBAAqB;IACrB,gBAAgB;IAChB,eAAe;IACf,6DAA6D;IAC7D,qBAAqB;IACrB,qBAAqB;IACrB,gBAAgB;IAChB,iBAAiB;IACjB,6BAA6B;IAC7B,kBAAkB;IAClB,uDAAuD;IACvD,+BAA+B;IAC/B,WAAW;IACX,mIAAmI;IACnI,uIAAuI;IACvI,wIAAwI;IACxI,YAAY;IACZ,mCAAmC;IACnC,eAAe;IACf,+BAA+B;IAC/B,WAAW;IACX,mIAAmI;IACnI,yIAAyI;IACzI,wIAAwI;IACxI,YAAY;IACZ,mCAAmC;IACnC,eAAe;IACf,mBAAmB;IACnB,gBAAgB;IAChB,8JAA8J;IAC9J,+JAA+J;IAC/J,+JAA+J;IAC/J,iBAAiB;IACjB,oBAAoB;IACpB,+CAA+C;IAC/C,+CAA+C;IAC/C,6MAA6M;IAC7M,qBAAqB;IACrB,oBAAoB;IACpB,uDAAuD;IACvD,iHAAiH;IACjH,+BAA+B;IAC/B,WAAW;IACX,yJAAyJ;IACzJ,6JAA6J;IAC7J,iHAAiH;IACjH,YAAY;IACZ,mCAAmC;IACnC,eAAe;IACf,qBAAqB;IACrB,gBAAgB;IAChB,oBAAoB;IACpB,qBAAqB;IACrB,wBAAwB;IACxB,YAAY,CAAC;AAEf,MAAM,UAAU,aAAa,CAAC,GAAmB,EAAE,KAAyB;IAC1E,GAAG,CAAC,YAAY,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC;IAC9E,gFAAgF;IAChF,8EAA8E;IAC9E,4EAA4E;IAC5E,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACjC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChC,GAAG,CAAC,cAAc,CAAC,uBAAuB,EAAE,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAa,EAAE,KAAyB;IACnE,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAoC,EAAE,CAAC;QAChG,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;QACrC,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;QACrC,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAa,EAAE,IAAoB,EAAE,GAAW;IAC1E,MAAM,WAAW,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,GAAG,CAAC,oBAAoB,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtE,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAC;IAE9E,OAAO,QAAQ,CAAC,UAAU;QAAE,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAa,EAAE,eAA8C,EAAE,QAAgB;IACvG,MAAM,MAAM,GAAG,GAAG,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,MAAM,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,eAAe,UAAU,CAAC,CAAC;IACtF,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* word/webSettings.xml emitter.
|
|
3
|
+
*
|
|
4
|
+
* Emitted on every package. Word-authored documents always carry a web-settings
|
|
5
|
+
* part; shipping a minimal one keeps generated output part-for-part comparable to
|
|
6
|
+
* genuine Word output (see issue #482). The body is static, so determinism holds.
|
|
7
|
+
*
|
|
8
|
+
* The root is the WordprocessingML `w:webSettings` element.
|
|
9
|
+
*/
|
|
10
|
+
import type { CompileContext } from '../context.js';
|
|
11
|
+
export declare function emitWebSettingsPart(ctx: CompileContext): void;
|
|
12
|
+
//# sourceMappingURL=web-settings-part.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-settings-part.d.ts","sourceRoot":"","sources":["../../../src/generation/emit/web-settings-part.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAQpD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAM7D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* word/webSettings.xml emitter.
|
|
3
|
+
*
|
|
4
|
+
* Emitted on every package. Word-authored documents always carry a web-settings
|
|
5
|
+
* part; shipping a minimal one keeps generated output part-for-part comparable to
|
|
6
|
+
* genuine Word output (see issue #482). The body is static, so determinism holds.
|
|
7
|
+
*
|
|
8
|
+
* The root is the WordprocessingML `w:webSettings` element.
|
|
9
|
+
*/
|
|
10
|
+
import { parseXml, serializeXml, XML_DECL } from '../../primitives/xml.js';
|
|
11
|
+
import { OOXML } from '../../primitives/namespaces.js';
|
|
12
|
+
const WEB_SETTINGS_CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml';
|
|
13
|
+
const WEB_SETTINGS_REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings';
|
|
14
|
+
export function emitWebSettingsPart(ctx) {
|
|
15
|
+
ctx.registerPart('word/webSettings.xml', WEB_SETTINGS_CONTENT_TYPE, WEB_SETTINGS_REL_TYPE);
|
|
16
|
+
const doc = parseXml(`<w:webSettings xmlns:w="${OOXML.W_NS}"><w:optimizeForBrowser/><w:allowPNG/></w:webSettings>`);
|
|
17
|
+
ctx.setFileContent('word/webSettings.xml', XML_DECL + serializeXml(doc));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=web-settings-part.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-settings-part.js","sourceRoot":"","sources":["../../../src/generation/emit/web-settings-part.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAEvD,MAAM,yBAAyB,GAC7B,gFAAgF,CAAC;AACnF,MAAM,qBAAqB,GACzB,iFAAiF,CAAC;AAEpF,MAAM,UAAU,mBAAmB,CAAC,GAAmB;IACrD,GAAG,CAAC,YAAY,CAAC,sBAAsB,EAAE,yBAAyB,EAAE,qBAAqB,CAAC,CAAC;IAC3F,MAAM,GAAG,GAAG,QAAQ,CAClB,2BAA2B,KAAK,CAAC,IAAI,wDAAwD,CAC9F,CAAC;IACF,GAAG,CAAC,cAAc,CAAC,sBAAsB,EAAE,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3E,CAAC"}
|
|
@@ -9,20 +9,43 @@
|
|
|
9
9
|
* VML shapes: Pages and Google Docs mangle VML, borders survive everywhere.
|
|
10
10
|
*/
|
|
11
11
|
import type { BlockSpec, TableSpec } from './types.js';
|
|
12
|
+
export type CoverTermRow = {
|
|
13
|
+
label: string;
|
|
14
|
+
value: string;
|
|
15
|
+
};
|
|
16
|
+
export type CoverTermGroupRow = {
|
|
17
|
+
group: string;
|
|
18
|
+
};
|
|
19
|
+
export type CoverTermSubrow = {
|
|
20
|
+
label: string;
|
|
21
|
+
value: string;
|
|
22
|
+
subrow: true;
|
|
23
|
+
};
|
|
24
|
+
export type CoverTermEntry = CoverTermRow | CoverTermGroupRow | CoverTermSubrow;
|
|
12
25
|
export type CoverTermsOptions = {
|
|
13
|
-
/**
|
|
14
|
-
terms:
|
|
15
|
-
label: string;
|
|
16
|
-
value: string;
|
|
17
|
-
}>;
|
|
26
|
+
/** Plain rows, group headers, and subrows rendered in declaration order. */
|
|
27
|
+
terms: CoverTermEntry[];
|
|
18
28
|
/** Two-column widths in twips; defaults to a 2880/6480 split of a 6.5" body. */
|
|
19
29
|
columnWidthsTwips?: [number, number];
|
|
20
30
|
/** Heading text for a shaded full-width header row; omitted when absent. */
|
|
21
31
|
title?: string;
|
|
32
|
+
/** Table border style; defaults to the historical full grid. */
|
|
33
|
+
borderMode?: 'grid' | 'horizontal-rules';
|
|
34
|
+
/** Optional minimum row height applied to term/group/sub rows, not the title row. */
|
|
35
|
+
rowHeightTwips?: number;
|
|
36
|
+
/** Optional uniform cell padding applied to every cover-terms cell. */
|
|
37
|
+
cellPaddingTwips?: number;
|
|
38
|
+
/** Text color for subrow labels and values; defaults to mid-gray. */
|
|
39
|
+
subrowColorHex?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Extra left indent on subrow label cells, added on top of `cellPaddingTwips`
|
|
42
|
+
* (so the label sits further right than a normal row). Defaults to 240 twips.
|
|
43
|
+
*/
|
|
44
|
+
subrowLabelIndentTwips?: number;
|
|
22
45
|
};
|
|
23
46
|
/**
|
|
24
47
|
* A fixed-layout two-column label/value table for cover-terms blocks
|
|
25
|
-
* (scenario SDX-GEN-070).
|
|
48
|
+
* (scenario SDX-GEN-070), with optional house-style grouped/sub rows.
|
|
26
49
|
*/
|
|
27
50
|
export declare function coverTermsTable(options: CoverTermsOptions): TableSpec;
|
|
28
51
|
export type SignatureBlockOptions = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/generation/recipes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA6B,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/generation/recipes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA6B,SAAS,EAAE,MAAM,YAAY,CAAC;AAOlF,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5D,MAAM,MAAM,iBAAiB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAClD,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,IAAI,CAAA;CAAE,CAAC;AAC7E,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAEhF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,4EAA4E;IAC5E,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC;IACzC,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CA4ErE;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,KAAK,CAAC;QACb,qEAAqE;QACrE,KAAK,EAAE,MAAM,CAAC;QACd,6CAA6C;QAC7C,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,mDAAmD;QACnD,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,SAAS,EAAE,CAsB1E"}
|
|
@@ -9,12 +9,19 @@
|
|
|
9
9
|
* VML shapes: Pages and Google Docs mangle VML, borders survive everywhere.
|
|
10
10
|
*/
|
|
11
11
|
const SINGLE = { style: 'single' };
|
|
12
|
+
const NONE = { style: 'none' };
|
|
13
|
+
const DEFAULT_SUBROW_COLOR_HEX = '595959';
|
|
14
|
+
const DEFAULT_SUBROW_LABEL_INDENT_TWIPS = 240;
|
|
12
15
|
/**
|
|
13
16
|
* A fixed-layout two-column label/value table for cover-terms blocks
|
|
14
|
-
* (scenario SDX-GEN-070).
|
|
17
|
+
* (scenario SDX-GEN-070), with optional house-style grouped/sub rows.
|
|
15
18
|
*/
|
|
16
19
|
export function coverTermsTable(options) {
|
|
17
20
|
const [labelWidth, valueWidth] = options.columnWidthsTwips ?? [2880, 6480];
|
|
21
|
+
const borders = options.borderMode === 'horizontal-rules'
|
|
22
|
+
? { top: SINGLE, bottom: SINGLE, left: NONE, right: NONE, insideH: SINGLE, insideV: NONE }
|
|
23
|
+
: { top: SINGLE, bottom: SINGLE, left: SINGLE, right: SINGLE, insideH: SINGLE, insideV: SINGLE };
|
|
24
|
+
const rowRhythm = rowRhythmProps(options);
|
|
18
25
|
const rows = [];
|
|
19
26
|
if (options.title !== undefined) {
|
|
20
27
|
rows.push({
|
|
@@ -24,16 +31,52 @@ export function coverTermsTable(options) {
|
|
|
24
31
|
gridSpan: 2,
|
|
25
32
|
shadingHex: 'D9D9D9',
|
|
26
33
|
vAlign: 'center',
|
|
34
|
+
...cellPaddingProps(options),
|
|
27
35
|
blocks: [paragraph(options.title, { bold: true, alignment: 'center' })],
|
|
28
36
|
},
|
|
29
37
|
],
|
|
30
38
|
});
|
|
31
39
|
}
|
|
32
40
|
for (const term of options.terms) {
|
|
41
|
+
if ('group' in term) {
|
|
42
|
+
rows.push({
|
|
43
|
+
...rowRhythm,
|
|
44
|
+
cells: [
|
|
45
|
+
{
|
|
46
|
+
gridSpan: 2,
|
|
47
|
+
vAlign: 'center',
|
|
48
|
+
...cellPaddingProps(options),
|
|
49
|
+
blocks: [paragraph(term.group, { bold: true })],
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
});
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const subrow = 'subrow' in term && term.subrow === true;
|
|
33
56
|
rows.push({
|
|
57
|
+
...rowRhythm,
|
|
34
58
|
cells: [
|
|
35
|
-
{
|
|
36
|
-
|
|
59
|
+
{
|
|
60
|
+
...cellPaddingProps(options, subrow
|
|
61
|
+
? { left: (options.cellPaddingTwips ?? 0) + (options.subrowLabelIndentTwips ?? DEFAULT_SUBROW_LABEL_INDENT_TWIPS) }
|
|
62
|
+
: undefined),
|
|
63
|
+
blocks: [
|
|
64
|
+
paragraph(term.label, {
|
|
65
|
+
bold: !subrow,
|
|
66
|
+
italic: subrow,
|
|
67
|
+
colorHex: subrow ? (options.subrowColorHex ?? DEFAULT_SUBROW_COLOR_HEX) : undefined,
|
|
68
|
+
}),
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
...cellPaddingProps(options),
|
|
73
|
+
blocks: [
|
|
74
|
+
paragraph(term.value, {
|
|
75
|
+
italic: subrow,
|
|
76
|
+
colorHex: subrow ? (options.subrowColorHex ?? DEFAULT_SUBROW_COLOR_HEX) : undefined,
|
|
77
|
+
}),
|
|
78
|
+
],
|
|
79
|
+
},
|
|
37
80
|
],
|
|
38
81
|
});
|
|
39
82
|
}
|
|
@@ -41,7 +84,7 @@ export function coverTermsTable(options) {
|
|
|
41
84
|
kind: 'table',
|
|
42
85
|
layout: 'fixed',
|
|
43
86
|
columnWidthsTwips: [labelWidth, valueWidth],
|
|
44
|
-
borders
|
|
87
|
+
borders,
|
|
45
88
|
rows,
|
|
46
89
|
};
|
|
47
90
|
}
|
|
@@ -78,7 +121,29 @@ function paragraph(text, opts) {
|
|
|
78
121
|
return {
|
|
79
122
|
kind: 'paragraph',
|
|
80
123
|
...(opts?.alignment !== undefined ? { alignment: opts.alignment } : {}),
|
|
81
|
-
runs: [
|
|
124
|
+
runs: [
|
|
125
|
+
{
|
|
126
|
+
kind: 'text',
|
|
127
|
+
text,
|
|
128
|
+
...(opts?.bold ? { bold: true } : {}),
|
|
129
|
+
...(opts?.italic ? { italic: true } : {}),
|
|
130
|
+
...(opts?.colorHex !== undefined ? { colorHex: opts.colorHex } : {}),
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function rowRhythmProps(options) {
|
|
136
|
+
return options.rowHeightTwips === undefined ? {} : { heightTwips: options.rowHeightTwips, heightRule: 'atLeast' };
|
|
137
|
+
}
|
|
138
|
+
function cellPaddingProps(options, overrides) {
|
|
139
|
+
if (options.cellPaddingTwips === undefined && overrides === undefined)
|
|
140
|
+
return {};
|
|
141
|
+
const uniform = options.cellPaddingTwips;
|
|
142
|
+
return {
|
|
143
|
+
marginsTwips: {
|
|
144
|
+
...(uniform === undefined ? {} : { top: uniform, right: uniform, bottom: uniform, left: uniform }),
|
|
145
|
+
...overrides,
|
|
146
|
+
},
|
|
82
147
|
};
|
|
83
148
|
}
|
|
84
149
|
//# sourceMappingURL=recipes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../src/generation/recipes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,MAAM,GAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../src/generation/recipes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DocumentThemeSpec, ThemeColorSlot } from './types.js';
|
|
2
|
+
export declare const CANONICAL_THEME_COLORS: Record<ThemeColorSlot, string>;
|
|
3
|
+
export declare function resolveThemeColorValues(theme?: DocumentThemeSpec): ReadonlyMap<ThemeColorSlot, string>;
|
|
4
|
+
//# sourceMappingURL=theme-colors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-colors.d.ts","sourceRoot":"","sources":["../../src/generation/theme-colors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpE,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAajE,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,iBAAiB,GAAG,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAEtG"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const CANONICAL_THEME_COLORS = {
|
|
2
|
+
text1: '000000',
|
|
3
|
+
background1: 'FFFFFF',
|
|
4
|
+
text2: '44546A',
|
|
5
|
+
background2: 'E7E6E6',
|
|
6
|
+
accent1: '4472C4',
|
|
7
|
+
accent2: 'ED7D31',
|
|
8
|
+
accent3: 'A5A5A5',
|
|
9
|
+
accent4: 'FFC000',
|
|
10
|
+
accent5: '5B9BD5',
|
|
11
|
+
accent6: '70AD47',
|
|
12
|
+
hyperlink: '0563C1',
|
|
13
|
+
followedHyperlink: '954F72',
|
|
14
|
+
};
|
|
15
|
+
export function resolveThemeColorValues(theme) {
|
|
16
|
+
return new Map(Object.entries({ ...CANONICAL_THEME_COLORS, ...(theme?.colors ?? {}) }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=theme-colors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-colors.js","sourceRoot":"","sources":["../../src/generation/theme-colors.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAmC;IACpE,KAAK,EAAE,QAAQ;IACf,WAAW,EAAE,QAAQ;IACrB,KAAK,EAAE,QAAQ;IACf,WAAW,EAAE,QAAQ;IACrB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,QAAQ;IACnB,iBAAiB,EAAE,QAAQ;CAC5B,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,KAAyB;IAC/D,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,sBAAsB,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,CAAoC,CAAC,CAAC;AAC7H,CAAC"}
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
*/
|
|
15
15
|
export type DocumentSpec = {
|
|
16
16
|
meta?: DocumentMetaSpec;
|
|
17
|
+
/** Optional partial override for the emitted package theme. */
|
|
18
|
+
theme?: DocumentThemeSpec;
|
|
17
19
|
/** Emitted to word/styles.xml. Document defaults + Normal are always emitted. */
|
|
18
20
|
styles?: StyleSpec[];
|
|
19
21
|
/** Emitted to word/numbering.xml when non-empty. */
|
|
@@ -31,6 +33,17 @@ export type DocumentMetaSpec = {
|
|
|
31
33
|
/** ISO-8601 timestamp used for docProps dates. Generation never reads the clock. */
|
|
32
34
|
createdIso?: string;
|
|
33
35
|
};
|
|
36
|
+
export declare const THEME_COLOR_SLOTS: readonly ["text1", "background1", "text2", "background2", "accent1", "accent2", "accent3", "accent4", "accent5", "accent6", "hyperlink", "followedHyperlink"];
|
|
37
|
+
export type ThemeColorSlot = (typeof THEME_COLOR_SLOTS)[number];
|
|
38
|
+
export type DocumentThemeSpec = {
|
|
39
|
+
/** Partial slot overrides; values are six-digit hex without '#'. */
|
|
40
|
+
colors?: Partial<Record<ThemeColorSlot, string>>;
|
|
41
|
+
/** Optional major (headings) and minor (body) latin typefaces. */
|
|
42
|
+
fonts?: {
|
|
43
|
+
major?: string;
|
|
44
|
+
minor?: string;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
34
47
|
export type SectionSpec = {
|
|
35
48
|
page?: {
|
|
36
49
|
/** Defaults to US Letter (12240 × 15840). */
|
|
@@ -104,6 +117,14 @@ export type ParagraphSpec = {
|
|
|
104
117
|
note?: DraftingNoteSpec;
|
|
105
118
|
};
|
|
106
119
|
export type InlineSpec = RunSpec | FieldSpec | TabSpec | BreakSpec;
|
|
120
|
+
/**
|
|
121
|
+
* The fixed set of text-highlight values (CT_HighlightColor). Single source of
|
|
122
|
+
* truth: the {@link HighlightColor} union is derived from this array, and
|
|
123
|
+
* validation reuses it as a runtime whitelist so JSON/JS callers cannot author
|
|
124
|
+
* an out-of-enum `w:highlight`.
|
|
125
|
+
*/
|
|
126
|
+
export declare const HIGHLIGHT_COLORS: readonly ["yellow", "green", "cyan", "magenta", "blue", "red", "darkBlue", "darkCyan", "darkGreen", "darkMagenta", "darkRed", "darkYellow", "darkGray", "lightGray", "black", "white", "none"];
|
|
127
|
+
export type HighlightColor = (typeof HIGHLIGHT_COLORS)[number];
|
|
107
128
|
/** Run-level formatting shared by text runs, fields, and style definitions. */
|
|
108
129
|
export type RunProps = {
|
|
109
130
|
bold?: boolean;
|
|
@@ -111,6 +132,14 @@ export type RunProps = {
|
|
|
111
132
|
underline?: 'single' | 'double' | 'none';
|
|
112
133
|
/** Six-digit hex without '#', e.g. 'FF0000'. */
|
|
113
134
|
colorHex?: string;
|
|
135
|
+
/** Theme color slot emitted as w:color/@w:themeColor. */
|
|
136
|
+
themeColor?: ThemeColorSlot;
|
|
137
|
+
/** Two-digit hex tint emitted as w:color/@w:themeTint. */
|
|
138
|
+
themeTint?: string;
|
|
139
|
+
/** Two-digit hex shade emitted as w:color/@w:themeShade. */
|
|
140
|
+
themeShade?: string;
|
|
141
|
+
/** Fixed text highlight color; arbitrary run fill belongs to run shading. */
|
|
142
|
+
highlight?: HighlightColor;
|
|
114
143
|
/** Applied to ascii + hAnsi + cs so all script ranges agree. */
|
|
115
144
|
font?: string;
|
|
116
145
|
sizePt?: number;
|
|
@@ -173,6 +202,9 @@ export type TableCellSpec = {
|
|
|
173
202
|
vMerge?: 'restart' | 'continue';
|
|
174
203
|
borders?: TableBorders;
|
|
175
204
|
shadingHex?: string;
|
|
205
|
+
themeFill?: ThemeColorSlot;
|
|
206
|
+
themeFillTint?: string;
|
|
207
|
+
themeFillShade?: string;
|
|
176
208
|
vAlign?: 'top' | 'center' | 'bottom';
|
|
177
209
|
marginsTwips?: {
|
|
178
210
|
top?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/generation/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/generation/types.ts"],"names":[],"mappings":"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"}
|
package/dist/generation/types.js
CHANGED
|
@@ -12,5 +12,43 @@
|
|
|
12
12
|
* compiler rejects any spec feature whose emitter has not shipped yet
|
|
13
13
|
* (see validate-spec.ts) rather than silently ignoring it.
|
|
14
14
|
*/
|
|
15
|
-
export
|
|
15
|
+
export const THEME_COLOR_SLOTS = [
|
|
16
|
+
'text1',
|
|
17
|
+
'background1',
|
|
18
|
+
'text2',
|
|
19
|
+
'background2',
|
|
20
|
+
'accent1',
|
|
21
|
+
'accent2',
|
|
22
|
+
'accent3',
|
|
23
|
+
'accent4',
|
|
24
|
+
'accent5',
|
|
25
|
+
'accent6',
|
|
26
|
+
'hyperlink',
|
|
27
|
+
'followedHyperlink',
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* The fixed set of text-highlight values (CT_HighlightColor). Single source of
|
|
31
|
+
* truth: the {@link HighlightColor} union is derived from this array, and
|
|
32
|
+
* validation reuses it as a runtime whitelist so JSON/JS callers cannot author
|
|
33
|
+
* an out-of-enum `w:highlight`.
|
|
34
|
+
*/
|
|
35
|
+
export const HIGHLIGHT_COLORS = [
|
|
36
|
+
'yellow',
|
|
37
|
+
'green',
|
|
38
|
+
'cyan',
|
|
39
|
+
'magenta',
|
|
40
|
+
'blue',
|
|
41
|
+
'red',
|
|
42
|
+
'darkBlue',
|
|
43
|
+
'darkCyan',
|
|
44
|
+
'darkGreen',
|
|
45
|
+
'darkMagenta',
|
|
46
|
+
'darkRed',
|
|
47
|
+
'darkYellow',
|
|
48
|
+
'darkGray',
|
|
49
|
+
'lightGray',
|
|
50
|
+
'black',
|
|
51
|
+
'white',
|
|
52
|
+
'none',
|
|
53
|
+
];
|
|
16
54
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/generation/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/generation/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAyBH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO;IACP,aAAa;IACb,OAAO;IACP,aAAa;IACb,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,WAAW;IACX,mBAAmB;CACX,CAAC;AAkFX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ;IACR,OAAO;IACP,MAAM;IACN,SAAS;IACT,MAAM;IACN,KAAK;IACL,UAAU;IACV,UAAU;IACV,WAAW;IACX,aAAa;IACb,SAAS;IACT,YAAY;IACZ,UAAU;IACV,WAAW;IACX,OAAO;IACP,OAAO;IACP,MAAM;CACE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-spec.d.ts","sourceRoot":"","sources":["../../src/generation/validate-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAGV,YAAY,EASb,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"validate-spec.d.ts","sourceRoot":"","sources":["../../src/generation/validate-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAGV,YAAY,EASb,MAAM,YAAY,CAAC;AAiBpB,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAYrD"}
|