@beyondwork/docx-react-component 1.0.0 → 1.0.1

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 (704) hide show
  1. package/dist/chunk-32W6IVQE.js +7725 -0
  2. package/dist/chunk-32W6IVQE.js.map +1 -0
  3. package/dist/index.cjs +23722 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +7 -0
  6. package/dist/index.d.ts +7 -0
  7. package/dist/index.js +16011 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/public-types-DqCURAz8.d.cts +1152 -0
  10. package/dist/public-types-DqCURAz8.d.ts +1152 -0
  11. package/dist/tailwind.cjs +8295 -0
  12. package/dist/tailwind.cjs.map +1 -0
  13. package/dist/tailwind.d.cts +323 -0
  14. package/dist/tailwind.d.ts +323 -0
  15. package/dist/tailwind.js +553 -0
  16. package/dist/tailwind.js.map +1 -0
  17. package/package.json +52 -31
  18. package/.codex/config.toml +0 -5
  19. package/.corepack/v1/pnpm/10.30.3/.corepack +0 -1
  20. package/.corepack/v1/pnpm/10.30.3/LICENSE +0 -22
  21. package/.corepack/v1/pnpm/10.30.3/README.md +0 -240
  22. package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp +0 -6
  23. package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp.cmd +0 -5
  24. package/.corepack/v1/pnpm/10.30.3/dist/pnpm.cjs +0 -195400
  25. package/.corepack/v1/pnpm/10.30.3/dist/pnpmrc +0 -2
  26. package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-arm64-2HJ4WGO6.node +0 -0
  27. package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-x64-3G3H6IW4.node +0 -0
  28. package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-arm64-msvc-Q6BARPPB.node +0 -0
  29. package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-x64-msvc-J2TZHRQI.node +0 -0
  30. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.bash +0 -31
  31. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.fish +0 -22
  32. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.ps1 +0 -193
  33. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.zsh +0 -27
  34. package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x64.exe +0 -0
  35. package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x86.exe +0 -0
  36. package/.corepack/v1/pnpm/10.30.3/dist/worker.js +0 -10119
  37. package/.corepack/v1/pnpm/10.30.3/package.json +0 -192
  38. package/.cursor/mcp.json +0 -7
  39. package/.github/workflows/ci.yml +0 -35
  40. package/.mcp.json +0 -7
  41. package/.openclaw/workspace-state.json +0 -4
  42. package/.pnpmrc.json +0 -1
  43. package/.wave-launch.sh +0 -7
  44. package/.workspace-marker +0 -1
  45. package/AGENTS.md +0 -78
  46. package/CHANGELOG.md +0 -177
  47. package/DESIGN.md +0 -929
  48. package/HEARTBEAT.md +0 -7
  49. package/IDENTITY.md +0 -23
  50. package/SOUL.md +0 -36
  51. package/TOOLS.md +0 -40
  52. package/USER.md +0 -17
  53. package/docs/README.md +0 -107
  54. package/docs/agents/wave-cont-eval-role.md +0 -36
  55. package/docs/agents/wave-cont-qa-role.md +0 -52
  56. package/docs/agents/wave-deploy-verifier-role.md +0 -34
  57. package/docs/agents/wave-design-role.md +0 -47
  58. package/docs/agents/wave-documentation-role.md +0 -34
  59. package/docs/agents/wave-infra-role.md +0 -34
  60. package/docs/agents/wave-integration-role.md +0 -37
  61. package/docs/agents/wave-launcher-role.md +0 -41
  62. package/docs/agents/wave-orchestrator-role.md +0 -52
  63. package/docs/agents/wave-planner-role.md +0 -39
  64. package/docs/agents/wave-security-role.md +0 -40
  65. package/docs/architecture/docx/README.md +0 -10
  66. package/docs/architecture/future/README.md +0 -8
  67. package/docs/architecture/ooxml-upgrade-analysis.md +0 -134
  68. package/docs/architecture/platform/shared-openxml-editor-platform.md +0 -153
  69. package/docs/architecture/xlsx/canonical-workbook-model-and-commands.md +0 -187
  70. package/docs/architecture/xlsx/spreadsheet-editor-frontend-architecture.md +0 -150
  71. package/docs/comment-redline-overview.md +0 -350
  72. package/docs/concepts/context7-vs-skills.md +0 -118
  73. package/docs/concepts/operating-modes.md +0 -91
  74. package/docs/concepts/runtime-agnostic-orchestration.md +0 -111
  75. package/docs/concepts/what-is-a-wave.md +0 -217
  76. package/docs/context7/bundles.json +0 -222
  77. package/docs/context7/planner-agent/README.md +0 -28
  78. package/docs/context7/planner-agent/manifest.json +0 -83
  79. package/docs/context7/planner-agent/papers/cooperbench-why-coding-agents-cannot-be-your-teammates-yet.md +0 -3283
  80. package/docs/context7/planner-agent/papers/dova-deliberation-first-multi-agent-orchestration-for-autonomous-research-automation.md +0 -1699
  81. package/docs/context7/planner-agent/papers/dpbench-large-language-models-struggle-with-simultaneous-coordination.md +0 -2251
  82. package/docs/context7/planner-agent/papers/incremental-planning-to-control-a-blackboard-based-problem-solver.md +0 -1729
  83. package/docs/context7/planner-agent/papers/silo-bench-a-scalable-environment-for-evaluating-distributed-coordination-in-multi-agent-llm-systems.md +0 -3747
  84. package/docs/context7/planner-agent/papers/todoevolve-learning-to-architect-agent-planning-systems.md +0 -1675
  85. package/docs/context7/planner-agent/papers/verified-multi-agent-orchestration-a-plan-execute-verify-replan-framework-for-complex-query-resolution.md +0 -1173
  86. package/docs/context7/planner-agent/papers/why-do-multi-agent-llm-systems-fail.md +0 -5211
  87. package/docs/context7/planner-agent/topics/planning-and-orchestration.md +0 -24
  88. package/docs/evals/arm-templates/README.md +0 -13
  89. package/docs/evals/arm-templates/full-wave.json +0 -15
  90. package/docs/evals/arm-templates/single-agent.json +0 -15
  91. package/docs/evals/benchmark-catalog.json +0 -670
  92. package/docs/evals/cases/README.md +0 -47
  93. package/docs/evals/cases/wave-blackboard-inbox-targeting.json +0 -73
  94. package/docs/evals/cases/wave-contradiction-conflict.json +0 -104
  95. package/docs/evals/cases/wave-expert-routing-preservation.json +0 -69
  96. package/docs/evals/cases/wave-hidden-profile-private-evidence.json +0 -81
  97. package/docs/evals/cases/wave-premature-closure-guard.json +0 -71
  98. package/docs/evals/cases/wave-silo-cross-agent-state.json +0 -77
  99. package/docs/evals/cases/wave-simultaneous-lockstep.json +0 -92
  100. package/docs/evals/external-benchmarks.json +0 -85
  101. package/docs/evals/external-command-config.sample.json +0 -9
  102. package/docs/evals/external-command-config.swe-bench-pro.json +0 -8
  103. package/docs/evals/pilots/README.md +0 -47
  104. package/docs/evals/pilots/swe-bench-pro-public-full-wave-review-10.json +0 -64
  105. package/docs/evals/pilots/swe-bench-pro-public-pilot.json +0 -111
  106. package/docs/evals/wave-benchmark-program.md +0 -302
  107. package/docs/guides/planner.md +0 -220
  108. package/docs/guides/recommendations-0.8.9.md +0 -133
  109. package/docs/guides/signal-wrappers.md +0 -165
  110. package/docs/guides/terminal-surfaces.md +0 -96
  111. package/docs/image copy.png +0 -0
  112. package/docs/image.png +0 -0
  113. package/docs/images/image.png +0 -0
  114. package/docs/legal-feedback-architecture.md +0 -498
  115. package/docs/plans/component-cutover-matrix.json +0 -1072
  116. package/docs/plans/component-cutover-matrix.md +0 -307
  117. package/docs/plans/context7-wave-orchestrator.md +0 -155
  118. package/docs/plans/current-state.md +0 -198
  119. package/docs/plans/docx/README.md +0 -9
  120. package/docs/plans/examples/wave-benchmark-improvement.md +0 -108
  121. package/docs/plans/examples/wave-example-live-proof.md +0 -435
  122. package/docs/plans/master-plan.md +0 -224
  123. package/docs/plans/migration.md +0 -538
  124. package/docs/plans/operations/README.md +0 -7
  125. package/docs/plans/operations/wave-10-word-certification.md +0 -87
  126. package/docs/plans/operations/wave-8-railway-staging.md +0 -153
  127. package/docs/plans/operations/wave-9-manual-certification.md +0 -73
  128. package/docs/plans/platform/README.md +0 -9
  129. package/docs/plans/reference/legal-checklist-coverage.md +0 -258
  130. package/docs/plans/wave-orchestrator.md +0 -423
  131. package/docs/plans/waves/README.md +0 -75
  132. package/docs/plans/waves/completed/wave-0.md +0 -195
  133. package/docs/plans/waves/completed/wave-1.md +0 -379
  134. package/docs/plans/waves/completed/wave-10.md +0 -670
  135. package/docs/plans/waves/completed/wave-11.md +0 -335
  136. package/docs/plans/waves/completed/wave-12.md +0 -417
  137. package/docs/plans/waves/completed/wave-13.md +0 -316
  138. package/docs/plans/waves/completed/wave-14.md +0 -319
  139. package/docs/plans/waves/completed/wave-15.md +0 -321
  140. package/docs/plans/waves/completed/wave-16.md +0 -316
  141. package/docs/plans/waves/completed/wave-17.md +0 -331
  142. package/docs/plans/waves/completed/wave-18.md +0 -328
  143. package/docs/plans/waves/completed/wave-2.md +0 -438
  144. package/docs/plans/waves/completed/wave-3.md +0 -435
  145. package/docs/plans/waves/completed/wave-4.md +0 -430
  146. package/docs/plans/waves/completed/wave-5.md +0 -430
  147. package/docs/plans/waves/completed/wave-6.md +0 -430
  148. package/docs/plans/waves/completed/wave-7.md +0 -526
  149. package/docs/plans/waves/completed/wave-8.md +0 -596
  150. package/docs/plans/waves/completed/wave-9.md +0 -552
  151. package/docs/plans/waves/deferred/README.md +0 -14
  152. package/docs/plans/waves/deferred/encrypted-intake-contracts.md +0 -282
  153. package/docs/plans/waves/deferred/legal-feedback-wave-expansion.md +0 -308
  154. package/docs/plans/waves/deferred/wave-encrypted-intake.md +0 -451
  155. package/docs/plans/waves/design/README.md +0 -5
  156. package/docs/plans/waves/design/wave-1-a1.md +0 -309
  157. package/docs/plans/waves/reviews/README.md +0 -5
  158. package/docs/plans/waves/reviews/wave-0-cont-qa.md +0 -151
  159. package/docs/plans/waves/reviews/wave-1-cont-qa.md +0 -46
  160. package/docs/plans/waves/reviews/wave-10-accessibility-and-design.md +0 -51
  161. package/docs/plans/waves/reviews/wave-10-cont-qa.md +0 -24
  162. package/docs/plans/waves/reviews/wave-10-dashboard-proof.md +0 -46
  163. package/docs/plans/waves/reviews/wave-10-performance-signoff.md +0 -55
  164. package/docs/plans/waves/reviews/wave-10-regression-proof.md +0 -23
  165. package/docs/plans/waves/reviews/wave-10-release-audit.md +0 -31
  166. package/docs/plans/waves/reviews/wave-10-service-proof.md +0 -83
  167. package/docs/plans/waves/reviews/wave-10-word-certification.md +0 -31
  168. package/docs/plans/waves/reviews/wave-18-ai-contract-closure.md +0 -277
  169. package/docs/plans/waves/reviews/wave-18-cont-qa.md +0 -255
  170. package/docs/plans/waves/reviews/wave-18-parity-proof.md +0 -271
  171. package/docs/plans/waves/reviews/wave-19-cont-qa.md +0 -59
  172. package/docs/plans/waves/reviews/wave-2-cont-qa.md +0 -72
  173. package/docs/plans/waves/reviews/wave-20-cont-qa.md +0 -60
  174. package/docs/plans/waves/reviews/wave-25-cont-qa.md +0 -48
  175. package/docs/plans/waves/reviews/wave-28-cont-qa.md +0 -46
  176. package/docs/plans/waves/reviews/wave-29-cont-qa.md +0 -53
  177. package/docs/plans/waves/reviews/wave-3-cont-qa.md +0 -53
  178. package/docs/plans/waves/reviews/wave-3-core-proof.md +0 -77
  179. package/docs/plans/waves/reviews/wave-3-validator-proof.md +0 -73
  180. package/docs/plans/waves/reviews/wave-32-cont-qa.md +0 -43
  181. package/docs/plans/waves/reviews/wave-33-cont-qa.md +0 -526
  182. package/docs/plans/waves/reviews/wave-34-cont-qa.md +0 -100
  183. package/docs/plans/waves/reviews/wave-35-cont-qa.md +0 -145
  184. package/docs/plans/waves/reviews/wave-4-cont-qa.md +0 -47
  185. package/docs/plans/waves/reviews/wave-4-structure-proof.md +0 -69
  186. package/docs/plans/waves/reviews/wave-5-comment-proof.md +0 -158
  187. package/docs/plans/waves/reviews/wave-5-cont-qa.md +0 -68
  188. package/docs/plans/waves/reviews/wave-6-cont-qa.md +0 -416
  189. package/docs/plans/waves/reviews/wave-6-redline-proof.md +0 -130
  190. package/docs/plans/waves/reviews/wave-7-cont-qa.md +0 -82
  191. package/docs/plans/waves/reviews/wave-7-ooxml-compliance.md +0 -85
  192. package/docs/plans/waves/reviews/wave-7-preservation-proof.md +0 -119
  193. package/docs/plans/waves/reviews/wave-7-trust-ux.md +0 -87
  194. package/docs/plans/waves/reviews/wave-8-accessibility-and-design.md +0 -128
  195. package/docs/plans/waves/reviews/wave-8-cont-qa.md +0 -92
  196. package/docs/plans/waves/reviews/wave-8-live-proof.md +0 -140
  197. package/docs/plans/waves/reviews/wave-8-security.md +0 -47
  198. package/docs/plans/waves/reviews/wave-9-editor-embedding.md +0 -39
  199. package/docs/plans/waves/reviews/wave-9-fixture-runner.md +0 -56
  200. package/docs/plans/waves/reviews/wave-9-live-proof.md +0 -105
  201. package/docs/plans/waves/reviews/wave-9-usability-and-performance.md +0 -152
  202. package/docs/plans/waves/specs/README.md +0 -5
  203. package/docs/plans/waves/specs/wave-1-component-boundaries.md +0 -322
  204. package/docs/plans/waves/specs/wave-1-ooxml-contracts.md +0 -323
  205. package/docs/plans/waves/specs/wave-1-review-and-ui-contracts.md +0 -339
  206. package/docs/plans/waves/specs/wave-1-runtime-contracts.md +0 -509
  207. package/docs/plans/waves/wave-19.md +0 -341
  208. package/docs/plans/waves/wave-20.md +0 -308
  209. package/docs/plans/waves/wave-21.md +0 -289
  210. package/docs/plans/waves/wave-22.md +0 -221
  211. package/docs/plans/waves/wave-23.md +0 -295
  212. package/docs/plans/waves/wave-24.md +0 -286
  213. package/docs/plans/waves/wave-25.md +0 -313
  214. package/docs/plans/waves/wave-26.md +0 -300
  215. package/docs/plans/waves/wave-27.md +0 -299
  216. package/docs/plans/waves/wave-28.md +0 -368
  217. package/docs/plans/waves/wave-29.md +0 -303
  218. package/docs/plans/waves/wave-30.md +0 -307
  219. package/docs/plans/waves/wave-31.md +0 -231
  220. package/docs/plans/waves/wave-32.md +0 -152
  221. package/docs/plans/waves/wave-33.md +0 -147
  222. package/docs/plans/waves/wave-34.md +0 -148
  223. package/docs/plans/waves/wave-35.md +0 -141
  224. package/docs/plans/waves/wave-36.md +0 -146
  225. package/docs/plans/xlsx/README.md +0 -14
  226. package/docs/plans/xlsx/xlsx-fixture-corpus-and-certification-plan.md +0 -126
  227. package/docs/reference/cli-reference.md +0 -600
  228. package/docs/reference/coordination-and-closure.md +0 -487
  229. package/docs/reference/deep-research-report (15).md +0 -25
  230. package/docs/reference/docx/README.md +0 -10
  231. package/docs/reference/legal-checklist.md +0 -445
  232. package/docs/reference/live-proof-waves.md +0 -199
  233. package/docs/reference/ooxml-compliance.md +0 -129
  234. package/docs/reference/ooxml-feature-parity-matrix.md +0 -172
  235. package/docs/reference/platform/shared-ooxml-platform-guidance.md +0 -77
  236. package/docs/reference/prototype-agent-prompt-legal-fidelity.md +0 -155
  237. package/docs/reference/public-api.md +0 -456
  238. package/docs/reference/repository-guidance.md +0 -58
  239. package/docs/reference/runtime-config/README.md +0 -182
  240. package/docs/reference/runtime-config/claude.md +0 -110
  241. package/docs/reference/runtime-config/codex.md +0 -82
  242. package/docs/reference/runtime-config/opencode.md +0 -93
  243. package/docs/reference/sample-waves.md +0 -105
  244. package/docs/reference/skills.md +0 -237
  245. package/docs/reference/templates/AGENTS.md +0 -78
  246. package/docs/reference/templates/HEARTBEAT.md +0 -7
  247. package/docs/reference/templates/IDENTITY.md +0 -23
  248. package/docs/reference/templates/SOUL.md +0 -36
  249. package/docs/reference/templates/TOOLS.md +0 -40
  250. package/docs/reference/templates/USER.md +0 -17
  251. package/docs/reference/wave-control.md +0 -184
  252. package/docs/reference/wave-planning-lessons.md +0 -167
  253. package/docs/reference/word-review-editor-frontend-architecture.md +0 -479
  254. package/docs/reference/word-review-editor-ux-guide.md +0 -253
  255. package/docs/reference/xlsx/xlsx-ooxml-compliance.md +0 -137
  256. package/docs/research/agent-context-sources.md +0 -178
  257. package/docs/research/coordination-failure-review.md +0 -290
  258. package/docs/research/docx-react-component/Canonical Document Schema Specification for a React-based Word-compatible Editor.md +0 -2317
  259. package/docs/research/docx-react-component/Feature Compatibility Matrix for a React Word Compatible Legal Editor v1.md +0 -219
  260. package/docs/research/docx-react-component/React Component Architecture and Front-End Structure Specification for a Word-Compatible Legal Review Editor.md +0 -1112
  261. package/docs/research/docx-react-component/document_compatibility_and_testing_spec.md +0 -751
  262. package/docs/research/xlsx/raw/README.md +0 -13
  263. package/docs/roadmap.md +0 -174
  264. package/docs/superpowers/plans/2026-03-28-harness-control-bar.md +0 -677
  265. package/docs/superpowers/specs/2026-03-28-harness-control-bar-design.md +0 -274
  266. package/docs/xlsx-react/README.md +0 -38
  267. package/docs/xlsx-react/agent-llm-interaction-layer-docx-xlsx.md +0 -621
  268. package/docs/xlsx-react/canonical-workbook-model-and-commands.md +0 -948
  269. package/docs/xlsx-react/shared-openxml-editor-platform-docx-xlsx.md +0 -228
  270. package/docs/xlsx-react/spreadsheet-editor-component-architecture.md +0 -809
  271. package/docs/xlsx-react/spreadsheet-editor-frontend-architecture.md +0 -537
  272. package/docs/xlsx-react/spreadsheet-editor-ux-guide.md +0 -520
  273. package/docs/xlsx-react/xlsx-editor-research-pack.md +0 -871
  274. package/docs/xlsx-react/xlsx-fixture-corpus-and-certification-plan.md +0 -436
  275. package/docs/xlsx-react/xlsx-ooxml-compliance.md +0 -320
  276. package/examples/README.md +0 -16
  277. package/memory/MEMORY.md +0 -24
  278. package/pnpm-workspace.yaml +0 -4
  279. package/scripts/check-no-authored-js.sh +0 -13
  280. package/scripts/context7-api-check.sh +0 -65
  281. package/scripts/context7-export-env.sh +0 -42
  282. package/scripts/run-context7-mcp.sh +0 -8
  283. package/scripts/run-workspace-tests.sh +0 -15
  284. package/scripts/start-wave-10-local.sh +0 -189
  285. package/scripts/wave-agent-attach.sh +0 -47
  286. package/scripts/wave-auto-answer.sh +0 -118
  287. package/scripts/wave-dashboard-attach.sh +0 -13
  288. package/scripts/wave-launch.sh +0 -273
  289. package/scripts/wave-overnight-supervisor.sh +0 -145
  290. package/scripts/wave-status.sh +0 -379
  291. package/scripts/wave-watch.sh +0 -231
  292. package/services/README.md +0 -17
  293. package/services/openxml-validator/Dockerfile +0 -29
  294. package/services/openxml-validator/OpenXmlValidator.Api.csproj +0 -12
  295. package/services/openxml-validator/Program.cs +0 -436
  296. package/services/openxml-validator/README.md +0 -152
  297. package/services/openxml-validator/railway.json +0 -16
  298. package/services/react-word-editor/.tmp-a4/src/api/public-types.ts +0 -318
  299. package/services/react-word-editor/.tmp-a4/src/ui/WordReviewEditor.tsx +0 -1302
  300. package/services/react-word-editor/.tmp-a4/src/ui/editor-surface/editor-surface.tsx +0 -546
  301. package/services/react-word-editor/.tmp-a4/test/ui/word-review-editor.test.tsx +0 -146
  302. package/services/react-word-editor/.tmp-a4-build/src/api/public-types.js +0 -2
  303. package/services/react-word-editor/.tmp-a4-build/src/ui/WordReviewEditor.js +0 -818
  304. package/services/react-word-editor/.tmp-a4-build/src/ui/editor-surface/editor-surface.js +0 -229
  305. package/services/react-word-editor/.tmp-a4-build/test/ui/word-review-editor.test.js +0 -121
  306. package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.json +0 -21
  307. package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.tsbuildinfo +0 -1
  308. package/services/react-word-editor/Dockerfile +0 -26
  309. package/services/react-word-editor/README.md +0 -254
  310. package/services/react-word-editor/app/api/certification/route.ts +0 -79
  311. package/services/react-word-editor/app/api/demo-sessions/route.ts +0 -109
  312. package/services/react-word-editor/app/api/deploy-health/route.ts +0 -23
  313. package/services/react-word-editor/app/api/exports/[exportId]/route.ts +0 -34
  314. package/services/react-word-editor/app/api/exports/route.ts +0 -81
  315. package/services/react-word-editor/app/api/fixtures/[fixtureId]/run/route.ts +0 -100
  316. package/services/react-word-editor/app/api/health/route.ts +0 -70
  317. package/services/react-word-editor/app/api/runs/[runId]/route.ts +0 -36
  318. package/services/react-word-editor/app/api/scenarios/[scenarioId]/run/route.ts +0 -85
  319. package/services/react-word-editor/app/api/sessions/[sessionId]/route.ts +0 -199
  320. package/services/react-word-editor/app/api/sessions/[sessionId]/source/route.ts +0 -45
  321. package/services/react-word-editor/app/api/uploads/route.ts +0 -70
  322. package/services/react-word-editor/app/api/validate/route.ts +0 -310
  323. package/services/react-word-editor/app/certification/[runId]/page.tsx +0 -14
  324. package/services/react-word-editor/app/certification/page.tsx +0 -32
  325. package/services/react-word-editor/app/dashboard/page.tsx +0 -7
  326. package/services/react-word-editor/app/demo/page.tsx +0 -30
  327. package/services/react-word-editor/app/demo/prototype-client.tsx +0 -1080
  328. package/services/react-word-editor/app/editor/[sessionId]/page.tsx +0 -33
  329. package/services/react-word-editor/app/fixtures/page.tsx +0 -7
  330. package/services/react-word-editor/app/globals.css +0 -121
  331. package/services/react-word-editor/app/layout.tsx +0 -32
  332. package/services/react-word-editor/app/page.tsx +0 -30
  333. package/services/react-word-editor/app/runs/[runId]/page.tsx +0 -34
  334. package/services/react-word-editor/app/wave-10-word-review/page.tsx +0 -7
  335. package/services/react-word-editor/components/harness-control-bar.tsx +0 -289
  336. package/services/react-word-editor/components/harness-editor-session-client.tsx +0 -1214
  337. package/services/react-word-editor/components/harness-workspace-page.tsx +0 -715
  338. package/services/react-word-editor/components/reduced-motion-toggle.tsx +0 -79
  339. package/services/react-word-editor/components/workspace-certification-panel.tsx +0 -307
  340. package/services/react-word-editor/lib/certification-bundle.ts +0 -796
  341. package/services/react-word-editor/lib/certification-store.ts +0 -661
  342. package/services/react-word-editor/lib/demo-fixtures.test.mjs +0 -195
  343. package/services/react-word-editor/lib/demo-fixtures.ts +0 -1519
  344. package/services/react-word-editor/lib/editor-session-summary.test.mjs +0 -68
  345. package/services/react-word-editor/lib/editor-session-summary.ts +0 -14
  346. package/services/react-word-editor/lib/editor-session.ts +0 -228
  347. package/services/react-word-editor/lib/exports-route.test.mjs +0 -32
  348. package/services/react-word-editor/lib/harness-client.ts +0 -347
  349. package/services/react-word-editor/lib/harness-config.json +0 -30
  350. package/services/react-word-editor/lib/harness-config.test.mjs +0 -31
  351. package/services/react-word-editor/lib/harness-config.ts +0 -21
  352. package/services/react-word-editor/lib/harness-editor-datastore.test.mjs +0 -220
  353. package/services/react-word-editor/lib/harness-editor-datastore.ts +0 -161
  354. package/services/react-word-editor/lib/private-mode.test.mjs +0 -42
  355. package/services/react-word-editor/lib/private-mode.ts +0 -61
  356. package/services/react-word-editor/lib/regression-report.test.mjs +0 -352
  357. package/services/react-word-editor/lib/regression-report.ts +0 -896
  358. package/services/react-word-editor/lib/run-artifacts.ts +0 -934
  359. package/services/react-word-editor/lib/run-history.ts +0 -755
  360. package/services/react-word-editor/lib/scenario-artifacts.test.mjs +0 -41
  361. package/services/react-word-editor/lib/scenario-artifacts.ts +0 -44
  362. package/services/react-word-editor/lib/storage.ts +0 -953
  363. package/services/react-word-editor/lib/validator-client.test.mjs +0 -54
  364. package/services/react-word-editor/lib/validator-client.ts +0 -95
  365. package/services/react-word-editor/lib/workspace-navigation.ts +0 -79
  366. package/services/react-word-editor/middleware.ts +0 -35
  367. package/services/react-word-editor/next-env.d.ts +0 -6
  368. package/services/react-word-editor/next.config.mjs +0 -15
  369. package/services/react-word-editor/package.json +0 -38
  370. package/services/react-word-editor/postcss.config.mjs +0 -8
  371. package/services/react-word-editor/railway.json +0 -21
  372. package/services/react-word-editor/scripts/wave-10-certification.mjs +0 -101
  373. package/services/react-word-editor/scripts/wave-9-live-usability-pilot.mjs +0 -911
  374. package/services/react-word-editor/tsconfig.json +0 -39
  375. package/services/react-word-editor/tsconfig.tsbuildinfo +0 -1
  376. package/skills/README.md +0 -48
  377. package/skills/domain-docx-compatibility/SKILL.md +0 -44
  378. package/skills/domain-docx-compatibility/skill.json +0 -19
  379. package/skills/domain-editor-architecture/SKILL.md +0 -49
  380. package/skills/domain-editor-architecture/skill.json +0 -19
  381. package/skills/domain-legal-review/SKILL.md +0 -39
  382. package/skills/domain-legal-review/skill.json +0 -19
  383. package/skills/provider-aws/SKILL.md +0 -117
  384. package/skills/provider-aws/adapters/claude.md +0 -1
  385. package/skills/provider-aws/adapters/codex.md +0 -1
  386. package/skills/provider-aws/references/service-verification.md +0 -39
  387. package/skills/provider-aws/skill.json +0 -54
  388. package/skills/provider-custom-deploy/SKILL.md +0 -64
  389. package/skills/provider-custom-deploy/skill.json +0 -50
  390. package/skills/provider-docker-compose/SKILL.md +0 -96
  391. package/skills/provider-docker-compose/adapters/local.md +0 -1
  392. package/skills/provider-docker-compose/skill.json +0 -53
  393. package/skills/provider-github-release/SKILL.md +0 -121
  394. package/skills/provider-github-release/adapters/claude.md +0 -1
  395. package/skills/provider-github-release/adapters/codex.md +0 -1
  396. package/skills/provider-github-release/skill.json +0 -55
  397. package/skills/provider-kubernetes/SKILL.md +0 -143
  398. package/skills/provider-kubernetes/adapters/claude.md +0 -1
  399. package/skills/provider-kubernetes/adapters/codex.md +0 -1
  400. package/skills/provider-kubernetes/references/kubectl-patterns.md +0 -58
  401. package/skills/provider-kubernetes/skill.json +0 -52
  402. package/skills/provider-railway/SKILL.md +0 -123
  403. package/skills/provider-railway/adapters/claude.md +0 -1
  404. package/skills/provider-railway/adapters/codex.md +0 -1
  405. package/skills/provider-railway/adapters/local.md +0 -1
  406. package/skills/provider-railway/adapters/opencode.md +0 -1
  407. package/skills/provider-railway/references/verification-commands.md +0 -39
  408. package/skills/provider-railway/skill.json +0 -71
  409. package/skills/provider-ssh-manual/SKILL.md +0 -97
  410. package/skills/provider-ssh-manual/skill.json +0 -54
  411. package/skills/repo-coding-rules/SKILL.md +0 -55
  412. package/skills/repo-coding-rules/skill.json +0 -34
  413. package/skills/role-cont-eval/SKILL.md +0 -91
  414. package/skills/role-cont-eval/adapters/codex.md +0 -1
  415. package/skills/role-cont-eval/skill.json +0 -36
  416. package/skills/role-cont-qa/SKILL.md +0 -100
  417. package/skills/role-cont-qa/adapters/claude.md +0 -1
  418. package/skills/role-cont-qa/skill.json +0 -36
  419. package/skills/role-deploy/SKILL.md +0 -97
  420. package/skills/role-deploy/skill.json +0 -36
  421. package/skills/role-design/SKILL.md +0 -50
  422. package/skills/role-design/skill.json +0 -36
  423. package/skills/role-documentation/SKILL.md +0 -76
  424. package/skills/role-documentation/skill.json +0 -36
  425. package/skills/role-implementation/SKILL.md +0 -45
  426. package/skills/role-implementation/skill.json +0 -36
  427. package/skills/role-infra/SKILL.md +0 -81
  428. package/skills/role-infra/skill.json +0 -36
  429. package/skills/role-integration/SKILL.md +0 -91
  430. package/skills/role-integration/skill.json +0 -36
  431. package/skills/role-planner/SKILL.md +0 -39
  432. package/skills/role-planner/skill.json +0 -21
  433. package/skills/role-research/SKILL.md +0 -65
  434. package/skills/role-research/skill.json +0 -36
  435. package/skills/role-security/SKILL.md +0 -60
  436. package/skills/role-security/skill.json +0 -36
  437. package/skills/runtime-claude/SKILL.md +0 -66
  438. package/skills/runtime-claude/skill.json +0 -36
  439. package/skills/runtime-codex/SKILL.md +0 -58
  440. package/skills/runtime-codex/skill.json +0 -36
  441. package/skills/runtime-local/SKILL.md +0 -46
  442. package/skills/runtime-local/skill.json +0 -36
  443. package/skills/runtime-opencode/SKILL.md +0 -58
  444. package/skills/runtime-opencode/skill.json +0 -36
  445. package/skills/signal-hygiene/SKILL.md +0 -51
  446. package/skills/signal-hygiene/skill.json +0 -20
  447. package/skills/tui-design/SKILL.md +0 -77
  448. package/skills/tui-design/references/tui-design.md +0 -259
  449. package/skills/tui-design/skill.json +0 -36
  450. package/skills/wave-core/SKILL.md +0 -141
  451. package/skills/wave-core/references/marker-syntax.md +0 -70
  452. package/skills/wave-core/skill.json +0 -35
  453. package/src/README.md +0 -85
  454. package/src/api/README.md +0 -22
  455. package/src/api/public-types.ts +0 -525
  456. package/src/component-inventory.md +0 -99
  457. package/src/core/README.md +0 -10
  458. package/src/core/commands/README.md +0 -3
  459. package/src/core/commands/formatting-commands.ts +0 -161
  460. package/src/core/commands/image-commands.ts +0 -144
  461. package/src/core/commands/index.ts +0 -1013
  462. package/src/core/commands/list-commands.ts +0 -370
  463. package/src/core/commands/review-commands.ts +0 -108
  464. package/src/core/commands/text-commands.ts +0 -119
  465. package/src/core/schema/README.md +0 -3
  466. package/src/core/schema/text-schema.ts +0 -512
  467. package/src/core/selection/README.md +0 -3
  468. package/src/core/selection/mapping.ts +0 -238
  469. package/src/core/selection/review-anchors.ts +0 -94
  470. package/src/core/state/README.md +0 -3
  471. package/src/core/state/editor-state.ts +0 -580
  472. package/src/core/state/text-transaction.ts +0 -276
  473. package/src/formats/xlsx/io/parse-shared-strings.ts +0 -41
  474. package/src/formats/xlsx/io/parse-sheet.ts +0 -289
  475. package/src/formats/xlsx/io/parse-styles.ts +0 -57
  476. package/src/formats/xlsx/io/parse-workbook.ts +0 -75
  477. package/src/formats/xlsx/io/xlsx-session.ts +0 -306
  478. package/src/formats/xlsx/model/cell.ts +0 -189
  479. package/src/formats/xlsx/model/sheet.ts +0 -244
  480. package/src/formats/xlsx/model/styles.ts +0 -118
  481. package/src/formats/xlsx/model/workbook.ts +0 -449
  482. package/src/io/README.md +0 -10
  483. package/src/io/docx-session.ts +0 -1763
  484. package/src/io/export/README.md +0 -3
  485. package/src/io/export/export-session.ts +0 -165
  486. package/src/io/export/minimal-docx.ts +0 -115
  487. package/src/io/export/reattach-preserved-parts.ts +0 -54
  488. package/src/io/export/serialize-comments.ts +0 -876
  489. package/src/io/export/serialize-footnotes.ts +0 -217
  490. package/src/io/export/serialize-headers-footers.ts +0 -200
  491. package/src/io/export/serialize-main-document.ts +0 -982
  492. package/src/io/export/serialize-numbering.ts +0 -97
  493. package/src/io/export/serialize-revisions.ts +0 -389
  494. package/src/io/export/serialize-runtime-revisions.ts +0 -265
  495. package/src/io/export/serialize-tables.ts +0 -147
  496. package/src/io/export/split-review-boundaries.ts +0 -194
  497. package/src/io/normalize/README.md +0 -3
  498. package/src/io/normalize/normalize-text.ts +0 -437
  499. package/src/io/ooxml/README.md +0 -3
  500. package/src/io/ooxml/parse-comments.ts +0 -779
  501. package/src/io/ooxml/parse-complex-content.ts +0 -287
  502. package/src/io/ooxml/parse-fields.ts +0 -438
  503. package/src/io/ooxml/parse-footnotes.ts +0 -403
  504. package/src/io/ooxml/parse-headers-footers.ts +0 -483
  505. package/src/io/ooxml/parse-inline-media.ts +0 -431
  506. package/src/io/ooxml/parse-main-document.ts +0 -1846
  507. package/src/io/ooxml/parse-numbering.ts +0 -425
  508. package/src/io/ooxml/parse-revisions.ts +0 -658
  509. package/src/io/ooxml/parse-shapes.ts +0 -271
  510. package/src/io/ooxml/parse-tables.ts +0 -568
  511. package/src/io/ooxml/parse-theme.ts +0 -314
  512. package/src/io/ooxml/part-manifest.ts +0 -136
  513. package/src/io/ooxml/revision-boundaries.ts +0 -351
  514. package/src/io/opc/README.md +0 -3
  515. package/src/io/opc/corrupt-package.ts +0 -166
  516. package/src/io/opc/docx-package.ts +0 -74
  517. package/src/io/opc/package-reader.ts +0 -320
  518. package/src/io/opc/package-writer.ts +0 -273
  519. package/src/model/README.md +0 -3
  520. package/src/model/canonical-document.ts +0 -1911
  521. package/src/model/cds-1.0.0.ts +0 -196
  522. package/src/model/snapshot.ts +0 -393
  523. package/src/preservation/README.md +0 -3
  524. package/src/preservation/markup-compatibility.ts +0 -48
  525. package/src/preservation/opaque-fragment-store.ts +0 -89
  526. package/src/preservation/opaque-region.ts +0 -233
  527. package/src/preservation/package-preservation.ts +0 -120
  528. package/src/preservation/preserved-part-manifest.ts +0 -56
  529. package/src/preservation/relationship-retention.ts +0 -57
  530. package/src/preservation/store.ts +0 -185
  531. package/src/review/README.md +0 -16
  532. package/src/review/store/README.md +0 -3
  533. package/src/review/store/comment-anchors.ts +0 -70
  534. package/src/review/store/comment-remapping.ts +0 -154
  535. package/src/review/store/comment-store.ts +0 -331
  536. package/src/review/store/comment-thread.ts +0 -109
  537. package/src/review/store/revision-actions.ts +0 -394
  538. package/src/review/store/revision-store.ts +0 -303
  539. package/src/review/store/revision-types.ts +0 -168
  540. package/src/review/store/runtime-comment-store.ts +0 -43
  541. package/src/runtime/README.md +0 -3
  542. package/src/runtime/ai-action-policy.ts +0 -764
  543. package/src/runtime/document-runtime.ts +0 -969
  544. package/src/runtime/read-only-diagnostics-runtime.ts +0 -232
  545. package/src/runtime/review-runtime.ts +0 -44
  546. package/src/runtime/revision-runtime.ts +0 -107
  547. package/src/runtime/session-capabilities.ts +0 -138
  548. package/src/runtime/surface-projection.ts +0 -570
  549. package/src/runtime/table-commands.ts +0 -84
  550. package/src/runtime/table-schema.ts +0 -125
  551. package/src/ui/README.md +0 -30
  552. package/src/ui/WordReviewEditor.tsx +0 -1283
  553. package/src/ui/comments/README.md +0 -3
  554. package/src/ui/compatibility/README.md +0 -3
  555. package/src/ui/editor-surface/README.md +0 -3
  556. package/src/ui/headless/comment-decoration-model.ts +0 -124
  557. package/src/ui/headless/revision-decoration-model.ts +0 -128
  558. package/src/ui/headless/selection-helpers.ts +0 -34
  559. package/src/ui/headless/use-editor-keyboard.ts +0 -98
  560. package/src/ui/review/README.md +0 -3
  561. package/src/ui/shared/revision-filters.ts +0 -31
  562. package/src/ui/status/README.md +0 -3
  563. package/src/ui/theme/README.md +0 -3
  564. package/src/ui/toolbar/README.md +0 -3
  565. package/src/ui-tailwind/chrome/tw-alert-banner.tsx +0 -48
  566. package/src/ui-tailwind/chrome/tw-selection-toolbar.tsx +0 -44
  567. package/src/ui-tailwind/chrome/tw-unsaved-modal.tsx +0 -58
  568. package/src/ui-tailwind/chrome/use-before-unload.ts +0 -20
  569. package/src/ui-tailwind/editor-surface/pm-command-bridge.ts +0 -139
  570. package/src/ui-tailwind/editor-surface/pm-decorations.ts +0 -98
  571. package/src/ui-tailwind/editor-surface/pm-position-map.ts +0 -123
  572. package/src/ui-tailwind/editor-surface/pm-schema.ts +0 -452
  573. package/src/ui-tailwind/editor-surface/pm-state-from-snapshot.ts +0 -327
  574. package/src/ui-tailwind/editor-surface/search-plugin.ts +0 -157
  575. package/src/ui-tailwind/editor-surface/tw-caret.tsx +0 -12
  576. package/src/ui-tailwind/editor-surface/tw-editor-surface.tsx +0 -150
  577. package/src/ui-tailwind/editor-surface/tw-inline-token.tsx +0 -118
  578. package/src/ui-tailwind/editor-surface/tw-opaque-block.tsx +0 -52
  579. package/src/ui-tailwind/editor-surface/tw-paragraph-block.tsx +0 -151
  580. package/src/ui-tailwind/editor-surface/tw-prosemirror-surface.tsx +0 -215
  581. package/src/ui-tailwind/editor-surface/tw-segment-view.tsx +0 -111
  582. package/src/ui-tailwind/editor-surface/tw-table-node-view.tsx +0 -108
  583. package/src/ui-tailwind/index.ts +0 -61
  584. package/src/ui-tailwind/review/tw-comment-sidebar.tsx +0 -276
  585. package/src/ui-tailwind/review/tw-health-panel.tsx +0 -120
  586. package/src/ui-tailwind/review/tw-review-rail.tsx +0 -120
  587. package/src/ui-tailwind/review/tw-revision-sidebar.tsx +0 -164
  588. package/src/ui-tailwind/status/tw-status-bar.tsx +0 -58
  589. package/src/ui-tailwind/theme/editor-theme.css +0 -190
  590. package/src/ui-tailwind/toolbar/tw-toolbar-icon-button.tsx +0 -48
  591. package/src/ui-tailwind/toolbar/tw-toolbar.tsx +0 -231
  592. package/src/ui-tailwind/tw-review-workspace.tsx +0 -140
  593. package/src/validation/README.md +0 -3
  594. package/src/validation/compatibility-engine.ts +0 -317
  595. package/src/validation/compatibility-report.ts +0 -160
  596. package/src/validation/diagnostics.ts +0 -203
  597. package/src/validation/import-diagnostics.ts +0 -128
  598. package/src/validation/low-priority-word-surfaces.ts +0 -373
  599. package/test/README.md +0 -16
  600. package/test/core/formatting-commands.test.ts +0 -285
  601. package/test/core/image-commands.test.ts +0 -298
  602. package/test/core/mapping.test.ts +0 -186
  603. package/test/core/text-commands.test.ts +0 -176
  604. package/test/fixtures/docx/F01-basic-contract.docx +0 -0
  605. package/test/fixtures/docx/F01-basic-contract.md +0 -33
  606. package/test/fixtures/docx/F02-headings-styles.docx +0 -0
  607. package/test/fixtures/docx/F02-headings-styles.md +0 -33
  608. package/test/fixtures/docx/F03-legal-outline-numbering.docx +0 -0
  609. package/test/fixtures/docx/F03-legal-outline-numbering.md +0 -34
  610. package/test/fixtures/docx/F04-restart-numbering-schedules.docx +0 -0
  611. package/test/fixtures/docx/F04-restart-numbering-schedules.md +0 -33
  612. package/test/fixtures/docx/F05-table-heavy-agreement.docx +0 -0
  613. package/test/fixtures/docx/F05-table-heavy-agreement.md +0 -34
  614. package/test/fixtures/docx/F06-merged-cells-signature-table.docx +0 -0
  615. package/test/fixtures/docx/F06-merged-cells-signature-table.md +0 -34
  616. package/test/fixtures/docx/F07-inline-images-exhibit.docx +0 -0
  617. package/test/fixtures/docx/F07-inline-images-exhibit.md +0 -34
  618. package/test/fixtures/docx/F08-hyperlinks.docx +0 -0
  619. package/test/fixtures/docx/F08-hyperlinks.md +0 -33
  620. package/test/fixtures/docx/F09-comments-single-paragraph.docx +0 -0
  621. package/test/fixtures/docx/F09-comments-single-paragraph.md +0 -33
  622. package/test/fixtures/docx/F10-threaded-comments-resolve.docx +0 -0
  623. package/test/fixtures/docx/F10-threaded-comments-resolve.md +0 -33
  624. package/test/fixtures/docx/F11-redlines-basic.docx +0 -0
  625. package/test/fixtures/docx/F11-redlines-basic.md +0 -33
  626. package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.docx +0 -0
  627. package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.md +0 -33
  628. package/test/fixtures/docx/F13-comments-on-deleted-text.docx +0 -0
  629. package/test/fixtures/docx/F13-comments-on-deleted-text.md +0 -33
  630. package/test/fixtures/docx/F14-revisions-in-tables-and-lists.docx +0 -0
  631. package/test/fixtures/docx/F14-revisions-in-tables-and-lists.md +0 -33
  632. package/test/fixtures/docx/F15-sections-headers-footers.docx +0 -0
  633. package/test/fixtures/docx/F15-sections-headers-footers.md +0 -33
  634. package/test/fixtures/docx/F16-footnotes-endnotes.docx +0 -0
  635. package/test/fixtures/docx/F16-footnotes-endnotes.md +0 -33
  636. package/test/fixtures/docx/F17-fields-and-toc.docx +0 -0
  637. package/test/fixtures/docx/F17-fields-and-toc.md +0 -33
  638. package/test/fixtures/docx/F18-content-controls-template.docx +0 -0
  639. package/test/fixtures/docx/F18-content-controls-template.md +0 -33
  640. package/test/fixtures/docx/F19-custom-xml-doc-assembly.docx +0 -0
  641. package/test/fixtures/docx/F19-custom-xml-doc-assembly.md +0 -35
  642. package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.docx +0 -0
  643. package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.md +0 -33
  644. package/test/fixtures/docx/F21-malformed-broken-docx.docx +0 -0
  645. package/test/fixtures/docx/F21-malformed-broken-docx.md +0 -33
  646. package/test/fixtures/docx/README.md +0 -74
  647. package/test/fixtures/docx/certification-manifest.json +0 -104
  648. package/test/fixtures/docx/fixtures.manifest.json +0 -196
  649. package/test/fixtures/encrypted-docx/README.md +0 -27
  650. package/test/fixtures/encrypted-docx/certification-manifest.json +0 -9
  651. package/test/fixtures/encrypted-docx/fixtures.manifest.json +0 -47
  652. package/test/fixtures/scenarios/docx/README.md +0 -25
  653. package/test/fixtures/scenarios/docx/S01-sow-template.docx +0 -0
  654. package/test/fixtures/scenarios/docx/S01-sow-template.md +0 -30
  655. package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.docx +0 -0
  656. package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.md +0 -32
  657. package/test/fixtures/scenarios/docx/scenario-manifest.json +0 -53
  658. package/test/formats/xlsx/io/xlsx-import.test.ts +0 -766
  659. package/test/formats/xlsx/model/workbook.test.ts +0 -669
  660. package/test/helpers/dom-setup.ts +0 -124
  661. package/test/io/comment-roundtrip.test.ts +0 -272
  662. package/test/io/complex-content-roundtrip.test.ts +0 -632
  663. package/test/io/docx-compatibility-regression.test.ts +0 -199
  664. package/test/io/docx-session.test.ts +0 -1495
  665. package/test/io/footnotes-roundtrip.test.ts +0 -318
  666. package/test/io/headers-footers-roundtrip.test.ts +0 -547
  667. package/test/io/numbering-roundtrip.test.ts +0 -234
  668. package/test/io/package-reader.test.ts +0 -199
  669. package/test/io/paragraph-properties-roundtrip.test.ts +0 -129
  670. package/test/io/preserved-package-roundtrip.test.ts +0 -365
  671. package/test/io/property-completeness.test.ts +0 -292
  672. package/test/io/revision-roundtrip.test.ts +0 -347
  673. package/test/io/structural-blocks.test.ts +0 -202
  674. package/test/io/table-media-roundtrip.test.ts +0 -448
  675. package/test/io/table-properties-roundtrip.test.ts +0 -569
  676. package/test/io/table-roundtrip.test.ts +0 -302
  677. package/test/io/text-roundtrip.test.ts +0 -344
  678. package/test/model/canonical-document.test.ts +0 -285
  679. package/test/preservation/opaque-fragment-store.test.ts +0 -121
  680. package/test/preservation/package-preservation.test.ts +0 -395
  681. package/test/preservation/store.test.ts +0 -84
  682. package/test/review/comment-remapping.test.ts +0 -220
  683. package/test/review/comment-store.test.ts +0 -180
  684. package/test/review/move-revisions.test.ts +0 -143
  685. package/test/review/property-change-revisions.test.ts +0 -225
  686. package/test/review/revision-actions.test.ts +0 -330
  687. package/test/review/revision-store.test.ts +0 -193
  688. package/test/runtime/session-capabilities.test.ts +0 -260
  689. package/test/runtime/table-commands.test.ts +0 -356
  690. package/test/runtime/table-schema.test.ts +0 -221
  691. package/test/runtime/tracked-changes-toggle.test.ts +0 -107
  692. package/test/ui/comment-review-surface.test.tsx +0 -114
  693. package/test/ui/reduced-motion-toggle.test.tsx +0 -137
  694. package/test/ui/word-review-editor.imported-scenarios.test.tsx +0 -169
  695. package/test/ui/word-review-editor.interaction.test.tsx +0 -1198
  696. package/test/ui/word-review-editor.test.js +0 -188
  697. package/test/ui/word-review-editor.test.tsx +0 -280
  698. package/test/ui-tailwind/search-plugin.test.ts +0 -286
  699. package/test/validation/compatibility-engine.test.ts +0 -336
  700. package/test/validation/compatibility-report.test.ts +0 -189
  701. package/test/validation/low-priority-word-surfaces.test.ts +0 -282
  702. package/test/validation/malformed-doc.test.ts +0 -113
  703. package/test-results/.last-run.json +0 -4
  704. package/wave.config.json +0 -406
