From 7bacb83cc5ca631cf428423d8af507965e12b4b2 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Mon, 31 Aug 2026 17:20:27 +0100 Subject: [PATCH 01/11] chore(knowledge): generate the public API surface and gate it in CI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The allow-list agents author against was produced by a regex parser that emits one section per file, so every nested public type lost its receiver: `GraphCompose` listed 25 methods of which 7 are real, the other 18 belonging to the nested `DocumentBuilder`, which had no section at all. It also omitted the testing, render-docx and render-pptx modules entirely and published `internal` packages as callable. It lived outside version control, so nothing noticed while it drifted through a whole major version. Replace it with a generator that reads the compiled classes. `knowledge/tools/api-surface/extract-api.mjs` reads `*/target/classes` with `javap` (`--from-reactor`) or a published release resolved through Maven (`--from-release`), and writes one document per surface: authoring, templates, backends, testing, extension-spi. Classification runs in three stages, because admission and stability are different questions and `@Beta` answers only the second: a type enters `extension-spi` by an authored SPI list, never by being `@Beta`. `docs/api-stability.md` gives Extension SPI and Experimental the same annotation and puts the distinction in the docstring, so no classifier can route between those surfaces on its own. Annotations are read from the class file rather than the source. Both forms occur here — `svg/SvgIcon.java` writes `@Beta`, `layout/package-info.java` writes `@com.demcha.compose.document.api.Internal` — and a grep for either form finds the wrong set. Members are keyed by erased parameter types, not by arity: `ShapeContainerBuilder` declares two `path` overloads with three parameters each and only the `SvgPath` one is `@Beta`. A public type matching no rule fails the run. That is what surfaced `engine.components`, which despite its name holds `TextStyle`, `DocumentMetadata`, `ImageData`, `Padding` and `Anchor` — value types the public API makes you construct, and absent from the old hand-written package list. They are admitted because admitted signatures mention them; their engine-side twins, which nothing public mentions, are not. Every exclusion is written to `knowledge/api/excluded.json` with its reason. `knowledge/manifest.json` carries only stable facts. Commit, timestamp and artifact digests go to `target/knowledge/provenance.json` and are never committed: a tracked file cannot hold the SHA of the commit it belongs to, and class digests are not reproducible across machines, so a gate comparing them would be red on every run. CI runs `--check` inside `build-and-test` on JDK 17, where `target/classes` exists — a separate job gets a fresh runner and would have nothing to read. `knowledge/**` joins the `code` path filter so a PR touching only the pack still runs the gate that guards it. `classifier.test.mjs` compiles Java fixtures during the test and covers each rung of the ladder; all three mutations tried against it turn it red. Treat a failing gate as an unregenerated lockfile, not as a strict check: AGENTS.md documents the regenerate command. --- .github/workflows/ci.yml | 32 + AGENTS.md | 33 + knowledge/api/authoring.json | 33968 ++++++++++++++++ knowledge/api/authoring.md | 2596 ++ knowledge/api/backends.json | 6125 +++ knowledge/api/backends.md | 560 + knowledge/api/excluded.json | 1150 + knowledge/api/extension-spi.json | 549 + knowledge/api/extension-spi.md | 85 + knowledge/api/templates.json | 16464 ++++++++ knowledge/api/templates.md | 1380 + knowledge/api/testing.json | 677 + knowledge/api/testing.md | 79 + knowledge/manifest.json | 48 + knowledge/tools/README.md | 170 + knowledge/tools/api-query/api-query.mjs | 392 + knowledge/tools/api-surface/extract-api.mjs | 800 + .../tools/api-surface/lib/annotations.mjs | 311 + knowledge/tools/api-surface/lib/javap.mjs | 261 + .../tools/api-surface/lib/provenance.mjs | 103 + .../tools/api-surface/lib/render-markdown.mjs | 98 + .../tools/api-surface/lib/source-names.mjs | 142 + knowledge/tools/api-surface/lib/surfaces.mjs | 231 + knowledge/tools/api-surface/lib/tree.mjs | 85 + knowledge/tools/api-surface/lib/zip.mjs | 78 + .../api-surface/test/classifier.test.mjs | 330 + 26 files changed, 66747 insertions(+) create mode 100644 knowledge/api/authoring.json create mode 100644 knowledge/api/authoring.md create mode 100644 knowledge/api/backends.json create mode 100644 knowledge/api/backends.md create mode 100644 knowledge/api/excluded.json create mode 100644 knowledge/api/extension-spi.json create mode 100644 knowledge/api/extension-spi.md create mode 100644 knowledge/api/templates.json create mode 100644 knowledge/api/templates.md create mode 100644 knowledge/api/testing.json create mode 100644 knowledge/api/testing.md create mode 100644 knowledge/manifest.json create mode 100644 knowledge/tools/README.md create mode 100644 knowledge/tools/api-query/api-query.mjs create mode 100644 knowledge/tools/api-surface/extract-api.mjs create mode 100644 knowledge/tools/api-surface/lib/annotations.mjs create mode 100644 knowledge/tools/api-surface/lib/javap.mjs create mode 100644 knowledge/tools/api-surface/lib/provenance.mjs create mode 100644 knowledge/tools/api-surface/lib/render-markdown.mjs create mode 100644 knowledge/tools/api-surface/lib/source-names.mjs create mode 100644 knowledge/tools/api-surface/lib/surfaces.mjs create mode 100644 knowledge/tools/api-surface/lib/tree.mjs create mode 100644 knowledge/tools/api-surface/lib/zip.mjs create mode 100644 knowledge/tools/api-surface/test/classifier.test.mjs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a79df8a26..f6c250c4e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -111,6 +111,15 @@ jobs: - 'mvnw' - 'mvnw.cmd' - '.github/workflows/ci.yml' + # The knowledge pack is generated from the compiled classes and + # gated in build-and-test. Without this a PR touching only the + # extractor, the classification rules or a generated surface + # matches no filter, skips build-and-test, and skips the gate with + # it — the gate would be absent on exactly the PRs that change the + # gate. Deliberately NOT added to `jvm`: the check is + # JDK-independent, so a knowledge-only PR wants one JDK 17 job + # rather than the full matrix. + - 'knowledge/**' # Markdown is a build input even though it compiles nothing: # DocumentationSnippetCompileTest compiles the literal java fences in # docs/, and the guard suites read README / CONTRIBUTING / docs. Kept @@ -205,6 +214,29 @@ jobs: # only examples / benchmarks are excluded (their own CI jobs cover them). run: ./mvnw -B -ntp clean verify -pl :graph-compose-core,:graph-compose-render-pdf,:graph-compose-render-docx,:graph-compose-render-pptx,:graph-compose-templates,:graph-compose-testing,:graph-compose,:graph-compose-bundle,:graph-compose-qa,:graph-compose-coverage -am + # The knowledge pack describes the public API of the tree being built, so + # it is checked here rather than in a job of its own: every job gets a + # fresh runner, and a separate one would have no */target/classes to read. + # Guarded to the baseline JDK because the surface is JDK-independent — + # running it three times would only triple the chance of a flake. + - name: Set up Node for the knowledge pack + if: matrix.java == '17' + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Knowledge pack — classification fixtures + if: matrix.java == '17' + run: node knowledge/tools/api-surface/test/classifier.test.mjs + + # Blocking, and blocking from the first run. A warn-only gate is one + # nobody reads, which is the failure mode this pack exists to remove: the + # allow-list drifted through an entire major because nothing was watching. + # Treat a failure here as a lockfile that was not regenerated. + - name: Knowledge pack — API surface is current + if: matrix.java == '17' + run: node knowledge/tools/api-surface/extract-api.mjs --from-reactor --check + - name: Generate Javadoc # Run only on the baseline JDK — Javadoc output is identical # across JVMs and one pass is enough to catch broken @link diff --git a/AGENTS.md b/AGENTS.md index 7681d5d95..44d3d5310 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -22,6 +22,12 @@ documents do not say, and points at the rest. Read when the change reaches them: - [`docs/api-stability.md`](docs/api-stability.md) — before changing public API +- [`knowledge/api/`](knowledge/api/) — what the public API *is*, generated from + the compiled classes. Ask it rather than read it: + `node knowledge/tools/api-query/api-query.mjs --exists Type.method` + (exit 0 found, 3 absent). Split by surface — `authoring` is the one a + compose task wants; `backends`, `templates`, `testing` and `extension-spi` + are opt-in. - [`docs/architecture/backend-capability-matrix.md`](docs/architecture/backend-capability-matrix.md) — before changing what a PDF, PPTX or DOCX export can do, and to record it - [`docs/adr/`](docs/adr/) — before revisiting a decision already taken @@ -61,6 +67,33 @@ Read `git status --porcelain --untracked-files=all` before committing and remove such files by name. Do not run `git clean -f`: it deletes new source files that have not been staged yet along with the junk. +## Regenerate the knowledge pack with the API change + +`knowledge/api/*.json` and their Markdown views are generated from the compiled +classes and committed. Treat them exactly like a lockfile: **a PR that changes +public API regenerates the pack in the same commit.** + +```bash +./mvnw -q -DskipTests install -pl :graph-compose-core,:graph-compose-templates,:graph-compose-render-pdf,:graph-compose-render-docx,:graph-compose-render-pptx,:graph-compose-testing -am +node knowledge/tools/api-surface/extract-api.mjs --from-reactor +``` + +CI runs `--check` on the same input and fails the build when the committed pack +does not match the tree. That failure is not a flake and is not the gate being +strict: it means the surfaces on disk describe an API that no longer exists. + +Never hand-edit a generated file to make the check pass. The generator is the +thing to fix — a hand-edit survives until the next regeneration and, in the +meantime, makes the file look verified when it is not. That is not hypothetical: +this pack exists because a generated allow-list was wrong for an entire major +version while being quoted to agents as authoritative. + +If a public type is new and the run fails with *"matched no classification +rule"*, the classifier is telling you it does not know whether the type is API. +Add a rule in `knowledge/tools/api-surface/lib/surfaces.mjs` — the surface it +belongs to, or an exclusion with a written reason. Do not widen a package prefix +to make the message go away. + ## Verification Run the smallest relevant tests while working: diff --git a/knowledge/api/authoring.json b/knowledge/api/authoring.json new file mode 100644 index 000000000..3699bc55c --- /dev/null +++ b/knowledge/api/authoring.json @@ -0,0 +1,33968 @@ +{ + "schemaVersion": 2, + "targetLibrary": "GraphCompose", + "surface": "authoring", + "targetVersion": "2.2.x", + "verifiedAgainst": "2.2.3-SNAPSHOT", + "generator": "knowledge/tools/api-surface/extract-api.mjs", + "generatedFrom": [ + "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" + ], + "parameterNamesFrom": [ + "graph-compose-core:sources", + "graph-compose-templates:sources", + "graph-compose-render-pdf:sources", + "graph-compose-render-docx:sources", + "graph-compose-render-pptx:sources", + "graph-compose-testing:sources" + ], + "counts": { + "types": 227, + "methods": 2020, + "constants": 228, + "generated": 1077 + }, + "packages": [ + { + "name": "com.demcha.compose", + "types": [ + { + "name": "GraphCompose", + "binaryName": "com.demcha.compose.GraphCompose", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "document", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [] + }, + { + "kind": "method", + "name": "document", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "Path", + "name": "outputFile" + } + ] + }, + { + "kind": "method", + "name": "documents", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "MultiSectionDocumentBuilder", + "params": [] + }, + { + "kind": "method", + "name": "documents", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "MultiSectionDocumentBuilder", + "params": [ + { + "type": "Path", + "name": "outputFile" + } + ] + }, + { + "kind": "method", + "name": "availableFonts", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "renderAvailableFontsPreview", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "Path", + "name": "outputFile" + } + ] + }, + { + "kind": "method", + "name": "renderAvailableFontsPreview", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "byte[]", + "params": [] + } + ] + }, + { + "name": "GraphCompose.DocumentBuilder", + "binaryName": "com.demcha.compose.GraphCompose$DocumentBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "pageSize", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "DocumentPageSize", + "name": "pageSize" + } + ] + }, + { + "kind": "method", + "name": "pageSize", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "float", + "name": "top" + }, + { + "type": "float", + "name": "right" + }, + { + "type": "float", + "name": "bottom" + }, + { + "type": "float", + "name": "left" + } + ] + }, + { + "kind": "method", + "name": "markdown", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "boolean", + "name": "enabled" + } + ] + }, + { + "kind": "method", + "name": "guideLines", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "boolean", + "name": "enabled" + } + ] + }, + { + "kind": "method", + "name": "debug", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "DocumentDebugOptions", + "name": "options" + } + ] + }, + { + "kind": "method", + "name": "pageBackground", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "pageBackground", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "Color", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "pageBackgrounds", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "List", + "name": "fills" + } + ] + }, + { + "kind": "method", + "name": "registerFontFamily", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "FontFamilyDefinition", + "name": "definition" + } + ] + }, + { + "kind": "method", + "name": "registerFontFamily", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "FontName", + "name": "familyName" + }, + { + "type": "Path", + "name": "regular" + } + ] + }, + { + "kind": "method", + "name": "registerFontFamily", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "String", + "name": "familyName" + }, + { + "type": "Path", + "name": "regular" + } + ] + }, + { + "kind": "method", + "name": "registerFontFamily", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "FontName", + "name": "familyName" + }, + { + "type": "Path", + "name": "regular" + }, + { + "type": "Path", + "name": "bold" + }, + { + "type": "Path", + "name": "italic" + } + ] + }, + { + "kind": "method", + "name": "registerFontFamily", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "String", + "name": "familyName" + }, + { + "type": "Path", + "name": "regular" + }, + { + "type": "Path", + "name": "bold" + }, + { + "type": "Path", + "name": "italic" + } + ] + }, + { + "kind": "method", + "name": "registerFontFamily", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "FontName", + "name": "familyName" + }, + { + "type": "Path", + "name": "regular" + }, + { + "type": "Path", + "name": "bold" + }, + { + "type": "Path", + "name": "italic" + }, + { + "type": "Path", + "name": "boldItalic" + } + ] + }, + { + "kind": "method", + "name": "registerFontFamily", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "GraphCompose.DocumentBuilder", + "params": [ + { + "type": "String", + "name": "familyName" + }, + { + "type": "Path", + "name": "regular" + }, + { + "type": "Path", + "name": "bold" + }, + { + "type": "Path", + "name": "italic" + }, + { + "type": "Path", + "name": "boldItalic" + } + ] + }, + { + "kind": "method", + "name": "create", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.api", + "types": [ + { + "name": "DocumentPageSize", + "binaryName": "com.demcha.compose.document.api.DocumentPageSize", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "A4", + "static": true, + "origin": "generated", + "type": "DocumentPageSize" + }, + { + "kind": "constant", + "name": "LETTER", + "static": true, + "origin": "generated", + "type": "DocumentPageSize" + }, + { + "kind": "constant", + "name": "LEGAL", + "static": true, + "origin": "generated", + "type": "DocumentPageSize" + }, + { + "kind": "constant", + "name": "SLIDE_16_9", + "static": true, + "origin": "generated", + "type": "DocumentPageSize" + }, + { + "kind": "constant", + "name": "SLIDE_4_3", + "static": true, + "origin": "generated", + "type": "DocumentPageSize" + }, + { + "kind": "constructor", + "name": "DocumentPageSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentPageSize", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "landscape", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentPageSize", + "params": [] + }, + { + "kind": "method", + "name": "portrait", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentPageSize", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "DocumentSession", + "binaryName": "com.demcha.compose.document.api.DocumentSession", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "DocumentSession", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "Path", + "name": "defaultOutputFile" + }, + { + "type": "DocumentPageSize", + "name": "pageSize" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "Collection", + "name": "customFontFamilies" + }, + { + "type": "boolean", + "name": "markdown" + }, + { + "type": "boolean", + "name": "guideLines" + } + ] + }, + { + "kind": "method", + "name": "dsl", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentDsl", + "params": [] + }, + { + "kind": "method", + "name": "compose", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "pageFlow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PageFlowBuilder", + "params": [] + }, + { + "kind": "method", + "name": "pageFlow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ContainerNode", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "add", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "addAll", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "Collection", + "name": "nodes" + } + ] + }, + { + "kind": "method", + "name": "clear", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [] + }, + { + "kind": "method", + "name": "pageSize", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "DocumentPageSize", + "name": "pageSize" + } + ] + }, + { + "kind": "method", + "name": "pageSize", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "markdown", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "boolean", + "name": "enabled" + } + ] + }, + { + "kind": "method", + "name": "guideLines", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "boolean", + "name": "enabled" + } + ] + }, + { + "kind": "method", + "name": "debug", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "DocumentDebugOptions", + "name": "options" + } + ] + }, + { + "kind": "method", + "name": "pageBackground", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "pageBackground", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "Color", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "pageBackgrounds", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "List", + "name": "fills" + } + ] + }, + { + "kind": "method", + "name": "pageMargins", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "List", + "name": "rules" + } + ] + }, + { + "kind": "method", + "name": "chrome", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SessionChromeApi", + "params": [] + }, + { + "kind": "method", + "name": "metadata", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "DocumentMetadata", + "name": "metadata" + } + ] + }, + { + "kind": "method", + "name": "viewerPreferences", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "DocumentViewerPreferences", + "name": "viewerPreferences" + } + ] + }, + { + "kind": "method", + "name": "watermark", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "DocumentWatermark", + "name": "watermark" + } + ] + }, + { + "kind": "method", + "name": "protect", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "DocumentProtection", + "name": "protection" + } + ] + }, + { + "kind": "method", + "name": "header", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "DocumentHeaderFooter", + "name": "header" + } + ] + }, + { + "kind": "method", + "name": "footer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "DocumentHeaderFooter", + "name": "footer" + } + ] + }, + { + "kind": "method", + "name": "clearHeadersAndFooters", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [] + }, + { + "kind": "method", + "name": "registerFontFamily", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [ + { + "type": "FontFamilyDefinition", + "name": "definition" + } + ] + }, + { + "kind": "method", + "name": "registerNodeDefinition", + "static": false, + "origin": "source", + "typeParameters": "", + "returns": "DocumentSession", + "params": [ + { + "type": "NodeDefinition", + "name": "definition" + } + ] + }, + { + "kind": "method", + "name": "fonts", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SessionFontApi", + "params": [] + }, + { + "kind": "method", + "name": "layout", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SessionLayoutApi", + "params": [] + }, + { + "kind": "method", + "name": "registry", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "NodeRegistry", + "params": [] + }, + { + "kind": "method", + "name": "documentGraph", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentGraph", + "params": [] + }, + { + "kind": "method", + "name": "canvas", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayoutCanvas", + "params": [] + }, + { + "kind": "method", + "name": "availableHeight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "roots", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "layoutGraph", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayoutGraph", + "params": [] + }, + { + "kind": "method", + "name": "layoutSnapshot", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayoutDiagnosticSnapshot", + "params": [ + { + "type": "LayoutSnapshotOptions", + "name": "options" + } + ] + }, + { + "kind": "method", + "name": "layoutSnapshot", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayoutSnapshot", + "params": [] + }, + { + "kind": "method", + "name": "pageIndex", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PageIndex", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": "", + "returns": "R", + "params": [ + { + "type": "FixedLayoutBackend", + "name": "backend" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": "", + "returns": "R", + "params": [ + { + "type": "FixedLayoutBackend", + "name": "backend" + }, + { + "type": "Path", + "name": "outputFile" + } + ] + }, + { + "kind": "method", + "name": "export", + "static": false, + "origin": "source", + "typeParameters": "", + "returns": "R", + "params": [ + { + "type": "SemanticBackend", + "name": "backend" + } + ] + }, + { + "kind": "method", + "name": "export", + "static": false, + "origin": "source", + "typeParameters": "", + "returns": "R", + "params": [ + { + "type": "SemanticBackend", + "name": "backend" + }, + { + "type": "Path", + "name": "outputFile" + } + ] + }, + { + "kind": "method", + "name": "toPdfBytes", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "byte[]", + "params": [] + }, + { + "kind": "method", + "name": "writePdf", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "OutputStream", + "name": "output" + } + ] + }, + { + "kind": "method", + "name": "buildPdf", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [] + }, + { + "kind": "method", + "name": "buildPdf", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "Path", + "name": "outputFile" + } + ] + }, + { + "kind": "method", + "name": "toPptxBytes", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "byte[]", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "writePptx", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "OutputStream", + "name": "output" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "buildPptx", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "Path", + "name": "outputFile" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "toImages", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [ + { + "type": "int", + "name": "dpi" + } + ] + }, + { + "kind": "method", + "name": "toImages", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [ + { + "type": "int", + "name": "dpi" + }, + { + "type": "boolean", + "name": "transparent" + } + ] + }, + { + "kind": "method", + "name": "toImage", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BufferedImage", + "params": [ + { + "type": "int", + "name": "pageIndex" + }, + { + "type": "int", + "name": "dpi" + } + ] + }, + { + "kind": "method", + "name": "toImage", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BufferedImage", + "params": [ + { + "type": "int", + "name": "pageIndex" + }, + { + "type": "int", + "name": "dpi" + }, + { + "type": "boolean", + "name": "transparent" + } + ] + }, + { + "kind": "method", + "name": "close", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [] + }, + { + "kind": "method", + "name": "isClosed", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + } + ] + }, + { + "name": "MultiSectionDocument", + "binaryName": "com.demcha.compose.document.api.MultiSectionDocument", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "toPdfBytes", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "byte[]", + "params": [] + }, + { + "kind": "method", + "name": "toPdfBytes", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "byte[]", + "params": [ + { + "type": "FixedLayoutRenderer", + "name": "backend" + } + ] + }, + { + "kind": "method", + "name": "writePdf", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "OutputStream", + "name": "output" + } + ] + }, + { + "kind": "method", + "name": "writePdf", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "FixedLayoutRenderer", + "name": "backend" + }, + { + "type": "OutputStream", + "name": "output" + } + ] + }, + { + "kind": "method", + "name": "buildPdf", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [] + }, + { + "kind": "method", + "name": "buildPdf", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "Path", + "name": "outputFile" + } + ] + }, + { + "kind": "method", + "name": "sectionSnapshots", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "close", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [] + } + ] + }, + { + "name": "MultiSectionDocumentBuilder", + "binaryName": "com.demcha.compose.document.api.MultiSectionDocumentBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "MultiSectionDocumentBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "constructor", + "name": "MultiSectionDocumentBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "Path", + "name": "outputFile" + } + ] + }, + { + "kind": "method", + "name": "section", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MultiSectionDocumentBuilder", + "params": [ + { + "type": "DocumentSession", + "name": "section" + } + ] + }, + { + "kind": "method", + "name": "create", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MultiSectionDocument", + "params": [] + } + ] + }, + { + "name": "PageBackgroundFill", + "binaryName": "com.demcha.compose.document.api.PageBackgroundFill", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "PageBackgroundFill", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentColor", + "name": null + } + ] + }, + { + "kind": "method", + "name": "fullPage", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PageBackgroundFill", + "params": [ + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "leftColumn", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PageBackgroundFill", + "params": [ + { + "type": "double", + "name": "widthRatio" + }, + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "rightColumn", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PageBackgroundFill", + "params": [ + { + "type": "double", + "name": "widthRatio" + }, + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "column", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PageBackgroundFill", + "params": [ + { + "type": "double", + "name": "xRatio" + }, + { + "type": "double", + "name": "widthRatio" + }, + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "topBand", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PageBackgroundFill", + "params": [ + { + "type": "double", + "name": "heightRatio" + }, + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "bottomBand", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PageBackgroundFill", + "params": [ + { + "type": "double", + "name": "heightRatio" + }, + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "band", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PageBackgroundFill", + "params": [ + { + "type": "double", + "name": "yRatioFromTop" + }, + { + "type": "double", + "name": "heightRatio" + }, + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "topBandPoints", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PageBackgroundFill", + "params": [ + { + "type": "double", + "name": "heightPoints" + }, + { + "type": "double", + "name": "pageHeight" + }, + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "bandPoints", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PageBackgroundFill", + "params": [ + { + "type": "double", + "name": "yFromTopPoints" + }, + { + "type": "double", + "name": "heightPoints" + }, + { + "type": "double", + "name": "pageHeight" + }, + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "xRatio", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "yRatio", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "widthRatio", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "heightRatio", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "color", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + } + ] + }, + { + "name": "PageMarginRule", + "binaryName": "com.demcha.compose.document.api.PageMarginRule", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "PageMarginRule", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "int", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + } + ] + }, + { + "kind": "method", + "name": "page", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PageMarginRule", + "params": [ + { + "type": "int", + "name": "page" + }, + { + "type": "DocumentInsets", + "name": "insets" + } + ] + }, + { + "kind": "method", + "name": "range", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PageMarginRule", + "params": [ + { + "type": "int", + "name": "fromPage" + }, + { + "type": "int", + "name": "toPage" + }, + { + "type": "DocumentInsets", + "name": "insets" + } + ] + }, + { + "kind": "method", + "name": "from", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PageMarginRule", + "params": [ + { + "type": "int", + "name": "fromPage" + }, + { + "type": "DocumentInsets", + "name": "insets" + } + ] + }, + { + "kind": "method", + "name": "coversPage", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [ + { + "type": "int", + "name": "pageNumber" + } + ] + }, + { + "kind": "method", + "name": "fromPage", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "toPageExclusive", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "insets", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + } + ] + }, + { + "name": "SessionChromeApi", + "binaryName": "com.demcha.compose.document.api.SessionChromeApi", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "metadata", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SessionChromeApi", + "params": [ + { + "type": "DocumentMetadata", + "name": "metadata" + } + ] + }, + { + "kind": "method", + "name": "viewerPreferences", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SessionChromeApi", + "params": [ + { + "type": "DocumentViewerPreferences", + "name": "viewerPreferences" + } + ] + }, + { + "kind": "method", + "name": "watermark", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SessionChromeApi", + "params": [ + { + "type": "DocumentWatermark", + "name": "watermark" + } + ] + }, + { + "kind": "method", + "name": "protect", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SessionChromeApi", + "params": [ + { + "type": "DocumentProtection", + "name": "protection" + } + ] + }, + { + "kind": "method", + "name": "header", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SessionChromeApi", + "params": [ + { + "type": "DocumentHeaderFooter", + "name": "header" + } + ] + }, + { + "kind": "method", + "name": "footer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SessionChromeApi", + "params": [ + { + "type": "DocumentHeaderFooter", + "name": "footer" + } + ] + }, + { + "kind": "method", + "name": "clearHeadersAndFooters", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SessionChromeApi", + "params": [] + }, + { + "kind": "method", + "name": "session", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [] + } + ] + }, + { + "name": "SessionFontApi", + "binaryName": "com.demcha.compose.document.api.SessionFontApi", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "registerFamily", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SessionFontApi", + "params": [ + { + "type": "FontFamilyDefinition", + "name": "definition" + } + ] + }, + { + "kind": "method", + "name": "registerNodeDefinition", + "static": false, + "origin": "source", + "typeParameters": "", + "returns": "SessionFontApi", + "params": [ + { + "type": "NodeDefinition", + "name": "definition" + } + ] + }, + { + "kind": "method", + "name": "session", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [] + } + ] + }, + { + "name": "SessionLayoutApi", + "binaryName": "com.demcha.compose.document.api.SessionLayoutApi", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "graph", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayoutGraph", + "params": [] + }, + { + "kind": "method", + "name": "documentGraph", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentGraph", + "params": [] + }, + { + "kind": "method", + "name": "roots", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "canvas", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayoutCanvas", + "params": [] + }, + { + "kind": "method", + "name": "registry", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "NodeRegistry", + "params": [] + }, + { + "kind": "method", + "name": "snapshot", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayoutSnapshot", + "params": [] + }, + { + "kind": "method", + "name": "session", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSession", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.chart", + "types": [ + { + "name": "AxisSpec", + "binaryName": "com.demcha.compose.document.chart.AxisSpec", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "AxisSpec", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "boolean", + "name": null + }, + { + "type": "Double", + "name": null + }, + { + "type": "Double", + "name": null + }, + { + "type": "NumberFormatSpec", + "name": null + }, + { + "type": "boolean", + "name": null + }, + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "AxisSpec", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "boolean", + "name": "baselineAtZero" + }, + { + "type": "Double", + "name": "min" + }, + { + "type": "Double", + "name": "max" + }, + { + "type": "NumberFormatSpec", + "name": "format" + }, + { + "type": "boolean", + "name": "showGridLines" + } + ] + }, + { + "kind": "method", + "name": "defaults", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "AxisSpec", + "params": [] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "AxisSpec.Builder", + "params": [] + }, + { + "kind": "method", + "name": "baselineAtZero", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "min", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Double", + "params": [] + }, + { + "kind": "method", + "name": "max", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Double", + "params": [] + }, + { + "kind": "method", + "name": "format", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "NumberFormatSpec", + "params": [] + }, + { + "kind": "method", + "name": "showGridLines", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "showTickLabels", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + } + ] + }, + { + "name": "AxisSpec.Builder", + "binaryName": "com.demcha.compose.document.chart.AxisSpec$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Builder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "baselineAtZero", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "AxisSpec.Builder", + "params": [ + { + "type": "boolean", + "name": "v" + } + ] + }, + { + "kind": "method", + "name": "min", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "AxisSpec.Builder", + "params": [ + { + "type": "double", + "name": "v" + } + ] + }, + { + "kind": "method", + "name": "max", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "AxisSpec.Builder", + "params": [ + { + "type": "double", + "name": "v" + } + ] + }, + { + "kind": "method", + "name": "format", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "AxisSpec.Builder", + "params": [ + { + "type": "NumberFormatSpec", + "name": "f" + } + ] + }, + { + "kind": "method", + "name": "showGridLines", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "AxisSpec.Builder", + "params": [ + { + "type": "boolean", + "name": "v" + } + ] + }, + { + "kind": "method", + "name": "showTickLabels", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "AxisSpec.Builder", + "params": [ + { + "type": "boolean", + "name": "v" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "AxisSpec", + "params": [] + } + ] + }, + { + "name": "BarGrouping", + "binaryName": "com.demcha.compose.document.chart.BarGrouping", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "GROUPED", + "static": true, + "origin": "generated", + "type": "BarGrouping" + }, + { + "kind": "constant", + "name": "STACKED", + "static": true, + "origin": "generated", + "type": "BarGrouping" + } + ] + }, + { + "name": "ChartData", + "binaryName": "com.demcha.compose.document.chart.ChartData", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ChartData", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ChartData.Builder", + "params": [] + }, + { + "kind": "method", + "name": "seriesCount", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "categoryCount", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "categories", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "series", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "ChartData.Builder", + "binaryName": "com.demcha.compose.document.chart.ChartData$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Builder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "categories", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartData.Builder", + "params": [ + { + "type": "String...", + "name": "labels" + } + ] + }, + { + "kind": "method", + "name": "category", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartData.Builder", + "params": [ + { + "type": "String", + "name": "label" + } + ] + }, + { + "kind": "method", + "name": "series", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartData.Builder", + "params": [ + { + "type": "ChartData.Series", + "name": "s" + } + ] + }, + { + "kind": "method", + "name": "series", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartData.Builder", + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double...", + "name": "values" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartData", + "params": [] + } + ] + }, + { + "name": "ChartData.Series", + "binaryName": "com.demcha.compose.document.chart.ChartData$Series", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Series", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ChartData.Series", + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double...", + "name": "values" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "values", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "ChartDefaults", + "binaryName": "com.demcha.compose.document.chart.ChartDefaults", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "BAR_WIDTH_RATIO", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "constant", + "name": "TARGET_TICKS", + "static": true, + "origin": "generated", + "type": "int" + }, + { + "kind": "constant", + "name": "DEFAULT_PALETTE", + "static": true, + "origin": "generated", + "type": "List" + }, + { + "kind": "constant", + "name": "DEFAULT_GRID_STROKE", + "static": true, + "origin": "generated", + "type": "DocumentStroke" + }, + { + "kind": "constant", + "name": "AXIS_TEXT_STYLE", + "static": true, + "origin": "generated", + "type": "DocumentTextStyle" + }, + { + "kind": "constant", + "name": "LEGEND_TEXT_STYLE", + "static": true, + "origin": "generated", + "type": "DocumentTextStyle" + }, + { + "kind": "constant", + "name": "VALUE_LABEL_TEXT_STYLE", + "static": true, + "origin": "generated", + "type": "DocumentTextStyle" + }, + { + "kind": "constant", + "name": "VALUE_LABEL_HALO", + "static": true, + "origin": "generated", + "type": "DocumentPaint" + }, + { + "kind": "constant", + "name": "SLICE_STROKE", + "static": true, + "origin": "generated", + "type": "DocumentStroke" + }, + { + "kind": "constant", + "name": "DONUT_CENTER_TEXT_STYLE", + "static": true, + "origin": "generated", + "type": "DocumentTextStyle" + }, + { + "kind": "constant", + "name": "SECTOR_TESSELLATION_STEP_DEGREES", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "constant", + "name": "DEFAULT_THEME", + "static": true, + "origin": "generated", + "type": "ChartTheme" + } + ] + }, + { + "name": "ChartLayoutResolver", + "binaryName": "com.demcha.compose.document.chart.ChartLayoutResolver", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "resolve", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [ + { + "type": "ChartSpec", + "name": "spec" + }, + { + "type": "ChartStyle", + "name": "style" + }, + { + "type": "ChartTheme", + "name": "theme" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "ChartTextMetrics", + "name": "metrics" + } + ] + } + ] + }, + { + "name": "ChartPrimitive", + "binaryName": "com.demcha.compose.document.chart.ChartPrimitive", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ChartPrimitive", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentNode", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "node", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentNode", + "params": [] + }, + { + "kind": "method", + "name": "x", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "y", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "ChartSize", + "binaryName": "com.demcha.compose.document.chart.ChartSize", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "fixedHeight", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ChartSize", + "params": [ + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "aspectRatio", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ChartSize", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "resolveHeight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [ + { + "type": "double", + "name": "availableWidth" + } + ] + } + ] + }, + { + "name": "ChartSpec", + "binaryName": "com.demcha.compose.document.chart.ChartSpec", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "bar", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ChartSpec.Bar.Builder", + "params": [] + }, + { + "kind": "method", + "name": "line", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ChartSpec.Line.Builder", + "params": [] + }, + { + "kind": "method", + "name": "pie", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ChartSpec.Pie.Builder", + "params": [] + }, + { + "kind": "method", + "name": "data", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ChartData", + "params": [] + }, + { + "kind": "method", + "name": "valueFormat", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "NumberFormatSpec", + "params": [] + }, + { + "kind": "method", + "name": "legend", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LegendPosition", + "params": [] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ChartSize", + "params": [] + } + ] + }, + { + "name": "ChartSpec.Bar", + "binaryName": "com.demcha.compose.document.chart.ChartSpec$Bar", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Bar", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "ChartData", + "name": null + }, + { + "type": "boolean", + "name": null + }, + { + "type": "BarGrouping", + "name": null + }, + { + "type": "AxisSpec", + "name": null + }, + { + "type": "LegendPosition", + "name": null + }, + { + "type": "ValueLabelMode", + "name": null + }, + { + "type": "ChartSize", + "name": null + }, + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "Bar", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "ChartData", + "name": "data" + }, + { + "type": "boolean", + "name": "horizontal" + }, + { + "type": "BarGrouping", + "name": "grouping" + }, + { + "type": "AxisSpec", + "name": "valueAxis" + }, + { + "type": "LegendPosition", + "name": "legend" + }, + { + "type": "ValueLabelMode", + "name": "valueLabels" + }, + { + "type": "ChartSize", + "name": "size" + } + ] + }, + { + "kind": "method", + "name": "valueFormat", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "NumberFormatSpec", + "params": [] + }, + { + "kind": "method", + "name": "data", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ChartData", + "params": [] + }, + { + "kind": "method", + "name": "horizontal", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "grouping", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "BarGrouping", + "params": [] + }, + { + "kind": "method", + "name": "valueAxis", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "AxisSpec", + "params": [] + }, + { + "kind": "method", + "name": "legend", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LegendPosition", + "params": [] + }, + { + "kind": "method", + "name": "valueLabels", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ValueLabelMode", + "params": [] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ChartSize", + "params": [] + }, + { + "kind": "method", + "name": "showCategoryLabels", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + } + ] + }, + { + "name": "ChartSpec.Bar.Builder", + "binaryName": "com.demcha.compose.document.chart.ChartSpec$Bar$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Builder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "data", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Bar.Builder", + "params": [ + { + "type": "ChartData", + "name": "d" + } + ] + }, + { + "kind": "method", + "name": "horizontal", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Bar.Builder", + "params": [ + { + "type": "boolean", + "name": "v" + } + ] + }, + { + "kind": "method", + "name": "showCategoryLabels", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Bar.Builder", + "params": [ + { + "type": "boolean", + "name": "v" + } + ] + }, + { + "kind": "method", + "name": "grouping", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Bar.Builder", + "params": [ + { + "type": "BarGrouping", + "name": "g" + } + ] + }, + { + "kind": "method", + "name": "valueAxis", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Bar.Builder", + "params": [ + { + "type": "AxisSpec", + "name": "a" + } + ] + }, + { + "kind": "method", + "name": "legend", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Bar.Builder", + "params": [ + { + "type": "LegendPosition", + "name": "l" + } + ] + }, + { + "kind": "method", + "name": "valueLabels", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Bar.Builder", + "params": [ + { + "type": "ValueLabelMode", + "name": "m" + } + ] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Bar.Builder", + "params": [ + { + "type": "ChartSize", + "name": "s" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Bar", + "params": [] + } + ] + }, + { + "name": "ChartSpec.Line", + "binaryName": "com.demcha.compose.document.chart.ChartSpec$Line", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Line", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "ChartData", + "name": null + }, + { + "type": "LineInterpolation", + "name": null + }, + { + "type": "boolean", + "name": null + }, + { + "type": "AxisSpec", + "name": null + }, + { + "type": "LegendPosition", + "name": null + }, + { + "type": "ValueLabelMode", + "name": null + }, + { + "type": "ChartSize", + "name": null + }, + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "Line", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "ChartData", + "name": "data" + }, + { + "type": "LineInterpolation", + "name": "interpolation" + }, + { + "type": "AxisSpec", + "name": "valueAxis" + }, + { + "type": "LegendPosition", + "name": "legend" + }, + { + "type": "ValueLabelMode", + "name": "valueLabels" + }, + { + "type": "ChartSize", + "name": "size" + } + ] + }, + { + "kind": "method", + "name": "valueFormat", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "NumberFormatSpec", + "params": [] + }, + { + "kind": "method", + "name": "data", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ChartData", + "params": [] + }, + { + "kind": "method", + "name": "interpolation", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LineInterpolation", + "params": [] + }, + { + "kind": "method", + "name": "area", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "valueAxis", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "AxisSpec", + "params": [] + }, + { + "kind": "method", + "name": "legend", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LegendPosition", + "params": [] + }, + { + "kind": "method", + "name": "valueLabels", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ValueLabelMode", + "params": [] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ChartSize", + "params": [] + }, + { + "kind": "method", + "name": "showCategoryLabels", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + } + ] + }, + { + "name": "ChartSpec.Line.Builder", + "binaryName": "com.demcha.compose.document.chart.ChartSpec$Line$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Builder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "data", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Line.Builder", + "params": [ + { + "type": "ChartData", + "name": "d" + } + ] + }, + { + "kind": "method", + "name": "interpolation", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Line.Builder", + "params": [ + { + "type": "LineInterpolation", + "name": "mode" + } + ] + }, + { + "kind": "method", + "name": "area", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Line.Builder", + "params": [ + { + "type": "boolean", + "name": "v" + } + ] + }, + { + "kind": "method", + "name": "showCategoryLabels", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Line.Builder", + "params": [ + { + "type": "boolean", + "name": "v" + } + ] + }, + { + "kind": "method", + "name": "valueAxis", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Line.Builder", + "params": [ + { + "type": "AxisSpec", + "name": "a" + } + ] + }, + { + "kind": "method", + "name": "legend", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Line.Builder", + "params": [ + { + "type": "LegendPosition", + "name": "l" + } + ] + }, + { + "kind": "method", + "name": "valueLabels", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Line.Builder", + "params": [ + { + "type": "ValueLabelMode", + "name": "m" + } + ] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Line.Builder", + "params": [ + { + "type": "ChartSize", + "name": "s" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Line", + "params": [] + } + ] + }, + { + "name": "ChartSpec.Pie", + "binaryName": "com.demcha.compose.document.chart.ChartSpec$Pie", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Pie", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "ChartData", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "boolean", + "name": null + }, + { + "type": "SliceLabelMode", + "name": null + }, + { + "type": "NumberFormatSpec", + "name": null + }, + { + "type": "NumberFormatSpec", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "LegendPosition", + "name": null + }, + { + "type": "ChartSize", + "name": null + } + ] + }, + { + "kind": "method", + "name": "data", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ChartData", + "params": [] + }, + { + "kind": "method", + "name": "donutRatio", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "startAngleDegrees", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "clockwise", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "sliceLabels", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "SliceLabelMode", + "params": [] + }, + { + "kind": "method", + "name": "valueFormat", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "NumberFormatSpec", + "params": [] + }, + { + "kind": "method", + "name": "percentFormat", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "NumberFormatSpec", + "params": [] + }, + { + "kind": "method", + "name": "centerText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "legend", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LegendPosition", + "params": [] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ChartSize", + "params": [] + } + ] + }, + { + "name": "ChartSpec.Pie.Builder", + "binaryName": "com.demcha.compose.document.chart.ChartSpec$Pie$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Builder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "data", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Pie.Builder", + "params": [ + { + "type": "ChartData", + "name": "d" + } + ] + }, + { + "kind": "method", + "name": "donutRatio", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Pie.Builder", + "params": [ + { + "type": "double", + "name": "ratio" + } + ] + }, + { + "kind": "method", + "name": "startAngleDegrees", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Pie.Builder", + "params": [ + { + "type": "double", + "name": "degrees" + } + ] + }, + { + "kind": "method", + "name": "clockwise", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Pie.Builder", + "params": [ + { + "type": "boolean", + "name": "v" + } + ] + }, + { + "kind": "method", + "name": "sliceLabels", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Pie.Builder", + "params": [ + { + "type": "SliceLabelMode", + "name": "mode" + } + ] + }, + { + "kind": "method", + "name": "valueFormat", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Pie.Builder", + "params": [ + { + "type": "NumberFormatSpec", + "name": "f" + } + ] + }, + { + "kind": "method", + "name": "percentFormat", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Pie.Builder", + "params": [ + { + "type": "NumberFormatSpec", + "name": "f" + } + ] + }, + { + "kind": "method", + "name": "centerText", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Pie.Builder", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "legend", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Pie.Builder", + "params": [ + { + "type": "LegendPosition", + "name": "l" + } + ] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Pie.Builder", + "params": [ + { + "type": "ChartSize", + "name": "s" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartSpec.Pie", + "params": [] + } + ] + }, + { + "name": "ChartStyle", + "binaryName": "com.demcha.compose.document.chart.ChartStyle", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ChartStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "List", + "name": null + }, + { + "type": "Map", + "name": null + }, + { + "type": "Double", + "name": null + }, + { + "type": "DocumentCornerRadius", + "name": null + }, + { + "type": "Double", + "name": null + }, + { + "type": "ChartStyle.GridStyle", + "name": null + }, + { + "type": "PointMarker", + "name": null + }, + { + "type": "Double", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "DocumentPaint", + "name": null + }, + { + "type": "Double", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "Double", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + } + ] + }, + { + "kind": "method", + "name": "inherit", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle", + "params": [] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [] + }, + { + "kind": "method", + "name": "mergedUnder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle", + "params": [ + { + "type": "ChartStyle", + "name": "top" + } + ] + }, + { + "kind": "method", + "name": "paintForSeries", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentPaint", + "params": [ + { + "type": "int", + "name": "index" + }, + { + "type": "List", + "name": "fallbackPalette" + } + ] + }, + { + "kind": "method", + "name": "palette", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "seriesPaintOverrides", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Map", + "params": [] + }, + { + "kind": "method", + "name": "lineWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Double", + "params": [] + }, + { + "kind": "method", + "name": "barCornerRadius", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentCornerRadius", + "params": [] + }, + { + "kind": "method", + "name": "barWidthRatio", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Double", + "params": [] + }, + { + "kind": "method", + "name": "grid", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ChartStyle.GridStyle", + "params": [] + }, + { + "kind": "method", + "name": "pointMarker", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PointMarker", + "params": [] + }, + { + "kind": "method", + "name": "valueLabelOffset", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Double", + "params": [] + }, + { + "kind": "method", + "name": "axisTextStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "legendTextStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "valueLabelTextStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "valueLabelHalo", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPaint", + "params": [] + }, + { + "kind": "method", + "name": "areaOpacity", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Double", + "params": [] + }, + { + "kind": "method", + "name": "sliceStroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "sliceGapDegrees", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Double", + "params": [] + }, + { + "kind": "method", + "name": "donutCenterTextStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + } + ] + }, + { + "name": "ChartStyle.Builder", + "binaryName": "com.demcha.compose.document.chart.ChartStyle$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Builder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "palette", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [ + { + "type": "DocumentPaint...", + "name": "paints" + } + ] + }, + { + "kind": "method", + "name": "seriesPaint", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [ + { + "type": "int", + "name": "index" + }, + { + "type": "DocumentPaint", + "name": "paint" + } + ] + }, + { + "kind": "method", + "name": "lineWidth", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [ + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "barCornerRadius", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [ + { + "type": "DocumentCornerRadius", + "name": "r" + } + ] + }, + { + "kind": "method", + "name": "barWidthRatio", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [ + { + "type": "double", + "name": "ratio" + } + ] + }, + { + "kind": "method", + "name": "grid", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [ + { + "type": "ChartStyle.GridStyle", + "name": "grid" + } + ] + }, + { + "kind": "method", + "name": "pointMarker", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [ + { + "type": "PointMarker", + "name": "marker" + } + ] + }, + { + "kind": "method", + "name": "valueLabelOffset", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [ + { + "type": "double", + "name": "offset" + } + ] + }, + { + "kind": "method", + "name": "axisTextStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "s" + } + ] + }, + { + "kind": "method", + "name": "legendTextStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "s" + } + ] + }, + { + "kind": "method", + "name": "valueLabelTextStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "s" + } + ] + }, + { + "kind": "method", + "name": "valueLabelHalo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [ + { + "type": "DocumentPaint", + "name": "halo" + } + ] + }, + { + "kind": "method", + "name": "areaOpacity", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [ + { + "type": "double", + "name": "opacity" + } + ] + }, + { + "kind": "method", + "name": "sliceStroke", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "sliceGapDegrees", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [ + { + "type": "double", + "name": "degrees" + } + ] + }, + { + "kind": "method", + "name": "donutCenterTextStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.Builder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "s" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle", + "params": [] + } + ] + }, + { + "name": "ChartStyle.GridStyle", + "binaryName": "com.demcha.compose.document.chart.ChartStyle$GridStyle", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "GridStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + } + ] + }, + { + "kind": "method", + "name": "horizontal", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.GridStyle", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "none", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle.GridStyle", + "params": [] + }, + { + "kind": "method", + "name": "horizontal", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "vertical", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + } + ] + }, + { + "name": "ChartTextMetrics", + "binaryName": "com.demcha.compose.document.chart.ChartTextMetrics", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [ + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "lineHeight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [ + { + "type": "DocumentTextStyle", + "name": null + } + ] + }, + { + "kind": "method", + "name": "descent", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [ + { + "type": "DocumentTextStyle", + "name": null + } + ] + } + ] + }, + { + "name": "ChartTheme", + "binaryName": "com.demcha.compose.document.chart.ChartTheme", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ChartTheme", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "List", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "DocumentPaint", + "name": null + } + ] + }, + { + "kind": "method", + "name": "toChartStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ChartStyle", + "params": [] + }, + { + "kind": "method", + "name": "palette", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "gridStroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "axisTextStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "legendTextStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "valueLabelTextStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "valueLabelHalo", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPaint", + "params": [] + } + ] + }, + { + "name": "LegendPosition", + "binaryName": "com.demcha.compose.document.chart.LegendPosition", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "NONE", + "static": true, + "origin": "generated", + "type": "LegendPosition" + }, + { + "kind": "constant", + "name": "BOTTOM", + "static": true, + "origin": "generated", + "type": "LegendPosition" + }, + { + "kind": "constant", + "name": "RIGHT", + "static": true, + "origin": "generated", + "type": "LegendPosition" + }, + { + "kind": "constant", + "name": "TOP", + "static": true, + "origin": "generated", + "type": "LegendPosition" + } + ] + }, + { + "name": "LineInterpolation", + "binaryName": "com.demcha.compose.document.chart.LineInterpolation", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "LINEAR", + "static": true, + "origin": "generated", + "type": "LineInterpolation" + }, + { + "kind": "constant", + "name": "SMOOTH", + "static": true, + "origin": "generated", + "type": "LineInterpolation" + }, + { + "kind": "constant", + "name": "MONOTONE", + "static": true, + "origin": "generated", + "type": "LineInterpolation" + } + ] + }, + { + "name": "NiceScale", + "binaryName": "com.demcha.compose.document.chart.NiceScale", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "NiceScale", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "int", + "name": null + } + ] + }, + { + "kind": "method", + "name": "compute", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "NiceScale", + "params": [ + { + "type": "double", + "name": "dataMin" + }, + { + "type": "double", + "name": "dataMax" + }, + { + "type": "boolean", + "name": "includeZero" + }, + { + "type": "int", + "name": "targetTicks" + } + ] + }, + { + "kind": "method", + "name": "fractionOf", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "niceMin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "niceMax", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "tickStep", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "tickCount", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + } + ] + }, + { + "name": "NumberFormatSpec", + "binaryName": "com.demcha.compose.document.chart.NumberFormatSpec", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "NumberFormatSpec", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "Locale", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "pattern", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "NumberFormatSpec", + "params": [ + { + "type": "String", + "name": "pattern" + } + ] + }, + { + "kind": "method", + "name": "defaults", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "NumberFormatSpec", + "params": [] + }, + { + "kind": "method", + "name": "withLocale", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "NumberFormatSpec", + "params": [ + { + "type": "Locale", + "name": "locale" + } + ] + }, + { + "kind": "method", + "name": "withPrefix", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "NumberFormatSpec", + "params": [ + { + "type": "String", + "name": "prefix" + } + ] + }, + { + "kind": "method", + "name": "withSuffix", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "NumberFormatSpec", + "params": [ + { + "type": "String", + "name": "suffix" + } + ] + }, + { + "kind": "method", + "name": "scaledBy", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "NumberFormatSpec", + "params": [ + { + "type": "double", + "name": "scaleDivisor" + } + ] + }, + { + "kind": "method", + "name": "format", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "formatter", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DecimalFormat", + "params": [] + }, + { + "kind": "method", + "name": "pattern", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "locale", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Locale", + "params": [] + }, + { + "kind": "method", + "name": "prefix", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "suffix", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "scaleDivisor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "PointMarker", + "binaryName": "com.demcha.compose.document.chart.PointMarker", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "PointMarker", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentPaint", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + } + ] + }, + { + "kind": "method", + "name": "circle", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PointMarker", + "params": [ + { + "type": "double", + "name": "diameter" + } + ] + }, + { + "kind": "method", + "name": "ellipse", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PointMarker", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "withFill", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PointMarker", + "params": [ + { + "type": "DocumentPaint", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "withStroke", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PointMarker", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "fill", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPaint", + "params": [] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + } + ] + }, + { + "name": "SliceLabelMode", + "binaryName": "com.demcha.compose.document.chart.SliceLabelMode", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "NONE", + "static": true, + "origin": "generated", + "type": "SliceLabelMode" + }, + { + "kind": "constant", + "name": "VALUE", + "static": true, + "origin": "generated", + "type": "SliceLabelMode" + }, + { + "kind": "constant", + "name": "PERCENT", + "static": true, + "origin": "generated", + "type": "SliceLabelMode" + }, + { + "kind": "constant", + "name": "CATEGORY", + "static": true, + "origin": "generated", + "type": "SliceLabelMode" + }, + { + "kind": "constant", + "name": "CATEGORY_PERCENT", + "static": true, + "origin": "generated", + "type": "SliceLabelMode" + } + ] + }, + { + "name": "ValueLabelMode", + "binaryName": "com.demcha.compose.document.chart.ValueLabelMode", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "NONE", + "static": true, + "origin": "generated", + "type": "ValueLabelMode" + }, + { + "kind": "constant", + "name": "OUTSIDE", + "static": true, + "origin": "generated", + "type": "ValueLabelMode" + }, + { + "kind": "constant", + "name": "INSIDE", + "static": true, + "origin": "generated", + "type": "ValueLabelMode" + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.dsl", + "types": [ + { + "name": "AbstractFlowBuilder", + "binaryName": "com.demcha.compose.document.dsl.AbstractFlowBuilder", + "kind": "class", + "modifiers": [ + "abstract" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "bookmark", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + } + ] + }, + { + "kind": "method", + "name": "spacing", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "double", + "name": "spacing" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "float", + "name": "top" + }, + { + "type": "float", + "name": "right" + }, + { + "type": "float", + "name": "bottom" + }, + { + "type": "float", + "name": "left" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "float", + "name": "top" + }, + { + "type": "float", + "name": "right" + }, + { + "type": "float", + "name": "bottom" + }, + { + "type": "float", + "name": "left" + } + ] + }, + { + "kind": "method", + "name": "bleed", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentBleed", + "name": "bleed" + } + ] + }, + { + "kind": "method", + "name": "bleedToEdge", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentEdge...", + "name": "edges" + } + ] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Color", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentColor", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "borders", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentBorders", + "name": "borders" + } + ] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "double", + "name": "radius" + } + ] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + } + ] + }, + { + "kind": "method", + "name": "band", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "softPanel", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "radius" + }, + { + "type": "double", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "softPanel", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + }, + { + "type": "double", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "softPanel", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "softPanel", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "radius" + }, + { + "type": "double", + "name": "padding" + }, + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "softPanel", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + }, + { + "type": "double", + "name": "padding" + }, + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "accentLeft", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "accentRight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "accentTop", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "accentBottom", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "add", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "addParagraph", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addParagraph", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "addParagraph", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + } + ] + }, + { + "kind": "method", + "name": "addText", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addText", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "addText", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + } + ] + }, + { + "kind": "method", + "name": "addList", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addList", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String...", + "name": "items" + } + ] + }, + { + "kind": "method", + "name": "addList", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "List", + "name": "items" + } + ] + }, + { + "kind": "method", + "name": "addImage", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addImage", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentImageData", + "name": "data" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "addShape", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addShape", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentColor", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "addSpacer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "spacer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "addLine", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addEllipse", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addPath", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addSvgIcon", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "SvgIcon", + "name": "icon" + }, + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "addSvgIcon", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "SvgIcon", + "name": "icon" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "HorizontalAlign", + "name": "align" + } + ] + }, + { + "kind": "method", + "name": "addAligned", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "HorizontalAlign", + "name": "align" + }, + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "addEllipse", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "double", + "name": "diameter" + }, + { + "type": "DocumentColor", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "addEllipse", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentColor", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "addCircle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "double", + "name": "diameter" + } + ] + }, + { + "kind": "method", + "name": "addCircle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "double", + "name": "diameter" + }, + { + "type": "DocumentColor", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "addCircle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "double", + "name": "diameter" + }, + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addContainer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addCanvas", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addCircle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "double", + "name": "diameter" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addEllipse", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addBarcode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "chart", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "ChartSpec", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "chart", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "ChartSpec", + "name": "spec" + }, + { + "type": "ChartStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "addDivider", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addTable", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addLayerStack", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addRich", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "RichText", + "name": "rich" + } + ] + }, + { + "kind": "method", + "name": "addRich", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addLink", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "String", + "name": "uri" + } + ] + }, + { + "kind": "method", + "name": "addLink", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentLinkOptions", + "name": "options" + } + ] + }, + { + "kind": "method", + "name": "addRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addSection", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addSection", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addTableOfContents", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addPageReference", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "addPageReference", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String", + "name": "anchor" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "TextAlign", + "name": "align" + } + ] + }, + { + "kind": "method", + "name": "headingBar", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "headingBar", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "Consumer", + "name": "customizer" + } + ] + }, + { + "kind": "method", + "name": "addTimeline", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "module", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String", + "name": "title" + }, + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "module", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addModule", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "String", + "name": "title" + }, + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addModule", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addPageBreak", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + } + ] + }, + { + "name": "BarcodeBuilder", + "binaryName": "com.demcha.compose.document.dsl.BarcodeBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "BarcodeBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "options", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "DocumentBarcodeOptions", + "name": "options" + } + ] + }, + { + "kind": "method", + "name": "data", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "String", + "name": "content" + } + ] + }, + { + "kind": "method", + "name": "type", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "DocumentBarcodeType", + "name": "type" + } + ] + }, + { + "kind": "method", + "name": "qrCode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [] + }, + { + "kind": "method", + "name": "code128", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [] + }, + { + "kind": "method", + "name": "code39", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [] + }, + { + "kind": "method", + "name": "ean13", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [] + }, + { + "kind": "method", + "name": "ean8", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [] + }, + { + "kind": "method", + "name": "foreground", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "Color", + "name": "foreground" + } + ] + }, + { + "kind": "method", + "name": "foreground", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "DocumentColor", + "name": "foreground" + } + ] + }, + { + "kind": "method", + "name": "background", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "Color", + "name": "background" + } + ] + }, + { + "kind": "method", + "name": "background", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "DocumentColor", + "name": "background" + } + ] + }, + { + "kind": "method", + "name": "quietZone", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "int", + "name": "quietZoneMargin" + } + ] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "link", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "DocumentLinkTarget", + "name": "linkTarget" + } + ] + }, + { + "kind": "method", + "name": "linkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "bookmark", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [ + { + "type": "DocumentTransform", + "name": "transform" + } + ] + }, + { + "kind": "method", + "name": "currentTransform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeNode", + "params": [] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Transformable", + "params": [ + { + "type": "DocumentTransform", + "name": "transform" + } + ] + } + ] + }, + { + "name": "CanvasLayerBuilder", + "binaryName": "com.demcha.compose.document.dsl.CanvasLayerBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "CanvasLayerBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CanvasLayerBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CanvasLayerBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "position", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CanvasLayerBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "child" + }, + { + "type": "double", + "name": "x" + }, + { + "type": "double", + "name": "y" + } + ] + }, + { + "kind": "method", + "name": "clipPolicy", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CanvasLayerBuilder", + "params": [ + { + "type": "ClipPolicy", + "name": "clipPolicy" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CanvasLayerBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CanvasLayerBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CanvasLayerNode", + "params": [] + } + ] + }, + { + "name": "DividerBuilder", + "binaryName": "com.demcha.compose.document.dsl.DividerBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "width", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DividerBuilder", + "params": [ + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DividerBuilder", + "params": [ + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "thickness", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DividerBuilder", + "params": [ + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "color", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DividerBuilder", + "params": [ + { + "type": "Color", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "color", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DividerBuilder", + "params": [ + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DividerBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DividerBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DividerBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeNode", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + } + ] + }, + { + "name": "DocumentDsl", + "binaryName": "com.demcha.compose.document.dsl.DocumentDsl", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "DocumentDsl", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentSession", + "name": "session" + } + ] + }, + { + "kind": "method", + "name": "pageFlow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PageFlowBuilder", + "params": [] + }, + { + "kind": "method", + "name": "pageFlow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ContainerNode", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "section", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SectionBuilder", + "params": [] + }, + { + "kind": "method", + "name": "module", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [] + }, + { + "kind": "method", + "name": "paragraph", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [] + }, + { + "kind": "method", + "name": "list", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [] + }, + { + "kind": "method", + "name": "image", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [] + }, + { + "kind": "method", + "name": "shape", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [] + }, + { + "kind": "method", + "name": "barcode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "BarcodeBuilder", + "params": [] + }, + { + "kind": "method", + "name": "divider", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DividerBuilder", + "params": [] + }, + { + "kind": "method", + "name": "table", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [] + }, + { + "kind": "method", + "name": "pageBreak", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PageBreakBuilder", + "params": [] + }, + { + "kind": "method", + "name": "richText", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + } + ] + }, + { + "name": "EllipseBuilder", + "binaryName": "com.demcha.compose.document.dsl.EllipseBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "EllipseBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseBuilder", + "params": [ + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseBuilder", + "params": [ + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "circle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseBuilder", + "params": [ + { + "type": "double", + "name": "diameter" + } + ] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseBuilder", + "params": [ + { + "type": "Color", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseBuilder", + "params": [ + { + "type": "DocumentColor", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseBuilder", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "link", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseBuilder", + "params": [ + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseBuilder", + "params": [ + { + "type": "DocumentLinkTarget", + "name": "linkTarget" + } + ] + }, + { + "kind": "method", + "name": "linkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseBuilder", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseBuilder", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "bookmark", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseBuilder", + "params": [ + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseBuilder", + "params": [ + { + "type": "DocumentTransform", + "name": "transform" + } + ] + }, + { + "kind": "method", + "name": "currentTransform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EllipseNode", + "params": [] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Transformable", + "params": [ + { + "type": "DocumentTransform", + "name": "transform" + } + ] + } + ] + }, + { + "name": "HeadingBarStyle", + "binaryName": "com.demcha.compose.document.dsl.HeadingBarStyle", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "HeadingBarStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "fill", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "HeadingBarStyle", + "params": [ + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "HeadingBarStyle", + "params": [ + { + "type": "double", + "name": "radius" + } + ] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "HeadingBarStyle", + "params": [ + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "HeadingBarStyle", + "params": [ + { + "type": "double", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "HeadingBarStyle", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "HeadingBarStyle", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "textStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "HeadingBarStyle", + "params": [ + { + "type": "DocumentTextStyle", + "name": "textStyle" + } + ] + }, + { + "kind": "method", + "name": "align", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "HeadingBarStyle", + "params": [ + { + "type": "TextAlign", + "name": "align" + } + ] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "HeadingBarStyle", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + } + ] + }, + { + "name": "ImageBuilder", + "binaryName": "com.demcha.compose.document.dsl.ImageBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ImageBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "source", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "DocumentImageData", + "name": "imageData" + } + ] + }, + { + "kind": "method", + "name": "source", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "byte[]", + "name": "bytes" + } + ] + }, + { + "kind": "method", + "name": "source", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "Path", + "name": "path" + } + ] + }, + { + "kind": "method", + "name": "source", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "String", + "name": "path" + } + ] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "scale", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "double", + "name": "scale" + } + ] + }, + { + "kind": "method", + "name": "fitToBounds", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "fitMode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "DocumentImageFitMode", + "name": "fitMode" + } + ] + }, + { + "kind": "method", + "name": "link", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "DocumentLinkTarget", + "name": "linkTarget" + } + ] + }, + { + "kind": "method", + "name": "linkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "bookmark", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageBuilder", + "params": [ + { + "type": "DocumentTransform", + "name": "transform" + } + ] + }, + { + "kind": "method", + "name": "currentTransform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageNode", + "params": [] + }, + { + "kind": "method", + "name": "scale", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Transformable", + "params": [ + { + "type": "double", + "name": "scale" + } + ] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Transformable", + "params": [ + { + "type": "DocumentTransform", + "name": "transform" + } + ] + } + ] + }, + { + "name": "LayerStackBuilder", + "binaryName": "com.demcha.compose.document.dsl.LayerStackBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "LayerStackBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "layer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "layer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + }, + { + "type": "LayerAlign", + "name": "align" + } + ] + }, + { + "kind": "method", + "name": "layer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + }, + { + "type": "LayerAlign", + "name": "align" + }, + { + "type": "int", + "name": "zIndex" + } + ] + }, + { + "kind": "method", + "name": "position", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + }, + { + "type": "double", + "name": "offsetX" + }, + { + "type": "double", + "name": "offsetY" + }, + { + "type": "LayerAlign", + "name": "align" + } + ] + }, + { + "kind": "method", + "name": "position", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + }, + { + "type": "double", + "name": "offsetX" + }, + { + "type": "double", + "name": "offsetY" + }, + { + "type": "LayerAlign", + "name": "align" + }, + { + "type": "int", + "name": "zIndex" + } + ] + }, + { + "kind": "method", + "name": "back", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "topLeft", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "topCenter", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "topRight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "centerLeft", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "center", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "centerRight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "bottomLeft", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "bottomCenter", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "bottomRight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "double", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "double", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "clipToBounds", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [] + }, + { + "kind": "method", + "name": "clipToBounds", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackBuilder", + "params": [ + { + "type": "boolean", + "name": "clip" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackNode", + "params": [] + } + ] + }, + { + "name": "LineBuilder", + "binaryName": "com.demcha.compose.document.dsl.LineBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "LineBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "horizontal", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "vertical", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "diagonal", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "from", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "double", + "name": "x" + }, + { + "type": "double", + "name": "y" + } + ] + }, + { + "kind": "method", + "name": "to", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "double", + "name": "x" + }, + { + "type": "double", + "name": "y" + } + ] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "color", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "thickness", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "double", + "name": "thickness" + } + ] + }, + { + "kind": "method", + "name": "dashed", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "double...", + "name": "pattern" + } + ] + }, + { + "kind": "method", + "name": "dashed", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "DocumentDashPattern", + "name": "pattern" + } + ] + }, + { + "kind": "method", + "name": "dashed", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [] + }, + { + "kind": "method", + "name": "lineCap", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "DocumentLineCap", + "name": "lineCap" + } + ] + }, + { + "kind": "method", + "name": "fill", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [] + }, + { + "kind": "method", + "name": "keepWithNext", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [] + }, + { + "kind": "method", + "name": "keepWithNext", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "boolean", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "link", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "DocumentLinkTarget", + "name": "linkTarget" + } + ] + }, + { + "kind": "method", + "name": "linkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "bookmark", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineBuilder", + "params": [ + { + "type": "DocumentTransform", + "name": "transform" + } + ] + }, + { + "kind": "method", + "name": "currentTransform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LineNode", + "params": [] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Transformable", + "params": [ + { + "type": "DocumentTransform", + "name": "transform" + } + ] + } + ] + }, + { + "name": "ListBuilder", + "binaryName": "com.demcha.compose.document.dsl.ListBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ListBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "items", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "String...", + "name": "items" + } + ] + }, + { + "kind": "method", + "name": "items", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "List", + "name": "items" + } + ] + }, + { + "kind": "method", + "name": "addItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "String", + "name": "item" + } + ] + }, + { + "kind": "method", + "name": "addItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "Consumer", + "name": "body" + } + ] + }, + { + "kind": "method", + "name": "markerFor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "int", + "name": "depth" + }, + { + "type": "ListMarker", + "name": "marker" + } + ] + }, + { + "kind": "method", + "name": "marker", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "ListMarker", + "name": "marker" + } + ] + }, + { + "kind": "method", + "name": "marker", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "String", + "name": "marker" + } + ] + }, + { + "kind": "method", + "name": "bullet", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [] + }, + { + "kind": "method", + "name": "dash", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [] + }, + { + "kind": "method", + "name": "noMarker", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [] + }, + { + "kind": "method", + "name": "textStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "textStyle" + } + ] + }, + { + "kind": "method", + "name": "align", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "TextAlign", + "name": "align" + } + ] + }, + { + "kind": "method", + "name": "lineSpacing", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "double", + "name": "lineSpacing" + } + ] + }, + { + "kind": "method", + "name": "itemSpacing", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "double", + "name": "itemSpacing" + } + ] + }, + { + "kind": "method", + "name": "continuationIndent", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "String", + "name": "continuationIndent" + } + ] + }, + { + "kind": "method", + "name": "normalizeMarkers", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "boolean", + "name": "normalizeMarkers" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "float", + "name": "top" + }, + { + "type": "float", + "name": "right" + }, + { + "type": "float", + "name": "bottom" + }, + { + "type": "float", + "name": "left" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListBuilder", + "params": [ + { + "type": "float", + "name": "top" + }, + { + "type": "float", + "name": "right" + }, + { + "type": "float", + "name": "bottom" + }, + { + "type": "float", + "name": "left" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ListNode", + "params": [] + }, + { + "kind": "method", + "name": "markerOverrides", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Map", + "params": [] + } + ] + }, + { + "name": "ModuleBuilder", + "binaryName": "com.demcha.compose.document.dsl.ModuleBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ModuleBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "titleStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "titleStyle" + } + ] + }, + { + "kind": "method", + "name": "titleAlign", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "TextAlign", + "name": "titleAlign" + } + ] + }, + { + "kind": "method", + "name": "titleLineSpacing", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "double", + "name": "titleLineSpacing" + } + ] + }, + { + "kind": "method", + "name": "titlePadding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "titlePadding" + } + ] + }, + { + "kind": "method", + "name": "titleMargin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "titleMargin" + } + ] + }, + { + "kind": "method", + "name": "paragraph", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "paragraph", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "bullets", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "List", + "name": "items" + } + ] + }, + { + "kind": "method", + "name": "bullets", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "String...", + "name": "items" + } + ] + }, + { + "kind": "method", + "name": "dashList", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "List", + "name": "items" + } + ] + }, + { + "kind": "method", + "name": "dashList", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "String...", + "name": "items" + } + ] + }, + { + "kind": "method", + "name": "rows", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "List", + "name": "rows" + } + ] + }, + { + "kind": "method", + "name": "rows", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "String...", + "name": "rows" + } + ] + }, + { + "kind": "method", + "name": "list", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "List", + "name": "items" + }, + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "table", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "TableNode", + "name": "table" + } + ] + }, + { + "kind": "method", + "name": "table", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "table", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "List", + "name": "headers" + }, + { + "type": "List>", + "name": "rows" + } + ] + }, + { + "kind": "method", + "name": "image", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "ImageNode", + "name": "image" + } + ] + }, + { + "kind": "method", + "name": "image", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "divider", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "pageBreak", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "custom", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "keepTogether", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [] + }, + { + "kind": "method", + "name": "keepTogether", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ModuleBuilder", + "params": [ + { + "type": "boolean", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SectionNode", + "params": [] + } + ] + }, + { + "name": "PageBreakBuilder", + "binaryName": "com.demcha.compose.document.dsl.PageBreakBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "PageBreakBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PageBreakBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PageBreakBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PageBreakNode", + "params": [] + } + ] + }, + { + "name": "PageFlowBuilder", + "binaryName": "com.demcha.compose.document.dsl.PageFlowBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ContainerNode", + "params": [] + } + ] + }, + { + "name": "ParagraphBuilder", + "binaryName": "com.demcha.compose.document.dsl.ParagraphBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ParagraphBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "text", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "textStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "textStyle" + } + ] + }, + { + "kind": "method", + "name": "align", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "TextAlign", + "name": "align" + } + ] + }, + { + "kind": "method", + "name": "direction", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "TextDirection", + "name": "direction" + } + ] + }, + { + "kind": "method", + "name": "verticalAlign", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "TextVerticalAlign", + "name": "verticalAlign" + } + ] + }, + { + "kind": "method", + "name": "lineSpacing", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "double", + "name": "lineSpacing" + } + ] + }, + { + "kind": "method", + "name": "bulletOffset", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "bulletOffset" + } + ] + }, + { + "kind": "method", + "name": "indentStrategy", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "DocumentTextIndent", + "name": "indentStrategy" + } + ] + }, + { + "kind": "method", + "name": "link", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "DocumentLinkTarget", + "name": "linkTarget" + } + ] + }, + { + "kind": "method", + "name": "linkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "inlineText", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "inlineText", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + } + ] + }, + { + "kind": "method", + "name": "inlineLink", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "inlineLinkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "inlineText", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "inlineHighlight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "DocumentColor", + "name": "background" + }, + { + "type": "double", + "name": "cornerRadius" + }, + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "inlineHighlight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "DocumentColor", + "name": "background" + }, + { + "type": "double", + "name": "cornerRadius" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentLinkOptions", + "name": "link" + } + ] + }, + { + "kind": "method", + "name": "inlineCode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "inlineCode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + } + ] + }, + { + "kind": "method", + "name": "inlineChip", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentColor", + "name": "fg" + }, + { + "type": "DocumentColor", + "name": "bg" + } + ] + }, + { + "kind": "method", + "name": "inlineImage", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "inlineImage", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + } + ] + }, + { + "kind": "method", + "name": "inlineImage", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + }, + { + "type": "double", + "name": "baselineOffset" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "inlineImageLinkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "inlineImageLinkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + }, + { + "type": "double", + "name": "baselineOffset" + }, + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "dot", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "double", + "name": "diameter" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "dot", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "double", + "name": "diameter" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "ellipse", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "diamond", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "triangle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "star", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "arrow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "ShapeOutline.Direction", + "name": "direction" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "arrow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "ShapeOutline.Direction", + "name": "direction" + }, + { + "type": "ShapeOutline.ArrowStyle", + "name": "style" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "chevron", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "ShapeOutline.Direction", + "name": "direction" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "shape", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "ShapeOutline", + "name": "outline" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "shape", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "ShapeOutline", + "name": "outline" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + }, + { + "type": "double", + "name": "baselineOffset" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "inlineSvgIcon", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "SvgIcon", + "name": "icon" + }, + { + "type": "double", + "name": "size" + } + ] + }, + { + "kind": "method", + "name": "inlineSvgIcon", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "SvgIcon", + "name": "icon" + }, + { + "type": "double", + "name": "size" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + } + ] + }, + { + "kind": "method", + "name": "inlineSvgIcon", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "SvgIcon", + "name": "icon" + }, + { + "type": "double", + "name": "size" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + }, + { + "type": "double", + "name": "baselineOffset" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "inlineEmoji", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "shortcode" + }, + { + "type": "double", + "name": "size" + } + ] + }, + { + "kind": "method", + "name": "inlineEmoji", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "String", + "name": "shortcode" + }, + { + "type": "double", + "name": "size" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + }, + { + "type": "double", + "name": "baselineOffset" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "shapeLinkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "ShapeOutline", + "name": "outline" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "shapeLinkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "ShapeOutline", + "name": "outline" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + }, + { + "type": "double", + "name": "baselineOffset" + }, + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "checkbox", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "boolean", + "name": "checked" + }, + { + "type": "DocumentColor", + "name": "boxColor" + }, + { + "type": "DocumentColor", + "name": "checkColor" + } + ] + }, + { + "kind": "method", + "name": "checkbox", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "boolean", + "name": "checked" + }, + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "checkbox", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "boolean", + "name": "checked" + }, + { + "type": "ShapeOutline.CheckmarkStyle", + "name": "markStyle" + }, + { + "type": "DocumentColor", + "name": "boxColor" + }, + { + "type": "DocumentColor", + "name": "checkColor" + } + ] + }, + { + "kind": "method", + "name": "checkbox", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "boolean", + "name": "checked" + }, + { + "type": "ShapeOutline", + "name": "mark" + }, + { + "type": "DocumentColor", + "name": "boxColor" + }, + { + "type": "DocumentColor", + "name": "checkColor" + } + ] + }, + { + "kind": "method", + "name": "rich", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "RichText", + "name": "rich" + } + ] + }, + { + "kind": "method", + "name": "rich", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "inlineRuns", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "List", + "name": "inlineTextRuns" + } + ] + }, + { + "kind": "method", + "name": "inlineRunsMixed", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "List", + "name": "runs" + } + ] + }, + { + "kind": "method", + "name": "bookmark", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "float", + "name": "top" + }, + { + "type": "float", + "name": "right" + }, + { + "type": "float", + "name": "bottom" + }, + { + "type": "float", + "name": "left" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "float", + "name": "top" + }, + { + "type": "float", + "name": "right" + }, + { + "type": "float", + "name": "bottom" + }, + { + "type": "float", + "name": "left" + } + ] + }, + { + "kind": "method", + "name": "autoSize", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "DocumentTextAutoSize", + "name": "autoSize" + } + ] + }, + { + "kind": "method", + "name": "autoSize", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "double", + "name": "maxSize" + }, + { + "type": "double", + "name": "minSize" + } + ] + }, + { + "kind": "method", + "name": "autoSize", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphBuilder", + "params": [ + { + "type": "double", + "name": "maxSize" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ParagraphNode", + "params": [] + } + ] + }, + { + "name": "PathBuilder", + "binaryName": "com.demcha.compose.document.dsl.PathBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "PathBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "moveTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "double", + "name": "x" + }, + { + "type": "double", + "name": "y" + } + ] + }, + { + "kind": "method", + "name": "lineTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "double", + "name": "x" + }, + { + "type": "double", + "name": "y" + } + ] + }, + { + "kind": "method", + "name": "curveTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "double", + "name": "control1X" + }, + { + "type": "double", + "name": "control1Y" + }, + { + "type": "double", + "name": "control2X" + }, + { + "type": "double", + "name": "control2Y" + }, + { + "type": "double", + "name": "x" + }, + { + "type": "double", + "name": "y" + } + ] + }, + { + "kind": "method", + "name": "closePath", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [] + }, + { + "kind": "method", + "name": "svg", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "SvgPath", + "name": "svgPath" + } + ] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "DocumentColor", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "Color", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "fill", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "DocumentPaint", + "name": "fillPaint" + } + ] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "strokePaint", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "DocumentPaint", + "name": "strokePaint" + } + ] + }, + { + "kind": "method", + "name": "dashed", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "double...", + "name": "pattern" + } + ] + }, + { + "kind": "method", + "name": "dashed", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "DocumentDashPattern", + "name": "pattern" + } + ] + }, + { + "kind": "method", + "name": "lineCap", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "DocumentLineCap", + "name": "lineCap" + } + ] + }, + { + "kind": "method", + "name": "lineJoin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "DocumentLineJoin", + "name": "lineJoin" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PathNode", + "params": [] + } + ] + }, + { + "name": "RichText", + "binaryName": "com.demcha.compose.document.dsl.RichText", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "empty", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [] + }, + { + "kind": "method", + "name": "text", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "plain", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "bold", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "italic", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "boldItalic", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "underline", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "strikethrough", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "color", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "color", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "Color", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "accent", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "accent", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "Color", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "double", + "name": "size" + } + ] + }, + { + "kind": "method", + "name": "style", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "highlight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "DocumentColor", + "name": "background" + }, + { + "type": "double", + "name": "cornerRadius" + }, + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "highlight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "DocumentColor", + "name": "background" + }, + { + "type": "double", + "name": "cornerRadius" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentLinkOptions", + "name": "link" + } + ] + }, + { + "kind": "method", + "name": "code", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "code", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + } + ] + }, + { + "kind": "method", + "name": "chip", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentColor", + "name": "fg" + }, + { + "type": "DocumentColor", + "name": "bg" + } + ] + }, + { + "kind": "method", + "name": "link", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentLinkOptions", + "name": "options" + } + ] + }, + { + "kind": "method", + "name": "link", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "String", + "name": "uri" + } + ] + }, + { + "kind": "method", + "name": "linkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "linkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "style" + }, + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "with", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "style" + }, + { + "type": "DocumentLinkOptions", + "name": "link" + } + ] + }, + { + "kind": "method", + "name": "space", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [] + }, + { + "kind": "method", + "name": "append", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "RichText", + "name": "other" + } + ] + }, + { + "kind": "method", + "name": "image", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "image", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + } + ] + }, + { + "kind": "method", + "name": "image", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + }, + { + "type": "double", + "name": "baselineOffset" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "imageLinkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "imageLinkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + }, + { + "type": "double", + "name": "baselineOffset" + }, + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "svgIcon", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "SvgIcon", + "name": "icon" + }, + { + "type": "double", + "name": "size" + } + ] + }, + { + "kind": "method", + "name": "svgIcon", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "SvgIcon", + "name": "icon" + }, + { + "type": "double", + "name": "size" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + } + ] + }, + { + "kind": "method", + "name": "svgIcon", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "SvgIcon", + "name": "icon" + }, + { + "type": "double", + "name": "size" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + }, + { + "type": "double", + "name": "baselineOffset" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "emoji", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "shortcode" + }, + { + "type": "double", + "name": "size" + } + ] + }, + { + "kind": "method", + "name": "emoji", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "String", + "name": "shortcode" + }, + { + "type": "double", + "name": "size" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + }, + { + "type": "double", + "name": "baselineOffset" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "dot", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "double", + "name": "diameter" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "dot", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "double", + "name": "diameter" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "ellipse", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "diamond", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "triangle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "star", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "arrow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "ShapeOutline.Direction", + "name": "direction" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "arrow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "ShapeOutline.Direction", + "name": "direction" + }, + { + "type": "ShapeOutline.ArrowStyle", + "name": "style" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "chevron", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "ShapeOutline.Direction", + "name": "direction" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "shape", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "ShapeOutline", + "name": "outline" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "shape", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "ShapeOutline", + "name": "outline" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + }, + { + "type": "double", + "name": "baselineOffset" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "shapeLinkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "ShapeOutline", + "name": "outline" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "shapeLinkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "ShapeOutline", + "name": "outline" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + }, + { + "type": "double", + "name": "baselineOffset" + }, + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "sparkline", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "double...", + "name": "values" + } + ] + }, + { + "kind": "method", + "name": "sparklineLine", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "double", + "name": "thickness" + }, + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double...", + "name": "values" + } + ] + }, + { + "kind": "method", + "name": "checkbox", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "boolean", + "name": "checked" + }, + { + "type": "DocumentColor", + "name": "boxColor" + }, + { + "type": "DocumentColor", + "name": "checkColor" + } + ] + }, + { + "kind": "method", + "name": "checkbox", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "boolean", + "name": "checked" + }, + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "checkbox", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "boolean", + "name": "checked" + }, + { + "type": "ShapeOutline.CheckmarkStyle", + "name": "markStyle" + }, + { + "type": "DocumentColor", + "name": "boxColor" + }, + { + "type": "DocumentColor", + "name": "checkColor" + } + ] + }, + { + "kind": "method", + "name": "checkbox", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RichText", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "boolean", + "name": "checked" + }, + { + "type": "ShapeOutline", + "name": "mark" + }, + { + "type": "DocumentColor", + "name": "boxColor" + }, + { + "type": "DocumentColor", + "name": "checkColor" + } + ] + }, + { + "kind": "method", + "name": "runs", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "isEmpty", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + } + ] + }, + { + "name": "RowBuilder", + "binaryName": "com.demcha.compose.document.dsl.RowBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "RowBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "spacing", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "double", + "name": "spacing" + } + ] + }, + { + "kind": "method", + "name": "gap", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "double", + "name": "gap" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "DocumentColor", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "double", + "name": "radius" + } + ] + }, + { + "kind": "method", + "name": "borders", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "DocumentBorders", + "name": "borders" + } + ] + }, + { + "kind": "method", + "name": "verticalAlign", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "RowVerticalAlign", + "name": "verticalAlign" + } + ] + }, + { + "kind": "method", + "name": "arrangement", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "RowArrangement", + "name": "arrangement" + } + ] + }, + { + "kind": "method", + "name": "flexSpacer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [] + }, + { + "kind": "method", + "name": "flexSpacer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "double", + "name": "grow" + } + ] + }, + { + "kind": "method", + "name": "pushRight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [] + }, + { + "kind": "method", + "name": "weights", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "double...", + "name": "weights" + } + ] + }, + { + "kind": "method", + "name": "evenWeights", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [] + }, + { + "kind": "method", + "name": "columns", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "DocumentRowColumn...", + "name": "columns" + } + ] + }, + { + "kind": "method", + "name": "add", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "addParagraph", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addParagraph", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "addParagraph", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + } + ] + }, + { + "kind": "method", + "name": "addText", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addImage", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addImage", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "DocumentImageData", + "name": "imageData" + } + ] + }, + { + "kind": "method", + "name": "addImage", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "Path", + "name": "path" + } + ] + }, + { + "kind": "method", + "name": "addShape", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addLine", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addPageReference", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "String", + "name": "anchor" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "TextAlign", + "name": "align" + } + ] + }, + { + "kind": "method", + "name": "addPageReference", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "addEllipse", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addBarcode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addSpacer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addSpacer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "addSection", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "addSection", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowBuilder", + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowNode", + "params": [] + } + ] + }, + { + "name": "SectionBuilder", + "binaryName": "com.demcha.compose.document.dsl.SectionBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "SectionBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "keepTogether", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SectionBuilder", + "params": [] + }, + { + "kind": "method", + "name": "keepTogether", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SectionBuilder", + "params": [ + { + "type": "boolean", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "keepWithNext", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SectionBuilder", + "params": [] + }, + { + "kind": "method", + "name": "keepWithNext", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SectionBuilder", + "params": [ + { + "type": "boolean", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SectionNode", + "params": [] + } + ] + }, + { + "name": "ShapeBuilder", + "binaryName": "com.demcha.compose.document.dsl.ShapeBuilder", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ShapeBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "Color", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "DocumentColor", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "fill", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "DocumentPaint", + "name": "paint" + } + ] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "double", + "name": "radius" + } + ] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + } + ] + }, + { + "kind": "method", + "name": "link", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "DocumentLinkTarget", + "name": "linkTarget" + } + ] + }, + { + "kind": "method", + "name": "linkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "bookmark", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeBuilder", + "params": [ + { + "type": "DocumentTransform", + "name": "transform" + } + ] + }, + { + "kind": "method", + "name": "currentTransform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeNode", + "params": [] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Transformable", + "params": [ + { + "type": "DocumentTransform", + "name": "transform" + } + ] + } + ] + }, + { + "name": "ShapeContainerBuilder", + "binaryName": "com.demcha.compose.document.dsl.ShapeContainerBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ShapeContainerBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "rectangle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "roundedRect", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "double", + "name": "cornerRadius" + } + ] + }, + { + "kind": "method", + "name": "roundedRect", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + } + ] + }, + { + "kind": "method", + "name": "ellipse", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "circle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "double", + "name": "diameter" + } + ] + }, + { + "kind": "method", + "name": "diamond", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "triangle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "star", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "star", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "int", + "name": "points" + } + ] + }, + { + "kind": "method", + "name": "arrow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "ShapeOutline.Direction", + "name": "direction" + } + ] + }, + { + "kind": "method", + "name": "chevron", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "ShapeOutline.Direction", + "name": "direction" + } + ] + }, + { + "kind": "method", + "name": "path", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "List", + "name": "segments" + } + ] + }, + { + "kind": "method", + "name": "path", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "SvgPath", + "name": "svgPath" + } + ] + }, + { + "kind": "method", + "name": "outline", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "ShapeOutline", + "name": "outline" + } + ] + }, + { + "kind": "method", + "name": "clipPolicy", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "ClipPolicy", + "name": "clipPolicy" + } + ] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentColor", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "Color", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "double", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "double", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentTransform", + "name": "transform" + } + ] + }, + { + "kind": "method", + "name": "currentTransform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [] + }, + { + "kind": "method", + "name": "layer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + }, + { + "type": "LayerAlign", + "name": "align" + } + ] + }, + { + "kind": "method", + "name": "layer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + }, + { + "type": "LayerAlign", + "name": "align" + }, + { + "type": "int", + "name": "zIndex" + } + ] + }, + { + "kind": "method", + "name": "layer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "position", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + }, + { + "type": "double", + "name": "offsetX" + }, + { + "type": "double", + "name": "offsetY" + }, + { + "type": "LayerAlign", + "name": "align" + } + ] + }, + { + "kind": "method", + "name": "position", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + }, + { + "type": "double", + "name": "offsetX" + }, + { + "type": "double", + "name": "offsetY" + }, + { + "type": "LayerAlign", + "name": "align" + }, + { + "type": "int", + "name": "zIndex" + } + ] + }, + { + "kind": "method", + "name": "back", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "topLeft", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "topCenter", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "topRight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "centerLeft", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "center", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "centerRight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "bottomLeft", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "bottomCenter", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "bottomRight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerBuilder", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeContainerNode", + "params": [] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Transformable", + "params": [ + { + "type": "DocumentTransform", + "name": "transform" + } + ] + } + ] + }, + { + "name": "SpacerBuilder", + "binaryName": "com.demcha.compose.document.dsl.SpacerBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "SpacerBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SpacerBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SpacerBuilder", + "params": [ + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SpacerBuilder", + "params": [ + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SpacerBuilder", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "grow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SpacerBuilder", + "params": [ + { + "type": "double", + "name": "grow" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SpacerBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SpacerBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SpacerNode", + "params": [] + } + ] + }, + { + "name": "TableBuilder", + "binaryName": "com.demcha.compose.document.dsl.TableBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "TableBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "columns", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "DocumentTableColumn...", + "name": "columns" + } + ] + }, + { + "kind": "method", + "name": "autoColumns", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "int", + "name": "count" + } + ] + }, + { + "kind": "method", + "name": "addColumn", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "DocumentTableColumn", + "name": "column" + } + ] + }, + { + "kind": "method", + "name": "row", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "String...", + "name": "values" + } + ] + }, + { + "kind": "method", + "name": "rowCells", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "List", + "name": "row" + } + ] + }, + { + "kind": "method", + "name": "rowCells", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "DocumentTableCell...", + "name": "row" + } + ] + }, + { + "kind": "method", + "name": "header", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "String...", + "name": "values" + } + ] + }, + { + "kind": "method", + "name": "headerRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "String...", + "name": "values" + } + ] + }, + { + "kind": "method", + "name": "totalRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "DocumentTableStyle", + "name": "style" + }, + { + "type": "String...", + "name": "values" + } + ] + }, + { + "kind": "method", + "name": "totalRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "String...", + "name": "values" + } + ] + }, + { + "kind": "method", + "name": "zebra", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "DocumentTableStyle", + "name": "odd" + }, + { + "type": "DocumentTableStyle", + "name": "even" + } + ] + }, + { + "kind": "method", + "name": "zebra", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "DocumentColor", + "name": "odd" + }, + { + "type": "DocumentColor", + "name": "even" + } + ] + }, + { + "kind": "method", + "name": "repeatHeader", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [] + }, + { + "kind": "method", + "name": "repeatHeader", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "int", + "name": "rowCount" + } + ] + }, + { + "kind": "method", + "name": "headerCells", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "DocumentTableCell...", + "name": "row" + } + ] + }, + { + "kind": "method", + "name": "headerCells", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "List", + "name": "row" + } + ] + }, + { + "kind": "method", + "name": "rows", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "String[]...", + "name": "rows" + } + ] + }, + { + "kind": "method", + "name": "defaultCellStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "DocumentTableStyle", + "name": "defaultCellStyle" + } + ] + }, + { + "kind": "method", + "name": "headerStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "DocumentTableStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "rowStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "int", + "name": "rowIndex" + }, + { + "type": "DocumentTableStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "columnStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "int", + "name": "columnIndex" + }, + { + "type": "DocumentTableStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "link", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "DocumentLinkTarget", + "name": "linkTarget" + } + ] + }, + { + "kind": "method", + "name": "linkTo", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "bookmark", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableBuilder", + "params": [ + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableNode", + "params": [] + } + ] + }, + { + "name": "TimelineBuilder", + "binaryName": "com.demcha.compose.document.dsl.TimelineBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "connector", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineBuilder", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "gutter", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineBuilder", + "params": [ + { + "type": "double", + "name": "gutter" + } + ] + }, + { + "kind": "method", + "name": "markerGap", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineBuilder", + "params": [ + { + "type": "double", + "name": "gap" + } + ] + }, + { + "kind": "method", + "name": "markerColumnWeight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineBuilder", + "params": [ + { + "type": "double", + "name": "weight" + } + ] + }, + { + "kind": "method", + "name": "spacing", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineBuilder", + "params": [ + { + "type": "double", + "name": "spacing" + } + ] + }, + { + "kind": "method", + "name": "titleStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineBuilder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "metaStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineBuilder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "bodyStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineBuilder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "entry", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineBuilder", + "params": [ + { + "type": "TimelineMarker", + "name": "marker" + }, + { + "type": "Consumer", + "name": "content" + } + ] + }, + { + "kind": "method", + "name": "keepTogether", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineBuilder", + "params": [] + }, + { + "kind": "method", + "name": "keepEntriesTogether", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineBuilder", + "params": [] + } + ] + }, + { + "name": "TimelineEntryBuilder", + "binaryName": "com.demcha.compose.document.dsl.TimelineEntryBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "title", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineEntryBuilder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineEntryBuilder", + "params": [ + { + "type": "String", + "name": "title" + }, + { + "type": "DocumentTextStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "titleStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineEntryBuilder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "meta", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineEntryBuilder", + "params": [ + { + "type": "String", + "name": "meta" + } + ] + }, + { + "kind": "method", + "name": "meta", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineEntryBuilder", + "params": [ + { + "type": "String", + "name": "meta" + }, + { + "type": "DocumentTextStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "metaStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineEntryBuilder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "body", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineEntryBuilder", + "params": [ + { + "type": "String", + "name": "body" + } + ] + }, + { + "kind": "method", + "name": "body", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineEntryBuilder", + "params": [ + { + "type": "String", + "name": "body" + }, + { + "type": "DocumentTextStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "bodyStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineEntryBuilder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "add", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineEntryBuilder", + "params": [ + { + "type": "Consumer", + "name": "extra" + } + ] + } + ] + }, + { + "name": "TimelineMarker", + "binaryName": "com.demcha.compose.document.dsl.TimelineMarker", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "dot", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "TimelineMarker", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "circle", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "TimelineMarker", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "numbered", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "TimelineMarker", + "params": [ + { + "type": "int", + "name": "number" + }, + { + "type": "double", + "name": "size" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "DocumentColor", + "name": "textColor" + } + ] + }, + { + "kind": "method", + "name": "square", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "TimelineMarker", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + } + ] + }, + { + "name": "TocBuilder", + "binaryName": "com.demcha.compose.document.dsl.TocBuilder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "TocBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TocBuilder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "titleStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TocBuilder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "entry", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TocBuilder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "leader", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TocBuilder", + "params": [ + { + "type": "DocumentLeader", + "name": "leader" + } + ] + }, + { + "kind": "method", + "name": "leaderColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TocBuilder", + "params": [ + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "entryStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TocBuilder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "pageNumberStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TocBuilder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "style" + } + ] + } + ] + }, + { + "name": "Transformable", + "binaryName": "com.demcha.compose.document.dsl.Transformable", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "DocumentTransform", + "name": null + } + ] + }, + { + "kind": "method", + "name": "currentTransform", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [] + }, + { + "kind": "method", + "name": "rotate", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "scale", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "scale", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "T", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.exceptions", + "types": [ + { + "name": "AtomicNodeTooLargeException", + "binaryName": "com.demcha.compose.document.exceptions.AtomicNodeTooLargeException", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "AtomicNodeTooLargeException", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "message" + } + ] + }, + { + "kind": "method", + "name": "forNode", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "AtomicNodeTooLargeException", + "params": [ + { + "type": "String", + "name": "path" + }, + { + "type": "double", + "name": "outerHeight" + }, + { + "type": "double", + "name": "pageHeight" + } + ] + } + ] + }, + { + "name": "DocumentRenderingException", + "binaryName": "com.demcha.compose.document.exceptions.DocumentRenderingException", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "DocumentRenderingException", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "message" + }, + { + "type": "Throwable", + "name": "cause" + } + ] + }, + { + "kind": "constructor", + "name": "DocumentRenderingException", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "message" + } + ] + } + ] + }, + { + "name": "MissingBackendException", + "binaryName": "com.demcha.compose.document.exceptions.MissingBackendException", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "MissingBackendException", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "message" + } + ] + } + ] + }, + { + "name": "UnsupportedNodeCapabilityException", + "binaryName": "com.demcha.compose.document.exceptions.UnsupportedNodeCapabilityException", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "UnsupportedNodeCapabilityException", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "message" + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.image", + "types": [ + { + "name": "DocumentImageData", + "binaryName": "com.demcha.compose.document.image.DocumentImageData", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "fromBytes", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentImageData", + "params": [ + { + "type": "byte[]", + "name": "bytes" + } + ] + }, + { + "kind": "method", + "name": "fromPath", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentImageData", + "params": [ + { + "type": "Path", + "name": "path" + } + ] + }, + { + "kind": "method", + "name": "fromPath", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentImageData", + "params": [ + { + "type": "String", + "name": "path" + } + ] + }, + { + "kind": "method", + "name": "bytes", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Optional", + "params": [] + }, + { + "kind": "method", + "name": "path", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Optional", + "params": [] + } + ] + }, + { + "name": "DocumentImageFitMode", + "binaryName": "com.demcha.compose.document.image.DocumentImageFitMode", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "STRETCH", + "static": true, + "origin": "generated", + "type": "DocumentImageFitMode" + }, + { + "kind": "constant", + "name": "CONTAIN", + "static": true, + "origin": "generated", + "type": "DocumentImageFitMode" + }, + { + "kind": "constant", + "name": "COVER", + "static": true, + "origin": "generated", + "type": "DocumentImageFitMode" + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.node", + "types": [ + { + "name": "AlignNode", + "binaryName": "com.demcha.compose.document.node.AlignNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "AlignNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "DocumentNode", + "name": null + }, + { + "type": "HorizontalAlign", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "AlignNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentNode", + "name": "child" + }, + { + "type": "HorizontalAlign", + "name": "align" + } + ] + }, + { + "kind": "method", + "name": "children", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "nodeKind", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "child", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentNode", + "params": [] + }, + { + "kind": "method", + "name": "align", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "HorizontalAlign", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + } + ] + }, + { + "name": "BarcodeNode", + "binaryName": "com.demcha.compose.document.node.BarcodeNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "BarcodeNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "DocumentBarcodeOptions", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentLinkTarget", + "name": null + }, + { + "type": "DocumentBookmarkOptions", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentTransform", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "BarcodeNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "DocumentBarcodeOptions", + "name": "barcodeOptions" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentTransform", + "name": "transform" + } + ] + }, + { + "kind": "constructor", + "name": "BarcodeNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "DocumentBarcodeOptions", + "name": "barcodeOptions" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "constructor", + "name": "BarcodeNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "DocumentBarcodeOptions", + "name": "barcodeOptions" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "barcodeOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBarcodeOptions", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLinkTarget", + "params": [] + }, + { + "kind": "method", + "name": "bookmarkOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBookmarkOptions", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "CanvasChild", + "binaryName": "com.demcha.compose.document.node.CanvasChild", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "CanvasChild", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentNode", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "node", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentNode", + "params": [] + }, + { + "kind": "method", + "name": "x", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "y", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "CanvasLayerNode", + "binaryName": "com.demcha.compose.document.node.CanvasLayerNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "CanvasLayerNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "ClipPolicy", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + } + ] + }, + { + "kind": "method", + "name": "children", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "placements", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "clipPolicy", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ClipPolicy", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + } + ] + }, + { + "name": "ChartNode", + "binaryName": "com.demcha.compose.document.node.ChartNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ChartNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "ChartSpec", + "name": null + }, + { + "type": "ChartStyle", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "ChartNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "ChartSpec", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "nodeKind", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "spec", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ChartSpec", + "params": [] + }, + { + "kind": "method", + "name": "style", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ChartStyle", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + } + ] + }, + { + "name": "ContainerNode", + "binaryName": "com.demcha.compose.document.node.ContainerNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ContainerNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentCornerRadius", + "name": null + }, + { + "type": "DocumentBorders", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "DocumentBookmarkOptions", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "ContainerNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "children" + }, + { + "type": "double", + "name": "spacing" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + }, + { + "type": "DocumentBorders", + "name": "borders" + }, + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "constructor", + "name": "ContainerNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "children" + }, + { + "type": "double", + "name": "spacing" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + }, + { + "type": "DocumentBorders", + "name": "borders" + } + ] + }, + { + "kind": "constructor", + "name": "ContainerNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "children" + }, + { + "type": "double", + "name": "spacing" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + } + ] + }, + { + "kind": "constructor", + "name": "ContainerNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "children" + }, + { + "type": "double", + "name": "spacing" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "children", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "spacing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentCornerRadius", + "params": [] + }, + { + "kind": "method", + "name": "borders", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBorders", + "params": [] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "bookmarkOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBookmarkOptions", + "params": [] + } + ] + }, + { + "name": "DocumentBarcodeOptions", + "binaryName": "com.demcha.compose.document.node.DocumentBarcodeOptions", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBarcodeOptions.DocumentBarcodeOptionsBuilder", + "params": [] + }, + { + "kind": "method", + "name": "toBuilder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBarcodeOptions.DocumentBarcodeOptionsBuilder", + "params": [] + }, + { + "kind": "method", + "name": "getContent", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getType", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBarcodeType", + "params": [] + }, + { + "kind": "method", + "name": "getForeground", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "getBackground", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "getQuietZoneMargin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + } + ] + }, + { + "name": "DocumentBarcodeOptions.DocumentBarcodeOptionsBuilder", + "binaryName": "com.demcha.compose.document.node.DocumentBarcodeOptions$DocumentBarcodeOptionsBuilder", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "content", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBarcodeOptions.DocumentBarcodeOptionsBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "type", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBarcodeOptions.DocumentBarcodeOptionsBuilder", + "params": [ + { + "type": "DocumentBarcodeType", + "name": null + } + ] + }, + { + "kind": "method", + "name": "foreground", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBarcodeOptions.DocumentBarcodeOptionsBuilder", + "params": [ + { + "type": "DocumentColor", + "name": null + } + ] + }, + { + "kind": "method", + "name": "background", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBarcodeOptions.DocumentBarcodeOptionsBuilder", + "params": [ + { + "type": "DocumentColor", + "name": null + } + ] + }, + { + "kind": "method", + "name": "quietZoneMargin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBarcodeOptions.DocumentBarcodeOptionsBuilder", + "params": [ + { + "type": "int", + "name": null + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBarcodeOptions", + "params": [] + } + ] + }, + { + "name": "DocumentBarcodeType", + "binaryName": "com.demcha.compose.document.node.DocumentBarcodeType", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "QR_CODE", + "static": true, + "origin": "generated", + "type": "DocumentBarcodeType" + }, + { + "kind": "constant", + "name": "CODE_128", + "static": true, + "origin": "generated", + "type": "DocumentBarcodeType" + }, + { + "kind": "constant", + "name": "CODE_39", + "static": true, + "origin": "generated", + "type": "DocumentBarcodeType" + }, + { + "kind": "constant", + "name": "EAN_13", + "static": true, + "origin": "generated", + "type": "DocumentBarcodeType" + }, + { + "kind": "constant", + "name": "EAN_8", + "static": true, + "origin": "generated", + "type": "DocumentBarcodeType" + }, + { + "kind": "constant", + "name": "UPC_A", + "static": true, + "origin": "generated", + "type": "DocumentBarcodeType" + }, + { + "kind": "constant", + "name": "PDF_417", + "static": true, + "origin": "generated", + "type": "DocumentBarcodeType" + }, + { + "kind": "constant", + "name": "DATA_MATRIX", + "static": true, + "origin": "generated", + "type": "DocumentBarcodeType" + } + ] + }, + { + "name": "DocumentBookmarkOptions", + "binaryName": "com.demcha.compose.document.node.DocumentBookmarkOptions", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "DocumentBookmarkOptions", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "constructor", + "name": "DocumentBookmarkOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "int", + "name": null + } + ] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "level", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + } + ] + }, + { + "name": "DocumentLinkOptions", + "binaryName": "com.demcha.compose.document.node.DocumentLinkOptions", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "DocumentLinkOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "uri", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "DocumentLinkTarget", + "binaryName": "com.demcha.compose.document.node.DocumentLinkTarget", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "external", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLinkTarget", + "params": [ + { + "type": "DocumentLinkOptions", + "name": null + } + ] + }, + { + "kind": "method", + "name": "external", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLinkTarget", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "anchor", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLinkTarget", + "params": [ + { + "type": "String", + "name": null + } + ] + } + ] + }, + { + "name": "DocumentNode", + "binaryName": "com.demcha.compose.document.node.DocumentNode", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "children", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "nodeKind", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "keepTogether", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "keepWithNext", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "bleed", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBleed", + "params": [] + } + ] + }, + { + "name": "EllipseNode", + "binaryName": "com.demcha.compose.document.node.EllipseNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "EllipseNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentLinkTarget", + "name": null + }, + { + "type": "DocumentBookmarkOptions", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentTransform", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "EllipseNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentTransform", + "name": "transform" + } + ] + }, + { + "kind": "constructor", + "name": "EllipseNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLinkTarget", + "params": [] + }, + { + "kind": "method", + "name": "bookmarkOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBookmarkOptions", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ExternalLinkTarget", + "binaryName": "com.demcha.compose.document.node.ExternalLinkTarget", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ExternalLinkTarget", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentLinkOptions", + "name": null + } + ] + }, + { + "kind": "method", + "name": "options", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLinkOptions", + "params": [] + } + ] + }, + { + "name": "HorizontalAlign", + "binaryName": "com.demcha.compose.document.node.HorizontalAlign", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "LEFT", + "static": true, + "origin": "generated", + "type": "HorizontalAlign" + }, + { + "kind": "constant", + "name": "CENTER", + "static": true, + "origin": "generated", + "type": "HorizontalAlign" + }, + { + "kind": "constant", + "name": "RIGHT", + "static": true, + "origin": "generated", + "type": "HorizontalAlign" + } + ] + }, + { + "name": "ImageNode", + "binaryName": "com.demcha.compose.document.node.ImageNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ImageNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "DocumentImageData", + "name": null + }, + { + "type": "Double", + "name": null + }, + { + "type": "Double", + "name": null + }, + { + "type": "Double", + "name": null + }, + { + "type": "DocumentImageFitMode", + "name": null + }, + { + "type": "DocumentLinkTarget", + "name": null + }, + { + "type": "DocumentBookmarkOptions", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentTransform", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "ImageNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "Double", + "name": "width" + }, + { + "type": "Double", + "name": "height" + }, + { + "type": "Double", + "name": "scale" + }, + { + "type": "DocumentImageFitMode", + "name": "fitMode" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentTransform", + "name": "transform" + } + ] + }, + { + "kind": "constructor", + "name": "ImageNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "Double", + "name": "width" + }, + { + "type": "Double", + "name": "height" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "constructor", + "name": "ImageNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "Double", + "name": "width" + }, + { + "type": "Double", + "name": "height" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "constructor", + "name": "ImageNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "Double", + "name": "width" + }, + { + "type": "Double", + "name": "height" + }, + { + "type": "Double", + "name": "scale" + }, + { + "type": "DocumentImageFitMode", + "name": "fitMode" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "imageData", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentImageData", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Double", + "params": [] + }, + { + "kind": "method", + "name": "scale", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Double", + "params": [] + }, + { + "kind": "method", + "name": "fitMode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentImageFitMode", + "params": [] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLinkTarget", + "params": [] + }, + { + "kind": "method", + "name": "bookmarkOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBookmarkOptions", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "InlineHighlightRun", + "binaryName": "com.demcha.compose.document.node.InlineHighlightRun", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "InlineHighlightRun", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "InlineBackground", + "name": null + }, + { + "type": "DocumentLinkTarget", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "InlineHighlightRun", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "InlineBackground", + "name": "background" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "constructor", + "name": "InlineHighlightRun", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "InlineBackground", + "name": "background" + } + ] + }, + { + "kind": "method", + "name": "text", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "textStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "background", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InlineBackground", + "params": [] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLinkTarget", + "params": [] + } + ] + }, + { + "name": "InlineImageAlignment", + "binaryName": "com.demcha.compose.document.node.InlineImageAlignment", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "BASELINE", + "static": true, + "origin": "generated", + "type": "InlineImageAlignment" + }, + { + "kind": "constant", + "name": "CENTER", + "static": true, + "origin": "generated", + "type": "InlineImageAlignment" + }, + { + "kind": "constant", + "name": "TEXT_TOP", + "static": true, + "origin": "generated", + "type": "InlineImageAlignment" + }, + { + "kind": "constant", + "name": "TEXT_BOTTOM", + "static": true, + "origin": "generated", + "type": "InlineImageAlignment" + } + ] + }, + { + "name": "InlineImageRun", + "binaryName": "com.demcha.compose.document.node.InlineImageRun", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "InlineImageRun", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentImageData", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "InlineImageAlignment", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentLinkTarget", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "InlineImageRun", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "constructor", + "name": "InlineImageRun", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + } + ] + }, + { + "kind": "constructor", + "name": "InlineImageRun", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentImageData", + "name": "imageData" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + }, + { + "type": "double", + "name": "baselineOffset" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "imageData", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentImageData", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "alignment", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InlineImageAlignment", + "params": [] + }, + { + "kind": "method", + "name": "baselineOffset", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLinkTarget", + "params": [] + } + ] + }, + { + "name": "InlineRun", + "binaryName": "com.demcha.compose.document.node.InlineRun", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [] + }, + { + "name": "InlineShapeRun", + "binaryName": "com.demcha.compose.document.node.InlineShapeRun", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "InlineShapeRun", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "List", + "name": null + }, + { + "type": "InlineImageAlignment", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentLinkTarget", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "InlineShapeRun", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "List", + "name": "layers" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + }, + { + "type": "double", + "name": "baselineOffset" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "constructor", + "name": "InlineShapeRun", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "ShapeOutline", + "name": "outline" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + }, + { + "type": "double", + "name": "baselineOffset" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "constructor", + "name": "InlineShapeRun", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "ShapeOutline", + "name": "outline" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "checkbox", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "InlineShapeRun", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "boolean", + "name": "checked" + }, + { + "type": "DocumentColor", + "name": "boxColor" + }, + { + "type": "DocumentColor", + "name": "checkColor" + } + ] + }, + { + "kind": "method", + "name": "checkbox", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "InlineShapeRun", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "boolean", + "name": "checked" + }, + { + "type": "ShapeOutline.CheckmarkStyle", + "name": "markStyle" + }, + { + "type": "DocumentColor", + "name": "boxColor" + }, + { + "type": "DocumentColor", + "name": "checkColor" + } + ] + }, + { + "kind": "method", + "name": "checkbox", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "InlineShapeRun", + "params": [ + { + "type": "double", + "name": "size" + }, + { + "type": "boolean", + "name": "checked" + }, + { + "type": "ShapeOutline", + "name": "mark" + }, + { + "type": "DocumentColor", + "name": "boxColor" + }, + { + "type": "DocumentColor", + "name": "checkColor" + } + ] + }, + { + "kind": "method", + "name": "layers", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "alignment", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InlineImageAlignment", + "params": [] + }, + { + "kind": "method", + "name": "baselineOffset", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLinkTarget", + "params": [] + } + ] + }, + { + "name": "InlineSvgRun", + "binaryName": "com.demcha.compose.document.node.InlineSvgRun", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "InlineSvgRun", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "SvgIcon", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "InlineImageAlignment", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentLinkTarget", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "InlineSvgRun", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "SvgIcon", + "name": "icon" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "constructor", + "name": "InlineSvgRun", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "SvgIcon", + "name": "icon" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "InlineImageAlignment", + "name": "alignment" + }, + { + "type": "double", + "name": "baselineOffset" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "method", + "name": "icon", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "SvgIcon", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "alignment", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InlineImageAlignment", + "params": [] + }, + { + "kind": "method", + "name": "baselineOffset", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLinkTarget", + "params": [] + } + ] + }, + { + "name": "InlineTextRun", + "binaryName": "com.demcha.compose.document.node.InlineTextRun", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "InlineTextRun", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "DocumentLinkTarget", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "InlineTextRun", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + } + ] + }, + { + "kind": "constructor", + "name": "InlineTextRun", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + } + ] + }, + { + "kind": "constructor", + "name": "InlineTextRun", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "text", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "textStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLinkTarget", + "params": [] + } + ] + }, + { + "name": "InternalLinkTarget", + "binaryName": "com.demcha.compose.document.node.InternalLinkTarget", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "InternalLinkTarget", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "LayerAlign", + "binaryName": "com.demcha.compose.document.node.LayerAlign", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "TOP_LEFT", + "static": true, + "origin": "generated", + "type": "LayerAlign" + }, + { + "kind": "constant", + "name": "TOP_CENTER", + "static": true, + "origin": "generated", + "type": "LayerAlign" + }, + { + "kind": "constant", + "name": "TOP_RIGHT", + "static": true, + "origin": "generated", + "type": "LayerAlign" + }, + { + "kind": "constant", + "name": "CENTER_LEFT", + "static": true, + "origin": "generated", + "type": "LayerAlign" + }, + { + "kind": "constant", + "name": "CENTER", + "static": true, + "origin": "generated", + "type": "LayerAlign" + }, + { + "kind": "constant", + "name": "CENTER_RIGHT", + "static": true, + "origin": "generated", + "type": "LayerAlign" + }, + { + "kind": "constant", + "name": "BOTTOM_LEFT", + "static": true, + "origin": "generated", + "type": "LayerAlign" + }, + { + "kind": "constant", + "name": "BOTTOM_CENTER", + "static": true, + "origin": "generated", + "type": "LayerAlign" + }, + { + "kind": "constant", + "name": "BOTTOM_RIGHT", + "static": true, + "origin": "generated", + "type": "LayerAlign" + } + ] + }, + { + "name": "LayerStackNode", + "binaryName": "com.demcha.compose.document.node.LayerStackNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "LayerStackNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "LayerStackNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "layers" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "children", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "layers", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "clipToBounds", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + } + ] + }, + { + "name": "LayerStackNode.Layer", + "binaryName": "com.demcha.compose.document.node.LayerStackNode$Layer", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Layer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentNode", + "name": null + }, + { + "type": "LayerAlign", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "int", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "Layer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "constructor", + "name": "Layer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentNode", + "name": "node" + }, + { + "type": "LayerAlign", + "name": "align" + } + ] + }, + { + "kind": "constructor", + "name": "Layer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentNode", + "name": "node" + }, + { + "type": "LayerAlign", + "name": "align" + }, + { + "type": "double", + "name": "offsetX" + }, + { + "type": "double", + "name": "offsetY" + } + ] + }, + { + "kind": "method", + "name": "back", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackNode.Layer", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "center", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackNode.Layer", + "params": [ + { + "type": "DocumentNode", + "name": "node" + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackNode.Layer", + "params": [ + { + "type": "DocumentNode", + "name": "node" + }, + { + "type": "LayerAlign", + "name": "align" + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackNode.Layer", + "params": [ + { + "type": "DocumentNode", + "name": "node" + }, + { + "type": "LayerAlign", + "name": "align" + }, + { + "type": "double", + "name": "offsetX" + }, + { + "type": "double", + "name": "offsetY" + } + ] + }, + { + "kind": "method", + "name": "node", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentNode", + "params": [] + }, + { + "kind": "method", + "name": "align", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LayerAlign", + "params": [] + }, + { + "kind": "method", + "name": "offsetX", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "offsetY", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "zIndex", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + } + ] + }, + { + "name": "LineNode", + "binaryName": "com.demcha.compose.document.node.LineNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "LineNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentLinkTarget", + "name": null + }, + { + "type": "DocumentBookmarkOptions", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentTransform", + "name": null + }, + { + "type": "DocumentDashPattern", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "DocumentLineCap", + "name": null + }, + { + "type": "boolean", + "name": null + }, + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "LineNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "double", + "name": "startX" + }, + { + "type": "double", + "name": "startY" + }, + { + "type": "double", + "name": "endX" + }, + { + "type": "double", + "name": "endY" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentLinkTarget", + "name": "linkTarget" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentTransform", + "name": "transform" + }, + { + "type": "DocumentDashPattern", + "name": "dashPattern" + }, + { + "type": "String", + "name": "anchor" + }, + { + "type": "DocumentLineCap", + "name": "lineCap" + }, + { + "type": "boolean", + "name": "fillWidth" + } + ] + }, + { + "kind": "constructor", + "name": "LineNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "double", + "name": "startX" + }, + { + "type": "double", + "name": "startY" + }, + { + "type": "double", + "name": "endX" + }, + { + "type": "double", + "name": "endY" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentLinkTarget", + "name": "linkTarget" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentTransform", + "name": "transform" + }, + { + "type": "DocumentDashPattern", + "name": "dashPattern" + }, + { + "type": "String", + "name": "anchor" + }, + { + "type": "DocumentLineCap", + "name": "lineCap" + } + ] + }, + { + "kind": "constructor", + "name": "LineNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "double", + "name": "startX" + }, + { + "type": "double", + "name": "startY" + }, + { + "type": "double", + "name": "endX" + }, + { + "type": "double", + "name": "endY" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentLinkTarget", + "name": "linkTarget" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentTransform", + "name": "transform" + }, + { + "type": "DocumentDashPattern", + "name": "dashPattern" + }, + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "constructor", + "name": "LineNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "double", + "name": "startX" + }, + { + "type": "double", + "name": "startY" + }, + { + "type": "double", + "name": "endX" + }, + { + "type": "double", + "name": "endY" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentTransform", + "name": "transform" + }, + { + "type": "DocumentDashPattern", + "name": "dashPattern" + } + ] + }, + { + "kind": "constructor", + "name": "LineNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "double", + "name": "startX" + }, + { + "type": "double", + "name": "startY" + }, + { + "type": "double", + "name": "endX" + }, + { + "type": "double", + "name": "endY" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentTransform", + "name": "transform" + } + ] + }, + { + "kind": "constructor", + "name": "LineNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "double", + "name": "startX" + }, + { + "type": "double", + "name": "startY" + }, + { + "type": "double", + "name": "endX" + }, + { + "type": "double", + "name": "endY" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "startX", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "startY", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "endX", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "endY", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLinkTarget", + "params": [] + }, + { + "kind": "method", + "name": "bookmarkOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBookmarkOptions", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [] + }, + { + "kind": "method", + "name": "dashPattern", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentDashPattern", + "params": [] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "lineCap", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLineCap", + "params": [] + }, + { + "kind": "method", + "name": "fillWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "keepWithNext", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + } + ] + }, + { + "name": "ListItem", + "binaryName": "com.demcha.compose.document.node.ListItem", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ListItem", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "ListMarker", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ListItem", + "params": [ + { + "type": "String", + "name": "label" + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ListItem", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "List", + "name": "children" + } + ] + }, + { + "kind": "method", + "name": "isLeaf", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "marker", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ListMarker", + "params": [] + }, + { + "kind": "method", + "name": "children", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "ListMarker", + "binaryName": "com.demcha.compose.document.node.ListMarker", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ListMarker", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "bullet", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ListMarker", + "params": [] + }, + { + "kind": "method", + "name": "dash", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ListMarker", + "params": [] + }, + { + "kind": "method", + "name": "none", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ListMarker", + "params": [] + }, + { + "kind": "method", + "name": "custom", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ListMarker", + "params": [ + { + "type": "String", + "name": "marker" + } + ] + }, + { + "kind": "method", + "name": "defaultForDepth", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ListMarker", + "params": [ + { + "type": "int", + "name": "depth" + } + ] + }, + { + "kind": "method", + "name": "normalizeItemText", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [ + { + "type": "String", + "name": "value" + }, + { + "type": "boolean", + "name": "normalizeMarkers" + } + ] + }, + { + "kind": "method", + "name": "isVisible", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "prefix", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "value", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ListNode", + "binaryName": "com.demcha.compose.document.node.ListNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ListNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "ListMarker", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "TextAlign", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "boolean", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "ListNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "items" + }, + { + "type": "ListMarker", + "name": "marker" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "TextAlign", + "name": "align" + }, + { + "type": "double", + "name": "lineSpacing" + }, + { + "type": "double", + "name": "itemSpacing" + }, + { + "type": "String", + "name": "continuationIndent" + }, + { + "type": "boolean", + "name": "normalizeMarkers" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "items", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "nestedItems", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "marker", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ListMarker", + "params": [] + }, + { + "kind": "method", + "name": "textStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "align", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "TextAlign", + "params": [] + }, + { + "kind": "method", + "name": "lineSpacing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "itemSpacing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "continuationIndent", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "normalizeMarkers", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + } + ] + }, + { + "name": "PageBreakNode", + "binaryName": "com.demcha.compose.document.node.PageBreakNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "PageBreakNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + } + ] + }, + { + "name": "PageReferenceNode", + "binaryName": "com.demcha.compose.document.node.PageReferenceNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "PageReferenceNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "TextAlign", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "PageReferenceNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "anchor" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "TextAlign", + "name": "align" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "textStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "align", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "TextAlign", + "params": [] + }, + { + "kind": "method", + "name": "placeholderText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + } + ] + }, + { + "name": "ParagraphNode", + "binaryName": "com.demcha.compose.document.node.ParagraphNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ParagraphNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "TextAlign", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "DocumentTextIndent", + "name": null + }, + { + "type": "DocumentLinkTarget", + "name": null + }, + { + "type": "DocumentBookmarkOptions", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentTextAutoSize", + "name": null + }, + { + "type": "TextVerticalAlign", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "TextDirection", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "ParagraphNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "List", + "name": "inlineRuns" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "TextAlign", + "name": "align" + }, + { + "type": "double", + "name": "lineSpacing" + }, + { + "type": "String", + "name": "bulletOffset" + }, + { + "type": "DocumentTextIndent", + "name": "indentStrategy" + }, + { + "type": "DocumentLinkTarget", + "name": "linkTarget" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentTextAutoSize", + "name": "autoSize" + }, + { + "type": "TextVerticalAlign", + "name": "verticalAlign" + }, + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "constructor", + "name": "ParagraphNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "List", + "name": "inlineRuns" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "TextAlign", + "name": "align" + }, + { + "type": "double", + "name": "lineSpacing" + }, + { + "type": "String", + "name": "bulletOffset" + }, + { + "type": "DocumentTextIndent", + "name": "indentStrategy" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentTextAutoSize", + "name": "autoSize" + }, + { + "type": "TextVerticalAlign", + "name": "verticalAlign" + } + ] + }, + { + "kind": "constructor", + "name": "ParagraphNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "List", + "name": "inlineRuns" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "TextAlign", + "name": "align" + }, + { + "type": "double", + "name": "lineSpacing" + }, + { + "type": "String", + "name": "bulletOffset" + }, + { + "type": "DocumentTextIndent", + "name": "indentStrategy" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentTextAutoSize", + "name": "autoSize" + } + ] + }, + { + "kind": "constructor", + "name": "ParagraphNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "List", + "name": "inlineRuns" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "TextAlign", + "name": "align" + }, + { + "type": "double", + "name": "lineSpacing" + }, + { + "type": "String", + "name": "bulletOffset" + }, + { + "type": "DocumentTextIndent", + "name": "indentStrategy" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "constructor", + "name": "ParagraphNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "TextAlign", + "name": "align" + }, + { + "type": "double", + "name": "lineSpacing" + }, + { + "type": "String", + "name": "bulletOffset" + }, + { + "type": "DocumentTextIndent", + "name": "indentStrategy" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "constructor", + "name": "ParagraphNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "TextAlign", + "name": "align" + }, + { + "type": "double", + "name": "lineSpacing" + }, + { + "type": "String", + "name": "bulletOffset" + }, + { + "type": "DocumentTextIndent", + "name": "indentStrategy" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "constructor", + "name": "ParagraphNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "textStyle" + }, + { + "type": "TextAlign", + "name": "align" + }, + { + "type": "double", + "name": "lineSpacing" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "inlineTextRuns", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "text", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "inlineRuns", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "textStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "align", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "TextAlign", + "params": [] + }, + { + "kind": "method", + "name": "lineSpacing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "bulletOffset", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "indentStrategy", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextIndent", + "params": [] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLinkTarget", + "params": [] + }, + { + "kind": "method", + "name": "bookmarkOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBookmarkOptions", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "autoSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextAutoSize", + "params": [] + }, + { + "kind": "method", + "name": "verticalAlign", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "TextVerticalAlign", + "params": [] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "direction", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "TextDirection", + "params": [] + } + ] + }, + { + "name": "PathNode", + "binaryName": "com.demcha.compose.document.node.PathNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "PathNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentPaint", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentPaint", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentDashPattern", + "name": null + }, + { + "type": "DocumentLineCap", + "name": null + }, + { + "type": "DocumentLineJoin", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "PathNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "List", + "name": "segments" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentDashPattern", + "name": "dashPattern" + } + ] + }, + { + "kind": "constructor", + "name": "PathNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "List", + "name": "segments" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentPaint", + "name": "fillPaint" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentPaint", + "name": "strokePaint" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentDashPattern", + "name": "dashPattern" + } + ] + }, + { + "kind": "method", + "name": "nodeKind", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "segments", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "fillPaint", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPaint", + "params": [] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "strokePaint", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPaint", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "dashPattern", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentDashPattern", + "params": [] + }, + { + "kind": "method", + "name": "lineCap", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLineCap", + "params": [] + }, + { + "kind": "method", + "name": "lineJoin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLineJoin", + "params": [] + } + ] + }, + { + "name": "PolygonNode", + "binaryName": "com.demcha.compose.document.node.PolygonNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "PolygonNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + } + ] + }, + { + "kind": "method", + "name": "nodeKind", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "points", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + } + ] + }, + { + "name": "RowArrangement", + "binaryName": "com.demcha.compose.document.node.RowArrangement", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "START", + "static": true, + "origin": "generated", + "type": "RowArrangement" + }, + { + "kind": "constant", + "name": "CENTER", + "static": true, + "origin": "generated", + "type": "RowArrangement" + }, + { + "kind": "constant", + "name": "END", + "static": true, + "origin": "generated", + "type": "RowArrangement" + }, + { + "kind": "constant", + "name": "SPACE_BETWEEN", + "static": true, + "origin": "generated", + "type": "RowArrangement" + }, + { + "kind": "constant", + "name": "SPACE_AROUND", + "static": true, + "origin": "generated", + "type": "RowArrangement" + }, + { + "kind": "constant", + "name": "SPACE_EVENLY", + "static": true, + "origin": "generated", + "type": "RowArrangement" + } + ] + }, + { + "name": "RowNode", + "binaryName": "com.demcha.compose.document.node.RowNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "RowNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentCornerRadius", + "name": null + }, + { + "type": "DocumentBorders", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "RowVerticalAlign", + "name": null + }, + { + "type": "RowArrangement", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "RowNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "children" + }, + { + "type": "List", + "name": "weights" + }, + { + "type": "double", + "name": "gap" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + }, + { + "type": "DocumentBorders", + "name": "borders" + }, + { + "type": "List", + "name": "columns" + }, + { + "type": "RowVerticalAlign", + "name": "verticalAlign" + } + ] + }, + { + "kind": "constructor", + "name": "RowNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "children" + }, + { + "type": "List", + "name": "weights" + }, + { + "type": "double", + "name": "gap" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + }, + { + "type": "DocumentBorders", + "name": "borders" + }, + { + "type": "List", + "name": "columns" + } + ] + }, + { + "kind": "constructor", + "name": "RowNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "children" + }, + { + "type": "List", + "name": "weights" + }, + { + "type": "double", + "name": "gap" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + }, + { + "type": "DocumentBorders", + "name": "borders" + } + ] + }, + { + "kind": "constructor", + "name": "RowNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "children" + }, + { + "type": "List", + "name": "weights" + }, + { + "type": "double", + "name": "gap" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "children", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "weights", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "gap", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentCornerRadius", + "params": [] + }, + { + "kind": "method", + "name": "borders", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBorders", + "params": [] + }, + { + "kind": "method", + "name": "columns", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "verticalAlign", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "RowVerticalAlign", + "params": [] + }, + { + "kind": "method", + "name": "arrangement", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "RowArrangement", + "params": [] + } + ] + }, + { + "name": "RowVerticalAlign", + "binaryName": "com.demcha.compose.document.node.RowVerticalAlign", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "TOP", + "static": true, + "origin": "generated", + "type": "RowVerticalAlign" + }, + { + "kind": "constant", + "name": "CENTER", + "static": true, + "origin": "generated", + "type": "RowVerticalAlign" + }, + { + "kind": "constant", + "name": "BOTTOM", + "static": true, + "origin": "generated", + "type": "RowVerticalAlign" + } + ] + }, + { + "name": "SectionNode", + "binaryName": "com.demcha.compose.document.node.SectionNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "SectionNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentCornerRadius", + "name": null + }, + { + "type": "DocumentBorders", + "name": null + }, + { + "type": "boolean", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "DocumentBleed", + "name": null + }, + { + "type": "DocumentBookmarkOptions", + "name": null + }, + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "SectionNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "children" + }, + { + "type": "double", + "name": "spacing" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + }, + { + "type": "DocumentBorders", + "name": "borders" + }, + { + "type": "boolean", + "name": "keepTogether" + }, + { + "type": "String", + "name": "anchor" + }, + { + "type": "DocumentBleed", + "name": "bleed" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + } + ] + }, + { + "kind": "constructor", + "name": "SectionNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "children" + }, + { + "type": "double", + "name": "spacing" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + }, + { + "type": "DocumentBorders", + "name": "borders" + }, + { + "type": "boolean", + "name": "keepTogether" + }, + { + "type": "String", + "name": "anchor" + }, + { + "type": "DocumentBleed", + "name": "bleed" + } + ] + }, + { + "kind": "constructor", + "name": "SectionNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "children" + }, + { + "type": "double", + "name": "spacing" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + }, + { + "type": "DocumentBorders", + "name": "borders" + }, + { + "type": "boolean", + "name": "keepTogether" + }, + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "constructor", + "name": "SectionNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "children" + }, + { + "type": "double", + "name": "spacing" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + }, + { + "type": "DocumentBorders", + "name": "borders" + }, + { + "type": "boolean", + "name": "keepTogether" + } + ] + }, + { + "kind": "constructor", + "name": "SectionNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "children" + }, + { + "type": "double", + "name": "spacing" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + }, + { + "type": "DocumentBorders", + "name": "borders" + } + ] + }, + { + "kind": "constructor", + "name": "SectionNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "children" + }, + { + "type": "double", + "name": "spacing" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + } + ] + }, + { + "kind": "constructor", + "name": "SectionNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "children" + }, + { + "type": "double", + "name": "spacing" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "children", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "spacing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentCornerRadius", + "params": [] + }, + { + "kind": "method", + "name": "borders", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBorders", + "params": [] + }, + { + "kind": "method", + "name": "keepTogether", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "bleed", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBleed", + "params": [] + }, + { + "kind": "method", + "name": "bookmarkOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBookmarkOptions", + "params": [] + }, + { + "kind": "method", + "name": "keepWithNext", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + } + ] + }, + { + "name": "ShapeContainerNode", + "binaryName": "com.demcha.compose.document.node.ShapeContainerNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ShapeContainerNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "ShapeOutline", + "name": "outline" + }, + { + "type": "List", + "name": "layers" + }, + { + "type": "ClipPolicy", + "name": "clipPolicy" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "constructor", + "name": "ShapeContainerNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "ShapeOutline", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "ClipPolicy", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentTransform", + "name": null + } + ] + }, + { + "kind": "method", + "name": "children", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "outline", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline", + "params": [] + }, + { + "kind": "method", + "name": "layers", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "clipPolicy", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ClipPolicy", + "params": [] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [] + } + ] + }, + { + "name": "ShapeLayer", + "binaryName": "com.demcha.compose.document.node.ShapeLayer", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ShapeLayer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "ShapeOutline", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "ShapeLayer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "ShapeOutline", + "name": "outline" + }, + { + "type": "DocumentColor", + "name": "fill" + } + ] + }, + { + "kind": "method", + "name": "outline", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline", + "params": [] + }, + { + "kind": "method", + "name": "fill", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + } + ] + }, + { + "name": "ShapeNode", + "binaryName": "com.demcha.compose.document.node.ShapeNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ShapeNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentTransform", + "name": "transform" + }, + { + "type": "DocumentPaint", + "name": "fillPaint" + } + ] + }, + { + "kind": "constructor", + "name": "ShapeNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "DocumentTransform", + "name": "transform" + } + ] + }, + { + "kind": "constructor", + "name": "ShapeNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentCornerRadius", + "name": null + }, + { + "type": "DocumentLinkTarget", + "name": null + }, + { + "type": "DocumentBookmarkOptions", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentTransform", + "name": null + }, + { + "type": "DocumentPaint", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "ShapeNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "Color", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "constructor", + "name": "ShapeNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "constructor", + "name": "ShapeNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentColor", + "name": "fillColor" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentCornerRadius", + "name": "cornerRadius" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentCornerRadius", + "params": [] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLinkTarget", + "params": [] + }, + { + "kind": "method", + "name": "bookmarkOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBookmarkOptions", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "transform", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [] + }, + { + "kind": "method", + "name": "fillPaint", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPaint", + "params": [] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "SpacerNode", + "binaryName": "com.demcha.compose.document.node.SpacerNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "SpacerNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "SpacerNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "grow", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "TableNode", + "binaryName": "com.demcha.compose.document.node.TableNode", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "TableNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "columns" + }, + { + "type": "List>", + "name": "rows" + }, + { + "type": "DocumentTableStyle", + "name": "defaultCellStyle" + }, + { + "type": "Double", + "name": "width" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "constructor", + "name": "TableNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "columns" + }, + { + "type": "List>", + "name": "rows" + }, + { + "type": "DocumentTableStyle", + "name": "defaultCellStyle" + }, + { + "type": "Map", + "name": "rowStyles" + }, + { + "type": "Map", + "name": "columnStyles" + }, + { + "type": "Double", + "name": "width" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "constructor", + "name": "TableNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "columns" + }, + { + "type": "List>", + "name": "rows" + }, + { + "type": "DocumentTableStyle", + "name": "defaultCellStyle" + }, + { + "type": "Map", + "name": "rowStyles" + }, + { + "type": "Map", + "name": "columnStyles" + }, + { + "type": "Double", + "name": "width" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "constructor", + "name": "TableNode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "List", + "name": "columns" + }, + { + "type": "List>", + "name": "rows" + }, + { + "type": "DocumentTableStyle", + "name": "defaultCellStyle" + }, + { + "type": "Map", + "name": "rowStyles" + }, + { + "type": "Map", + "name": "columnStyles" + }, + { + "type": "Double", + "name": "width" + }, + { + "type": "DocumentLinkOptions", + "name": "linkOptions" + }, + { + "type": "DocumentBookmarkOptions", + "name": "bookmarkOptions" + }, + { + "type": "DocumentInsets", + "name": "padding" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "int", + "name": "repeatedHeaderRowCount" + } + ] + }, + { + "kind": "constructor", + "name": "TableNode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List>", + "name": null + }, + { + "type": "DocumentTableStyle", + "name": null + }, + { + "type": "Map", + "name": null + }, + { + "type": "Map", + "name": null + }, + { + "type": "Double", + "name": null + }, + { + "type": "DocumentLinkTarget", + "name": null + }, + { + "type": "DocumentBookmarkOptions", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "columns", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "rows", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List>", + "params": [] + }, + { + "kind": "method", + "name": "defaultCellStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTableStyle", + "params": [] + }, + { + "kind": "method", + "name": "rowStyles", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Map", + "params": [] + }, + { + "kind": "method", + "name": "columnStyles", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Map", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Double", + "params": [] + }, + { + "kind": "method", + "name": "linkTarget", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLinkTarget", + "params": [] + }, + { + "kind": "method", + "name": "bookmarkOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentBookmarkOptions", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "repeatedHeaderRowCount", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "TextAlign", + "binaryName": "com.demcha.compose.document.node.TextAlign", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "LEFT", + "static": true, + "origin": "generated", + "type": "TextAlign" + }, + { + "kind": "constant", + "name": "CENTER", + "static": true, + "origin": "generated", + "type": "TextAlign" + }, + { + "kind": "constant", + "name": "RIGHT", + "static": true, + "origin": "generated", + "type": "TextAlign" + } + ] + }, + { + "name": "TextDirection", + "binaryName": "com.demcha.compose.document.node.TextDirection", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "LTR", + "static": true, + "origin": "generated", + "type": "TextDirection" + }, + { + "kind": "constant", + "name": "RTL", + "static": true, + "origin": "generated", + "type": "TextDirection" + }, + { + "kind": "constant", + "name": "AUTO", + "static": true, + "origin": "generated", + "type": "TextDirection" + } + ] + }, + { + "name": "TextVerticalAlign", + "binaryName": "com.demcha.compose.document.node.TextVerticalAlign", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "DEFAULT", + "static": true, + "origin": "generated", + "type": "TextVerticalAlign" + }, + { + "kind": "constant", + "name": "TOP", + "static": true, + "origin": "generated", + "type": "TextVerticalAlign" + }, + { + "kind": "constant", + "name": "CENTER", + "static": true, + "origin": "generated", + "type": "TextVerticalAlign" + }, + { + "kind": "constant", + "name": "BOTTOM", + "static": true, + "origin": "generated", + "type": "TextVerticalAlign" + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.output", + "types": [ + { + "name": "DocumentDebugOptions", + "binaryName": "com.demcha.compose.document.output.DocumentDebugOptions", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "DocumentDebugOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "boolean", + "name": null + }, + { + "type": "boolean", + "name": null + }, + { + "type": "DocumentDebugOptions.LabelText", + "name": null + } + ] + }, + { + "kind": "method", + "name": "none", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentDebugOptions", + "params": [] + }, + { + "kind": "method", + "name": "guides", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentDebugOptions", + "params": [] + }, + { + "kind": "method", + "name": "nodeLabels", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentDebugOptions", + "params": [] + }, + { + "kind": "method", + "name": "guidesAndNodeLabels", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentDebugOptions", + "params": [] + }, + { + "kind": "method", + "name": "withGuides", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentDebugOptions", + "params": [ + { + "type": "boolean", + "name": "enabled" + } + ] + }, + { + "kind": "method", + "name": "withNodeLabels", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentDebugOptions", + "params": [ + { + "type": "boolean", + "name": "enabled" + } + ] + }, + { + "kind": "method", + "name": "withLabelText", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentDebugOptions", + "params": [ + { + "type": "DocumentDebugOptions.LabelText", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "enabled", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "showGuides", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "showNodeLabels", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "labelText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentDebugOptions.LabelText", + "params": [] + } + ] + }, + { + "name": "DocumentDebugOptions.LabelText", + "binaryName": "com.demcha.compose.document.output.DocumentDebugOptions$LabelText", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "NAME", + "static": true, + "origin": "generated", + "type": "DocumentDebugOptions.LabelText" + }, + { + "kind": "constant", + "name": "FULL_PATH", + "static": true, + "origin": "generated", + "type": "DocumentDebugOptions.LabelText" + } + ] + }, + { + "name": "DocumentHeaderFooter", + "binaryName": "com.demcha.compose.document.output.DocumentHeaderFooter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "withZone", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentHeaderFooter", + "params": [ + { + "type": "DocumentHeaderFooterZone", + "name": "zone" + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentHeaderFooter.DocumentHeaderFooterBuilder", + "params": [] + }, + { + "kind": "method", + "name": "toBuilder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentHeaderFooter.DocumentHeaderFooterBuilder", + "params": [] + }, + { + "kind": "method", + "name": "getZone", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentHeaderFooterZone", + "params": [] + }, + { + "kind": "method", + "name": "getHeight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "float", + "params": [] + }, + { + "kind": "method", + "name": "getLeftText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getCenterText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getRightText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getFontSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "float", + "params": [] + }, + { + "kind": "method", + "name": "getTextColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "isShowSeparator", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "getSeparatorColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "getSeparatorThickness", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "float", + "params": [] + }, + { + "kind": "method", + "name": "getNumbering", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPageNumbering", + "params": [] + } + ] + }, + { + "name": "DocumentHeaderFooter.DocumentHeaderFooterBuilder", + "binaryName": "com.demcha.compose.document.output.DocumentHeaderFooter$DocumentHeaderFooterBuilder", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "zone", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentHeaderFooter.DocumentHeaderFooterBuilder", + "params": [ + { + "type": "DocumentHeaderFooterZone", + "name": null + } + ] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentHeaderFooter.DocumentHeaderFooterBuilder", + "params": [ + { + "type": "float", + "name": null + } + ] + }, + { + "kind": "method", + "name": "leftText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentHeaderFooter.DocumentHeaderFooterBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "centerText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentHeaderFooter.DocumentHeaderFooterBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "rightText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentHeaderFooter.DocumentHeaderFooterBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "fontSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentHeaderFooter.DocumentHeaderFooterBuilder", + "params": [ + { + "type": "float", + "name": null + } + ] + }, + { + "kind": "method", + "name": "textColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentHeaderFooter.DocumentHeaderFooterBuilder", + "params": [ + { + "type": "DocumentColor", + "name": null + } + ] + }, + { + "kind": "method", + "name": "showSeparator", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentHeaderFooter.DocumentHeaderFooterBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "separatorColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentHeaderFooter.DocumentHeaderFooterBuilder", + "params": [ + { + "type": "DocumentColor", + "name": null + } + ] + }, + { + "kind": "method", + "name": "separatorThickness", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentHeaderFooter.DocumentHeaderFooterBuilder", + "params": [ + { + "type": "float", + "name": null + } + ] + }, + { + "kind": "method", + "name": "numbering", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentHeaderFooter.DocumentHeaderFooterBuilder", + "params": [ + { + "type": "DocumentPageNumbering", + "name": null + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentHeaderFooter", + "params": [] + } + ] + }, + { + "name": "DocumentHeaderFooterZone", + "binaryName": "com.demcha.compose.document.output.DocumentHeaderFooterZone", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "HEADER", + "static": true, + "origin": "generated", + "type": "DocumentHeaderFooterZone" + }, + { + "kind": "constant", + "name": "FOOTER", + "static": true, + "origin": "generated", + "type": "DocumentHeaderFooterZone" + } + ] + }, + { + "name": "DocumentMetadata", + "binaryName": "com.demcha.compose.document.output.DocumentMetadata", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata.DocumentMetadataBuilder", + "params": [] + }, + { + "kind": "method", + "name": "toBuilder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata.DocumentMetadataBuilder", + "params": [] + }, + { + "kind": "method", + "name": "getTitle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getAuthor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getSubject", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getKeywords", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getCreator", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getProducer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "DocumentMetadata.DocumentMetadataBuilder", + "binaryName": "com.demcha.compose.document.output.DocumentMetadata$DocumentMetadataBuilder", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata.DocumentMetadataBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "author", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata.DocumentMetadataBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "subject", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata.DocumentMetadataBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "keywords", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata.DocumentMetadataBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "creator", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata.DocumentMetadataBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "producer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata.DocumentMetadataBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata", + "params": [] + } + ] + }, + { + "name": "DocumentOutputOptions", + "binaryName": "com.demcha.compose.document.output.DocumentOutputOptions", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "EMPTY", + "static": true, + "origin": "generated", + "type": "DocumentOutputOptions" + }, + { + "kind": "constructor", + "name": "DocumentOutputOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentMetadata", + "name": null + }, + { + "type": "DocumentWatermark", + "name": null + }, + { + "type": "DocumentProtection", + "name": null + }, + { + "type": "DocumentViewerPreferences", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "DocumentOutputOptions", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentMetadata", + "name": "metadata" + }, + { + "type": "DocumentWatermark", + "name": "watermark" + }, + { + "type": "DocumentProtection", + "name": "protection" + }, + { + "type": "List", + "name": "headersAndFooters" + } + ] + }, + { + "kind": "method", + "name": "hasAny", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "metadata", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata", + "params": [] + }, + { + "kind": "method", + "name": "watermark", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentWatermark", + "params": [] + }, + { + "kind": "method", + "name": "protection", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentProtection", + "params": [] + }, + { + "kind": "method", + "name": "viewerPreferences", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentViewerPreferences", + "params": [] + }, + { + "kind": "method", + "name": "headersAndFooters", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "DocumentPageNumbering", + "binaryName": "com.demcha.compose.document.output.DocumentPageNumbering", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "DEFAULT", + "static": true, + "origin": "generated", + "type": "DocumentPageNumbering" + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPageNumbering.DocumentPageNumberingBuilder", + "params": [] + }, + { + "kind": "method", + "name": "toBuilder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPageNumbering.DocumentPageNumberingBuilder", + "params": [] + }, + { + "kind": "method", + "name": "getStartAt", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "getCountFrom", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "isShowOnFirstPage", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "getStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPageNumberStyle", + "params": [] + } + ] + }, + { + "name": "DocumentPageNumbering.DocumentPageNumberingBuilder", + "binaryName": "com.demcha.compose.document.output.DocumentPageNumbering$DocumentPageNumberingBuilder", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "startAt", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPageNumbering.DocumentPageNumberingBuilder", + "params": [ + { + "type": "int", + "name": null + } + ] + }, + { + "kind": "method", + "name": "countFrom", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPageNumbering.DocumentPageNumberingBuilder", + "params": [ + { + "type": "int", + "name": null + } + ] + }, + { + "kind": "method", + "name": "showOnFirstPage", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPageNumbering.DocumentPageNumberingBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "style", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPageNumbering.DocumentPageNumberingBuilder", + "params": [ + { + "type": "DocumentPageNumberStyle", + "name": null + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPageNumbering", + "params": [] + } + ] + }, + { + "name": "DocumentPageNumberStyle", + "binaryName": "com.demcha.compose.document.output.DocumentPageNumberStyle", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "DECIMAL", + "static": true, + "origin": "generated", + "type": "DocumentPageNumberStyle" + }, + { + "kind": "constant", + "name": "LOWER_ROMAN", + "static": true, + "origin": "generated", + "type": "DocumentPageNumberStyle" + }, + { + "kind": "constant", + "name": "UPPER_ROMAN", + "static": true, + "origin": "generated", + "type": "DocumentPageNumberStyle" + }, + { + "kind": "constant", + "name": "LOWER_ALPHA", + "static": true, + "origin": "generated", + "type": "DocumentPageNumberStyle" + }, + { + "kind": "constant", + "name": "UPPER_ALPHA", + "static": true, + "origin": "generated", + "type": "DocumentPageNumberStyle" + } + ] + }, + { + "name": "DocumentProtection", + "binaryName": "com.demcha.compose.document.output.DocumentProtection", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentProtection.DocumentProtectionBuilder", + "params": [] + }, + { + "kind": "method", + "name": "toBuilder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentProtection.DocumentProtectionBuilder", + "params": [] + }, + { + "kind": "method", + "name": "getUserPassword", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getOwnerPassword", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "isCanPrint", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "isCanCopyContent", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "isCanModify", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "isCanFillForms", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "isCanExtractForAccessibility", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "isCanAssemble", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "isCanPrintHighQuality", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "getKeyLength", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + } + ] + }, + { + "name": "DocumentProtection.DocumentProtectionBuilder", + "binaryName": "com.demcha.compose.document.output.DocumentProtection$DocumentProtectionBuilder", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "userPassword", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentProtection.DocumentProtectionBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "ownerPassword", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentProtection.DocumentProtectionBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "canPrint", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentProtection.DocumentProtectionBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "canCopyContent", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentProtection.DocumentProtectionBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "canModify", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentProtection.DocumentProtectionBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "canFillForms", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentProtection.DocumentProtectionBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "canExtractForAccessibility", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentProtection.DocumentProtectionBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "canAssemble", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentProtection.DocumentProtectionBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "canPrintHighQuality", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentProtection.DocumentProtectionBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "keyLength", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentProtection.DocumentProtectionBuilder", + "params": [ + { + "type": "int", + "name": null + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentProtection", + "params": [] + } + ] + }, + { + "name": "DocumentViewerPreferences", + "binaryName": "com.demcha.compose.document.output.DocumentViewerPreferences", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "openOutline", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentViewerPreferences", + "params": [] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentViewerPreferences.DocumentViewerPreferencesBuilder", + "params": [] + }, + { + "kind": "method", + "name": "toBuilder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentViewerPreferences.DocumentViewerPreferencesBuilder", + "params": [] + }, + { + "kind": "method", + "name": "getPageMode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPageMode", + "params": [] + }, + { + "kind": "method", + "name": "getPageLayout", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPageLayout", + "params": [] + }, + { + "kind": "method", + "name": "getDisplayDocTitle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Boolean", + "params": [] + }, + { + "kind": "method", + "name": "getHideToolbar", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Boolean", + "params": [] + }, + { + "kind": "method", + "name": "getHideMenubar", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Boolean", + "params": [] + }, + { + "kind": "method", + "name": "getFitWindow", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Boolean", + "params": [] + }, + { + "kind": "method", + "name": "getCenterWindow", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Boolean", + "params": [] + } + ] + }, + { + "name": "DocumentViewerPreferences.DocumentViewerPreferencesBuilder", + "binaryName": "com.demcha.compose.document.output.DocumentViewerPreferences$DocumentViewerPreferencesBuilder", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "pageMode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentViewerPreferences.DocumentViewerPreferencesBuilder", + "params": [ + { + "type": "DocumentPageMode", + "name": null + } + ] + }, + { + "kind": "method", + "name": "pageLayout", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentViewerPreferences.DocumentViewerPreferencesBuilder", + "params": [ + { + "type": "DocumentPageLayout", + "name": null + } + ] + }, + { + "kind": "method", + "name": "displayDocTitle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentViewerPreferences.DocumentViewerPreferencesBuilder", + "params": [ + { + "type": "Boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "hideToolbar", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentViewerPreferences.DocumentViewerPreferencesBuilder", + "params": [ + { + "type": "Boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "hideMenubar", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentViewerPreferences.DocumentViewerPreferencesBuilder", + "params": [ + { + "type": "Boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "fitWindow", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentViewerPreferences.DocumentViewerPreferencesBuilder", + "params": [ + { + "type": "Boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "centerWindow", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentViewerPreferences.DocumentViewerPreferencesBuilder", + "params": [ + { + "type": "Boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentViewerPreferences", + "params": [] + } + ] + }, + { + "name": "DocumentWatermark", + "binaryName": "com.demcha.compose.document.output.DocumentWatermark", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "isTextBased", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "isImageBased", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentWatermark.DocumentWatermarkBuilder", + "params": [] + }, + { + "kind": "method", + "name": "toBuilder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentWatermark.DocumentWatermarkBuilder", + "params": [] + }, + { + "kind": "method", + "name": "getText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getFontSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "float", + "params": [] + }, + { + "kind": "method", + "name": "getRotation", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "float", + "params": [] + }, + { + "kind": "method", + "name": "getColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "getImagePath", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Path", + "params": [] + }, + { + "kind": "method", + "name": "getImageBytes", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "byte[]", + "params": [] + }, + { + "kind": "method", + "name": "getOpacity", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "float", + "params": [] + }, + { + "kind": "method", + "name": "getLayer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentWatermarkLayer", + "params": [] + }, + { + "kind": "method", + "name": "getPosition", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentWatermarkPosition", + "params": [] + } + ] + }, + { + "name": "DocumentWatermark.DocumentWatermarkBuilder", + "binaryName": "com.demcha.compose.document.output.DocumentWatermark$DocumentWatermarkBuilder", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "text", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentWatermark.DocumentWatermarkBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "fontSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentWatermark.DocumentWatermarkBuilder", + "params": [ + { + "type": "float", + "name": null + } + ] + }, + { + "kind": "method", + "name": "rotation", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentWatermark.DocumentWatermarkBuilder", + "params": [ + { + "type": "float", + "name": null + } + ] + }, + { + "kind": "method", + "name": "color", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentWatermark.DocumentWatermarkBuilder", + "params": [ + { + "type": "DocumentColor", + "name": null + } + ] + }, + { + "kind": "method", + "name": "imagePath", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentWatermark.DocumentWatermarkBuilder", + "params": [ + { + "type": "Path", + "name": null + } + ] + }, + { + "kind": "method", + "name": "imageBytes", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentWatermark.DocumentWatermarkBuilder", + "params": [ + { + "type": "byte[]", + "name": null + } + ] + }, + { + "kind": "method", + "name": "opacity", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentWatermark.DocumentWatermarkBuilder", + "params": [ + { + "type": "float", + "name": null + } + ] + }, + { + "kind": "method", + "name": "layer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentWatermark.DocumentWatermarkBuilder", + "params": [ + { + "type": "DocumentWatermarkLayer", + "name": null + } + ] + }, + { + "kind": "method", + "name": "position", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentWatermark.DocumentWatermarkBuilder", + "params": [ + { + "type": "DocumentWatermarkPosition", + "name": null + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentWatermark", + "params": [] + } + ] + }, + { + "name": "DocumentWatermarkLayer", + "binaryName": "com.demcha.compose.document.output.DocumentWatermarkLayer", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "BEHIND_CONTENT", + "static": true, + "origin": "generated", + "type": "DocumentWatermarkLayer" + }, + { + "kind": "constant", + "name": "ABOVE_CONTENT", + "static": true, + "origin": "generated", + "type": "DocumentWatermarkLayer" + } + ] + }, + { + "name": "DocumentWatermarkPosition", + "binaryName": "com.demcha.compose.document.output.DocumentWatermarkPosition", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "CENTER", + "static": true, + "origin": "generated", + "type": "DocumentWatermarkPosition" + }, + { + "kind": "constant", + "name": "TOP_LEFT", + "static": true, + "origin": "generated", + "type": "DocumentWatermarkPosition" + }, + { + "kind": "constant", + "name": "TOP_RIGHT", + "static": true, + "origin": "generated", + "type": "DocumentWatermarkPosition" + }, + { + "kind": "constant", + "name": "BOTTOM_LEFT", + "static": true, + "origin": "generated", + "type": "DocumentWatermarkPosition" + }, + { + "kind": "constant", + "name": "BOTTOM_RIGHT", + "static": true, + "origin": "generated", + "type": "DocumentWatermarkPosition" + }, + { + "kind": "constant", + "name": "TILE", + "static": true, + "origin": "generated", + "type": "DocumentWatermarkPosition" + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.showcase", + "types": [ + { + "name": "FontShowcase", + "binaryName": "com.demcha.compose.document.showcase.FontShowcase", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "renderAvailableFontsPreview", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "Path", + "name": "outputFile" + } + ] + }, + { + "kind": "method", + "name": "renderAvailableFontsPreview", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "byte[]", + "params": [] + }, + { + "kind": "method", + "name": "renderFontsPreview", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "byte[]", + "params": [ + { + "type": "Collection", + "name": "fonts" + } + ] + }, + { + "kind": "method", + "name": "buildShowcase", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "DocumentSession", + "name": "document" + }, + { + "type": "Collection", + "name": "fonts" + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.snapshot", + "types": [ + { + "name": "LayoutCanvasSnapshot", + "binaryName": "com.demcha.compose.document.snapshot.LayoutCanvasSnapshot", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "LayoutCanvasSnapshot", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "LayoutInsetsSnapshot", + "name": null + } + ] + }, + { + "kind": "method", + "name": "pageWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "pageHeight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "innerWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "innerHeight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LayoutInsetsSnapshot", + "params": [] + } + ] + }, + { + "name": "LayoutDiagnosticSnapshot", + "binaryName": "com.demcha.compose.document.snapshot.LayoutDiagnosticSnapshot", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "LayoutDiagnosticSnapshot", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "LayoutSnapshot", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "formatVersion", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "layout", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LayoutSnapshot", + "params": [] + }, + { + "kind": "method", + "name": "typography", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "LayoutInsetsSnapshot", + "binaryName": "com.demcha.compose.document.snapshot.LayoutInsetsSnapshot", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "LayoutInsetsSnapshot", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "top", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "right", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "bottom", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "left", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "LayoutNodeSnapshot", + "binaryName": "com.demcha.compose.document.snapshot.LayoutNodeSnapshot", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "LayoutNodeSnapshot", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "LayoutInsetsSnapshot", + "name": null + }, + { + "type": "LayoutInsetsSnapshot", + "name": null + } + ] + }, + { + "kind": "method", + "name": "path", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "entityName", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "entityKind", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "parentPath", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "childIndex", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "depth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "layer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "computedX", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "computedY", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "placementX", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "placementY", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "placementWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "placementHeight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "startPage", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "endPage", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "contentWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "contentHeight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LayoutInsetsSnapshot", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LayoutInsetsSnapshot", + "params": [] + } + ] + }, + { + "name": "LayoutSnapshot", + "binaryName": "com.demcha.compose.document.snapshot.LayoutSnapshot", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "LayoutSnapshot", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "LayoutCanvasSnapshot", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "formatVersion", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "canvas", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LayoutCanvasSnapshot", + "params": [] + }, + { + "kind": "method", + "name": "totalPages", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "nodes", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "LayoutSnapshotOptions", + "binaryName": "com.demcha.compose.document.snapshot.LayoutSnapshotOptions", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "defaults", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "LayoutSnapshotOptions", + "params": [] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "LayoutSnapshotOptions.Builder", + "params": [] + }, + { + "kind": "method", + "name": "typography", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "isDefault", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + } + ] + }, + { + "name": "LayoutSnapshotOptions.Builder", + "binaryName": "com.demcha.compose.document.snapshot.LayoutSnapshotOptions$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "typography", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayoutSnapshotOptions.Builder", + "params": [ + { + "type": "boolean", + "name": "enabled" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayoutSnapshotOptions", + "params": [] + } + ] + }, + { + "name": "LayoutTextLineSnapshot", + "binaryName": "com.demcha.compose.document.snapshot.LayoutTextLineSnapshot", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "LayoutTextLineSnapshot", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "int", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "index", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "x", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "y", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "baseline", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "baselineExact", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + } + ] + }, + { + "name": "LayoutTypographySnapshot", + "binaryName": "com.demcha.compose.document.snapshot.LayoutTypographySnapshot", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "LayoutTypographySnapshot", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "boolean", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "path", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "fragmentIndex", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "page", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "declaredFont", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "resolvedFamily", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "decoration", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "fontSubstituted", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "fontSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "lineCount", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "textX", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "textY", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "textWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "textHeight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "verticalAlign", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "lines", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "PageIndex", + "binaryName": "com.demcha.compose.document.snapshot.PageIndex", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "PageIndex", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "Collection", + "name": "references" + }, + { + "type": "int", + "name": "totalPages" + } + ] + }, + { + "kind": "method", + "name": "forAnchor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Optional", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "pageOf", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "OptionalInt", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "pageNumberOf", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "OptionalInt", + "params": [ + { + "type": "String", + "name": "anchor" + } + ] + }, + { + "kind": "method", + "name": "all", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Map", + "params": [] + }, + { + "kind": "method", + "name": "totalPages", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "int", + "params": [] + } + ] + }, + { + "name": "PageReference", + "binaryName": "com.demcha.compose.document.snapshot.PageReference", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "PageReference", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "int", + "name": null + } + ] + }, + { + "kind": "method", + "name": "pageNumber", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "anchor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "page", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.style", + "types": [ + { + "name": "ClipPolicy", + "binaryName": "com.demcha.compose.document.style.ClipPolicy", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "CLIP_BOUNDS", + "static": true, + "origin": "generated", + "type": "ClipPolicy" + }, + { + "kind": "constant", + "name": "CLIP_PATH", + "static": true, + "origin": "generated", + "type": "ClipPolicy" + }, + { + "kind": "constant", + "name": "OVERFLOW_VISIBLE", + "static": true, + "origin": "generated", + "type": "ClipPolicy" + } + ] + }, + { + "name": "DocumentBleed", + "binaryName": "com.demcha.compose.document.style.DocumentBleed", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "DocumentBleed", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "Set", + "name": null + } + ] + }, + { + "kind": "method", + "name": "none", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentBleed", + "params": [] + }, + { + "kind": "method", + "name": "all", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentBleed", + "params": [] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentBleed", + "params": [ + { + "type": "DocumentEdge...", + "name": "edges" + } + ] + }, + { + "kind": "method", + "name": "bleeds", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [ + { + "type": "DocumentEdge", + "name": "edge" + } + ] + }, + { + "kind": "method", + "name": "any", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "edges", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Set", + "params": [] + } + ] + }, + { + "name": "DocumentBorders", + "binaryName": "com.demcha.compose.document.style.DocumentBorders", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "NONE", + "static": true, + "origin": "generated", + "type": "DocumentBorders" + }, + { + "kind": "constructor", + "name": "DocumentBorders", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + } + ] + }, + { + "kind": "method", + "name": "all", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentBorders", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "bottom", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentBorders", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "top", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentBorders", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "left", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentBorders", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "right", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentBorders", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "horizontal", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentBorders", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "vertical", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentBorders", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "hasAny", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "top", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "right", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "bottom", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "left", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + } + ] + }, + { + "name": "DocumentColor", + "binaryName": "com.demcha.compose.document.style.DocumentColor", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "BLACK", + "static": true, + "origin": "generated", + "type": "DocumentColor" + }, + { + "kind": "constant", + "name": "DARK_GRAY", + "static": true, + "origin": "generated", + "type": "DocumentColor" + }, + { + "kind": "constant", + "name": "GRAY", + "static": true, + "origin": "generated", + "type": "DocumentColor" + }, + { + "kind": "constant", + "name": "LIGHT_GRAY", + "static": true, + "origin": "generated", + "type": "DocumentColor" + }, + { + "kind": "constant", + "name": "WHITE", + "static": true, + "origin": "generated", + "type": "DocumentColor" + }, + { + "kind": "constant", + "name": "ROYAL_BLUE", + "static": true, + "origin": "generated", + "type": "DocumentColor" + }, + { + "kind": "constant", + "name": "ORANGE", + "static": true, + "origin": "generated", + "type": "DocumentColor" + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentColor", + "params": [ + { + "type": "Color", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "rgb", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentColor", + "params": [ + { + "type": "int", + "name": "red" + }, + { + "type": "int", + "name": "green" + }, + { + "type": "int", + "name": "blue" + } + ] + }, + { + "kind": "method", + "name": "rgba", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentColor", + "params": [ + { + "type": "int", + "name": "red" + }, + { + "type": "int", + "name": "green" + }, + { + "type": "int", + "name": "blue" + }, + { + "type": "int", + "name": "alpha" + } + ] + }, + { + "kind": "method", + "name": "withOpacity", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentColor", + "params": [ + { + "type": "double", + "name": "opacity" + } + ] + }, + { + "kind": "method", + "name": "color", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Color", + "params": [] + } + ] + }, + { + "name": "DocumentCornerRadius", + "binaryName": "com.demcha.compose.document.style.DocumentCornerRadius", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "ZERO", + "static": true, + "origin": "generated", + "type": "DocumentCornerRadius" + }, + { + "kind": "constructor", + "name": "DocumentCornerRadius", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "DocumentCornerRadius", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": "radius" + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentCornerRadius", + "params": [ + { + "type": "double", + "name": "radius" + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentCornerRadius", + "params": [ + { + "type": "double", + "name": "topLeft" + }, + { + "type": "double", + "name": "topRight" + }, + { + "type": "double", + "name": "bottomRight" + }, + { + "type": "double", + "name": "bottomLeft" + } + ] + }, + { + "kind": "method", + "name": "right", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentCornerRadius", + "params": [ + { + "type": "double", + "name": "radius" + } + ] + }, + { + "kind": "method", + "name": "left", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentCornerRadius", + "params": [ + { + "type": "double", + "name": "radius" + } + ] + }, + { + "kind": "method", + "name": "top", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentCornerRadius", + "params": [ + { + "type": "double", + "name": "radius" + } + ] + }, + { + "kind": "method", + "name": "bottom", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentCornerRadius", + "params": [ + { + "type": "double", + "name": "radius" + } + ] + }, + { + "kind": "method", + "name": "radius", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "isZero", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "isUniform", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "topLeft", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "topRight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "bottomRight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "bottomLeft", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "DocumentDashPattern", + "binaryName": "com.demcha.compose.document.style.DocumentDashPattern", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "NONE", + "static": true, + "origin": "generated", + "type": "DocumentDashPattern" + }, + { + "kind": "constructor", + "name": "DocumentDashPattern", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentDashPattern", + "params": [ + { + "type": "double...", + "name": "segments" + } + ] + }, + { + "kind": "method", + "name": "isSolid", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "segments", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "DocumentEdge", + "binaryName": "com.demcha.compose.document.style.DocumentEdge", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "TOP", + "static": true, + "origin": "generated", + "type": "DocumentEdge" + }, + { + "kind": "constant", + "name": "RIGHT", + "static": true, + "origin": "generated", + "type": "DocumentEdge" + }, + { + "kind": "constant", + "name": "BOTTOM", + "static": true, + "origin": "generated", + "type": "DocumentEdge" + }, + { + "kind": "constant", + "name": "LEFT", + "static": true, + "origin": "generated", + "type": "DocumentEdge" + } + ] + }, + { + "name": "DocumentInsets", + "binaryName": "com.demcha.compose.document.style.DocumentInsets", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "DocumentInsets", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "zero", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "symmetric", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [ + { + "type": "double", + "name": "vertical" + }, + { + "type": "double", + "name": "horizontal" + } + ] + }, + { + "kind": "method", + "name": "top", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "bottom", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "horizontal", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "vertical", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "top", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "right", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "bottom", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "left", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "DocumentLeader", + "binaryName": "com.demcha.compose.document.style.DocumentLeader", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "NONE", + "static": true, + "origin": "generated", + "type": "DocumentLeader" + }, + { + "kind": "constant", + "name": "DOTS", + "static": true, + "origin": "generated", + "type": "DocumentLeader" + }, + { + "kind": "constant", + "name": "DASHES", + "static": true, + "origin": "generated", + "type": "DocumentLeader" + } + ] + }, + { + "name": "DocumentLineCap", + "binaryName": "com.demcha.compose.document.style.DocumentLineCap", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "BUTT", + "static": true, + "origin": "generated", + "type": "DocumentLineCap" + }, + { + "kind": "constant", + "name": "ROUND", + "static": true, + "origin": "generated", + "type": "DocumentLineCap" + }, + { + "kind": "constant", + "name": "SQUARE", + "static": true, + "origin": "generated", + "type": "DocumentLineCap" + }, + { + "kind": "method", + "name": "pdfCode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "int", + "params": [] + } + ] + }, + { + "name": "DocumentLineJoin", + "binaryName": "com.demcha.compose.document.style.DocumentLineJoin", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "MITER", + "static": true, + "origin": "generated", + "type": "DocumentLineJoin" + }, + { + "kind": "constant", + "name": "ROUND", + "static": true, + "origin": "generated", + "type": "DocumentLineJoin" + }, + { + "kind": "constant", + "name": "BEVEL", + "static": true, + "origin": "generated", + "type": "DocumentLineJoin" + }, + { + "kind": "method", + "name": "pdfCode", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "int", + "params": [] + } + ] + }, + { + "name": "DocumentPageLayout", + "binaryName": "com.demcha.compose.document.style.DocumentPageLayout", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "SINGLE_PAGE", + "static": true, + "origin": "generated", + "type": "DocumentPageLayout" + }, + { + "kind": "constant", + "name": "ONE_COLUMN", + "static": true, + "origin": "generated", + "type": "DocumentPageLayout" + }, + { + "kind": "constant", + "name": "TWO_COLUMN_LEFT", + "static": true, + "origin": "generated", + "type": "DocumentPageLayout" + }, + { + "kind": "constant", + "name": "TWO_COLUMN_RIGHT", + "static": true, + "origin": "generated", + "type": "DocumentPageLayout" + }, + { + "kind": "constant", + "name": "TWO_PAGE_LEFT", + "static": true, + "origin": "generated", + "type": "DocumentPageLayout" + }, + { + "kind": "constant", + "name": "TWO_PAGE_RIGHT", + "static": true, + "origin": "generated", + "type": "DocumentPageLayout" + } + ] + }, + { + "name": "DocumentPageMode", + "binaryName": "com.demcha.compose.document.style.DocumentPageMode", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "USE_NONE", + "static": true, + "origin": "generated", + "type": "DocumentPageMode" + }, + { + "kind": "constant", + "name": "USE_OUTLINES", + "static": true, + "origin": "generated", + "type": "DocumentPageMode" + }, + { + "kind": "constant", + "name": "USE_THUMBNAILS", + "static": true, + "origin": "generated", + "type": "DocumentPageMode" + }, + { + "kind": "constant", + "name": "FULL_SCREEN", + "static": true, + "origin": "generated", + "type": "DocumentPageMode" + }, + { + "kind": "constant", + "name": "USE_ATTACHMENTS", + "static": true, + "origin": "generated", + "type": "DocumentPageMode" + } + ] + }, + { + "name": "DocumentPaint", + "binaryName": "com.demcha.compose.document.style.DocumentPaint", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "primaryColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "solid", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPaint", + "params": [ + { + "type": "DocumentColor", + "name": null + } + ] + }, + { + "kind": "method", + "name": "linear", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPaint", + "params": [ + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + } + ] + } + ] + }, + { + "name": "DocumentPathSegment", + "binaryName": "com.demcha.compose.document.style.DocumentPathSegment", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "moveTo", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPathSegment.MoveTo", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "lineTo", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPathSegment.LineTo", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "cubicTo", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPathSegment.CubicTo", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "close", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPathSegment.Close", + "params": [] + } + ] + }, + { + "name": "DocumentPathSegment.Close", + "binaryName": "com.demcha.compose.document.style.DocumentPathSegment$Close", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Close", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [] + } + ] + }, + { + "name": "DocumentPathSegment.CubicTo", + "binaryName": "com.demcha.compose.document.style.DocumentPathSegment$CubicTo", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "CubicTo", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "control1X", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "control1Y", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "control2X", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "control2Y", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "x", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "y", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "DocumentPathSegment.LineTo", + "binaryName": "com.demcha.compose.document.style.DocumentPathSegment$LineTo", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "LineTo", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "x", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "y", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "DocumentPathSegment.MoveTo", + "binaryName": "com.demcha.compose.document.style.DocumentPathSegment$MoveTo", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "MoveTo", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "x", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "y", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "DocumentRowColumn", + "binaryName": "com.demcha.compose.document.style.DocumentRowColumn", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "DocumentRowColumn", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentRowColumn.Type", + "name": null + }, + { + "type": "Double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "fixed", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentRowColumn", + "params": [ + { + "type": "double", + "name": "points" + } + ] + }, + { + "kind": "method", + "name": "auto", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentRowColumn", + "params": [] + }, + { + "kind": "method", + "name": "weight", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentRowColumn", + "params": [ + { + "type": "double", + "name": "weight" + } + ] + }, + { + "kind": "method", + "name": "type", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentRowColumn.Type", + "params": [] + }, + { + "kind": "method", + "name": "value", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Double", + "params": [] + } + ] + }, + { + "name": "DocumentRowColumn.Type", + "binaryName": "com.demcha.compose.document.style.DocumentRowColumn$Type", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "AUTO", + "static": true, + "origin": "generated", + "type": "DocumentRowColumn.Type" + }, + { + "kind": "constant", + "name": "FIXED", + "static": true, + "origin": "generated", + "type": "DocumentRowColumn.Type" + }, + { + "kind": "constant", + "name": "WEIGHT", + "static": true, + "origin": "generated", + "type": "DocumentRowColumn.Type" + } + ] + }, + { + "name": "DocumentSpacing", + "binaryName": "com.demcha.compose.document.style.DocumentSpacing", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "DocumentSpacing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "zero", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSpacing", + "params": [] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentSpacing", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "value", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "DocumentStroke", + "binaryName": "com.demcha.compose.document.style.DocumentStroke", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "DEFAULT_WIDTH", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "constructor", + "name": "DocumentStroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentColor", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [ + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "color", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "DocumentTextAutoSize", + "binaryName": "com.demcha.compose.document.style.DocumentTextAutoSize", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "DEFAULT_STEP", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "constant", + "name": "DEFAULT_MIN_SIZE", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "constructor", + "name": "DocumentTextAutoSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "between", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextAutoSize", + "params": [ + { + "type": "double", + "name": "maxSize" + }, + { + "type": "double", + "name": "minSize" + } + ] + }, + { + "kind": "method", + "name": "upTo", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextAutoSize", + "params": [ + { + "type": "double", + "name": "maxSize" + } + ] + }, + { + "kind": "method", + "name": "maxSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "minSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "step", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "DocumentTextDecoration", + "binaryName": "com.demcha.compose.document.style.DocumentTextDecoration", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "DEFAULT", + "static": true, + "origin": "generated", + "type": "DocumentTextDecoration" + }, + { + "kind": "constant", + "name": "BOLD", + "static": true, + "origin": "generated", + "type": "DocumentTextDecoration" + }, + { + "kind": "constant", + "name": "ITALIC", + "static": true, + "origin": "generated", + "type": "DocumentTextDecoration" + }, + { + "kind": "constant", + "name": "BOLD_ITALIC", + "static": true, + "origin": "generated", + "type": "DocumentTextDecoration" + }, + { + "kind": "constant", + "name": "UNDERLINE", + "static": true, + "origin": "generated", + "type": "DocumentTextDecoration" + }, + { + "kind": "constant", + "name": "STRIKETHROUGH", + "static": true, + "origin": "generated", + "type": "DocumentTextDecoration" + } + ] + }, + { + "name": "DocumentTextIndent", + "binaryName": "com.demcha.compose.document.style.DocumentTextIndent", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "NONE", + "static": true, + "origin": "generated", + "type": "DocumentTextIndent" + }, + { + "kind": "constant", + "name": "FIRST_LINE", + "static": true, + "origin": "generated", + "type": "DocumentTextIndent" + }, + { + "kind": "constant", + "name": "FROM_SECOND_LINE", + "static": true, + "origin": "generated", + "type": "DocumentTextIndent" + }, + { + "kind": "constant", + "name": "ALL_LINES", + "static": true, + "origin": "generated", + "type": "DocumentTextIndent" + } + ] + }, + { + "name": "DocumentTextStyle", + "binaryName": "com.demcha.compose.document.style.DocumentTextStyle", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "DEFAULT", + "static": true, + "origin": "generated", + "type": "DocumentTextStyle" + }, + { + "kind": "constructor", + "name": "DocumentTextStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "FontName", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentTextDecoration", + "name": null + }, + { + "type": "DocumentColor", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle.Builder", + "params": [] + }, + { + "kind": "method", + "name": "withSize", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [ + { + "type": "double", + "name": "size" + } + ] + }, + { + "kind": "method", + "name": "withColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [ + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "fontName", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "FontName", + "params": [] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "decoration", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextDecoration", + "params": [] + }, + { + "kind": "method", + "name": "color", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + } + ] + }, + { + "name": "DocumentTextStyle.Builder", + "binaryName": "com.demcha.compose.document.style.DocumentTextStyle$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "fontName", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle.Builder", + "params": [ + { + "type": "FontName", + "name": "fontName" + } + ] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle.Builder", + "params": [ + { + "type": "double", + "name": "size" + } + ] + }, + { + "kind": "method", + "name": "decoration", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle.Builder", + "params": [ + { + "type": "DocumentTextDecoration", + "name": "decoration" + } + ] + }, + { + "kind": "method", + "name": "color", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "color" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + } + ] + }, + { + "name": "DocumentTransform", + "binaryName": "com.demcha.compose.document.style.DocumentTransform", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "NONE", + "static": true, + "origin": "generated", + "type": "DocumentTransform" + }, + { + "kind": "constructor", + "name": "DocumentTransform", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "none", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [] + }, + { + "kind": "method", + "name": "rotate", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [ + { + "type": "double", + "name": "degrees" + } + ] + }, + { + "kind": "method", + "name": "scale", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [ + { + "type": "double", + "name": "uniformFactor" + } + ] + }, + { + "kind": "method", + "name": "scale", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [ + { + "type": "double", + "name": "scaleX" + }, + { + "type": "double", + "name": "scaleY" + } + ] + }, + { + "kind": "method", + "name": "withRotation", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [ + { + "type": "double", + "name": "degrees" + } + ] + }, + { + "kind": "method", + "name": "withScale", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTransform", + "params": [ + { + "type": "double", + "name": "scaleX" + }, + { + "type": "double", + "name": "scaleY" + } + ] + }, + { + "kind": "method", + "name": "isIdentity", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "rotationDegrees", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "scaleX", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "scaleY", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "InlineBackground", + "binaryName": "com.demcha.compose.document.style.InlineBackground", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "InlineBackground", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentColor", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + } + ] + }, + { + "kind": "method", + "name": "fill", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + } + ] + }, + { + "name": "ShapeOutline", + "binaryName": "com.demcha.compose.document.style.ShapeOutline", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "circle", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline.Ellipse", + "params": [ + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "polygon", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline.Polygon", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "path", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline.Path", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "diamond", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline.Polygon", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "triangle", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline.Polygon", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "star", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline.Polygon", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "star", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline.Polygon", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "int", + "name": null + } + ] + }, + { + "kind": "method", + "name": "arrow", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline.Polygon", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "ShapeOutline.Direction", + "name": null + } + ] + }, + { + "kind": "method", + "name": "arrow", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline.Polygon", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "ShapeOutline.Direction", + "name": null + }, + { + "type": "ShapeOutline.ArrowStyle", + "name": null + } + ] + }, + { + "kind": "method", + "name": "arrowRight", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline.Polygon", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "arrowLeft", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline.Polygon", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "chevron", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline.Polygon", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "ShapeOutline.Direction", + "name": null + } + ] + }, + { + "kind": "method", + "name": "checkmark", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline.Polygon", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "checkmark", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline.Polygon", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "ShapeOutline.CheckmarkStyle", + "name": null + } + ] + }, + { + "kind": "method", + "name": "plus", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline.Polygon", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "regularPolygon", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "ShapeOutline.Polygon", + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "int", + "name": null + } + ] + } + ] + }, + { + "name": "ShapeOutline.ArrowStyle", + "binaryName": "com.demcha.compose.document.style.ShapeOutline$ArrowStyle", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "BLOCK", + "static": true, + "origin": "generated", + "type": "ShapeOutline.ArrowStyle" + }, + { + "kind": "constant", + "name": "TRIANGLE", + "static": true, + "origin": "generated", + "type": "ShapeOutline.ArrowStyle" + } + ] + }, + { + "name": "ShapeOutline.CheckmarkStyle", + "binaryName": "com.demcha.compose.document.style.ShapeOutline$CheckmarkStyle", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "CLASSIC", + "static": true, + "origin": "generated", + "type": "ShapeOutline.CheckmarkStyle" + }, + { + "kind": "constant", + "name": "HEAVY", + "static": true, + "origin": "generated", + "type": "ShapeOutline.CheckmarkStyle" + } + ] + }, + { + "name": "ShapeOutline.Direction", + "binaryName": "com.demcha.compose.document.style.ShapeOutline$Direction", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "RIGHT", + "static": true, + "origin": "generated", + "type": "ShapeOutline.Direction" + }, + { + "kind": "constant", + "name": "LEFT", + "static": true, + "origin": "generated", + "type": "ShapeOutline.Direction" + }, + { + "kind": "constant", + "name": "UP", + "static": true, + "origin": "generated", + "type": "ShapeOutline.Direction" + }, + { + "kind": "constant", + "name": "DOWN", + "static": true, + "origin": "generated", + "type": "ShapeOutline.Direction" + } + ] + }, + { + "name": "ShapeOutline.Ellipse", + "binaryName": "com.demcha.compose.document.style.ShapeOutline$Ellipse", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Ellipse", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "ShapeOutline.Path", + "binaryName": "com.demcha.compose.document.style.ShapeOutline$Path", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Path", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "segments", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "ShapeOutline.Polygon", + "binaryName": "com.demcha.compose.document.style.ShapeOutline$Polygon", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Polygon", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "points", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "ShapePoint", + "binaryName": "com.demcha.compose.document.style.ShapePoint", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "ShapePoint", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "x", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "y", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.svg", + "types": [ + { + "name": "SvgIcon", + "binaryName": "com.demcha.compose.document.svg.SvgIcon", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "read", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "SvgIcon", + "params": [ + { + "type": "Path", + "name": "file" + } + ] + }, + { + "kind": "method", + "name": "parse", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "SvgIcon", + "params": [ + { + "type": "String", + "name": "svgXml" + } + ] + }, + { + "kind": "method", + "name": "layers", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "sourceWidth", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "sourceHeight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "aspectRatio", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "node", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "LayerStackNode", + "params": [ + { + "type": "double", + "name": "width" + } + ] + } + ] + }, + { + "name": "SvgIcon.Layer", + "binaryName": "com.demcha.compose.document.svg.SvgIcon$Layer", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Layer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "SvgPath", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentPaint", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentPaint", + "name": null + }, + { + "type": "DocumentLineCap", + "name": null + }, + { + "type": "DocumentLineJoin", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "SvgPath", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "Layer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "SvgPath", + "name": "geometry" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "DocumentPaint", + "name": "fillPaint" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentPaint", + "name": "strokePaint" + }, + { + "type": "DocumentLineCap", + "name": "lineCap" + }, + { + "type": "DocumentLineJoin", + "name": "lineJoin" + }, + { + "type": "List", + "name": "dashArray" + } + ] + }, + { + "kind": "constructor", + "name": "Layer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "SvgPath", + "name": "geometry" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "constructor", + "name": "Layer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "SvgPath", + "name": "geometry" + }, + { + "type": "DocumentColor", + "name": "fill" + }, + { + "type": "DocumentPaint", + "name": "fillPaint" + }, + { + "type": "DocumentStroke", + "name": "stroke" + }, + { + "type": "DocumentPaint", + "name": "strokePaint" + } + ] + }, + { + "kind": "method", + "name": "geometry", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "SvgPath", + "params": [] + }, + { + "kind": "method", + "name": "fill", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "fillPaint", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPaint", + "params": [] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "strokePaint", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPaint", + "params": [] + }, + { + "kind": "method", + "name": "lineCap", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLineCap", + "params": [] + }, + { + "kind": "method", + "name": "lineJoin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentLineJoin", + "params": [] + }, + { + "kind": "method", + "name": "dashArray", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "clip", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "SvgPath", + "params": [] + } + ] + }, + { + "name": "SvgPath", + "binaryName": "com.demcha.compose.document.svg.SvgPath", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "parse", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "SvgPath", + "params": [ + { + "type": "String", + "name": "d" + } + ] + }, + { + "kind": "method", + "name": "parse", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "SvgPath", + "params": [ + { + "type": "String", + "name": "d" + }, + { + "type": "double", + "name": "minX" + }, + { + "type": "double", + "name": "minY" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "segments", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "sourceWidth", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "sourceHeight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "aspectRatio", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.table", + "types": [ + { + "name": "DocumentTableCell", + "binaryName": "com.demcha.compose.document.table.DocumentTableCell", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "DocumentTableCell", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "List", + "name": null + }, + { + "type": "DocumentTableStyle", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "DocumentNode", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "DocumentTableCell", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "List", + "name": "lines" + }, + { + "type": "DocumentTableStyle", + "name": "style" + }, + { + "type": "int", + "name": "colSpan" + }, + { + "type": "int", + "name": "rowSpan" + } + ] + }, + { + "kind": "constructor", + "name": "DocumentTableCell", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "List", + "name": "lines" + }, + { + "type": "DocumentTableStyle", + "name": "style" + }, + { + "type": "int", + "name": "colSpan" + } + ] + }, + { + "kind": "constructor", + "name": "DocumentTableCell", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "List", + "name": "lines" + }, + { + "type": "DocumentTableStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "text", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableCell", + "params": [ + { + "type": "String", + "name": "text" + } + ] + }, + { + "kind": "method", + "name": "lines", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableCell", + "params": [ + { + "type": "String...", + "name": "lines" + } + ] + }, + { + "kind": "method", + "name": "node", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableCell", + "params": [ + { + "type": "DocumentNode", + "name": "child" + } + ] + }, + { + "kind": "method", + "name": "withStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableCell", + "params": [ + { + "type": "DocumentTableStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "colSpan", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableCell", + "params": [ + { + "type": "int", + "name": "span" + } + ] + }, + { + "kind": "method", + "name": "rowSpan", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableCell", + "params": [ + { + "type": "int", + "name": "span" + } + ] + }, + { + "kind": "method", + "name": "hasComposedContent", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "lines", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "style", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTableStyle", + "params": [] + }, + { + "kind": "method", + "name": "colSpan", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "rowSpan", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "content", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentNode", + "params": [] + } + ] + }, + { + "name": "DocumentTableColumn", + "binaryName": "com.demcha.compose.document.table.DocumentTableColumn", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "DocumentTableColumn", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentTableColumn.Type", + "name": null + }, + { + "type": "Double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "auto", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableColumn", + "params": [] + }, + { + "kind": "method", + "name": "fixed", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableColumn", + "params": [ + { + "type": "double", + "name": "points" + } + ] + }, + { + "kind": "method", + "name": "type", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTableColumn.Type", + "params": [] + }, + { + "kind": "method", + "name": "fixedWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Double", + "params": [] + } + ] + }, + { + "name": "DocumentTableColumn.Type", + "binaryName": "com.demcha.compose.document.table.DocumentTableColumn$Type", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "AUTO", + "static": true, + "origin": "generated", + "type": "DocumentTableColumn.Type" + }, + { + "kind": "constant", + "name": "FIXED", + "static": true, + "origin": "generated", + "type": "DocumentTableColumn.Type" + } + ] + }, + { + "name": "DocumentTableStyle", + "binaryName": "com.demcha.compose.document.table.DocumentTableStyle", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "empty", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableStyle", + "params": [] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableStyle.Builder", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "textStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "textAnchor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableTextAnchor", + "params": [] + }, + { + "kind": "method", + "name": "lineSpacing", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Double", + "params": [] + }, + { + "kind": "method", + "name": "direction", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TextDirection", + "params": [] + } + ] + }, + { + "name": "DocumentTableStyle.Builder", + "binaryName": "com.demcha.compose.document.table.DocumentTableStyle$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableStyle.Builder", + "params": [ + { + "type": "DocumentInsets", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableStyle.Builder", + "params": [ + { + "type": "double", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableStyle.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableStyle.Builder", + "params": [ + { + "type": "DocumentStroke", + "name": "stroke" + } + ] + }, + { + "kind": "method", + "name": "textStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableStyle.Builder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "textStyle" + } + ] + }, + { + "kind": "method", + "name": "textAnchor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableStyle.Builder", + "params": [ + { + "type": "DocumentTableTextAnchor", + "name": "textAnchor" + } + ] + }, + { + "kind": "method", + "name": "lineSpacing", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableStyle.Builder", + "params": [ + { + "type": "double", + "name": "lineSpacing" + } + ] + }, + { + "kind": "method", + "name": "direction", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableStyle.Builder", + "params": [ + { + "type": "TextDirection", + "name": "direction" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTableStyle", + "params": [] + } + ] + }, + { + "name": "DocumentTableTextAnchor", + "binaryName": "com.demcha.compose.document.table.DocumentTableTextAnchor", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "DEFAULT", + "static": true, + "origin": "generated", + "type": "DocumentTableTextAnchor" + }, + { + "kind": "constant", + "name": "CENTER_LEFT", + "static": true, + "origin": "generated", + "type": "DocumentTableTextAnchor" + }, + { + "kind": "constant", + "name": "CENTER", + "static": true, + "origin": "generated", + "type": "DocumentTableTextAnchor" + }, + { + "kind": "constant", + "name": "CENTER_RIGHT", + "static": true, + "origin": "generated", + "type": "DocumentTableTextAnchor" + }, + { + "kind": "constant", + "name": "TOP_LEFT", + "static": true, + "origin": "generated", + "type": "DocumentTableTextAnchor" + }, + { + "kind": "constant", + "name": "TOP_RIGHT", + "static": true, + "origin": "generated", + "type": "DocumentTableTextAnchor" + }, + { + "kind": "constant", + "name": "BOTTOM_LEFT", + "static": true, + "origin": "generated", + "type": "DocumentTableTextAnchor" + }, + { + "kind": "constant", + "name": "BOTTOM_RIGHT", + "static": true, + "origin": "generated", + "type": "DocumentTableTextAnchor" + } + ] + } + ] + }, + { + "name": "com.demcha.compose.engine.components.content", + "types": [ + { + "name": "ImageData", + "binaryName": "com.demcha.compose.engine.components.content.ImageData", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ImageData", + "params": [ + { + "type": "byte[]", + "name": "bytes" + } + ] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ImageData", + "params": [ + { + "type": "Path", + "name": "path" + } + ] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ImageData", + "params": [ + { + "type": "String", + "name": "path" + } + ] + }, + { + "kind": "method", + "name": "getBytes", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "byte[]", + "params": [] + }, + { + "kind": "method", + "name": "getSourceKey", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getFingerprint", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getMetadata", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ImageMetadata", + "params": [] + } + ] + }, + { + "name": "ImageIntrinsicSize", + "binaryName": "com.demcha.compose.engine.components.content.ImageIntrinsicSize", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "constructor", + "name": "ImageIntrinsicSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "ImageMetadata", + "binaryName": "com.demcha.compose.engine.components.content.ImageMetadata", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "constructor", + "name": "ImageMetadata", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "int", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "intrinsicSize", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ImageIntrinsicSize", + "params": [] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "format", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.engine.components.content.metadata", + "types": [ + { + "name": "DocumentMetadata", + "binaryName": "com.demcha.compose.engine.components.content.metadata.DocumentMetadata", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata.DocumentMetadataBuilder", + "params": [] + }, + { + "kind": "method", + "name": "getTitle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getAuthor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getSubject", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getKeywords", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getCreator", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getProducer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "DocumentMetadata.DocumentMetadataBuilder", + "binaryName": "com.demcha.compose.engine.components.content.metadata.DocumentMetadata$DocumentMetadataBuilder", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata.DocumentMetadataBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "author", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata.DocumentMetadataBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "subject", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata.DocumentMetadataBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "keywords", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata.DocumentMetadataBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "creator", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata.DocumentMetadataBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "producer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata.DocumentMetadataBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentMetadata", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.engine.components.content.text", + "types": [ + { + "name": "TextDecoration", + "binaryName": "com.demcha.compose.engine.components.content.text.TextDecoration", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "constant", + "name": "DEFAULT", + "static": true, + "origin": "generated", + "type": "TextDecoration" + }, + { + "kind": "constant", + "name": "BOLD", + "static": true, + "origin": "generated", + "type": "TextDecoration" + }, + { + "kind": "constant", + "name": "ITALIC", + "static": true, + "origin": "generated", + "type": "TextDecoration" + }, + { + "kind": "constant", + "name": "BOLD_ITALIC", + "static": true, + "origin": "generated", + "type": "TextDecoration" + }, + { + "kind": "constant", + "name": "UNDERLINE", + "static": true, + "origin": "generated", + "type": "TextDecoration" + }, + { + "kind": "constant", + "name": "STRIKETHROUGH", + "static": true, + "origin": "generated", + "type": "TextDecoration" + }, + { + "kind": "method", + "name": "hasStyle", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [ + { + "type": "int", + "name": "styles" + }, + { + "type": "TextDecoration", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "getBit", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "int", + "params": [] + } + ] + }, + { + "name": "TextStyle", + "binaryName": "com.demcha.compose.engine.components.content.text.TextStyle", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "constructor", + "name": "TextStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "FontName", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "TextDecoration", + "name": null + }, + { + "type": "Color", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "TextStyle.TextStyleBuilder", + "params": [] + }, + { + "kind": "method", + "name": "fontName", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "FontName", + "params": [] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "decoration", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "TextDecoration", + "params": [] + }, + { + "kind": "method", + "name": "color", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Color", + "params": [] + } + ] + }, + { + "name": "TextStyle.TextStyleBuilder", + "binaryName": "com.demcha.compose.engine.components.content.text.TextStyle$TextStyleBuilder", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "method", + "name": "fontName", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "TextStyle.TextStyleBuilder", + "params": [ + { + "type": "FontName", + "name": null + } + ] + }, + { + "kind": "method", + "name": "size", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "TextStyle.TextStyleBuilder", + "params": [ + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "decoration", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "TextStyle.TextStyleBuilder", + "params": [ + { + "type": "TextDecoration", + "name": null + } + ] + }, + { + "kind": "method", + "name": "color", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "TextStyle.TextStyleBuilder", + "params": [ + { + "type": "Color", + "name": null + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "TextStyle", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.engine.components.geometry", + "types": [ + { + "name": "ContentSize", + "binaryName": "com.demcha.compose.engine.components.geometry.ContentSize", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "constructor", + "name": "ContentSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "width", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.engine.components.style", + "types": [ + { + "name": "Margin", + "binaryName": "com.demcha.compose.engine.components.style.Margin", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "constructor", + "name": "Margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Margin", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "zero", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Margin", + "params": [] + }, + { + "kind": "method", + "name": "bottom", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Margin", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "top", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Margin", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "right", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Margin", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "left", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Margin", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "horizontal", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "vertical", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "top", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "right", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "bottom", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "left", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "Padding", + "binaryName": "com.demcha.compose.engine.components.style.Padding", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "constructor", + "name": "Padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "zero", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Padding", + "params": [] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Padding", + "params": [ + { + "type": "double", + "name": "trbl" + } + ] + }, + { + "kind": "method", + "name": "horizontal", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "vertical", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "top", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "right", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "bottom", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "left", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.engine.debug", + "types": [ + { + "name": "LayoutCanvasSnapshot", + "binaryName": "com.demcha.compose.engine.debug.LayoutCanvasSnapshot", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "constructor", + "name": "LayoutCanvasSnapshot", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "LayoutInsetsSnapshot", + "name": null + } + ] + }, + { + "kind": "method", + "name": "pageWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "pageHeight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "innerWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "innerHeight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LayoutInsetsSnapshot", + "params": [] + } + ] + }, + { + "name": "LayoutInsetsSnapshot", + "binaryName": "com.demcha.compose.engine.debug.LayoutInsetsSnapshot", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "constructor", + "name": "LayoutInsetsSnapshot", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "from", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "LayoutInsetsSnapshot", + "params": [ + { + "type": "Margin", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "from", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "LayoutInsetsSnapshot", + "params": [ + { + "type": "Padding", + "name": "padding" + } + ] + }, + { + "kind": "method", + "name": "top", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "right", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "bottom", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "left", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "LayoutNodeSnapshot", + "binaryName": "com.demcha.compose.engine.debug.LayoutNodeSnapshot", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "constructor", + "name": "LayoutNodeSnapshot", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "LayoutInsetsSnapshot", + "name": null + }, + { + "type": "LayoutInsetsSnapshot", + "name": null + } + ] + }, + { + "kind": "method", + "name": "path", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "entityName", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "entityKind", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "parentPath", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "childIndex", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "depth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "layer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "computedX", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "computedY", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "placementX", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "placementY", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "placementWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "placementHeight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "startPage", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "endPage", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "contentWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "contentHeight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "margin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LayoutInsetsSnapshot", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LayoutInsetsSnapshot", + "params": [] + } + ] + }, + { + "name": "LayoutSnapshot", + "binaryName": "com.demcha.compose.engine.debug.LayoutSnapshot", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "constructor", + "name": "LayoutSnapshot", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "LayoutCanvasSnapshot", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "formatVersion", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "canvas", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LayoutCanvasSnapshot", + "params": [] + }, + { + "kind": "method", + "name": "totalPages", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "nodes", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.engine.measurement", + "types": [ + { + "name": "TextMeasurementSystem", + "binaryName": "com.demcha.compose.engine.measurement.TextMeasurementSystem", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "method", + "name": "measure", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ContentSize", + "params": [ + { + "type": "TextStyle", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "textWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [ + { + "type": "TextStyle", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "lineMetrics", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "TextMeasurementSystem.LineMetrics", + "params": [ + { + "type": "TextStyle", + "name": null + } + ] + }, + { + "kind": "method", + "name": "clearCaches", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [] + }, + { + "kind": "method", + "name": "lineHeight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [ + { + "type": "TextStyle", + "name": null + } + ] + } + ] + }, + { + "name": "TextMeasurementSystem.LineMetrics", + "binaryName": "com.demcha.compose.engine.measurement.TextMeasurementSystem$LineMetrics", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "reachedVia": "referenced by admitted API", + "members": [ + { + "kind": "constructor", + "name": "LineMetrics", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "lineHeight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "baselineOffsetFromBottom", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "outerGap", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [ + { + "type": "TextMeasurementSystem.LineMetrics", + "name": "base" + } + ] + }, + { + "kind": "method", + "name": "ascent", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "descent", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "leading", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.font", + "types": [ + { + "name": "DefaultFonts", + "binaryName": "com.demcha.compose.font.DefaultFonts", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "bundledFamilies", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "standardFamilies", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "googleFamilies", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "bundledFontNames", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "FontFamilyDefinition", + "binaryName": "com.demcha.compose.font.FontFamilyDefinition", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "FontName", + "params": [] + }, + { + "kind": "method", + "name": "wordFamily", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "standard14Family", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Optional", + "params": [] + }, + { + "kind": "method", + "name": "fontSourceSet", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Optional", + "params": [] + }, + { + "kind": "method", + "name": "standard14", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "FontFamilyDefinition", + "params": [ + { + "type": "FontName", + "name": "name" + }, + { + "type": "String", + "name": "regular" + }, + { + "type": "String", + "name": "bold" + }, + { + "type": "String", + "name": "italic" + }, + { + "type": "String", + "name": "boldItalic" + } + ] + }, + { + "kind": "method", + "name": "classpath", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "FontFamilyDefinition.Builder", + "params": [ + { + "type": "FontName", + "name": "name" + }, + { + "type": "String", + "name": "regularResource" + } + ] + }, + { + "kind": "method", + "name": "classpath", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "FontFamilyDefinition.Builder", + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "regularResource" + } + ] + }, + { + "kind": "method", + "name": "files", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "FontFamilyDefinition.Builder", + "params": [ + { + "type": "FontName", + "name": "name" + }, + { + "type": "Path", + "name": "regularPath" + } + ] + }, + { + "kind": "method", + "name": "files", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "FontFamilyDefinition.Builder", + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "Path", + "name": "regularPath" + } + ] + } + ] + }, + { + "name": "FontFamilyDefinition.Builder", + "binaryName": "com.demcha.compose.font.FontFamilyDefinition$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "wordFamily", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "FontFamilyDefinition.Builder", + "params": [ + { + "type": "String", + "name": "wordFamily" + } + ] + }, + { + "kind": "method", + "name": "boldResource", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "FontFamilyDefinition.Builder", + "params": [ + { + "type": "String", + "name": "resourcePath" + } + ] + }, + { + "kind": "method", + "name": "italicResource", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "FontFamilyDefinition.Builder", + "params": [ + { + "type": "String", + "name": "resourcePath" + } + ] + }, + { + "kind": "method", + "name": "boldItalicResource", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "FontFamilyDefinition.Builder", + "params": [ + { + "type": "String", + "name": "resourcePath" + } + ] + }, + { + "kind": "method", + "name": "boldPath", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "FontFamilyDefinition.Builder", + "params": [ + { + "type": "Path", + "name": "path" + } + ] + }, + { + "kind": "method", + "name": "italicPath", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "FontFamilyDefinition.Builder", + "params": [ + { + "type": "Path", + "name": "path" + } + ] + }, + { + "kind": "method", + "name": "boldItalicPath", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "FontFamilyDefinition.Builder", + "params": [ + { + "type": "Path", + "name": "path" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "FontFamilyDefinition", + "params": [] + } + ] + }, + { + "name": "FontFamilyDefinition.FontBinarySource", + "binaryName": "com.demcha.compose.font.FontFamilyDefinition$FontBinarySource", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "openStream", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InputStream", + "params": [] + }, + { + "kind": "method", + "name": "description", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "FontFamilyDefinition.FontSourceSet", + "binaryName": "com.demcha.compose.font.FontFamilyDefinition$FontSourceSet", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "FontSourceSet", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "FontFamilyDefinition.FontBinarySource", + "name": null + }, + { + "type": "FontFamilyDefinition.FontBinarySource", + "name": null + }, + { + "type": "FontFamilyDefinition.FontBinarySource", + "name": null + }, + { + "type": "FontFamilyDefinition.FontBinarySource", + "name": null + } + ] + }, + { + "kind": "method", + "name": "regular", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "FontFamilyDefinition.FontBinarySource", + "params": [] + }, + { + "kind": "method", + "name": "bold", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "FontFamilyDefinition.FontBinarySource", + "params": [] + }, + { + "kind": "method", + "name": "italic", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "FontFamilyDefinition.FontBinarySource", + "params": [] + }, + { + "kind": "method", + "name": "boldItalic", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "FontFamilyDefinition.FontBinarySource", + "params": [] + } + ] + }, + { + "name": "FontFamilyDefinition.Standard14Family", + "binaryName": "com.demcha.compose.font.FontFamilyDefinition$Standard14Family", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "Standard14Family", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "regular", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "bold", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "italic", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "boldItalic", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "FontLibrary", + "binaryName": "com.demcha.compose.font.FontLibrary", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "FontLibrary", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "getFont", + "static": false, + "origin": "source", + "typeParameters": "", + "returns": "Optional", + "params": [ + { + "type": "FontName", + "name": "fontName" + }, + { + "type": "Class", + "name": "fontClass" + } + ] + }, + { + "kind": "method", + "name": "addFont", + "static": false, + "origin": "source", + "typeParameters": "", + "returns": "void", + "params": [ + { + "type": "FontName", + "name": "name" + }, + { + "type": "Class", + "name": "fontClass" + }, + { + "type": "F", + "name": "font" + } + ] + }, + { + "kind": "method", + "name": "addFontFactory", + "static": false, + "origin": "source", + "typeParameters": "", + "returns": "void", + "params": [ + { + "type": "FontName", + "name": "name" + }, + { + "type": "Class", + "name": "fontClass" + }, + { + "type": "Supplier", + "name": "factory" + } + ] + }, + { + "kind": "method", + "name": "addFont", + "static": false, + "origin": "source", + "typeParameters": "", + "returns": "void", + "params": [ + { + "type": "FontName", + "name": "name" + }, + { + "type": "F", + "name": "font" + } + ] + }, + { + "kind": "method", + "name": "addFont", + "static": false, + "origin": "source", + "typeParameters": "", + "returns": "void", + "params": [ + { + "type": "FontSet", + "name": "set" + } + ] + }, + { + "kind": "method", + "name": "availableFonts", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Set", + "params": [] + }, + { + "kind": "method", + "name": "resolveFamily", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "FontName", + "params": [ + { + "type": "FontName", + "name": "fontName" + } + ] + } + ] + }, + { + "name": "FontName", + "binaryName": "com.demcha.compose.font.FontName", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "TIMES_ROMAN", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "HELVETICA", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "HELVETICA_BOLD", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "HELVETICA_OBLIQUE", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "HELVETICA_BOLD_OBLIQUE", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "COURIER", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "COURIER_BOLD", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "COURIER_OBLIQUE", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "COURIER_BOLD_OBLIQUE", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "TIMES_BOLD", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "TIMES_ITALIC", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "TIMES_BOLD_ITALIC", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "SYMBOL", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "DEFAULT", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "ZAPF_DINGBATS", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "LATO", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "PT_SANS", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "PT_SERIF", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "FIRA_SANS", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "UBUNTU", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "ALEGREYA_SANS", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "CARLITO", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "POPPINS", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "BARLOW", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "BARLOW_CONDENSED", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "ASAP_CONDENSED", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "ARSENAL", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "IBM_PLEX_SERIF", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "IBM_PLEX_MONO", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "CRIMSON_TEXT", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "SPECTRAL", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "ZILLA_SLAB", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "GENTIUM_PLUS", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "TINOS", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "COUSINE", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "FIRA_SANS_CONDENSED", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "KANIT", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "VOLKHOV", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "TAVIRAJ", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "TRIRONG", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "SARABUN", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "PROMPT", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "ANDIKA", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "BAI_JAMJUREE", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "JETBRAINS_MONO", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "AMIRI", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "DAVID_LIBRE", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "NOTO_SANS_GEORGIAN", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "NOTO_SANS_ARMENIAN", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "constant", + "name": "GOTHIC_A1", + "static": true, + "origin": "generated", + "type": "FontName" + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "FontName", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "normalizedName", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "sameFamily", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [ + { + "type": "FontName", + "name": "other" + } + ] + } + ] + }, + { + "name": "FontSet", + "binaryName": "com.demcha.compose.font.FontSet", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "FontSet", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "FontName", + "name": "name" + }, + { + "type": "F", + "name": "font" + } + ] + }, + { + "kind": "constructor", + "name": "FontSet", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "FontName", + "name": null + }, + { + "type": "Class", + "name": null + }, + { + "type": "F", + "name": null + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "FontName", + "params": [] + }, + { + "kind": "method", + "name": "fontClass", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "font", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "F", + "params": [] + } + ] + } + ] + } + ] +} diff --git a/knowledge/api/authoring.md b/knowledge/api/authoring.md new file mode 100644 index 000000000..cd80e8e17 --- /dev/null +++ b/knowledge/api/authoring.md @@ -0,0 +1,2596 @@ +--- +skillId: graphcompose-api-surface +targetLibrary: GraphCompose +targetVersion: 2.2.x +verifiedAgainst: 2.2.3-SNAPSHOT +status: active +generator: knowledge/tools/api-surface/extract-api.mjs +generatedFrom: "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" +note: "Generated from the pinned artifact's class files. Authoritative closed set: a symbol absent here does not exist for this version. Regenerate, do not hand-edit." +--- + +# GraphCompose — Public API Surface (authoring) + +> **Generated from `knowledge/tools/api-surface/extract-api.mjs` — do not hand-edit.** +> This is the COMPLETE list of public methods and constants on the `authoring` surface, +> read from the pinned artifact's class files — so members generated by Lombok +> (`builder()`, `toBuilder()`, getters, nested `…Builder` types) are present, which +> they cannot be when the source text is parsed instead. +> **If a member is not listed here, it does not exist — do not invent one.** +> Types marked `[beta]` carry `@Beta`: usable, but the contract can still change. +> `@Internal` types and members are excluded on purpose; `excluded.json` records each one. +> +> This is one surface of several. The others are listed beside it in +> `knowledge/api/`; a task should load the one it needs, not all of them. +> +> Ask it a question instead of reading it: +> `node knowledge/tools/api-query/api-query.mjs --search `. + +**GraphCompose version:** 2.2.3-SNAPSHOT + +Types: 227 · methods: 2020 · constants: 228 · compiler-generated members: 1077 + +## com.demcha.compose + +### GraphCompose (class) +- `GraphCompose.DocumentBuilder document()` +- `GraphCompose.DocumentBuilder document(Path outputFile)` +- `MultiSectionDocumentBuilder documents()` +- `MultiSectionDocumentBuilder documents(Path outputFile)` +- `List availableFonts()` +- `void renderAvailableFontsPreview(Path outputFile)` +- `byte[] renderAvailableFontsPreview()` + +### GraphCompose.DocumentBuilder (class) +- `GraphCompose.DocumentBuilder pageSize(DocumentPageSize pageSize)` +- `GraphCompose.DocumentBuilder pageSize(double width, double height)` +- `GraphCompose.DocumentBuilder margin(DocumentInsets margin)` +- `GraphCompose.DocumentBuilder margin(float top, float right, float bottom, float left)` +- `GraphCompose.DocumentBuilder markdown(boolean enabled)` +- `GraphCompose.DocumentBuilder guideLines(boolean enabled)` +- `GraphCompose.DocumentBuilder debug(DocumentDebugOptions options)` +- `GraphCompose.DocumentBuilder pageBackground(DocumentColor color)` +- `GraphCompose.DocumentBuilder pageBackground(Color color)` +- `GraphCompose.DocumentBuilder pageBackgrounds(List fills)` +- `GraphCompose.DocumentBuilder registerFontFamily(FontFamilyDefinition definition)` +- `GraphCompose.DocumentBuilder registerFontFamily(FontName familyName, Path regular)` +- `GraphCompose.DocumentBuilder registerFontFamily(String familyName, Path regular)` +- `GraphCompose.DocumentBuilder registerFontFamily(FontName familyName, Path regular, Path bold, Path italic)` +- `GraphCompose.DocumentBuilder registerFontFamily(String familyName, Path regular, Path bold, Path italic)` +- `GraphCompose.DocumentBuilder registerFontFamily(FontName familyName, Path regular, Path bold, Path italic, Path boldItalic)` +- `GraphCompose.DocumentBuilder registerFontFamily(String familyName, Path regular, Path bold, Path italic, Path boldItalic)` +- `DocumentSession create()` + +## com.demcha.compose.document.api + +### DocumentPageSize (record) +- `new DocumentPageSize(double, double)` +- `DocumentPageSize of(double width, double height)` +- `DocumentPageSize landscape()` +- `DocumentPageSize portrait()` +- `double width()` +- `double height()` +- constants: `A4`, `LETTER`, `LEGAL`, `SLIDE_16_9`, `SLIDE_4_3` + +### DocumentSession (class) +- `new DocumentSession(Path defaultOutputFile, DocumentPageSize pageSize, DocumentInsets margin, Collection customFontFamilies, boolean markdown, boolean guideLines)` +- `DocumentDsl dsl()` +- `DocumentSession compose(Consumer spec)` +- `PageFlowBuilder pageFlow()` +- `ContainerNode pageFlow(Consumer spec)` +- `DocumentSession add(DocumentNode node)` +- `DocumentSession addAll(Collection nodes)` +- `DocumentSession clear()` +- `DocumentSession pageSize(DocumentPageSize pageSize)` +- `DocumentSession pageSize(double width, double height)` +- `DocumentSession margin(DocumentInsets margin)` +- `DocumentSession markdown(boolean enabled)` +- `DocumentSession guideLines(boolean enabled)` +- `DocumentSession debug(DocumentDebugOptions options)` +- `DocumentSession pageBackground(DocumentColor color)` +- `DocumentSession pageBackground(Color color)` +- `DocumentSession pageBackgrounds(List fills)` +- `DocumentSession pageMargins(List rules)` +- `SessionChromeApi chrome()` +- `DocumentSession metadata(DocumentMetadata metadata)` +- `DocumentSession viewerPreferences(DocumentViewerPreferences viewerPreferences)` +- `DocumentSession watermark(DocumentWatermark watermark)` +- `DocumentSession protect(DocumentProtection protection)` +- `DocumentSession header(DocumentHeaderFooter header)` +- `DocumentSession footer(DocumentHeaderFooter footer)` +- `DocumentSession clearHeadersAndFooters()` +- `DocumentSession registerFontFamily(FontFamilyDefinition definition)` +- ` DocumentSession registerNodeDefinition(NodeDefinition definition)` +- `SessionFontApi fonts()` +- `SessionLayoutApi layout()` +- `NodeRegistry registry()` +- `DocumentGraph documentGraph()` +- `LayoutCanvas canvas()` +- `double availableHeight()` +- `List roots()` +- `LayoutGraph layoutGraph()` +- `LayoutDiagnosticSnapshot layoutSnapshot(LayoutSnapshotOptions options)` +- `LayoutSnapshot layoutSnapshot()` +- `PageIndex pageIndex()` +- ` R render(FixedLayoutBackend backend)` +- ` R render(FixedLayoutBackend backend, Path outputFile)` +- ` R export(SemanticBackend backend)` +- ` R export(SemanticBackend backend, Path outputFile)` +- `byte[] toPdfBytes()` +- `void writePdf(OutputStream output)` +- `void buildPdf()` +- `void buildPdf(Path outputFile)` +- `byte[] toPptxBytes() [beta]` +- `void writePptx(OutputStream output) [beta]` +- `void buildPptx(Path outputFile) [beta]` +- `List toImages(int dpi)` +- `List toImages(int dpi, boolean transparent)` +- `BufferedImage toImage(int pageIndex, int dpi)` +- `BufferedImage toImage(int pageIndex, int dpi, boolean transparent)` +- `void close()` +- `boolean isClosed()` + +### MultiSectionDocument (class) +- `byte[] toPdfBytes()` +- `byte[] toPdfBytes(FixedLayoutRenderer backend)` +- `void writePdf(OutputStream output)` +- `void writePdf(FixedLayoutRenderer backend, OutputStream output)` +- `void buildPdf()` +- `void buildPdf(Path outputFile)` +- `List sectionSnapshots()` +- `void close()` + +### MultiSectionDocumentBuilder (class) +- `new MultiSectionDocumentBuilder()` +- `new MultiSectionDocumentBuilder(Path outputFile)` +- `MultiSectionDocumentBuilder section(DocumentSession section)` +- `MultiSectionDocument create()` + +### PageBackgroundFill (record) +- `new PageBackgroundFill(double, double, double, double, DocumentColor)` +- `PageBackgroundFill fullPage(DocumentColor color)` +- `PageBackgroundFill leftColumn(double widthRatio, DocumentColor color)` +- `PageBackgroundFill rightColumn(double widthRatio, DocumentColor color)` +- `PageBackgroundFill column(double xRatio, double widthRatio, DocumentColor color)` +- `PageBackgroundFill topBand(double heightRatio, DocumentColor color)` +- `PageBackgroundFill bottomBand(double heightRatio, DocumentColor color)` +- `PageBackgroundFill band(double yRatioFromTop, double heightRatio, DocumentColor color)` +- `PageBackgroundFill topBandPoints(double heightPoints, double pageHeight, DocumentColor color)` +- `PageBackgroundFill bandPoints(double yFromTopPoints, double heightPoints, double pageHeight, DocumentColor color)` +- `double xRatio()` +- `double yRatio()` +- `double widthRatio()` +- `double heightRatio()` +- `DocumentColor color()` + +### PageMarginRule (record) +- `new PageMarginRule(int, int, DocumentInsets)` +- `PageMarginRule page(int page, DocumentInsets insets)` +- `PageMarginRule range(int fromPage, int toPage, DocumentInsets insets)` +- `PageMarginRule from(int fromPage, DocumentInsets insets)` +- `boolean coversPage(int pageNumber)` +- `int fromPage()` +- `int toPageExclusive()` +- `DocumentInsets insets()` + +### SessionChromeApi (class) +- `SessionChromeApi metadata(DocumentMetadata metadata)` +- `SessionChromeApi viewerPreferences(DocumentViewerPreferences viewerPreferences)` +- `SessionChromeApi watermark(DocumentWatermark watermark)` +- `SessionChromeApi protect(DocumentProtection protection)` +- `SessionChromeApi header(DocumentHeaderFooter header)` +- `SessionChromeApi footer(DocumentHeaderFooter footer)` +- `SessionChromeApi clearHeadersAndFooters()` +- `DocumentSession session()` + +### SessionFontApi (class) +- `SessionFontApi registerFamily(FontFamilyDefinition definition)` +- ` SessionFontApi registerNodeDefinition(NodeDefinition definition)` +- `DocumentSession session()` + +### SessionLayoutApi (class) +- `LayoutGraph graph()` +- `DocumentGraph documentGraph()` +- `List roots()` +- `LayoutCanvas canvas()` +- `NodeRegistry registry()` +- `LayoutSnapshot snapshot()` +- `DocumentSession session()` + +## com.demcha.compose.document.chart + +### AxisSpec (record) +- `new AxisSpec(boolean, Double, Double, NumberFormatSpec, boolean, boolean)` +- `new AxisSpec(boolean baselineAtZero, Double min, Double max, NumberFormatSpec format, boolean showGridLines)` +- `AxisSpec defaults()` +- `AxisSpec.Builder builder()` +- `boolean baselineAtZero()` +- `Double min()` +- `Double max()` +- `NumberFormatSpec format()` +- `boolean showGridLines()` +- `boolean showTickLabels()` + +### AxisSpec.Builder (class) +- `new Builder()` +- `AxisSpec.Builder baselineAtZero(boolean v)` +- `AxisSpec.Builder min(double v)` +- `AxisSpec.Builder max(double v)` +- `AxisSpec.Builder format(NumberFormatSpec f)` +- `AxisSpec.Builder showGridLines(boolean v)` +- `AxisSpec.Builder showTickLabels(boolean v)` +- `AxisSpec build()` + +### BarGrouping (enum) +- constants: `GROUPED`, `STACKED` + +### ChartData (record) +- `new ChartData(List, List)` +- `ChartData.Builder builder()` +- `int seriesCount()` +- `int categoryCount()` +- `List categories()` +- `List series()` + +### ChartData.Builder (class) +- `new Builder()` +- `ChartData.Builder categories(String... labels)` +- `ChartData.Builder category(String label)` +- `ChartData.Builder series(ChartData.Series s)` +- `ChartData.Builder series(String name, double... values)` +- `ChartData build()` + +### ChartData.Series (record) +- `new Series(String, List)` +- `ChartData.Series of(String name, double... values)` +- `String name()` +- `List values()` + +### ChartDefaults (class) +- constants: `BAR_WIDTH_RATIO`, `TARGET_TICKS`, `DEFAULT_PALETTE`, `DEFAULT_GRID_STROKE`, `AXIS_TEXT_STYLE`, `LEGEND_TEXT_STYLE`, `VALUE_LABEL_TEXT_STYLE`, `VALUE_LABEL_HALO`, `SLICE_STROKE`, `DONUT_CENTER_TEXT_STYLE`, `SECTOR_TESSELLATION_STEP_DEGREES`, `DEFAULT_THEME` + +### ChartLayoutResolver (class) +- `List resolve(ChartSpec spec, ChartStyle style, ChartTheme theme, double width, double height, ChartTextMetrics metrics)` + +### ChartPrimitive (record) +- `new ChartPrimitive(DocumentNode, double, double, double, double)` +- `DocumentNode node()` +- `double x()` +- `double y()` +- `double width()` +- `double height()` + +### ChartSize (interface) +- `ChartSize fixedHeight(double)` +- `ChartSize aspectRatio(double, double)` +- `double resolveHeight(double availableWidth)` + +### ChartSpec (interface) +- `ChartSpec.Bar.Builder bar()` +- `ChartSpec.Line.Builder line()` +- `ChartSpec.Pie.Builder pie()` +- `ChartData data()` +- `NumberFormatSpec valueFormat()` +- `LegendPosition legend()` +- `ChartSize size()` + +### ChartSpec.Bar (record) +- `new Bar(ChartData, boolean, BarGrouping, AxisSpec, LegendPosition, ValueLabelMode, ChartSize, boolean)` +- `new Bar(ChartData data, boolean horizontal, BarGrouping grouping, AxisSpec valueAxis, LegendPosition legend, ValueLabelMode valueLabels, ChartSize size)` +- `NumberFormatSpec valueFormat()` +- `ChartData data()` +- `boolean horizontal()` +- `BarGrouping grouping()` +- `AxisSpec valueAxis()` +- `LegendPosition legend()` +- `ValueLabelMode valueLabels()` +- `ChartSize size()` +- `boolean showCategoryLabels()` + +### ChartSpec.Bar.Builder (class) +- `new Builder()` +- `ChartSpec.Bar.Builder data(ChartData d)` +- `ChartSpec.Bar.Builder horizontal(boolean v)` +- `ChartSpec.Bar.Builder showCategoryLabels(boolean v)` +- `ChartSpec.Bar.Builder grouping(BarGrouping g)` +- `ChartSpec.Bar.Builder valueAxis(AxisSpec a)` +- `ChartSpec.Bar.Builder legend(LegendPosition l)` +- `ChartSpec.Bar.Builder valueLabels(ValueLabelMode m)` +- `ChartSpec.Bar.Builder size(ChartSize s)` +- `ChartSpec.Bar build()` + +### ChartSpec.Line (record) +- `new Line(ChartData, LineInterpolation, boolean, AxisSpec, LegendPosition, ValueLabelMode, ChartSize, boolean)` +- `new Line(ChartData data, LineInterpolation interpolation, AxisSpec valueAxis, LegendPosition legend, ValueLabelMode valueLabels, ChartSize size)` +- `NumberFormatSpec valueFormat()` +- `ChartData data()` +- `LineInterpolation interpolation()` +- `boolean area()` +- `AxisSpec valueAxis()` +- `LegendPosition legend()` +- `ValueLabelMode valueLabels()` +- `ChartSize size()` +- `boolean showCategoryLabels()` + +### ChartSpec.Line.Builder (class) +- `new Builder()` +- `ChartSpec.Line.Builder data(ChartData d)` +- `ChartSpec.Line.Builder interpolation(LineInterpolation mode)` +- `ChartSpec.Line.Builder area(boolean v)` +- `ChartSpec.Line.Builder showCategoryLabels(boolean v)` +- `ChartSpec.Line.Builder valueAxis(AxisSpec a)` +- `ChartSpec.Line.Builder legend(LegendPosition l)` +- `ChartSpec.Line.Builder valueLabels(ValueLabelMode m)` +- `ChartSpec.Line.Builder size(ChartSize s)` +- `ChartSpec.Line build()` + +### ChartSpec.Pie (record) +- `new Pie(ChartData, double, double, boolean, SliceLabelMode, NumberFormatSpec, NumberFormatSpec, String, LegendPosition, ChartSize)` +- `ChartData data()` +- `double donutRatio()` +- `double startAngleDegrees()` +- `boolean clockwise()` +- `SliceLabelMode sliceLabels()` +- `NumberFormatSpec valueFormat()` +- `NumberFormatSpec percentFormat()` +- `String centerText()` +- `LegendPosition legend()` +- `ChartSize size()` + +### ChartSpec.Pie.Builder (class) +- `new Builder()` +- `ChartSpec.Pie.Builder data(ChartData d)` +- `ChartSpec.Pie.Builder donutRatio(double ratio)` +- `ChartSpec.Pie.Builder startAngleDegrees(double degrees)` +- `ChartSpec.Pie.Builder clockwise(boolean v)` +- `ChartSpec.Pie.Builder sliceLabels(SliceLabelMode mode)` +- `ChartSpec.Pie.Builder valueFormat(NumberFormatSpec f)` +- `ChartSpec.Pie.Builder percentFormat(NumberFormatSpec f)` +- `ChartSpec.Pie.Builder centerText(String text)` +- `ChartSpec.Pie.Builder legend(LegendPosition l)` +- `ChartSpec.Pie.Builder size(ChartSize s)` +- `ChartSpec.Pie build()` + +### ChartStyle (record) +- `new ChartStyle(List, Map, Double, DocumentCornerRadius, Double, ChartStyle.GridStyle, PointMarker, Double, DocumentTextStyle, DocumentTextStyle, DocumentTextStyle, DocumentPaint, Double, DocumentStroke, Double, DocumentTextStyle)` +- `ChartStyle inherit()` +- `ChartStyle.Builder builder()` +- `ChartStyle mergedUnder(ChartStyle top)` +- `DocumentPaint paintForSeries(int index, List fallbackPalette)` +- `List palette()` +- `Map seriesPaintOverrides()` +- `Double lineWidth()` +- `DocumentCornerRadius barCornerRadius()` +- `Double barWidthRatio()` +- `ChartStyle.GridStyle grid()` +- `PointMarker pointMarker()` +- `Double valueLabelOffset()` +- `DocumentTextStyle axisTextStyle()` +- `DocumentTextStyle legendTextStyle()` +- `DocumentTextStyle valueLabelTextStyle()` +- `DocumentPaint valueLabelHalo()` +- `Double areaOpacity()` +- `DocumentStroke sliceStroke()` +- `Double sliceGapDegrees()` +- `DocumentTextStyle donutCenterTextStyle()` + +### ChartStyle.Builder (class) +- `new Builder()` +- `ChartStyle.Builder palette(DocumentPaint... paints)` +- `ChartStyle.Builder seriesPaint(int index, DocumentPaint paint)` +- `ChartStyle.Builder lineWidth(double width)` +- `ChartStyle.Builder barCornerRadius(DocumentCornerRadius r)` +- `ChartStyle.Builder barWidthRatio(double ratio)` +- `ChartStyle.Builder grid(ChartStyle.GridStyle grid)` +- `ChartStyle.Builder pointMarker(PointMarker marker)` +- `ChartStyle.Builder valueLabelOffset(double offset)` +- `ChartStyle.Builder axisTextStyle(DocumentTextStyle s)` +- `ChartStyle.Builder legendTextStyle(DocumentTextStyle s)` +- `ChartStyle.Builder valueLabelTextStyle(DocumentTextStyle s)` +- `ChartStyle.Builder valueLabelHalo(DocumentPaint halo)` +- `ChartStyle.Builder areaOpacity(double opacity)` +- `ChartStyle.Builder sliceStroke(DocumentStroke stroke)` +- `ChartStyle.Builder sliceGapDegrees(double degrees)` +- `ChartStyle.Builder donutCenterTextStyle(DocumentTextStyle s)` +- `ChartStyle build()` + +### ChartStyle.GridStyle (record) +- `new GridStyle(DocumentStroke, DocumentStroke)` +- `ChartStyle.GridStyle horizontal(DocumentStroke stroke)` +- `ChartStyle.GridStyle none()` +- `DocumentStroke horizontal()` +- `DocumentStroke vertical()` + +### ChartTextMetrics (interface) +- `double width(DocumentTextStyle, String)` +- `double lineHeight(DocumentTextStyle)` +- `double descent(DocumentTextStyle)` + +### ChartTheme (record) +- `new ChartTheme(List, DocumentStroke, DocumentTextStyle, DocumentTextStyle, DocumentTextStyle, DocumentPaint)` +- `ChartStyle toChartStyle()` +- `List palette()` +- `DocumentStroke gridStroke()` +- `DocumentTextStyle axisTextStyle()` +- `DocumentTextStyle legendTextStyle()` +- `DocumentTextStyle valueLabelTextStyle()` +- `DocumentPaint valueLabelHalo()` + +### LegendPosition (enum) +- constants: `NONE`, `BOTTOM`, `RIGHT`, `TOP` + +### LineInterpolation (enum) +- constants: `LINEAR`, `SMOOTH`, `MONOTONE` + +### NiceScale (record) +- `new NiceScale(double, double, double, int)` +- `NiceScale compute(double dataMin, double dataMax, boolean includeZero, int targetTicks)` +- `double fractionOf(double value)` +- `double niceMin()` +- `double niceMax()` +- `double tickStep()` +- `int tickCount()` + +### NumberFormatSpec (record) +- `new NumberFormatSpec(String, Locale, String, String, double)` +- `NumberFormatSpec pattern(String pattern)` +- `NumberFormatSpec defaults()` +- `NumberFormatSpec withLocale(Locale locale)` +- `NumberFormatSpec withPrefix(String prefix)` +- `NumberFormatSpec withSuffix(String suffix)` +- `NumberFormatSpec scaledBy(double scaleDivisor)` +- `String format(double value)` +- `DecimalFormat formatter()` +- `String pattern()` +- `Locale locale()` +- `String prefix()` +- `String suffix()` +- `double scaleDivisor()` + +### PointMarker (record) +- `new PointMarker(double, double, DocumentPaint, DocumentStroke)` +- `PointMarker circle(double diameter)` +- `PointMarker ellipse(double width, double height)` +- `PointMarker withFill(DocumentPaint fill)` +- `PointMarker withStroke(DocumentStroke stroke)` +- `double width()` +- `double height()` +- `DocumentPaint fill()` +- `DocumentStroke stroke()` + +### SliceLabelMode (enum) +- constants: `NONE`, `VALUE`, `PERCENT`, `CATEGORY`, `CATEGORY_PERCENT` + +### ValueLabelMode (enum) +- constants: `NONE`, `OUTSIDE`, `INSIDE` + +## com.demcha.compose.document.dsl + +### AbstractFlowBuilder (class) +- `T name(String name)` +- `T anchor(String anchor)` +- `T bookmark(DocumentBookmarkOptions bookmarkOptions)` +- `T spacing(double spacing)` +- `T padding(DocumentInsets padding)` +- `T padding(float top, float right, float bottom, float left)` +- `T margin(DocumentInsets margin)` +- `T margin(float top, float right, float bottom, float left)` +- `T bleed(DocumentBleed bleed)` +- `T bleedToEdge(DocumentEdge... edges)` +- `T fillColor(Color fillColor)` +- `T fillColor(DocumentColor fillColor)` +- `T stroke(DocumentStroke stroke)` +- `T borders(DocumentBorders borders)` +- `T cornerRadius(double radius)` +- `T cornerRadius(DocumentCornerRadius cornerRadius)` +- `T band(DocumentColor color)` +- `T softPanel(DocumentColor color, double radius, double padding)` +- `T softPanel(DocumentColor color, DocumentCornerRadius cornerRadius, double padding)` +- `T softPanel(DocumentColor color)` +- `T softPanel(DocumentColor color, double radius, double padding, DocumentStroke stroke)` +- `T softPanel(DocumentColor color, DocumentCornerRadius cornerRadius, double padding, DocumentStroke stroke)` +- `T accentLeft(DocumentColor color, double width)` +- `T accentRight(DocumentColor color, double width)` +- `T accentTop(DocumentColor color, double width)` +- `T accentBottom(DocumentColor color, double width)` +- `T add(DocumentNode node)` +- `T addParagraph(Consumer spec)` +- `T addParagraph(String text)` +- `T addParagraph(String text, DocumentTextStyle textStyle)` +- `T addText(Consumer spec)` +- `T addText(String text)` +- `T addText(String text, DocumentTextStyle textStyle)` +- `T addList(Consumer spec)` +- `T addList(String... items)` +- `T addList(List items)` +- `T addImage(Consumer spec)` +- `T addImage(DocumentImageData data, double width, double height)` +- `T addShape(Consumer spec)` +- `T addShape(double width, double height, DocumentColor fillColor)` +- `T addSpacer(Consumer spec)` +- `T spacer(double width, double height)` +- `T addLine(Consumer spec)` +- `T addEllipse(Consumer spec)` +- `T addPath(Consumer spec)` +- `T addSvgIcon(SvgIcon icon, double width)` +- `T addSvgIcon(SvgIcon icon, double width, HorizontalAlign align)` +- `T addAligned(HorizontalAlign align, DocumentNode node)` +- `T addEllipse(double diameter, DocumentColor fillColor)` +- `T addEllipse(double width, double height, DocumentColor fillColor)` +- `T addCircle(double diameter)` +- `T addCircle(double diameter, DocumentColor fillColor)` +- `T addCircle(double diameter, Consumer spec)` +- `T addContainer(Consumer spec)` +- `T addCanvas(double width, double height, Consumer spec)` +- `T addCircle(double diameter, DocumentColor fillColor, Consumer spec)` +- `T addEllipse(double width, double height, DocumentColor fillColor, Consumer spec)` +- `T addBarcode(Consumer spec)` +- `T chart(ChartSpec spec)` +- `T chart(ChartSpec spec, ChartStyle style)` +- `T addDivider(Consumer spec)` +- `T addTable(Consumer spec)` +- `T addLayerStack(Consumer spec)` +- `T addRich(RichText rich)` +- `T addRich(Consumer spec)` +- `T addLink(String text, String uri)` +- `T addLink(String text, DocumentLinkOptions options)` +- `T addRow(Consumer spec)` +- `T addRow(String name, Consumer spec)` +- `T addSection(Consumer spec)` +- `T addSection(String name, Consumer spec)` +- `T addTableOfContents(Consumer spec)` +- `T addPageReference(String anchor)` +- `T addPageReference(String anchor, DocumentTextStyle textStyle, TextAlign align)` +- `T headingBar(String text)` +- `T headingBar(String text, Consumer customizer)` +- `T addTimeline(Consumer spec)` +- `T module(String title, Consumer spec)` +- `T module(Consumer spec)` +- `T addModule(String title, Consumer spec)` +- `T addModule(Consumer spec)` +- `T addPageBreak(Consumer spec)` + +### BarcodeBuilder (class) +- `new BarcodeBuilder()` +- `BarcodeBuilder name(String name)` +- `BarcodeBuilder options(DocumentBarcodeOptions options)` +- `BarcodeBuilder data(String content)` +- `BarcodeBuilder type(DocumentBarcodeType type)` +- `BarcodeBuilder qrCode()` +- `BarcodeBuilder code128()` +- `BarcodeBuilder code39()` +- `BarcodeBuilder ean13()` +- `BarcodeBuilder ean8()` +- `BarcodeBuilder foreground(Color foreground)` +- `BarcodeBuilder foreground(DocumentColor foreground)` +- `BarcodeBuilder background(Color background)` +- `BarcodeBuilder background(DocumentColor background)` +- `BarcodeBuilder quietZone(int quietZoneMargin)` +- `BarcodeBuilder width(double width)` +- `BarcodeBuilder height(double height)` +- `BarcodeBuilder size(double width, double height)` +- `BarcodeBuilder link(DocumentLinkOptions linkOptions)` +- `BarcodeBuilder linkTarget(DocumentLinkTarget linkTarget)` +- `BarcodeBuilder linkTo(String anchor)` +- `BarcodeBuilder anchor(String anchor)` +- `BarcodeBuilder bookmark(DocumentBookmarkOptions bookmarkOptions)` +- `BarcodeBuilder padding(DocumentInsets padding)` +- `BarcodeBuilder margin(DocumentInsets margin)` +- `BarcodeBuilder transform(DocumentTransform transform)` +- `DocumentTransform currentTransform()` +- `BarcodeNode build()` +- `Transformable transform(DocumentTransform transform)` + +### CanvasLayerBuilder (class) +- `new CanvasLayerBuilder(double width, double height)` +- `CanvasLayerBuilder name(String name)` +- `CanvasLayerBuilder size(double width, double height)` +- `CanvasLayerBuilder position(DocumentNode child, double x, double y)` +- `CanvasLayerBuilder clipPolicy(ClipPolicy clipPolicy)` +- `CanvasLayerBuilder padding(DocumentInsets padding)` +- `CanvasLayerBuilder margin(DocumentInsets margin)` +- `CanvasLayerNode build()` + +### DividerBuilder (class) +- `DividerBuilder width(double width)` +- `DividerBuilder height(double height)` +- `DividerBuilder thickness(double height)` +- `DividerBuilder color(Color color)` +- `DividerBuilder color(DocumentColor color)` +- `DividerBuilder name(String name)` +- `DividerBuilder padding(DocumentInsets padding)` +- `DividerBuilder margin(DocumentInsets margin)` +- `ShapeNode build()` +- `ShapeBuilder margin(DocumentInsets margin)` +- `ShapeBuilder padding(DocumentInsets padding)` +- `ShapeBuilder height(double height)` +- `ShapeBuilder width(double width)` +- `ShapeBuilder name(String name)` + +### DocumentDsl (class) +- `new DocumentDsl(DocumentSession session)` +- `PageFlowBuilder pageFlow()` +- `ContainerNode pageFlow(Consumer spec)` +- `SectionBuilder section()` +- `ModuleBuilder module()` +- `ParagraphBuilder paragraph()` +- `ListBuilder list()` +- `ImageBuilder image()` +- `ShapeBuilder shape()` +- `BarcodeBuilder barcode()` +- `DividerBuilder divider()` +- `TableBuilder table()` +- `PageBreakBuilder pageBreak()` +- `RichText richText(Consumer spec)` + +### EllipseBuilder (class) +- `new EllipseBuilder()` +- `EllipseBuilder name(String name)` +- `EllipseBuilder width(double width)` +- `EllipseBuilder height(double height)` +- `EllipseBuilder size(double width, double height)` +- `EllipseBuilder circle(double diameter)` +- `EllipseBuilder fillColor(Color fillColor)` +- `EllipseBuilder fillColor(DocumentColor fillColor)` +- `EllipseBuilder stroke(DocumentStroke stroke)` +- `EllipseBuilder link(DocumentLinkOptions linkOptions)` +- `EllipseBuilder linkTarget(DocumentLinkTarget linkTarget)` +- `EllipseBuilder linkTo(String anchor)` +- `EllipseBuilder anchor(String anchor)` +- `EllipseBuilder bookmark(DocumentBookmarkOptions bookmarkOptions)` +- `EllipseBuilder padding(DocumentInsets padding)` +- `EllipseBuilder margin(DocumentInsets margin)` +- `EllipseBuilder transform(DocumentTransform transform)` +- `DocumentTransform currentTransform()` +- `EllipseNode build()` +- `Transformable transform(DocumentTransform transform)` + +### HeadingBarStyle (class) +- `new HeadingBarStyle()` +- `HeadingBarStyle fill(DocumentColor fill)` +- `HeadingBarStyle cornerRadius(double radius)` +- `HeadingBarStyle cornerRadius(DocumentCornerRadius cornerRadius)` +- `HeadingBarStyle padding(double padding)` +- `HeadingBarStyle padding(DocumentInsets padding)` +- `HeadingBarStyle margin(DocumentInsets margin)` +- `HeadingBarStyle textStyle(DocumentTextStyle textStyle)` +- `HeadingBarStyle align(TextAlign align)` +- `HeadingBarStyle stroke(DocumentStroke stroke)` + +### ImageBuilder (class) +- `new ImageBuilder()` +- `ImageBuilder name(String name)` +- `ImageBuilder source(DocumentImageData imageData)` +- `ImageBuilder source(byte[] bytes)` +- `ImageBuilder source(Path path)` +- `ImageBuilder source(String path)` +- `ImageBuilder width(double width)` +- `ImageBuilder height(double height)` +- `ImageBuilder size(double width, double height)` +- `ImageBuilder scale(double scale)` +- `ImageBuilder fitToBounds(double width, double height)` +- `ImageBuilder fitMode(DocumentImageFitMode fitMode)` +- `ImageBuilder link(DocumentLinkOptions linkOptions)` +- `ImageBuilder linkTarget(DocumentLinkTarget linkTarget)` +- `ImageBuilder linkTo(String anchor)` +- `ImageBuilder anchor(String anchor)` +- `ImageBuilder bookmark(DocumentBookmarkOptions bookmarkOptions)` +- `ImageBuilder padding(DocumentInsets padding)` +- `ImageBuilder margin(DocumentInsets margin)` +- `ImageBuilder transform(DocumentTransform transform)` +- `DocumentTransform currentTransform()` +- `ImageNode build()` +- `Transformable scale(double scale)` +- `Transformable transform(DocumentTransform transform)` + +### LayerStackBuilder (class) +- `new LayerStackBuilder()` +- `LayerStackBuilder name(String name)` +- `LayerStackBuilder layer(DocumentNode node)` +- `LayerStackBuilder layer(DocumentNode node, LayerAlign align)` +- `LayerStackBuilder layer(DocumentNode node, LayerAlign align, int zIndex)` +- `LayerStackBuilder position(DocumentNode node, double offsetX, double offsetY, LayerAlign align)` +- `LayerStackBuilder position(DocumentNode node, double offsetX, double offsetY, LayerAlign align, int zIndex)` +- `LayerStackBuilder back(DocumentNode node)` +- `LayerStackBuilder topLeft(DocumentNode node)` +- `LayerStackBuilder topCenter(DocumentNode node)` +- `LayerStackBuilder topRight(DocumentNode node)` +- `LayerStackBuilder centerLeft(DocumentNode node)` +- `LayerStackBuilder center(DocumentNode node)` +- `LayerStackBuilder centerRight(DocumentNode node)` +- `LayerStackBuilder bottomLeft(DocumentNode node)` +- `LayerStackBuilder bottomCenter(DocumentNode node)` +- `LayerStackBuilder bottomRight(DocumentNode node)` +- `LayerStackBuilder padding(DocumentInsets padding)` +- `LayerStackBuilder padding(double padding)` +- `LayerStackBuilder margin(DocumentInsets margin)` +- `LayerStackBuilder margin(double margin)` +- `LayerStackBuilder clipToBounds()` +- `LayerStackBuilder clipToBounds(boolean clip)` +- `LayerStackNode build()` + +### LineBuilder (class) +- `new LineBuilder()` +- `LineBuilder name(String name)` +- `LineBuilder width(double width)` +- `LineBuilder height(double height)` +- `LineBuilder size(double width, double height)` +- `LineBuilder horizontal(double width)` +- `LineBuilder vertical(double height)` +- `LineBuilder diagonal(double width, double height)` +- `LineBuilder from(double x, double y)` +- `LineBuilder to(double x, double y)` +- `LineBuilder stroke(DocumentStroke stroke)` +- `LineBuilder color(DocumentColor color)` +- `LineBuilder thickness(double thickness)` +- `LineBuilder dashed(double... pattern)` +- `LineBuilder dashed(DocumentDashPattern pattern)` +- `LineBuilder dashed()` +- `LineBuilder lineCap(DocumentLineCap lineCap)` +- `LineBuilder fill()` +- `LineBuilder keepWithNext()` +- `LineBuilder keepWithNext(boolean value)` +- `LineBuilder link(DocumentLinkOptions linkOptions)` +- `LineBuilder linkTarget(DocumentLinkTarget linkTarget)` +- `LineBuilder linkTo(String anchor)` +- `LineBuilder anchor(String anchor)` +- `LineBuilder bookmark(DocumentBookmarkOptions bookmarkOptions)` +- `LineBuilder padding(DocumentInsets padding)` +- `LineBuilder margin(DocumentInsets margin)` +- `LineBuilder transform(DocumentTransform transform)` +- `DocumentTransform currentTransform()` +- `LineNode build()` +- `Transformable transform(DocumentTransform transform)` + +### ListBuilder (class) +- `new ListBuilder()` +- `ListBuilder name(String name)` +- `ListBuilder items(String... items)` +- `ListBuilder items(List items)` +- `ListBuilder addItem(String item)` +- `ListBuilder addItem(String label, Consumer body)` +- `ListBuilder markerFor(int depth, ListMarker marker)` +- `ListBuilder marker(ListMarker marker)` +- `ListBuilder marker(String marker)` +- `ListBuilder bullet()` +- `ListBuilder dash()` +- `ListBuilder noMarker()` +- `ListBuilder textStyle(DocumentTextStyle textStyle)` +- `ListBuilder align(TextAlign align)` +- `ListBuilder lineSpacing(double lineSpacing)` +- `ListBuilder itemSpacing(double itemSpacing)` +- `ListBuilder continuationIndent(String continuationIndent)` +- `ListBuilder normalizeMarkers(boolean normalizeMarkers)` +- `ListBuilder padding(DocumentInsets padding)` +- `ListBuilder padding(float top, float right, float bottom, float left)` +- `ListBuilder margin(DocumentInsets margin)` +- `ListBuilder margin(float top, float right, float bottom, float left)` +- `ListNode build()` +- `Map markerOverrides()` + +### ModuleBuilder (class) +- `new ModuleBuilder()` +- `ModuleBuilder title(String title)` +- `ModuleBuilder titleStyle(DocumentTextStyle titleStyle)` +- `ModuleBuilder titleAlign(TextAlign titleAlign)` +- `ModuleBuilder titleLineSpacing(double titleLineSpacing)` +- `ModuleBuilder titlePadding(DocumentInsets titlePadding)` +- `ModuleBuilder titleMargin(DocumentInsets titleMargin)` +- `ModuleBuilder paragraph(String text)` +- `ModuleBuilder paragraph(Consumer spec)` +- `ModuleBuilder bullets(List items)` +- `ModuleBuilder bullets(String... items)` +- `ModuleBuilder dashList(List items)` +- `ModuleBuilder dashList(String... items)` +- `ModuleBuilder rows(List rows)` +- `ModuleBuilder rows(String... rows)` +- `ModuleBuilder list(List items, Consumer spec)` +- `ModuleBuilder table(TableNode table)` +- `ModuleBuilder table(Consumer spec)` +- `ModuleBuilder table(List headers, List> rows)` +- `ModuleBuilder image(ImageNode image)` +- `ModuleBuilder image(Consumer spec)` +- `ModuleBuilder divider(Consumer spec)` +- `ModuleBuilder pageBreak(String name)` +- `ModuleBuilder custom(DocumentNode node)` +- `ModuleBuilder keepTogether()` +- `ModuleBuilder keepTogether(boolean value)` +- `SectionNode build()` + +### PageBreakBuilder (class) +- `new PageBreakBuilder()` +- `PageBreakBuilder name(String name)` +- `PageBreakBuilder margin(DocumentInsets margin)` +- `PageBreakNode build()` + +### PageFlowBuilder (class) +- `ContainerNode build()` + +### ParagraphBuilder (class) +- `new ParagraphBuilder()` +- `ParagraphBuilder name(String name)` +- `ParagraphBuilder text(String text)` +- `ParagraphBuilder textStyle(DocumentTextStyle textStyle)` +- `ParagraphBuilder align(TextAlign align)` +- `ParagraphBuilder direction(TextDirection direction)` +- `ParagraphBuilder verticalAlign(TextVerticalAlign verticalAlign)` +- `ParagraphBuilder lineSpacing(double lineSpacing)` +- `ParagraphBuilder bulletOffset(String bulletOffset)` +- `ParagraphBuilder indentStrategy(DocumentTextIndent indentStrategy)` +- `ParagraphBuilder link(DocumentLinkOptions linkOptions)` +- `ParagraphBuilder linkTarget(DocumentLinkTarget linkTarget)` +- `ParagraphBuilder linkTo(String anchor)` +- `ParagraphBuilder anchor(String anchor)` +- `ParagraphBuilder inlineText(String text)` +- `ParagraphBuilder inlineText(String text, DocumentTextStyle textStyle)` +- `ParagraphBuilder inlineLink(String text, DocumentLinkOptions linkOptions)` +- `ParagraphBuilder inlineLinkTo(String text, String anchor)` +- `ParagraphBuilder inlineText(String text, DocumentTextStyle textStyle, DocumentLinkOptions linkOptions)` +- `ParagraphBuilder inlineHighlight(String text, DocumentTextStyle textStyle, DocumentColor background, double cornerRadius, DocumentInsets padding)` +- `ParagraphBuilder inlineHighlight(String text, DocumentTextStyle textStyle, DocumentColor background, double cornerRadius, DocumentInsets padding, DocumentLinkOptions link)` +- `ParagraphBuilder inlineCode(String text)` +- `ParagraphBuilder inlineCode(String text, DocumentTextStyle textStyle)` +- `ParagraphBuilder inlineChip(String text, DocumentColor fg, DocumentColor bg)` +- `ParagraphBuilder inlineImage(DocumentImageData imageData, double width, double height)` +- `ParagraphBuilder inlineImage(DocumentImageData imageData, double width, double height, InlineImageAlignment alignment)` +- `ParagraphBuilder inlineImage(DocumentImageData imageData, double width, double height, InlineImageAlignment alignment, double baselineOffset, DocumentLinkOptions linkOptions)` +- `ParagraphBuilder inlineImageLinkTo(DocumentImageData imageData, double width, double height, String anchor)` +- `ParagraphBuilder inlineImageLinkTo(DocumentImageData imageData, double width, double height, InlineImageAlignment alignment, double baselineOffset, String anchor)` +- `ParagraphBuilder dot(double diameter, DocumentColor fill)` +- `ParagraphBuilder dot(double diameter, DocumentColor fill, DocumentStroke stroke)` +- `ParagraphBuilder ellipse(double width, double height, DocumentColor fill, DocumentStroke stroke)` +- `ParagraphBuilder diamond(double size, DocumentColor fill)` +- `ParagraphBuilder triangle(double size, DocumentColor fill)` +- `ParagraphBuilder star(double size, DocumentColor fill)` +- `ParagraphBuilder arrow(double size, ShapeOutline.Direction direction, DocumentColor fill)` +- `ParagraphBuilder arrow(double size, ShapeOutline.Direction direction, ShapeOutline.ArrowStyle style, DocumentColor fill)` +- `ParagraphBuilder chevron(double size, ShapeOutline.Direction direction, DocumentColor fill)` +- `ParagraphBuilder shape(ShapeOutline outline, DocumentColor fill)` +- `ParagraphBuilder shape(ShapeOutline outline, DocumentColor fill, DocumentStroke stroke, InlineImageAlignment alignment, double baselineOffset, DocumentLinkOptions linkOptions)` +- `ParagraphBuilder inlineSvgIcon(SvgIcon icon, double size)` +- `ParagraphBuilder inlineSvgIcon(SvgIcon icon, double size, InlineImageAlignment alignment)` +- `ParagraphBuilder inlineSvgIcon(SvgIcon icon, double size, InlineImageAlignment alignment, double baselineOffset, DocumentLinkOptions linkOptions)` +- `ParagraphBuilder inlineEmoji(String shortcode, double size)` +- `ParagraphBuilder inlineEmoji(String shortcode, double size, InlineImageAlignment alignment, double baselineOffset, DocumentLinkOptions linkOptions)` +- `ParagraphBuilder shapeLinkTo(ShapeOutline outline, DocumentColor fill, String anchor)` +- `ParagraphBuilder shapeLinkTo(ShapeOutline outline, DocumentColor fill, DocumentStroke stroke, InlineImageAlignment alignment, double baselineOffset, String anchor)` +- `ParagraphBuilder checkbox(double size, boolean checked, DocumentColor boxColor, DocumentColor checkColor)` +- `ParagraphBuilder checkbox(double size, boolean checked, DocumentColor color)` +- `ParagraphBuilder checkbox(double size, boolean checked, ShapeOutline.CheckmarkStyle markStyle, DocumentColor boxColor, DocumentColor checkColor)` +- `ParagraphBuilder checkbox(double size, boolean checked, ShapeOutline mark, DocumentColor boxColor, DocumentColor checkColor)` +- `ParagraphBuilder rich(RichText rich)` +- `ParagraphBuilder rich(Consumer spec)` +- `ParagraphBuilder inlineRuns(List inlineTextRuns)` +- `ParagraphBuilder inlineRunsMixed(List runs)` +- `ParagraphBuilder bookmark(DocumentBookmarkOptions bookmarkOptions)` +- `ParagraphBuilder padding(DocumentInsets padding)` +- `ParagraphBuilder padding(float top, float right, float bottom, float left)` +- `ParagraphBuilder margin(DocumentInsets margin)` +- `ParagraphBuilder margin(float top, float right, float bottom, float left)` +- `ParagraphBuilder autoSize(DocumentTextAutoSize autoSize)` +- `ParagraphBuilder autoSize(double maxSize, double minSize)` +- `ParagraphBuilder autoSize(double maxSize)` +- `ParagraphNode build()` + +### PathBuilder (class) +- `new PathBuilder()` +- `PathBuilder name(String name)` +- `PathBuilder width(double width)` +- `PathBuilder height(double height)` +- `PathBuilder size(double width, double height)` +- `PathBuilder moveTo(double x, double y)` +- `PathBuilder lineTo(double x, double y)` +- `PathBuilder curveTo(double control1X, double control1Y, double control2X, double control2Y, double x, double y)` +- `PathBuilder closePath()` +- `PathBuilder svg(SvgPath svgPath)` +- `PathBuilder fillColor(DocumentColor fillColor)` +- `PathBuilder fillColor(Color fillColor)` +- `PathBuilder fill(DocumentPaint fillPaint)` +- `PathBuilder stroke(DocumentStroke stroke)` +- `PathBuilder strokePaint(DocumentPaint strokePaint)` +- `PathBuilder dashed(double... pattern)` +- `PathBuilder dashed(DocumentDashPattern pattern)` +- `PathBuilder lineCap(DocumentLineCap lineCap)` +- `PathBuilder lineJoin(DocumentLineJoin lineJoin)` +- `PathBuilder padding(DocumentInsets padding)` +- `PathBuilder margin(DocumentInsets margin)` +- `PathNode build()` + +### RichText (class) +- `RichText empty()` +- `RichText text(String text)` +- `RichText plain(String text)` +- `RichText bold(String text)` +- `RichText italic(String text)` +- `RichText boldItalic(String text)` +- `RichText underline(String text)` +- `RichText strikethrough(String text)` +- `RichText color(String text, DocumentColor color)` +- `RichText color(String text, Color color)` +- `RichText accent(String text, DocumentColor color)` +- `RichText accent(String text, Color color)` +- `RichText size(String text, double size)` +- `RichText style(String text, DocumentTextStyle style)` +- `RichText highlight(String text, DocumentTextStyle textStyle, DocumentColor background, double cornerRadius, DocumentInsets padding)` +- `RichText highlight(String text, DocumentTextStyle textStyle, DocumentColor background, double cornerRadius, DocumentInsets padding, DocumentLinkOptions link)` +- `RichText code(String text)` +- `RichText code(String text, DocumentTextStyle textStyle)` +- `RichText chip(String text, DocumentColor fg, DocumentColor bg)` +- `RichText link(String text, DocumentLinkOptions options)` +- `RichText link(String text, String uri)` +- `RichText linkTo(String text, String anchor)` +- `RichText linkTo(String text, DocumentTextStyle style, String anchor)` +- `RichText with(String text, DocumentTextStyle style, DocumentLinkOptions link)` +- `RichText space()` +- `RichText append(RichText other)` +- `RichText image(DocumentImageData imageData, double width, double height)` +- `RichText image(DocumentImageData imageData, double width, double height, InlineImageAlignment alignment)` +- `RichText image(DocumentImageData imageData, double width, double height, InlineImageAlignment alignment, double baselineOffset, DocumentLinkOptions linkOptions)` +- `RichText imageLinkTo(DocumentImageData imageData, double width, double height, String anchor)` +- `RichText imageLinkTo(DocumentImageData imageData, double width, double height, InlineImageAlignment alignment, double baselineOffset, String anchor)` +- `RichText svgIcon(SvgIcon icon, double size)` +- `RichText svgIcon(SvgIcon icon, double size, InlineImageAlignment alignment)` +- `RichText svgIcon(SvgIcon icon, double size, InlineImageAlignment alignment, double baselineOffset, DocumentLinkOptions linkOptions)` +- `RichText emoji(String shortcode, double size)` +- `RichText emoji(String shortcode, double size, InlineImageAlignment alignment, double baselineOffset, DocumentLinkOptions linkOptions)` +- `RichText dot(double diameter, DocumentColor fill)` +- `RichText dot(double diameter, DocumentColor fill, DocumentStroke stroke)` +- `RichText ellipse(double width, double height, DocumentColor fill, DocumentStroke stroke)` +- `RichText diamond(double size, DocumentColor fill)` +- `RichText triangle(double size, DocumentColor fill)` +- `RichText star(double size, DocumentColor fill)` +- `RichText arrow(double size, ShapeOutline.Direction direction, DocumentColor fill)` +- `RichText arrow(double size, ShapeOutline.Direction direction, ShapeOutline.ArrowStyle style, DocumentColor fill)` +- `RichText chevron(double size, ShapeOutline.Direction direction, DocumentColor fill)` +- `RichText shape(ShapeOutline outline, DocumentColor fill)` +- `RichText shape(ShapeOutline outline, DocumentColor fill, DocumentStroke stroke, InlineImageAlignment alignment, double baselineOffset, DocumentLinkOptions linkOptions)` +- `RichText shapeLinkTo(ShapeOutline outline, DocumentColor fill, String anchor)` +- `RichText shapeLinkTo(ShapeOutline outline, DocumentColor fill, DocumentStroke stroke, InlineImageAlignment alignment, double baselineOffset, String anchor)` +- `RichText sparkline(double width, double height, DocumentColor fill, double... values)` +- `RichText sparklineLine(double width, double height, double thickness, DocumentColor color, double... values)` +- `RichText checkbox(double size, boolean checked, DocumentColor boxColor, DocumentColor checkColor)` +- `RichText checkbox(double size, boolean checked, DocumentColor color)` +- `RichText checkbox(double size, boolean checked, ShapeOutline.CheckmarkStyle markStyle, DocumentColor boxColor, DocumentColor checkColor)` +- `RichText checkbox(double size, boolean checked, ShapeOutline mark, DocumentColor boxColor, DocumentColor checkColor)` +- `List runs()` +- `int size()` +- `boolean isEmpty()` + +### RowBuilder (class) +- `new RowBuilder()` +- `RowBuilder name(String name)` +- `RowBuilder spacing(double spacing)` +- `RowBuilder gap(double gap)` +- `RowBuilder padding(DocumentInsets padding)` +- `RowBuilder margin(DocumentInsets margin)` +- `RowBuilder fillColor(DocumentColor fillColor)` +- `RowBuilder stroke(DocumentStroke stroke)` +- `RowBuilder cornerRadius(double radius)` +- `RowBuilder borders(DocumentBorders borders)` +- `RowBuilder verticalAlign(RowVerticalAlign verticalAlign)` +- `RowBuilder arrangement(RowArrangement arrangement)` +- `RowBuilder flexSpacer()` +- `RowBuilder flexSpacer(double grow)` +- `RowBuilder pushRight()` +- `RowBuilder weights(double... weights)` +- `RowBuilder evenWeights()` +- `RowBuilder columns(DocumentRowColumn... columns)` +- `RowBuilder add(DocumentNode node)` +- `RowBuilder addParagraph(Consumer spec)` +- `RowBuilder addParagraph(String text)` +- `RowBuilder addParagraph(String text, DocumentTextStyle textStyle)` +- `RowBuilder addText(Consumer spec)` +- `RowBuilder addImage(Consumer spec)` +- `RowBuilder addImage(DocumentImageData imageData)` +- `RowBuilder addImage(Path path)` +- `RowBuilder addShape(Consumer spec)` +- `RowBuilder addLine(Consumer spec)` +- `RowBuilder addPageReference(String anchor, DocumentTextStyle textStyle, TextAlign align)` +- `RowBuilder addPageReference(String anchor)` +- `RowBuilder addEllipse(Consumer spec)` +- `RowBuilder addBarcode(Consumer spec)` +- `RowBuilder addSpacer(Consumer spec)` +- `RowBuilder addSpacer(double width)` +- `RowBuilder addSection(Consumer spec)` +- `RowBuilder addSection(String name, Consumer spec)` +- `RowNode build()` + +### SectionBuilder (class) +- `new SectionBuilder()` +- `SectionBuilder keepTogether()` +- `SectionBuilder keepTogether(boolean value)` +- `SectionBuilder keepWithNext()` +- `SectionBuilder keepWithNext(boolean value)` +- `SectionNode build()` + +### ShapeBuilder (class) +- `new ShapeBuilder()` +- `ShapeBuilder name(String name)` +- `ShapeBuilder width(double width)` +- `ShapeBuilder height(double height)` +- `ShapeBuilder size(double width, double height)` +- `ShapeBuilder fillColor(Color fillColor)` +- `ShapeBuilder fillColor(DocumentColor fillColor)` +- `ShapeBuilder fill(DocumentPaint paint)` +- `ShapeBuilder stroke(DocumentStroke stroke)` +- `ShapeBuilder cornerRadius(double radius)` +- `ShapeBuilder cornerRadius(DocumentCornerRadius cornerRadius)` +- `ShapeBuilder link(DocumentLinkOptions linkOptions)` +- `ShapeBuilder linkTarget(DocumentLinkTarget linkTarget)` +- `ShapeBuilder linkTo(String anchor)` +- `ShapeBuilder anchor(String anchor)` +- `ShapeBuilder bookmark(DocumentBookmarkOptions bookmarkOptions)` +- `ShapeBuilder padding(DocumentInsets padding)` +- `ShapeBuilder margin(DocumentInsets margin)` +- `ShapeBuilder transform(DocumentTransform transform)` +- `DocumentTransform currentTransform()` +- `ShapeNode build()` +- `Transformable transform(DocumentTransform transform)` + +### ShapeContainerBuilder (class) +- `new ShapeContainerBuilder()` +- `ShapeContainerBuilder name(String name)` +- `ShapeContainerBuilder rectangle(double width, double height)` +- `ShapeContainerBuilder roundedRect(double width, double height, double cornerRadius)` +- `ShapeContainerBuilder roundedRect(double width, double height, DocumentCornerRadius cornerRadius)` +- `ShapeContainerBuilder ellipse(double width, double height)` +- `ShapeContainerBuilder circle(double diameter)` +- `ShapeContainerBuilder diamond(double width, double height)` +- `ShapeContainerBuilder triangle(double width, double height)` +- `ShapeContainerBuilder star(double width, double height)` +- `ShapeContainerBuilder star(double width, double height, int points)` +- `ShapeContainerBuilder arrow(double width, double height, ShapeOutline.Direction direction)` +- `ShapeContainerBuilder chevron(double width, double height, ShapeOutline.Direction direction)` +- `ShapeContainerBuilder path(double width, double height, List segments)` +- `ShapeContainerBuilder path(double width, double height, SvgPath svgPath)` +- `ShapeContainerBuilder outline(ShapeOutline outline)` +- `ShapeContainerBuilder clipPolicy(ClipPolicy clipPolicy)` +- `ShapeContainerBuilder fillColor(DocumentColor fillColor)` +- `ShapeContainerBuilder fillColor(Color fillColor)` +- `ShapeContainerBuilder stroke(DocumentStroke stroke)` +- `ShapeContainerBuilder padding(double padding)` +- `ShapeContainerBuilder padding(DocumentInsets padding)` +- `ShapeContainerBuilder margin(double margin)` +- `ShapeContainerBuilder margin(DocumentInsets margin)` +- `ShapeContainerBuilder transform(DocumentTransform transform)` +- `DocumentTransform currentTransform()` +- `ShapeContainerBuilder layer(DocumentNode node, LayerAlign align)` +- `ShapeContainerBuilder layer(DocumentNode node, LayerAlign align, int zIndex)` +- `ShapeContainerBuilder layer(DocumentNode node)` +- `ShapeContainerBuilder position(DocumentNode node, double offsetX, double offsetY, LayerAlign align)` +- `ShapeContainerBuilder position(DocumentNode node, double offsetX, double offsetY, LayerAlign align, int zIndex)` +- `ShapeContainerBuilder back(DocumentNode node)` +- `ShapeContainerBuilder topLeft(DocumentNode node)` +- `ShapeContainerBuilder topCenter(DocumentNode node)` +- `ShapeContainerBuilder topRight(DocumentNode node)` +- `ShapeContainerBuilder centerLeft(DocumentNode node)` +- `ShapeContainerBuilder center(DocumentNode node)` +- `ShapeContainerBuilder centerRight(DocumentNode node)` +- `ShapeContainerBuilder bottomLeft(DocumentNode node)` +- `ShapeContainerBuilder bottomCenter(DocumentNode node)` +- `ShapeContainerBuilder bottomRight(DocumentNode node)` +- `ShapeContainerNode build()` +- `Transformable transform(DocumentTransform transform)` + +### SpacerBuilder (class) +- `new SpacerBuilder()` +- `SpacerBuilder name(String name)` +- `SpacerBuilder width(double width)` +- `SpacerBuilder height(double height)` +- `SpacerBuilder size(double width, double height)` +- `SpacerBuilder grow(double grow)` +- `SpacerBuilder padding(DocumentInsets padding)` +- `SpacerBuilder margin(DocumentInsets margin)` +- `SpacerNode build()` + +### TableBuilder (class) +- `new TableBuilder()` +- `TableBuilder name(String name)` +- `TableBuilder columns(DocumentTableColumn... columns)` +- `TableBuilder autoColumns(int count)` +- `TableBuilder addColumn(DocumentTableColumn column)` +- `TableBuilder row(String... values)` +- `TableBuilder rowCells(List row)` +- `TableBuilder rowCells(DocumentTableCell... row)` +- `TableBuilder header(String... values)` +- `TableBuilder headerRow(String... values)` +- `TableBuilder totalRow(DocumentTableStyle style, String... values)` +- `TableBuilder totalRow(String... values)` +- `TableBuilder zebra(DocumentTableStyle odd, DocumentTableStyle even)` +- `TableBuilder zebra(DocumentColor odd, DocumentColor even)` +- `TableBuilder repeatHeader()` +- `TableBuilder repeatHeader(int rowCount)` +- `TableBuilder headerCells(DocumentTableCell... row)` +- `TableBuilder headerCells(List row)` +- `TableBuilder rows(String[]... rows)` +- `TableBuilder defaultCellStyle(DocumentTableStyle defaultCellStyle)` +- `TableBuilder headerStyle(DocumentTableStyle style)` +- `TableBuilder rowStyle(int rowIndex, DocumentTableStyle style)` +- `TableBuilder columnStyle(int columnIndex, DocumentTableStyle style)` +- `TableBuilder width(double width)` +- `TableBuilder link(DocumentLinkOptions linkOptions)` +- `TableBuilder linkTarget(DocumentLinkTarget linkTarget)` +- `TableBuilder linkTo(String anchor)` +- `TableBuilder anchor(String anchor)` +- `TableBuilder bookmark(DocumentBookmarkOptions bookmarkOptions)` +- `TableBuilder padding(DocumentInsets padding)` +- `TableBuilder margin(DocumentInsets margin)` +- `TableNode build()` + +### TimelineBuilder (class) +- `TimelineBuilder connector(DocumentColor color, double width)` +- `TimelineBuilder gutter(double gutter)` +- `TimelineBuilder markerGap(double gap)` +- `TimelineBuilder markerColumnWeight(double weight)` +- `TimelineBuilder spacing(double spacing)` +- `TimelineBuilder titleStyle(DocumentTextStyle style)` +- `TimelineBuilder metaStyle(DocumentTextStyle style)` +- `TimelineBuilder bodyStyle(DocumentTextStyle style)` +- `TimelineBuilder entry(TimelineMarker marker, Consumer content)` +- `TimelineBuilder keepTogether()` +- `TimelineBuilder keepEntriesTogether()` + +### TimelineEntryBuilder (class) +- `TimelineEntryBuilder title(String title)` +- `TimelineEntryBuilder title(String title, DocumentTextStyle style)` +- `TimelineEntryBuilder titleStyle(DocumentTextStyle style)` +- `TimelineEntryBuilder meta(String meta)` +- `TimelineEntryBuilder meta(String meta, DocumentTextStyle style)` +- `TimelineEntryBuilder metaStyle(DocumentTextStyle style)` +- `TimelineEntryBuilder body(String body)` +- `TimelineEntryBuilder body(String body, DocumentTextStyle style)` +- `TimelineEntryBuilder bodyStyle(DocumentTextStyle style)` +- `TimelineEntryBuilder add(Consumer extra)` + +### TimelineMarker (class) +- `TimelineMarker dot(double size, DocumentColor color)` +- `TimelineMarker circle(double size, DocumentColor fill, DocumentStroke stroke)` +- `TimelineMarker numbered(int number, double size, DocumentColor fill, DocumentColor textColor)` +- `TimelineMarker square(double size, DocumentColor fill)` + +### TocBuilder (class) +- `new TocBuilder()` +- `TocBuilder title(String title)` +- `TocBuilder titleStyle(DocumentTextStyle style)` +- `TocBuilder entry(String label, String anchor)` +- `TocBuilder leader(DocumentLeader leader)` +- `TocBuilder leaderColor(DocumentColor color)` +- `TocBuilder entryStyle(DocumentTextStyle style)` +- `TocBuilder pageNumberStyle(DocumentTextStyle style)` + +### Transformable (interface) +- `T transform(DocumentTransform)` +- `DocumentTransform currentTransform()` +- `T rotate(double)` +- `T scale(double)` +- `T scale(double, double)` + +## com.demcha.compose.document.exceptions + +### AtomicNodeTooLargeException (class) +- `new AtomicNodeTooLargeException(String message)` +- `AtomicNodeTooLargeException forNode(String path, double outerHeight, double pageHeight)` + +### DocumentRenderingException (class) +- `new DocumentRenderingException(String message, Throwable cause)` +- `new DocumentRenderingException(String message)` + +### MissingBackendException (class) +- `new MissingBackendException(String message)` + +### UnsupportedNodeCapabilityException (class) +- `new UnsupportedNodeCapabilityException(String message)` + +## com.demcha.compose.document.image + +### DocumentImageData (class) +- `DocumentImageData fromBytes(byte[] bytes)` +- `DocumentImageData fromPath(Path path)` +- `DocumentImageData fromPath(String path)` +- `Optional bytes()` +- `Optional path()` + +### DocumentImageFitMode (enum) +- constants: `STRETCH`, `CONTAIN`, `COVER` + +## com.demcha.compose.document.node + +### AlignNode (record) +- `new AlignNode(String, DocumentNode, HorizontalAlign, DocumentInsets)` +- `new AlignNode(DocumentNode child, HorizontalAlign align)` +- `List children()` +- `String nodeKind()` +- `String name()` +- `DocumentNode child()` +- `HorizontalAlign align()` +- `DocumentInsets margin()` + +### BarcodeNode (record) +- `new BarcodeNode(String, DocumentBarcodeOptions, double, double, DocumentLinkTarget, DocumentBookmarkOptions, DocumentInsets, DocumentInsets, DocumentTransform, String)` +- `new BarcodeNode(String name, DocumentBarcodeOptions barcodeOptions, double width, double height, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin, DocumentTransform transform)` +- `new BarcodeNode(String name, DocumentBarcodeOptions barcodeOptions, double width, double height, DocumentInsets padding, DocumentInsets margin)` +- `new BarcodeNode(String name, DocumentBarcodeOptions barcodeOptions, double width, double height, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin)` +- `String name()` +- `DocumentBarcodeOptions barcodeOptions()` +- `double width()` +- `double height()` +- `DocumentLinkTarget linkTarget()` +- `DocumentBookmarkOptions bookmarkOptions()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` +- `DocumentTransform transform()` +- `String anchor()` + +### CanvasChild (record) +- `new CanvasChild(DocumentNode, double, double)` +- `DocumentNode node()` +- `double x()` +- `double y()` + +### CanvasLayerNode (record) +- `new CanvasLayerNode(String, double, double, List, ClipPolicy, DocumentInsets, DocumentInsets)` +- `List children()` +- `String name()` +- `double width()` +- `double height()` +- `List placements()` +- `ClipPolicy clipPolicy()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` + +### ChartNode (record) +- `new ChartNode(String, ChartSpec, ChartStyle, DocumentInsets, DocumentInsets)` +- `new ChartNode(ChartSpec spec)` +- `String nodeKind()` +- `String name()` +- `ChartSpec spec()` +- `ChartStyle style()` +- `DocumentInsets margin()` +- `DocumentInsets padding()` + +### ContainerNode (record) +- `new ContainerNode(String, List, double, DocumentInsets, DocumentInsets, DocumentColor, DocumentStroke, DocumentCornerRadius, DocumentBorders, String, DocumentBookmarkOptions)` +- `new ContainerNode(String name, List children, double spacing, DocumentInsets padding, DocumentInsets margin, DocumentColor fillColor, DocumentStroke stroke, DocumentCornerRadius cornerRadius, DocumentBorders borders, String anchor)` +- `new ContainerNode(String name, List children, double spacing, DocumentInsets padding, DocumentInsets margin, DocumentColor fillColor, DocumentStroke stroke, DocumentCornerRadius cornerRadius, DocumentBorders borders)` +- `new ContainerNode(String name, List children, double spacing, DocumentInsets padding, DocumentInsets margin, DocumentColor fillColor, DocumentStroke stroke, DocumentCornerRadius cornerRadius)` +- `new ContainerNode(String name, List children, double spacing, DocumentInsets padding, DocumentInsets margin, DocumentColor fillColor, DocumentStroke stroke)` +- `String name()` +- `List children()` +- `double spacing()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` +- `DocumentColor fillColor()` +- `DocumentStroke stroke()` +- `DocumentCornerRadius cornerRadius()` +- `DocumentBorders borders()` +- `String anchor()` +- `DocumentBookmarkOptions bookmarkOptions()` + +### DocumentBarcodeOptions (class) +- `DocumentBarcodeOptions.DocumentBarcodeOptionsBuilder builder()` +- `DocumentBarcodeOptions.DocumentBarcodeOptionsBuilder toBuilder()` +- `String getContent()` +- `DocumentBarcodeType getType()` +- `DocumentColor getForeground()` +- `DocumentColor getBackground()` +- `int getQuietZoneMargin()` + +### DocumentBarcodeOptions.DocumentBarcodeOptionsBuilder (class) +- `DocumentBarcodeOptions.DocumentBarcodeOptionsBuilder content(String)` +- `DocumentBarcodeOptions.DocumentBarcodeOptionsBuilder type(DocumentBarcodeType)` +- `DocumentBarcodeOptions.DocumentBarcodeOptionsBuilder foreground(DocumentColor)` +- `DocumentBarcodeOptions.DocumentBarcodeOptionsBuilder background(DocumentColor)` +- `DocumentBarcodeOptions.DocumentBarcodeOptionsBuilder quietZoneMargin(int)` +- `DocumentBarcodeOptions build()` + +### DocumentBarcodeType (enum) +- constants: `QR_CODE`, `CODE_128`, `CODE_39`, `EAN_13`, `EAN_8`, `UPC_A`, `PDF_417`, `DATA_MATRIX` + +### DocumentBookmarkOptions (record) +- `new DocumentBookmarkOptions(String title)` +- `new DocumentBookmarkOptions(String, int)` +- `String title()` +- `int level()` + +### DocumentLinkOptions (record) +- `new DocumentLinkOptions(String)` +- `String uri()` + +### DocumentLinkTarget (interface) +- `DocumentLinkTarget external(DocumentLinkOptions)` +- `DocumentLinkTarget external(String)` +- `DocumentLinkTarget anchor(String)` + +### DocumentNode (interface) +- `String name()` +- `DocumentInsets margin()` +- `DocumentInsets padding()` +- `List children()` +- `String nodeKind()` +- `boolean keepTogether()` +- `boolean keepWithNext()` +- `DocumentBleed bleed()` + +### EllipseNode (record) +- `new EllipseNode(String, double, double, DocumentColor, DocumentStroke, DocumentLinkTarget, DocumentBookmarkOptions, DocumentInsets, DocumentInsets, DocumentTransform, String)` +- `new EllipseNode(String name, double width, double height, DocumentColor fillColor, DocumentStroke stroke, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin, DocumentTransform transform)` +- `new EllipseNode(String name, double width, double height, DocumentColor fillColor, DocumentStroke stroke, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin)` +- `String name()` +- `double width()` +- `double height()` +- `DocumentColor fillColor()` +- `DocumentStroke stroke()` +- `DocumentLinkTarget linkTarget()` +- `DocumentBookmarkOptions bookmarkOptions()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` +- `DocumentTransform transform()` +- `String anchor()` + +### ExternalLinkTarget (record) +- `new ExternalLinkTarget(DocumentLinkOptions)` +- `DocumentLinkOptions options()` + +### HorizontalAlign (enum) +- constants: `LEFT`, `CENTER`, `RIGHT` + +### ImageNode (record) +- `new ImageNode(String, DocumentImageData, Double, Double, Double, DocumentImageFitMode, DocumentLinkTarget, DocumentBookmarkOptions, DocumentInsets, DocumentInsets, DocumentTransform, String)` +- `new ImageNode(String name, DocumentImageData imageData, Double width, Double height, Double scale, DocumentImageFitMode fitMode, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin, DocumentTransform transform)` +- `new ImageNode(String name, DocumentImageData imageData, Double width, Double height, DocumentInsets padding, DocumentInsets margin)` +- `new ImageNode(String name, DocumentImageData imageData, Double width, Double height, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin)` +- `new ImageNode(String name, DocumentImageData imageData, Double width, Double height, Double scale, DocumentImageFitMode fitMode, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin)` +- `String name()` +- `DocumentImageData imageData()` +- `Double width()` +- `Double height()` +- `Double scale()` +- `DocumentImageFitMode fitMode()` +- `DocumentLinkTarget linkTarget()` +- `DocumentBookmarkOptions bookmarkOptions()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` +- `DocumentTransform transform()` +- `String anchor()` + +### InlineHighlightRun (record) +- `new InlineHighlightRun(String, DocumentTextStyle, InlineBackground, DocumentLinkTarget)` +- `new InlineHighlightRun(String text, DocumentTextStyle textStyle, InlineBackground background, DocumentLinkOptions linkOptions)` +- `new InlineHighlightRun(String text, DocumentTextStyle textStyle, InlineBackground background)` +- `String text()` +- `DocumentTextStyle textStyle()` +- `InlineBackground background()` +- `DocumentLinkTarget linkTarget()` + +### InlineImageAlignment (enum) +- constants: `BASELINE`, `CENTER`, `TEXT_TOP`, `TEXT_BOTTOM` + +### InlineImageRun (record) +- `new InlineImageRun(DocumentImageData, double, double, InlineImageAlignment, double, DocumentLinkTarget)` +- `new InlineImageRun(DocumentImageData imageData, double width, double height)` +- `new InlineImageRun(DocumentImageData imageData, double width, double height, InlineImageAlignment alignment)` +- `new InlineImageRun(DocumentImageData imageData, double width, double height, InlineImageAlignment alignment, double baselineOffset, DocumentLinkOptions linkOptions)` +- `DocumentImageData imageData()` +- `double width()` +- `double height()` +- `InlineImageAlignment alignment()` +- `double baselineOffset()` +- `DocumentLinkTarget linkTarget()` + +### InlineRun (interface) + +### InlineShapeRun (record) +- `new InlineShapeRun(List, InlineImageAlignment, double, DocumentLinkTarget)` +- `new InlineShapeRun(List layers, InlineImageAlignment alignment, double baselineOffset, DocumentLinkOptions linkOptions)` +- `new InlineShapeRun(ShapeOutline outline, DocumentColor fill, DocumentStroke stroke, InlineImageAlignment alignment, double baselineOffset, DocumentLinkOptions linkOptions)` +- `new InlineShapeRun(ShapeOutline outline, DocumentColor fill)` +- `double width()` +- `double height()` +- `InlineShapeRun checkbox(double size, boolean checked, DocumentColor boxColor, DocumentColor checkColor)` +- `InlineShapeRun checkbox(double size, boolean checked, ShapeOutline.CheckmarkStyle markStyle, DocumentColor boxColor, DocumentColor checkColor)` +- `InlineShapeRun checkbox(double size, boolean checked, ShapeOutline mark, DocumentColor boxColor, DocumentColor checkColor)` +- `List layers()` +- `InlineImageAlignment alignment()` +- `double baselineOffset()` +- `DocumentLinkTarget linkTarget()` + +### InlineSvgRun (record) +- `new InlineSvgRun(SvgIcon, double, double, InlineImageAlignment, double, DocumentLinkTarget)` +- `new InlineSvgRun(SvgIcon icon, double width, double height)` +- `new InlineSvgRun(SvgIcon icon, double width, double height, InlineImageAlignment alignment, double baselineOffset, DocumentLinkOptions linkOptions)` +- `SvgIcon icon()` +- `double width()` +- `double height()` +- `InlineImageAlignment alignment()` +- `double baselineOffset()` +- `DocumentLinkTarget linkTarget()` + +### InlineTextRun (record) +- `new InlineTextRun(String, DocumentTextStyle, DocumentLinkTarget)` +- `new InlineTextRun(String text, DocumentTextStyle textStyle, DocumentLinkOptions linkOptions)` +- `new InlineTextRun(String text, DocumentTextStyle textStyle)` +- `new InlineTextRun(String text)` +- `String text()` +- `DocumentTextStyle textStyle()` +- `DocumentLinkTarget linkTarget()` + +### InternalLinkTarget (record) +- `new InternalLinkTarget(String)` +- `String anchor()` + +### LayerAlign (enum) +- constants: `TOP_LEFT`, `TOP_CENTER`, `TOP_RIGHT`, `CENTER_LEFT`, `CENTER`, `CENTER_RIGHT`, `BOTTOM_LEFT`, `BOTTOM_CENTER`, `BOTTOM_RIGHT` + +### LayerStackNode (record) +- `new LayerStackNode(String, List, DocumentInsets, DocumentInsets, boolean)` +- `new LayerStackNode(String name, List layers, DocumentInsets padding, DocumentInsets margin)` +- `List children()` +- `String name()` +- `List layers()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` +- `boolean clipToBounds()` + +### LayerStackNode.Layer (record) +- `new Layer(DocumentNode, LayerAlign, double, double, int)` +- `new Layer(DocumentNode node)` +- `new Layer(DocumentNode node, LayerAlign align)` +- `new Layer(DocumentNode node, LayerAlign align, double offsetX, double offsetY)` +- `LayerStackNode.Layer back(DocumentNode node)` +- `LayerStackNode.Layer center(DocumentNode node)` +- `LayerStackNode.Layer of(DocumentNode node, LayerAlign align)` +- `LayerStackNode.Layer of(DocumentNode node, LayerAlign align, double offsetX, double offsetY)` +- `DocumentNode node()` +- `LayerAlign align()` +- `double offsetX()` +- `double offsetY()` +- `int zIndex()` + +### LineNode (record) +- `new LineNode(String, double, double, double, double, double, double, DocumentStroke, DocumentLinkTarget, DocumentBookmarkOptions, DocumentInsets, DocumentInsets, DocumentTransform, DocumentDashPattern, String, DocumentLineCap, boolean, boolean)` +- `new LineNode(String name, double width, double height, double startX, double startY, double endX, double endY, DocumentStroke stroke, DocumentLinkTarget linkTarget, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin, DocumentTransform transform, DocumentDashPattern dashPattern, String anchor, DocumentLineCap lineCap, boolean fillWidth)` +- `new LineNode(String name, double width, double height, double startX, double startY, double endX, double endY, DocumentStroke stroke, DocumentLinkTarget linkTarget, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin, DocumentTransform transform, DocumentDashPattern dashPattern, String anchor, DocumentLineCap lineCap)` +- `new LineNode(String name, double width, double height, double startX, double startY, double endX, double endY, DocumentStroke stroke, DocumentLinkTarget linkTarget, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin, DocumentTransform transform, DocumentDashPattern dashPattern, String anchor)` +- `new LineNode(String name, double width, double height, double startX, double startY, double endX, double endY, DocumentStroke stroke, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin, DocumentTransform transform, DocumentDashPattern dashPattern)` +- `new LineNode(String name, double width, double height, double startX, double startY, double endX, double endY, DocumentStroke stroke, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin, DocumentTransform transform)` +- `new LineNode(String name, double width, double height, double startX, double startY, double endX, double endY, DocumentStroke stroke, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin)` +- `String name()` +- `double width()` +- `double height()` +- `double startX()` +- `double startY()` +- `double endX()` +- `double endY()` +- `DocumentStroke stroke()` +- `DocumentLinkTarget linkTarget()` +- `DocumentBookmarkOptions bookmarkOptions()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` +- `DocumentTransform transform()` +- `DocumentDashPattern dashPattern()` +- `String anchor()` +- `DocumentLineCap lineCap()` +- `boolean fillWidth()` +- `boolean keepWithNext()` + +### ListItem (record) +- `new ListItem(String, ListMarker, List)` +- `ListItem of(String label)` +- `ListItem of(String label, List children)` +- `boolean isLeaf()` +- `String label()` +- `ListMarker marker()` +- `List children()` + +### ListMarker (record) +- `new ListMarker(String)` +- `ListMarker bullet()` +- `ListMarker dash()` +- `ListMarker none()` +- `ListMarker custom(String marker)` +- `ListMarker defaultForDepth(int depth)` +- `String normalizeItemText(String value, boolean normalizeMarkers)` +- `boolean isVisible()` +- `String prefix()` +- `String value()` + +### ListNode (record) +- `new ListNode(String, List, List, ListMarker, DocumentTextStyle, TextAlign, double, double, String, boolean, DocumentInsets, DocumentInsets)` +- `new ListNode(String name, List items, ListMarker marker, DocumentTextStyle textStyle, TextAlign align, double lineSpacing, double itemSpacing, String continuationIndent, boolean normalizeMarkers, DocumentInsets padding, DocumentInsets margin)` +- `String name()` +- `List items()` +- `List nestedItems()` +- `ListMarker marker()` +- `DocumentTextStyle textStyle()` +- `TextAlign align()` +- `double lineSpacing()` +- `double itemSpacing()` +- `String continuationIndent()` +- `boolean normalizeMarkers()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` + +### PageBreakNode (record) +- `new PageBreakNode(String, DocumentInsets)` +- `String name()` +- `DocumentInsets margin()` + +### PageReferenceNode (record) +- `new PageReferenceNode(String, String, DocumentTextStyle, TextAlign, String, DocumentInsets, DocumentInsets)` +- `new PageReferenceNode(String anchor, DocumentTextStyle textStyle, TextAlign align)` +- `String name()` +- `String anchor()` +- `DocumentTextStyle textStyle()` +- `TextAlign align()` +- `String placeholderText()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` + +### ParagraphNode (record) +- `new ParagraphNode(String, String, List, DocumentTextStyle, TextAlign, double, String, DocumentTextIndent, DocumentLinkTarget, DocumentBookmarkOptions, DocumentInsets, DocumentInsets, DocumentTextAutoSize, TextVerticalAlign, String, TextDirection)` +- `new ParagraphNode(String name, String text, List inlineRuns, DocumentTextStyle textStyle, TextAlign align, double lineSpacing, String bulletOffset, DocumentTextIndent indentStrategy, DocumentLinkTarget linkTarget, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin, DocumentTextAutoSize autoSize, TextVerticalAlign verticalAlign, String anchor)` +- `new ParagraphNode(String name, String text, List inlineRuns, DocumentTextStyle textStyle, TextAlign align, double lineSpacing, String bulletOffset, DocumentTextIndent indentStrategy, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin, DocumentTextAutoSize autoSize, TextVerticalAlign verticalAlign)` +- `new ParagraphNode(String name, String text, List inlineRuns, DocumentTextStyle textStyle, TextAlign align, double lineSpacing, String bulletOffset, DocumentTextIndent indentStrategy, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin, DocumentTextAutoSize autoSize)` +- `new ParagraphNode(String name, String text, List inlineRuns, DocumentTextStyle textStyle, TextAlign align, double lineSpacing, String bulletOffset, DocumentTextIndent indentStrategy, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin)` +- `new ParagraphNode(String name, String text, DocumentTextStyle textStyle, TextAlign align, double lineSpacing, String bulletOffset, DocumentTextIndent indentStrategy, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin)` +- `new ParagraphNode(String name, String text, DocumentTextStyle textStyle, TextAlign align, double lineSpacing, String bulletOffset, DocumentTextIndent indentStrategy, DocumentInsets padding, DocumentInsets margin)` +- `new ParagraphNode(String name, String text, DocumentTextStyle textStyle, TextAlign align, double lineSpacing, DocumentInsets padding, DocumentInsets margin)` +- `List inlineTextRuns()` +- `String name()` +- `String text()` +- `List inlineRuns()` +- `DocumentTextStyle textStyle()` +- `TextAlign align()` +- `double lineSpacing()` +- `String bulletOffset()` +- `DocumentTextIndent indentStrategy()` +- `DocumentLinkTarget linkTarget()` +- `DocumentBookmarkOptions bookmarkOptions()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` +- `DocumentTextAutoSize autoSize()` +- `TextVerticalAlign verticalAlign()` +- `String anchor()` +- `TextDirection direction()` + +### PathNode (record) +- `new PathNode(String, double, double, List, DocumentColor, DocumentPaint, DocumentStroke, DocumentPaint, DocumentInsets, DocumentInsets, DocumentDashPattern, DocumentLineCap, DocumentLineJoin)` +- `new PathNode(String name, double width, double height, List segments, DocumentColor fillColor, DocumentStroke stroke, DocumentInsets padding, DocumentInsets margin, DocumentDashPattern dashPattern)` +- `new PathNode(String name, double width, double height, List segments, DocumentColor fillColor, DocumentPaint fillPaint, DocumentStroke stroke, DocumentPaint strokePaint, DocumentInsets padding, DocumentInsets margin, DocumentDashPattern dashPattern)` +- `String nodeKind()` +- `String name()` +- `double width()` +- `double height()` +- `List segments()` +- `DocumentColor fillColor()` +- `DocumentPaint fillPaint()` +- `DocumentStroke stroke()` +- `DocumentPaint strokePaint()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` +- `DocumentDashPattern dashPattern()` +- `DocumentLineCap lineCap()` +- `DocumentLineJoin lineJoin()` + +### PolygonNode (record) +- `new PolygonNode(String, double, double, List, DocumentColor, DocumentStroke, DocumentInsets, DocumentInsets)` +- `String nodeKind()` +- `String name()` +- `double width()` +- `double height()` +- `List points()` +- `DocumentColor fillColor()` +- `DocumentStroke stroke()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` + +### RowArrangement (enum) +- constants: `START`, `CENTER`, `END`, `SPACE_BETWEEN`, `SPACE_AROUND`, `SPACE_EVENLY` + +### RowNode (record) +- `new RowNode(String, List, List, double, DocumentInsets, DocumentInsets, DocumentColor, DocumentStroke, DocumentCornerRadius, DocumentBorders, List, RowVerticalAlign, RowArrangement)` +- `new RowNode(String name, List children, List weights, double gap, DocumentInsets padding, DocumentInsets margin, DocumentColor fillColor, DocumentStroke stroke, DocumentCornerRadius cornerRadius, DocumentBorders borders, List columns, RowVerticalAlign verticalAlign)` +- `new RowNode(String name, List children, List weights, double gap, DocumentInsets padding, DocumentInsets margin, DocumentColor fillColor, DocumentStroke stroke, DocumentCornerRadius cornerRadius, DocumentBorders borders, List columns)` +- `new RowNode(String name, List children, List weights, double gap, DocumentInsets padding, DocumentInsets margin, DocumentColor fillColor, DocumentStroke stroke, DocumentCornerRadius cornerRadius, DocumentBorders borders)` +- `new RowNode(String name, List children, List weights, double gap, DocumentInsets padding, DocumentInsets margin, DocumentColor fillColor, DocumentStroke stroke, DocumentCornerRadius cornerRadius)` +- `String name()` +- `List children()` +- `List weights()` +- `double gap()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` +- `DocumentColor fillColor()` +- `DocumentStroke stroke()` +- `DocumentCornerRadius cornerRadius()` +- `DocumentBorders borders()` +- `List columns()` +- `RowVerticalAlign verticalAlign()` +- `RowArrangement arrangement()` + +### RowVerticalAlign (enum) +- constants: `TOP`, `CENTER`, `BOTTOM` + +### SectionNode (record) +- `new SectionNode(String, List, double, DocumentInsets, DocumentInsets, DocumentColor, DocumentStroke, DocumentCornerRadius, DocumentBorders, boolean, String, DocumentBleed, DocumentBookmarkOptions, boolean)` +- `new SectionNode(String name, List children, double spacing, DocumentInsets padding, DocumentInsets margin, DocumentColor fillColor, DocumentStroke stroke, DocumentCornerRadius cornerRadius, DocumentBorders borders, boolean keepTogether, String anchor, DocumentBleed bleed, DocumentBookmarkOptions bookmarkOptions)` +- `new SectionNode(String name, List children, double spacing, DocumentInsets padding, DocumentInsets margin, DocumentColor fillColor, DocumentStroke stroke, DocumentCornerRadius cornerRadius, DocumentBorders borders, boolean keepTogether, String anchor, DocumentBleed bleed)` +- `new SectionNode(String name, List children, double spacing, DocumentInsets padding, DocumentInsets margin, DocumentColor fillColor, DocumentStroke stroke, DocumentCornerRadius cornerRadius, DocumentBorders borders, boolean keepTogether, String anchor)` +- `new SectionNode(String name, List children, double spacing, DocumentInsets padding, DocumentInsets margin, DocumentColor fillColor, DocumentStroke stroke, DocumentCornerRadius cornerRadius, DocumentBorders borders, boolean keepTogether)` +- `new SectionNode(String name, List children, double spacing, DocumentInsets padding, DocumentInsets margin, DocumentColor fillColor, DocumentStroke stroke, DocumentCornerRadius cornerRadius, DocumentBorders borders)` +- `new SectionNode(String name, List children, double spacing, DocumentInsets padding, DocumentInsets margin, DocumentColor fillColor, DocumentStroke stroke, DocumentCornerRadius cornerRadius)` +- `new SectionNode(String name, List children, double spacing, DocumentInsets padding, DocumentInsets margin, DocumentColor fillColor, DocumentStroke stroke)` +- `String name()` +- `List children()` +- `double spacing()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` +- `DocumentColor fillColor()` +- `DocumentStroke stroke()` +- `DocumentCornerRadius cornerRadius()` +- `DocumentBorders borders()` +- `boolean keepTogether()` +- `String anchor()` +- `DocumentBleed bleed()` +- `DocumentBookmarkOptions bookmarkOptions()` +- `boolean keepWithNext()` + +### ShapeContainerNode (record) +- `new ShapeContainerNode(String name, ShapeOutline outline, List layers, ClipPolicy clipPolicy, DocumentColor fillColor, DocumentStroke stroke, DocumentInsets padding, DocumentInsets margin)` +- `new ShapeContainerNode(String, ShapeOutline, List, ClipPolicy, DocumentColor, DocumentStroke, DocumentInsets, DocumentInsets, DocumentTransform)` +- `List children()` +- `String name()` +- `ShapeOutline outline()` +- `List layers()` +- `ClipPolicy clipPolicy()` +- `DocumentColor fillColor()` +- `DocumentStroke stroke()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` +- `DocumentTransform transform()` + +### ShapeLayer (record) +- `new ShapeLayer(ShapeOutline, DocumentColor, DocumentStroke)` +- `new ShapeLayer(ShapeOutline outline, DocumentColor fill)` +- `ShapeOutline outline()` +- `DocumentColor fill()` +- `DocumentStroke stroke()` + +### ShapeNode (record) +- `new ShapeNode(String name, double width, double height, DocumentColor fillColor, DocumentStroke stroke, DocumentCornerRadius cornerRadius, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin, DocumentTransform transform, DocumentPaint fillPaint)` +- `new ShapeNode(String name, double width, double height, DocumentColor fillColor, DocumentStroke stroke, DocumentCornerRadius cornerRadius, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin, DocumentTransform transform)` +- `new ShapeNode(String, double, double, DocumentColor, DocumentStroke, DocumentCornerRadius, DocumentLinkTarget, DocumentBookmarkOptions, DocumentInsets, DocumentInsets, DocumentTransform, DocumentPaint, String)` +- `new ShapeNode(String name, double width, double height, Color fillColor, DocumentStroke stroke, DocumentInsets padding, DocumentInsets margin)` +- `new ShapeNode(String name, double width, double height, DocumentColor fillColor, DocumentStroke stroke, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin)` +- `new ShapeNode(String name, double width, double height, DocumentColor fillColor, DocumentStroke stroke, DocumentCornerRadius cornerRadius, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin)` +- `String name()` +- `double width()` +- `double height()` +- `DocumentColor fillColor()` +- `DocumentStroke stroke()` +- `DocumentCornerRadius cornerRadius()` +- `DocumentLinkTarget linkTarget()` +- `DocumentBookmarkOptions bookmarkOptions()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` +- `DocumentTransform transform()` +- `DocumentPaint fillPaint()` +- `String anchor()` + +### SpacerNode (record) +- `new SpacerNode(String, double, double, DocumentInsets, DocumentInsets, double)` +- `new SpacerNode(String name, double width, double height, DocumentInsets padding, DocumentInsets margin)` +- `String name()` +- `double width()` +- `double height()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` +- `double grow()` + +### TableNode (record) +- `new TableNode(String name, List columns, List> rows, DocumentTableStyle defaultCellStyle, Double width, DocumentInsets padding, DocumentInsets margin)` +- `new TableNode(String name, List columns, List> rows, DocumentTableStyle defaultCellStyle, Map rowStyles, Map columnStyles, Double width, DocumentInsets padding, DocumentInsets margin)` +- `new TableNode(String name, List columns, List> rows, DocumentTableStyle defaultCellStyle, Map rowStyles, Map columnStyles, Double width, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin)` +- `new TableNode(String name, List columns, List> rows, DocumentTableStyle defaultCellStyle, Map rowStyles, Map columnStyles, Double width, DocumentLinkOptions linkOptions, DocumentBookmarkOptions bookmarkOptions, DocumentInsets padding, DocumentInsets margin, int repeatedHeaderRowCount)` +- `new TableNode(String, List, List>, DocumentTableStyle, Map, Map, Double, DocumentLinkTarget, DocumentBookmarkOptions, DocumentInsets, DocumentInsets, int, String)` +- `String name()` +- `List columns()` +- `List> rows()` +- `DocumentTableStyle defaultCellStyle()` +- `Map rowStyles()` +- `Map columnStyles()` +- `Double width()` +- `DocumentLinkTarget linkTarget()` +- `DocumentBookmarkOptions bookmarkOptions()` +- `DocumentInsets padding()` +- `DocumentInsets margin()` +- `int repeatedHeaderRowCount()` +- `String anchor()` + +### TextAlign (enum) +- constants: `LEFT`, `CENTER`, `RIGHT` + +### TextDirection (enum) +- constants: `LTR`, `RTL`, `AUTO` + +### TextVerticalAlign (enum) +- constants: `DEFAULT`, `TOP`, `CENTER`, `BOTTOM` + +## com.demcha.compose.document.output + +### DocumentDebugOptions (record) +- `new DocumentDebugOptions(boolean, boolean, DocumentDebugOptions.LabelText)` +- `DocumentDebugOptions none()` +- `DocumentDebugOptions guides()` +- `DocumentDebugOptions nodeLabels()` +- `DocumentDebugOptions guidesAndNodeLabels()` +- `DocumentDebugOptions withGuides(boolean enabled)` +- `DocumentDebugOptions withNodeLabels(boolean enabled)` +- `DocumentDebugOptions withLabelText(DocumentDebugOptions.LabelText text)` +- `boolean enabled()` +- `boolean showGuides()` +- `boolean showNodeLabels()` +- `DocumentDebugOptions.LabelText labelText()` + +### DocumentDebugOptions.LabelText (enum) +- constants: `NAME`, `FULL_PATH` + +### DocumentHeaderFooter (class) +- `DocumentHeaderFooter withZone(DocumentHeaderFooterZone zone)` +- `DocumentHeaderFooter.DocumentHeaderFooterBuilder builder()` +- `DocumentHeaderFooter.DocumentHeaderFooterBuilder toBuilder()` +- `DocumentHeaderFooterZone getZone()` +- `float getHeight()` +- `String getLeftText()` +- `String getCenterText()` +- `String getRightText()` +- `float getFontSize()` +- `DocumentColor getTextColor()` +- `boolean isShowSeparator()` +- `DocumentColor getSeparatorColor()` +- `float getSeparatorThickness()` +- `DocumentPageNumbering getNumbering()` + +### DocumentHeaderFooter.DocumentHeaderFooterBuilder (class) +- `DocumentHeaderFooter.DocumentHeaderFooterBuilder zone(DocumentHeaderFooterZone)` +- `DocumentHeaderFooter.DocumentHeaderFooterBuilder height(float)` +- `DocumentHeaderFooter.DocumentHeaderFooterBuilder leftText(String)` +- `DocumentHeaderFooter.DocumentHeaderFooterBuilder centerText(String)` +- `DocumentHeaderFooter.DocumentHeaderFooterBuilder rightText(String)` +- `DocumentHeaderFooter.DocumentHeaderFooterBuilder fontSize(float)` +- `DocumentHeaderFooter.DocumentHeaderFooterBuilder textColor(DocumentColor)` +- `DocumentHeaderFooter.DocumentHeaderFooterBuilder showSeparator(boolean)` +- `DocumentHeaderFooter.DocumentHeaderFooterBuilder separatorColor(DocumentColor)` +- `DocumentHeaderFooter.DocumentHeaderFooterBuilder separatorThickness(float)` +- `DocumentHeaderFooter.DocumentHeaderFooterBuilder numbering(DocumentPageNumbering)` +- `DocumentHeaderFooter build()` + +### DocumentHeaderFooterZone (enum) +- constants: `HEADER`, `FOOTER` + +### DocumentMetadata (class) +- `DocumentMetadata.DocumentMetadataBuilder builder()` +- `DocumentMetadata.DocumentMetadataBuilder toBuilder()` +- `String getTitle()` +- `String getAuthor()` +- `String getSubject()` +- `String getKeywords()` +- `String getCreator()` +- `String getProducer()` + +### DocumentMetadata.DocumentMetadataBuilder (class) +- `DocumentMetadata.DocumentMetadataBuilder title(String)` +- `DocumentMetadata.DocumentMetadataBuilder author(String)` +- `DocumentMetadata.DocumentMetadataBuilder subject(String)` +- `DocumentMetadata.DocumentMetadataBuilder keywords(String)` +- `DocumentMetadata.DocumentMetadataBuilder creator(String)` +- `DocumentMetadata.DocumentMetadataBuilder producer(String)` +- `DocumentMetadata build()` + +### DocumentOutputOptions (record) +- `new DocumentOutputOptions(DocumentMetadata, DocumentWatermark, DocumentProtection, DocumentViewerPreferences, List)` +- `new DocumentOutputOptions(DocumentMetadata metadata, DocumentWatermark watermark, DocumentProtection protection, List headersAndFooters)` +- `boolean hasAny()` +- `DocumentMetadata metadata()` +- `DocumentWatermark watermark()` +- `DocumentProtection protection()` +- `DocumentViewerPreferences viewerPreferences()` +- `List headersAndFooters()` +- constants: `EMPTY` + +### DocumentPageNumbering (class) +- `DocumentPageNumbering.DocumentPageNumberingBuilder builder()` +- `DocumentPageNumbering.DocumentPageNumberingBuilder toBuilder()` +- `int getStartAt()` +- `int getCountFrom()` +- `boolean isShowOnFirstPage()` +- `DocumentPageNumberStyle getStyle()` +- constants: `DEFAULT` + +### DocumentPageNumbering.DocumentPageNumberingBuilder (class) +- `DocumentPageNumbering.DocumentPageNumberingBuilder startAt(int)` +- `DocumentPageNumbering.DocumentPageNumberingBuilder countFrom(int)` +- `DocumentPageNumbering.DocumentPageNumberingBuilder showOnFirstPage(boolean)` +- `DocumentPageNumbering.DocumentPageNumberingBuilder style(DocumentPageNumberStyle)` +- `DocumentPageNumbering build()` + +### DocumentPageNumberStyle (enum) +- constants: `DECIMAL`, `LOWER_ROMAN`, `UPPER_ROMAN`, `LOWER_ALPHA`, `UPPER_ALPHA` + +### DocumentProtection (class) +- `DocumentProtection.DocumentProtectionBuilder builder()` +- `DocumentProtection.DocumentProtectionBuilder toBuilder()` +- `String getUserPassword()` +- `String getOwnerPassword()` +- `boolean isCanPrint()` +- `boolean isCanCopyContent()` +- `boolean isCanModify()` +- `boolean isCanFillForms()` +- `boolean isCanExtractForAccessibility()` +- `boolean isCanAssemble()` +- `boolean isCanPrintHighQuality()` +- `int getKeyLength()` + +### DocumentProtection.DocumentProtectionBuilder (class) +- `DocumentProtection.DocumentProtectionBuilder userPassword(String)` +- `DocumentProtection.DocumentProtectionBuilder ownerPassword(String)` +- `DocumentProtection.DocumentProtectionBuilder canPrint(boolean)` +- `DocumentProtection.DocumentProtectionBuilder canCopyContent(boolean)` +- `DocumentProtection.DocumentProtectionBuilder canModify(boolean)` +- `DocumentProtection.DocumentProtectionBuilder canFillForms(boolean)` +- `DocumentProtection.DocumentProtectionBuilder canExtractForAccessibility(boolean)` +- `DocumentProtection.DocumentProtectionBuilder canAssemble(boolean)` +- `DocumentProtection.DocumentProtectionBuilder canPrintHighQuality(boolean)` +- `DocumentProtection.DocumentProtectionBuilder keyLength(int)` +- `DocumentProtection build()` + +### DocumentViewerPreferences (class) +- `DocumentViewerPreferences openOutline()` +- `DocumentViewerPreferences.DocumentViewerPreferencesBuilder builder()` +- `DocumentViewerPreferences.DocumentViewerPreferencesBuilder toBuilder()` +- `DocumentPageMode getPageMode()` +- `DocumentPageLayout getPageLayout()` +- `Boolean getDisplayDocTitle()` +- `Boolean getHideToolbar()` +- `Boolean getHideMenubar()` +- `Boolean getFitWindow()` +- `Boolean getCenterWindow()` + +### DocumentViewerPreferences.DocumentViewerPreferencesBuilder (class) +- `DocumentViewerPreferences.DocumentViewerPreferencesBuilder pageMode(DocumentPageMode)` +- `DocumentViewerPreferences.DocumentViewerPreferencesBuilder pageLayout(DocumentPageLayout)` +- `DocumentViewerPreferences.DocumentViewerPreferencesBuilder displayDocTitle(Boolean)` +- `DocumentViewerPreferences.DocumentViewerPreferencesBuilder hideToolbar(Boolean)` +- `DocumentViewerPreferences.DocumentViewerPreferencesBuilder hideMenubar(Boolean)` +- `DocumentViewerPreferences.DocumentViewerPreferencesBuilder fitWindow(Boolean)` +- `DocumentViewerPreferences.DocumentViewerPreferencesBuilder centerWindow(Boolean)` +- `DocumentViewerPreferences build()` + +### DocumentWatermark (class) +- `boolean isTextBased()` +- `boolean isImageBased()` +- `DocumentWatermark.DocumentWatermarkBuilder builder()` +- `DocumentWatermark.DocumentWatermarkBuilder toBuilder()` +- `String getText()` +- `float getFontSize()` +- `float getRotation()` +- `DocumentColor getColor()` +- `Path getImagePath()` +- `byte[] getImageBytes()` +- `float getOpacity()` +- `DocumentWatermarkLayer getLayer()` +- `DocumentWatermarkPosition getPosition()` + +### DocumentWatermark.DocumentWatermarkBuilder (class) +- `DocumentWatermark.DocumentWatermarkBuilder text(String)` +- `DocumentWatermark.DocumentWatermarkBuilder fontSize(float)` +- `DocumentWatermark.DocumentWatermarkBuilder rotation(float)` +- `DocumentWatermark.DocumentWatermarkBuilder color(DocumentColor)` +- `DocumentWatermark.DocumentWatermarkBuilder imagePath(Path)` +- `DocumentWatermark.DocumentWatermarkBuilder imageBytes(byte[])` +- `DocumentWatermark.DocumentWatermarkBuilder opacity(float)` +- `DocumentWatermark.DocumentWatermarkBuilder layer(DocumentWatermarkLayer)` +- `DocumentWatermark.DocumentWatermarkBuilder position(DocumentWatermarkPosition)` +- `DocumentWatermark build()` + +### DocumentWatermarkLayer (enum) +- constants: `BEHIND_CONTENT`, `ABOVE_CONTENT` + +### DocumentWatermarkPosition (enum) +- constants: `CENTER`, `TOP_LEFT`, `TOP_RIGHT`, `BOTTOM_LEFT`, `BOTTOM_RIGHT`, `TILE` + +## com.demcha.compose.document.showcase + +### FontShowcase (class) +- `void renderAvailableFontsPreview(Path outputFile)` +- `byte[] renderAvailableFontsPreview()` +- `byte[] renderFontsPreview(Collection fonts)` +- `void buildShowcase(DocumentSession document, Collection fonts)` + +## com.demcha.compose.document.snapshot + +### LayoutCanvasSnapshot (record) +- `new LayoutCanvasSnapshot(double, double, double, double, LayoutInsetsSnapshot)` +- `double pageWidth()` +- `double pageHeight()` +- `double innerWidth()` +- `double innerHeight()` +- `LayoutInsetsSnapshot margin()` + +### LayoutDiagnosticSnapshot (record) +- `new LayoutDiagnosticSnapshot(String, LayoutSnapshot, List)` +- `String formatVersion()` +- `LayoutSnapshot layout()` +- `List typography()` + +### LayoutInsetsSnapshot (record) +- `new LayoutInsetsSnapshot(double, double, double, double)` +- `double top()` +- `double right()` +- `double bottom()` +- `double left()` + +### LayoutNodeSnapshot (record) +- `new LayoutNodeSnapshot(String, String, String, String, int, int, int, double, double, double, double, double, double, int, int, double, double, LayoutInsetsSnapshot, LayoutInsetsSnapshot)` +- `String path()` +- `String entityName()` +- `String entityKind()` +- `String parentPath()` +- `int childIndex()` +- `int depth()` +- `int layer()` +- `double computedX()` +- `double computedY()` +- `double placementX()` +- `double placementY()` +- `double placementWidth()` +- `double placementHeight()` +- `int startPage()` +- `int endPage()` +- `double contentWidth()` +- `double contentHeight()` +- `LayoutInsetsSnapshot margin()` +- `LayoutInsetsSnapshot padding()` + +### LayoutSnapshot (record) +- `new LayoutSnapshot(String, LayoutCanvasSnapshot, int, List)` +- `String formatVersion()` +- `LayoutCanvasSnapshot canvas()` +- `int totalPages()` +- `List nodes()` + +### LayoutSnapshotOptions (class) +- `LayoutSnapshotOptions defaults()` +- `LayoutSnapshotOptions.Builder builder()` +- `boolean typography()` +- `boolean isDefault()` + +### LayoutSnapshotOptions.Builder (class) +- `LayoutSnapshotOptions.Builder typography(boolean enabled)` +- `LayoutSnapshotOptions build()` + +### LayoutTextLineSnapshot (record) +- `new LayoutTextLineSnapshot(int, double, double, double, double, double, boolean)` +- `int index()` +- `double x()` +- `double y()` +- `double width()` +- `double height()` +- `double baseline()` +- `boolean baselineExact()` + +### LayoutTypographySnapshot (record) +- `new LayoutTypographySnapshot(String, int, int, String, String, String, boolean, double, int, double, double, double, double, String, List)` +- `String path()` +- `int fragmentIndex()` +- `int page()` +- `String declaredFont()` +- `String resolvedFamily()` +- `String decoration()` +- `boolean fontSubstituted()` +- `double fontSize()` +- `int lineCount()` +- `double textX()` +- `double textY()` +- `double textWidth()` +- `double textHeight()` +- `String verticalAlign()` +- `List lines()` + +### PageIndex (class) +- `new PageIndex(Collection references, int totalPages)` +- `Optional forAnchor(String anchor)` +- `OptionalInt pageOf(String anchor)` +- `OptionalInt pageNumberOf(String anchor)` +- `Map all()` +- `int totalPages()` + +### PageReference (record) +- `new PageReference(String, int)` +- `int pageNumber()` +- `String anchor()` +- `int page()` + +## com.demcha.compose.document.style + +### ClipPolicy (enum) +- constants: `CLIP_BOUNDS`, `CLIP_PATH`, `OVERFLOW_VISIBLE` + +### DocumentBleed (record) +- `new DocumentBleed(Set)` +- `DocumentBleed none()` +- `DocumentBleed all()` +- `DocumentBleed of(DocumentEdge... edges)` +- `boolean bleeds(DocumentEdge edge)` +- `boolean any()` +- `Set edges()` + +### DocumentBorders (record) +- `new DocumentBorders(DocumentStroke, DocumentStroke, DocumentStroke, DocumentStroke)` +- `DocumentBorders all(DocumentStroke stroke)` +- `DocumentBorders bottom(DocumentStroke stroke)` +- `DocumentBorders top(DocumentStroke stroke)` +- `DocumentBorders left(DocumentStroke stroke)` +- `DocumentBorders right(DocumentStroke stroke)` +- `DocumentBorders horizontal(DocumentStroke stroke)` +- `DocumentBorders vertical(DocumentStroke stroke)` +- `boolean hasAny()` +- `DocumentStroke top()` +- `DocumentStroke right()` +- `DocumentStroke bottom()` +- `DocumentStroke left()` +- constants: `NONE` + +### DocumentColor (class) +- `DocumentColor of(Color color)` +- `DocumentColor rgb(int red, int green, int blue)` +- `DocumentColor rgba(int red, int green, int blue, int alpha)` +- `DocumentColor withOpacity(double opacity)` +- `Color color()` +- constants: `BLACK`, `DARK_GRAY`, `GRAY`, `LIGHT_GRAY`, `WHITE`, `ROYAL_BLUE`, `ORANGE` + +### DocumentCornerRadius (record) +- `new DocumentCornerRadius(double, double, double, double)` +- `new DocumentCornerRadius(double radius)` +- `DocumentCornerRadius of(double radius)` +- `DocumentCornerRadius of(double topLeft, double topRight, double bottomRight, double bottomLeft)` +- `DocumentCornerRadius right(double radius)` +- `DocumentCornerRadius left(double radius)` +- `DocumentCornerRadius top(double radius)` +- `DocumentCornerRadius bottom(double radius)` +- `double radius()` +- `boolean isZero()` +- `boolean isUniform()` +- `double topLeft()` +- `double topRight()` +- `double bottomRight()` +- `double bottomLeft()` +- constants: `ZERO` + +### DocumentDashPattern (record) +- `new DocumentDashPattern(List)` +- `DocumentDashPattern of(double... segments)` +- `boolean isSolid()` +- `List segments()` +- constants: `NONE` + +### DocumentEdge (enum) +- constants: `TOP`, `RIGHT`, `BOTTOM`, `LEFT` + +### DocumentInsets (record) +- `new DocumentInsets(double, double, double, double)` +- `DocumentInsets zero()` +- `DocumentInsets of(double value)` +- `DocumentInsets symmetric(double vertical, double horizontal)` +- `DocumentInsets top(double value)` +- `DocumentInsets bottom(double value)` +- `double horizontal()` +- `double vertical()` +- `double top()` +- `double right()` +- `double bottom()` +- `double left()` + +### DocumentLeader (enum) +- constants: `NONE`, `DOTS`, `DASHES` + +### DocumentLineCap (enum) +- `int pdfCode()` +- constants: `BUTT`, `ROUND`, `SQUARE` + +### DocumentLineJoin (enum) +- `int pdfCode()` +- constants: `MITER`, `ROUND`, `BEVEL` + +### DocumentPageLayout (enum) +- constants: `SINGLE_PAGE`, `ONE_COLUMN`, `TWO_COLUMN_LEFT`, `TWO_COLUMN_RIGHT`, `TWO_PAGE_LEFT`, `TWO_PAGE_RIGHT` + +### DocumentPageMode (enum) +- constants: `USE_NONE`, `USE_OUTLINES`, `USE_THUMBNAILS`, `FULL_SCREEN`, `USE_ATTACHMENTS` + +### DocumentPaint (interface) +- `DocumentColor primaryColor()` +- `DocumentPaint solid(DocumentColor)` +- `DocumentPaint linear(DocumentColor, DocumentColor)` + +### DocumentPathSegment (interface) +- `DocumentPathSegment.MoveTo moveTo(double, double)` +- `DocumentPathSegment.LineTo lineTo(double, double)` +- `DocumentPathSegment.CubicTo cubicTo(double, double, double, double, double, double)` +- `DocumentPathSegment.Close close()` + +### DocumentPathSegment.Close (record) +- `new Close()` + +### DocumentPathSegment.CubicTo (record) +- `new CubicTo(double, double, double, double, double, double)` +- `double control1X()` +- `double control1Y()` +- `double control2X()` +- `double control2Y()` +- `double x()` +- `double y()` + +### DocumentPathSegment.LineTo (record) +- `new LineTo(double, double)` +- `double x()` +- `double y()` + +### DocumentPathSegment.MoveTo (record) +- `new MoveTo(double, double)` +- `double x()` +- `double y()` + +### DocumentRowColumn (record) +- `new DocumentRowColumn(DocumentRowColumn.Type, Double)` +- `DocumentRowColumn fixed(double points)` +- `DocumentRowColumn auto()` +- `DocumentRowColumn weight(double weight)` +- `DocumentRowColumn.Type type()` +- `Double value()` + +### DocumentRowColumn.Type (enum) +- constants: `AUTO`, `FIXED`, `WEIGHT` + +### DocumentSpacing (record) +- `new DocumentSpacing(double)` +- `DocumentSpacing zero()` +- `DocumentSpacing of(double value)` +- `double value()` + +### DocumentStroke (record) +- `new DocumentStroke(DocumentColor, double)` +- `DocumentStroke of(DocumentColor color)` +- `DocumentStroke of(DocumentColor color, double width)` +- `DocumentColor color()` +- `double width()` +- constants: `DEFAULT_WIDTH` + +### DocumentTextAutoSize (record) +- `new DocumentTextAutoSize(double, double, double)` +- `DocumentTextAutoSize between(double maxSize, double minSize)` +- `DocumentTextAutoSize upTo(double maxSize)` +- `double maxSize()` +- `double minSize()` +- `double step()` +- constants: `DEFAULT_STEP`, `DEFAULT_MIN_SIZE` + +### DocumentTextDecoration (enum) +- constants: `DEFAULT`, `BOLD`, `ITALIC`, `BOLD_ITALIC`, `UNDERLINE`, `STRIKETHROUGH` + +### DocumentTextIndent (enum) +- constants: `NONE`, `FIRST_LINE`, `FROM_SECOND_LINE`, `ALL_LINES` + +### DocumentTextStyle (record) +- `new DocumentTextStyle(FontName, double, DocumentTextDecoration, DocumentColor)` +- `DocumentTextStyle.Builder builder()` +- `DocumentTextStyle withSize(double size)` +- `DocumentTextStyle withColor(DocumentColor color)` +- `FontName fontName()` +- `double size()` +- `DocumentTextDecoration decoration()` +- `DocumentColor color()` +- constants: `DEFAULT` + +### DocumentTextStyle.Builder (class) +- `DocumentTextStyle.Builder fontName(FontName fontName)` +- `DocumentTextStyle.Builder size(double size)` +- `DocumentTextStyle.Builder decoration(DocumentTextDecoration decoration)` +- `DocumentTextStyle.Builder color(DocumentColor color)` +- `DocumentTextStyle build()` + +### DocumentTransform (record) +- `new DocumentTransform(double, double, double)` +- `DocumentTransform none()` +- `DocumentTransform rotate(double degrees)` +- `DocumentTransform scale(double uniformFactor)` +- `DocumentTransform scale(double scaleX, double scaleY)` +- `DocumentTransform withRotation(double degrees)` +- `DocumentTransform withScale(double scaleX, double scaleY)` +- `boolean isIdentity()` +- `double rotationDegrees()` +- `double scaleX()` +- `double scaleY()` +- constants: `NONE` + +### InlineBackground (record) +- `new InlineBackground(DocumentColor, double, DocumentInsets)` +- `DocumentColor fill()` +- `double cornerRadius()` +- `DocumentInsets padding()` + +### ShapeOutline (interface) +- `double width()` +- `double height()` +- `ShapeOutline.Ellipse circle(double)` +- `ShapeOutline.Polygon polygon(double, double, List)` +- `ShapeOutline.Path path(double, double, List)` +- `ShapeOutline.Polygon diamond(double, double)` +- `ShapeOutline.Polygon triangle(double, double)` +- `ShapeOutline.Polygon star(double, double)` +- `ShapeOutline.Polygon star(double, double, int)` +- `ShapeOutline.Polygon arrow(double, double, ShapeOutline.Direction)` +- `ShapeOutline.Polygon arrow(double, double, ShapeOutline.Direction, ShapeOutline.ArrowStyle)` +- `ShapeOutline.Polygon arrowRight(double, double)` +- `ShapeOutline.Polygon arrowLeft(double, double)` +- `ShapeOutline.Polygon chevron(double, double, ShapeOutline.Direction)` +- `ShapeOutline.Polygon checkmark(double, double)` +- `ShapeOutline.Polygon checkmark(double, double, ShapeOutline.CheckmarkStyle)` +- `ShapeOutline.Polygon plus(double, double)` +- `ShapeOutline.Polygon regularPolygon(double, double, int)` + +### ShapeOutline.ArrowStyle (enum) +- constants: `BLOCK`, `TRIANGLE` + +### ShapeOutline.CheckmarkStyle (enum) +- constants: `CLASSIC`, `HEAVY` + +### ShapeOutline.Direction (enum) +- constants: `RIGHT`, `LEFT`, `UP`, `DOWN` + +### ShapeOutline.Ellipse (record) +- `new Ellipse(double, double)` +- `double width()` +- `double height()` + +### ShapeOutline.Path (record) +- `new Path(double, double, List)` +- `double width()` +- `double height()` +- `List segments()` + +### ShapeOutline.Polygon (record) +- `new Polygon(double, double, List)` +- `double width()` +- `double height()` +- `List points()` + +### ShapePoint (record) +- `new ShapePoint(double, double)` +- `double x()` +- `double y()` + +## com.demcha.compose.document.svg + +### SvgIcon (class) +- `SvgIcon read(Path file)` +- `SvgIcon parse(String svgXml)` +- `List layers()` +- `double sourceWidth()` +- `double sourceHeight()` +- `double aspectRatio()` +- `LayerStackNode node(double width)` + +### SvgIcon.Layer (record) +- `new Layer(SvgPath, DocumentColor, DocumentPaint, DocumentStroke, DocumentPaint, DocumentLineCap, DocumentLineJoin, List, SvgPath)` +- `new Layer(SvgPath geometry, DocumentColor fill, DocumentPaint fillPaint, DocumentStroke stroke, DocumentPaint strokePaint, DocumentLineCap lineCap, DocumentLineJoin lineJoin, List dashArray)` +- `new Layer(SvgPath geometry, DocumentColor fill, DocumentStroke stroke)` +- `new Layer(SvgPath geometry, DocumentColor fill, DocumentPaint fillPaint, DocumentStroke stroke, DocumentPaint strokePaint)` +- `SvgPath geometry()` +- `DocumentColor fill()` +- `DocumentPaint fillPaint()` +- `DocumentStroke stroke()` +- `DocumentPaint strokePaint()` +- `DocumentLineCap lineCap()` +- `DocumentLineJoin lineJoin()` +- `List dashArray()` +- `SvgPath clip()` + +### SvgPath (class) +- `SvgPath parse(String d)` +- `SvgPath parse(String d, double minX, double minY, double width, double height)` +- `List segments()` +- `double sourceWidth()` +- `double sourceHeight()` +- `double aspectRatio()` + +## com.demcha.compose.document.table + +### DocumentTableCell (record) +- `new DocumentTableCell(List, DocumentTableStyle, int, int, DocumentNode)` +- `new DocumentTableCell(List lines, DocumentTableStyle style, int colSpan, int rowSpan)` +- `new DocumentTableCell(List lines, DocumentTableStyle style, int colSpan)` +- `new DocumentTableCell(List lines, DocumentTableStyle style)` +- `DocumentTableCell text(String text)` +- `DocumentTableCell lines(String... lines)` +- `DocumentTableCell node(DocumentNode child)` +- `DocumentTableCell withStyle(DocumentTableStyle style)` +- `DocumentTableCell colSpan(int span)` +- `DocumentTableCell rowSpan(int span)` +- `boolean hasComposedContent()` +- `List lines()` +- `DocumentTableStyle style()` +- `int colSpan()` +- `int rowSpan()` +- `DocumentNode content()` + +### DocumentTableColumn (record) +- `new DocumentTableColumn(DocumentTableColumn.Type, Double)` +- `DocumentTableColumn auto()` +- `DocumentTableColumn fixed(double points)` +- `DocumentTableColumn.Type type()` +- `Double fixedWidth()` + +### DocumentTableColumn.Type (enum) +- constants: `AUTO`, `FIXED` + +### DocumentTableStyle (class) +- `DocumentTableStyle empty()` +- `DocumentTableStyle.Builder builder()` +- `DocumentInsets padding()` +- `DocumentColor fillColor()` +- `DocumentStroke stroke()` +- `DocumentTextStyle textStyle()` +- `DocumentTableTextAnchor textAnchor()` +- `Double lineSpacing()` +- `TextDirection direction()` + +### DocumentTableStyle.Builder (class) +- `DocumentTableStyle.Builder padding(DocumentInsets padding)` +- `DocumentTableStyle.Builder padding(double padding)` +- `DocumentTableStyle.Builder fillColor(DocumentColor fillColor)` +- `DocumentTableStyle.Builder stroke(DocumentStroke stroke)` +- `DocumentTableStyle.Builder textStyle(DocumentTextStyle textStyle)` +- `DocumentTableStyle.Builder textAnchor(DocumentTableTextAnchor textAnchor)` +- `DocumentTableStyle.Builder lineSpacing(double lineSpacing)` +- `DocumentTableStyle.Builder direction(TextDirection direction)` +- `DocumentTableStyle build()` + +### DocumentTableTextAnchor (enum) +- constants: `DEFAULT`, `CENTER_LEFT`, `CENTER`, `CENTER_RIGHT`, `TOP_LEFT`, `TOP_RIGHT`, `BOTTOM_LEFT`, `BOTTOM_RIGHT` + +## com.demcha.compose.engine.components.content + +### ImageData (class) +- `ImageData create(byte[] bytes)` +- `ImageData create(Path path)` +- `ImageData create(String path)` +- `byte[] getBytes()` +- `String getSourceKey()` +- `String getFingerprint()` +- `ImageMetadata getMetadata()` + +### ImageIntrinsicSize (record) +- `new ImageIntrinsicSize(double, double)` +- `double width()` +- `double height()` + +### ImageMetadata (record) +- `new ImageMetadata(int, int, String)` +- `ImageIntrinsicSize intrinsicSize()` +- `int width()` +- `int height()` +- `String format()` + +## com.demcha.compose.engine.components.content.metadata + +### DocumentMetadata (class) +- `DocumentMetadata.DocumentMetadataBuilder builder()` +- `String getTitle()` +- `String getAuthor()` +- `String getSubject()` +- `String getKeywords()` +- `String getCreator()` +- `String getProducer()` + +### DocumentMetadata.DocumentMetadataBuilder (class) +- `DocumentMetadata.DocumentMetadataBuilder title(String)` +- `DocumentMetadata.DocumentMetadataBuilder author(String)` +- `DocumentMetadata.DocumentMetadataBuilder subject(String)` +- `DocumentMetadata.DocumentMetadataBuilder keywords(String)` +- `DocumentMetadata.DocumentMetadataBuilder creator(String)` +- `DocumentMetadata.DocumentMetadataBuilder producer(String)` +- `DocumentMetadata build()` + +## com.demcha.compose.engine.components.content.text + +### TextDecoration (enum) +- `boolean hasStyle(int styles, TextDecoration style)` +- `int getBit()` +- constants: `DEFAULT`, `BOLD`, `ITALIC`, `BOLD_ITALIC`, `UNDERLINE`, `STRIKETHROUGH` + +### TextStyle (record) +- `new TextStyle(FontName, double, TextDecoration, Color)` +- `TextStyle.TextStyleBuilder builder()` +- `FontName fontName()` +- `double size()` +- `TextDecoration decoration()` +- `Color color()` + +### TextStyle.TextStyleBuilder (class) +- `TextStyle.TextStyleBuilder fontName(FontName)` +- `TextStyle.TextStyleBuilder size(double)` +- `TextStyle.TextStyleBuilder decoration(TextDecoration)` +- `TextStyle.TextStyleBuilder color(Color)` +- `TextStyle build()` + +## com.demcha.compose.engine.components.geometry + +### ContentSize (record) +- `new ContentSize(double, double)` +- `double width()` +- `double height()` + +## com.demcha.compose.engine.components.style + +### Margin (record) +- `new Margin(double, double, double, double)` +- `Margin of(double value)` +- `Margin zero()` +- `Margin bottom(double value)` +- `Margin top(double value)` +- `Margin right(double value)` +- `Margin left(double value)` +- `double horizontal()` +- `double vertical()` +- `double top()` +- `double right()` +- `double bottom()` +- `double left()` + +### Padding (record) +- `new Padding(double, double, double, double)` +- `Padding zero()` +- `Padding of(double trbl)` +- `double horizontal()` +- `double vertical()` +- `double top()` +- `double right()` +- `double bottom()` +- `double left()` + +## com.demcha.compose.engine.debug + +### LayoutCanvasSnapshot (record) +- `new LayoutCanvasSnapshot(double, double, double, double, LayoutInsetsSnapshot)` +- `double pageWidth()` +- `double pageHeight()` +- `double innerWidth()` +- `double innerHeight()` +- `LayoutInsetsSnapshot margin()` + +### LayoutInsetsSnapshot (record) +- `new LayoutInsetsSnapshot(double, double, double, double)` +- `LayoutInsetsSnapshot from(Margin margin)` +- `LayoutInsetsSnapshot from(Padding padding)` +- `double top()` +- `double right()` +- `double bottom()` +- `double left()` + +### LayoutNodeSnapshot (record) +- `new LayoutNodeSnapshot(String, String, String, String, int, int, int, double, double, double, double, double, double, int, int, double, double, LayoutInsetsSnapshot, LayoutInsetsSnapshot)` +- `String path()` +- `String entityName()` +- `String entityKind()` +- `String parentPath()` +- `int childIndex()` +- `int depth()` +- `int layer()` +- `double computedX()` +- `double computedY()` +- `double placementX()` +- `double placementY()` +- `double placementWidth()` +- `double placementHeight()` +- `int startPage()` +- `int endPage()` +- `double contentWidth()` +- `double contentHeight()` +- `LayoutInsetsSnapshot margin()` +- `LayoutInsetsSnapshot padding()` + +### LayoutSnapshot (record) +- `new LayoutSnapshot(String, LayoutCanvasSnapshot, int, List)` +- `String formatVersion()` +- `LayoutCanvasSnapshot canvas()` +- `int totalPages()` +- `List nodes()` + +## com.demcha.compose.engine.measurement + +### TextMeasurementSystem (interface) +- `ContentSize measure(TextStyle, String)` +- `double textWidth(TextStyle, String)` +- `TextMeasurementSystem.LineMetrics lineMetrics(TextStyle)` +- `void clearCaches()` +- `double lineHeight(TextStyle)` + +### TextMeasurementSystem.LineMetrics (record) +- `new LineMetrics(double, double, double)` +- `double lineHeight()` +- `double baselineOffsetFromBottom()` +- `double outerGap(TextMeasurementSystem.LineMetrics base)` +- `double ascent()` +- `double descent()` +- `double leading()` + +## com.demcha.compose.font + +### DefaultFonts (class) +- `List bundledFamilies()` +- `List standardFamilies()` +- `List googleFamilies()` +- `List bundledFontNames()` + +### FontFamilyDefinition (class) +- `FontName name()` +- `String wordFamily()` +- `Optional standard14Family()` +- `Optional fontSourceSet()` +- `FontFamilyDefinition standard14(FontName name, String regular, String bold, String italic, String boldItalic)` +- `FontFamilyDefinition.Builder classpath(FontName name, String regularResource)` +- `FontFamilyDefinition.Builder classpath(String name, String regularResource)` +- `FontFamilyDefinition.Builder files(FontName name, Path regularPath)` +- `FontFamilyDefinition.Builder files(String name, Path regularPath)` + +### FontFamilyDefinition.Builder (class) +- `FontFamilyDefinition.Builder wordFamily(String wordFamily)` +- `FontFamilyDefinition.Builder boldResource(String resourcePath)` +- `FontFamilyDefinition.Builder italicResource(String resourcePath)` +- `FontFamilyDefinition.Builder boldItalicResource(String resourcePath)` +- `FontFamilyDefinition.Builder boldPath(Path path)` +- `FontFamilyDefinition.Builder italicPath(Path path)` +- `FontFamilyDefinition.Builder boldItalicPath(Path path)` +- `FontFamilyDefinition build()` + +### FontFamilyDefinition.FontBinarySource (interface) +- `InputStream openStream()` +- `String description()` + +### FontFamilyDefinition.FontSourceSet (record) +- `new FontSourceSet(FontFamilyDefinition.FontBinarySource, FontFamilyDefinition.FontBinarySource, FontFamilyDefinition.FontBinarySource, FontFamilyDefinition.FontBinarySource)` +- `FontFamilyDefinition.FontBinarySource regular()` +- `FontFamilyDefinition.FontBinarySource bold()` +- `FontFamilyDefinition.FontBinarySource italic()` +- `FontFamilyDefinition.FontBinarySource boldItalic()` + +### FontFamilyDefinition.Standard14Family (record) +- `new Standard14Family(String, String, String, String)` +- `String regular()` +- `String bold()` +- `String italic()` +- `String boldItalic()` + +### FontLibrary (class) +- `new FontLibrary()` +- ` Optional getFont(FontName fontName, Class fontClass)` +- ` void addFont(FontName name, Class fontClass, F font)` +- ` void addFontFactory(FontName name, Class fontClass, Supplier factory)` +- ` void addFont(FontName name, F font)` +- ` void addFont(FontSet set)` +- `Set availableFonts()` +- `FontName resolveFamily(FontName fontName)` + +### FontName (class) +- `FontName of(String name)` +- `String name()` +- `String normalizedName()` +- `boolean sameFamily(FontName other)` +- constants: `TIMES_ROMAN`, `HELVETICA`, `HELVETICA_BOLD`, `HELVETICA_OBLIQUE`, `HELVETICA_BOLD_OBLIQUE`, `COURIER`, `COURIER_BOLD`, `COURIER_OBLIQUE`, `COURIER_BOLD_OBLIQUE`, `TIMES_BOLD`, `TIMES_ITALIC`, `TIMES_BOLD_ITALIC`, `SYMBOL`, `DEFAULT`, `ZAPF_DINGBATS`, `LATO`, `PT_SANS`, `PT_SERIF`, `FIRA_SANS`, `UBUNTU`, `ALEGREYA_SANS`, `CARLITO`, `POPPINS`, `BARLOW`, `BARLOW_CONDENSED`, `ASAP_CONDENSED`, `ARSENAL`, `IBM_PLEX_SERIF`, `IBM_PLEX_MONO`, `CRIMSON_TEXT`, `SPECTRAL`, `ZILLA_SLAB`, `GENTIUM_PLUS`, `TINOS`, `COUSINE`, `FIRA_SANS_CONDENSED`, `KANIT`, `VOLKHOV`, `TAVIRAJ`, `TRIRONG`, `SARABUN`, `PROMPT`, `ANDIKA`, `BAI_JAMJUREE`, `JETBRAINS_MONO`, `AMIRI`, `DAVID_LIBRE`, `NOTO_SANS_GEORGIAN`, `NOTO_SANS_ARMENIAN`, `GOTHIC_A1` + +### FontSet (record) +- `new FontSet(FontName name, F font)` +- `new FontSet(FontName, Class, F)` +- `FontName name()` +- `Class fontClass()` +- `F font()` diff --git a/knowledge/api/backends.json b/knowledge/api/backends.json new file mode 100644 index 000000000..9180a92da --- /dev/null +++ b/knowledge/api/backends.json @@ -0,0 +1,6125 @@ +{ + "schemaVersion": 2, + "targetLibrary": "GraphCompose", + "surface": "backends", + "targetVersion": "2.2.x", + "verifiedAgainst": "2.2.3-SNAPSHOT", + "generator": "knowledge/tools/api-surface/extract-api.mjs", + "generatedFrom": [ + "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" + ], + "parameterNamesFrom": [ + "graph-compose-core:sources", + "graph-compose-templates:sources", + "graph-compose-render-pdf:sources", + "graph-compose-render-docx:sources", + "graph-compose-render-pptx:sources", + "graph-compose-testing:sources" + ], + "counts": { + "types": 69, + "methods": 369, + "constants": 18, + "generated": 187 + }, + "packages": [ + { + "name": "com.demcha.compose.document.backend.fixed", + "types": [ + { + "name": "BackendProviders", + "binaryName": "com.demcha.compose.document.backend.fixed.BackendProviders", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "fixedLayout", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "FixedLayoutBackendProvider", + "params": [] + }, + { + "kind": "method", + "name": "fixedLayout", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "FixedLayoutBackendProvider", + "params": [ + { + "type": "String", + "name": "format" + } + ] + }, + { + "kind": "method", + "name": "fontMetrics", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "FontMetricsProvider", + "params": [] + } + ] + }, + { + "name": "FixedLayoutRenderContext", + "binaryName": "com.demcha.compose.document.backend.fixed.FixedLayoutRenderContext", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "FixedLayoutRenderContext", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "LayoutCanvas", + "name": null + }, + { + "type": "Collection", + "name": null + }, + { + "type": "Path", + "name": null + }, + { + "type": "OutputStream", + "name": null + } + ] + }, + { + "kind": "method", + "name": "canvas", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LayoutCanvas", + "params": [] + }, + { + "kind": "method", + "name": "customFontFamilies", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Collection", + "params": [] + }, + { + "kind": "method", + "name": "outputFile", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Path", + "params": [] + }, + { + "kind": "method", + "name": "outputStream", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "OutputStream", + "params": [] + } + ] + }, + { + "name": "SectionUnit", + "binaryName": "com.demcha.compose.document.backend.fixed.SectionUnit", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "SectionUnit", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "LayoutGraph", + "name": null + }, + { + "type": "LayoutCanvas", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "FixedLayoutRenderer", + "name": null + } + ] + }, + { + "kind": "method", + "name": "graph", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LayoutGraph", + "params": [] + }, + { + "kind": "method", + "name": "canvas", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LayoutCanvas", + "params": [] + }, + { + "kind": "method", + "name": "customFonts", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "chrome", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "FixedLayoutRenderer", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.backend.fixed.pdf", + "types": [ + { + "name": "PdfDocumentPostProcessor", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.PdfDocumentPostProcessor", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "method", + "name": "apply", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PDDocument", + "name": "document" + }, + { + "type": "LayoutCanvas", + "name": "canvas" + }, + { + "type": "PdfMetadataOptions", + "name": "metadataOptions" + }, + { + "type": "PdfWatermarkOptions", + "name": "watermarkOptions" + }, + { + "type": "PdfProtectionOptions", + "name": "protectionOptions" + }, + { + "type": "Collection", + "name": "headerFooterOptions" + } + ] + }, + { + "kind": "method", + "name": "applySectionChrome", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PDDocument", + "name": "document" + }, + { + "type": "LayoutCanvas", + "name": "canvas" + }, + { + "type": "PdfWatermarkOptions", + "name": "watermarkOptions" + }, + { + "type": "Collection", + "name": "headerFooterOptions" + }, + { + "type": "int", + "name": "basePageOffset" + }, + { + "type": "int", + "name": "sectionPageCount" + } + ] + }, + { + "kind": "method", + "name": "applyDocumentMetadataAndProtection", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PDDocument", + "name": "document" + }, + { + "type": "PdfMetadataOptions", + "name": "metadataOptions" + }, + { + "type": "PdfProtectionOptions", + "name": "protectionOptions" + } + ] + }, + { + "kind": "method", + "name": "applyViewerPreferences", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PDDocument", + "name": "document" + }, + { + "type": "PdfViewerPreferencesOptions", + "name": "options" + } + ] + }, + { + "kind": "method", + "name": "apply", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "byte[]", + "params": [ + { + "type": "byte[]", + "name": "pdfBytes" + }, + { + "type": "LayoutCanvas", + "name": "canvas" + }, + { + "type": "PdfMetadataOptions", + "name": "metadataOptions" + }, + { + "type": "PdfWatermarkOptions", + "name": "watermarkOptions" + }, + { + "type": "PdfProtectionOptions", + "name": "protectionOptions" + }, + { + "type": "Collection", + "name": "headerFooterOptions" + } + ] + }, + { + "kind": "method", + "name": "hasPostProcessing", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [ + { + "type": "PdfMetadataOptions", + "name": "metadataOptions" + }, + { + "type": "PdfWatermarkOptions", + "name": "watermarkOptions" + }, + { + "type": "PdfProtectionOptions", + "name": "protectionOptions" + }, + { + "type": "Collection", + "name": "headerFooterOptions" + } + ] + } + ] + }, + { + "name": "PdfFixedLayoutBackend", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.PdfFixedLayoutBackend", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfFixedLayoutBackend", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PdfFixedLayoutBackend.Builder", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "byte[]", + "params": [ + { + "type": "LayoutGraph", + "name": "graph" + }, + { + "type": "FixedLayoutRenderContext", + "name": "context" + } + ] + }, + { + "kind": "method", + "name": "write", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "LayoutGraph", + "name": "graph" + }, + { + "type": "FixedLayoutRenderContext", + "name": "context" + } + ] + }, + { + "kind": "method", + "name": "renderToImages", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [ + { + "type": "LayoutGraph", + "name": "graph" + }, + { + "type": "FixedLayoutRenderContext", + "name": "context" + }, + { + "type": "int", + "name": "dpi" + }, + { + "type": "boolean", + "name": "transparent" + }, + { + "type": "int", + "name": "pageIndex" + } + ] + }, + { + "kind": "method", + "name": "renderSections", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "byte[]", + "params": [ + { + "type": "List", + "name": "sections" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "writeSections", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "List", + "name": "sections" + }, + { + "type": "OutputStream", + "name": "output" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Object", + "params": [ + { + "type": "LayoutGraph", + "name": "graph" + }, + { + "type": "FixedLayoutRenderContext", + "name": "context" + } + ] + } + ] + }, + { + "name": "PdfFixedLayoutBackend.Builder", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.PdfFixedLayoutBackend$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "method", + "name": "addHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfFixedLayoutBackend.Builder", + "params": [ + { + "type": "PdfFragmentRenderHandler", + "name": "handler" + } + ] + }, + { + "kind": "method", + "name": "guideLines", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfFixedLayoutBackend.Builder", + "params": [ + { + "type": "boolean", + "name": "enabled" + } + ] + }, + { + "kind": "method", + "name": "debug", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfFixedLayoutBackend.Builder", + "params": [ + { + "type": "DocumentDebugOptions", + "name": "options" + } + ] + }, + { + "kind": "method", + "name": "viewerPreferences", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfFixedLayoutBackend.Builder", + "params": [ + { + "type": "PdfViewerPreferencesOptions", + "name": "options" + } + ] + }, + { + "kind": "method", + "name": "metadata", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfFixedLayoutBackend.Builder", + "params": [ + { + "type": "PdfMetadataOptions", + "name": "options" + } + ] + }, + { + "kind": "method", + "name": "watermark", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfFixedLayoutBackend.Builder", + "params": [ + { + "type": "PdfWatermarkOptions", + "name": "options" + } + ] + }, + { + "kind": "method", + "name": "protect", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfFixedLayoutBackend.Builder", + "params": [ + { + "type": "PdfProtectionOptions", + "name": "options" + } + ] + }, + { + "kind": "method", + "name": "header", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfFixedLayoutBackend.Builder", + "params": [ + { + "type": "PdfHeaderFooterOptions", + "name": "options" + } + ] + }, + { + "kind": "method", + "name": "footer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfFixedLayoutBackend.Builder", + "params": [ + { + "type": "PdfHeaderFooterOptions", + "name": "options" + } + ] + }, + { + "kind": "method", + "name": "deterministic", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfFixedLayoutBackend.Builder", + "params": [ + { + "type": "boolean", + "name": "enabled" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "deterministic", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfFixedLayoutBackend.Builder", + "params": [ + { + "type": "Instant", + "name": "timestamp" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfFixedLayoutBackend", + "params": [] + } + ] + }, + { + "name": "PdfFixedLayoutBackendProvider", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.PdfFixedLayoutBackendProvider", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfFixedLayoutBackendProvider", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "format", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "FixedLayoutRenderer", + "params": [ + { + "type": "DocumentOutputOptions", + "name": "chrome" + }, + { + "type": "DocumentDebugOptions", + "name": "debug" + } + ] + } + ] + }, + { + "name": "PdfFontLibraryFactory", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.PdfFontLibraryFactory", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "method", + "name": "standardLibrary", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "FontLibrary", + "params": [] + }, + { + "kind": "method", + "name": "library", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "FontLibrary", + "params": [ + { + "type": "PDDocument", + "name": "document" + } + ] + }, + { + "kind": "method", + "name": "library", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "FontLibrary", + "params": [ + { + "type": "PDDocument", + "name": "document" + }, + { + "type": "Collection", + "name": "customFamilies" + } + ] + }, + { + "kind": "method", + "name": "measurementLibrary", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "FontLibrary", + "params": [ + { + "type": "Collection", + "name": "customFamilies" + } + ] + } + ] + }, + { + "name": "PdfFontMetricsProvider", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.PdfFontMetricsProvider", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfFontMetricsProvider", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "openMeasurement", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MeasurementResources", + "params": [ + { + "type": "Collection", + "name": "customFontFamilies" + } + ] + } + ] + }, + { + "name": "PdfMeasurementResources", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.PdfMeasurementResources", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "method", + "name": "open", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PdfMeasurementResources", + "params": [ + { + "type": "Collection", + "name": "customFontFamilies" + } + ] + }, + { + "kind": "method", + "name": "fontLibrary", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "FontLibrary", + "params": [] + }, + { + "kind": "method", + "name": "textMeasurementSystem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TextMeasurementSystem", + "params": [] + }, + { + "kind": "method", + "name": "close", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [] + } + ] + }, + { + "name": "PdfOutputOptionsTranslator", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.PdfOutputOptionsTranslator", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "method", + "name": "toPdf", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PdfMetadataOptions", + "params": [ + { + "type": "DocumentMetadata", + "name": "metadata" + } + ] + }, + { + "kind": "method", + "name": "toPdf", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PdfViewerPreferencesOptions", + "params": [ + { + "type": "DocumentViewerPreferences", + "name": "viewerPreferences" + } + ] + }, + { + "kind": "method", + "name": "toPdf", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PdfWatermarkOptions", + "params": [ + { + "type": "DocumentWatermark", + "name": "watermark" + } + ] + }, + { + "kind": "method", + "name": "toPdf", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PdfProtectionOptions", + "params": [ + { + "type": "DocumentProtection", + "name": "protection" + } + ] + }, + { + "kind": "method", + "name": "toPdf", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PdfHeaderFooterOptions", + "params": [ + { + "type": "DocumentHeaderFooter", + "name": "entry" + } + ] + } + ] + }, + { + "name": "PdfRenderEnvironment", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.PdfRenderEnvironment", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "method", + "name": "document", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PDDocument", + "params": [] + }, + { + "kind": "method", + "name": "fonts", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "FontLibrary", + "params": [] + }, + { + "kind": "method", + "name": "pageSurface", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PDPageContentStream", + "params": [ + { + "type": "int", + "name": "pageIndex" + } + ] + }, + { + "kind": "method", + "name": "documentPage", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PDPage", + "params": [ + { + "type": "int", + "name": "localPageIndex" + } + ] + }, + { + "kind": "method", + "name": "fillAlphaState", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PDExtendedGraphicsState", + "params": [ + { + "type": "float", + "name": "alpha" + } + ] + }, + { + "kind": "method", + "name": "strokeAlphaState", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PDExtendedGraphicsState", + "params": [ + { + "type": "float", + "name": "alpha" + } + ] + }, + { + "kind": "method", + "name": "resolveImage", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PDImageXObject", + "params": [ + { + "type": "ImageData", + "name": "imageData" + } + ] + }, + { + "kind": "method", + "name": "markReorderedText", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [] + }, + { + "kind": "method", + "name": "registerAnchor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "String", + "name": "anchor" + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.backend.fixed.pdf.handlers", + "types": [ + { + "name": "PdfAnchorMarkerRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.handlers.PdfAnchorMarkerRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfAnchorMarkerRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "AnchorMarkerPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PdfRenderEnvironment", + "name": null + } + ] + } + ] + }, + { + "name": "PdfBarcodeFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.handlers.PdfBarcodeFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfBarcodeFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "BarcodeFragmentPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PdfRenderEnvironment", + "name": null + } + ] + } + ] + }, + { + "name": "PdfBookmarkMarkerRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.handlers.PdfBookmarkMarkerRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfBookmarkMarkerRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "BookmarkMarkerPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PdfRenderEnvironment", + "name": null + } + ] + } + ] + }, + { + "name": "PdfEllipseFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.handlers.PdfEllipseFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfEllipseFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "EllipseFragmentPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PdfRenderEnvironment", + "name": null + } + ] + } + ] + }, + { + "name": "PdfImageFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.handlers.PdfImageFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfImageFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "ImageFragmentPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PdfRenderEnvironment", + "name": null + } + ] + } + ] + }, + { + "name": "PdfLineFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.handlers.PdfLineFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfLineFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "LineFragmentPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PdfRenderEnvironment", + "name": null + } + ] + } + ] + }, + { + "name": "PdfParagraphFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.handlers.PdfParagraphFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfParagraphFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "ParagraphFragmentPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PdfRenderEnvironment", + "name": null + } + ] + } + ] + }, + { + "name": "PdfPathFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.handlers.PdfPathFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfPathFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "PathFragmentPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PdfRenderEnvironment", + "name": null + } + ] + } + ] + }, + { + "name": "PdfPolygonFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.handlers.PdfPolygonFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfPolygonFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "PolygonFragmentPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PdfRenderEnvironment", + "name": null + } + ] + } + ] + }, + { + "name": "PdfShapeClipBeginRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.handlers.PdfShapeClipBeginRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfShapeClipBeginRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "ShapeClipBeginPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PdfRenderEnvironment", + "name": null + } + ] + } + ] + }, + { + "name": "PdfShapeClipEndRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.handlers.PdfShapeClipEndRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfShapeClipEndRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "ShapeClipEndPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PdfRenderEnvironment", + "name": null + } + ] + } + ] + }, + { + "name": "PdfShapeFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.handlers.PdfShapeFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfShapeFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "ShapeFragmentPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PdfRenderEnvironment", + "name": null + } + ] + } + ] + }, + { + "name": "PdfTableRowFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.handlers.PdfTableRowFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfTableRowFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "TableRowFragmentPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "renderFills", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "TableRowFragmentPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "renderBordersAndText", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "TableRowFragmentPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PdfRenderEnvironment", + "name": null + } + ] + } + ] + }, + { + "name": "PdfTransformBeginRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.handlers.PdfTransformBeginRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfTransformBeginRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "TransformBeginPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PdfRenderEnvironment", + "name": null + } + ] + } + ] + }, + { + "name": "PdfTransformEndRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.handlers.PdfTransformEndRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "constructor", + "name": "PdfTransformEndRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "TransformEndPayload", + "name": "payload" + }, + { + "type": "PdfRenderEnvironment", + "name": "environment" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PdfRenderEnvironment", + "name": null + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.backend.fixed.pdf.options", + "types": [ + { + "name": "PdfBarcodeOptions", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfBarcodeOptions", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "PdfBarcodeOptions.PdfBarcodeOptionsBuilder", + "params": [] + }, + { + "kind": "method", + "name": "toBuilder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfBarcodeOptions.PdfBarcodeOptionsBuilder", + "params": [] + }, + { + "kind": "method", + "name": "getContent", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getType", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfBarcodeType", + "params": [] + }, + { + "kind": "method", + "name": "getForeground", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Color", + "params": [] + }, + { + "kind": "method", + "name": "getBackground", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Color", + "params": [] + }, + { + "kind": "method", + "name": "getQuietZoneMargin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + } + ] + }, + { + "name": "PdfBarcodeOptions.PdfBarcodeOptionsBuilder", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfBarcodeOptions$PdfBarcodeOptionsBuilder", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "content", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfBarcodeOptions.PdfBarcodeOptionsBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "type", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfBarcodeOptions.PdfBarcodeOptionsBuilder", + "params": [ + { + "type": "PdfBarcodeType", + "name": null + } + ] + }, + { + "kind": "method", + "name": "foreground", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfBarcodeOptions.PdfBarcodeOptionsBuilder", + "params": [ + { + "type": "Color", + "name": null + } + ] + }, + { + "kind": "method", + "name": "background", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfBarcodeOptions.PdfBarcodeOptionsBuilder", + "params": [ + { + "type": "Color", + "name": null + } + ] + }, + { + "kind": "method", + "name": "quietZoneMargin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfBarcodeOptions.PdfBarcodeOptionsBuilder", + "params": [ + { + "type": "int", + "name": null + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfBarcodeOptions", + "params": [] + } + ] + }, + { + "name": "PdfBarcodeType", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfBarcodeType", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "QR_CODE", + "static": true, + "origin": "generated", + "type": "PdfBarcodeType" + }, + { + "kind": "constant", + "name": "CODE_128", + "static": true, + "origin": "generated", + "type": "PdfBarcodeType" + }, + { + "kind": "constant", + "name": "CODE_39", + "static": true, + "origin": "generated", + "type": "PdfBarcodeType" + }, + { + "kind": "constant", + "name": "EAN_13", + "static": true, + "origin": "generated", + "type": "PdfBarcodeType" + }, + { + "kind": "constant", + "name": "EAN_8", + "static": true, + "origin": "generated", + "type": "PdfBarcodeType" + }, + { + "kind": "constant", + "name": "UPC_A", + "static": true, + "origin": "generated", + "type": "PdfBarcodeType" + }, + { + "kind": "constant", + "name": "PDF_417", + "static": true, + "origin": "generated", + "type": "PdfBarcodeType" + }, + { + "kind": "constant", + "name": "DATA_MATRIX", + "static": true, + "origin": "generated", + "type": "PdfBarcodeType" + } + ] + }, + { + "name": "PdfBookmarkOptions", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfBookmarkOptions", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "PdfBookmarkOptions", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "constructor", + "name": "PdfBookmarkOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "int", + "name": null + } + ] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "level", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + } + ] + }, + { + "name": "PdfHeaderFooterOptions", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfHeaderFooterOptions", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "withZone", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfHeaderFooterOptions", + "params": [ + { + "type": "PdfHeaderFooterZone", + "name": "zone" + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder", + "params": [] + }, + { + "kind": "method", + "name": "toBuilder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder", + "params": [] + }, + { + "kind": "method", + "name": "getZone", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfHeaderFooterZone", + "params": [] + }, + { + "kind": "method", + "name": "getHeight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "float", + "params": [] + }, + { + "kind": "method", + "name": "getLeftText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getCenterText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getRightText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getFontSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "float", + "params": [] + }, + { + "kind": "method", + "name": "getTextColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Color", + "params": [] + }, + { + "kind": "method", + "name": "isShowSeparator", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "getSeparatorColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Color", + "params": [] + }, + { + "kind": "method", + "name": "getSeparatorThickness", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "float", + "params": [] + }, + { + "kind": "method", + "name": "getNumbering", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPageNumbering", + "params": [] + } + ] + }, + { + "name": "PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfHeaderFooterOptions$PdfHeaderFooterOptionsBuilder", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "zone", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder", + "params": [ + { + "type": "PdfHeaderFooterZone", + "name": null + } + ] + }, + { + "kind": "method", + "name": "height", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder", + "params": [ + { + "type": "float", + "name": null + } + ] + }, + { + "kind": "method", + "name": "leftText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "centerText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "rightText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "fontSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder", + "params": [ + { + "type": "float", + "name": null + } + ] + }, + { + "kind": "method", + "name": "textColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder", + "params": [ + { + "type": "Color", + "name": null + } + ] + }, + { + "kind": "method", + "name": "showSeparator", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "separatorColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder", + "params": [ + { + "type": "Color", + "name": null + } + ] + }, + { + "kind": "method", + "name": "separatorThickness", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder", + "params": [ + { + "type": "float", + "name": null + } + ] + }, + { + "kind": "method", + "name": "numbering", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder", + "params": [ + { + "type": "DocumentPageNumbering", + "name": null + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfHeaderFooterOptions", + "params": [] + } + ] + }, + { + "name": "PdfHeaderFooterZone", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfHeaderFooterZone", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "HEADER", + "static": true, + "origin": "generated", + "type": "PdfHeaderFooterZone" + }, + { + "kind": "constant", + "name": "FOOTER", + "static": true, + "origin": "generated", + "type": "PdfHeaderFooterZone" + } + ] + }, + { + "name": "PdfLinkOptions", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfLinkOptions", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "PdfLinkOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "uri", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "PdfMetadataOptions", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfMetadataOptions", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "PdfMetadataOptions.PdfMetadataOptionsBuilder", + "params": [] + }, + { + "kind": "method", + "name": "toBuilder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfMetadataOptions.PdfMetadataOptionsBuilder", + "params": [] + }, + { + "kind": "method", + "name": "getTitle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getAuthor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getSubject", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getKeywords", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getCreator", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getProducer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "PdfMetadataOptions.PdfMetadataOptionsBuilder", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfMetadataOptions$PdfMetadataOptionsBuilder", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfMetadataOptions.PdfMetadataOptionsBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "author", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfMetadataOptions.PdfMetadataOptionsBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "subject", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfMetadataOptions.PdfMetadataOptionsBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "keywords", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfMetadataOptions.PdfMetadataOptionsBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "creator", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfMetadataOptions.PdfMetadataOptionsBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "producer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfMetadataOptions.PdfMetadataOptionsBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfMetadataOptions", + "params": [] + } + ] + }, + { + "name": "PdfProtectionOptions", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfProtectionOptions", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "PdfProtectionOptions.PdfProtectionOptionsBuilder", + "params": [] + }, + { + "kind": "method", + "name": "toBuilder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfProtectionOptions.PdfProtectionOptionsBuilder", + "params": [] + }, + { + "kind": "method", + "name": "getUserPassword", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getOwnerPassword", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "isCanPrint", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "isCanCopyContent", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "isCanModify", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "isCanFillForms", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "isCanExtractForAccessibility", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "isCanAssemble", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "isCanPrintHighQuality", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "getKeyLength", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + } + ] + }, + { + "name": "PdfProtectionOptions.PdfProtectionOptionsBuilder", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfProtectionOptions$PdfProtectionOptionsBuilder", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "userPassword", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfProtectionOptions.PdfProtectionOptionsBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "ownerPassword", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfProtectionOptions.PdfProtectionOptionsBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "canPrint", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfProtectionOptions.PdfProtectionOptionsBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "canCopyContent", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfProtectionOptions.PdfProtectionOptionsBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "canModify", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfProtectionOptions.PdfProtectionOptionsBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "canFillForms", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfProtectionOptions.PdfProtectionOptionsBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "canExtractForAccessibility", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfProtectionOptions.PdfProtectionOptionsBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "canAssemble", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfProtectionOptions.PdfProtectionOptionsBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "canPrintHighQuality", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfProtectionOptions.PdfProtectionOptionsBuilder", + "params": [ + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "keyLength", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfProtectionOptions.PdfProtectionOptionsBuilder", + "params": [ + { + "type": "int", + "name": null + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfProtectionOptions", + "params": [] + } + ] + }, + { + "name": "PdfViewerPreferencesOptions", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfViewerPreferencesOptions", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder", + "params": [] + }, + { + "kind": "method", + "name": "toBuilder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder", + "params": [] + }, + { + "kind": "method", + "name": "getPageMode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPageMode", + "params": [] + }, + { + "kind": "method", + "name": "getPageLayout", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentPageLayout", + "params": [] + }, + { + "kind": "method", + "name": "getDisplayDocTitle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Boolean", + "params": [] + }, + { + "kind": "method", + "name": "getHideToolbar", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Boolean", + "params": [] + }, + { + "kind": "method", + "name": "getHideMenubar", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Boolean", + "params": [] + }, + { + "kind": "method", + "name": "getFitWindow", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Boolean", + "params": [] + }, + { + "kind": "method", + "name": "getCenterWindow", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Boolean", + "params": [] + } + ] + }, + { + "name": "PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfViewerPreferencesOptions$PdfViewerPreferencesOptionsBuilder", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "pageMode", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder", + "params": [ + { + "type": "DocumentPageMode", + "name": null + } + ] + }, + { + "kind": "method", + "name": "pageLayout", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder", + "params": [ + { + "type": "DocumentPageLayout", + "name": null + } + ] + }, + { + "kind": "method", + "name": "displayDocTitle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder", + "params": [ + { + "type": "Boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "hideToolbar", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder", + "params": [ + { + "type": "Boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "hideMenubar", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder", + "params": [ + { + "type": "Boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "fitWindow", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder", + "params": [ + { + "type": "Boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "centerWindow", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder", + "params": [ + { + "type": "Boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfViewerPreferencesOptions", + "params": [] + } + ] + }, + { + "name": "PdfWatermarkLayer", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfWatermarkLayer", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "BEHIND_CONTENT", + "static": true, + "origin": "generated", + "type": "PdfWatermarkLayer" + }, + { + "kind": "constant", + "name": "ABOVE_CONTENT", + "static": true, + "origin": "generated", + "type": "PdfWatermarkLayer" + } + ] + }, + { + "name": "PdfWatermarkOptions", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfWatermarkOptions", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "isTextBased", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "isImageBased", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "generated", + "typeParameters": null, + "returns": "PdfWatermarkOptions.PdfWatermarkOptionsBuilder", + "params": [] + }, + { + "kind": "method", + "name": "toBuilder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfWatermarkOptions.PdfWatermarkOptionsBuilder", + "params": [] + }, + { + "kind": "method", + "name": "getText", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "getFontSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "float", + "params": [] + }, + { + "kind": "method", + "name": "getRotation", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "float", + "params": [] + }, + { + "kind": "method", + "name": "getColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Color", + "params": [] + }, + { + "kind": "method", + "name": "getImagePath", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Path", + "params": [] + }, + { + "kind": "method", + "name": "getImageBytes", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "byte[]", + "params": [] + }, + { + "kind": "method", + "name": "getOpacity", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "float", + "params": [] + }, + { + "kind": "method", + "name": "getLayer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfWatermarkLayer", + "params": [] + }, + { + "kind": "method", + "name": "getPosition", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfWatermarkPosition", + "params": [] + } + ] + }, + { + "name": "PdfWatermarkOptions.PdfWatermarkOptionsBuilder", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfWatermarkOptions$PdfWatermarkOptionsBuilder", + "kind": "class", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "text", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfWatermarkOptions.PdfWatermarkOptionsBuilder", + "params": [ + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "fontSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfWatermarkOptions.PdfWatermarkOptionsBuilder", + "params": [ + { + "type": "float", + "name": null + } + ] + }, + { + "kind": "method", + "name": "rotation", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfWatermarkOptions.PdfWatermarkOptionsBuilder", + "params": [ + { + "type": "float", + "name": null + } + ] + }, + { + "kind": "method", + "name": "color", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfWatermarkOptions.PdfWatermarkOptionsBuilder", + "params": [ + { + "type": "Color", + "name": null + } + ] + }, + { + "kind": "method", + "name": "imagePath", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfWatermarkOptions.PdfWatermarkOptionsBuilder", + "params": [ + { + "type": "Path", + "name": null + } + ] + }, + { + "kind": "method", + "name": "imageBytes", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfWatermarkOptions.PdfWatermarkOptionsBuilder", + "params": [ + { + "type": "byte[]", + "name": null + } + ] + }, + { + "kind": "method", + "name": "opacity", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfWatermarkOptions.PdfWatermarkOptionsBuilder", + "params": [ + { + "type": "float", + "name": null + } + ] + }, + { + "kind": "method", + "name": "layer", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfWatermarkOptions.PdfWatermarkOptionsBuilder", + "params": [ + { + "type": "PdfWatermarkLayer", + "name": null + } + ] + }, + { + "kind": "method", + "name": "position", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfWatermarkOptions.PdfWatermarkOptionsBuilder", + "params": [ + { + "type": "PdfWatermarkPosition", + "name": null + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PdfWatermarkOptions", + "params": [] + } + ] + }, + { + "name": "PdfWatermarkPosition", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.options.PdfWatermarkPosition", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constant", + "name": "CENTER", + "static": true, + "origin": "generated", + "type": "PdfWatermarkPosition" + }, + { + "kind": "constant", + "name": "TOP_LEFT", + "static": true, + "origin": "generated", + "type": "PdfWatermarkPosition" + }, + { + "kind": "constant", + "name": "TOP_RIGHT", + "static": true, + "origin": "generated", + "type": "PdfWatermarkPosition" + }, + { + "kind": "constant", + "name": "BOTTOM_LEFT", + "static": true, + "origin": "generated", + "type": "PdfWatermarkPosition" + }, + { + "kind": "constant", + "name": "BOTTOM_RIGHT", + "static": true, + "origin": "generated", + "type": "PdfWatermarkPosition" + }, + { + "kind": "constant", + "name": "TILE", + "static": true, + "origin": "generated", + "type": "PdfWatermarkPosition" + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.backend.fixed.pptx", + "types": [ + { + "name": "PptxCoordinates", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.PptxCoordinates", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "method", + "name": "topY", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [ + { + "type": "double", + "name": "canvasHeight" + }, + { + "type": "double", + "name": "y" + }, + { + "type": "double", + "name": "height" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "flipPoint", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [ + { + "type": "double", + "name": "canvasHeight" + }, + { + "type": "double", + "name": "y" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "anchorOf", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Rectangle2D.Double", + "params": [ + { + "type": "double", + "name": "canvasHeight" + }, + { + "type": "PlacedFragment", + "name": "fragment" + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxFixedLayoutBackend", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.PptxFixedLayoutBackend", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxFixedLayoutBackend", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PptxFixedLayoutBackend.Builder", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "byte[]", + "params": [ + { + "type": "LayoutGraph", + "name": "graph" + }, + { + "type": "FixedLayoutRenderContext", + "name": "context" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "write", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "LayoutGraph", + "name": "graph" + }, + { + "type": "FixedLayoutRenderContext", + "name": "context" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "renderToImages", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [ + { + "type": "LayoutGraph", + "name": "graph" + }, + { + "type": "FixedLayoutRenderContext", + "name": "context" + }, + { + "type": "int", + "name": "dpi" + }, + { + "type": "boolean", + "name": "transparent" + }, + { + "type": "int", + "name": "pageIndex" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "renderSections", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "byte[]", + "params": [ + { + "type": "List", + "name": "sections" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "writeSections", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "List", + "name": "sections" + }, + { + "type": "OutputStream", + "name": "output" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Object", + "params": [ + { + "type": "LayoutGraph", + "name": "graph" + }, + { + "type": "FixedLayoutRenderContext", + "name": "context" + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxFixedLayoutBackend.Builder", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.PptxFixedLayoutBackend$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "method", + "name": "metadata", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PptxFixedLayoutBackend.Builder", + "params": [ + { + "type": "DocumentMetadata", + "name": "metadata" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "watermark", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PptxFixedLayoutBackend.Builder", + "params": [ + { + "type": "DocumentWatermark", + "name": "watermark" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "header", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PptxFixedLayoutBackend.Builder", + "params": [ + { + "type": "DocumentHeaderFooter", + "name": "options" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "footer", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PptxFixedLayoutBackend.Builder", + "params": [ + { + "type": "DocumentHeaderFooter", + "name": "options" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "deterministic", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PptxFixedLayoutBackend.Builder", + "params": [ + { + "type": "boolean", + "name": "enabled" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "deterministic", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PptxFixedLayoutBackend.Builder", + "params": [ + { + "type": "Instant", + "name": "timestamp" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "rasterSlides", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PptxFixedLayoutBackend.Builder", + "params": [ + { + "type": "int", + "name": "dpi" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "addHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PptxFixedLayoutBackend.Builder", + "params": [ + { + "type": "PptxFragmentRenderHandler", + "name": "handler" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "clipRasterFallback", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PptxFixedLayoutBackend.Builder", + "params": [ + { + "type": "boolean", + "name": "enabled" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "embedBundledFonts", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PptxFixedLayoutBackend.Builder", + "params": [ + { + "type": "boolean", + "name": "enabled" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PptxFixedLayoutBackend", + "params": [], + "stability": "beta" + } + ] + }, + { + "name": "PptxFixedLayoutBackendProvider", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.PptxFixedLayoutBackendProvider", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxFixedLayoutBackendProvider", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "format", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "create", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "FixedLayoutRenderer", + "params": [ + { + "type": "DocumentOutputOptions", + "name": "chrome" + }, + { + "type": "DocumentDebugOptions", + "name": "debug" + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxRenderEnvironment", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.PptxRenderEnvironment", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "method", + "name": "slideShow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "XMLSlideShow", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "slide", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "XSLFSlide", + "params": [ + { + "type": "int", + "name": "pageIndex" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "surface", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "XSLFShapeContainer", + "params": [ + { + "type": "int", + "name": "pageIndex" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "pushGroup", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "XSLFGroupShape", + "name": "group" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "popGroup", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "XSLFGroupShape", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "canvasHeight", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "fonts", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "FontLibrary", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "pictureSize", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Dimension", + "params": [ + { + "type": "ImageData", + "name": "imageData" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "resolvePicture", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "XSLFPictureData", + "params": [ + { + "type": "ImageData", + "name": "imageData" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "registerAnchor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "String", + "name": "anchor" + } + ], + "stability": "beta" + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.backend.fixed.pptx.handlers", + "types": [ + { + "name": "PptxAnchorMarkerRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxAnchorMarkerRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxAnchorMarkerRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "AnchorMarkerPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PptxRenderEnvironment", + "name": null + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxBarcodeFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxBarcodeFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxBarcodeFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "BarcodeFragmentPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PptxRenderEnvironment", + "name": null + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxBookmarkMarkerRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxBookmarkMarkerRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxBookmarkMarkerRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "BookmarkMarkerPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PptxRenderEnvironment", + "name": null + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxEllipseFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxEllipseFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxEllipseFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "EllipseFragmentPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PptxRenderEnvironment", + "name": null + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxImageFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxImageFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxImageFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "ImageFragmentPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PptxRenderEnvironment", + "name": null + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxLineFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxLineFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxLineFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "LineFragmentPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PptxRenderEnvironment", + "name": null + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxParagraphFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxParagraphFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxParagraphFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "ParagraphFragmentPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PptxRenderEnvironment", + "name": null + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxPathFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxPathFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxPathFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "PathFragmentPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PptxRenderEnvironment", + "name": null + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxPolygonFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxPolygonFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxPolygonFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "PolygonFragmentPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PptxRenderEnvironment", + "name": null + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxShapeClipBeginRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxShapeClipBeginRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxShapeClipBeginRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "ShapeClipBeginPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PptxRenderEnvironment", + "name": null + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxShapeClipEndRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxShapeClipEndRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxShapeClipEndRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "ShapeClipEndPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PptxRenderEnvironment", + "name": null + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxShapeFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxShapeFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxShapeFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "ShapeFragmentPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PptxRenderEnvironment", + "name": null + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxTableRowFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxTableRowFragmentRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxTableRowFragmentRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "TableRowFragmentPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "renderFills", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "TableRowFragmentPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "renderBordersAndText", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "TableRowFragmentPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PptxRenderEnvironment", + "name": null + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxTransformBeginRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxTransformBeginRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxTransformBeginRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "TransformBeginPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PptxRenderEnvironment", + "name": null + } + ], + "stability": "beta" + } + ] + }, + { + "name": "PptxTransformEndRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxTransformEndRenderHandler", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "constructor", + "name": "PptxTransformEndRenderHandler", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": "fragment" + }, + { + "type": "TransformEndPayload", + "name": "payload" + }, + { + "type": "PptxRenderEnvironment", + "name": "environment" + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "Object", + "name": null + }, + { + "type": "PptxRenderEnvironment", + "name": null + } + ], + "stability": "beta" + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.backend.semantic", + "types": [ + { + "name": "SemanticExportContext", + "binaryName": "com.demcha.compose.document.backend.semantic.SemanticExportContext", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "SemanticExportContext", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "LayoutCanvas", + "name": null + }, + { + "type": "Collection", + "name": null + }, + { + "type": "Path", + "name": null + }, + { + "type": "DocumentOutputOptions", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "SemanticExportContext", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "LayoutCanvas", + "name": "canvas" + }, + { + "type": "Collection", + "name": "customFontFamilies" + }, + { + "type": "Path", + "name": "outputFile" + } + ] + }, + { + "kind": "method", + "name": "canvas", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "LayoutCanvas", + "params": [] + }, + { + "kind": "method", + "name": "customFontFamilies", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Collection", + "params": [] + }, + { + "kind": "method", + "name": "outputFile", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Path", + "params": [] + }, + { + "kind": "method", + "name": "outputOptions", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentOutputOptions", + "params": [] + } + ] + }, + { + "name": "SemanticExportManifest", + "binaryName": "com.demcha.compose.document.backend.semantic.SemanticExportManifest", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "constructor", + "name": "SemanticExportManifest", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "Path", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "backendName", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "outputFile", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Path", + "params": [] + }, + { + "kind": "method", + "name": "rootCount", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "nodeKinds", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.backend.semantic.docx", + "types": [ + { + "name": "DocxSemanticBackend", + "binaryName": "com.demcha.compose.document.backend.semantic.docx.DocxSemanticBackend", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-docx", + "members": [ + { + "kind": "constructor", + "name": "DocxSemanticBackend", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "export", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "byte[]", + "params": [ + { + "type": "DocumentGraph", + "name": "graph" + }, + { + "type": "SemanticExportContext", + "name": "context" + } + ] + }, + { + "kind": "method", + "name": "export", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Object", + "params": [ + { + "type": "DocumentGraph", + "name": "graph" + }, + { + "type": "SemanticExportContext", + "name": "context" + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.backend.semantic.pptx", + "types": [ + { + "name": "PptxSemanticBackend", + "binaryName": "com.demcha.compose.document.backend.semantic.pptx.PptxSemanticBackend", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-render-pptx", + "members": [ + { + "kind": "constructor", + "name": "PptxSemanticBackend", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "export", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SemanticExportManifest", + "params": [ + { + "type": "DocumentGraph", + "name": "graph" + }, + { + "type": "SemanticExportContext", + "name": "context" + } + ] + }, + { + "kind": "method", + "name": "export", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Object", + "params": [ + { + "type": "DocumentGraph", + "name": "graph" + }, + { + "type": "SemanticExportContext", + "name": "context" + } + ] + } + ] + } + ] + } + ] +} diff --git a/knowledge/api/backends.md b/knowledge/api/backends.md new file mode 100644 index 000000000..f00e90ee9 --- /dev/null +++ b/knowledge/api/backends.md @@ -0,0 +1,560 @@ +--- +skillId: graphcompose-api-surface +targetLibrary: GraphCompose +targetVersion: 2.2.x +verifiedAgainst: 2.2.3-SNAPSHOT +status: active +generator: knowledge/tools/api-surface/extract-api.mjs +generatedFrom: "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" +note: "Generated from the pinned artifact's class files. Authoritative closed set: a symbol absent here does not exist for this version. Regenerate, do not hand-edit." +--- + +# GraphCompose — Public API Surface (backends) + +> **Generated from `knowledge/tools/api-surface/extract-api.mjs` — do not hand-edit.** +> This is the COMPLETE list of public methods and constants on the `backends` surface, +> read from the pinned artifact's class files — so members generated by Lombok +> (`builder()`, `toBuilder()`, getters, nested `…Builder` types) are present, which +> they cannot be when the source text is parsed instead. +> **If a member is not listed here, it does not exist — do not invent one.** +> Types marked `[beta]` carry `@Beta`: usable, but the contract can still change. +> `@Internal` types and members are excluded on purpose; `excluded.json` records each one. +> +> This is one surface of several. The others are listed beside it in +> `knowledge/api/`; a task should load the one it needs, not all of them. +> +> Ask it a question instead of reading it: +> `node knowledge/tools/api-query/api-query.mjs --search `. + +**GraphCompose version:** 2.2.3-SNAPSHOT + +Types: 69 · methods: 369 · constants: 18 · compiler-generated members: 187 + +## com.demcha.compose.document.backend.fixed + +### BackendProviders (class) +- `FixedLayoutBackendProvider fixedLayout()` +- `FixedLayoutBackendProvider fixedLayout(String format)` +- `FontMetricsProvider fontMetrics()` + +### FixedLayoutRenderContext (record) +- `new FixedLayoutRenderContext(LayoutCanvas, Collection, Path, OutputStream)` +- `LayoutCanvas canvas()` +- `Collection customFontFamilies()` +- `Path outputFile()` +- `OutputStream outputStream()` + +### SectionUnit (record) +- `new SectionUnit(LayoutGraph, LayoutCanvas, List, FixedLayoutRenderer)` +- `LayoutGraph graph()` +- `LayoutCanvas canvas()` +- `List customFonts()` +- `FixedLayoutRenderer chrome()` + +## com.demcha.compose.document.backend.fixed.pdf + +### PdfDocumentPostProcessor (class) +- `void apply(PDDocument document, LayoutCanvas canvas, PdfMetadataOptions metadataOptions, PdfWatermarkOptions watermarkOptions, PdfProtectionOptions protectionOptions, Collection headerFooterOptions)` +- `void applySectionChrome(PDDocument document, LayoutCanvas canvas, PdfWatermarkOptions watermarkOptions, Collection headerFooterOptions, int basePageOffset, int sectionPageCount)` +- `void applyDocumentMetadataAndProtection(PDDocument document, PdfMetadataOptions metadataOptions, PdfProtectionOptions protectionOptions)` +- `void applyViewerPreferences(PDDocument document, PdfViewerPreferencesOptions options)` +- `byte[] apply(byte[] pdfBytes, LayoutCanvas canvas, PdfMetadataOptions metadataOptions, PdfWatermarkOptions watermarkOptions, PdfProtectionOptions protectionOptions, Collection headerFooterOptions)` +- `boolean hasPostProcessing(PdfMetadataOptions metadataOptions, PdfWatermarkOptions watermarkOptions, PdfProtectionOptions protectionOptions, Collection headerFooterOptions)` + +### PdfFixedLayoutBackend (class) +- `new PdfFixedLayoutBackend()` +- `PdfFixedLayoutBackend.Builder builder()` +- `String name()` +- `byte[] render(LayoutGraph graph, FixedLayoutRenderContext context)` +- `void write(LayoutGraph graph, FixedLayoutRenderContext context)` +- `List renderToImages(LayoutGraph graph, FixedLayoutRenderContext context, int dpi, boolean transparent, int pageIndex)` +- `byte[] renderSections(List sections) [beta]` +- `void writeSections(List sections, OutputStream output) [beta]` +- `Object render(LayoutGraph graph, FixedLayoutRenderContext context)` + +### PdfFixedLayoutBackend.Builder (class) +- `PdfFixedLayoutBackend.Builder addHandler(PdfFragmentRenderHandler handler)` +- `PdfFixedLayoutBackend.Builder guideLines(boolean enabled)` +- `PdfFixedLayoutBackend.Builder debug(DocumentDebugOptions options)` +- `PdfFixedLayoutBackend.Builder viewerPreferences(PdfViewerPreferencesOptions options)` +- `PdfFixedLayoutBackend.Builder metadata(PdfMetadataOptions options)` +- `PdfFixedLayoutBackend.Builder watermark(PdfWatermarkOptions options)` +- `PdfFixedLayoutBackend.Builder protect(PdfProtectionOptions options)` +- `PdfFixedLayoutBackend.Builder header(PdfHeaderFooterOptions options)` +- `PdfFixedLayoutBackend.Builder footer(PdfHeaderFooterOptions options)` +- `PdfFixedLayoutBackend.Builder deterministic(boolean enabled) [beta]` +- `PdfFixedLayoutBackend.Builder deterministic(Instant timestamp) [beta]` +- `PdfFixedLayoutBackend build()` + +### PdfFixedLayoutBackendProvider (class) +- `new PdfFixedLayoutBackendProvider()` +- `String format()` +- `FixedLayoutRenderer create(DocumentOutputOptions chrome, DocumentDebugOptions debug)` + +### PdfFontLibraryFactory (class) +- `FontLibrary standardLibrary()` +- `FontLibrary library(PDDocument document)` +- `FontLibrary library(PDDocument document, Collection customFamilies)` +- `FontLibrary measurementLibrary(Collection customFamilies)` + +### PdfFontMetricsProvider (class) +- `new PdfFontMetricsProvider()` +- `MeasurementResources openMeasurement(Collection customFontFamilies)` + +### PdfMeasurementResources (class) +- `PdfMeasurementResources open(Collection customFontFamilies)` +- `FontLibrary fontLibrary()` +- `TextMeasurementSystem textMeasurementSystem()` +- `void close()` + +### PdfOutputOptionsTranslator (class) +- `PdfMetadataOptions toPdf(DocumentMetadata metadata)` +- `PdfViewerPreferencesOptions toPdf(DocumentViewerPreferences viewerPreferences)` +- `PdfWatermarkOptions toPdf(DocumentWatermark watermark)` +- `PdfProtectionOptions toPdf(DocumentProtection protection)` +- `PdfHeaderFooterOptions toPdf(DocumentHeaderFooter entry)` + +### PdfRenderEnvironment (class) +- `PDDocument document()` +- `FontLibrary fonts()` +- `PDPageContentStream pageSurface(int pageIndex)` +- `PDPage documentPage(int localPageIndex)` +- `PDExtendedGraphicsState fillAlphaState(float alpha)` +- `PDExtendedGraphicsState strokeAlphaState(float alpha)` +- `PDImageXObject resolveImage(ImageData imageData)` +- `void markReorderedText()` +- `void registerAnchor(PlacedFragment fragment, String anchor)` + +## com.demcha.compose.document.backend.fixed.pdf.handlers + +### PdfAnchorMarkerRenderHandler (class) +- `new PdfAnchorMarkerRenderHandler()` +- `Class payloadType()` +- `void render(PlacedFragment fragment, AnchorMarkerPayload payload, PdfRenderEnvironment environment)` +- `void render(PlacedFragment, Object, PdfRenderEnvironment)` + +### PdfBarcodeFragmentRenderHandler (class) +- `new PdfBarcodeFragmentRenderHandler()` +- `Class payloadType()` +- `void render(PlacedFragment fragment, BarcodeFragmentPayload payload, PdfRenderEnvironment environment)` +- `void render(PlacedFragment, Object, PdfRenderEnvironment)` + +### PdfBookmarkMarkerRenderHandler (class) +- `new PdfBookmarkMarkerRenderHandler()` +- `Class payloadType()` +- `void render(PlacedFragment fragment, BookmarkMarkerPayload payload, PdfRenderEnvironment environment)` +- `void render(PlacedFragment, Object, PdfRenderEnvironment)` + +### PdfEllipseFragmentRenderHandler (class) +- `new PdfEllipseFragmentRenderHandler()` +- `Class payloadType()` +- `void render(PlacedFragment fragment, EllipseFragmentPayload payload, PdfRenderEnvironment environment)` +- `void render(PlacedFragment, Object, PdfRenderEnvironment)` + +### PdfImageFragmentRenderHandler (class) +- `new PdfImageFragmentRenderHandler()` +- `Class payloadType()` +- `void render(PlacedFragment fragment, ImageFragmentPayload payload, PdfRenderEnvironment environment)` +- `void render(PlacedFragment, Object, PdfRenderEnvironment)` + +### PdfLineFragmentRenderHandler (class) +- `new PdfLineFragmentRenderHandler()` +- `Class payloadType()` +- `void render(PlacedFragment fragment, LineFragmentPayload payload, PdfRenderEnvironment environment)` +- `void render(PlacedFragment, Object, PdfRenderEnvironment)` + +### PdfParagraphFragmentRenderHandler (class) +- `new PdfParagraphFragmentRenderHandler()` +- `Class payloadType()` +- `void render(PlacedFragment fragment, ParagraphFragmentPayload payload, PdfRenderEnvironment environment)` +- `void render(PlacedFragment, Object, PdfRenderEnvironment)` + +### PdfPathFragmentRenderHandler (class) +- `new PdfPathFragmentRenderHandler()` +- `Class payloadType()` +- `void render(PlacedFragment fragment, PathFragmentPayload payload, PdfRenderEnvironment environment)` +- `void render(PlacedFragment, Object, PdfRenderEnvironment)` + +### PdfPolygonFragmentRenderHandler (class) +- `new PdfPolygonFragmentRenderHandler()` +- `Class payloadType()` +- `void render(PlacedFragment fragment, PolygonFragmentPayload payload, PdfRenderEnvironment environment)` +- `void render(PlacedFragment, Object, PdfRenderEnvironment)` + +### PdfShapeClipBeginRenderHandler (class) +- `new PdfShapeClipBeginRenderHandler()` +- `Class payloadType()` +- `void render(PlacedFragment fragment, ShapeClipBeginPayload payload, PdfRenderEnvironment environment)` +- `void render(PlacedFragment, Object, PdfRenderEnvironment)` + +### PdfShapeClipEndRenderHandler (class) +- `new PdfShapeClipEndRenderHandler()` +- `Class payloadType()` +- `void render(PlacedFragment fragment, ShapeClipEndPayload payload, PdfRenderEnvironment environment)` +- `void render(PlacedFragment, Object, PdfRenderEnvironment)` + +### PdfShapeFragmentRenderHandler (class) +- `new PdfShapeFragmentRenderHandler()` +- `Class payloadType()` +- `void render(PlacedFragment fragment, ShapeFragmentPayload payload, PdfRenderEnvironment environment)` +- `void render(PlacedFragment, Object, PdfRenderEnvironment)` + +### PdfTableRowFragmentRenderHandler (class) +- `new PdfTableRowFragmentRenderHandler()` +- `Class payloadType()` +- `void render(PlacedFragment fragment, TableRowFragmentPayload payload, PdfRenderEnvironment environment)` +- `void renderFills(PlacedFragment fragment, TableRowFragmentPayload payload, PdfRenderEnvironment environment)` +- `void renderBordersAndText(PlacedFragment fragment, TableRowFragmentPayload payload, PdfRenderEnvironment environment)` +- `void render(PlacedFragment, Object, PdfRenderEnvironment)` + +### PdfTransformBeginRenderHandler (class) +- `new PdfTransformBeginRenderHandler()` +- `Class payloadType()` +- `void render(PlacedFragment fragment, TransformBeginPayload payload, PdfRenderEnvironment environment)` +- `void render(PlacedFragment, Object, PdfRenderEnvironment)` + +### PdfTransformEndRenderHandler (class) +- `new PdfTransformEndRenderHandler()` +- `Class payloadType()` +- `void render(PlacedFragment fragment, TransformEndPayload payload, PdfRenderEnvironment environment)` +- `void render(PlacedFragment, Object, PdfRenderEnvironment)` + +## com.demcha.compose.document.backend.fixed.pdf.options + +### PdfBarcodeOptions (class) +- `PdfBarcodeOptions.PdfBarcodeOptionsBuilder builder()` +- `PdfBarcodeOptions.PdfBarcodeOptionsBuilder toBuilder()` +- `String getContent()` +- `PdfBarcodeType getType()` +- `Color getForeground()` +- `Color getBackground()` +- `int getQuietZoneMargin()` + +### PdfBarcodeOptions.PdfBarcodeOptionsBuilder (class) +- `PdfBarcodeOptions.PdfBarcodeOptionsBuilder content(String)` +- `PdfBarcodeOptions.PdfBarcodeOptionsBuilder type(PdfBarcodeType)` +- `PdfBarcodeOptions.PdfBarcodeOptionsBuilder foreground(Color)` +- `PdfBarcodeOptions.PdfBarcodeOptionsBuilder background(Color)` +- `PdfBarcodeOptions.PdfBarcodeOptionsBuilder quietZoneMargin(int)` +- `PdfBarcodeOptions build()` + +### PdfBarcodeType (enum) +- constants: `QR_CODE`, `CODE_128`, `CODE_39`, `EAN_13`, `EAN_8`, `UPC_A`, `PDF_417`, `DATA_MATRIX` + +### PdfBookmarkOptions (record) +- `new PdfBookmarkOptions(String title)` +- `new PdfBookmarkOptions(String, int)` +- `String title()` +- `int level()` + +### PdfHeaderFooterOptions (class) +- `PdfHeaderFooterOptions withZone(PdfHeaderFooterZone zone)` +- `PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder builder()` +- `PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder toBuilder()` +- `PdfHeaderFooterZone getZone()` +- `float getHeight()` +- `String getLeftText()` +- `String getCenterText()` +- `String getRightText()` +- `float getFontSize()` +- `Color getTextColor()` +- `boolean isShowSeparator()` +- `Color getSeparatorColor()` +- `float getSeparatorThickness()` +- `DocumentPageNumbering getNumbering()` + +### PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder (class) +- `PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder zone(PdfHeaderFooterZone)` +- `PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder height(float)` +- `PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder leftText(String)` +- `PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder centerText(String)` +- `PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder rightText(String)` +- `PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder fontSize(float)` +- `PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder textColor(Color)` +- `PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder showSeparator(boolean)` +- `PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder separatorColor(Color)` +- `PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder separatorThickness(float)` +- `PdfHeaderFooterOptions.PdfHeaderFooterOptionsBuilder numbering(DocumentPageNumbering)` +- `PdfHeaderFooterOptions build()` + +### PdfHeaderFooterZone (enum) +- constants: `HEADER`, `FOOTER` + +### PdfLinkOptions (record) +- `new PdfLinkOptions(String)` +- `String uri()` + +### PdfMetadataOptions (class) +- `PdfMetadataOptions.PdfMetadataOptionsBuilder builder()` +- `PdfMetadataOptions.PdfMetadataOptionsBuilder toBuilder()` +- `String getTitle()` +- `String getAuthor()` +- `String getSubject()` +- `String getKeywords()` +- `String getCreator()` +- `String getProducer()` + +### PdfMetadataOptions.PdfMetadataOptionsBuilder (class) +- `PdfMetadataOptions.PdfMetadataOptionsBuilder title(String)` +- `PdfMetadataOptions.PdfMetadataOptionsBuilder author(String)` +- `PdfMetadataOptions.PdfMetadataOptionsBuilder subject(String)` +- `PdfMetadataOptions.PdfMetadataOptionsBuilder keywords(String)` +- `PdfMetadataOptions.PdfMetadataOptionsBuilder creator(String)` +- `PdfMetadataOptions.PdfMetadataOptionsBuilder producer(String)` +- `PdfMetadataOptions build()` + +### PdfProtectionOptions (class) +- `PdfProtectionOptions.PdfProtectionOptionsBuilder builder()` +- `PdfProtectionOptions.PdfProtectionOptionsBuilder toBuilder()` +- `String getUserPassword()` +- `String getOwnerPassword()` +- `boolean isCanPrint()` +- `boolean isCanCopyContent()` +- `boolean isCanModify()` +- `boolean isCanFillForms()` +- `boolean isCanExtractForAccessibility()` +- `boolean isCanAssemble()` +- `boolean isCanPrintHighQuality()` +- `int getKeyLength()` + +### PdfProtectionOptions.PdfProtectionOptionsBuilder (class) +- `PdfProtectionOptions.PdfProtectionOptionsBuilder userPassword(String)` +- `PdfProtectionOptions.PdfProtectionOptionsBuilder ownerPassword(String)` +- `PdfProtectionOptions.PdfProtectionOptionsBuilder canPrint(boolean)` +- `PdfProtectionOptions.PdfProtectionOptionsBuilder canCopyContent(boolean)` +- `PdfProtectionOptions.PdfProtectionOptionsBuilder canModify(boolean)` +- `PdfProtectionOptions.PdfProtectionOptionsBuilder canFillForms(boolean)` +- `PdfProtectionOptions.PdfProtectionOptionsBuilder canExtractForAccessibility(boolean)` +- `PdfProtectionOptions.PdfProtectionOptionsBuilder canAssemble(boolean)` +- `PdfProtectionOptions.PdfProtectionOptionsBuilder canPrintHighQuality(boolean)` +- `PdfProtectionOptions.PdfProtectionOptionsBuilder keyLength(int)` +- `PdfProtectionOptions build()` + +### PdfViewerPreferencesOptions (class) +- `PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder builder()` +- `PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder toBuilder()` +- `DocumentPageMode getPageMode()` +- `DocumentPageLayout getPageLayout()` +- `Boolean getDisplayDocTitle()` +- `Boolean getHideToolbar()` +- `Boolean getHideMenubar()` +- `Boolean getFitWindow()` +- `Boolean getCenterWindow()` + +### PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder (class) +- `PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder pageMode(DocumentPageMode)` +- `PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder pageLayout(DocumentPageLayout)` +- `PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder displayDocTitle(Boolean)` +- `PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder hideToolbar(Boolean)` +- `PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder hideMenubar(Boolean)` +- `PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder fitWindow(Boolean)` +- `PdfViewerPreferencesOptions.PdfViewerPreferencesOptionsBuilder centerWindow(Boolean)` +- `PdfViewerPreferencesOptions build()` + +### PdfWatermarkLayer (enum) +- constants: `BEHIND_CONTENT`, `ABOVE_CONTENT` + +### PdfWatermarkOptions (class) +- `boolean isTextBased()` +- `boolean isImageBased()` +- `PdfWatermarkOptions.PdfWatermarkOptionsBuilder builder()` +- `PdfWatermarkOptions.PdfWatermarkOptionsBuilder toBuilder()` +- `String getText()` +- `float getFontSize()` +- `float getRotation()` +- `Color getColor()` +- `Path getImagePath()` +- `byte[] getImageBytes()` +- `float getOpacity()` +- `PdfWatermarkLayer getLayer()` +- `PdfWatermarkPosition getPosition()` + +### PdfWatermarkOptions.PdfWatermarkOptionsBuilder (class) +- `PdfWatermarkOptions.PdfWatermarkOptionsBuilder text(String)` +- `PdfWatermarkOptions.PdfWatermarkOptionsBuilder fontSize(float)` +- `PdfWatermarkOptions.PdfWatermarkOptionsBuilder rotation(float)` +- `PdfWatermarkOptions.PdfWatermarkOptionsBuilder color(Color)` +- `PdfWatermarkOptions.PdfWatermarkOptionsBuilder imagePath(Path)` +- `PdfWatermarkOptions.PdfWatermarkOptionsBuilder imageBytes(byte[])` +- `PdfWatermarkOptions.PdfWatermarkOptionsBuilder opacity(float)` +- `PdfWatermarkOptions.PdfWatermarkOptionsBuilder layer(PdfWatermarkLayer)` +- `PdfWatermarkOptions.PdfWatermarkOptionsBuilder position(PdfWatermarkPosition)` +- `PdfWatermarkOptions build()` + +### PdfWatermarkPosition (enum) +- constants: `CENTER`, `TOP_LEFT`, `TOP_RIGHT`, `BOTTOM_LEFT`, `BOTTOM_RIGHT`, `TILE` + +## com.demcha.compose.document.backend.fixed.pptx + +### PptxCoordinates (class) [beta] +- `double topY(double canvasHeight, double y, double height) [beta]` +- `double flipPoint(double canvasHeight, double y) [beta]` +- `Rectangle2D.Double anchorOf(double canvasHeight, PlacedFragment fragment) [beta]` + +### PptxFixedLayoutBackend (class) [beta] +- `new PptxFixedLayoutBackend() [beta]` +- `PptxFixedLayoutBackend.Builder builder() [beta]` +- `String name() [beta]` +- `byte[] render(LayoutGraph graph, FixedLayoutRenderContext context) [beta]` +- `void write(LayoutGraph graph, FixedLayoutRenderContext context) [beta]` +- `List renderToImages(LayoutGraph graph, FixedLayoutRenderContext context, int dpi, boolean transparent, int pageIndex) [beta]` +- `byte[] renderSections(List sections) [beta]` +- `void writeSections(List sections, OutputStream output) [beta]` +- `Object render(LayoutGraph graph, FixedLayoutRenderContext context) [beta]` + +### PptxFixedLayoutBackend.Builder (class) [beta] +- `PptxFixedLayoutBackend.Builder metadata(DocumentMetadata metadata) [beta]` +- `PptxFixedLayoutBackend.Builder watermark(DocumentWatermark watermark) [beta]` +- `PptxFixedLayoutBackend.Builder header(DocumentHeaderFooter options) [beta]` +- `PptxFixedLayoutBackend.Builder footer(DocumentHeaderFooter options) [beta]` +- `PptxFixedLayoutBackend.Builder deterministic(boolean enabled) [beta]` +- `PptxFixedLayoutBackend.Builder deterministic(Instant timestamp) [beta]` +- `PptxFixedLayoutBackend.Builder rasterSlides(int dpi) [beta]` +- `PptxFixedLayoutBackend.Builder addHandler(PptxFragmentRenderHandler handler) [beta]` +- `PptxFixedLayoutBackend.Builder clipRasterFallback(boolean enabled) [beta]` +- `PptxFixedLayoutBackend.Builder embedBundledFonts(boolean enabled) [beta]` +- `PptxFixedLayoutBackend build() [beta]` + +### PptxFixedLayoutBackendProvider (class) [beta] +- `new PptxFixedLayoutBackendProvider() [beta]` +- `String format() [beta]` +- `FixedLayoutRenderer create(DocumentOutputOptions chrome, DocumentDebugOptions debug) [beta]` + +### PptxRenderEnvironment (class) [beta] +- `XMLSlideShow slideShow() [beta]` +- `XSLFSlide slide(int pageIndex) [beta]` +- `XSLFShapeContainer surface(int pageIndex) [beta]` +- `void pushGroup(XSLFGroupShape group) [beta]` +- `XSLFGroupShape popGroup() [beta]` +- `double canvasHeight() [beta]` +- `FontLibrary fonts() [beta]` +- `Dimension pictureSize(ImageData imageData) [beta]` +- `XSLFPictureData resolvePicture(ImageData imageData) [beta]` +- `void registerAnchor(PlacedFragment fragment, String anchor) [beta]` + +## com.demcha.compose.document.backend.fixed.pptx.handlers + +### PptxAnchorMarkerRenderHandler (class) [beta] +- `new PptxAnchorMarkerRenderHandler() [beta]` +- `Class payloadType() [beta]` +- `void render(PlacedFragment fragment, AnchorMarkerPayload payload, PptxRenderEnvironment environment) [beta]` +- `void render(PlacedFragment, Object, PptxRenderEnvironment) [beta]` + +### PptxBarcodeFragmentRenderHandler (class) [beta] +- `new PptxBarcodeFragmentRenderHandler() [beta]` +- `Class payloadType() [beta]` +- `void render(PlacedFragment fragment, BarcodeFragmentPayload payload, PptxRenderEnvironment environment) [beta]` +- `void render(PlacedFragment, Object, PptxRenderEnvironment) [beta]` + +### PptxBookmarkMarkerRenderHandler (class) [beta] +- `new PptxBookmarkMarkerRenderHandler() [beta]` +- `Class payloadType() [beta]` +- `void render(PlacedFragment fragment, BookmarkMarkerPayload payload, PptxRenderEnvironment environment) [beta]` +- `void render(PlacedFragment, Object, PptxRenderEnvironment) [beta]` + +### PptxEllipseFragmentRenderHandler (class) [beta] +- `new PptxEllipseFragmentRenderHandler() [beta]` +- `Class payloadType() [beta]` +- `void render(PlacedFragment fragment, EllipseFragmentPayload payload, PptxRenderEnvironment environment) [beta]` +- `void render(PlacedFragment, Object, PptxRenderEnvironment) [beta]` + +### PptxImageFragmentRenderHandler (class) [beta] +- `new PptxImageFragmentRenderHandler() [beta]` +- `Class payloadType() [beta]` +- `void render(PlacedFragment fragment, ImageFragmentPayload payload, PptxRenderEnvironment environment) [beta]` +- `void render(PlacedFragment, Object, PptxRenderEnvironment) [beta]` + +### PptxLineFragmentRenderHandler (class) [beta] +- `new PptxLineFragmentRenderHandler() [beta]` +- `Class payloadType() [beta]` +- `void render(PlacedFragment fragment, LineFragmentPayload payload, PptxRenderEnvironment environment) [beta]` +- `void render(PlacedFragment, Object, PptxRenderEnvironment) [beta]` + +### PptxParagraphFragmentRenderHandler (class) [beta] +- `new PptxParagraphFragmentRenderHandler() [beta]` +- `Class payloadType() [beta]` +- `void render(PlacedFragment fragment, ParagraphFragmentPayload payload, PptxRenderEnvironment environment) [beta]` +- `void render(PlacedFragment, Object, PptxRenderEnvironment) [beta]` + +### PptxPathFragmentRenderHandler (class) [beta] +- `new PptxPathFragmentRenderHandler() [beta]` +- `Class payloadType() [beta]` +- `void render(PlacedFragment fragment, PathFragmentPayload payload, PptxRenderEnvironment environment) [beta]` +- `void render(PlacedFragment, Object, PptxRenderEnvironment) [beta]` + +### PptxPolygonFragmentRenderHandler (class) [beta] +- `new PptxPolygonFragmentRenderHandler() [beta]` +- `Class payloadType() [beta]` +- `void render(PlacedFragment fragment, PolygonFragmentPayload payload, PptxRenderEnvironment environment) [beta]` +- `void render(PlacedFragment, Object, PptxRenderEnvironment) [beta]` + +### PptxShapeClipBeginRenderHandler (class) [beta] +- `new PptxShapeClipBeginRenderHandler() [beta]` +- `Class payloadType() [beta]` +- `void render(PlacedFragment fragment, ShapeClipBeginPayload payload, PptxRenderEnvironment environment) [beta]` +- `void render(PlacedFragment, Object, PptxRenderEnvironment) [beta]` + +### PptxShapeClipEndRenderHandler (class) [beta] +- `new PptxShapeClipEndRenderHandler() [beta]` +- `Class payloadType() [beta]` +- `void render(PlacedFragment fragment, ShapeClipEndPayload payload, PptxRenderEnvironment environment) [beta]` +- `void render(PlacedFragment, Object, PptxRenderEnvironment) [beta]` + +### PptxShapeFragmentRenderHandler (class) [beta] +- `new PptxShapeFragmentRenderHandler() [beta]` +- `Class payloadType() [beta]` +- `void render(PlacedFragment fragment, ShapeFragmentPayload payload, PptxRenderEnvironment environment) [beta]` +- `void render(PlacedFragment, Object, PptxRenderEnvironment) [beta]` + +### PptxTableRowFragmentRenderHandler (class) [beta] +- `new PptxTableRowFragmentRenderHandler() [beta]` +- `Class payloadType() [beta]` +- `void render(PlacedFragment fragment, TableRowFragmentPayload payload, PptxRenderEnvironment environment) [beta]` +- `void renderFills(PlacedFragment fragment, TableRowFragmentPayload payload, PptxRenderEnvironment environment) [beta]` +- `void renderBordersAndText(PlacedFragment fragment, TableRowFragmentPayload payload, PptxRenderEnvironment environment) [beta]` +- `void render(PlacedFragment, Object, PptxRenderEnvironment) [beta]` + +### PptxTransformBeginRenderHandler (class) [beta] +- `new PptxTransformBeginRenderHandler() [beta]` +- `Class payloadType() [beta]` +- `void render(PlacedFragment fragment, TransformBeginPayload payload, PptxRenderEnvironment environment) [beta]` +- `void render(PlacedFragment, Object, PptxRenderEnvironment) [beta]` + +### PptxTransformEndRenderHandler (class) [beta] +- `new PptxTransformEndRenderHandler() [beta]` +- `Class payloadType() [beta]` +- `void render(PlacedFragment fragment, TransformEndPayload payload, PptxRenderEnvironment environment) [beta]` +- `void render(PlacedFragment, Object, PptxRenderEnvironment) [beta]` + +## com.demcha.compose.document.backend.semantic + +### SemanticExportContext (record) +- `new SemanticExportContext(LayoutCanvas, Collection, Path, DocumentOutputOptions)` +- `new SemanticExportContext(LayoutCanvas canvas, Collection customFontFamilies, Path outputFile)` +- `LayoutCanvas canvas()` +- `Collection customFontFamilies()` +- `Path outputFile()` +- `DocumentOutputOptions outputOptions()` + +### SemanticExportManifest (record) +- `new SemanticExportManifest(String, Path, int, List)` +- `String backendName()` +- `Path outputFile()` +- `int rootCount()` +- `List nodeKinds()` + +## com.demcha.compose.document.backend.semantic.docx + +### DocxSemanticBackend (class) +- `new DocxSemanticBackend()` +- `String name()` +- `byte[] export(DocumentGraph graph, SemanticExportContext context)` +- `Object export(DocumentGraph graph, SemanticExportContext context)` + +## com.demcha.compose.document.backend.semantic.pptx + +### PptxSemanticBackend (class) +- `new PptxSemanticBackend()` +- `String name()` +- `SemanticExportManifest export(DocumentGraph graph, SemanticExportContext context)` +- `Object export(DocumentGraph graph, SemanticExportContext context)` diff --git a/knowledge/api/excluded.json b/knowledge/api/excluded.json new file mode 100644 index 000000000..23825ae5a --- /dev/null +++ b/knowledge/api/excluded.json @@ -0,0 +1,1150 @@ +{ + "schemaVersion": 2, + "verifiedAgainst": "2.2.3-SNAPSHOT", + "generator": "knowledge/tools/api-surface/extract-api.mjs", + "note": "Public types and members deliberately kept out of every surface. An exclusion nobody can see is indistinguishable from a bug, so each one records why.", + "count": 163, + "excluded": [ + { + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxChromeRenderer", + "package": "com.demcha.compose.document.backend.fixed.pptx.handlers", + "kind": "class", + "artifact": "graph-compose-render-pptx", + "reason": "type @Internal" + }, + { + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.handlers.PptxFontMapping", + "package": "com.demcha.compose.document.backend.fixed.pptx.handlers", + "kind": "class", + "artifact": "graph-compose-render-pptx", + "reason": "type @Internal" + }, + { + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.PptxRenderEnvironment#deferLink", + "package": "com.demcha.compose.document.backend.fixed.pptx", + "kind": "method", + "artifact": "graph-compose-render-pptx", + "reason": "member @Internal" + }, + { + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.PptxRenderEnvironment#fontFamily", + "package": "com.demcha.compose.document.backend.fixed.pptx", + "kind": "method", + "artifact": "graph-compose-render-pptx", + "reason": "member @Internal" + }, + { + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.PptxRenderEnvironment#fontFamily", + "package": "com.demcha.compose.document.backend.fixed.pptx", + "kind": "method", + "artifact": "graph-compose-render-pptx", + "reason": "member @Internal" + }, + { + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.PptxRenderEnvironment#registerBookmark", + "package": "com.demcha.compose.document.backend.fixed.pptx", + "kind": "method", + "artifact": "graph-compose-render-pptx", + "reason": "member @Internal" + }, + { + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.PptxRenderEnvironment#viewerAscent", + "package": "com.demcha.compose.document.backend.fixed.pptx", + "kind": "method", + "artifact": "graph-compose-render-pptx", + "reason": "member @Internal" + }, + { + "binaryName": "com.demcha.compose.document.chart.ChartSize$AspectRatio", + "package": "com.demcha.compose.document.chart", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "nested type no admitted signature mentions" + }, + { + "binaryName": "com.demcha.compose.document.chart.ChartSize$Fixed", + "package": "com.demcha.compose.document.chart", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "nested type no admitted signature mentions" + }, + { + "binaryName": "com.demcha.compose.document.debug.snapshot.LayoutGraphSnapshotExtractor", + "package": "com.demcha.compose.document.debug.snapshot", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.document.debug.snapshot.PageIndexExtractor", + "package": "com.demcha.compose.document.debug.snapshot", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.document.dsl.internal.BuilderSupport", + "package": "com.demcha.compose.document.dsl.internal", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package `document.dsl.internal` is implementation detail but carries no package-level @Internal; excluded by name until the annotation is added" + }, + { + "binaryName": "com.demcha.compose.document.dsl.internal.SemanticNameNormalizer", + "package": "com.demcha.compose.document.dsl.internal", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package `document.dsl.internal` is implementation detail but carries no package-level @Internal; excluded by name until the annotation is added" + }, + { + "binaryName": "com.demcha.compose.document.emoji.EmojiLibrary", + "package": "com.demcha.compose.document.emoji", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.document.layout.BoxConstraints", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.BuiltInNodeDefinitions", + "package": "com.demcha.compose.document.layout", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.ChartTextMetricsSupport", + "package": "com.demcha.compose.document.layout", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.CompositeLayoutSpec", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.CompositeLayoutSpec$Axis", + "package": "com.demcha.compose.document.layout", + "kind": "enum", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.AlignDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.BarcodeDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.CanvasLayerDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.ChartDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.ChartDefinition$PreparedChartLayout", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "nested type no admitted signature mentions" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.ChartDefinition$PreparedPrimitive", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "nested type no admitted signature mentions" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.ContainerDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.EllipseDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.ImageDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.LayerStackDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.LineDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.ListDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.PageBreakDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.PageReferenceDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.ParagraphDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.PathDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.PolygonDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.RowDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.SectionDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.ShapeContainerDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.ShapeDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.SpacerDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.definitions.TableDefinition", + "package": "com.demcha.compose.document.layout.definitions", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.definitions)" + }, + { + "binaryName": "com.demcha.compose.document.layout.DocumentGraph", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.DocumentLayoutPassContext", + "package": "com.demcha.compose.document.layout", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.DocumentLayoutResolver", + "package": "com.demcha.compose.document.layout", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.DocumentLayoutResolver$Context", + "package": "com.demcha.compose.document.layout", + "kind": "interface", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.FixedSlotPlacementContext", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.FragmentContext", + "package": "com.demcha.compose.document.layout", + "kind": "interface", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.FragmentPlacement", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.LayoutCanvas", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.LayoutCompiler", + "package": "com.demcha.compose.document.layout", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.LayoutFragment", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.LayoutGraph", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.MeasureContext", + "package": "com.demcha.compose.document.layout", + "kind": "interface", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.MeasureResult", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.MutatingPlacementContext", + "package": "com.demcha.compose.document.layout", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.NodeDefinitionSupport", + "package": "com.demcha.compose.document.layout", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.NodeDefinitionSupport$ImageDimensions", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.NodeRegistry", + "package": "com.demcha.compose.document.layout", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.PageGeometry", + "package": "com.demcha.compose.document.layout", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.PageMarginOverride", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.PaginationPolicy", + "package": "com.demcha.compose.document.layout", + "kind": "enum", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.ParagraphDirection", + "package": "com.demcha.compose.document.layout", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.AnchorMarkerPayload", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.BarcodeFragmentPayload", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.BookmarkMarkerPayload", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.EllipseFragmentPayload", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.ImageFragmentPayload", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.LineFragmentPayload", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.ParagraphFragmentPayload", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.ParagraphImageSpan", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.ParagraphLine", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.ParagraphLineGeometry", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.ParagraphShapeSpan", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.ParagraphSpan", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "interface", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.ParagraphSvgSpan", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.ParagraphTextSpan", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.PathFragmentPayload", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.PdfSemanticFragmentPayload", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "interface", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.PolygonFragmentPayload", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.PreparedListItemLayout", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.PreparedListLayout", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.PreparedParagraphLayout", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.PreparedStackLayout", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.ResolvedShapeLayer", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.ResolvedSvgLayer", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.ShapeClipBeginPayload", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.ShapeClipEndPayload", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.ShapeFragmentPayload", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.SideBorders", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.TableRowFragmentPayload", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.TransformBeginPayload", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.payloads.TransformEndPayload", + "package": "com.demcha.compose.document.layout.payloads", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout.payloads)" + }, + { + "binaryName": "com.demcha.compose.document.layout.PlacedFragment", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.PlacedNode", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.PlacementContext", + "package": "com.demcha.compose.document.layout", + "kind": "interface", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.PrepareContext", + "package": "com.demcha.compose.document.layout", + "kind": "interface", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.PreparedNode", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.PreparedNodeLayout", + "package": "com.demcha.compose.document.layout", + "kind": "interface", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.PreparedSplitResult", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.SplitRequest", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.SplitResult", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.TableGrid", + "package": "com.demcha.compose.document.layout", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "type @Internal" + }, + { + "binaryName": "com.demcha.compose.document.layout.TableGrid$Placement", + "package": "com.demcha.compose.document.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.layout.TextFlowSupport", + "package": "com.demcha.compose.document.layout", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.document.layout)" + }, + { + "binaryName": "com.demcha.compose.document.style.DocumentPaint$Linear", + "package": "com.demcha.compose.document.style", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "nested type no admitted signature mentions" + }, + { + "binaryName": "com.demcha.compose.document.style.DocumentPaint$LinearAxis", + "package": "com.demcha.compose.document.style", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "nested type no admitted signature mentions" + }, + { + "binaryName": "com.demcha.compose.document.style.DocumentPaint$Radial", + "package": "com.demcha.compose.document.style", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "nested type no admitted signature mentions" + }, + { + "binaryName": "com.demcha.compose.document.style.DocumentPaint$RadialCircle", + "package": "com.demcha.compose.document.style", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "nested type no admitted signature mentions" + }, + { + "binaryName": "com.demcha.compose.document.style.DocumentPaint$Solid", + "package": "com.demcha.compose.document.style", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "nested type no admitted signature mentions" + }, + { + "binaryName": "com.demcha.compose.document.style.DocumentPaint$Stop", + "package": "com.demcha.compose.document.style", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "nested type no admitted signature mentions" + }, + { + "binaryName": "com.demcha.compose.document.style.ShapeOutline$Rectangle", + "package": "com.demcha.compose.document.style", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "nested type no admitted signature mentions" + }, + { + "binaryName": "com.demcha.compose.document.style.ShapeOutline$RoundedRectangle", + "package": "com.demcha.compose.document.style", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "nested type no admitted signature mentions" + }, + { + "binaryName": "com.demcha.compose.document.style.ShapeOutline$RoundedRectanglePerCorner", + "package": "com.demcha.compose.document.style", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "nested type no admitted signature mentions" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.barcode.BarcodeData", + "package": "com.demcha.compose.engine.components.content.barcode", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.barcode.BarcodeType", + "package": "com.demcha.compose.engine.components.content.barcode", + "kind": "enum", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.header_footer.HeaderFooterConfig", + "package": "com.demcha.compose.engine.components.content.header_footer", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.header_footer.HeaderFooterConfig$HeaderFooterConfigBuilder", + "package": "com.demcha.compose.engine.components.content.header_footer", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.header_footer.HeaderFooterZone", + "package": "com.demcha.compose.engine.components.content.header_footer", + "kind": "enum", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.header_footer.PageNumberStyle", + "package": "com.demcha.compose.engine.components.content.header_footer", + "kind": "enum", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.protection.PdfProtectionConfig", + "package": "com.demcha.compose.engine.components.content.protection", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.protection.PdfProtectionConfig$PdfProtectionConfigBuilder", + "package": "com.demcha.compose.engine.components.content.protection", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.shape.Side", + "package": "com.demcha.compose.engine.components.content.shape", + "kind": "enum", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.shape.Stroke", + "package": "com.demcha.compose.engine.components.content.shape", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.shape.StrokeColor", + "package": "com.demcha.compose.engine.components.content.shape", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.table.TableCellContent", + "package": "com.demcha.compose.engine.components.content.table", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.table.TableCellLayoutStyle", + "package": "com.demcha.compose.engine.components.content.table", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.table.TableCellLayoutStyle$TableCellLayoutStyleBuilder", + "package": "com.demcha.compose.engine.components.content.table", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.table.TableColumnLayout", + "package": "com.demcha.compose.engine.components.content.table", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.table.TableColumnLayout$Type", + "package": "com.demcha.compose.engine.components.content.table", + "kind": "enum", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.table.TableResolvedCell", + "package": "com.demcha.compose.engine.components.content.table", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.text.BlockTextData", + "package": "com.demcha.compose.engine.components.content.text", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.text.LineTextData", + "package": "com.demcha.compose.engine.components.content.text", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.text.Text", + "package": "com.demcha.compose.engine.components.content.text", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.text.TextDataBody", + "package": "com.demcha.compose.engine.components.content.text", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.text.TextIndentStrategy", + "package": "com.demcha.compose.engine.components.content.text", + "kind": "enum", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.watermark.WatermarkConfig", + "package": "com.demcha.compose.engine.components.content.watermark", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.watermark.WatermarkConfig$WatermarkConfigBuilder", + "package": "com.demcha.compose.engine.components.content.watermark", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.watermark.WatermarkLayer", + "package": "com.demcha.compose.engine.components.content.watermark", + "kind": "enum", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.content.watermark.WatermarkPosition", + "package": "com.demcha.compose.engine.components.content.watermark", + "kind": "enum", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.layout.Anchor", + "package": "com.demcha.compose.engine.components.layout", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.layout.HAnchor", + "package": "com.demcha.compose.engine.components.layout", + "kind": "enum", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.layout.VAnchor", + "package": "com.demcha.compose.engine.components.layout", + "kind": "enum", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.components.style.ComponentColor", + "package": "com.demcha.compose.engine.components.style", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.font.Font", + "package": "com.demcha.compose.engine.font", + "kind": "interface", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.font.FontBase", + "package": "com.demcha.compose.engine.font", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.font.FontLineMetrics", + "package": "com.demcha.compose.engine.font", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.measurement.FontLibraryTextMeasurementSystem", + "package": "com.demcha.compose.engine.measurement", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.render.pdf.GlyphFallbackLogger", + "package": "com.demcha.compose.engine.render.pdf", + "kind": "class", + "artifact": "graph-compose-render-pdf", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.render.pdf.helpers.PdfHeaderFooterRenderer", + "package": "com.demcha.compose.engine.render.pdf.helpers", + "kind": "class", + "artifact": "graph-compose-render-pdf", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.render.pdf.helpers.PdfWatermarkRenderer", + "package": "com.demcha.compose.engine.render.pdf.helpers", + "kind": "class", + "artifact": "graph-compose-render-pdf", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.render.pdf.PdfFont", + "package": "com.demcha.compose.engine.render.pdf", + "kind": "class", + "artifact": "graph-compose-render-pdf", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.render.pdf.PdfFont$VerticalMetrics", + "package": "com.demcha.compose.engine.render.pdf", + "kind": "record", + "artifact": "graph-compose-render-pdf", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.render.word.WordFont", + "package": "com.demcha.compose.engine.render.word", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.text.bidi.ArabicShaper", + "package": "com.demcha.compose.engine.text.bidi", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.engine.text.bidi)" + }, + { + "binaryName": "com.demcha.compose.engine.text.bidi.BidiMirroring", + "package": "com.demcha.compose.engine.text.bidi", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.engine.text.bidi)" + }, + { + "binaryName": "com.demcha.compose.engine.text.bidi.BidiParagraphResolver", + "package": "com.demcha.compose.engine.text.bidi", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.engine.text.bidi)" + }, + { + "binaryName": "com.demcha.compose.engine.text.bidi.BidiParagraphResolver$BaseDirection", + "package": "com.demcha.compose.engine.text.bidi", + "kind": "enum", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.engine.text.bidi)" + }, + { + "binaryName": "com.demcha.compose.engine.text.bidi.BidiParagraphResolver$DirectionalRun", + "package": "com.demcha.compose.engine.text.bidi", + "kind": "record", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.engine.text.bidi)" + }, + { + "binaryName": "com.demcha.compose.engine.text.bidi.BidiText", + "package": "com.demcha.compose.engine.text.bidi", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.engine.text.bidi)" + }, + { + "binaryName": "com.demcha.compose.engine.text.bidi.BidiVisualOrder", + "package": "com.demcha.compose.engine.text.bidi", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.engine.text.bidi)" + }, + { + "binaryName": "com.demcha.compose.engine.text.markdown.MarkDownParser", + "package": "com.demcha.compose.engine.text.markdown", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "implementation package, and no admitted API mentions it" + }, + { + "binaryName": "com.demcha.compose.engine.text.TextControlSanitizer", + "package": "com.demcha.compose.engine.text", + "kind": "class", + "artifact": "graph-compose-core", + "reason": "package @Internal (com.demcha.compose.engine.text)" + } + ] +} diff --git a/knowledge/api/extension-spi.json b/knowledge/api/extension-spi.json new file mode 100644 index 000000000..db96c85c9 --- /dev/null +++ b/knowledge/api/extension-spi.json @@ -0,0 +1,549 @@ +{ + "schemaVersion": 2, + "targetLibrary": "GraphCompose", + "surface": "extension-spi", + "targetVersion": "2.2.x", + "verifiedAgainst": "2.2.3-SNAPSHOT", + "generator": "knowledge/tools/api-surface/extract-api.mjs", + "generatedFrom": [ + "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" + ], + "parameterNamesFrom": [ + "graph-compose-core:sources", + "graph-compose-templates:sources", + "graph-compose-render-pdf:sources", + "graph-compose-render-docx:sources", + "graph-compose-render-pptx:sources", + "graph-compose-testing:sources" + ], + "counts": { + "types": 9, + "methods": 26, + "constants": 0, + "generated": 26 + }, + "packages": [ + { + "name": "com.demcha.compose.document.backend.fixed", + "types": [ + { + "name": "FixedLayoutBackend", + "binaryName": "com.demcha.compose.document.backend.fixed.FixedLayoutBackend", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "R", + "params": [ + { + "type": "LayoutGraph", + "name": null + }, + { + "type": "FixedLayoutRenderContext", + "name": null + } + ] + } + ] + }, + { + "name": "FixedLayoutBackendProvider", + "binaryName": "com.demcha.compose.document.backend.fixed.FixedLayoutBackendProvider", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "format", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "FixedLayoutRenderer", + "params": [ + { + "type": "DocumentOutputOptions", + "name": null + }, + { + "type": "DocumentDebugOptions", + "name": null + } + ] + } + ] + }, + { + "name": "FixedLayoutRenderer", + "binaryName": "com.demcha.compose.document.backend.fixed.FixedLayoutRenderer", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "write", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "LayoutGraph", + "name": null + }, + { + "type": "FixedLayoutRenderContext", + "name": null + } + ] + }, + { + "kind": "method", + "name": "renderToImages", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [ + { + "type": "LayoutGraph", + "name": null + }, + { + "type": "FixedLayoutRenderContext", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "boolean", + "name": null + }, + { + "type": "int", + "name": null + } + ] + }, + { + "kind": "method", + "name": "renderSections", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "byte[]", + "params": [ + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "writeSections", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "List", + "name": null + }, + { + "type": "OutputStream", + "name": null + } + ] + } + ] + }, + { + "name": "FontMetricsProvider", + "binaryName": "com.demcha.compose.document.backend.fixed.FontMetricsProvider", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "openMeasurement", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "MeasurementResources", + "params": [ + { + "type": "Collection", + "name": null + } + ] + } + ] + }, + { + "name": "MeasurementResources", + "binaryName": "com.demcha.compose.document.backend.fixed.MeasurementResources", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "fontLibrary", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "FontLibrary", + "params": [] + }, + { + "kind": "method", + "name": "textMeasurementSystem", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "TextMeasurementSystem", + "params": [] + }, + { + "kind": "method", + "name": "close", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.backend.fixed.pdf", + "types": [ + { + "name": "PdfFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pdf.PdfFragmentRenderHandler", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-render-pdf", + "members": [ + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Class", + "params": [] + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "T", + "name": null + }, + { + "type": "PdfRenderEnvironment", + "name": null + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.backend.fixed.pptx", + "types": [ + { + "name": "PptxFragmentRenderHandler", + "binaryName": "com.demcha.compose.document.backend.fixed.pptx.PptxFragmentRenderHandler", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-render-pptx", + "stability": "beta", + "members": [ + { + "kind": "method", + "name": "payloadType", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "render", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PlacedFragment", + "name": null + }, + { + "type": "T", + "name": null + }, + { + "type": "PptxRenderEnvironment", + "name": null + } + ], + "stability": "beta" + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.backend.semantic", + "types": [ + { + "name": "SemanticBackend", + "binaryName": "com.demcha.compose.document.backend.semantic.SemanticBackend", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "members": [ + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "export", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "R", + "params": [ + { + "type": "DocumentGraph", + "name": null + }, + { + "type": "SemanticExportContext", + "name": null + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.layout", + "types": [ + { + "name": "NodeDefinition", + "binaryName": "com.demcha.compose.document.layout.NodeDefinition", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-core", + "stability": "beta", + "members": [ + { + "kind": "method", + "name": "nodeType", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Class", + "params": [], + "stability": "beta" + }, + { + "kind": "method", + "name": "prepare", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PreparedNode", + "params": [ + { + "type": "E", + "name": null + }, + { + "type": "PrepareContext", + "name": null + }, + { + "type": "BoxConstraints", + "name": null + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "paginationPolicy", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PaginationPolicy", + "params": [ + { + "type": "E", + "name": null + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "split", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "PreparedSplitResult", + "params": [ + { + "type": "PreparedNode", + "name": null + }, + { + "type": "SplitRequest", + "name": null + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "children", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [ + { + "type": "E", + "name": null + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "emitFragments", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [ + { + "type": "PreparedNode", + "name": null + }, + { + "type": "FragmentContext", + "name": null + }, + { + "type": "FragmentPlacement", + "name": null + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "emitOverlayFragments", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [ + { + "type": "PreparedNode", + "name": null + }, + { + "type": "FragmentContext", + "name": null + }, + { + "type": "FragmentPlacement", + "name": null + } + ], + "stability": "beta" + }, + { + "kind": "method", + "name": "firstSliceHeight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [ + { + "type": "PreparedNode", + "name": null + } + ], + "stability": "beta" + } + ] + } + ] + } + ] +} diff --git a/knowledge/api/extension-spi.md b/knowledge/api/extension-spi.md new file mode 100644 index 000000000..7cb9029d9 --- /dev/null +++ b/knowledge/api/extension-spi.md @@ -0,0 +1,85 @@ +--- +skillId: graphcompose-api-surface +targetLibrary: GraphCompose +targetVersion: 2.2.x +verifiedAgainst: 2.2.3-SNAPSHOT +status: active +generator: knowledge/tools/api-surface/extract-api.mjs +generatedFrom: "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" +note: "Generated from the pinned artifact's class files. Authoritative closed set: a symbol absent here does not exist for this version. Regenerate, do not hand-edit." +--- + +# GraphCompose — Public API Surface (extension-spi) + +> **Generated from `knowledge/tools/api-surface/extract-api.mjs` — do not hand-edit.** +> This is the COMPLETE list of public methods and constants on the `extension-spi` surface, +> read from the pinned artifact's class files — so members generated by Lombok +> (`builder()`, `toBuilder()`, getters, nested `…Builder` types) are present, which +> they cannot be when the source text is parsed instead. +> **If a member is not listed here, it does not exist — do not invent one.** +> Types marked `[beta]` carry `@Beta`: usable, but the contract can still change. +> `@Internal` types and members are excluded on purpose; `excluded.json` records each one. +> +> This is one surface of several. The others are listed beside it in +> `knowledge/api/`; a task should load the one it needs, not all of them. +> +> Ask it a question instead of reading it: +> `node knowledge/tools/api-query/api-query.mjs --search `. + +**GraphCompose version:** 2.2.3-SNAPSHOT + +Types: 9 · methods: 26 · constants: 0 · compiler-generated members: 26 + +## com.demcha.compose.document.backend.fixed + +### FixedLayoutBackend (interface) +- `String name()` +- `R render(LayoutGraph, FixedLayoutRenderContext)` + +### FixedLayoutBackendProvider (interface) +- `String format()` +- `FixedLayoutRenderer create(DocumentOutputOptions, DocumentDebugOptions)` + +### FixedLayoutRenderer (interface) +- `void write(LayoutGraph, FixedLayoutRenderContext)` +- `List renderToImages(LayoutGraph, FixedLayoutRenderContext, int, boolean, int)` +- `byte[] renderSections(List)` +- `void writeSections(List, OutputStream)` + +### FontMetricsProvider (interface) +- `MeasurementResources openMeasurement(Collection)` + +### MeasurementResources (interface) +- `FontLibrary fontLibrary()` +- `TextMeasurementSystem textMeasurementSystem()` +- `void close()` + +## com.demcha.compose.document.backend.fixed.pdf + +### PdfFragmentRenderHandler (interface) +- `Class payloadType()` +- `void render(PlacedFragment, T, PdfRenderEnvironment)` + +## com.demcha.compose.document.backend.fixed.pptx + +### PptxFragmentRenderHandler (interface) [beta] +- `Class payloadType() [beta]` +- `void render(PlacedFragment, T, PptxRenderEnvironment) [beta]` + +## com.demcha.compose.document.backend.semantic + +### SemanticBackend (interface) +- `String name()` +- `R export(DocumentGraph, SemanticExportContext)` + +## com.demcha.compose.document.layout + +### NodeDefinition (interface) [beta] +- `Class nodeType() [beta]` +- `PreparedNode prepare(E, PrepareContext, BoxConstraints) [beta]` +- `PaginationPolicy paginationPolicy(E) [beta]` +- `PreparedSplitResult split(PreparedNode, SplitRequest) [beta]` +- `List children(E) [beta]` +- `List emitFragments(PreparedNode, FragmentContext, FragmentPlacement) [beta]` +- `List emitOverlayFragments(PreparedNode, FragmentContext, FragmentPlacement) [beta]` +- `double firstSliceHeight(PreparedNode) [beta]` diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json new file mode 100644 index 000000000..a657161af --- /dev/null +++ b/knowledge/api/templates.json @@ -0,0 +1,16464 @@ +{ + "schemaVersion": 2, + "targetLibrary": "GraphCompose", + "surface": "templates", + "targetVersion": "2.2.x", + "verifiedAgainst": "2.2.3-SNAPSHOT", + "generator": "knowledge/tools/api-surface/extract-api.mjs", + "generatedFrom": [ + "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" + ], + "parameterNamesFrom": [ + "graph-compose-core:sources", + "graph-compose-templates:sources", + "graph-compose-render-pdf:sources", + "graph-compose-render-docx:sources", + "graph-compose-render-pptx:sources", + "graph-compose-testing:sources" + ], + "counts": { + "types": 161, + "methods": 953, + "constants": 117, + "generated": 402 + }, + "packages": [ + { + "name": "com.demcha.compose.document.templates.api", + "types": [ + { + "name": "DocumentTemplate", + "binaryName": "com.demcha.compose.document.templates.api.DocumentTemplate", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "id", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "displayName", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "compose", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "DocumentSession", + "name": null + }, + { + "type": "S", + "name": null + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.core.identity", + "types": [ + { + "name": "Contact", + "binaryName": "com.demcha.compose.document.templates.core.identity.Contact", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Contact", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "phone", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "email", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "address", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ContactLine", + "binaryName": "com.demcha.compose.document.templates.core.identity.ContactLine", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "centered", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "PartyIdentity", + "name": "identity" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "centered", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "PartyIdentity", + "name": "identity" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentTextStyle", + "name": "bodyStyleOverride" + }, + { + "type": "DocumentTextStyle", + "name": "linkStyleOverride" + }, + { + "type": "DocumentTextStyle", + "name": "separatorStyleOverride" + } + ] + }, + { + "kind": "method", + "name": "rightAligned", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "PartyIdentity", + "name": "identity" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "leftAligned", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "PartyIdentity", + "name": "identity" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "leftAligned", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "PartyIdentity", + "name": "identity" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentTextStyle", + "name": "bodyStyleOverride" + }, + { + "type": "DocumentTextStyle", + "name": "linkStyleOverride" + }, + { + "type": "DocumentTextStyle", + "name": "separatorStyleOverride" + } + ] + }, + { + "kind": "method", + "name": "twoRowRightAligned", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "PartyIdentity", + "name": "identity" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentTextStyle", + "name": "bodyStyleOverride" + }, + { + "type": "DocumentTextStyle", + "name": "linkStyleOverride" + }, + { + "type": "DocumentTextStyle", + "name": "separatorStyleOverride" + } + ] + }, + { + "kind": "method", + "name": "rightAlignedStacked", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "PartyIdentity", + "name": "identity" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "rightAlignedStacked", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "PartyIdentity", + "name": "identity" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentTextStyle", + "name": "bodyStyleOverride" + }, + { + "type": "DocumentTextStyle", + "name": "linkStyleOverride" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "PartyIdentity", + "name": "identity" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "TextAlign", + "name": "alignment" + }, + { + "type": "ContactLine.Order", + "name": "order" + } + ] + } + ] + }, + { + "name": "ContactLine.Order", + "binaryName": "com.demcha.compose.document.templates.core.identity.ContactLine$Order", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "PHONE_FIRST", + "static": true, + "origin": "generated", + "type": "ContactLine.Order" + }, + { + "kind": "constant", + "name": "ADDRESS_FIRST", + "static": true, + "origin": "generated", + "type": "ContactLine.Order" + } + ] + }, + { + "name": "Headline", + "binaryName": "com.demcha.compose.document.templates.core.identity.Headline", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "spacedCentered", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "uppercaseCentered", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "uppercaseCentered", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentTextStyle", + "name": "styleOverride" + } + ] + }, + { + "kind": "method", + "name": "uppercaseLeftAligned", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "uppercaseLeftAligned", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentTextStyle", + "name": "styleOverride" + } + ] + }, + { + "kind": "method", + "name": "rightAligned", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "rightAligned", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentTextStyle", + "name": "styleOverride" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "TextAlign", + "name": "alignment" + }, + { + "type": "boolean", + "name": "spacedCaps" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "TextAlign", + "name": "alignment" + }, + { + "type": "boolean", + "name": "spacedCaps" + }, + { + "type": "DocumentTextStyle", + "name": "styleOverride" + } + ] + } + ] + }, + { + "name": "Link", + "binaryName": "com.demcha.compose.document.templates.core.identity.Link", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Link", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Link", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "url" + } + ] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "url", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "Masthead", + "binaryName": "com.demcha.compose.document.templates.core.identity.Masthead", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "centered", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "PartyIdentity", + "name": "identity" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "Masthead.Style", + "name": "style" + } + ] + } + ] + }, + { + "name": "Masthead.Style", + "binaryName": "com.demcha.compose.document.templates.core.identity.Masthead$Style", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Style", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + } + ] + }, + { + "kind": "method", + "name": "defaults", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Masthead.Style", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Masthead.Style.Builder", + "params": [] + }, + { + "kind": "method", + "name": "nameStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "titleStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "metaStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "linkStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "separatorStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "metaJoiner", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "lineMargin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + } + ] + }, + { + "name": "Masthead.Style.Builder", + "binaryName": "com.demcha.compose.document.templates.core.identity.Masthead$Style$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "nameStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Masthead.Style.Builder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "titleStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Masthead.Style.Builder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "metaStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Masthead.Style.Builder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "linkStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Masthead.Style.Builder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "separatorStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Masthead.Style.Builder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "metaJoiner", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Masthead.Style.Builder", + "params": [ + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "lineMargin", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Masthead.Style.Builder", + "params": [ + { + "type": "DocumentInsets", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Masthead.Style", + "params": [] + } + ] + }, + { + "name": "PartyIdentity", + "binaryName": "com.demcha.compose.document.templates.core.identity.PartyIdentity", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "displayName", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "tagline", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "contact", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Contact", + "params": [] + }, + { + "kind": "method", + "name": "links", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "Subheadline", + "binaryName": "com.demcha.compose.document.templates.core.identity.Subheadline", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "centeredSpacedCaps", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "style" + } + ] + } + ] + }, + { + "name": "SvgGlyph", + "binaryName": "com.demcha.compose.document.templates.core.identity.SvgGlyph", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "fromResource", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "SvgGlyph", + "params": [ + { + "type": "String", + "name": "resourcePath" + } + ] + }, + { + "kind": "method", + "name": "outline", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ShapeOutline", + "params": [ + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "aspectRatio", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.core.text", + "types": [ + { + "name": "MarkdownInline", + "binaryName": "com.demcha.compose.document.templates.core.text.MarkdownInline", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "append", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "RichText", + "name": "rich" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "baseStyle" + } + ] + }, + { + "kind": "method", + "name": "appendTrimmed", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "RichText", + "name": "rich" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "baseStyle" + } + ] + }, + { + "kind": "method", + "name": "appendTransformed", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "RichText", + "name": "rich" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "baseStyle" + }, + { + "type": "UnaryOperator", + "name": "displayTransform" + } + ] + }, + { + "kind": "method", + "name": "appendUpperCased", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "RichText", + "name": "rich" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "baseStyle" + } + ] + }, + { + "kind": "method", + "name": "appendPlainIfPresent", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "RichText", + "name": "rich" + }, + { + "type": "String", + "name": "prefix" + }, + { + "type": "String", + "name": "value" + }, + { + "type": "DocumentTextStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "appendIfPresent", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "RichText", + "name": "rich" + }, + { + "type": "String", + "name": "prefix" + }, + { + "type": "String", + "name": "value" + }, + { + "type": "DocumentTextStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "plainText", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [ + { + "type": "String", + "name": "value" + } + ] + } + ] + }, + { + "name": "MarkdownText", + "binaryName": "com.demcha.compose.document.templates.core.text.MarkdownText", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "parse", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [ + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "baseStyle" + } + ] + } + ] + }, + { + "name": "RichParagraphRenderer", + "binaryName": "com.demcha.compose.document.templates.core.text.RichParagraphRenderer", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "style" + }, + { + "type": "double", + "name": "lineSpacing" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "style" + }, + { + "type": "double", + "name": "lineSpacing" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "TextAlign", + "name": "align" + } + ] + } + ] + }, + { + "name": "TextOrnaments", + "binaryName": "com.demcha.compose.document.templates.core.text.TextOrnaments", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "spacedUpper", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [ + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "joinPipe", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [ + { + "type": "String...", + "name": "parts" + } + ] + } + ] + }, + { + "name": "TextStyles", + "binaryName": "com.demcha.compose.document.templates.core.text.TextStyles", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [ + { + "type": "FontName", + "name": "font" + }, + { + "type": "double", + "name": "size" + }, + { + "type": "DocumentTextDecoration", + "name": "decoration" + }, + { + "type": "DocumentColor", + "name": "color" + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.core.theme", + "types": [ + { + "name": "BrandTheme", + "binaryName": "com.demcha.compose.document.templates.core.theme.BrandTheme", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "BrandTheme", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "Palette", + "name": null + }, + { + "type": "Typography", + "name": null + }, + { + "type": "Spacing", + "name": null + }, + { + "type": "Decoration", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "BrandTheme", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "Palette", + "name": "palette" + }, + { + "type": "Typography", + "name": "typography" + }, + { + "type": "Spacing", + "name": "spacing" + } + ] + }, + { + "kind": "method", + "name": "boxedClassic", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "modernProfessional", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "centeredHeadline", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "classicSerif", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "nordicClean", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "compactMono", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "blueBanner", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "editorialBlue", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "sidebarPortrait", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "monogramSidebar", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "engineeringResume", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "timelineMinimal", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "panel", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "executive", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "mintEditorial", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "invoiceModern", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "proposalModern", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "BrandTheme", + "params": [] + }, + { + "kind": "method", + "name": "headlineStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "bannerStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "contactStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "contactSeparatorStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "bodyStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "bodyBoldStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "entryTitleStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "entryDateStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "entrySubtitleStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "palette", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Palette", + "params": [] + }, + { + "kind": "method", + "name": "typography", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "spacing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "decoration", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Decoration", + "params": [] + } + ] + }, + { + "name": "Decoration", + "binaryName": "com.demcha.compose.document.templates.core.theme.Decoration", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Decoration", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "classic", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Decoration", + "params": [] + }, + { + "kind": "method", + "name": "blueBanner", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Decoration", + "params": [] + }, + { + "kind": "method", + "name": "compactMono", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Decoration", + "params": [] + }, + { + "kind": "method", + "name": "bulletGlyph", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "stackedIndent", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "contactSeparator", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "Palette", + "binaryName": "com.demcha.compose.document.templates.core.theme.Palette", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Palette", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "Palette", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentColor", + "name": "ink" + }, + { + "type": "DocumentColor", + "name": "muted" + }, + { + "type": "DocumentColor", + "name": "rule" + }, + { + "type": "DocumentColor", + "name": "banner" + } + ] + }, + { + "kind": "method", + "name": "classic", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Palette", + "params": [] + }, + { + "kind": "method", + "name": "centeredHeadline", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Palette", + "params": [] + }, + { + "kind": "method", + "name": "classicSerif", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Palette", + "params": [] + }, + { + "kind": "method", + "name": "nordicClean", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Palette", + "params": [] + }, + { + "kind": "method", + "name": "compactMono", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Palette", + "params": [] + }, + { + "kind": "method", + "name": "blueBanner", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Palette", + "params": [] + }, + { + "kind": "method", + "name": "editorialBlue", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Palette", + "params": [] + }, + { + "kind": "method", + "name": "sidebarPortrait", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Palette", + "params": [] + }, + { + "kind": "method", + "name": "monogramSidebar", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Palette", + "params": [] + }, + { + "kind": "method", + "name": "engineeringResume", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Palette", + "params": [] + }, + { + "kind": "method", + "name": "timelineMinimal", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Palette", + "params": [] + }, + { + "kind": "method", + "name": "panel", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Palette", + "params": [] + }, + { + "kind": "method", + "name": "executive", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Palette", + "params": [] + }, + { + "kind": "method", + "name": "mintEditorial", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Palette", + "params": [] + }, + { + "kind": "method", + "name": "invoiceModern", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Palette", + "params": [] + }, + { + "kind": "method", + "name": "ink", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "muted", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "rule", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "banner", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "mainFill", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + } + ] + }, + { + "name": "Spacing", + "binaryName": "com.demcha.compose.document.templates.core.theme.Spacing", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Spacing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "Spacing", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": "pageFlowSpacing" + }, + { + "type": "double", + "name": "sectionBodySpacing" + }, + { + "type": "DocumentInsets", + "name": "sectionBodyPadding" + }, + { + "type": "DocumentInsets", + "name": "headlinePadding" + }, + { + "type": "DocumentInsets", + "name": "contactPadding" + }, + { + "type": "double", + "name": "bannerCornerRadius" + }, + { + "type": "double", + "name": "bannerInnerPadding" + }, + { + "type": "DocumentInsets", + "name": "bannerMargin" + }, + { + "type": "double", + "name": "accentRuleWidth" + }, + { + "type": "double", + "name": "paragraphMarginTop" + }, + { + "type": "double", + "name": "entryHeaderRowSpacing" + }, + { + "type": "double", + "name": "entryTitleWeight" + }, + { + "type": "double", + "name": "entryDateWeight" + } + ] + }, + { + "kind": "method", + "name": "classic", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "centeredHeadline", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "classicSerif", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "nordicClean", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "compactMono", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "modernProfessional", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "blueBanner", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "editorialBlue", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "sidebarPortrait", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "monogramSidebar", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "engineeringResume", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "timelineMinimal", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "panel", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "executive", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "mintEditorial", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "invoiceModern", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Spacing", + "params": [] + }, + { + "kind": "method", + "name": "pageFlowSpacing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "sectionBodySpacing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "sectionBodyPadding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "headlinePadding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "contactPadding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "bannerCornerRadius", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "bannerInnerPadding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "bannerMargin", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "accentRuleWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "paragraphMarginTop", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "entryHeaderRowSpacing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "entryTitleWeight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "entryDateWeight", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "entrySeparation", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "Typography", + "binaryName": "com.demcha.compose.document.templates.core.theme.Typography", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Typography", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "FontName", + "name": null + }, + { + "type": "FontName", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "classic", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "modernProfessional", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "centeredHeadline", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "classicSerif", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "nordicClean", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "compactMono", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "blueBanner", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "editorialBlue", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "sidebarPortrait", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "monogramSidebar", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "engineeringResume", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "timelineMinimal", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "panel", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "executive", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "mintEditorial", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "invoiceModern", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "proposalModern", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "Typography", + "params": [] + }, + { + "kind": "method", + "name": "headlineFont", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "FontName", + "params": [] + }, + { + "kind": "method", + "name": "bodyFont", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "FontName", + "params": [] + }, + { + "kind": "method", + "name": "sizeHeadline", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "sizeContact", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "sizeBanner", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "sizeEntryTitle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "sizeEntryDate", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "sizeEntrySubtitle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "sizeBody", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "bodyLineSpacing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.core.widgets", + "types": [ + { + "name": "AccentStrip", + "binaryName": "com.demcha.compose.document.templates.core.widgets.AccentStrip", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "left", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentNode", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "right", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentNode", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "top", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentNode", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "bottom", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentNode", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "rect", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentNode", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + } + ] + }, + { + "name": "CardWidget", + "binaryName": "com.demcha.compose.document.templates.core.widgets.CardWidget", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "parent" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "CardWidget.Style", + "name": "style" + }, + { + "type": "Consumer", + "name": "content" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PageFlowBuilder", + "name": "flow" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "CardWidget.Style", + "name": "style" + }, + { + "type": "Consumer", + "name": "content" + } + ] + } + ] + }, + { + "name": "CardWidget.Style", + "binaryName": "com.demcha.compose.document.templates.core.widgets.CardWidget$Style", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Style", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentCornerRadius", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "CardWidget.Style.Builder", + "params": [] + }, + { + "kind": "method", + "name": "spacing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentCornerRadius", + "params": [] + } + ] + }, + { + "name": "CardWidget.Style.Builder", + "binaryName": "com.demcha.compose.document.templates.core.widgets.CardWidget$Style$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "spacing", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CardWidget.Style.Builder", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CardWidget.Style.Builder", + "params": [ + { + "type": "DocumentInsets", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CardWidget.Style.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "stroke", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CardWidget.Style.Builder", + "params": [ + { + "type": "DocumentStroke", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CardWidget.Style.Builder", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CardWidget.Style.Builder", + "params": [ + { + "type": "DocumentCornerRadius", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CardWidget.Style", + "params": [] + } + ] + }, + { + "name": "Divider", + "binaryName": "com.demcha.compose.document.templates.core.widgets.Divider", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "THIN_THICKNESS", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "constant", + "name": "THICK_THICKNESS", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "thin", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentNode", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "thick", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentNode", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "dashed", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentNode", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "dottedAccent", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentNode", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "custom", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentNode", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "thickness" + } + ] + } + ] + }, + { + "name": "Spacer", + "binaryName": "com.demcha.compose.document.templates.core.widgets.Spacer", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "SMALL", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "constant", + "name": "MEDIUM", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "constant", + "name": "LARGE", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "small", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentNode", + "params": [] + }, + { + "kind": "method", + "name": "medium", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentNode", + "params": [] + }, + { + "kind": "method", + "name": "large", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentNode", + "params": [] + }, + { + "kind": "method", + "name": "height", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentNode", + "params": [ + { + "type": "double", + "name": "height" + } + ] + }, + { + "kind": "method", + "name": "size", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentNode", + "params": [ + { + "type": "double", + "name": "width" + }, + { + "type": "double", + "name": "height" + } + ] + } + ] + }, + { + "name": "TableWidget", + "binaryName": "com.demcha.compose.document.templates.core.widgets.TableWidget", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "fixed", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "List>", + "name": "rows" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "TableWidget.Style", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "grid", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "List", + "name": "cells" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "TableWidget.Style", + "name": "style" + } + ] + } + ] + }, + { + "name": "TableWidget.Style", + "binaryName": "com.demcha.compose.document.templates.core.widgets.TableWidget$Style", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Style", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "Double", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "TableWidget.Style.Builder", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "columns", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "cellPadding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "cellStroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "cellFillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "zebraFillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "textStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "lineSpacing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Double", + "params": [] + }, + { + "kind": "method", + "name": "widthAdjustment", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "TableWidget.Style.Builder", + "binaryName": "com.demcha.compose.document.templates.core.widgets.TableWidget$Style$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableWidget.Style.Builder", + "params": [ + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "columns", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableWidget.Style.Builder", + "params": [ + { + "type": "int", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "cellPadding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableWidget.Style.Builder", + "params": [ + { + "type": "DocumentInsets", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "border", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableWidget.Style.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "cellStroke", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableWidget.Style.Builder", + "params": [ + { + "type": "DocumentStroke", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "cellFillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableWidget.Style.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "zebraFillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableWidget.Style.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "textStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableWidget.Style.Builder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "lineSpacing", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableWidget.Style.Builder", + "params": [ + { + "type": "Double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "widthAdjustment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableWidget.Style.Builder", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TableWidget.Style", + "params": [] + } + ] + }, + { + "name": "TimelineAxisWidget", + "binaryName": "com.demcha.compose.document.templates.core.widgets.TimelineAxisWidget", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "TimelineAxisWidget.Style", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "TimelineAxisWidget.Style", + "name": "style" + }, + { + "type": "double", + "name": "totalHeight" + } + ] + } + ] + }, + { + "name": "TimelineAxisWidget.Marker", + "binaryName": "com.demcha.compose.document.templates.core.widgets.TimelineAxisWidget$Marker", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "CIRCLE", + "static": true, + "origin": "generated", + "type": "TimelineAxisWidget.Marker" + }, + { + "kind": "constant", + "name": "SQUARE", + "static": true, + "origin": "generated", + "type": "TimelineAxisWidget.Marker" + }, + { + "kind": "constant", + "name": "NONE", + "static": true, + "origin": "generated", + "type": "TimelineAxisWidget.Marker" + } + ] + }, + { + "name": "TimelineAxisWidget.Style", + "binaryName": "com.demcha.compose.document.templates.core.widgets.TimelineAxisWidget$Style", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Style", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "TimelineAxisWidget.Marker", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentStroke", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "TimelineAxisWidget.Style.Builder", + "params": [] + }, + { + "kind": "method", + "name": "toBuilder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineAxisWidget.Style.Builder", + "params": [] + }, + { + "kind": "method", + "name": "marker", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "TimelineAxisWidget.Marker", + "params": [] + }, + { + "kind": "method", + "name": "markerSize", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "markerFillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "markerStroke", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentStroke", + "params": [] + }, + { + "kind": "method", + "name": "segmentLength", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "segmentCount", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "lineColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "lineThickness", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + } + ] + }, + { + "name": "TimelineAxisWidget.Style.Builder", + "binaryName": "com.demcha.compose.document.templates.core.widgets.TimelineAxisWidget$Style$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "marker", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineAxisWidget.Style.Builder", + "params": [ + { + "type": "TimelineAxisWidget.Marker", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "markerSize", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineAxisWidget.Style.Builder", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "markerFillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineAxisWidget.Style.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "markerStroke", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineAxisWidget.Style.Builder", + "params": [ + { + "type": "DocumentStroke", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "segmentLength", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineAxisWidget.Style.Builder", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "segmentCount", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineAxisWidget.Style.Builder", + "params": [ + { + "type": "int", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "lineColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineAxisWidget.Style.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "lineThickness", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineAxisWidget.Style.Builder", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineAxisWidget.Style.Builder", + "params": [ + { + "type": "DocumentInsets", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "TimelineAxisWidget.Style", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.coverletter.components", + "types": [ + { + "name": "LetterBody", + "binaryName": "com.demcha.compose.document.templates.coverletter.components.LetterBody", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "CoverLetterDocument", + "name": "doc" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "CoverLetterDocument", + "name": "doc" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "double", + "name": "bodySize" + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.coverletter.data", + "types": [ + { + "name": "CoverLetterDocument", + "binaryName": "com.demcha.compose.document.templates.coverletter.data.CoverLetterDocument", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "CoverLetterDocument", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "CvIdentity", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "CoverLetterDocument.Builder", + "params": [] + }, + { + "kind": "method", + "name": "identity", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "CvIdentity", + "params": [] + }, + { + "kind": "method", + "name": "greeting", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "body", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "closing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "CoverLetterDocument.Builder", + "binaryName": "com.demcha.compose.document.templates.coverletter.data.CoverLetterDocument$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "identity", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CoverLetterDocument.Builder", + "params": [ + { + "type": "CvIdentity", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "greeting", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CoverLetterDocument.Builder", + "params": [ + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "paragraph", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CoverLetterDocument.Builder", + "params": [ + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "closing", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CoverLetterDocument.Builder", + "params": [ + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CoverLetterDocument", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.coverletter.presets", + "types": [ + { + "name": "BlueBannerLetter", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.BlueBannerLetter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "BoxedSectionsLetter", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.BoxedSectionsLetter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "CenteredHeadlineLetter", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.CenteredHeadlineLetter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "ClassicSerifLetter", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.ClassicSerifLetter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "CompactMonoLetter", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.CompactMonoLetter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "EditorialBlueLetter", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.EditorialBlueLetter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "EngineeringResumeLetter", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.EngineeringResumeLetter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "ExecutiveLetter", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.ExecutiveLetter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "MintEditorialLetter", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.MintEditorialLetter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "MintEditorialLetter.Options", + "name": "options" + } + ] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "MintEditorialLetter.Options", + "name": "options" + } + ] + } + ] + }, + { + "name": "MintEditorialLetter.Options", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.MintEditorialLetter$Options", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Options", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + } + ] + }, + { + "kind": "method", + "name": "defaults", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "MintEditorialLetter.Options", + "params": [] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "MintEditorialLetter.Options.Builder", + "params": [] + }, + { + "kind": "method", + "name": "accentColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "ruleColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "nameColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "headerBandColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + } + ] + }, + { + "name": "MintEditorialLetter.Options.Builder", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.MintEditorialLetter$Options$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "accentColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MintEditorialLetter.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "ruleColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MintEditorialLetter.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "nameColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MintEditorialLetter.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "headerBandColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MintEditorialLetter.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MintEditorialLetter.Options", + "params": [] + } + ] + }, + { + "name": "ModernProfessionalLetter", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.ModernProfessionalLetter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "MonogramSidebarLetter", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.MonogramSidebarLetter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "NordicCleanLetter", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.NordicCleanLetter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "PanelLetter", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.PanelLetter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "SidebarPortraitLetter", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.SidebarPortraitLetter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "TimelineMinimalLetter", + "binaryName": "com.demcha.compose.document.templates.coverletter.presets.TimelineMinimalLetter", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.cv.components", + "types": [ + { + "name": "EntryCompactRenderer", + "binaryName": "com.demcha.compose.document.templates.cv.components.EntryCompactRenderer", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "twoColumnTitleDateBody", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "CvEntry", + "name": "entry" + }, + { + "type": "String", + "name": "rowName" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + }, + { + "type": "DocumentTextStyle", + "name": "dateStyle" + }, + { + "type": "DocumentTextStyle", + "name": "subtitleStyle" + }, + { + "type": "DocumentTextStyle", + "name": "bodyStyle" + }, + { + "type": "double", + "name": "rowSpacing" + }, + { + "type": "double", + "name": "titleWeight" + }, + { + "type": "double", + "name": "dateWeight" + }, + { + "type": "DocumentInsets", + "name": "subtitleMargin" + }, + { + "type": "DocumentInsets", + "name": "bodyMargin" + }, + { + "type": "double", + "name": "bodyLineSpacing" + }, + { + "type": "boolean", + "name": "uppercaseTitle" + } + ] + }, + { + "kind": "method", + "name": "slashMeta", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "CvEntry", + "name": "entry" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + }, + { + "type": "DocumentTextStyle", + "name": "metaStyle" + }, + { + "type": "double", + "name": "lineSpacing" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "slashSubtitleDate", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "CvEntry", + "name": "entry" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + }, + { + "type": "DocumentTextStyle", + "name": "subtitleStyle" + }, + { + "type": "DocumentTextStyle", + "name": "dateStyle" + }, + { + "type": "double", + "name": "lineSpacing" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "titleDateBody", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "CvEntry", + "name": "entry" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + }, + { + "type": "DocumentTextStyle", + "name": "dateStyle" + }, + { + "type": "DocumentTextStyle", + "name": "subtitleStyle" + }, + { + "type": "DocumentTextStyle", + "name": "bodyStyle" + }, + { + "type": "String", + "name": "datePrefix" + }, + { + "type": "double", + "name": "headerLineSpacing" + }, + { + "type": "DocumentInsets", + "name": "headerMargin" + }, + { + "type": "DocumentInsets", + "name": "subtitleMargin" + }, + { + "type": "DocumentInsets", + "name": "bodyMargin" + }, + { + "type": "double", + "name": "bodyLineSpacing" + }, + { + "type": "boolean", + "name": "uppercaseTitle" + } + ] + }, + { + "kind": "method", + "name": "titleSubtitleDateBody", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "CvEntry", + "name": "entry" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + }, + { + "type": "DocumentTextStyle", + "name": "subtitleStyle" + }, + { + "type": "DocumentTextStyle", + "name": "dateStyle" + }, + { + "type": "DocumentTextStyle", + "name": "bodyStyle" + }, + { + "type": "String", + "name": "subtitlePrefix" + }, + { + "type": "String", + "name": "datePrefix" + }, + { + "type": "double", + "name": "headerLineSpacing" + }, + { + "type": "DocumentInsets", + "name": "headerMargin" + }, + { + "type": "DocumentInsets", + "name": "bodyMargin" + }, + { + "type": "double", + "name": "bodyLineSpacing" + } + ] + } + ] + }, + { + "name": "EntryRenderer", + "binaryName": "com.demcha.compose.document.templates.cv.components.EntryRenderer", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "section" + }, + { + "type": "CvEntry", + "name": "entry" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "LabelValueRenderer", + "binaryName": "com.demcha.compose.document.templates.cv.components.LabelValueRenderer", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "value" + }, + { + "type": "DocumentTextStyle", + "name": "labelStyle" + }, + { + "type": "DocumentTextStyle", + "name": "valueStyle" + }, + { + "type": "double", + "name": "lineSpacing" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + } + ] + }, + { + "name": "ParagraphRenderer", + "binaryName": "com.demcha.compose.document.templates.cv.components.ParagraphRenderer", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "section" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "ProjectLabel", + "binaryName": "com.demcha.compose.document.templates.cv.components.ProjectLabel", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProjectLabel", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "parse", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ProjectLabel", + "params": [ + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "stack", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ProjectRenderer", + "binaryName": "com.demcha.compose.document.templates.cv.components.ProjectRenderer", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "inline", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "CvRow", + "name": "row" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + }, + { + "type": "DocumentTextStyle", + "name": "stackStyle" + }, + { + "type": "DocumentTextStyle", + "name": "bodyStyle" + }, + { + "type": "double", + "name": "lineSpacing" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "plainInline", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "CvRow", + "name": "row" + }, + { + "type": "DocumentTextStyle", + "name": "labelStyle" + }, + { + "type": "DocumentTextStyle", + "name": "bodyStyle" + }, + { + "type": "double", + "name": "lineSpacing" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "String", + "name": "delimiter" + } + ] + }, + { + "kind": "method", + "name": "titleThenBody", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "CvRow", + "name": "row" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + }, + { + "type": "DocumentTextStyle", + "name": "stackStyle" + }, + { + "type": "DocumentTextStyle", + "name": "bodyStyle" + }, + { + "type": "double", + "name": "bodyLineSpacing" + }, + { + "type": "DocumentInsets", + "name": "titleMargin" + }, + { + "type": "DocumentInsets", + "name": "bodyMargin" + } + ] + } + ] + }, + { + "name": "RowRenderer", + "binaryName": "com.demcha.compose.document.templates.cv.components.RowRenderer", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "section" + }, + { + "type": "CvRow", + "name": "row" + }, + { + "type": "RowStyle", + "name": "style" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "SectionAllocation", + "binaryName": "com.demcha.compose.document.templates.cv.components.SectionAllocation", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "SectionAllocation", + "params": [ + { + "type": "List", + "name": "sections" + } + ] + }, + { + "kind": "method", + "name": "claim", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvSection", + "params": [ + { + "type": "List", + "name": "keys" + } + ] + }, + { + "kind": "method", + "name": "remaining", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "titleOr", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [ + { + "type": "CvSection", + "name": "section" + }, + { + "type": "String", + "name": "fallback" + } + ] + } + ] + }, + { + "name": "SectionDispatcher", + "binaryName": "com.demcha.compose.document.templates.cv.components.SectionDispatcher", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "renderBody", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "CvSection", + "name": "section" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "SectionLookup", + "binaryName": "com.demcha.compose.document.templates.cv.components.SectionLookup", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "firstMatching", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "CvSection", + "params": [ + { + "type": "List", + "name": "sections" + }, + { + "type": "List", + "name": "keys" + } + ] + }, + { + "kind": "method", + "name": "hasContent", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [ + { + "type": "CvSection", + "name": "section" + } + ] + }, + { + "kind": "method", + "name": "titleContains", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [ + { + "type": "String", + "name": "title" + }, + { + "type": "String", + "name": "key" + } + ] + }, + { + "kind": "method", + "name": "normalize", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [ + { + "type": "String", + "name": "value" + } + ] + } + ] + }, + { + "name": "SkillLineRenderer", + "binaryName": "com.demcha.compose.document.templates.cv.components.SkillLineRenderer", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "limitedInline", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "SkillGroup", + "name": "group" + }, + { + "type": "int", + "name": "limit" + }, + { + "type": "DocumentTextStyle", + "name": "labelStyle" + }, + { + "type": "DocumentTextStyle", + "name": "valueStyle" + }, + { + "type": "double", + "name": "lineSpacing" + }, + { + "type": "DocumentInsets", + "name": "margin" + }, + { + "type": "String", + "name": "labelSuffix" + } + ] + } + ] + }, + { + "name": "SkillsRenderer", + "binaryName": "com.demcha.compose.document.templates.cv.components.SkillsRenderer", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "section" + }, + { + "type": "SkillsSection", + "name": "skills" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "SkillTableRenderer", + "binaryName": "com.demcha.compose.document.templates.cv.components.SkillTableRenderer", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "grid", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "List", + "name": "groups" + }, + { + "type": "double", + "name": "width" + }, + { + "type": "TableWidget.Style", + "name": "style" + }, + { + "type": "String", + "name": "bulletPrefix" + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.cv.data", + "types": [ + { + "name": "CvDocument", + "binaryName": "com.demcha.compose.document.templates.cv.data.CvDocument", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "CvDocument", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "CvIdentity", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "ofMainSections", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "CvDocument", + "params": [ + { + "type": "CvIdentity", + "name": "identity" + }, + { + "type": "List", + "name": "sections" + } + ] + }, + { + "kind": "method", + "name": "sections", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "sectionsIn", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [ + { + "type": "Slot", + "name": "slot" + } + ] + }, + { + "kind": "method", + "name": "slotOf", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Slot", + "params": [ + { + "type": "CvSection", + "name": "section" + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "CvDocument.Builder", + "params": [] + }, + { + "kind": "method", + "name": "identity", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "CvIdentity", + "params": [] + }, + { + "kind": "method", + "name": "placements", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "CvDocument.Builder", + "binaryName": "com.demcha.compose.document.templates.cv.data.CvDocument$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "identity", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvDocument.Builder", + "params": [ + { + "type": "CvIdentity", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "section", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvDocument.Builder", + "params": [ + { + "type": "CvSection", + "name": "section" + } + ] + }, + { + "kind": "method", + "name": "section", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvDocument.Builder", + "params": [ + { + "type": "Slot", + "name": "slot" + }, + { + "type": "CvSection", + "name": "section" + } + ] + }, + { + "kind": "method", + "name": "sections", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvDocument.Builder", + "params": [ + { + "type": "CvSection...", + "name": "values" + } + ] + }, + { + "kind": "method", + "name": "sections", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvDocument.Builder", + "params": [ + { + "type": "Slot", + "name": "slot" + }, + { + "type": "CvSection...", + "name": "values" + } + ] + }, + { + "kind": "method", + "name": "sections", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvDocument.Builder", + "params": [ + { + "type": "List", + "name": "values" + } + ] + }, + { + "kind": "method", + "name": "placement", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvDocument.Builder", + "params": [ + { + "type": "CvDocument.Placement", + "name": "placement" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvDocument", + "params": [] + } + ] + }, + { + "name": "CvDocument.Placement", + "binaryName": "com.demcha.compose.document.templates.cv.data.CvDocument$Placement", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Placement", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "Slot", + "name": null + }, + { + "type": "CvSection", + "name": null + } + ] + }, + { + "kind": "method", + "name": "slot", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Slot", + "params": [] + }, + { + "kind": "method", + "name": "section", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "CvSection", + "params": [] + } + ] + }, + { + "name": "CvEntry", + "binaryName": "com.demcha.compose.document.templates.cv.data.CvEntry", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "CvEntry", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "subtitle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "date", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "body", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "CvIdentity", + "binaryName": "com.demcha.compose.document.templates.cv.data.CvIdentity", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "CvIdentity", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "CvName", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "Contact", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "constructor", + "name": "CvIdentity", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "CvName", + "name": "name" + }, + { + "type": "Contact", + "name": "contact" + }, + { + "type": "List", + "name": "links" + } + ] + }, + { + "kind": "method", + "name": "displayName", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "tagline", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "CvIdentity.Builder", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "CvName", + "params": [] + }, + { + "kind": "method", + "name": "jobTitle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "contact", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Contact", + "params": [] + }, + { + "kind": "method", + "name": "links", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "CvIdentity.Builder", + "binaryName": "com.demcha.compose.document.templates.cv.data.CvIdentity$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvIdentity.Builder", + "params": [ + { + "type": "CvName", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvIdentity.Builder", + "params": [ + { + "type": "String", + "name": "first" + }, + { + "type": "String", + "name": "last" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvIdentity.Builder", + "params": [ + { + "type": "String", + "name": "first" + }, + { + "type": "String", + "name": "middle" + }, + { + "type": "String", + "name": "last" + } + ] + }, + { + "kind": "method", + "name": "jobTitle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvIdentity.Builder", + "params": [ + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "contact", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvIdentity.Builder", + "params": [ + { + "type": "Contact", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "contact", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvIdentity.Builder", + "params": [ + { + "type": "String", + "name": "phone" + }, + { + "type": "String", + "name": "email" + }, + { + "type": "String", + "name": "address" + } + ] + }, + { + "kind": "method", + "name": "link", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvIdentity.Builder", + "params": [ + { + "type": "Link", + "name": "link" + } + ] + }, + { + "kind": "method", + "name": "link", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvIdentity.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "url" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "CvIdentity", + "params": [] + } + ] + }, + { + "name": "CvName", + "binaryName": "com.demcha.compose.document.templates.cv.data.CvName", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "CvName", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "CvName", + "params": [ + { + "type": "String", + "name": "first" + }, + { + "type": "String", + "name": "last" + } + ] + }, + { + "kind": "method", + "name": "middleName", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "Optional", + "params": [] + }, + { + "kind": "method", + "name": "full", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "first", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "middle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "last", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "CvRow", + "binaryName": "com.demcha.compose.document.templates.cv.data.CvRow", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "CvRow", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "body", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "CvSection", + "binaryName": "com.demcha.compose.document.templates.cv.data.CvSection", + "kind": "interface", + "modifiers": [], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "CvSkill", + "binaryName": "com.demcha.compose.document.templates.cv.data.CvSkill", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "CvSkill", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "OptionalDouble", + "name": null + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "CvSkill", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "CvSkill", + "params": [ + { + "type": "String", + "name": "name" + }, + { + "type": "double", + "name": "level" + } + ] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "level", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "OptionalDouble", + "params": [] + } + ] + }, + { + "name": "EntriesSection", + "binaryName": "com.demcha.compose.document.templates.cv.data.EntriesSection", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "EntriesSection", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "EntriesSection.Builder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "entries", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "EntriesSection.Builder", + "binaryName": "com.demcha.compose.document.templates.cv.data.EntriesSection$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "entry", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EntriesSection.Builder", + "params": [ + { + "type": "String", + "name": "title" + }, + { + "type": "String", + "name": "subtitle" + }, + { + "type": "String", + "name": "date" + }, + { + "type": "String", + "name": "body" + } + ] + }, + { + "kind": "method", + "name": "entry", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EntriesSection.Builder", + "params": [ + { + "type": "CvEntry", + "name": "entry" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "EntriesSection", + "params": [] + } + ] + }, + { + "name": "ParagraphSection", + "binaryName": "com.demcha.compose.document.templates.cv.data.ParagraphSection", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ParagraphSection", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "body", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "RowsSection", + "binaryName": "com.demcha.compose.document.templates.cv.data.RowsSection", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "RowsSection", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "RowStyle", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "RowsSection.Builder", + "params": [ + { + "type": "String", + "name": "title" + }, + { + "type": "RowStyle", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "rows", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "style", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "RowStyle", + "params": [] + } + ] + }, + { + "name": "RowsSection.Builder", + "binaryName": "com.demcha.compose.document.templates.cv.data.RowsSection$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "row", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowsSection.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "body" + } + ] + }, + { + "kind": "method", + "name": "row", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowsSection.Builder", + "params": [ + { + "type": "CvRow", + "name": "row" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "RowsSection", + "params": [] + } + ] + }, + { + "name": "RowStyle", + "binaryName": "com.demcha.compose.document.templates.cv.data.RowStyle", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "PLAIN", + "static": true, + "origin": "generated", + "type": "RowStyle" + }, + { + "kind": "constant", + "name": "BULLETED", + "static": true, + "origin": "generated", + "type": "RowStyle" + }, + { + "kind": "constant", + "name": "BULLETED_STACKED", + "static": true, + "origin": "generated", + "type": "RowStyle" + } + ] + }, + { + "name": "SkillGroup", + "binaryName": "com.demcha.compose.document.templates.cv.data.SkillGroup", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "SkillGroup", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "SkillGroup", + "params": [ + { + "type": "String", + "name": "category" + }, + { + "type": "String...", + "name": "skills" + } + ] + }, + { + "kind": "method", + "name": "ofNames", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "SkillGroup", + "params": [ + { + "type": "String", + "name": "category" + }, + { + "type": "List", + "name": "skills" + } + ] + }, + { + "kind": "method", + "name": "skills", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "skillsInline", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "category", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "entries", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "SkillsSection", + "binaryName": "com.demcha.compose.document.templates.cv.data.SkillsSection", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "SkillsSection", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "SkillsSection.Builder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "SkillsSection", + "params": [ + { + "type": "String", + "name": "title" + }, + { + "type": "SkillGroup...", + "name": "groups" + } + ] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "groups", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "SkillsSection.Builder", + "binaryName": "com.demcha.compose.document.templates.cv.data.SkillsSection$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "group", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SkillsSection.Builder", + "params": [ + { + "type": "SkillGroup", + "name": "group" + } + ] + }, + { + "kind": "method", + "name": "group", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SkillsSection.Builder", + "params": [ + { + "type": "String", + "name": "category" + }, + { + "type": "List", + "name": "skills" + } + ] + }, + { + "kind": "method", + "name": "group", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SkillsSection.Builder", + "params": [ + { + "type": "String", + "name": "category" + }, + { + "type": "String...", + "name": "skills" + } + ] + }, + { + "kind": "method", + "name": "leveledGroup", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SkillsSection.Builder", + "params": [ + { + "type": "String", + "name": "category" + }, + { + "type": "List", + "name": "entries" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SkillsSection", + "params": [] + } + ] + }, + { + "name": "Slot", + "binaryName": "com.demcha.compose.document.templates.cv.data.Slot", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "MAIN", + "static": true, + "origin": "generated", + "type": "Slot" + }, + { + "kind": "constant", + "name": "SIDEBAR", + "static": true, + "origin": "generated", + "type": "Slot" + }, + { + "kind": "constant", + "name": "FOOTER", + "static": true, + "origin": "generated", + "type": "Slot" + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.cv.presets", + "types": [ + { + "name": "BlueBanner", + "binaryName": "com.demcha.compose.document.templates.cv.presets.BlueBanner", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "BoxedSections", + "binaryName": "com.demcha.compose.document.templates.cv.presets.BoxedSections", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "CenteredHeadline", + "binaryName": "com.demcha.compose.document.templates.cv.presets.CenteredHeadline", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "ClassicSerif", + "binaryName": "com.demcha.compose.document.templates.cv.presets.ClassicSerif", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "CompactMono", + "binaryName": "com.demcha.compose.document.templates.cv.presets.CompactMono", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "EditorialBlue", + "binaryName": "com.demcha.compose.document.templates.cv.presets.EditorialBlue", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "EngineeringResume", + "binaryName": "com.demcha.compose.document.templates.cv.presets.EngineeringResume", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "Executive", + "binaryName": "com.demcha.compose.document.templates.cv.presets.Executive", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "MinimalUnderlined", + "binaryName": "com.demcha.compose.document.templates.cv.presets.MinimalUnderlined", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "MintEditorial", + "binaryName": "com.demcha.compose.document.templates.cv.presets.MintEditorial", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "MintEditorial.Options", + "name": "options" + } + ] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "MintEditorial.Options", + "name": "options" + } + ] + } + ] + }, + { + "name": "MintEditorial.Options", + "binaryName": "com.demcha.compose.document.templates.cv.presets.MintEditorial$Options", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Options", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + } + ] + }, + { + "kind": "method", + "name": "defaults", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "MintEditorial.Options", + "params": [] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "MintEditorial.Options.Builder", + "params": [] + }, + { + "kind": "method", + "name": "accentColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "ruleColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "nameColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "headerBandColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + } + ] + }, + { + "name": "MintEditorial.Options.Builder", + "binaryName": "com.demcha.compose.document.templates.cv.presets.MintEditorial$Options$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "accentColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MintEditorial.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "ruleColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MintEditorial.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "nameColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MintEditorial.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "headerBandColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MintEditorial.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MintEditorial.Options", + "params": [] + } + ] + }, + { + "name": "ModernProfessional", + "binaryName": "com.demcha.compose.document.templates.cv.presets.ModernProfessional", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "MonogramSidebar", + "binaryName": "com.demcha.compose.document.templates.cv.presets.MonogramSidebar", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "MonogramSidebar.Options", + "name": "options" + } + ] + } + ] + }, + { + "name": "MonogramSidebar.Options", + "binaryName": "com.demcha.compose.document.templates.cv.presets.MonogramSidebar$Options", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Options", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + } + ] + }, + { + "kind": "method", + "name": "defaults", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "MonogramSidebar.Options", + "params": [] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "MonogramSidebar.Options.Builder", + "params": [] + }, + { + "kind": "method", + "name": "sidebarFillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "mainFillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "accentColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "monogramRingColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + } + ] + }, + { + "name": "MonogramSidebar.Options.Builder", + "binaryName": "com.demcha.compose.document.templates.cv.presets.MonogramSidebar$Options$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "sidebarFillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MonogramSidebar.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "mainFillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MonogramSidebar.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "accentColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MonogramSidebar.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "monogramRingColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MonogramSidebar.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "MonogramSidebar.Options", + "params": [] + } + ] + }, + { + "name": "NordicClean", + "binaryName": "com.demcha.compose.document.templates.cv.presets.NordicClean", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "NordicClean.Options", + "name": "options" + } + ] + } + ] + }, + { + "name": "NordicClean.Options", + "binaryName": "com.demcha.compose.document.templates.cv.presets.NordicClean$Options", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Options", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "NordicClean.RailSide", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + } + ] + }, + { + "kind": "method", + "name": "defaults", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "NordicClean.Options", + "params": [] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "NordicClean.Options.Builder", + "params": [] + }, + { + "kind": "method", + "name": "railSide", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "NordicClean.RailSide", + "params": [] + }, + { + "kind": "method", + "name": "accentColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "railFillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "profileFillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + } + ] + }, + { + "name": "NordicClean.Options.Builder", + "binaryName": "com.demcha.compose.document.templates.cv.presets.NordicClean$Options$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "railSide", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "NordicClean.Options.Builder", + "params": [ + { + "type": "NordicClean.RailSide", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "accentColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "NordicClean.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "railFillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "NordicClean.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "profileFillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "NordicClean.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "NordicClean.Options", + "params": [] + } + ] + }, + { + "name": "NordicClean.RailSide", + "binaryName": "com.demcha.compose.document.templates.cv.presets.NordicClean$RailSide", + "kind": "enum", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "LEFT", + "static": true, + "origin": "generated", + "type": "NordicClean.RailSide" + }, + { + "kind": "constant", + "name": "RIGHT", + "static": true, + "origin": "generated", + "type": "NordicClean.RailSide" + } + ] + }, + { + "name": "Panel", + "binaryName": "com.demcha.compose.document.templates.cv.presets.Panel", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + }, + { + "name": "SidebarPortrait", + "binaryName": "com.demcha.compose.document.templates.cv.presets.SidebarPortrait", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "SidebarPortrait.Options", + "name": "options" + } + ] + } + ] + }, + { + "name": "SidebarPortrait.Options", + "binaryName": "com.demcha.compose.document.templates.cv.presets.SidebarPortrait$Options", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Options", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentColor", + "name": null + } + ] + }, + { + "kind": "method", + "name": "defaults", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "SidebarPortrait.Options", + "params": [] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "SidebarPortrait.Options.Builder", + "params": [] + }, + { + "kind": "method", + "name": "sidebarFillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "mainFillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "accentColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + } + ] + }, + { + "name": "SidebarPortrait.Options.Builder", + "binaryName": "com.demcha.compose.document.templates.cv.presets.SidebarPortrait$Options$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "sidebarFillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SidebarPortrait.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "mainFillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SidebarPortrait.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "accentColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SidebarPortrait.Options.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SidebarPortrait.Options", + "params": [] + } + ] + }, + { + "name": "TimelineMinimal", + "binaryName": "com.demcha.compose.document.templates.cv.presets.TimelineMinimal", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.cv.widgets", + "types": [ + { + "name": "FlowSectionHeader", + "binaryName": "com.demcha.compose.document.templates.cv.widgets.FlowSectionHeader", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "banner", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PageFlowBuilder", + "name": "flow" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "double", + "name": "ruleWidth" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + }, + { + "type": "DocumentInsets", + "name": "topRuleMargin" + }, + { + "type": "DocumentInsets", + "name": "bottomRuleMargin" + } + ] + }, + { + "kind": "method", + "name": "banner", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PageFlowBuilder", + "name": "flow" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "double", + "name": "ruleWidth" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + }, + { + "type": "DocumentColor", + "name": "ruleColor" + }, + { + "type": "DocumentInsets", + "name": "topRuleMargin" + }, + { + "type": "DocumentInsets", + "name": "bottomRuleMargin" + } + ] + }, + { + "kind": "method", + "name": "label", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PageFlowBuilder", + "name": "flow" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "double", + "name": "ruleWidth" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + }, + { + "type": "DocumentInsets", + "name": "topRuleMargin" + }, + { + "type": "DocumentInsets", + "name": "titlePadding" + }, + { + "type": "DocumentInsets", + "name": "bottomRuleMargin" + }, + { + "type": "boolean", + "name": "withTopRule" + } + ] + }, + { + "kind": "method", + "name": "label", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PageFlowBuilder", + "name": "flow" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "double", + "name": "ruleWidth" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + }, + { + "type": "DocumentColor", + "name": "ruleColor" + }, + { + "type": "DocumentInsets", + "name": "topRuleMargin" + }, + { + "type": "DocumentInsets", + "name": "titlePadding" + }, + { + "type": "DocumentInsets", + "name": "bottomRuleMargin" + }, + { + "type": "boolean", + "name": "withTopRule" + } + ] + } + ] + }, + { + "name": "IconTextRow", + "binaryName": "com.demcha.compose.document.templates.cv.widgets.IconTextRow", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "SvgGlyph", + "name": "glyph" + }, + { + "type": "DocumentColor", + "name": "glyphColor" + }, + { + "type": "double", + "name": "iconSize" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "style" + }, + { + "type": "DocumentLinkOptions", + "name": "link" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "DocumentImageData", + "name": "icon" + }, + { + "type": "double", + "name": "iconSize" + }, + { + "type": "String", + "name": "text" + }, + { + "type": "DocumentTextStyle", + "name": "style" + }, + { + "type": "DocumentLinkOptions", + "name": "link" + }, + { + "type": "DocumentInsets", + "name": "margin" + } + ] + } + ] + }, + { + "name": "ProfileBand", + "binaryName": "com.demcha.compose.document.templates.cv.widgets.ProfileBand", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "PageFlowBuilder", + "name": "flow" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "String", + "name": "body" + }, + { + "type": "ProfileBand.Style", + "name": "style" + } + ] + }, + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "String", + "name": "body" + }, + { + "type": "ProfileBand.Style", + "name": "style" + } + ] + } + ] + }, + { + "name": "ProfileBand.Style", + "binaryName": "com.demcha.compose.document.templates.cv.widgets.ProfileBand$Style", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "Style", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "double", + "name": null + }, + { + "type": "DocumentInsets", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "DocumentCornerRadius", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentColor", + "name": null + }, + { + "type": "double", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "TextAlign", + "name": null + }, + { + "type": "boolean", + "name": null + }, + { + "type": "DocumentTextStyle", + "name": null + }, + { + "type": "TextAlign", + "name": null + }, + { + "type": "double", + "name": null + } + ] + }, + { + "kind": "method", + "name": "defaults", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ProfileBand.Style", + "params": [] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ProfileBand.Style.Builder", + "params": [] + }, + { + "kind": "method", + "name": "spacing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentInsets", + "params": [] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentCornerRadius", + "params": [] + }, + { + "kind": "method", + "name": "accentLeftColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "accentLeftWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "accentTopColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "accentTopWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "accentBottomColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentColor", + "params": [] + }, + { + "kind": "method", + "name": "accentBottomWidth", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + }, + { + "kind": "method", + "name": "titleStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "titleAlign", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "TextAlign", + "params": [] + }, + { + "kind": "method", + "name": "transformTitle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "bodyStyle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "DocumentTextStyle", + "params": [] + }, + { + "kind": "method", + "name": "bodyAlign", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "TextAlign", + "params": [] + }, + { + "kind": "method", + "name": "bodyLineSpacing", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "double", + "params": [] + } + ] + }, + { + "name": "ProfileBand.Style.Builder", + "binaryName": "com.demcha.compose.document.templates.cv.widgets.ProfileBand$Style$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "spacing", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProfileBand.Style.Builder", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "padding", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProfileBand.Style.Builder", + "params": [ + { + "type": "DocumentInsets", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProfileBand.Style.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "cornerRadius", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProfileBand.Style.Builder", + "params": [ + { + "type": "DocumentCornerRadius", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "accentLeft", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProfileBand.Style.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "accentTop", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProfileBand.Style.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "accentBottom", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProfileBand.Style.Builder", + "params": [ + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "width" + } + ] + }, + { + "kind": "method", + "name": "titleStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProfileBand.Style.Builder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "titleAlign", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProfileBand.Style.Builder", + "params": [ + { + "type": "TextAlign", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "transformTitle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProfileBand.Style.Builder", + "params": [ + { + "type": "boolean", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "bodyStyle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProfileBand.Style.Builder", + "params": [ + { + "type": "DocumentTextStyle", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "bodyAlign", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProfileBand.Style.Builder", + "params": [ + { + "type": "TextAlign", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "bodyLineSpacing", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProfileBand.Style.Builder", + "params": [ + { + "type": "double", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProfileBand.Style", + "params": [] + } + ] + }, + { + "name": "SectionHeader", + "binaryName": "com.demcha.compose.document.templates.cv.widgets.SectionHeader", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "banner", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "fullWidthBanner", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "fullWidthBanner", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyleOverride" + } + ] + }, + { + "kind": "method", + "name": "underlined", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "flat", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + }, + { + "kind": "method", + "name": "flatSpacedCaps", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + } + ] + }, + { + "kind": "method", + "name": "tickLabel", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "tickWidth" + } + ] + }, + { + "kind": "method", + "name": "tickLabel", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "tickWidth" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + } + ] + }, + { + "kind": "method", + "name": "upperRule", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + }, + { + "type": "DocumentColor", + "name": "ruleColor" + }, + { + "type": "double", + "name": "ruleWidth" + } + ] + }, + { + "kind": "method", + "name": "spacedCapsRule", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + }, + { + "type": "DocumentColor", + "name": "ruleColor" + }, + { + "type": "double", + "name": "ruleWidth" + }, + { + "type": "double", + "name": "ruleThickness" + }, + { + "type": "DocumentInsets", + "name": "ruleMargin" + } + ] + } + ] + }, + { + "name": "SectionModule", + "binaryName": "com.demcha.compose.document.templates.cv.widgets.SectionModule", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "tick", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "parent" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentColor", + "name": "color" + }, + { + "type": "double", + "name": "tickWidth" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + }, + { + "type": "Consumer", + "name": "body" + } + ] + }, + { + "kind": "method", + "name": "upperRule", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "parent" + }, + { + "type": "String", + "name": "name" + }, + { + "type": "String", + "name": "title" + }, + { + "type": "BrandTheme", + "name": "theme" + }, + { + "type": "DocumentTextStyle", + "name": "titleStyle" + }, + { + "type": "DocumentColor", + "name": "ruleColor" + }, + { + "type": "double", + "name": "ruleWidth" + }, + { + "type": "Consumer", + "name": "body" + } + ] + } + ] + }, + { + "name": "SkillBar", + "binaryName": "com.demcha.compose.document.templates.cv.widgets.SkillBar", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "render", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "SectionBuilder", + "name": "host" + }, + { + "type": "CvSkill", + "name": "skill" + }, + { + "type": "double", + "name": "trackWidth" + }, + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.data.invoice", + "types": [ + { + "name": "InvoiceData", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceData", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "InvoiceData", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "InvoiceParty", + "name": null + }, + { + "type": "InvoiceParty", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "invoiceNumber", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "issueDate", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "dueDate", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "reference", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "status", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "fromParty", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InvoiceParty", + "params": [] + }, + { + "kind": "method", + "name": "billToParty", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InvoiceParty", + "params": [] + }, + { + "kind": "method", + "name": "lineItems", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "summaryRows", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "notes", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "paymentTerms", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "footerNote", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "InvoiceData.Builder", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceData$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "title", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "invoiceNumber", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "String", + "name": "invoiceNumber" + } + ] + }, + { + "kind": "method", + "name": "issueDate", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "String", + "name": "issueDate" + } + ] + }, + { + "kind": "method", + "name": "dueDate", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "String", + "name": "dueDate" + } + ] + }, + { + "kind": "method", + "name": "reference", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "String", + "name": "reference" + } + ] + }, + { + "kind": "method", + "name": "status", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "String", + "name": "status" + } + ] + }, + { + "kind": "method", + "name": "fromParty", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "InvoiceParty", + "name": "fromParty" + } + ] + }, + { + "kind": "method", + "name": "fromParty", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "billToParty", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "InvoiceParty", + "name": "billToParty" + } + ] + }, + { + "kind": "method", + "name": "billToParty", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "lineItems", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "List", + "name": "lineItems" + } + ] + }, + { + "kind": "method", + "name": "addLineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "InvoiceLineItem", + "name": "lineItem" + } + ] + }, + { + "kind": "method", + "name": "lineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "lineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "String", + "name": "description" + }, + { + "type": "String", + "name": "details" + }, + { + "type": "String", + "name": "quantity" + }, + { + "type": "String", + "name": "unitPrice" + }, + { + "type": "String", + "name": "amount" + } + ] + }, + { + "kind": "method", + "name": "summaryRows", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "List", + "name": "summaryRows" + } + ] + }, + { + "kind": "method", + "name": "addSummaryRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "InvoiceSummaryRow", + "name": "summaryRow" + } + ] + }, + { + "kind": "method", + "name": "summaryRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "summaryRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "totalRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "notes", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "List", + "name": "notes" + } + ] + }, + { + "kind": "method", + "name": "note", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "String", + "name": "note" + } + ] + }, + { + "kind": "method", + "name": "paymentTerms", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "List", + "name": "paymentTerms" + } + ] + }, + { + "kind": "method", + "name": "paymentTerm", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "String", + "name": "paymentTerm" + } + ] + }, + { + "kind": "method", + "name": "footerNote", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData.Builder", + "params": [ + { + "type": "String", + "name": "footerNote" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceData", + "params": [] + } + ] + }, + { + "name": "InvoiceDocumentSpec", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "InvoiceDocumentSpec", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "InvoiceData", + "name": null + } + ] + }, + { + "kind": "method", + "name": "from", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec", + "params": [ + { + "type": "InvoiceData", + "name": "invoice" + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [] + }, + { + "kind": "method", + "name": "invoice", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "InvoiceData", + "params": [] + } + ] + }, + { + "name": "InvoiceDocumentSpec.Builder", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "title", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "invoiceNumber", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "invoiceNumber" + } + ] + }, + { + "kind": "method", + "name": "issueDate", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "issueDate" + } + ] + }, + { + "kind": "method", + "name": "dueDate", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "dueDate" + } + ] + }, + { + "kind": "method", + "name": "reference", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "reference" + } + ] + }, + { + "kind": "method", + "name": "status", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "status" + } + ] + }, + { + "kind": "method", + "name": "fromParty", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "InvoiceParty", + "name": "fromParty" + } + ] + }, + { + "kind": "method", + "name": "fromParty", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "billToParty", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "InvoiceParty", + "name": "billToParty" + } + ] + }, + { + "kind": "method", + "name": "billToParty", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "lineItems", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "lineItems" + } + ] + }, + { + "kind": "method", + "name": "addLineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "InvoiceLineItem", + "name": "lineItem" + } + ] + }, + { + "kind": "method", + "name": "lineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "lineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "description" + }, + { + "type": "String", + "name": "details" + }, + { + "type": "String", + "name": "quantity" + }, + { + "type": "String", + "name": "unitPrice" + }, + { + "type": "String", + "name": "amount" + } + ] + }, + { + "kind": "method", + "name": "summaryRows", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "summaryRows" + } + ] + }, + { + "kind": "method", + "name": "addSummaryRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "InvoiceSummaryRow", + "name": "summaryRow" + } + ] + }, + { + "kind": "method", + "name": "summaryRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "summaryRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "totalRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "notes", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "notes" + } + ] + }, + { + "kind": "method", + "name": "note", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "note" + } + ] + }, + { + "kind": "method", + "name": "paymentTerms", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "paymentTerms" + } + ] + }, + { + "kind": "method", + "name": "paymentTerm", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "paymentTerm" + } + ] + }, + { + "kind": "method", + "name": "footerNote", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "footerNote" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceDocumentSpec", + "params": [] + } + ] + }, + { + "name": "InvoiceLineItem", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceLineItem", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "InvoiceLineItem", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceLineItem.Builder", + "params": [] + }, + { + "kind": "method", + "name": "description", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "details", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "quantity", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "unitPrice", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "amount", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "InvoiceLineItem.Builder", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceLineItem$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "description", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceLineItem.Builder", + "params": [ + { + "type": "String", + "name": "description" + } + ] + }, + { + "kind": "method", + "name": "details", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceLineItem.Builder", + "params": [ + { + "type": "String", + "name": "details" + } + ] + }, + { + "kind": "method", + "name": "quantity", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceLineItem.Builder", + "params": [ + { + "type": "String", + "name": "quantity" + } + ] + }, + { + "kind": "method", + "name": "unitPrice", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceLineItem.Builder", + "params": [ + { + "type": "String", + "name": "unitPrice" + } + ] + }, + { + "kind": "method", + "name": "amount", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceLineItem.Builder", + "params": [ + { + "type": "String", + "name": "amount" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceLineItem", + "params": [] + } + ] + }, + { + "name": "InvoiceParty", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceParty", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "InvoiceParty", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceParty.Builder", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "addressLines", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "email", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "phone", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "taxId", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "InvoiceParty.Builder", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceParty$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceParty.Builder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "addressLines", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceParty.Builder", + "params": [ + { + "type": "List", + "name": "addressLines" + } + ] + }, + { + "kind": "method", + "name": "addressLines", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceParty.Builder", + "params": [ + { + "type": "String...", + "name": "addressLines" + } + ] + }, + { + "kind": "method", + "name": "addAddressLine", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceParty.Builder", + "params": [ + { + "type": "String", + "name": "addressLine" + } + ] + }, + { + "kind": "method", + "name": "email", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceParty.Builder", + "params": [ + { + "type": "String", + "name": "email" + } + ] + }, + { + "kind": "method", + "name": "phone", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceParty.Builder", + "params": [ + { + "type": "String", + "name": "phone" + } + ] + }, + { + "kind": "method", + "name": "taxId", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceParty.Builder", + "params": [ + { + "type": "String", + "name": "taxId" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceParty", + "params": [] + } + ] + }, + { + "name": "InvoiceSummaryRow", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceSummaryRow", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "InvoiceSummaryRow", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceSummaryRow.Builder", + "params": [] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "value", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "emphasized", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + } + ] + }, + { + "name": "InvoiceSummaryRow.Builder", + "binaryName": "com.demcha.compose.document.templates.data.invoice.InvoiceSummaryRow$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "label", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceSummaryRow.Builder", + "params": [ + { + "type": "String", + "name": "label" + } + ] + }, + { + "kind": "method", + "name": "value", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceSummaryRow.Builder", + "params": [ + { + "type": "String", + "name": "value" + } + ] + }, + { + "kind": "method", + "name": "emphasized", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceSummaryRow.Builder", + "params": [ + { + "type": "boolean", + "name": "emphasized" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "InvoiceSummaryRow", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.data.proposal", + "types": [ + { + "name": "ProposalData", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalData", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalData", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "ProposalParty", + "name": null + }, + { + "type": "ProposalParty", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "proposalNumber", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "preparedDate", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "validUntil", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "projectTitle", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "executiveSummary", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "sender", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ProposalParty", + "params": [] + }, + { + "kind": "method", + "name": "recipient", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ProposalParty", + "params": [] + }, + { + "kind": "method", + "name": "sections", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "timeline", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "pricingRows", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "acceptanceTerms", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "footerNote", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ProposalData.Builder", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalData$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "title", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "proposalNumber", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "proposalNumber" + } + ] + }, + { + "kind": "method", + "name": "preparedDate", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "preparedDate" + } + ] + }, + { + "kind": "method", + "name": "validUntil", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "validUntil" + } + ] + }, + { + "kind": "method", + "name": "projectTitle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "projectTitle" + } + ] + }, + { + "kind": "method", + "name": "executiveSummary", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "executiveSummary" + } + ] + }, + { + "kind": "method", + "name": "sender", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "ProposalParty", + "name": "sender" + } + ] + }, + { + "kind": "method", + "name": "sender", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "recipient", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "ProposalParty", + "name": "recipient" + } + ] + }, + { + "kind": "method", + "name": "recipient", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "sections", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "List", + "name": "sections" + } + ] + }, + { + "kind": "method", + "name": "addSection", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "ProposalSection", + "name": "section" + } + ] + }, + { + "kind": "method", + "name": "section", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "section", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "title" + }, + { + "type": "String...", + "name": "paragraphs" + } + ] + }, + { + "kind": "method", + "name": "timeline", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "List", + "name": "timeline" + } + ] + }, + { + "kind": "method", + "name": "addTimelineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "ProposalTimelineItem", + "name": "item" + } + ] + }, + { + "kind": "method", + "name": "timelineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "timelineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "phase" + }, + { + "type": "String", + "name": "duration" + }, + { + "type": "String", + "name": "details" + } + ] + }, + { + "kind": "method", + "name": "pricingRows", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "List", + "name": "pricingRows" + } + ] + }, + { + "kind": "method", + "name": "addPricingRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "ProposalPricingRow", + "name": "pricingRow" + } + ] + }, + { + "kind": "method", + "name": "pricingRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "pricingRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "description" + }, + { + "type": "String", + "name": "amount" + } + ] + }, + { + "kind": "method", + "name": "emphasizedPricingRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "description" + }, + { + "type": "String", + "name": "amount" + } + ] + }, + { + "kind": "method", + "name": "acceptanceTerms", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "List", + "name": "acceptanceTerms" + } + ] + }, + { + "kind": "method", + "name": "acceptanceTerm", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "acceptanceTerm" + } + ] + }, + { + "kind": "method", + "name": "footerNote", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData.Builder", + "params": [ + { + "type": "String", + "name": "footerNote" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalData", + "params": [] + } + ] + }, + { + "name": "ProposalDocumentSpec", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalDocumentSpec", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalDocumentSpec", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "ProposalData", + "name": null + } + ] + }, + { + "kind": "method", + "name": "from", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec", + "params": [ + { + "type": "ProposalData", + "name": "proposal" + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [] + }, + { + "kind": "method", + "name": "proposal", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "ProposalData", + "params": [] + } + ] + }, + { + "name": "ProposalDocumentSpec.Builder", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalDocumentSpec$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "title", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "proposalNumber", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "proposalNumber" + } + ] + }, + { + "kind": "method", + "name": "preparedDate", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "preparedDate" + } + ] + }, + { + "kind": "method", + "name": "validUntil", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "validUntil" + } + ] + }, + { + "kind": "method", + "name": "projectTitle", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "projectTitle" + } + ] + }, + { + "kind": "method", + "name": "executiveSummary", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "executiveSummary" + } + ] + }, + { + "kind": "method", + "name": "sender", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "ProposalParty", + "name": "sender" + } + ] + }, + { + "kind": "method", + "name": "sender", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "recipient", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "ProposalParty", + "name": "recipient" + } + ] + }, + { + "kind": "method", + "name": "recipient", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "sections", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "sections" + } + ] + }, + { + "kind": "method", + "name": "addSection", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "ProposalSection", + "name": "section" + } + ] + }, + { + "kind": "method", + "name": "section", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "section", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "title" + }, + { + "type": "String...", + "name": "paragraphs" + } + ] + }, + { + "kind": "method", + "name": "timeline", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "timeline" + } + ] + }, + { + "kind": "method", + "name": "addTimelineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "ProposalTimelineItem", + "name": "item" + } + ] + }, + { + "kind": "method", + "name": "timelineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "timelineItem", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "phase" + }, + { + "type": "String", + "name": "duration" + }, + { + "type": "String", + "name": "details" + } + ] + }, + { + "kind": "method", + "name": "pricingRows", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "pricingRows" + } + ] + }, + { + "kind": "method", + "name": "addPricingRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "ProposalPricingRow", + "name": "pricingRow" + } + ] + }, + { + "kind": "method", + "name": "pricingRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "pricingRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "description" + }, + { + "type": "String", + "name": "amount" + } + ] + }, + { + "kind": "method", + "name": "emphasizedPricingRow", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "description" + }, + { + "type": "String", + "name": "amount" + } + ] + }, + { + "kind": "method", + "name": "acceptanceTerms", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "acceptanceTerms" + } + ] + }, + { + "kind": "method", + "name": "acceptanceTerm", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "acceptanceTerm" + } + ] + }, + { + "kind": "method", + "name": "footerNote", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "footerNote" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalDocumentSpec", + "params": [] + } + ] + }, + { + "name": "ProposalParty", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalParty", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalParty", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ProposalParty.Builder", + "params": [] + }, + { + "kind": "method", + "name": "name", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "addressLines", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "email", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "phone", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "website", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ProposalParty.Builder", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalParty$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "name", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalParty.Builder", + "params": [ + { + "type": "String", + "name": "name" + } + ] + }, + { + "kind": "method", + "name": "addressLines", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalParty.Builder", + "params": [ + { + "type": "List", + "name": "addressLines" + } + ] + }, + { + "kind": "method", + "name": "addressLines", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalParty.Builder", + "params": [ + { + "type": "String...", + "name": "addressLines" + } + ] + }, + { + "kind": "method", + "name": "addAddressLine", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalParty.Builder", + "params": [ + { + "type": "String", + "name": "addressLine" + } + ] + }, + { + "kind": "method", + "name": "email", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalParty.Builder", + "params": [ + { + "type": "String", + "name": "email" + } + ] + }, + { + "kind": "method", + "name": "phone", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalParty.Builder", + "params": [ + { + "type": "String", + "name": "phone" + } + ] + }, + { + "kind": "method", + "name": "website", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalParty.Builder", + "params": [ + { + "type": "String", + "name": "website" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalParty", + "params": [] + } + ] + }, + { + "name": "ProposalPricingRow", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalPricingRow", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalPricingRow", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "boolean", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ProposalPricingRow.Builder", + "params": [] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "description", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "amount", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "emphasized", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + } + ] + }, + { + "name": "ProposalPricingRow.Builder", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalPricingRow$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "label", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalPricingRow.Builder", + "params": [ + { + "type": "String", + "name": "label" + } + ] + }, + { + "kind": "method", + "name": "description", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalPricingRow.Builder", + "params": [ + { + "type": "String", + "name": "description" + } + ] + }, + { + "kind": "method", + "name": "amount", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalPricingRow.Builder", + "params": [ + { + "type": "String", + "name": "amount" + } + ] + }, + { + "kind": "method", + "name": "emphasized", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalPricingRow.Builder", + "params": [ + { + "type": "boolean", + "name": "emphasized" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalPricingRow", + "params": [] + } + ] + }, + { + "name": "ProposalSection", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalSection", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalSection", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ProposalSection.Builder", + "params": [] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "paragraphs", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "ProposalSection.Builder", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalSection$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "title", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalSection.Builder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "paragraphs", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalSection.Builder", + "params": [ + { + "type": "List", + "name": "paragraphs" + } + ] + }, + { + "kind": "method", + "name": "paragraphs", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalSection.Builder", + "params": [ + { + "type": "String...", + "name": "paragraphs" + } + ] + }, + { + "kind": "method", + "name": "addParagraph", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalSection.Builder", + "params": [ + { + "type": "String", + "name": "paragraph" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalSection", + "params": [] + } + ] + }, + { + "name": "ProposalTimelineItem", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalTimelineItem", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ProposalTimelineItem", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ProposalTimelineItem.Builder", + "params": [] + }, + { + "kind": "method", + "name": "phase", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "duration", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "details", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ProposalTimelineItem.Builder", + "binaryName": "com.demcha.compose.document.templates.data.proposal.ProposalTimelineItem$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "phase", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalTimelineItem.Builder", + "params": [ + { + "type": "String", + "name": "phase" + } + ] + }, + { + "kind": "method", + "name": "duration", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalTimelineItem.Builder", + "params": [ + { + "type": "String", + "name": "duration" + } + ] + }, + { + "kind": "method", + "name": "details", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalTimelineItem.Builder", + "params": [ + { + "type": "String", + "name": "details" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ProposalTimelineItem", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.data.schedule", + "types": [ + { + "name": "ScheduleAssignment", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleAssignment", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ScheduleAssignment", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleAssignment.Builder", + "params": [] + }, + { + "kind": "method", + "name": "personId", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "dayId", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "categoryId", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "slots", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "note", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ScheduleAssignment.Builder", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleAssignment$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "personId", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleAssignment.Builder", + "params": [ + { + "type": "String", + "name": "personId" + } + ] + }, + { + "kind": "method", + "name": "dayId", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleAssignment.Builder", + "params": [ + { + "type": "String", + "name": "dayId" + } + ] + }, + { + "kind": "method", + "name": "categoryId", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleAssignment.Builder", + "params": [ + { + "type": "String", + "name": "categoryId" + } + ] + }, + { + "kind": "method", + "name": "slots", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleAssignment.Builder", + "params": [ + { + "type": "List", + "name": "slots" + } + ] + }, + { + "kind": "method", + "name": "slots", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleAssignment.Builder", + "params": [ + { + "type": "ScheduleSlot...", + "name": "slots" + } + ] + }, + { + "kind": "method", + "name": "addSlot", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleAssignment.Builder", + "params": [ + { + "type": "ScheduleSlot", + "name": "slot" + } + ] + }, + { + "kind": "method", + "name": "slot", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleAssignment.Builder", + "params": [ + { + "type": "String", + "name": "start" + }, + { + "type": "String", + "name": "end" + } + ] + }, + { + "kind": "method", + "name": "note", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleAssignment.Builder", + "params": [ + { + "type": "String", + "name": "note" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleAssignment", + "params": [] + } + ] + }, + { + "name": "ScheduleCategory", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleCategory", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ScheduleCategory", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "Color", + "name": null + }, + { + "type": "Color", + "name": null + }, + { + "type": "Color", + "name": null + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleCategory", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "label" + }, + { + "type": "Color", + "name": "fillColor" + }, + { + "type": "Color", + "name": "borderColor" + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleCategory", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "label" + }, + { + "type": "Color", + "name": "fillColor" + }, + { + "type": "Color", + "name": "textColor" + }, + { + "type": "Color", + "name": "borderColor" + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleCategory.Builder", + "params": [] + }, + { + "kind": "method", + "name": "id", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Color", + "params": [] + }, + { + "kind": "method", + "name": "textColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Color", + "params": [] + }, + { + "kind": "method", + "name": "borderColor", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "Color", + "params": [] + } + ] + }, + { + "name": "ScheduleCategory.Builder", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleCategory$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "id", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleCategory.Builder", + "params": [ + { + "type": "String", + "name": "id" + } + ] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleCategory.Builder", + "params": [ + { + "type": "String", + "name": "label" + } + ] + }, + { + "kind": "method", + "name": "fillColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleCategory.Builder", + "params": [ + { + "type": "Color", + "name": "fillColor" + } + ] + }, + { + "kind": "method", + "name": "textColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleCategory.Builder", + "params": [ + { + "type": "Color", + "name": "textColor" + } + ] + }, + { + "kind": "method", + "name": "borderColor", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleCategory.Builder", + "params": [ + { + "type": "Color", + "name": "borderColor" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleCategory", + "params": [] + } + ] + }, + { + "name": "ScheduleDay", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleDay", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ScheduleDay", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleDay", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "headerNote" + }, + { + "type": "String", + "name": "headerCategoryId" + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleDay.Builder", + "params": [] + }, + { + "kind": "method", + "name": "id", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "headerNote", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "headerCategoryId", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ScheduleDay.Builder", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleDay$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "id", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleDay.Builder", + "params": [ + { + "type": "String", + "name": "id" + } + ] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleDay.Builder", + "params": [ + { + "type": "String", + "name": "label" + } + ] + }, + { + "kind": "method", + "name": "headerNote", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleDay.Builder", + "params": [ + { + "type": "String", + "name": "headerNote" + } + ] + }, + { + "kind": "method", + "name": "headerCategoryId", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleDay.Builder", + "params": [ + { + "type": "String", + "name": "headerCategoryId" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleDay", + "params": [] + } + ] + }, + { + "name": "ScheduleMetricRow", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleMetricRow", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ScheduleMetricRow", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleMetricRow", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String...", + "name": "dayValues" + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleMetricRow.Builder", + "params": [] + }, + { + "kind": "method", + "name": "label", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "dayValues", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "ScheduleMetricRow.Builder", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleMetricRow$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "label", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleMetricRow.Builder", + "params": [ + { + "type": "String", + "name": "label" + } + ] + }, + { + "kind": "method", + "name": "dayValues", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleMetricRow.Builder", + "params": [ + { + "type": "List", + "name": "dayValues" + } + ] + }, + { + "kind": "method", + "name": "dayValues", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleMetricRow.Builder", + "params": [ + { + "type": "String...", + "name": "dayValues" + } + ] + }, + { + "kind": "method", + "name": "addDayValue", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleMetricRow.Builder", + "params": [ + { + "type": "String", + "name": "dayValue" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleMetricRow", + "params": [] + } + ] + }, + { + "name": "SchedulePerson", + "binaryName": "com.demcha.compose.document.templates.data.schedule.SchedulePerson", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "SchedulePerson", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "int", + "name": null + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "SchedulePerson", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "displayName" + }, + { + "type": "int", + "name": "sortOrder" + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "SchedulePerson.Builder", + "params": [] + }, + { + "kind": "method", + "name": "id", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "displayName", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "sortOrder", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + } + ] + }, + { + "name": "SchedulePerson.Builder", + "binaryName": "com.demcha.compose.document.templates.data.schedule.SchedulePerson$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "id", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SchedulePerson.Builder", + "params": [ + { + "type": "String", + "name": "id" + } + ] + }, + { + "kind": "method", + "name": "displayName", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SchedulePerson.Builder", + "params": [ + { + "type": "String", + "name": "displayName" + } + ] + }, + { + "kind": "method", + "name": "sortOrder", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SchedulePerson.Builder", + "params": [ + { + "type": "int", + "name": "sortOrder" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "SchedulePerson", + "params": [] + } + ] + }, + { + "name": "ScheduleSlot", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleSlot", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "ScheduleSlot", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + } + ] + }, + { + "kind": "method", + "name": "of", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleSlot", + "params": [ + { + "type": "String", + "name": "start" + }, + { + "type": "String", + "name": "end" + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleSlot.Builder", + "params": [] + }, + { + "kind": "method", + "name": "displayText", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "start", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "end", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + } + ] + }, + { + "name": "ScheduleSlot.Builder", + "binaryName": "com.demcha.compose.document.templates.data.schedule.ScheduleSlot$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "start", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleSlot.Builder", + "params": [ + { + "type": "String", + "name": "start" + } + ] + }, + { + "kind": "method", + "name": "end", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleSlot.Builder", + "params": [ + { + "type": "String", + "name": "end" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "ScheduleSlot", + "params": [] + } + ] + }, + { + "name": "WeeklyScheduleData", + "binaryName": "com.demcha.compose.document.templates.data.schedule.WeeklyScheduleData", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "WeeklyScheduleData", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "String", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + }, + { + "type": "List", + "name": null + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [] + }, + { + "kind": "method", + "name": "title", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "weekLabel", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "days", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "categories", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "headerMetrics", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "people", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "assignments", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + }, + { + "kind": "method", + "name": "footerNotes", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "List", + "params": [] + } + ] + }, + { + "name": "WeeklyScheduleData.Builder", + "binaryName": "com.demcha.compose.document.templates.data.schedule.WeeklyScheduleData$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "title", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "weekLabel", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "weekLabel" + } + ] + }, + { + "kind": "method", + "name": "days", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "List", + "name": "days" + } + ] + }, + { + "kind": "method", + "name": "addDay", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "ScheduleDay", + "name": "day" + } + ] + }, + { + "kind": "method", + "name": "day", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "day", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "headerNote" + }, + { + "type": "String", + "name": "headerCategoryId" + } + ] + }, + { + "kind": "method", + "name": "categories", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "List", + "name": "categories" + } + ] + }, + { + "kind": "method", + "name": "addCategory", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "ScheduleCategory", + "name": "category" + } + ] + }, + { + "kind": "method", + "name": "category", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "category", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "label" + }, + { + "type": "Color", + "name": "fillColor" + }, + { + "type": "Color", + "name": "borderColor" + } + ] + }, + { + "kind": "method", + "name": "category", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "label" + }, + { + "type": "Color", + "name": "fillColor" + }, + { + "type": "Color", + "name": "textColor" + }, + { + "type": "Color", + "name": "borderColor" + } + ] + }, + { + "kind": "method", + "name": "headerMetrics", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "List", + "name": "headerMetrics" + } + ] + }, + { + "kind": "method", + "name": "addHeaderMetric", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "ScheduleMetricRow", + "name": "headerMetric" + } + ] + }, + { + "kind": "method", + "name": "headerMetric", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "headerMetric", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "List", + "name": "dayValues" + } + ] + }, + { + "kind": "method", + "name": "headerMetric", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String...", + "name": "dayValues" + } + ] + }, + { + "kind": "method", + "name": "people", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "List", + "name": "people" + } + ] + }, + { + "kind": "method", + "name": "addPerson", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "SchedulePerson", + "name": "person" + } + ] + }, + { + "kind": "method", + "name": "person", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "person", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "displayName" + }, + { + "type": "int", + "name": "sortOrder" + } + ] + }, + { + "kind": "method", + "name": "assignments", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "List", + "name": "assignments" + } + ] + }, + { + "kind": "method", + "name": "addAssignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "ScheduleAssignment", + "name": "assignment" + } + ] + }, + { + "kind": "method", + "name": "assignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "assignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "personId" + }, + { + "type": "String", + "name": "dayId" + }, + { + "type": "String", + "name": "categoryId" + }, + { + "type": "ScheduleSlot...", + "name": "slots" + } + ] + }, + { + "kind": "method", + "name": "assignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "personId" + }, + { + "type": "String", + "name": "dayId" + }, + { + "type": "String", + "name": "categoryId" + }, + { + "type": "List", + "name": "slots" + }, + { + "type": "String", + "name": "note" + } + ] + }, + { + "kind": "method", + "name": "footerNotes", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "List", + "name": "footerNotes" + } + ] + }, + { + "kind": "method", + "name": "footerNote", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData.Builder", + "params": [ + { + "type": "String", + "name": "footerNote" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleData", + "params": [] + } + ] + }, + { + "name": "WeeklyScheduleDocumentSpec", + "binaryName": "com.demcha.compose.document.templates.data.schedule.WeeklyScheduleDocumentSpec", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constructor", + "name": "WeeklyScheduleDocumentSpec", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "WeeklyScheduleData", + "name": null + } + ] + }, + { + "kind": "method", + "name": "from", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec", + "params": [ + { + "type": "WeeklyScheduleData", + "name": "schedule" + } + ] + }, + { + "kind": "method", + "name": "builder", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [] + }, + { + "kind": "method", + "name": "schedule", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "WeeklyScheduleData", + "params": [] + } + ] + }, + { + "name": "WeeklyScheduleDocumentSpec.Builder", + "binaryName": "com.demcha.compose.document.templates.data.schedule.WeeklyScheduleDocumentSpec$Builder", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "method", + "name": "title", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "title" + } + ] + }, + { + "kind": "method", + "name": "weekLabel", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "weekLabel" + } + ] + }, + { + "kind": "method", + "name": "days", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "days" + } + ] + }, + { + "kind": "method", + "name": "addDay", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "ScheduleDay", + "name": "day" + } + ] + }, + { + "kind": "method", + "name": "day", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "day", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "label" + }, + { + "type": "String", + "name": "headerNote" + }, + { + "type": "String", + "name": "headerCategoryId" + } + ] + }, + { + "kind": "method", + "name": "categories", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "categories" + } + ] + }, + { + "kind": "method", + "name": "addCategory", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "ScheduleCategory", + "name": "category" + } + ] + }, + { + "kind": "method", + "name": "category", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "category", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "label" + }, + { + "type": "Color", + "name": "fillColor" + }, + { + "type": "Color", + "name": "borderColor" + } + ] + }, + { + "kind": "method", + "name": "category", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "label" + }, + { + "type": "Color", + "name": "fillColor" + }, + { + "type": "Color", + "name": "textColor" + }, + { + "type": "Color", + "name": "borderColor" + } + ] + }, + { + "kind": "method", + "name": "headerMetrics", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "headerMetrics" + } + ] + }, + { + "kind": "method", + "name": "addHeaderMetric", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "ScheduleMetricRow", + "name": "headerMetric" + } + ] + }, + { + "kind": "method", + "name": "headerMetric", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "headerMetric", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "List", + "name": "dayValues" + } + ] + }, + { + "kind": "method", + "name": "headerMetric", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "label" + }, + { + "type": "String...", + "name": "dayValues" + } + ] + }, + { + "kind": "method", + "name": "people", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "people" + } + ] + }, + { + "kind": "method", + "name": "addPerson", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "SchedulePerson", + "name": "person" + } + ] + }, + { + "kind": "method", + "name": "person", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "person", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "id" + }, + { + "type": "String", + "name": "displayName" + }, + { + "type": "int", + "name": "sortOrder" + } + ] + }, + { + "kind": "method", + "name": "assignments", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "assignments" + } + ] + }, + { + "kind": "method", + "name": "addAssignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "ScheduleAssignment", + "name": "assignment" + } + ] + }, + { + "kind": "method", + "name": "assignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "Consumer", + "name": "spec" + } + ] + }, + { + "kind": "method", + "name": "assignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "personId" + }, + { + "type": "String", + "name": "dayId" + }, + { + "type": "String", + "name": "categoryId" + }, + { + "type": "ScheduleSlot...", + "name": "slots" + } + ] + }, + { + "kind": "method", + "name": "assignment", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "personId" + }, + { + "type": "String", + "name": "dayId" + }, + { + "type": "String", + "name": "categoryId" + }, + { + "type": "List", + "name": "slots" + }, + { + "type": "String", + "name": "note" + } + ] + }, + { + "kind": "method", + "name": "footerNotes", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "List", + "name": "footerNotes" + } + ] + }, + { + "kind": "method", + "name": "footerNote", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec.Builder", + "params": [ + { + "type": "String", + "name": "footerNote" + } + ] + }, + { + "kind": "method", + "name": "build", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "WeeklyScheduleDocumentSpec", + "params": [] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.invoice.presets", + "types": [ + { + "name": "ModernInvoice", + "binaryName": "com.demcha.compose.document.templates.invoice.presets.ModernInvoice", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.document.templates.proposal.presets", + "types": [ + { + "name": "ModernProposal", + "binaryName": "com.demcha.compose.document.templates.proposal.presets.ModernProposal", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-templates", + "members": [ + { + "kind": "constant", + "name": "ID", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "DISPLAY_NAME", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "constant", + "name": "RECOMMENDED_MARGIN", + "static": true, + "origin": "generated", + "type": "double" + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [] + }, + { + "kind": "method", + "name": "create", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "DocumentTemplate", + "params": [ + { + "type": "BrandTheme", + "name": "theme" + } + ] + } + ] + } + ] + } + ] +} diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md new file mode 100644 index 000000000..85168f569 --- /dev/null +++ b/knowledge/api/templates.md @@ -0,0 +1,1380 @@ +--- +skillId: graphcompose-api-surface +targetLibrary: GraphCompose +targetVersion: 2.2.x +verifiedAgainst: 2.2.3-SNAPSHOT +status: active +generator: knowledge/tools/api-surface/extract-api.mjs +generatedFrom: "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" +note: "Generated from the pinned artifact's class files. Authoritative closed set: a symbol absent here does not exist for this version. Regenerate, do not hand-edit." +--- + +# GraphCompose — Public API Surface (templates) + +> **Generated from `knowledge/tools/api-surface/extract-api.mjs` — do not hand-edit.** +> This is the COMPLETE list of public methods and constants on the `templates` surface, +> read from the pinned artifact's class files — so members generated by Lombok +> (`builder()`, `toBuilder()`, getters, nested `…Builder` types) are present, which +> they cannot be when the source text is parsed instead. +> **If a member is not listed here, it does not exist — do not invent one.** +> Types marked `[beta]` carry `@Beta`: usable, but the contract can still change. +> `@Internal` types and members are excluded on purpose; `excluded.json` records each one. +> +> This is one surface of several. The others are listed beside it in +> `knowledge/api/`; a task should load the one it needs, not all of them. +> +> Ask it a question instead of reading it: +> `node knowledge/tools/api-query/api-query.mjs --search `. + +**GraphCompose version:** 2.2.3-SNAPSHOT + +Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 + +## com.demcha.compose.document.templates.api + +### DocumentTemplate (interface) +- `String id()` +- `String displayName()` +- `void compose(DocumentSession, S)` + +## com.demcha.compose.document.templates.core.identity + +### Contact (record) +- `new Contact(String, String, String)` +- `String phone()` +- `String email()` +- `String address()` + +### ContactLine (class) +- `void centered(SectionBuilder host, PartyIdentity identity, BrandTheme theme)` +- `void centered(SectionBuilder host, PartyIdentity identity, BrandTheme theme, DocumentTextStyle bodyStyleOverride, DocumentTextStyle linkStyleOverride, DocumentTextStyle separatorStyleOverride)` +- `void rightAligned(SectionBuilder host, PartyIdentity identity, BrandTheme theme)` +- `void leftAligned(SectionBuilder host, PartyIdentity identity, BrandTheme theme)` +- `void leftAligned(SectionBuilder host, PartyIdentity identity, BrandTheme theme, DocumentTextStyle bodyStyleOverride, DocumentTextStyle linkStyleOverride, DocumentTextStyle separatorStyleOverride)` +- `void twoRowRightAligned(SectionBuilder host, PartyIdentity identity, BrandTheme theme, DocumentTextStyle bodyStyleOverride, DocumentTextStyle linkStyleOverride, DocumentTextStyle separatorStyleOverride)` +- `void rightAlignedStacked(SectionBuilder host, PartyIdentity identity, BrandTheme theme)` +- `void rightAlignedStacked(SectionBuilder host, PartyIdentity identity, BrandTheme theme, DocumentTextStyle bodyStyleOverride, DocumentTextStyle linkStyleOverride)` +- `void render(SectionBuilder host, PartyIdentity identity, BrandTheme theme, TextAlign alignment, ContactLine.Order order)` + +### ContactLine.Order (enum) +- constants: `PHONE_FIRST`, `ADDRESS_FIRST` + +### Headline (class) +- `void spacedCentered(SectionBuilder host, String name, BrandTheme theme)` +- `void uppercaseCentered(SectionBuilder host, String name, BrandTheme theme)` +- `void uppercaseCentered(SectionBuilder host, String name, BrandTheme theme, DocumentTextStyle styleOverride)` +- `void uppercaseLeftAligned(SectionBuilder host, String name, BrandTheme theme)` +- `void uppercaseLeftAligned(SectionBuilder host, String name, BrandTheme theme, DocumentTextStyle styleOverride)` +- `void rightAligned(SectionBuilder host, String name, BrandTheme theme)` +- `void rightAligned(SectionBuilder host, String name, BrandTheme theme, DocumentTextStyle styleOverride)` +- `void render(SectionBuilder host, String name, BrandTheme theme, TextAlign alignment, boolean spacedCaps)` +- `void render(SectionBuilder host, String name, BrandTheme theme, TextAlign alignment, boolean spacedCaps, DocumentTextStyle styleOverride)` + +### Link (record) +- `new Link(String, String)` +- `Link of(String label, String url)` +- `String label()` +- `String url()` + +### Masthead (class) +- `void centered(SectionBuilder host, PartyIdentity identity, BrandTheme theme, Masthead.Style style)` + +### Masthead.Style (record) +- `new Style(DocumentTextStyle, DocumentTextStyle, DocumentTextStyle, DocumentTextStyle, DocumentTextStyle, String, DocumentInsets)` +- `Masthead.Style defaults(BrandTheme theme)` +- `Masthead.Style.Builder builder()` +- `DocumentTextStyle nameStyle()` +- `DocumentTextStyle titleStyle()` +- `DocumentTextStyle metaStyle()` +- `DocumentTextStyle linkStyle()` +- `DocumentTextStyle separatorStyle()` +- `String metaJoiner()` +- `DocumentInsets lineMargin()` + +### Masthead.Style.Builder (class) +- `Masthead.Style.Builder nameStyle(DocumentTextStyle value)` +- `Masthead.Style.Builder titleStyle(DocumentTextStyle value)` +- `Masthead.Style.Builder metaStyle(DocumentTextStyle value)` +- `Masthead.Style.Builder linkStyle(DocumentTextStyle value)` +- `Masthead.Style.Builder separatorStyle(DocumentTextStyle value)` +- `Masthead.Style.Builder metaJoiner(String value)` +- `Masthead.Style.Builder lineMargin(DocumentInsets value)` +- `Masthead.Style build()` + +### PartyIdentity (interface) +- `String displayName()` +- `String tagline()` +- `Contact contact()` +- `List links()` + +### Subheadline (class) +- `void centeredSpacedCaps(SectionBuilder host, String text, DocumentTextStyle style)` + +### SvgGlyph (class) +- `SvgGlyph fromResource(String resourcePath)` +- `ShapeOutline outline(double width)` +- `double aspectRatio()` + +## com.demcha.compose.document.templates.core.text + +### MarkdownInline (class) +- `void append(RichText rich, String text, DocumentTextStyle baseStyle)` +- `void appendTrimmed(RichText rich, String text, DocumentTextStyle baseStyle)` +- `void appendTransformed(RichText rich, String text, DocumentTextStyle baseStyle, UnaryOperator displayTransform)` +- `void appendUpperCased(RichText rich, String text, DocumentTextStyle baseStyle)` +- `void appendPlainIfPresent(RichText rich, String prefix, String value, DocumentTextStyle style)` +- `void appendIfPresent(RichText rich, String prefix, String value, DocumentTextStyle style)` +- `String plainText(String value)` + +### MarkdownText (class) +- `List parse(String text, DocumentTextStyle baseStyle)` + +### RichParagraphRenderer (class) +- `void render(SectionBuilder host, String text, DocumentTextStyle style, double lineSpacing, DocumentInsets margin)` +- `void render(SectionBuilder host, String text, DocumentTextStyle style, double lineSpacing, DocumentInsets margin, TextAlign align)` + +### TextOrnaments (class) +- `String spacedUpper(String value)` +- `String joinPipe(String... parts)` + +### TextStyles (class) +- `DocumentTextStyle of(FontName font, double size, DocumentTextDecoration decoration, DocumentColor color)` + +## com.demcha.compose.document.templates.core.theme + +### BrandTheme (record) +- `new BrandTheme(Palette, Typography, Spacing, Decoration)` +- `new BrandTheme(Palette palette, Typography typography, Spacing spacing)` +- `BrandTheme boxedClassic()` +- `BrandTheme modernProfessional()` +- `BrandTheme centeredHeadline()` +- `BrandTheme classicSerif()` +- `BrandTheme nordicClean()` +- `BrandTheme compactMono()` +- `BrandTheme blueBanner()` +- `BrandTheme editorialBlue()` +- `BrandTheme sidebarPortrait()` +- `BrandTheme monogramSidebar()` +- `BrandTheme engineeringResume()` +- `BrandTheme timelineMinimal()` +- `BrandTheme panel()` +- `BrandTheme executive()` +- `BrandTheme mintEditorial()` +- `BrandTheme invoiceModern()` +- `BrandTheme proposalModern()` +- `DocumentTextStyle headlineStyle()` +- `DocumentTextStyle bannerStyle()` +- `DocumentTextStyle contactStyle()` +- `DocumentTextStyle contactSeparatorStyle()` +- `DocumentTextStyle bodyStyle()` +- `DocumentTextStyle bodyBoldStyle()` +- `DocumentTextStyle entryTitleStyle()` +- `DocumentTextStyle entryDateStyle()` +- `DocumentTextStyle entrySubtitleStyle()` +- `Palette palette()` +- `Typography typography()` +- `Spacing spacing()` +- `Decoration decoration()` + +### Decoration (record) +- `new Decoration(String, String, String)` +- `Decoration classic()` +- `Decoration blueBanner()` +- `Decoration compactMono()` +- `String bulletGlyph()` +- `String stackedIndent()` +- `String contactSeparator()` + +### Palette (record) +- `new Palette(DocumentColor, DocumentColor, DocumentColor, DocumentColor, DocumentColor)` +- `new Palette(DocumentColor ink, DocumentColor muted, DocumentColor rule, DocumentColor banner)` +- `Palette classic()` +- `Palette centeredHeadline()` +- `Palette classicSerif()` +- `Palette nordicClean()` +- `Palette compactMono()` +- `Palette blueBanner()` +- `Palette editorialBlue()` +- `Palette sidebarPortrait()` +- `Palette monogramSidebar()` +- `Palette engineeringResume()` +- `Palette timelineMinimal()` +- `Palette panel()` +- `Palette executive()` +- `Palette mintEditorial()` +- `Palette invoiceModern()` +- `DocumentColor ink()` +- `DocumentColor muted()` +- `DocumentColor rule()` +- `DocumentColor banner()` +- `DocumentColor mainFill()` + +### Spacing (record) +- `new Spacing(double, double, DocumentInsets, DocumentInsets, DocumentInsets, double, double, DocumentInsets, double, double, double, double, double, double)` +- `new Spacing(double pageFlowSpacing, double sectionBodySpacing, DocumentInsets sectionBodyPadding, DocumentInsets headlinePadding, DocumentInsets contactPadding, double bannerCornerRadius, double bannerInnerPadding, DocumentInsets bannerMargin, double accentRuleWidth, double paragraphMarginTop, double entryHeaderRowSpacing, double entryTitleWeight, double entryDateWeight)` +- `Spacing classic()` +- `Spacing centeredHeadline()` +- `Spacing classicSerif()` +- `Spacing nordicClean()` +- `Spacing compactMono()` +- `Spacing modernProfessional()` +- `Spacing blueBanner()` +- `Spacing editorialBlue()` +- `Spacing sidebarPortrait()` +- `Spacing monogramSidebar()` +- `Spacing engineeringResume()` +- `Spacing timelineMinimal()` +- `Spacing panel()` +- `Spacing executive()` +- `Spacing mintEditorial()` +- `Spacing invoiceModern()` +- `double pageFlowSpacing()` +- `double sectionBodySpacing()` +- `DocumentInsets sectionBodyPadding()` +- `DocumentInsets headlinePadding()` +- `DocumentInsets contactPadding()` +- `double bannerCornerRadius()` +- `double bannerInnerPadding()` +- `DocumentInsets bannerMargin()` +- `double accentRuleWidth()` +- `double paragraphMarginTop()` +- `double entryHeaderRowSpacing()` +- `double entryTitleWeight()` +- `double entryDateWeight()` +- `double entrySeparation()` + +### Typography (record) +- `new Typography(FontName, FontName, double, double, double, double, double, double, double, double)` +- `Typography classic()` +- `Typography modernProfessional()` +- `Typography centeredHeadline()` +- `Typography classicSerif()` +- `Typography nordicClean()` +- `Typography compactMono()` +- `Typography blueBanner()` +- `Typography editorialBlue()` +- `Typography sidebarPortrait()` +- `Typography monogramSidebar()` +- `Typography engineeringResume()` +- `Typography timelineMinimal()` +- `Typography panel()` +- `Typography executive()` +- `Typography mintEditorial()` +- `Typography invoiceModern()` +- `Typography proposalModern()` +- `FontName headlineFont()` +- `FontName bodyFont()` +- `double sizeHeadline()` +- `double sizeContact()` +- `double sizeBanner()` +- `double sizeEntryTitle()` +- `double sizeEntryDate()` +- `double sizeEntrySubtitle()` +- `double sizeBody()` +- `double bodyLineSpacing()` + +## com.demcha.compose.document.templates.core.widgets + +### AccentStrip (class) +- `DocumentNode left(DocumentColor color, double width, double height)` +- `DocumentNode right(DocumentColor color, double width, double height)` +- `DocumentNode top(DocumentColor color, double width, double height)` +- `DocumentNode bottom(DocumentColor color, double width, double height)` +- `DocumentNode rect(DocumentColor color, double width, double height)` + +### CardWidget (class) +- `void render(SectionBuilder parent, String name, CardWidget.Style style, Consumer content)` +- `void render(PageFlowBuilder flow, String name, CardWidget.Style style, Consumer content)` + +### CardWidget.Style (record) +- `new Style(double, DocumentInsets, DocumentColor, DocumentStroke, DocumentCornerRadius)` +- `CardWidget.Style.Builder builder()` +- `double spacing()` +- `DocumentInsets padding()` +- `DocumentColor fillColor()` +- `DocumentStroke stroke()` +- `DocumentCornerRadius cornerRadius()` + +### CardWidget.Style.Builder (class) +- `CardWidget.Style.Builder spacing(double value)` +- `CardWidget.Style.Builder padding(DocumentInsets value)` +- `CardWidget.Style.Builder fillColor(DocumentColor value)` +- `CardWidget.Style.Builder stroke(DocumentStroke value)` +- `CardWidget.Style.Builder cornerRadius(double value)` +- `CardWidget.Style.Builder cornerRadius(DocumentCornerRadius value)` +- `CardWidget.Style build()` + +### Divider (class) +- `DocumentNode thin(DocumentColor color, double width)` +- `DocumentNode thick(DocumentColor color, double width)` +- `DocumentNode dashed(DocumentColor color, double width)` +- `DocumentNode dottedAccent(DocumentColor color, double width)` +- `DocumentNode custom(DocumentColor color, double width, double thickness)` +- constants: `THIN_THICKNESS`, `THICK_THICKNESS` + +### Spacer (class) +- `DocumentNode small()` +- `DocumentNode medium()` +- `DocumentNode large()` +- `DocumentNode height(double height)` +- `DocumentNode size(double width, double height)` +- constants: `SMALL`, `MEDIUM`, `LARGE` + +### TableWidget (class) +- `void fixed(SectionBuilder host, List> rows, double width, TableWidget.Style style)` +- `void grid(SectionBuilder host, List cells, double width, TableWidget.Style style)` + +### TableWidget.Style (record) +- `new Style(String, int, DocumentInsets, DocumentStroke, DocumentColor, DocumentColor, DocumentTextStyle, Double, double)` +- `TableWidget.Style.Builder builder()` +- `String name()` +- `int columns()` +- `DocumentInsets cellPadding()` +- `DocumentStroke cellStroke()` +- `DocumentColor cellFillColor()` +- `DocumentColor zebraFillColor()` +- `DocumentTextStyle textStyle()` +- `Double lineSpacing()` +- `double widthAdjustment()` + +### TableWidget.Style.Builder (class) +- `TableWidget.Style.Builder name(String value)` +- `TableWidget.Style.Builder columns(int value)` +- `TableWidget.Style.Builder cellPadding(DocumentInsets value)` +- `TableWidget.Style.Builder border(DocumentColor color, double width)` +- `TableWidget.Style.Builder cellStroke(DocumentStroke value)` +- `TableWidget.Style.Builder cellFillColor(DocumentColor value)` +- `TableWidget.Style.Builder zebraFillColor(DocumentColor value)` +- `TableWidget.Style.Builder textStyle(DocumentTextStyle value)` +- `TableWidget.Style.Builder lineSpacing(Double value)` +- `TableWidget.Style.Builder widthAdjustment(double value)` +- `TableWidget.Style build()` + +### TimelineAxisWidget (class) +- `void render(SectionBuilder host, TimelineAxisWidget.Style style)` +- `void render(SectionBuilder host, TimelineAxisWidget.Style style, double totalHeight)` + +### TimelineAxisWidget.Marker (enum) +- constants: `CIRCLE`, `SQUARE`, `NONE` + +### TimelineAxisWidget.Style (record) +- `new Style(TimelineAxisWidget.Marker, double, DocumentColor, DocumentStroke, double, int, DocumentColor, double, DocumentInsets)` +- `TimelineAxisWidget.Style.Builder builder()` +- `TimelineAxisWidget.Style.Builder toBuilder()` +- `TimelineAxisWidget.Marker marker()` +- `double markerSize()` +- `DocumentColor markerFillColor()` +- `DocumentStroke markerStroke()` +- `double segmentLength()` +- `int segmentCount()` +- `DocumentColor lineColor()` +- `double lineThickness()` +- `DocumentInsets padding()` + +### TimelineAxisWidget.Style.Builder (class) +- `TimelineAxisWidget.Style.Builder marker(TimelineAxisWidget.Marker value)` +- `TimelineAxisWidget.Style.Builder markerSize(double value)` +- `TimelineAxisWidget.Style.Builder markerFillColor(DocumentColor value)` +- `TimelineAxisWidget.Style.Builder markerStroke(DocumentStroke value)` +- `TimelineAxisWidget.Style.Builder segmentLength(double value)` +- `TimelineAxisWidget.Style.Builder segmentCount(int value)` +- `TimelineAxisWidget.Style.Builder lineColor(DocumentColor value)` +- `TimelineAxisWidget.Style.Builder lineThickness(double value)` +- `TimelineAxisWidget.Style.Builder padding(DocumentInsets value)` +- `TimelineAxisWidget.Style build()` + +## com.demcha.compose.document.templates.coverletter.components + +### LetterBody (class) +- `void render(SectionBuilder host, CoverLetterDocument doc, BrandTheme theme)` +- `void render(SectionBuilder host, CoverLetterDocument doc, BrandTheme theme, double bodySize)` + +## com.demcha.compose.document.templates.coverletter.data + +### CoverLetterDocument (record) +- `new CoverLetterDocument(CvIdentity, String, List, String)` +- `CoverLetterDocument.Builder builder()` +- `CvIdentity identity()` +- `String greeting()` +- `List body()` +- `String closing()` + +### CoverLetterDocument.Builder (class) +- `CoverLetterDocument.Builder identity(CvIdentity value)` +- `CoverLetterDocument.Builder greeting(String value)` +- `CoverLetterDocument.Builder paragraph(String value)` +- `CoverLetterDocument.Builder closing(String value)` +- `CoverLetterDocument build()` + +## com.demcha.compose.document.templates.coverletter.presets + +### BlueBannerLetter (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### BoxedSectionsLetter (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### CenteredHeadlineLetter (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### ClassicSerifLetter (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### CompactMonoLetter (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### EditorialBlueLetter (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### EngineeringResumeLetter (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### ExecutiveLetter (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### MintEditorialLetter (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- `DocumentTemplate create(MintEditorialLetter.Options options)` +- `DocumentTemplate create(BrandTheme theme, MintEditorialLetter.Options options)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### MintEditorialLetter.Options (record) +- `new Options(DocumentColor, DocumentColor, DocumentColor, DocumentColor)` +- `MintEditorialLetter.Options defaults()` +- `MintEditorialLetter.Options.Builder builder()` +- `DocumentColor accentColor()` +- `DocumentColor ruleColor()` +- `DocumentColor nameColor()` +- `DocumentColor headerBandColor()` + +### MintEditorialLetter.Options.Builder (class) +- `MintEditorialLetter.Options.Builder accentColor(DocumentColor value)` +- `MintEditorialLetter.Options.Builder ruleColor(DocumentColor value)` +- `MintEditorialLetter.Options.Builder nameColor(DocumentColor value)` +- `MintEditorialLetter.Options.Builder headerBandColor(DocumentColor value)` +- `MintEditorialLetter.Options build()` + +### ModernProfessionalLetter (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### MonogramSidebarLetter (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### NordicCleanLetter (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### PanelLetter (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### SidebarPortraitLetter (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### TimelineMinimalLetter (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +## com.demcha.compose.document.templates.cv.components + +### EntryCompactRenderer (class) +- `void twoColumnTitleDateBody(SectionBuilder host, CvEntry entry, String rowName, DocumentTextStyle titleStyle, DocumentTextStyle dateStyle, DocumentTextStyle subtitleStyle, DocumentTextStyle bodyStyle, double rowSpacing, double titleWeight, double dateWeight, DocumentInsets subtitleMargin, DocumentInsets bodyMargin, double bodyLineSpacing, boolean uppercaseTitle)` +- `void slashMeta(SectionBuilder host, CvEntry entry, DocumentTextStyle titleStyle, DocumentTextStyle metaStyle, double lineSpacing, DocumentInsets margin)` +- `void slashSubtitleDate(SectionBuilder host, CvEntry entry, DocumentTextStyle titleStyle, DocumentTextStyle subtitleStyle, DocumentTextStyle dateStyle, double lineSpacing, DocumentInsets margin)` +- `void titleDateBody(SectionBuilder host, CvEntry entry, DocumentTextStyle titleStyle, DocumentTextStyle dateStyle, DocumentTextStyle subtitleStyle, DocumentTextStyle bodyStyle, String datePrefix, double headerLineSpacing, DocumentInsets headerMargin, DocumentInsets subtitleMargin, DocumentInsets bodyMargin, double bodyLineSpacing, boolean uppercaseTitle)` +- `void titleSubtitleDateBody(SectionBuilder host, CvEntry entry, DocumentTextStyle titleStyle, DocumentTextStyle subtitleStyle, DocumentTextStyle dateStyle, DocumentTextStyle bodyStyle, String subtitlePrefix, String datePrefix, double headerLineSpacing, DocumentInsets headerMargin, DocumentInsets bodyMargin, double bodyLineSpacing)` + +### EntryRenderer (class) +- `void render(SectionBuilder section, CvEntry entry, BrandTheme theme)` + +### LabelValueRenderer (class) +- `void render(SectionBuilder host, String label, String value, DocumentTextStyle labelStyle, DocumentTextStyle valueStyle, double lineSpacing, DocumentInsets margin)` + +### ParagraphRenderer (class) +- `void render(SectionBuilder section, String text, BrandTheme theme)` + +### ProjectLabel (record) +- `new ProjectLabel(String, String)` +- `ProjectLabel parse(String value)` +- `String title()` +- `String stack()` + +### ProjectRenderer (class) +- `void inline(SectionBuilder host, CvRow row, DocumentTextStyle titleStyle, DocumentTextStyle stackStyle, DocumentTextStyle bodyStyle, double lineSpacing, DocumentInsets margin)` +- `void plainInline(SectionBuilder host, CvRow row, DocumentTextStyle labelStyle, DocumentTextStyle bodyStyle, double lineSpacing, DocumentInsets margin, String delimiter)` +- `void titleThenBody(SectionBuilder host, CvRow row, DocumentTextStyle titleStyle, DocumentTextStyle stackStyle, DocumentTextStyle bodyStyle, double bodyLineSpacing, DocumentInsets titleMargin, DocumentInsets bodyMargin)` + +### RowRenderer (class) +- `void render(SectionBuilder section, CvRow row, RowStyle style, BrandTheme theme)` + +### SectionAllocation (class) +- `SectionAllocation of(List sections)` +- `CvSection claim(List keys)` +- `List remaining()` +- `String titleOr(CvSection section, String fallback)` + +### SectionDispatcher (class) +- `void renderBody(SectionBuilder host, CvSection section, BrandTheme theme)` + +### SectionLookup (class) +- `CvSection firstMatching(List sections, List keys)` +- `boolean hasContent(CvSection section)` +- `boolean titleContains(String title, String key)` +- `String normalize(String value)` + +### SkillLineRenderer (class) +- `void limitedInline(SectionBuilder host, SkillGroup group, int limit, DocumentTextStyle labelStyle, DocumentTextStyle valueStyle, double lineSpacing, DocumentInsets margin, String labelSuffix)` + +### SkillsRenderer (class) +- `void render(SectionBuilder section, SkillsSection skills, BrandTheme theme)` + +### SkillTableRenderer (class) +- `void grid(SectionBuilder host, List groups, double width, TableWidget.Style style, String bulletPrefix)` + +## com.demcha.compose.document.templates.cv.data + +### CvDocument (record) +- `new CvDocument(CvIdentity, List)` +- `CvDocument ofMainSections(CvIdentity identity, List sections)` +- `List sections()` +- `List sectionsIn(Slot slot)` +- `Slot slotOf(CvSection section)` +- `CvDocument.Builder builder()` +- `CvIdentity identity()` +- `List placements()` + +### CvDocument.Builder (class) +- `CvDocument.Builder identity(CvIdentity value)` +- `CvDocument.Builder section(CvSection section)` +- `CvDocument.Builder section(Slot slot, CvSection section)` +- `CvDocument.Builder sections(CvSection... values)` +- `CvDocument.Builder sections(Slot slot, CvSection... values)` +- `CvDocument.Builder sections(List values)` +- `CvDocument.Builder placement(CvDocument.Placement placement)` +- `CvDocument build()` + +### CvDocument.Placement (record) +- `new Placement(Slot, CvSection)` +- `Slot slot()` +- `CvSection section()` + +### CvEntry (record) +- `new CvEntry(String, String, String, String)` +- `String title()` +- `String subtitle()` +- `String date()` +- `String body()` + +### CvIdentity (record) +- `new CvIdentity(CvName, String, Contact, List)` +- `new CvIdentity(CvName name, Contact contact, List links)` +- `String displayName()` +- `String tagline()` +- `CvIdentity.Builder builder()` +- `CvName name()` +- `String jobTitle()` +- `Contact contact()` +- `List links()` + +### CvIdentity.Builder (class) +- `CvIdentity.Builder name(CvName value)` +- `CvIdentity.Builder name(String first, String last)` +- `CvIdentity.Builder name(String first, String middle, String last)` +- `CvIdentity.Builder jobTitle(String value)` +- `CvIdentity.Builder contact(Contact value)` +- `CvIdentity.Builder contact(String phone, String email, String address)` +- `CvIdentity.Builder link(Link link)` +- `CvIdentity.Builder link(String label, String url)` +- `CvIdentity build()` + +### CvName (record) +- `new CvName(String, String, String)` +- `CvName of(String first, String last)` +- `Optional middleName()` +- `String full()` +- `String first()` +- `String middle()` +- `String last()` + +### CvRow (record) +- `new CvRow(String, String)` +- `String label()` +- `String body()` + +### CvSection (interface) +- `String title()` + +### CvSkill (record) +- `new CvSkill(String, OptionalDouble)` +- `CvSkill of(String name)` +- `CvSkill of(String name, double level)` +- `String name()` +- `OptionalDouble level()` + +### EntriesSection (record) +- `new EntriesSection(String, List)` +- `EntriesSection.Builder builder(String title)` +- `String title()` +- `List entries()` + +### EntriesSection.Builder (class) +- `EntriesSection.Builder entry(String title, String subtitle, String date, String body)` +- `EntriesSection.Builder entry(CvEntry entry)` +- `EntriesSection build()` + +### ParagraphSection (record) +- `new ParagraphSection(String, String)` +- `String title()` +- `String body()` + +### RowsSection (record) +- `new RowsSection(String, List, RowStyle)` +- `RowsSection.Builder builder(String title, RowStyle style)` +- `String title()` +- `List rows()` +- `RowStyle style()` + +### RowsSection.Builder (class) +- `RowsSection.Builder row(String label, String body)` +- `RowsSection.Builder row(CvRow row)` +- `RowsSection build()` + +### RowStyle (enum) +- constants: `PLAIN`, `BULLETED`, `BULLETED_STACKED` + +### SkillGroup (record) +- `new SkillGroup(String, List)` +- `SkillGroup of(String category, String... skills)` +- `SkillGroup ofNames(String category, List skills)` +- `List skills()` +- `String skillsInline()` +- `String category()` +- `List entries()` + +### SkillsSection (record) +- `new SkillsSection(String, List)` +- `SkillsSection.Builder builder(String title)` +- `SkillsSection of(String title, SkillGroup... groups)` +- `String title()` +- `List groups()` + +### SkillsSection.Builder (class) +- `SkillsSection.Builder group(SkillGroup group)` +- `SkillsSection.Builder group(String category, List skills)` +- `SkillsSection.Builder group(String category, String... skills)` +- `SkillsSection.Builder leveledGroup(String category, List entries)` +- `SkillsSection build()` + +### Slot (enum) +- constants: `MAIN`, `SIDEBAR`, `FOOTER` + +## com.demcha.compose.document.templates.cv.presets + +### BlueBanner (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### BoxedSections (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### CenteredHeadline (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### ClassicSerif (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### CompactMono (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### EditorialBlue (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### EngineeringResume (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### Executive (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### MinimalUnderlined (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### MintEditorial (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- `DocumentTemplate create(MintEditorial.Options options)` +- `DocumentTemplate create(BrandTheme theme, MintEditorial.Options options)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### MintEditorial.Options (record) +- `new Options(DocumentColor, DocumentColor, DocumentColor, DocumentColor)` +- `MintEditorial.Options defaults()` +- `MintEditorial.Options.Builder builder()` +- `DocumentColor accentColor()` +- `DocumentColor ruleColor()` +- `DocumentColor nameColor()` +- `DocumentColor headerBandColor()` + +### MintEditorial.Options.Builder (class) +- `MintEditorial.Options.Builder accentColor(DocumentColor value)` +- `MintEditorial.Options.Builder ruleColor(DocumentColor value)` +- `MintEditorial.Options.Builder nameColor(DocumentColor value)` +- `MintEditorial.Options.Builder headerBandColor(DocumentColor value)` +- `MintEditorial.Options build()` + +### ModernProfessional (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### MonogramSidebar (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- `DocumentTemplate create(BrandTheme theme, MonogramSidebar.Options options)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### MonogramSidebar.Options (record) +- `new Options(DocumentColor, DocumentColor, DocumentColor, DocumentColor)` +- `MonogramSidebar.Options defaults()` +- `MonogramSidebar.Options.Builder builder()` +- `DocumentColor sidebarFillColor()` +- `DocumentColor mainFillColor()` +- `DocumentColor accentColor()` +- `DocumentColor monogramRingColor()` + +### MonogramSidebar.Options.Builder (class) +- `MonogramSidebar.Options.Builder sidebarFillColor(DocumentColor value)` +- `MonogramSidebar.Options.Builder mainFillColor(DocumentColor value)` +- `MonogramSidebar.Options.Builder accentColor(DocumentColor value)` +- `MonogramSidebar.Options.Builder monogramRingColor(DocumentColor value)` +- `MonogramSidebar.Options build()` + +### NordicClean (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- `DocumentTemplate create(BrandTheme theme, NordicClean.Options options)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### NordicClean.Options (record) +- `new Options(NordicClean.RailSide, DocumentColor, DocumentColor, DocumentColor)` +- `NordicClean.Options defaults()` +- `NordicClean.Options.Builder builder()` +- `NordicClean.RailSide railSide()` +- `DocumentColor accentColor()` +- `DocumentColor railFillColor()` +- `DocumentColor profileFillColor()` + +### NordicClean.Options.Builder (class) +- `NordicClean.Options.Builder railSide(NordicClean.RailSide value)` +- `NordicClean.Options.Builder accentColor(DocumentColor value)` +- `NordicClean.Options.Builder railFillColor(DocumentColor value)` +- `NordicClean.Options.Builder profileFillColor(DocumentColor value)` +- `NordicClean.Options build()` + +### NordicClean.RailSide (enum) +- constants: `LEFT`, `RIGHT` + +### Panel (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### SidebarPortrait (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- `DocumentTemplate create(BrandTheme theme, SidebarPortrait.Options options)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +### SidebarPortrait.Options (record) +- `new Options(DocumentColor, DocumentColor, DocumentColor)` +- `SidebarPortrait.Options defaults()` +- `SidebarPortrait.Options.Builder builder()` +- `DocumentColor sidebarFillColor()` +- `DocumentColor mainFillColor()` +- `DocumentColor accentColor()` + +### SidebarPortrait.Options.Builder (class) +- `SidebarPortrait.Options.Builder sidebarFillColor(DocumentColor value)` +- `SidebarPortrait.Options.Builder mainFillColor(DocumentColor value)` +- `SidebarPortrait.Options.Builder accentColor(DocumentColor value)` +- `SidebarPortrait.Options build()` + +### TimelineMinimal (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +## com.demcha.compose.document.templates.cv.widgets + +### FlowSectionHeader (class) +- `void banner(PageFlowBuilder flow, String name, String title, double ruleWidth, BrandTheme theme, DocumentTextStyle titleStyle, DocumentInsets topRuleMargin, DocumentInsets bottomRuleMargin)` +- `void banner(PageFlowBuilder flow, String name, String title, double ruleWidth, BrandTheme theme, DocumentTextStyle titleStyle, DocumentColor ruleColor, DocumentInsets topRuleMargin, DocumentInsets bottomRuleMargin)` +- `void label(PageFlowBuilder flow, String name, String title, double ruleWidth, BrandTheme theme, DocumentTextStyle titleStyle, DocumentInsets topRuleMargin, DocumentInsets titlePadding, DocumentInsets bottomRuleMargin, boolean withTopRule)` +- `void label(PageFlowBuilder flow, String name, String title, double ruleWidth, BrandTheme theme, DocumentTextStyle titleStyle, DocumentColor ruleColor, DocumentInsets topRuleMargin, DocumentInsets titlePadding, DocumentInsets bottomRuleMargin, boolean withTopRule)` + +### IconTextRow (class) +- `void render(SectionBuilder host, SvgGlyph glyph, DocumentColor glyphColor, double iconSize, String text, DocumentTextStyle style, DocumentLinkOptions link, DocumentInsets margin)` +- `void render(SectionBuilder host, DocumentImageData icon, double iconSize, String text, DocumentTextStyle style, DocumentLinkOptions link, DocumentInsets margin)` + +### ProfileBand (class) +- `void render(PageFlowBuilder flow, String name, String title, String body, ProfileBand.Style style)` +- `void render(SectionBuilder host, String title, String body, ProfileBand.Style style)` + +### ProfileBand.Style (record) +- `new Style(double, DocumentInsets, DocumentColor, DocumentCornerRadius, DocumentColor, double, DocumentColor, double, DocumentColor, double, DocumentTextStyle, TextAlign, boolean, DocumentTextStyle, TextAlign, double)` +- `ProfileBand.Style defaults()` +- `ProfileBand.Style.Builder builder()` +- `double spacing()` +- `DocumentInsets padding()` +- `DocumentColor fillColor()` +- `DocumentCornerRadius cornerRadius()` +- `DocumentColor accentLeftColor()` +- `double accentLeftWidth()` +- `DocumentColor accentTopColor()` +- `double accentTopWidth()` +- `DocumentColor accentBottomColor()` +- `double accentBottomWidth()` +- `DocumentTextStyle titleStyle()` +- `TextAlign titleAlign()` +- `boolean transformTitle()` +- `DocumentTextStyle bodyStyle()` +- `TextAlign bodyAlign()` +- `double bodyLineSpacing()` + +### ProfileBand.Style.Builder (class) +- `ProfileBand.Style.Builder spacing(double value)` +- `ProfileBand.Style.Builder padding(DocumentInsets value)` +- `ProfileBand.Style.Builder fillColor(DocumentColor value)` +- `ProfileBand.Style.Builder cornerRadius(DocumentCornerRadius value)` +- `ProfileBand.Style.Builder accentLeft(DocumentColor color, double width)` +- `ProfileBand.Style.Builder accentTop(DocumentColor color, double width)` +- `ProfileBand.Style.Builder accentBottom(DocumentColor color, double width)` +- `ProfileBand.Style.Builder titleStyle(DocumentTextStyle value)` +- `ProfileBand.Style.Builder titleAlign(TextAlign value)` +- `ProfileBand.Style.Builder transformTitle(boolean value)` +- `ProfileBand.Style.Builder bodyStyle(DocumentTextStyle value)` +- `ProfileBand.Style.Builder bodyAlign(TextAlign value)` +- `ProfileBand.Style.Builder bodyLineSpacing(double value)` +- `ProfileBand.Style build()` + +### SectionHeader (class) +- `void banner(SectionBuilder host, String title, BrandTheme theme)` +- `void fullWidthBanner(SectionBuilder host, String title, BrandTheme theme)` +- `void fullWidthBanner(SectionBuilder host, String title, BrandTheme theme, DocumentTextStyle titleStyleOverride)` +- `void underlined(SectionBuilder host, String title, BrandTheme theme)` +- `void flat(SectionBuilder host, String title, DocumentColor color, BrandTheme theme)` +- `void flatSpacedCaps(SectionBuilder host, String title, DocumentColor color, BrandTheme theme, DocumentTextStyle titleStyle)` +- `void tickLabel(SectionBuilder host, String title, BrandTheme theme, DocumentColor color, double tickWidth)` +- `void tickLabel(SectionBuilder host, String title, BrandTheme theme, DocumentColor color, double tickWidth, DocumentTextStyle titleStyle)` +- `void upperRule(SectionBuilder host, String title, BrandTheme theme, DocumentTextStyle titleStyle, DocumentColor ruleColor, double ruleWidth)` +- `void spacedCapsRule(SectionBuilder host, String title, BrandTheme theme, DocumentTextStyle titleStyle, DocumentColor ruleColor, double ruleWidth, double ruleThickness, DocumentInsets ruleMargin)` + +### SectionModule (class) +- `void tick(SectionBuilder parent, String name, String title, BrandTheme theme, DocumentColor color, double tickWidth, DocumentTextStyle titleStyle, Consumer body)` +- `void upperRule(SectionBuilder parent, String name, String title, BrandTheme theme, DocumentTextStyle titleStyle, DocumentColor ruleColor, double ruleWidth, Consumer body)` + +### SkillBar (class) +- `void render(SectionBuilder host, CvSkill skill, double trackWidth, BrandTheme theme)` + +## com.demcha.compose.document.templates.data.invoice + +### InvoiceData (record) +- `new InvoiceData(String, String, String, String, String, String, InvoiceParty, InvoiceParty, List, List, List, List, String)` +- `InvoiceData.Builder builder()` +- `String title()` +- `String invoiceNumber()` +- `String issueDate()` +- `String dueDate()` +- `String reference()` +- `String status()` +- `InvoiceParty fromParty()` +- `InvoiceParty billToParty()` +- `List lineItems()` +- `List summaryRows()` +- `List notes()` +- `List paymentTerms()` +- `String footerNote()` + +### InvoiceData.Builder (class) +- `InvoiceData.Builder title(String title)` +- `InvoiceData.Builder invoiceNumber(String invoiceNumber)` +- `InvoiceData.Builder issueDate(String issueDate)` +- `InvoiceData.Builder dueDate(String dueDate)` +- `InvoiceData.Builder reference(String reference)` +- `InvoiceData.Builder status(String status)` +- `InvoiceData.Builder fromParty(InvoiceParty fromParty)` +- `InvoiceData.Builder fromParty(Consumer spec)` +- `InvoiceData.Builder billToParty(InvoiceParty billToParty)` +- `InvoiceData.Builder billToParty(Consumer spec)` +- `InvoiceData.Builder lineItems(List lineItems)` +- `InvoiceData.Builder addLineItem(InvoiceLineItem lineItem)` +- `InvoiceData.Builder lineItem(Consumer spec)` +- `InvoiceData.Builder lineItem(String description, String details, String quantity, String unitPrice, String amount)` +- `InvoiceData.Builder summaryRows(List summaryRows)` +- `InvoiceData.Builder addSummaryRow(InvoiceSummaryRow summaryRow)` +- `InvoiceData.Builder summaryRow(Consumer spec)` +- `InvoiceData.Builder summaryRow(String label, String value)` +- `InvoiceData.Builder totalRow(String label, String value)` +- `InvoiceData.Builder notes(List notes)` +- `InvoiceData.Builder note(String note)` +- `InvoiceData.Builder paymentTerms(List paymentTerms)` +- `InvoiceData.Builder paymentTerm(String paymentTerm)` +- `InvoiceData.Builder footerNote(String footerNote)` +- `InvoiceData build()` + +### InvoiceDocumentSpec (record) +- `new InvoiceDocumentSpec(InvoiceData)` +- `InvoiceDocumentSpec from(InvoiceData invoice)` +- `InvoiceDocumentSpec.Builder builder()` +- `InvoiceData invoice()` + +### InvoiceDocumentSpec.Builder (class) +- `InvoiceDocumentSpec.Builder title(String title)` +- `InvoiceDocumentSpec.Builder invoiceNumber(String invoiceNumber)` +- `InvoiceDocumentSpec.Builder issueDate(String issueDate)` +- `InvoiceDocumentSpec.Builder dueDate(String dueDate)` +- `InvoiceDocumentSpec.Builder reference(String reference)` +- `InvoiceDocumentSpec.Builder status(String status)` +- `InvoiceDocumentSpec.Builder fromParty(InvoiceParty fromParty)` +- `InvoiceDocumentSpec.Builder fromParty(Consumer spec)` +- `InvoiceDocumentSpec.Builder billToParty(InvoiceParty billToParty)` +- `InvoiceDocumentSpec.Builder billToParty(Consumer spec)` +- `InvoiceDocumentSpec.Builder lineItems(List lineItems)` +- `InvoiceDocumentSpec.Builder addLineItem(InvoiceLineItem lineItem)` +- `InvoiceDocumentSpec.Builder lineItem(Consumer spec)` +- `InvoiceDocumentSpec.Builder lineItem(String description, String details, String quantity, String unitPrice, String amount)` +- `InvoiceDocumentSpec.Builder summaryRows(List summaryRows)` +- `InvoiceDocumentSpec.Builder addSummaryRow(InvoiceSummaryRow summaryRow)` +- `InvoiceDocumentSpec.Builder summaryRow(Consumer spec)` +- `InvoiceDocumentSpec.Builder summaryRow(String label, String value)` +- `InvoiceDocumentSpec.Builder totalRow(String label, String value)` +- `InvoiceDocumentSpec.Builder notes(List notes)` +- `InvoiceDocumentSpec.Builder note(String note)` +- `InvoiceDocumentSpec.Builder paymentTerms(List paymentTerms)` +- `InvoiceDocumentSpec.Builder paymentTerm(String paymentTerm)` +- `InvoiceDocumentSpec.Builder footerNote(String footerNote)` +- `InvoiceDocumentSpec build()` + +### InvoiceLineItem (record) +- `new InvoiceLineItem(String, String, String, String, String)` +- `InvoiceLineItem.Builder builder()` +- `String description()` +- `String details()` +- `String quantity()` +- `String unitPrice()` +- `String amount()` + +### InvoiceLineItem.Builder (class) +- `InvoiceLineItem.Builder description(String description)` +- `InvoiceLineItem.Builder details(String details)` +- `InvoiceLineItem.Builder quantity(String quantity)` +- `InvoiceLineItem.Builder unitPrice(String unitPrice)` +- `InvoiceLineItem.Builder amount(String amount)` +- `InvoiceLineItem build()` + +### InvoiceParty (record) +- `new InvoiceParty(String, List, String, String, String)` +- `InvoiceParty.Builder builder()` +- `String name()` +- `List addressLines()` +- `String email()` +- `String phone()` +- `String taxId()` + +### InvoiceParty.Builder (class) +- `InvoiceParty.Builder name(String name)` +- `InvoiceParty.Builder addressLines(List addressLines)` +- `InvoiceParty.Builder addressLines(String... addressLines)` +- `InvoiceParty.Builder addAddressLine(String addressLine)` +- `InvoiceParty.Builder email(String email)` +- `InvoiceParty.Builder phone(String phone)` +- `InvoiceParty.Builder taxId(String taxId)` +- `InvoiceParty build()` + +### InvoiceSummaryRow (record) +- `new InvoiceSummaryRow(String, String, boolean)` +- `InvoiceSummaryRow.Builder builder()` +- `String label()` +- `String value()` +- `boolean emphasized()` + +### InvoiceSummaryRow.Builder (class) +- `InvoiceSummaryRow.Builder label(String label)` +- `InvoiceSummaryRow.Builder value(String value)` +- `InvoiceSummaryRow.Builder emphasized(boolean emphasized)` +- `InvoiceSummaryRow build()` + +## com.demcha.compose.document.templates.data.proposal + +### ProposalData (record) +- `new ProposalData(String, String, String, String, String, String, ProposalParty, ProposalParty, List, List, List, List, String)` +- `ProposalData.Builder builder()` +- `String title()` +- `String proposalNumber()` +- `String preparedDate()` +- `String validUntil()` +- `String projectTitle()` +- `String executiveSummary()` +- `ProposalParty sender()` +- `ProposalParty recipient()` +- `List sections()` +- `List timeline()` +- `List pricingRows()` +- `List acceptanceTerms()` +- `String footerNote()` + +### ProposalData.Builder (class) +- `ProposalData.Builder title(String title)` +- `ProposalData.Builder proposalNumber(String proposalNumber)` +- `ProposalData.Builder preparedDate(String preparedDate)` +- `ProposalData.Builder validUntil(String validUntil)` +- `ProposalData.Builder projectTitle(String projectTitle)` +- `ProposalData.Builder executiveSummary(String executiveSummary)` +- `ProposalData.Builder sender(ProposalParty sender)` +- `ProposalData.Builder sender(Consumer spec)` +- `ProposalData.Builder recipient(ProposalParty recipient)` +- `ProposalData.Builder recipient(Consumer spec)` +- `ProposalData.Builder sections(List sections)` +- `ProposalData.Builder addSection(ProposalSection section)` +- `ProposalData.Builder section(Consumer spec)` +- `ProposalData.Builder section(String title, String... paragraphs)` +- `ProposalData.Builder timeline(List timeline)` +- `ProposalData.Builder addTimelineItem(ProposalTimelineItem item)` +- `ProposalData.Builder timelineItem(Consumer spec)` +- `ProposalData.Builder timelineItem(String phase, String duration, String details)` +- `ProposalData.Builder pricingRows(List pricingRows)` +- `ProposalData.Builder addPricingRow(ProposalPricingRow pricingRow)` +- `ProposalData.Builder pricingRow(Consumer spec)` +- `ProposalData.Builder pricingRow(String label, String description, String amount)` +- `ProposalData.Builder emphasizedPricingRow(String label, String description, String amount)` +- `ProposalData.Builder acceptanceTerms(List acceptanceTerms)` +- `ProposalData.Builder acceptanceTerm(String acceptanceTerm)` +- `ProposalData.Builder footerNote(String footerNote)` +- `ProposalData build()` + +### ProposalDocumentSpec (record) +- `new ProposalDocumentSpec(ProposalData)` +- `ProposalDocumentSpec from(ProposalData proposal)` +- `ProposalDocumentSpec.Builder builder()` +- `ProposalData proposal()` + +### ProposalDocumentSpec.Builder (class) +- `ProposalDocumentSpec.Builder title(String title)` +- `ProposalDocumentSpec.Builder proposalNumber(String proposalNumber)` +- `ProposalDocumentSpec.Builder preparedDate(String preparedDate)` +- `ProposalDocumentSpec.Builder validUntil(String validUntil)` +- `ProposalDocumentSpec.Builder projectTitle(String projectTitle)` +- `ProposalDocumentSpec.Builder executiveSummary(String executiveSummary)` +- `ProposalDocumentSpec.Builder sender(ProposalParty sender)` +- `ProposalDocumentSpec.Builder sender(Consumer spec)` +- `ProposalDocumentSpec.Builder recipient(ProposalParty recipient)` +- `ProposalDocumentSpec.Builder recipient(Consumer spec)` +- `ProposalDocumentSpec.Builder sections(List sections)` +- `ProposalDocumentSpec.Builder addSection(ProposalSection section)` +- `ProposalDocumentSpec.Builder section(Consumer spec)` +- `ProposalDocumentSpec.Builder section(String title, String... paragraphs)` +- `ProposalDocumentSpec.Builder timeline(List timeline)` +- `ProposalDocumentSpec.Builder addTimelineItem(ProposalTimelineItem item)` +- `ProposalDocumentSpec.Builder timelineItem(Consumer spec)` +- `ProposalDocumentSpec.Builder timelineItem(String phase, String duration, String details)` +- `ProposalDocumentSpec.Builder pricingRows(List pricingRows)` +- `ProposalDocumentSpec.Builder addPricingRow(ProposalPricingRow pricingRow)` +- `ProposalDocumentSpec.Builder pricingRow(Consumer spec)` +- `ProposalDocumentSpec.Builder pricingRow(String label, String description, String amount)` +- `ProposalDocumentSpec.Builder emphasizedPricingRow(String label, String description, String amount)` +- `ProposalDocumentSpec.Builder acceptanceTerms(List acceptanceTerms)` +- `ProposalDocumentSpec.Builder acceptanceTerm(String acceptanceTerm)` +- `ProposalDocumentSpec.Builder footerNote(String footerNote)` +- `ProposalDocumentSpec build()` + +### ProposalParty (record) +- `new ProposalParty(String, List, String, String, String)` +- `ProposalParty.Builder builder()` +- `String name()` +- `List addressLines()` +- `String email()` +- `String phone()` +- `String website()` + +### ProposalParty.Builder (class) +- `ProposalParty.Builder name(String name)` +- `ProposalParty.Builder addressLines(List addressLines)` +- `ProposalParty.Builder addressLines(String... addressLines)` +- `ProposalParty.Builder addAddressLine(String addressLine)` +- `ProposalParty.Builder email(String email)` +- `ProposalParty.Builder phone(String phone)` +- `ProposalParty.Builder website(String website)` +- `ProposalParty build()` + +### ProposalPricingRow (record) +- `new ProposalPricingRow(String, String, String, boolean)` +- `ProposalPricingRow.Builder builder()` +- `String label()` +- `String description()` +- `String amount()` +- `boolean emphasized()` + +### ProposalPricingRow.Builder (class) +- `ProposalPricingRow.Builder label(String label)` +- `ProposalPricingRow.Builder description(String description)` +- `ProposalPricingRow.Builder amount(String amount)` +- `ProposalPricingRow.Builder emphasized(boolean emphasized)` +- `ProposalPricingRow build()` + +### ProposalSection (record) +- `new ProposalSection(String, List)` +- `ProposalSection.Builder builder()` +- `String title()` +- `List paragraphs()` + +### ProposalSection.Builder (class) +- `ProposalSection.Builder title(String title)` +- `ProposalSection.Builder paragraphs(List paragraphs)` +- `ProposalSection.Builder paragraphs(String... paragraphs)` +- `ProposalSection.Builder addParagraph(String paragraph)` +- `ProposalSection build()` + +### ProposalTimelineItem (record) +- `new ProposalTimelineItem(String, String, String)` +- `ProposalTimelineItem.Builder builder()` +- `String phase()` +- `String duration()` +- `String details()` + +### ProposalTimelineItem.Builder (class) +- `ProposalTimelineItem.Builder phase(String phase)` +- `ProposalTimelineItem.Builder duration(String duration)` +- `ProposalTimelineItem.Builder details(String details)` +- `ProposalTimelineItem build()` + +## com.demcha.compose.document.templates.data.schedule + +### ScheduleAssignment (record) +- `new ScheduleAssignment(String, String, String, List, String)` +- `ScheduleAssignment.Builder builder()` +- `String personId()` +- `String dayId()` +- `String categoryId()` +- `List slots()` +- `String note()` + +### ScheduleAssignment.Builder (class) +- `ScheduleAssignment.Builder personId(String personId)` +- `ScheduleAssignment.Builder dayId(String dayId)` +- `ScheduleAssignment.Builder categoryId(String categoryId)` +- `ScheduleAssignment.Builder slots(List slots)` +- `ScheduleAssignment.Builder slots(ScheduleSlot... slots)` +- `ScheduleAssignment.Builder addSlot(ScheduleSlot slot)` +- `ScheduleAssignment.Builder slot(String start, String end)` +- `ScheduleAssignment.Builder note(String note)` +- `ScheduleAssignment build()` + +### ScheduleCategory (record) +- `new ScheduleCategory(String, String, Color, Color, Color)` +- `ScheduleCategory of(String id, String label, Color fillColor, Color borderColor)` +- `ScheduleCategory of(String id, String label, Color fillColor, Color textColor, Color borderColor)` +- `ScheduleCategory.Builder builder()` +- `String id()` +- `String label()` +- `Color fillColor()` +- `Color textColor()` +- `Color borderColor()` + +### ScheduleCategory.Builder (class) +- `ScheduleCategory.Builder id(String id)` +- `ScheduleCategory.Builder label(String label)` +- `ScheduleCategory.Builder fillColor(Color fillColor)` +- `ScheduleCategory.Builder textColor(Color textColor)` +- `ScheduleCategory.Builder borderColor(Color borderColor)` +- `ScheduleCategory build()` + +### ScheduleDay (record) +- `new ScheduleDay(String, String, String, String)` +- `ScheduleDay of(String id, String label, String headerNote, String headerCategoryId)` +- `ScheduleDay.Builder builder()` +- `String id()` +- `String label()` +- `String headerNote()` +- `String headerCategoryId()` + +### ScheduleDay.Builder (class) +- `ScheduleDay.Builder id(String id)` +- `ScheduleDay.Builder label(String label)` +- `ScheduleDay.Builder headerNote(String headerNote)` +- `ScheduleDay.Builder headerCategoryId(String headerCategoryId)` +- `ScheduleDay build()` + +### ScheduleMetricRow (record) +- `new ScheduleMetricRow(String, List)` +- `ScheduleMetricRow of(String label, String... dayValues)` +- `ScheduleMetricRow.Builder builder()` +- `String label()` +- `List dayValues()` + +### ScheduleMetricRow.Builder (class) +- `ScheduleMetricRow.Builder label(String label)` +- `ScheduleMetricRow.Builder dayValues(List dayValues)` +- `ScheduleMetricRow.Builder dayValues(String... dayValues)` +- `ScheduleMetricRow.Builder addDayValue(String dayValue)` +- `ScheduleMetricRow build()` + +### SchedulePerson (record) +- `new SchedulePerson(String, String, int)` +- `SchedulePerson of(String id, String displayName, int sortOrder)` +- `SchedulePerson.Builder builder()` +- `String id()` +- `String displayName()` +- `int sortOrder()` + +### SchedulePerson.Builder (class) +- `SchedulePerson.Builder id(String id)` +- `SchedulePerson.Builder displayName(String displayName)` +- `SchedulePerson.Builder sortOrder(int sortOrder)` +- `SchedulePerson build()` + +### ScheduleSlot (record) +- `new ScheduleSlot(String, String)` +- `ScheduleSlot of(String start, String end)` +- `ScheduleSlot.Builder builder()` +- `String displayText()` +- `String start()` +- `String end()` + +### ScheduleSlot.Builder (class) +- `ScheduleSlot.Builder start(String start)` +- `ScheduleSlot.Builder end(String end)` +- `ScheduleSlot build()` + +### WeeklyScheduleData (record) +- `new WeeklyScheduleData(String, String, List, List, List, List, List, List)` +- `WeeklyScheduleData.Builder builder()` +- `String title()` +- `String weekLabel()` +- `List days()` +- `List categories()` +- `List headerMetrics()` +- `List people()` +- `List assignments()` +- `List footerNotes()` + +### WeeklyScheduleData.Builder (class) +- `WeeklyScheduleData.Builder title(String title)` +- `WeeklyScheduleData.Builder weekLabel(String weekLabel)` +- `WeeklyScheduleData.Builder days(List days)` +- `WeeklyScheduleData.Builder addDay(ScheduleDay day)` +- `WeeklyScheduleData.Builder day(Consumer spec)` +- `WeeklyScheduleData.Builder day(String id, String label, String headerNote, String headerCategoryId)` +- `WeeklyScheduleData.Builder categories(List categories)` +- `WeeklyScheduleData.Builder addCategory(ScheduleCategory category)` +- `WeeklyScheduleData.Builder category(Consumer spec)` +- `WeeklyScheduleData.Builder category(String id, String label, Color fillColor, Color borderColor)` +- `WeeklyScheduleData.Builder category(String id, String label, Color fillColor, Color textColor, Color borderColor)` +- `WeeklyScheduleData.Builder headerMetrics(List headerMetrics)` +- `WeeklyScheduleData.Builder addHeaderMetric(ScheduleMetricRow headerMetric)` +- `WeeklyScheduleData.Builder headerMetric(Consumer spec)` +- `WeeklyScheduleData.Builder headerMetric(String label, List dayValues)` +- `WeeklyScheduleData.Builder headerMetric(String label, String... dayValues)` +- `WeeklyScheduleData.Builder people(List people)` +- `WeeklyScheduleData.Builder addPerson(SchedulePerson person)` +- `WeeklyScheduleData.Builder person(Consumer spec)` +- `WeeklyScheduleData.Builder person(String id, String displayName, int sortOrder)` +- `WeeklyScheduleData.Builder assignments(List assignments)` +- `WeeklyScheduleData.Builder addAssignment(ScheduleAssignment assignment)` +- `WeeklyScheduleData.Builder assignment(Consumer spec)` +- `WeeklyScheduleData.Builder assignment(String personId, String dayId, String categoryId, ScheduleSlot... slots)` +- `WeeklyScheduleData.Builder assignment(String personId, String dayId, String categoryId, List slots, String note)` +- `WeeklyScheduleData.Builder footerNotes(List footerNotes)` +- `WeeklyScheduleData.Builder footerNote(String footerNote)` +- `WeeklyScheduleData build()` + +### WeeklyScheduleDocumentSpec (record) +- `new WeeklyScheduleDocumentSpec(WeeklyScheduleData)` +- `WeeklyScheduleDocumentSpec from(WeeklyScheduleData schedule)` +- `WeeklyScheduleDocumentSpec.Builder builder()` +- `WeeklyScheduleData schedule()` + +### WeeklyScheduleDocumentSpec.Builder (class) +- `WeeklyScheduleDocumentSpec.Builder title(String title)` +- `WeeklyScheduleDocumentSpec.Builder weekLabel(String weekLabel)` +- `WeeklyScheduleDocumentSpec.Builder days(List days)` +- `WeeklyScheduleDocumentSpec.Builder addDay(ScheduleDay day)` +- `WeeklyScheduleDocumentSpec.Builder day(Consumer spec)` +- `WeeklyScheduleDocumentSpec.Builder day(String id, String label, String headerNote, String headerCategoryId)` +- `WeeklyScheduleDocumentSpec.Builder categories(List categories)` +- `WeeklyScheduleDocumentSpec.Builder addCategory(ScheduleCategory category)` +- `WeeklyScheduleDocumentSpec.Builder category(Consumer spec)` +- `WeeklyScheduleDocumentSpec.Builder category(String id, String label, Color fillColor, Color borderColor)` +- `WeeklyScheduleDocumentSpec.Builder category(String id, String label, Color fillColor, Color textColor, Color borderColor)` +- `WeeklyScheduleDocumentSpec.Builder headerMetrics(List headerMetrics)` +- `WeeklyScheduleDocumentSpec.Builder addHeaderMetric(ScheduleMetricRow headerMetric)` +- `WeeklyScheduleDocumentSpec.Builder headerMetric(Consumer spec)` +- `WeeklyScheduleDocumentSpec.Builder headerMetric(String label, List dayValues)` +- `WeeklyScheduleDocumentSpec.Builder headerMetric(String label, String... dayValues)` +- `WeeklyScheduleDocumentSpec.Builder people(List people)` +- `WeeklyScheduleDocumentSpec.Builder addPerson(SchedulePerson person)` +- `WeeklyScheduleDocumentSpec.Builder person(Consumer spec)` +- `WeeklyScheduleDocumentSpec.Builder person(String id, String displayName, int sortOrder)` +- `WeeklyScheduleDocumentSpec.Builder assignments(List assignments)` +- `WeeklyScheduleDocumentSpec.Builder addAssignment(ScheduleAssignment assignment)` +- `WeeklyScheduleDocumentSpec.Builder assignment(Consumer spec)` +- `WeeklyScheduleDocumentSpec.Builder assignment(String personId, String dayId, String categoryId, ScheduleSlot... slots)` +- `WeeklyScheduleDocumentSpec.Builder assignment(String personId, String dayId, String categoryId, List slots, String note)` +- `WeeklyScheduleDocumentSpec.Builder footerNotes(List footerNotes)` +- `WeeklyScheduleDocumentSpec.Builder footerNote(String footerNote)` +- `WeeklyScheduleDocumentSpec build()` + +## com.demcha.compose.document.templates.invoice.presets + +### ModernInvoice (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` + +## com.demcha.compose.document.templates.proposal.presets + +### ModernProposal (class) +- `DocumentTemplate create()` +- `DocumentTemplate create(BrandTheme theme)` +- constants: `ID`, `DISPLAY_NAME`, `RECOMMENDED_MARGIN` diff --git a/knowledge/api/testing.json b/knowledge/api/testing.json new file mode 100644 index 000000000..949e73539 --- /dev/null +++ b/knowledge/api/testing.json @@ -0,0 +1,677 @@ +{ + "schemaVersion": 2, + "targetLibrary": "GraphCompose", + "surface": "testing", + "targetVersion": "2.2.x", + "verifiedAgainst": "2.2.3-SNAPSHOT", + "generator": "knowledge/tools/api-surface/extract-api.mjs", + "generatedFrom": [ + "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT", + "io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" + ], + "parameterNamesFrom": [ + "graph-compose-core:sources", + "graph-compose-templates:sources", + "graph-compose-render-pdf:sources", + "graph-compose-render-docx:sources", + "graph-compose-render-pptx:sources", + "graph-compose-testing:sources" + ], + "counts": { + "types": 5, + "methods": 32, + "constants": 2, + "generated": 8 + }, + "packages": [ + { + "name": "com.demcha.compose.testing.layout", + "types": [ + { + "name": "LayoutSnapshotAssertions", + "binaryName": "com.demcha.compose.testing.layout.LayoutSnapshotAssertions", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-testing", + "members": [ + { + "kind": "constant", + "name": "UPDATE_PROPERTY", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "assertMatches", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "DocumentSession", + "name": "document" + }, + { + "type": "String", + "name": "snapshotPath" + } + ] + }, + { + "kind": "method", + "name": "assertMatches", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "DocumentSession", + "name": "document" + }, + { + "type": "String", + "name": "snapshotName" + }, + { + "type": "String...", + "name": "folders" + } + ] + }, + { + "kind": "method", + "name": "assertMatches", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "DocumentSession", + "name": "document" + }, + { + "type": "Path", + "name": "expectedRoot" + }, + { + "type": "Path", + "name": "actualRoot" + }, + { + "type": "String", + "name": "snapshotPath" + } + ] + }, + { + "kind": "method", + "name": "assertMatches", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "DocumentSession", + "name": "document" + }, + { + "type": "Path", + "name": "expectedRoot" + }, + { + "type": "Path", + "name": "actualRoot" + }, + { + "type": "String", + "name": "snapshotName" + }, + { + "type": "String...", + "name": "folders" + } + ] + }, + { + "kind": "method", + "name": "assertMatches", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "LayoutSnapshot", + "name": "snapshot" + }, + { + "type": "String", + "name": "snapshotPath" + } + ] + }, + { + "kind": "method", + "name": "assertMatches", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "LayoutSnapshot", + "name": "snapshot" + }, + { + "type": "String", + "name": "snapshotName" + }, + { + "type": "String...", + "name": "folders" + } + ] + }, + { + "kind": "method", + "name": "assertMatches", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "LayoutSnapshot", + "name": "snapshot" + }, + { + "type": "String", + "name": "snapshotName" + }, + { + "type": "String...", + "name": "folders" + } + ] + }, + { + "kind": "method", + "name": "assertMatches", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "LayoutSnapshot", + "name": "snapshot" + }, + { + "type": "Path", + "name": "expectedRoot" + }, + { + "type": "Path", + "name": "actualRoot" + }, + { + "type": "String", + "name": "snapshotPath" + } + ] + }, + { + "kind": "method", + "name": "assertMatches", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "LayoutSnapshot", + "name": "snapshot" + }, + { + "type": "Path", + "name": "expectedRoot" + }, + { + "type": "Path", + "name": "actualRoot" + }, + { + "type": "String", + "name": "snapshotPath" + } + ] + }, + { + "kind": "method", + "name": "assertMatches", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "LayoutSnapshot", + "name": "snapshot" + }, + { + "type": "Path", + "name": "expectedRoot" + }, + { + "type": "Path", + "name": "actualRoot" + }, + { + "type": "String", + "name": "snapshotName" + }, + { + "type": "String...", + "name": "folders" + } + ] + }, + { + "kind": "method", + "name": "assertMatches", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "LayoutSnapshot", + "name": "snapshot" + }, + { + "type": "Path", + "name": "expectedRoot" + }, + { + "type": "Path", + "name": "actualRoot" + }, + { + "type": "String", + "name": "snapshotName" + }, + { + "type": "String...", + "name": "folders" + } + ] + } + ] + }, + { + "name": "LayoutSnapshotJson", + "binaryName": "com.demcha.compose.testing.layout.LayoutSnapshotJson", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-testing", + "members": [ + { + "kind": "method", + "name": "toJson", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [ + { + "type": "LayoutDiagnosticSnapshot", + "name": "snapshot" + } + ] + }, + { + "kind": "method", + "name": "toJson", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [ + { + "type": "LayoutSnapshot", + "name": "snapshot" + } + ] + }, + { + "kind": "method", + "name": "toJson", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [ + { + "type": "LayoutSnapshot", + "name": "snapshot" + } + ] + }, + { + "kind": "method", + "name": "normalizeLineEndings", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "String", + "params": [ + { + "type": "String", + "name": "value" + } + ] + } + ] + } + ] + }, + { + "name": "com.demcha.compose.testing.visual", + "types": [ + { + "name": "ImageDiff", + "binaryName": "com.demcha.compose.testing.visual.ImageDiff", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-testing", + "members": [ + { + "kind": "method", + "name": "compare", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "ImageDiff.Result", + "params": [ + { + "type": "BufferedImage", + "name": "expected" + }, + { + "type": "BufferedImage", + "name": "actual" + }, + { + "type": "int", + "name": "perPixelTolerance" + } + ] + } + ] + }, + { + "name": "ImageDiff.Result", + "binaryName": "com.demcha.compose.testing.visual.ImageDiff$Result", + "kind": "record", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-testing", + "members": [ + { + "kind": "constructor", + "name": "Result", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": null, + "params": [ + { + "type": "boolean", + "name": null + }, + { + "type": "long", + "name": null + }, + { + "type": "int", + "name": null + }, + { + "type": "String", + "name": null + }, + { + "type": "BufferedImage", + "name": null + } + ] + }, + { + "kind": "method", + "name": "withinBudget", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "boolean", + "params": [ + { + "type": "long", + "name": "maxMismatchedPixels" + } + ] + }, + { + "kind": "method", + "name": "differs", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "boolean", + "params": [] + }, + { + "kind": "method", + "name": "mismatchedPixelCount", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "long", + "params": [] + }, + { + "kind": "method", + "name": "maxChannelDelta", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "int", + "params": [] + }, + { + "kind": "method", + "name": "summary", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "String", + "params": [] + }, + { + "kind": "method", + "name": "diffImage", + "static": false, + "origin": "generated", + "typeParameters": null, + "returns": "BufferedImage", + "params": [] + } + ] + }, + { + "name": "PdfVisualRegression", + "binaryName": "com.demcha.compose.testing.visual.PdfVisualRegression", + "kind": "class", + "modifiers": [ + "final" + ], + "artifact": "graph-compose-testing", + "members": [ + { + "kind": "constant", + "name": "APPROVE_PROPERTY", + "static": true, + "origin": "generated", + "type": "String" + }, + { + "kind": "method", + "name": "standard", + "static": true, + "origin": "source", + "typeParameters": null, + "returns": "PdfVisualRegression", + "params": [] + }, + { + "kind": "method", + "name": "baselineRoot", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfVisualRegression", + "params": [ + { + "type": "Path", + "name": "baselineRoot" + } + ] + }, + { + "kind": "method", + "name": "renderScale", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfVisualRegression", + "params": [ + { + "type": "float", + "name": "renderScale" + } + ] + }, + { + "kind": "method", + "name": "perPixelTolerance", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfVisualRegression", + "params": [ + { + "type": "int", + "name": "perPixelTolerance" + } + ] + }, + { + "kind": "method", + "name": "mismatchedPixelBudget", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "PdfVisualRegression", + "params": [ + { + "type": "long", + "name": "mismatchedPixelBudget" + } + ] + }, + { + "kind": "method", + "name": "assertMatchesBaseline", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "String", + "name": "baselineName" + }, + { + "type": "byte[]", + "name": "pdfBytes" + } + ] + }, + { + "kind": "method", + "name": "assertMatchesBaseline", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "void", + "params": [ + { + "type": "String", + "name": "baselineName" + }, + { + "type": "DocumentSession", + "name": "session" + } + ] + }, + { + "kind": "method", + "name": "renderPages", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [ + { + "type": "byte[]", + "name": "pdfBytes" + } + ] + }, + { + "kind": "method", + "name": "renderPages", + "static": false, + "origin": "source", + "typeParameters": null, + "returns": "List", + "params": [ + { + "type": "DocumentSession", + "name": "session" + } + ] + } + ] + } + ] + } + ] +} diff --git a/knowledge/api/testing.md b/knowledge/api/testing.md new file mode 100644 index 000000000..7a99a8eab --- /dev/null +++ b/knowledge/api/testing.md @@ -0,0 +1,79 @@ +--- +skillId: graphcompose-api-surface +targetLibrary: GraphCompose +targetVersion: 2.2.x +verifiedAgainst: 2.2.3-SNAPSHOT +status: active +generator: knowledge/tools/api-surface/extract-api.mjs +generatedFrom: "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" +note: "Generated from the pinned artifact's class files. Authoritative closed set: a symbol absent here does not exist for this version. Regenerate, do not hand-edit." +--- + +# GraphCompose — Public API Surface (testing) + +> **Generated from `knowledge/tools/api-surface/extract-api.mjs` — do not hand-edit.** +> This is the COMPLETE list of public methods and constants on the `testing` surface, +> read from the pinned artifact's class files — so members generated by Lombok +> (`builder()`, `toBuilder()`, getters, nested `…Builder` types) are present, which +> they cannot be when the source text is parsed instead. +> **If a member is not listed here, it does not exist — do not invent one.** +> Types marked `[beta]` carry `@Beta`: usable, but the contract can still change. +> `@Internal` types and members are excluded on purpose; `excluded.json` records each one. +> +> This is one surface of several. The others are listed beside it in +> `knowledge/api/`; a task should load the one it needs, not all of them. +> +> Ask it a question instead of reading it: +> `node knowledge/tools/api-query/api-query.mjs --search `. + +**GraphCompose version:** 2.2.3-SNAPSHOT + +Types: 5 · methods: 32 · constants: 2 · compiler-generated members: 8 + +## com.demcha.compose.testing.layout + +### LayoutSnapshotAssertions (class) +- `void assertMatches(DocumentSession document, String snapshotPath)` +- `void assertMatches(DocumentSession document, String snapshotName, String... folders)` +- `void assertMatches(DocumentSession document, Path expectedRoot, Path actualRoot, String snapshotPath)` +- `void assertMatches(DocumentSession document, Path expectedRoot, Path actualRoot, String snapshotName, String... folders)` +- `void assertMatches(LayoutSnapshot snapshot, String snapshotPath)` +- `void assertMatches(LayoutSnapshot snapshot, String snapshotName, String... folders)` +- `void assertMatches(LayoutSnapshot snapshot, String snapshotName, String... folders)` +- `void assertMatches(LayoutSnapshot snapshot, Path expectedRoot, Path actualRoot, String snapshotPath)` +- `void assertMatches(LayoutSnapshot snapshot, Path expectedRoot, Path actualRoot, String snapshotPath)` +- `void assertMatches(LayoutSnapshot snapshot, Path expectedRoot, Path actualRoot, String snapshotName, String... folders)` +- `void assertMatches(LayoutSnapshot snapshot, Path expectedRoot, Path actualRoot, String snapshotName, String... folders)` +- constants: `UPDATE_PROPERTY` + +### LayoutSnapshotJson (class) +- `String toJson(LayoutDiagnosticSnapshot snapshot)` +- `String toJson(LayoutSnapshot snapshot)` +- `String toJson(LayoutSnapshot snapshot)` +- `String normalizeLineEndings(String value)` + +## com.demcha.compose.testing.visual + +### ImageDiff (class) +- `ImageDiff.Result compare(BufferedImage expected, BufferedImage actual, int perPixelTolerance)` + +### ImageDiff.Result (record) +- `new Result(boolean, long, int, String, BufferedImage)` +- `boolean withinBudget(long maxMismatchedPixels)` +- `boolean differs()` +- `long mismatchedPixelCount()` +- `int maxChannelDelta()` +- `String summary()` +- `BufferedImage diffImage()` + +### PdfVisualRegression (class) +- `PdfVisualRegression standard()` +- `PdfVisualRegression baselineRoot(Path baselineRoot)` +- `PdfVisualRegression renderScale(float renderScale)` +- `PdfVisualRegression perPixelTolerance(int perPixelTolerance)` +- `PdfVisualRegression mismatchedPixelBudget(long mismatchedPixelBudget)` +- `void assertMatchesBaseline(String baselineName, byte[] pdfBytes)` +- `void assertMatchesBaseline(String baselineName, DocumentSession session)` +- `List renderPages(byte[] pdfBytes)` +- `List renderPages(DocumentSession session)` +- constants: `APPROVE_PROPERTY` diff --git a/knowledge/manifest.json b/knowledge/manifest.json new file mode 100644 index 000000000..baa131d85 --- /dev/null +++ b/knowledge/manifest.json @@ -0,0 +1,48 @@ +{ + "schemaVersion": 2, + "targetLibrary": "GraphCompose", + "targetVersion": "2.2.x", + "generator": "knowledge/tools/api-surface/extract-api.mjs", + "generatorVersion": "2.0.0", + "note": "Stable contract. Provenance for a particular run (commit, timestamp, artifact digests) is written to target/knowledge/provenance.json and is deliberately not tracked.", + "surfaces": [ + { + "surface": "authoring", + "json": "knowledge/api/authoring.json", + "markdown": "knowledge/api/authoring.md" + }, + { + "surface": "templates", + "json": "knowledge/api/templates.json", + "markdown": "knowledge/api/templates.md" + }, + { + "surface": "backends", + "json": "knowledge/api/backends.json", + "markdown": "knowledge/api/backends.md" + }, + { + "surface": "testing", + "json": "knowledge/api/testing.json", + "markdown": "knowledge/api/testing.md" + }, + { + "surface": "extension-spi", + "json": "knowledge/api/extension-spi.json", + "markdown": "knowledge/api/extension-spi.md" + } + ], + "classification": { + "stages": [ + "A admission: type @Internal | explicit SPI list | package @Internal | explicit exclusion | surface rule | hard error", + "B stability: type @Beta | package @Beta | stable — resolved per type, nested types separately", + "C members: member @Internal excluded | member @Beta | inherit the type" + ], + "annotations": { + "internal": "com.demcha.compose.document.api.Internal", + "beta": "com.demcha.compose.document.api.Beta" + }, + "rules": "knowledge/tools/api-surface/lib/surfaces.mjs", + "excluded": "knowledge/api/excluded.json" + } +} diff --git a/knowledge/tools/README.md b/knowledge/tools/README.md new file mode 100644 index 000000000..afd6bf82c --- /dev/null +++ b/knowledge/tools/README.md @@ -0,0 +1,170 @@ +# `knowledge/tools` — the authoritative API-surface generator + +This directory holds the generator for GraphCompose's machine-readable API +contract and the CLI that queries it. **This is the upstream copy.** AI Flow +syncs *from* here; nothing here is a mirror of anything. + +## Why it lives in this repository + +GraphCompose's public API was, until 2026-08-31, described authoritatively by a +tool in a *different* repository — while this repo shipped a regex parser +(`.llm-wiki/tools/api-index/api-index.py`) whose output was wrong and was +nonetheless quoted to agents as a closed set. A library's own API surface is the +library's to define. That is what moving the generator here fixes. + +## What is here + +| Path | Job | +|---|---| +| `api-surface/extract-api.mjs` | reads class files with `javap`, writes the surface JSON and its Markdown view | +| `api-surface/lib/javap.mjs` | drives `javap` and normalises what it prints | +| `api-surface/lib/source-names.mjs` | lifts real parameter names out of a sources jar | +| `api-surface/lib/zip.mjs` | reads a jar without unpacking it | +| `api-surface/lib/render-markdown.mjs` | renders the Markdown view *from the JSON* | +| `api-query/api-query.mjs` | answers a question about the surfaces instead of making you read them | + +## The rules + +**Never hand-edit generated output.** `knowledge/api/*.json` and the Markdown +views beside them are outputs. If an entry looks wrong, the generator is wrong — +fix it here and regenerate. A hand-edit survives exactly until the next run, and +in the meantime it makes the file look verified when it is not. This is not a +hypothetical: the defect that motivated this whole directory recurred through an +entire major version because the generated file kept being regenerated from an +unfixed generator. + +**The Markdown is a view, not a source.** `render-markdown.mjs` renders it from +the JSON, so the two cannot disagree. Read the JSON, or ask `api-query`. + +**The JSON is the contract.** Anything downstream — the CI drift gate, the +published bundle, AI Flow's version packs — reads the JSON. + +## Querying + +```powershell +node knowledge\tools\api-query\api-query.mjs --type GraphCompose +node knowledge\tools\api-query\api-query.mjs --exists GraphCompose.DocumentBuilder.pageSize +node knowledge\tools\api-query\api-query.mjs --search timeline +node knowledge\tools\api-query\api-query.mjs --surface backends --package com.demcha.compose.document.backend.fixed.pptx +``` + +Exit codes are meant to be branched on: `0` found, `3` nothing matched, `2` +usage. A `3` is a real answer — it means the symbol does not exist — and it is +the answer that stops an invented call. + +## Regenerating + +```powershell +node knowledge\tools\api-surface\extract-api.mjs --from-release 2.2.0 +``` + +`--check` compares against what is on disk and exits `1` on drift instead of +writing. That is what CI runs. + +## Provenance and carried-forward work + +`extract-api.mjs` and its `lib/` were copied **byte-for-byte** from +`C:\Dev\projects\graphcompose-ai-flow\tools\api-surface\` on 2026-08-31, so that +any later difference in behaviour is attributable to a deliberate edit rather +than to transcription. Both copies were run against 2.2.0 and produced +byte-identical `api-surface.json` and `00-api-surface.md`. + +Phase 3 then rewrote the classification and output layers on top of it: +`lib/annotations.mjs` and `lib/surfaces.mjs` are new, `buildSurface` classifies +rather than filtering by a package list, and output is one document per surface +instead of one flat allow-list. The output paths, the emitted `generator:` field +and the `--check` failure hint now name this repository. + +Phase 4 added the second input mode and split the bookkeeping. `--pack` survives +as a deprecated alias for `--out` so the AI Flow invocation keeps working; there +is nothing else carried forward. + +See `docs/private/PLAN-knowledge-pack.md`. + +## Two inputs, and why both exist + +```powershell +node knowledge\tools\api-surface\extract-api.mjs --from-reactor +node knowledge\tools\api-surface\extract-api.mjs --from-release 2.2.0 +``` + +`--from-release` resolves published jars through Maven; it is how a bundle for a +shipped version is built. `--from-reactor` reads this working tree's +`*/target/classes`, and it is what CI runs: **a gate that checks the last release +tells you nothing about the commit under review.** The two are mutually +exclusive — silently preferring one would let a gate check the wrong artifact. + +Reactor mode needs the modules built. A module that is missing is fatal rather +than skipped, because a surface quietly short one module is the exact failure +this pack exists to prevent; the error names the build command. + +Parameter names come from the sources jar in release mode and from +`src/main/java` in reactor mode, where no sources jar exists. Reading the source +tree was chosen over compiling with `-parameters`: that flag would change every +published class file to serve a documentation tool. + +## manifest vs provenance + +Four files, four jobs, and the first two must never be merged: + +| File | Tracked | Holds | +|---|---|---| +| `knowledge/manifest.json` | **yes** | schema, version line, generator version, the surface list, the classification rules | +| `target/knowledge/provenance.json` | **no** | git commit, branch, dirty flag, timestamp, per-artifact SHA-256 | + +A tracked file cannot hold the SHA of the commit it is part of — the value is +false the instant it is committed. Excluding the field from `--check` would not +make it true, only unenforced, so the split is physical rather than a rule about +which fields to compare. + +The digests are provenance, not identity. Class files are not byte-reproducible +across machines and JDK builds, so a gate comparing them would be red on every +run no matter what the API did. `--check` compares the surfaces and the manifest; +it never reads provenance, and regenerating twice a minute apart leaves it green. +What provenance is for is telling two builds of the same `2.2.1-SNAPSHOT` apart +after the fact, which the version string alone cannot do. + +`target/` is already gitignored, so provenance stays uncommitted without a rule +of its own. + +## Classification + +`lib/surfaces.mjs` holds the rules, and they run in three stages, because +admission and stability are different questions: **`@Beta` says how mature a +type is, never whether it is API at all.** + +- **A — admission.** First match wins: type `@Internal` → out; on the Extension + SPI list → in, *even from an `@Internal` package*; package `@Internal` → out; + explicit exclusion rule → out with a reason; surface rule → in; nothing + matched → **the run fails**. +- **B — stability.** Type `@Beta`, else package `@Beta`, else stable. Resolved + per type including each nested type separately: `DocumentPaint` is stable while + the records nested inside it are beta. +- **C — members.** Member `@Internal` → dropped; member `@Beta` → beta at member + level; otherwise inherit the type. + +Two things follow from this that are easy to get wrong: + +**The SPI list is authored, not derived.** `docs/api-stability.md:33-34` gives +Extension SPI and Experimental the *same* `@Beta` annotation and says the +distinction lives in the docstring. No byte-code signal separates them, so no +classifier can route between `extension-spi` and `backends` on its own. + +**Reachability decides the engine tree, and it runs after the rules, not +before.** `com.demcha.compose.engine.components` is not engine internals despite +the name — it holds `TextStyle`, `DocumentMetadata`, `ImageData`, `Padding`, +`Anchor`: value types the public API makes you construct. They are admitted +because admitted signatures mention them. Their engine-side twins +(`HeaderFooterConfig` beside the public `DocumentHeaderFooter`, +`WatermarkConfig` beside `DocumentWatermark`) are mentioned by nothing and are +excluded. Putting an exclusion rule on `engine.*` up front would drop both. + +Every exclusion is written to `knowledge/api/excluded.json` with its reason. An +exclusion nobody can see is indistinguishable from a bug. + +`api-query.mjs` is *not* a verbatim copy. It was rewritten thin against +`knowledge/api/*.json`: AI Flow's `--version` / `--project-dir` pack-pinning was +dropped (this repo describes one tree, not several released lines), the Markdown +fallback parser was dropped with it (it exists there for packs predating the +extractor), and `--surface` was added because here the API is split by surface +rather than by version. diff --git a/knowledge/tools/api-query/api-query.mjs b/knowledge/tools/api-query/api-query.mjs new file mode 100644 index 000000000..d2fd0b751 --- /dev/null +++ b/knowledge/tools/api-query/api-query.mjs @@ -0,0 +1,392 @@ +#!/usr/bin/env node +/** + * knowledge/tools/api-query/api-query.mjs — ask the surfaces a question + * instead of reading them. + * + * node knowledge/tools/api-query/api-query.mjs --type ShapeContainerBuilder + * node knowledge/tools/api-query/api-query.mjs --type TableBuilder --method column + * node knowledge/tools/api-query/api-query.mjs --exists GraphCompose.DocumentBuilder.pageSize + * node knowledge/tools/api-query/api-query.mjs --search timeline + * node knowledge/tools/api-query/api-query.mjs --constant CENTER_LEFT + * node knowledge/tools/api-query/api-query.mjs --surface authoring --package com.demcha.compose.document.dsl + * + * The surfaces under `knowledge/api/` are the closed set an author writes + * against. They are large; the answer to "does this method exist, and what is + * its signature" is a few lines of JSON. This gives that, so a lookup costs one + * call rather than a series of greps. + * + * `knowledge/api/.json` is the source — what + * `knowledge/tools/api-surface/extract-api.mjs` writes from the class files. + * The Markdown views are rendered from the same JSON, so this reads the + * structured form rather than re-parsing prose and the two cannot disagree. + * + * Adapted from the AI Flow original (`scripts/api-query.mjs`). Dropped with + * intent: the `--version` / `--project-dir` pack-pinning machinery, which + * belongs to a consumer holding several GraphCompose lines at once — this repo + * describes exactly one, the tree it is in. Dropped with it: the Markdown + * fallback parser, which exists there for packs that predate the extractor. + * Added: `--surface`, because here the API is split per surface rather than + * per released version. + * + * Exit codes: 0 found · 3 nothing matched (so a caller can branch) · 2 usage. + */ + +import fs from "node:fs"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +const HERE = path.dirname(fileURLToPath(import.meta.url)); +const REPO_ROOT = path.resolve(HERE, "..", "..", ".."); +const API_DIR = path.join(REPO_ROOT, "knowledge", "api"); + +function usage(code = 0) { + process.stdout.write( + "usage: node knowledge/tools/api-query/api-query.mjs [--surface ] \n\n" + + " --type everything the surfaces have for a type\n" + + " --method filter to methods whose name matches\n" + + " --exists a yes/no answer with the signatures, if any\n" + + " --search types, methods and constants matching a term\n" + + " --constant which types declare a constant\n" + + " --package the types in a package\n" + + " --dump every surface as one JSON document, on stdout\n\n" + + " --surface restrict to one surface (authoring, templates,\n" + + " backends, testing, extension-spi). Default: all\n" + + " --json machine-readable (default for --dump)\n\n" + + "exit: 0 found | 3 nothing matched | 2 usage\n", + ); + process.exit(code); +} + +function parseArgs(argv) { + const out = { + surface: null, type: null, method: null, exists: null, + search: null, constant: null, package: null, dump: false, json: false, + }; + for (let i = 0; i < argv.length; i += 1) { + const a = argv[i]; + if (a === "--help" || a === "-h") usage(0); + else if (a === "--dump") out.dump = true; + else if (a === "--json") out.json = true; + else if (a === "--surface") out.surface = argv[++i]; + else if (a === "--type") out.type = argv[++i]; + else if (a === "--method") out.method = argv[++i]; + else if (a === "--exists") out.exists = argv[++i]; + else if (a === "--search") out.search = argv[++i]; + else if (a === "--constant") out.constant = argv[++i]; + else if (a === "--package") out.package = argv[++i]; + else usage(2); + } + return out; +} + +// ------------------------------------------------------------------ loading --- + +/** + * Every surface JSON, flattened into one type list. + * + * `surface` and `stability` ride on each type because "does it exist" and "is + * it something I should be calling yet" are the same question asked twice, and + * an answer that omits the second one reads as a green light. + */ +function loadSurfaces(only) { + if (!fs.existsSync(API_DIR)) { + process.stderr.write( + `[api-query] no surfaces at ${path.relative(REPO_ROOT, API_DIR)}\n` + + " Generate them first:\n" + + " node knowledge/tools/api-surface/extract-api.mjs --from-reactor\n", + ); + process.exit(1); + } + + const files = fs + .readdirSync(API_DIR) + .filter((f) => f.endsWith(".json") && f !== "excluded.json") + .filter((f) => !only || path.basename(f, ".json") === only) + .sort(); + + if (files.length === 0) { + const available = fs + .readdirSync(API_DIR) + .filter((f) => f.endsWith(".json") && f !== "excluded.json") + .map((f) => path.basename(f, ".json")); + process.stderr.write( + only + ? `[api-query] no surface "${only}". Available: ${available.join(", ") || "(none)"}\n` + : `[api-query] no surface JSON under ${path.relative(REPO_ROOT, API_DIR)}\n`, + ); + process.exit(1); + } + + const types = []; + const surfaces = []; + let verifiedAgainst = null; + + for (const file of files) { + const surface = path.basename(file, ".json"); + surfaces.push(surface); + const doc = JSON.parse(fs.readFileSync(path.join(API_DIR, file), "utf8")); + verifiedAgainst ??= doc.verifiedAgainst ?? doc.targetVersion ?? null; + + for (const pkg of doc.packages ?? []) { + for (const type of pkg.types ?? []) { + const methods = []; + const constants = []; + for (const member of type.members ?? []) { + if (member.kind === "constant") { + constants.push(member.name); + continue; + } + const params = (member.params ?? []).map((p) => (p.name ? `${p.type} ${p.name}` : p.type)); + const head = + member.kind === "constructor" + ? `new ${member.name}` + : `${member.typeParameters ? `${member.typeParameters} ` : ""}` + + `${member.returns ? `${member.returns} ` : ""}${member.name}`; + methods.push({ + signature: `${head}(${params.join(", ")})`, + name: member.name, + returns: member.returns ?? null, + parameters: params, + origin: member.origin, + static: member.static, + stability: member.stability ?? null, + }); + } + types.push({ + name: type.name, + binaryName: type.binaryName ?? null, + kind: type.kind, + package: pkg.name, + surface, + stability: type.stability ?? "stable", + methods, + constants, + }); + } + } + } + + return { + surfaces, + verifiedAgainst, + typeCount: types.length, + methodCount: types.reduce((n, t) => n + t.methods.length, 0), + constantCount: types.reduce((n, t) => n + t.constants.length, 0), + types, + }; +} + +// ---------------------------------------------------------------- answering --- + +/** Exact wins; substring is the fallback so a half-remembered name still lands. */ +function matches(name, wanted) { + if (!name) return false; + return name === wanted || name.toLowerCase().includes(wanted.toLowerCase()); +} + +function query(index, options) { + const base = { + surfaces: index.surfaces, + verifiedAgainst: index.verifiedAgainst, + }; + + if (options.exists) { + // A fully-qualified name is accepted as well as Type.method. Splitting on + // the FIRST dot would turn "com.demcha.compose.document.svg.SvgPath.of" + // into type "com" and answer "no type com — it does not exist": a + // confident, authoritative, wrong negative, from the one tool whose whole + // value is that its "no" can be trusted. + const parts = options.exists.split(".").filter(Boolean); + const methodName = parts.length > 1 ? parts[parts.length - 1] : null; + let typeName = parts.length > 1 ? parts[parts.length - 2] : null; + if (!typeName || !methodName) { + process.stderr.write("[api-query] --exists takes Type.method or a fully-qualified name\n"); + process.exit(2); + } + // A nested receiver is spelled Outer.Inner.member; prefer the nested type + // when one exists, so `GraphCompose.DocumentBuilder.pageSize` resolves to + // DocumentBuilder rather than to whatever else is called that. + const nested = parts.length > 2 ? `${parts[parts.length - 3]}.${typeName}` : null; + const type = + (nested && index.types.find((t) => t.name === nested)) || + index.types.find((t) => t.name === typeName) || + null; + if (type) typeName = type.name; + + const overloads = (type?.methods ?? []).filter((m) => m.name === methodName); + const constant = (type?.constants ?? []).includes(methodName); + return { + ...base, + query: { exists: options.exists }, + found: Boolean(type) && (overloads.length > 0 || constant), + type: type + ? { name: type.name, kind: type.kind, package: type.package, surface: type.surface, stability: type.stability } + : null, + overloads: overloads.map((m) => (m.stability ? `${m.signature} [${m.stability}]` : m.signature)), + isConstant: constant, + note: type + ? undefined + : `No type "${typeName}" in the surfaces — it is not public API for this tree.`, + }; + } + + if (options.constant) { + const hits = index.types + .filter((t) => t.constants.includes(options.constant)) + .map((t) => ({ type: t.name, package: t.package, kind: t.kind, surface: t.surface })); + return { ...base, query: { constant: options.constant }, found: hits.length > 0, declaredBy: hits }; + } + + if (options.package) { + const hits = index.types + .filter((t) => t.package === options.package) + .map((t) => ({ name: t.name, kind: t.kind, methods: t.methods.length, surface: t.surface, stability: t.stability })); + return { ...base, query: { package: options.package }, found: hits.length > 0, types: hits }; + } + + if (options.type) { + const type = + index.types.find((t) => t.name === options.type) ?? + index.types.find((t) => t.name.toLowerCase() === options.type.toLowerCase()); + if (!type) { + const near = index.types + .filter((t) => t.name.toLowerCase().includes(options.type.toLowerCase())) + .map((t) => t.name) + .slice(0, 8); + return { + ...base, + query: { type: options.type }, + found: false, + note: `No type "${options.type}" in the surfaces.`, + didYouMean: near, + }; + } + const methods = options.method + ? type.methods.filter((m) => matches(m.name, options.method)) + : type.methods; + return { + ...base, + query: { type: options.type, method: options.method ?? undefined }, + found: methods.length > 0 || type.constants.length > 0, + type: { + name: type.name, + binaryName: type.binaryName, + kind: type.kind, + package: type.package, + surface: type.surface, + stability: type.stability, + }, + methods: methods.map((m) => (m.stability ? `${m.signature} [${m.stability}]` : m.signature)), + constants: type.constants, + }; + } + + if (options.method) { + const hits = []; + for (const type of index.types) { + for (const method of type.methods) { + if (matches(method.name, options.method)) { + hits.push({ type: type.name, surface: type.surface, signature: method.signature }); + } + } + } + return { + ...base, + query: { method: options.method }, + found: hits.length > 0, + matches: hits.slice(0, 60), + total: hits.length, + }; + } + + // --search: one term across everything, for when the type name is unknown. + const term = options.search.toLowerCase(); + const types = index.types.filter((t) => t.name.toLowerCase().includes(term)); + const methods = []; + const constants = []; + for (const type of index.types) { + for (const method of type.methods) { + if (method.name && method.name.toLowerCase().includes(term)) { + methods.push({ type: type.name, surface: type.surface, signature: method.signature }); + } + } + for (const constant of type.constants) { + if (constant.toLowerCase().includes(term)) constants.push({ type: type.name, constant }); + } + } + return { + ...base, + query: { search: options.search }, + found: types.length > 0 || methods.length > 0 || constants.length > 0, + types: types + .map((t) => ({ name: t.name, kind: t.kind, package: t.package, surface: t.surface, methods: t.methods.length })) + .slice(0, 30), + methods: methods.slice(0, 40), + constants: constants.slice(0, 40), + total: { types: types.length, methods: methods.length, constants: constants.length }, + }; +} + +// ------------------------------------------------------------------ output --- + +function render(answer) { + const out = []; + const beta = (s) => (s && s !== "stable" ? ` [${s}]` : ""); + + if (answer.note) out.push(answer.note); + + if (answer.type) { + out.push(`${answer.type.kind} ${answer.type.binaryName ?? answer.type.name}${beta(answer.type.stability)}`); + out.push(` surface: ${answer.type.surface}`); + } + if (answer.overloads?.length) { + out.push(" overloads:"); + for (const o of answer.overloads) out.push(` ${o}`); + } + if (answer.isConstant) out.push(" (declared as a constant)"); + if (answer.methods?.length) { + out.push(` methods (${answer.methods.length}):`); + for (const m of answer.methods) { + out.push(typeof m === "string" ? ` ${m}` : ` ${m.type}.${m.signature} (${m.surface})`); + } + } + if (answer.constants?.length) { + const list = answer.constants.map((c) => (typeof c === "string" ? c : `${c.type}.${c.constant}`)); + out.push(` constants: ${list.join(", ")}`); + } + if (answer.types?.length) { + out.push(`types (${answer.types.length}):`); + for (const t of answer.types) out.push(` ${t.kind} ${t.name}${beta(t.stability)} (${t.surface})`); + } + if (answer.declaredBy?.length) { + out.push("declared by:"); + for (const d of answer.declaredBy) out.push(` ${d.package}.${d.type} (${d.surface})`); + } + if (answer.matches?.length) { + out.push(`matches (${answer.total}):`); + for (const m of answer.matches) out.push(` ${m.type}.${m.signature} (${m.surface})`); + } + if (answer.didYouMean?.length) out.push(`did you mean: ${answer.didYouMean.join(", ")}`); + if (out.length === 0) out.push("no match"); + + return out.join("\n"); +} + +// -------------------------------------------------------------------- main --- + +const args = parseArgs(process.argv.slice(2)); +const index = loadSurfaces(args.surface); + +if (args.dump) { + process.stdout.write(`${JSON.stringify(index, null, 2)}\n`); + process.exit(0); +} + +if (!args.type && !args.method && !args.exists && !args.search && !args.constant && !args.package) { + usage(2); +} + +const answer = query(index, args); + +process.stdout.write(args.json ? `${JSON.stringify(answer, null, 2)}\n` : `${render(answer)}\n`); +process.exit(answer.found ? 0 : 3); diff --git a/knowledge/tools/api-surface/extract-api.mjs b/knowledge/tools/api-surface/extract-api.mjs new file mode 100644 index 000000000..b7ba0afa5 --- /dev/null +++ b/knowledge/tools/api-surface/extract-api.mjs @@ -0,0 +1,800 @@ +#!/usr/bin/env node +/** + * tools/api-surface/extract-api.mjs — build the authoring allow-list from the + * pinned GraphCompose artifact. + * + * node tools/api-surface/extract-api.mjs --version 2.2.0 + * node tools/api-surface/extract-api.mjs --version 2.2.0 --check + * + * The chain is: pinned artifact → this extractor → `api-surface.json` (the + * canonical machine-readable representation) → `00-api-surface.md` (generated + * from the JSON) → `scripts/api-query.mjs` (the deterministic query). One + * source of truth, two renderings of it, neither hand-edited. + * + * It replaces a regex parser that read GraphCompose's Java **source**, which + * could not see anything Lombok generates. That was not a cosmetic gap: + * `DocumentHeaderFooter`, `DocumentMetadata`, `DocumentWatermark` and + * `DocumentProtection` are Lombok value types whose entire construction path is + * generated, so the allow-list listed `DocumentMetadata (class)` with no + * members at all. Under the first invariant — "a symbol absent here does not + * exist" — an agent reading that correctly concluded the type was + * unconstructible, and page headers and footers were unreachable. + * + * Reading the class file also gives an exact definition of "generated": a + * member the bytecode has and the source does not. Those are marked + * `origin: "generated"` in the JSON and counted, so the regression test can + * assert they never silently vanish again. + * + * --check regenerates into memory and compares with what is on disk, exiting 1 + * on any drift. That is what CI runs; it needs the artifact resolvable, so it + * is skipped where it is not. + * + * Exit: 0 written (or --check clean) · 1 --check found drift · 2 usage + * 4 the artifact could not be resolved + */ + +import fs from "node:fs"; +import os from "node:os"; +import path from "node:path"; +import { spawnSync } from "node:child_process"; +import { fileURLToPath } from "node:url"; + +import { findJavap, readTypes, simplifyType } from "./lib/javap.mjs"; +import { indexParameterNames, applyParameterNames } from "./lib/source-names.mjs"; +import { openJar } from "./lib/zip.mjs"; +import { openDir, isDirectory, reactorVersion } from "./lib/tree.mjs"; +import { buildProvenance } from "./lib/provenance.mjs"; +import { renderMarkdown } from "./lib/render-markdown.mjs"; +import { readAnnotations, memberKey } from "./lib/annotations.mjs"; +import { + admit, + stability, + memberStability, + SURFACES, + inImplementationRoot, + UNREFERENCED_REASON, +} from "./lib/surfaces.mjs"; + +// This file sits at knowledge/tools/api-surface/, so the repository root is +// three levels up. It was two in the AI Flow layout the extractor came from, +// where the same script lives at tools/api-surface/ — left unchanged on arrival +// to keep that copy byte-identical, and corrected here because this is the phase +// that owns the output layout. +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..", ".."); + +const GROUP = "io.github.demchaav"; +/** + * Which artifacts carry authoring surface. The `graph-compose` artifact itself + * is an aggregator whose jar is four kilobytes of nothing — pointing the + * extractor at it produces an empty allow-list that looks like a clean run. + */ +const ARTIFACTS = [ + "graph-compose-core", + "graph-compose-templates", + "graph-compose-render-pdf", + "graph-compose-render-docx", + "graph-compose-render-pptx", + "graph-compose-testing", +]; + +/** + * Everything the classifier is allowed to look at. + * + * This is deliberately NOT the surface: it is the candidate set. Which of these + * types are API, and which surface each belongs to, is decided in + * `lib/surfaces.mjs` — here we only refuse to consider classes that are not + * GraphCompose's at all. A type inside this root that matches no rule there is a + * hard error, which is the point: the 2.0 module split dropped three modules out + * of the allow-list precisely because the scope was a hand-written package list + * that nobody remembered to extend. + */ +const CANDIDATE_ROOT = "com.demcha.compose"; + +/** + * Bumped when the extraction or classification changes shape. It rides in the + * tracked manifest so a surface can be told apart from one produced by an + * older generator, which the GraphCompose version alone cannot do: the same + * 2.2.1 read by two generators is two different documents. + */ +const GENERATOR_VERSION = "2.0.0"; + +/** Which reactor module builds which artifact, for `--from-reactor`. */ +const MODULES = { + "graph-compose-core": "core", + "graph-compose-templates": "templates", + "graph-compose-render-pdf": "render-pdf", + "graph-compose-render-docx": "render-docx", + "graph-compose-render-pptx": "render-pptx", + "graph-compose-testing": "testing", +}; + +function usage(code = 0) { + process.stdout.write( + "usage: node knowledge/tools/api-surface/extract-api.mjs [options]\n\n" + + "input, exactly one:\n" + + " --from-reactor read this working tree's */target/classes\n" + + " --from-release read a published release, resolved through Maven\n" + + " --version alias for --from-release\n\n" + + "options:\n" + + " --out write surfaces here (default: knowledge/api)\n" + + " --pack deprecated alias for --out\n" + + " --m2 local Maven repository (default: ~/.m2/repository)\n" + + " --offline never invoke Maven; fail if the artifact is not cached\n" + + " --check compare against what is on disk instead of writing\n" + + " --json print a summary as JSON\n\n" + + "exit: 0 ok | 1 --check found drift | 2 usage | 4 input unresolvable\n" + + " 5 a public type matched no classification rule\n", + ); + process.exit(code); +} + +function parseArgs(argv) { + const out = { + version: null, reactor: false, out: null, + m2: null, offline: false, check: false, json: false, + }; + for (let i = 0; i < argv.length; i += 1) { + const a = argv[i]; + if (a === "--help" || a === "-h") usage(0); + else if (a === "--check") out.check = true; + else if (a === "--json") out.json = true; + else if (a === "--offline") out.offline = true; + else if (a === "--from-reactor") out.reactor = true; + else if (a === "--from-release" || a === "--version") out.version = argv[++i]; + else if (a === "--out" || a === "--pack") out.out = argv[++i]; + else if (a === "--m2") out.m2 = argv[++i]; + else usage(2); + } + // The two inputs describe different things — a release and a working tree — + // and silently preferring one would make a CI gate check the wrong artifact. + if (out.reactor && out.version) { + process.stderr.write("[extract-api] --from-reactor and --from-release are exclusive\n"); + process.exit(2); + } + return out; +} + +// --- artifact resolution ----------------------------------------------------- + +function artifactPath(m2, artifact, version, classifier) { + const suffix = classifier ? `-${classifier}` : ""; + return path.join( + m2, + ...GROUP.split("."), + artifact, + version, + `${artifact}-${version}${suffix}.jar`, + ); +} + +function fetchArtifact(artifact, version, classifier) { + const coords = `${GROUP}:${artifact}:${version}${classifier ? `:jar:${classifier}` : ""}`; + const args = ["-q", "-B", "dependency:get", `-Dartifact=${coords}`]; + const run = + process.platform === "win32" + ? spawnSync("cmd.exe", ["/d", "/s", "/c", "mvn", ...args], { encoding: "utf8" }) + : spawnSync("mvn", args, { encoding: "utf8" }); + return run.status === 0; +} + +/** + * Resolve one artifact's binary jar, and its sources jar when available. + * Sources are optional: without them the surface is complete but its parameters + * are unnamed, which is a worse allow-list, not a wrong one. + */ +function resolveArtifact(artifact, version, { m2, offline }) { + const binary = artifactPath(m2, artifact, version); + if (!fs.existsSync(binary)) { + if (offline || !fetchArtifact(artifact, version)) return null; + } + if (!fs.existsSync(binary)) return null; + + const sources = artifactPath(m2, artifact, version, "sources"); + if (!fs.existsSync(sources) && !offline) fetchArtifact(artifact, version, "sources"); + + return { artifact, binary, sources: fs.existsSync(sources) ? sources : null }; +} + +/** + * Resolve every artifact from the working tree instead of from Maven. + * + * `target/classes` stands in for the binary jar and `src/main/java` for the + * sources jar; `openDir` presents both through the interface `openJar` returns, + * so nothing downstream changes. A module that has not been built is fatal + * rather than skipped: a surface silently missing a module is precisely the + * failure this whole pack exists to prevent. + */ +function resolveReactor(repoRoot) { + const resolved = []; + const missing = []; + for (const [artifact, module] of Object.entries(MODULES)) { + const binary = path.join(repoRoot, module, "target", "classes"); + if (!isDirectory(binary)) { + missing.push(`${module}/target/classes`); + continue; + } + const sources = path.join(repoRoot, module, "src", "main", "java"); + resolved.push({ + artifact, + binary, + sources: isDirectory(sources) ? sources : null, + fromDirectory: true, + }); + } + if (missing.length) { + process.stderr.write( + `[extract-api] not built: ${missing.join(", ")}\n` + + " Build the reactor slice first, then re-run:\n" + + " ./mvnw -q -DskipTests install -pl :graph-compose-core,:graph-compose-templates," + + ":graph-compose-render-pdf,:graph-compose-render-docx,:graph-compose-render-pptx," + + ":graph-compose-testing -am\n", + ); + process.exit(4); + } + return resolved; +} + +/** A jar or a directory, behind one interface. */ +const openArchive = (target) => (isDirectory(target) ? openDir(target) : openJar(target)); + +// --- surface assembly -------------------------------------------------------- + +const inCandidateScope = (binaryName) => + binaryName === CANDIDATE_ROOT || binaryName.startsWith(`${CANDIDATE_ROOT}.`); + +/** Class entries in the jar the classifier should consider. */ +function candidateClassNames(jar) { + return jar.names + .filter((entry) => entry.endsWith(".class") && !entry.endsWith("package-info.class")) + .map((entry) => entry.slice(0, -".class".length).replace(/\//g, ".")) + // A `Foo$1` is an anonymous class and a `Foo$Bar` may be a nested type that + // matters (every Lombok builder is one), so only the anonymous form is cut. + .filter((name) => !/\$\d/.test(name)) + .filter((name) => inCandidateScope(name.replace(/\$.*$/, ""))) + .sort(); +} + +/** + * Package-level annotations, read from the `package-info` classes the type list + * deliberately leaves out. + * + * These are where the boundary is actually drawn: + * `com.demcha.compose.document.layout` is package-`@Internal` and holds 125 + * classes, so this one lookup excludes more of the jar than every other rule + * combined. + */ +function readPackageAnnotations(jar) { + const byPackage = new Map(); + for (const entry of jar.names) { + if (!entry.endsWith("package-info.class")) continue; + const pkg = entry.slice(0, -"/package-info.class".length).replace(/\//g, "."); + if (!inCandidateScope(pkg)) continue; + try { + byPackage.set(pkg, readAnnotations(jar.read(entry)).type); + } catch { + byPackage.set(pkg, []); + } + } + return byPackage; +} + +const OBJECT_OVERRIDES = new Set(["toString", "hashCode", "equals", "clone", "finalize"]); +const ENUM_MECHANICS = new Set(["values", "valueOf"]); + +/** Members worth listing: what a person composing a document would call. */ +function isInteresting(member, typeKind) { + if (member.kind === "field") return false; + if (member.kind === "constant") return true; + if (OBJECT_OVERRIDES.has(member.name)) return false; + if (typeKind === "enum" && ENUM_MECHANICS.has(member.name)) return false; + if (member.name === "main") return false; + return true; +} + +/** Every type name a member mentions, as it is spelled in the surface. */ +function referencedTypeNames(type) { + const text = type.members + .map((m) => + m.kind === "constant" + ? m.type + : [m.typeParameters, m.returns, ...m.params.map((p) => p.type)].filter(Boolean).join(" "), + ) + .join(" "); + return new Set(text.match(/[A-Z][\w.]*/g) ?? []); +} + +/** + * Nested types are kept only when the authoring surface can actually reach + * them. + * + * Every Lombok `@Builder` produces one — `DocumentHeaderFooter.DocumentHeaderFooterBuilder` + * is the entire construction path and must be listed. But a jar also holds + * public nested implementation detail (`DocumentSession.RenderingContextImpl`, + * `DocumentSession.InvalidatingNodeRegistry`) that nothing returns and nobody + * should call. Listing those would pad the closed set an agent has to hold with + * types that are not authoring surface at all. + * + * "Reachable" is transitive: a builder returned by a method, and anything that + * builder in turn returns or takes. + */ +function reachableNestedTypes(all) { + const nested = new Map(all.filter((t) => t.name.includes(".")).map((t) => [t.name, t])); + const kept = new Set(); + let frontier = all.filter((t) => !t.name.includes(".")); + + while (frontier.length) { + const next = []; + for (const type of frontier) { + for (const referenced of referencedTypeNames(type)) { + if (!nested.has(referenced) || kept.has(referenced)) continue; + kept.add(referenced); + next.push(nested.get(referenced)); + } + } + frontier = next; + } + return kept; +} + +function buildSurface({ version, artifacts, javap }) { + const types = []; + + for (const resolved of artifacts) { + const jar = openArchive(resolved.binary); + const classNames = candidateClassNames(jar); + if (!classNames.length) continue; + + const packageAnnotations = readPackageAnnotations(jar); + const raw = readTypes({ javap, classpath: resolved.binary, classNames }); + + const names = resolved.sources + ? indexParameterNames(openArchive(resolved.sources), (entry) => + inCandidateScope(entry.slice(0, -".java".length).replace(/\//g, ".")), + ) + : new Map(); + + for (const type of raw) { + // A jar holds package-private and annotation types too. Neither is + // authoring surface: one cannot be named from another package, the other + // cannot be called at all. + if (!type.isPublic || type.kind === "annotation") continue; + const simple = simplifyType(type.binaryName); + const pkg = type.binaryName.replace(/\$.*$/, "").replace(/\.[^.]+$/, ""); + + let annotations = { type: [], methods: new Map(), ambiguous: [] }; + try { + annotations = readAnnotations(jar.read(`${type.binaryName.replace(/\./g, "/")}.class`)); + } catch { + // A class the jar does not hold under that name cannot be annotated + // either; it stays unannotated rather than failing the run. + } + + const members = type.members + .filter((member) => isInteresting(member, type.kind)) + .map((member) => { + const origin = resolved.sources ? applyParameterNames(names, simple, member) : "unknown"; + return { + kind: member.kind, + name: member.name, + static: Boolean(member.static), + origin, + annotations: + member.kind === "constant" + ? [] + : annotations.methods.get( + memberKey(member.name, member.params.map((prm) => simplifyType(prm.type))), + ) ?? [], + ...(member.kind === "constant" + ? { type: simplifyType(member.type) } + : { + typeParameters: member.typeParameters ? simplifyType(member.typeParameters) : null, + returns: member.returns === null ? null : simplifyType(member.returns), + params: member.params.map((prm) => ({ + type: simplifyType(prm.type), + name: prm.name, + })), + }), + }; + }); + + types.push({ + name: simple, + binaryName: type.binaryName, + package: pkg, + kind: type.kind, + modifiers: type.modifiers, + artifact: resolved.artifact, + annotations: annotations.type, + packageAnnotations: packageAnnotations.get(pkg) ?? [], + ambiguous: annotations.ambiguous, + members, + }); + } + } + + const reachable = reachableNestedTypes(types); + + // A nested type is normally kept only when the surface can reach it, which + // drops public nested implementation detail nothing returns. But an + // annotation is an explicit act of publication and outranks that heuristic: + // `DocumentPaint.LinearAxis` and `.RadialCircle` are `@Beta` records + // implementing `DocumentPaint`, and because `DocumentPaint.linear(...)` is + // declared to return the *interface*, no signature mentions them. They were + // vanishing into neither a surface nor the exclusion list — the one outcome + // this classifier is not allowed to produce. + const keepNested = (t) => reachable.has(t.name) || t.annotations.length > 0; + const candidates = types.filter((t) => !t.name.includes(".") || keepNested(t)); + + const unreachableNested = types + .filter((t) => t.name.includes(".") && !keepNested(t)) + .map((t) => ({ + binaryName: t.binaryName, + package: t.package, + kind: t.kind, + artifact: t.artifact, + reason: "nested type no admitted signature mentions", + })); + + // --- classify ------------------------------------------------------------- + const bySurface = new Map(SURFACES.map((surface) => [surface, []])); + const excluded = [...unreachableNested]; + let unclassified = []; + const ambiguous = []; + + for (const type of candidates) { + if (type.ambiguous.length) { + ambiguous.push(`${type.binaryName}: ${type.ambiguous.join(", ")}`); + } + + const verdict = admit({ + binaryName: type.binaryName, + packageName: type.package, + annotations: type.annotations, + packageAnnotations: type.packageAnnotations, + }); + + if (!verdict.admitted) { + if (verdict.reason === null) { + unclassified.push(type.binaryName); + } else { + excluded.push({ + binaryName: type.binaryName, + package: type.package, + kind: type.kind, + artifact: type.artifact, + reason: verdict.reason, + }); + } + continue; + } + + const typeStability = stability(type); + const members = []; + for (const member of type.members) { + const memberVerdict = memberStability(member.annotations, typeStability); + if (memberVerdict === null) { + excluded.push({ + binaryName: `${type.binaryName}#${member.name}`, + package: type.package, + kind: member.kind, + artifact: type.artifact, + reason: "member @Internal", + }); + continue; + } + const { annotations: _drop, ...rest } = member; + members.push(memberVerdict === "stable" ? rest : { ...rest, stability: memberVerdict }); + } + + bySurface.get(verdict.surface).push({ + name: type.name, + binaryName: type.binaryName, + package: type.package, + kind: type.kind, + modifiers: type.modifiers, + artifact: type.artifact, + ...(typeStability === "stable" ? {} : { stability: typeStability }), + members, + }); + } + + // --- second pass: types the admitted surface actually hands you ---------- + // + // `engine.components.*` is not engine internals despite its name: it holds the + // shared value types the public API makes you construct — `TextStyle`, + // `DocumentMetadata`, `HeaderFooterConfig`, `WatermarkConfig`, + // `PdfProtectionConfig` and their Lombok builders. A hand-written package list + // left every one of them out, so the allow-list described methods that take a + // `TextStyle` while denying that `TextStyle` existed. + // + // Rather than sort those packages by hand, admit what the surface reaches: + // if an admitted member mentions a type, an author needs it, and hiding it + // makes the closed set a lie. If nothing public mentions it, it is internal by + // construction. Transitive, because a builder returned by an admitted method + // hands back types of its own. + if (unclassified.length) { + const stillOut = new Map( + candidates + .filter((t) => unclassified.includes(t.binaryName)) + .map((t) => [t.name, t]), + ); + const admittedTypes = [...bySurface.values()].flat(); + let frontier = admittedTypes; + const pulled = new Set(); + + while (frontier.length) { + const next = []; + for (const type of frontier) { + for (const referenced of referencedTypeNames(type)) { + const found = stillOut.get(referenced); + if (!found || pulled.has(referenced)) continue; + pulled.add(referenced); + next.push(found); + } + } + frontier = next; + } + + for (const type of pulled.size ? [...pulled].map((n) => stillOut.get(n)) : []) { + const typeStability = stability(type); + const { annotations: _a, packageAnnotations: _p, ambiguous: _m, members: rawMembers, ...head } = type; + const members = []; + for (const member of rawMembers) { + const memberVerdict = memberStability(member.annotations, typeStability); + if (memberVerdict === null) continue; + const { annotations: _drop, ...rest } = member; + members.push(memberVerdict === "stable" ? rest : { ...rest, stability: memberVerdict }); + } + bySurface.get("authoring").push({ + ...head, + ...(typeStability === "stable" ? {} : { stability: typeStability }), + reachedVia: "referenced by admitted API", + members, + }); + } + + unclassified = unclassified.filter((n) => !pulled.has(simplifyType(n))); + } + + // What the surface never mentions, inside a package declared implementation, + // is excluded with a reason rather than failing the run. Outside those roots + // it still fails: an unruled package is the thing this whole mechanism exists + // to notice. + const stillUnclassified = []; + for (const binaryName of unclassified) { + const type = candidates.find((t) => t.binaryName === binaryName); + if (type && inImplementationRoot(type.package)) { + excluded.push({ + binaryName: type.binaryName, + package: type.package, + kind: type.kind, + artifact: type.artifact, + reason: UNREFERENCED_REASON, + }); + continue; + } + stillUnclassified.push(binaryName); + } + unclassified = stillUnclassified; + + return { version, bySurface, excluded, unclassified, ambiguous }; +} + +/** One surface document, in the shape `api-query` and the Markdown view expect. */ +function surfaceDocument({ surface, version, types, artifacts }) { + const counts = { types: 0, methods: 0, constants: 0, generated: 0 }; + for (const type of types) { + counts.types += 1; + counts.methods += type.members.filter((m) => m.kind !== "constant").length; + counts.constants += type.members.filter((m) => m.kind === "constant").length; + counts.generated += type.members.filter((m) => m.origin === "generated").length; + } + + const sorted = [...types].sort( + (a, b) => a.package.localeCompare(b.package) || a.name.localeCompare(b.name), + ); + + const packages = []; + for (const type of sorted) { + let bucket = packages[packages.length - 1]; + if (!bucket || bucket.name !== type.package) { + bucket = { name: type.package, types: [] }; + packages.push(bucket); + } + const { package: _drop, ...rest } = type; + bucket.types.push(rest); + } + + return { + schemaVersion: 2, + targetLibrary: "GraphCompose", + surface, + targetVersion: `${version.split(".").slice(0, 2).join(".")}.x`, + verifiedAgainst: version, + generator: "knowledge/tools/api-surface/extract-api.mjs", + generatedFrom: artifacts.map((a) => `${GROUP}:${a.artifact}:${version}`), + parameterNamesFrom: artifacts.filter((a) => a.sources).map((a) => `${a.artifact}:sources`), + counts, + packages, + }; +} + +// --- run --------------------------------------------------------------------- + +const args = parseArgs(process.argv.slice(2)); +if (!args.reactor && !args.version) usage(2); + +const outDir = args.out ?? path.join(repoRoot, "knowledge", "api"); +const m2 = args.m2 ?? path.join(os.homedir(), ".m2", "repository"); +const mode = args.reactor ? "reactor" : "release"; + +let version; +let resolved; + +if (args.reactor) { + version = reactorVersion(repoRoot); + resolved = resolveReactor(repoRoot); +} else { + version = args.version; + resolved = ARTIFACTS.map((artifact) => resolveArtifact(artifact, version, { m2, offline: args.offline })); + if (resolved.some((r) => r === null)) { + const missing = ARTIFACTS.filter((_, i) => resolved[i] === null); + process.stderr.write( + `[extract-api] could not resolve ${missing.join(", ")} ${version} from ${m2}` + + (args.offline ? " (offline)" : " or Maven") + + "\n", + ); + process.exit(4); + } +} + +const built = buildSurface({ version, artifacts: resolved, javap: findJavap() }); + +// A public type that matched no rule is a hard error. A silent drop is exactly +// how the 2.0 module split removed three modules from the allow-list with +// nobody noticing, so "I do not know where this belongs" has to be loud. +if (built.unclassified.length) { + process.stderr.write( + `[extract-api] ${built.unclassified.length} public type(s) matched no classification rule.\n` + + " Every public type must be admitted to a surface or excluded with a reason.\n" + + " Add a rule in knowledge/tools/api-surface/lib/surfaces.mjs:\n\n" + + built.unclassified.map((n) => ` ${n}\n`).join(""), + ); + process.exit(5); +} + +if (built.ambiguous.length) { + process.stderr.write( + `[extract-api] ${built.ambiguous.length} member key(s) collided with differing annotations:\n` + + built.ambiguous.map((n) => ` ${n}\n`).join("") + + " Refusing to guess which overload carries the annotation.\n", + ); + process.exit(5); +} + +const files = []; +for (const surface of SURFACES) { + const doc = surfaceDocument({ + surface, + version, + types: built.bySurface.get(surface), + artifacts: resolved, + }); + files.push([path.join(outDir, `${surface}.json`), `${JSON.stringify(doc, null, 2)}\n`]); + files.push([path.join(outDir, `${surface}.md`), renderMarkdown(doc)]); +} + +const excludedDoc = { + schemaVersion: 2, + verifiedAgainst: version, + generator: "knowledge/tools/api-surface/extract-api.mjs", + note: + "Public types and members deliberately kept out of every surface. An " + + "exclusion nobody can see is indistinguishable from a bug, so each one " + + "records why.", + count: built.excluded.length, + excluded: [...built.excluded].sort((a, b) => a.binaryName.localeCompare(b.binaryName)), +}; +files.push([path.join(outDir, "excluded.json"), `${JSON.stringify(excludedDoc, null, 2)}\n`]); + +/** + * The tracked manifest. Stable facts only. + * + * Nothing here changes unless a human changes something: no commit, no + * timestamp, no digest. A tracked file cannot hold the SHA of the commit it is + * part of — the value would be false the moment it is committed — and class + * digests are not reproducible across machines, so a gate comparing them would + * be red on every run. Those live in `target/knowledge/provenance.json`, which + * is never committed. + */ +const manifest = { + schemaVersion: 2, + targetLibrary: "GraphCompose", + targetVersion: `${version.split(".").slice(0, 2).join(".")}.x`, + generator: "knowledge/tools/api-surface/extract-api.mjs", + generatorVersion: GENERATOR_VERSION, + note: + "Stable contract. Provenance for a particular run (commit, timestamp, " + + "artifact digests) is written to target/knowledge/provenance.json and is " + + "deliberately not tracked.", + surfaces: SURFACES.map((surface) => ({ + surface, + json: `knowledge/api/${surface}.json`, + markdown: `knowledge/api/${surface}.md`, + })), + classification: { + stages: [ + "A admission: type @Internal | explicit SPI list | package @Internal | explicit exclusion | surface rule | hard error", + "B stability: type @Beta | package @Beta | stable — resolved per type, nested types separately", + "C members: member @Internal excluded | member @Beta | inherit the type", + ], + annotations: { + internal: "com.demcha.compose.document.api.Internal", + beta: "com.demcha.compose.document.api.Beta", + }, + rules: "knowledge/tools/api-surface/lib/surfaces.mjs", + excluded: "knowledge/api/excluded.json", + }, +}; +files.push([path.join(outDir, "..", "manifest.json"), `${JSON.stringify(manifest, null, 2)}\n`]); + +const totals = SURFACES.reduce((acc, surface) => { + acc[surface] = built.bySurface.get(surface).length; + return acc; +}, {}); + +if (args.check) { + const drift = []; + for (const [file, expected] of files) { + const actual = fs.existsSync(file) ? fs.readFileSync(file, "utf8").replace(/\r\n/g, "\n") : null; + if (actual !== expected) drift.push(path.relative(repoRoot, file)); + } + if (args.json) { + process.stdout.write(`${JSON.stringify({ version, mode, drift, totals }, null, 2)}\n`); + } else if (drift.length) { + process.stdout.write( + `[extract-api] out of date: ${drift.join(", ")}\n` + + " regenerate: node knowledge/tools/api-surface/extract-api.mjs " + + `${mode === "reactor" ? "--from-reactor" : `--from-release ${version}`}\n`, + ); + } else { + process.stdout.write(`[extract-api] ${version} surfaces are current (${mode})\n`); + } + process.exit(drift.length ? 1 : 0); +} + +fs.mkdirSync(outDir, { recursive: true }); +for (const [file, text] of files) fs.writeFileSync(file, text, "utf8"); + +// Provenance goes to target/, never beside the surfaces. +const provenanceDir = path.join(repoRoot, "target", "knowledge"); +fs.mkdirSync(provenanceDir, { recursive: true }); +fs.writeFileSync( + path.join(provenanceDir, "provenance.json"), + `${JSON.stringify( + buildProvenance({ + repoRoot, + version, + mode, + artifacts: resolved, + generatorVersion: GENERATOR_VERSION, + now: new Date().toISOString(), + }), + null, + 2, + )}\n`, + "utf8", +); + +if (args.json) { + process.stdout.write( + `${JSON.stringify({ version, mode, outDir, totals, excluded: built.excluded.length }, null, 2)}\n`, + ); +} else { + process.stdout.write( + `[extract-api] ${version} (${mode}) -> ${path.relative(repoRoot, outDir)}\n` + + SURFACES.map((surface) => ` ${surface.padEnd(14)} ${totals[surface]} types\n`).join("") + + ` excluded ${built.excluded.length}\n` + + ` provenance ${path.relative(repoRoot, provenanceDir)}/provenance.json\n`, + ); +} diff --git a/knowledge/tools/api-surface/lib/annotations.mjs b/knowledge/tools/api-surface/lib/annotations.mjs new file mode 100644 index 000000000..ef8c9aa1c --- /dev/null +++ b/knowledge/tools/api-surface/lib/annotations.mjs @@ -0,0 +1,311 @@ +/** + * knowledge/tools/api-surface/lib/annotations.mjs — read `@Internal` / `@Beta` + * off a compiled class. + * + * Why not source text: the same annotation is written two ways in this + * codebase. `document/layout/package-info.java` writes + * `@com.demcha.compose.document.api.Internal` fully qualified; + * `dsl/ShapeContainerBuilder.java` writes `@com.demcha...Beta` on a method the + * same way, while `svg/SvgIcon.java` writes a bare `@Beta`. A grep for + * `@Internal` finds one of the five annotated package-infos; a grep for + * `api\.Internal` finds six, because `document/api/package-info.java` merely + * *mentions* the annotation in a Javadoc link. One pattern under-counts, the + * other over-counts, and neither can tell an annotation from a sentence about + * one. A class file has no such ambiguity: the descriptor is one normalised + * binary name. + * + * Why not `javap -v`: it does print annotations, but only inside a full + * disassembly — 49 000 lines per 120 classes, with the annotation's own + * descriptor also appearing in the constant-pool dump, so a line-based read has + * to distinguish a declaration from its own string table while tracking which + * member block it is inside. Reading the class file directly is exact, is about + * a hundred times cheaper, and every attribute carries its own length, so + * everything uninteresting is skipped without being understood. + * + * Scope: `RuntimeVisibleAnnotations` on the class and on its methods. That is + * all the classifier consults, and both `@Internal` and `@Beta` are + * `@Retention(RUNTIME)`, so both are there. + */ + +/** Constant-pool tags whose entry is a fixed number of bytes after the tag. */ +const FIXED_WIDTH = { + 3: 4, // Integer + 4: 4, // Float + 5: 8, // Long — takes two pool slots + 6: 8, // Double — takes two pool slots + 7: 2, // Class + 8: 2, // String + 9: 4, // Fieldref + 10: 4, // Methodref + 11: 4, // InterfaceMethodref + 12: 4, // NameAndType + 15: 3, // MethodHandle + 16: 2, // MethodType + 17: 4, // Dynamic + 18: 4, // InvokeDynamic + 19: 2, // Module + 20: 2, // Package +}; + +/** Long and Double occupy two entries; the JVM spec calls this a mistake. */ +const DOUBLE_WIDTH_TAGS = new Set([5, 6]); + +class Reader { + constructor(buffer) { + this.buf = buffer; + this.pos = 0; + } + + u1() { + return this.buf.readUInt8(this.pos++); + } + + u2() { + const v = this.buf.readUInt16BE(this.pos); + this.pos += 2; + return v; + } + + u4() { + const v = this.buf.readUInt32BE(this.pos); + this.pos += 4; + return v; + } + + skip(n) { + this.pos += n; + } +} + +/** UTF8 entries by index; everything else is skipped but must be walked. */ +function readConstantPool(r) { + const count = r.u2(); + const utf8 = new Map(); + for (let i = 1; i < count; i += 1) { + const tag = r.u1(); + if (tag === 1) { + const length = r.u2(); + utf8.set(i, r.buf.toString("utf8", r.pos, r.pos + length)); + r.skip(length); + continue; + } + const width = FIXED_WIDTH[tag]; + if (width === undefined) { + throw new Error(`unknown constant-pool tag ${tag} at entry ${i}`); + } + r.skip(width); + if (DOUBLE_WIDTH_TAGS.has(tag)) i += 1; + } + return utf8; +} + +/** + * Advance past one `element_value`. Only its length matters here — the + * classifier asks whether an annotation is present, never what it says — but + * the walk has to be exact or the next annotation starts at the wrong offset. + */ +function skipElementValue(r) { + const tag = String.fromCharCode(r.u1()); + switch (tag) { + case "B": + case "C": + case "D": + case "F": + case "I": + case "J": + case "S": + case "Z": + case "s": + r.skip(2); // const_value_index + return; + case "e": + r.skip(4); // type_name_index + const_name_index + return; + case "c": + r.skip(2); // class_info_index + return; + case "@": + skipAnnotation(r); + return; + case "[": { + const n = r.u2(); + for (let i = 0; i < n; i += 1) skipElementValue(r); + return; + } + default: + throw new Error(`unknown element_value tag '${tag}'`); + } +} + +/** Read one annotation's type descriptor and step over its element pairs. */ +function readAnnotation(r, utf8) { + const typeIndex = r.u2(); + const pairs = r.u2(); + for (let i = 0; i < pairs; i += 1) { + r.skip(2); // element_name_index + skipElementValue(r); + } + return utf8.get(typeIndex) ?? null; +} + +function skipAnnotation(r) { + r.skip(2); // type_index + const pairs = r.u2(); + for (let i = 0; i < pairs; i += 1) { + r.skip(2); + skipElementValue(r); + } +} + +/** `Lcom/demcha/compose/document/api/Beta;` → `com.demcha.compose.document.api.Beta`. */ +function descriptorToBinaryName(descriptor) { + if (!descriptor || descriptor[0] !== "L" || !descriptor.endsWith(";")) return null; + return descriptor.slice(1, -1).replace(/\//g, "."); +} + +/** + * Read the annotation list out of one attribute table, and return it. Every + * other attribute is stepped over using its own declared length, so this stays + * correct against class-file features it has never heard of. + */ +function readAttributesForAnnotations(r, utf8) { + const found = []; + const count = r.u2(); + for (let i = 0; i < count; i += 1) { + const nameIndex = r.u2(); + const length = r.u4(); + const name = utf8.get(nameIndex); + if (name !== "RuntimeVisibleAnnotations") { + r.skip(length); + continue; + } + const end = r.pos + length; + const n = r.u2(); + for (let a = 0; a < n; a += 1) { + const binary = descriptorToBinaryName(readAnnotation(r, utf8)); + if (binary) found.push(binary); + } + r.pos = end; // trust the declared length over our own walk + } + return found; +} + +const PRIMITIVES = { + B: "byte", C: "char", D: "double", F: "float", + I: "int", J: "long", S: "short", Z: "boolean", V: "void", +}; + +/** + * The erased parameter types a JVM method descriptor declares, spelled the way + * `simplifyType` spells them: package dropped, nested types joined with a dot. + * + * Arity alone is not enough to identify a method here. + * `ShapeContainerBuilder` declares `path(double, double, List)` + * and `path(double, double, SvgPath)` — same name, same arity, and only the + * second is `@Beta`. Keying on arity would have to either union the two (marking + * a stable overload beta) or refuse. Erased parameter types separate them, and + * are derivable exactly from both the descriptor and javap's rendering. + */ +export function descriptorParamTypes(descriptor) { + const close = descriptor.lastIndexOf(")"); + if (descriptor[0] !== "(" || close === -1) return []; + const types = []; + let i = 1; + while (i < close) { + let arrayDepth = 0; + while (descriptor[i] === "[") { + arrayDepth += 1; + i += 1; + } + let name; + if (descriptor[i] === "L") { + const end = descriptor.indexOf(";", i); + name = descriptor.slice(i + 1, end).replace(/\//g, "."); + name = name.slice(name.lastIndexOf(".") + 1).replace(/\$/g, "."); + i = end + 1; + } else { + name = PRIMITIVES[descriptor[i]] ?? descriptor[i]; + i += 1; + } + types.push(name + "[]".repeat(arrayDepth)); + } + return types; +} + +/** + * The same key, built from a member as `javap` renders it. Generic arguments + * are dropped because a descriptor has none, and a vararg is an array. + */ +export function memberKey(name, paramTypes) { + const erased = paramTypes.map((raw) => + raw + .replace(/<[^<>]*(?:<[^<>]*>)?[^<>]*>/g, "") + .replace(/\.\.\.$/, "[]") + .trim(), + ); + return `${name}(${erased.join(",")})`; +} + +/** + * Runtime-visible annotations declared on a class and on its methods. + * + * Methods are keyed `name(ErasedParam,…)` rather than by raw descriptor, + * because the caller matches against members read by `javap`, whose rendering + * carries generic arguments a descriptor does not. Both sides reduce to the same + * erased spelling — see `descriptorParamTypes` and `memberKey`. + * + * `ambiguous` should stay empty; a key landing in it means two members reduced + * to one spelling and disagreed about their annotations, which the caller must + * refuse to guess about rather than silently pick a winner. + * + * @returns {{type: string[], methods: Map, ambiguous: string[]}} + */ +export function readAnnotations(classBytes) { + const r = new Reader(classBytes); + + if (r.u4() !== 0xcafebabe) throw new Error("not a class file"); + r.skip(4); // minor + major + + const utf8 = readConstantPool(r); + + r.skip(6); // access_flags + this_class + super_class + const interfaces = r.u2(); + r.skip(interfaces * 2); + + // Fields: walked, not collected. A field carries no classification of its own + // that the surface reads — constants inherit their declaring type's. + const fields = r.u2(); + for (let i = 0; i < fields; i += 1) { + r.skip(6); // access_flags + name_index + descriptor_index + readAttributesForAnnotations(r, utf8); + } + + const methods = new Map(); + const seen = new Map(); + const ambiguous = new Set(); + const methodCount = r.u2(); + for (let i = 0; i < methodCount; i += 1) { + r.skip(2); // access_flags + const nameIndex = r.u2(); + const descriptorIndex = r.u2(); + const annotations = readAttributesForAnnotations(r, utf8); + + const name = utf8.get(nameIndex); + const descriptor = utf8.get(descriptorIndex) ?? ""; + const key = memberKey(name, descriptorParamTypes(descriptor)); + + const previous = seen.get(key); + const signature = annotations.slice().sort().join(","); + if (previous !== undefined && previous !== signature) ambiguous.add(key); + seen.set(key, signature); + + if (annotations.length) { + const merged = new Set([...(methods.get(key) ?? []), ...annotations]); + methods.set(key, [...merged]); + } + } + + const type = readAttributesForAnnotations(r, utf8); + + return { type, methods, ambiguous: [...ambiguous] }; +} diff --git a/knowledge/tools/api-surface/lib/javap.mjs b/knowledge/tools/api-surface/lib/javap.mjs new file mode 100644 index 000000000..402787314 --- /dev/null +++ b/knowledge/tools/api-surface/lib/javap.mjs @@ -0,0 +1,261 @@ +/** + * tools/api-surface/lib/javap.mjs — read a type's real public members out of + * compiled classes. + * + * Why bytecode and not source: GraphCompose declares a good part of its + * authoring surface with Lombok. `DocumentHeaderFooter` is `@Getter + * @Builder(toBuilder = true) @AllArgsConstructor(access = PRIVATE)` over eleven + * private fields, and its source text contains exactly one public method. The + * source-regex indexer therefore emitted a type with one member and no way to + * construct it, while the class file carries `builder()`, `toBuilder()`, eleven + * getters and a nested builder with eleven setters and `build()`. An allow-list + * whose first rule is "a symbol absent here does not exist" made that API + * unreachable. + * + * `javap` ships with the JDK the harness already requires, so reading the + * pinned artifact needs nothing installed that a render does not. + * + * Bytecode has no parameter names (they are not in the class file unless + * compiled with -parameters, and these are not), so names are merged in from + * the sources jar afterwards — see source-names.mjs. Bytecode decides what + * EXISTS; source only decides what things are CALLED. + */ + +import fs from "node:fs"; +import path from "node:path"; +import { spawnSync } from "node:child_process"; + +const MODIFIERS = new Set([ + "public", + "protected", + "private", + "static", + "final", + "abstract", + "default", + "synchronized", + "native", + "strictfp", + "transient", + "volatile", +]); + +/** + * Locate javap: JAVA_HOME first (what CI sets), then PATH, then the usual + * Windows install roots. Failing loudly with the places tried beats a tool that + * silently produces an empty surface. + */ +export function findJavap({ env = process.env, platform = process.platform } = {}) { + const exe = platform === "win32" ? "javap.exe" : "javap"; + const tried = []; + + for (const home of [env.JAVA_HOME, env.JDK_HOME].filter(Boolean)) { + const candidate = path.join(home, "bin", exe); + tried.push(candidate); + if (fs.existsSync(candidate)) return candidate; + } + + const onPath = spawnSync(platform === "win32" ? "where" : "which", ["javap"], { + encoding: "utf8", + }); + if (onPath.status === 0) { + const first = onPath.stdout.split(/\r?\n/).find((line) => line.trim()); + if (first && fs.existsSync(first.trim())) return first.trim(); + } + tried.push("javap on PATH"); + + if (platform === "win32") { + for (const root of ["C:/Program Files/Java", "C:/Program Files/Eclipse Adoptium"]) { + if (!fs.existsSync(root)) continue; + const jdks = fs + .readdirSync(root) + .filter((d) => /jdk/i.test(d)) + .sort() + .reverse(); + for (const jdk of jdks) { + const candidate = path.join(root, jdk, "bin", exe); + tried.push(candidate); + if (fs.existsSync(candidate)) return candidate; + } + } + } + + throw new Error( + `javap not found. It ships with the JDK; set JAVA_HOME or put it on PATH.\nTried:\n ${tried.join("\n ")}`, + ); +} + +/** Split on `sep` at depth 0, so generic arguments stay in one piece. */ +function splitTopLevel(text, sep) { + const out = []; + let depth = 0; + let current = ""; + for (const ch of text) { + if (ch === "<" || ch === "(") depth += 1; + else if (ch === ">" || ch === ")") depth -= 1; + if (ch === sep && depth === 0) { + out.push(current); + current = ""; + continue; + } + current += ch; + } + if (current.trim() !== "" || out.length) out.push(current); + return out.map((s) => s.trim()).filter((s) => s !== ""); +} + +/** Tokenize a declaration head on spaces, keeping `<...>` groups whole. */ +function tokenizeHead(head) { + const tokens = []; + let depth = 0; + let current = ""; + for (const ch of head) { + if (ch === "<") depth += 1; + else if (ch === ">") depth -= 1; + if (ch === " " && depth === 0) { + if (current) tokens.push(current); + current = ""; + continue; + } + current += ch; + } + if (current) tokens.push(current); + return tokens; +} + +/** `com.demcha.compose.document.output.Foo$Bar` → `Foo.Bar`. */ +export function simplifyType(type) { + return type.replace(/\b(?:[a-z][\w]*\.)+([A-Z][\w$]*)/g, (_, name) => name).replace(/\$/g, "."); +} + +function parseHeader(line) { + const head = line.replace(/\s*\{\s*$/, ""); + // `extends` / `implements` decide record and enum, and are otherwise noise: + // the allow-list describes what a type offers, not its hierarchy. + const declaration = head.split(/\s+(?:extends|implements)\s+/)[0]; + const supers = head.slice(declaration.length); + + const tokens = tokenizeHead(declaration); + const modifiers = []; + while (tokens.length && MODIFIERS.has(tokens[0])) modifiers.push(tokens.shift()); + + let kind = tokens.shift(); // class | interface + const binaryName = (tokens.shift() ?? "").replace(/<.*$/, ""); + // javap has no `record`, `enum` or `@interface` keyword — it prints the + // erased form and leaves the supertype to say which it was. + if (/\bextends java\.lang\.Record\b/.test(supers)) kind = "record"; + if (/\bextends java\.lang\.Enum m !== "public"), + }; +} + +function parseMember(line, ownerBinaryName) { + const text = line.replace(/;\s*$/, "").trim(); + if (!text) return null; + + const open = text.indexOf("("); + if (open === -1) { + // A field: `public static final ` + const tokens = tokenizeHead(text); + const modifiers = []; + while (tokens.length && MODIFIERS.has(tokens[0])) modifiers.push(tokens.shift()); + if (tokens.length < 2) return null; + const name = tokens.pop(); + return { + kind: modifiers.includes("static") && modifiers.includes("final") ? "constant" : "field", + name, + static: modifiers.includes("static"), + type: tokens.join(" "), + }; + } + + // Everything from the matching `)` onwards is a throws clause. + let depth = 0; + let close = -1; + for (let i = open; i < text.length; i += 1) { + if (text[i] === "(") depth += 1; + else if (text[i] === ")") { + depth -= 1; + if (depth === 0) { + close = i; + break; + } + } + } + if (close === -1) return null; + + const paramText = text.slice(open + 1, close); + const tokens = tokenizeHead(text.slice(0, open)); + const modifiers = []; + while (tokens.length && MODIFIERS.has(tokens[0])) modifiers.push(tokens.shift()); + + let typeParameters = null; + if (tokens.length && tokens[0].startsWith("<")) typeParameters = tokens.shift(); + + if (!tokens.length) return null; + const name = tokens.pop(); + const returns = tokens.join(" "); + + const isConstructor = returns === "" && name === ownerBinaryName; + return { + kind: isConstructor ? "constructor" : "method", + name: isConstructor ? ownerBinaryName.split(/[.$]/).pop() : name, + static: modifiers.includes("static"), + typeParameters, + returns: isConstructor ? null : returns, + params: splitTopLevel(paramText, ",").map((type) => ({ type, name: null })), + }; +} + +/** + * Parse the output of `javap -public` over one or more classes. + * + * @returns {Array<{kind, binaryName, modifiers, members}>} + */ +export function parseJavap(output) { + const types = []; + let current = null; + for (const raw of output.split(/\r?\n/)) { + const line = raw.trim(); + if (!line || line.startsWith("Compiled from")) continue; + if (line === "}") { + current = null; + continue; + } + if (line.endsWith("{")) { + current = { ...parseHeader(line), members: [] }; + types.push(current); + continue; + } + if (!current) continue; + const member = parseMember(line, current.binaryName); + if (member) current.members.push(member); + } + return types; +} + +/** + * Run javap over a list of binary class names, in batches small enough for a + * Windows command line. + */ +export function readTypes({ javap, classpath, classNames, batchSize = 120 }) { + const types = []; + for (let i = 0; i < classNames.length; i += batchSize) { + const batch = classNames.slice(i, i + batchSize); + const run = spawnSync(javap, ["-public", "-cp", classpath, ...batch], { + encoding: "utf8", + maxBuffer: 64 * 1024 * 1024, + }); + if (run.status !== 0) { + throw new Error(`javap failed on batch ${i / batchSize}: ${(run.stderr || run.stdout || "").trim()}`); + } + types.push(...parseJavap(run.stdout)); + } + return types; +} diff --git a/knowledge/tools/api-surface/lib/provenance.mjs b/knowledge/tools/api-surface/lib/provenance.mjs new file mode 100644 index 000000000..4bc0e4fb7 --- /dev/null +++ b/knowledge/tools/api-surface/lib/provenance.mjs @@ -0,0 +1,103 @@ +/** + * knowledge/tools/api-surface/lib/provenance.mjs — what produced this run. + * + * Kept in its own module, and written to `target/`, because the two kinds of + * fact must not share a file: + * + * knowledge/manifest.json tracked. Stable: schema, version line, generator + * version, the surfaces, the classification rules. + * Changes only when a human changes something. + * target/knowledge/provenance.json never committed. Commit, dirty flag, + * timestamp, per-artifact digest. + * + * A tracked file cannot hold the SHA of the commit it is part of — the value is + * false the instant it is committed. Excluding the field from `--check` does not + * make it true, only unenforced, so the split is physical rather than a rule + * about which fields to compare. + * + * The digests are provenance, not identity. Class files are not byte- + * reproducible across machines and JDK builds, so comparing them in CI would + * turn the gate red on every run regardless of whether the API moved. What + * `--check` compares is the semantic surface; this file exists to tell two + * builds of the same `2.2.1-SNAPSHOT` apart afterwards, which the version string + * alone cannot do. + */ + +import crypto from "node:crypto"; +import fs from "node:fs"; +import path from "node:path"; +import { spawnSync } from "node:child_process"; + +const git = (repoRoot, args) => { + const run = spawnSync("git", ["-C", repoRoot, ...args], { encoding: "utf8" }); + return run.status === 0 ? run.stdout.trim() : null; +}; + +/** SHA-256 over a jar, or over a class directory's contents in a stable order. */ +function digest(target) { + const hash = crypto.createHash("sha256"); + const stat = fs.statSync(target); + + if (stat.isFile()) { + hash.update(fs.readFileSync(target)); + return hash.digest("hex"); + } + + const files = []; + const walk = (dir, prefix) => { + for (const entry of fs.readdirSync(dir, { withFileTypes: true }).sort((a, b) => a.name.localeCompare(b.name))) { + const relative = prefix ? `${prefix}/${entry.name}` : entry.name; + if (entry.isDirectory()) walk(path.join(dir, entry.name), relative); + else if (entry.isFile()) files.push(relative); + } + }; + walk(target, ""); + files.sort(); + + // Names as well as bytes: two trees with the same content under different + // names are not the same build. + for (const name of files) { + hash.update(name); + hash.update(fs.readFileSync(path.join(target, ...name.split("/")))); + } + return hash.digest("hex"); +} + +/** + * @param {object} args + * @param {string} args.repoRoot + * @param {string} args.version + * @param {"reactor"|"release"} args.mode + * @param {Array<{artifact: string, binary: string}>} args.artifacts + * @param {string} args.generatorVersion + * @param {string} args.now ISO timestamp, passed in so the caller owns the clock + */ +export function buildProvenance({ repoRoot, version, mode, artifacts, generatorVersion, now }) { + const commit = git(repoRoot, ["rev-parse", "HEAD"]); + const status = git(repoRoot, ["status", "--porcelain"]); + + return { + schemaVersion: 1, + note: + "Provenance for one extraction run. Never committed: a tracked file " + + "cannot hold the SHA of the commit it belongs to, and class digests are " + + "not reproducible across machines, so neither belongs in a gate.", + version, + mode, + generator: "knowledge/tools/api-surface/extract-api.mjs", + generatorVersion, + generatedAt: now, + git: { + commit, + branch: git(repoRoot, ["rev-parse", "--abbrev-ref", "HEAD"]), + // A dirty tree means the surfaces describe something that exists on one + // machine and nowhere else. Worth knowing when a bundle is questioned. + dirty: status === null ? null : status.length > 0, + }, + artifacts: artifacts.map((a) => ({ + artifact: a.artifact, + source: path.relative(repoRoot, a.binary).split(path.sep).join("/"), + sha256: digest(a.binary), + })), + }; +} diff --git a/knowledge/tools/api-surface/lib/render-markdown.mjs b/knowledge/tools/api-surface/lib/render-markdown.mjs new file mode 100644 index 000000000..cefb72e04 --- /dev/null +++ b/knowledge/tools/api-surface/lib/render-markdown.mjs @@ -0,0 +1,98 @@ +/** + * tools/api-surface/lib/render-markdown.mjs — the allow-list as prose. + * + * `api-surface.json` is the contract; this is the copy a person reads and an + * agent greps when it has no better tool to hand. It is generated from the + * JSON and never edited, so the two cannot disagree — which is the whole reason + * the JSON was introduced rather than a second parser. + * + * Deliberately no timestamp in the output. A regenerated-today field makes + * every run differ from the last, which would turn the `--check` gate into + * noise; what validates this file is the version it was read from, and that is + * in the frontmatter. + */ + +const HEADER_NOTE = + "Generated from the pinned artifact's class files. Authoritative closed set: a symbol " + + "absent here does not exist for this version. Regenerate, do not hand-edit."; + +/** + * Stability rides in the rendered line, not only in the JSON. + * + * The Markdown is what an agent greps when it has no query tool to hand, so a + * `@Beta` member that renders identically to a stable one tells it the opposite + * of the truth. `DocumentSession.toPptxBytes()` and the `SvgPath` overload of + * `ShapeContainerBuilder.path` are beta on otherwise stable types; without this + * marker both read as settled API. + */ +const mark = (stability) => (stability && stability !== "stable" ? ` [${stability}]` : ""); + +function renderMember(member) { + if (member.kind === "constant") return null; + + const params = member.params + .map((p) => (p.name ? `${p.type} ${p.name}` : p.type)) + .join(", "); + + if (member.kind === "constructor") return `new ${member.name}(${params})${mark(member.stability)}`; + + const prefix = member.typeParameters ? `${member.typeParameters} ` : ""; + const returns = member.returns ? `${member.returns} ` : ""; + return `${prefix}${returns}${member.name}(${params})${mark(member.stability)}`; +} + +export function renderMarkdown(surface) { + const out = []; + + out.push( + "---", + "skillId: graphcompose-api-surface", + `targetLibrary: ${surface.targetLibrary}`, + `targetVersion: ${surface.targetVersion}`, + `verifiedAgainst: ${surface.verifiedAgainst}`, + "status: active", + `generator: ${surface.generator}`, + `generatedFrom: "${surface.generatedFrom.join(", ")}"`, + `note: "${HEADER_NOTE}"`, + "---", + "", + `# GraphCompose — Public API Surface (${surface.surface})`, + "", + `> **Generated from \`${surface.generator}\` — do not hand-edit.**`, + `> This is the COMPLETE list of public methods and constants on the \`${surface.surface}\` surface,`, + "> read from the pinned artifact's class files — so members generated by Lombok", + "> (`builder()`, `toBuilder()`, getters, nested `…Builder` types) are present, which", + "> they cannot be when the source text is parsed instead.", + "> **If a member is not listed here, it does not exist — do not invent one.**", + "> Types marked `[beta]` carry `@Beta`: usable, but the contract can still change.", + "> `@Internal` types and members are excluded on purpose; `excluded.json` records each one.", + ">", + "> This is one surface of several. The others are listed beside it in", + "> `knowledge/api/`; a task should load the one it needs, not all of them.", + ">", + "> Ask it a question instead of reading it:", + "> `node knowledge/tools/api-query/api-query.mjs --search `.", + "", + `**GraphCompose version:** ${surface.verifiedAgainst}`, + "", + `Types: ${surface.counts.types} · methods: ${surface.counts.methods} · ` + + `constants: ${surface.counts.constants} · compiler-generated members: ${surface.counts.generated}`, + "", + ); + + for (const pkg of surface.packages) { + out.push("", `## ${pkg.name}`, ""); + for (const type of pkg.types) { + out.push(`### ${type.name} (${type.kind})${mark(type.stability)}`); + for (const member of type.members) { + const rendered = renderMember(member); + if (rendered) out.push(`- \`${rendered}\``); + } + const constants = type.members.filter((m) => m.kind === "constant").map((m) => `\`${m.name}\``); + if (constants.length) out.push(`- constants: ${constants.join(", ")}`); + out.push(""); + } + } + + return `${out.join("\n").replace(/\n{3,}/g, "\n\n").trimEnd()}\n`; +} diff --git a/knowledge/tools/api-surface/lib/source-names.mjs b/knowledge/tools/api-surface/lib/source-names.mjs new file mode 100644 index 000000000..b6ed722cb --- /dev/null +++ b/knowledge/tools/api-surface/lib/source-names.mjs @@ -0,0 +1,142 @@ +/** + * tools/api-surface/lib/source-names.mjs — parameter names, and only that. + * + * Bytecode is the authority on what exists; it just does not carry parameter + * names. `DocumentBuilder margin(float, float, float, float)` is a worse + * allow-list entry than `margin(float top, float right, float bottom, float + * left)`, and the difference is four names a reader cannot guess. + * + * So the sources jar for the same pinned coordinates is parsed for names alone. + * Nothing here can add a member: a signature the source declares and the class + * file does not is a signature that does not exist at runtime, and a signature + * the class file has and the source does not is Lombok-generated — which is the + * whole reason the extractor moved to bytecode. That second case is recorded as + * `origin: "generated"` rather than dropped, and it is what the regression test + * watches. + */ + +import { simplifyType } from "./javap.mjs"; + +const SOURCE_METHOD = /\bpublic\b(?!\s+(?:class|interface|record|enum|@))([^;{=()]*?)\(([^{;]*?)\)/gs; + +function stripComments(source) { + return source.replace(/\/\*[\s\S]*?\*\//g, "").replace(/\/\/[^\n]*/g, ""); +} + +/** Split on commas at depth 0 so `Map x` stays one parameter. */ +function splitParams(text) { + const out = []; + let depth = 0; + let current = ""; + for (const ch of text) { + if (ch === "<" || ch === "(") depth += 1; + else if (ch === ">" || ch === ")") depth -= 1; + if (ch === "," && depth === 0) { + out.push(current); + current = ""; + continue; + } + current += ch; + } + if (current.trim()) out.push(current); + return out.map((s) => s.trim()).filter(Boolean); +} + +/** + * The shape a parameter type is compared by. Annotations, `final`, varargs + * spelling and package qualification are all things the two sides spell + * differently for the same type. + */ +export function normalizeParamType(type) { + return ( + simplifyType( + type + .replace(/@\w+(\([^)]*\))?/g, "") + .replace(/\bfinal\b/g, "") + .replace(/\.\.\./g, "[]") + .replace(/\s+/g, " ") + .trim(), + ) + // A nested type is `CardWidget.Style` in bytecode and plain `Style` in the + // source that declares it, so the two never matched and eighteen widget + // methods came out unnamed and labelled generated. Comparing on the last + // segment settles it; two overloads differing only by which type encloses + // a same-named parameter would collide, and none does. + .replace(/\b[A-Z]\w*\./g, "") + .replace(/\s+/g, "") + ); +} + +const keyOf = (typeName, member, paramTypes) => + `${typeName}#${member}#${paramTypes.map(normalizeParamType).join(",")}`; + +/** + * Index every public method declaration in a sources jar by + * (type, member, parameter types) → parameter names. + * + * @param {{names: string[], read(name: string): Buffer}} sourcesJar + * @param {(entryName: string) => boolean} accept + */ +export function indexParameterNames(sourcesJar, accept = () => true) { + const index = new Map(); + + for (const entry of sourcesJar.names) { + if (!entry.endsWith(".java") || entry.endsWith("package-info.java")) continue; + if (!accept(entry)) continue; + + const typeName = entry.slice(entry.lastIndexOf("/") + 1, -".java".length); + const source = stripComments(sourcesJar.read(entry).toString("utf8")); + + for (const match of source.matchAll(SOURCE_METHOD)) { + const head = match[1].replace(/\s+/g, " ").trim(); + const params = splitParams(match[2]); + const headTokens = head.split(" ").filter(Boolean); + const member = headTokens[headTokens.length - 1]; + if (!member || !/^[A-Za-z_]\w*$/.test(member)) continue; + + const types = []; + const names = []; + for (const param of params) { + // "final Map lookup" → type "Map", name "lookup" + const cleaned = param.replace(/@\w+(\([^)]*\))?/g, "").trim(); + const split = cleaned.lastIndexOf(" "); + if (split === -1) { + types.push(cleaned); + names.push(null); + continue; + } + types.push(cleaned.slice(0, split).trim()); + names.push(cleaned.slice(split + 1).trim().replace(/\[\]$/, "")); + } + if (names.some((n) => n === null)) continue; + + // Nested types are declared inside the outer type's file, so indexing by + // the file's type name already reaches them. + index.set(keyOf(typeName, member, types), names); + } + } + + return index; +} + +/** + * Fill in parameter names on one member, and say where it came from. + * + * @returns {"source"|"generated"} whether the source declares this signature + */ +export function applyParameterNames(index, simpleTypeName, member) { + const paramTypes = (member.params ?? []).map((p) => p.type); + const name = member.kind === "constructor" ? simpleTypeName.split(".").pop() : member.name; + + // Matched only against the declaring type. A same-signature method on some + // other type would supply a plausible-looking name for a parameter it knows + // nothing about — `centerText(String text)` where the real field is + // `centerText`. An unnamed parameter is honest; a borrowed name is not. + const names = index.get(keyOf(simpleTypeName.split(".")[0], name, paramTypes)); + if (!names) return "generated"; + + member.params.forEach((param, i) => { + if (names[i]) param.name = names[i]; + }); + return "source"; +} diff --git a/knowledge/tools/api-surface/lib/surfaces.mjs b/knowledge/tools/api-surface/lib/surfaces.mjs new file mode 100644 index 000000000..3612f019a --- /dev/null +++ b/knowledge/tools/api-surface/lib/surfaces.mjs @@ -0,0 +1,231 @@ +/** + * knowledge/tools/api-surface/lib/surfaces.mjs — which surface a public type + * belongs to, and how stable it is. + * + * Two independent questions, answered in two stages, because fusing them is a + * bug that hides: `@Beta` says how mature a type is, never whether it is API at + * all. `NodeDefinition` is `@Beta` and public and sits inside package-`@Internal` + * `com.demcha.compose.document.layout`; it is Extension SPI because it is + * *named* as such below, not because it is `@Beta`. A `@Beta` type inside an + * `@Internal` package with no rule behind it stays excluded. + * + * Stage A — admission (this file's ADMISSION ladder) + * Stage B — stability (type/package `@Beta`) + * Stage C — members (member `@Internal` / `@Beta`, else inherit) + * + * Every public type must come out of Stage A with exactly one outcome. A type + * that matches nothing is a hard error, not a silent drop: a silent drop is how + * the 2.0 module split removed three modules from the allow-list without anyone + * noticing. + */ + +export const INTERNAL = "com.demcha.compose.document.api.Internal"; +export const BETA = "com.demcha.compose.document.api.Beta"; + +/** + * Extension SPI — the A2 admission list. + * + * `docs/api-stability.md:33` defines the category as the public extension + * points "authors are expected to **implement**, not only call: render-handler + * interfaces, NodeDefinition, custom Theme subtype contracts, fragment payload + * interfaces designed for extension." + * + * This list has to be authored rather than derived, and that is not a + * convenience. `api-stability.md:34` gives Extension SPI and Experimental the + * *same* `@Beta` annotation and says outright that the distinction "lives in the + * docstring on the annotated element". There is no byte-code signal that + * separates them, so no classifier can route between the two surfaces on its + * own. + * + * `PptxFragmentRenderHandler` is here rather than in `backends` even though its + * package is Experimental: it is a render-handler interface, which is the + * line-33 definition, and `PdfFragmentRenderHandler` is the identical seam at a + * different maturity. Routing one to `extension-spi` and its twin to `backends` + * would sort two identical things by how new they are — which is what the + * surface/stability split exists to stop. Maturity is carried by + * `stability: beta` instead. + */ +export const EXTENSION_SPI = new Set([ + // Named explicitly in api-stability.md:33. + "com.demcha.compose.document.layout.NodeDefinition", + // Backend seams: implement one to teach the engine a new output format. + "com.demcha.compose.document.backend.fixed.FixedLayoutBackend", + "com.demcha.compose.document.backend.fixed.FixedLayoutBackendProvider", + "com.demcha.compose.document.backend.fixed.FixedLayoutRenderer", + "com.demcha.compose.document.backend.fixed.FontMetricsProvider", + "com.demcha.compose.document.backend.fixed.MeasurementResources", + "com.demcha.compose.document.backend.semantic.SemanticBackend", + // Render-handler interfaces: implement one to draw a fragment kind yourself. + "com.demcha.compose.document.backend.fixed.pdf.PdfFragmentRenderHandler", + "com.demcha.compose.document.backend.fixed.pptx.PptxFragmentRenderHandler", +]); + +/** + * A4 — excluded by name, with a reason. + * + * This branch exists for what the annotations cannot say. + * `com.demcha.compose.document.dsl.internal` is not annotated `@Internal` at + * package level, yet `BuilderSupport` and `SemanticNameNormalizer` are public + * and are plainly not authoring API. Without A4 they reach A6 and fail the + * build — a correct signal with no way to act on it, because adding the missing + * annotation is a public-API change this tooling is not allowed to make. + * + * Every entry here is a standing admission that the source lacks an annotation + * it should have. Each should carry a follow-up issue rather than sit here + * indefinitely; the reason string is what makes that visible in + * `knowledge/api/excluded.json`. + */ +export const EXPLICIT_EXCLUSIONS = [ + { + match: (binaryName) => binaryName.startsWith("com.demcha.compose.document.dsl.internal."), + reason: + "package `document.dsl.internal` is implementation detail but carries no " + + "package-level @Internal; excluded by name until the annotation is added", + }, +]; + +/** + * A5 — the surface rules, in order. First match wins. + * + * Keyed on the package a type is declared in. Ordering matters only where one + * prefix contains another: `document.backend.fixed.pdf` must be tested before + * `document.backend`, so the more specific entries come first. + */ +export const SURFACE_RULES = [ + // --- testing ------------------------------------------------------------- + { surface: "testing", prefix: "com.demcha.compose.testing" }, + + // --- backends ------------------------------------------------------------ + // Everything public under a render backend that is not an SPI seam (A2) and + // not @Internal: the concrete backends, their options, their built-in + // handlers. Experimental ones land here too — beta is a stability, not a + // surface. + { surface: "backends", prefix: "com.demcha.compose.document.backend" }, + + // --- templates ----------------------------------------------------------- + { surface: "templates", prefix: "com.demcha.compose.document.templates" }, + + // --- authoring ----------------------------------------------------------- + // What a person composing a document calls. + { surface: "authoring", prefix: "com.demcha.compose.document.api" }, + { surface: "authoring", prefix: "com.demcha.compose.document.dsl" }, + { surface: "authoring", prefix: "com.demcha.compose.document.style" }, + { surface: "authoring", prefix: "com.demcha.compose.document.table" }, + { surface: "authoring", prefix: "com.demcha.compose.document.chart" }, + { surface: "authoring", prefix: "com.demcha.compose.document.node" }, + { surface: "authoring", prefix: "com.demcha.compose.document.image" }, + { surface: "authoring", prefix: "com.demcha.compose.document.svg" }, + { surface: "authoring", prefix: "com.demcha.compose.document.output" }, + // The layout read model. It reads like engine internals, but + // `session.layoutSnapshot()` returns these records, so leaving them out left + // an agent able to obtain a snapshot and — under the closed-set rule — not + // allowed to read a single field of it. + { surface: "authoring", prefix: "com.demcha.compose.document.snapshot" }, + { surface: "authoring", prefix: "com.demcha.compose.document.showcase" }, + { surface: "authoring", prefix: "com.demcha.compose.document.exceptions" }, + { surface: "authoring", prefix: "com.demcha.compose.font" }, + // `GraphCompose` and its nested `DocumentBuilder` — the entry point. Matched + // on the type rather than the package, because `com.demcha.compose` is the + // root of everything and admitting the package would admit the whole library. + { surface: "authoring", exactType: "com.demcha.compose.GraphCompose" }, +]; + +export const SURFACES = ["authoring", "templates", "backends", "testing", "extension-spi"]; + +/** + * Packages whose public types are implementation unless the surface reaches + * them. + * + * This is not a fifth exclusion rule — it is a statement about where the hard + * error applies. A public type these roots contain, that no admitted API + * mentions, is excluded with a reason rather than failing the run; a public type + * *outside* them that matches nothing still fails the run, because that is a + * package nobody has ruled on and silence there is how the 2.0 split lost three + * modules. + * + * It has to be consulted AFTER the reachability pass, never as an A4 rule. + * `com.demcha.compose.engine.components` is inside this root and holds + * `TextStyle`, `DocumentMetadata`, `ImageData`, `Padding` and `Anchor` — types + * the public API hands you and you must construct. Excluding the root up front + * would drop every one of them; letting reachability speak first keeps them and + * still drops their engine-side twins (`HeaderFooterConfig` beside the public + * `DocumentHeaderFooter`, `WatermarkConfig` beside `DocumentWatermark`), which + * nothing public mentions. + */ +export const IMPLEMENTATION_ROOTS = [ + "com.demcha.compose.engine", + "com.demcha.compose.document.debug", + "com.demcha.compose.document.emoji", +]; + +export const UNREFERENCED_REASON = + "implementation package, and no admitted API mentions it"; + +export const inImplementationRoot = (packageName) => + IMPLEMENTATION_ROOTS.some((root) => packageName === root || packageName.startsWith(`${root}.`)); + +const inPackage = (binaryName, prefix) => + binaryName === prefix || binaryName.startsWith(`${prefix}.`); + +/** + * Stage A. Returns `{admitted: true, surface}` or + * `{admitted: false, reason}`; `reason === null` means nothing matched, which + * the caller must treat as a hard error rather than an exclusion. + */ +export function admit(type) { + const { binaryName, packageName, annotations, packageAnnotations } = type; + + // A1 — the type says so itself. + if (annotations.includes(INTERNAL)) { + return { admitted: false, reason: "type @Internal" }; + } + + // A2 — an authored SPI seam, admitted even out of an @Internal package. + if (EXTENSION_SPI.has(binaryName)) { + return { admitted: true, surface: "extension-spi" }; + } + + // A3 — the package says so. Weaker than A2 by design: a package annotation + // was written before the type inside it was deliberately opened. + if (packageAnnotations.includes(INTERNAL)) { + return { admitted: false, reason: `package @Internal (${packageName})` }; + } + + // A4 — excluded by name, because the source has no annotation to lean on. + for (const rule of EXPLICIT_EXCLUSIONS) { + if (rule.match(binaryName)) return { admitted: false, reason: rule.reason }; + } + + // A5 — the surface rules. `exactType` matches the type and its nested types, + // so `GraphCompose` brings `GraphCompose$DocumentBuilder` with it. + for (const rule of SURFACE_RULES) { + const hit = rule.exactType + ? binaryName === rule.exactType || binaryName.startsWith(`${rule.exactType}$`) + : inPackage(packageName, rule.prefix); + if (hit) return { admitted: true, surface: rule.surface }; + } + + // A6 — nothing matched. The caller fails the run. + return { admitted: false, reason: null }; +} + +/** + * Stage B. Resolved per type — including each nested type separately, never per + * file: `DocumentPaint` is stable while the records nested inside it, + * `DocumentPaint.LinearAxis` and `.RadialCircle`, are both `@Beta`. + */ +export function stability(type) { + if (type.annotations.includes(BETA)) return "beta"; + if (type.packageAnnotations.includes(BETA)) return "beta"; + return "stable"; +} + +/** + * Stage C. `null` means the member is excluded outright; otherwise the + * stability to record on it. + */ +export function memberStability(memberAnnotations, typeStability) { + if (memberAnnotations.includes(INTERNAL)) return null; + if (memberAnnotations.includes(BETA)) return "beta"; + return typeStability; +} diff --git a/knowledge/tools/api-surface/lib/tree.mjs b/knowledge/tools/api-surface/lib/tree.mjs new file mode 100644 index 000000000..01243bb8c --- /dev/null +++ b/knowledge/tools/api-surface/lib/tree.mjs @@ -0,0 +1,85 @@ +/** + * knowledge/tools/api-surface/lib/tree.mjs — read a built module the way + * `zip.mjs` reads a jar. + * + * The extractor was written to describe a *published* release: resolve a jar + * from Maven, read its class files. That cannot describe the tree it is sitting + * in, which is what a CI drift gate has to do — a gate that checks the last + * release tells you nothing about the commit under review. + * + * A jar and a `target/classes` directory hold the same thing, so rather than + * teach the extractor a second way to read class files, this presents a + * directory through the interface `openJar` already returns: `{names, read}`, + * with entry names relative and slash-separated exactly as a zip spells them. + * Everything downstream — the annotation reader, the parameter-name indexer, + * the class lister — is unchanged and cannot tell the difference. + * + * The same adapter serves `src/main/java`, which stands in for the sources jar: + * a local build has no sources jar, and parameter names have to come from + * somewhere. Reading the source tree keeps that free, whereas compiling with + * `-parameters` would change every published class file to serve a docs tool. + */ + +import fs from "node:fs"; +import path from "node:path"; + +/** + * A directory tree, presented as `openJar` presents an archive. + * + * @param {string} root directory to walk + * @param {(name: string) => boolean} [accept] filter on the relative entry name + * @returns {{names: string[], read(name: string): Buffer, root: string}} + */ +export function openDir(root, accept = () => true) { + const names = []; + + const walk = (dir, prefix) => { + let entries; + try { + entries = fs.readdirSync(dir, { withFileTypes: true }); + } catch { + return; + } + for (const entry of entries) { + const relative = prefix ? `${prefix}/${entry.name}` : entry.name; + if (entry.isDirectory()) { + walk(path.join(dir, entry.name), relative); + } else if (entry.isFile() && accept(relative)) { + names.push(relative); + } + } + }; + + walk(root, ""); + names.sort(); + + return { + root, + names, + read: (name) => fs.readFileSync(path.join(root, ...name.split("/"))), + }; +} + +/** Whether a path is a directory, so the caller can pick the right reader. */ +export function isDirectory(target) { + try { + return fs.statSync(target).isDirectory(); + } catch { + return false; + } +} + +/** + * The `` of the reactor, read from the root `pom.xml`. + * + * The first `` element in that file is the project's own — the parent + * declaration precedes any dependency or plugin version — so this does not need + * an XML parser to be correct, and a build tool that pulls one in for a single + * field would be a dependency on the critical path of a docs check. + */ +export function reactorVersion(repoRoot) { + const pom = fs.readFileSync(path.join(repoRoot, "pom.xml"), "utf8"); + const match = pom.match(/([^<]+)<\/version>/); + if (!match) throw new Error(`no in ${path.join(repoRoot, "pom.xml")}`); + return match[1].trim(); +} diff --git a/knowledge/tools/api-surface/lib/zip.mjs b/knowledge/tools/api-surface/lib/zip.mjs new file mode 100644 index 000000000..a0b1ca120 --- /dev/null +++ b/knowledge/tools/api-surface/lib/zip.mjs @@ -0,0 +1,78 @@ +/** + * tools/api-surface/lib/zip.mjs — read entries out of a jar. + * + * A jar is a zip, and the two things the extractor needs from one are the list + * of class names it contains and the text of a `.java` file inside a sources + * jar. Both come from the central directory plus `inflateRaw`, which node has. + * + * Written rather than depended on because the repository root ships no + * dependencies at all: adding one so a build tool can open a zip would put a + * node_modules on the critical path of `api-query`, which is supposed to answer + * in milliseconds from a clean checkout. + * + * Only what a jar actually uses is supported: stored (0) and deflate (8), with + * the classic (non-zip64) central directory. A jar too large for that is a jar + * this project does not produce. + */ + +import fs from "node:fs"; +import zlib from "node:zlib"; + +const EOCD_SIGNATURE = 0x06054b50; +const CENTRAL_SIGNATURE = 0x02014b50; +const MAX_COMMENT = 0xffff; + +function findEndOfCentralDirectory(buf) { + // The record is at the end, after a comment of unknown length, so it is found + // by scanning backwards for its signature. + const from = Math.max(0, buf.length - MAX_COMMENT - 22); + for (let i = buf.length - 22; i >= from; i -= 1) { + if (buf.readUInt32LE(i) === EOCD_SIGNATURE) return i; + } + throw new Error("not a zip archive: no end-of-central-directory record"); +} + +/** + * Open a jar and index its entries. + * + * @returns {{names: string[], read(name: string): Buffer}} + */ +export function openJar(file) { + const buf = fs.readFileSync(file); + const eocd = findEndOfCentralDirectory(buf); + const count = buf.readUInt16LE(eocd + 10); + let offset = buf.readUInt32LE(eocd + 16); + + const entries = new Map(); + for (let i = 0; i < count; i += 1) { + if (buf.readUInt32LE(offset) !== CENTRAL_SIGNATURE) { + throw new Error(`corrupt central directory in ${file} at entry ${i}`); + } + const method = buf.readUInt16LE(offset + 10); + const compressedSize = buf.readUInt32LE(offset + 20); + const nameLength = buf.readUInt16LE(offset + 28); + const extraLength = buf.readUInt16LE(offset + 30); + const commentLength = buf.readUInt16LE(offset + 32); + const localHeader = buf.readUInt32LE(offset + 42); + const name = buf.toString("utf8", offset + 46, offset + 46 + nameLength); + entries.set(name, { method, compressedSize, localHeader }); + offset += 46 + nameLength + extraLength + commentLength; + } + + return { + names: [...entries.keys()], + read(name) { + const entry = entries.get(name); + if (!entry) throw new Error(`no such entry in ${file}: ${name}`); + // The local header repeats the name and extra fields with its own + // lengths, which are the ones that decide where the data starts. + const localNameLength = buf.readUInt16LE(entry.localHeader + 26); + const localExtraLength = buf.readUInt16LE(entry.localHeader + 28); + const start = entry.localHeader + 30 + localNameLength + localExtraLength; + const raw = buf.subarray(start, start + entry.compressedSize); + if (entry.method === 0) return Buffer.from(raw); + if (entry.method === 8) return zlib.inflateRawSync(raw); + throw new Error(`unsupported compression method ${entry.method} for ${name}`); + }, + }; +} diff --git a/knowledge/tools/api-surface/test/classifier.test.mjs b/knowledge/tools/api-surface/test/classifier.test.mjs new file mode 100644 index 000000000..d21b15ef4 --- /dev/null +++ b/knowledge/tools/api-surface/test/classifier.test.mjs @@ -0,0 +1,330 @@ +#!/usr/bin/env node +/** + * knowledge/tools/api-surface/test/classifier.test.mjs — the classification + * ladder, against classes this test compiles. + * + * node knowledge/tools/api-surface/test/classifier.test.mjs + * + * Exit 0 all passed · 1 a case failed · 4 the toolchain is unusable. + * + * Why fixtures rather than assertions about the real surface: a test that + * asserts `SvgIcon` is beta passes for as long as nobody edits `SvgIcon`, and + * says nothing about the rung of the ladder it happens to exercise. These + * fixtures are written for the rungs, so a rung that stops working fails here + * with a name that says which one. + * + * Why compiled during the test rather than committed `.class` files: a checked-in + * class file is a binary no reviewer can read, goes stale against the next + * class-file version, and cannot be diffed when it starts failing. `javac` is + * already required — the extractor needs `javap` from the same JDK. + * + * The real `@Internal` and `@Beta` are used, resolved from the built + * `core/target/classes`, so this exercises the annotations the library actually + * ships rather than look-alikes that could drift apart from them. + */ + +import fs from "node:fs"; +import os from "node:os"; +import path from "node:path"; +import { spawnSync } from "node:child_process"; +import { fileURLToPath } from "node:url"; + +import { findJavap } from "../lib/javap.mjs"; +import { readAnnotations, memberKey, descriptorParamTypes } from "../lib/annotations.mjs"; +import { admit, stability, memberStability, INTERNAL, BETA } from "../lib/surfaces.mjs"; +import { openDir } from "../lib/tree.mjs"; + +const HERE = path.dirname(fileURLToPath(import.meta.url)); +const REPO_ROOT = path.resolve(HERE, "..", "..", "..", ".."); +const CORE_CLASSES = path.join(REPO_ROOT, "core", "target", "classes"); + +const PKG = "fixture.knowledge"; +const INTERNAL_PKG = "fixture.knowledge.sealed"; + +// --- the fixtures ------------------------------------------------------------ + +const SOURCES = { + // A plain public type: admitted by a surface rule, stable. + [`${PKG}/PlainType.java`]: `package ${PKG}; +public final class PlainType { + public String plain() { return "x"; } +}`, + + // Type-level @Beta, and a nested type that is also @Beta — the receiver of a + // nested annotation is spelled Outer$Inner, which is the case that broke the + // regex generator this pack replaced. + [`${PKG}/BetaType.java`]: `package ${PKG}; +import com.demcha.compose.document.api.Beta; +@Beta +public final class BetaType { + public String betaMember() { return "x"; } + @Beta + public record NestedBeta(int n) {} + public record NestedPlain(int n) {} +}`, + + // A stable type carrying one @Beta member and one @Internal member, plus two + // overloads that share a name and an arity and differ only in parameter type — + // the ShapeContainerBuilder.path shape. The annotation is written fully + // qualified on one of them, as ShapeContainerBuilder writes it. + [`${PKG}/MixedMembers.java`]: `package ${PKG}; +import com.demcha.compose.document.api.Beta; +import com.demcha.compose.document.api.Internal; +import java.util.List; +public final class MixedMembers { + public String stableMember() { return "x"; } + @Beta + public String betaMember() { return "x"; } + @Internal + public String internalMember() { return "x"; } + public String overloaded(double a, double b, List c) { return "list"; } + @com.demcha.compose.document.api.Beta + public String overloaded(double a, double b, CharSequence c) { return "chars"; } +}`, + + // A package marked @Internal, holding an unannotated type and a @Beta type. + // The second is the NodeDefinition shape: deliberately opened inside a package + // that is otherwise closed. + [`${INTERNAL_PKG}/package-info.java`]: `@com.demcha.compose.document.api.Internal +package ${INTERNAL_PKG};`, + + [`${INTERNAL_PKG}/HiddenType.java`]: `package ${INTERNAL_PKG}; +public final class HiddenType { + public String hidden() { return "x"; } +}`, + + [`${INTERNAL_PKG}/OpenedSpi.java`]: `package ${INTERNAL_PKG}; +import com.demcha.compose.document.api.Beta; +@Beta +public interface OpenedSpi { + String implementMe(); +}`, +}; + +// --- harness ----------------------------------------------------------------- + +let failures = 0; +let passes = 0; + +function check(name, actual, expected) { + const a = JSON.stringify(actual); + const e = JSON.stringify(expected); + if (a === e) { + passes += 1; + return; + } + failures += 1; + process.stdout.write(` FAIL ${name}\n expected ${e}\n actual ${a}\n`); +} + +function compileFixtures(outDir) { + const srcDir = path.join(outDir, "src"); + for (const [relative, body] of Object.entries(SOURCES)) { + const file = path.join(srcDir, ...relative.split("/")); + fs.mkdirSync(path.dirname(file), { recursive: true }); + fs.writeFileSync(file, `${body}\n`, "utf8"); + } + + const classesDir = path.join(outDir, "classes"); + fs.mkdirSync(classesDir, { recursive: true }); + + const javac = path.join(path.dirname(findJavap()), process.platform === "win32" ? "javac.exe" : "javac"); + const files = Object.keys(SOURCES).map((r) => path.join(srcDir, ...r.split("/"))); + const run = spawnSync(javac, ["-nowarn", "-cp", CORE_CLASSES, "-d", classesDir, ...files], { + encoding: "utf8", + }); + if (run.status !== 0) { + process.stderr.write(`[classifier.test] javac failed:\n${run.stderr || run.stdout}\n`); + process.exit(4); + } + return classesDir; +} + +/** The annotation facts for one compiled fixture, keyed as the classifier sees them. */ +function factsFor(classesDir, binaryName) { + const entry = `${binaryName.replace(/\./g, "/")}.class`; + return readAnnotations(openDir(classesDir).read(entry)); +} + +function packageAnnotationsFor(classesDir, packageName) { + const entry = `${packageName.replace(/\./g, "/")}/package-info.class`; + try { + return readAnnotations(openDir(classesDir).read(entry)).type; + } catch { + return []; + } +} + +/** Run one type through stages A and B exactly as the extractor does. */ +function classify(classesDir, binaryName, packageName) { + const annotations = factsFor(classesDir, binaryName); + const type = { + binaryName, + packageName, + annotations: annotations.type, + packageAnnotations: packageAnnotationsFor(classesDir, packageName), + }; + const verdict = admit(type); + return { + verdict, + stability: verdict.admitted ? stability(type) : null, + methods: annotations.methods, + ambiguous: annotations.ambiguous, + }; +} + +// --- cases ------------------------------------------------------------------- + +function run() { + if (!fs.existsSync(CORE_CLASSES)) { + process.stderr.write( + `[classifier.test] ${path.relative(REPO_ROOT, CORE_CLASSES)} is not built.\n` + + " The fixtures compile against the real @Internal / @Beta, so core must be built first.\n", + ); + process.exit(4); + } + + const tmp = fs.mkdtempSync(path.join(os.tmpdir(), "gc-classifier-")); + try { + const classes = compileFixtures(tmp); + + // The fixture package matches no surface rule, so admission has to be forced + // for the cases that are about stability rather than about admission. A + // rule-matching package would make these tests depend on the surface list. + const asIfAdmitted = (binaryName, packageName) => { + const annotations = factsFor(classes, binaryName); + return { + annotations: annotations.type, + packageAnnotations: packageAnnotationsFor(classes, packageName), + methods: annotations.methods, + ambiguous: annotations.ambiguous, + }; + }; + + // A6 — a type matching no rule is unclassified, which is what makes the + // extractor exit non-zero rather than quietly shipping a smaller surface. + check( + "A6 unruled package is unclassified (not merely excluded)", + classify(classes, `${PKG}.PlainType`, PKG).verdict, + { admitted: false, reason: null }, + ); + + // A3 — a package-@Internal type with no annotation of its own. + check( + "A3 package @Internal excludes an unannotated type", + classify(classes, `${INTERNAL_PKG}.HiddenType`, INTERNAL_PKG).verdict, + { admitted: false, reason: `package @Internal (${INTERNAL_PKG})` }, + ); + + // A1 — the type's own @Internal, tested through a member below; here the + // package-level path is the one that must not swallow an SPI type. + // A2 beats A3: without an SPI rule this @Beta type stays out. + check( + "A2 absent: @Beta inside an @Internal package is NOT admitted by its @Beta", + classify(classes, `${INTERNAL_PKG}.OpenedSpi`, INTERNAL_PKG).verdict, + { admitted: false, reason: `package @Internal (${INTERNAL_PKG})` }, + ); + + // B1 — type-level @Beta. + check( + "B1 type-level @Beta", + stability(asIfAdmitted(`${PKG}.BetaType`, PKG)), + "beta", + ); + + // B1 on a NESTED type, whose annotation receiver is Outer$Inner. Its + // enclosing type is beta here, but the point is that the nested class file + // carries its own annotation and is read separately. + check( + "B1 nested @Beta (receiver is Outer$Inner)", + stability(asIfAdmitted(`${PKG}.BetaType$NestedBeta`, PKG)), + "beta", + ); + + // B3 — a nested type with no annotation of its own is not beta because its + // enclosing type is. Stability is per type, never per file. + check( + "B3 nested type is NOT infected by its enclosing type", + stability(asIfAdmitted(`${PKG}.BetaType$NestedPlain`, PKG)), + "stable", + ); + + // B2 — package-level @Beta would be inherited. The fixture package carries + // @Internal rather than @Beta, so this asserts the mechanism directly. + check( + "B2 package annotation is visible to the classifier", + packageAnnotationsFor(classes, INTERNAL_PKG), + [INTERNAL], + ); + + // B3 — a plain type. + check("B3 unannotated type is stable", stability(asIfAdmitted(`${PKG}.PlainType`, PKG)), "stable"); + + // --- Stage C --- + const mixed = asIfAdmitted(`${PKG}.MixedMembers`, PKG); + const memberAnnotations = (name, params) => mixed.methods.get(memberKey(name, params)) ?? []; + + check( + "C1 member @Internal is dropped", + memberStability(memberAnnotations("internalMember", []), "stable"), + null, + ); + check( + "C2 member @Beta on a stable type", + memberStability(memberAnnotations("betaMember", []), "stable"), + "beta", + ); + check( + "C3 unannotated member inherits the type", + memberStability(memberAnnotations("stableMember", []), "beta"), + "beta", + ); + check( + "C3 unannotated member of a stable type stays stable", + memberStability(memberAnnotations("stableMember", []), "stable"), + "stable", + ); + + // The overload pair: same name, same arity, one annotated — and the + // annotation written fully qualified, as ShapeContainerBuilder writes it. + check( + "C2 overload discrimination: List overload is stable", + memberStability(memberAnnotations("overloaded", ["double", "double", "List"]), "stable"), + "stable", + ); + check( + "C2 overload discrimination: CharSequence overload is beta", + memberStability(memberAnnotations("overloaded", ["double", "double", "CharSequence"]), "stable"), + "beta", + ); + check( + "erased-type keying leaves no ambiguity to guess about", + mixed.ambiguous, + [], + ); + + // The keying itself, since both sides of it have to agree for the above to + // mean anything. + check( + "descriptor erasure matches javap's rendering", + memberKey("overloaded", descriptorParamTypes("(DDLjava/util/List;)Ljava/lang/String;")), + memberKey("overloaded", ["double", "double", "List"]), + ); + + // The annotation constants the ladder is keyed on must be the ones the + // library ships; a rename would otherwise silently classify everything stable. + check("@Internal binary name is the shipped one", INTERNAL, "com.demcha.compose.document.api.Internal"); + check("@Beta binary name is the shipped one", BETA, "com.demcha.compose.document.api.Beta"); + } finally { + fs.rmSync(tmp, { recursive: true, force: true }); + } + + process.stdout.write( + failures + ? `\n[classifier.test] ${failures} failed, ${passes} passed\n` + : `[classifier.test] ${passes} passed\n`, + ); + process.exit(failures ? 1 : 0); +} + +run(); From 2dadb8fac4db221869ec21d57262dab77191b77b Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Mon, 31 Aug 2026 17:42:19 +0100 Subject: [PATCH 02/11] feat(knowledge): let a page state what it promises, and hold it to it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "Which pages does this API change invalidate" is answered today by reading them. That does not scale, and it is the question the whole pack exists to turn into a lookup: a symbol lands in a changeset, an index says which pages assert it, and only those get reviewed. A claim is an HTML comment beside the prose that makes it: Three storage options were weighed. Front-matter loses on evidence: none of the 80 tracked public pages carries any and there is no Jekyll or Pages config, so those pages are read straight from GitHub, where front-matter renders as a rule and literal key: value text at the top of every one of them. An external file keyed by page path plus anchor loses because the key breaks silently when a heading is edited, and it would need a YAML parser in a repository that ships no dependencies. A marker is invisible to readers, travels with the paragraph, costs one regex — and is the convention doc-example already established here. Enforcement is asymmetric on purpose. A claimed symbol that no surface has fails the build: the page describes API a reader will try to compile. A symbol an example calls but does not claim is only reported. Symmetric enforcement would demand a claim for every incidental type in every snippet, and the predictable result is that nobody reads the output. A missing claim costs coverage; a false claim costs trust. Proofs are resolved, not just parsed. test: must name a real JUnit class and snippet: a real doc-example id, so a proof left behind by a rename fails here rather than quietly holding nothing up. probe: and render: are accepted but unresolved until their registries exist — refusing them now would only push authors toward the two kinds that happen to be finished. A behaviour claim without a proof is refused outright. Signatures are checked against the surfaces and intents are resolved by routing, but a claim that the engine *does* something — throws, refuses to nest, falls back — is invisible in every signature and has nothing holding it up but a test. Seeded on docs/recipes/tables.md: 15 claims whose four behaviours point at the three tests that page already names in prose. The suggestion channel then proposes seven more symbols it calls without claiming. Both suites are plain Node, no framework, consistent with hand-writing zip.mjs rather than adding a dependency. Three mutations were tried against each and all six turn them red, including reverting the resolver to split on the first dot — which credits GraphCompose with DocumentBuilder's members, the defect this pack replaced. --- .github/workflows/ci.yml | 12 + docs/recipes/tables.md | 20 ++ knowledge/claims/index.json | 142 ++++++++ knowledge/tools/claims/check-claims.mjs | 359 ++++++++++++++++++++ knowledge/tools/claims/lib/claims.mjs | 158 +++++++++ knowledge/tools/claims/test/claims.test.mjs | 145 ++++++++ 6 files changed, 836 insertions(+) create mode 100644 knowledge/claims/index.json create mode 100644 knowledge/tools/claims/check-claims.mjs create mode 100644 knowledge/tools/claims/lib/claims.mjs create mode 100644 knowledge/tools/claims/test/claims.test.mjs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f6c250c4e..a51a7f902 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -237,6 +237,18 @@ jobs: if: matrix.java == '17' run: node knowledge/tools/api-surface/extract-api.mjs --from-reactor --check + - name: Knowledge pack — claim parser fixtures + if: matrix.java == '17' + run: node knowledge/tools/claims/test/claims.test.mjs + + # A claim is a promise a published page makes to a reader. This fails when + # a page names API that no surface has — which a reader would discover by + # trying to compile it — and when a proof points at a test that has since + # been renamed away. Missing claims are only ever reported, never failed. + - name: Knowledge pack — documentation claims hold + if: matrix.java == '17' + run: node knowledge/tools/claims/check-claims.mjs --check + - name: Generate Javadoc # Run only on the baseline JDK — Javadoc output is identical # across JVMs and one pass is enough to catch broken @link diff --git a/docs/recipes/tables.md b/docs/recipes/tables.md index d0bf4173f..0c72eb431 100644 --- a/docs/recipes/tables.md +++ b/docs/recipes/tables.md @@ -22,6 +22,11 @@ table paginates. ## Cell content — one line, several lines, or a node + + + + + Three factories, three shapes. Pick by what the cell holds, not by what the text looks like: @@ -62,6 +67,9 @@ child shorter than one page's content area. ## Row span — merge a cell vertically + + + Spanning cells declare how many rows they cover via `rowSpan(int)`. The layout layer skips occupied grid positions when interpreting subsequent source rows, so authors only specify the cells that are @@ -98,6 +106,10 @@ remaining rows / columns, or leaves a gap. ## Zebra — alternating row fills + + + + `zebra(odd, even)` paints odd-indexed rows (0, 2, 4 — first, third, fifth visually) in one fill and even-indexed rows (1, 3, 5) in another. Either argument may be `null` to skip painting that parity. @@ -134,6 +146,8 @@ already have an explicit `rowStyle(idx, ...)` override, so ## Totals row — bold + subtle fill + + `totalRow(values...)` appends the row at the end of the table and assigns a default totals style (bold text + a subtle gray-blue fill). A two-arg overload takes a custom `DocumentTableStyle` for branded @@ -167,6 +181,12 @@ regardless of parity. ## Repeated header on page break + + + + + + `repeatHeader()` repeats the first row at the top of every continuation page when the table is split across pages. `repeatHeader(int)` repeats N leading rows — useful when you have diff --git a/knowledge/claims/index.json b/knowledge/claims/index.json new file mode 100644 index 000000000..2fc8bb8ec --- /dev/null +++ b/knowledge/claims/index.json @@ -0,0 +1,142 @@ +{ + "schemaVersion": 1, + "note": "Generated from claim markers in docs/. Given a symbol, capability or behaviour, this says which pages assert it — so an API change resolves to a page set by intersection rather than by reading everything.", + "generator": "knowledge/tools/claims/check-claims.mjs", + "counts": { + "pagesWithClaims": 1, + "symbol": 7, + "capability": 4, + "behavior": 4 + }, + "claims": { + "symbol": { + "DocumentTableCell.lines": [ + { + "page": "docs/recipes/tables.md", + "line": 27, + "heading": "Cell content — one line, several lines, or a node", + "surface": "authoring", + "stability": "stable" + } + ], + "DocumentTableCell.node": [ + { + "page": "docs/recipes/tables.md", + "line": 28, + "heading": "Cell content — one line, several lines, or a node", + "surface": "authoring", + "stability": "stable" + } + ], + "DocumentTableCell.text": [ + { + "page": "docs/recipes/tables.md", + "line": 26, + "heading": "Cell content — one line, several lines, or a node", + "surface": "authoring", + "stability": "stable" + } + ], + "TableBuilder.headerRow": [ + { + "page": "docs/recipes/tables.md", + "line": 186, + "heading": "Repeated header on page break", + "surface": "authoring", + "stability": "stable" + } + ], + "TableBuilder.repeatHeader": [ + { + "page": "docs/recipes/tables.md", + "line": 185, + "heading": "Repeated header on page break", + "surface": "authoring", + "stability": "stable" + } + ], + "TableBuilder.totalRow": [ + { + "page": "docs/recipes/tables.md", + "line": 149, + "heading": "Totals row — bold + subtle fill", + "surface": "authoring", + "stability": "stable" + } + ], + "TableBuilder.zebra": [ + { + "page": "docs/recipes/tables.md", + "line": 110, + "heading": "Zebra — alternating row fills", + "surface": "authoring", + "stability": "stable" + } + ] + }, + "capability": { + "table.cell-content": [ + { + "page": "docs/recipes/tables.md", + "line": 25, + "heading": "Cell content — one line, several lines, or a node" + } + ], + "table.repeat-header-across-pages": [ + { + "page": "docs/recipes/tables.md", + "line": 184, + "heading": "Repeated header on page break" + } + ], + "table.row-span": [ + { + "page": "docs/recipes/tables.md", + "line": 70, + "heading": "Row span — merge a cell vertically" + } + ], + "table.zebra-striping": [ + { + "page": "docs/recipes/tables.md", + "line": 109, + "heading": "Zebra — alternating row fills" + } + ] + }, + "behavior": { + "table.explicit-row-style-beats-zebra": [ + { + "page": "docs/recipes/tables.md", + "line": 111, + "heading": "Zebra — alternating row fills", + "proof": "test:TableBuilderZebraAndTotalsTest" + } + ], + "table.header-repeats-on-every-continuation-page": [ + { + "page": "docs/recipes/tables.md", + "line": 187, + "heading": "Repeated header on page break", + "proof": "test:TableBuilderRepeatHeaderTest" + } + ], + "table.repeat-header-defaults-to-zero": [ + { + "page": "docs/recipes/tables.md", + "line": 188, + "heading": "Repeated header on page break", + "proof": "test:TableBuilderRepeatHeaderTest" + } + ], + "table.spanning-cell-height-is-sum-of-covered-rows": [ + { + "page": "docs/recipes/tables.md", + "line": 71, + "heading": "Row span — merge a cell vertically", + "proof": "test:TableBuilderRowSpanTest" + } + ] + } + } +} diff --git a/knowledge/tools/claims/check-claims.mjs b/knowledge/tools/claims/check-claims.mjs new file mode 100644 index 000000000..d9fa376ac --- /dev/null +++ b/knowledge/tools/claims/check-claims.mjs @@ -0,0 +1,359 @@ +#!/usr/bin/env node +/** + * knowledge/tools/claims/check-claims.mjs — hold the documentation to what it + * claims, and build the reverse index. + * + * node knowledge/tools/claims/check-claims.mjs + * node knowledge/tools/claims/check-claims.mjs --check + * + * Exit 0 clean · 1 a claim is false, or --check found the index stale · 2 usage. + * + * The point is not to police prose. It is to make "which pages does this API + * change invalidate" a set intersection instead of a search: a symbol lands in + * the changeset, the index says which pages assert it, and only those pages need + * looking at. Without it that question is answered by reading everything, which + * is what the whole pack exists to stop. + * + * Enforcement is deliberately asymmetric: + * + * a claimed symbol that does not exist → ERROR. The page is lying, and it + * is lying about something a reader + * will try to compile. + * a symbol used on a page but not claimed → suggestion, never a failure. + * + * Symmetric enforcement was considered and rejected: it would demand a claim for + * every incidental type named in every example, which is churn with no + * correctness gain, and the predictable result is that people stop reading the + * output. A missing claim costs coverage; a false claim costs trust. + */ + +import fs from "node:fs"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +import { parseClaims, resolveSymbol } from "./lib/claims.mjs"; + +const HERE = path.dirname(fileURLToPath(import.meta.url)); +const REPO_ROOT = path.resolve(HERE, "..", "..", ".."); +const API_DIR = path.join(REPO_ROOT, "knowledge", "api"); +const DOCS_ROOT = path.join(REPO_ROOT, "docs"); +const INDEX_FILE = path.join(REPO_ROOT, "knowledge", "claims", "index.json"); + +function usage(code = 0) { + process.stdout.write( + "usage: node knowledge/tools/claims/check-claims.mjs [--check] [--json]\n\n" + + " --check verify the committed index matches, instead of writing it\n" + + " --json machine-readable report\n\n" + + "exit: 0 clean | 1 a claim is false or the index is stale | 2 usage\n", + ); + process.exit(code); +} + +/** Types and members from every surface, flattened for lookup. */ +function loadSurfaces() { + if (!fs.existsSync(API_DIR)) { + process.stderr.write( + "[check-claims] no surfaces at knowledge/api — generate them first:\n" + + " node knowledge/tools/api-surface/extract-api.mjs --from-reactor\n", + ); + process.exit(1); + } + const types = new Map(); + for (const file of fs.readdirSync(API_DIR).filter((f) => f.endsWith(".json") && f !== "excluded.json")) { + const surface = path.basename(file, ".json"); + const doc = JSON.parse(fs.readFileSync(path.join(API_DIR, file), "utf8")); + for (const pkg of doc.packages ?? []) { + for (const type of pkg.types ?? []) { + types.set(type.name, { + name: type.name, + binaryName: type.binaryName, + surface, + stability: type.stability ?? "stable", + methods: (type.members ?? []).filter((m) => m.kind !== "constant"), + constants: (type.members ?? []).filter((m) => m.kind === "constant").map((m) => m.name), + }); + } + } + } + return { types }; +} + +/** + * Proof targets that can be resolved today. + * + * `test:` names a JUnit class and `snippet:` names a `doc-example` id — both + * already exist in this repository, so both are checkable, and a proof pointing + * at a renamed test is exactly the rot this mechanism is for. `probe:` and + * `render:` are accepted but not yet resolved: their registries are built later + * in this phase, and refusing them now would only push authors towards the two + * kinds that happen to be finished. + */ +function loadProofTargets() { + const tests = new Set(); + const walkTests = (dir) => { + let entries; + try { + entries = fs.readdirSync(dir, { withFileTypes: true }); + } catch { + return; + } + for (const entry of entries) { + const full = path.join(dir, entry.name); + if (entry.isDirectory()) { + if (entry.name === "target" || entry.name === ".git" || entry.name === ".claude") continue; + walkTests(full); + } else if (entry.name.endsWith(".java") && full.includes(`${path.sep}src${path.sep}test${path.sep}`)) { + tests.add(entry.name.slice(0, -".java".length)); + } + } + }; + walkTests(REPO_ROOT); + + const snippets = new Set(); + const markerRe = /^\s*$/; + for (const file of docPages()) { + for (const line of fs.readFileSync(file, "utf8").split(/\r?\n/)) { + const m = line.match(markerRe); + if (!m) continue; + const id = m[1].split(/\s+/).find((t) => t.startsWith("id=")); + if (id) snippets.add(id.slice("id=".length)); + } + } + + return { tests, snippets }; +} + +/** Every tracked public Markdown page. `docs/private/` is gitignored. */ +function docPages() { + const out = []; + const walk = (dir) => { + for (const entry of fs.readdirSync(dir, { withFileTypes: true }).sort((a, b) => a.name.localeCompare(b.name))) { + const full = path.join(dir, entry.name); + if (entry.isDirectory()) { + if (entry.name === "private") continue; + walk(full); + } else if (entry.name.endsWith(".md")) { + out.push(full); + } + } + }; + walk(DOCS_ROOT); + return out; +} + +/** + * Symbols a page's Java fences actually call, as candidates for a claim it does + * not yet make. + * + * Read from the fence text rather than from compiled bytecode. Bytecode would be + * exact, but it is only reachable after `DocumentationSnippetCompileTest` has + * run, which would make a documentation check depend on a Maven build — and this + * side of the mechanism is a *suggestion*, where approximation is the design + * rather than a compromise. + * + * The noise a regex would otherwise produce is removed by the surfaces + * themselves: a match that does not resolve to a real type and member is + * dropped, so what survives is something the reader can genuinely call. What + * this cannot see is the whole reason claims are hand-authored — prose + * assertions, alternatives discussed but not called, limits, backend caveats, + * and behaviour spread across several calls. It proposes; it never decides. + */ +function usedSymbols(text) { + const found = new Set(); + const fenceRe = /^```java\s*$/; + const lines = text.split(/\r?\n/); + let inFence = false; + + for (const line of lines) { + if (line.trimEnd() === "```" && inFence) { + inFence = false; + continue; + } + if (fenceRe.test(line.trim())) { + inFence = true; + continue; + } + if (!inFence) continue; + for (const [, symbol] of line.matchAll(/\b([A-Z][A-Za-z0-9]*(?:\.[A-Z][A-Za-z0-9]*)*\.[a-z][A-Za-z0-9]*)\s*\(/g)) { + found.add(symbol); + } + } + return found; +} + +const args = process.argv.slice(2); +if (args.some((a) => a === "--help" || a === "-h")) usage(0); +if (args.some((a) => !["--check", "--json"].includes(a))) usage(2); +const checkOnly = args.includes("--check"); +const asJson = args.includes("--json"); + +const index = loadSurfaces(); +const proofTargets = loadProofTargets(); + +const errors = []; +const allClaims = []; +const suggestions = []; + +for (const file of docPages()) { + const relative = path.relative(REPO_ROOT, file).split(path.sep).join("/"); + const text = fs.readFileSync(file, "utf8"); + const { claims, errors: parseErrors } = parseClaims(text, relative); + errors.push(...parseErrors); + + // Only pages that already claim something are asked to claim more. Proposing + // claims for all 80 pages at once would bury the ones that matter, and a page + // with no claims at all is a coverage decision rather than an oversight. + if (claims.length) { + const claimed = new Set(claims.filter((c) => c.kind === "symbol").map((c) => c.value)); + for (const symbol of usedSymbols(text)) { + if (claimed.has(symbol)) continue; + if (!resolveSymbol(index, symbol).found) continue; + suggestions.push({ page: relative, symbol }); + } + } + + for (const claim of claims) { + if (claim.proof) { + const [scheme, id] = [claim.proof.slice(0, claim.proof.indexOf(":")), claim.proof.slice(claim.proof.indexOf(":") + 1)]; + if (scheme === "test" && !proofTargets.tests.has(id)) { + errors.push({ + file: claim.file, + line: claim.line, + heading: claim.heading, + message: `proof "${claim.proof}" names no test class — it was renamed or removed, so the claim is unheld.`, + }); + continue; + } + if (scheme === "snippet" && !proofTargets.snippets.has(id)) { + errors.push({ + file: claim.file, + line: claim.line, + heading: claim.heading, + message: `proof "${claim.proof}" names no doc-example id — no compiled snippet holds this claim.`, + }); + continue; + } + } + + if (claim.kind === "symbol") { + const resolved = resolveSymbol(index, claim.value); + if (!resolved.found) { + errors.push({ + file: claim.file, + line: claim.line, + heading: claim.heading, + message: + `claims symbol "${claim.value}" — ${resolved.reason}. ` + + "It is not in any surface, so the page describes API that does not exist.", + }); + continue; + } + allClaims.push({ + ...claim, + surface: resolved.type.surface, + stability: resolved.type.stability, + binaryName: resolved.type.binaryName, + }); + continue; + } + allClaims.push(claim); + } +} + +// --- the reverse index ------------------------------------------------------- + +const byKind = { symbol: {}, capability: {}, behavior: {} }; +for (const claim of allClaims) { + const bucket = byKind[claim.kind]; + (bucket[claim.value] ??= []).push({ + page: claim.file, + line: claim.line, + heading: claim.heading, + ...(claim.proof ? { proof: claim.proof } : {}), + ...(claim.surface ? { surface: claim.surface, stability: claim.stability } : {}), + }); +} +for (const bucket of Object.values(byKind)) { + for (const key of Object.keys(bucket)) { + bucket[key].sort((a, b) => a.page.localeCompare(b.page) || a.line - b.line); + } +} + +const document = { + schemaVersion: 1, + note: + "Generated from claim markers in docs/. Given a symbol, capability or " + + "behaviour, this says which pages assert it — so an API change resolves to " + + "a page set by intersection rather than by reading everything.", + generator: "knowledge/tools/claims/check-claims.mjs", + counts: { + pagesWithClaims: new Set(allClaims.map((c) => c.file)).size, + symbol: Object.keys(byKind.symbol).length, + capability: Object.keys(byKind.capability).length, + behavior: Object.keys(byKind.behavior).length, + }, + claims: { + symbol: Object.fromEntries(Object.entries(byKind.symbol).sort()), + capability: Object.fromEntries(Object.entries(byKind.capability).sort()), + behavior: Object.fromEntries(Object.entries(byKind.behavior).sort()), + }, +}; + +const text = `${JSON.stringify(document, null, 2)}\n`; + +if (errors.length) { + if (asJson) { + process.stdout.write(`${JSON.stringify({ errors, counts: document.counts }, null, 2)}\n`); + } else { + process.stdout.write(`[check-claims] ${errors.length} false claim(s):\n\n`); + for (const e of errors) { + process.stdout.write(` ${e.file}:${e.line}${e.heading ? ` (${e.heading})` : ""}\n ${e.message}\n\n`); + } + process.stdout.write( + " A claim is a promise the page makes to a reader. Fix the page, or fix\n" + + " the claim — do not delete the marker to silence this.\n", + ); + } + process.exit(1); +} + +if (checkOnly) { + const actual = fs.existsSync(INDEX_FILE) ? fs.readFileSync(INDEX_FILE, "utf8").replace(/\r\n/g, "\n") : null; + if (actual !== text) { + process.stdout.write( + "[check-claims] knowledge/claims/index.json is out of date\n" + + " regenerate: node knowledge/tools/claims/check-claims.mjs\n", + ); + process.exit(1); + } + process.stdout.write(`[check-claims] ${allClaims.length} claims, index current\n`); + process.exit(0); +} + +fs.mkdirSync(path.dirname(INDEX_FILE), { recursive: true }); +fs.writeFileSync(INDEX_FILE, text, "utf8"); + +if (asJson) { + process.stdout.write(`${JSON.stringify(document.counts, null, 2)}\n`); +} else { + process.stdout.write( + `[check-claims] ${allClaims.length} claims on ${document.counts.pagesWithClaims} pages ` + + `-> knowledge/claims/index.json\n` + + ` symbol ${document.counts.symbol} · capability ${document.counts.capability} · ` + + `behavior ${document.counts.behavior}\n`, + ); + if (suggestions.length) { + process.stdout.write( + `\n ${suggestions.length} symbol(s) called by a claiming page but not claimed.\n` + + " Not a failure — a claim is a deliberate promise, not a transcript of\n" + + " every call an example happens to make. Add the ones the page is really\n" + + " about:\n", + ); + for (const s of suggestions.slice(0, 20)) { + process.stdout.write(` ${s.page} \n`); + } + if (suggestions.length > 20) { + process.stdout.write(` … and ${suggestions.length - 20} more\n`); + } + } +} diff --git a/knowledge/tools/claims/lib/claims.mjs b/knowledge/tools/claims/lib/claims.mjs new file mode 100644 index 000000000..18ad13bf1 --- /dev/null +++ b/knowledge/tools/claims/lib/claims.mjs @@ -0,0 +1,158 @@ +/** + * knowledge/tools/claims/lib/claims.mjs — read what the documentation claims. + * + * A claim is an HTML comment sitting beside the prose that makes it: + * + * + * + * + * + * Three storage options were on the table and this is the third. + * + * *Front-matter* was rejected on evidence: none of the 80 tracked public pages + * under `docs/` carries any, and the repository ships no Jekyll or Pages config, + * so those pages are read directly on GitHub — where YAML front-matter renders + * as a horizontal rule followed by literal `key: value` text at the top of every + * page. Damaging 80 published pages for readers so that a tool can find its + * metadata is the same trade as compiling the library with `-parameters` to + * serve a docs generator, and it was refused for the same reason. + * + * *An external `knowledge/claims/*.yaml` keyed by page path plus anchor* was + * rejected because the key is fragile in the one way that matters: editing a + * heading silently breaks the link between a claim and the sentence it is about, + * and nothing fails. It would also need a YAML parser, and this repository ships + * no dependencies — `zip.mjs` was hand-written rather than add one. + * + * A marker has neither problem. It is invisible to a reader, it travels with the + * paragraph when the page is reorganised, and it costs one regex — which is + * exactly how `DocumentationSnippetCompileTest` already finds `doc-example`, so + * this is the convention the repository established rather than a new one. + * + * Claim kinds, and why there are three: + * + * - `symbol` — this page tells you to call this. Checkable against the + * surfaces, and the only kind that can be mechanically refuted. + * - `capability` — this page is how you achieve this intent. Not checkable on + * its own; it is what the routing layer resolves an intent to. + * - `behavior` — this page asserts the engine does something. Not visible in any + * signature: a thrown exception, a nesting restriction, a + * backend's silent fallback. Only a probe can hold it. + */ + +const CLAIM_RE = /^\s*$/; + +const KINDS = ["symbol", "capability", "behavior"]; + +/** `symbol=A.b proof=snippet:c` → `{symbol: "A.b", proof: "snippet:c"}`. */ +function parseAttributes(text) { + const out = {}; + for (const token of text.split(/\s+/)) { + const eq = token.indexOf("="); + if (eq === -1) continue; + out[token.slice(0, eq)] = token.slice(eq + 1); + } + return out; +} + +/** + * Every claim in one Markdown document. + * + * @param {string} text the document + * @param {string} file its repo-relative path, for the report + * @returns {{claims: Array, errors: Array}} + */ +export function parseClaims(text, file) { + const claims = []; + const errors = []; + const lines = text.split(/\r?\n/); + + // The nearest heading above a claim, so a report can say where in the page it + // is without the claim itself having to carry a fragile anchor. + let heading = null; + + lines.forEach((line, i) => { + const headingMatch = line.match(/^#{1,6}\s+(.+?)\s*$/); + if (headingMatch) { + heading = headingMatch[1]; + return; + } + + const match = line.match(CLAIM_RE); + if (!match) return; + + const at = { file, line: i + 1, heading }; + const attributes = parseAttributes(match[1]); + const kinds = KINDS.filter((k) => k in attributes); + + if (kinds.length === 0) { + errors.push({ ...at, message: `claim has no ${KINDS.join("/")} key: ${match[1]}` }); + return; + } + if (kinds.length > 1) { + // One marker, one assertion. Two kinds in one marker reads as a single + // fact and is really two, which the reverse index would then conflate. + errors.push({ ...at, message: `claim mixes ${kinds.join(" and ")} — use one marker each` }); + return; + } + + const kind = kinds[0]; + const value = attributes[kind]; + if (!value) { + errors.push({ ...at, message: `${kind}= is empty` }); + return; + } + + if (attributes.proof && !/^(snippet|probe|render|test):\S+$/.test(attributes.proof)) { + errors.push({ + ...at, + message: `proof must be snippet:|probe:|render:|test:, got "${attributes.proof}"`, + }); + return; + } + + // A behaviour nobody can reproduce is an opinion. Signatures are checkable + // against the surfaces and intents are resolved by routing, but a claim that + // the engine *does* something has nothing holding it up but a probe. + if (kind === "behavior" && !attributes.proof) { + errors.push({ ...at, message: `behavior claim "${value}" needs a proof=` }); + return; + } + + claims.push({ kind, value, proof: attributes.proof ?? null, ...at }); + }); + + return { claims, errors }; +} + +/** + * Resolve `Type.member` — or a bare `Type` — against the extracted surfaces. + * + * Nested receivers are spelled `Outer.Inner.member`, so the type is matched + * longest-first: splitting on the first dot would look up `GraphCompose` for + * `GraphCompose.DocumentBuilder.pageSize` and answer confidently about the + * wrong receiver, which is the exact defect this whole pack replaced. + */ +export function resolveSymbol(index, symbol) { + const parts = symbol.split(".").filter(Boolean); + + for (let take = Math.min(parts.length, 3); take >= 1; take -= 1) { + for (let start = 0; start + take <= parts.length; start += 1) { + const typeName = parts.slice(start, start + take).join("."); + const type = index.types.get(typeName); + if (!type) continue; + + const rest = parts.slice(start + take); + if (rest.length === 0) return { found: true, type, member: null }; + if (rest.length > 1) continue; + + const member = rest[0]; + const overloads = type.methods.filter((m) => m.name === member); + if (overloads.length) return { found: true, type, member, overloads }; + if (type.constants.includes(member)) return { found: true, type, member, constant: true }; + + return { found: false, type, member, reason: `no member "${member}" on ${type.name}` }; + } + } + + return { found: false, type: null, reason: `no type in "${symbol}"` }; +} diff --git a/knowledge/tools/claims/test/claims.test.mjs b/knowledge/tools/claims/test/claims.test.mjs new file mode 100644 index 000000000..49057ecc4 --- /dev/null +++ b/knowledge/tools/claims/test/claims.test.mjs @@ -0,0 +1,145 @@ +#!/usr/bin/env node +/** + * knowledge/tools/claims/test/claims.test.mjs — the claim parser and the symbol + * resolver. + * + * node knowledge/tools/claims/test/claims.test.mjs + * + * Exit 0 all passed · 1 a case failed. + * + * The checker's value is entirely in what it *rejects*, so most of these are + * negative cases. A parser that accepts everything and an index that resolves + * everything would both report zero problems for ever, which is + * indistinguishable from working. + */ + +import { parseClaims, resolveSymbol } from "../lib/claims.mjs"; + +let failures = 0; +let passes = 0; + +function check(name, actual, expected) { + const a = JSON.stringify(actual); + const e = JSON.stringify(expected); + if (a === e) { + passes += 1; + return; + } + failures += 1; + process.stdout.write(` FAIL ${name}\n expected ${e}\n actual ${a}\n`); +} + +const parse = (body) => parseClaims(body, "x.md"); +const messages = (body) => parse(body).errors.map((e) => e.message); +const claims = (body) => parse(body).claims.map(({ kind, value, proof }) => ({ kind, value, proof })); + +// --- parsing ----------------------------------------------------------------- + +check( + "a symbol claim parses", + claims(""), + [{ kind: "symbol", value: "TableBuilder.zebra", proof: null }], +); + +check( + "a behaviour claim keeps its proof", + claims(""), + [{ kind: "behavior", value: "table.zebra-loses", proof: "test:SomeTest" }], +); + +// A behaviour is the one kind nothing else can hold up: it is invisible in every +// signature, so without a proof it is an opinion in an HTML comment. +check( + "a behaviour without a proof is rejected", + messages(""), + ['behavior claim "table.zebra-loses" needs a proof='], +); + +check( + "a capability needs no proof", + claims(""), + [{ kind: "capability", value: "table.zebra", proof: null }], +); + +// Two kinds in one marker read as one fact and are really two; the reverse index +// would then attribute a page to an intent it only mentioned in passing. +check( + "one marker may not carry two kinds", + messages(""), + ["claim mixes symbol and capability — use one marker each"], +); + +check("an empty value is rejected", messages(""), ["symbol= is empty"]); + +check( + "a proof must name a scheme", + messages(""), + ['proof must be snippet:|probe:|render:|test:, got "wibble"'], +); + +check("a comment that is not a claim is ignored", claims(""), []); +check("prose mentioning claim: is ignored", claims("Write `claim:` in prose."), []); + +// The nearest heading is carried so a report can say where in the page a claim +// sits, without the claim itself holding an anchor that breaks when the heading +// is edited. +check( + "a claim records the heading above it", + parse("# Top\n\n## Zebra\n\n").claims.map((c) => c.heading), + ["Zebra"], +); + +// --- resolution -------------------------------------------------------------- + +const index = { + types: new Map([ + ["TableBuilder", { + name: "TableBuilder", binaryName: "com.demcha.TableBuilder", surface: "authoring", + stability: "stable", + methods: [{ name: "zebra" }, { name: "zebra" }, { name: "headerRow" }], + constants: ["DEFAULT_GAP"], + }], + ["GraphCompose", { + name: "GraphCompose", binaryName: "com.demcha.GraphCompose", surface: "authoring", + stability: "stable", methods: [{ name: "document" }], constants: [], + }], + ["GraphCompose.DocumentBuilder", { + name: "GraphCompose.DocumentBuilder", binaryName: "com.demcha.GraphCompose$DocumentBuilder", + surface: "authoring", stability: "stable", methods: [{ name: "pageSize" }], constants: [], + }], + ]), +}; + +check("a member resolves", resolveSymbol(index, "TableBuilder.zebra").found, true); +check("both overloads come back", resolveSymbol(index, "TableBuilder.zebra").overloads.length, 2); +check("a constant resolves", resolveSymbol(index, "TableBuilder.DEFAULT_GAP").constant, true); +check("a bare type resolves", resolveSymbol(index, "TableBuilder").found, true); + +check( + "a missing member is refused, and says so about the member", + resolveSymbol(index, "TableBuilder.noSuch").reason, + 'no member "noSuch" on TableBuilder', +); +check("a missing type is refused", resolveSymbol(index, "NoSuchType.method").found, false); + +// The defect that motivated this entire pack: splitting on the first dot answers +// about `GraphCompose` for a symbol whose receiver is the nested builder — a +// confident, authoritative, wrong answer from the one tool whose "no" must hold. +check( + "a nested receiver resolves to the nested type, not its outer", + // `?.` deliberately: when this regresses the resolver returns a shape with no + // type at all, and a test that dies on a null dereference reports a stack + // trace where it should report which receiver it got. + resolveSymbol(index, "GraphCompose.DocumentBuilder.pageSize").type?.name ?? null, + "GraphCompose.DocumentBuilder", +); +check( + "the outer type is not credited with the nested member", + resolveSymbol(index, "GraphCompose.pageSize").found, + false, +); + +process.stdout.write( + failures ? `\n[claims.test] ${failures} failed, ${passes} passed\n` : `[claims.test] ${passes} passed\n`, +); +process.exit(failures ? 1 : 0); From 134ef9b08a0e54a380ff3c5fe3c6640bef7f9f34 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Mon, 31 Aug 2026 17:48:13 +0100 Subject: [PATCH 03/11] feat(knowledge): answer "which way do I do this", not just "does this exist" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The surfaces say what exists. They cannot say that a skills list in two columns is a row with weights and not a table — nothing in a signature says so, and that is where wrong-API choices actually come from. Answering it today means reading a guide. $ node knowledge/tools/api-query/api-query.mjs --task layout.two-columns use: row-with-weights layered-page-design.md#sidebar-page-background-vs-row states it directly: a column that holds content is a row column. instead, when: page-background-column when: the column is a tint that repeats and holds no content costs: free at layout time, but nothing can be placed in it table when: the columns are a data grid with a header row costs: paginates per row, sizes by table rules not weights ... constraints: row.rejects-a-nested-row read: docs/recipes/layered-page-design.md#sidebar-page-background-vs-row Alternatives are objects, never bare names: a name says a second way exists without saying when it wins, which is the gap this layer exists to close. The answer ends the choice and hands over one anchor — it does not restate the guide, because a fourth copy of the prose is what keeping prose in docs/ exists to prevent. A wrong route is more dangerous than a wrong signature: it does not fail to compile, it sends readers down the wrong path with the authority of a generated artifact. So a route is served only once its anchor resolves to a heading that exists, every symbol is in a surface, and every constraint names a documented behaviour that some test holds up. Seven mutations were tried against that gate — invented symbol, renamed anchor, unclaimed constraint, bare-string alternative, alternative missing tradeoffs, missing verifiedAgainst, duplicate id — and all seven turn it red. The routes are derived from docs/ and from tests in this repository, not seeded from the AI Flow loading map or the wiki decision tree: the audit that started this work found drift in both, and importing on their authority would launder it into the one artifact meant to be trustworthy. Authoring the first route also caught a symbol that does not exist — the canvas builder is CanvasLayerBuilder, not CanvasBuilder. The one gate a tool cannot close is whether the recommendation is right. `confirmedBy` is null on all three and the CLI says so in its own output rather than presenting an unreviewed opinion as settled. tasks.json rather than tasks.yaml: the explanatory content lives in useWhen and tradeoffs fields rather than comments, so YAML buys nothing here that would justify hand-rolling a parser in a repository that ships no dependencies. --- .github/workflows/ci.yml | 8 + docs/recipes/layered-page-design.md | 12 ++ knowledge/claims/index.json | 93 ++++++++++- knowledge/routing/tasks.json | 95 +++++++++++ knowledge/tools/api-query/api-query.mjs | 97 +++++++++++ knowledge/tools/routing/check-routes.mjs | 195 +++++++++++++++++++++++ 6 files changed, 496 insertions(+), 4 deletions(-) create mode 100644 knowledge/routing/tasks.json create mode 100644 knowledge/tools/routing/check-routes.mjs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a51a7f902..b2b518433 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -249,6 +249,14 @@ jobs: if: matrix.java == '17' run: node knowledge/tools/claims/check-claims.mjs --check + # A wrong route does not fail to compile — it sends every reader down the + # wrong path with the authority of a generated artifact. So a route is only + # served once its anchor resolves, its symbols exist, and its constraints + # name a documented behaviour that some test actually holds up. + - name: Knowledge pack — routing table holds up + if: matrix.java == '17' + run: node knowledge/tools/routing/check-routes.mjs + - name: Generate Javadoc # Run only on the baseline JDK — Javadoc output is identical # across JVMs and one pass is enough to catch broken @link diff --git a/docs/recipes/layered-page-design.md b/docs/recipes/layered-page-design.md index 8a185b775..b6af44705 100644 --- a/docs/recipes/layered-page-design.md +++ b/docs/recipes/layered-page-design.md @@ -6,6 +6,11 @@ cleanly and one that fights the engine. This page is the decision guide. ## The four tools + + + + + | Tool | Reach for it when | API | | --- | --- | --- | | **Page background** | A fill must sit behind everything and repeat on every page — a sidebar tint, a header band, a watermark wash. Ratio-based; never participates in layout. | `pageBackgrounds(List.of(PageBackgroundFill...))` | @@ -17,6 +22,13 @@ cleanly and one that fights the engine. This page is the decision guide. ### Sidebar: page background vs. row + + + + + + + A **tinted** sidebar that must repeat on every page is a page background — it costs nothing at layout time and never shifts content: diff --git a/knowledge/claims/index.json b/knowledge/claims/index.json index 2fc8bb8ec..eff65656f 100644 --- a/knowledge/claims/index.json +++ b/knowledge/claims/index.json @@ -3,13 +3,58 @@ "note": "Generated from claim markers in docs/. Given a symbol, capability or behaviour, this says which pages assert it — so an API change resolves to a page set by intersection rather than by reading everything.", "generator": "knowledge/tools/claims/check-claims.mjs", "counts": { - "pagesWithClaims": 1, - "symbol": 7, - "capability": 4, - "behavior": 4 + "pagesWithClaims": 2, + "symbol": 14, + "capability": 6, + "behavior": 5 }, "claims": { "symbol": { + "AbstractFlowBuilder.addCanvas": [ + { + "page": "docs/recipes/layered-page-design.md", + "line": 11, + "heading": "The four tools", + "surface": "authoring", + "stability": "stable" + } + ], + "AbstractFlowBuilder.addLayerStack": [ + { + "page": "docs/recipes/layered-page-design.md", + "line": 10, + "heading": "The four tools", + "surface": "authoring", + "stability": "stable" + } + ], + "AbstractFlowBuilder.addRow": [ + { + "page": "docs/recipes/layered-page-design.md", + "line": 26, + "heading": "Sidebar: page background vs. row", + "surface": "authoring", + "stability": "stable" + } + ], + "CanvasLayerBuilder.position": [ + { + "page": "docs/recipes/layered-page-design.md", + "line": 12, + "heading": "The four tools", + "surface": "authoring", + "stability": "stable" + } + ], + "DocumentSession.pageBackgrounds": [ + { + "page": "docs/recipes/layered-page-design.md", + "line": 28, + "heading": "Sidebar: page background vs. row", + "surface": "authoring", + "stability": "stable" + } + ], "DocumentTableCell.lines": [ { "page": "docs/recipes/tables.md", @@ -37,6 +82,24 @@ "stability": "stable" } ], + "PageBackgroundFill.leftColumn": [ + { + "page": "docs/recipes/layered-page-design.md", + "line": 29, + "heading": "Sidebar: page background vs. row", + "surface": "authoring", + "stability": "stable" + } + ], + "RowBuilder.weights": [ + { + "page": "docs/recipes/layered-page-design.md", + "line": 27, + "heading": "Sidebar: page background vs. row", + "surface": "authoring", + "stability": "stable" + } + ], "TableBuilder.headerRow": [ { "page": "docs/recipes/tables.md", @@ -75,6 +138,20 @@ ] }, "capability": { + "layout.choose-the-layer": [ + { + "page": "docs/recipes/layered-page-design.md", + "line": 9, + "heading": "The four tools" + } + ], + "layout.two-columns": [ + { + "page": "docs/recipes/layered-page-design.md", + "line": 25, + "heading": "Sidebar: page background vs. row" + } + ], "table.cell-content": [ { "page": "docs/recipes/tables.md", @@ -105,6 +182,14 @@ ] }, "behavior": { + "row.rejects-a-nested-row": [ + { + "page": "docs/recipes/layered-page-design.md", + "line": 30, + "heading": "Sidebar: page background vs. row", + "proof": "test:RowBuilderTest" + } + ], "table.explicit-row-style-beats-zebra": [ { "page": "docs/recipes/tables.md", diff --git a/knowledge/routing/tasks.json b/knowledge/routing/tasks.json new file mode 100644 index 000000000..b3b7596da --- /dev/null +++ b/knowledge/routing/tasks.json @@ -0,0 +1,95 @@ +{ + "schemaVersion": 1, + "note": "Intent -> the path to take, the alternatives, and the one anchor to open. Hand-authored and gated by knowledge/tools/routing/check-routes.mjs. Prose stays in docs/: a route ends the choice, it does not restate the guide.", + "tasks": [ + { + "task": "layout.two-columns", + "intent": "Put two columns of content side by side on the page.", + "recommended": "row-with-weights", + "recommendedBecause": "docs/recipes/layered-page-design.md#sidebar-page-background-vs-row states it directly: a column that holds content is a row column, because it flows and paginates with the main column.", + "alternatives": [ + { + "id": "page-background-column", + "useWhen": "the column is a tint that must repeat on every page and holds no content", + "tradeoffs": "costs nothing at layout time and never shifts content, but nothing can be placed in it — text in the sidebar still needs a row over the tint" + }, + { + "id": "table", + "useWhen": "the two columns are a data grid with a header row, not a page region", + "tradeoffs": "paginates per row and sizes columns by table rules rather than weights; a skills list in two columns is a row, not a table" + }, + { + "id": "canvas", + "useWhen": "the region is a fixed box needing pixel-precise (x, y) placement — a certificate or a badge", + "tradeoffs": "no flow and no pagination at all; the coordinates are yours to maintain" + } + ], + "constraints": ["row.rejects-a-nested-row"], + "symbols": [ + "AbstractFlowBuilder.addRow", + "RowBuilder.weights", + "DocumentSession.pageBackgrounds", + "PageBackgroundFill.leftColumn" + ], + "surfaces": ["authoring"], + "docs": ["docs/recipes/layered-page-design.md#sidebar-page-background-vs-row"], + "verifiedAgainst": "2.2.3-SNAPSHOT", + "confirmedBy": null + }, + { + "task": "layout.choose-the-layer", + "intent": "Decide which of the four placement tools a piece of page design needs.", + "recommended": "page-flow", + "recommendedBecause": "docs/recipes/layered-page-design.md#the-four-tools presents flow as the default and the other three as the cases where flow is not enough.", + "alternatives": [ + { + "id": "page-background", + "useWhen": "the thing is a surface that repeats on every page and holds no content", + "tradeoffs": "free at layout time; cannot contain anything" + }, + { + "id": "layer-stack", + "useWhen": "elements genuinely overlap and the overlay should size itself to what it sits on", + "tradeoffs": "measures and sizes with its parent, so it stays correct when content changes" + }, + { + "id": "canvas", + "useWhen": "placement is pixel-precise inside a fixed box and must not reflow", + "tradeoffs": "no flow, no pagination, no measurement — coordinates are maintained by hand" + } + ], + "constraints": [], + "symbols": [ + "AbstractFlowBuilder.addLayerStack", + "AbstractFlowBuilder.addCanvas", + "CanvasLayerBuilder.position" + ], + "surfaces": ["authoring"], + "docs": ["docs/recipes/layered-page-design.md#the-four-tools"], + "verifiedAgainst": "2.2.3-SNAPSHOT", + "confirmedBy": null + }, + { + "task": "table.header-on-every-page", + "intent": "Keep a table's header row visible when the table runs past a page break.", + "recommended": "repeat-header", + "recommendedBecause": "docs/recipes/tables.md#repeated-header-on-page-break documents repeatHeader() for exactly this, and TableBuilderRepeatHeaderTest walks every page of a 60-row table asserting it.", + "alternatives": [ + { + "id": "split-the-table", + "useWhen": "each page's rows are a distinct group the reader should not read as one run", + "tradeoffs": "page breaks become content decisions and stop following the data; totals must be recomputed per part" + } + ], + "constraints": [ + "table.header-repeats-on-every-continuation-page", + "table.repeat-header-defaults-to-zero" + ], + "symbols": ["TableBuilder.repeatHeader", "TableBuilder.headerRow"], + "surfaces": ["authoring"], + "docs": ["docs/recipes/tables.md#repeated-header-on-page-break"], + "verifiedAgainst": "2.2.3-SNAPSHOT", + "confirmedBy": null + } + ] +} diff --git a/knowledge/tools/api-query/api-query.mjs b/knowledge/tools/api-query/api-query.mjs index d2fd0b751..fc0741034 100644 --- a/knowledge/tools/api-query/api-query.mjs +++ b/knowledge/tools/api-query/api-query.mjs @@ -38,6 +38,7 @@ import { fileURLToPath } from "node:url"; const HERE = path.dirname(fileURLToPath(import.meta.url)); const REPO_ROOT = path.resolve(HERE, "..", "..", ".."); const API_DIR = path.join(REPO_ROOT, "knowledge", "api"); +const TASKS_FILE = path.join(REPO_ROOT, "knowledge", "routing", "tasks.json"); function usage(code = 0) { process.stdout.write( @@ -48,6 +49,9 @@ function usage(code = 0) { " --search types, methods and constants matching a term\n" + " --constant which types declare a constant\n" + " --package the types in a package\n" + + " --task how to do a thing: the path, the alternatives,\n" + + " the constraints, and the one anchor to open\n" + + " --tasks every intent the routing table answers\n" + " --dump every surface as one JSON document, on stdout\n\n" + " --surface restrict to one surface (authoring, templates,\n" + " backends, testing, extension-spi). Default: all\n" + @@ -61,6 +65,7 @@ function parseArgs(argv) { const out = { surface: null, type: null, method: null, exists: null, search: null, constant: null, package: null, dump: false, json: false, + task: null, tasks: false, }; for (let i = 0; i < argv.length; i += 1) { const a = argv[i]; @@ -74,11 +79,85 @@ function parseArgs(argv) { else if (a === "--search") out.search = argv[++i]; else if (a === "--constant") out.constant = argv[++i]; else if (a === "--package") out.package = argv[++i]; + else if (a === "--task") out.task = argv[++i]; + else if (a === "--tasks") out.tasks = true; else usage(2); } return out; } +// ------------------------------------------------------------------ routing --- + +/** + * Answer an intent instead of a symbol. + * + * Surfaces say what exists; they cannot say which of three ways is the right + * one, which is where wrong-API choices actually come from — a skills list in + * two columns is a row with weights, and nothing in a signature says so. + * + * What comes back is deliberately not the guide. It is the decision plus one + * anchor: restating the prose here would make this a fourth copy of the + * documentation, which is the outcome keeping prose in `docs/` exists to avoid. + */ +function answerTask(id) { + if (!fs.existsSync(TASKS_FILE)) { + process.stderr.write("[api-query] no routing table at knowledge/routing/tasks.json\n"); + process.exit(1); + } + const doc = JSON.parse(fs.readFileSync(TASKS_FILE, "utf8")); + const route = doc.tasks.find((t) => t.task === id); + if (!route) { + const near = doc.tasks + .map((t) => t.task) + .filter((t) => t.includes(id) || id.includes(t.split(".").pop())); + return { found: false, query: { task: id }, didYouMean: near, available: doc.tasks.map((t) => t.task) }; + } + return { found: true, query: { task: id }, ...route }; +} + +function renderTask(answer) { + if (!answer.found) { + const out = [`No route for "${answer.query.task}".`]; + if (answer.didYouMean.length) out.push(`did you mean: ${answer.didYouMean.join(", ")}`); + out.push(`known intents: ${answer.available.join(", ")}`); + return out.join("\n"); + } + + const out = []; + out.push(`${answer.task} — ${answer.intent}`); + out.push(""); + out.push(` use: ${answer.recommended}`); + out.push(` ${answer.recommendedBecause}`); + + if (answer.alternatives?.length) { + out.push(""); + out.push(" instead, when:"); + for (const alt of answer.alternatives) { + out.push(` ${alt.id}`); + out.push(` when: ${alt.useWhen}`); + out.push(` costs: ${alt.tradeoffs}`); + } + } + if (answer.constraints?.length) { + out.push(""); + out.push(" constraints:"); + for (const c of answer.constraints) out.push(` ${c}`); + } + if (answer.symbols?.length) { + out.push(""); + out.push(` symbols: ${answer.symbols.join(", ")}`); + } + if (answer.docs?.length) { + out.push(""); + out.push(` read: ${answer.docs.join(" ")}`); + } + if (!answer.confirmedBy) { + out.push(""); + out.push(" (recommendation not yet confirmed by a maintainer)"); + } + return out.join("\n"); +} + // ------------------------------------------------------------------ loading --- /** @@ -375,6 +454,24 @@ function render(answer) { // -------------------------------------------------------------------- main --- const args = parseArgs(process.argv.slice(2)); + +// Routing is answered from its own file and needs no surfaces loaded. +if (args.tasks) { + const doc = JSON.parse(fs.readFileSync(TASKS_FILE, "utf8")); + process.stdout.write( + args.json + ? `${JSON.stringify(doc.tasks.map((t) => ({ task: t.task, intent: t.intent })), null, 2)}\n` + : `${doc.tasks.map((t) => `${t.task}\n ${t.intent}`).join("\n")}\n`, + ); + process.exit(0); +} + +if (args.task) { + const answer = answerTask(args.task); + process.stdout.write(args.json ? `${JSON.stringify(answer, null, 2)}\n` : `${renderTask(answer)}\n`); + process.exit(answer.found ? 0 : 3); +} + const index = loadSurfaces(args.surface); if (args.dump) { diff --git a/knowledge/tools/routing/check-routes.mjs b/knowledge/tools/routing/check-routes.mjs new file mode 100644 index 000000000..fe1d3c5cf --- /dev/null +++ b/knowledge/tools/routing/check-routes.mjs @@ -0,0 +1,195 @@ +#!/usr/bin/env node +/** + * knowledge/tools/routing/check-routes.mjs — hold the routing table to the six + * things that make a route trustworthy. + * + * node knowledge/tools/routing/check-routes.mjs + * node knowledge/tools/routing/check-routes.mjs --check + * + * Exit 0 clean · 1 a route does not hold up · 2 usage. + * + * Routing is the layer that answers "how do I make two columns, and what are the + * alternatives" — a question surfaces cannot answer, because they say what + * exists and not which of several ways is right. That makes it the most + * *dangerous* file in the pack: a wrong route does not fail to compile, it + * quietly sends every reader down the wrong path with the authority of a + * generated artifact. + * + * So a route is admitted only with all six of: + * + * 1. a `docs:` anchor that resolves to a heading that exists; + * 2. every `symbols:` entry present in the surfaces; + * 3. every constraint naming a `behavior:` claim that exists; + * 4. a proof behind that behaviour; + * 5. a recommendation traceable to something in this repository; + * 6. `verifiedAgainst`. + * + * Points 1-4 are checked here. Point 5 is checked as far as a machine can — the + * `recommendedBecause` must cite a real anchor — but whether the recommendation + * is *right* is a human's call, which is what `confirmedBy` records. A route with + * `confirmedBy: null` is served with its status attached rather than silently. + * + * Seeding this from the AI Flow loading map or `.llm-wiki/02-decision-tree/` was + * considered and refused: the audit that motivated this whole plan found drift in + * both, and importing a route on their authority would launder that drift into + * the one artifact meant to be trustworthy. These routes are derived from + * `docs/` and from tests in this repository instead. + */ + +import fs from "node:fs"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +import { resolveSymbol } from "../claims/lib/claims.mjs"; + +const HERE = path.dirname(fileURLToPath(import.meta.url)); +const REPO_ROOT = path.resolve(HERE, "..", "..", ".."); +const TASKS_FILE = path.join(REPO_ROOT, "knowledge", "routing", "tasks.json"); +const API_DIR = path.join(REPO_ROOT, "knowledge", "api"); +const CLAIMS_INDEX = path.join(REPO_ROOT, "knowledge", "claims", "index.json"); + +const args = process.argv.slice(2); +if (args.some((a) => a === "--help" || a === "-h")) { + process.stdout.write( + "usage: node knowledge/tools/routing/check-routes.mjs [--check]\n\n" + + "exit: 0 clean | 1 a route does not hold up | 2 usage\n", + ); + process.exit(0); +} +if (args.some((a) => a !== "--check")) process.exit(2); + +/** GitHub's heading -> anchor rule, enough of it for our own headings. */ +function anchorOf(heading) { + return heading + .toLowerCase() + .replace(/[^\w\s-]/g, "") + .trim() + .replace(/\s+/g, "-"); +} + +function anchorsIn(file) { + const out = new Set(); + for (const line of fs.readFileSync(file, "utf8").split(/\r?\n/)) { + const m = line.match(/^#{1,6}\s+(.+?)\s*$/); + if (m) out.add(anchorOf(m[1])); + } + return out; +} + +function loadSurfaces() { + const types = new Map(); + for (const file of fs.readdirSync(API_DIR).filter((f) => f.endsWith(".json") && f !== "excluded.json")) { + const surface = path.basename(file, ".json"); + const doc = JSON.parse(fs.readFileSync(path.join(API_DIR, file), "utf8")); + for (const pkg of doc.packages ?? []) { + for (const type of pkg.types ?? []) { + types.set(type.name, { + name: type.name, + surface, + methods: (type.members ?? []).filter((m) => m.kind !== "constant"), + constants: (type.members ?? []).filter((m) => m.kind === "constant").map((m) => m.name), + }); + } + } + } + return { types }; +} + +const index = loadSurfaces(); +const claims = JSON.parse(fs.readFileSync(CLAIMS_INDEX, "utf8")).claims; +const doc = JSON.parse(fs.readFileSync(TASKS_FILE, "utf8")); + +const errors = []; +const unconfirmed = []; +const fail = (task, message) => errors.push({ task, message }); + +const seen = new Set(); +for (const route of doc.tasks) { + const id = route.task; + if (!id) { + fail("(unnamed)", "a route has no task id"); + continue; + } + if (seen.has(id)) fail(id, "duplicate task id — an intent must resolve to one route"); + seen.add(id); + + // 6 — the version it was checked against. + if (!route.verifiedAgainst) fail(id, "no verifiedAgainst: a route with no version is a route nobody can re-check"); + + // 5 — the recommendation must be traceable, and the citation must be a real anchor. + if (!route.recommended) fail(id, "no recommended: — a route that does not recommend is a list, not a route"); + if (!route.recommendedBecause) { + fail(id, "no recommendedBecause: — the recommendation must trace to something in this repository"); + } + + // 1 — every docs anchor resolves. + for (const ref of route.docs ?? []) { + const [rel, anchor] = ref.split("#"); + const file = path.join(REPO_ROOT, ...rel.split("/")); + if (!fs.existsSync(file)) { + fail(id, `docs "${ref}" — no such page`); + continue; + } + if (!anchor) { + fail(id, `docs "${ref}" — needs an #anchor; a route hands over one section, not a whole page`); + continue; + } + if (!anchorsIn(file).has(anchor)) { + fail(id, `docs "${ref}" — the page has no heading with that anchor (a heading was renamed)`); + } + } + if (!(route.docs ?? []).length) fail(id, "no docs: — a route must hand over an anchor to open"); + + // 2 — every symbol exists. + for (const symbol of route.symbols ?? []) { + if (!resolveSymbol(index, symbol).found) { + fail(id, `symbol "${symbol}" is in no surface — the route points at API that does not exist`); + } + } + + // 3 and 4 — every constraint is a claimed behaviour, and that claim has a proof. + for (const constraint of route.constraints ?? []) { + const holders = claims.behavior[constraint]; + if (!holders) { + fail( + id, + `constraint "${constraint}" is not claimed by any page — ` + + "a constraint nobody documents cannot be relied on", + ); + continue; + } + if (!holders.some((h) => h.proof)) { + fail(id, `constraint "${constraint}" is claimed but unproven — no page backs it with a proof`); + } + } + + // Alternatives have to say when they win. A bare name says a second way exists + // without saying when — which is the gap this layer exists to close. + for (const alt of route.alternatives ?? []) { + if (typeof alt === "string") { + fail(id, `alternative "${alt}" is a bare name — it must say useWhen and tradeoffs`); + continue; + } + if (!alt.id) fail(id, "an alternative has no id"); + if (!alt.useWhen) fail(id, `alternative "${alt.id}" has no useWhen — a name alone does not help anyone choose`); + if (!alt.tradeoffs) fail(id, `alternative "${alt.id}" has no tradeoffs — what it costs is the deciding half`); + } + + if (!route.confirmedBy) unconfirmed.push(id); +} + +if (errors.length) { + process.stdout.write(`[check-routes] ${errors.length} problem(s):\n\n`); + for (const e of errors) process.stdout.write(` ${e.task}\n ${e.message}\n\n`); + process.exit(1); +} + +process.stdout.write(`[check-routes] ${doc.tasks.length} routes hold up\n`); +if (unconfirmed.length) { + process.stdout.write( + `\n ${unconfirmed.length} route(s) have no confirmedBy — the mechanical checks pass,\n` + + " but whether the recommendation is the RIGHT one is a maintainer's call:\n" + + unconfirmed.map((t) => ` ${t}\n`).join(""), + ); +} +process.exit(0); From a8d4711f2fe7a6f88c9507ed15fbcae9a672ae47 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Mon, 31 Aug 2026 17:54:08 +0100 Subject: [PATCH 04/11] feat(knowledge): publish the pack as a bundle that answers offline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A tracked knowledge/ directory is not a published pack. Until there is an archive, "the plugin consumes GraphCompose's knowledge" quietly means "the plugin needs a GraphCompose checkout on the machine" — which is the offline problem this work exists to remove, restated rather than solved. graph-compose-knowledge-.zip carries manifest.json, provenance.json, api/, routing/, claims/, a README — and bin/query.mjs, a query CLI of its own. That last part is not convenience. The acceptance test is that the pack answers on a machine with no GraphCompose source, and without a bundled --exists / --task there is nothing on that machine to run the test with, so "self-sufficient" would be asserted instead of demonstrated. --verify unpacks the archive into a scratch directory well away from the repository and runs three queries there: a nested receiver resolves, an intent resolves, and an invented method exits 3. To make that possible the CLI now finds its own knowledge root by walking up rather than assuming a fixed depth — the bundle is exactly the case where a wrong assumption has no source to fall back on. Checksums at two levels, the outer one outside: .zip.sha256 is published beside the archive, because a hash stored in the file it describes is rewritten by whatever rewrote the file; bundle-checksums.json inside then says which entry is wrong once the outer hash says something is. zip-write.mjs is the companion to the zip.mjs the extractor already reads with, written by hand for the same reason that one was — a build tool that pulls in a dependency to make an archive puts a node_modules install on the critical path of a release. Every build round-trips the result back through that reader before reporting success. Timestamps inside are fixed rather than taken from the clock: two builds of the same content must produce the same archive, or the checksum beside it describes the moment it was built instead of what is in it. The release workflow already runs clean verify, so the classes the pack is read from are there. It now --checks the committed pack before building, so a tag cannot ship a pack that disagrees with the code it claims to describe. Distribution is a GitHub Release asset, not a Maven artifact. Maven would give a stable coordinate, but the consumer is a Node plugin that resolves nothing through Maven and no Java build compiles against a documentation pack — it would mean adding an artifact to the Central staging path, and its allow-list, for a file nothing on that path needs. --- .github/workflows/release.yml | 25 +++ knowledge/tools/README.md | 43 +++++ knowledge/tools/api-query/api-query.mjs | 32 +++- knowledge/tools/bundle/build-bundle.mjs | 234 +++++++++++++++++++++++ knowledge/tools/bundle/lib/zip-write.mjs | 128 +++++++++++++ 5 files changed, 459 insertions(+), 3 deletions(-) create mode 100644 knowledge/tools/bundle/build-bundle.mjs create mode 100644 knowledge/tools/bundle/lib/zip-write.mjs diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7e7752f77..3944c72bd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,6 +47,22 @@ jobs: - name: Verify (gate the release on a green build) run: ./mvnw -B -ntp clean verify + # The pack describes the API of the commit being tagged, and `verify` + # above has already produced the classes it reads. --check first, so a tag + # cannot ship a pack that disagrees with the code it claims to describe; + # the write that follows is then a no-op for tracked files and exists only + # to produce target/knowledge/provenance.json, which the bundle carries. + - name: Set up Node for the knowledge bundle + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Build the knowledge bundle + run: | + node knowledge/tools/api-surface/extract-api.mjs --from-reactor --check + node knowledge/tools/api-surface/extract-api.mjs --from-reactor + node knowledge/tools/bundle/build-bundle.mjs --verify + - name: Extract CHANGELOG section for the tag id: notes run: | @@ -99,3 +115,12 @@ jobs: --verify-tag \ ${PRERELEASE_FLAG} fi + + # The archive and its checksum go up as two assets. The checksum sits + # BESIDE the archive, never inside it: a hash stored in the file it + # describes is rewritten by whatever rewrote the file. + - name: Attach the knowledge bundle to the release + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh release upload "${GITHUB_REF_NAME}" target/knowledge/graph-compose-knowledge-*.zip target/knowledge/graph-compose-knowledge-*.zip.sha256 --clobber diff --git a/knowledge/tools/README.md b/knowledge/tools/README.md index afd6bf82c..e83bc5519 100644 --- a/knowledge/tools/README.md +++ b/knowledge/tools/README.md @@ -168,3 +168,46 @@ dropped (this repo describes one tree, not several released lines), the Markdown fallback parser was dropped with it (it exists there for packs predating the extractor), and `--surface` was added because here the API is split by surface rather than by version. + +## The release bundle + +```powershell +node knowledge\tools\bundle\build-bundle.mjs --verify +``` + +A tracked `knowledge/` directory is not a published pack. Without an archive, +"the plugin consumes GraphCompose's knowledge" quietly means "the plugin needs a +GraphCompose checkout on the machine" — the offline problem restated, not solved. + +`graph-compose-knowledge-.zip` carries `manifest.json`, +`provenance.json`, `api/`, `routing/`, `claims/`, a `README.md`, and +`bin/query.mjs` — **a query CLI of its own**. That last part is not convenience. +The acceptance test is that the pack answers on a machine with no GraphCompose +source; without a bundled `--exists` / `--task` there is nothing on that machine +to run the test *with*, so "self-sufficient" would be asserted rather than +demonstrated. `--verify` unpacks the archive into a scratch directory well away +from the repository and queries it there. + +Two levels of checksum, and the outer one lives outside: + +| File | Where | Answers | +|---|---|---| +| `.zip.sha256` | beside the archive | is the archive intact | +| `bundle-checksums.json` | inside the archive | *which* entry is wrong | + +A checksum stored inside the archive it describes verifies nothing, because +whatever rewrote the archive rewrote it too — so the outer hash is published as a +separate release asset. + +The archive is written by `lib/zip-write.mjs`, the companion to the `zip.mjs` the +extractor already uses for reading, and every build round-trips the result back +through that reader before reporting success. Timestamps inside are fixed rather +than taken from the clock: two builds of the same content must produce the same +archive, or the checksum beside it would describe the moment it was built instead +of what is in it. + +**Distribution is a GitHub Release asset, not a Maven artifact.** Maven would +give a stable coordinate and dependency resolution, but the consumer is a Node +plugin that resolves nothing through Maven, and no Java build compiles against a +documentation pack. It would mean adding an artifact to the Central staging path +— and its allow-list — for a file nothing on that path needs. diff --git a/knowledge/tools/api-query/api-query.mjs b/knowledge/tools/api-query/api-query.mjs index fc0741034..2a6f2a69b 100644 --- a/knowledge/tools/api-query/api-query.mjs +++ b/knowledge/tools/api-query/api-query.mjs @@ -36,9 +36,35 @@ import path from "node:path"; import { fileURLToPath } from "node:url"; const HERE = path.dirname(fileURLToPath(import.meta.url)); -const REPO_ROOT = path.resolve(HERE, "..", "..", ".."); -const API_DIR = path.join(REPO_ROOT, "knowledge", "api"); -const TASKS_FILE = path.join(REPO_ROOT, "knowledge", "routing", "tasks.json"); + +/** + * Find the knowledge root by walking up and looking for it. + * + * The same file has to answer from two layouts: `knowledge/` inside a checkout, + * and the root of an unpacked release bundle, where there is no repository + * around it at all. Hard-coding "three levels up, then knowledge/" works in + * exactly one of those, and the bundle is the case where being wrong is worst — + * it is the copy running on a machine with no source to fall back on. + */ +function findKnowledgeRoot(start) { + let dir = start; + for (let i = 0; i < 8; i += 1) { + for (const candidate of [dir, path.join(dir, "knowledge")]) { + if (fs.existsSync(path.join(candidate, "manifest.json")) && fs.existsSync(path.join(candidate, "api"))) { + return candidate; + } + } + const up = path.dirname(dir); + if (up === dir) break; + dir = up; + } + return path.resolve(start, "..", "..", "..", "knowledge"); +} + +const KNOWLEDGE_ROOT = process.env.GRAPHCOMPOSE_KNOWLEDGE ?? findKnowledgeRoot(HERE); +const REPO_ROOT = KNOWLEDGE_ROOT; +const API_DIR = path.join(KNOWLEDGE_ROOT, "api"); +const TASKS_FILE = path.join(KNOWLEDGE_ROOT, "routing", "tasks.json"); function usage(code = 0) { process.stdout.write( diff --git a/knowledge/tools/bundle/build-bundle.mjs b/knowledge/tools/bundle/build-bundle.mjs new file mode 100644 index 000000000..6e2b364fb --- /dev/null +++ b/knowledge/tools/bundle/build-bundle.mjs @@ -0,0 +1,234 @@ +#!/usr/bin/env node +/** + * knowledge/tools/bundle/build-bundle.mjs — make the pack downloadable. + * + * node knowledge/tools/bundle/build-bundle.mjs + * node knowledge/tools/bundle/build-bundle.mjs --verify + * + * Exit 0 built (or --verify clean) · 1 the bundle is not self-sufficient · 2 usage. + * + * A tracked `knowledge/` directory is not a published pack. Without an archive, + * "the plugin consumes GraphCompose's knowledge" quietly means "the plugin needs + * a GraphCompose checkout on the machine" — which is the offline problem this + * work exists to remove, restated rather than solved. + * + * So the bundle carries a **query CLI of its own**. That is not convenience: the + * acceptance test is that it answers on a machine with no GraphCompose source, + * and without a bundled `--exists` / `--task` there would be nothing on that + * machine to run the test *with*, so "self-sufficient" would be asserted instead + * of demonstrated. + * + * Checksums are at two levels, and the outer one lives outside: + * + * .zip.sha256 beside the archive — a checksum inside the archive + * it describes verifies nothing, because whatever + * rewrote the archive rewrote it too. + * bundle-checksums.json inside — says WHICH entry is wrong, once the outer + * hash has established that something is. + */ + +import crypto from "node:crypto"; +import fs from "node:fs"; +import os from "node:os"; +import path from "node:path"; +import { spawnSync } from "node:child_process"; +import { fileURLToPath } from "node:url"; + +import { writeZip } from "./lib/zip-write.mjs"; +import { openJar } from "../api-surface/lib/zip.mjs"; + +const HERE = path.dirname(fileURLToPath(import.meta.url)); +const REPO_ROOT = path.resolve(HERE, "..", "..", ".."); +const KNOWLEDGE = path.join(REPO_ROOT, "knowledge"); +const OUT_DIR = path.join(REPO_ROOT, "target", "knowledge"); +const PROVENANCE = path.join(OUT_DIR, "provenance.json"); + +const args = process.argv.slice(2); +if (args.some((a) => a === "--help" || a === "-h")) { + process.stdout.write( + "usage: node knowledge/tools/bundle/build-bundle.mjs [--verify]\n\n" + + " --verify build, then unpack into a scratch directory with no\n" + + " repository around it and query it there\n\n" + + "exit: 0 ok | 1 not self-sufficient | 2 usage\n", + ); + process.exit(0); +} +if (args.some((a) => a !== "--verify")) process.exit(2); +const verify = args.includes("--verify"); + +const sha256 = (buffer) => crypto.createHash("sha256").update(buffer).digest("hex"); + +/** Files under a directory, as slash-separated names relative to it. */ +function filesUnder(root, prefix = "") { + const out = []; + for (const entry of fs.readdirSync(root, { withFileTypes: true }).sort((a, b) => a.name.localeCompare(b.name))) { + const rel = prefix ? `${prefix}/${entry.name}` : entry.name; + if (entry.isDirectory()) out.push(...filesUnder(path.join(root, entry.name), rel)); + else out.push(rel); + } + return out; +} + +if (!fs.existsSync(path.join(KNOWLEDGE, "manifest.json"))) { + process.stderr.write( + "[build-bundle] no knowledge/manifest.json — generate the pack first:\n" + + " node knowledge/tools/api-surface/extract-api.mjs --from-reactor\n", + ); + process.exit(1); +} + +const manifest = JSON.parse(fs.readFileSync(path.join(KNOWLEDGE, "manifest.json"), "utf8")); + +// Provenance is generated by the extractor into target/ and is deliberately not +// tracked. The bundle is the one place it belongs *inside*: an archive handed to +// someone else should say which commit produced it, which the version string +// alone cannot do for a SNAPSHOT. +if (!fs.existsSync(PROVENANCE)) { + process.stderr.write( + `[build-bundle] no ${path.relative(REPO_ROOT, PROVENANCE)} — regenerate the pack so it is written:\n` + + " node knowledge/tools/api-surface/extract-api.mjs --from-reactor\n", + ); + process.exit(1); +} +const provenance = JSON.parse(fs.readFileSync(PROVENANCE, "utf8")); +const version = provenance.version; + +// --- what goes in ------------------------------------------------------------ + +const entries = []; +const add = (name, contents) => entries.push([name, contents]); + +add("manifest.json", fs.readFileSync(path.join(KNOWLEDGE, "manifest.json"))); +add("provenance.json", fs.readFileSync(PROVENANCE)); + +for (const sub of ["api", "routing", "claims"]) { + const dir = path.join(KNOWLEDGE, sub); + if (!fs.existsSync(dir)) continue; + for (const rel of filesUnder(dir)) { + add(`${sub}/${rel}`, fs.readFileSync(path.join(dir, ...rel.split("/")))); + } +} + +// The CLI, and only what it imports. Shipping the extractor would put a tool +// that needs javap, Maven and a reactor into an archive whose whole point is +// that it works without any of them. +add("bin/query.mjs", fs.readFileSync(path.join(KNOWLEDGE, "tools", "api-query", "api-query.mjs"))); + +add( + "README.md", + Buffer.from( + `# GraphCompose knowledge pack — ${version}\n\n` + + "Generated from the compiled classes of the release named above. Nothing\n" + + "here is hand-written; regenerate rather than edit.\n\n" + + "## Ask it a question\n\n" + + "```bash\n" + + "node bin/query.mjs --exists GraphCompose.DocumentBuilder.pageSize\n" + + "node bin/query.mjs --task layout.two-columns\n" + + "node bin/query.mjs --tasks\n" + + "```\n\n" + + "Exit codes are meant to be branched on: `0` found, `3` nothing matched.\n" + + "A `3` is a real answer — the symbol does not exist in this version — and\n" + + "it is the answer that stops an invented call.\n\n" + + "## What is here\n\n" + + "| Path | Holds |\n" + + "| --- | --- |\n" + + "| `manifest.json` | the stable contract: surfaces and classification rules |\n" + + "| `provenance.json` | the commit, tree state and artifact digests behind this build |\n" + + "| `api/` | one document per surface, JSON plus a Markdown view |\n" + + "| `routing/` | intent to recommended path, alternatives, constraints |\n" + + "| `claims/` | which documentation page asserts which symbol or behaviour |\n" + + "| `bundle-checksums.json` | SHA-256 per file in this archive |\n\n" + + "The archive's own checksum is published *beside* it as\n" + + "`graph-compose-knowledge-${version}.zip.sha256`; a checksum stored inside\n" + + "an archive cannot vouch for it.\n", + "utf8", + ), +); + +// Per-file digests, added last so it covers everything before it. +const checksums = { + schemaVersion: 1, + version, + note: + "SHA-256 per bundled file. Tells you WHICH entry is wrong once the archive's " + + "own checksum, published beside it, has told you that something is.", + files: Object.fromEntries(entries.map(([name, contents]) => [name, sha256(contents)])), +}; +add("bundle-checksums.json", Buffer.from(`${JSON.stringify(checksums, null, 2)}\n`, "utf8")); + +// --- write ------------------------------------------------------------------- + +const archive = writeZip(entries); +const stem = `graph-compose-knowledge-${version}`; +fs.mkdirSync(OUT_DIR, { recursive: true }); + +const zipPath = path.join(OUT_DIR, `${stem}.zip`); +const sumPath = `${zipPath}.sha256`; +fs.writeFileSync(zipPath, archive); +fs.writeFileSync(sumPath, `${sha256(archive)} ${stem}.zip\n`, "utf8"); + +// --- prove it can be read ---------------------------------------------------- + +// Round-tripped through the reader this repository already trusts, rather than +// asserted about bytes: if `zip.mjs` cannot open it, neither can anything else +// that opens a jar, and the writer is new code. +const reopened = openJar(zipPath); +const missing = entries.map(([name]) => name).filter((name) => !reopened.names.includes(name)); +if (missing.length) { + process.stderr.write(`[build-bundle] archive does not read back: missing ${missing.join(", ")}\n`); + process.exit(1); +} +for (const [name, contents] of entries) { + if (!reopened.read(name).equals(contents)) { + process.stderr.write(`[build-bundle] archive does not read back: ${name} differs\n`); + process.exit(1); + } +} + +process.stdout.write( + `[build-bundle] ${stem}.zip ${(archive.length / 1024).toFixed(0)} KiB ${entries.length} files\n` + + ` ${path.relative(REPO_ROOT, zipPath)}\n` + + ` ${path.relative(REPO_ROOT, sumPath)}\n` + + ` round-trips through zip.mjs\n`, +); + +if (!verify) process.exit(0); + +// --- self-sufficiency -------------------------------------------------------- + +// Unpacked well away from the repository, so nothing here can be answered by a +// file that happens to be lying around next to it. +const scratch = fs.mkdtempSync(path.join(fs.realpathSync(os.tmpdir()), "gc-bundle-")); +for (const name of reopened.names) { + const target = path.join(scratch, ...name.split("/")); + fs.mkdirSync(path.dirname(target), { recursive: true }); + fs.writeFileSync(target, reopened.read(name)); +} + +const run = (...cliArgs) => + spawnSync(process.execPath, [path.join(scratch, "bin", "query.mjs"), ...cliArgs], { encoding: "utf8" }); + +const checks = [ + ["--exists GraphCompose.DocumentBuilder.pageSize", run("--exists", "GraphCompose.DocumentBuilder.pageSize"), 0], + ["--task layout.two-columns", run("--task", "layout.two-columns"), 0], + ["--exists TableBuilder.noSuchMethod", run("--exists", "TableBuilder.noSuchMethod"), 3], +]; + +let failed = 0; +process.stdout.write(`\n[build-bundle] standalone, unpacked at ${scratch}\n`); +for (const [label, result, expected] of checks) { + const ok = result.status === expected; + if (!ok) failed += 1; + process.stdout.write( + ` ${ok ? "ok " : "FAIL"} exit ${result.status} (want ${expected}) ${label}\n` + + (ok ? "" : ` ${(result.stderr || result.stdout || "").trim().split("\n")[0]}\n`), + ); +} + +fs.rmSync(scratch, { recursive: true, force: true }); + +if (failed) { + process.stderr.write("\n[build-bundle] the bundle is not self-sufficient\n"); + process.exit(1); +} +process.stdout.write(" the bundle answers with no repository present\n"); diff --git a/knowledge/tools/bundle/lib/zip-write.mjs b/knowledge/tools/bundle/lib/zip-write.mjs new file mode 100644 index 000000000..13c4ef4d3 --- /dev/null +++ b/knowledge/tools/bundle/lib/zip-write.mjs @@ -0,0 +1,128 @@ +/** + * knowledge/tools/bundle/lib/zip-write.mjs — write the archive `zip.mjs` reads. + * + * The companion to `../../api-surface/lib/zip.mjs`, which already understands + * this format from the reading side: stored (0) and deflate (8) entries with a + * classic, non-zip64 central directory. Writing the same subset means the bundle + * can be verified by round-tripping it through the reader this repository + * already trusts, which is a better test than any assertion about bytes. + * + * Written rather than depended on for the same reason `zip.mjs` was: the + * repository ships no dependencies, and a build tool that pulls one in to make + * an archive puts a `node_modules` install on the critical path of a release. + * + * Deterministic on purpose. Entries are written in the order given, and every + * timestamp is fixed rather than taken from the clock — two runs over the same + * content must produce the same archive, or the checksum beside it describes the + * moment it was built instead of what is in it. + */ + +import zlib from "node:zlib"; + +const LOCAL_SIGNATURE = 0x04034b50; +const CENTRAL_SIGNATURE = 0x02014b50; +const EOCD_SIGNATURE = 0x06054b50; + +/** + * A fixed DOS timestamp: 1980-01-01 00:00:00, the epoch of the format itself. + * + * A real time here would make every build differ from the last, so the archive's + * own checksum would change when nothing in it did — and a checksum that moves + * on its own is one nobody can use to detect that something moved. + */ +const DOS_TIME = 0; +const DOS_DATE = 0x0021; + +const CRC_TABLE = (() => { + const table = new Int32Array(256); + for (let i = 0; i < 256; i += 1) { + let c = i; + for (let k = 0; k < 8; k += 1) c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1; + table[i] = c; + } + return table; +})(); + +function crc32(buffer) { + let c = 0 ^ -1; + for (let i = 0; i < buffer.length; i += 1) { + c = (c >>> 8) ^ CRC_TABLE[(c ^ buffer[i]) & 0xff]; + } + return (c ^ -1) >>> 0; +} + +/** + * Build a zip from `[name, contents]` pairs. + * + * @param {Array<[string, Buffer]>} entries slash-separated names, as a zip spells them + * @returns {Buffer} + */ +export function writeZip(entries) { + const locals = []; + const centrals = []; + let offset = 0; + + for (const [name, contents] of entries) { + const nameBytes = Buffer.from(name, "utf8"); + const crc = crc32(contents); + + // Deflate unless it makes the entry bigger, which it does for very short + // files. A stored entry is read by the same code path, so this costs nothing + // but bytes saved. + const deflated = zlib.deflateRawSync(contents, { level: 9 }); + const useDeflate = deflated.length < contents.length; + const payload = useDeflate ? deflated : contents; + const method = useDeflate ? 8 : 0; + + const local = Buffer.alloc(30); + local.writeUInt32LE(LOCAL_SIGNATURE, 0); + local.writeUInt16LE(20, 4); // version needed + local.writeUInt16LE(0, 6); // flags + local.writeUInt16LE(method, 8); + local.writeUInt16LE(DOS_TIME, 10); + local.writeUInt16LE(DOS_DATE, 12); + local.writeUInt32LE(crc, 14); + local.writeUInt32LE(payload.length, 18); + local.writeUInt32LE(contents.length, 22); + local.writeUInt16LE(nameBytes.length, 26); + local.writeUInt16LE(0, 28); // extra length + + locals.push(local, nameBytes, payload); + + const central = Buffer.alloc(46); + central.writeUInt32LE(CENTRAL_SIGNATURE, 0); + central.writeUInt16LE(20, 4); // version made by + central.writeUInt16LE(20, 6); // version needed + central.writeUInt16LE(0, 8); // flags + central.writeUInt16LE(method, 10); + central.writeUInt16LE(DOS_TIME, 12); + central.writeUInt16LE(DOS_DATE, 14); + central.writeUInt32LE(crc, 16); + central.writeUInt32LE(payload.length, 20); + central.writeUInt32LE(contents.length, 24); + central.writeUInt16LE(nameBytes.length, 28); + central.writeUInt16LE(0, 30); // extra + central.writeUInt16LE(0, 32); // comment + central.writeUInt16LE(0, 34); // disk + central.writeUInt16LE(0, 36); // internal attributes + central.writeUInt32LE(0, 38); // external attributes + central.writeUInt32LE(offset, 42); + + centrals.push(central, nameBytes); + offset += local.length + nameBytes.length + payload.length; + } + + const centralDirectory = Buffer.concat(centrals); + + const eocd = Buffer.alloc(22); + eocd.writeUInt32LE(EOCD_SIGNATURE, 0); + eocd.writeUInt16LE(0, 4); // this disk + eocd.writeUInt16LE(0, 6); // disk with central directory + eocd.writeUInt16LE(entries.length, 8); + eocd.writeUInt16LE(entries.length, 10); + eocd.writeUInt32LE(centralDirectory.length, 12); + eocd.writeUInt32LE(offset, 16); + eocd.writeUInt16LE(0, 20); // comment length + + return Buffer.concat([...locals, centralDirectory, eocd]); +} From e1bdae7daa25b41ebb05ef38cdb9d3022ab6d224 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Mon, 31 Aug 2026 17:58:58 +0100 Subject: [PATCH 05/11] feat(knowledge): name the pages a change invalidated, not the whole tree MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The last piece. Everything before this made the pack correct; this is what it was for — turning "which documentation does this change invalidate" from a reading task into an intersection. $ node knowledge/tools/changeset/changeset.mjs --base HEAD API: +0 -2 ~0 - TableBuilder.zebra(DocumentColor,DocumentColor) - TableBuilder.zebra(DocumentTableStyle,DocumentTableStyle) pages to review (1): docs/recipes/tables.md (Zebra — alternating row fills) removed: TableBuilder.zebra(DocumentTableStyle,DocumentTableStyle) That output is from a real replay: @Internal was put on both zebra overloads, the class recompiled, and the pipeline named one page, one heading and the reason — no false positives, and nothing to read that did not need reading. It costs one `git show` per surface and no build, because both sides of the comparison are already tracked. That is the direct payoff of committing the generated surfaces in the first place. Behavioural signals are ranked rather than pooled. A changed layout snapshot or visual baseline is proof: the file IS the recorded output, so a diff in it is drift by construction. A changed example is a hint — examples move for many reasons. "A test file changed" is not a signal at all: tests change for stylistic reasons constantly, and a channel that fires on every refactor is one people learn to ignore. The set is bounded, and the two ways out of it are explicit rather than accidental: a surface that does not exist at the base, and a proof-strength change no claim covers. Run against origin/develop — where knowledge/ does not exist yet — the pipeline escalates all five surfaces instead of presenting 4160 bogus additions as a changeset, which is the difference between a tool that reports and a tool that is trusted. --- knowledge/tools/changeset/changeset.mjs | 346 ++++++++++++++++++++++++ 1 file changed, 346 insertions(+) create mode 100644 knowledge/tools/changeset/changeset.mjs diff --git a/knowledge/tools/changeset/changeset.mjs b/knowledge/tools/changeset/changeset.mjs new file mode 100644 index 000000000..4bc2d2cb2 --- /dev/null +++ b/knowledge/tools/changeset/changeset.mjs @@ -0,0 +1,346 @@ +#!/usr/bin/env node +/** + * knowledge/tools/changeset/changeset.mjs — what this change invalidated. + * + * node knowledge/tools/changeset/changeset.mjs --base origin/develop + * node knowledge/tools/changeset/changeset.mjs --base v2.2.2 --json + * + * Exit 0 always (this reports, it does not gate) · 2 usage · 4 git unusable. + * + * The question "which documentation does this change invalidate" is answered + * today by reading the documentation. This answers it by intersection instead: + * the surfaces say which symbols moved, the claims index says which pages assert + * them, and only those pages come back. + * + * It costs one `git show` per surface and no build at all. That is a direct + * payoff of committing the generated surfaces: both sides of the comparison are + * already in git, so the API diff between any two refs is computable without + * checking either of them out. + * + * Behavioural signals are **ranked, not pooled**: + * + * proof a changed layout snapshot or visual baseline. Geometry drift by + * construction — the file *is* the recorded output, so a diff in it is + * evidence, not a hint. + * hint a changed example. Examples change for many reasons; worth naming, + * never worth treating as evidence. + * + * "A test file changed" is deliberately not a signal at all. Tests change for + * stylistic reasons constantly, and a channel that fires on every refactor is + * one people learn to ignore. + * + * The output is a **bounded** set, and the two ways out of it are explicit + * rather than accidental: a file the pipeline cannot classify, and a + * proof-strength change no claim covers. Each becomes a named file to look at. + * The point is not that a reader may never open anything else — it is that + * nothing is skipped silently. + */ + +import fs from "node:fs"; +import path from "node:path"; +import { spawnSync } from "node:child_process"; +import { fileURLToPath } from "node:url"; + +const HERE = path.dirname(fileURLToPath(import.meta.url)); +const REPO_ROOT = path.resolve(HERE, "..", "..", ".."); +const SURFACES = ["authoring", "templates", "backends", "testing", "extension-spi"]; + +function usage(code = 0) { + process.stdout.write( + "usage: node knowledge/tools/changeset/changeset.mjs --base [--head ] [--json]\n\n" + + " --base what to compare against (a branch, tag or commit)\n" + + " --head the other side (default: the working tree)\n" + + " --json machine-readable\n\n" + + "exit: 0 reported | 2 usage | 4 git unusable\n", + ); + process.exit(code); +} + +const argv = process.argv.slice(2); +let base = null; +let head = null; +let asJson = false; +for (let i = 0; i < argv.length; i += 1) { + const a = argv[i]; + if (a === "--help" || a === "-h") usage(0); + else if (a === "--base") base = argv[++i]; + else if (a === "--head") head = argv[++i]; + else if (a === "--json") asJson = true; + else usage(2); +} +if (!base) usage(2); + +const git = (...args) => { + const run = spawnSync("git", ["-C", REPO_ROOT, ...args], { encoding: "utf8", maxBuffer: 64 * 1024 * 1024 }); + return run.status === 0 ? run.stdout : null; +}; + +if (git("rev-parse", "--git-dir") === null) { + process.stderr.write("[changeset] not a git repository, or git is unavailable\n"); + process.exit(4); +} +if (git("rev-parse", "--verify", `${base}^{commit}`) === null) { + process.stderr.write(`[changeset] cannot resolve --base "${base}"\n`); + process.exit(4); +} + +// --- the API diff ------------------------------------------------------------ + +/** Every member of a surface, flattened to `Type.member(erased,params)`. */ +function membersOf(json) { + const out = new Map(); + if (!json) return out; + for (const pkg of json.packages ?? []) { + for (const type of pkg.types ?? []) { + out.set(type.name, { kind: "type", stability: type.stability ?? "stable" }); + for (const member of type.members ?? []) { + const params = (member.params ?? []).map((p) => p.type).join(","); + const key = member.kind === "constant" ? `${type.name}.${member.name}` : `${type.name}.${member.name}(${params})`; + out.set(key, { + kind: member.kind, + returns: member.returns ?? null, + stability: member.stability ?? type.stability ?? "stable", + }); + } + } + } + return out; +} + +function surfaceAt(ref, surface) { + const text = ref === null + ? (fs.existsSync(path.join(REPO_ROOT, "knowledge", "api", `${surface}.json`)) + ? fs.readFileSync(path.join(REPO_ROOT, "knowledge", "api", `${surface}.json`), "utf8") + : null) + : git("show", `${ref}:knowledge/api/${surface}.json`); + if (!text) return null; + try { + return JSON.parse(text); + } catch { + return null; + } +} + +const api = { added: [], removed: [], changed: [] }; +const surfacesMissingAtBase = []; + +for (const surface of SURFACES) { + const before = membersOf(surfaceAt(base, surface)); + const afterDoc = surfaceAt(head ?? null, surface); + const after = membersOf(afterDoc); + + if (before.size === 0 && after.size > 0) surfacesMissingAtBase.push(surface); + + for (const [key, value] of after) { + if (!before.has(key)) { + api.added.push({ symbol: key, surface, stability: value.stability }); + continue; + } + const was = before.get(key); + if (was.returns !== value.returns || was.stability !== value.stability) { + api.changed.push({ + symbol: key, + surface, + ...(was.returns !== value.returns ? { returns: [was.returns, value.returns] } : {}), + ...(was.stability !== value.stability ? { stability: [was.stability, value.stability] } : {}), + }); + } + } + for (const key of before.keys()) { + if (!after.has(key)) api.removed.push({ symbol: key, surface, stability: before.get(key).stability }); + } +} + +// --- behavioural signals ----------------------------------------------------- + +const SIGNALS = [ + { + strength: "proof", + what: "layout snapshot", + // The file IS the recorded geometry, so a diff in it is drift by + // construction rather than an indication of it. + test: (f) => /(^|\/)layout-snapshots\/.*\.json$/.test(f), + }, + { + strength: "proof", + what: "visual baseline", + test: (f) => /(^|\/)visual-baselines\//.test(f) || /^baselines\//.test(f), + }, + { + strength: "hint", + what: "example", + test: (f) => /^examples\/src\/main\//.test(f), + }, +]; + +const range = head ? `${base}...${head}` : base; +const nameStatus = git("diff", "--name-status", range) ?? ""; +const changedFiles = nameStatus + .split(/\r?\n/) + .filter(Boolean) + .map((line) => { + const [status, ...rest] = line.split(/\t/); + return { status: status[0], file: rest[rest.length - 1] }; + }); + +const behavior = []; +for (const { status, file } of changedFiles) { + for (const signal of SIGNALS) { + if (signal.test(file)) { + behavior.push({ strength: signal.strength, what: signal.what, file, status }); + break; + } + } +} + +// --- intersect with what the documentation claims ---------------------------- + +const readJson = (p) => (fs.existsSync(p) ? JSON.parse(fs.readFileSync(p, "utf8")) : null); +const claims = readJson(path.join(REPO_ROOT, "knowledge", "claims", "index.json"))?.claims ?? { + symbol: {}, capability: {}, behavior: {}, +}; +const routes = readJson(path.join(REPO_ROOT, "knowledge", "routing", "tasks.json"))?.tasks ?? []; + +/** `Type.member(params)` and `Type.member` both answer to a claim of `Type.member`. */ +const claimKeysFor = (symbol) => { + const bare = symbol.replace(/\(.*$/, ""); + return [symbol, bare].filter((k) => claims.symbol[k]); +}; + +const pages = new Map(); +const noteAffected = (page, why) => { + const entry = pages.get(page.page) ?? { page: page.page, heading: page.heading, why: [] }; + entry.why.push(why); + pages.set(page.page, entry); +}; + +const movedSymbols = [ + ...api.removed.map((e) => ({ ...e, how: "removed" })), + ...api.changed.map((e) => ({ ...e, how: "changed" })), + ...api.added.map((e) => ({ ...e, how: "added" })), +]; + +for (const moved of movedSymbols) { + for (const key of claimKeysFor(moved.symbol)) { + for (const holder of claims.symbol[key]) { + noteAffected(holder, `${moved.how}: ${moved.symbol}`); + } + } +} + +const affectedTasks = []; +for (const route of routes) { + const hits = (route.symbols ?? []).filter((s) => + movedSymbols.some((m) => m.symbol === s || m.symbol.startsWith(`${s}(`)), + ); + if (hits.length) affectedTasks.push({ task: route.task, symbols: hits, docs: route.docs }); +} + +// --- escalations ------------------------------------------------------------- + +const escalations = []; + +// A surface that did not exist at the base is not a diff, it is a new file the +// comparison cannot speak about. Reporting its whole contents as "added" would +// bury a real change under hundreds of lines. +for (const surface of surfacesMissingAtBase) { + escalations.push({ + what: `surface "${surface}" does not exist at ${base}`, + why: "nothing to compare against — read it rather than trusting the diff", + }); +} + +// A recorded output moved and no page claims anything about it. Either the +// behaviour is undocumented, or it is documented without a claim; both are +// answered by opening the file rather than by assuming nothing broke. +for (const signal of behavior.filter((b) => b.strength === "proof")) { + const covered = Object.values(claims.behavior).some((holders) => + holders.some((h) => h.proof && signal.file.includes(path.basename(h.proof.split(":")[1] ?? "", ".java"))), + ); + if (!covered) { + escalations.push({ + what: `${signal.what} changed: ${signal.file}`, + why: "recorded output moved and no claim covers it — targeted review of this file", + }); + } +} + +// --- report ------------------------------------------------------------------ + +const changeset = { + schemaVersion: 1, + base, + head: head ?? "(working tree)", + api: { + added: api.added.sort((a, b) => a.symbol.localeCompare(b.symbol)), + removed: api.removed.sort((a, b) => a.symbol.localeCompare(b.symbol)), + changed: api.changed.sort((a, b) => a.symbol.localeCompare(b.symbol)), + }, + behavior, + affectedPages: [...pages.values()].sort((a, b) => a.page.localeCompare(b.page)), + affectedTasks, + escalations, +}; + +const outFile = path.join(REPO_ROOT, "target", "knowledge", "changeset.json"); +fs.mkdirSync(path.dirname(outFile), { recursive: true }); +fs.writeFileSync(outFile, `${JSON.stringify(changeset, null, 2)}\n`, "utf8"); + +if (asJson) { + process.stdout.write(`${JSON.stringify(changeset, null, 2)}\n`); + process.exit(0); +} + +const out = []; +out.push(`changeset ${base} -> ${changeset.head}`); +out.push(""); + +const total = api.added.length + api.removed.length + api.changed.length; +if (total === 0) { + out.push(" API: unchanged"); +} else { + out.push(` API: +${api.added.length} -${api.removed.length} ~${api.changed.length}`); + for (const e of api.removed.slice(0, 10)) out.push(` - ${e.symbol} (${e.surface})`); + for (const e of api.changed.slice(0, 10)) { + const how = e.returns ? `${e.returns[0]} -> ${e.returns[1]}` : `${e.stability[0]} -> ${e.stability[1]}`; + out.push(` ~ ${e.symbol} ${how}`); + } + for (const e of api.added.slice(0, 10)) out.push(` + ${e.symbol} (${e.surface})`); + if (total > 30) out.push(` … ${total - 30} more, see target/knowledge/changeset.json`); +} + +if (behavior.length) { + out.push(""); + out.push(" behaviour:"); + for (const b of behavior.slice(0, 12)) out.push(` ${b.strength.padEnd(5)} ${b.what}: ${b.file}`); +} + +out.push(""); +if (changeset.affectedPages.length) { + out.push(` pages to review (${changeset.affectedPages.length}):`); + for (const p of changeset.affectedPages) { + out.push(` ${p.page}${p.heading ? ` (${p.heading})` : ""}`); + for (const why of [...new Set(p.why)]) out.push(` ${why}`); + } +} else { + out.push(" pages to review: none — no changed symbol is claimed by any page"); +} + +if (affectedTasks.length) { + out.push(""); + out.push(" routes to re-check:"); + for (const t of affectedTasks) out.push(` ${t.task} (${t.symbols.join(", ")})`); +} + +if (escalations.length) { + out.push(""); + out.push(` escalations (${escalations.length}) — the pipeline could not bound these:`); + for (const e of escalations) { + out.push(` ${e.what}`); + out.push(` ${e.why}`); + } +} + +out.push(""); +out.push(" target/knowledge/changeset.json"); +process.stdout.write(`${out.join("\n")}\n`); From b5bc21ecfb7a9b08ea573b8e0b80e25b4d712cfc Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Mon, 31 Aug 2026 19:24:08 +0100 Subject: [PATCH 06/11] fix(knowledge): close three ways the surface could lie without failing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All three are the same shape: something the extractor could not read, or could not match, degraded into "nothing to report" — and a closed set whose silence cannot be trusted is worse than no closed set at all. **Constructor annotations never matched.** A class file calls a constructor ``; javap renames it to the simple type name. So annotations recorded under `(int)` were looked up as `Foo(int)`, and the two can never meet. `@Internal` and `@Beta` both list `ElementType.CONSTRUCTOR`, so an `@Internal` constructor would have reached the surface as public API and a `@Beta` one read as settled. No annotated constructor ships today — only two `@Deprecated` ones, which the classifier does not act on — so no surface on disk was wrong; the contract allowed it, and that was enough. The fix is not a branch at the call site. The key rule now lives in `memberKeyForMember`, which the extractor and the tests both go through, because building the key at each call site is precisely how the rule came to be missing at the only site that mattered. Three fixtures cover `@Internal`, `@Beta` and unannotated constructors, and two assertions state the trap directly: javap's spelling finds nothing, and the class file says ``. **Annotation read errors failed open.** A class the reader could not parse became a class with no annotations. The reader throws on an unknown constant-pool tag *because* it cannot know what it is looking at, and swallowing that turned "I could not tell" into "there is nothing here" — which for a package carrying `@Internal` publishes every type inside it. Absent is still fine: most packages have no `package-info` at all. Present-but-unreadable now stops the run with the class or package named. **A class javap could not read simply vanished.** Found while testing the above: javap runs in batches, and a corrupt class does not stop the batch — it reports on stderr and returns the rest, so the surface came out one type smaller and the run still exited 0. `SvgIcon` disappeared with no complaint. That is the shape of the drift this pack exists to end, arriving from inside its own tooling. Every candidate that goes into javap must now come back out. Also: the release workflow re-checks claims and routes before building the bundle. The bundle carries `claims/` and `routing/`, so a correct API surface was not enough to publish it — a stale claims index or a route whose anchor had been renamed would have shipped as a release asset unchallenged. `check-routes` no longer accepts `--check`. It was parsed and never read, so the flag advertised a mode the tool does not have; routes are hand-authored with no generated counterpart, and validating them is the check. No generated surface changes: the constructor fix alters no output today, which is what latent means. --- .github/workflows/release.yml | 8 +++ knowledge/tools/api-surface/extract-api.mjs | 65 ++++++++++++++++--- .../tools/api-surface/lib/annotations.mjs | 23 +++++++ .../api-surface/test/classifier.test.mjs | 63 +++++++++++++++++- knowledge/tools/routing/check-routes.mjs | 9 ++- 5 files changed, 155 insertions(+), 13 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3944c72bd..8000e2bd5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -61,6 +61,14 @@ jobs: run: | node knowledge/tools/api-surface/extract-api.mjs --from-reactor --check node knowledge/tools/api-surface/extract-api.mjs --from-reactor + # The bundle carries claims/ and routing/ too, so a correct API surface + # is not enough to publish it: a hand-authored route or a stale claims + # index would ship as a release asset unchallenged. The tag re-checks + # them against the exact commit being tagged rather than trusting that + # a PR run covered it. (check-routes has no --check: routes have no + # generated counterpart, so validating them is the check.) + node knowledge/tools/claims/check-claims.mjs --check + node knowledge/tools/routing/check-routes.mjs node knowledge/tools/bundle/build-bundle.mjs --verify - name: Extract CHANGELOG section for the tag diff --git a/knowledge/tools/api-surface/extract-api.mjs b/knowledge/tools/api-surface/extract-api.mjs index b7ba0afa5..fb099e76f 100644 --- a/knowledge/tools/api-surface/extract-api.mjs +++ b/knowledge/tools/api-surface/extract-api.mjs @@ -45,7 +45,7 @@ import { openJar } from "./lib/zip.mjs"; import { openDir, isDirectory, reactorVersion } from "./lib/tree.mjs"; import { buildProvenance } from "./lib/provenance.mjs"; import { renderMarkdown } from "./lib/render-markdown.mjs"; -import { readAnnotations, memberKey } from "./lib/annotations.mjs"; +import { readAnnotations, memberKeyForMember } from "./lib/annotations.mjs"; import { admit, stability, @@ -271,8 +271,19 @@ function readPackageAnnotations(jar) { if (!inCandidateScope(pkg)) continue; try { byPackage.set(pkg, readAnnotations(jar.read(entry)).type); - } catch { - byPackage.set(pkg, []); + } catch (error) { + // Absent is fine — most packages have no package-info at all, and the + // caller defaults to []. Present-but-unreadable is not: the reader throws + // on an unknown constant-pool tag precisely because it cannot know what it + // is looking at, and swallowing that turns "I could not tell" into "no + // annotations here". For a package carrying @Internal that silently + // publishes every type inside it, which is the one outcome this pack + // exists to prevent. + throw new Error( + `cannot read package annotations for ${pkg} (${entry}): ${error.message} +` + + " The file exists but could not be parsed. Refusing to treat it as unannotated.", + ); } } return byPackage; @@ -347,6 +358,23 @@ function buildSurface({ version, artifacts, javap }) { const packageAnnotations = readPackageAnnotations(jar); const raw = readTypes({ javap, classpath: resolved.binary, classNames }); + // javap is run in batches, and a class it cannot read does not stop the + // batch: it reports on stderr and returns the rest, so the surface comes out + // silently one type smaller and the run still exits 0. A quietly shrinking + // allow-list is the exact shape of the drift this pack exists to end, so + // every candidate that went in must come back out. + const returned = new Set(raw.map((t) => t.binaryName)); + const dropped = classNames.filter((name) => !returned.has(name)); + if (dropped.length) { + throw new Error( + `javap returned nothing for ${dropped.length} class(es) of ${resolved.artifact}: +` + + dropped.map((n) => ` ${n} +`).join("") + + " They would have vanished from the surface without failing the run.", + ); + } + const names = resolved.sources ? indexParameterNames(openArchive(resolved.sources), (entry) => inCandidateScope(entry.slice(0, -".java".length).replace(/\//g, ".")), @@ -361,12 +389,23 @@ function buildSurface({ version, artifacts, javap }) { const simple = simplifyType(type.binaryName); const pkg = type.binaryName.replace(/\$.*$/, "").replace(/\.[^.]+$/, ""); + // Same asymmetry as for package-info: a class the archive does not hold + // under that name has no annotations to read, but one it holds and cannot + // parse must stop the run. A parse failure that degrades to "unannotated" + // would let an @Internal type into the surface as public API, and the + // whole value of this file is that its "no" can be trusted. + const entryName = `${type.binaryName.replace(/\./g, "/")}.class`; let annotations = { type: [], methods: new Map(), ambiguous: [] }; - try { - annotations = readAnnotations(jar.read(`${type.binaryName.replace(/\./g, "/")}.class`)); - } catch { - // A class the jar does not hold under that name cannot be annotated - // either; it stays unannotated rather than failing the run. + if (jar.names.includes(entryName)) { + try { + annotations = readAnnotations(jar.read(entryName)); + } catch (error) { + throw new Error( + `cannot read annotations for ${type.binaryName} (${entryName}): ${error.message} +` + + " The class exists but could not be parsed. Refusing to treat it as unannotated.", + ); + } } const members = type.members @@ -382,7 +421,15 @@ function buildSurface({ version, artifacts, javap }) { member.kind === "constant" ? [] : annotations.methods.get( - memberKey(member.name, member.params.map((prm) => simplifyType(prm.type))), + // Through the shared helper, never memberKey directly: a + // constructor is `` in the class file and the simple + // type name in javap's rendering, and building the key here + // is how that difference went unnoticed. + memberKeyForMember({ + kind: member.kind, + name: member.name, + params: member.params.map((prm) => simplifyType(prm.type)), + }), ) ?? [], ...(member.kind === "constant" ? { type: simplifyType(member.type) } diff --git a/knowledge/tools/api-surface/lib/annotations.mjs b/knowledge/tools/api-surface/lib/annotations.mjs index ef8c9aa1c..dcedc46bd 100644 --- a/knowledge/tools/api-surface/lib/annotations.mjs +++ b/knowledge/tools/api-surface/lib/annotations.mjs @@ -246,6 +246,29 @@ export function memberKey(name, paramTypes) { return `${name}(${erased.join(",")})`; } +/** + * A class file always calls a constructor ``. `javap` does not — it + * renames one to the simple type name. + * + * So a member read from javap arrives as `Foo(int)` while the annotations + * recorded against it sit under `(int)`, and those keys can never meet. + * The failure is silent and in the worst direction: an `@Internal` constructor + * reaches the surface as public API, and a `@Beta` one reads as settled. Both + * annotations list `ElementType.CONSTRUCTOR`, so this is a declared part of the + * contract, not a corner of it. + * + * Callers go through this rather than calling `memberKey` directly, so the rule + * lives in one place instead of being re-derived per call site — which is how it + * came to be missing at the only call site that mattered. + */ +export const CONSTRUCTOR_NAME = ""; + +export function memberKeyForMember(member) { + const name = member.kind === "constructor" ? CONSTRUCTOR_NAME : member.name; + const params = (member.params ?? []).map((p) => (typeof p === "string" ? p : p.type)); + return memberKey(name, params); +} + /** * Runtime-visible annotations declared on a class and on its methods. * diff --git a/knowledge/tools/api-surface/test/classifier.test.mjs b/knowledge/tools/api-surface/test/classifier.test.mjs index d21b15ef4..bf702b36b 100644 --- a/knowledge/tools/api-surface/test/classifier.test.mjs +++ b/knowledge/tools/api-surface/test/classifier.test.mjs @@ -30,7 +30,12 @@ import { spawnSync } from "node:child_process"; import { fileURLToPath } from "node:url"; import { findJavap } from "../lib/javap.mjs"; -import { readAnnotations, memberKey, descriptorParamTypes } from "../lib/annotations.mjs"; +import { + readAnnotations, + memberKey, + memberKeyForMember, + descriptorParamTypes, +} from "../lib/annotations.mjs"; import { admit, stability, memberStability, INTERNAL, BETA } from "../lib/surfaces.mjs"; import { openDir } from "../lib/tree.mjs"; @@ -63,6 +68,21 @@ public final class BetaType { public record NestedPlain(int n) {} }`, + // Annotated constructors. `@Internal` and `@Beta` both list + // ElementType.CONSTRUCTOR, and a class file calls a constructor `` + // while javap renames it to the simple type name — so a lookup built from + // javap's spelling can never find what the class file recorded. + [`${PKG}/AnnotatedCtors.java`]: `package ${PKG}; +import com.demcha.compose.document.api.Beta; +import com.demcha.compose.document.api.Internal; +public final class AnnotatedCtors { + @Internal + public AnnotatedCtors(int hidden) {} + @Beta + public AnnotatedCtors(String provisional) {} + public AnnotatedCtors() {} +}`, + // A stable type carrying one @Beta member and one @Internal member, plus two // overloads that share a name and an arity and differ only in parameter type — // the ShapeContainerBuilder.path shape. The annotation is written fully @@ -297,6 +317,47 @@ function run() { memberStability(memberAnnotations("overloaded", ["double", "double", "CharSequence"]), "stable"), "beta", ); + // --- constructors --- + // + // Read through the same helper the extractor uses, so the test guards the + // extractor's lookup rather than a second copy of the rule. Keying a + // constructor by javap's spelling silently loses both annotations: an + // @Internal constructor reaches the surface and a @Beta one reads stable. + const ctors = asIfAdmitted(`${PKG}.AnnotatedCtors`, PKG); + const ctorAnnotations = (params) => + ctors.methods.get(memberKeyForMember({ kind: "constructor", name: "AnnotatedCtors", params })) ?? []; + + check( + "C1 @Internal constructor is dropped", + memberStability(ctorAnnotations(["int"]), "stable"), + null, + ); + check( + "C2 @Beta constructor is beta", + memberStability(ctorAnnotations(["String"]), "stable"), + "beta", + ); + check( + "C3 unannotated constructor inherits the type", + memberStability(ctorAnnotations([]), "stable"), + "stable", + ); + + // The trap itself, stated as an assertion: javap's spelling finds nothing. + // A call site that builds the key from `member.name` therefore drops the + // annotation silently, which is why `memberKeyForMember` exists and why the + // extractor is required to go through it. + check( + "javap's constructor spelling finds no annotations (the trap)", + ctors.methods.get(memberKey("AnnotatedCtors", ["int"])) ?? null, + null, + ); + check( + "the class file spells it ", + memberKeyForMember({ kind: "constructor", name: "AnnotatedCtors", params: ["int"] }), + "(int)", + ); + check( "erased-type keying leaves no ambiguity to guess about", mixed.ambiguous, diff --git a/knowledge/tools/routing/check-routes.mjs b/knowledge/tools/routing/check-routes.mjs index fe1d3c5cf..132bc874f 100644 --- a/knowledge/tools/routing/check-routes.mjs +++ b/knowledge/tools/routing/check-routes.mjs @@ -4,7 +4,6 @@ * things that make a route trustworthy. * * node knowledge/tools/routing/check-routes.mjs - * node knowledge/tools/routing/check-routes.mjs --check * * Exit 0 clean · 1 a route does not hold up · 2 usage. * @@ -51,12 +50,16 @@ const CLAIMS_INDEX = path.join(REPO_ROOT, "knowledge", "claims", "index.json"); const args = process.argv.slice(2); if (args.some((a) => a === "--help" || a === "-h")) { process.stdout.write( - "usage: node knowledge/tools/routing/check-routes.mjs [--check]\n\n" + + "usage: node knowledge/tools/routing/check-routes.mjs\n\n" + + " Routes are hand-authored and have no generated counterpart, so there is\n" + + " no --check mode: validating them IS the check.\n\n" + "exit: 0 clean | 1 a route does not hold up | 2 usage\n", ); process.exit(0); } -if (args.some((a) => a !== "--check")) process.exit(2); +// No --check: it would advertise a mode this tool does not have. Routes have no +// generated artifact to compare against, so every run is the check. +if (args.length) process.exit(2); /** GitHub's heading -> anchor rule, enough of it for our own headings. */ function anchorOf(heading) { From 2f4f38752c458909ae548db0ec4cc6483aea6f84 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Mon, 31 Aug 2026 19:28:26 +0100 Subject: [PATCH 07/11] chore(knowledge): the three routes are confirmed, and a signature must be one MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `confirmedBy` is the one gate in the six a machine cannot close: every other check is mechanical, but whether `row-with-weights` is the *right* answer for two columns is a judgement. All three routes now carry a name instead of null: layout.two-columns -> row-with-weights layout.choose-the-layer -> page-flow table.header-on-every-page -> repeat-header The checker no longer treats "not null" as "confirmed". A whitespace string, a boolean, or any non-name would have read as a signature while recording nobody — and this is the field whose whole purpose is to say a human looked. It must be a name or an explicit `null`; omitting it fails, because an absent field is indistinguishable from one nobody has reached yet. The human output stays silent on a confirmed route and warns on an unconfirmed one. The warning is the actionable half; printing "confirmed by X" on every lookup would be noise on the common path, and the field is in `--json` for anyone who needs the provenance. --- knowledge/routing/tasks.json | 6 +++--- knowledge/tools/routing/check-routes.mjs | 11 ++++++++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/knowledge/routing/tasks.json b/knowledge/routing/tasks.json index b3b7596da..3b60fd9d9 100644 --- a/knowledge/routing/tasks.json +++ b/knowledge/routing/tasks.json @@ -34,7 +34,7 @@ "surfaces": ["authoring"], "docs": ["docs/recipes/layered-page-design.md#sidebar-page-background-vs-row"], "verifiedAgainst": "2.2.3-SNAPSHOT", - "confirmedBy": null + "confirmedBy": "DemchaAV" }, { "task": "layout.choose-the-layer", @@ -67,7 +67,7 @@ "surfaces": ["authoring"], "docs": ["docs/recipes/layered-page-design.md#the-four-tools"], "verifiedAgainst": "2.2.3-SNAPSHOT", - "confirmedBy": null + "confirmedBy": "DemchaAV" }, { "task": "table.header-on-every-page", @@ -89,7 +89,7 @@ "surfaces": ["authoring"], "docs": ["docs/recipes/tables.md#repeated-header-on-page-break"], "verifiedAgainst": "2.2.3-SNAPSHOT", - "confirmedBy": null + "confirmedBy": "DemchaAV" } ] } diff --git a/knowledge/tools/routing/check-routes.mjs b/knowledge/tools/routing/check-routes.mjs index 132bc874f..591c8a19d 100644 --- a/knowledge/tools/routing/check-routes.mjs +++ b/knowledge/tools/routing/check-routes.mjs @@ -178,7 +178,16 @@ for (const route of doc.tasks) { if (!alt.tradeoffs) fail(id, `alternative "${alt.id}" has no tradeoffs — what it costs is the deciding half`); } - if (!route.confirmedBy) unconfirmed.push(id); + // `confirmedBy` is the one gate a machine cannot close, so the machine at + // least refuses a value that only looks like one: whitespace, or anything + // that is not a name, would read as confirmed while recording nobody. + if (route.confirmedBy === undefined) { + fail(id, "no confirmedBy field — use null for unconfirmed rather than omitting it"); + } else if (route.confirmedBy === null) { + unconfirmed.push(id); + } else if (typeof route.confirmedBy !== "string" || route.confirmedBy.trim() === "") { + fail(id, `confirmedBy is ${JSON.stringify(route.confirmedBy)} — it must name a person, or be null`); + } } if (errors.length) { From 2d5694aea8c89e46b5fffd4ba7e78ab37e1a3e59 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Mon, 31 Aug 2026 19:43:15 +0100 Subject: [PATCH 08/11] chore(knowledge): regenerate the surfaces against 2.3.0-SNAPSHOT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Retargeting the PR from `develop` to `chore/open-2.3.0` moved the base past `chore(release): open 2.3.0-SNAPSHOT`, and the committed pack still described 2.2.3-SNAPSHOT. The gate caught it and named all twelve files: [extract-api] out of date: knowledge/api/authoring.json, … (12) regenerate: node knowledge/tools/api-surface/extract-api.mjs --from-reactor Worth recording that this was not a synthetic test. A base change is an ordinary thing to do to a PR, it produces no source diff, and every check on the PR stayed green because GitHub does not re-run them when the base moves. Without the gate the pack would have merged claiming a version the tree does not have. Only the version stamps move — `verifiedAgainst`, `targetVersion` and `generatedFrom`. The surface is unchanged at 227 / 161 / 69 / 9 / 5 types with 163 exclusions, which is what a pom-only base commit should produce, and is itself a check on the extractor: a version bump that shifted an API line would mean something read the version where it should read the classes. --- knowledge/api/authoring.json | 16 ++++++++-------- knowledge/api/authoring.md | 8 ++++---- knowledge/api/backends.json | 16 ++++++++-------- knowledge/api/backends.md | 8 ++++---- knowledge/api/excluded.json | 2 +- knowledge/api/extension-spi.json | 16 ++++++++-------- knowledge/api/extension-spi.md | 8 ++++---- knowledge/api/templates.json | 16 ++++++++-------- knowledge/api/templates.md | 8 ++++---- knowledge/api/testing.json | 16 ++++++++-------- knowledge/api/testing.md | 8 ++++---- knowledge/manifest.json | 2 +- 12 files changed, 62 insertions(+), 62 deletions(-) diff --git a/knowledge/api/authoring.json b/knowledge/api/authoring.json index 3699bc55c..6cd42e734 100644 --- a/knowledge/api/authoring.json +++ b/knowledge/api/authoring.json @@ -2,16 +2,16 @@ "schemaVersion": 2, "targetLibrary": "GraphCompose", "surface": "authoring", - "targetVersion": "2.2.x", - "verifiedAgainst": "2.2.3-SNAPSHOT", + "targetVersion": "2.3.x", + "verifiedAgainst": "2.3.0-SNAPSHOT", "generator": "knowledge/tools/api-surface/extract-api.mjs", "generatedFrom": [ - "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" + "io.github.demchaav:graph-compose-core:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-templates:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pdf:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-render-docx:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pptx:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-testing:2.3.0-SNAPSHOT" ], "parameterNamesFrom": [ "graph-compose-core:sources", diff --git a/knowledge/api/authoring.md b/knowledge/api/authoring.md index cd80e8e17..3d971a3f2 100644 --- a/knowledge/api/authoring.md +++ b/knowledge/api/authoring.md @@ -1,11 +1,11 @@ --- skillId: graphcompose-api-surface targetLibrary: GraphCompose -targetVersion: 2.2.x -verifiedAgainst: 2.2.3-SNAPSHOT +targetVersion: 2.3.x +verifiedAgainst: 2.3.0-SNAPSHOT status: active generator: knowledge/tools/api-surface/extract-api.mjs -generatedFrom: "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" +generatedFrom: "io.github.demchaav:graph-compose-core:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-templates:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-render-pdf:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-render-docx:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-render-pptx:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-testing:2.3.0-SNAPSHOT" note: "Generated from the pinned artifact's class files. Authoritative closed set: a symbol absent here does not exist for this version. Regenerate, do not hand-edit." --- @@ -26,7 +26,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se > Ask it a question instead of reading it: > `node knowledge/tools/api-query/api-query.mjs --search `. -**GraphCompose version:** 2.2.3-SNAPSHOT +**GraphCompose version:** 2.3.0-SNAPSHOT Types: 227 · methods: 2020 · constants: 228 · compiler-generated members: 1077 diff --git a/knowledge/api/backends.json b/knowledge/api/backends.json index 9180a92da..50017e320 100644 --- a/knowledge/api/backends.json +++ b/knowledge/api/backends.json @@ -2,16 +2,16 @@ "schemaVersion": 2, "targetLibrary": "GraphCompose", "surface": "backends", - "targetVersion": "2.2.x", - "verifiedAgainst": "2.2.3-SNAPSHOT", + "targetVersion": "2.3.x", + "verifiedAgainst": "2.3.0-SNAPSHOT", "generator": "knowledge/tools/api-surface/extract-api.mjs", "generatedFrom": [ - "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" + "io.github.demchaav:graph-compose-core:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-templates:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pdf:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-render-docx:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pptx:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-testing:2.3.0-SNAPSHOT" ], "parameterNamesFrom": [ "graph-compose-core:sources", diff --git a/knowledge/api/backends.md b/knowledge/api/backends.md index f00e90ee9..e74d78509 100644 --- a/knowledge/api/backends.md +++ b/knowledge/api/backends.md @@ -1,11 +1,11 @@ --- skillId: graphcompose-api-surface targetLibrary: GraphCompose -targetVersion: 2.2.x -verifiedAgainst: 2.2.3-SNAPSHOT +targetVersion: 2.3.x +verifiedAgainst: 2.3.0-SNAPSHOT status: active generator: knowledge/tools/api-surface/extract-api.mjs -generatedFrom: "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" +generatedFrom: "io.github.demchaav:graph-compose-core:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-templates:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-render-pdf:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-render-docx:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-render-pptx:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-testing:2.3.0-SNAPSHOT" note: "Generated from the pinned artifact's class files. Authoritative closed set: a symbol absent here does not exist for this version. Regenerate, do not hand-edit." --- @@ -26,7 +26,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se > Ask it a question instead of reading it: > `node knowledge/tools/api-query/api-query.mjs --search `. -**GraphCompose version:** 2.2.3-SNAPSHOT +**GraphCompose version:** 2.3.0-SNAPSHOT Types: 69 · methods: 369 · constants: 18 · compiler-generated members: 187 diff --git a/knowledge/api/excluded.json b/knowledge/api/excluded.json index 23825ae5a..a44ef9e75 100644 --- a/knowledge/api/excluded.json +++ b/knowledge/api/excluded.json @@ -1,6 +1,6 @@ { "schemaVersion": 2, - "verifiedAgainst": "2.2.3-SNAPSHOT", + "verifiedAgainst": "2.3.0-SNAPSHOT", "generator": "knowledge/tools/api-surface/extract-api.mjs", "note": "Public types and members deliberately kept out of every surface. An exclusion nobody can see is indistinguishable from a bug, so each one records why.", "count": 163, diff --git a/knowledge/api/extension-spi.json b/knowledge/api/extension-spi.json index db96c85c9..f7cdf403f 100644 --- a/knowledge/api/extension-spi.json +++ b/knowledge/api/extension-spi.json @@ -2,16 +2,16 @@ "schemaVersion": 2, "targetLibrary": "GraphCompose", "surface": "extension-spi", - "targetVersion": "2.2.x", - "verifiedAgainst": "2.2.3-SNAPSHOT", + "targetVersion": "2.3.x", + "verifiedAgainst": "2.3.0-SNAPSHOT", "generator": "knowledge/tools/api-surface/extract-api.mjs", "generatedFrom": [ - "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" + "io.github.demchaav:graph-compose-core:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-templates:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pdf:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-render-docx:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pptx:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-testing:2.3.0-SNAPSHOT" ], "parameterNamesFrom": [ "graph-compose-core:sources", diff --git a/knowledge/api/extension-spi.md b/knowledge/api/extension-spi.md index 7cb9029d9..56031a005 100644 --- a/knowledge/api/extension-spi.md +++ b/knowledge/api/extension-spi.md @@ -1,11 +1,11 @@ --- skillId: graphcompose-api-surface targetLibrary: GraphCompose -targetVersion: 2.2.x -verifiedAgainst: 2.2.3-SNAPSHOT +targetVersion: 2.3.x +verifiedAgainst: 2.3.0-SNAPSHOT status: active generator: knowledge/tools/api-surface/extract-api.mjs -generatedFrom: "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" +generatedFrom: "io.github.demchaav:graph-compose-core:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-templates:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-render-pdf:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-render-docx:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-render-pptx:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-testing:2.3.0-SNAPSHOT" note: "Generated from the pinned artifact's class files. Authoritative closed set: a symbol absent here does not exist for this version. Regenerate, do not hand-edit." --- @@ -26,7 +26,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se > Ask it a question instead of reading it: > `node knowledge/tools/api-query/api-query.mjs --search `. -**GraphCompose version:** 2.2.3-SNAPSHOT +**GraphCompose version:** 2.3.0-SNAPSHOT Types: 9 · methods: 26 · constants: 0 · compiler-generated members: 26 diff --git a/knowledge/api/templates.json b/knowledge/api/templates.json index a657161af..74bf3bb7a 100644 --- a/knowledge/api/templates.json +++ b/knowledge/api/templates.json @@ -2,16 +2,16 @@ "schemaVersion": 2, "targetLibrary": "GraphCompose", "surface": "templates", - "targetVersion": "2.2.x", - "verifiedAgainst": "2.2.3-SNAPSHOT", + "targetVersion": "2.3.x", + "verifiedAgainst": "2.3.0-SNAPSHOT", "generator": "knowledge/tools/api-surface/extract-api.mjs", "generatedFrom": [ - "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" + "io.github.demchaav:graph-compose-core:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-templates:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pdf:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-render-docx:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pptx:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-testing:2.3.0-SNAPSHOT" ], "parameterNamesFrom": [ "graph-compose-core:sources", diff --git a/knowledge/api/templates.md b/knowledge/api/templates.md index 85168f569..1e84f88a7 100644 --- a/knowledge/api/templates.md +++ b/knowledge/api/templates.md @@ -1,11 +1,11 @@ --- skillId: graphcompose-api-surface targetLibrary: GraphCompose -targetVersion: 2.2.x -verifiedAgainst: 2.2.3-SNAPSHOT +targetVersion: 2.3.x +verifiedAgainst: 2.3.0-SNAPSHOT status: active generator: knowledge/tools/api-surface/extract-api.mjs -generatedFrom: "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" +generatedFrom: "io.github.demchaav:graph-compose-core:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-templates:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-render-pdf:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-render-docx:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-render-pptx:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-testing:2.3.0-SNAPSHOT" note: "Generated from the pinned artifact's class files. Authoritative closed set: a symbol absent here does not exist for this version. Regenerate, do not hand-edit." --- @@ -26,7 +26,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se > Ask it a question instead of reading it: > `node knowledge/tools/api-query/api-query.mjs --search `. -**GraphCompose version:** 2.2.3-SNAPSHOT +**GraphCompose version:** 2.3.0-SNAPSHOT Types: 161 · methods: 953 · constants: 117 · compiler-generated members: 402 diff --git a/knowledge/api/testing.json b/knowledge/api/testing.json index 949e73539..188e6133c 100644 --- a/knowledge/api/testing.json +++ b/knowledge/api/testing.json @@ -2,16 +2,16 @@ "schemaVersion": 2, "targetLibrary": "GraphCompose", "surface": "testing", - "targetVersion": "2.2.x", - "verifiedAgainst": "2.2.3-SNAPSHOT", + "targetVersion": "2.3.x", + "verifiedAgainst": "2.3.0-SNAPSHOT", "generator": "knowledge/tools/api-surface/extract-api.mjs", "generatedFrom": [ - "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT", - "io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" + "io.github.demchaav:graph-compose-core:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-templates:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pdf:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-render-docx:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-render-pptx:2.3.0-SNAPSHOT", + "io.github.demchaav:graph-compose-testing:2.3.0-SNAPSHOT" ], "parameterNamesFrom": [ "graph-compose-core:sources", diff --git a/knowledge/api/testing.md b/knowledge/api/testing.md index 7a99a8eab..417f3bf3d 100644 --- a/knowledge/api/testing.md +++ b/knowledge/api/testing.md @@ -1,11 +1,11 @@ --- skillId: graphcompose-api-surface targetLibrary: GraphCompose -targetVersion: 2.2.x -verifiedAgainst: 2.2.3-SNAPSHOT +targetVersion: 2.3.x +verifiedAgainst: 2.3.0-SNAPSHOT status: active generator: knowledge/tools/api-surface/extract-api.mjs -generatedFrom: "io.github.demchaav:graph-compose-core:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-templates:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pdf:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-docx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-render-pptx:2.2.3-SNAPSHOT, io.github.demchaav:graph-compose-testing:2.2.3-SNAPSHOT" +generatedFrom: "io.github.demchaav:graph-compose-core:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-templates:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-render-pdf:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-render-docx:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-render-pptx:2.3.0-SNAPSHOT, io.github.demchaav:graph-compose-testing:2.3.0-SNAPSHOT" note: "Generated from the pinned artifact's class files. Authoritative closed set: a symbol absent here does not exist for this version. Regenerate, do not hand-edit." --- @@ -26,7 +26,7 @@ note: "Generated from the pinned artifact's class files. Authoritative closed se > Ask it a question instead of reading it: > `node knowledge/tools/api-query/api-query.mjs --search `. -**GraphCompose version:** 2.2.3-SNAPSHOT +**GraphCompose version:** 2.3.0-SNAPSHOT Types: 5 · methods: 32 · constants: 2 · compiler-generated members: 8 diff --git a/knowledge/manifest.json b/knowledge/manifest.json index baa131d85..0e70dc098 100644 --- a/knowledge/manifest.json +++ b/knowledge/manifest.json @@ -1,7 +1,7 @@ { "schemaVersion": 2, "targetLibrary": "GraphCompose", - "targetVersion": "2.2.x", + "targetVersion": "2.3.x", "generator": "knowledge/tools/api-surface/extract-api.mjs", "generatorVersion": "2.0.0", "note": "Stable contract. Provenance for a particular run (commit, timestamp, artifact digests) is written to target/knowledge/provenance.json and is deliberately not tracked.", From cfed87e9b9947bc11507d82a85b490afac74b503 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Mon, 31 Aug 2026 20:23:10 +0100 Subject: [PATCH 09/11] feat(knowledge): resolve what backs each claim, and prove one that nothing did MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The claims index says a page asserts something and names its proof. On its own that is a promissory note: a consumer holding the bundle could read that a claim is proven and have no way to look at the thing proving it. `knowledge/proofs/index.json` resolves the note — for every proof a claim cites, the kind, the file it lives in, and everything it holds up. Five proofs hold six claims today, and one of them (`TableBuilderRepeatHeaderTest`) holds two, which is why the registry is keyed by proof rather than by claim. It is derived, not authored, so it cannot drift: a claim whose proof does not resolve already fails, and a proof nothing cites never appears. It is deliberately not a list of every test in the repository — that would be a directory listing, and the question is "what holds this claim up", not "what tests exist". **`probe:` collapsed into `test:` on contact with reality.** The plan had contract probes as a separate harness, blocked on repairing snippet-smoke and render-proof. But a contract probe *is* a JUnit test: it runs in the reactor gate and needs no harness of its own, so keeping two schemes would have been two names for one mechanism — and would have blocked this registry on repairing tooling it never needed. **The first probe for a behaviour nothing tested.** `ComposedCellSnapshotContractTest` holds both halves of a contract `docs/recipes/tables.md` now claims: a composed cell *paints* — the paragraph from `DocumentTableCell.node(...)` reaches the fragment stream — and is *invisible to the snapshot*, where no node carries its content though the table itself is recorded. The asymmetry is the point. A regression that emptied every composed cell would leave the layout snapshot byte-identical, so the snapshot gate — the usual guard for "did the geometry move" — would stay green over a document rendering blank cells. The test fails in both directions: if composed cells ever do reach the snapshot, the claim and the snapshot-testing guidance need revisiting, and this says so. Verified by mutation rather than by watching it pass: flipping the assertion to expect a snapshot node turns it red. `--check` now covers the registry as well as the claims index and names which of the two went stale. The bundle carries `proofs/`, so an agent that has only the archive can still answer "and what backs that". --- docs/recipes/tables.md | 1 + knowledge/claims/index.json | 32 +++--- knowledge/proofs/index.json | 84 +++++++++++++++ knowledge/tools/bundle/build-bundle.mjs | 2 +- knowledge/tools/claims/check-claims.mjs | 101 ++++++++++++++++-- .../ComposedCellSnapshotContractTest.java | 87 +++++++++++++++ 6 files changed, 286 insertions(+), 21 deletions(-) create mode 100644 knowledge/proofs/index.json create mode 100644 qa/src/test/java/com/demcha/compose/document/table/ComposedCellSnapshotContractTest.java diff --git a/docs/recipes/tables.md b/docs/recipes/tables.md index 0c72eb431..1cd0343d0 100644 --- a/docs/recipes/tables.md +++ b/docs/recipes/tables.md @@ -26,6 +26,7 @@ table paginates. + Three factories, three shapes. Pick by what the cell holds, not by what the text looks like: diff --git a/knowledge/claims/index.json b/knowledge/claims/index.json index eff65656f..bf38c0c58 100644 --- a/knowledge/claims/index.json +++ b/knowledge/claims/index.json @@ -6,7 +6,7 @@ "pagesWithClaims": 2, "symbol": 14, "capability": 6, - "behavior": 5 + "behavior": 6 }, "claims": { "symbol": { @@ -103,7 +103,7 @@ "TableBuilder.headerRow": [ { "page": "docs/recipes/tables.md", - "line": 186, + "line": 187, "heading": "Repeated header on page break", "surface": "authoring", "stability": "stable" @@ -112,7 +112,7 @@ "TableBuilder.repeatHeader": [ { "page": "docs/recipes/tables.md", - "line": 185, + "line": 186, "heading": "Repeated header on page break", "surface": "authoring", "stability": "stable" @@ -121,7 +121,7 @@ "TableBuilder.totalRow": [ { "page": "docs/recipes/tables.md", - "line": 149, + "line": 150, "heading": "Totals row — bold + subtle fill", "surface": "authoring", "stability": "stable" @@ -130,7 +130,7 @@ "TableBuilder.zebra": [ { "page": "docs/recipes/tables.md", - "line": 110, + "line": 111, "heading": "Zebra — alternating row fills", "surface": "authoring", "stability": "stable" @@ -162,21 +162,21 @@ "table.repeat-header-across-pages": [ { "page": "docs/recipes/tables.md", - "line": 184, + "line": 185, "heading": "Repeated header on page break" } ], "table.row-span": [ { "page": "docs/recipes/tables.md", - "line": 70, + "line": 71, "heading": "Row span — merge a cell vertically" } ], "table.zebra-striping": [ { "page": "docs/recipes/tables.md", - "line": 109, + "line": 110, "heading": "Zebra — alternating row fills" } ] @@ -190,10 +190,18 @@ "proof": "test:RowBuilderTest" } ], + "table.composed-cell-paints-but-has-no-snapshot-node": [ + { + "page": "docs/recipes/tables.md", + "line": 29, + "heading": "Cell content — one line, several lines, or a node", + "proof": "test:ComposedCellSnapshotContractTest" + } + ], "table.explicit-row-style-beats-zebra": [ { "page": "docs/recipes/tables.md", - "line": 111, + "line": 112, "heading": "Zebra — alternating row fills", "proof": "test:TableBuilderZebraAndTotalsTest" } @@ -201,7 +209,7 @@ "table.header-repeats-on-every-continuation-page": [ { "page": "docs/recipes/tables.md", - "line": 187, + "line": 188, "heading": "Repeated header on page break", "proof": "test:TableBuilderRepeatHeaderTest" } @@ -209,7 +217,7 @@ "table.repeat-header-defaults-to-zero": [ { "page": "docs/recipes/tables.md", - "line": 188, + "line": 189, "heading": "Repeated header on page break", "proof": "test:TableBuilderRepeatHeaderTest" } @@ -217,7 +225,7 @@ "table.spanning-cell-height-is-sum-of-covered-rows": [ { "page": "docs/recipes/tables.md", - "line": 71, + "line": 72, "heading": "Row span — merge a cell vertically", "proof": "test:TableBuilderRowSpanTest" } diff --git a/knowledge/proofs/index.json b/knowledge/proofs/index.json new file mode 100644 index 000000000..9b0878386 --- /dev/null +++ b/knowledge/proofs/index.json @@ -0,0 +1,84 @@ +{ + "schemaVersion": 1, + "note": "Every proof a documentation claim cites, resolved to where it lives and what it holds up. Generated from the claim markers in docs/; a proof that nothing cites does not appear, and a claim whose proof does not resolve fails the check rather than landing here.", + "generator": "knowledge/tools/claims/check-claims.mjs", + "counts": { + "proofs": 5, + "claimsHeld": 6, + "claimsWithoutProof": 20 + }, + "proofs": { + "test:ComposedCellSnapshotContractTest": { + "kind": "test", + "path": "qa/src/test/java/com/demcha/compose/document/table/ComposedCellSnapshotContractTest.java", + "holds": [ + { + "kind": "behavior", + "value": "table.composed-cell-paints-but-has-no-snapshot-node", + "page": "docs/recipes/tables.md", + "line": 29, + "heading": "Cell content — one line, several lines, or a node" + } + ] + }, + "test:RowBuilderTest": { + "kind": "test", + "path": "qa/src/test/java/com/demcha/compose/document/dsl/RowBuilderTest.java", + "holds": [ + { + "kind": "behavior", + "value": "row.rejects-a-nested-row", + "page": "docs/recipes/layered-page-design.md", + "line": 30, + "heading": "Sidebar: page background vs. row" + } + ] + }, + "test:TableBuilderRepeatHeaderTest": { + "kind": "test", + "path": "qa/src/test/java/com/demcha/compose/document/dsl/TableBuilderRepeatHeaderTest.java", + "holds": [ + { + "kind": "behavior", + "value": "table.header-repeats-on-every-continuation-page", + "page": "docs/recipes/tables.md", + "line": 188, + "heading": "Repeated header on page break" + }, + { + "kind": "behavior", + "value": "table.repeat-header-defaults-to-zero", + "page": "docs/recipes/tables.md", + "line": 189, + "heading": "Repeated header on page break" + } + ] + }, + "test:TableBuilderRowSpanTest": { + "kind": "test", + "path": "qa/src/test/java/com/demcha/compose/document/dsl/TableBuilderRowSpanTest.java", + "holds": [ + { + "kind": "behavior", + "value": "table.spanning-cell-height-is-sum-of-covered-rows", + "page": "docs/recipes/tables.md", + "line": 72, + "heading": "Row span — merge a cell vertically" + } + ] + }, + "test:TableBuilderZebraAndTotalsTest": { + "kind": "test", + "path": "core/src/test/java/com/demcha/compose/document/dsl/TableBuilderZebraAndTotalsTest.java", + "holds": [ + { + "kind": "behavior", + "value": "table.explicit-row-style-beats-zebra", + "page": "docs/recipes/tables.md", + "line": 112, + "heading": "Zebra — alternating row fills" + } + ] + } + } +} diff --git a/knowledge/tools/bundle/build-bundle.mjs b/knowledge/tools/bundle/build-bundle.mjs index 6e2b364fb..59c43f96a 100644 --- a/knowledge/tools/bundle/build-bundle.mjs +++ b/knowledge/tools/bundle/build-bundle.mjs @@ -101,7 +101,7 @@ const add = (name, contents) => entries.push([name, contents]); add("manifest.json", fs.readFileSync(path.join(KNOWLEDGE, "manifest.json"))); add("provenance.json", fs.readFileSync(PROVENANCE)); -for (const sub of ["api", "routing", "claims"]) { +for (const sub of ["api", "routing", "claims", "proofs"]) { const dir = path.join(KNOWLEDGE, sub); if (!fs.existsSync(dir)) continue; for (const rel of filesUnder(dir)) { diff --git a/knowledge/tools/claims/check-claims.mjs b/knowledge/tools/claims/check-claims.mjs index d9fa376ac..67d7ab1b2 100644 --- a/knowledge/tools/claims/check-claims.mjs +++ b/knowledge/tools/claims/check-claims.mjs @@ -38,6 +38,7 @@ const REPO_ROOT = path.resolve(HERE, "..", "..", ".."); const API_DIR = path.join(REPO_ROOT, "knowledge", "api"); const DOCS_ROOT = path.join(REPO_ROOT, "docs"); const INDEX_FILE = path.join(REPO_ROOT, "knowledge", "claims", "index.json"); +const PROOFS_FILE = path.join(REPO_ROOT, "knowledge", "proofs", "index.json"); function usage(code = 0) { process.stdout.write( @@ -89,7 +90,7 @@ function loadSurfaces() { * kinds that happen to be finished. */ function loadProofTargets() { - const tests = new Set(); + const tests = new Map(); const walkTests = (dir) => { let entries; try { @@ -103,20 +104,26 @@ function loadProofTargets() { if (entry.name === "target" || entry.name === ".git" || entry.name === ".claude") continue; walkTests(full); } else if (entry.name.endsWith(".java") && full.includes(`${path.sep}src${path.sep}test${path.sep}`)) { - tests.add(entry.name.slice(0, -".java".length)); + // Path as well as name: the registry has to say *where* a proof lives, + // or a consumer holding the bundle can read that a claim is proven and + // still have no way to look at the thing proving it. + tests.set( + entry.name.slice(0, -".java".length), + path.relative(REPO_ROOT, full).split(path.sep).join("/"), + ); } } }; walkTests(REPO_ROOT); - const snippets = new Set(); + const snippets = new Map(); const markerRe = /^\s*$/; for (const file of docPages()) { for (const line of fs.readFileSync(file, "utf8").split(/\r?\n/)) { const m = line.match(markerRe); if (!m) continue; const id = m[1].split(/\s+/).find((t) => t.startsWith("id=")); - if (id) snippets.add(id.slice("id=".length)); + if (id) snippets.set(id.slice("id=".length), path.relative(REPO_ROOT, file).split(path.sep).join("/")); } } @@ -299,6 +306,72 @@ const document = { }, }; +/** + * What backs the claims, and where it lives. + * + * The claims index says a page asserts something and names its proof; on its own + * that is a promissory note. This resolves the note: for every proof a claim + * cites, the kind, the file, and everything it holds up. + * + * Derived rather than authored, so it cannot drift: a claim whose proof does not + * resolve has already failed above, and a proof nothing cites never appears. It + * is deliberately not a list of every test in the repository — that would be a + * directory listing, and the question this answers is "what is holding this + * claim up", not "what tests exist". + * + * `probe:` collapsed into `test:` on contact with reality. The plan had probes + * as a separate harness, but a contract probe *is* a JUnit test — it runs in the + * reactor gate and needs no harness of its own, so a second scheme would have + * been two names for one mechanism. + */ +const proofs = {}; +for (const claim of allClaims) { + if (!claim.proof) continue; + const scheme = claim.proof.slice(0, claim.proof.indexOf(":")); + const id = claim.proof.slice(claim.proof.indexOf(":") + 1); + const entry = (proofs[claim.proof] ??= { + kind: scheme, + ...(scheme === "test" ? { path: proofTargets.tests.get(id) ?? null } : {}), + ...(scheme === "snippet" ? { page: proofTargets.snippets.get(id) ?? null } : {}), + ...(scheme === "probe" || scheme === "render" ? { unresolved: "no registry for this scheme yet" } : {}), + holds: [], + }); + entry.holds.push({ + kind: claim.kind, + value: claim.value, + page: claim.file, + line: claim.line, + ...(claim.heading ? { heading: claim.heading } : {}), + }); +} +for (const entry of Object.values(proofs)) { + entry.holds.sort((a, b) => a.page.localeCompare(b.page) || a.line - b.line); +} + +// A claim that asserts behaviour and cites nothing cannot appear here at all — +// the parser refuses it — so the gap this counts is the opposite one: pages +// making symbol or capability claims with no proof attached. That is coverage +// to grow, not an error, so it is reported as a number rather than a failure. +const unproven = allClaims.filter((c) => !c.proof).length; + +const proofsDocument = { + schemaVersion: 1, + note: + "Every proof a documentation claim cites, resolved to where it lives and " + + "what it holds up. Generated from the claim markers in docs/; a proof that " + + "nothing cites does not appear, and a claim whose proof does not resolve " + + "fails the check rather than landing here.", + generator: "knowledge/tools/claims/check-claims.mjs", + counts: { + proofs: Object.keys(proofs).length, + claimsHeld: allClaims.filter((c) => c.proof).length, + claimsWithoutProof: unproven, + }, + proofs: Object.fromEntries(Object.entries(proofs).sort()), +}; + +const proofsText = `${JSON.stringify(proofsDocument, null, 2)}\n`; + const text = `${JSON.stringify(document, null, 2)}\n`; if (errors.length) { @@ -318,20 +391,30 @@ if (errors.length) { } if (checkOnly) { - const actual = fs.existsSync(INDEX_FILE) ? fs.readFileSync(INDEX_FILE, "utf8").replace(/\r\n/g, "\n") : null; - if (actual !== text) { + const stale = [ + [INDEX_FILE, text], + [PROOFS_FILE, proofsText], + ].filter(([file, expected]) => { + const actual = fs.existsSync(file) ? fs.readFileSync(file, "utf8").replace(/\r\n/g, "\n") : null; + return actual !== expected; + }); + if (stale.length) { process.stdout.write( - "[check-claims] knowledge/claims/index.json is out of date\n" + + `[check-claims] out of date: ${stale.map(([f]) => path.relative(REPO_ROOT, f).split(path.sep).join("/")).join(", ")}\n` + " regenerate: node knowledge/tools/claims/check-claims.mjs\n", ); process.exit(1); } - process.stdout.write(`[check-claims] ${allClaims.length} claims, index current\n`); + process.stdout.write( + `[check-claims] ${allClaims.length} claims, ${proofsDocument.counts.proofs} proofs, both current\n`, + ); process.exit(0); } fs.mkdirSync(path.dirname(INDEX_FILE), { recursive: true }); fs.writeFileSync(INDEX_FILE, text, "utf8"); +fs.mkdirSync(path.dirname(PROOFS_FILE), { recursive: true }); +fs.writeFileSync(PROOFS_FILE, proofsText, "utf8"); if (asJson) { process.stdout.write(`${JSON.stringify(document.counts, null, 2)}\n`); @@ -339,6 +422,8 @@ if (asJson) { process.stdout.write( `[check-claims] ${allClaims.length} claims on ${document.counts.pagesWithClaims} pages ` + `-> knowledge/claims/index.json\n` + + ` ${proofsDocument.counts.proofs} proofs holding ${proofsDocument.counts.claimsHeld} of them ` + + `-> knowledge/proofs/index.json\n` + ` symbol ${document.counts.symbol} · capability ${document.counts.capability} · ` + `behavior ${document.counts.behavior}\n`, ); diff --git a/qa/src/test/java/com/demcha/compose/document/table/ComposedCellSnapshotContractTest.java b/qa/src/test/java/com/demcha/compose/document/table/ComposedCellSnapshotContractTest.java new file mode 100644 index 000000000..e00bbcd33 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/table/ComposedCellSnapshotContractTest.java @@ -0,0 +1,87 @@ +package com.demcha.compose.document.table; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.layout.PlacedFragment; +import com.demcha.compose.document.layout.payloads.ParagraphFragmentPayload; +import com.demcha.compose.document.node.TableNode; +import com.demcha.compose.document.snapshot.LayoutNodeSnapshot; +import com.demcha.compose.document.style.DocumentInsets; +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * A contract probe: a composed table cell renders, but the layout snapshot does + * not see it. + * + * `DocumentTableCell.node(...)` puts a real node inside a cell, and that node + * lays out and paints — the fragments are there. What it does not produce is a + * snapshot entry of its own: the snapshot records the table, not the node + * composed into one of its cells. + * + * That asymmetry is the point. A regression that emptied every composed cell + * would leave the layout snapshot byte-identical, so the snapshot gate — the + * usual guard for "did the geometry move" — would stay green over a document + * that renders blank cells. Anything relying on composed cells has to assert on + * fragments as well. + * + * This is a *documentation* contract, not an aspiration: it is claimed by + * `docs/recipes/tables.md` and referenced by the knowledge pack, so it needs a + * test that fails if the behaviour changes — in either direction. If composed + * cells ever do appear in the snapshot, this test fails and the claim, the + * recipe and the snapshot guidance all need revisiting. + */ +class ComposedCellSnapshotContractTest { + + private static final String CELL_TEXT = "composed-cell-marker"; + + private static TableNode composedCellTable(DocumentSession session) { + return new TableNode( + "ComposedCellTable", + List.of(DocumentTableColumn.auto()), + List.of(List.of(DocumentTableCell.node( + session.dsl().paragraph().text(CELL_TEXT).build()))), + DocumentTableStyle.empty(), + null, + DocumentInsets.zero(), + DocumentInsets.zero()); + } + + private static long fragmentsCarrying(DocumentSession session, String text) { + return session.layoutGraph().fragments().stream() + .map(PlacedFragment::payload) + .filter(ParagraphFragmentPayload.class::isInstance) + .map(ParagraphFragmentPayload.class::cast) + .flatMap(payload -> payload.lines().stream()) + .filter(line -> line.spans().stream().anyMatch(s -> s.toString().contains(text))) + .count(); + } + + @Test + void composedCellPaintsButLeavesNoSnapshotNodeOfItsOwn() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + session.add(composedCellTable(session)); + + // It renders: the composed paragraph reaches the fragment stream. + assertThat(fragmentsCarrying(session, CELL_TEXT)) + .describedAs("the composed cell's paragraph must reach the fragment stream") + .isGreaterThan(0); + + // It is invisible to the snapshot: no node carries the cell's text, + // so a snapshot-only assertion cannot tell a rendered cell from an + // empty one. + List nodes = session.layoutSnapshot().nodes(); + assertThat(nodes) + .describedAs("the snapshot must record something — the table itself") + .isNotEmpty(); + assertThat(nodes) + .describedAs( + "no snapshot node should carry the composed cell's content; if one now does, " + + "the claim in docs/recipes.md and the snapshot-testing guidance are stale") + .noneMatch(node -> node.toString().contains(CELL_TEXT)); + } + } +} From 87312e028d418acaa8b1671b7e26cc215f05e913 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Mon, 31 Aug 2026 20:28:59 +0100 Subject: [PATCH 10/11] feat(knowledge): prove the auto-column alignment trap, both sides of it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The last of the three behaviours the plan named. A right-aligned paragraph claims the full row width so the alignment has somewhere to happen; an `auto()` column sizes to its content and cannot grant that, and the two demands do not reconcile — so the row refuses to lay out. It surfaces at render time, not compile time, which is what makes it worth a test rather than a sentence. Nothing in the builder's types says `auto()` and `align(RIGHT)` are incompatible, and the combination reads perfectly sensible right up until a document is produced. The assertion is on the message, not the throw. "Something failed" would pass for any unrelated breakage; the contract is that the engine says the columns do not fit — `fixed and auto columns need 626pt but only 595pt is available` — and tells you what to change. Both sides are pinned. A test that only proved the refusal would pass just as well if `auto()` columns stopped working altogether, so the working form is asserted beside it: drop the alignment and the same row lays out and produces fragments. In a column sized to its own text the alignment was never doing anything anyway — the text already ends at the column's right edge. Both halves were mutation-tested: breaking the expected message turns it red, and so does breaking the working-form assertion. That brings the registry to 6 proofs holding 7 claims. Of the three behaviours the plan named, one already had a test (`RowBuilderTest`), one got a probe last commit, and this is the third. --- docs/recipes/layered-page-design.md | 1 + knowledge/claims/index.json | 10 ++- knowledge/proofs/index.json | 17 +++- .../dsl/AutoColumnRightAlignContractTest.java | 78 +++++++++++++++++++ 4 files changed, 103 insertions(+), 3 deletions(-) create mode 100644 qa/src/test/java/com/demcha/compose/document/dsl/AutoColumnRightAlignContractTest.java diff --git a/docs/recipes/layered-page-design.md b/docs/recipes/layered-page-design.md index b6af44705..0237ac34a 100644 --- a/docs/recipes/layered-page-design.md +++ b/docs/recipes/layered-page-design.md @@ -28,6 +28,7 @@ cleanly and one that fights the engine. This page is the decision guide. + A **tinted** sidebar that must repeat on every page is a page background — it costs nothing at layout time and never shifts content: diff --git a/knowledge/claims/index.json b/knowledge/claims/index.json index bf38c0c58..a1d9ada69 100644 --- a/knowledge/claims/index.json +++ b/knowledge/claims/index.json @@ -6,7 +6,7 @@ "pagesWithClaims": 2, "symbol": 14, "capability": 6, - "behavior": 6 + "behavior": 7 }, "claims": { "symbol": { @@ -182,6 +182,14 @@ ] }, "behavior": { + "row.auto-column-rejects-right-aligned-text": [ + { + "page": "docs/recipes/layered-page-design.md", + "line": 31, + "heading": "Sidebar: page background vs. row", + "proof": "test:AutoColumnRightAlignContractTest" + } + ], "row.rejects-a-nested-row": [ { "page": "docs/recipes/layered-page-design.md", diff --git a/knowledge/proofs/index.json b/knowledge/proofs/index.json index 9b0878386..63ed52000 100644 --- a/knowledge/proofs/index.json +++ b/knowledge/proofs/index.json @@ -3,11 +3,24 @@ "note": "Every proof a documentation claim cites, resolved to where it lives and what it holds up. Generated from the claim markers in docs/; a proof that nothing cites does not appear, and a claim whose proof does not resolve fails the check rather than landing here.", "generator": "knowledge/tools/claims/check-claims.mjs", "counts": { - "proofs": 5, - "claimsHeld": 6, + "proofs": 6, + "claimsHeld": 7, "claimsWithoutProof": 20 }, "proofs": { + "test:AutoColumnRightAlignContractTest": { + "kind": "test", + "path": "qa/src/test/java/com/demcha/compose/document/dsl/AutoColumnRightAlignContractTest.java", + "holds": [ + { + "kind": "behavior", + "value": "row.auto-column-rejects-right-aligned-text", + "page": "docs/recipes/layered-page-design.md", + "line": 31, + "heading": "Sidebar: page background vs. row" + } + ] + }, "test:ComposedCellSnapshotContractTest": { "kind": "test", "path": "qa/src/test/java/com/demcha/compose/document/table/ComposedCellSnapshotContractTest.java", diff --git a/qa/src/test/java/com/demcha/compose/document/dsl/AutoColumnRightAlignContractTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/AutoColumnRightAlignContractTest.java new file mode 100644 index 000000000..0c8d4c64e --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/dsl/AutoColumnRightAlignContractTest.java @@ -0,0 +1,78 @@ +package com.demcha.compose.document.dsl; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.node.TextAlign; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatCode; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * A contract probe: a right-aligned paragraph cannot live in an `auto()` column. + * + * Alignment needs somewhere to happen, so a right-aligned paragraph claims the + * full row width. An `auto()` column sizes to its content and cannot grant that, + * and the two demands are not reconcilable — so the row fails to lay out rather + * than quietly placing the text somewhere approximate. + * + * The failure surfaces at **render** time, not at compile time, which is what + * makes it worth a test rather than a sentence: nothing in the builder's types + * says these two calls are incompatible, and the combination reads perfectly + * sensible right up until a document is produced. + * + * Both halves are asserted deliberately. A test that only proved the throw would + * pass just as well if `auto()` columns stopped working altogether; pairing it + * with the working form pins the boundary rather than one side of it. + * + * The escape is not to widen anything: in a column sized to its own text, the + * text already ends at the column's right edge, so the alignment is what to + * drop. + */ +class AutoColumnRightAlignContractTest { + + private static final String TEXT = "0.00"; + + @Test + void rightAlignInsideAnAutoColumnFailsToLayOut() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + session.compose(dsl -> dsl.pageFlow(flow -> flow + .addRow(row -> row + .columns(DocumentRowColumn.auto(), DocumentRowColumn.auto()) + .addSection(left -> left.addParagraph("Total")) + .addSection(right -> right.addParagraph( + p -> p.text(TEXT).align(TextAlign.RIGHT)))))); + + assertThatThrownBy(session::layoutGraph) + .describedAs( + "a right-aligned paragraph claims the full row width, which an auto column " + + "cannot grant — the row must fail rather than place the text approximately") + .isInstanceOf(RuntimeException.class) + // The message, not just the throw. "Something failed" would + // pass for any unrelated breakage; the contract is that the + // engine says the columns do not fit and what to do. + .hasMessageContaining("fixed and auto columns need") + .hasMessageContaining("is available"); + } + } + + @Test + void theSameColumnLaysOutOnceTheAlignmentIsDropped() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + session.compose(dsl -> dsl.pageFlow(flow -> flow + .addRow(row -> row + .columns(DocumentRowColumn.auto(), DocumentRowColumn.auto()) + .addSection(left -> left.addParagraph("Total")) + .addSection(right -> right.addParagraph(TEXT))))); + + assertThatCode(session::layoutGraph) + .describedAs("without the alignment the auto column sizes to its text and lays out") + .doesNotThrowAnyException(); + assertThat(session.layoutGraph().fragments()) + .describedAs("and it actually produces something") + .isNotEmpty(); + } + } +} From ba9cacddbcc4aaede6a2ff85621dc26001ddf1aa Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Mon, 31 Aug 2026 20:39:08 +0100 Subject: [PATCH 11/11] docs(recipes): account for every Java fence on the pages that make claims MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Coverage was 4 of 80 pages carrying `doc-example`, and the obvious reading is neglect. It is not: almost every recipe fence is deliberately a *fragment* — `addTable(table -> …)` on an ambient builder, `.zebra(…)` continuing a chain above it, a style that reads `rule` and `ink` from the surrounding recipe. The guard compiles self-contained statements, and none of these are that. Making them compile means giving each one a receiver and a session, which is a rewrite of the published prose that would make it worse: a snippet showing `.zebra(…)` mid-chain is clearer about the chain than the same call wrapped in boilerplate, and the contrast in layered-page-design between a tinted background and a content row works precisely because both are shown as the two lines that differ. So every fence on the two pages that carry claims now states its position instead of being silent. One compiles; nine say why they cannot, each in terms of the specific thing it is showing rather than a shared formula. The number to watch was never "pages with markers" — it is fences whose status somebody has decided, and on these pages that is now all of them. The consequence worth having: a compilable snippet added to either page from here on is conspicuous by its missing marker, where before it would have joined an undifferentiated silence. The claims and proofs indexes are regenerated because they record the line a claim sits on, and inserting the markers moved them. The gate caught that rather than letting the indexes point at the wrong lines — which is the same coupling working in the direction it was built for. --- docs/recipes/layered-page-design.md | 4 ++++ docs/recipes/tables.md | 5 +++++ knowledge/claims/index.json | 18 +++++++++--------- knowledge/proofs/index.json | 6 +++--- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/docs/recipes/layered-page-design.md b/docs/recipes/layered-page-design.md index 0237ac34a..b423f8c6a 100644 --- a/docs/recipes/layered-page-design.md +++ b/docs/recipes/layered-page-design.md @@ -33,6 +33,7 @@ cleanly and one that fights the engine. This page is the decision guide. A **tinted** sidebar that must repeat on every page is a page background — it costs nothing at layout time and never shifts content: + ```java document.pageBackgrounds(List.of( PageBackgroundFill.leftColumn(0.34, sidebarTint))); @@ -41,6 +42,7 @@ document.pageBackgrounds(List.of( A sidebar that holds **content** (skills, contacts, dates) is a row column — it flows and paginates with the main column: + ```java document.pageFlow() .addRow(row -> row @@ -58,6 +60,7 @@ column over it. A badge centred on a card, sizing to the card, is a **layer stack** — use alignment, not coordinates: + ```java document.pageFlow() .addContainer(card -> card @@ -69,6 +72,7 @@ document.pageFlow() A badge at an exact spot in a fixed certificate is a **canvas** — use coordinates: + ```java document.pageFlow() .addCanvas(523, 300, canvas -> canvas.position(badge(), 430, 40)) diff --git a/docs/recipes/tables.md b/docs/recipes/tables.md index 1cd0343d0..f0faf17db 100644 --- a/docs/recipes/tables.md +++ b/docs/recipes/tables.md @@ -76,6 +76,7 @@ The layout layer skips occupied grid positions when interpreting subsequent source rows, so authors only specify the cells that are not yet covered by a prior spanning cell. + ```java import com.demcha.compose.document.table.DocumentTableCell; import com.demcha.compose.document.table.DocumentTableColumn; @@ -115,6 +116,7 @@ remaining rows / columns, or leaves a gap. fifth visually) in one fill and even-indexed rows (1, 3, 5) in another. Either argument may be `null` to skip painting that parity. + ```java import com.demcha.compose.document.style.DocumentColor; @@ -135,6 +137,7 @@ addTable(table -> table A two-arg overload accepts full `DocumentTableStyle` values when the zebra row needs more than just a fill colour: + ```java .zebra( DocumentTableStyle.builder().fillColor(zebraOdd).padding(DocumentInsets.of(8)).build(), @@ -154,6 +157,7 @@ assigns a default totals style (bold text + a subtle gray-blue fill). A two-arg overload takes a custom `DocumentTableStyle` for branded totals rows. + ```java DocumentTableStyle goldenTotal = DocumentTableStyle.builder() .fillColor(DocumentColor.rgb(232, 220, 180)) @@ -193,6 +197,7 @@ continuation page when the table is split across pages. `repeatHeader(int)` repeats N leading rows — useful when you have both a title row AND a column-header row that should both repeat. + ```java addTable(table -> { TableBuilder t = table diff --git a/knowledge/claims/index.json b/knowledge/claims/index.json index a1d9ada69..27d636156 100644 --- a/knowledge/claims/index.json +++ b/knowledge/claims/index.json @@ -103,7 +103,7 @@ "TableBuilder.headerRow": [ { "page": "docs/recipes/tables.md", - "line": 187, + "line": 191, "heading": "Repeated header on page break", "surface": "authoring", "stability": "stable" @@ -112,7 +112,7 @@ "TableBuilder.repeatHeader": [ { "page": "docs/recipes/tables.md", - "line": 186, + "line": 190, "heading": "Repeated header on page break", "surface": "authoring", "stability": "stable" @@ -121,7 +121,7 @@ "TableBuilder.totalRow": [ { "page": "docs/recipes/tables.md", - "line": 150, + "line": 153, "heading": "Totals row — bold + subtle fill", "surface": "authoring", "stability": "stable" @@ -130,7 +130,7 @@ "TableBuilder.zebra": [ { "page": "docs/recipes/tables.md", - "line": 111, + "line": 112, "heading": "Zebra — alternating row fills", "surface": "authoring", "stability": "stable" @@ -162,7 +162,7 @@ "table.repeat-header-across-pages": [ { "page": "docs/recipes/tables.md", - "line": 185, + "line": 189, "heading": "Repeated header on page break" } ], @@ -176,7 +176,7 @@ "table.zebra-striping": [ { "page": "docs/recipes/tables.md", - "line": 110, + "line": 111, "heading": "Zebra — alternating row fills" } ] @@ -209,7 +209,7 @@ "table.explicit-row-style-beats-zebra": [ { "page": "docs/recipes/tables.md", - "line": 112, + "line": 113, "heading": "Zebra — alternating row fills", "proof": "test:TableBuilderZebraAndTotalsTest" } @@ -217,7 +217,7 @@ "table.header-repeats-on-every-continuation-page": [ { "page": "docs/recipes/tables.md", - "line": 188, + "line": 192, "heading": "Repeated header on page break", "proof": "test:TableBuilderRepeatHeaderTest" } @@ -225,7 +225,7 @@ "table.repeat-header-defaults-to-zero": [ { "page": "docs/recipes/tables.md", - "line": 189, + "line": 193, "heading": "Repeated header on page break", "proof": "test:TableBuilderRepeatHeaderTest" } diff --git a/knowledge/proofs/index.json b/knowledge/proofs/index.json index 63ed52000..bae456838 100644 --- a/knowledge/proofs/index.json +++ b/knowledge/proofs/index.json @@ -55,14 +55,14 @@ "kind": "behavior", "value": "table.header-repeats-on-every-continuation-page", "page": "docs/recipes/tables.md", - "line": 188, + "line": 192, "heading": "Repeated header on page break" }, { "kind": "behavior", "value": "table.repeat-header-defaults-to-zero", "page": "docs/recipes/tables.md", - "line": 189, + "line": 193, "heading": "Repeated header on page break" } ] @@ -88,7 +88,7 @@ "kind": "behavior", "value": "table.explicit-row-style-beats-zebra", "page": "docs/recipes/tables.md", - "line": 112, + "line": 113, "heading": "Zebra — alternating row fills" } ]