@paged-media/plugin-sdk 0.2.48-canary.0 → 0.2.50-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -446,6 +446,20 @@ interface PagesBackend {
446
446
  activePage(): string | null;
447
447
  onDidChangeActivePage(listener: (pageId: string | null) => void): () => void;
448
448
  }
449
+ /**
450
+ * The backend the editor injects to back `host.viewport.revealText`. The
451
+ * editor owns the camera, the page layout and the text selection, so it
452
+ * locates the range on the page, moves there and (optionally) selects it.
453
+ * No backend → `revealText` answers false and
454
+ * `supports("viewport.revealText@1")` is false.
455
+ */
456
+ interface TextRevealBackend {
457
+ revealText(range: {
458
+ storyId: string;
459
+ start: number;
460
+ end: number;
461
+ }, select: boolean): boolean | Promise<boolean>;
462
+ }
449
463
  /** The SHARED cross-plugin data-provider registry (paged.data §7.1 / D-09). The
450
464
  * editor creates ONE (`createDataProviderRegistry`) and injects the SAME
451
465
  * instance into every plugin host, so a provider plugin and a consumer plugin
@@ -704,6 +718,9 @@ interface CreateBundleHostOptions {
704
718
  * `activePage`, `onDidChangeActivePage`). When present,
705
719
  * `supports("viewport.pages@1")` is true. */
706
720
  pages?: PagesBackend;
721
+ /** Text navigation for `host.viewport.revealText`. When present,
722
+ * `supports("viewport.revealText@1")` is true. */
723
+ text?: TextRevealBackend;
707
724
  /** Host-provided WORKER backend (K-3 / S-07 / I-02). When present,
708
725
  * `host.workers.spawn` resolves a declared bundle-relative module +
709
726
  * constructs a host-owned `Worker` through it (capability-gated,
@@ -1023,6 +1040,10 @@ interface HeadlessHost {
1023
1040
  /** Load an IDML package into the headless document. Resolves to the
1024
1041
  * loaded page ids (or throws on a parse failure). */
1025
1042
  load(idml: Uint8Array): Promise<string[]>;
1043
+ /** Start a new blank document: one page of the given size in points,
1044
+ * laid out with `defaultFont` when one was given. Resolves to its page
1045
+ * ids, fanned out to subscribers like `load`. */
1046
+ newBlank(widthPt: number, heightPt: number): Promise<string[]>;
1026
1047
  /** ADR 324 — the core EXPORT door the Node CLI (and a conformance test)
1027
1048
  * calls: the active document as `.paged` (`exportPaged`), `.idml`
1028
1049
  * (`exportIdml`, `linkBase` for relative links) or PDF (the
@@ -1576,4 +1597,4 @@ declare function contributeObjectType(host: BundleHost, contribution: ObjectType
1576
1597
  */
1577
1598
  declare function contributeBindingProvider(host: BundleHost, contextType: string, provider: BindingProvider): BindingProviderHandle;
1578
1599
 
