@embedpdf/plugin-form 3.0.0-next.1 → 3.0.0-next.11

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.
@@ -0,0 +1,16 @@
1
+ //#region src/types.ts
2
+ /**
3
+ * The form capability token. Typed to the full {@link FormHostCapability}
4
+ * here (the package internals + the `/internal` entry use this view). The
5
+ * package root re-exports the SAME token narrowed to {@link FormCapability}.
6
+ */
7
+ const FormToken = (0, require("@embedpdf/core").createCapabilityToken)("form");
8
+ //#endregion
9
+ Object.defineProperty(exports, "FormToken", {
10
+ enumerable: true,
11
+ get: function() {
12
+ return FormToken;
13
+ }
14
+ });
15
+
16
+ //# sourceMappingURL=types-C1uIIYfn.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-C1uIIYfn.cjs","names":[],"sources":["../src/types.ts"],"sourcesContent":["import type {\n AnnotationRef,\n FormDataExport,\n FormDataFormat,\n FormFieldDTO,\n FormFieldFamily,\n FormFieldPatch,\n FormFieldRef,\n FormFieldValue,\n FormImportResult,\n FormRepairOptions,\n FormRepairResult,\n FormSetValueResult,\n FormEffect,\n FormEffectsResult,\n FormSnapshot,\n PdfActionTargetRef,\n WidgetAppearance,\n} from '@embedpdf/engine-core/runtime';\nimport type {\n ActionContext,\n ActionDiagnostic,\n ActionOrigin,\n ActionSubmitRequest,\n ActionTriggerResult,\n PdfAnnotationEventKind,\n SubmitIntent,\n} from '@embedpdf/plugin-actions/contract';\nimport type {\n ScriptBudget,\n ScriptDiagnostic,\n ScriptExecutionError,\n ScriptIdentity,\n ScriptUiEffect,\n} from '@embedpdf/core-acrojs';\nimport type { ScriptSandboxFactory } from '@embedpdf/core-js-sandbox';\nimport { createCapabilityToken } from '@embedpdf/core';\n\nimport type { FillItem } from './core/fill-items';\nimport type { Box, FieldKey, Model } from './core/model';\n\nexport interface FormState {\n model: Model;\n}\n\n/**\n * Standalone-realm configuration for `createFormScriptingHost` — stamp's\n * detached documents and direct controller tests. Viewer documents configure\n * scripting on `actionsPlugin({ javascript })` instead (D8), and every UI\n * effect/diagnostic surfaces through the actions port (D9).\n */\nexport interface FormScriptingOptions {\n /** Override the lazy QuickJS factory (tests or another isolated VM). */\n sandboxFactory?: ScriptSandboxFactory;\n /** Optional embedder identity fields layered over engine/JWT identity. */\n identity?: Partial<ScriptIdentity> | (() => Partial<ScriptIdentity>);\n /** Target document filename exposed as `this.documentFileName`. */\n fileName?: () => string;\n /** Injected deterministic transaction environment. */\n now?: () => number;\n utcOffsetMinutes?: () => number;\n randomSeed?: () => number;\n budget?: ScriptBudget;\n}\n\n/** The scripting switch moved to `actionsPlugin({ javascript })` (D8). */\nexport interface FormPluginOptions {}\n\nexport type FormCommitStatus = 'applied' | 'unchanged' | 'rejected' | 'failed';\n\nexport interface FormCommitResult {\n status: FormCommitStatus;\n scripted: boolean;\n effectsResult: FormEffectsResult | null;\n uiEffects: FormUiEffect[];\n diagnostics: ScriptDiagnostic[];\n error?: ScriptExecutionError;\n}\n\n/**\n * One DOM-free UI request produced by the curated Acrobat scripting surface.\n * `phase` says WHO asked: `'boot'` = a document-open script (Adobe's\n * version-check boilerplate lives here — embedders typically suppress these\n * nags), `'user'` = a script triggered by the user's own interaction (a\n * validation alert — show it).\n */\nexport type FormUiEffect = ScriptUiEffect & {\n /** WHO asked, script-model axis: `'boot'` = a name-tree/document-open boot\n * script, `'user'` = a runtime script. */\n phase: 'boot' | 'user';\n /**\n * The dispatch-origin axis (present when the script ran inside an action\n * dispatch): a lifecycle `/OpenAction` script is NOT a name-tree boot\n * script — the two axes are deliberately separate. Providers use this for\n * the default visibility matrix (suppress lifecycle alerts, block\n * non-user print); embedder handlers receive it and may decide otherwise.\n */\n origin?: ActionOrigin;\n};\n\n\n/** Input for {@link FormCapability.placeField}. */\nexport interface PlaceFieldInput {\n family: Exclude<FormFieldFamily, 'pushbutton' | 'signature' | 'unknown'>;\n pageObjectNumber: number;\n /** Content-space LOGICAL field box (no visual padding semantics). */\n box: Box;\n /** Widget styling in the engine vocabulary (`WidgetAppearance`). Convert a\n * tool's flat CSS defaults with `widgetAppearanceFromProps` from\n * `@embedpdf/plugin-annotation`. Omitted → the engine's bare defaults. */\n appearance?: WidgetAppearance;\n}\n\n/** What {@link FormCapability.placeField} created. */\nexport interface PlacedField {\n field: FormFieldDTO;\n /** The widget placed on the requested page (join key to the annotation\n * plane for auto-selection), or null when the engine reported none. */\n widget: FormFieldDTO['widgets'][number] | null;\n}\n\nexport type FormAction = { type: 'SET_MODEL'; model: Model };\n\n/**\n * The form plugin's public capability: the FIELD plane. Widgets stay\n * annotations (geometry/appearance live there); this surface owns values,\n * interchange, and the fill-mode projection.\n */\nexport interface FormCapability {\n /** The current reconciled form state (null until the first load lands). */\n snapshot(): FormSnapshot | null;\n /** Re-read the form from the engine (imports/repair/remote bursts). */\n refresh(): Promise<void>;\n\n /** Fill controls for one page — content-space, framework-agnostic. */\n fillItems(pageObjectNumber: number): FillItem[];\n /**\n * The fill control for ONE widget, by annotation object number — the join\n * the annotation-plane render layer uses (its RenderItem carries the live\n * box, so this item's `box` is advisory). Reference-stable per model change.\n * Null until the snapshot lands, or for families with no fill control.\n */\n fillItem(annotObjectNumber: number): FillItem | null;\n /** Make sure a page's widget geometry is loaded (idempotent, lazy). */\n ensureGeom(pageObjectNumber: number): void;\n\n field(key: FieldKey): FormFieldDTO | null;\n fieldForWidget(annotObjectNumber: number): FormFieldDTO | null;\n\n /** Commit a text value (call on blur/Enter — keystrokes stay local). */\n setText(key: FieldKey, value: string): Promise<void>;\n /** Toggle a checkbox/radio widget by its on-state; null clears the group. */\n toggle(key: FieldKey, onState: string | null): Promise<void>;\n /** Select choice options by export value. */\n choose(key: FieldKey, values: string[]): Promise<void>;\n /** Commit one originating-client value transaction, including K/V/C/F scripts when enabled. */\n commitValue(ref: FormFieldRef, value: FormFieldValue): Promise<FormCommitResult>;\n /**\n * Execute one widget's `/A` activation. With the actions plugin installed\n * the FULL tree is delegated to its dispatcher (Hide/ResetForm buttons work\n * even with scripting off) — `kind: 'dispatched'`; without it, today's\n * scripting-transaction path runs — `kind: 'form'`.\n */\n activateWidget(key: FieldKey, annotationRef: AnnotationRef): Promise<WidgetActivationResult>;\n /**\n * Report one widget DOM event (pointer enter/leave, down/up, focus/blur).\n * With the actions plugin present the matching `/AA` tree dispatches\n * (hover rides the shared coalescing pump; `/A` shadows `/AA U` per ISO\n * Table 197); without it — or without a tree — this is a cheap no-op.\n * Fire-and-forget by design: results surface via the actions events.\n */\n notifyWidgetEvent(key: FieldKey, ref: AnnotationRef, event: PdfAnnotationEventKind): void;\n /** Restore a field to its /DV default. */\n reset(key: FieldKey): Promise<void>;\n /** Raw engine passthrough for anything the sugar above doesn't cover. */\n setValue(ref: FormFieldRef, value: FormFieldValue): Promise<FormSetValueResult>;\n\n exportData(format?: FormDataFormat): Promise<FormDataExport>;\n importData(data: Uint8Array | ArrayBuffer, format?: FormDataFormat): Promise<FormImportResult>;\n repair(options?: FormRepairOptions): Promise<FormRepairResult>;\n\n // ── design mode (doc.forms.modify) ─────────────────────────────────────\n /**\n * Create a field of `family` with one styled widget at a content-space box\n * — the palette tools' commit, and the programmatic authoring entry (works\n * with NO annotation plugin: a pure `doc.forms` call). The box is clamped\n * to the page; sizing policy (click default vs drag rect) is the caller's.\n * The field gets a deterministic auto-name (`text_1`, …; rename in the\n * field panel). Resolves AFTER the annotation plane (when present) has\n * re-read the page, so the returned widget is immediately selectable.\n */\n placeField(input: PlaceFieldInput): Promise<PlacedField>;\n /** The page's content box (`{0,0,w,h}`) — page-bound placement math. */\n pageBox(pageObjectNumber: number): Box | null;\n /** Field-plane properties: name, required, options, default value. */\n updateField(key: FieldKey, patch: FormFieldPatch): Promise<void>;\n /** Delete the field and every widget of it (cascades on the page). */\n deleteField(key: FieldKey): Promise<void>;\n /** Unlink one widget: it stays as an inert annotation, the field survives. */\n detachWidget(key: FieldKey, annotObjectNumber: number): Promise<void>;\n\n /**\n * The twins (permissions.md): would the family's verbs succeed now for\n * this session? `canRead` — the form model hydrates at all (false = the\n * hydration gate left it empty by right); `canFill` — value writes\n * (`setText`/`toggle`/`choose`/`reset`; also fused into every\n * `FillItem.disabled`); `canDesign` — the field-design family\n * (`placeField`/`updateField`/`deleteField`/`detachWidget`).\n */\n canRead(): boolean;\n canFill(): boolean;\n canDesign(): boolean;\n}\n\n/** What one widget activation did — which world handled it (see\n * {@link FormCapability.activateWidget}). Both framework call sites ignore\n * the value today; chrome that cares can discriminate on `kind`. */\nexport type WidgetActivationResult =\n | { kind: 'form'; result: FormCommitResult }\n | { kind: 'dispatched'; result: ActionTriggerResult };\n\n/**\n * HOST lens — plugin-to-plugin only (the actions plugin's interim\n * `javascript` / `reset-form` executors). Import the token from\n * `@embedpdf/plugin-form/contract/host`, never from application code.\n */\nexport interface FormHostCapability extends FormCapability {\n /**\n * Execute one ResetForm action: resolve targets against the live snapshot\n * with the shared ISO selection (`null` = every field; a parent NAME\n * selects its descendants too; `exclude` = complement; a resolution\n * yielding zero refs never reaches the engine), reset as ONE engine\n * batch, refresh, then recalculate when scripting is enabled (Acrobat's\n * behaviour). `origin` (default `'user'`) is preserved through\n * recalculation surfacing — a lifecycle ResetForm's alerts stay lifecycle.\n */\n resetFormAction(\n fields: PdfActionTargetRef[] | null,\n exclude: boolean,\n origin?: ActionOrigin,\n ): Promise<FormCommitResult>;\n /**\n * The submit dataset resolver (Phase 4, D7): fresh engine read + the pure\n * ISO builder (`field-selection.ts`). Registered with the actions plugin\n * as THE resolver for both action-node and script submits.\n */\n resolveSubmitDataset(\n intent: SubmitIntent,\n ctx: ActionContext,\n diagnose: (diagnostic: ActionDiagnostic) => void,\n ): Promise<ActionSubmitRequest>;\n /** The form DOCUMENT-commit sink (D3): engine `applyEffects` + snapshot\n * reconciliation. Sink contract: never throws, never enqueues, never\n * touches the script host — callable under a held host transaction. */\n commitScriptFormEffects(effects: FormEffect[]): Promise<FormEffectsResult>;\n}\n\n/**\n * The form capability token. Typed to the full {@link FormHostCapability}\n * here (the package internals + the `/internal` entry use this view). The\n * package root re-exports the SAME token narrowed to {@link FormCapability}.\n */\nexport const FormToken = createCapabilityToken<FormHostCapability>('form');\n\nexport type { FillItem } from './core/fill-items';\nexport type { Box, FieldKey } from './core/model';\n"],"mappings":";;;;;;AAsQA,MAAa,aAAA,2BAAA,CAAA,CAAA,sBAAA,CAAsD,MAAM"}
@@ -0,0 +1,12 @@
1
+ import { createCapabilityToken } from "@embedpdf/core";
2
+ //#region src/types.ts
3
+ /**
4
+ * The form capability token. Typed to the full {@link FormHostCapability}
5
+ * here (the package internals + the `/internal` entry use this view). The
6
+ * package root re-exports the SAME token narrowed to {@link FormCapability}.
7
+ */
8
+ const FormToken = createCapabilityToken("form");
9
+ //#endregion
10
+ export { FormToken as t };
11
+
12
+ //# sourceMappingURL=types-DkQmmcTG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-DkQmmcTG.js","names":[],"sources":["../src/types.ts"],"sourcesContent":["import type {\n AnnotationRef,\n FormDataExport,\n FormDataFormat,\n FormFieldDTO,\n FormFieldFamily,\n FormFieldPatch,\n FormFieldRef,\n FormFieldValue,\n FormImportResult,\n FormRepairOptions,\n FormRepairResult,\n FormSetValueResult,\n FormEffect,\n FormEffectsResult,\n FormSnapshot,\n PdfActionTargetRef,\n WidgetAppearance,\n} from '@embedpdf/engine-core/runtime';\nimport type {\n ActionContext,\n ActionDiagnostic,\n ActionOrigin,\n ActionSubmitRequest,\n ActionTriggerResult,\n PdfAnnotationEventKind,\n SubmitIntent,\n} from '@embedpdf/plugin-actions/contract';\nimport type {\n ScriptBudget,\n ScriptDiagnostic,\n ScriptExecutionError,\n ScriptIdentity,\n ScriptUiEffect,\n} from '@embedpdf/core-acrojs';\nimport type { ScriptSandboxFactory } from '@embedpdf/core-js-sandbox';\nimport { createCapabilityToken } from '@embedpdf/core';\n\nimport type { FillItem } from './core/fill-items';\nimport type { Box, FieldKey, Model } from './core/model';\n\nexport interface FormState {\n model: Model;\n}\n\n/**\n * Standalone-realm configuration for `createFormScriptingHost` — stamp's\n * detached documents and direct controller tests. Viewer documents configure\n * scripting on `actionsPlugin({ javascript })` instead (D8), and every UI\n * effect/diagnostic surfaces through the actions port (D9).\n */\nexport interface FormScriptingOptions {\n /** Override the lazy QuickJS factory (tests or another isolated VM). */\n sandboxFactory?: ScriptSandboxFactory;\n /** Optional embedder identity fields layered over engine/JWT identity. */\n identity?: Partial<ScriptIdentity> | (() => Partial<ScriptIdentity>);\n /** Target document filename exposed as `this.documentFileName`. */\n fileName?: () => string;\n /** Injected deterministic transaction environment. */\n now?: () => number;\n utcOffsetMinutes?: () => number;\n randomSeed?: () => number;\n budget?: ScriptBudget;\n}\n\n/** The scripting switch moved to `actionsPlugin({ javascript })` (D8). */\nexport interface FormPluginOptions {}\n\nexport type FormCommitStatus = 'applied' | 'unchanged' | 'rejected' | 'failed';\n\nexport interface FormCommitResult {\n status: FormCommitStatus;\n scripted: boolean;\n effectsResult: FormEffectsResult | null;\n uiEffects: FormUiEffect[];\n diagnostics: ScriptDiagnostic[];\n error?: ScriptExecutionError;\n}\n\n/**\n * One DOM-free UI request produced by the curated Acrobat scripting surface.\n * `phase` says WHO asked: `'boot'` = a document-open script (Adobe's\n * version-check boilerplate lives here — embedders typically suppress these\n * nags), `'user'` = a script triggered by the user's own interaction (a\n * validation alert — show it).\n */\nexport type FormUiEffect = ScriptUiEffect & {\n /** WHO asked, script-model axis: `'boot'` = a name-tree/document-open boot\n * script, `'user'` = a runtime script. */\n phase: 'boot' | 'user';\n /**\n * The dispatch-origin axis (present when the script ran inside an action\n * dispatch): a lifecycle `/OpenAction` script is NOT a name-tree boot\n * script — the two axes are deliberately separate. Providers use this for\n * the default visibility matrix (suppress lifecycle alerts, block\n * non-user print); embedder handlers receive it and may decide otherwise.\n */\n origin?: ActionOrigin;\n};\n\n\n/** Input for {@link FormCapability.placeField}. */\nexport interface PlaceFieldInput {\n family: Exclude<FormFieldFamily, 'pushbutton' | 'signature' | 'unknown'>;\n pageObjectNumber: number;\n /** Content-space LOGICAL field box (no visual padding semantics). */\n box: Box;\n /** Widget styling in the engine vocabulary (`WidgetAppearance`). Convert a\n * tool's flat CSS defaults with `widgetAppearanceFromProps` from\n * `@embedpdf/plugin-annotation`. Omitted → the engine's bare defaults. */\n appearance?: WidgetAppearance;\n}\n\n/** What {@link FormCapability.placeField} created. */\nexport interface PlacedField {\n field: FormFieldDTO;\n /** The widget placed on the requested page (join key to the annotation\n * plane for auto-selection), or null when the engine reported none. */\n widget: FormFieldDTO['widgets'][number] | null;\n}\n\nexport type FormAction = { type: 'SET_MODEL'; model: Model };\n\n/**\n * The form plugin's public capability: the FIELD plane. Widgets stay\n * annotations (geometry/appearance live there); this surface owns values,\n * interchange, and the fill-mode projection.\n */\nexport interface FormCapability {\n /** The current reconciled form state (null until the first load lands). */\n snapshot(): FormSnapshot | null;\n /** Re-read the form from the engine (imports/repair/remote bursts). */\n refresh(): Promise<void>;\n\n /** Fill controls for one page — content-space, framework-agnostic. */\n fillItems(pageObjectNumber: number): FillItem[];\n /**\n * The fill control for ONE widget, by annotation object number — the join\n * the annotation-plane render layer uses (its RenderItem carries the live\n * box, so this item's `box` is advisory). Reference-stable per model change.\n * Null until the snapshot lands, or for families with no fill control.\n */\n fillItem(annotObjectNumber: number): FillItem | null;\n /** Make sure a page's widget geometry is loaded (idempotent, lazy). */\n ensureGeom(pageObjectNumber: number): void;\n\n field(key: FieldKey): FormFieldDTO | null;\n fieldForWidget(annotObjectNumber: number): FormFieldDTO | null;\n\n /** Commit a text value (call on blur/Enter — keystrokes stay local). */\n setText(key: FieldKey, value: string): Promise<void>;\n /** Toggle a checkbox/radio widget by its on-state; null clears the group. */\n toggle(key: FieldKey, onState: string | null): Promise<void>;\n /** Select choice options by export value. */\n choose(key: FieldKey, values: string[]): Promise<void>;\n /** Commit one originating-client value transaction, including K/V/C/F scripts when enabled. */\n commitValue(ref: FormFieldRef, value: FormFieldValue): Promise<FormCommitResult>;\n /**\n * Execute one widget's `/A` activation. With the actions plugin installed\n * the FULL tree is delegated to its dispatcher (Hide/ResetForm buttons work\n * even with scripting off) — `kind: 'dispatched'`; without it, today's\n * scripting-transaction path runs — `kind: 'form'`.\n */\n activateWidget(key: FieldKey, annotationRef: AnnotationRef): Promise<WidgetActivationResult>;\n /**\n * Report one widget DOM event (pointer enter/leave, down/up, focus/blur).\n * With the actions plugin present the matching `/AA` tree dispatches\n * (hover rides the shared coalescing pump; `/A` shadows `/AA U` per ISO\n * Table 197); without it — or without a tree — this is a cheap no-op.\n * Fire-and-forget by design: results surface via the actions events.\n */\n notifyWidgetEvent(key: FieldKey, ref: AnnotationRef, event: PdfAnnotationEventKind): void;\n /** Restore a field to its /DV default. */\n reset(key: FieldKey): Promise<void>;\n /** Raw engine passthrough for anything the sugar above doesn't cover. */\n setValue(ref: FormFieldRef, value: FormFieldValue): Promise<FormSetValueResult>;\n\n exportData(format?: FormDataFormat): Promise<FormDataExport>;\n importData(data: Uint8Array | ArrayBuffer, format?: FormDataFormat): Promise<FormImportResult>;\n repair(options?: FormRepairOptions): Promise<FormRepairResult>;\n\n // ── design mode (doc.forms.modify) ─────────────────────────────────────\n /**\n * Create a field of `family` with one styled widget at a content-space box\n * — the palette tools' commit, and the programmatic authoring entry (works\n * with NO annotation plugin: a pure `doc.forms` call). The box is clamped\n * to the page; sizing policy (click default vs drag rect) is the caller's.\n * The field gets a deterministic auto-name (`text_1`, …; rename in the\n * field panel). Resolves AFTER the annotation plane (when present) has\n * re-read the page, so the returned widget is immediately selectable.\n */\n placeField(input: PlaceFieldInput): Promise<PlacedField>;\n /** The page's content box (`{0,0,w,h}`) — page-bound placement math. */\n pageBox(pageObjectNumber: number): Box | null;\n /** Field-plane properties: name, required, options, default value. */\n updateField(key: FieldKey, patch: FormFieldPatch): Promise<void>;\n /** Delete the field and every widget of it (cascades on the page). */\n deleteField(key: FieldKey): Promise<void>;\n /** Unlink one widget: it stays as an inert annotation, the field survives. */\n detachWidget(key: FieldKey, annotObjectNumber: number): Promise<void>;\n\n /**\n * The twins (permissions.md): would the family's verbs succeed now for\n * this session? `canRead` — the form model hydrates at all (false = the\n * hydration gate left it empty by right); `canFill` — value writes\n * (`setText`/`toggle`/`choose`/`reset`; also fused into every\n * `FillItem.disabled`); `canDesign` — the field-design family\n * (`placeField`/`updateField`/`deleteField`/`detachWidget`).\n */\n canRead(): boolean;\n canFill(): boolean;\n canDesign(): boolean;\n}\n\n/** What one widget activation did — which world handled it (see\n * {@link FormCapability.activateWidget}). Both framework call sites ignore\n * the value today; chrome that cares can discriminate on `kind`. */\nexport type WidgetActivationResult =\n | { kind: 'form'; result: FormCommitResult }\n | { kind: 'dispatched'; result: ActionTriggerResult };\n\n/**\n * HOST lens — plugin-to-plugin only (the actions plugin's interim\n * `javascript` / `reset-form` executors). Import the token from\n * `@embedpdf/plugin-form/contract/host`, never from application code.\n */\nexport interface FormHostCapability extends FormCapability {\n /**\n * Execute one ResetForm action: resolve targets against the live snapshot\n * with the shared ISO selection (`null` = every field; a parent NAME\n * selects its descendants too; `exclude` = complement; a resolution\n * yielding zero refs never reaches the engine), reset as ONE engine\n * batch, refresh, then recalculate when scripting is enabled (Acrobat's\n * behaviour). `origin` (default `'user'`) is preserved through\n * recalculation surfacing — a lifecycle ResetForm's alerts stay lifecycle.\n */\n resetFormAction(\n fields: PdfActionTargetRef[] | null,\n exclude: boolean,\n origin?: ActionOrigin,\n ): Promise<FormCommitResult>;\n /**\n * The submit dataset resolver (Phase 4, D7): fresh engine read + the pure\n * ISO builder (`field-selection.ts`). Registered with the actions plugin\n * as THE resolver for both action-node and script submits.\n */\n resolveSubmitDataset(\n intent: SubmitIntent,\n ctx: ActionContext,\n diagnose: (diagnostic: ActionDiagnostic) => void,\n ): Promise<ActionSubmitRequest>;\n /** The form DOCUMENT-commit sink (D3): engine `applyEffects` + snapshot\n * reconciliation. Sink contract: never throws, never enqueues, never\n * touches the script host — callable under a held host transaction. */\n commitScriptFormEffects(effects: FormEffect[]): Promise<FormEffectsResult>;\n}\n\n/**\n * The form capability token. Typed to the full {@link FormHostCapability}\n * here (the package internals + the `/internal` entry use this view). The\n * package root re-exports the SAME token narrowed to {@link FormCapability}.\n */\nexport const FormToken = createCapabilityToken<FormHostCapability>('form');\n\nexport type { FillItem } from './core/fill-items';\nexport type { Box, FieldKey } from './core/model';\n"],"mappings":";;;;;;;AAsQA,MAAa,YAAY,sBAA0C,MAAM"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@embedpdf/plugin-form",
3
- "version": "3.0.0-next.1",
3
+ "version": "3.0.0-next.11",
4
4
  "private": false,
