payload-live-preview 2.2.1 → 2.3.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.
Files changed (104) hide show
  1. package/README.md +21 -18
  2. package/dist/adapters/astro/PreviewBoundary.astro +17 -4
  3. package/dist/adapters/astro/RichText.astro +13 -2
  4. package/dist/adapters/astro/index.d.ts +7 -7
  5. package/dist/adapters/astro/index.js +1 -1
  6. package/dist/adapters/astro/index.js.map +1 -1
  7. package/dist/adapters/astro/middleware-entry.d.ts +3 -3
  8. package/dist/adapters/astro/middleware-entry.js +1 -1
  9. package/dist/adapters/astro/middleware-entry.js.map +1 -1
  10. package/dist/adapters/nextjs/index.d.ts +2 -2
  11. package/dist/adapters/nextjs/index.js +1 -1
  12. package/dist/adapters/nextjs/index.js.map +1 -1
  13. package/dist/adapters/nuxt/index.d.ts +4 -4
  14. package/dist/adapters/nuxt/index.js +1 -1
  15. package/dist/adapters/nuxt/index.js.map +1 -1
  16. package/dist/adapters/nuxt/module.d.ts +1 -1
  17. package/dist/adapters/react/index.d.ts +2 -2
  18. package/dist/adapters/react/index.js +1 -1
  19. package/dist/adapters/react/index.js.map +1 -1
  20. package/dist/adapters/sveltekit/index.d.ts +5 -5
  21. package/dist/adapters/sveltekit/index.js +1 -1
  22. package/dist/adapters/sveltekit/index.js.map +1 -1
  23. package/dist/adapters/vue/index.d.ts +2 -2
  24. package/dist/adapters/vue/index.js +1 -1
  25. package/dist/adapters/vue/index.js.map +1 -1
  26. package/dist/client.cjs +1 -1
  27. package/dist/client.cjs.map +1 -1
  28. package/dist/client.d.cts +15 -3
  29. package/dist/client.d.ts +15 -3
  30. package/dist/client.js +1 -1
  31. package/dist/client.js.map +1 -1
  32. package/dist/codegen-astro.js +1 -1
  33. package/dist/codegen-astro.js.map +1 -1
  34. package/dist/codegen-cli.js +1 -1
  35. package/dist/codegen-cli.js.map +1 -1
  36. package/dist/codegen.cjs +1 -1
  37. package/dist/codegen.cjs.map +1 -1
  38. package/dist/codegen.js +1 -1
  39. package/dist/codegen.js.map +1 -1
  40. package/dist/core.cjs +1 -1
  41. package/dist/core.cjs.map +1 -1
  42. package/dist/core.d.cts +141 -6
  43. package/dist/core.d.ts +141 -6
  44. package/dist/core.js +1 -1
  45. package/dist/core.js.map +1 -1
  46. package/dist/doctor-cli.d.ts +1 -1
  47. package/dist/doctor-cli.js +1 -1
  48. package/dist/doctor-cli.js.map +1 -1
  49. package/dist/doctor.d.ts +2 -2
  50. package/dist/doctor.js +1 -1
  51. package/dist/doctor.js.map +1 -1
  52. package/dist/{document-session-Bkd181PV.d.ts → document-session-BuYuO3ae.d.ts} +27 -2
  53. package/dist/{fragment-endpoint-DGGLIijM.d.ts → fragment-endpoint-CQE_7MKi.d.ts} +5 -3
  54. package/dist/fragment.cjs +1 -1
  55. package/dist/fragment.cjs.map +1 -1
  56. package/dist/fragment.d.cts +6 -2
  57. package/dist/fragment.d.ts +6 -2
  58. package/dist/fragment.js +1 -1
  59. package/dist/fragment.js.map +1 -1
  60. package/dist/index.cjs +1 -1
  61. package/dist/index.cjs.map +1 -1
  62. package/dist/index.d.cts +79 -16
  63. package/dist/index.d.ts +79 -16
  64. package/dist/index.js +1 -1
  65. package/dist/index.js.map +1 -1
  66. package/dist/lean.cjs +1 -1
  67. package/dist/lean.cjs.map +1 -1
  68. package/dist/lean.js +1 -1
  69. package/dist/lean.js.map +1 -1
  70. package/dist/lexical.cjs +1 -1
  71. package/dist/lexical.cjs.map +1 -1
  72. package/dist/lexical.d.cts +16 -4
  73. package/dist/lexical.d.ts +16 -4
  74. package/dist/lexical.js +1 -1
  75. package/dist/lexical.js.map +1 -1
  76. package/dist/{locals-zz2gi9dj.d.ts → locals-CyzDKfKU.d.ts} +7 -1
  77. package/dist/{middleware-CI-UTf6R.d.ts → middleware-Dnt6u4nF.d.ts} +2 -2
  78. package/dist/{options-CnYybG51.d.ts → options-DTzhFVJ4.d.ts} +13 -1
  79. package/dist/plugin.cjs +1 -1
  80. package/dist/plugin.cjs.map +1 -1
  81. package/dist/plugin.d.cts +15 -9
  82. package/dist/plugin.d.ts +15 -9
  83. package/dist/plugin.js +1 -1
  84. package/dist/plugin.js.map +1 -1
  85. package/dist/plugins.cjs +1 -1
  86. package/dist/plugins.cjs.map +1 -1
  87. package/dist/plugins.d.cts +8 -2
  88. package/dist/plugins.d.ts +8 -2
  89. package/dist/plugins.js +1 -1
  90. package/dist/plugins.js.map +1 -1
  91. package/dist/{probe-D-IHg9dF.d.ts → probe-afwdYebU.d.ts} +6 -2
  92. package/dist/server.cjs +1 -1
  93. package/dist/server.cjs.map +1 -1
  94. package/dist/server.d.cts +23 -3
  95. package/dist/server.d.ts +23 -3
  96. package/dist/server.js +1 -1
  97. package/dist/server.js.map +1 -1
  98. package/dist/structural.cjs +2 -2
  99. package/dist/structural.cjs.map +1 -1
  100. package/dist/structural.d.cts +2 -0
  101. package/dist/structural.d.ts +2 -0
  102. package/dist/structural.js +1 -1
  103. package/dist/structural.js.map +1 -1
  104. package/package.json +7 -4
