@bendyline/squisq-formats 2.8.17 → 2.8.19

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.
Files changed (31) hide show
  1. package/dist/{chunk-BGQDPDCD.js → chunk-42ETCBAK.js} +2 -2
  2. package/dist/{chunk-5HUHSLGA.js → chunk-6OB2DSGW.js} +1 -1
  3. package/dist/{chunk-ATWVNF7D.js → chunk-6QVOHRRL.js} +1 -1
  4. package/dist/{chunk-YRFBWYAD.js → chunk-AQZ2CAET.js} +1 -1
  5. package/dist/{chunk-S5PCVMKU.js → chunk-BB3BLYLM.js} +8 -0
  6. package/dist/{chunk-OK622ILP.js → chunk-BGVT5I55.js} +1 -1
  7. package/dist/{chunk-WATAOG4Y.js → chunk-FD7IDL5V.js} +2 -2
  8. package/dist/{chunk-3KXEE7KH.js → chunk-GJWBVR4X.js} +3 -3
  9. package/dist/{chunk-JB3ZVN7D.js → chunk-HAGYYPFR.js} +2 -2
  10. package/dist/{chunk-4SPMLGOG.js → chunk-J6LR22RZ.js} +9 -1
  11. package/dist/{chunk-4A3EHQJP.js → chunk-KWZDYOCB.js} +3 -3
  12. package/dist/{chunk-2IG4BEAX.js → chunk-O4UYRQX7.js} +4 -4
  13. package/dist/{chunk-PIEDORQL.js → chunk-ONPR2LAD.js} +199 -20
  14. package/dist/{chunk-6N2J7C2B.js → chunk-RBKUII3V.js} +1 -1
  15. package/dist/{chunk-ILCJ3WFD.js → chunk-SUWCBXZH.js} +1 -1
  16. package/dist/data/index.js +4 -4
  17. package/dist/docx/index.js +3 -3
  18. package/dist/{extract-UTAOG7LV.js → extract-27YYYYBZ.js} +3 -3
  19. package/dist/html/index.js +1 -1
  20. package/dist/html/prepare.js +1 -1
  21. package/dist/index.js +13 -13
  22. package/dist/infer/index.js +4 -4
  23. package/dist/{layouts-2A7QNF6Y.js → layouts-5YNFCOMS.js} +2 -2
  24. package/dist/{materialize-ICXNO4S4.js → materialize-2MS3SXA6.js} +4 -4
  25. package/dist/ooxml/index.js +3 -3
  26. package/dist/outside-in/index.js +2 -2
  27. package/dist/pptx/index.js +4 -4
  28. package/dist/{readers-3P5A6A2A.js → readers-TAWBODNF.js} +3 -3
  29. package/dist/registry/index.js +1 -1
  30. package/dist/xlsx/index.js +4 -4
  31. package/package.json +2 -2
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-BZ5SHMOY.js";
18
18
  import {
19
19
  createPackage
20
- } from "./chunk-ILCJ3WFD.js";
20
+ } from "./chunk-SUWCBXZH.js";
21
21
  import {
22
22
  escapeXml,
23
23
  xmlDeclaration
@@ -53,7 +53,7 @@ import {
53
53
  openPackage,
54
54
  requireMainPartPath,
55
55
  resolveTarget
56
- } from "./chunk-S5PCVMKU.js";
56
+ } from "./chunk-BB3BLYLM.js";
57
57
  import {
58
58
  renumberFootnotes,
59
59
  withoutBlockTags
@@ -2,7 +2,7 @@ import {
2
2
  columnLetter2 as columnLetter,
3
3
  parseCellRef,
4
4
  xlsxToTables
5
- } from "./chunk-ATWVNF7D.js";
5
+ } from "./chunk-6QVOHRRL.js";
6
6
  import {
7
7
  SIDECAR_CSV_LIMITS,
8
8
  parseCsv
@@ -9,7 +9,7 @@ import {
9
9
  getPartXml,
10
10
  openPackage,
11
11
  requireMainPartPath
12
- } from "./chunk-S5PCVMKU.js";
12
+ } from "./chunk-BB3BLYLM.js";
13
13
 
14
14
  // src/xlsx/cells.ts
15
15
  var MAX_COL_INDEX = 16383;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  defaultDataReaders
3
- } from "./chunk-5HUHSLGA.js";
3
+ } from "./chunk-6OB2DSGW.js";
4
4
 
5
5
  // src/data/materialize.ts
6
6
  import {
@@ -52,6 +52,10 @@ var CONTENT_TYPE_PPTX_FONT = "application/x-fontdata";
52
52
  var REL_SLIDE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide";
53
53
  var REL_SLIDE_LAYOUT = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout";
54
54
  var REL_SLIDE_MASTER = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster";
55
+ var CONTENT_TYPE_PPTX_NOTES_MASTER = "application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml";
56
+ var CONTENT_TYPE_PPTX_NOTES_SLIDE = "application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml";
57
+ var REL_NOTES_MASTER = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesMaster";
58
+ var REL_NOTES_SLIDE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide";
55
59
  var CONTENT_TYPE_XLSX_WORKBOOK = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml";
56
60
  var CONTENT_TYPE_XLSX_WORKSHEET = "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml";
57
61
  var CONTENT_TYPE_XLSX_STYLES = "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml";
@@ -313,6 +317,10 @@ export {
313
317
  REL_SLIDE,
314
318
  REL_SLIDE_LAYOUT,
315
319
  REL_SLIDE_MASTER,
320
+ CONTENT_TYPE_PPTX_NOTES_MASTER,
321
+ CONTENT_TYPE_PPTX_NOTES_SLIDE,
322
+ REL_NOTES_MASTER,
323
+ REL_NOTES_SLIDE,
316
324
  CONTENT_TYPE_XLSX_WORKBOOK,
317
325
  CONTENT_TYPE_XLSX_WORKSHEET,
318
326
  CONTENT_TYPE_XLSX_STYLES,
@@ -6,7 +6,7 @@ import {
6
6
  getPartRelationships,
7
7
  getPartXml,
8
8
  resolveTarget
9
- } from "./chunk-S5PCVMKU.js";
9
+ } from "./chunk-BB3BLYLM.js";
10
10
 
11
11
  // src/ooxml/themeReader.ts
12
12
  var HEX6_RE = /^[0-9a-fA-F]{6}$/;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  parseThemeXml,
3
3
  readThemePart
4
- } from "./chunk-OK622ILP.js";
4
+ } from "./chunk-BGVT5I55.js";
5
5
  import {
6
6
  CONTENT_TYPE_PPTX_THEME,
7
7
  NS_PML,
@@ -11,7 +11,7 @@ import {
11
11
  getPartRelationships,
12
12
  getPartXml,
13
13
  resolveTarget
14
- } from "./chunk-S5PCVMKU.js";
14
+ } from "./chunk-BB3BLYLM.js";
15
15
 
16
16
  // src/infer/extract.ts
17
17
  var DEFAULT_COLOR_MAP = { bg1: "lt1", tx1: "dk1" };
