@beyondwork/docx-react-component 1.0.66 → 1.0.69
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/README.md +75 -931
- package/package.json +26 -27
- package/src/api/anchor-conversion.ts +43 -0
- package/src/api/editor-state-types.ts +2 -1
- package/src/api/public-types.ts +504 -101
- package/src/api/session-state.ts +4 -0
- package/src/api/v3/README.md +91 -0
- package/src/api/v3/_create.ts +146 -0
- package/src/api/v3/_layer-metadata.ts +362 -0
- package/src/api/v3/_mocks.ts +84 -0
- package/src/api/v3/_runtime-handle.ts +162 -0
- package/src/api/v3/_ux-response.ts +73 -0
- package/src/api/v3/ai/_metadata-audit.ts +225 -0
- package/src/api/v3/ai/attach.ts +235 -0
- package/src/api/v3/ai/bundle.ts +132 -0
- package/src/api/v3/ai/explain.ts +144 -0
- package/src/api/v3/ai/export.ts +54 -0
- package/src/api/v3/ai/inspect.ts +118 -0
- package/src/api/v3/ai/policy.ts +77 -0
- package/src/api/v3/ai/replacement.ts +341 -0
- package/src/api/v3/ai/resolve.ts +133 -0
- package/src/api/v3/index.ts +79 -0
- package/src/api/v3/runtime/chart.ts +310 -0
- package/src/api/v3/runtime/clipboard.ts +81 -0
- package/src/api/v3/runtime/collab.ts +331 -0
- package/src/api/v3/runtime/content.ts +236 -0
- package/src/api/v3/runtime/document.ts +282 -0
- package/src/api/v3/runtime/formatting.ts +186 -0
- package/src/api/v3/runtime/geometry.ts +349 -0
- package/src/api/v3/runtime/layout.ts +108 -0
- package/src/api/v3/runtime/review.ts +129 -0
- package/src/api/v3/runtime/search.ts +74 -0
- package/src/api/v3/runtime/table.ts +63 -0
- package/src/api/v3/runtime/workflow.ts +434 -0
- package/src/api/v3/ui/_context.ts +86 -0
- package/src/api/v3/ui/_create.ts +65 -0
- package/src/api/v3/ui/_types.ts +520 -0
- package/src/api/v3/ui/chrome-composition.ts +342 -0
- package/src/{ui-tailwind/chrome → api/v3/ui}/chrome-preset-model.ts +11 -1
- package/src/api/v3/ui/chrome.ts +476 -0
- package/src/api/v3/ui/debug.ts +124 -0
- package/src/api/v3/ui/index.ts +64 -0
- package/src/api/v3/ui/overlays-visibility.ts +170 -0
- package/src/api/v3/ui/overlays.ts +427 -0
- package/src/api/v3/ui/scope.ts +71 -0
- package/src/api/v3/ui/session.ts +100 -0
- package/src/api/v3/ui/surface.ts +170 -0
- package/src/api/v3/ui/viewport.ts +303 -0
- package/src/core/commands/index.ts +28 -6
- package/src/core/commands/list-commands.ts +3 -2
- package/src/core/commands/section-layout-commands.ts +9 -8
- package/src/core/schema/text-schema.ts +16 -0
- package/src/core/selection/mapping.ts +33 -72
- package/src/core/state/editor-state.ts +96 -189
- package/src/index.ts +23 -4
- package/src/io/chart-preview-resolver.ts +1 -1
- package/src/io/docx-session.ts +36 -4795
- package/src/io/export/build-app-properties-xml.ts +1 -1
- package/src/io/export/serialize-comments.ts +1 -1
- package/src/io/export/serialize-headers-footers.ts +6 -1
- package/src/io/export/serialize-main-document.ts +45 -0
- package/src/io/export/serialize-run-formatting.ts +17 -2
- package/src/io/export/twip.ts +1 -1
- package/src/io/normalize/normalize-text.ts +27 -20
- package/src/io/ooxml/chart/parse-series.ts +1 -1
- package/src/io/ooxml/chart/resolve-color.ts +2 -2
- package/src/io/ooxml/chart/types.ts +1 -1
- package/src/io/ooxml/classify-embedding.ts +83 -33
- package/src/io/ooxml/parse-fill.ts +1 -1
- package/src/io/ooxml/parse-main-document.ts +71 -1
- package/src/io/ooxml/parse-object.ts +14 -10
- package/src/io/ooxml/parse-run-formatting.ts +47 -1
- package/src/io/ooxml/property-grab-bag.ts +2 -2
- package/src/io/ooxml/units.ts +11 -0
- package/src/io/ooxml/workflow-payload.ts +282 -7
- package/src/model/anchor.ts +85 -0
- package/src/model/canonical-document.ts +351 -15
- package/src/model/chart-types.ts +1 -1
- package/src/model/layout/index.ts +83 -0
- package/src/model/layout/page-graph-types.ts +181 -0
- package/src/model/layout/page-layout-snapshot.ts +105 -0
- package/src/model/layout/resolved-layout-types.ts +47 -0
- package/src/model/layout/runtime-page-graph-types.ts +102 -0
- package/src/model/paragraph-scope-ids.ts +72 -0
- package/src/model/review/comment-types.ts +112 -0
- package/src/model/review/index.ts +2 -0
- package/src/model/review/revision-types.ts +215 -0
- package/src/model/snapshot.ts +32 -0
- package/src/review/store/comment-store.ts +21 -47
- package/src/review/store/revision-types.ts +40 -198
- package/src/runtime/collab/base-doc-fingerprint.ts +6 -1
- package/src/runtime/collab/runtime-collab-sync.ts +13 -3
- package/src/runtime/collab-session.ts +1 -1
- package/src/runtime/debug/build-debug-inspector-snapshot.ts +686 -0
- package/src/runtime/debug/event-ring-buffer.ts +64 -0
- package/src/runtime/debug/probability-sampler.ts +18 -0
- package/src/runtime/debug/runtime-debug-facet.ts +67 -0
- package/src/runtime/debug/stage-tokens.ts +31 -0
- package/src/runtime/debug/telemetry-bus.ts +271 -0
- package/src/runtime/debug/types.ts +275 -0
- package/src/runtime/debug/wrap-ref-for-telemetry.ts +118 -0
- package/src/runtime/document-layout.ts +8 -6
- package/src/runtime/document-runtime.ts +843 -1141
- package/src/runtime/document-search.ts +1 -1
- package/src/runtime/edit-ops/index.ts +1 -1
- package/src/runtime/external-send-runtime.ts +1 -1
- package/src/runtime/formatting/document-lookup.ts +235 -0
- package/src/runtime/formatting/field/registry.ts +41 -0
- package/src/runtime/{field-resolver.ts → formatting/field/resolver.ts} +27 -2
- package/src/runtime/formatting/font-resolution.ts +83 -0
- package/src/runtime/formatting/formatting-context.ts +903 -0
- package/src/runtime/formatting/formatting-types.ts +157 -0
- package/src/runtime/{hyperlink-color-resolver.ts → formatting/hyperlink-color.ts} +2 -2
- package/src/runtime/formatting/index.ts +125 -0
- package/src/runtime/{resolved-numbering-geometry.ts → formatting/numbering/geometry.ts} +1 -1
- package/src/runtime/{numbering-prefix.ts → formatting/numbering/prefix.ts} +170 -3
- package/src/runtime/formatting/paragraph-style-resolver.ts +92 -0
- package/src/runtime/formatting/projector.ts +75 -0
- package/src/runtime/formatting/resolve-effective.ts +407 -0
- package/src/runtime/formatting/revision-display.ts +105 -0
- package/src/runtime/{paragraph-style-resolver.ts → formatting/style-cascade.ts} +84 -141
- package/src/runtime/{table-style-resolver.ts → formatting/table-style-resolver.ts} +1 -1
- package/src/runtime/formatting/telemetry-bridge.ts +106 -0
- package/src/runtime/{theme-color-resolver.ts → formatting/theme-color.ts} +2 -30
- package/src/runtime/geometry/caret-geometry.ts +164 -0
- package/src/runtime/geometry/geometry-facet.ts +364 -0
- package/src/runtime/geometry/geometry-types.ts +256 -0
- package/src/runtime/geometry/hit-test.ts +125 -0
- package/src/runtime/geometry/index.ts +71 -0
- package/src/runtime/geometry/inert-geometry-facet.ts +43 -0
- package/src/runtime/geometry/invalidation.ts +35 -0
- package/src/runtime/geometry/object-handles.ts +77 -0
- package/src/runtime/geometry/overlay-rects.ts +85 -0
- package/src/runtime/geometry/project-anchors.ts +100 -0
- package/src/runtime/geometry/project-fragments.ts +216 -0
- package/src/runtime/geometry/projector.ts +129 -0
- package/src/runtime/geometry/replacement-envelope.ts +130 -0
- package/src/runtime/geometry/viewport.ts +218 -0
- package/src/runtime/layout/compat-input-ledger.ts +211 -0
- package/src/runtime/layout/index.ts +6 -1
- package/src/runtime/layout/inert-layout-facet.ts +12 -7
- package/src/runtime/layout/layout-engine-instance.ts +189 -11
- package/src/runtime/layout/layout-engine-version.ts +450 -1
- package/src/runtime/layout/layout-facet-types.ts +60 -0
- package/src/runtime/layout/layout-measurement-provider.ts +13 -0
- package/src/runtime/layout/measurement-backend-canvas.ts +14 -2
- package/src/runtime/layout/measurement-backend-empirical.ts +23 -4
- package/src/runtime/layout/page-graph.ts +62 -209
- package/src/runtime/layout/page-story-resolver.ts +7 -12
- package/src/runtime/layout/paginated-layout-engine.ts +186 -11
- package/src/runtime/layout/project-block-fragments.ts +11 -0
- package/src/runtime/layout/projector.ts +90 -0
- package/src/runtime/layout/public-facet.ts +187 -442
- package/src/runtime/layout/resolved-formatting-state.ts +158 -26
- package/src/runtime/layout/table-render-plan.ts +1 -1
- package/src/runtime/prerender/cache-envelope.ts +6 -1
- package/src/runtime/prerender/prerender-document.ts +18 -23
- package/src/runtime/render/decoration-resolver.ts +1 -1
- package/src/runtime/render/render-frame-types.ts +20 -0
- package/src/runtime/render/render-kernel.ts +94 -25
- package/src/runtime/scopes/_formatting-seam.ts +262 -0
- package/src/runtime/scopes/_scope-dependencies.ts +49 -0
- package/src/runtime/scopes/action-validation.ts +356 -0
- package/src/runtime/scopes/attach-explanation.ts +102 -0
- package/src/runtime/scopes/audit-bundle.ts +71 -0
- package/src/runtime/scopes/compile-scope-bundle.ts +163 -0
- package/src/runtime/scopes/compile-scope.ts +262 -0
- package/src/runtime/scopes/compiler-service.ts +431 -0
- package/src/runtime/scopes/create-issue.ts +107 -0
- package/src/runtime/scopes/enumerate-scopes.ts +543 -0
- package/src/runtime/scopes/evidence.ts +233 -0
- package/src/runtime/scopes/index.ts +150 -0
- package/src/runtime/scopes/position-map.ts +214 -0
- package/src/runtime/scopes/preservation-boundary.ts +91 -0
- package/src/runtime/scopes/projector.ts +49 -0
- package/src/runtime/scopes/replaceability.ts +87 -0
- package/src/runtime/scopes/replacement/apply.ts +228 -0
- package/src/runtime/scopes/replacement/compile.ts +59 -0
- package/src/runtime/scopes/replacement/propose.ts +42 -0
- package/src/runtime/scopes/resolve-reference.ts +347 -0
- package/src/runtime/scopes/review-bundle.ts +141 -0
- package/src/runtime/scopes/scope-kinds/_paragraph-text.ts +57 -0
- package/src/runtime/scopes/scope-kinds/_table-text.ts +42 -0
- package/src/runtime/scopes/scope-kinds/comment-thread.ts +59 -0
- package/src/runtime/scopes/scope-kinds/field.ts +65 -0
- package/src/runtime/scopes/scope-kinds/heading.ts +84 -0
- package/src/runtime/scopes/scope-kinds/list-item.ts +77 -0
- package/src/runtime/scopes/scope-kinds/paragraph.ts +182 -0
- package/src/runtime/scopes/scope-kinds/revision.ts +62 -0
- package/src/runtime/scopes/scope-kinds/table-cell.ts +57 -0
- package/src/runtime/scopes/scope-kinds/table-row.ts +61 -0
- package/src/runtime/scopes/scope-kinds/table.ts +55 -0
- package/src/runtime/scopes/scope-range.ts +208 -0
- package/src/runtime/scopes/semantic-scope-types.ts +454 -0
- package/src/runtime/scopes/workflow-overlap.ts +92 -0
- package/src/runtime/selection/index.ts +1 -1
- package/src/runtime/structure-ops/fragment-insert.ts +1 -1
- package/src/runtime/structure-ops/index.ts +1 -1
- package/src/runtime/surface-projection.ts +232 -262
- package/src/runtime/units.ts +4 -2
- package/src/runtime/workflow/coordinator.ts +1348 -0
- package/src/runtime/workflow/derived-scope-resolver.ts +125 -0
- package/src/runtime/workflow/index.ts +25 -0
- package/src/runtime/workflow/markup-mode-policy.ts +98 -0
- package/src/runtime/{workflow-markup.ts → workflow/markup.ts} +6 -6
- package/src/runtime/workflow/metadata-persistence.ts +306 -0
- package/src/runtime/workflow/metadata-writer.ts +123 -0
- package/src/runtime/workflow/overlay-store.ts +690 -0
- package/src/runtime/workflow/projector.ts +127 -0
- package/src/runtime/{query-scopes.ts → workflow/query-scopes.ts} +3 -3
- package/src/runtime/{workflow-rail-segments.ts → workflow/rail/compose.ts} +60 -165
- package/src/runtime/workflow/rail/types.ts +198 -0
- package/src/runtime/workflow/scope-rail-composer.ts +39 -0
- package/src/runtime/{scope-resolver.ts → workflow/scope-resolver.ts} +3 -3
- package/src/runtime/workflow/scope-writer.ts +188 -0
- package/src/runtime/{tamper-gate.ts → workflow/tamper-gate.ts} +1 -1
- package/src/runtime/workflow/visibility-policy.ts +129 -0
- package/src/session/_sync-legacy.ts +66 -0
- package/src/session/export/embedded-reconstitute.ts +104 -0
- package/src/session/export/export-diagnostics.ts +85 -0
- package/src/session/export/export-validation.ts +110 -0
- package/src/session/export/index.ts +34 -0
- package/src/session/export/preservation-reattach.ts +30 -0
- package/src/session/export/serialize-dispatch.ts +165 -0
- package/src/session/export/stateful-export-pipeline.ts +432 -0
- package/src/session/export/stateful-export.ts +684 -0
- package/src/session/import/canonical-assembly.ts +227 -0
- package/src/session/import/diagnostics-session.ts +54 -0
- package/src/session/import/embedded-discovery.ts +225 -0
- package/src/session/import/embedded-offload.ts +337 -0
- package/src/session/import/import-diagnostics.ts +69 -0
- package/src/session/import/loader-types.ts +313 -0
- package/src/session/import/loader.ts +1834 -0
- package/src/session/import/normalize.ts +195 -0
- package/src/session/import/package-parts.ts +217 -0
- package/src/session/import/package-read.ts +195 -0
- package/src/session/import/parse-orchestration.ts +105 -0
- package/src/session/import/part-constants.ts +70 -0
- package/src/session/import/part-discovery.ts +94 -0
- package/src/session/import/preservation-index.ts +46 -0
- package/src/{runtime/read-only-diagnostics-runtime.ts → session/import/read-only-diagnostics.ts} +24 -3
- package/src/session/import/review-import.ts +508 -0
- package/src/session/import/styles-consolidation.ts +281 -0
- package/src/session/import/workflow-scope-import.ts +256 -0
- package/src/session/index.ts +37 -0
- package/src/session/session-state.ts +69 -0
- package/src/session/session.ts +532 -0
- package/src/session/shared/protection.ts +228 -0
- package/src/session/shared/session-utils.ts +82 -0
- package/src/session/types.ts +499 -0
- package/src/shell/chart-snapshots.ts +96 -0
- package/src/shell/media-previews.ts +85 -0
- package/src/shell/overlay-anchor-bridge.ts +53 -0
- package/src/shell/paste-adapter.ts +23 -0
- package/src/shell/ref-commands.ts +1697 -0
- package/src/shell/ref-utilities.ts +48 -0
- package/src/shell/search.ts +51 -0
- package/src/{ui/editor-runtime-boundary.ts → shell/session-bootstrap.ts} +243 -67
- package/src/shell/ui-subscriber-channels.ts +81 -0
- package/src/shell/use-collab-sync.ts +116 -0
- package/src/ui/WordReviewEditor.tsx +496 -2051
- package/src/ui/editor-shell-view.tsx +30 -1
- package/src/ui/editor-surface-controller.tsx +49 -1
- package/src/ui/headless/revision-decoration-model.ts +83 -0
- package/src/{ui-tailwind/chrome → ui/headless}/role-action-sets.ts +1 -1
- package/src/ui/headless/scoped-chrome-policy.ts +2 -2
- package/src/ui/headless/selection-tool-context.ts +1 -1
- package/src/ui/headless/selection-tool-resolver.ts +1 -1
- package/src/ui/runtime-shortcut-dispatch.ts +46 -1
- package/src/ui/ui-controller-factory.ts +221 -0
- package/src/ui-tailwind/chart/ChartSurface.tsx +2 -2
- package/src/ui-tailwind/chart/layout/legend-layout.ts +1 -1
- package/src/ui-tailwind/chart/layout/plot-area.ts +2 -2
- package/src/ui-tailwind/chart/layout/title-layout.ts +1 -1
- package/src/ui-tailwind/chart/render/area.tsx +3 -3
- package/src/ui-tailwind/chart/render/bar-column.tsx +3 -3
- package/src/ui-tailwind/chart/render/bubble.tsx +3 -3
- package/src/ui-tailwind/chart/render/combo.tsx +2 -2
- package/src/ui-tailwind/chart/render/data-labels.tsx +2 -2
- package/src/ui-tailwind/chart/render/font-metrics.ts +2 -2
- package/src/ui-tailwind/chart/render/line.tsx +3 -3
- package/src/ui-tailwind/chart/render/pie.tsx +6 -6
- package/src/ui-tailwind/chart/render/scatter.tsx +3 -3
- package/src/ui-tailwind/chart/render/svg-primitives.ts +3 -3
- package/src/ui-tailwind/chart/render/unsupported.tsx +2 -2
- package/src/ui-tailwind/chrome/build-context-menu-entries.ts +88 -0
- package/src/ui-tailwind/chrome/chrome-preset-toolbar.tsx +1 -1
- package/src/ui-tailwind/chrome/collab-send-to-supplier-button.tsx +1 -1
- package/src/ui-tailwind/chrome/collab-tamper-banner.tsx +1 -1
- package/src/ui-tailwind/chrome/collab-top-nav-container.tsx +1 -1
- package/src/ui-tailwind/chrome/editor-action-registry.ts +553 -0
- package/src/ui-tailwind/chrome/editor-actions-to-palette.ts +182 -0
- package/src/ui-tailwind/chrome/local-surface-arbiter.ts +534 -0
- package/src/ui-tailwind/chrome/resolve-target-kind.ts +226 -0
- package/src/ui-tailwind/chrome/tw-alert-banner.tsx +38 -4
- package/src/ui-tailwind/chrome/tw-context-band.tsx +125 -0
- package/src/ui-tailwind/chrome/tw-context-menu-portal.tsx +248 -0
- package/src/ui-tailwind/chrome/tw-image-context-toolbar.tsx +42 -1
- package/src/ui-tailwind/chrome/tw-selection-anchor-resolver.ts +8 -7
- package/src/ui-tailwind/chrome/tw-selection-tool-blocked.tsx +38 -4
- package/src/ui-tailwind/chrome/tw-selection-tool-comment.tsx +104 -6
- package/src/ui-tailwind/chrome/tw-selection-tool-host.tsx +66 -7
- package/src/ui-tailwind/chrome/tw-selection-tool-workflow.tsx +54 -8
- package/src/ui-tailwind/chrome/tw-shortcut-hint.tsx +7 -1
- package/src/ui-tailwind/chrome/tw-suggestion-card.tsx +33 -0
- package/src/ui-tailwind/chrome/tw-table-context-toolbar.tsx +78 -1
- package/src/ui-tailwind/chrome/tw-table-grip-layer.tsx +16 -8
- package/src/ui-tailwind/chrome/tw-workspace-chrome-host.tsx +276 -0
- package/src/ui-tailwind/chrome/use-context-menu-controller.ts +201 -0
- package/src/ui-tailwind/chrome-overlay/chrome-overlay-projector.ts +1 -1
- package/src/ui-tailwind/chrome-overlay/tw-chrome-overlay.tsx +22 -4
- package/src/ui-tailwind/chrome-overlay/tw-comment-balloon-layer.tsx +1 -1
- package/src/ui-tailwind/chrome-overlay/tw-locked-block-layer.tsx +1 -1
- package/src/ui-tailwind/chrome-overlay/tw-object-selection-overlay.tsx +11 -5
- package/src/ui-tailwind/chrome-overlay/tw-page-stack-overlay-layer.tsx +197 -3
- package/src/ui-tailwind/chrome-overlay/tw-revision-margin-bar-layer.tsx +1 -1
- package/src/ui-tailwind/chrome-overlay/tw-scope-card-layer.tsx +35 -6
- package/src/ui-tailwind/chrome-overlay/tw-scope-rail-layer.tsx +24 -16
- package/src/ui-tailwind/chrome-overlay/tw-table-continuation-header.tsx +1 -1
- package/src/ui-tailwind/debug/README.md +57 -0
- package/src/ui-tailwind/debug/index.ts +3 -0
- package/src/ui-tailwind/debug/tw-debug-overlay.tsx +186 -0
- package/src/ui-tailwind/debug/tw-debug-presentation.tsx +80 -0
- package/src/ui-tailwind/debug/tw-debug-top-bar.tsx +83 -0
- package/src/ui-tailwind/editor-surface/chart-node-view.tsx +2 -2
- package/src/ui-tailwind/editor-surface/float-wrap-resolver.ts +1 -1
- package/src/ui-tailwind/editor-surface/pm-command-bridge.ts +135 -10
- package/src/ui-tailwind/editor-surface/pm-decorations.ts +40 -13
- package/src/ui-tailwind/editor-surface/pm-page-break-decorations.ts +1 -1
- package/src/ui-tailwind/editor-surface/pm-schema.ts +1 -1
- package/src/ui-tailwind/editor-surface/pm-state-from-snapshot.ts +3 -3
- package/src/ui-tailwind/editor-surface/predicted-tag-preflight.ts +1 -1
- package/src/ui-tailwind/editor-surface/remote-cursor-plugin.ts +2 -2
- package/src/ui-tailwind/editor-surface/scroll-anchor.ts +91 -9
- package/src/ui-tailwind/editor-surface/shape-renderer.ts +1 -1
- package/src/ui-tailwind/editor-surface/surface-layer.ts +1 -1
- package/src/ui-tailwind/editor-surface/tw-opaque-block.tsx +1 -1
- package/src/ui-tailwind/editor-surface/tw-page-block-view.helpers.ts +23 -6
- package/src/ui-tailwind/editor-surface/tw-prosemirror-surface.tsx +132 -22
- package/src/ui-tailwind/editor-surface/tw-table-node-view.tsx +1 -1
- package/src/ui-tailwind/index.ts +0 -5
- package/src/ui-tailwind/overlay-anchor-bridge-context.tsx +33 -0
- package/src/ui-tailwind/page-stack/floating-image-overlay-model.ts +66 -29
- package/src/ui-tailwind/page-stack/tw-floating-image-layer.tsx +25 -2
- package/src/ui-tailwind/review/comment-markdown-renderer.tsx +15 -0
- package/src/ui-tailwind/review/tw-review-rail.tsx +92 -4
- package/src/ui-tailwind/review/tw-workflow-tab.tsx +1 -1
- package/src/ui-tailwind/review-workspace/page-chrome.ts +210 -0
- package/src/ui-tailwind/review-workspace/page-shell-metrics.ts +101 -0
- package/src/ui-tailwind/review-workspace/paragraph-layout.ts +115 -0
- package/src/ui-tailwind/review-workspace/selection-toolbar-placement.ts +97 -0
- package/src/ui-tailwind/review-workspace/tw-review-workspace-navigator.tsx +130 -0
- package/src/ui-tailwind/review-workspace/tw-review-workspace-page-toolbar.tsx +240 -0
- package/src/ui-tailwind/review-workspace/tw-review-workspace-rail.tsx +59 -0
- package/src/ui-tailwind/review-workspace/types.ts +408 -0
- package/src/ui-tailwind/review-workspace/use-chrome-policy.ts +104 -0
- package/src/ui-tailwind/review-workspace/use-derived-view-state.ts +151 -0
- package/src/ui-tailwind/review-workspace/use-diagnostics-signal.ts +70 -0
- package/src/ui-tailwind/review-workspace/use-grabbed-segment-offsets.ts +40 -0
- package/src/ui-tailwind/review-workspace/use-layout-facet-render-signal.ts +55 -0
- package/src/ui-tailwind/review-workspace/use-page-markers.ts +130 -0
- package/src/ui-tailwind/review-workspace/use-pm-surface-capture.ts +60 -0
- package/src/ui-tailwind/review-workspace/use-review-rail-state.ts +63 -0
- package/src/ui-tailwind/review-workspace/use-scope-card-state.ts +170 -0
- package/src/ui-tailwind/review-workspace/use-scroll-root-capture.ts +28 -0
- package/src/ui-tailwind/review-workspace/use-selection-toolbar-placement.ts +113 -0
- package/src/ui-tailwind/review-workspace/use-shell-selection-anchor-bridge.ts +120 -0
- package/src/ui-tailwind/review-workspace/use-status-bar-page-facts.ts +55 -0
- package/src/ui-tailwind/review-workspace/use-viewport-dimensions.ts +43 -0
- package/src/ui-tailwind/review-workspace/use-workspace-arbiter.ts +25 -0
- package/src/ui-tailwind/review-workspace/use-workspace-composition.ts +86 -0
- package/src/ui-tailwind/review-workspace/use-workspace-side-effects.ts +150 -0
- package/src/ui-tailwind/theme/editor-theme.css +25 -0
- package/src/ui-tailwind/toolbar/tw-role-action-region.tsx +2 -2
- package/src/ui-tailwind/toolbar/tw-toolbar.tsx +61 -98
- package/src/ui-tailwind/tw-review-workspace.tsx +521 -1802
- package/src/ui-tailwind/ui-api-context.tsx +43 -0
- package/src/ui-tailwind/ui-shell-channels-context.tsx +49 -0
- package/src/validation/compatibility-engine.ts +6 -6
- package/src/runtime/styles-cascade.ts +0 -33
- package/src/ui-tailwind/chrome/tw-mode-dock.tsx +0 -85
- /package/src/runtime/{page-number-format.ts → formatting/field/page-number-format.ts} +0 -0
- /package/src/runtime/{ai-action-policy.ts → workflow/ai-action-policy.ts} +0 -0
- /package/src/runtime/{scope-tag-registry.ts → workflow/scope-tag-registry.ts} +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse-orchestration primitives shared by the sync and async load paths.
|
|
3
|
+
*
|
|
4
|
+
* Slice 5e-6 of refactor/01 package-session. Extracted from
|
|
5
|
+
* `src/io/docx-session.ts` (`createStageEmitter`, `loadStageNow`,
|
|
6
|
+
* `createImportDiagnosticsFromError`, `isPackageImportError`).
|
|
7
|
+
*
|
|
8
|
+
* Contract P6 clean: depends only on `src/io/**` +
|
|
9
|
+
* `src/validation/**` (import-diagnostic producers). No runtime /
|
|
10
|
+
* UI / core / review imports.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import type { LoadStage } from "../../api/public-types.ts";
|
|
14
|
+
import { classifyCorruptPackageError } from "../../io/opc/corrupt-package.ts";
|
|
15
|
+
import {
|
|
16
|
+
createPackageImportDiagnostics,
|
|
17
|
+
createValidationImportDiagnostics,
|
|
18
|
+
type ImportDiagnosticsResult,
|
|
19
|
+
} from "../../validation/import-diagnostics.ts";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Stage-event emitter. When no callback is supplied the emitter is a
|
|
23
|
+
* zero-cost no-op. Shared between the sync and async load orchestrators
|
|
24
|
+
* so both paths emit `load-stage` events at the same four boundaries:
|
|
25
|
+
* `opc` → `body` → `styles-numbering-comments` → `skeleton-ready`.
|
|
26
|
+
*/
|
|
27
|
+
export interface StageEmitter {
|
|
28
|
+
emit(stage: LoadStage): void;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export type LoadStageCallback = (stage: LoadStage, durationMs: number) => void;
|
|
32
|
+
|
|
33
|
+
export function createStageEmitter(
|
|
34
|
+
onStage: LoadStageCallback | undefined,
|
|
35
|
+
): StageEmitter {
|
|
36
|
+
if (!onStage) {
|
|
37
|
+
return {
|
|
38
|
+
emit() {
|
|
39
|
+
/* no-op */
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
let cursor = loadStageNow();
|
|
44
|
+
return {
|
|
45
|
+
emit(stage) {
|
|
46
|
+
const nextMark = loadStageNow();
|
|
47
|
+
onStage(stage, nextMark - cursor);
|
|
48
|
+
cursor = nextMark;
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Monotonic millisecond clock shared by the stage emitter. Falls back to
|
|
55
|
+
* `Date.now()` in environments without `performance.now()` (older Node,
|
|
56
|
+
* certain SSR runtimes).
|
|
57
|
+
*/
|
|
58
|
+
export function loadStageNow(): number {
|
|
59
|
+
return typeof performance !== "undefined" && typeof performance.now === "function"
|
|
60
|
+
? performance.now()
|
|
61
|
+
: Date.now();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Classify a thrown error from `readOpcPackage()` / downstream parse into
|
|
66
|
+
* a typed `ImportDiagnosticsResult`. Routes package-shaped errors through
|
|
67
|
+
* `classifyCorruptPackageError`; everything else becomes a generic
|
|
68
|
+
* validation diagnostic.
|
|
69
|
+
*/
|
|
70
|
+
export function createImportDiagnosticsFromError(error: unknown): ImportDiagnosticsResult {
|
|
71
|
+
if (isPackageImportError(error)) {
|
|
72
|
+
return createPackageImportDiagnostics({
|
|
73
|
+
issue: classifyCorruptPackageError(error),
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return createValidationImportDiagnostics({
|
|
78
|
+
message:
|
|
79
|
+
error instanceof Error
|
|
80
|
+
? error.message
|
|
81
|
+
: "DOCX import failed during validation.",
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Heuristic: does this error look like it originated inside the OPC
|
|
87
|
+
* package reader (zip/relationship/content-types parse failure) as
|
|
88
|
+
* opposed to further downstream validation?
|
|
89
|
+
*/
|
|
90
|
+
export function isPackageImportError(error: unknown): boolean {
|
|
91
|
+
if (!(error instanceof Error)) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const normalized = error.message.toLowerCase();
|
|
96
|
+
return (
|
|
97
|
+
normalized.includes("zip") ||
|
|
98
|
+
normalized.includes("opc package") ||
|
|
99
|
+
normalized.includes("compression") ||
|
|
100
|
+
normalized.includes("relationship") ||
|
|
101
|
+
normalized.includes("/[content_types].xml") ||
|
|
102
|
+
normalized.includes("/word/document.xml") ||
|
|
103
|
+
normalized.includes("xml")
|
|
104
|
+
);
|
|
105
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OOXML part-path + relationship-type + content-type constants shared
|
|
3
|
+
* by the sync + async load paths + the export pipeline.
|
|
4
|
+
*
|
|
5
|
+
* Slice 5e-7.d.1 — relocated from `src/io/docx-session.ts`. Neutral
|
|
6
|
+
* shared home so both the load-sync / load-async migrations (5e-7.d.2
|
|
7
|
+
* + 5e-7.d.3) and the existing `src/session/export/stateful-export-
|
|
8
|
+
* pipeline.ts` can reach a single source of truth. Historically the
|
|
9
|
+
* 6 core-/app-properties constants were extracted alongside the
|
|
10
|
+
* export helpers in 5e-6f.1; these 27 siblings belong with the
|
|
11
|
+
* load-pipeline group.
|
|
12
|
+
*
|
|
13
|
+
* P6-clean: string literals only, no imports.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
// -----------------------------------------------------------------------------
|
|
17
|
+
// Part paths
|
|
18
|
+
// -----------------------------------------------------------------------------
|
|
19
|
+
|
|
20
|
+
export const NUMBERING_PART_PATH = "/word/numbering.xml";
|
|
21
|
+
export const COMMENTS_EXTENDED_PART_PATH = "/word/commentsExtended.xml";
|
|
22
|
+
export const COMMENTS_IDS_PART_PATH = "/word/commentsIds.xml";
|
|
23
|
+
export const PEOPLE_PART_PATH = "/word/people.xml";
|
|
24
|
+
export const STYLES_PART_PATH = "/word/styles.xml";
|
|
25
|
+
export const FONT_TABLE_PART_PATH = "/word/fontTable.xml";
|
|
26
|
+
export const FOOTNOTES_PART_PATH = "/word/footnotes.xml";
|
|
27
|
+
export const ENDNOTES_PART_PATH = "/word/endnotes.xml";
|
|
28
|
+
export const SETTINGS_PART_PATH = "/word/settings.xml";
|
|
29
|
+
|
|
30
|
+
// -----------------------------------------------------------------------------
|
|
31
|
+
// Content types
|
|
32
|
+
// -----------------------------------------------------------------------------
|
|
33
|
+
|
|
34
|
+
export const MAIN_DOCUMENT_CONTENT_TYPE =
|
|
35
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml";
|
|
36
|
+
export const COMMENTS_CONTENT_TYPE =
|
|
37
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml";
|
|
38
|
+
export const COMMENTS_EXTENDED_CONTENT_TYPE =
|
|
39
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtended+xml";
|
|
40
|
+
export const COMMENTS_IDS_CONTENT_TYPE =
|
|
41
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.commentsIds+xml";
|
|
42
|
+
export const PEOPLE_CONTENT_TYPE =
|
|
43
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.people+xml";
|
|
44
|
+
|
|
45
|
+
// -----------------------------------------------------------------------------
|
|
46
|
+
// Relationship types
|
|
47
|
+
// -----------------------------------------------------------------------------
|
|
48
|
+
|
|
49
|
+
export const NUMBERING_RELATIONSHIP_TYPE =
|
|
50
|
+
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering";
|
|
51
|
+
export const COMMENTS_EXTENDED_RELATIONSHIP_TYPE =
|
|
52
|
+
"http://schemas.microsoft.com/office/2011/relationships/commentsExtended";
|
|
53
|
+
export const COMMENTS_IDS_RELATIONSHIP_TYPE =
|
|
54
|
+
"http://schemas.microsoft.com/office/2016/09/relationships/commentsIds";
|
|
55
|
+
export const PEOPLE_RELATIONSHIP_TYPE =
|
|
56
|
+
"http://schemas.microsoft.com/office/2011/relationships/people";
|
|
57
|
+
export const HEADER_RELATIONSHIP_TYPE =
|
|
58
|
+
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/header";
|
|
59
|
+
export const FOOTER_RELATIONSHIP_TYPE =
|
|
60
|
+
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer";
|
|
61
|
+
export const FOOTNOTES_RELATIONSHIP_TYPE =
|
|
62
|
+
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes";
|
|
63
|
+
export const ENDNOTES_RELATIONSHIP_TYPE =
|
|
64
|
+
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes";
|
|
65
|
+
export const SETTINGS_RELATIONSHIP_TYPE =
|
|
66
|
+
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings";
|
|
67
|
+
export const STYLES_RELATIONSHIP_TYPE =
|
|
68
|
+
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";
|
|
69
|
+
export const FONT_TABLE_RELATIONSHIP_TYPE =
|
|
70
|
+
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable";
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Part-path discovery against an OPC package.
|
|
3
|
+
*
|
|
4
|
+
* First extraction under Slice 2 of refactor/01 package-session.
|
|
5
|
+
* Pure: takes an `OpcPackage` + optional part-relationship input,
|
|
6
|
+
* returns a part path (or undefined). No runtime / UI / core / review
|
|
7
|
+
* imports — contract P6 clean.
|
|
8
|
+
*
|
|
9
|
+
* Legacy home: `src/io/docx-session.ts` lines 3667–3712 (pre-Slice 2).
|
|
10
|
+
* The legacy file now imports the resolvers from here so the two paths
|
|
11
|
+
* share one implementation while further load-orchestration extraction
|
|
12
|
+
* progresses.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import type { OpcPackage } from "../../io/opc/package-reader.ts";
|
|
16
|
+
import {
|
|
17
|
+
resolveRelationshipTarget,
|
|
18
|
+
type OpcRelationship,
|
|
19
|
+
} from "../../io/ooxml/part-manifest.ts";
|
|
20
|
+
|
|
21
|
+
/** Default `/word/document.xml` fallback when the package relationships omit the link. */
|
|
22
|
+
export const MAIN_DOCUMENT_PATH = "/word/document.xml";
|
|
23
|
+
|
|
24
|
+
/** Default `/word/comments.xml` fallback when the main-document relationships omit the link. */
|
|
25
|
+
export const COMMENTS_PART_PATH = "/word/comments.xml";
|
|
26
|
+
|
|
27
|
+
/** `officeDocument` relationship type — identifies the main-document part. */
|
|
28
|
+
export const OFFICE_DOCUMENT_RELATIONSHIP_TYPE =
|
|
29
|
+
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument";
|
|
30
|
+
|
|
31
|
+
/** `comments` relationship type — identifies the comments part. */
|
|
32
|
+
export const COMMENTS_RELATIONSHIP_TYPE =
|
|
33
|
+
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Resolve the main-document part path from package-level relationships.
|
|
37
|
+
* Returns the declared target if the relationship is present and
|
|
38
|
+
* internal; otherwise the default `/word/document.xml` if that part
|
|
39
|
+
* exists in the package; otherwise `undefined` (triggers a fatal
|
|
40
|
+
* diagnostic at the caller).
|
|
41
|
+
*/
|
|
42
|
+
export function resolveMainDocumentPartPath(
|
|
43
|
+
sourcePackage: OpcPackage,
|
|
44
|
+
): string | undefined {
|
|
45
|
+
const relationship = sourcePackage.manifest.packageRelationships.find(
|
|
46
|
+
(candidate) =>
|
|
47
|
+
candidate.type === OFFICE_DOCUMENT_RELATIONSHIP_TYPE &&
|
|
48
|
+
candidate.targetMode === "internal",
|
|
49
|
+
);
|
|
50
|
+
if (relationship) {
|
|
51
|
+
return resolveRelationshipTarget(null, relationship);
|
|
52
|
+
}
|
|
53
|
+
return sourcePackage.parts.has(MAIN_DOCUMENT_PATH) ? MAIN_DOCUMENT_PATH : undefined;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Resolve an arbitrary document-related part path by relationship type.
|
|
58
|
+
* Used by comment / header / footer / footnote / endnote / theme /
|
|
59
|
+
* numbering lookups. Returns the relationship target when present;
|
|
60
|
+
* otherwise the fallback path when the package has it; otherwise
|
|
61
|
+
* `undefined`.
|
|
62
|
+
*/
|
|
63
|
+
export function resolveDocumentRelatedPartPath(
|
|
64
|
+
sourcePackage: OpcPackage,
|
|
65
|
+
sourceDocumentPartPath: string,
|
|
66
|
+
relationships: readonly OpcRelationship[],
|
|
67
|
+
relationshipType: string,
|
|
68
|
+
fallbackPartPath: string,
|
|
69
|
+
): string | undefined {
|
|
70
|
+
const relationship = relationships.find(
|
|
71
|
+
(candidate) =>
|
|
72
|
+
candidate.type === relationshipType && candidate.targetMode === "internal",
|
|
73
|
+
);
|
|
74
|
+
if (!relationship) {
|
|
75
|
+
return sourcePackage.parts.has(fallbackPartPath) ? fallbackPartPath : undefined;
|
|
76
|
+
}
|
|
77
|
+
const targetPath = resolveRelationshipTarget(sourceDocumentPartPath, relationship);
|
|
78
|
+
return sourcePackage.parts.has(targetPath) ? targetPath : undefined;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/** Narrow resolver for the comments part (fallback `/word/comments.xml`). */
|
|
82
|
+
export function resolveCommentsPartPath(
|
|
83
|
+
sourcePackage: OpcPackage,
|
|
84
|
+
sourceDocumentPartPath: string,
|
|
85
|
+
relationships: readonly OpcRelationship[],
|
|
86
|
+
): string | undefined {
|
|
87
|
+
return resolveDocumentRelatedPartPath(
|
|
88
|
+
sourcePackage,
|
|
89
|
+
sourceDocumentPartPath,
|
|
90
|
+
relationships,
|
|
91
|
+
COMMENTS_RELATIONSHIP_TYPE,
|
|
92
|
+
COMMENTS_PART_PATH,
|
|
93
|
+
);
|
|
94
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Preservation-field orchestration for the import load path.
|
|
3
|
+
*
|
|
4
|
+
* Slice 3c of refactor/01 package-session. Extracted from
|
|
5
|
+
* src/io/docx-session.ts (duplication of the preservation-field
|
|
6
|
+
* spread at the createImportedCanonicalDocument call site in both the
|
|
7
|
+
* sync and async load paths).
|
|
8
|
+
*
|
|
9
|
+
* The helper merges the parser-side `PreservationStore` (which already
|
|
10
|
+
* carries `opaqueFragments` accumulated by the normalize pass) with the
|
|
11
|
+
* package-part records gathered from the OPC package, yielding a
|
|
12
|
+
* complete `PreservationStore` ready to pass to
|
|
13
|
+
* `createImportedCanonicalDocument`.
|
|
14
|
+
*
|
|
15
|
+
* Contract P6 clean. Depends on:
|
|
16
|
+
* - src/model/canonical-document.ts (allowed)
|
|
17
|
+
* - src/io/opc/package-reader.ts (allowed)
|
|
18
|
+
* - ./package-parts.ts (peer session module)
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import type { PreservationStore } from "../../model/canonical-document.ts";
|
|
22
|
+
import type { OpcPackage } from "../../io/opc/package-reader.ts";
|
|
23
|
+
import { collectPreservedPackageParts } from "./package-parts.ts";
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Build the complete `PreservationStore` for a freshly imported document.
|
|
27
|
+
*
|
|
28
|
+
* Merges the opaque fragments already written by the parser/normalize
|
|
29
|
+
* pass (`basePreservation`) with the verbatim-round-trip package parts
|
|
30
|
+
* collected from the OPC package. `ownedPartPaths` lists every part
|
|
31
|
+
* that the runtime will regenerate on export — those must NOT be added
|
|
32
|
+
* to `packageParts` (they won't be byte-stable).
|
|
33
|
+
*/
|
|
34
|
+
export function buildImportPreservation(
|
|
35
|
+
basePreservation: PreservationStore,
|
|
36
|
+
sourcePackage: OpcPackage,
|
|
37
|
+
ownedPartPaths: ReadonlyArray<string | undefined>,
|
|
38
|
+
): PreservationStore {
|
|
39
|
+
return {
|
|
40
|
+
...basePreservation,
|
|
41
|
+
packageParts: {
|
|
42
|
+
...basePreservation.packageParts,
|
|
43
|
+
...collectPreservedPackageParts(sourcePackage, ownedPartPaths),
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
package/src/{runtime/read-only-diagnostics-runtime.ts → session/import/read-only-diagnostics.ts}
RENAMED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read-only diagnostics snapshot builder.
|
|
3
|
+
*
|
|
4
|
+
* Called from the session load path's error branches
|
|
5
|
+
* (`createDiagnosticsSession` in `src/io/docx-session.ts`) when import
|
|
6
|
+
* has hit a fatal parse / OPC / validation error and can't produce a
|
|
7
|
+
* real editor session. Returns a degenerate `ReadOnlyDiagnosticsRuntime`
|
|
8
|
+
* that exposes the diagnostic payload as an always-read-only editor
|
|
9
|
+
* state — every dispatch / undo / redo / export call throws, while
|
|
10
|
+
* `getPersistedSnapshot()` + `getCompatibilityReport()` return the
|
|
11
|
+
* pre-built snapshot carrying the fatal error + any preceding warnings.
|
|
12
|
+
*
|
|
13
|
+
* Slice 5e-7.c — relocated from `src/runtime/read-only-diagnostics-
|
|
14
|
+
* runtime.ts`. Despite the `Runtime` suffix on the interface name this
|
|
15
|
+
* function does not own runtime state: it builds pure data from an
|
|
16
|
+
* `ImportDiagnosticsResult`. Session layer is the right home — it
|
|
17
|
+
* imports only from `src/model/**`, `src/api/**`, and
|
|
18
|
+
* `src/validation/**`, all P6-allowed. One less forbidden
|
|
19
|
+
* runtime-layer transit for `docx-session.ts` to carry into 5e-9.
|
|
20
|
+
*/
|
|
21
|
+
|
|
1
22
|
import type {
|
|
2
23
|
CompatibilityReport,
|
|
3
24
|
EditorWarning,
|
|
@@ -5,9 +26,9 @@ import type {
|
|
|
5
26
|
ExportResult,
|
|
6
27
|
PersistedEditorSnapshot,
|
|
7
28
|
RuntimeRenderSnapshot,
|
|
8
|
-
} from "
|
|
9
|
-
import { createCanonicalDocumentId } from "
|
|
10
|
-
import type { ImportDiagnosticsResult } from "
|
|
29
|
+
} from "../../api/public-types.ts";
|
|
30
|
+
import { createCanonicalDocumentId } from "../../model/canonical-document.ts";
|
|
31
|
+
import type { ImportDiagnosticsResult } from "../../validation/import-diagnostics.ts";
|
|
11
32
|
|
|
12
33
|
export interface ReadOnlyDiagnosticsRuntime {
|
|
13
34
|
getRenderSnapshot(): RuntimeRenderSnapshot;
|