1579
- export { API_VERSION, ASSET_BUDGETS, BLOB_BUDGETS, type BindingProviderBackend, type BlobStore, type BundleAssetProvider, type BundleAssetSource, type BundleHostHandle, type BundleTrust, CANVAS_WASM_PKG, CLICK_DRAG_THRESHOLD_PX, CORE_CATALOG_ROWS, CORE_COMMAND_CREATES, CORE_COMMAND_EXCLUSIONS, CORE_COMMAND_OPS, CORE_COMMAND_PREFIX, CORE_PATHS, CORE_PATH_ALIASES, CORE_WIRE_OPS, type ClipboardBackend, type ConsentBackend, type CoreCatalogRow, type CoreCreatePlan, type CoreObjects, type CorePathRow, type CorePathScope, type CorePlan, type CoreRow71, type CoreWireOpRow, type CreateBundleHostOptions, type CreateCoreObjectsOptions, type CreateObjectRegistryOptions, type DataProviderBackend, type DiagnosticsSink, DisposableStore, type DocumentsBackend, FALLBACK_WIDGETS, FRAME_KIND_WORDS, HOST_FEATURES, type HarnessOptions, type HeadlessCanvasWorker, type HeadlessHost, type HeadlessHostHandle, type HostObjectAnswer, type HostObjectCall, type JournalSink, type LoadBundleWasmOptions, type LoadHeadlessEngineOptions, type LoadedBundle, type LoadedBundleWasm, type LoadedEngine, type NativeDocumentBackend, OBJECT_MODEL_PROTOCOL, type ObjectListRow, type ObjectModelRegistration, type ObjectRegistry, type PageDrag, type PagesBackend, type PanelSchemaIssue, type ParsedSelector, PluginApiNotImplemented, PluginCapabilityError, type PropertyRowOptions, type PublishObjectListOptions, ROW_PATH, type RecordableAssetSource, type RecordedContribution, type RecordedFontFaceRequest, type RegisteredBindingProvider, type ScriptRunResult, type ScriptSend, type SecretStoreBackend, type SeededFace, type SelectorHead, type SelectorPredicate, type SelectorStep, type ShellBackend, type SpawnedWorker, type StorageBacking, type TextCaretBackend, type ToolSettingsBackend, VALUE_TYPE_KINDS, type ValidatePanelSchemaOptions, WASM_BUDGETS, WORKER_BUDGETS, type WillSaveBackend, type WorkerBackend, addressKindOf, answerHostObjects, answerHostObjectsRound, applyDefaults, applyValueEdit, assetFromBytes, beginPageDrag, checkSchemaRows, checkValueType, codeOfEngineError, coerceValue, commitAndSelect, contributeBindingProvider, contributeEditContext, contributeObjectType, contributePanel, contributeSchemaPanel, contributeTool, coreCommandInfos, coreSchema71, createBindingProviderRegistry, createBundleHost, createCoreObjects, createDataProviderRegistry, createHeadlessHost, createObjectRegistry, createRecordableAssetSource, defaultValueOf, defineBundle, editValue, endLocalFor, escapeLabelValue, findRow, formatAddress, fromElementId, inMemoryToolSettings, inMemoryWillSave, isCoreCommand, isPropertyRow, loadBundle, loadBundleWasm, loadHeadlessEngine, makeSchemaPanelComponent, normalizeAddress, normalizeCoreType, parseAddress, parseLength, parseSelector, planValueEdit, propertyRow, propertyRows, propertyRowsOf, protocolFromVersion, publishObjectList, pxToPt, readVendoredWireVersion, resolveCanvasWasm, resolveGate, rowPathOf, runScriptWithObjects, satisfiesApiVersion, selectorKind, toDisposable, toElementId, validatePanelSchema, validateValue };
1600
+ export { API_VERSION, ASSET_BUDGETS, BLOB_BUDGETS, type BindingProviderBackend, type BlobStore, type BundleAssetProvider, type BundleAssetSource, type BundleHostHandle, type BundleTrust, CANVAS_WASM_PKG, CLICK_DRAG_THRESHOLD_PX, CORE_CATALOG_ROWS, CORE_COMMAND_CREATES, CORE_COMMAND_EXCLUSIONS, CORE_COMMAND_OPS, CORE_COMMAND_PREFIX, CORE_PATHS, CORE_PATH_ALIASES, CORE_WIRE_OPS, type ClipboardBackend, type ConsentBackend, type CoreCatalogRow, type CoreCreatePlan, type CoreObjects, type CorePathRow, type CorePathScope, type CorePlan, type CoreRow71, type CoreWireOpRow, type CreateBundleHostOptions, type CreateCoreObjectsOptions, type CreateObjectRegistryOptions, type DataProviderBackend, type DiagnosticsSink, DisposableStore, type DocumentsBackend, FALLBACK_WIDGETS, FRAME_KIND_WORDS, HOST_FEATURES, type HarnessOptions, type HeadlessCanvasWorker, type HeadlessHost, type HeadlessHostHandle, type HostObjectAnswer, type HostObjectCall, type JournalSink, type LoadBundleWasmOptions, type LoadHeadlessEngineOptions, type LoadedBundle, type LoadedBundleWasm, type LoadedEngine, type NativeDocumentBackend, OBJECT_MODEL_PROTOCOL, type ObjectListRow, type ObjectModelRegistration, type ObjectRegistry, type PageDrag, type PagesBackend, type PanelSchemaIssue, type ParsedSelector, PluginApiNotImplemented, PluginCapabilityError, type PropertyRowOptions, type PublishObjectListOptions, ROW_PATH, type RecordableAssetSource, type RecordedContribution, type RecordedFontFaceRequest, type RegisteredBindingProvider, type ScriptRunResult, type ScriptSend, type SecretStoreBackend, type SeededFace, type SelectorHead, type SelectorPredicate, type SelectorStep, type ShellBackend, type SpawnedWorker, type StorageBacking, type TextCaretBackend, type TextRevealBackend, type ToolSettingsBackend, VALUE_TYPE_KINDS, type ValidatePanelSchemaOptions, WASM_BUDGETS, WORKER_BUDGETS, type WillSaveBackend, type WorkerBackend, addressKindOf, answerHostObjects, answerHostObjectsRound, applyDefaults, applyValueEdit, assetFromBytes, beginPageDrag, checkSchemaRows, checkValueType, codeOfEngineError, coerceValue, commitAndSelect, contributeBindingProvider, contributeEditContext, contributeObjectType, contributePanel, contributeSchemaPanel, contributeTool, coreCommandInfos, coreSchema71, createBindingProviderRegistry, createBundleHost, createCoreObjects, createDataProviderRegistry, createHeadlessHost, createObjectRegistry, createRecordableAssetSource, defaultValueOf, defineBundle, editValue, endLocalFor, escapeLabelValue, findRow, formatAddress, fromElementId, inMemoryToolSettings, inMemoryWillSave, isCoreCommand, isPropertyRow, loadBundle, loadBundleWasm, loadHeadlessEngine, makeSchemaPanelComponent, normalizeAddress, normalizeCoreType, parseAddress, parseLength, parseSelector, planValueEdit, propertyRow, propertyRows, propertyRowsOf, protocolFromVersion, publishObjectList, pxToPt, readVendoredWireVersion, resolveCanvasWasm, resolveGate, rowPathOf, runScriptWithObjects, satisfiesApiVersion, selectorKind, toDisposable, toElementId, validatePanelSchema, validateValue };
package/dist/index.js CHANGED
@@ -11717,6 +11717,23 @@ function createBundleHost(getEditor, manifest, options) {
11717
11717
  });
