odf-kit 0.9.2 → 0.9.4

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # odf-kit
2
2
 
3
- Generate, fill, read, and convert OpenDocument Format files (.odt, .ods) in TypeScript and JavaScript. Works in Node.js and browsers. No LibreOffice dependency — pure spec-compliant ODF.
3
+ Generate, fill, read, and convert OpenDocument Format files (.odt, .ods) in TypeScript and JavaScript. Convert HTML to ODT. Works in Node.js and browsers. No LibreOffice dependency — pure spec-compliant ODF.
4
4
 
5
5
  **[Documentation & examples →](https://githubnewbie0.github.io/odf-kit/)**
6
6
 
@@ -8,7 +8,7 @@ Generate, fill, read, and convert OpenDocument Format files (.odt, .ods) in Type
8
8
  npm install odf-kit
9
9
  ```
10
10
 
11
- ## Five ways to work with ODF files
11
+ ## Six ways to work with ODF files
12
12
 
13
13
  ```typescript
14
14
  // 1. Build an ODT document from scratch
@@ -26,7 +26,22 @@ const bytes = await doc.save();
26
26
  ```
27
27
 
28
28
  ```typescript
29
- // 2. Build an ODS spreadsheet from scratch
29
+ // 2. Convert HTML to ODT
30
+ import { htmlToOdt } from "odf-kit";
31
+
32
+ const html = `
33
+ <h1>Meeting Notes</h1>
34
+ <p>Attendees: <strong>Alice</strong>, Bob, Carol</p>
35
+ <ul>
36
+ <li>Project status</li>
37
+ <li>Budget review</li>
38
+ </ul>
39
+ `;
40
+ const bytes = await htmlToOdt(html, { pageFormat: "A4" });
41
+ ```
42
+
43
+ ```typescript
44
+ // 3. Build an ODS spreadsheet from scratch
30
45
  import { OdsDocument } from "odf-kit";
31
46
 
32
47
  const doc = new OdsDocument();
@@ -41,7 +56,7 @@ const bytes = await doc.save();
41
56
  ```
42
57
 
43
58
  ```typescript
44
- // 3. Fill an existing .odt template with data
59
+ // 4. Fill an existing .odt template with data
45
60
  import { fillTemplate } from "odf-kit";
46
61
 
47
62
  const template = readFileSync("invoice-template.odt");
@@ -59,7 +74,7 @@ writeFileSync("invoice.odt", result);
59
74
  ```
60
75
 
61
76
  ```typescript
62
- // 4. Read an existing .odt file
77
+ // 5. Read an existing .odt file
63
78
  import { readOdt, odtToHtml } from "odf-kit/reader";
64
79
 
65
80
  const bytes = readFileSync("report.odt");
@@ -68,7 +83,7 @@ const html = odtToHtml(bytes); // styled HTML string
68
83
  ```
69
84
 
70
85
  ```typescript
71
- // 5. Convert .odt to Typst for PDF generation
86
+ // 6. Convert .odt to Typst for PDF generation
72
87
  import { odtToTypst } from "odf-kit/typst";
73
88
  import { execSync } from "child_process";
74
89
 
@@ -88,9 +103,9 @@ npm install odf-kit
88
103
  Node.js 22+ required. ESM only. Sub-exports:
89
104
 
90
105
  ```typescript
91
- import { OdtDocument, OdsDocument, fillTemplate } from "odf-kit"; // build + fill
92
- import { readOdt, odtToHtml } from "odf-kit/reader"; // read + HTML
93
- import { odtToTypst, modelToTypst } from "odf-kit/typst"; // Typst/PDF
106
+ import { OdtDocument, OdsDocument, htmlToOdt, fillTemplate } from "odf-kit"; // build + convert + fill
107
+ import { readOdt, odtToHtml } from "odf-kit/reader"; // read + HTML
108
+ import { odtToTypst, modelToTypst } from "odf-kit/typst"; // Typst/PDF
94
109
  ```
95
110
 
96
111
  Works in Node.js, browsers, Deno, Bun, and Cloudflare Workers. The only runtime dependency is [fflate](https://github.com/101arrowz/fflate) for ZIP packaging — no transitive dependencies.
@@ -374,6 +389,74 @@ const bytes = await doc.save();
374
389
 
375
390
  ---
376
391
 
392
+ ## Convert: HTML to ODT
393
+
394
+ `htmlToOdt()` converts an HTML string to a `.odt` file. This is the missing conversion direction — the entire industry converts ODT→HTML for web display. `htmlToOdt` brings content back into the open standard with no LibreOffice, no Pandoc, and no server-side dependencies.
395
+
396
+ The primary use case is Nextcloud Text ODT export: Nextcloud Text produces clean, well-formed HTML that maps directly to ODT elements.
397
+
398
+ ### Basic usage
399
+
400
+ ```typescript
401
+ import { htmlToOdt } from "odf-kit";
402
+
403
+ const html = `
404
+ <h1>Meeting Notes</h1>
405
+ <p>Attendees: <strong>Alice</strong>, Bob, Carol</p>
406
+ <h2>Action Items</h2>
407
+ <table>
408
+ <tr><th>Owner</th><th>Task</th><th>Due</th></tr>
409
+ <tr><td>Alice</td><td>Send report</td><td>Friday</td></tr>
410
+ </table>
411
+ `;
412
+
413
+ // A4 is the default — correct for Europe and most of the world
414
+ const bytes = await htmlToOdt(html);
415
+
416
+ // US letter
417
+ const bytes = await htmlToOdt(html, { pageFormat: "letter" });
418
+ ```
419
+
420
+ Both fragment HTML (`<h1>...</h1><p>...</p>`) and full documents (`<html><body>...</body></html>`) are accepted.
421
+
422
+ ### Page formats
423
+
424
+ | Format | Dimensions | Default margins | Typical use |
425
+ |---|---|---|---|
426
+ | `"A4"` | 21 × 29.7 cm | 2.5 cm | Europe, ISO standard **(default)** |
427
+ | `"letter"` | 21.59 × 27.94 cm | 2.54 cm | USA, Canada |
428
+ | `"legal"` | 21.59 × 35.56 cm | 2.54 cm | USA legal |
429
+ | `"A3"` | 29.7 × 42 cm | 2.5 cm | Large format |
430
+ | `"A5"` | 14.8 × 21 cm | 2 cm | Small booklets |
431
+
432
+ ```typescript
433
+ // Landscape with custom margins
434
+ const bytes = await htmlToOdt(html, {
435
+ pageFormat: "A4",
436
+ orientation: "landscape",
437
+ marginTop: "1.5cm",
438
+ marginBottom: "1.5cm",
439
+ });
440
+
441
+ // With metadata
442
+ const bytes = await htmlToOdt(html, {
443
+ pageFormat: "letter",
444
+ metadata: { title: "Meeting Notes", creator: "Alice" },
445
+ });
446
+ ```
447
+
448
+ ### Supported HTML elements
449
+
450
+ **Block:** `<h1>`–`<h6>`, `<p>`, `<ul>`, `<ol>`, `<li>` (nested lists supported), `<table>` / `<thead>` / `<tbody>` / `<tr>` / `<td>` / `<th>`, `<blockquote>` (indented), `<pre>` (monospace), `<hr>` (paragraph with bottom border), `<figure>` / `<figcaption>`, `<div>` / `<section>` / `<article>` / `<main>` (transparent).
451
+
452
+ **Inline:** `<strong>` / `<b>`, `<em>` / `<i>`, `<u>`, `<s>` / `<del>`, `<sup>`, `<sub>`, `<a href>`, `<code>` (monospace), `<mark>` (highlight), `<span style="">` (inline CSS), `<br>` (line break).
453
+
454
+ **Inline CSS on `<span>`:** `color`, `font-size` (px/pt/em), `font-family`, `font-weight`, `font-style`, `text-decoration`.
455
+
456
+ **Images:** skipped in v1 — v2 will add an `images` option for pre-fetched bytes.
457
+
458
+ ---
459
+
377
460
  ## Fill: template engine
378
461
 
379
462
  Create a `.odt` template in LibreOffice with `{placeholders}`, then fill it programmatically.
@@ -573,6 +656,22 @@ interface OdsCellObject extends OdsCellOptions {
573
656
  }
574
657
  ```
575
658
 
659
+ ### htmlToOdt
660
+
661
+ ```typescript
662
+ function htmlToOdt(html: string, options?: HtmlToOdtOptions): Promise<Uint8Array>
663
+
664
+ interface HtmlToOdtOptions {
665
+ pageFormat?: "A4" | "letter" | "legal" | "A3" | "A5"; // default: "A4"
666
+ orientation?: "portrait" | "landscape";
667
+ marginTop?: string;
668
+ marginBottom?: string;
669
+ marginLeft?: string;
670
+ marginRight?: string;
671
+ metadata?: { title?: string; creator?: string; description?: string };
672
+ }
673
+ ```
674
+
576
675
  ### fillTemplate
577
676
 
578
677
  ```typescript
@@ -675,7 +774,8 @@ ESM only. Zero Node-specific APIs in the library source — enforced at the Type
675
774
  - **Single runtime dependency** — fflate for ZIP. No transitive dependencies.
676
775
  - **Spec-compliant output** — every generated file passes the OASIS ODF validator. Enforced on every commit by CI.
677
776
  - **Multiple ODF formats** — ODT documents and ODS spreadsheets from the same library.
678
- - **Five complete capability modes** — build ODT, build ODS, fill templates, read, convert. Not just generation.
777
+ - **Six complete capability modes** — build ODT, build ODS, convert HTML→ODT, fill templates, read, convert to Typst/PDF. Not just generation.
778
+ - **HTML→ODT conversion** — the missing direction. Bring web content back into the ISO open standard with no LibreOffice or Pandoc dependency.
679
779
  - **Zero-dependency Typst emitter** — the only JavaScript library with built-in ODT→Typst conversion for PDF generation.
680
780
  - **TypeScript-first** — full types across all sub-exports.
681
781
  - **Apache 2.0** — use freely in commercial and open source projects.
@@ -688,6 +788,7 @@ ESM only. Zero Node-specific APIs in the library source — enforced at the Type
688
788
  |---------|---------|------------|---------------|
689
789
  | Generate .odt from scratch | ✅ | ⚠️ flat XML only | ❌ |
690
790
  | Generate .ods from scratch | ✅ | ❌ | ❌ |
791
+ | Convert HTML → ODT | ✅ | ❌ | ❌ |
691
792
  | Fill .odt templates | ✅ | ❌ | ✅ .docx only |
692
793
  | Read .odt files | ✅ | ❌ | ❌ |
693
794
  | Convert to HTML | ✅ | ❌ | ❌ |
@@ -706,6 +807,8 @@ odf-kit targets ODF 1.2 (ISO/IEC 26300). Generated files include proper ZIP pack
706
807
 
707
808
  ## Version history
708
809
 
810
+ **v0.9.2** — `htmlToOdt()`: HTML→ODT conversion with page format presets (A4/letter/legal/A3/A5), full inline formatting, lists, tables, blockquote, pre, hr, and inline CSS. `addLineBreak()` on `ParagraphBuilder`. `borderBottom` on `ParagraphOptions`. 769 tests passing.
811
+
709
812
  **v0.9.0** — ODS spreadsheet generation: `OdsDocument`, multiple sheets, auto-typed cells, formulas, date formatting (ISO/DMY/MDY), row and cell formatting, column widths, row heights, style deduplication. 707 tests passing.
710
813
 
711
814
  **v0.8.0** — `odf-kit/typst` sub-export: `odtToTypst()` and `modelToTypst()`. Zero-dependency ODT→Typst emitter for PDF generation via Typst CLI. 650+ tests passing.
package/dist/index.d.ts CHANGED
@@ -3,7 +3,8 @@ export { ParagraphBuilder } from "./odt/index.js";
3
3
  export { HeaderFooterBuilder } from "./odt/index.js";
4
4
  export { TableBuilder, RowBuilder, CellBuilder } from "./odt/index.js";
5
5
  export { ListBuilder } from "./odt/index.js";
6
- export type { ContentElement, TextFormatting, TextRun, TableOptions, CellOptions, PageLayout, ParagraphOptions, TabStop, ListOptions, ImageOptions, ImageData, } from "./odt/index.js";
6
+ export { htmlToOdt } from "./odt/index.js";
7
+ export type { ContentElement, TextFormatting, TextRun, TableOptions, CellOptions, PageLayout, ParagraphOptions, TabStop, ListOptions, ImageOptions, ImageData, HtmlToOdtOptions, } from "./odt/index.js";
7
8
  export type { MetadataOptions } from "./core/index.js";
8
9
  export { fillTemplate, healPlaceholders, replaceAll } from "./template/index.js";
9
10
  export type { TemplateData } from "./template/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EACV,cAAc,EACd,cAAc,EACd,OAAO,EACP,YAAY,EACZ,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,WAAW,EACX,YAAY,EACZ,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjF,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,GACd,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EACV,cAAc,EACd,cAAc,EACd,OAAO,EACP,YAAY,EACZ,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,WAAW,EACX,YAAY,EACZ,SAAS,EACT,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjF,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,GACd,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ export { ParagraphBuilder } from "./odt/index.js";
5
5
  export { HeaderFooterBuilder } from "./odt/index.js";
6
6
  export { TableBuilder, RowBuilder, CellBuilder } from "./odt/index.js";
7
7
  export { ListBuilder } from "./odt/index.js";
8
+ export { htmlToOdt } from "./odt/index.js";
8
9
  export { fillTemplate, healPlaceholders, replaceAll } from "./template/index.js";
9
10
  export { OdsDocument } from "./ods/index.js";
10
11
  export { OdsSheet } from "./ods/index.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,2CAA2C;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAe7C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,2CAA2C;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAgB3C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/ods/content.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,aAAa,EAGb,YAAY,EACb,MAAM,YAAY,CAAC;AAoiBpB;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EAAE,EACtB,iBAAiB,EAAE,aAAa,GAC/B,MAAM,CAwER;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CA6B1C"}
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/ods/content.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,aAAa,EAGb,YAAY,EACb,MAAM,YAAY,CAAC;AAunBpB;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EAAE,EACtB,iBAAiB,EAAE,aAAa,GAC/B,MAAM,CA+ER;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CA6B1C"}
@@ -110,6 +110,8 @@ function dateFormatToStyleName(format) {
110
110
  return "Ndate-mdy";
111
111
  }
112
112
  }