@@ -1,40 +0,0 @@
1
- ---
2
- title: "Wave Security Role"
3
- summary: "Standing prompt for the security reviewer that performs a threat-model-first review before integration closure."
4
- ---
5
-
6
- # Wave Security Role
7
-
8
- Use this prompt when an agent should act as the security reviewer for a wave.
9
-
10
- ## Standing prompt
11
-
12
- ```text
13
- You are the wave security reviewer for the current wave.
14
-
15
- Your job is to review the landed change set before integration closure, identify security-sensitive risks, and route exact fixes or approvals while the wave is still active. You are report-only by default. Do not replace implementation ownership.
16
-
17
- Operating rules:
18
- - Re-read the compiled shared summary, your inbox, the generated wave board projection, and the owned reports before major decisions.
19
- - Do a threat-model pass before finalizing conclusions. Identify trust boundaries, attacker-controlled inputs, sensitive assets, approval-sensitive operations, and any external execution or data access paths touched by the wave.
20
- - Prefer exact findings and exact requested fixes over vague warnings.
21
- - Route fixes to the owning agent when the required change is outside your report path.
22
- - Keep the final output short enough to drive relaunch decisions and closure gates.
23
-
24
- What you must do:
25
- - leave a security review report with these sections in order:
26
- `Threat Model`
27
- `Risky Surfaces`
28
- `Findings`
29
- `Required Approvals`
30
- `Requested Fixes`
31
- `Final Disposition`
32
- - record each finding with severity, concrete file or surface, exploit or failure mode, and the owner expected to fix it
33
- - record each approval-sensitive action explicitly, even if the wave can proceed without blocking
34
- - emit one final structured marker:
35
- `[wave-security] state=<clear|concerns|blocked> findings=<n> approvals=<n> detail=<short-note>`
36
-
37
- Use `clear` only when no unresolved findings or approvals remain.
38
- Use `concerns` when findings remain advisory for this wave and do not automatically block progression.
39
- Use `blocked` only when the wave must stop before integration until a finding or approval is resolved.
40
- ```
@@ -1,10 +0,0 @@
1
- # Docx Architecture
2
-
3
- This directory is reserved for docx-specific architecture material as the broader `react-ooxml-office` docs hierarchy fills out.
4
-
5
- Current docx architecture contracts still live in the legacy reference paths:
6
-
7
- - `docs/reference/word-review-editor-frontend-architecture.md`
8
- - `docs/reference/word-review-editor-ux-guide.md`
9
-
10
- Those remain the canonical shipped docx architecture docs today.
@@ -1,8 +0,0 @@
1
- # Future Architecture
2
-
3
- This directory is reserved for future architecture work that sits outside the current shipped docx runtime and outside the first shared OOXML sibling set.
4
-
5
- For now, that mainly means:
6
-
7
- - future pdf exploration
8
- - later cross-vertical capabilities that should not be implied by current shipped contracts
@@ -1,134 +0,0 @@
1
- # Architectural Analysis: Preserve-Only → Supported Upgrade Path
2
-
3
- ## Architecture Summary
4
-
5
- Our codebase has 4 layers for handling OOXML features:
6
-
7
- 1. **OPC Layer** (src/io/opc/) — ZIP package read/write, part discovery, relationship tracking
8
- 2. **Preservation Layer** (src/preservation/) — opaque fragment store, package part retention, MC handling
9
- 3. **Canonical Model** (src/model/) — typed document nodes, style catalog, media catalog
10
- 4. **Surface Projection** (src/runtime/) → **PM Schema** (src/ui-tailwind/) → rendered editor
11
-
12
- ### How features graduate from preserve-only to supported:
13
-
14
- ```
15
- PRESERVE-ONLY: SUPPORTED:
16
- OPC part bytes → opaque fragment → OPC part bytes → parser → canonical node
17
- opaque block in surface → typed block in surface
18
- locked in PM (no editing) → editable in PM schema
19
- reattach original bytes on export → serialize from canonical on export
20
- ```
21
-
22
- The key insight: our preservation system already handles ALL unknown content safely.
23
- Graduating a feature means: add a parser, add a canonical type, add surface projection,
24
- add PM rendering, and add a serializer. The preservation system handles the fallback.
25
-
26
- ### Validation strategy per tier:
27
-
28
- - **Tier 1 (parse + pass-through)**: Unit test parse/serialize. Fixture round-trip.
29
- - **Tier 2 (read-only projected)**: Above + surface projection test. No editing.
30
- - **Tier 3 (fully editable)**: Above + PM schema + command tests + edit round-trip.
31
-
32
- ---
33
-
34
- ## Feature Groups by Architectural Pattern
35
-
36
- ### Group A: Simple Property Parsing (13 features, ~14h)
37
- Pattern: Add field to existing canonical node type, parse from XML attr, serialize back.
38
- No new PM nodes, no new surface blocks. Properties affect rendering CSS only.
39
-
40
- Features: widowControl, pBdr, pShd, bidi, charSpacing, kerning, emboss/shadow,
41
- columnBreaks, symbols, suppressLineNumbers, cnfStyle, tblLook, latentStyles.
42
-
43
- Architecture:
44
- - Extend ParagraphNode/TextMark interfaces in canonical-document.ts
45
- - Parse in parse-main-document.ts (add cases to existing paragraph/run property loops)
46
- - Serialize in serialize-main-document.ts (add cases to existing property serializers)
47
- - Surface projection: carry properties through for CSS rendering
48
- - PM schema: add attrs to paragraph/text nodes for styling
49
- - Tests: parse + serialize round-trip per property
50
-
51
- ### Group B: Document Sub-Parts (9 features, ~42h)
52
- Pattern: Parse a separate XML part (headerN.xml, footnotes.xml, etc.), create a sub-document
53
- model, link from body references, render in dedicated UI zones.
54
-
55
- Features: headers (3 types), footers (3 types), footnotes, endnotes, theme.
56
-
57
- Architecture:
58
- - Add new canonical types: HeaderDocument, FooterDocument, FootnoteCollection, ThemeDefinition
59
- - New parsers: parse-headers.ts, parse-footnotes.ts, parse-theme.ts
60
- - New serializers: serialize-headers.ts, serialize-footnotes.ts
61
- - DocxSession: add owned paths for these parts, parse them alongside main document
62
- - Surface projection: add footer/header/footnote zones to EditorSurfaceSnapshot
63
- - PM schema: render in separate PM editors or as read-only zones
64
- - Export: serialize owned header/footer/footnote parts, reattach the rest
65
- - Theme resolution: resolve theme colors/fonts in style inheritance
66
-
67
- ### Group C: Structural Block Types (4 features, ~19h)
68
- Pattern: New block-level canonical node, parser, surface block, PM node.
69
-
70
- Features: SDT (content controls), customXml, altChunk, nestedTables.
71
-
72
- Architecture:
73
- - SDT: Parse w:sdt as a wrapper node containing block/inline children.
74
- Canonical type: SdtNode { type, properties, children }. PM: contentEditable container.
75
- Challenge: Many SDT subtypes (richText, date, dropdown, checkbox) with different editing UX.
76
- - customXml: Parse as wrapper node, treat inner content as editable.
77
- Simpler than SDT — just structural container.
78
- - altChunk: Import embedded HTML/RTF by resolving the relationship.
79
- Complex: would need an HTML/RTF → canonical converter.
80
- Pragmatic: parse as read-only projected block showing content preview.
81
- - nestedTables: Recursive table parsing. PM: prosemirror-tables supports nesting.
82
- Main work: surface-projection recursion for table-in-cell.
83
-
84
- ### Group D: Inline Content Types (4 features, ~22h)
85
- Pattern: New inline canonical node, parser, PM inline atom, serializer.
86
-
87
- Features: floatingImages, footnoteRefs, ruby, OLE objects.
88
-
89
- Architecture:
90
- - Floating images: Parse wp:anchor DrawingML. Canonical: FloatingImageNode with position/wrap props.
91
- PM: Positioned absolute/relative node (complex — needs position map outside text flow).
92
- Pragmatic: Render as inline with "floating" badge, preserve position on export.
93
- - Footnote refs: Parse w:footnoteReference. Canonical: FootnoteRefNode { noteId }.
94
- PM: Inline atom with superscript number. Click → navigate to footnote zone.
95
- Requires Group B footnote parsing.
96
- - Ruby: Parse w:ruby (base + annotation). Canonical: RubyNode { base, annotation }.
97
- PM: Inline with ruby annotation rendering (CSS ruby-position).
98
- - OLE objects: Parse w:object. Canonical: OleObjectNode { progId, fallbackImage }.
99
- PM: Inline atom showing fallback image or icon. No editing.
100
-
101
- ### Group E: Track Change Extensions (4 features, ~16h)
102
- Pattern: Extend revision model and store.
103
-
104
- Features: pPrChange, sectPrChange, tblPrChange, moveTo/moveFrom.
105
-
106
- Architecture:
107
- - Property changes: Parse old/new property pairs from w:*Change elements.
108
- Store in revision record as PropertyChangeRevision { before, after }.
109
- Surface: Show diff indicator on paragraph/section/table.
110
- Accept: Apply "after" properties. Reject: Restore "before" properties.
111
- - Move tracking: Parse w:moveFrom/moveTo with matching IDs.
112
- Store as MoveRevision { moveId, direction, range }.
113
- Surface: Render as deletion at source + insertion at destination with linking indicator.
114
- Accept: Keep destination. Reject: Restore source.
115
-
116
- ### Group F: Complex Rendering (5 features, ~83h)
117
- Pattern: Full subsystem — parser, model, renderer.
118
-
119
- Features: charts, SmartArt, shapes, WordArt, VML.
120
-
121
- Architecture:
122
- - Charts: ChartML parser → chart model → Canvas/SVG renderer.
123
- Full charting library. Huge scope. Consider: read-only SVG preview from XML.
124
- - SmartArt: DiagramML → layout algorithm → SVG rendering.
125
- Extremely complex layout engine. Consider: fallback to EMF/PNG preview image.
126
- - Shapes/WordArt/VML: Parse geometry, text, fills, effects.
127
- Consider: Read-only SVG rendering for shapes, skip editing.
128
- VML is legacy — render as fallback for pre-2007 content.
129
-
130
- ### Group G: Security (2 features, intentionally excluded)
131
- - Digital signatures: Full XMLDSIG. Out of scope.
132
- - Password encryption: Upstream concern. Out of scope.
133
-
134
- ---
@@ -1,153 +0,0 @@
1
- # Shared OOXML Editor Platform
2
-
3
- ## Status
4
-
5
- - This is the canonical umbrella architecture doc for the broader `react-ooxml-office` repo story.
6
- - The only shipped runtime in source today is the `docx` implementation behind `WordReviewEditor`.
7
- - `xlsx` is planned and documented here as the next OOXML sibling, not as a shipped runtime.
8
- - `pdf` is a future vertical and is intentionally outside this first shared OOXML platform contract.
9
-
10
- ## Purpose
11
-
12
- This repository is evolving from a docx-only product narrative into a broader office-document platform with three distinct layers:
13
-
14
- 1. shared platform capabilities
15
- 2. format-specific runtimes
16
- 3. host-facing editor surfaces
17
-
18
- The goal is to broaden the docs without pretending the codebase is already neutral. The shared platform should capture what is genuinely common across OOXML siblings such as `docx` and `xlsx`, while each format keeps its own canonical model, editing semantics, and UX.
19
-
20
- ## Core Platform Principles
21
-
22
- - Treat OOXML files as OPC packages first, not as isolated XML files.
23
- - Keep runtime-owned structured state as the only source of truth.
24
- - Route every mutation through commands and transactions.
25
- - Preserve unsupported but preservable content instead of silently discarding it.
26
- - Keep compatibility posture explicit through typed warnings, errors, and export blockers.
27
- - Use host application behavior as the final fidelity gate.
28
- - Keep shipped runtimes main-thread only unless an explicit architecture change is made.
29
-
30
- ## Layered Architecture
31
-
32
- ```text
33
- Host App
34
- |
35
- v
36
- Embeddable Editor Surface
37
- |
38
- v
39
- Format Runtime
40
- |
41
- v
42
- Shared OOXML Platform
43
- |
44
- v
45
- OPC package, preservation, diagnostics, validation
46
- ```
47
-
48
- ### Shared Platform Responsibilities
49
-
50
- The shared OOXML platform is responsible for concerns that remain honest across multiple OOXML formats:
51
-
52
- - OPC package reading and writing
53
- - part manifests, content types, and relationship integrity
54
- - preservation of unknown or unsupported but preservable parts
55
- - compatibility reporting vocabulary and export blocking
56
- - host persistence and snapshot doctrine
57
- - validation integration with the internal Open XML SDK service
58
- - shared runtime-to-UI doctrine: runtime owns truth, UI renders projections
59
- - future shared AI or agent mediation boundaries above format runtimes
60
-
61
- These concerns are intentionally narrower than a full editor runtime. The platform should not pretend that Word paragraphs and spreadsheet cells share one canonical model.
62
-
63
- ### Format Runtime Responsibilities
64
-
65
- Each format runtime owns its own domain model, editing rules, and projections:
66
-
67
- - `docx`: paragraphs, runs, comments, revisions, review anchors, and the current `WordReviewEditor` surface
68
- - `xlsx`: workbook, sheets, ranges, formulas, merges, spreadsheet annotations, and a grid-first editor surface
69
- - `pdf`: future non-OOXML work; outside the first shared platform contract
70
-
71
- Format runtimes may reuse platform services, but they must not be flattened into a lowest-common-denominator editor abstraction.
72
-
73
- ## Current State In This Repo
74
-
75
- Today the source tree is still organized around the active `docx` implementation:
76
-
77
- ```text
78
- src/
79
- api/
80
- model/
81
- core/
82
- review/
83
- io/
84
- preservation/
85
- validation/
86
- runtime/
87
- ui/
88
- services/
89
- react-word-editor/
90
- openxml-validator/
91
- ```
92
-
93
- That remains the truthful description of the landed code.
94
-
95
- The broader target architecture for future work is:
96
-
97
- ```text
98
- src/
99
- platform/
100
- formats/
101
- docx/
102
- xlsx/
103
- pdf/
104
- services/
105
- office-harness/
106
- openxml-validator/
107
- ```
108
-
109
- This target layout is a documentation and planning direction, not a claim that the source has already been moved.
110
-
111
- ## Current Format Status
112
-
113
- ### `docx`
114
-
115
- - implemented in source
116
- - shipped public component name: `WordReviewEditor`
117
- - current public API contract remains under `docs/reference/public-api.md`
118
- - current compliance contract remains under `docs/reference/ooxml-compliance.md`
119
-
120
- ### `xlsx`
121
-
122
- - not implemented in source
123
- - promoted from raw research into planned canonical docs
124
- - intended to reuse shared platform capabilities while keeping spreadsheet-native runtime and UX boundaries
125
-
126
- ### `pdf`
127
-
128
- - future exploration only
129
- - should not be forced into the OOXML platform contract unless a later architecture intentionally broadens the platform beyond OOXML
130
-
131
- ## Future Shared Capability: Agent Layer
132
-
133
- The agent or LLM interaction layer belongs above the shared platform and format runtimes, not inside the current shipped `WordReviewEditor` contract.
134
-
135
- That future layer should:
136
-
137
- - request structured context from format runtimes
138
- - propose typed commands instead of mutating state directly
139
- - respect compatibility and export blockers
140
- - remain reviewable and auditable
141
-
142
- It is a roadmap capability, not a current public API guarantee.
143
-
144
- ## Doc Map
145
-
146
- - Repo overview: `README.md`
147
- - Docs navigation: `docs/README.md`
148
- - Current docx implementation contracts: `docs/reference/public-api.md`, `docs/reference/ooxml-compliance.md`, `docs/reference/word-review-editor-frontend-architecture.md`
149
- - Planned xlsx architecture: `docs/architecture/xlsx/spreadsheet-editor-frontend-architecture.md`
150
- - Planned xlsx canonical model: `docs/architecture/xlsx/canonical-workbook-model-and-commands.md`
151
- - Planned xlsx compliance: `docs/reference/xlsx/xlsx-ooxml-compliance.md`
152
- - Planned xlsx fixture and certification program: `docs/plans/xlsx/xlsx-fixture-corpus-and-certification-plan.md`
153
- - Research intake: `docs/xlsx-react/README.md`
@@ -1,187 +0,0 @@
1
- # Canonical Workbook Model And Commands
2
-
3
- ## Status
4
-
5
- - Planned canonical model for the future `xlsx` runtime.
6
- - Not implemented in source today.
7
- - Intended to align the xlsx planning work with the current repo's runtime-first, command-driven architecture.
8
-
9
- ## Purpose
10
-
11
- This document defines what should remain canonical in a spreadsheet runtime and what should remain derived.
12
-
13
- The goal is to keep the workbook model:
14
-
15
- - sparse and serializable
16
- - safe for import and export
17
- - compatible with command and transaction boundaries
18
- - honest about preserve-only content
19
-
20
- ## Core Rules
21
-
22
- - The workbook runtime owns the only canonical state.
23
- - React renders runtime projections and never mutates canonical workbook state directly.
24
- - Commands produce transactions, mappings, effects, and history boundaries.
25
- - Structural edits must remap anchors, ranges, comments, merges, and references.
26
- - Unsupported but preservable workbook content must stay in preservation state, not be flattened into "best effort" workbook data.
27
-
28
- ## Canonical Stores
29
-
30
- The planned xlsx runtime should keep the same broad separation of concerns as the current docx runtime:
31
-
32
- - content model
33
- - review or annotation model
34
- - preservation model
35
- - diagnostics and compatibility state
36
-
37
- ### Content Model
38
-
39
- The content model should own:
40
-
41
- - workbook metadata
42
- - sheet registry and ordering
43
- - sparse cell storage
44
- - formulas and cached values
45
- - row and column properties
46
- - merges
47
- - workbook-level named items
48
- - style references and workbook-wide style registries
49
-
50
- ### Annotation Model
51
-
52
- The annotation model should own:
53
-
54
- - notes or legacy comments if supported
55
- - future threaded comment preservation data
56
- - cell or range anchors for annotations
57
-
58
- ### Preservation Model
59
-
60
- The preservation model should own:
61
-
62
- - unknown parts and relationships
63
- - preserve-only workbook features
64
- - extension markup and compatibility payloads
65
- - locked-region metadata required to explain blocked edits
66
-
67
- ## Sparse Workbook Shape
68
-
69
- The canonical workbook should be sparse by default.
70
-
71
- That means:
72
-
73
- - empty cells are omitted from canonical storage
74
- - non-default row and column metadata is stored sparsely
75
- - merges, notes, hyperlinks, and other anchored objects are stored as separate collections
76
-
77
- This avoids pretending a spreadsheet is a dense DOM-shaped tree.
78
-
79
- ## Cell Value Strategy
80
-
81
- Canonical cell state should preserve semantic type without coercing everything into a single JavaScript value shape.
82
-
83
- Minimum value families:
84
-
85
- - empty
86
- - text
87
- - number
88
- - boolean
89
- - error
90
- - formula
91
- - rich or formatted text if supported later, otherwise preserve-only
92
-
93
- The runtime may maintain derived caches for display or performance, but canonical state must remain export-safe.
94
-
95
- ## Formula Strategy
96
-
97
- Formulas should be first-class runtime entities even if the editor does not ship a full Excel-compatible calculation engine.
98
-
99
- The canonical model should retain:
100
-
101
- - formula text
102
- - reference tokens needed for remapping
103
- - cached value when present
104
- - enough structure to support safe row, column, and range edits
105
-
106
- If a formula family cannot be remapped safely, the relevant structural edit should warn, block, or remain preserve-only.
107
-
108
- ## Selection And Anchor Strategy
109
-
110
- Selection should be grid-native, not text-editor-shaped.
111
-
112
- Minimum runtime selection surfaces:
113
-
114
- - active sheet
115
- - active cell
116
- - primary range
117
- - optional multi-range support
118
- - selection mode for cells, rows, columns, or full-sheet operations
119
-
120
- Mapped anchors should also support:
121
-
122
- - notes or comments
123
- - hyperlinks
124
- - preserve-only object references
125
- - future named ranges and table surfaces
126
-
127
- ## Command And Transaction Model
128
-
129
- Every mutation should flow through typed spreadsheet commands.
130
-
131
- Representative command families:
132
-
133
- - set cell value
134
- - set formula
135
- - apply styles
136
- - insert or delete rows
137
- - insert or delete columns
138
- - merge or unmerge cells
139
- - add, rename, reorder, or delete sheets
140
- - freeze or clear panes
141
- - add or edit supported note surfaces
142
-
143
- Each transaction should produce:
144
-
145
- - next workbook state
146
- - mapping data for remapping selections and anchored objects
147
- - effects for UI or host notifications
148
- - history boundary metadata
149
-
150
- ## Preserve-Only Boundary
151
-
152
- The canonical model must not over-claim ownership.
153
-
154
- Examples of likely preserve-only workbook surfaces in early xlsx work:
155
-
156
- - threaded comments
157
- - pivot caches and pivot tables
158
- - charts and complex drawing graphs
159
- - advanced extension lists
160
- - rich value families
161
- - features that require rewriting unknown extension parts
162
-
163
- Those surfaces should stay in preservation state until they have package-backed proof and Excel reopen evidence.
164
-
165
- ## Relationship To The Shared Platform
166
-
167
- This doc intentionally stops at workbook semantics.
168
-
169
- The following concerns belong to the shared platform instead:
170
-
171
- - OPC package reading and writing
172
- - preserved part reattachment
173
- - compatibility taxonomy and export blockers
174
- - validator service integration
175
- - snapshot and persistence doctrine
176
-
177
- See `docs/architecture/platform/shared-openxml-editor-platform.md` for that shared layer.
178
-
179
- ## Source Research Mapping
180
-
181
- This canonical doc is derived from research in:
182
-
183
- - `docs/xlsx-react/canonical-workbook-model-and-commands.md`
184
- - `docs/xlsx-react/spreadsheet-editor-component-architecture.md`
185
- - `docs/xlsx-react/spreadsheet-editor-frontend-architecture.md`
186
-
187
- The research sources remain useful design rationale, but this file is the repo-aligned planned canonical model reference.
@@ -1,150 +0,0 @@
1
- # Spreadsheet Editor Frontend Architecture
2
-
3
- ## Status
4
-
5
- - Planned canonical architecture for the future `xlsx` runtime.
6
- - No `SpreadsheetEditor` implementation is shipped in this repo today.
7
- - This doc translates the strongest `docs/xlsx-react` research into a repo-aligned architecture that matches the current runtime-first philosophy without pretending the source already exists.
8
-
9
- ## Role In The Repo
10
-
11
- This document is the `xlsx` sibling to the current docx frontend architecture.
12
-
13
- Use it together with:
14
-
15
- - `docs/architecture/platform/shared-openxml-editor-platform.md`
16
- - `docs/architecture/xlsx/canonical-workbook-model-and-commands.md`
17
- - `docs/reference/xlsx/xlsx-ooxml-compliance.md`
18
- - `docs/plans/xlsx/xlsx-fixture-corpus-and-certification-plan.md`
19
-
20
- ## Frontend Doctrine
21
-
22
- - The workbook runtime owns canonical truth.
23
- - React renders runtime projections and dispatches commands.
24
- - The grid surface is spreadsheet-native and performance-driven.
25
- - UI state remains presentation-only: tabs, panel visibility, theme, and transient edit buffers.
26
- - Export safety and preserve-only states are visible in the UI instead of being hidden behind implicit behavior.
27
-
28
- ## Editor Shape
29
-
30
- The target public surface is a single embeddable component:
31
-
32
- ```tsx
33
- <SpreadsheetEditor />
34
- ```
35
-
36
- That component should remain uncontrolled by default, matching the current `WordReviewEditor` philosophy:
37
-
38
- - host provides initial source or snapshot
39
- - runtime owns the live session
40
- - host receives typed events, warnings, errors, snapshots, and exports
41
-
42
- ## Rendering Stack
43
-
44
- The spreadsheet editor should keep the same broad discipline as the docx runtime while using spreadsheet-appropriate rendering:
45
-
46
- - React shell for layout, panels, and tool surfaces
47
- - imperative or headless grid surface controller for scrolling, hit-testing, and keyboard flow
48
- - runtime-owned render snapshot consumed through `useSyncExternalStore`
49
- - token-driven theme system rather than one-off inline styling
50
-
51
- ## High-Level Component Hierarchy
52
-
53
- ```text
54
- SpreadsheetEditor
55
- └── SpreadsheetWorkspace
56
- ├── TopBar
57
- │ ├── NameBox
58
- │ ├── FormulaBar
59
- │ └── Toolbar
60
- ├── GridViewport
61
- │ ├── GridSurfaceHost
62
- │ └── GridOverlays
63
- ├── RightRail
64
- │ ├── CommentsOrNotes
65
- │ └── HealthPanel
66
- ├── SheetTabs
67
- └── StatusBar
68
- ```
69
-
70
- ## Runtime And UI Boundary
71
-
72
- The boundary should match the current repo's strongest invariant:
73
-
74
- ```text
75
- UI -> Command -> Transaction -> State Update -> Render
76
- ```
77
-
78
- Rules:
79
-
80
- - React never owns workbook truth.
81
- - The grid surface never bypasses the runtime.
82
- - Formula edits, range edits, merge edits, and structural sheet edits all flow through typed commands.
83
- - Render snapshots may be denormalized for visible regions, but persisted snapshots stay separate.
84
-
85
- ## Module Boundaries
86
-
87
- Target source ownership for the `xlsx` frontend should stay explicit:
88
-
89
- ```text
90
- src/formats/xlsx/
91
- api/
92
- model/
93
- core/
94
- commands/
95
- selection/
96
- formulas/
97
- grid-math/
98
- io/
99
- preservation/
100
- validation/
101
- runtime/
102
- ui/
103
- headless/
104
- grid-surface/
105
- react/
106
- ```
107
-
108
- This is a target-state layout, not a claim that these directories already exist.
109
-
110
- ## Capability Model
111
-
112
- The editor should derive session capabilities from runtime state rather than local UI guesses.
113
-
114
- Minimum capability surfaces:
115
-
116
- - `canEdit`
117
- - `canUndo`
118
- - `canRedo`
119
- - `canExport`
120
- - `exportBlocked`
121
- - `preserveOnlyCount`
122
- - `unsupportedFatalCount`
123
- - `canEditFormulas`
124
-
125
- ## UX Honesty Rules
126
-
127
- - Spreadsheet features are either `supported-roundtrip`, `preserve-only`, or `unsupported-fatal`.
128
- - Preserve-only content must remain visible and explainable.
129
- - Locked or blocked regions must surface through the health rail and status bar.
130
- - Unsupported structures must not be rewritten optimistically.
131
-
132
- ## Current Scope Boundary
133
-
134
- This architecture is intentionally for the future `xlsx` runtime only.
135
-
136
- It does not change:
137
-
138
- - the current `WordReviewEditor` public API
139
- - the docx-specific ProseMirror editing surface
140
- - the current docx wave maturity line
141
-
142
- ## Source Research Mapping
143
-
144
- This canonical doc is derived from research in:
145
-
146
- - `docs/xlsx-react/spreadsheet-editor-frontend-architecture.md`
147
- - `docs/xlsx-react/spreadsheet-editor-component-architecture.md`
148
- - `docs/xlsx-react/canonical-workbook-model-and-commands.md`
149
-
150
- The research papers remain useful source material, but this file is the repo-aligned planned architecture reference.