11718
11718
  }
11719
11719
  return store.add(toDisposable(pagesBackend.onDidChangeActivePage(listener)));
11720
+ },
11721
+ async revealText(range, opts) {
11722
+ const textBackend = options?.text;
11723
+ if (!textBackend || !range || typeof range.storyId !== "string" || range.storyId === "") {
11724
+ return false;
11725
+ }
11726
+ const start = Math.trunc(Number(range.start));
11727
+ const end = Math.trunc(Number(range.end));
11728
+ if (!Number.isFinite(start) || !Number.isFinite(end) || start < 0 || end < start) {
11729
+ return false;
11730
+ }
11731
+ const select = opts?.select !== false;
11732
+ try {
11733
+ return await textBackend.revealText({ storyId: range.storyId, start, end }, select) === true;
11734
+ } catch {
11735
+ return false;
11736
+ }
11720
11737
  }
11721
11738
  };
11722
11739
  const render = {
@@ -12803,6 +12820,9 @@ function createBundleHost(getEditor, manifest, options) {
12803
12820
  if (options?.pages) {
12804
12821
  featureSet.add("viewport.pages@1");
12805
12822
  }
12823
+ if (options?.text) {
12824
+ featureSet.add("viewport.revealText@1");
12825
+ }
12806
12826
  if (options?.documents) {
12807
12827
  featureSet.add("documents.exportPaged@1");
12808
12828
  featureSet.add("documents.open@1");
@@ -13668,6 +13688,18 @@ async function createHeadlessHost(options = {}) {
13668
13688
  }
13669
13689
  throw loadFailure(reply);
13670
13690
  },
13691
+ async newBlank(widthPt, heightPt) {
13692
+ const reply = await editor.client.send({
13693
+ kind: "newBlankDocument",
13694
+ payload: { widthPt, heightPt, font: options.defaultFont ? Array.from(options.defaultFont) : null }
13695
+ });
13696
+ if (reply.kind === "documentLoaded") {
13697
+ objects.core?.invalidate();
13698
+ fanOut(reply);
13699
+ return reply.payload.pageIds;
13700
+ }
13701
+ throw loadFailure(reply);
13702
+ },
13671
13703
  async exportDocument(format, exportOptions = {}) {
13672
13704
  const send = (kind, payload) => editor.client.send({ kind, payload });
13673
13705
  if (format === "paged") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paged-media/plugin-sdk",
3
- "version": "0.2.48-canary.0",
3
+ "version": "0.2.50-canary.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -11,7 +11,7 @@
11
11
  }
12
12
  },
13
13
  "dependencies": {
14
- "@paged-media/plugin-api": "0.2.48-canary.0"
14
+ "@paged-media/plugin-api": "0.2.49-canary.0"
15
15
  },
16
16
  "peerDependencies": {
17
17
  "react": "^18.3.0"