113
+ /** Style name for the auto-detected datetime format (date + time). */
114
+ const DATETIME_STYLE_NAME = "Ndate-dt";
113
115
  /** Build a number:date-style element for automatic-styles. */
114
116
  function buildDateFormatStyle(format) {
115
117
  const dateStyle = el("number:date-style").attr("style:name", dateFormatToStyleName(format));
@@ -148,6 +150,38 @@ function formatDateISO(date) {
148
150
  const d = String(date.getUTCDate()).padStart(2, "0");
149
151
  return `${y}-${m}-${d}`;
150
152
  }
153
+ /**
154
+ * Return true if the Date has a nonzero UTC time component.
155
+ * Used to decide whether to render as a date-only or datetime value.
156
+ */
157
+ function isDatetime(date) {
158
+ return (date.getUTCHours() !== 0 ||
159
+ date.getUTCMinutes() !== 0 ||
160
+ date.getUTCSeconds() !== 0 ||
161
+ date.getUTCMilliseconds() !== 0);
162
+ }
163
+ /**
164
+ * Format a Date as an ISO datetime string (YYYY-MM-DDTHH:MM:SS).
165
+ * Always uses UTC to avoid timezone offsets.
166
+ */
167
+ function formatDatetimeISO(date) {
168
+ const y = date.getUTCFullYear();
169
+ const mo = String(date.getUTCMonth() + 1).padStart(2, "0");
170
+ const d = String(date.getUTCDate()).padStart(2, "0");
171
+ const h = String(date.getUTCHours()).padStart(2, "0");
172
+ const mi = String(date.getUTCMinutes()).padStart(2, "0");
173
+ const s = String(date.getUTCSeconds()).padStart(2, "0");
174
+ return `${y}-${mo}-${d}T${h}:${mi}:${s}`;
175
+ }
176
+ /**
177
+ * Format a Date as a display string for a datetime cell: "YYYY-MM-DD HH:MM:SS".
178
+ */
179
+ function formatDatetimeDisplay(date) {
180
+ const h = String(date.getUTCHours()).padStart(2, "0");
181
+ const mi = String(date.getUTCMinutes()).padStart(2, "0");
182
+ const s = String(date.getUTCSeconds()).padStart(2, "0");
183
+ return `${formatDateISO(date)} ${h}:${mi}:${s}`;
184
+ }
151
185
  /** Format a Date for display according to the given format. */
152
186
  function formatDateDisplay(date, format) {
153
187
  const y = String(date.getUTCFullYear());
@@ -162,6 +196,35 @@ function formatDateDisplay(date, format) {
162
196
  return `${m}/${d}/${y}`;
163
197
  }
164
198
  }
199
+ /** Build a number:date-style element for datetime display (YYYY-MM-DD HH:MM:SS). */
200
+ function buildDatetimeFormatStyle() {
201
+ const dtStyle = el("number:date-style").attr("style:name", DATETIME_STYLE_NAME);
202
+ dtStyle.appendChild(el("number:year").attr("number:style", "long"));
203
+ dtStyle.appendChild(el("number:text").text("-"));
204
+ dtStyle.appendChild(el("number:month").attr("number:style", "long"));
205
+ dtStyle.appendChild(el("number:text").text("-"));
206
+ dtStyle.appendChild(el("number:day").attr("number:style", "long"));
207
+ dtStyle.appendChild(el("number:text").text(" "));
208
+ dtStyle.appendChild(el("number:hours").attr("number:style", "long"));
209
+ dtStyle.appendChild(el("number:text").text(":"));
210
+ dtStyle.appendChild(el("number:minutes").attr("number:style", "long"));
211
+ dtStyle.appendChild(el("number:text").text(":"));
212
+ dtStyle.appendChild(el("number:seconds").attr("number:style", "long"));
213
+ return dtStyle;
214
+ }
215
+ /** Return true if any date cell in any sheet has a nonzero UTC time component. */
216
+ function hasDatetimeCells(sheets) {
217
+ for (const sheet of sheets) {
218
+ for (const row of sheet.rows) {
219
+ for (const cell of row.cells) {
220
+ if (cell.type === "date" && cell.value instanceof Date && isDatetime(cell.value)) {
221
+ return true;
222
+ }
223
+ }
224
+ }
225
+ }
226
+ return false;
227
+ }
165
228
  /** Resolve the effective date format for a cell: cell > row > document default. */
166
229
  function effectiveDateFormat(cell, row, defaultFormat) {
167
230
  return cell.options?.dateFormat ?? row.options?.dateFormat ?? defaultFormat;
@@ -195,7 +258,9 @@ function buildCellStyleMap(sheets, defaultDateFormat) {
195
258
  continue;
196
259
  const effective = mergeOptions(row.options, cell.options);
197
260
  const dataStyleName = cell.type === "date"
198
- ? dateFormatToStyleName(effectiveDateFormat(cell, row, defaultDateFormat))
261
+ ? cell.value instanceof Date && isDatetime(cell.value)
262
+ ? DATETIME_STYLE_NAME
263
+ : dateFormatToStyleName(effectiveDateFormat(cell, row, defaultDateFormat))
199
264
  : undefined;
200
265
  const normalized = normalizeOdsCellStyle(effective, dataStyleName);
201
266
  const key = cellStyleKey(normalized);
@@ -379,7 +444,11 @@ function buildCellElement(cell, row, cellStyleMap, defaultDateFormat) {
379
444
  // Effective options: row defaults merged with cell overrides
380
445
  const effective = mergeOptions(row.options, cell.options);
381
446
  const cellDateFmt = effectiveDateFormat(cell, row, defaultDateFormat);
382
- const dataStyleName = cell.type === "date" ? dateFormatToStyleName(cellDateFmt) : undefined;
447
+ const dataStyleName = cell.type === "date"
448
+ ? cell.value instanceof Date && isDatetime(cell.value)
449
+ ? DATETIME_STYLE_NAME
450
+ : dateFormatToStyleName(cellDateFmt)
451
+ : undefined;
383
452
  // Look up deduplicated cell style
384
453
  const normalized = normalizeOdsCellStyle(effective, dataStyleName);
385
454
  const key = cellStyleKey(normalized);
@@ -402,8 +471,14 @@ function buildCellElement(cell, row, cellStyleMap, defaultDateFormat) {
402
471
  case "date": {
403
472
  const date = cell.value;
404
473
  cellEl.attr("office:value-type", "date");
405
- cellEl.attr("office:date-value", formatDateISO(date));
406
- cellEl.appendChild(el("text:p").text(formatDateDisplay(date, cellDateFmt)));
474
+ if (isDatetime(date)) {
475
+ cellEl.attr("office:date-value", formatDatetimeISO(date));
476
+ cellEl.appendChild(el("text:p").text(formatDatetimeDisplay(date)));
477
+ }
478
+ else {
479
+ cellEl.attr("office:date-value", formatDateISO(date));
480
+ cellEl.appendChild(el("text:p").text(formatDateDisplay(date, cellDateFmt)));
481
+ }
407
482
  break;
408
483
  }
409
484
  case "boolean":
@@ -462,10 +537,11 @@ function buildSheetElement(sheet, tableStyleName, cellStyleMap, widthMap, optima
462
537
  export function generateOdsContent(sheets, defaultDateFormat) {
463
538
  // Collect all style information up front
464
539
  const usedDateFormats = collectUsedDateFormats(sheets, defaultDateFormat);
540
+ const needsDatetime = hasDatetimeCells(sheets);
465
541
  const cellStyleMap = buildCellStyleMap(sheets, defaultDateFormat);
466
542
  const { widthMap, optimalStyleName: optimalColStyle } = buildColumnStyleMap(sheets);
467
543
  const { heightMap, optimalStyleName: optimalRowStyle } = buildRowStyleMap(sheets);
468
- // Root element — ODS uses office, style, text, table, fo, number namespaces
544
+ // Root element — ODS uses office, style, text, table, fo, number, of namespaces
469
545
  const root = el("office:document-content")
470
546
  .attr("xmlns:office", ODF_NS.office)
471
547
  .attr("xmlns:style", ODF_NS.style)
@@ -473,6 +549,7 @@ export function generateOdsContent(sheets, defaultDateFormat) {
473
549
  .attr("xmlns:table", ODF_NS.table)
474
550
  .attr("xmlns:fo", ODF_NS.fo)
475
551
  .attr("xmlns:number", ODF_NS.number)
552
+ .attr("xmlns:of", "urn:oasis:names:tc:opendocument:xmlns:of:1.2")
476
553
  .attr("office:version", ODF_VERSION);
477
554
  // Automatic styles
478
555
  const autoStyles = el("office:automatic-styles");
@@ -480,6 +557,10 @@ export function generateOdsContent(sheets, defaultDateFormat) {
480
557
  for (const format of usedDateFormats) {
481
558
  autoStyles.appendChild(buildDateFormatStyle(format));
482
559
  }
560
+ // Datetime style — emitted only if any date cell has a nonzero time component
561
+ if (needsDatetime) {
562
+ autoStyles.appendChild(buildDatetimeFormatStyle());
563
+ }
483
564
  // Table styles — one per sheet
484
565
  for (let i = 0; i < sheets.length; i++) {
485
566
  autoStyles.appendChild(buildTableStyle(`ta${i + 1}`));
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/ods/content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/ods/content.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/odt/content.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EAGT,QAAQ,EAER,gBAAgB,EAEhB,SAAS,EACV,MAAM,YAAY,CAAC;AAMpB,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;IAC1E,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAwOD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EAAE,EAC1B,QAAQ,CAAC,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,GAChC,MAAM,CAoNR;AAu7BD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,OAAO,EAAE,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB;IAAE,SAAS,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,UAAU,EAAE,CAAA;CAAE,CAyBjD"}
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/odt/content.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EAGT,QAAQ,EAER,gBAAgB,EAEhB,SAAS,EACV,MAAM,YAAY,CAAC;AAMpB,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;IAC1E,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAwOD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EAAE,EAC1B,QAAQ,CAAC,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,GAChC,MAAM,CAoNR;AAm8BD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,OAAO,EAAE,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB;IAAE,SAAS,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,UAAU,EAAE,CAAA;CAAE,CAyBjD"}
@@ -676,6 +676,11 @@ function buildCoverageMap(table) {
676
676
  */
677
677
  function appendRuns(parent, runs, styleMap, imageMap, imageCounter = 1, graphicStyleMap = new Map()) {
678
678
  for (const run of runs) {
679
+ // Line break
680
+ if (run.lineBreak) {
681
+ parent.appendChild(el("text:line-break"));
682
+ continue;
683
+ }
679
684
  // Tab element
680
685
  if (run.field === "tab") {
681
686
  parent.appendChild(el("text:tab"));
@@ -838,6 +843,7 @@ function hasParagraphOptions(opts) {
838
843
  opts.lineHeight !== undefined ||
839
844
  opts.indentLeft ||
840
845
  opts.indentFirst ||
846
+ opts.borderBottom ||
841
847
  (opts.tabStops && opts.tabStops.length > 0));
842
848
  }
843
849
  /**
@@ -859,6 +865,8 @@ function paragraphOptionsKey(opts) {
859
865
  parts.push(`il:${opts.indentLeft}`);
860
866
  if (opts.indentFirst)
861
867
  parts.push(`if:${opts.indentFirst}`);
868
+ if (opts.borderBottom)
869
+ parts.push(`bdb:${opts.borderBottom}`);
862
870
  if (opts.tabStops && opts.tabStops.length > 0) {
863
871
  parts.push(`ts:${tabStopsKey(opts.tabStops)}`);
864
872
  }
@@ -942,6 +950,10 @@ function buildParagraphStyle(styleName, opts, parentStyle) {
942
950
  paraProps.attr("fo:text-indent", opts.indentFirst);
943
951
  hasParaProps = true;
944
952
  }
953
+ if (opts.borderBottom) {
954
+ paraProps.attr("fo:border-bottom", opts.borderBottom);
955
+ hasParaProps = true;
956
+ }
945
957
  if (opts.tabStops && opts.tabStops.length > 0) {
946
958
  const tabStopsEl = el("style:tab-stops");
947
959
  for (const ts of opts.tabStops) {