dom-docx 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/API.md +533 -0
- package/LICENSE +21 -0
- package/README.md +236 -0
- package/dist/browser.d.ts +34 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +35 -0
- package/dist/browser.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +118 -0
- package/dist/cli.js.map +1 -0
- package/dist/converter/bordered-block.d.ts +54 -0
- package/dist/converter/bordered-block.d.ts.map +1 -0
- package/dist/converter/bordered-block.js +124 -0
- package/dist/converter/bordered-block.js.map +1 -0
- package/dist/converter/build-docx.d.ts +46 -0
- package/dist/converter/build-docx.d.ts.map +1 -0
- package/dist/converter/build-docx.js +161 -0
- package/dist/converter/build-docx.js.map +1 -0
- package/dist/converter/computed-style-snapshot.browser.js +73 -0
- package/dist/converter/computed-style-snapshot.d.ts +10 -0
- package/dist/converter/computed-style-snapshot.d.ts.map +1 -0
- package/dist/converter/computed-style-snapshot.js +78 -0
- package/dist/converter/computed-style-snapshot.js.map +1 -0
- package/dist/converter/constants.d.ts +51 -0
- package/dist/converter/constants.d.ts.map +1 -0
- package/dist/converter/constants.js +163 -0
- package/dist/converter/constants.js.map +1 -0
- package/dist/converter/css.d.ts +112 -0
- package/dist/converter/css.d.ts.map +1 -0
- package/dist/converter/css.js +621 -0
- package/dist/converter/css.js.map +1 -0
- package/dist/converter/flex.d.ts +59 -0
- package/dist/converter/flex.d.ts.map +1 -0
- package/dist/converter/flex.js +252 -0
- package/dist/converter/flex.js.map +1 -0
- package/dist/converter/image.d.ts +38 -0
- package/dist/converter/image.d.ts.map +1 -0
- package/dist/converter/image.js +159 -0
- package/dist/converter/image.js.map +1 -0
- package/dist/converter/inline.d.ts +18 -0
- package/dist/converter/inline.d.ts.map +1 -0
- package/dist/converter/inline.js +213 -0
- package/dist/converter/inline.js.map +1 -0
- package/dist/converter/ooxml-patch.d.ts +23 -0
- package/dist/converter/ooxml-patch.d.ts.map +1 -0
- package/dist/converter/ooxml-patch.js +54 -0
- package/dist/converter/ooxml-patch.js.map +1 -0
- package/dist/converter/style-path.d.ts +4 -0
- package/dist/converter/style-path.d.ts.map +1 -0
- package/dist/converter/style-path.js +17 -0
- package/dist/converter/style-path.js.map +1 -0
- package/dist/converter/style-resolver-node.d.ts +7 -0
- package/dist/converter/style-resolver-node.d.ts.map +1 -0
- package/dist/converter/style-resolver-node.js +26 -0
- package/dist/converter/style-resolver-node.js.map +1 -0
- package/dist/converter/style-resolver.d.ts +24 -0
- package/dist/converter/style-resolver.d.ts.map +1 -0
- package/dist/converter/style-resolver.js +122 -0
- package/dist/converter/style-resolver.js.map +1 -0
- package/dist/converter/svg.d.ts +11 -0
- package/dist/converter/svg.d.ts.map +1 -0
- package/dist/converter/svg.js +116 -0
- package/dist/converter/svg.js.map +1 -0
- package/dist/converter/table.d.ts +8 -0
- package/dist/converter/table.d.ts.map +1 -0
- package/dist/converter/table.js +745 -0
- package/dist/converter/table.js.map +1 -0
- package/dist/converter/text-metrics.d.ts +17 -0
- package/dist/converter/text-metrics.d.ts.map +1 -0
- package/dist/converter/text-metrics.js +51 -0
- package/dist/converter/text-metrics.js.map +1 -0
- package/dist/converter/types.d.ts +82 -0
- package/dist/converter/types.d.ts.map +1 -0
- package/dist/converter/types.js +9 -0
- package/dist/converter/types.js.map +1 -0
- package/dist/converter/visitor.d.ts +11 -0
- package/dist/converter/visitor.d.ts.map +1 -0
- package/dist/converter/visitor.js +910 -0
- package/dist/converter/visitor.js.map +1 -0
- package/dist/converter.d.ts +28 -0
- package/dist/converter.d.ts.map +1 -0
- package/dist/converter.js +44 -0
- package/dist/converter.js.map +1 -0
- package/dist/html-wrap.d.ts +3 -0
- package/dist/html-wrap.d.ts.map +1 -0
- package/dist/html-wrap.js +26 -0
- package/dist/html-wrap.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/examples/README.md +39 -0
- package/examples/balance-sheet/compare_side_by_side.png +0 -0
- package/examples/balance-sheet/input.html +41 -0
- package/examples/balance-sheet/output.docx +0 -0
- package/examples/balance-sheet/preview.png +0 -0
- package/examples/invoice/compare_side_by_side.png +0 -0
- package/examples/invoice/input.html +88 -0
- package/examples/invoice/logo.png +0 -0
- package/examples/invoice/output.docx +0 -0
- package/examples/invoice/preview.png +0 -0
- package/examples/javascript-essay/compare_side_by_side.png +0 -0
- package/examples/javascript-essay/input.html +39 -0
- package/examples/javascript-essay/output.docx +0 -0
- package/examples/javascript-essay/preview.png +0 -0
- package/examples/product-launch-brief/compare_side_by_side.png +0 -0
- package/examples/product-launch-brief/input.html +120 -0
- package/examples/product-launch-brief/output.docx +0 -0
- package/examples/product-launch-brief/preview.png +0 -0
- package/examples/quarterly-financials/compare_side_by_side.png +0 -0
- package/examples/quarterly-financials/input.html +27 -0
- package/examples/quarterly-financials/output.docx +0 -0
- package/examples/quarterly-financials/preview.png +0 -0
- package/examples/react-dashboard/compare_side_by_side.png +0 -0
- package/examples/react-dashboard/input.html +1 -0
- package/examples/react-dashboard/output.docx +0 -0
- package/examples/react-dashboard/preview.html +107 -0
- package/examples/react-dashboard/preview.png +0 -0
- package/examples/regional-sales-dashboard/compare_side_by_side.png +0 -0
- package/examples/regional-sales-dashboard/input.html +129 -0
- package/examples/regional-sales-dashboard/output.docx +0 -0
- package/examples/regional-sales-dashboard/preview.png +0 -0
- package/examples/sales-contract/compare_side_by_side.png +0 -0
- package/examples/sales-contract/input.html +68 -0
- package/examples/sales-contract/output.docx +0 -0
- package/examples/sales-contract/preview.png +0 -0
- package/examples/sprint-retrospective/compare_side_by_side.png +0 -0
- package/examples/sprint-retrospective/input.html +51 -0
- package/examples/sprint-retrospective/output.docx +0 -0
- package/examples/sprint-retrospective/preview.png +0 -0
- package/package.json +108 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visitor.js","sourceRoot":"","sources":["../../src/converter/visitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Browser, Page } from "playwright";
|
|
2
|
+
import { type StyleResolver, type StyleSource } from "./converter/style-resolver.js";
|
|
3
|
+
import type { ImageResolver } from "./converter/image.js";
|
|
4
|
+
import type { DocumentConfig } from "./converter/build-docx.js";
|
|
5
|
+
export type { StyleResolver, StyleSource } from "./converter/style-resolver.js";
|
|
6
|
+
export type { ImageResolver, ResolvedImage } from "./converter/image.js";
|
|
7
|
+
export type { DocumentConfig } from "./converter/build-docx.js";
|
|
8
|
+
export { buildDocxUint8Array, buildDocxBlob } from "./converter/build-docx.js";
|
|
9
|
+
export interface ConvertOptions extends DocumentConfig {
|
|
10
|
+
styleSource?: StyleSource;
|
|
11
|
+
/** Reuse an open Playwright browser for computed style resolution (benchmark loops). */
|
|
12
|
+
browser?: Browser;
|
|
13
|
+
/**
|
|
14
|
+
* Browser-native computed styles: read from this already-rendered page's ambient DOM
|
|
15
|
+
* instead of spawning a fresh page. Only used when `styleSource: "computed"`.
|
|
16
|
+
*/
|
|
17
|
+
page?: Page;
|
|
18
|
+
/**
|
|
19
|
+
* Resolve non-`data:` `<img src>` (e.g. `http(s):` / `file:`). The library never fetches
|
|
20
|
+
* on its own — supply this hook to enable remote/local images, and own the fetch plus its
|
|
21
|
+
* security policy (host allowlist, SSRF/private-IP blocking, auth, size caps). Without it,
|
|
22
|
+
* only inline `data:` URLs embed; other images fall back to alt text.
|
|
23
|
+
*/
|
|
24
|
+
imageResolver?: ImageResolver;
|
|
25
|
+
}
|
|
26
|
+
export declare function buildDocxBuffer(html: string, styleResolver: StyleResolver, imageResolver?: ImageResolver, docConfig?: DocumentConfig): Promise<Buffer>;
|
|
27
|
+
export declare function convertHtmlToDocx(html: string, options?: ConvertOptions): Promise<Buffer>;
|
|
28
|
+
//# sourceMappingURL=converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAKvC,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAChF,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACzE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/E,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,wFAAwF;IACxF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAG/B;AAkCD,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,aAAa,EAC5B,aAAa,CAAC,EAAE,aAAa,EAC7B,SAAS,CAAC,EAAE,cAAc,GACzB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,CAQjB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { buildDocxUint8Array } from "./converter/build-docx.js";
|
|
2
|
+
import { INLINE_STYLE_RESOLVER, } from "./converter/style-resolver.js";
|
|
3
|
+
import { computedStyleResolverFromPage, createComputedStyleResolver, } from "./converter/style-resolver-node.js";
|
|
4
|
+
export { buildDocxUint8Array, buildDocxBlob } from "./converter/build-docx.js";
|
|
5
|
+
function documentConfig(options) {
|
|
6
|
+
if (!options)
|
|
7
|
+
return undefined;
|
|
8
|
+
const { pageSize, orientation, margins, defaultFont, metadata, headerHtml, footerHtml, pageNumber, lang, direction } = options;
|
|
9
|
+
return { pageSize, orientation, margins, defaultFont, metadata, headerHtml, footerHtml, pageNumber, lang, direction };
|
|
10
|
+
}
|
|
11
|
+
async function resolveStyleResolver(html, styleSource, options) {
|
|
12
|
+
if (styleSource === "inline") {
|
|
13
|
+
return { resolver: INLINE_STYLE_RESOLVER, ownsBrowser: null };
|
|
14
|
+
}
|
|
15
|
+
if (options?.page) {
|
|
16
|
+
return { resolver: await computedStyleResolverFromPage(options.page), ownsBrowser: null };
|
|
17
|
+
}
|
|
18
|
+
// Lazy-load Playwright only on the spawn path — the default inline path never reaches
|
|
19
|
+
// here, so `playwright` stays an optional dependency (no Chromium on `npm i`).
|
|
20
|
+
let ownsBrowser = null;
|
|
21
|
+
let browser = options?.browser;
|
|
22
|
+
if (!browser) {
|
|
23
|
+
const { chromium } = await import("playwright");
|
|
24
|
+
ownsBrowser = await chromium.launch();
|
|
25
|
+
browser = ownsBrowser;
|
|
26
|
+
}
|
|
27
|
+
const resolver = await createComputedStyleResolver(html, browser);
|
|
28
|
+
return { resolver, ownsBrowser };
|
|
29
|
+
}
|
|
30
|
+
export async function buildDocxBuffer(html, styleResolver, imageResolver, docConfig) {
|
|
31
|
+
return Buffer.from(await buildDocxUint8Array(html, styleResolver, imageResolver, docConfig));
|
|
32
|
+
}
|
|
33
|
+
export async function convertHtmlToDocx(html, options) {
|
|
34
|
+
const styleSource = options?.styleSource ?? "inline";
|
|
35
|
+
const { resolver, ownsBrowser } = await resolveStyleResolver(html, styleSource, options);
|
|
36
|
+
try {
|
|
37
|
+
return await buildDocxBuffer(html, resolver, options?.imageResolver, documentConfig(options));
|
|
38
|
+
}
|
|
39
|
+
finally {
|
|
40
|
+
if (ownsBrowser)
|
|
41
|
+
await ownsBrowser.close();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,qBAAqB,GAGtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;AAO5C,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAsB/E,SAAS,cAAc,CAAC,OAAwB;IAC9C,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC/H,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACxH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,IAAY,EACZ,WAAwB,EACxB,OAAwB;IAExB,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAChE,CAAC;IAED,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC5F,CAAC;IAED,sFAAsF;IACtF,+EAA+E;IAC/E,IAAI,WAAW,GAAmB,IAAI,CAAC;IACvC,IAAI,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAChD,WAAW,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,GAAG,WAAW,CAAC;IACxB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,aAA4B,EAC5B,aAA6B,EAC7B,SAA0B;IAE1B,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,OAAwB;IAExB,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,QAAQ,CAAC;IACrD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACzF,IAAI,CAAC;QACH,OAAO,MAAM,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAChG,CAAC;YAAS,CAAC;QACT,IAAI,WAAW;YAAE,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;IAC7C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-wrap.d.ts","sourceRoot":"","sources":["../src/html-wrap.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAsBjD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { PAGE_MARGIN_PX, VIEWPORT_HEIGHT_PX, VIEWPORT_WIDTH_PX } from "./converter/constants.js";
|
|
2
|
+
/** Match validator / benchmark harness: letter page, 1″ margins, Arial 14px body. */
|
|
3
|
+
export function wrapHtml(fragment) {
|
|
4
|
+
return `<!DOCTYPE html>
|
|
5
|
+
<html lang="en">
|
|
6
|
+
<head>
|
|
7
|
+
<meta charset="utf-8">
|
|
8
|
+
<style>
|
|
9
|
+
* { box-sizing: border-box; }
|
|
10
|
+
body {
|
|
11
|
+
margin: 0;
|
|
12
|
+
padding: ${PAGE_MARGIN_PX}px;
|
|
13
|
+
width: ${VIEWPORT_WIDTH_PX}px;
|
|
14
|
+
min-height: ${VIEWPORT_HEIGHT_PX}px;
|
|
15
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
16
|
+
font-size: 14px;
|
|
17
|
+
line-height: 1.4;
|
|
18
|
+
color: #111;
|
|
19
|
+
background: #fff;
|
|
20
|
+
}
|
|
21
|
+
</style>
|
|
22
|
+
</head>
|
|
23
|
+
<body>${fragment}</body>
|
|
24
|
+
</html>`;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=html-wrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-wrap.js","sourceRoot":"","sources":["../src/html-wrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEjG,qFAAqF;AACrF,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACvC,OAAO;;;;;;;;iBAQQ,cAAc;eAChB,iBAAiB;oBACZ,kBAAkB;;;;;;;;;QAS9B,QAAQ;QACR,CAAC;AACT,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* dom-docx — public entry point (Node).
|
|
3
|
+
*
|
|
4
|
+
* Converts a semantic HTML body fragment to a native Word `.docx` (paragraphs, runs,
|
|
5
|
+
* lists, tables, images) — not a rasterized snapshot. The default `inline` path is pure
|
|
6
|
+
* JS (docx + cheerio + fflate) and requires no browser. The optional `computed` style
|
|
7
|
+
* source lazy-loads Playwright only when used, so it is not needed to install or run the
|
|
8
|
+
* inline converter.
|
|
9
|
+
*
|
|
10
|
+
* For in-browser conversion (returns a `Blob`), import the browser entry — see
|
|
11
|
+
* `package.json` `exports` (`browser` condition) / `src/browser.ts`.
|
|
12
|
+
*/
|
|
13
|
+
export { convertHtmlToDocx, buildDocxBuffer, buildDocxUint8Array, buildDocxBlob } from "./converter.js";
|
|
14
|
+
export type { ConvertOptions, DocumentConfig, StyleSource, StyleResolver, ImageResolver, ResolvedImage, } from "./converter.js";
|
|
15
|
+
export { INLINE_STYLE_RESOLVER, ComputedStyleResolver } from "./converter/style-resolver.js";
|
|
16
|
+
export { snapshotComputedStyles, createComputedStyleResolver, computedStyleResolverFromPage, } from "./converter/style-resolver-node.js";
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxG,YAAY,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,oCAAoC,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* dom-docx — public entry point (Node).
|
|
3
|
+
*
|
|
4
|
+
* Converts a semantic HTML body fragment to a native Word `.docx` (paragraphs, runs,
|
|
5
|
+
* lists, tables, images) — not a rasterized snapshot. The default `inline` path is pure
|
|
6
|
+
* JS (docx + cheerio + fflate) and requires no browser. The optional `computed` style
|
|
7
|
+
* source lazy-loads Playwright only when used, so it is not needed to install or run the
|
|
8
|
+
* inline converter.
|
|
9
|
+
*
|
|
10
|
+
* For in-browser conversion (returns a `Blob`), import the browser entry — see
|
|
11
|
+
* `package.json` `exports` (`browser` condition) / `src/browser.ts`.
|
|
12
|
+
*/
|
|
13
|
+
export { convertHtmlToDocx, buildDocxBuffer, buildDocxUint8Array, buildDocxBlob } from "./converter.js";
|
|
14
|
+
export { INLINE_STYLE_RESOLVER, ComputedStyleResolver } from "./converter/style-resolver.js";
|
|
15
|
+
export { snapshotComputedStyles, createComputedStyleResolver, computedStyleResolverFromPage, } from "./converter/style-resolver-node.js";
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AASxG,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Examples
|
|
2
|
+
|
|
3
|
+
Curated HTML → DOCX demos you can open, convert, and compare without running the test harness.
|
|
4
|
+
|
|
5
|
+
Each folder contains:
|
|
6
|
+
|
|
7
|
+
| File | Description |
|
|
8
|
+
|------|-------------|
|
|
9
|
+
| `input.html` | Body fragment passed to `convertHtmlToDocx()` |
|
|
10
|
+
| `output.docx` | Generated Word document |
|
|
11
|
+
| `compare_side_by_side.png` | Chromium reference (left) vs LibreOffice-rendered DOCX (right) |
|
|
12
|
+
|
|
13
|
+
Regenerate with `npm run test:showcase`. The runner refreshes these files automatically; full harness artifacts (PDFs, diffs, scores) stay in gitignored `output/showcase/`.
|
|
14
|
+
|
|
15
|
+
## Showcases
|
|
16
|
+
|
|
17
|
+
| Folder | Description |
|
|
18
|
+
|--------|-------------|
|
|
19
|
+
| [quarterly-financials](./quarterly-financials/) | Condensed income statement with YoY columns and subtotals |
|
|
20
|
+
| [invoice](./invoice/) | Professional services invoice with logo (`logo.png` + imageResolver), line items, tax, and payment terms |
|
|
21
|
+
| [balance-sheet](./balance-sheet/) | Condensed balance sheet — assets, liabilities, and equity |
|
|
22
|
+
| [sales-contract](./sales-contract/) | Software subscription agreement with numbered terms and signatures |
|
|
23
|
+
| [product-launch-brief](./product-launch-brief/) | Hero banner, KPI table, funnel table, roadmap list (embedded CSS) |
|
|
24
|
+
| [javascript-essay](./javascript-essay/) | Essay — three reasons JavaScript is great |
|
|
25
|
+
| [regional-sales-dashboard](./regional-sales-dashboard/) | Regional metrics table with conditional coloring and leaderboard (embedded CSS) |
|
|
26
|
+
| [sprint-retrospective](./sprint-retrospective/) | Retro lists, action-item table with status badges |
|
|
27
|
+
| [react-dashboard](./react-dashboard/) | KPI cards rendered by React (CDN, no build); `preview.html` is the source app |
|
|
28
|
+
|
|
29
|
+
## Try one locally
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
33
|
+
import { convertHtmlToDocx } from "dom-docx";
|
|
34
|
+
|
|
35
|
+
const html = await readFile("examples/javascript-essay/input.html", "utf-8");
|
|
36
|
+
await writeFile("javascript-essay.docx", await convertHtmlToDocx(html));
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
HTML authoring tips: [AGENTS.md](../AGENTS.md).
|
|
Binary file
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<div style="font-family:Georgia,'Times New Roman',serif;color:#1c1917">
|
|
2
|
+
<p style="margin:0 0 4px;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:#78716c">Unaudited · Form 10-Q excerpt</p>
|
|
3
|
+
<h1 style="color:#1e3a5f;margin:0 0 4px;font-size:26px;font-weight:normal">Meridian Analytics, Inc.</h1>
|
|
4
|
+
<p style="color:#57534e;margin:0 0 16px;font-size:13px;border-bottom:2px solid #1e3a5f;padding-bottom:8px">
|
|
5
|
+
Condensed Balance Sheet · As of March 31 · (USD, thousands)
|
|
6
|
+
</p>
|
|
7
|
+
<table border="1" cellpadding="8" cellspacing="0" style="border-collapse:collapse;width:100%;font-size:13px">
|
|
8
|
+
<tr style="background:#1e3a5f;color:#e0f2fe">
|
|
9
|
+
<td><strong>Assets</strong></td>
|
|
10
|
+
<td style="text-align:right;width:120px"><strong>Amount</strong></td>
|
|
11
|
+
</tr>
|
|
12
|
+
<tr><td>Cash and cash equivalents</td><td style="text-align:right">$18,420</td></tr>
|
|
13
|
+
<tr><td>Accounts receivable, net</td><td style="text-align:right">$12,680</td></tr>
|
|
14
|
+
<tr><td>Prepaid expenses</td><td style="text-align:right">$2,140</td></tr>
|
|
15
|
+
<tr style="background:#f0f9ff"><td><strong>Total current assets</strong></td><td style="text-align:right"><strong>$33,240</strong></td></tr>
|
|
16
|
+
<tr><td>Property and equipment, net</td><td style="text-align:right">$4,890</td></tr>
|
|
17
|
+
<tr><td>Goodwill and intangibles</td><td style="text-align:right">$8,200</td></tr>
|
|
18
|
+
<tr style="background:#e0f2fe"><td><strong>Total assets</strong></td><td style="text-align:right"><strong>$46,330</strong></td></tr>
|
|
19
|
+
</table>
|
|
20
|
+
<table border="1" cellpadding="8" cellspacing="0" style="border-collapse:collapse;width:100%;font-size:13px;margin-top:16px">
|
|
21
|
+
<tr style="background:#1e3a5f;color:#e0f2fe">
|
|
22
|
+
<td><strong>Liabilities & stockholders' equity</strong></td>
|
|
23
|
+
<td style="text-align:right;width:120px"><strong>Amount</strong></td>
|
|
24
|
+
</tr>
|
|
25
|
+
<tr><td>Accounts payable</td><td style="text-align:right">$3,820</td></tr>
|
|
26
|
+
<tr><td>Accrued compensation</td><td style="text-align:right">$2,940</td></tr>
|
|
27
|
+
<tr><td>Deferred revenue, current</td><td style="text-align:right">$6,180</td></tr>
|
|
28
|
+
<tr style="background:#f0f9ff"><td><strong>Total current liabilities</strong></td><td style="text-align:right"><strong>$12,940</strong></td></tr>
|
|
29
|
+
<tr><td>Long-term debt</td><td style="text-align:right">$5,000</td></tr>
|
|
30
|
+
<tr><td>Other long-term liabilities</td><td style="text-align:right">$1,240</td></tr>
|
|
31
|
+
<tr style="background:#f0f9ff"><td><strong>Total liabilities</strong></td><td style="text-align:right"><strong>$19,180</strong></td></tr>
|
|
32
|
+
<tr><td>Common stock</td><td style="text-align:right">$120</td></tr>
|
|
33
|
+
<tr><td>Additional paid-in capital</td><td style="text-align:right">$18,600</td></tr>
|
|
34
|
+
<tr><td>Retained earnings</td><td style="text-align:right">$8,430</td></tr>
|
|
35
|
+
<tr style="background:#f0f9ff"><td><strong>Total stockholders' equity</strong></td><td style="text-align:right"><strong>$27,150</strong></td></tr>
|
|
36
|
+
<tr style="background:#e0f2fe"><td><strong>Total liabilities & equity</strong></td><td style="text-align:right"><strong>$46,330</strong></td></tr>
|
|
37
|
+
</table>
|
|
38
|
+
<p style="font-size:11px;color:#78716c;margin-top:12px;font-style:italic">
|
|
39
|
+
See accompanying notes. Prepared by Finance · <a href="#" style="color:#1e3a5f">full 10-Q draft</a>.
|
|
40
|
+
</p>
|
|
41
|
+
</div>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
<div style="font-family:Arial,Helvetica,sans-serif;color:#1e293b">
|
|
2
|
+
<table border="0" cellpadding="0" cellspacing="0" style="width:100%;margin-bottom:20px;border-bottom:3px solid #0f172a;font-size:13px">
|
|
3
|
+
<tr>
|
|
4
|
+
<td style="width:50%;vertical-align:top;padding-bottom:14px">
|
|
5
|
+
<p style="margin:0;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:#64748b">Invoice</p>
|
|
6
|
+
<h1 style="margin:4px 0 0;font-size:28px;color:#0f172a;font-weight:bold">#INV-4821</h1>
|
|
7
|
+
</td>
|
|
8
|
+
<td style="width:50%;vertical-align:top;text-align:right;padding-bottom:14px;color:#475569">
|
|
9
|
+
<img src="logo.png" width="168" height="48" alt="Meridian Analytics logo" style="display:block;margin:0 0 8px auto" />
|
|
10
|
+
<p style="margin:0"><strong>Meridian Analytics, Inc.</strong></p>
|
|
11
|
+
<p style="margin:4px 0 0">1200 Market Street, Suite 400</p>
|
|
12
|
+
<p style="margin:0">San Francisco, CA 94103</p>
|
|
13
|
+
</td>
|
|
14
|
+
</tr>
|
|
15
|
+
</table>
|
|
16
|
+
<table border="0" cellpadding="8" cellspacing="0" style="width:100%;margin-bottom:18px;font-size:13px;background:#f8fafc;border:1px solid #e2e8f0">
|
|
17
|
+
<tr>
|
|
18
|
+
<td style="width:50%;vertical-align:top;border-right:1px solid #e2e8f0" rowspan="4">
|
|
19
|
+
<p style="margin:0 0 4px;font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:#64748b">Bill to</p>
|
|
20
|
+
<p style="margin:0"><strong>Northwind Traders LLC</strong></p>
|
|
21
|
+
<p style="margin:4px 0 0;color:#475569">Attn: Accounts Payable</p>
|
|
22
|
+
<p style="margin:0;color:#475569">88 Harbor Way · Boston, MA 02110</p>
|
|
23
|
+
</td>
|
|
24
|
+
<td style="width:25%;color:#64748b">Invoice date</td>
|
|
25
|
+
<td style="width:25%;text-align:right"><strong>March 15</strong></td>
|
|
26
|
+
</tr>
|
|
27
|
+
<tr>
|
|
28
|
+
<td style="color:#64748b">Due date</td>
|
|
29
|
+
<td style="text-align:right"><strong>April 14</strong></td>
|
|
30
|
+
</tr>
|
|
31
|
+
<tr>
|
|
32
|
+
<td style="color:#64748b">Terms</td>
|
|
33
|
+
<td style="text-align:right">Net 30</td>
|
|
34
|
+
</tr>
|
|
35
|
+
<tr>
|
|
36
|
+
<td style="color:#64748b">PO reference</td>
|
|
37
|
+
<td style="text-align:right">NW-118</td>
|
|
38
|
+
</tr>
|
|
39
|
+
</table>
|
|
40
|
+
<table border="1" cellpadding="10" style="border-collapse:collapse;width:100%;font-size:13px;border-color:#cbd5e1">
|
|
41
|
+
<tr style="background:#0f172a;color:#f8fafc">
|
|
42
|
+
<td style="width:58%"><strong>Description</strong></td>
|
|
43
|
+
<td style="text-align:center;width:10%"><strong>Qty</strong></td>
|
|
44
|
+
<td style="text-align:right;width:16%"><strong>Rate</strong></td>
|
|
45
|
+
<td style="text-align:right;width:16%"><strong>Amount</strong></td>
|
|
46
|
+
</tr>
|
|
47
|
+
<tr>
|
|
48
|
+
<td>Platform migration — Phase 2 (engineering days)</td>
|
|
49
|
+
<td style="text-align:center">12</td>
|
|
50
|
+
<td style="text-align:right;font-family:Consolas,monospace">$185.00</td>
|
|
51
|
+
<td style="text-align:right;font-family:Consolas,monospace">$2,220.00</td>
|
|
52
|
+
</tr>
|
|
53
|
+
<tr style="background:#f8fafc">
|
|
54
|
+
<td>API integration support (hourly)</td>
|
|
55
|
+
<td style="text-align:center">8</td>
|
|
56
|
+
<td style="text-align:right;font-family:Consolas,monospace">$165.00</td>
|
|
57
|
+
<td style="text-align:right;font-family:Consolas,monospace">$1,320.00</td>
|
|
58
|
+
</tr>
|
|
59
|
+
<tr>
|
|
60
|
+
<td>On-site training — Boston (1 day)</td>
|
|
61
|
+
<td style="text-align:center">1</td>
|
|
62
|
+
<td style="text-align:right;font-family:Consolas,monospace">$2,400.00</td>
|
|
63
|
+
<td style="text-align:right;font-family:Consolas,monospace">$2,400.00</td>
|
|
64
|
+
</tr>
|
|
65
|
+
</table>
|
|
66
|
+
<table border="0" cellpadding="6" style="width:100%;margin-top:12px;font-size:13px">
|
|
67
|
+
<tr>
|
|
68
|
+
<td style="width:55%"></td>
|
|
69
|
+
<td style="width:22%;color:#64748b">Subtotal</td>
|
|
70
|
+
<td style="width:23%;text-align:right;font-family:Consolas,monospace">$5,940.00</td>
|
|
71
|
+
</tr>
|
|
72
|
+
<tr>
|
|
73
|
+
<td></td>
|
|
74
|
+
<td style="color:#64748b">Sales tax (6.25%)</td>
|
|
75
|
+
<td style="text-align:right;font-family:Consolas,monospace">$371.25</td>
|
|
76
|
+
</tr>
|
|
77
|
+
<tr style="background:#0f172a;color:#fff">
|
|
78
|
+
<td></td>
|
|
79
|
+
<td style="padding:10px"><strong>Amount due</strong></td>
|
|
80
|
+
<td style="text-align:right;padding:10px;font-family:Consolas,monospace"><strong>$6,311.25</strong></td>
|
|
81
|
+
</tr>
|
|
82
|
+
</table>
|
|
83
|
+
<div style="margin-top:20px;padding:12px 14px;background:#eff6ff;border-left:4px solid #2563eb;font-size:12px;color:#1e40af">
|
|
84
|
+
<strong>Payment instructions:</strong> Wire to Meridian Analytics · Routing 021000021 · Account ending 8842.
|
|
85
|
+
Include invoice <strong>#INV-4821</strong> in the memo line.
|
|
86
|
+
</div>
|
|
87
|
+
<p style="font-size:11px;color:#94a3b8;margin-top:14px">Questions? <a href="mailto:ar@meridian.example" style="color:#2563eb">ar@meridian.example</a> · Thank you for your business.</p>
|
|
88
|
+
</div>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<div style="font-family:Georgia,'Times New Roman',serif;background:#fffbeb;padding:28px 32px;color:#292524">
|
|
2
|
+
<p style="margin:0 0 6px;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:#c2410c">Opinion · Technology</p>
|
|
3
|
+
<h1 style="font-size:30px;color:#1c1917;margin:0 0 8px;font-weight:normal;line-height:1.15">3 Reasons JavaScript Is Great</h1>
|
|
4
|
+
<p style="color:#78716c;margin:0 0 20px;font-size:14px;font-style:italic;border-bottom:1px solid #fcd34d;padding-bottom:14px">
|
|
5
|
+
A quick case for the language that runs half the web — and a lot beyond it.
|
|
6
|
+
</p>
|
|
7
|
+
<p style="font-size:15px;line-height:1.55">
|
|
8
|
+
JavaScript started as a way to add behavior to web pages. Today it powers browsers, servers,
|
|
9
|
+
mobile apps, and desktop tools. Here are three reasons it remains one of the most practical
|
|
10
|
+
languages to learn and ship with.
|
|
11
|
+
</p>
|
|
12
|
+
<h2 style="font-size:20px;color:#c2410c;margin-top:24px;font-weight:normal">1. It runs everywhere</h2>
|
|
13
|
+
<p style="font-size:15px;line-height:1.55">
|
|
14
|
+
The same language works in the browser, on the server with <code style="font-family:Consolas,monospace;background:#fef3c7;padding:1px 4px">Node.js</code>, at the edge,
|
|
15
|
+
and inside native shells like Electron. One team can share patterns, libraries,
|
|
16
|
+
and even code between a React dashboard and its API.
|
|
17
|
+
</p>
|
|
18
|
+
<blockquote style="border-left:4px solid #c2410c;padding:12px 16px;margin:20px 0;background:#fef3c7;color:#44403c;font-style:italic">
|
|
19
|
+
<p style="margin:0;font-size:15px">“Write once, run anywhere” is usually hype. For JavaScript, it is Tuesday.</p>
|
|
20
|
+
</blockquote>
|
|
21
|
+
<h2 style="font-size:20px;color:#c2410c;margin-top:24px;font-weight:normal">2. The ecosystem is enormous</h2>
|
|
22
|
+
<p style="font-size:15px;line-height:1.55">
|
|
23
|
+
<strong style="color:#9a3412">npm</strong> hosts millions of packages — charting libraries, test runners,
|
|
24
|
+
full frameworks. Need routing, dates, or PDF generation? There is almost certainly a
|
|
25
|
+
well-maintained module waiting for you.
|
|
26
|
+
</p>
|
|
27
|
+
<h2 style="font-size:20px;color:#c2410c;margin-top:24px;font-weight:normal">3. It meets you where you are</h2>
|
|
28
|
+
<p style="font-size:15px;line-height:1.55">
|
|
29
|
+
Start with a single script tag and DevTools. Later add types, bundlers, and frameworks — or stay
|
|
30
|
+
minimal. Functions are first-class values, and <em>async/await</em> makes asynchronous code readable.
|
|
31
|
+
</p>
|
|
32
|
+
<p style="margin-top:24px;font-size:15px;line-height:1.55">
|
|
33
|
+
<strong>Bottom line:</strong> ubiquity, tooling, and approachability make JavaScript equally at home
|
|
34
|
+
in a weekend prototype and a production SaaS dashboard.
|
|
35
|
+
</p>
|
|
36
|
+
<p style="color:#a8a29e;font-size:12px;margin-top:20px;border-top:1px solid #fde68a;padding-top:12px">
|
|
37
|
+
dom-docx essay showcase · July 2026
|
|
38
|
+
</p>
|
|
39
|
+
</div>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
<style>
|
|
2
|
+
.brief { font-family: "Trebuchet MS", Arial, sans-serif; }
|
|
3
|
+
.hero {
|
|
4
|
+
background: #1a1a2e;
|
|
5
|
+
color: #fff;
|
|
6
|
+
padding: 24px 28px;
|
|
7
|
+
margin-bottom: 18px;
|
|
8
|
+
}
|
|
9
|
+
.hero-kicker {
|
|
10
|
+
margin: 0;
|
|
11
|
+
font-size: 11px;
|
|
12
|
+
letter-spacing: 0.15em;
|
|
13
|
+
text-transform: uppercase;
|
|
14
|
+
color: #a8dadc;
|
|
15
|
+
}
|
|
16
|
+
.hero h1 {
|
|
17
|
+
margin: 10px 0 6px;
|
|
18
|
+
color: #fff;
|
|
19
|
+
font-size: 32px;
|
|
20
|
+
font-weight: bold;
|
|
21
|
+
}
|
|
22
|
+
.hero-date { margin: 0; color: #cbd5e1; font-size: 14px; }
|
|
23
|
+
.callout {
|
|
24
|
+
background: #f0f7ff;
|
|
25
|
+
padding: 14px 18px;
|
|
26
|
+
margin-bottom: 16px;
|
|
27
|
+
border-left: 5px solid #457b9d;
|
|
28
|
+
}
|
|
29
|
+
.callout strong { color: #1d3557; }
|
|
30
|
+
.callout span { color: #334155; }
|
|
31
|
+
.section-label {
|
|
32
|
+
font-size: 12px;
|
|
33
|
+
letter-spacing: 0.08em;
|
|
34
|
+
text-transform: uppercase;
|
|
35
|
+
color: #1d3557;
|
|
36
|
+
margin-bottom: 8px;
|
|
37
|
+
}
|
|
38
|
+
.section-label strong { color: #1d3557; }
|
|
39
|
+
table.kpi-table {
|
|
40
|
+
border-collapse: collapse;
|
|
41
|
+
width: 100%;
|
|
42
|
+
background: #f8fafc;
|
|
43
|
+
}
|
|
44
|
+
table.kpi-table tr.header td {
|
|
45
|
+
background: #1d3557;
|
|
46
|
+
color: #fff;
|
|
47
|
+
padding: 10px;
|
|
48
|
+
}
|
|
49
|
+
table.kpi-table td {
|
|
50
|
+
padding: 10px;
|
|
51
|
+
border-bottom: 1px solid #dbeafe;
|
|
52
|
+
}
|
|
53
|
+
table.kpi-table td.num { text-align: right; }
|
|
54
|
+
h2.section {
|
|
55
|
+
font-size: 14px;
|
|
56
|
+
color: #1d3557;
|
|
57
|
+
margin-top: 20px;
|
|
58
|
+
letter-spacing: 0.06em;
|
|
59
|
+
text-transform: uppercase;
|
|
60
|
+
}
|
|
61
|
+
table.funnel {
|
|
62
|
+
border-collapse: collapse;
|
|
63
|
+
width: 100%;
|
|
64
|
+
border-color: #cbd5e1;
|
|
65
|
+
}
|
|
66
|
+
table.funnel td { padding: 8px; border: 1px solid #cbd5e1; }
|
|
67
|
+
table.funnel tr.header td { background: #e8eef5; }
|
|
68
|
+
table.funnel td.num { text-align: right; }
|
|
69
|
+
table.funnel tr.highlight td { background: #f0f7ff; }
|
|
70
|
+
ul.roadmap { color: #44403c; }
|
|
71
|
+
.badge {
|
|
72
|
+
padding: 1px 6px;
|
|
73
|
+
font-size: 11px;
|
|
74
|
+
}
|
|
75
|
+
.badge-shipped { background: #bbf7d0; color: #14532d; }
|
|
76
|
+
.badge-building { background: #fde68a; color: #92400e; }
|
|
77
|
+
.badge-planned { background: #e7e5e4; color: #57534e; }
|
|
78
|
+
.footer { color: #1d3557; font-size: 13px; }
|
|
79
|
+
.footer a { color: #457b9d; }
|
|
80
|
+
</style>
|
|
81
|
+
<div class="brief">
|
|
82
|
+
<div class="hero">
|
|
83
|
+
<p class="hero-kicker">Product launch</p>
|
|
84
|
+
<h1>Atlas CRM 3.0</h1>
|
|
85
|
+
<p class="hero-date">General availability · April 14</p>
|
|
86
|
+
</div>
|
|
87
|
+
<div class="callout">
|
|
88
|
+
<strong>North star:</strong>
|
|
89
|
+
<span> Cut time-to-first-deal by 40% for mid-market sales teams.</span>
|
|
90
|
+
</div>
|
|
91
|
+
<p class="section-label"><strong>Launch KPIs</strong> · target 90 days</p>
|
|
92
|
+
<table class="kpi-table" border="0" cellpadding="10">
|
|
93
|
+
<tr class="header">
|
|
94
|
+
<td><strong>Metric</strong></td>
|
|
95
|
+
<td class="num"><strong>Target</strong></td>
|
|
96
|
+
</tr>
|
|
97
|
+
<tr><td>Activations</td><td class="num">12,000</td></tr>
|
|
98
|
+
<tr><td>Week-4 retention</td><td class="num">68%</td></tr>
|
|
99
|
+
<tr><td>NPS</td><td class="num">4.6</td></tr>
|
|
100
|
+
</table>
|
|
101
|
+
<h2 class="section">Activation funnel</h2>
|
|
102
|
+
<table class="funnel" border="1" cellpadding="8">
|
|
103
|
+
<tr class="header">
|
|
104
|
+
<td><strong>Stage</strong></td>
|
|
105
|
+
<td class="num"><strong>Count</strong></td>
|
|
106
|
+
<td class="num"><strong>Conversion</strong></td>
|
|
107
|
+
</tr>
|
|
108
|
+
<tr><td>Signup</td><td class="num">12,400</td><td class="num">100%</td></tr>
|
|
109
|
+
<tr><td>Trial</td><td class="num">9,800</td><td class="num">79%</td></tr>
|
|
110
|
+
<tr><td>Qualified</td><td class="num">6,200</td><td class="num">50%</td></tr>
|
|
111
|
+
<tr class="highlight"><td><strong>Closed</strong></td><td class="num"><strong>3,100</strong></td><td class="num"><strong>25%</strong></td></tr>
|
|
112
|
+
</table>
|
|
113
|
+
<h2 class="section">Roadmap</h2>
|
|
114
|
+
<ul class="roadmap">
|
|
115
|
+
<li><span class="badge badge-shipped">SHIPPED</span> Pipeline AI summaries</li>
|
|
116
|
+
<li><span class="badge badge-building">BUILDING</span> Mobile offline mode</li>
|
|
117
|
+
<li><span class="badge badge-planned">PLANNED</span> Enterprise SSO & audit log</li>
|
|
118
|
+
</ul>
|
|
119
|
+
<p class="footer">Owner: <strong>Jordan Lee</strong> · <a href="mailto:launch@example.com">launch@example.com</a></p>
|
|
120
|
+
</div>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|