@@ -2,7 +2,7 @@ import {
2
2
  extractDocxTheme,
3
3
  extractPptxTheme,
4
4
  extractXlsxTheme
5
- } from "./chunk-WATAOG4Y.js";
5
+ } from "./chunk-FD7IDL5V.js";
6
6
  import {
7
7
  colorHintsFromExtraction,
8
8
  compileExtractedTheme
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  openPackage,
15
15
  throwIfOoxmlAborted
16
- } from "./chunk-S5PCVMKU.js";
16
+ } from "./chunk-BB3BLYLM.js";
17
17
 
18
18
  // src/infer/index.ts
19
19
  async function looksLikePdf(data, signal) {
@@ -107,7 +107,7 @@ async function inferThemeFromFile(data, options = {}) {
107
107
  if (format !== "pptx") {
108
108
  warnings.push("Layout inference is only available for PowerPoint files; skipped.");
109
109
  } else {
110
- const { analyzePptxLayouts } = await import("./layouts-2A7QNF6Y.js");
110
+ const { analyzePptxLayouts } = await import("./layouts-5YNFCOMS.js");
111
111
  const analysis = await analyzePptxLayouts(pkg, {
112
112
  colors: colorHintsFromExtraction(extraction),
113
113
  signal: options.signal
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  convert,
8
8
  defaultRegistry
9
- } from "./chunk-2IG4BEAX.js";
9
+ } from "./chunk-O4UYRQX7.js";
10
10
  import {
11
11
  ConversionError
12
12
  } from "./chunk-KXOZMWBS.js";
@@ -244,7 +244,7 @@ async function prepareOutsideInMarkdown(markdown, format, container, options, fo
244
244
  };
245
245
  return doc;
246
246
  }
247
- const { materializeDataReferences, DATA_PREVIEW_ROWS } = await import("./materialize-ICXNO4S4.js");
247
+ const { materializeDataReferences, DATA_PREVIEW_ROWS } = await import("./materialize-2MS3SXA6.js");
248
248
  doc = await materializeDataReferences(doc, container, onWarning, {
249
249
  maxRows: DATA_PREVIEW_ROWS
250
250
  });
@@ -1021,6 +1021,7 @@ function escapeAttr(s) {
1021
1021
  // src/html/plainHtmlBundle.ts
1022
1022
  import JSZip from "jszip";
1023
1023
  import { parseMarkdown, inferDocumentTitle } from "@bendyline/squisq/markdown";
1024
+ import { isMediaAnnotationName as isMediaAnnotationName2, parseStandaloneAnnotation as parseStandaloneAnnotation2 } from "@bendyline/squisq/doc";
1024
1025
  async function markdownDocsToPlainHtmlBundle(options) {
1025
1026
  const {
1026
1027
  entryPath,
@@ -1160,7 +1161,14 @@ function collectImageRefs(doc) {
1160
1161
  }
1161
1162
  if (Array.isArray(n.children)) for (const c of n.children) visit(c);
1162
1163
  }
1163
- for (const child of doc.children) visit(child);
1164
+ for (const child of doc.children) {
1165
+ visit(child);
1166
+ if (child.type !== "paragraph") continue;
1167
+ const tag = parseStandaloneAnnotation2(child);
1168
+ if (tag?.template && isMediaAnnotationName2(tag.template) && tag.params.src) {
1169
+ refs.add(tag.params.src);
1170
+ }
1171
+ }
1164
1172
  return refs;
1165
1173
  }
1166
1174
  function parseLinkRef(url) {
@@ -14,10 +14,10 @@ import {
14
14
  parseCellRef,
15
15
  readCellStyles,
16
16
  xlsxToMarkdownDoc
17
- } from "./chunk-ATWVNF7D.js";
17
+ } from "./chunk-6QVOHRRL.js";
18
18
  import {
19
19
  createPackage
20
- } from "./chunk-ILCJ3WFD.js";
20
+ } from "./chunk-SUWCBXZH.js";
21
21
  import {
22
22
  escapeXml,
23
23
  xmlDeclaration
@@ -34,7 +34,7 @@ import {
34
34
  getPartBinary,
35
35
  openPackage,
36
36
  requireMainPartPath
37
- } from "./chunk-S5PCVMKU.js";
37
+ } from "./chunk-BB3BLYLM.js";
38
38
 
39
39
  // src/xlsx/index.ts
40
40
  import { markdownToDoc } from "@bendyline/squisq/doc";
@@ -271,7 +271,7 @@ function dataReferenceWarnings(doc, formatLabel) {
271
271
  async function markdownWithDataPreview(input, warnings) {
272
272
  const markdownDoc = await markdownOf(input);
273
273
  if (dataReferenceSources(input.doc).size === 0) return markdownDoc;
274
- const { materializeDataReferences, DATA_PREVIEW_ROWS } = await import("./materialize-ICXNO4S4.js");
274
+ const { materializeDataReferences, DATA_PREVIEW_ROWS } = await import("./materialize-2MS3SXA6.js");
275
275
  return materializeDataReferences(
276
276
  markdownDoc,
277
277
  input.container,
@@ -283,7 +283,7 @@ async function docWithDataPreview(input, warnings) {
283
283
  if (dataReferenceSources(input.doc).size === 0) return input.doc;
284
284
  const [{ resolveDataReferences }, { defaultDataReaders }] = await Promise.all([
285
285
  import("@bendyline/squisq/doc"),
286
- import("./readers-3P5A6A2A.js")
286
+ import("./readers-TAWBODNF.js")
287
287
  ]);
288
288
  const { doc, diagnostics } = await resolveDataReferences(input.doc, input.container, {
289
289
  readers: defaultDataReaders()
@@ -489,7 +489,7 @@ function defaultFormats() {
489
489
  },
490
490
  async exportDoc(input, options) {
491
491
  const { markdownDocToXlsx } = await import("./xlsx/index.js");
492
- const { materializeDataReferences } = await import("./materialize-ICXNO4S4.js");
492
+ const { materializeDataReferences } = await import("./materialize-2MS3SXA6.js");
493
493
  const warnings = [];
494
494
  const markdownDoc = await materializeDataReferences(
495
495
  await markdownOf(input),
@@ -528,7 +528,7 @@ function defaultFormats() {
528
528
  },
529
529
  async exportDoc(input, options) {
530
530
  const { markdownDocToCsv } = await import("./csv/index.js");
531
- const { materializeDataReferences } = await import("./materialize-ICXNO4S4.js");
531
+ const { materializeDataReferences } = await import("./materialize-2MS3SXA6.js");
532
532
  const warnings = [];
533
533
  const markdownDoc = await materializeDataReferences(
534
534
  await markdownOf(input),
@@ -19,13 +19,15 @@ import {
19
19
  } from "./chunk-BZ5SHMOY.js";
20
20
  import {
21
21
  createPackage
22
- } from "./chunk-ILCJ3WFD.js";
22
+ } from "./chunk-SUWCBXZH.js";
23
23
  import {
24
24
  escapeXml,
25
25
  xmlDeclaration
26
26
  } from "./chunk-JU2RHXUB.js";
27
27
  import {
28
28
  CONTENT_TYPE_PPTX_FONT,
29
+ CONTENT_TYPE_PPTX_NOTES_MASTER,
30
+ CONTENT_TYPE_PPTX_NOTES_SLIDE,
29
31
  CONTENT_TYPE_PPTX_PRESENTATION,
30
32
  CONTENT_TYPE_PPTX_SLIDE,
31
33
  CONTENT_TYPE_PPTX_SLIDE_LAYOUT,
@@ -39,6 +41,8 @@ import {
39
41
  REL_FONT,
40
42
  REL_HYPERLINK,
41
43
  REL_IMAGE,
44
+ REL_NOTES_MASTER,
45
+ REL_NOTES_SLIDE,
42
46
  REL_OFFICE_DOCUMENT,
43
47
  REL_SLIDE,
44
48
  REL_SLIDE_LAYOUT,
@@ -52,7 +56,7 @@ import {
52
56
  openPackage,
53
57
  requireMainPartPath,
54
58
  resolveTarget
55
- } from "./chunk-S5PCVMKU.js";
59
+ } from "./chunk-BB3BLYLM.js";
56
60
  import {
57
61
  buildContainer
58
62
  } from "./chunk-IIQYS2YH.js";
@@ -89,6 +93,85 @@ import {
89
93
  readFrontmatterThemeId
90
94
  } from "@bendyline/squisq/markdown";
91
95
 
96
+ // src/pptx/speakerNotes.ts
97
+ function childNodes(node) {
98
+ return Array.isArray(node.children) ? node.children : [];
99
+ }
100
+ function collectFootnoteDefinitions(nodes, into = /* @__PURE__ */ new Map()) {
101
+ const visit = (node) => {
102
+ if (node.type === "footnoteDefinition") {
103
+ const def = node;
104
+ if (!into.has(def.identifier)) into.set(def.identifier, definitionText(def));
105
+ return;
106
+ }
107
+ for (const child of childNodes(node)) visit(child);
108
+ };
109
+ for (const node of nodes) visit(node);
110
+ return into;
111
+ }
112
+ function definitionText(def) {
113
+ const parts = [];
114
+ const visit = (node) => {
115
+ const kids = childNodes(node);
116
+ if (kids.length > 0 && kids.every((kid) => !isBlockLike(kid))) {
117
+ parts.push(extractPlainText(kids));
118
+ return;
119
+ }
120
+ for (const kid of kids) visit(kid);
121
+ };
122
+ for (const child of def.children) visit(child);
123
+ return parts.map((part) => part.replace(/\s+/g, " ").trim()).filter(Boolean).join(" ");
124
+ }
125
+ var BLOCK_TYPES = /* @__PURE__ */ new Set([
126
+ "paragraph",
127
+ "heading",
128
+ "list",
129
+ "listItem",
130
+ "blockquote",
131
+ "table",
132
+ "tableRow",
133
+ "tableCell",
134
+ "code"
135
+ ]);
136
+ function isBlockLike(node) {
137
+ return BLOCK_TYPES.has(node.type);
138
+ }
139
+ function footnoteIdentifiersIn(nodes) {
140
+ const seen = [];
141
+ const visit = (node) => {
142
+ if (node.type === "footnoteDefinition") return;
143
+ if (node.type === "footnoteReference") {
144
+ const id = String(node.identifier ?? "");
145
+ if (id && !seen.includes(id)) seen.push(id);
146
+ return;
147
+ }
148
+ for (const child of childNodes(node)) visit(child);
149
+ };
150
+ for (const node of nodes) visit(node);
151
+ return seen;
152
+ }
153
+ function withoutFootnoteDefinitions(nodes) {
154
+ return nodes.filter((node) => node.type !== "footnoteDefinition");
155
+ }
156
+ function speakerNoteLines(identifiers, definitions) {
157
+ const lines = [];
158
+ for (const id of identifiers) {
159
+ const text = definitions.get(id);
160
+ if (text) lines.push(`[${lines.length + 1}] ${text}`);
161
+ }
162
+ return lines;
163
+ }
164
+ function buildNotesSlideXml(lines) {
165
+ const paragraphs = lines.map(
166
+ (line) => `<a:p><a:r><a:rPr lang="en-US" dirty="0"/><a:t>${escapeXml(line)}</a:t></a:r></a:p>`
167
+ ).join("");
168
+ return xmlDeclaration() + `<p:notes xmlns:a="${NS_DRAWINGML}" xmlns:r="${NS_R}" xmlns:p="${NS_PML}"><p:cSld><p:spTree><p:nvGrpSpPr><p:cNvPr id="1" name=""/><p:cNvGrpSpPr/><p:nvPr/></p:nvGrpSpPr><p:grpSpPr/><p:sp><p:nvSpPr><p:cNvPr id="2" name="Slide Image Placeholder 1"/><p:cNvSpPr><a:spLocks noGrp="1" noRot="1" noChangeAspect="1"/></p:cNvSpPr><p:nvPr><p:ph type="sldImg"/></p:nvPr></p:nvSpPr><p:spPr/></p:sp><p:sp><p:nvSpPr><p:cNvPr id="3" name="Notes Placeholder 2"/><p:cNvSpPr><a:spLocks noGrp="1"/></p:cNvSpPr><p:nvPr><p:ph type="body" idx="1"/></p:nvPr></p:nvSpPr><p:spPr/><p:txBody><a:bodyPr/><a:lstStyle/>${paragraphs}</p:txBody></p:sp></p:spTree></p:cSld><p:clrMapOvr><a:masterClrMapping/></p:clrMapOvr></p:notes>`;
169
+ }
170
+ function buildNotesMasterXml() {
171
+ const level = (n) => `<a:lvl${n}pPr marL="${(n - 1) * 457200}" algn="l" defTabSz="914400" rtl="0" eaLnBrk="1" latinLnBrk="0" hangingPunct="1"><a:defRPr sz="1200" kern="1200"><a:solidFill><a:schemeClr val="tx1"/></a:solidFill><a:latin typeface="+mn-lt"/><a:ea typeface="+mn-ea"/><a:cs typeface="+mn-cs"/></a:defRPr></a:lvl${n}pPr>`;
172
+ return xmlDeclaration() + `<p:notesMaster xmlns:a="${NS_DRAWINGML}" xmlns:r="${NS_R}" xmlns:p="${NS_PML}"><p:cSld><p:bg><p:bgRef idx="1001"><a:schemeClr val="bg1"/></p:bgRef></p:bg><p:spTree><p:nvGrpSpPr><p:cNvPr id="1" name=""/><p:cNvGrpSpPr/><p:nvPr/></p:nvGrpSpPr><p:grpSpPr><a:xfrm><a:off x="0" y="0"/><a:ext cx="0" cy="0"/><a:chOff x="0" y="0"/><a:chExt cx="0" cy="0"/></a:xfrm></p:grpSpPr><p:sp><p:nvSpPr><p:cNvPr id="2" name="Slide Image Placeholder 1"/><p:cNvSpPr><a:spLocks noGrp="1" noRot="1" noChangeAspect="1"/></p:cNvSpPr><p:nvPr><p:ph type="sldImg" idx="2"/></p:nvPr></p:nvSpPr><p:spPr><a:xfrm><a:off x="685800" y="1143000"/><a:ext cx="5486400" cy="3086100"/></a:xfrm><a:prstGeom prst="rect"><a:avLst/></a:prstGeom><a:noFill/><a:ln w="12700"><a:solidFill><a:prstClr val="black"/></a:solidFill></a:ln></p:spPr></p:sp><p:sp><p:nvSpPr><p:cNvPr id="3" name="Notes Placeholder 2"/><p:cNvSpPr><a:spLocks noGrp="1"/></p:cNvSpPr><p:nvPr><p:ph type="body" sz="quarter" idx="3"/></p:nvPr></p:nvSpPr><p:spPr><a:xfrm><a:off x="685800" y="4400550"/><a:ext cx="5486400" cy="3600450"/></a:xfrm><a:prstGeom prst="rect"><a:avLst/></a:prstGeom></p:spPr><p:txBody><a:bodyPr vert="horz" lIns="91440" tIns="45720" rIns="91440" bIns="45720" rtlCol="0"/><a:lstStyle/><a:p><a:pPr lvl="0"/><a:endParaRPr lang="en-US"/></a:p></p:txBody></p:sp></p:spTree></p:cSld><p:clrMap bg1="lt1" tx1="dk1" bg2="lt2" tx2="dk2" accent1="accent1" accent2="accent2" accent3="accent3" accent4="accent4" accent5="accent5" accent6="accent6" hlink="hlink" folHlink="folHlink"/><p:notesStyle>${[1, 2, 3, 4, 5, 6, 7, 8, 9].map(level).join("")}</p:notesStyle></p:notesMaster>`;
173
+ }
174
+
92
175
  // src/pptx/pictureLayers.ts
93
176
  import { svgSourceFromBytes } from "@bendyline/squisq/markdown";
94
177
  function buildImageShape(img, shapeId, left, top, maxWidth, maxHeight, hyperlinkRelId, svgRelId, srcRect = "") {
@@ -1260,6 +1343,9 @@ function estimateSlideTextScale(layers) {
1260
1343
  }
1261
1344
 
1262
1345
  // src/pptx/textLists.ts
1346
+ import {
1347
+ taskMarker
1348
+ } from "@bendyline/squisq/schemas";
1263
1349
  function mergeTextFlows(layers, textScale = 1) {
1264
1350
  const flows = /* @__PURE__ */ new Map();
1265
1351
  for (const layer of layers) {
@@ -1328,6 +1414,10 @@ function planListParagraphs(paragraphs) {
1328
1414
  }
1329
1415
  const level = Math.min(8, Math.max(0, Math.floor(list.level)));
1330
1416
  runs.length = Math.min(runs.length, level + 1);
1417
+ if (list.checked !== void 0) {
1418
+ runs[level] = void 0;
1419
+ return { ordered: false, level, checked: list.checked };
1420
+ }
1331
1421
  if (!list.ordered) {
1332
1422
  runs[level] = void 0;
1333
1423
  return { ordered: false, level };
@@ -1344,7 +1434,7 @@ function listParagraphXml(plan, indentPx) {
1344
1434
  const startAt = plan.startAt && plan.startAt !== 1 ? ` startAt="${plan.startAt}"` : "";
1345
1435
  return {
1346
1436
  attributes: ` marL="${hang * (plan.level + 1)}" lvl="${plan.level}" indent="${-hang}"`,
1347
- bullet: plan.ordered ? `<a:buAutoNum type="arabicPeriod"${startAt}/>` : `<a:buChar char="\u2022"/>`
1437
+ bullet: plan.ordered ? `<a:buAutoNum type="arabicPeriod"${startAt}/>` : plan.checked !== void 0 ? `<a:buChar char="${taskMarker(plan.checked)}"/>` : `<a:buChar char="\u2022"/>`
1348
1438
  };
1349
1439
  }
1350
1440
 
@@ -1541,7 +1631,7 @@ function buildDeckThemeXml(theme) {
1541
1631
  }
1542
1632
 
1543
1633
  // src/pptx/templates.ts
1544
- function buildPresentationXml(slideCount, slideRelIds, slideMasterRelId, _themeRelId, embeddedFonts = []) {
1634
+ function buildPresentationXml(slideCount, slideRelIds, slideMasterRelId, _themeRelId, embeddedFonts = [], notesMasterRelId) {
1545
1635
  const sldIdList = [];
1546
1636
  for (let i = 0; i < slideCount; i++) {
1547
1637
  sldIdList.push(`<p:sldId id="${256 + i}" r:id="${slideRelIds[i]}"/>`);
@@ -1549,7 +1639,7 @@ function buildPresentationXml(slideCount, slideRelIds, slideMasterRelId, _themeR
1549
1639
  const embeddedFontList = embeddedFonts.length > 0 ? `<p:embeddedFontLst>${embeddedFonts.map(
1550
1640
  ({ typeface, relId }) => `<p:embeddedFont><p:font typeface="${escapeXml(typeface)}" charset="0" pitchFamily="34"/><p:regular r:id="${escapeXml(relId)}"/></p:embeddedFont>`
1551
1641
  ).join("")}</p:embeddedFontLst>` : "";
1552
- return xmlDeclaration() + `<p:presentation xmlns:a="${NS_DRAWINGML}" xmlns:r="${NS_R}" xmlns:p="${NS_PML}" saveSubsetFonts="1"><p:sldMasterIdLst><p:sldMasterId id="2147483648" r:id="${slideMasterRelId}"/></p:sldMasterIdLst><p:sldIdLst>${sldIdList.join("")}</p:sldIdLst><p:sldSz cx="${SLIDE_WIDTH}" cy="${SLIDE_HEIGHT}" type="screen16x9"/><p:notesSz cx="${SLIDE_HEIGHT}" cy="${SLIDE_WIDTH}"/>` + embeddedFontList + `</p:presentation>`;
1642
+ return xmlDeclaration() + `<p:presentation xmlns:a="${NS_DRAWINGML}" xmlns:r="${NS_R}" xmlns:p="${NS_PML}" saveSubsetFonts="1"><p:sldMasterIdLst><p:sldMasterId id="2147483648" r:id="${slideMasterRelId}"/></p:sldMasterIdLst>` + (notesMasterRelId ? `<p:notesMasterIdLst><p:notesMasterId r:id="${notesMasterRelId}"/></p:notesMasterIdLst>` : "") + `<p:sldIdLst>${sldIdList.join("")}</p:sldIdLst><p:sldSz cx="${SLIDE_WIDTH}" cy="${SLIDE_HEIGHT}" type="screen16x9"/><p:notesSz cx="${SLIDE_HEIGHT}" cy="${SLIDE_WIDTH}"/>` + embeddedFontList + `</p:presentation>`;
1553
1643
  }
1554
1644
  function buildSlideMasterXml(layoutRelId) {
1555
1645
  return xmlDeclaration() + `<p:sldMaster xmlns:a="${NS_DRAWINGML}" xmlns:r="${NS_R}" xmlns:p="${NS_PML}"><p:cSld><p:bg><p:bgRef idx="1001"><a:schemeClr val="bg1"/></p:bgRef></p:bg><p:spTree><p:nvGrpSpPr><p:cNvPr id="1" name=""/><p:cNvGrpSpPr/><p:nvPr/></p:nvGrpSpPr><p:grpSpPr/></p:spTree></p:cSld><p:clrMap bg1="lt1" tx1="dk1" bg2="lt2" tx2="dk2" accent1="accent1" accent2="accent2" accent3="accent3" accent4="accent4" accent5="accent5" accent6="accent6" hlink="hlink" folHlink="folHlink"/><p:sldLayoutIdLst><p:sldLayoutId id="2147483649" r:id="${layoutRelId}"/></p:sldLayoutIdLst></p:sldMaster>`;
@@ -1585,7 +1675,14 @@ async function markdownDocToPptx(doc, options = {}) {
1585
1675
  slideXmls.push(xml);
1586
1676
  slideContexts.push(ctx);
1587
1677
  }
1588
- return buildPptxPackage(slideXmls, slideContexts, options);
1678
+ const definitions = collectFootnoteDefinitions(doc.children);
1679
+ const slideNotes = slides.map(
1680
+ (slide) => speakerNoteLines(
1681
+ footnoteIdentifiersIn([...slide.title ?? [], ...slide.bodyNodes]),
1682
+ definitions
1683
+ )
1684
+ );
1685
+ return buildPptxPackage(slideXmls, slideContexts, options, void 0, slideNotes);
1589
1686
  }
1590
1687
  function needsSlideshowProjection(doc) {
1591
1688
  return (doc.blocks ?? []).some((block) => !!block.sourceHeading);
@@ -1593,7 +1690,9 @@ function needsSlideshowProjection(doc) {
1593
1690
  async function docToPptx(doc, options = {}) {
1594
1691
  options.signal?.throwIfAborted();
1595
1692
  const effectiveOptions = !options.themeId && doc.themeId ? { ...options, themeId: doc.themeId } : options;
1596
- const slideshowDoc = needsSlideshowProjection(doc) ? buildPreviewDoc(doc) : doc;
1693
+ const definitions = collectDocFootnoteDefinitions(doc.blocks);
1694
+ const visualDoc = definitions.size > 0 ? withoutDocFootnoteDefinitions(doc) : doc;
1695
+ const slideshowDoc = needsSlideshowProjection(visualDoc) ? buildPreviewDoc(visualDoc) : visualDoc;
1597
1696
  const flatBlocks = flattenRenderableBlocks(slideshowDoc.blocks);
1598
1697
  if (!flatBlocks.some(isTemplateBlock)) {
1599
1698
  return markdownDocToPptx(docToMarkdown(doc), effectiveOptions);
@@ -1679,16 +1778,58 @@ async function docToPptx(doc, options = {}) {
1679
1778
  slideXmls.push(buildLayerSlideXml(slideBlocks[index], ctx, plan));
1680
1779
  slideContexts.push(ctx);
1681
1780
  }
1682
- return buildPptxPackage(slideXmls, slideContexts, effectiveOptions, {
1683
- layoutXmls: backdrops.layouts.map(buildDeckLayoutXml),
1684
- masterXml: (layoutRelIds) => buildDeckMasterXml({
1685
- backgroundXml: backdrops.master.base ? paintBackgroundXml(backdrops.master.base) : colorBackgroundXml(style.background),
1686
- overlays: backdrops.master.overlays,
1687
- layoutRelIds,
1688
- dark: isDarkTheme(theme)
1689
- }),
1690
- themeXml: buildDeckThemeXml(theme)
1781
+ const authored = authoredBlocksById(doc.blocks);
1782
+ const slideNotes = slideBlocks.map((slide) => {
1783
+ const source = authored.get(slide.id);
1784
+ if (!source) return [];
1785
+ const nodes = [
1786
+ ...source.sourceHeading ? [source.sourceHeading] : [],
1787
+ ...source.contents ?? []
1788
+ ];
1789
+ return speakerNoteLines(footnoteIdentifiersIn(nodes), definitions);
1691
1790
  });
1791
+ return buildPptxPackage(
1792
+ slideXmls,
1793
+ slideContexts,
1794
+ effectiveOptions,
1795
+ {
1796
+ layoutXmls: backdrops.layouts.map(buildDeckLayoutXml),
1797
+ masterXml: (layoutRelIds) => buildDeckMasterXml({
1798
+ backgroundXml: backdrops.master.base ? paintBackgroundXml(backdrops.master.base) : colorBackgroundXml(style.background),
1799
+ overlays: backdrops.master.overlays,
1800
+ layoutRelIds,
1801
+ dark: isDarkTheme(theme)
1802
+ }),
1803
+ themeXml: buildDeckThemeXml(theme)
1804
+ },
1805
+ slideNotes
1806
+ );
1807
+ }
1808
+ function authoredBlocksById(blocks) {
1809
+ const byId = /* @__PURE__ */ new Map();
1810
+ const visit = (list) => {
1811
+ for (const block of list ?? []) {
1812
+ if (!byId.has(block.id)) byId.set(block.id, block);
1813
+ visit(block.children);
1814
+ }
1815
+ };
1816
+ visit(blocks);
1817
+ return byId;
1818
+ }
1819
+ function collectDocFootnoteDefinitions(blocks) {
1820
+ const definitions = /* @__PURE__ */ new Map();
1821
+ for (const block of authoredBlocksById(blocks).values()) {
1822
+ if (block.contents) collectFootnoteDefinitions(block.contents, definitions);
1823
+ }
1824
+ return definitions;
1825
+ }
1826
+ function withoutDocFootnoteDefinitions(doc) {
1827
+ const strip = (list) => list?.map((block) => ({
1828
+ ...block,
1829
+ ...block.contents ? { contents: withoutFootnoteDefinitions(block.contents) } : {},
1830
+ ...block.children ? { children: strip(block.children) } : {}
1831
+ }));
1832
+ return { ...doc, blocks: strip(doc.blocks) ?? [] };
1692
1833
  }
1693
1834
  function resolveSlideStyle(themeId, options, doc) {
1694
1835
  if (!themeId) {
@@ -2694,9 +2835,10 @@ var SEMANTIC_DECK_STRUCTURE = {
2694
2835
  masterXml: ([layoutRelId]) => buildSlideMasterXml(layoutRelId),
2695
2836
  themeXml: buildThemeXml()
2696
2837
  };
2697
- async function buildPptxPackage(slideXmls, slideContexts, options, structure = SEMANTIC_DECK_STRUCTURE) {
2838
+ async function buildPptxPackage(slideXmls, slideContexts, options, structure = SEMANTIC_DECK_STRUCTURE, slideNotes = []) {
2698
2839
  const pkg = createPackage();
2699
2840
  const slideCount = slideXmls.length;
2841
+ const hasNotes = slideNotes.some((lines) => (lines?.length ?? 0) > 0);
2700
2842
  const relIds = new RelIdAllocator();
2701
2843
  const PRESENTATION_PART = "ppt/presentation.xml";
2702
2844
  const SLIDE_MASTER_PART = "ppt/slideMasters/slideMaster1.xml";
@@ -2714,18 +2856,40 @@ async function buildPptxPackage(slideXmls, slideContexts, options, structure = S
2714
2856
  face,
2715
2857
  relId: relIds.alloc(PRESENTATION_PART)
2716
2858
  }));
2859
+ const notesMasterRelId = hasNotes ? relIds.alloc(PRESENTATION_PART) : void 0;
2717
2860
  const presentationXml = buildPresentationXml(
2718
2861
  slideCount,
2719
2862
  slideRelIds,
2720
2863
  slideMasterRelId,
2721
2864
  themeRelId,
2722
- embeddedIconFonts.map(({ face, relId }) => ({ typeface: face.typeface, relId }))
2865
+ embeddedIconFonts.map(({ face, relId }) => ({ typeface: face.typeface, relId })),
2866
+ notesMasterRelId
2723
2867
  );
2724
2868
  pkg.addPart("ppt/presentation.xml", presentationXml, CONTENT_TYPE_PPTX_PRESENTATION);
2725
2869
  for (let i = 0; i < slideCount; i++) {
2726
2870
  const slidePath = `ppt/slides/slide${i + 1}.xml`;
2727
2871
  pkg.addPart(slidePath, slideXmls[i], CONTENT_TYPE_PPTX_SLIDE);
2728
2872
  const ctx = slideContexts[i];
2873
+ const notes = slideNotes[i];
2874
+ if (notes && notes.length > 0) {
2875
+ const notesPart = `ppt/notesSlides/notesSlide${i + 1}.xml`;
2876
+ pkg.addPart(notesPart, buildNotesSlideXml(notes), CONTENT_TYPE_PPTX_NOTES_SLIDE);
2877
+ pkg.addRelationship(notesPart, {
2878
+ id: "rId1",
2879
+ type: REL_NOTES_MASTER,
2880
+ target: "../notesMasters/notesMaster1.xml"
2881
+ });
2882
+ pkg.addRelationship(notesPart, {
2883
+ id: "rId2",
2884
+ type: REL_SLIDE,
2885
+ target: `../slides/slide${i + 1}.xml`
2886
+ });
2887
+ ctx.relationships.push({
2888
+ id: ctx.allocRelId(),
2889
+ type: REL_NOTES_SLIDE,
2890
+ target: `../notesSlides/notesSlide${i + 1}.xml`
2891
+ });
2892
+ }
2729
2893
  for (const rel of ctx.relationships) {
2730
2894
  pkg.addRelationship(slidePath, {
2731
2895
  id: rel.id,
@@ -2768,6 +2932,21 @@ async function buildPptxPackage(slideXmls, slideContexts, options, structure = S
2768
2932
  target: "../theme/theme1.xml"
2769
2933
  });
2770
2934
  pkg.addPart("ppt/theme/theme1.xml", structure.themeXml, CONTENT_TYPE_PPTX_THEME);
2935
+ if (notesMasterRelId) {
2936
+ const NOTES_MASTER_PART = "ppt/notesMasters/notesMaster1.xml";
2937
+ pkg.addPart(NOTES_MASTER_PART, buildNotesMasterXml(), CONTENT_TYPE_PPTX_NOTES_MASTER);
2938
+ pkg.addPart("ppt/theme/theme2.xml", structure.themeXml, CONTENT_TYPE_PPTX_THEME);
2939
+ pkg.addRelationship(NOTES_MASTER_PART, {
2940
+ id: relIds.alloc(NOTES_MASTER_PART),
2941
+ type: REL_THEME,
2942
+ target: "../theme/theme2.xml"
2943
+ });
2944
+ pkg.addRelationship("ppt/presentation.xml", {
2945
+ id: notesMasterRelId,
2946
+ type: REL_NOTES_MASTER,
2947
+ target: "notesMasters/notesMaster1.xml"
2948
+ });
2949
+ }
2771
2950
  pkg.addRelationship("", {
2772
2951
  id: "rId1",
2773
2952
  type: REL_OFFICE_DOCUMENT,
@@ -3029,7 +3208,7 @@ async function importDocument(pkg, options) {
3029
3208
  let extraction = null;
3030
3209
  if (inferTheme || inferLayouts) {
3031
3210
  try {
3032
- const { extractPptxTheme } = await import("./extract-UTAOG7LV.js");
3211
+ const { extractPptxTheme } = await import("./extract-27YYYYBZ.js");
3033
3212
  extraction = await extractPptxTheme(pkg);
3034
3213
  } catch (err) {
3035
3214
  warnInferenceFailure("theme extraction", err);
@@ -3046,7 +3225,7 @@ async function importDocument(pkg, options) {
3046
3225
  }
3047
3226
  if (inferLayouts) {
3048
3227
  try {
3049
- const { analyzePptxLayouts: analyzePptxLayouts2 } = await import("./layouts-2A7QNF6Y.js");
3228
+ const { analyzePptxLayouts: analyzePptxLayouts2 } = await import("./layouts-5YNFCOMS.js");
3050
3229
  const { colorHintsFromExtraction } = await import("./mapTheme-4TWH25FT.js");
3051
3230
  ctx.inference = await analyzePptxLayouts2(pkg, {
3052
3231
  colors: extraction ? colorHintsFromExtraction(extraction) : {}
@@ -13,7 +13,7 @@ import {
13
13
  openPackage,
14
14
  resolveTarget,
15
15
  throwIfOoxmlAborted
16
- } from "./chunk-S5PCVMKU.js";
16
+ } from "./chunk-BB3BLYLM.js";
17
17
 
18
18
  // src/pptx/layouts.ts
19
19
  var DEFAULT_SLIDE_SIZE = { cx: 12192e3, cy: 6858e3 };
@@ -12,7 +12,7 @@ import {
12
12
  NS_RELATIONSHIPS,
13
13
  NS_XSI,
14
14
  REL_CORE_PROPERTIES
15
- } from "./chunk-S5PCVMKU.js";
15
+ } from "./chunk-BB3BLYLM.js";
16
16
  import {
17
17
  assertSafeZipPath
18
18
  } from "./chunk-7AWFHP5U.js";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  DATA_PREVIEW_ROWS,
3
3
  materializeDataReferences
4
- } from "../chunk-YRFBWYAD.js";
4
+ } from "../chunk-AQZ2CAET.js";
5
5
  import {
6
6
  csvDataReader,
7
7
  defaultDataReaders,
8
8
  parquetDataReader,
9
9
  xlsxDataReader
10
- } from "../chunk-5HUHSLGA.js";
11
- import "../chunk-ATWVNF7D.js";
10
+ } from "../chunk-6OB2DSGW.js";
11
+ import "../chunk-6QVOHRRL.js";
12
12
  import "../chunk-Q77KNJIN.js";
13
13
  import {
14
14
  docSlugForFileName,
@@ -17,7 +17,7 @@ import {
17
17
  sidecarReferenceDoc,
18
18
  sidecarReferenceMarkdown
19
19
  } from "../chunk-DXYWKZ52.js";
20
- import "../chunk-S5PCVMKU.js";
20
+ import "../chunk-BB3BLYLM.js";
21
21
  import "../chunk-7AWFHP5U.js";
22
22
  export {
23
23
  DATA_PREVIEW_ROWS,
@@ -4,13 +4,13 @@ import {
4
4
  docxToDoc,
5
5
  docxToMarkdownDoc,
6
6
  markdownDocToDocx
7
- } from "../chunk-BGQDPDCD.js";
7
+ } from "../chunk-42ETCBAK.js";
8
8
  import "../chunk-DHAK4PII.js";
9
9
  import "../chunk-VCZUXQUL.js";
10
10
  import "../chunk-BZ5SHMOY.js";
11
- import "../chunk-ILCJ3WFD.js";
11
+ import "../chunk-SUWCBXZH.js";
12
12
  import "../chunk-JU2RHXUB.js";
13
- import "../chunk-S5PCVMKU.js";
13
+ import "../chunk-BB3BLYLM.js";
14
14
  import "../chunk-7AWFHP5U.js";
15
15
  import "../chunk-DTJQK7U7.js";
16
16
  import "../chunk-IIQYS2YH.js";
@@ -2,9 +2,9 @@ import {
2
2
  extractDocxTheme,
3
3
  extractPptxTheme,
4
4
  extractXlsxTheme
5
- } from "./chunk-WATAOG4Y.js";
6
- import "./chunk-OK622ILP.js";
7
- import "./chunk-S5PCVMKU.js";
5
+ } from "./chunk-FD7IDL5V.js";
6
+ import "./chunk-BGVT5I55.js";
7
+ import "./chunk-BB3BLYLM.js";
8
8
  import "./chunk-7AWFHP5U.js";
9
9
  export {
10
10
  extractDocxTheme,
@@ -19,7 +19,7 @@ import {
19
19
  markdownDocToPlainHtmlParts,
20
20
  markdownDocsToHtmlBundle,
21
21
  markdownDocsToPlainHtmlBundle
22
- } from "../chunk-4SPMLGOG.js";
22
+ } from "../chunk-J6LR22RZ.js";
23
23
  import {
24
24
  arrayBufferToBase64DataUrl,
25
25
  extractFilename,
@@ -38,7 +38,7 @@ async function prepareMarkdownDocForPlainHtml(doc, options = {}) {
38
38
  const { renderDiagram, outlineIcons, container, signal, onWarning } = options;
39
39
  let markdownDoc = doc;
40
40
  if (container) {
41
- const { materializeDataReferences, DATA_PREVIEW_ROWS } = await import("../materialize-ICXNO4S4.js");
41
+ const { materializeDataReferences, DATA_PREVIEW_ROWS } = await import("../materialize-2MS3SXA6.js");
42
42
  markdownDoc = await materializeDataReferences(markdownDoc, container, onWarning, {
43
43
  maxRows: options.maxDataRows ?? DATA_PREVIEW_ROWS,
44
44
  tableCache: options.dataTableCache
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  htmlToMarkdown,
6
6
  htmlToMarkdownDoc,
7
7
  htmlToMarkdownDocSync
8
- } from "./chunk-4SPMLGOG.js";
8
+ } from "./chunk-J6LR22RZ.js";
9
9
  import {
10
10
  docToEpub,
11
11
  markdownDocToEpub
@@ -15,8 +15,8 @@ import {
15
15
  } from "./chunk-2P5HJAQL.js";
16
16
  import {
17
17
  inferThemeFromFile
18
- } from "./chunk-3KXEE7KH.js";
19
- import "./chunk-WATAOG4Y.js";
18
+ } from "./chunk-GJWBVR4X.js";
19
+ import "./chunk-FD7IDL5V.js";
20
20
  import {
21
21
  compileExtractedTheme
22
22
  } from "./chunk-2JJ5RFDZ.js";
@@ -29,7 +29,7 @@ import {
29
29
  renderOutsideInDocument,
30
30
  withOutsideInMarkdownEditing,
31
31
  withOutsideInMetadata
32
- } from "./chunk-JB3ZVN7D.js";
32
+ } from "./chunk-HAGYYPFR.js";
33
33
  import {
34
34
  OUTSIDE_IN_FORMAT_IDS,
35
35
  OUTSIDE_IN_OUTPUT_TEMPLATE_KEY,
@@ -45,7 +45,7 @@ import {
45
45
  defaultRegistry,
46
46
  prepareConversion,
47
47
  resolveConversionLimits
48
- } from "./chunk-2IG4BEAX.js";
48
+ } from "./chunk-O4UYRQX7.js";
49
49
  import {
50
50
  ConversionError
51
51
  } from "./chunk-KXOZMWBS.js";
@@ -54,14 +54,14 @@ import {
54
54
  docxToDoc,
55
55
  docxToMarkdownDoc,
56
56
  markdownDocToDocx
57
- } from "./chunk-BGQDPDCD.js";
57
+ } from "./chunk-42ETCBAK.js";
58
58
  import {
59
59
  docToPptx,
60
60
  markdownDocToPptx,
61
61
  pptxToDoc,
62
62
  pptxToMarkdownDoc
63
- } from "./chunk-PIEDORQL.js";
64
- import "./chunk-6N2J7C2B.js";
63
+ } from "./chunk-ONPR2LAD.js";
64
+ import "./chunk-RBKUII3V.js";
65
65
  import "./chunk-WMIDXNGR.js";
66
66
  import "./chunk-DHAK4PII.js";
67
67
  import "./chunk-VCZUXQUL.js";
@@ -69,13 +69,13 @@ import {
69
69
  docToXlsx,
70
70
  markdownDocToXlsx,
71
71
  xlsxToDoc
72
- } from "./chunk-4A3EHQJP.js";
72
+ } from "./chunk-KWZDYOCB.js";
73
73
  import "./chunk-BZ5SHMOY.js";
74
74
  import {
75
75
  gridToTables,
76
76
  xlsxToMarkdownDoc,
77
77
  xlsxToTables
78
- } from "./chunk-ATWVNF7D.js";
78
+ } from "./chunk-6QVOHRRL.js";
79
79
  import {
80
80
  csvToDoc,
81
81
  csvToMarkdownDoc,
@@ -83,10 +83,10 @@ import {
83
83
  parseCsv
84
84
  } from "./chunk-Q77KNJIN.js";
85
85
  import "./chunk-DXYWKZ52.js";
86
- import "./chunk-OK622ILP.js";
87
- import "./chunk-ILCJ3WFD.js";
86
+ import "./chunk-BGVT5I55.js";
87
+ import "./chunk-SUWCBXZH.js";
88
88
  import "./chunk-JU2RHXUB.js";
89
- import "./chunk-S5PCVMKU.js";
89
+ import "./chunk-BB3BLYLM.js";
90
90
  import {
91
91
  ZipSafetyError
92
92
  } from "./chunk-7AWFHP5U.js";
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  inferThemeFromFile
3
- } from "../chunk-3KXEE7KH.js";
3
+ } from "../chunk-GJWBVR4X.js";
4
4
  import {
5
5
  extractDocxTheme,
6
6
  extractPptxTheme,
7
7
  extractXlsxTheme
8
- } from "../chunk-WATAOG4Y.js";
8
+ } from "../chunk-FD7IDL5V.js";
9
9
  import {
10
10
  colorHintsFromExtraction,
11
11
  compileExtractedTheme,
12
12
  extractedThemeToPartial
13
13
  } from "../chunk-2JJ5RFDZ.js";
14
14
  import "../chunk-KXOZMWBS.js";
15
- import "../chunk-OK622ILP.js";
16
- import "../chunk-S5PCVMKU.js";
15
+ import "../chunk-BGVT5I55.js";
16
+ import "../chunk-BB3BLYLM.js";
17
17
  import "../chunk-7AWFHP5U.js";
18
18
  export {
19
19
  colorHintsFromExtraction,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  analyzePptxLayouts,
3
3
  inspectPptxLayouts
4
- } from "./chunk-6N2J7C2B.js";
5
- import "./chunk-S5PCVMKU.js";
4
+ } from "./chunk-RBKUII3V.js";
5
+ import "./chunk-BB3BLYLM.js";
6
6
  import "./chunk-7AWFHP5U.js";
7
7
  export {
8
8
  analyzePptxLayouts,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  DATA_PREVIEW_ROWS,
3
3
  materializeDataReferences
4
- } from "./chunk-YRFBWYAD.js";
5
- import "./chunk-5HUHSLGA.js";
6
- import "./chunk-ATWVNF7D.js";
4
+ } from "./chunk-AQZ2CAET.js";
5
+ import "./chunk-6OB2DSGW.js";
6
+ import "./chunk-6QVOHRRL.js";
7
7
  import "./chunk-Q77KNJIN.js";
8
8
  import "./chunk-DXYWKZ52.js";
9
- import "./chunk-S5PCVMKU.js";
9
+ import "./chunk-BB3BLYLM.js";
10
10
  import "./chunk-7AWFHP5U.js";
11
11
  export {
12
12
  DATA_PREVIEW_ROWS,
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  parseThemeXml,
3
3
  readThemePart
4
- } from "../chunk-OK622ILP.js";
4
+ } from "../chunk-BGVT5I55.js";
5
5
  import {
6
6
  createPackage
7
- } from "../chunk-ILCJ3WFD.js";
7
+ } from "../chunk-SUWCBXZH.js";
8
8
  import {
9
9
  attrString,
10
10
  escapeXml,
@@ -73,7 +73,7 @@ import {
73
73
  requireMainPartPath,
74
74
  resolveMainPartPath,
75
75
  resolveTarget
76
- } from "../chunk-S5PCVMKU.js";
76
+ } from "../chunk-BB3BLYLM.js";
77
77
  import {
78
78
  ZipSafetyError
79
79
  } from "../chunk-7AWFHP5U.js";
@@ -7,7 +7,7 @@ import {
7
7
  renderOutsideInDocument,
8
8
  withOutsideInMarkdownEditing,
9
9
  withOutsideInMetadata
10
- } from "../chunk-JB3ZVN7D.js";
10
+ } from "../chunk-HAGYYPFR.js";
11
11
  import {
12
12
  OUTSIDE_IN_FORMAT_IDS,
13
13
  OUTSIDE_IN_OUTPUT_TEMPLATE_KEY,
@@ -15,7 +15,7 @@ import {
15
15
  isOutsideInTargetPath,
16
16
  resolveOutsideInLayout
17
17
  } from "../chunk-WJTC5OD6.js";
18
- import "../chunk-2IG4BEAX.js";
18
+ import "../chunk-O4UYRQX7.js";
19
19
  import "../chunk-KXOZMWBS.js";
20
20
  import "../chunk-7AWFHP5U.js";
21
21
  export {
@@ -4,18 +4,18 @@ import {
4
4
  pptxToContainer,
5
5
  pptxToDoc,
6
6
  pptxToMarkdownDoc
7
- } from "../chunk-PIEDORQL.js";
7
+ } from "../chunk-ONPR2LAD.js";
8
8
  import {
9
9
  analyzePptxLayouts,
10
10
  inspectPptxLayouts
11
- } from "../chunk-6N2J7C2B.js";
11
+ } from "../chunk-RBKUII3V.js";
12
12
  import "../chunk-WMIDXNGR.js";
13
13
  import "../chunk-DHAK4PII.js";
14
14
  import "../chunk-VCZUXQUL.js";
15
15
  import "../chunk-BZ5SHMOY.js";
16
- import "../chunk-ILCJ3WFD.js";
16
+ import "../chunk-SUWCBXZH.js";
17
17
  import "../chunk-JU2RHXUB.js";
18
- import "../chunk-S5PCVMKU.js";
18
+ import "../chunk-BB3BLYLM.js";
19
19
  import "../chunk-7AWFHP5U.js";
20
20
  import "../chunk-IIQYS2YH.js";
21
21
  import "../chunk-DDMPZZJF.js";
@@ -3,11 +3,11 @@ import {
3
3
  defaultDataReaders,
4
4
  parquetDataReader,
5
5
  xlsxDataReader
6
- } from "./chunk-5HUHSLGA.js";
7
- import "./chunk-ATWVNF7D.js";
6
+ } from "./chunk-6OB2DSGW.js";
7
+ import "./chunk-6QVOHRRL.js";
8
8
  import "./chunk-Q77KNJIN.js";
9
9
  import "./chunk-DXYWKZ52.js";
10
- import "./chunk-S5PCVMKU.js";
10
+ import "./chunk-BB3BLYLM.js";
11
11
  import "./chunk-7AWFHP5U.js";
12
12
  export {
13
13
  csvDataReader,
@@ -9,7 +9,7 @@ import {
9
9
  defaultRegistry,
10
10
  prepareConversion,
11
11
  resolveConversionLimits
12
- } from "../chunk-2IG4BEAX.js";
12
+ } from "../chunk-O4UYRQX7.js";
13
13
  import {
14
14
  ConversionError
15
15
  } from "../chunk-KXOZMWBS.js";
@@ -4,7 +4,7 @@ import {
4
4
  markdownDocToXlsx,
5
5
  patchXlsxCellValues,
6
6
  xlsxToDoc
7
- } from "../chunk-4A3EHQJP.js";
7
+ } from "../chunk-KWZDYOCB.js";
8
8
  import "../chunk-BZ5SHMOY.js";
9
9
  import {
10
10
  formatCellRef,
@@ -15,11 +15,11 @@ import {
15
15
  xlsxToContainer,
16
16
  xlsxToMarkdownDoc,
17
17
  xlsxToTables
18
- } from "../chunk-ATWVNF7D.js";
18
+ } from "../chunk-6QVOHRRL.js";
19
19
  import "../chunk-DXYWKZ52.js";
20
- import "../chunk-ILCJ3WFD.js";
20
+ import "../chunk-SUWCBXZH.js";
21
21
  import "../chunk-JU2RHXUB.js";
22
- import "../chunk-S5PCVMKU.js";
22
+ import "../chunk-BB3BLYLM.js";
23
23
  import "../chunk-7AWFHP5U.js";
24
24
  export {
25
25
  XlsxPatchRefusal,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bendyline/squisq-formats",
3
- "version": "2.8.17",
3
+ "version": "2.8.19",
4
4
  "description": "Document format converters — DOCX, PDF, OOXML import/export",
5
5
  "license": "MIT",
6
6
  "author": "Bendyline",
@@ -135,7 +135,7 @@
135
135
  "typecheck": "tsc --noEmit"
136
136
  },
137
137
  "dependencies": {
138
- "@bendyline/squisq": "2.13.15",
138
+ "@bendyline/squisq": "2.13.17",
139
139
  "@pdf-lib/fontkit": "1.1.1",
140
140
  "@pdf-lib/upng": "1.0.1",
141
141
  "@xmldom/xmldom": "0.9.12",