5
5
  "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.",
6
6
  "type": "module",
@@ -12,24 +12,41 @@
12
12
  "import": "./dist/index.js",
13
13
  "require": "./dist/index.cjs"
14
14
  },
15
+ "./contract": {
16
+ "import": "./dist/contract.js",
17
+ "require": "./dist/contract.cjs"
18
+ },
19
+ "./contract/host": {
20
+ "import": "./dist/contract/host.js",
21
+ "require": "./dist/contract/host.cjs"
22
+ },
23
+ "./internal": {
24
+ "import": "./dist/internal.js",
25
+ "require": "./dist/internal.cjs"
26
+ },
27
+ "./scripting": {
28
+ "import": "./dist/scripting.js",
29
+ "require": "./dist/scripting.cjs"
30
+ },
15
31
  "./package.json": "./package.json"
16
32
  },
17
33
  "files": [
18
34
  "dist"
19
35
  ],
20
36
  "dependencies": {
21
- "@embedpdf/core-acrojs": "3.0.0-next.1",
22
- "@embedpdf/core-js-sandbox": "3.0.0-next.1",
23
- "@embedpdf/plugin-interaction": "3.0.0-next.1",
24
- "@embedpdf/core": "3.0.0-next.1",
25
- "@embedpdf/plugin-annotation": "3.0.0-next.1",
26
- "@embedpdf/engine-core": "3.0.0-next.1"
37
+ "@embedpdf/core-acrojs": "3.0.0-next.11",
38
+ "@embedpdf/core-js-sandbox": "3.0.0-next.11",
39
+ "@embedpdf/core": "3.0.0-next.11",
40
+ "@embedpdf/plugin-interaction": "3.0.0-next.11",
41
+ "@embedpdf/plugin-annotation": "3.0.0-next.11",
42
+ "@embedpdf/engine-core": "3.0.0-next.11",
43
+ "@embedpdf/plugin-actions": "3.0.0-next.11"
27
44
  },
28
45
  "devDependencies": {
29
46
  "typescript": "^5.0.0",
30
47
  "vitest": "^2.1.9",
31
48
  "@embedpdf/tooling-build": "0.0.0",
32
- "@embedpdf/engine": "3.0.0-next.1"
49
+ "@embedpdf/engine": "3.0.0-next.11"
33
50
  },
34
51
  "license": "Apache-2.0",
35
52
  "sideEffects": false,