package/dist/index.d.cts CHANGED
@@ -37,6 +37,8 @@ declare const DIAGNOSTIC_CODES: Readonly<{
37
37
  readonly UnattributableUpdate: "LP0202";
38
38
  /** An update carried a value for a field the page binds nowhere; editing it changes nothing on this page. */
39
39
  readonly UnboundField: "LP0203";
40
+ /** In development: a bound path covers its group under the `descendant` default, which 3.0 changes. */
41
+ readonly CoverageDefaultChanges: "LP0204";
40
42
  /** The visibility gate held offscreen writes back until they scroll into view. */
41
43
  readonly VisibilityGateDeferred: "LP0301";
42
44
  /** A value was refused because the attribute or the value itself is unsafe. */
@@ -61,7 +63,7 @@ declare const DIAGNOSTIC_CODES: Readonly<{
61
63
  readonly UnrenderedBlockKept: "LP0410";
62
64
  /** A patch cannot reach what the server would have drawn; `onUnfaithfulPatch` decided what happens next. */
63
65
  readonly UnfaithfulPatch: "LP0411";
64
- /** The first write to a date, number or checkbox binding replaced a different reading of the same value. */
66
+ /** The first write to a date, number, checkbox, select or radio binding replaced a different reading of the same value. */
65
67
  readonly ServerFormatReplaced: "LP0412";
66
68
  /** A Lexical block has no renderer, and the write could not keep the markup the server rendered for it; it is gone. */
67
69
  readonly UnrenderedBlockLost: "LP0413";
@@ -81,7 +83,7 @@ declare const DIAGNOSTIC_CODES: Readonly<{
81
83
  readonly StartupFailed: "LP0605";
82
84
  /** Sending the ready handshake failed. */
83
85
  readonly ReadyFailed: "LP0606";
84
- /** The page declared hydration, but no React commit, Vue mount or SvelteKit mount came within the cap; the runtime started without waiting. */
86
+ /** The page declared hydration, but no React commit, Vue mount, SvelteKit mount or `markHydrated()` call came within the cap; the runtime started without waiting. */
85
87
  readonly HydrationWaitTimedOut: "LP0607";
86
88
  /** The audit found no runtime in a response that carried preview intent. */
87
89
  readonly AuditRuntimeMissing: "LP0701";
@@ -123,6 +125,8 @@ declare const DIAGNOSTIC_CODES: Readonly<{
123
125
  readonly V2ReadinessGap: "LP0709";
124
126
  /** The preview runtime is served to anonymous visitors, not only inside the admin frame. */
125
127
  readonly RuntimeOnPublicPage: "LP0710";
128
+ /** An element carries attributes that only mean something beside `data-payload-field`, and has none. */
129
+ readonly AuditModifierWithoutField: "LP0711";
126
130
  }>;
127
131
  /** A diagnostic code, as it appears in log output and on the `error` event. */
128
132
  type DiagnosticCode = (typeof DIAGNOSTIC_CODES)[keyof typeof DIAGNOSTIC_CODES];
@@ -209,8 +213,8 @@ interface SanitizeOptions {
209
213
  /** Extra tags to allow. Lower-case, untrimmed. */
210
214
  readonly additionalAllowedTags?: readonly string[];
211
215
  /**
212
- * Extra per-tag attributes, lower-case. Cannot re-admit handlers, `style`,
213
- * or — under `'strict'` — `id`, `name` and `data-payload-*`.
216
+ * Extra per-tag attributes, lower-case. Cannot re-admit handlers, `style`, or —
217
+ * under `'strict'` — `id`, `name` and `data-payload-*`; their URLs are checked.
214
218
  */
215
219
  readonly additionalAllowedAttributes?: Readonly<Record<string, readonly string[]>>;
216
220
  /**
@@ -350,6 +354,8 @@ interface RenderContext {
350
354
  * completes the sentence 'field "x" …' in LP0411.
351
355
  */
352
356
  readonly reportUnfaithful?: (target: CachedElement, reason: string) => void;
357
+ /** The route of a Lexical internal link, as `internalLinkPattern` gives it. */
358
+ readonly internalLinkPattern?: string;
353
359
  }
354
360
  /**
355
361
  * A renderer writes one value into its element. It must not throw: one bad
@@ -856,7 +862,7 @@ interface LivePreviewInspection {
856
862
  * SvelteKit page is not connected yet; `timed-out` is LP0607.
857
863
  */
858
864
  readonly hydration: {
859
- readonly mode: 'off' | 'react' | 'vue' | 'sveltekit';
865
+ readonly mode: 'off' | 'react' | 'vue' | 'sveltekit' | 'manual';
860
866
  readonly state: 'idle' | 'waiting' | 'committed' | 'timed-out';
861
867
  };
862
868
  }
@@ -1009,6 +1015,12 @@ interface LivePreviewClientConfig {
1009
1015
  readonly apiRoute?: string;
1010
1016
  /** Population depth used with `serverURL`. Required with it; `defaults: 'v1'` falls back to `1`. */
1011
1017
  readonly mergeDepth?: number;
1018
+ /** Milliseconds the `serverURL` merge may wait before the update shows its raw values. Off by default. */
1019
+ readonly mergeTimeoutMs?: number;
1020
+ /** The route of a Lexical internal link with no `url` of its own, as `/{locale}/{slug}/`. */
1021
+ readonly internalLinkPattern?: string;
1022
+ /** Hold a route render until Payload reports the save: the route shows what is saved. */
1023
+ readonly routeAfterSave?: boolean;
1012
1024
  /** Custom fetch for the `serverURL` merge request: attach auth headers or route through a proxy. */
1013
1025
  readonly mergeFetch?: typeof fetch;
1014
1026
  /** Verbose console output. Defaults to dev-mode detection. */
@@ -1209,6 +1221,22 @@ type RouteRefresh = () => void | Promise<void>;
1209
1221
  */
1210
1222
  declare function registerRouteRefresh(refresh: RouteRefresh): () => void;
1211
1223
 
1224
+ /**
1225
+ * Waiting for a page that says when it has hydrated (ADR 0015, addendum of
1226
+ * 2026-10-31). The React, Vue and SvelteKit waits each read a trace their
1227
+ * framework leaves; a page on any other host, or whose host left none, calls
1228
+ * `markHydrated()` instead. The page's bundle and the runtime are separate
1229
+ * scripts and either may run first, so the slot holds a state a late runtime
1230
+ * can still read rather than an event it could miss.
1231
+ */
1232
+
1233
+ /**
1234
+ * Tell a runtime started with `hydration: 'manual'` that this page has hydrated, so its
1235
+ * first write lands on markup the framework keeps. Call it once your framework has
1236
+ * taken the page over; a later call changes nothing, and on a server it does nothing.
1237
+ */
1238
+ declare function markHydrated(): void;
1239
+
1212
1240
  interface RuntimeBuildInfo {
1213
1241
  readonly generatedAt: string;
1214
1242
  readonly size: number;
@@ -1263,8 +1291,10 @@ interface InlineScriptConfig {
1263
1291
  * Carry the route strategy, so a binding in `<head>` or one marked
1264
1292
  * `data-payload-strategy="route"` refreshes the route. `fragmentEndpoint`
1265
1293
  * implies it — the fragment prelude already contains it. Default `false`.
1294
+ * `'after-save'` renders the route only once Payload reports a save: before it, a
1295
+ * GET shows nothing the editor typed and costs a server render.
1266
1296
  */
1267
- readonly routeStrategy?: boolean;
1297
+ readonly routeStrategy?: boolean | 'after-save';
1268
1298
  /**
1269
1299
  * The 2.0 name for `onUnfaithfulPatch`, kept until 3.0. `'route'` means
1270
1300
  * `'escalate'`, `'ignore'` means `'ignore'`.
@@ -1297,10 +1327,11 @@ interface InlineScriptConfig {
1297
1327
  * mounted, on a page SvelteKit's client runs on — otherwise Svelte's
1298
1328
  * hydration sets its own text back over it, as quietly. The Next.js, Nuxt
1299
1329
  * and SvelteKit adapters set it on every script they emit; a page built by
1300
- * hand with `generateInlineScript()` may. Omitted: the runtime starts on
1301
- * `DOMContentLoaded`, as on a static page.
1330
+ * hand with `generateInlineScript()` may. Under `'manual'` it holds the write
1331
+ * until the page calls `markHydrated()`, for a framework this package cannot
1332
+ * observe. Omitted: the runtime starts on `DOMContentLoaded`, as on a static page.
1302
1333
  */
1303
- readonly hydration?: 'react' | 'vue' | 'sveltekit';
1334
+ readonly hydration?: 'react' | 'vue' | 'sveltekit' | 'manual';
1304
1335
  /**
1305
1336
  * Which defaults the omitted options fall back to, resolved by the generator
1306
1337
  * rather than the runtime, whose own fallbacks are the 2.0 rows: `'v1'`
@@ -1327,6 +1358,10 @@ interface InlineScriptConfig {
1327
1358
  * declaration; an uncovered one is an unbound change.
1328
1359
  */
1329
1360
  readonly subfieldCoverage?: 'descendant' | 'declared';
1361
+ /** Milliseconds the `serverURL` merge may wait before the update shows its raw values. Off by default. */
1362
+ readonly mergeTimeoutMs?: number;
1363
+ /** The route of a Lexical internal link with no `url` of its own, as `/{locale}/{slug}/`. */
1364
+ readonly internalLinkPattern?: string;
1330
1365
  /**
1331
1366
  * A runtime artifact to embed instead of the full one — today only
1332
1367
  * `LEAN_RUNTIME` from `payload-live-preview/lean`, which leaves out the
@@ -1538,7 +1573,8 @@ interface PreviewAuthorizationRequest {
1538
1573
  * The `payload-session` strategy: forward exactly one named cookie to
1539
1574
  * `GET <serverURL>/api/<usersSlug>/me` and authorize when a user comes back.
1540
1575
  * A cookie-only request preserves working Payload 2 sessions. When `/me`
1541
- * reports no user, one retry adds an `Origin` for Payload 3's CSRF check.
1576
+ * reports no user, one retry adds an `Origin` for Payload 3's CSRF check, and
1577
+ * an endpoint that needed it gets it on the first request from then on.
1542
1578
  */
1543
1579
 
1544
1580
  /** A `fetch`-compatible function, injectable for tests. */
@@ -1561,7 +1597,8 @@ interface PayloadSessionStrategy {
1561
1597
  /**
1562
1598
  * Send this listed origin with the cookie from the first request. Without
1563
1599
  * it, try the existing cookie-only request, then the origin of `serverURL`
1564
- * once when `/me` reports a null user. Draft reads keep the accepted headers.
1600
+ * once when `/me` reports a null user; an endpoint that needed the origin
1601
+ * gets it first from then on. Draft reads keep the accepted headers.
1565
1602
  */
1566
1603
  readonly origin?: string;
1567
1604
  /** Upper bound for the `/me` round trip. Below 250 ms is raised to 250 ms; default 3000. */
@@ -1792,12 +1829,20 @@ interface LexicalRenderOptions {
1792
1829
  readonly requireDocument?: boolean;
1793
1830
  /**
1794
1831
  * Called for every `block` or `inlineBlock` the registry has no renderer
1795
- * for, with the block's slug as Payload sent it and the class its empty
1796
- * placeholder carries. The `richText` write listens: it is the one caller
1832
+ * for, with the block's slug as Payload sent it, the class its empty
1833
+ * placeholder carries and the block's fields. The `richText` write listens: it is the one caller
1797
1834
  * that later knows whether the server's markup for the block survived, so
1798
1835
  * the diagnostic is spoken there (LP0410, LP0413), not here.
1799
1836
  */
1800
- readonly onUnrenderedBlock?: (blockType: string, placeholderClass: string) => void;
1837
+ readonly onUnrenderedBlock?: (blockType: string, placeholderClass: string, fields: unknown) => void;
1838
+ /**
1839
+ * The route of an internal link whose document has no `url` of its own, such
1840
+ * as `/{locale}/{slug}/`. `{slug}`, `{id}`, `{collection}` and `{locale}` are
1841
+ * filled in and encoded; with one of them empty the link falls back to `/<slug>`.
1842
+ */
1843
+ readonly internalLinkPattern?: string | undefined;
1844
+ /** What `{locale}` reads in `internalLinkPattern`. */
1845
+ readonly locale?: string | undefined;
1801
1846
  }
1802
1847
  /** @internal */
1803
1848
  declare function isLexicalContent(value: unknown): value is LexicalRoot;
@@ -2046,6 +2091,11 @@ interface FieldBindingAttributes {
2046
2091
  readonly 'data-payload-alt'?: string;
2047
2092
  readonly 'data-payload-href'?: string;
2048
2093
  readonly 'data-payload-array-template'?: string;
2094
+ readonly 'data-payload-format'?: string;
2095
+ readonly 'data-payload-text'?: string;
2096
+ readonly 'data-payload-strategy'?: string;
2097
+ readonly 'data-payload-depends'?: string;
2098
+ readonly 'data-payload-boundary'?: string;
2049
2099
  }
2050
2100
  interface BindOptions {
2051
2101
  /** Attribute to write instead of the text content, e.g. `'src'` for `<img>`. */
@@ -2064,6 +2114,19 @@ interface BindOptions {
2064
2114
  readonly href?: string;
2065
2115
  /** Markup per array item with `{{value}}` placeholders. */
2066
2116
  readonly arrayTemplate?: string;
2117
+ /** How a date or number is written, from `data-payload-format`'s vocabulary. */
2118
+ readonly format?: string;
2119
+ /** Let a text write replace the element's children. */
2120
+ readonly text?: boolean;
2121
+ /** Who shows this field: the patch (default), a server-rendered fragment, or the route. */
2122
+ readonly strategy?: 'patch' | 'fragment' | 'route';
2123
+ /** Fields whose change re-applies this binding under `skipUnchanged`. */
2124
+ readonly dependsOn?: readonly string[];
2125
+ /**
2126
+ * An anchor for a field that may be empty, so an edit that fills it has somewhere to
2127
+ * land. Set `hidden` yourself while the value is empty; the runtime keeps it right after that.
2128
+ */
2129
+ readonly anchor?: boolean;
2067
2130
  }
2068
2131
  /** `bind<Homepage>('heroTitle')`; without `T` any string is accepted. */
2069
2132
  declare function bind<T = Record<string, unknown>>(field: FieldName<T>, options?: BindOptions): FieldBindingAttributes;
@@ -2138,7 +2201,7 @@ declare function createPreviewBindings(options: PreviewBindingsOptions): Preview
2138
2201
  * `App.Locals` declaration in the project it writes into. The verdict is
2139
2202
  * checked, not trusted — only a context `authorizePreviewRequest()` produced
2140
2203
  * emits anything (ADR 0006).
2141
- * @internal
2204
+ * @public
2142
2205
  */
2143
2206
  declare function previewBindingsFromLocals(locals: unknown, options?: {
2144
2207
  readonly owner?: string;
@@ -2169,4 +2232,4 @@ interface IslandUpdateDetail {
2169
2232
  /** Whether `element` (or an ancestor) is an island that did not opt into patching. @internal */
2170
2233
  declare function isInsideIsland(element: Element): boolean;
2171
2234
 
2172
- export { AUTHORIZED_PREVIEW_BRAND_KEY, type AnalyticsSnapshot, type AuthorizedPreviewContext, type AuthorizedPreviewDocument, type AuthorizedPreviewPayloadScope, type AuthorizedPreviewScope, type BindOptions, type BlockRenderContext, type BlockRenderer, CAPABILITY_DECLARATIONS, CAPABILITY_DOCUMENTATION, type CachedElement, type CapabilityDeclaration, type CapabilityDocumentation, type CapabilitySource, type ConnectionStatus, type CspDirectiveMerge, type CustomRendererKey, DIAGNOSTIC_CODES, type DefaultsProfile, type DiagnosticCode, type DocumentSaveHandler, type DocumentSavePluginOptions, type DocumentSaveStrategy, EventEmitter, type EventHandler, type EventSourcePolicy, type FetchLike, type FieldBindingAttributes, type FieldName, type FieldPath, type FieldRenderer, type FieldTransform, type FieldType, type FocusReportTarget, type FragmentBoundaryAttributes, type FragmentBoundaryOptions, type FragmentContext, type FragmentReport, type FragmentStrategy, type FrameAncestorsOptions, ISLAND_EVENT, type InlineScriptConfig, type InspectionBindings, type InspectionFidelity, type InspectionFragments, type InspectionOrigins, type InspectionProtocol, type InspectionRevisions, type InspectionRoute, type InspectionScheduler, type IslandUpdateDetail, type IssuePreviewTokenOptions, LIBRARY_PROTOCOL_VERSION, type LexicalNode, type LexicalRoot, LivePreviewClient, type LivePreviewClientConfig, type LivePreviewEventMap, type LivePreviewInspection, type LivePreviewPlugin, type NavigationLifecycleOptions, type NavigationLifecycleTarget, OriginDetector, type OwnerBindingAttributes, PROTOCOL_CAPABILITIES, type PayloadDocumentEventDetail, type PayloadFieldCondition, type PayloadFieldSchema, type PayloadFieldType, type PayloadLivePreviewData, type PayloadLivePreviewMessage, type PayloadMedia, type PayloadRelationship, type PayloadSessionStrategy, type PluginCompatibility, type PluginContext, type PluginDisposer, type PluginEvents, type PluginInspection, type PreviewAuthorization, type PreviewAuthorizationOutcome, type PreviewAuthorizationRequest, type PreviewAuthorizationStrategy, type PreviewAuthorizationStrategyName, type PreviewBindings, type PreviewBindingsOptions, type PreviewFocusMessage, type PreviewRequestLike, type PreviewRequestOptions, type PreviewTokenClaims, type PreviewTokenReplayChecks, type PreviewTokenReplayStore, type PreviewTokenTransport, type PreviewVerifierClaims, type ProtocolCapability, type ProtocolNegotiation, type ProtocolProfile, type ProtocolProfileName, type RenderContext, type RendererKey, type RevisionDisplay, type RevisionDisplayState, type RevisionShortfall, type RichTextRenderer, type RouteContext, type RouteOutcome, type RoutePlanContext, type RouteRefresh, type RouteStrategy, type RuntimeArtifact, type SanitizerDocument, type SanitizerPolicyMode, type SignedTokenStrategy, type StrategyHandlers, type SubtleCryptoLike, type SuppressedBinding, TRUSTED_TYPES_POLICY_NAME, type TrustedHtmlPolicyLike, type Unsubscribe, type UpdateSource, VERSION, type ValueAt, type VerifierStrategy, authorizePreviewRequest, bind, bindByPath, bindNavigationLifecycle, buildBuiltinRenderers, buildFrameAncestors, buildScriptSrcWithNonce, createAnalyticsPlugin, createPreviewBindings, createPreviewFocusReporter, debugPlugin, detectInitialLocale, detectProtocolProfile, documentSavePlugin, escapeHtml, escapeHtmlAttribute, generateCspNonce, generateInlineScript, hasCapability, hasPreviewIntent, highlightPlugin, initLivePreview, isAuthorizedPreviewContext, isDevMode, isExternalHttpUrl, isInIframe, isInPopup, isInPreviewContext, isInsideIsland, isLexicalContent, isPreviewRequest, isSafeUrl, issuePreviewToken, lexicalToHtml, lexicalToPlainText, mergeCspHeader, negotiateProtocol, previewBindingsFromLocals, registerBlockRenderer, registerBuiltinRenderer, registerRouteRefresh, reportPreviewFocus, runtimeBuildInfo, sanitizeHtml, setCspCrypto, setSanitizerDocument, setSanitizerPolicy, setTrustedTypesPolicy, trustedHtml, wrapWithScriptTag };
2235
+ export { AUTHORIZED_PREVIEW_BRAND_KEY, type AnalyticsSnapshot, type AuthorizedPreviewContext, type AuthorizedPreviewDocument, type AuthorizedPreviewPayloadScope, type AuthorizedPreviewScope, type BindOptions, type BlockRenderContext, type BlockRenderer, CAPABILITY_DECLARATIONS, CAPABILITY_DOCUMENTATION, type CachedElement, type CapabilityDeclaration, type CapabilityDocumentation, type CapabilitySource, type ConnectionStatus, type CspDirectiveMerge, type CustomRendererKey, DIAGNOSTIC_CODES, type DefaultsProfile, type DiagnosticCode, type DocumentSaveHandler, type DocumentSavePluginOptions, type DocumentSaveStrategy, EventEmitter, type EventHandler, type EventSourcePolicy, type FetchLike, type FieldBindingAttributes, type FieldName, type FieldPath, type FieldRenderer, type FieldTransform, type FieldType, type FocusReportTarget, type FragmentBoundaryAttributes, type FragmentBoundaryOptions, type FragmentContext, type FragmentReport, type FragmentStrategy, type FrameAncestorsOptions, ISLAND_EVENT, type InlineScriptConfig, type InspectionBindings, type InspectionFidelity, type InspectionFragments, type InspectionOrigins, type InspectionProtocol, type InspectionRevisions, type InspectionRoute, type InspectionScheduler, type IslandUpdateDetail, type IssuePreviewTokenOptions, LIBRARY_PROTOCOL_VERSION, type LexicalNode, type LexicalRoot, LivePreviewClient, type LivePreviewClientConfig, type LivePreviewEventMap, type LivePreviewInspection, type LivePreviewPlugin, type NavigationLifecycleOptions, type NavigationLifecycleTarget, OriginDetector, type OwnerBindingAttributes, PROTOCOL_CAPABILITIES, type PayloadDocumentEventDetail, type PayloadFieldCondition, type PayloadFieldSchema, type PayloadFieldType, type PayloadLivePreviewData, type PayloadLivePreviewMessage, type PayloadMedia, type PayloadRelationship, type PayloadSessionStrategy, type PluginCompatibility, type PluginContext, type PluginDisposer, type PluginEvents, type PluginInspection, type PreviewAuthorization, type PreviewAuthorizationOutcome, type PreviewAuthorizationRequest, type PreviewAuthorizationStrategy, type PreviewAuthorizationStrategyName, type PreviewBindings, type PreviewBindingsOptions, type PreviewFocusMessage, type PreviewRequestLike, type PreviewRequestOptions, type PreviewTokenClaims, type PreviewTokenReplayChecks, type PreviewTokenReplayStore, type PreviewTokenTransport, type PreviewVerifierClaims, type ProtocolCapability, type ProtocolNegotiation, type ProtocolProfile, type ProtocolProfileName, type RenderContext, type RendererKey, type RevisionDisplay, type RevisionDisplayState, type RevisionShortfall, type RichTextRenderer, type RouteContext, type RouteOutcome, type RoutePlanContext, type RouteRefresh, type RouteStrategy, type RuntimeArtifact, type SanitizerDocument, type SanitizerPolicyMode, type SignedTokenStrategy, type StrategyHandlers, type SubtleCryptoLike, type SuppressedBinding, TRUSTED_TYPES_POLICY_NAME, type TrustedHtmlPolicyLike, type Unsubscribe, type UpdateSource, VERSION, type ValueAt, type VerifierStrategy, authorizePreviewRequest, bind, bindByPath, bindNavigationLifecycle, buildBuiltinRenderers, buildFrameAncestors, buildScriptSrcWithNonce, createAnalyticsPlugin, createPreviewBindings, createPreviewFocusReporter, debugPlugin, detectInitialLocale, detectProtocolProfile, documentSavePlugin, escapeHtml, escapeHtmlAttribute, generateCspNonce, generateInlineScript, hasCapability, hasPreviewIntent, highlightPlugin, initLivePreview, isAuthorizedPreviewContext, isDevMode, isExternalHttpUrl, isInIframe, isInPopup, isInPreviewContext, isInsideIsland, isLexicalContent, isPreviewRequest, isSafeUrl, issuePreviewToken, lexicalToHtml, lexicalToPlainText, markHydrated, mergeCspHeader, negotiateProtocol, previewBindingsFromLocals, registerBlockRenderer, registerBuiltinRenderer, registerRouteRefresh, reportPreviewFocus, runtimeBuildInfo, sanitizeHtml, setCspCrypto, setSanitizerDocument, setSanitizerPolicy, setTrustedTypesPolicy, trustedHtml, wrapWithScriptTag };
package/dist/index.d.ts CHANGED
@@ -37,6 +37,8 @@ declare const DIAGNOSTIC_CODES: Readonly<{
37
37
  readonly UnattributableUpdate: "LP0202";
38
38
  /** An update carried a value for a field the page binds nowhere; editing it changes nothing on this page. */
39
39
  readonly UnboundField: "LP0203";
40
+ /** In development: a bound path covers its group under the `descendant` default, which 3.0 changes. */
41
+ readonly CoverageDefaultChanges: "LP0204";
40
42
  /** The visibility gate held offscreen writes back until they scroll into view. */
41
43
  readonly VisibilityGateDeferred: "LP0301";
42
44
  /** A value was refused because the attribute or the value itself is unsafe. */
@@ -61,7 +63,7 @@ declare const DIAGNOSTIC_CODES: Readonly<{
61
63
  readonly UnrenderedBlockKept: "LP0410";
62
64
  /** A patch cannot reach what the server would have drawn; `onUnfaithfulPatch` decided what happens next. */
63
65
  readonly UnfaithfulPatch: "LP0411";
64
- /** The first write to a date, number or checkbox binding replaced a different reading of the same value. */
66
+ /** The first write to a date, number, checkbox, select or radio binding replaced a different reading of the same value. */
65
67
  readonly ServerFormatReplaced: "LP0412";
66
68
  /** A Lexical block has no renderer, and the write could not keep the markup the server rendered for it; it is gone. */
67
69
  readonly UnrenderedBlockLost: "LP0413";
@@ -81,7 +83,7 @@ declare const DIAGNOSTIC_CODES: Readonly<{
81
83
  readonly StartupFailed: "LP0605";
82
84
  /** Sending the ready handshake failed. */
83
85
  readonly ReadyFailed: "LP0606";
84
- /** The page declared hydration, but no React commit, Vue mount or SvelteKit mount came within the cap; the runtime started without waiting. */
86
+ /** The page declared hydration, but no React commit, Vue mount, SvelteKit mount or `markHydrated()` call came within the cap; the runtime started without waiting. */
85
87
  readonly HydrationWaitTimedOut: "LP0607";
86
88
  /** The audit found no runtime in a response that carried preview intent. */
87
89
  readonly AuditRuntimeMissing: "LP0701";
@@ -123,6 +125,8 @@ declare const DIAGNOSTIC_CODES: Readonly<{
123
125
  readonly V2ReadinessGap: "LP0709";
124
126
  /** The preview runtime is served to anonymous visitors, not only inside the admin frame. */
125
127
  readonly RuntimeOnPublicPage: "LP0710";
128
+ /** An element carries attributes that only mean something beside `data-payload-field`, and has none. */
129
+ readonly AuditModifierWithoutField: "LP0711";
126
130
  }>;
127
131
  /** A diagnostic code, as it appears in log output and on the `error` event. */
128
132
  type DiagnosticCode = (typeof DIAGNOSTIC_CODES)[keyof typeof DIAGNOSTIC_CODES];
@@ -209,8 +213,8 @@ interface SanitizeOptions {
209
213
  /** Extra tags to allow. Lower-case, untrimmed. */
210
214
  readonly additionalAllowedTags?: readonly string[];
211
215
  /**
212
- * Extra per-tag attributes, lower-case. Cannot re-admit handlers, `style`,
213
- * or — under `'strict'` — `id`, `name` and `data-payload-*`.
216
+ * Extra per-tag attributes, lower-case. Cannot re-admit handlers, `style`, or —
217
+ * under `'strict'` — `id`, `name` and `data-payload-*`; their URLs are checked.
214
218
  */
215
219
  readonly additionalAllowedAttributes?: Readonly<Record<string, readonly string[]>>;
216
220
  /**
@@ -350,6 +354,8 @@ interface RenderContext {
350
354
  * completes the sentence 'field "x" …' in LP0411.
351
355
  */
352
356
  readonly reportUnfaithful?: (target: CachedElement, reason: string) => void;
357
+ /** The route of a Lexical internal link, as `internalLinkPattern` gives it. */
358
+ readonly internalLinkPattern?: string;
353
359
  }
354
360
  /**
355
361
  * A renderer writes one value into its element. It must not throw: one bad
@@ -856,7 +862,7 @@ interface LivePreviewInspection {
856
862
  * SvelteKit page is not connected yet; `timed-out` is LP0607.
857
863
  */
858
864
  readonly hydration: {
859
- readonly mode: 'off' | 'react' | 'vue' | 'sveltekit';
865
+ readonly mode: 'off' | 'react' | 'vue' | 'sveltekit' | 'manual';
860
866
  readonly state: 'idle' | 'waiting' | 'committed' | 'timed-out';
861
867
  };
862
868
  }
@@ -1009,6 +1015,12 @@ interface LivePreviewClientConfig {
1009
1015
  readonly apiRoute?: string;
1010
1016
  /** Population depth used with `serverURL`. Required with it; `defaults: 'v1'` falls back to `1`. */
1011
1017
  readonly mergeDepth?: number;
1018
+ /** Milliseconds the `serverURL` merge may wait before the update shows its raw values. Off by default. */
1019
+ readonly mergeTimeoutMs?: number;
1020
+ /** The route of a Lexical internal link with no `url` of its own, as `/{locale}/{slug}/`. */
1021
+ readonly internalLinkPattern?: string;
1022
+ /** Hold a route render until Payload reports the save: the route shows what is saved. */
1023
+ readonly routeAfterSave?: boolean;
1012
1024
  /** Custom fetch for the `serverURL` merge request: attach auth headers or route through a proxy. */
1013
1025
  readonly mergeFetch?: typeof fetch;
1014
1026
  /** Verbose console output. Defaults to dev-mode detection. */
@@ -1209,6 +1221,22 @@ type RouteRefresh = () => void | Promise<void>;
1209
1221
  */
1210
1222
  declare function registerRouteRefresh(refresh: RouteRefresh): () => void;
1211
1223
 
1224
+ /**
1225
+ * Waiting for a page that says when it has hydrated (ADR 0015, addendum of
1226
+ * 2026-10-31). The React, Vue and SvelteKit waits each read a trace their
1227
+ * framework leaves; a page on any other host, or whose host left none, calls
1228
+ * `markHydrated()` instead. The page's bundle and the runtime are separate
1229
+ * scripts and either may run first, so the slot holds a state a late runtime
1230
+ * can still read rather than an event it could miss.
1231
+ */
1232
+
1233
+ /**
1234
+ * Tell a runtime started with `hydration: 'manual'` that this page has hydrated, so its
1235
+ * first write lands on markup the framework keeps. Call it once your framework has
1236
+ * taken the page over; a later call changes nothing, and on a server it does nothing.
1237
+ */
1238
+ declare function markHydrated(): void;
1239
+
1212
1240
  interface RuntimeBuildInfo {
1213
1241
  readonly generatedAt: string;
1214
1242
  readonly size: number;
@@ -1263,8 +1291,10 @@ interface InlineScriptConfig {
1263
1291
  * Carry the route strategy, so a binding in `<head>` or one marked
1264
1292
  * `data-payload-strategy="route"` refreshes the route. `fragmentEndpoint`
1265
1293
  * implies it — the fragment prelude already contains it. Default `false`.
1294
+ * `'after-save'` renders the route only once Payload reports a save: before it, a
1295
+ * GET shows nothing the editor typed and costs a server render.
1266
1296
  */
1267
- readonly routeStrategy?: boolean;
1297
+ readonly routeStrategy?: boolean | 'after-save';
1268
1298
  /**
1269
1299
  * The 2.0 name for `onUnfaithfulPatch`, kept until 3.0. `'route'` means
1270
1300
  * `'escalate'`, `'ignore'` means `'ignore'`.
@@ -1297,10 +1327,11 @@ interface InlineScriptConfig {
1297
1327
  * mounted, on a page SvelteKit's client runs on — otherwise Svelte's
1298
1328
  * hydration sets its own text back over it, as quietly. The Next.js, Nuxt
1299
1329
  * and SvelteKit adapters set it on every script they emit; a page built by
1300
- * hand with `generateInlineScript()` may. Omitted: the runtime starts on
1301
- * `DOMContentLoaded`, as on a static page.
1330
+ * hand with `generateInlineScript()` may. Under `'manual'` it holds the write
1331
+ * until the page calls `markHydrated()`, for a framework this package cannot
1332
+ * observe. Omitted: the runtime starts on `DOMContentLoaded`, as on a static page.
1302
1333
  */
1303
- readonly hydration?: 'react' | 'vue' | 'sveltekit';
1334
+ readonly hydration?: 'react' | 'vue' | 'sveltekit' | 'manual';
1304
1335
  /**
1305
1336
  * Which defaults the omitted options fall back to, resolved by the generator
1306
1337
  * rather than the runtime, whose own fallbacks are the 2.0 rows: `'v1'`
@@ -1327,6 +1358,10 @@ interface InlineScriptConfig {
1327
1358
  * declaration; an uncovered one is an unbound change.
1328
1359
  */
1329
1360
  readonly subfieldCoverage?: 'descendant' | 'declared';
1361
+ /** Milliseconds the `serverURL` merge may wait before the update shows its raw values. Off by default. */
1362
+ readonly mergeTimeoutMs?: number;
1363
+ /** The route of a Lexical internal link with no `url` of its own, as `/{locale}/{slug}/`. */
1364
+ readonly internalLinkPattern?: string;
1330
1365
  /**
1331
1366
  * A runtime artifact to embed instead of the full one — today only
1332
1367
  * `LEAN_RUNTIME` from `payload-live-preview/lean`, which leaves out the
@@ -1538,7 +1573,8 @@ interface PreviewAuthorizationRequest {
1538
1573
  * The `payload-session` strategy: forward exactly one named cookie to
1539
1574
  * `GET <serverURL>/api/<usersSlug>/me` and authorize when a user comes back.
1540
1575
  * A cookie-only request preserves working Payload 2 sessions. When `/me`
1541
- * reports no user, one retry adds an `Origin` for Payload 3's CSRF check.
1576
+ * reports no user, one retry adds an `Origin` for Payload 3's CSRF check, and
1577
+ * an endpoint that needed it gets it on the first request from then on.
1542
1578
  */
1543
1579
 
1544
1580
  /** A `fetch`-compatible function, injectable for tests. */
@@ -1561,7 +1597,8 @@ interface PayloadSessionStrategy {
1561
1597
  /**
1562
1598
  * Send this listed origin with the cookie from the first request. Without
1563
1599
  * it, try the existing cookie-only request, then the origin of `serverURL`
1564
- * once when `/me` reports a null user. Draft reads keep the accepted headers.
1600
+ * once when `/me` reports a null user; an endpoint that needed the origin
1601
+ * gets it first from then on. Draft reads keep the accepted headers.
1565
1602
  */
1566
1603
  readonly origin?: string;
1567
1604
  /** Upper bound for the `/me` round trip. Below 250 ms is raised to 250 ms; default 3000. */
@@ -1792,12 +1829,20 @@ interface LexicalRenderOptions {
1792
1829
  readonly requireDocument?: boolean;
1793
1830
  /**
1794
1831
  * Called for every `block` or `inlineBlock` the registry has no renderer
1795
- * for, with the block's slug as Payload sent it and the class its empty
1796
- * placeholder carries. The `richText` write listens: it is the one caller
1832
+ * for, with the block's slug as Payload sent it, the class its empty
1833
+ * placeholder carries and the block's fields. The `richText` write listens: it is the one caller
1797
1834
  * that later knows whether the server's markup for the block survived, so
1798
1835
  * the diagnostic is spoken there (LP0410, LP0413), not here.
1799
1836
  */
1800
- readonly onUnrenderedBlock?: (blockType: string, placeholderClass: string) => void;
1837
+ readonly onUnrenderedBlock?: (blockType: string, placeholderClass: string, fields: unknown) => void;
1838
+ /**
1839
+ * The route of an internal link whose document has no `url` of its own, such
1840
+ * as `/{locale}/{slug}/`. `{slug}`, `{id}`, `{collection}` and `{locale}` are
1841
+ * filled in and encoded; with one of them empty the link falls back to `/<slug>`.
1842
+ */
1843
+ readonly internalLinkPattern?: string | undefined;
1844
+ /** What `{locale}` reads in `internalLinkPattern`. */
1845
+ readonly locale?: string | undefined;
1801
1846
  }
1802
1847
  /** @internal */
1803
1848
  declare function isLexicalContent(value: unknown): value is LexicalRoot;
@@ -2046,6 +2091,11 @@ interface FieldBindingAttributes {
2046
2091
  readonly 'data-payload-alt'?: string;
2047
2092
  readonly 'data-payload-href'?: string;
2048
2093
  readonly 'data-payload-array-template'?: string;
2094
+ readonly 'data-payload-format'?: string;
2095
+ readonly 'data-payload-text'?: string;
2096
+ readonly 'data-payload-strategy'?: string;
2097
+ readonly 'data-payload-depends'?: string;
2098
+ readonly 'data-payload-boundary'?: string;
2049
2099
  }
2050
2100
  interface BindOptions {
2051
2101
  /** Attribute to write instead of the text content, e.g. `'src'` for `<img>`. */
@@ -2064,6 +2114,19 @@ interface BindOptions {
2064
2114
  readonly href?: string;
2065
2115
  /** Markup per array item with `{{value}}` placeholders. */
2066
2116
  readonly arrayTemplate?: string;
2117
+ /** How a date or number is written, from `data-payload-format`'s vocabulary. */
2118
+ readonly format?: string;
2119
+ /** Let a text write replace the element's children. */
2120
+ readonly text?: boolean;
2121
+ /** Who shows this field: the patch (default), a server-rendered fragment, or the route. */
2122
+ readonly strategy?: 'patch' | 'fragment' | 'route';
2123
+ /** Fields whose change re-applies this binding under `skipUnchanged`. */
2124
+ readonly dependsOn?: readonly string[];
2125
+ /**
2126
+ * An anchor for a field that may be empty, so an edit that fills it has somewhere to
2127
+ * land. Set `hidden` yourself while the value is empty; the runtime keeps it right after that.
2128
+ */
2129
+ readonly anchor?: boolean;
2067
2130
  }
2068
2131
  /** `bind<Homepage>('heroTitle')`; without `T` any string is accepted. */
2069
2132
  declare function bind<T = Record<string, unknown>>(field: FieldName<T>, options?: BindOptions): FieldBindingAttributes;
@@ -2138,7 +2201,7 @@ declare function createPreviewBindings(options: PreviewBindingsOptions): Preview
2138
2201
  * `App.Locals` declaration in the project it writes into. The verdict is
2139
2202
  * checked, not trusted — only a context `authorizePreviewRequest()` produced
2140
2203
  * emits anything (ADR 0006).
2141
- * @internal
2204
+ * @public
2142
2205
  */
2143
2206
  declare function previewBindingsFromLocals(locals: unknown, options?: {
2144
2207
  readonly owner?: string;
@@ -2169,4 +2232,4 @@ interface IslandUpdateDetail {
2169
2232
  /** Whether `element` (or an ancestor) is an island that did not opt into patching. @internal */
2170
2233
  declare function isInsideIsland(element: Element): boolean;
2171
2234
 
2172
- export { AUTHORIZED_PREVIEW_BRAND_KEY, type AnalyticsSnapshot, type AuthorizedPreviewContext, type AuthorizedPreviewDocument, type AuthorizedPreviewPayloadScope, type AuthorizedPreviewScope, type BindOptions, type BlockRenderContext, type BlockRenderer, CAPABILITY_DECLARATIONS, CAPABILITY_DOCUMENTATION, type CachedElement, type CapabilityDeclaration, type CapabilityDocumentation, type CapabilitySource, type ConnectionStatus, type CspDirectiveMerge, type CustomRendererKey, DIAGNOSTIC_CODES, type DefaultsProfile, type DiagnosticCode, type DocumentSaveHandler, type DocumentSavePluginOptions, type DocumentSaveStrategy, EventEmitter, type EventHandler, type EventSourcePolicy, type FetchLike, type FieldBindingAttributes, type FieldName, type FieldPath, type FieldRenderer, type FieldTransform, type FieldType, type FocusReportTarget, type FragmentBoundaryAttributes, type FragmentBoundaryOptions, type FragmentContext, type FragmentReport, type FragmentStrategy, type FrameAncestorsOptions, ISLAND_EVENT, type InlineScriptConfig, type InspectionBindings, type InspectionFidelity, type InspectionFragments, type InspectionOrigins, type InspectionProtocol, type InspectionRevisions, type InspectionRoute, type InspectionScheduler, type IslandUpdateDetail, type IssuePreviewTokenOptions, LIBRARY_PROTOCOL_VERSION, type LexicalNode, type LexicalRoot, LivePreviewClient, type LivePreviewClientConfig, type LivePreviewEventMap, type LivePreviewInspection, type LivePreviewPlugin, type NavigationLifecycleOptions, type NavigationLifecycleTarget, OriginDetector, type OwnerBindingAttributes, PROTOCOL_CAPABILITIES, type PayloadDocumentEventDetail, type PayloadFieldCondition, type PayloadFieldSchema, type PayloadFieldType, type PayloadLivePreviewData, type PayloadLivePreviewMessage, type PayloadMedia, type PayloadRelationship, type PayloadSessionStrategy, type PluginCompatibility, type PluginContext, type PluginDisposer, type PluginEvents, type PluginInspection, type PreviewAuthorization, type PreviewAuthorizationOutcome, type PreviewAuthorizationRequest, type PreviewAuthorizationStrategy, type PreviewAuthorizationStrategyName, type PreviewBindings, type PreviewBindingsOptions, type PreviewFocusMessage, type PreviewRequestLike, type PreviewRequestOptions, type PreviewTokenClaims, type PreviewTokenReplayChecks, type PreviewTokenReplayStore, type PreviewTokenTransport, type PreviewVerifierClaims, type ProtocolCapability, type ProtocolNegotiation, type ProtocolProfile, type ProtocolProfileName, type RenderContext, type RendererKey, type RevisionDisplay, type RevisionDisplayState, type RevisionShortfall, type RichTextRenderer, type RouteContext, type RouteOutcome, type RoutePlanContext, type RouteRefresh, type RouteStrategy, type RuntimeArtifact, type SanitizerDocument, type SanitizerPolicyMode, type SignedTokenStrategy, type StrategyHandlers, type SubtleCryptoLike, type SuppressedBinding, TRUSTED_TYPES_POLICY_NAME, type TrustedHtmlPolicyLike, type Unsubscribe, type UpdateSource, VERSION, type ValueAt, type VerifierStrategy, authorizePreviewRequest, bind, bindByPath, bindNavigationLifecycle, buildBuiltinRenderers, buildFrameAncestors, buildScriptSrcWithNonce, createAnalyticsPlugin, createPreviewBindings, createPreviewFocusReporter, debugPlugin, detectInitialLocale, detectProtocolProfile, documentSavePlugin, escapeHtml, escapeHtmlAttribute, generateCspNonce, generateInlineScript, hasCapability, hasPreviewIntent, highlightPlugin, initLivePreview, isAuthorizedPreviewContext, isDevMode, isExternalHttpUrl, isInIframe, isInPopup, isInPreviewContext, isInsideIsland, isLexicalContent, isPreviewRequest, isSafeUrl, issuePreviewToken, lexicalToHtml, lexicalToPlainText, mergeCspHeader, negotiateProtocol, previewBindingsFromLocals, registerBlockRenderer, registerBuiltinRenderer, registerRouteRefresh, reportPreviewFocus, runtimeBuildInfo, sanitizeHtml, setCspCrypto, setSanitizerDocument, setSanitizerPolicy, setTrustedTypesPolicy, trustedHtml, wrapWithScriptTag };
2235
+ export { AUTHORIZED_PREVIEW_BRAND_KEY, type AnalyticsSnapshot, type AuthorizedPreviewContext, type AuthorizedPreviewDocument, type AuthorizedPreviewPayloadScope, type AuthorizedPreviewScope, type BindOptions, type BlockRenderContext, type BlockRenderer, CAPABILITY_DECLARATIONS, CAPABILITY_DOCUMENTATION, type CachedElement, type CapabilityDeclaration, type CapabilityDocumentation, type CapabilitySource, type ConnectionStatus, type CspDirectiveMerge, type CustomRendererKey, DIAGNOSTIC_CODES, type DefaultsProfile, type DiagnosticCode, type DocumentSaveHandler, type DocumentSavePluginOptions, type DocumentSaveStrategy, EventEmitter, type EventHandler, type EventSourcePolicy, type FetchLike, type FieldBindingAttributes, type FieldName, type FieldPath, type FieldRenderer, type FieldTransform, type FieldType, type FocusReportTarget, type FragmentBoundaryAttributes, type FragmentBoundaryOptions, type FragmentContext, type FragmentReport, type FragmentStrategy, type FrameAncestorsOptions, ISLAND_EVENT, type InlineScriptConfig, type InspectionBindings, type InspectionFidelity, type InspectionFragments, type InspectionOrigins, type InspectionProtocol, type InspectionRevisions, type InspectionRoute, type InspectionScheduler, type IslandUpdateDetail, type IssuePreviewTokenOptions, LIBRARY_PROTOCOL_VERSION, type LexicalNode, type LexicalRoot, LivePreviewClient, type LivePreviewClientConfig, type LivePreviewEventMap, type LivePreviewInspection, type LivePreviewPlugin, type NavigationLifecycleOptions, type NavigationLifecycleTarget, OriginDetector, type OwnerBindingAttributes, PROTOCOL_CAPABILITIES, type PayloadDocumentEventDetail, type PayloadFieldCondition, type PayloadFieldSchema, type PayloadFieldType, type PayloadLivePreviewData, type PayloadLivePreviewMessage, type PayloadMedia, type PayloadRelationship, type PayloadSessionStrategy, type PluginCompatibility, type PluginContext, type PluginDisposer, type PluginEvents, type PluginInspection, type PreviewAuthorization, type PreviewAuthorizationOutcome, type PreviewAuthorizationRequest, type PreviewAuthorizationStrategy, type PreviewAuthorizationStrategyName, type PreviewBindings, type PreviewBindingsOptions, type PreviewFocusMessage, type PreviewRequestLike, type PreviewRequestOptions, type PreviewTokenClaims, type PreviewTokenReplayChecks, type PreviewTokenReplayStore, type PreviewTokenTransport, type PreviewVerifierClaims, type ProtocolCapability, type ProtocolNegotiation, type ProtocolProfile, type ProtocolProfileName, type RenderContext, type RendererKey, type RevisionDisplay, type RevisionDisplayState, type RevisionShortfall, type RichTextRenderer, type RouteContext, type RouteOutcome, type RoutePlanContext, type RouteRefresh, type RouteStrategy, type RuntimeArtifact, type SanitizerDocument, type SanitizerPolicyMode, type SignedTokenStrategy, type StrategyHandlers, type SubtleCryptoLike, type SuppressedBinding, TRUSTED_TYPES_POLICY_NAME, type TrustedHtmlPolicyLike, type Unsubscribe, type UpdateSource, VERSION, type ValueAt, type VerifierStrategy, authorizePreviewRequest, bind, bindByPath, bindNavigationLifecycle, buildBuiltinRenderers, buildFrameAncestors, buildScriptSrcWithNonce, createAnalyticsPlugin, createPreviewBindings, createPreviewFocusReporter, debugPlugin, detectInitialLocale, detectProtocolProfile, documentSavePlugin, escapeHtml, escapeHtmlAttribute, generateCspNonce, generateInlineScript, hasCapability, hasPreviewIntent, highlightPlugin, initLivePreview, isAuthorizedPreviewContext, isDevMode, isExternalHttpUrl, isInIframe, isInPopup, isInPreviewContext, isInsideIsland, isLexicalContent, isPreviewRequest, isSafeUrl, issuePreviewToken, lexicalToHtml, lexicalToPlainText, markHydrated, mergeCspHeader, negotiateProtocol, previewBindingsFromLocals, registerBlockRenderer, registerBuiltinRenderer, registerRouteRefresh, reportPreviewFocus, runtimeBuildInfo, sanitizeHtml, setCspCrypto, setSanitizerDocument, setSanitizerPolicy, setTrustedTypesPolicy, trustedHtml, wrapWithScriptTag };