diff --git a/.changeset/pre.json b/.changeset/pre.json index a05556b39..8eb10b42e 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -166,6 +166,13 @@ "annotation-key-plugin-annotation", "annotation-key-react", "annotation-key-viewer", + "annotation-kind-change-core-annotation", + "annotation-kind-change-engine-core", + "annotation-kind-change-engine-runtime", + "annotation-kind-change-engine-services", + "annotation-kind-change-engine", + "annotation-kind-change-plugin-annotation", + "annotation-kind-change-viewer-chrome", "annotations-cloudpdf-server", "annotations-core-annotation", "annotations-engine-core", @@ -250,6 +257,9 @@ "caret-rotation-engine-services", "caret-rotation-plugin-annotation", "caret-rotation-react", + "caret-typing-style-core-annotation", + "caret-typing-style-plugin-annotation", + "caret-typing-style-web", "change-queue-core", "change-queue-engine-core", "changes-and-undo-cloudpdf-contract", @@ -544,6 +554,7 @@ "folder-recursive-delete-cloudpdf-contract", "folder-recursive-delete-cloudpdf-sdk", "folder-recursive-delete-cloudpdf-server", + "font-picker-choosable-viewer-chrome", "fonts-docs-angular", "fonts-docs-cloudpdf-contract", "fonts-docs-cloudpdf-sdk", @@ -750,6 +761,8 @@ "initial-embedpdf-viewer-react", "initial-embedpdf-viewer", "initial-embedpdf-web", + "ink-curves-core-annotation", + "ink-curves-engine-runtime", "insert-form-fields-engine-core", "insert-form-fields-engine-runtime", "insert-form-fields-engine-services", @@ -762,6 +775,9 @@ "interaction-shell-viewer-chrome", "interaction-shell-web", "invisible-flag-core-annotation", + "iso-dashes-cloudpdf-contract", + "iso-dashes-engine-core", + "iso-dashes-engine-runtime", "k10-copy-angular", "k10-copy-react", "k10-copy-svelte", @@ -785,6 +801,10 @@ "kernel-guarantees-stamp", "kernel-guarantees-view-manager", "keygen-expiring-cloudpdf-server", + "latin-fallback-core-fonts", + "latin-fallback-engine-core", + "latin-fallback-engine-runtime", + "latin-fallback-plugin-fonts", "layer-delete-cloudpdf-contract", "layer-delete-cloudpdf-server", "layer-delete-core", @@ -804,6 +824,10 @@ "legible-editors-vue", "legible-editors-web", "linear-base64-engine-core", + "markup-rich-text-cloudpdf-contract", + "markup-rich-text-cloudpdf-sdk", + "markup-rich-text-engine-core", + "markup-rich-text-engine-services", "marquee-zoom-angular", "marquee-zoom-plugin-commands", "marquee-zoom-plugin-i18n", @@ -829,6 +853,10 @@ "measurements-react", "measurements-viewer-chrome", "measurements-viewer", + "module-manifests-cloudpdf-contract", + "module-manifests-cloudpdf-sdk", + "module-manifests-cloudpdf-server-modules", + "module-manifests-cloudpdf-server", "multipart-envelope-cloud-engine", "multipart-envelope-cloud-server", "multipart-envelope-cloudpdf-contract", @@ -836,6 +864,15 @@ "multipart-envelope-engine-core", "multipart-envelope-engine-services", "multipart-envelope-engine", + "no-stroke-cloudpdf-contract", + "no-stroke-cloudpdf-sdk", + "no-stroke-core-annotation", + "no-stroke-engine-core", + "no-stroke-engine-runtime", + "no-stroke-engine-services", + "no-stroke-plugin-annotation", + "no-stroke-viewer-chrome", + "no-stroke-web", "nozoom-deep-zoom-core-annotation", "one-viewer-cloudpdf-engine", "one-viewer-cloudpdf-viewer-angular", @@ -1212,8 +1249,19 @@ "signatures-plugin-stamp", "signatures-viewer-chrome", "signatures-viewer", + "snapshot-tool-angular", + "snapshot-tool-core-ui", + "snapshot-tool-plugin-commands", + "snapshot-tool-plugin-i18n", + "snapshot-tool-plugin-render", + "snapshot-tool-react", + "snapshot-tool-svelte", + "snapshot-tool-viewer-chrome", + "snapshot-tool-vue", + "snapshot-tool-web", "stage-instance-owns-frames", "stage-same-size-viewport", + "stale-font-answer-plugin-annotation", "stamp-libraries-cloudpdf-viewer", "stamp-libraries-default-stamps", "stamp-libraries-plugin-annotation", diff --git a/cloudpdf/contract/CHANGELOG.md b/cloudpdf/contract/CHANGELOG.md index e854ba2b8..a1323e7c7 100644 --- a/cloudpdf/contract/CHANGELOG.md +++ b/cloudpdf/contract/CHANGELOG.md @@ -1,5 +1,21 @@ # @cloudpdf/contract +## 3.0.0-next.22 + +### Minor Changes + +- [#978](https://github.com/embedpdf/embed-pdf-viewer/pull/978) by [@bobsingor](https://github.com/bobsingor) – Every markup annotation carries `richText`, its comment with formatting, or + `null` for a plain comment, in reads, creates and updates. The rich text model + is named once, as `RichTextDocument` and `RichTextDocumentInput`. + +- [#967](https://github.com/embedpdf/embed-pdf-viewer/pull/967) by [@bobsingor](https://github.com/bobsingor) – `deployment.modules` (`GET /v1/deployment/modules`, API token) lists the installed server modules: `ModuleManifest` with its `ModulePermission`s and `ModuleMeter`s, all named components. `tenants.usage` takes `from` and `to` (UTC days, `to` the day after the last) in place of `period`, and its `metrics` hold modules' meters next to the core's. + +- [#971](https://github.com/embedpdf/embed-pdf-viewer/pull/971) by [@bobsingor](https://github.com/bobsingor) – A square, circle, polygon, polyline, line or ink annotation's `color` may be `null`: no stroke. A read gives `null` for a file's empty or missing stroke color. + +### Patch Changes + +- [#972](https://github.com/embedpdf/embed-pdf-viewer/pull/972) by [@bobsingor](https://github.com/bobsingor) – `dashArray` on an annotation's create and update and on a widget placement takes at least one length (`minItems: 1`): an empty pattern is refused. + ## 3.0.0-next.21 ### Minor Changes diff --git a/cloudpdf/contract/openapi.json b/cloudpdf/contract/openapi.json index 1755370ae..fca945dd7 100644 --- a/cloudpdf/contract/openapi.json +++ b/cloudpdf/contract/openapi.json @@ -2,7 +2,7 @@ "openapi": "3.1.0", "info": { "title": "CloudPDF Engine API", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "description": "The backend-callable surface of the CloudPDF document engine: deployment and tenant administration plus the document operations (reads, annotations, forms, page operations, redaction, download). Interactive viewing goes through the CloudPDF viewer SDKs, whose session protocol is deliberately not part of this API. Generated from the @cloudpdf/contract operation registry — do not edit by hand.", "license": { "name": "Apache-2.0", diff --git a/cloudpdf/contract/package.json b/cloudpdf/contract/package.json index 073da79bc..6734a8bc0 100644 --- a/cloudpdf/contract/package.json +++ b/cloudpdf/contract/package.json @@ -1,6 +1,6 @@ { "name": "@cloudpdf/contract", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "The CloudPDF engine contract: operation registry, Zod schemas, and OpenAPI emitter for every backend-callable surface — used by @cloudpdf/server and the generated @cloudpdf/sdk, and the source of the committed openapi.json.", "type": "module", diff --git a/cloudpdf/engine/CHANGELOG.md b/cloudpdf/engine/CHANGELOG.md index 0e5134100..9eb8ddcc2 100644 --- a/cloudpdf/engine/CHANGELOG.md +++ b/cloudpdf/engine/CHANGELOG.md @@ -1,5 +1,7 @@ # @cloudpdf/engine +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/cloudpdf/engine/package.json b/cloudpdf/engine/package.json index f1ec211f7..bc4443642 100644 --- a/cloudpdf/engine/package.json +++ b/cloudpdf/engine/package.json @@ -1,6 +1,6 @@ { "name": "@cloudpdf/engine", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "CloudPDF engine: the cloud client that speaks the Engine v3 interface over HTTPS to a @cloudpdf/server deployment (or CloudPDF SaaS). Same AbortablePromise-based, EngineError-coded contract as the local engine.", "type": "module", diff --git a/cloudpdf/framework/web/CHANGELOG.md b/cloudpdf/framework/web/CHANGELOG.md index 4309f9aeb..cd05bcbc4 100644 --- a/cloudpdf/framework/web/CHANGELOG.md +++ b/cloudpdf/framework/web/CHANGELOG.md @@ -1,5 +1,7 @@ # @cloudpdf/web +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/cloudpdf/framework/web/package.json b/cloudpdf/framework/web/package.json index df2d9ed90..a4c8d4fd4 100644 --- a/cloudpdf/framework/web/package.json +++ b/cloudpdf/framework/web/package.json @@ -1,6 +1,6 @@ { "name": "@cloudpdf/web", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Framework-free browser code for CloudPDF's plugins: the one home in the CloudPDF tree for code that touches the DOM, as @embedpdf/web is for EmbedPDF's. Today the protected display player: Encrypted Media Extensions and Media Source behind @cloudpdf/plugin-protected-display's player port. Never imported by a plugin, which stays DOM-free.", "type": "module", diff --git a/cloudpdf/plugin/protected-display/CHANGELOG.md b/cloudpdf/plugin/protected-display/CHANGELOG.md index 833afe0eb..4bf9bfed4 100644 --- a/cloudpdf/plugin/protected-display/CHANGELOG.md +++ b/cloudpdf/plugin/protected-display/CHANGELOG.md @@ -1,5 +1,7 @@ # @cloudpdf/plugin-protected-display +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/cloudpdf/plugin/protected-display/package.json b/cloudpdf/plugin/protected-display/package.json index 9f74d9a2d..a240696ac 100644 --- a/cloudpdf/plugin/protected-display/package.json +++ b/cloudpdf/plugin/protected-display/package.json @@ -1,6 +1,6 @@ { "name": "@cloudpdf/plugin-protected-display", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Screenshot protection for the CloudPDF viewer: for a user who may read a document but not render its pages, it shows them as DRM-protected video frames from the protected display server module, so screenshots, recordings and shared screens show them black. DOM-free: the host gives the player (browserProtectedPlayer() from @cloudpdf/web in a browser), loaded only for a protected user.", "type": "module", diff --git a/cloudpdf/sdk/.fern/metadata.json b/cloudpdf/sdk/.fern/metadata.json index 6a3560ab5..47928dd90 100644 --- a/cloudpdf/sdk/.fern/metadata.json +++ b/cloudpdf/sdk/.fern/metadata.json @@ -25,6 +25,6 @@ }, "originGitCommit": null, "originGitCommitIsDirty": null, - "requestedVersion": "3.0.0-next.21", - "sdkVersion": "3.0.0-next.21" + "requestedVersion": "3.0.0-next.22", + "sdkVersion": "3.0.0-next.22" } diff --git a/cloudpdf/sdk/CHANGELOG.md b/cloudpdf/sdk/CHANGELOG.md index e33c4e8aa..719ff7cb1 100644 --- a/cloudpdf/sdk/CHANGELOG.md +++ b/cloudpdf/sdk/CHANGELOG.md @@ -1,5 +1,17 @@ # @cloudpdf/sdk +## 3.0.0-next.22 + +### Minor Changes + +- [#978](https://github.com/embedpdf/embed-pdf-viewer/pull/978) by [@bobsingor](https://github.com/bobsingor) – Annotations, drafts and patches of every markup kind have `richText`, the + comment with formatting (`RichTextDocument`, `RichTextDocumentInput`), or + `null` for a plain comment. + +- [#967](https://github.com/embedpdf/embed-pdf-viewer/pull/967) by [@bobsingor](https://github.com/bobsingor) – `deployment.modules()` lists the installed server modules: their names, permissions and meters. `tenants.usage` takes `from` and `to` for a window of UTC days, and its `metrics` include modules' meters. + +- [#971](https://github.com/embedpdf/embed-pdf-viewer/pull/971) by [@bobsingor](https://github.com/bobsingor) – A square, circle, polygon, polyline, line or ink annotation's `color` may be `null`: no stroke. + ## 3.0.0-next.21 ### Minor Changes diff --git a/cloudpdf/sdk/cloudpdf-generation.json b/cloudpdf/sdk/cloudpdf-generation.json index c868943a3..bb53e63d9 100644 --- a/cloudpdf/sdk/cloudpdf-generation.json +++ b/cloudpdf/sdk/cloudpdf-generation.json @@ -1,11 +1,11 @@ { "language": "typescript", - "canonicalVersion": "3.0.0-next.21", - "sdkVersion": "3.0.0-next.21", + "canonicalVersion": "3.0.0-next.22", + "sdkVersion": "3.0.0-next.22", "source": { "repository": "embedpdf/embed-pdf-viewer", "openapi": "cloudpdf/contract/openapi.json", - "openapiSha256": "0fdd648c67c12f3314507bbe4809584c55486f9b11f414155fcdd4f33bc7e1ab", + "openapiSha256": "1f5aa976eec4d5fc4e2b22efe725df58a01389896733ec1870f96a6441b62859", "gitCommit": null, "gitCommitIsDirty": null }, diff --git a/cloudpdf/sdk/package.json b/cloudpdf/sdk/package.json index 99b11439b..1d09bac0e 100644 --- a/cloudpdf/sdk/package.json +++ b/cloudpdf/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@cloudpdf/sdk", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "license": "Apache-2.0", "type": "commonjs", diff --git a/cloudpdf/sdk/src/BaseClient.ts b/cloudpdf/sdk/src/BaseClient.ts index 02bfddb07..a11a408b5 100644 --- a/cloudpdf/sdk/src/BaseClient.ts +++ b/cloudpdf/sdk/src/BaseClient.ts @@ -65,8 +65,8 @@ export function normalizeClientOptions as @embedpdf/viewer-angular, rendering on CloudPDF SaaS or your own @cloudpdf/server over HTTPS, the local engine loaded only when stamps need it.", "type": "module", diff --git a/cloudpdf/viewer/main/CHANGELOG.md b/cloudpdf/viewer/main/CHANGELOG.md index 528383d62..f1762c279 100644 --- a/cloudpdf/viewer/main/CHANGELOG.md +++ b/cloudpdf/viewer/main/CHANGELOG.md @@ -1,5 +1,7 @@ # @cloudpdf/viewer +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/cloudpdf/viewer/main/package.json b/cloudpdf/viewer/main/package.json index 1c7a9540a..4df847ea6 100644 --- a/cloudpdf/viewer/main/package.json +++ b/cloudpdf/viewer/main/package.json @@ -1,6 +1,6 @@ { "name": "@cloudpdf/viewer", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "The open-source EmbedPDF viewer with the CloudPDF engine as its default: , init() and every framework wrapper's names, pages rendered on CloudPDF SaaS or your own @cloudpdf/server, the local engine loaded only when stamps need it. dist/cloudpdf.js is the same door for a script tag.", "type": "module", diff --git a/cloudpdf/viewer/react/CHANGELOG.md b/cloudpdf/viewer/react/CHANGELOG.md index 44b795777..526f9cf04 100644 --- a/cloudpdf/viewer/react/CHANGELOG.md +++ b/cloudpdf/viewer/react/CHANGELOG.md @@ -1,5 +1,7 @@ # @cloudpdf/viewer-react +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/cloudpdf/viewer/react/package.json b/cloudpdf/viewer/react/package.json index 36f445efa..f8c79bc88 100644 --- a/cloudpdf/viewer/react/package.json +++ b/cloudpdf/viewer/react/package.json @@ -1,6 +1,6 @@ { "name": "@cloudpdf/viewer-react", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "The full viewer as a React component with the CloudPDF engine as its default: the same as @embedpdf/viewer-react, rendering on CloudPDF SaaS or your own @cloudpdf/server over HTTPS, the local engine loaded only when stamps need it.", "type": "module", diff --git a/cloudpdf/viewer/svelte/CHANGELOG.md b/cloudpdf/viewer/svelte/CHANGELOG.md index f3c284295..9dd6a65d2 100644 --- a/cloudpdf/viewer/svelte/CHANGELOG.md +++ b/cloudpdf/viewer/svelte/CHANGELOG.md @@ -1,5 +1,7 @@ # @cloudpdf/viewer-svelte +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/cloudpdf/viewer/svelte/package.json b/cloudpdf/viewer/svelte/package.json index 151ff6aae..e104e90f1 100644 --- a/cloudpdf/viewer/svelte/package.json +++ b/cloudpdf/viewer/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@cloudpdf/viewer-svelte", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "The full viewer as a Svelte component with the CloudPDF engine as its default: the same as @embedpdf/viewer-svelte, rendering on CloudPDF SaaS or your own @cloudpdf/server over HTTPS, the local engine loaded only when stamps need it.", "type": "module", diff --git a/cloudpdf/viewer/vue/CHANGELOG.md b/cloudpdf/viewer/vue/CHANGELOG.md index 174d589eb..17a7f8c61 100644 --- a/cloudpdf/viewer/vue/CHANGELOG.md +++ b/cloudpdf/viewer/vue/CHANGELOG.md @@ -1,5 +1,7 @@ # @cloudpdf/viewer-vue +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/cloudpdf/viewer/vue/package.json b/cloudpdf/viewer/vue/package.json index c17c70392..2a9dfb3a8 100644 --- a/cloudpdf/viewer/vue/package.json +++ b/cloudpdf/viewer/vue/package.json @@ -1,6 +1,6 @@ { "name": "@cloudpdf/viewer-vue", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "The full viewer as a Vue component with the CloudPDF engine as its default: the same as @embedpdf/viewer-vue, rendering on CloudPDF SaaS or your own @cloudpdf/server over HTTPS, the local engine loaded only when stamps need it.", "type": "module", diff --git a/cloudpdf/website/src/generated/sdk-snippets.json b/cloudpdf/website/src/generated/sdk-snippets.json index 2974f54de..961a74896 100644 --- a/cloudpdf/website/src/generated/sdk-snippets.json +++ b/cloudpdf/website/src/generated/sdk-snippets.json @@ -1,7 +1,7 @@ { "schemaVersion": 2, - "canonicalVersion": "3.0.0-next.21", - "openapiSha256": "0fdd648c67c12f3314507bbe4809584c55486f9b11f414155fcdd4f33bc7e1ab", + "canonicalVersion": "3.0.0-next.22", + "openapiSha256": "1f5aa976eec4d5fc4e2b22efe725df58a01389896733ec1870f96a6441b62859", "languages": { "typescript": { "label": "TypeScript", diff --git a/packages/core/acrojs/CHANGELOG.md b/packages/core/acrojs/CHANGELOG.md index db36366ba..eaec4bb16 100644 --- a/packages/core/acrojs/CHANGELOG.md +++ b/packages/core/acrojs/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/core-acrojs +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/core/acrojs/package.json b/packages/core/acrojs/package.json index a87cf0da5..cc7944767 100644 --- a/packages/core/acrojs/package.json +++ b/packages/core/acrojs/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/core-acrojs", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Pure Acrobat-JavaScript compatibility core: deterministic contracts, security policy, and a self-contained VM prelude.", "type": "module", diff --git a/packages/core/annotation/CHANGELOG.md b/packages/core/annotation/CHANGELOG.md index 48d368835..79bce32f9 100644 --- a/packages/core/annotation/CHANGELOG.md +++ b/packages/core/annotation/CHANGELOG.md @@ -1,5 +1,21 @@ # @embedpdf/core-annotation +## 3.0.0-next.22 + +### Minor Changes + +- [#973](https://github.com/embedpdf/embed-pdf-viewer/pull/973) by [@bobsingor](https://github.com/bobsingor) – A record changes its kind to a sibling: `withValues` takes a `subtype` the annotation can become now (`canChangeKind`; not when it's locked), and the patch and the pending view are the new kind's. `setFields` gives it only to annotations people may change by hand as the new kind too, so a mixed selection changes the ones that can and restyles the rest. New `selectionProperties(model, annotations)`: the properties a style panel shows for selected annotations, led by a `subtype` choice (label `annotation.style.kind`, each kind named as the comment list names it) when they are kinds of one group and each can change kind. + +- [#975](https://github.com/embedpdf/embed-pdf-viewer/pull/975) by [@bobsingor](https://github.com/bobsingor) – New `typeWithStyle(before, after, at, style)`: the text typed at a caret takes a style chosen there, a line break carries the style on to the next line, and any other edit drops it. New `restyleRuns(doc, change)` and `withoutStyle(style, keys)` change every run's own style. A whole free text restyled by hand now restyles all of its text: `setTextFormat` and a font, size or text color in `setFields` set the body and take that property off every word that set its own, so a box typed bold from its first letter turns regular with one toggle. + +- [#971](https://github.com/embedpdf/embed-pdf-viewer/pull/971) by [@bobsingor](https://github.com/bobsingor) – A style's `color` may be `null`: a shape or line drawn without a stroke. A color property's `allowsNone` says a panel may offer none, which writes `null`: on a shape's or line's stroke and fill, a text box's background, a redaction's fill and a form field's border and background. + + A line, polyline or ink at width 0 is drawn as a hairline (`Paint.hairline`), with the line endings a 1 pt line has, as the engine and Acrobat draw it. + +### Patch Changes + +- [#971](https://github.com/embedpdf/embed-pdf-viewer/pull/971) by [@bobsingor](https://github.com/bobsingor) – Ink is drawn as Acrobat draws it: each stroke as the smooth curves Acrobat fits to its points (cubic Béziers, never more than about 1.4 points from any point), with round caps and no join, and a stroke of one point as a filled dot. Its box and hit testing follow those curves, so a live drawing looks the same as the appearance the engine writes. + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/core/annotation/package.json b/packages/core/annotation/package.json index 666f522b6..b2a77bec9 100644 --- a/packages/core/annotation/package.json +++ b/packages/core/annotation/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/core-annotation", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "The pure annotation brain: model · update(msg)→[model,effects] · view. Content-space geometry per family, hit-testing, and tools. No DOM, engine, or framework dependencies.", "type": "module", diff --git a/packages/core/fonts/CHANGELOG.md b/packages/core/fonts/CHANGELOG.md index 518d365fb..4b9f544e9 100644 --- a/packages/core/fonts/CHANGELOG.md +++ b/packages/core/fonts/CHANGELOG.md @@ -1,5 +1,11 @@ # @embedpdf/core-fonts +## 3.0.0-next.22 + +### Minor Changes + +- [#974](https://github.com/embedpdf/embed-pdf-viewer/pull/974) by [@bobsingor](https://github.com/bobsingor) – `standardFontForFace` moved to `@embedpdf/engine-core/runtime`, so the engine and the browser pick the standard font for a face with one function; it is no longer exported here. + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/core/fonts/package.json b/packages/core/fonts/package.json index 898af803e..9cf6cc41b 100644 --- a/packages/core/fonts/package.json +++ b/packages/core/fonts/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/core-fonts", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "The 14 standard PDF fonts as the engine draws them: PDFium's built-in faces as OpenType programs a browser can load, and the advances, ascent and descent the engine lays text out with. Pure TypeScript, DOM-free.", "type": "module", diff --git a/packages/core/form/CHANGELOG.md b/packages/core/form/CHANGELOG.md index dd47a32d0..f07e31a1d 100644 --- a/packages/core/form/CHANGELOG.md +++ b/packages/core/form/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/core-form +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/core/form/package.json b/packages/core/form/package.json index 2c4d2945c..b275cc897 100644 --- a/packages/core/form/package.json +++ b/packages/core/form/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/core-form", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "The form widget painter: what a widget looks like for its facts, ported from the engine's appearance generator and checked against it. Pure TypeScript, DOM-free.", "type": "module", diff --git a/packages/core/geometry/CHANGELOG.md b/packages/core/geometry/CHANGELOG.md index df2ebf32d..6f8cdaebe 100644 --- a/packages/core/geometry/CHANGELOG.md +++ b/packages/core/geometry/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/core-geometry +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/core/geometry/package.json b/packages/core/geometry/package.json index a03030e9e..98237c6dd 100644 --- a/packages/core/geometry/package.json +++ b/packages/core/geometry/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/core-geometry", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "The viewer's pure 2D coordinate primitives: Point/Size, page rotation, and the rotation/scale transforms shared by stage-core, the stage plugin, and every framework adapter. Zero dependencies, DOM-free, serializable — the bottom of the pyramid.", "type": "module", diff --git a/packages/core/js-sandbox/CHANGELOG.md b/packages/core/js-sandbox/CHANGELOG.md index 1ec1cfdef..d44d9663d 100644 --- a/packages/core/js-sandbox/CHANGELOG.md +++ b/packages/core/js-sandbox/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/core-js-sandbox +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/core/js-sandbox/package.json b/packages/core/js-sandbox/package.json index 755cafe5c..05a874403 100644 --- a/packages/core/js-sandbox/package.json +++ b/packages/core/js-sandbox/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/core-js-sandbox", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "QuickJS-backed, resource-bounded execution adapter for deterministic Acrobat JavaScript.", "type": "module", diff --git a/packages/core/main/CHANGELOG.md b/packages/core/main/CHANGELOG.md index bb199fb66..f16330c26 100644 --- a/packages/core/main/CHANGELOG.md +++ b/packages/core/main/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/core +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/core/main/package.json b/packages/core/main/package.json index 29d590e7a..040726f59 100644 --- a/packages/core/main/package.json +++ b/packages/core/main/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/core", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Pure, framework-free runtime for the EmbedPDF v3 viewer: store, typed capabilities, and plugin lifecycle. DOM-free and serializable.", "type": "module", diff --git a/packages/core/signature/CHANGELOG.md b/packages/core/signature/CHANGELOG.md index d4530bfa9..fc26f9753 100644 --- a/packages/core/signature/CHANGELOG.md +++ b/packages/core/signature/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/core-signature +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/core/signature/package.json b/packages/core/signature/package.json index 6fcea1d3f..a576b3671 100644 --- a/packages/core/signature/package.json +++ b/packages/core/signature/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/core-signature", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Digital signatures, the cryptographic half: parse and verify detached CMS (PKCS#7 / CAdES-B) signatures, build one from a raw signer, gate a signing before it completes, validate trust chains, and the sign()/validateSignatures() helpers over an engine document handle. Pure: no PDFium, no DOM.", "type": "module", diff --git a/packages/core/stage/CHANGELOG.md b/packages/core/stage/CHANGELOG.md index 4773c8dc5..218de6502 100644 --- a/packages/core/stage/CHANGELOG.md +++ b/packages/core/stage/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/core-stage +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/core/stage/package.json b/packages/core/stage/package.json index e4a699252..bd0feadd8 100644 --- a/packages/core/stage/package.json +++ b/packages/core/stage/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/core-stage", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Pure spatial model for the EmbedPDF viewer: Scene (layout strategies), Camera, Anchor, and framing. DOM-free, framework-free, and serializable.", "type": "module", diff --git a/packages/core/text/CHANGELOG.md b/packages/core/text/CHANGELOG.md index d65ebe443..1481e4aae 100644 --- a/packages/core/text/CHANGELOG.md +++ b/packages/core/text/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/core-text +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/core/text/package.json b/packages/core/text/package.json index dfe61125d..7149c558c 100644 --- a/packages/core/text/package.json +++ b/packages/core/text/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/core-text", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Text laid out as the engine lays it out: the font each character is drawn in, the Unicode bidirectional order, and a form field's lines, sizes and runs. Pure TypeScript, DOM-free.", "type": "module", diff --git a/packages/core/ui/CHANGELOG.md b/packages/core/ui/CHANGELOG.md index d0dc7b6fa..17902efc3 100644 --- a/packages/core/ui/CHANGELOG.md +++ b/packages/core/ui/CHANGELOG.md @@ -1,5 +1,11 @@ # @embedpdf/core-ui +## 3.0.0-next.22 + +### Minor Changes + +- [#980](https://github.com/embedpdf/embed-pdf-viewer/pull/980) by [@bobsingor](https://github.com/bobsingor) – A bar can sit by the snapshot tool's box: `{ at: 'snapshot' }`, beside `{ at: 'selection' }` and `{ at: 'annotation' }`. + ## 3.0.0-next.21 ### Minor Changes diff --git a/packages/core/ui/package.json b/packages/core/ui/package.json index cce1117be..fe84712db 100644 --- a/packages/core/ui/package.json +++ b/packages/core/ui/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/core-ui", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Pure chrome core: the structure-only schema vocabulary, the toolbar fit solver (measure → solve → overflow), the overflow-to-menu projection, and the shortcut parser/matcher. DOM-free, kernel-free, framework-free.", "type": "module", diff --git a/packages/engine/core/CHANGELOG.md b/packages/engine/core/CHANGELOG.md index 55e2017b5..0008acf78 100644 --- a/packages/engine/core/CHANGELOG.md +++ b/packages/engine/core/CHANGELOG.md @@ -1,5 +1,23 @@ # @embedpdf/engine-core +## 3.0.0-next.22 + +### Minor Changes + +- [#973](https://github.com/embedpdf/embed-pdf-viewer/pull/973) by [@bobsingor](https://github.com/bobsingor) – An update can change an annotation's kind to a sibling: a highlight, underline, squiggly line or strikeout into another of the four, and a square into a circle and back, the kinds ISO 32000-2 describes with one table of entries. New `siblingKindsOf(subtype)` lists the kinds an annotation can become, `canChangeKind(annotation, subtype)` says whether it can become one now, and `fieldTheKindCannotHold(annotation, subtype)` names the value in the way. The patch is the new kind's patch, checked against its schema, and the annotation stays itself: its ref, `nm`, replies, popup, group and author. Any other subtype is refused with `InvalidArg` (`details.field` `'subtype'`), naming the kinds it can become. A value the new kind has no field for is refused, never dropped (`details.field` names it): clear it first, in the same change, as a replacement's strikeout clears its `intent`. + + `applyAnnotationPatch` and `mergeAnnotationPatch` predict the new kind, a field only it has reading `null`, and `annotationPatchBetween` states `subtype` when the kind changed. + +- [#974](https://github.com/embedpdf/embed-pdf-viewer/pull/974) by [@bobsingor](https://github.com/bobsingor) – Latin a font lacks is never a box. After the fallback fonts, the engine draws a character the run's font doesn't have in the standard font that stands in for that font, in its weight and italic (Times for Times New Roman, Courier for Courier New, Helvetica for any other), and only then in the last resort. `doc.fonts.resolve()` says so: each run's `fallbacks` ends with that standard font's program, unless the run is drawn in it. `standardFontForFace(face)`, the rule that picks it, is exported from `@embedpdf/engine-core/runtime`. + +- [#978](https://github.com/embedpdf/embed-pdf-viewer/pull/978) by [@bobsingor](https://github.com/bobsingor) – Every markup annotation has `richText`, its comment with formatting (`/RC`, ISO 32000-2 §12.5.6.2): a note, a highlight, a shape, a line, ink, a stamp, a caret, a file attachment or a redaction. It is the `RichTextDocument` a free text has, or `null` when the comment is plain text, and `contents` is its plain projection. A create or update with `richText` brings its `contents`; `contents` alone on a formatted comment replaces its paragraphs with plain ones and keeps its body; `richText: null` keeps the text and drops the formatting. `contents` and `richText` given together must say the same text, line breaks however spelled, for every kind. Links, popups and widgets have no `richText`. The rich text schemas are named `RichTextDocument` and `RichTextDocumentInput` among the annotation wire components. + +- [#971](https://github.com/embedpdf/embed-pdf-viewer/pull/971) by [@bobsingor](https://github.com/bobsingor) – A square, circle, polygon, polyline, line or ink annotation takes `color: null` for no stroke, and keeps its `strokeWidth`. A shape whose file gives it no stroke color reads `color: null`. `runNoStrokeConformance` and `NO_STROKE_FIXTURE_PDF` check both engines read, write and draw it as Acrobat does. + +### Patch Changes + +- [#972](https://github.com/embedpdf/embed-pdf-viewer/pull/972) by [@bobsingor](https://github.com/bobsingor) – A dashed border whose `dashArray` is left out, on create or by an update that makes it dashed while it has no pattern, now states the default `[3, 3]` and reads it back, for every kind with a border and for widget placements. The pattern is written into the file because Acrobat redraws a dashed border whose file names none as a solid line. `dashArray: null` is no pattern: written as none, it reads back `null`. A write refuses an empty `dashArray`: an empty pattern is a solid line, which is `borderStyle: 'solid'`. + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/engine/core/package.json b/packages/engine/core/package.json index 0045d5799..0ad7d31c8 100644 --- a/packages/engine/core/package.json +++ b/packages/engine/core/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/engine-core", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Engine v3 core: AbortablePromise, Engine/DocumentHandle interfaces, DTOs, wire schemas, error codes, and a transport-agnostic conformance harness shared by every Engine implementation.", "type": "module", diff --git a/packages/engine/main/CHANGELOG.md b/packages/engine/main/CHANGELOG.md index f05be1c18..9553a1bf7 100644 --- a/packages/engine/main/CHANGELOG.md +++ b/packages/engine/main/CHANGELOG.md @@ -1,5 +1,11 @@ # @embedpdf/engine +## 3.0.0-next.22 + +### Minor Changes + +- [#973](https://github.com/embedpdf/embed-pdf-viewer/pull/973) by [@bobsingor](https://github.com/bobsingor) – `page.annotations.update()` changes an annotation's kind to a sibling: a highlight, underline, squiggly line or strikeout into another of the four, a square into a circle and back. It stays the same annotation, with its ref, replies, popup, group and author, and undo turns it back. Any other subtype is refused with `InvalidArg`, and so is a value the new kind has no field for: clear it first, in the same change. + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/engine/main/package.json b/packages/engine/main/package.json index 82a7d0b3c..4451850d6 100644 --- a/packages/engine/main/package.json +++ b/packages/engine/main/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/engine", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Engine v3 local implementation: the EmbedPDF Runtime (our PDFium fork) as WASM inside a Web Worker (or inline for Node), driven by an O(log n) abort-aware WorkerQueue. Speaks the same Engine interface as the cloud engine.", "type": "module", diff --git a/packages/engine/runtime/CHANGELOG.md b/packages/engine/runtime/CHANGELOG.md index c5d9bc872..59cfb21fb 100644 --- a/packages/engine/runtime/CHANGELOG.md +++ b/packages/engine/runtime/CHANGELOG.md @@ -1,5 +1,21 @@ # @embedpdf/engine-runtime +## 3.0.0-next.22 + +### Minor Changes + +- [#973](https://github.com/embedpdf/embed-pdf-viewer/pull/973) by [@bobsingor](https://github.com/bobsingor) – The runtime has `EPDFAnnot_SetSubtype`: an annotation's kind changed in place, its `/Subtype` written and every other entry kept. + +- [#974](https://github.com/embedpdf/embed-pdf-viewer/pull/974) by [@bobsingor](https://github.com/bobsingor) – The runtime draws Latin a font lacks in the standard font that stands in for that font (its own standard family, else Helvetica, in its weight and italic), after the fallback fonts and before the last-resort box, in free text, form fields and redaction labels: text in a font without Latin, such as Noto Sans Hebrew, keeps its Latin letters. A registered font's `/BaseFont` is its PostScript name rather than the family it was registered under, so two weights of one family are two fonts in the PDF and in `EPDFFont_GetPostScriptName()`; a variable-font instance is named as the font names that instance, and each subset has its own tag. + +- [#971](https://github.com/embedpdf/embed-pdf-viewer/pull/971) by [@bobsingor](https://github.com/bobsingor) – A square, circle, polygon, polyline, line or ink whose `/C` is empty or left out draws no stroke, as Acrobat does: the fill alone, still inset half the border width, and only the filled line endings. A line, polyline or ink at border width 0 draws a hairline. Adds the `EPDFAnnot_SetNoColor` binding, which writes a color entry as an empty array. + +### Patch Changes + +- [#971](https://github.com/embedpdf/embed-pdf-viewer/pull/971) by [@bobsingor](https://github.com/bobsingor) – An ink annotation's appearance draws each stroke as Acrobat does: the cubic Béziers Acrobat fits to its points, never more than about 1.4 points from any of them, with round caps and no join, and a stroke of one point as a dot of radius 0.5. `/Rect` follows the curves. + +- [#972](https://github.com/embedpdf/embed-pdf-viewer/pull/972) by [@bobsingor](https://github.com/bobsingor) – An empty dash pattern (`/BS /D []`) is a solid line, as ISO 32000 says: a shape's, line's, ink's or form widget's border with one draws no dashes and reads solid. A dashed border without `/D` still draws the default dash. + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/engine/runtime/npm/darwin-arm64/CHANGELOG.md b/packages/engine/runtime/npm/darwin-arm64/CHANGELOG.md index 7ab37183f..b12647647 100644 --- a/packages/engine/runtime/npm/darwin-arm64/CHANGELOG.md +++ b/packages/engine/runtime/npm/darwin-arm64/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/engine-runtime-darwin-arm64 +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/engine/runtime/npm/darwin-arm64/package.json b/packages/engine/runtime/npm/darwin-arm64/package.json index 950802073..3e7df83f4 100644 --- a/packages/engine/runtime/npm/darwin-arm64/package.json +++ b/packages/engine/runtime/npm/darwin-arm64/package.json @@ -1,5 +1,5 @@ { - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "license": "Apache-2.0", "publishConfig": { "access": "public" diff --git a/packages/engine/runtime/npm/darwin-x64/CHANGELOG.md b/packages/engine/runtime/npm/darwin-x64/CHANGELOG.md index 9f3f9e365..abdfa7f93 100644 --- a/packages/engine/runtime/npm/darwin-x64/CHANGELOG.md +++ b/packages/engine/runtime/npm/darwin-x64/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/engine-runtime-darwin-x64 +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/engine/runtime/npm/darwin-x64/package.json b/packages/engine/runtime/npm/darwin-x64/package.json index 781db0518..718312e52 100644 --- a/packages/engine/runtime/npm/darwin-x64/package.json +++ b/packages/engine/runtime/npm/darwin-x64/package.json @@ -1,5 +1,5 @@ { - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "license": "Apache-2.0", "publishConfig": { "access": "public" diff --git a/packages/engine/runtime/npm/linux-arm64/CHANGELOG.md b/packages/engine/runtime/npm/linux-arm64/CHANGELOG.md index 0b79531df..283378791 100644 --- a/packages/engine/runtime/npm/linux-arm64/CHANGELOG.md +++ b/packages/engine/runtime/npm/linux-arm64/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/engine-runtime-linux-arm64 +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/engine/runtime/npm/linux-arm64/package.json b/packages/engine/runtime/npm/linux-arm64/package.json index ee0563b27..7795a9665 100644 --- a/packages/engine/runtime/npm/linux-arm64/package.json +++ b/packages/engine/runtime/npm/linux-arm64/package.json @@ -1,5 +1,5 @@ { - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "license": "Apache-2.0", "publishConfig": { "access": "public" diff --git a/packages/engine/runtime/npm/linux-x64/CHANGELOG.md b/packages/engine/runtime/npm/linux-x64/CHANGELOG.md index 00e4cef5e..553b53ee6 100644 --- a/packages/engine/runtime/npm/linux-x64/CHANGELOG.md +++ b/packages/engine/runtime/npm/linux-x64/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/engine-runtime-linux-x64 +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/engine/runtime/npm/linux-x64/package.json b/packages/engine/runtime/npm/linux-x64/package.json index c60587fdb..0954179d8 100644 --- a/packages/engine/runtime/npm/linux-x64/package.json +++ b/packages/engine/runtime/npm/linux-x64/package.json @@ -1,5 +1,5 @@ { - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "license": "Apache-2.0", "publishConfig": { "access": "public" diff --git a/packages/engine/runtime/npm/linuxmusl-arm64/CHANGELOG.md b/packages/engine/runtime/npm/linuxmusl-arm64/CHANGELOG.md index 629507db6..61e35b83a 100644 --- a/packages/engine/runtime/npm/linuxmusl-arm64/CHANGELOG.md +++ b/packages/engine/runtime/npm/linuxmusl-arm64/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/engine-runtime-linuxmusl-arm64 +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/engine/runtime/npm/linuxmusl-arm64/package.json b/packages/engine/runtime/npm/linuxmusl-arm64/package.json index d26f0248f..141738097 100644 --- a/packages/engine/runtime/npm/linuxmusl-arm64/package.json +++ b/packages/engine/runtime/npm/linuxmusl-arm64/package.json @@ -1,5 +1,5 @@ { - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "license": "Apache-2.0", "publishConfig": { "access": "public" diff --git a/packages/engine/runtime/npm/linuxmusl-x64/CHANGELOG.md b/packages/engine/runtime/npm/linuxmusl-x64/CHANGELOG.md index 941993371..d11540211 100644 --- a/packages/engine/runtime/npm/linuxmusl-x64/CHANGELOG.md +++ b/packages/engine/runtime/npm/linuxmusl-x64/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/engine-runtime-linuxmusl-x64 +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/engine/runtime/npm/linuxmusl-x64/package.json b/packages/engine/runtime/npm/linuxmusl-x64/package.json index 76234fd7f..b0721de6f 100644 --- a/packages/engine/runtime/npm/linuxmusl-x64/package.json +++ b/packages/engine/runtime/npm/linuxmusl-x64/package.json @@ -1,5 +1,5 @@ { - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "license": "Apache-2.0", "publishConfig": { "access": "public" diff --git a/packages/engine/runtime/npm/wasm32/CHANGELOG.md b/packages/engine/runtime/npm/wasm32/CHANGELOG.md index ffd2895ba..81e40bf30 100644 --- a/packages/engine/runtime/npm/wasm32/CHANGELOG.md +++ b/packages/engine/runtime/npm/wasm32/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/engine-runtime-wasm32 +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/engine/runtime/npm/wasm32/package.json b/packages/engine/runtime/npm/wasm32/package.json index 4749be1d1..c53590737 100644 --- a/packages/engine/runtime/npm/wasm32/package.json +++ b/packages/engine/runtime/npm/wasm32/package.json @@ -1,5 +1,5 @@ { - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "license": "Apache-2.0", "publishConfig": { "access": "public" diff --git a/packages/engine/runtime/npm/win32-arm64/CHANGELOG.md b/packages/engine/runtime/npm/win32-arm64/CHANGELOG.md index 4f743692e..5b9657d2a 100644 --- a/packages/engine/runtime/npm/win32-arm64/CHANGELOG.md +++ b/packages/engine/runtime/npm/win32-arm64/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/engine-runtime-win32-arm64 +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/engine/runtime/npm/win32-arm64/package.json b/packages/engine/runtime/npm/win32-arm64/package.json index 5654b0b0e..ca809940b 100644 --- a/packages/engine/runtime/npm/win32-arm64/package.json +++ b/packages/engine/runtime/npm/win32-arm64/package.json @@ -1,5 +1,5 @@ { - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "license": "Apache-2.0", "publishConfig": { "access": "public" diff --git a/packages/engine/runtime/npm/win32-x64/CHANGELOG.md b/packages/engine/runtime/npm/win32-x64/CHANGELOG.md index a6a72ef0a..adbb14dac 100644 --- a/packages/engine/runtime/npm/win32-x64/CHANGELOG.md +++ b/packages/engine/runtime/npm/win32-x64/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/engine-runtime-win32-x64 +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/engine/runtime/npm/win32-x64/package.json b/packages/engine/runtime/npm/win32-x64/package.json index 2ec6f6d0c..4c9326d3d 100644 --- a/packages/engine/runtime/npm/win32-x64/package.json +++ b/packages/engine/runtime/npm/win32-x64/package.json @@ -1,5 +1,5 @@ { - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "license": "Apache-2.0", "publishConfig": { "access": "public" diff --git a/packages/engine/runtime/package.json b/packages/engine/runtime/package.json index f65a97ea4..a2e69d4ff 100644 --- a/packages/engine/runtime/package.json +++ b/packages/engine/runtime/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/engine-runtime", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Low-level PDF execution runtime for EmbedPDF, backed by EmbedPDF's fork of PDFium and distributed as WASM and native platform packages.", "type": "module", diff --git a/packages/engine/services/CHANGELOG.md b/packages/engine/services/CHANGELOG.md index 2e9ea24d6..c0bca64ff 100644 --- a/packages/engine/services/CHANGELOG.md +++ b/packages/engine/services/CHANGELOG.md @@ -1,5 +1,15 @@ # @embedpdf/engine-services +## 3.0.0-next.22 + +### Minor Changes + +- [#973](https://github.com/embedpdf/embed-pdf-viewer/pull/973) by [@bobsingor](https://github.com/bobsingor) – An update with a sibling `subtype` writes the annotation as its new kind: its `/Subtype`, its fields as the new kind's, and an appearance drawn as one. Undo puts the old kind back, also when the annotation changed since. + +- [#978](https://github.com/embedpdf/embed-pdf-viewer/pull/978) by [@bobsingor](https://github.com/bobsingor) – A markup annotation's comment reads and writes as rich text: `richText` reads its `/RC` (`null` without one) and a write sets `/RC` and `/Contents` together, as Acrobat writes a note's, without touching its appearance. Writing `contents` alone on a formatted comment rewrites its `/RC` too, so other PDF apps no longer show the old text. A comment body that names no font reads as Helvetica, and is written back naming none. A redaction's overlay font is read from its `/DA` alone, so a comment in another font no longer changes it. + +- [#971](https://github.com/embedpdf/embed-pdf-viewer/pull/971) by [@bobsingor](https://github.com/bobsingor) – `color: null` on a square, circle, polygon, polyline, line or ink is written as `/C []`, the empty color ISO 32000 defines as no color. A shape whose `/C` is empty or left out reads `color: null`, where it read red before. + ## 3.0.0-next.21 ### Patch Changes diff --git a/packages/engine/services/package.json b/packages/engine/services/package.json index 23f4da26e..295d2b359 100644 --- a/packages/engine/services/package.json +++ b/packages/engine/services/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/engine-services", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Engine v3 service implementations: synchronous, runtime-agnostic logic that runs identically inside the local WASM worker and the @cloudpdf/server worker_thread.", "type": "module", diff --git a/packages/framework/angular/CHANGELOG.md b/packages/framework/angular/CHANGELOG.md index 4f6e2858e..d6b8380df 100644 --- a/packages/framework/angular/CHANGELOG.md +++ b/packages/framework/angular/CHANGELOG.md @@ -1,5 +1,11 @@ # @embedpdf/angular +## 3.0.0-next.22 + +### Minor Changes + +- [#980](https://github.com/embedpdf/embed-pdf-viewer/pull/980) by [@bobsingor](https://github.com/bobsingor) – New `` in `/render`: the snapshot tool's box on each page, in the `snapshot.box` colors. New ``: your UI by the snapshot, once it's taken. `EpdfRender` has `canSnapshot()`, `getSnapshot()`, `clearSnapshot()` and `snapshotChanged$`. `copyImage` comes from `/runtime`, beside `saveFile`. + ## 3.0.0-next.21 ### Minor Changes diff --git a/packages/framework/angular/package.json b/packages/framework/angular/package.json index 6a727882b..a6b1c7444 100644 --- a/packages/framework/angular/package.json +++ b/packages/framework/angular/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/angular", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Angular adapter for EmbedPDF: provideEmbedPdf() with one feature per plugin, one service per plugin with signals and RxJS streams, and standalone components (, layers). One secondary entry point per feature.", "sideEffects": false, diff --git a/packages/framework/react/CHANGELOG.md b/packages/framework/react/CHANGELOG.md index 624eaecb1..e4eb90579 100644 --- a/packages/framework/react/CHANGELOG.md +++ b/packages/framework/react/CHANGELOG.md @@ -1,5 +1,11 @@ # @embedpdf/react +## 3.0.0-next.22 + +### Minor Changes + +- [#980](https://github.com/embedpdf/embed-pdf-viewer/pull/980) by [@bobsingor](https://github.com/bobsingor) – New `` in `/render`: the snapshot tool's box on each page, in the `snapshot.box` colors. New ``: your UI by the snapshot, once it's taken. New `useSnapshot()`: the snapshot the tool holds, or `null`. `copyImage` comes from `/runtime`, beside `saveFile`. + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/framework/react/package.json b/packages/framework/react/package.json index 735245994..dbdb9f856 100644 --- a/packages/framework/react/package.json +++ b/packages/framework/react/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/react", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "React adapter for EmbedPDF v3: one generic reactive binding + structural components (Viewer, Stage, PageView) + headless layers & hooks. The whole framework surface.", "type": "module", diff --git a/packages/framework/svelte/CHANGELOG.md b/packages/framework/svelte/CHANGELOG.md index 53fa1467f..752f3be6d 100644 --- a/packages/framework/svelte/CHANGELOG.md +++ b/packages/framework/svelte/CHANGELOG.md @@ -1,5 +1,11 @@ # @embedpdf/svelte +## 3.0.0-next.22 + +### Minor Changes + +- [#980](https://github.com/embedpdf/embed-pdf-viewer/pull/980) by [@bobsingor](https://github.com/bobsingor) – New `` in `/render`: the snapshot tool's box on each page, in the `snapshot.box` colors. New ``: your UI by the snapshot, once it's taken. New `useSnapshot()`: the snapshot the tool holds, or `null`. `copyImage` comes from `/runtime`, beside `saveFile`. + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/framework/svelte/package.json b/packages/framework/svelte/package.json index 3e0a22317..90db00e26 100644 --- a/packages/framework/svelte/package.json +++ b/packages/framework/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/svelte", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Svelte 5 adapter for EmbedPDF v3: rune-based functions, components with bind: and snippets, headless layers. The whole framework surface, one entry point per feature.", "type": "module", diff --git a/packages/framework/vue/CHANGELOG.md b/packages/framework/vue/CHANGELOG.md index 238ae855b..483e6ea59 100644 --- a/packages/framework/vue/CHANGELOG.md +++ b/packages/framework/vue/CHANGELOG.md @@ -1,5 +1,11 @@ # @embedpdf/vue +## 3.0.0-next.22 + +### Minor Changes + +- [#980](https://github.com/embedpdf/embed-pdf-viewer/pull/980) by [@bobsingor](https://github.com/bobsingor) – New `` in `/render`: the snapshot tool's box on each page, in the `snapshot.box` colors. New ``: your UI by the snapshot, once it's taken. New `useSnapshot()`: the snapshot the tool holds, or `null`. `copyImage` comes from `/runtime`, beside `saveFile`. + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/framework/vue/package.json b/packages/framework/vue/package.json index ab0c348ea..96777c53f 100644 --- a/packages/framework/vue/package.json +++ b/packages/framework/vue/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/vue", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Vue adapter for EmbedPDF v3: composables, components with v-model and scoped slots, headless layers. The whole framework surface, one entry point per feature.", "type": "module", diff --git a/packages/framework/web/CHANGELOG.md b/packages/framework/web/CHANGELOG.md index b8047b10b..a0f200f67 100644 --- a/packages/framework/web/CHANGELOG.md +++ b/packages/framework/web/CHANGELOG.md @@ -1,5 +1,15 @@ # @embedpdf/web +## 3.0.0-next.22 + +### Minor Changes + +- [#975](https://github.com/embedpdf/embed-pdf-viewer/pull/975) by [@bobsingor](https://github.com/bobsingor) – The rich text editor keeps up with fast typing: an update that brings back text the editor already reported is late, not a change, so it no longer undoes the keystrokes typed after it. `RichTextEditorHost.onInput` may return the document the host keeps (text typed at the caret in a style chosen there), which the editor shows at once, and `TextBoxEditorAnnotation.draftRichText` returns it. A format shortcut reports the selection as it is before the command runs, and the caret is reported once an input method composition ends instead of while it moves through it. + +- [#971](https://github.com/embedpdf/embed-pdf-viewer/pull/971) by [@bobsingor](https://github.com/bobsingor) – A scene paint's `hairline` draws a stroke one pixel wide at any zoom: a line, polyline or ink at width 0, as the engine and Acrobat draw it. + +- [#980](https://github.com/embedpdf/embed-pdf-viewer/pull/980) by [@bobsingor](https://github.com/bobsingor) – New `copyImage(image)`: copies a picture to the clipboard as PNG, starting the write at once, so it works in a click before the picture is there (Safari copies only then). New `snapshotBoxPaint` and `SNAPSHOT_BOX_DASH`, the look of the snapshot tool's box, with the `--epdf-snapshot-box-fill` and `--epdf-snapshot-box-stroke` variables. `standardCommandsBrowser` has `copyImage`, and its `saveFile` takes the content type. + ## 3.0.0-next.21 ### Patch Changes diff --git a/packages/framework/web/package.json b/packages/framework/web/package.json index 72d26df03..08599a7cf 100644 --- a/packages/framework/web/package.json +++ b/packages/framework/web/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/web", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Framework-free browser adapters for EmbedPDF v3 — the one home for code that touches window/document (file dialog, clipboard, print…). Imported by the framework layers; never by a plugin or a *-core package, which stay DOM-free.", "type": "module", diff --git a/packages/plugin/actions/CHANGELOG.md b/packages/plugin/actions/CHANGELOG.md index 0b05639dc..6d5790ac2 100644 --- a/packages/plugin/actions/CHANGELOG.md +++ b/packages/plugin/actions/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-actions +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/actions/package.json b/packages/plugin/actions/package.json index 31e1177f3..15dbfce9c 100644 --- a/packages/plugin/actions/package.json +++ b/packages/plugin/actions/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-actions", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "The PDF action engine: one dispatcher for extracted /A and /AA action trees (GoTo, URI, Hide, Named, ResetForm, JavaScript chains) with a per-document serialized queue, origin-aware policy, can-twins, and a registry where sibling plugins provide executors and effect sinks. JavaScript is one registered interpreter among many — Hide/ResetForm/navigation work with scripting off.", "type": "module", diff --git a/packages/plugin/annotation/CHANGELOG.md b/packages/plugin/annotation/CHANGELOG.md index e5b53492a..e677bf2b9 100644 --- a/packages/plugin/annotation/CHANGELOG.md +++ b/packages/plugin/annotation/CHANGELOG.md @@ -1,5 +1,19 @@ # @embedpdf/plugin-annotation +## 3.0.0-next.22 + +### Minor Changes + +- [#973](https://github.com/embedpdf/embed-pdf-viewer/pull/973) by [@bobsingor](https://github.com/bobsingor) – `selection.update({ subtype })` changes each selected annotation that can become that kind, as the same annotation, and the rest keep theirs. `selection.getProperties()` leads with a `subtype` choice when the selection's kinds are siblings that can change kind (not a replacement's strikeout), offering the kinds people may change by hand. + +- [#975](https://github.com/embedpdf/embed-pdf-viewer/pull/975) by [@bobsingor](https://github.com/bobsingor) – The caret works as in a word processor. With a caret in a text box, `selection.getProperties()` reports the text typed next: the style of the text before the caret (at the start of a line, the text after it). `text.toggleFormat()` and a font, size or color from `selection.update()` at a caret style the text typed next, without writing anything, and moving the caret drops that style. A selected box reads all of its text, so bold shows only when every word is bold, and a change styles all of it, a word with its own style included. `text.toggleFormat()` turns a format on unless all of the text already has it, so words that disagree all take it. A box restyled while it is already drawn live now draws in its new font at once, not in the font answer for its old style. + +- [#971](https://github.com/embedpdf/embed-pdf-viewer/pull/971) by [@bobsingor](https://github.com/bobsingor) – A shape or line tool's defaults may set `color: null`, so the tool draws without a stroke. + +### Patch Changes + +- [#974](https://github.com/embedpdf/embed-pdf-viewer/pull/974) by [@bobsingor](https://github.com/bobsingor) – A free text box restyled after it was typed in is drawn in its new font at once: the fonts the engine answered for its old font no longer draw its body while its other runs follow the new one. An answer holds for the faces it was asked about; a box whose faces change is asked again, and typing keeps the answer. + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/annotation/package.json b/packages/plugin/annotation/package.json index 63bd4ada8..87f3d7fdf 100644 --- a/packages/plugin/annotation/package.json +++ b/packages/plugin/annotation/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-annotation", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Annotation feature plugin: the pure annotation-core wired to the engine repository (optimistic create/patch/delete) + the interaction hub (ambient edit + draw tools). Behaviors (forms) plug in here.", "type": "module", diff --git a/packages/plugin/attachment/CHANGELOG.md b/packages/plugin/attachment/CHANGELOG.md index b5de95ca6..a6258f4c9 100644 --- a/packages/plugin/attachment/CHANGELOG.md +++ b/packages/plugin/attachment/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-attachment +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/attachment/package.json b/packages/plugin/attachment/package.json index 9449b08d2..4afb55178 100644 --- a/packages/plugin/attachment/package.json +++ b/packages/plugin/attachment/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-attachment", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Document-scoped attachments: the files a document carries, in its attachments and in file attachment annotations, as one list with this session's pending adds and removes shown; adding and removing them as undoable changes, downloading them, and going to a page's file.", "type": "module", diff --git a/packages/plugin/commands/CHANGELOG.md b/packages/plugin/commands/CHANGELOG.md index 162ac36c1..accd32f14 100644 --- a/packages/plugin/commands/CHANGELOG.md +++ b/packages/plugin/commands/CHANGELOG.md @@ -1,5 +1,11 @@ # @embedpdf/plugin-commands +## 3.0.0-next.22 + +### Minor Changes + +- [#980](https://github.com/embedpdf/embed-pdf-viewer/pull/980) by [@bobsingor](https://github.com/bobsingor) – New standard commands: `tool:snapshot`, not allowed without `doc.content.copy` (`commands.notAllowed.doc-content-copy`); `snapshot:copy` (`Mod+C`), `snapshot:save` (a PNG named after the document and the page) and `snapshot:clear` (`Escape`), each enabled while there is a snapshot. `StandardCommandsPlatform` has `copyImage(image)`, and `saveFile` takes the file's content type. Commands that share a key take turns: a key runs the one that can run now, wherever it is in the list, so Escape lets a snapshot go even though cancelling a drawing has Escape too. + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/commands/package.json b/packages/plugin/commands/package.json index 7cd4b7b35..cf17fef4b 100644 --- a/packages/plugin/commands/package.json +++ b/packages/plugin/commands/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-commands", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "The commands: one name per action of the viewer, with its label, icon, state and shortcut, which toolbars, menus, a command palette and the keyboard all show and run. A command's state is read from live state, so every reader follows the kernel's one change stream. `/standard` has the commands every viewer has.", "type": "module", diff --git a/packages/plugin/fonts/CHANGELOG.md b/packages/plugin/fonts/CHANGELOG.md index 0455df8c9..741b1845e 100644 --- a/packages/plugin/fonts/CHANGELOG.md +++ b/packages/plugin/fonts/CHANGELOG.md @@ -1,5 +1,11 @@ # @embedpdf/plugin-fonts +## 3.0.0-next.22 + +### Patch Changes + +- [#974](https://github.com/embedpdf/embed-pdf-viewer/pull/974) by [@bobsingor](https://github.com/bobsingor) – A font's CSS and a box's paint fonts end their fallbacks with the standard font that stands in for the font, as the engine writes them: Latin a font lacks (Noto Sans Hebrew has none) shows in Helvetica, in the same weight, never as boxes. + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/fonts/package.json b/packages/plugin/fonts/package.json index 725390c84..f1d7c5c4b 100644 --- a/packages/plugin/fonts/package.json +++ b/packages/plugin/fonts/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-fonts", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Document-scoped fonts: every font a document can be written in, mirrored from the engine, and the CSS and font programs a browser draws its text with, so typed text shows in the program the engine writes.", "type": "module", diff --git a/packages/plugin/form/CHANGELOG.md b/packages/plugin/form/CHANGELOG.md index cfe306cff..6eaf7cd52 100644 --- a/packages/plugin/form/CHANGELOG.md +++ b/packages/plugin/form/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-form +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/form/package.json b/packages/plugin/form/package.json index 8efbca783..5777027eb 100644 --- a/packages/plugin/form/package.json +++ b/packages/plugin/form/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-form", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Document-scoped interactive forms: reactive field state over doc.forms, fill-mode controls (FillItem projection), and form-data interchange. Widgets stay annotations; this plugin owns the field plane.", "type": "module", diff --git a/packages/plugin/history/CHANGELOG.md b/packages/plugin/history/CHANGELOG.md index 5c963481b..72d6849f3 100644 --- a/packages/plugin/history/CHANGELOG.md +++ b/packages/plugin/history/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-history +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/history/package.json b/packages/plugin/history/package.json index 780a62e0a..6aaee2dc4 100644 --- a/packages/plugin/history/package.json +++ b/packages/plugin/history/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-history", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Undo and redo per open document, built on the document's change queue: every change the viewer's plugins stage is a step, undone by reference while still pending.", "type": "module", diff --git a/packages/plugin/i18n/CHANGELOG.md b/packages/plugin/i18n/CHANGELOG.md index 926a6f980..3b51e9579 100644 --- a/packages/plugin/i18n/CHANGELOG.md +++ b/packages/plugin/i18n/CHANGELOG.md @@ -1,5 +1,11 @@ # @embedpdf/plugin-i18n +## 3.0.0-next.22 + +### Minor Changes + +- [#980](https://github.com/embedpdf/embed-pdf-viewer/pull/980) by [@bobsingor](https://github.com/bobsingor) – Labels for the snapshot tool and its commands (`commands.tool.snapshot`, `commands.snapshot.copy`, `.save`, `.clear`) in every language. + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/i18n/package.json b/packages/plugin/i18n/package.json index 62ca82458..2f5ae0de8 100644 --- a/packages/plugin/i18n/package.json +++ b/packages/plugin/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-i18n", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Workspace-scoped translation: locale packs as store state (pure lookup, reactive for free), lazy pack loading, pure BCP-47 negotiation. Engine-free and DOM-free — alive before the engine boots.", "type": "module", diff --git a/packages/plugin/interaction/CHANGELOG.md b/packages/plugin/interaction/CHANGELOG.md index 5caf7acf1..88f6d9b0b 100644 --- a/packages/plugin/interaction/CHANGELOG.md +++ b/packages/plugin/interaction/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-interaction +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/interaction/package.json b/packages/plugin/interaction/package.json index 49a75d929..32e033e8f 100644 --- a/packages/plugin/interaction/package.json +++ b/packages/plugin/interaction/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-interaction", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "The interaction hub: the active tool, the cursor, and pointer routing. Pure mechanism — knows nothing about selection/annotations/forms; they contribute tools + handlers.", "type": "module", diff --git a/packages/plugin/link/CHANGELOG.md b/packages/plugin/link/CHANGELOG.md index 523ac0aae..546e9b08a 100644 --- a/packages/plugin/link/CHANGELOG.md +++ b/packages/plugin/link/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-link +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/link/package.json b/packages/plugin/link/package.json index c628fac2d..bf2137c6e 100644 --- a/packages/plugin/link/package.json +++ b/packages/plugin/link/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-link", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "The navigation plane for PDF link annotations: per-page clickable link areas + one activate() entry point (GoTo → stage reveal, URI → framework opener). Works standalone in viewer deployments; with the annotation plugin present it reads the folded model (no double fetch) and a Behavior hands links to the editing plane when the link tool is active.", "type": "module", diff --git a/packages/plugin/measurement/CHANGELOG.md b/packages/plugin/measurement/CHANGELOG.md index a320c6cb2..3b830c370 100644 --- a/packages/plugin/measurement/CHANGELOG.md +++ b/packages/plugin/measurement/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-measurement +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/measurement/package.json b/packages/plugin/measurement/package.json index d10ea1024..66d3423a7 100644 --- a/packages/plugin/measurement/package.json +++ b/packages/plugin/measurement/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-measurement", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Page calibration and distance measurement workflows for EmbedPDF.", "type": "module", diff --git a/packages/plugin/metadata/CHANGELOG.md b/packages/plugin/metadata/CHANGELOG.md index 2571fb536..6a86dd855 100644 --- a/packages/plugin/metadata/CHANGELOG.md +++ b/packages/plugin/metadata/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-metadata +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/metadata/package.json b/packages/plugin/metadata/package.json index a5d833607..17a735ddd 100644 --- a/packages/plugin/metadata/package.json +++ b/packages/plugin/metadata/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-metadata", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Document-scoped metadata: reactive Info-dict state fed by the document event stream (own edits + remote SSE), with a three-state update that writes to the layer.", "type": "module", diff --git a/packages/plugin/outline/CHANGELOG.md b/packages/plugin/outline/CHANGELOG.md index 4f383a2e8..ab5d6c916 100644 --- a/packages/plugin/outline/CHANGELOG.md +++ b/packages/plugin/outline/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-outline +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/outline/package.json b/packages/plugin/outline/package.json index 764163e6e..0ad7ef7d4 100644 --- a/packages/plugin/outline/package.json +++ b/packages/plugin/outline/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-outline", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Document-scoped outline (bookmarks): the document's outline mirrored from the engine with this session's pending edits shown, which items are expanded and selected, the item for the reading position, activation, and create, update, move and delete as undoable changes.", "type": "module", diff --git a/packages/plugin/page-edit/CHANGELOG.md b/packages/plugin/page-edit/CHANGELOG.md index 362004d55..be03c9da7 100644 --- a/packages/plugin/page-edit/CHANGELOG.md +++ b/packages/plugin/page-edit/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-page-edit +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/page-edit/package.json b/packages/plugin/page-edit/package.json index 773ccde93..a9113ee31 100644 --- a/packages/plugin/page-edit/package.json +++ b/packages/plugin/page-edit/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-page-edit", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Document-scoped page-edit capability: ref-addressed rotate/move/delete/insert over the engine DocumentHandle, each one change of the history, and the page selection. Owns relative→absolute rotation and position resolution so framework adapters never re-derive them.", "type": "module", diff --git a/packages/plugin/redaction/CHANGELOG.md b/packages/plugin/redaction/CHANGELOG.md index 83dedfafd..5895791a0 100644 --- a/packages/plugin/redaction/CHANGELOG.md +++ b/packages/plugin/redaction/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-redaction +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/redaction/package.json b/packages/plugin/redaction/package.json index 2403c2956..73bc89112 100644 --- a/packages/plugin/redaction/package.json +++ b/packages/plugin/redaction/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-redaction", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Document-scoped redaction: the destructive apply stage over redact annotation marks — pending queue view, collateral estimation, and the doc.redaction.apply wrapper. Marking itself rides the annotation plane.", "type": "module", diff --git a/packages/plugin/render/CHANGELOG.md b/packages/plugin/render/CHANGELOG.md index 97f48c4a1..01e1b17cd 100644 --- a/packages/plugin/render/CHANGELOG.md +++ b/packages/plugin/render/CHANGELOG.md @@ -1,5 +1,11 @@ # @embedpdf/plugin-render +## 3.0.0-next.22 + +### Minor Changes + +- [#980](https://github.com/embedpdf/embed-pdf-viewer/pull/980) by [@bobsingor](https://github.com/bobsingor) – `renderPage` renders part of a page: `rect`, in page space, cut at the page's edge (one that misses the page is `invalid-input`), sized by `width` or `scale`. `rotation` turns the picture. Either one renders for its caller alone, outside the layers' cache. New `snapshot` tool, added when the interaction plugin is there: drag a box on a page, or click for the whole page, and the box is held as the snapshot, `{ page, rect, image }`, its picture a PNG at `snapshot.scale` (default 2) pixels per point, turned as the page is shown, made smaller to fit 16 million pixels or the deployment's budget, and rendered once every change made before it is in. New `canSnapshot()` (`doc.render` and `doc.content.copy`), `getSnapshot()`, `clearSnapshot()`, `onSnapshotChanged`, the `snapshot` settings (`scale`, `box.fill`, `box.stroke`) and, on the host lens, `getSnapshotBox(page)`. + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/render/package.json b/packages/plugin/render/package.json index 70d986ceb..676416ae3 100644 --- a/packages/plugin/render/package.json +++ b/packages/plugin/render/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-render", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Document-scoped render capability: turns the engine DocumentHandle into an abortable renderPage(pageIndex, scale) → RGBA. The home for tiling.", "type": "module", diff --git a/packages/plugin/search/CHANGELOG.md b/packages/plugin/search/CHANGELOG.md index 86b85feed..ee21d1882 100644 --- a/packages/plugin/search/CHANGELOG.md +++ b/packages/plugin/search/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-search +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/search/package.json b/packages/plugin/search/package.json index 07c63d8c8..e71e91b8f 100644 --- a/packages/plugin/search/package.json +++ b/packages/plugin/search/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-search", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Document text search: drives the engine's budgeted search slices, converts match rects to content space, and integrates with the Stage for viewport-first scanning and reveal-on-navigate.", "type": "module", diff --git a/packages/plugin/selection/CHANGELOG.md b/packages/plugin/selection/CHANGELOG.md index 13732d3a5..67d4096db 100644 --- a/packages/plugin/selection/CHANGELOG.md +++ b/packages/plugin/selection/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-selection +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/selection/package.json b/packages/plugin/selection/package.json index a6542ac3a..864107098 100644 --- a/packages/plugin/selection/package.json +++ b/packages/plugin/selection/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-selection", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Text selection: reads engine text geometry (PDF y-up), bridges it to viewer content space, hit-tests glyphs, and renders highlight rects. The first client of the interaction hub.", "type": "module", diff --git a/packages/plugin/shell/CHANGELOG.md b/packages/plugin/shell/CHANGELOG.md index 76c8c7e9f..41cc09b4c 100644 --- a/packages/plugin/shell/CHANGELOG.md +++ b/packages/plugin/shell/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-shell +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/shell/package.json b/packages/plugin/shell/package.json index ef5029832..016e6939f 100644 --- a/packages/plugin/shell/package.json +++ b/packages/plugin/shell/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-shell", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Document-scoped workbench surface state: named surfaces (panels, modals, overlays) with exclusivity groups, plus the open-menu stack. Pure serializable state — commands drive it, and applications can snapshot and restore it. The app owns the DOM.", "type": "module", diff --git a/packages/plugin/signature/CHANGELOG.md b/packages/plugin/signature/CHANGELOG.md index 697ebfde0..472f3d16f 100644 --- a/packages/plugin/signature/CHANGELOG.md +++ b/packages/plugin/signature/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-signature +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/signature/package.json b/packages/plugin/signature/package.json index 7ab106f5b..3d79afdb0 100644 --- a/packages/plugin/signature/package.json +++ b/packages/plugin/signature/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-signature", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Document-scoped digital signing: sign a signature field with a mark (a stamp-library asset or bytes you bring) through a signer port, fill it visually without sealing, validate what is signed, and drop an armed mark onto a field. Owns the act, never a mark — marks are the stamp plugin's.", "type": "module", diff --git a/packages/plugin/stage/CHANGELOG.md b/packages/plugin/stage/CHANGELOG.md index 0e4526472..ca26115e2 100644 --- a/packages/plugin/stage/CHANGELOG.md +++ b/packages/plugin/stage/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-stage +## 3.0.0-next.22 + ## 3.0.0-next.21 ### Minor Changes diff --git a/packages/plugin/stage/package.json b/packages/plugin/stage/package.json index eb0fd0294..f53a0468e 100644 --- a/packages/plugin/stage/package.json +++ b/packages/plugin/stage/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-stage", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "The Stage plugin: one coordinate core (scroll + viewport + zoom + pan + spread) built on @embedpdf/core-stage. Pure intents & selectors; no DOM.", "type": "module", diff --git a/packages/plugin/stamp/CHANGELOG.md b/packages/plugin/stamp/CHANGELOG.md index 3f6348b5c..adfcb41dc 100644 --- a/packages/plugin/stamp/CHANGELOG.md +++ b/packages/plugin/stamp/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-stamp +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/stamp/package.json b/packages/plugin/stamp/package.json index 790f78cc1..f4493c471 100644 --- a/packages/plugin/stamp/package.json +++ b/packages/plugin/stamp/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-stamp", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Stamp libraries as PDFs: import Acrobat-compatible libraries (title + /Names /Pages registry), author assets from pages, rasters, or selected annotations, export the library as a complete PDF, and place stamps by pointer or by code through the annotation plugin.", "type": "module", diff --git a/packages/plugin/view-manager/CHANGELOG.md b/packages/plugin/view-manager/CHANGELOG.md index e56eb5c64..3e11d964f 100644 --- a/packages/plugin/view-manager/CHANGELOG.md +++ b/packages/plugin/view-manager/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/plugin-view-manager +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/plugin/view-manager/package.json b/packages/plugin/view-manager/package.json index cdb603017..8977d47cb 100644 --- a/packages/plugin/view-manager/package.json +++ b/packages/plugin/view-manager/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/plugin-view-manager", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Workspace-scoped plugin: arranges open documents into reorderable panes (views). Each view points at a document; the framework adapter renders one per view. Ships zero framework code.", "type": "module", diff --git a/packages/viewer/angular/CHANGELOG.md b/packages/viewer/angular/CHANGELOG.md index 345fcdbc9..acd9e6dab 100644 --- a/packages/viewer/angular/CHANGELOG.md +++ b/packages/viewer/angular/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/viewer-angular +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/viewer/angular/package.json b/packages/viewer/angular/package.json index 3c59a05b5..999aaa9da 100644 --- a/packages/viewer/angular/package.json +++ b/packages/viewer/angular/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/viewer-angular", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Angular wrapper for the full viewer: the epdf-pdf-viewer component around the embedpdf-viewer custom element, with template directives for your own components.", "type": "module", diff --git a/packages/viewer/chrome/CHANGELOG.md b/packages/viewer/chrome/CHANGELOG.md index b020081c2..30c5526f8 100644 --- a/packages/viewer/chrome/CHANGELOG.md +++ b/packages/viewer/chrome/CHANGELOG.md @@ -1,5 +1,19 @@ # @embedpdf/viewer-chrome +## 3.0.0-next.22 + +### Minor Changes + +- [#973](https://github.com/embedpdf/embed-pdf-viewer/pull/973) by [@bobsingor](https://github.com/bobsingor) – The style panel has a **Type** row for a selected highlight, underline, squiggly line or strikethrough, and for a square or circle: one button per kind it can become, each with its tool's icon. Picking one changes the annotation's kind in place, with its comment and replies. The `annotation.style.kind` label is translated into every viewer language. + +- [#971](https://github.com/embedpdf/embed-pdf-viewer/pull/971) by [@bobsingor](https://github.com/bobsingor) – The style panel offers no color for a shape's or line's stroke and for a form field's border, as it does for fills. + +- [#980](https://github.com/embedpdf/embed-pdf-viewer/pull/980) by [@bobsingor](https://github.com/bobsingor) – Take a Snapshot, in the document menu: drag a box over a page, or click a page for all of it, and a bar under the box copies the picture (`Ctrl`/`Cmd`+`C`) or saves it as a PNG; `Escape` lets it go. New commands `tool:snapshot`, `snapshot:copy`, `snapshot:save` and `snapshot:clear`, the `snapshot` bar, and the `snapshots` feature for `disable`. A PDF that forbids copying has no Take a Snapshot. In all fifteen languages. + +### Patch Changes + +- [#970](https://github.com/embedpdf/embed-pdf-viewer/pull/970) by [@bobsingor](https://github.com/bobsingor) – The style panel's font picker offers only the fonts new text can be written in. A document font that can't be chosen (one the PDF holds only the characters of, a Type 3 font, one licensed for viewing only) is no longer listed greyed; the box that has it still shows it as its font, with why it can't be chosen for another box. + ## 3.0.0-next.21 ### Minor Changes diff --git a/packages/viewer/chrome/package.json b/packages/viewer/chrome/package.json index 0ef87d945..caa69c3c1 100644 --- a/packages/viewer/chrome/package.json +++ b/packages/viewer/chrome/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/viewer-chrome", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "The full viewer's chrome - the one React implementation of the snippet UI (structure-only chrome schema, measured toolbar, Tailwind pixels). Published as an implementation dependency of @embedpdf/viewer; it is not a documented user-facing entry point for now.", "type": "module", diff --git a/packages/viewer/main/CHANGELOG.md b/packages/viewer/main/CHANGELOG.md index cc8c891c7..2ff01885e 100644 --- a/packages/viewer/main/CHANGELOG.md +++ b/packages/viewer/main/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/viewer +## 3.0.0-next.22 + ## 3.0.0-next.21 ### Minor Changes diff --git a/packages/viewer/main/package.json b/packages/viewer/main/package.json index 85d842b3c..bc7e5747d 100644 --- a/packages/viewer/main/package.json +++ b/packages/viewer/main/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/viewer", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "The full viewer, delivered: the custom element + EmbedPDF.init(). One Preact-compiled artifact of @embedpdf/viewer-chrome with the local wasm engine wired in — the thing the CDN serves and every framework wrapper wraps. Ships DIST only (the preact aliasing happens in THIS package's build), so consumers never compile the chrome.", "type": "module", diff --git a/packages/viewer/react/CHANGELOG.md b/packages/viewer/react/CHANGELOG.md index fc307be30..1525baf48 100644 --- a/packages/viewer/react/CHANGELOG.md +++ b/packages/viewer/react/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/viewer-react +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/viewer/react/package.json b/packages/viewer/react/package.json index 6321a1e94..0f5161a57 100644 --- a/packages/viewer/react/package.json +++ b/packages/viewer/react/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/viewer-react", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "React wrapper for the full viewer: the PDFViewer component around the embedpdf-viewer custom element. Your own components (ToolbarItem, Panel, Region) are light-DOM children the viewer shows in its slots while they stay in your React tree (your context, your CSS). No peer constraints beyond react>=18; the viewer inside is the Preact-compiled artifact.", "type": "module", diff --git a/packages/viewer/svelte/CHANGELOG.md b/packages/viewer/svelte/CHANGELOG.md index 7dcce0bab..e1a3e55d3 100644 --- a/packages/viewer/svelte/CHANGELOG.md +++ b/packages/viewer/svelte/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/viewer-svelte +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/viewer/svelte/package.json b/packages/viewer/svelte/package.json index 250d3fbfb..d911bbcb6 100644 --- a/packages/viewer/svelte/package.json +++ b/packages/viewer/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/viewer-svelte", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Svelte wrapper for the full viewer: the PDFViewer component around the embedpdf-viewer custom element. Your own components (ToolbarItem, Panel, Region) are light-DOM children the viewer shows in its slots while they stay in your Svelte tree (your context, your CSS). The viewer inside is the Preact-compiled artifact.", "type": "module", diff --git a/packages/viewer/vue/CHANGELOG.md b/packages/viewer/vue/CHANGELOG.md index a02f7fea4..2972c9c64 100644 --- a/packages/viewer/vue/CHANGELOG.md +++ b/packages/viewer/vue/CHANGELOG.md @@ -1,5 +1,7 @@ # @embedpdf/viewer-vue +## 3.0.0-next.22 + ## 3.0.0-next.21 ## 3.0.0-next.20 diff --git a/packages/viewer/vue/package.json b/packages/viewer/vue/package.json index fa865ce72..495978951 100644 --- a/packages/viewer/vue/package.json +++ b/packages/viewer/vue/package.json @@ -1,6 +1,6 @@ { "name": "@embedpdf/viewer-vue", - "version": "3.0.0-next.21", + "version": "3.0.0-next.22", "private": false, "description": "Vue wrapper for the full viewer: the PDFViewer component around the embedpdf-viewer custom element, with ToolbarItem, Panel and Region for your own components.", "type": "module",