docxodus 9.8.0 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/README.md +178 -0
  2. package/dist/canonical.d.ts +7 -0
  3. package/dist/canonical.d.ts.map +1 -0
  4. package/dist/canonical.js +56 -0
  5. package/dist/canonical.js.map +1 -0
  6. package/dist/docxodus.worker.d.ts +2 -1
  7. package/dist/docxodus.worker.d.ts.map +1 -1
  8. package/dist/docxodus.worker.js +244 -3
  9. package/dist/docxodus.worker.js.map +1 -1
  10. package/dist/editor.bundle.js +2024 -388
  11. package/dist/editor.d.ts +22 -2
  12. package/dist/editor.d.ts.map +1 -1
  13. package/dist/editor.js +94 -9
  14. package/dist/editor.js.map +1 -1
  15. package/dist/embed.bundle.js +2912 -437
  16. package/dist/embed.iife.js +2911 -436
  17. package/dist/export-assets.json +283 -0
  18. package/dist/export-browser.bundle.js +7990 -0
  19. package/dist/export-browser.d.ts +266 -0
  20. package/dist/export-browser.d.ts.map +1 -0
  21. package/dist/export-browser.js +2915 -0
  22. package/dist/export-browser.js.map +1 -0
  23. package/dist/export-resource-limits-v1.json +57 -0
  24. package/dist/font-contract.d.ts +150 -0
  25. package/dist/font-contract.d.ts.map +1 -0
  26. package/dist/font-contract.js +59 -0
  27. package/dist/font-contract.js.map +1 -0
  28. package/dist/font-runtime.d.ts +33 -0
  29. package/dist/font-runtime.d.ts.map +1 -0
  30. package/dist/font-runtime.js +1100 -0
  31. package/dist/font-runtime.js.map +1 -0
  32. package/dist/index.d.ts +62 -5
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +130 -16
  35. package/dist/index.js.map +1 -1
  36. package/dist/page-geometry.d.ts +8 -1
  37. package/dist/page-geometry.d.ts.map +1 -1
  38. package/dist/page-geometry.js +37 -11
  39. package/dist/page-geometry.js.map +1 -1
  40. package/dist/pagination.bundle.js +1937 -380
  41. package/dist/pagination.d.ts +277 -15
  42. package/dist/pagination.d.ts.map +1 -1
  43. package/dist/pagination.js +2055 -438
  44. package/dist/pagination.js.map +1 -1
  45. package/dist/react.d.ts +11 -4
  46. package/dist/react.d.ts.map +1 -1
  47. package/dist/react.js +38 -5
  48. package/dist/react.js.map +1 -1
  49. package/dist/render-report-v2.schema.json +1581 -0
  50. package/dist/ribbon-chrome.d.ts +1 -1
  51. package/dist/ribbon-chrome.d.ts.map +1 -1
  52. package/dist/ribbon-chrome.js +46 -0
  53. package/dist/ribbon-chrome.js.map +1 -1
  54. package/dist/ribbon.js +70 -0
  55. package/dist/ribbon.js.map +1 -1
  56. package/dist/session.bundle.js +695 -29
  57. package/dist/session.d.ts +134 -19
  58. package/dist/session.d.ts.map +1 -1
  59. package/dist/session.js +562 -25
  60. package/dist/session.js.map +1 -1
  61. package/dist/types.d.ts +1207 -16
  62. package/dist/types.d.ts.map +1 -1
  63. package/dist/types.js.map +1 -1
  64. package/dist/wasm/_framework/DocumentFormat.OpenXml.Framework.wasm +0 -0
  65. package/dist/wasm/_framework/DocumentFormat.OpenXml.Framework.wasm.br +0 -0
  66. package/dist/wasm/_framework/DocumentFormat.OpenXml.wasm +0 -0
  67. package/dist/wasm/_framework/DocumentFormat.OpenXml.wasm.br +0 -0
  68. package/dist/wasm/_framework/Docxodus.wasm +0 -0
  69. package/dist/wasm/_framework/Docxodus.wasm.br +0 -0
  70. package/dist/wasm/_framework/DocxodusWasm.wasm +0 -0
  71. package/dist/wasm/_framework/DocxodusWasm.wasm.br +0 -0
  72. package/dist/wasm/_framework/System.Collections.Concurrent.wasm +0 -0
  73. package/dist/wasm/_framework/System.Collections.Concurrent.wasm.br +0 -0
  74. package/dist/wasm/_framework/System.Collections.Immutable.wasm +0 -0
  75. package/dist/wasm/_framework/System.Collections.Immutable.wasm.br +0 -0
  76. package/dist/wasm/_framework/System.Collections.NonGeneric.wasm +0 -0
  77. package/dist/wasm/_framework/System.Collections.NonGeneric.wasm.br +0 -0
  78. package/dist/wasm/_framework/System.Collections.Specialized.wasm +0 -0
  79. package/dist/wasm/_framework/System.Collections.Specialized.wasm.br +0 -0
  80. package/dist/wasm/_framework/System.Collections.wasm +0 -0
  81. package/dist/wasm/_framework/System.Collections.wasm.br +0 -0
  82. package/dist/wasm/_framework/System.ComponentModel.Primitives.wasm +0 -0
  83. package/dist/wasm/_framework/System.ComponentModel.Primitives.wasm.br +0 -0
  84. package/dist/wasm/_framework/System.ComponentModel.TypeConverter.wasm +0 -0
  85. package/dist/wasm/_framework/System.ComponentModel.TypeConverter.wasm.br +0 -0
  86. package/dist/wasm/_framework/System.ComponentModel.wasm +0 -0
  87. package/dist/wasm/_framework/System.ComponentModel.wasm.br +0 -0
  88. package/dist/wasm/_framework/System.Console.wasm +0 -0
  89. package/dist/wasm/_framework/System.Console.wasm.br +0 -0
  90. package/dist/wasm/_framework/System.Diagnostics.Process.wasm +0 -0
  91. package/dist/wasm/_framework/System.Diagnostics.Process.wasm.br +0 -0
  92. package/dist/wasm/_framework/System.IO.Compression.wasm +0 -0
  93. package/dist/wasm/_framework/System.IO.Compression.wasm.br +0 -0
  94. package/dist/wasm/_framework/System.IO.Packaging.wasm +0 -0
  95. package/dist/wasm/_framework/System.IO.Packaging.wasm.br +0 -0
  96. package/dist/wasm/_framework/System.IO.Pipelines.wasm +0 -0
  97. package/dist/wasm/_framework/System.IO.Pipelines.wasm.br +0 -0
  98. package/dist/wasm/_framework/System.Linq.Expressions.wasm +0 -0
  99. package/dist/wasm/_framework/System.Linq.Expressions.wasm.br +0 -0
  100. package/dist/wasm/_framework/System.Linq.wasm +0 -0
  101. package/dist/wasm/_framework/System.Linq.wasm.br +0 -0
  102. package/dist/wasm/_framework/System.Memory.wasm +0 -0
  103. package/dist/wasm/_framework/System.Memory.wasm.br +0 -0
  104. package/dist/wasm/_framework/System.Net.Http.wasm +0 -0
  105. package/dist/wasm/_framework/System.Net.Http.wasm.br +0 -0
  106. package/dist/wasm/_framework/System.Net.Primitives.wasm +0 -0
  107. package/dist/wasm/_framework/System.Net.Primitives.wasm.br +0 -0
  108. package/dist/wasm/_framework/System.ObjectModel.wasm +0 -0
  109. package/dist/wasm/_framework/System.ObjectModel.wasm.br +0 -0
  110. package/dist/wasm/_framework/System.Private.CoreLib.wasm +0 -0
  111. package/dist/wasm/_framework/System.Private.CoreLib.wasm.br +0 -0
  112. package/dist/wasm/_framework/System.Private.Uri.wasm +0 -0
  113. package/dist/wasm/_framework/System.Private.Uri.wasm.br +0 -0
  114. package/dist/wasm/_framework/System.Private.Xml.Linq.wasm +0 -0
  115. package/dist/wasm/_framework/System.Private.Xml.Linq.wasm.br +0 -0
  116. package/dist/wasm/_framework/System.Private.Xml.wasm +0 -0
  117. package/dist/wasm/_framework/System.Private.Xml.wasm.br +0 -0
  118. package/dist/wasm/_framework/System.Runtime.InteropServices.JavaScript.wasm +0 -0
  119. package/dist/wasm/_framework/System.Runtime.InteropServices.JavaScript.wasm.br +0 -0
  120. package/dist/wasm/_framework/System.Runtime.wasm +0 -0
  121. package/dist/wasm/_framework/System.Runtime.wasm.br +0 -0
  122. package/dist/wasm/_framework/System.Security.Cryptography.wasm +0 -0
  123. package/dist/wasm/_framework/System.Security.Cryptography.wasm.br +0 -0
  124. package/dist/wasm/_framework/System.Text.Encodings.Web.wasm +0 -0
  125. package/dist/wasm/_framework/System.Text.Encodings.Web.wasm.br +0 -0
  126. package/dist/wasm/_framework/System.Text.Json.wasm +0 -0
  127. package/dist/wasm/_framework/System.Text.Json.wasm.br +0 -0
  128. package/dist/wasm/_framework/System.Text.RegularExpressions.wasm +0 -0
  129. package/dist/wasm/_framework/System.Text.RegularExpressions.wasm.br +0 -0
  130. package/dist/wasm/_framework/System.Xml.Linq.wasm +0 -0
  131. package/dist/wasm/_framework/System.Xml.Linq.wasm.br +0 -0
  132. package/dist/wasm/_framework/System.Xml.XDocument.wasm +0 -0
  133. package/dist/wasm/_framework/System.Xml.XDocument.wasm.br +0 -0
  134. package/dist/wasm/_framework/System.wasm +0 -0
  135. package/dist/wasm/_framework/System.wasm.br +0 -0
  136. package/dist/wasm/_framework/dotnet.boot.js +38 -38
  137. package/dist/wasm/_framework/dotnet.boot.js.br +0 -0
  138. package/dist/wasm/_framework/dotnet.js +1 -1
  139. package/dist/wasm/_framework/dotnet.js.br +0 -0
  140. package/dist/wasm/_framework/dotnet.native.js +3 -3
  141. package/dist/wasm/_framework/dotnet.native.js.br +0 -0
  142. package/dist/wasm/_framework/dotnet.native.wasm +0 -0
  143. package/dist/wasm/_framework/dotnet.native.wasm.br +0 -0
  144. package/dist/wasm/_framework/dotnet.runtime.js +1 -1
  145. package/dist/wasm/_framework/dotnet.runtime.js.br +0 -0
  146. package/dist/worker-proxy.bundle.js +196 -29
  147. package/dist/worker-proxy.d.ts +36 -3
  148. package/dist/worker-proxy.d.ts.map +1 -1
  149. package/dist/worker-proxy.js +186 -33
  150. package/dist/worker-proxy.js.map +1 -1
  151. package/package.json +24 -7
@@ -30,7 +30,7 @@ export declare const RIBBON_STYLE_ATTR = "data-docxodus-ribbon-styles";
30
30
  * for the converter's document CSS, achieved here by authoring rather than by
31
31
  * rewriting.
32
32
  */
33
- export declare const RIBBON_CSS = "\n.dxr {\n /* OS-Legal design tokens (github.com/Open-Source-Legal/OS-Legal-Style):\n deep-teal accent, slate foreground scale, warm neutral surfaces, and\n \"light touch\" shadows at 0.03-0.06 opacity \u2014 structure over decoration. */\n --dxr-ink: #1e293b;\n --dxr-sheet: #ffffff;\n --dxr-chrome: #ffffff;\n --dxr-chrome-sunk: #f8fafc;\n --dxr-rule: #e2e8f0;\n --dxr-rule-strong: #cbd5e1;\n --dxr-accent: #0f766e;\n --dxr-accent-hover: #0d9488;\n --dxr-accent-active: #115e59;\n --dxr-wash: #f0fdfa;\n --dxr-wash-on: #ccfbf1;\n --dxr-muted: #475569;\n --dxr-faint: #94a3b8;\n --dxr-data: #0f766e;\n --dxr-danger: #dc2626;\n --dxr-danger-wash: #fef2f2;\n --dxr-desk: #f1f5f9;\n --dxr-ui: \"Inter\", system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;\n --dxr-serif: Georgia, \"Times New Roman\", serif;\n --dxr-mono: ui-monospace, SFMono-Regular, \"Cascadia Mono\", Consolas, monospace;\n --dxr-shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);\n --dxr-shadow-md: 0 1px 3px rgba(15, 23, 42, .06), 0 4px 6px rgba(15, 23, 42, .03);\n --dxr-shadow-lg: 0 4px 6px rgba(15, 23, 42, .05), 0 10px 15px rgba(15, 23, 42, .04);\n --dxr-shadow-xl: 0 8px 16px rgba(15, 23, 42, .06), 0 20px 25px rgba(15, 23, 42, .05);\n --dxr-ease: cubic-bezier(.4, 0, .2, 1);\n --dxr-tap: 30px;\n\n position: relative;\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n isolation: isolate;\n font-family: var(--dxr-ui);\n color: var(--dxr-ink);\n background: var(--dxr-desk);\n -webkit-text-size-adjust: 100%;\n}\n.dxr *, .dxr *::before, .dxr *::after { box-sizing: border-box; }\n\n/* \u2500\u2500 Card frame \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n A drop-in embed carries its OWN boundary instead of hoping the host clips it:\n rounded corners, a hairline, and the house elevation. overflow: clip keeps\n the sticky chrome, scrollbars, and the loading overlay inside the curve.\n Full-bleed hosts mount with data-frame=\"flush\" and stay edge-to-edge. */\n.dxr[data-frame=\"card\"] {\n border: 1px solid var(--dxr-rule);\n border-radius: 14px;\n box-shadow: var(--dxr-shadow-xl);\n overflow: clip;\n}\n\n/* Touch devices get bigger hit targets everywhere the token is used. */\n@media (pointer: coarse) { .dxr { --dxr-tap: 40px; } }\n\n/* \u2500\u2500 Chrome shell \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.dxr-chrome {\n position: sticky;\n top: 0;\n z-index: 10;\n flex: 0 0 auto;\n background: var(--dxr-chrome);\n border-bottom: 1px solid var(--dxr-rule);\n}\n\n.dxr-titlebar {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 10px 0;\n}\n.dxr-brand {\n display: flex;\n align-items: baseline;\n gap: 7px;\n min-width: 0;\n font-size: 13px;\n font-weight: 600;\n letter-spacing: -.01em;\n}\n/* A filled circle, echoing the OS-Legal \"Node\" motif rather than a diamond. */\n.dxr-brand .dxr-mark {\n flex: 0 0 auto;\n width: 9px;\n height: 9px;\n border-radius: 50%;\n background: var(--dxr-accent);\n}\n.dxr-brand .dxr-docname {\n overflow: hidden;\n max-width: 22ch;\n color: var(--dxr-muted);\n font-size: 12px;\n font-weight: 400;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.dxr-quick { flex: 0 0 auto; display: flex; align-items: center; gap: 3px; }\n.dxr-titlebar .dxr-spacer { flex: 1; }\n.dxr-status {\n overflow: hidden;\n max-width: 42ch;\n color: var(--dxr-muted);\n font-family: var(--dxr-mono);\n font-size: 11.5px;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* \u2500\u2500 Tab strip \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.dxr-tabs {\n display: flex;\n gap: 1px;\n padding: 6px 10px 0;\n overflow-x: auto;\n scrollbar-width: none;\n}\n.dxr-tabs::-webkit-scrollbar { display: none; }\n/* Line-variant tabs (the house Tabs default): no boxes, no fills \u2014 the selected\n tab is a 2px accent underline sitting on the panel's own hairline. */\n.dxr-tab {\n flex: 0 0 auto;\n padding: 7px 14px 8px;\n border: none;\n background: none;\n color: var(--dxr-muted);\n font: inherit;\n font-size: 12.5px;\n font-weight: 500;\n cursor: pointer;\n transition: color .15s var(--dxr-ease), box-shadow .15s var(--dxr-ease);\n}\n.dxr-tab:hover { color: var(--dxr-ink); }\n.dxr-tab[aria-selected=\"true\"] {\n color: var(--dxr-ink);\n font-weight: 600;\n box-shadow: inset 0 -2px 0 var(--dxr-accent);\n}\n/* Contextual tab \u2014 present only while the caret is inside a table. */\n.dxr-tab[data-contextual] { color: var(--dxr-accent); }\n.dxr-tab[hidden] { display: none; }\n\n/* \u2500\u2500 Ribbon panels \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.dxr-ribbon { background: var(--dxr-chrome-sunk); border-top: 1px solid var(--dxr-rule); }\n.dxr-ribbon[aria-disabled=\"true\"] { opacity: .45; pointer-events: none; }\n.dxr-panel {\n display: none;\n align-items: stretch;\n padding: 7px 10px 8px;\n overflow-x: auto;\n overscroll-behavior-x: contain;\n}\n.dxr-panel[data-active] { display: flex; }\n/* Group label sits ABOVE its controls (a spec-sheet reading), with hairline\n dividers rather than boxes \u2014 lighter than the boxed, label-under convention. */\n.dxr-group {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n gap: 5px;\n padding: 0 13px;\n border-right: 1px solid var(--dxr-rule);\n}\n.dxr-group:last-child { border-right: none; }\n.dxr-group:first-child { padding-left: 0; }\n.dxr-glabel {\n color: var(--dxr-faint);\n font-size: 9.5px;\n font-weight: 600;\n letter-spacing: .11em;\n text-transform: uppercase;\n}\n.dxr-row { display: flex; gap: 3px; align-items: center; }\n\n/* \u2500\u2500 Controls \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n/* One button family, house-style: every control is a ghost \u2014 no borders, no\n fills, no per-button boxes. Hover paints a quiet slate wash; the active\n (toggled) state paints a teal one. Save alone is the flat primary, so the\n surface has exactly one accent-colored action. */\n.dxr button, .dxr label.dxr-btn {\n min-height: var(--dxr-tap);\n padding: 5px 9px;\n border: none;\n border-radius: 6px;\n background: none;\n color: var(--dxr-ink);\n font: inherit;\n font-size: 13px;\n font-weight: 500;\n line-height: 1.15;\n cursor: pointer;\n transition: background-color .15s var(--dxr-ease), color .15s var(--dxr-ease),\n box-shadow .15s var(--dxr-ease), transform .15s var(--dxr-ease);\n}\n.dxr label.dxr-btn { display: inline-flex; align-items: center; }\n.dxr button:hover, .dxr label.dxr-btn:hover { background: #f1f5f9; }\n.dxr button:active { background: #e2e8f0; }\n.dxr button:disabled { opacity: .38; cursor: default; background: none; }\n.dxr button.dxr-on { color: var(--dxr-accent); background: var(--dxr-wash-on); }\n.dxr-quick button, .dxr-quick label.dxr-btn { padding: 4px 10px; font-size: 12.5px; }\n/* Save \u2014 the house primary: flat accent, sm shadow, the 1px lift on hover. */\n.dxr-quick button[data-dxr=\"save\"]:not(:disabled) {\n background: var(--dxr-accent);\n color: #fff;\n font-weight: 600;\n box-shadow: var(--dxr-shadow-sm);\n}\n.dxr-quick button[data-dxr=\"save\"]:not(:disabled):hover {\n background: var(--dxr-accent-hover);\n box-shadow: var(--dxr-shadow-md);\n transform: translateY(-1px);\n}\n.dxr-quick button[data-dxr=\"save\"]:not(:disabled):active {\n background: var(--dxr-accent-active);\n box-shadow: var(--dxr-shadow-sm);\n transform: translateY(0);\n}\n/* Icon controls sit quieter than text ones until touched (house IconButton). */\n.dxr button.dxr-icon { min-width: var(--dxr-tap); text-align: center; color: var(--dxr-muted); }\n.dxr button.dxr-icon:hover:not(:disabled) { color: var(--dxr-ink); }\n.dxr button.dxr-icon.dxr-on { color: var(--dxr-accent); }\n/* Icons are inline SVG drawn from the same shapes the control acts on (text lines,\n rules), so alignment and indent read at a glance instead of relying on arrow\n glyphs that collide with undo/redo. currentColor keeps them in step with state. */\n.dxr button svg { display: block; margin: 0 auto; fill: currentColor; }\n.dxr button.dxr-wide { display: inline-flex; align-items: center; justify-content: center; gap: 6px; }\n.dxr button.dxr-danger:hover { color: var(--dxr-danger); background: var(--dxr-danger-wash); }\n.dxr select, .dxr input[type=\"number\"], .dxr input[type=\"text\"] {\n min-height: var(--dxr-tap);\n padding: 4px 6px;\n border: 1px solid var(--dxr-rule);\n border-radius: 6px;\n background: var(--dxr-sheet);\n color: var(--dxr-ink);\n font: inherit;\n font-size: 12.5px;\n}\n.dxr select:hover, .dxr input:hover { border-color: var(--dxr-rule-strong); }\n.dxr select:focus-visible, .dxr input:focus-visible, .dxr button:focus-visible,\n.dxr .dxr-tab:focus-visible, .dxr label.dxr-btn:focus-within {\n outline: 2px solid var(--dxr-accent);\n outline-offset: 1px;\n}\n.dxr [data-dxr=\"fontsize\"] { width: 62px; }\n.dxr [data-dxr=\"fontfamily\"] { max-width: 132px; }\n.dxr [data-dxr=\"pgstart\"] { width: 64px; }\n.dxr-toggle {\n display: inline-flex;\n gap: 5px;\n align-items: center;\n color: var(--dxr-ink);\n font-size: 12.5px;\n white-space: nowrap;\n cursor: pointer;\n}\n.dxr-note { color: var(--dxr-muted); font-size: 11.5px; }\n\n/* \u2500\u2500 Anchor rail \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n The addressing spine made permanent chrome. Every block in this editor is\n addressable as kind:scope:unid, and the model of record is a live WASM session \u2014\n so the surface states both, live, instead of hiding them behind devtools. It also\n reports each command's real cost, which is what a smoke test needs to see. */\n.dxr-rail {\n display: flex;\n align-items: center;\n height: 25px;\n padding: 0 10px;\n overflow-x: auto;\n background: #fafafa;\n border-top: 1px solid var(--dxr-rule);\n color: var(--dxr-muted);\n font-family: var(--dxr-mono);\n font-size: 11.5px;\n scrollbar-width: none;\n}\n.dxr-rail::-webkit-scrollbar { display: none; }\n.dxr-rail .dxr-cell {\n display: flex;\n align-items: baseline;\n gap: 6px;\n padding: 0 13px;\n border-right: 1px solid var(--dxr-rule);\n white-space: nowrap;\n}\n.dxr-rail .dxr-cell:first-child { padding-left: 0; }\n.dxr-rail .dxr-cell:last-child { border-right: none; }\n.dxr-rail .dxr-k {\n color: var(--dxr-faint);\n font-family: var(--dxr-ui);\n font-size: 9.5px;\n letter-spacing: .1em;\n text-transform: uppercase;\n}\n.dxr-rail .dxr-v { color: var(--dxr-data); }\n.dxr-rail .dxr-v.dxr-flash { animation: dxr-railflash .45s ease-out; }\n@keyframes dxr-railflash { from { background: #ccfbf1; } to { background: transparent; } }\n\n/* \u2500\u2500 Hint \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.dxr-hint {\n flex: 0 0 auto;\n max-width: 920px;\n margin: 0 auto;\n padding: 9px 16px 0;\n color: var(--dxr-muted);\n font-size: 12px;\n line-height: 1.5;\n}\n.dxr-hint kbd {\n padding: 0 4px;\n border: 1px solid var(--dxr-rule);\n border-radius: 4px;\n background: #f1f5f9;\n font-family: var(--dxr-mono);\n font-size: 11px;\n}\n\n/* \u2500\u2500 Document surface \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n The surface is also the element the converter's own stylesheet treats as the\n document body: in an embed, its \"body { margin: 20px }\" is rewritten to\n [data-docxodus-embed-root=\"dN\"] [data-dxr-surface] \u2014 (0,2,0), and inserted AFTER\n this sheet, so it wins a tie. Rules that own the SHEET BOX (centering, page\n padding, the paper itself) therefore qualify with the root's data-chrome to reach\n (0,3,0). Rules that only style CONTENT stay unqualified \u2014 there the converter\n SHOULD win.\n (No backticks in this file's comments: the stylesheet is a template literal.) */\n.dxr-scroll { flex: 1 1 auto; min-height: 0; overflow: auto; -webkit-overflow-scrolling: touch; }\n/* Soft scroll boundaries: content dissolves at the chrome and at the bottom edge\n instead of hard-clipping. Sticky gradient veils cost one paint layer each and\n never intercept input. */\n.dxr-scroll::before, .dxr-scroll::after {\n content: \"\";\n position: sticky;\n z-index: 3;\n display: block;\n height: 26px;\n pointer-events: none;\n}\n.dxr-scroll::before {\n top: 0;\n margin-bottom: -26px;\n background: linear-gradient(to bottom, var(--dxr-desk), transparent);\n}\n.dxr-scroll::after {\n bottom: 0;\n margin-top: -26px;\n background: linear-gradient(to top, var(--dxr-desk), transparent);\n}\n.dxr[data-chrome] .dxr-surface { margin: 26px auto; padding: 0 16px 96px; }\n.dxr-surface [contenteditable=\"true\"]:focus {\n outline: 2px solid var(--dxr-accent);\n outline-offset: 2px;\n border-radius: 2px;\n}\n@media (hover: hover) { .dxr-surface [contenteditable=\"true\"]:hover { background: var(--dxr-wash); } }\n\n/* Header/footer bands: stories live in their own OOXML parts outside the body,\n so they dock as their own regions. Styled from the same tokens as the ribbon\n so the surface reads as one instrument rather than two apps. */\n.dxr-surface .docx-hf-band {\n /* Docked outside the zoomed sheet, so it takes the page's on-screen width from the\n custom property the viewport publishes rather than stretching to the whole surface. */\n width: min(100%, var(--docx-sheet-width, 100%));\n margin: 0 auto 14px;\n padding: 9px 72px 13px;\n border: 1px solid var(--dxr-rule);\n border-left: 2px solid #5eead4;\n border-radius: 6px;\n background: var(--dxr-sheet);\n box-shadow: var(--dxr-shadow-sm);\n}\n.dxr-surface .docx-hf-band + .docx-body-flow { margin-top: 0; }\n.dxr-surface .docx-hf-band[data-hf-band=\"footer\"] { margin: 14px auto 0; }\n.dxr-surface .docx-hf-chrome {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n margin: 0 0 7px -60px;\n color: var(--dxr-muted);\n font-size: 9.5px;\n font-weight: 600;\n letter-spacing: .11em;\n text-transform: uppercase;\n}\n.dxr-surface .docx-hf-chrome select, .dxr-surface .docx-hf-chrome input {\n padding: 3px 5px;\n border: 1px solid var(--dxr-rule);\n border-radius: 6px;\n background: var(--dxr-sheet);\n color: var(--dxr-ink);\n font: inherit;\n font-family: var(--dxr-ui);\n font-size: 12.5px;\n font-weight: 400;\n letter-spacing: normal;\n text-transform: none;\n}\n.dxr-surface .docx-hf-chrome input[data-hf-pagestart] { width: 64px; }\n.dxr-surface .docx-hf-label { font-weight: 600; }\n.dxr-surface .docx-hf-warning {\n margin: 0 0 8px -60px;\n padding: 7px 9px;\n border: 1px solid #fde68a;\n border-left: 2px solid #d97706;\n border-radius: 6px;\n background: #fffbeb;\n color: #92400e;\n font-size: 12px;\n line-height: 1.45;\n}\n.dxr-surface .docx-hf-warning button {\n margin-left: 6px;\n padding: 2px 8px;\n border-color: #fde68a;\n background: #fff;\n font-size: 12px;\n}\n.dxr-surface .docx-hf-placeholder { color: var(--dxr-faint); font-style: italic; }\n.dxr-surface .docx-hf-inherited {\n color: var(--dxr-muted);\n font-style: italic;\n font-weight: 400;\n letter-spacing: normal;\n text-transform: none;\n}\n.dxr-surface .docx-hf-band[data-hf-inherited] { border-style: dashed; }\n/* The sheet IS the page. The editor's viewport sizes .docx-body-flow to the section's page\n width and its section wrappers to the authored text column, so the horizontal gutters here\n are the document's own w:sectPr margins, not a padding this chrome invents; only the\n vertical breathing room is ours. Centering is left to margin:auto so a page the viewport\n has zoomed to fit stays centered at its scaled width. */\n.dxr[data-chrome] .dxr-surface[data-view=\"continuous\"] .docx-body-flow {\n max-width: 100%;\n margin: 0 auto;\n padding: 56px 0;\n border-radius: 3px;\n background: var(--dxr-sheet);\n box-shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 12px 24px rgba(15, 23, 42, .06);\n}\n\n/* \u2500\u2500 Table size picker \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.dxr-pop {\n display: none;\n position: absolute;\n z-index: 30;\n padding: 9px;\n border: 1px solid var(--dxr-rule);\n border-radius: 12px;\n background: #fff;\n box-shadow: var(--dxr-shadow-xl);\n}\n.dxr-pop[data-open] { display: block; }\n.dxr-gridcells { display: grid; grid-template-columns: repeat(10, 16px); gap: 2px; }\n.dxr-gridcells div {\n width: 16px;\n height: 16px;\n border: 1px solid var(--dxr-rule);\n border-radius: 3px;\n background: var(--dxr-chrome-sunk);\n cursor: pointer;\n}\n.dxr-gridcells div[data-on] { background: #ccfbf1; border-color: var(--dxr-accent); }\n.dxr-popfoot {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 10px;\n margin-top: 8px;\n font-size: 12px;\n}\n\n/* \u2500\u2500 Compact chrome (the mobile-first base) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n One scrolling strip per tab instead of a multi-row ribbon: group labels turn\n into inline dividers, the rail and hint step aside, and the picker becomes a\n bottom sheet because there is no room to hang a popover off a button. */\n/* A 320px phone cannot hold the product name AND the file actions, and the file\n actions are what a user came for. The strip also scrolls, so nothing is stranded. */\n.dxr[data-chrome=\"compact\"] .dxr-titlebar {\n gap: 6px;\n padding: 5px 8px 0;\n overflow-x: auto;\n scrollbar-width: none;\n}\n.dxr[data-chrome=\"compact\"] .dxr-titlebar::-webkit-scrollbar { display: none; }\n.dxr[data-chrome=\"compact\"] .dxr-brandname { display: none; }\n.dxr[data-chrome=\"compact\"] .dxr-brand { flex: 0 1 auto; }\n/* A filename clipped to \"do...\" tells you less than no filename at all, so it keeps a\n readable floor and the strip scrolls instead. The tighter file-action padding is what\n buys that floor back on a 390px screen. */\n.dxr[data-chrome=\"compact\"] .dxr-brand .dxr-docname { min-width: 6ch; max-width: 14ch; }\n.dxr[data-chrome=\"compact\"] .dxr-quick button,\n.dxr[data-chrome=\"compact\"] .dxr-quick label.dxr-btn { padding: 4px 8px; }\n.dxr[data-chrome=\"compact\"] .dxr-status { display: none; }\n.dxr[data-chrome=\"compact\"] .dxr-tabs { padding: 5px 8px 0; }\n.dxr[data-chrome=\"compact\"] .dxr-tab { padding: 6px 12px 7px; font-size: 12px; }\n.dxr[data-chrome=\"compact\"] .dxr-panel {\n align-items: center;\n gap: 4px;\n padding: 5px 8px;\n scroll-snap-type: x proximity;\n}\n.dxr[data-chrome=\"compact\"] .dxr-group {\n flex-direction: row;\n align-items: center;\n gap: 4px;\n padding: 0 8px;\n scroll-snap-align: start;\n}\n.dxr[data-chrome=\"compact\"] .dxr-glabel { display: none; }\n.dxr[data-chrome=\"compact\"] .dxr-note { display: none; }\n.dxr[data-chrome=\"compact\"] .dxr-rail { display: none; }\n.dxr[data-chrome=\"compact\"] .dxr-hint { display: none; }\n/* Compact trims the chrome around the page, never the page: the document's own column width\n is what the viewport's fit-to-width zoom scales, so a phone shows a whole smaller page\n instead of a narrower one that breaks its lines somewhere Word never would. */\n.dxr[data-chrome=\"compact\"] .dxr-surface { margin: 12px auto; padding: 0 10px 64px; }\n.dxr[data-chrome=\"compact\"] .dxr-surface[data-view=\"continuous\"] .docx-body-flow { padding: 22px 0; }\n.dxr[data-chrome=\"compact\"] .dxr-surface .docx-hf-band { padding: 9px 18px 13px; }\n.dxr[data-chrome=\"compact\"] .dxr-surface .docx-hf-chrome,\n.dxr[data-chrome=\"compact\"] .dxr-surface .docx-hf-warning { margin-left: 0; }\n/* A popover anchored to a button has nowhere to go on a narrow surface, so the\n picker docks to the bottom edge where a thumb already is. */\n.dxr[data-chrome=\"compact\"] .dxr-pop[data-open] {\n position: fixed;\n left: 50%;\n right: auto;\n bottom: 12px;\n top: auto !important;\n transform: translateX(-50%);\n max-width: calc(100vw - 20px);\n}\n\n/* \u2500\u2500 Loading overlay \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Kept from the shipped demo: the wait is real (a .NET runtime is streaming), so\n the surface spends it explaining what is being built rather than showing a\n spinner. It covers the whole instrument so half-built chrome never flashes. */\n.dxr-loader {\n position: absolute;\n inset: 0;\n z-index: 40;\n display: grid;\n place-items: center;\n padding: 24px;\n color: #f8fafc;\n background:\n radial-gradient(circle at 20% 20%, rgba(13, 148, 136, .2), transparent 22rem),\n radial-gradient(circle at 82% 80%, rgba(45, 212, 191, .1), transparent 24rem),\n linear-gradient(150deg, #0b1220 0%, #0f172a 55%, #0f2723 100%);\n transition: opacity .55s ease, visibility .55s ease;\n}\n.dxr-loader[hidden] { display: none; }\n/* pointer-events drops the instant the fade starts: the surface underneath is already\n live, so a click during the half-second fade should reach it rather than be eaten. */\n.dxr-loader[data-done] { opacity: 0; visibility: hidden; pointer-events: none; }\n.dxr-loader-grid {\n width: min(850px, 100%);\n display: grid;\n grid-template-columns: 1fr;\n align-items: center;\n gap: 22px;\n text-align: center;\n}\n.dxr-visual { position: relative; width: min(170px, 52vw); aspect-ratio: 1; margin: 0 auto; }\n.dxr-orbit {\n position: absolute;\n inset: 7%;\n border: 1px solid rgba(45, 212, 191, .24);\n border-radius: 50%;\n animation: dxr-spin 9s linear infinite;\n}\n.dxr-orbit.dxr-two {\n inset: 20%;\n border-style: dashed;\n border-color: rgba(94, 234, 212, .3);\n animation-duration: 6s;\n animation-direction: reverse;\n}\n.dxr-orbit::before, .dxr-orbit::after {\n position: absolute;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n content: \"\";\n background: #2dd4bf;\n box-shadow: 0 0 18px rgba(45, 212, 191, .8);\n}\n.dxr-orbit::before { top: -5px; left: 50%; }\n.dxr-orbit::after { right: 7%; bottom: 12%; background: #5eead4; box-shadow: 0 0 18px rgba(94, 234, 212, .7); }\n.dxr-card {\n position: absolute;\n inset: 24% 28%;\n padding: 20px 15px;\n border: 1px solid rgba(255, 255, 255, .3);\n border-radius: 14px;\n background: linear-gradient(150deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .05));\n box-shadow: 0 22px 50px rgba(0, 0, 0, .35), 0 0 45px rgba(13, 148, 136, .15);\n backdrop-filter: blur(10px);\n animation: dxr-float 3.6s ease-in-out infinite;\n}\n.dxr-card::before {\n position: absolute;\n top: -9px;\n right: -9px;\n padding: 4px 7px;\n border-radius: 6px;\n background: #2dd4bf;\n color: #042f2e;\n content: \"DOCX\";\n font-size: 8px;\n font-weight: 900;\n letter-spacing: .12em;\n}\n.dxr-card i {\n display: block;\n height: 4px;\n margin-bottom: 10px;\n border-radius: 4px;\n background: rgba(255, 255, 255, .56);\n transform-origin: left;\n animation: dxr-pulse 2.2s ease-in-out infinite;\n}\n.dxr-card i:nth-child(2) { width: 76%; animation-delay: -.45s; }\n.dxr-card i:nth-child(3) { width: 88%; animation-delay: -.85s; }\n.dxr-card i:nth-child(4) { width: 58%; background: rgba(248, 113, 113, .75); animation-delay: -1.2s; }\n.dxr-chip {\n position: absolute;\n display: grid;\n width: 34px;\n height: 34px;\n place-items: center;\n border: 1px solid rgba(255, 255, 255, .16);\n border-radius: 11px;\n background: rgba(15, 30, 46, .88);\n box-shadow: 0 12px 30px rgba(0, 0, 0, .28);\n font-size: 11px;\n font-weight: 850;\n}\n.dxr-chip.dxr-b { left: 2%; top: 30%; color: #5eead4; animation: dxr-chip 3s ease-in-out infinite; }\n.dxr-chip.dxr-r { right: -2%; bottom: 24%; color: #fca5a5; animation: dxr-chip 3s -1.4s ease-in-out infinite; }\n.dxr-chip.dxr-s { left: 20%; bottom: 0; color: #6ee7b7; animation: dxr-chip 3s -.7s ease-in-out infinite; }\n.dxr-eyebrow { color: #5eead4; font-size: 10px; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }\n/* Georgia headline \u2014 the house pairing of a serif headline over Inter UI copy. */\n.dxr-loader h2 {\n margin: 10px auto 10px;\n max-width: 520px;\n font-family: var(--dxr-serif);\n font-size: clamp(23px, 5vw, 38px);\n font-weight: 500;\n line-height: 1.08;\n letter-spacing: -.02em;\n}\n.dxr-loader-copy > p { margin: 0 auto; max-width: 46ch; color: #94a3b8; font-size: 13.5px; line-height: 1.6; }\n.dxr-ad {\n display: flex;\n gap: 12px;\n margin: 20px auto 0;\n max-width: 420px;\n padding: 13px;\n border: 1px solid rgba(148, 163, 184, .16);\n border-radius: 12px;\n background: rgba(255, 255, 255, .04);\n text-align: left;\n}\n.dxr-ad .dxr-num { color: #2dd4bf; font: 800 10px/1.4 var(--dxr-mono); }\n.dxr-ad strong { display: block; font-size: 12.5px; }\n.dxr-ad .dxr-adcopy { display: block; margin-top: 4px; color: #8ba0b9; font-size: 11.5px; line-height: 1.45; }\n.dxr-ad[data-swap] { animation: dxr-swap .4s ease; }\n.dxr-track {\n height: 3px;\n margin: 22px auto 0;\n max-width: 420px;\n overflow: hidden;\n border-radius: 999px;\n background: rgba(255, 255, 255, .09);\n}\n.dxr-bar {\n width: 12%;\n height: 100%;\n border-radius: inherit;\n background: linear-gradient(90deg, #14b8a6, #2dd4bf, #5eead4);\n box-shadow: 0 0 16px rgba(45, 212, 191, .5);\n transition: width .65s cubic-bezier(.22, .8, .28, 1);\n}\n.dxr-meta {\n display: flex;\n justify-content: space-between;\n gap: 14px;\n margin: 9px auto 0;\n max-width: 420px;\n color: #64748b;\n font: 700 9px/1 var(--dxr-mono);\n letter-spacing: .09em;\n text-transform: uppercase;\n}\n.dxr-retry {\n display: none;\n margin-top: 18px;\n padding: 9px 14px;\n border: 1px solid rgba(248, 113, 113, .4);\n border-radius: 9px;\n background: rgba(248, 113, 113, .12);\n color: #fff;\n cursor: pointer;\n}\n.dxr-loader[data-error] .dxr-retry { display: inline-flex; }\n.dxr-loader[data-error] .dxr-visual { opacity: .35; }\n\n/* Two columns once there is room \u2014 the visual earns its space beside the copy. */\n@media (min-width: 760px) {\n .dxr-loader-grid {\n grid-template-columns: minmax(220px, .8fr) minmax(300px, 1.2fr);\n gap: clamp(28px, 6vw, 72px);\n text-align: left;\n }\n .dxr-visual { width: min(280px, 30vw); }\n .dxr-loader h2 { margin-left: 0; }\n .dxr-loader-copy > p { margin-left: 0; min-height: 44px; }\n .dxr-ad, .dxr-track, .dxr-meta { margin-left: 0; }\n}\n\n@keyframes dxr-spin { to { transform: rotate(360deg); } }\n@keyframes dxr-float { 0%, 100% { transform: translateY(-5px) rotate(-2deg); } 50% { transform: translateY(7px) rotate(1deg); } }\n@keyframes dxr-chip { 0%, 100% { transform: translateY(-4px); } 50% { transform: translateY(5px); } }\n@keyframes dxr-pulse { 0%, 100% { transform: scaleX(.65); opacity: .45; } 50% { transform: scaleX(1); opacity: .95; } }\n@keyframes dxr-swap { from { opacity: .1; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }\n\n@media (prefers-reduced-motion: reduce) {\n .dxr *, .dxr *::before, .dxr *::after {\n animation-duration: .01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: .01ms !important;\n }\n}\n";
33
+ export declare const RIBBON_CSS = "\n.dxr {\n /* OS-Legal design tokens (github.com/Open-Source-Legal/OS-Legal-Style):\n deep-teal accent, slate foreground scale, warm neutral surfaces, and\n \"light touch\" shadows at 0.03-0.06 opacity \u2014 structure over decoration. */\n --dxr-ink: #1e293b;\n --dxr-sheet: #ffffff;\n --dxr-chrome: #ffffff;\n --dxr-chrome-sunk: #f8fafc;\n --dxr-rule: #e2e8f0;\n --dxr-rule-strong: #cbd5e1;\n --dxr-accent: #0f766e;\n --dxr-accent-hover: #0d9488;\n --dxr-accent-active: #115e59;\n --dxr-wash: #f0fdfa;\n --dxr-wash-on: #ccfbf1;\n --dxr-muted: #475569;\n --dxr-faint: #94a3b8;\n --dxr-data: #0f766e;\n --dxr-danger: #dc2626;\n --dxr-danger-wash: #fef2f2;\n --dxr-desk: #f1f5f9;\n --dxr-ui: \"Inter\", system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;\n --dxr-serif: Georgia, \"Times New Roman\", serif;\n --dxr-mono: ui-monospace, SFMono-Regular, \"Cascadia Mono\", Consolas, monospace;\n --dxr-shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);\n --dxr-shadow-md: 0 1px 3px rgba(15, 23, 42, .06), 0 4px 6px rgba(15, 23, 42, .03);\n --dxr-shadow-lg: 0 4px 6px rgba(15, 23, 42, .05), 0 10px 15px rgba(15, 23, 42, .04);\n --dxr-shadow-xl: 0 8px 16px rgba(15, 23, 42, .06), 0 20px 25px rgba(15, 23, 42, .05);\n --dxr-ease: cubic-bezier(.4, 0, .2, 1);\n --dxr-tap: 30px;\n\n position: relative;\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n isolation: isolate;\n font-family: var(--dxr-ui);\n color: var(--dxr-ink);\n background: var(--dxr-desk);\n -webkit-text-size-adjust: 100%;\n text-size-adjust: 100%;\n}\n.dxr *, .dxr *::before, .dxr *::after { box-sizing: border-box; }\n\n/* \u2500\u2500 Card frame \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n A drop-in embed carries its OWN boundary instead of hoping the host clips it:\n rounded corners, a hairline, and the house elevation. overflow: clip keeps\n the sticky chrome, scrollbars, and the loading overlay inside the curve.\n Full-bleed hosts mount with data-frame=\"flush\" and stay edge-to-edge. */\n.dxr[data-frame=\"card\"] {\n border: 1px solid var(--dxr-rule);\n border-radius: 14px;\n box-shadow: var(--dxr-shadow-xl);\n overflow: clip;\n}\n\n/* Touch devices get bigger hit targets everywhere the token is used. */\n@media (pointer: coarse) { .dxr { --dxr-tap: 40px; } }\n\n/* \u2500\u2500 Chrome shell \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.dxr-chrome {\n position: sticky;\n top: 0;\n z-index: 10;\n flex: 0 0 auto;\n background: var(--dxr-chrome);\n border-bottom: 1px solid var(--dxr-rule);\n}\n\n.dxr-titlebar {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 10px 0;\n}\n.dxr-brand {\n display: flex;\n align-items: baseline;\n gap: 7px;\n min-width: 0;\n font-size: 13px;\n font-weight: 600;\n letter-spacing: -.01em;\n}\n/* A filled circle, echoing the OS-Legal \"Node\" motif rather than a diamond. */\n.dxr-brand .dxr-mark {\n flex: 0 0 auto;\n width: 9px;\n height: 9px;\n border-radius: 50%;\n background: var(--dxr-accent);\n}\n.dxr-brand .dxr-docname {\n overflow: hidden;\n max-width: 22ch;\n color: var(--dxr-muted);\n font-size: 12px;\n font-weight: 400;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.dxr-quick { flex: 0 0 auto; display: flex; align-items: center; gap: 3px; }\n.dxr-titlebar .dxr-spacer { flex: 1; }\n.dxr-status {\n overflow: hidden;\n max-width: 42ch;\n color: var(--dxr-muted);\n font-family: var(--dxr-mono);\n font-size: 11.5px;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* \u2500\u2500 Tab strip \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.dxr-tabs {\n display: flex;\n gap: 1px;\n padding: 6px 10px 0;\n overflow-x: auto;\n scrollbar-width: none;\n}\n.dxr-tabs::-webkit-scrollbar { display: none; }\n/* Line-variant tabs (the house Tabs default): no boxes, no fills \u2014 the selected\n tab is a 2px accent underline sitting on the panel's own hairline. */\n.dxr-tab {\n flex: 0 0 auto;\n padding: 7px 14px 8px;\n border: none;\n background: none;\n color: var(--dxr-muted);\n font: inherit;\n font-size: 12.5px;\n font-weight: 500;\n cursor: pointer;\n transition: color .15s var(--dxr-ease), box-shadow .15s var(--dxr-ease);\n}\n.dxr-tab:hover { color: var(--dxr-ink); }\n.dxr-tab[aria-selected=\"true\"] {\n color: var(--dxr-ink);\n font-weight: 600;\n box-shadow: inset 0 -2px 0 var(--dxr-accent);\n}\n/* Contextual tab \u2014 present only while the caret is inside a table. */\n.dxr-tab[data-contextual] { color: var(--dxr-accent); }\n.dxr-tab[hidden] { display: none; }\n\n/* \u2500\u2500 Ribbon panels \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.dxr-ribbon { background: var(--dxr-chrome-sunk); border-top: 1px solid var(--dxr-rule); }\n.dxr-ribbon[aria-disabled=\"true\"] { opacity: .45; pointer-events: none; }\n.dxr-panel {\n display: none;\n align-items: stretch;\n padding: 7px 10px 8px;\n overflow-x: auto;\n overscroll-behavior-x: contain;\n}\n.dxr-panel[data-active] { display: flex; }\n/* Group label sits ABOVE its controls (a spec-sheet reading), with hairline\n dividers rather than boxes \u2014 lighter than the boxed, label-under convention. */\n.dxr-group {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n gap: 5px;\n padding: 0 13px;\n border-right: 1px solid var(--dxr-rule);\n}\n.dxr-group:last-child { border-right: none; }\n.dxr-group:first-child { padding-left: 0; }\n.dxr-glabel {\n color: var(--dxr-faint);\n font-size: 9.5px;\n font-weight: 600;\n letter-spacing: .11em;\n text-transform: uppercase;\n}\n.dxr-row { display: flex; gap: 3px; align-items: center; }\n\n/* \u2500\u2500 Controls \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n/* One button family, house-style: every control is a ghost \u2014 no borders, no\n fills, no per-button boxes. Hover paints a quiet slate wash; the active\n (toggled) state paints a teal one. Save alone is the flat primary, so the\n surface has exactly one accent-colored action. */\n.dxr button, .dxr label.dxr-btn {\n min-height: var(--dxr-tap);\n padding: 5px 9px;\n border: none;\n border-radius: 6px;\n background: none;\n color: var(--dxr-ink);\n font: inherit;\n font-size: 13px;\n font-weight: 500;\n line-height: 1.15;\n cursor: pointer;\n transition: background-color .15s var(--dxr-ease), color .15s var(--dxr-ease),\n box-shadow .15s var(--dxr-ease), transform .15s var(--dxr-ease);\n}\n.dxr label.dxr-btn { display: inline-flex; align-items: center; }\n.dxr button:hover, .dxr label.dxr-btn:hover { background: #f1f5f9; }\n.dxr button:active { background: #e2e8f0; }\n.dxr button:disabled { opacity: .38; cursor: default; background: none; }\n.dxr button.dxr-on { color: var(--dxr-accent); background: var(--dxr-wash-on); }\n.dxr-quick button, .dxr-quick label.dxr-btn { padding: 4px 10px; font-size: 12.5px; }\n/* Save \u2014 the house primary: flat accent, sm shadow, the 1px lift on hover. */\n.dxr-quick button[data-dxr=\"save\"]:not(:disabled) {\n background: var(--dxr-accent);\n color: #fff;\n font-weight: 600;\n box-shadow: var(--dxr-shadow-sm);\n}\n.dxr-quick button[data-dxr=\"save\"]:not(:disabled):hover {\n background: var(--dxr-accent-hover);\n box-shadow: var(--dxr-shadow-md);\n transform: translateY(-1px);\n}\n.dxr-quick button[data-dxr=\"save\"]:not(:disabled):active {\n background: var(--dxr-accent-active);\n box-shadow: var(--dxr-shadow-sm);\n transform: translateY(0);\n}\n/* Icon controls sit quieter than text ones until touched (house IconButton). */\n.dxr button.dxr-icon { min-width: var(--dxr-tap); text-align: center; color: var(--dxr-muted); }\n.dxr button.dxr-icon:hover:not(:disabled) { color: var(--dxr-ink); }\n.dxr button.dxr-icon.dxr-on { color: var(--dxr-accent); }\n/* Icons are inline SVG drawn from the same shapes the control acts on (text lines,\n rules), so alignment and indent read at a glance instead of relying on arrow\n glyphs that collide with undo/redo. currentColor keeps them in step with state. */\n.dxr button svg { display: block; margin: 0 auto; fill: currentColor; }\n.dxr button.dxr-wide { display: inline-flex; align-items: center; justify-content: center; gap: 6px; }\n.dxr button.dxr-danger:hover { color: var(--dxr-danger); background: var(--dxr-danger-wash); }\n.dxr select, .dxr input[type=\"number\"], .dxr input[type=\"text\"] {\n min-height: var(--dxr-tap);\n padding: 4px 6px;\n border: 1px solid var(--dxr-rule);\n border-radius: 6px;\n background: var(--dxr-sheet);\n color: var(--dxr-ink);\n font: inherit;\n font-size: 12.5px;\n}\n.dxr select:hover, .dxr input:hover { border-color: var(--dxr-rule-strong); }\n.dxr select:focus-visible, .dxr input:focus-visible, .dxr button:focus-visible,\n.dxr .dxr-tab:focus-visible, .dxr label.dxr-btn:focus-within {\n outline: 2px solid var(--dxr-accent);\n outline-offset: 1px;\n}\n.dxr [data-dxr=\"fontsize\"] { width: 62px; }\n.dxr [data-dxr=\"fontfamily\"] { max-width: 132px; }\n.dxr [data-dxr=\"pgstart\"] { width: 64px; }\n.dxr-toggle {\n display: inline-flex;\n gap: 5px;\n align-items: center;\n color: var(--dxr-ink);\n font-size: 12.5px;\n white-space: nowrap;\n cursor: pointer;\n}\n.dxr-note { color: var(--dxr-muted); font-size: 11.5px; }\n\n/* \u2500\u2500 Anchor rail \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n The addressing spine made permanent chrome. Every block in this editor is\n addressable as kind:scope:unid, and the model of record is a live WASM session \u2014\n so the surface states both, live, instead of hiding them behind devtools. It also\n reports each command's real cost, which is what a smoke test needs to see. */\n.dxr-rail {\n display: flex;\n align-items: center;\n height: 25px;\n padding: 0 10px;\n overflow-x: auto;\n background: #fafafa;\n border-top: 1px solid var(--dxr-rule);\n color: var(--dxr-muted);\n font-family: var(--dxr-mono);\n font-size: 11.5px;\n scrollbar-width: none;\n}\n.dxr-rail::-webkit-scrollbar { display: none; }\n.dxr-rail .dxr-cell {\n display: flex;\n align-items: baseline;\n gap: 6px;\n padding: 0 13px;\n border-right: 1px solid var(--dxr-rule);\n white-space: nowrap;\n}\n.dxr-rail .dxr-cell:first-child { padding-left: 0; }\n.dxr-rail .dxr-cell:last-child { border-right: none; }\n.dxr-rail .dxr-k {\n color: var(--dxr-faint);\n font-family: var(--dxr-ui);\n font-size: 9.5px;\n letter-spacing: .1em;\n text-transform: uppercase;\n}\n.dxr-rail .dxr-v { color: var(--dxr-data); }\n.dxr-rail .dxr-v.dxr-flash { animation: dxr-railflash .45s ease-out; }\n@keyframes dxr-railflash { from { background: #ccfbf1; } to { background: transparent; } }\n\n/* \u2500\u2500 Hint \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.dxr-hint {\n flex: 0 0 auto;\n max-width: 920px;\n margin: 0 auto;\n padding: 9px 16px 0;\n color: var(--dxr-muted);\n font-size: 12px;\n line-height: 1.5;\n}\n.dxr-hint kbd {\n padding: 0 4px;\n border: 1px solid var(--dxr-rule);\n border-radius: 4px;\n background: #f1f5f9;\n font-family: var(--dxr-mono);\n font-size: 11px;\n}\n\n/* \u2500\u2500 Document surface \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n The surface is also the element the converter's own stylesheet treats as the\n document body: in an embed, its \"body { margin: 20px }\" is rewritten to\n [data-docxodus-embed-root=\"dN\"] [data-dxr-surface] \u2014 (0,2,0), and inserted AFTER\n this sheet, so it wins a tie. Rules that own the SHEET BOX (centering, page\n padding, the paper itself) therefore qualify with the root's data-chrome to reach\n (0,3,0). Rules that only style CONTENT stay unqualified \u2014 there the converter\n SHOULD win.\n (No backticks in this file's comments: the stylesheet is a template literal.) */\n.dxr-scroll { flex: 1 1 auto; min-height: 0; overflow: auto; -webkit-overflow-scrolling: touch; }\n/* Soft scroll boundaries: content dissolves at the chrome and at the bottom edge\n instead of hard-clipping. Sticky gradient veils cost one paint layer each and\n never intercept input. */\n.dxr-scroll::before, .dxr-scroll::after {\n content: \"\";\n position: sticky;\n z-index: 3;\n display: block;\n height: 26px;\n pointer-events: none;\n}\n.dxr-scroll::before {\n top: 0;\n margin-bottom: -26px;\n background: linear-gradient(to bottom, var(--dxr-desk), transparent);\n}\n.dxr-scroll::after {\n bottom: 0;\n margin-top: -26px;\n background: linear-gradient(to top, var(--dxr-desk), transparent);\n}\n.dxr[data-chrome] .dxr-surface { margin: 26px auto; padding: 0 16px 96px; }\n.dxr-surface [contenteditable=\"true\"]:focus {\n outline: 2px solid var(--dxr-accent);\n outline-offset: 2px;\n border-radius: 2px;\n}\n@media (hover: hover) { .dxr-surface [contenteditable=\"true\"]:hover { background: var(--dxr-wash); } }\n\n/* Header/footer bands: stories live in their own OOXML parts outside the body,\n so they dock as their own regions. Styled from the same tokens as the ribbon\n so the surface reads as one instrument rather than two apps. */\n.dxr-surface .docx-hf-band {\n /* Docked outside the zoomed sheet, so it takes the page's on-screen width from the\n custom property the viewport publishes rather than stretching to the whole surface. */\n width: min(100%, var(--docx-sheet-width, 100%));\n margin: 0 auto 14px;\n padding: 9px 72px 13px;\n border: 1px solid var(--dxr-rule);\n border-left: 2px solid #5eead4;\n border-radius: 6px;\n background: var(--dxr-sheet);\n box-shadow: var(--dxr-shadow-sm);\n}\n.dxr-surface .docx-hf-band + .docx-body-flow { margin-top: 0; }\n.dxr-surface .docx-hf-band[data-hf-band=\"footer\"] { margin: 14px auto 0; }\n.dxr-surface .docx-hf-chrome {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n margin: 0 0 7px -60px;\n color: var(--dxr-muted);\n font-size: 9.5px;\n font-weight: 600;\n letter-spacing: .11em;\n text-transform: uppercase;\n}\n.dxr-surface .docx-hf-chrome select, .dxr-surface .docx-hf-chrome input {\n padding: 3px 5px;\n border: 1px solid var(--dxr-rule);\n border-radius: 6px;\n background: var(--dxr-sheet);\n color: var(--dxr-ink);\n font: inherit;\n font-family: var(--dxr-ui);\n font-size: 12.5px;\n font-weight: 400;\n letter-spacing: normal;\n text-transform: none;\n}\n.dxr-surface .docx-hf-chrome input[data-hf-pagestart] { width: 64px; }\n.dxr-surface .docx-hf-label { font-weight: 600; }\n.dxr-surface .docx-hf-warning {\n margin: 0 0 8px -60px;\n padding: 7px 9px;\n border: 1px solid #fde68a;\n border-left: 2px solid #d97706;\n border-radius: 6px;\n background: #fffbeb;\n color: #92400e;\n font-size: 12px;\n line-height: 1.45;\n}\n.dxr-surface .docx-hf-warning button {\n margin-left: 6px;\n padding: 2px 8px;\n border-color: #fde68a;\n background: #fff;\n font-size: 12px;\n}\n.dxr-surface .docx-hf-placeholder { color: var(--dxr-faint); font-style: italic; }\n.dxr-surface .docx-hf-inherited {\n color: var(--dxr-muted);\n font-style: italic;\n font-weight: 400;\n letter-spacing: normal;\n text-transform: none;\n}\n.dxr-surface .docx-hf-band[data-hf-inherited] { border-style: dashed; }\n/* The sheet IS the page. The editor's viewport sizes .docx-body-flow to the section's page\n width and its section wrappers to the authored text column, so the horizontal gutters here\n are the document's own w:sectPr margins, not a padding this chrome invents; only the\n vertical breathing room is ours. Centering is left to margin:auto so a page the viewport\n has zoomed to fit stays centered at its scaled width. */\n.dxr[data-chrome] .dxr-surface[data-view=\"continuous\"] .docx-body-flow {\n max-width: 100%;\n margin: 0 auto;\n padding: 56px 0;\n border-radius: 3px;\n background: var(--dxr-sheet);\n box-shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 12px 24px rgba(15, 23, 42, .06);\n}\n\n/* \u2500\u2500 Review: comment threads \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.dxr-threads {\n display: flex; flex-direction: column; gap: 4px;\n max-height: 92px; overflow-y: auto; min-width: 260px; padding-right: 2px;\n}\n.dxr-thread {\n display: flex; align-items: center; gap: 6px;\n font-size: 11px; line-height: 1.3; padding: 3px 6px;\n border: 1px solid var(--dxr-rule); border-radius: 4px; background: var(--dxr-chrome-sunk);\n}\n.dxr-thread[data-resolved] { opacity: 0.55; }\n.dxr-thread[data-reply] { margin-left: 14px; }\n.dxr-thread .dxr-tauthor { font-weight: 600; white-space: nowrap; }\n.dxr-thread .dxr-ttext {\n flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 220px;\n}\n.dxr-thread button { flex: none; }\n.dxr-group.dxr-grow { flex: 1; min-width: 0; }\n\n/* \u2500\u2500 Table size picker \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.dxr-pop {\n display: none;\n position: absolute;\n z-index: 30;\n padding: 9px;\n border: 1px solid var(--dxr-rule);\n border-radius: 12px;\n background: #fff;\n box-shadow: var(--dxr-shadow-xl);\n}\n.dxr-pop[data-open] { display: block; }\n.dxr-gridcells { display: grid; grid-template-columns: repeat(10, 16px); gap: 2px; }\n.dxr-gridcells div {\n width: 16px;\n height: 16px;\n border: 1px solid var(--dxr-rule);\n border-radius: 3px;\n background: var(--dxr-chrome-sunk);\n cursor: pointer;\n}\n.dxr-gridcells div[data-on] { background: #ccfbf1; border-color: var(--dxr-accent); }\n.dxr-popfoot {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 10px;\n margin-top: 8px;\n font-size: 12px;\n}\n\n/* \u2500\u2500 Compact chrome (the mobile-first base) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n One scrolling strip per tab instead of a multi-row ribbon: group labels turn\n into inline dividers, the rail and hint step aside, and the picker becomes a\n bottom sheet because there is no room to hang a popover off a button. */\n/* A 320px phone cannot hold the product name AND the file actions, and the file\n actions are what a user came for. The strip also scrolls, so nothing is stranded. */\n.dxr[data-chrome=\"compact\"] .dxr-titlebar {\n gap: 6px;\n padding: 5px 8px 0;\n overflow-x: auto;\n scrollbar-width: none;\n}\n.dxr[data-chrome=\"compact\"] .dxr-titlebar::-webkit-scrollbar { display: none; }\n.dxr[data-chrome=\"compact\"] .dxr-brandname { display: none; }\n.dxr[data-chrome=\"compact\"] .dxr-brand { flex: 0 1 auto; }\n/* A filename clipped to \"do...\" tells you less than no filename at all, so it keeps a\n readable floor and the strip scrolls instead. The tighter file-action padding is what\n buys that floor back on a 390px screen. */\n.dxr[data-chrome=\"compact\"] .dxr-brand .dxr-docname { min-width: 6ch; max-width: 14ch; }\n.dxr[data-chrome=\"compact\"] .dxr-quick button,\n.dxr[data-chrome=\"compact\"] .dxr-quick label.dxr-btn { padding: 4px 8px; }\n.dxr[data-chrome=\"compact\"] .dxr-status { display: none; }\n.dxr[data-chrome=\"compact\"] .dxr-tabs { padding: 5px 8px 0; }\n.dxr[data-chrome=\"compact\"] .dxr-tab { padding: 6px 12px 7px; font-size: 12px; }\n.dxr[data-chrome=\"compact\"] .dxr-panel {\n align-items: center;\n gap: 4px;\n padding: 5px 8px;\n scroll-snap-type: x proximity;\n}\n.dxr[data-chrome=\"compact\"] .dxr-group {\n flex-direction: row;\n align-items: center;\n gap: 4px;\n padding: 0 8px;\n scroll-snap-align: start;\n}\n.dxr[data-chrome=\"compact\"] .dxr-glabel { display: none; }\n.dxr[data-chrome=\"compact\"] .dxr-note { display: none; }\n.dxr[data-chrome=\"compact\"] .dxr-rail { display: none; }\n.dxr[data-chrome=\"compact\"] .dxr-hint { display: none; }\n/* Compact trims the chrome around the page, never the page: the document's own column width\n is what the viewport's fit-to-width zoom scales, so a phone shows a whole smaller page\n instead of a narrower one that breaks its lines somewhere Word never would. */\n.dxr[data-chrome=\"compact\"] .dxr-surface { margin: 12px auto; padding: 0 10px 64px; }\n.dxr[data-chrome=\"compact\"] .dxr-surface[data-view=\"continuous\"] .docx-body-flow { padding: 22px 0; }\n.dxr[data-chrome=\"compact\"] .dxr-surface .docx-hf-band { padding: 9px 18px 13px; }\n.dxr[data-chrome=\"compact\"] .dxr-surface .docx-hf-chrome,\n.dxr[data-chrome=\"compact\"] .dxr-surface .docx-hf-warning { margin-left: 0; }\n/* A popover anchored to a button has nowhere to go on a narrow surface, so the\n picker docks to the bottom edge where a thumb already is. */\n.dxr[data-chrome=\"compact\"] .dxr-pop[data-open] {\n position: fixed;\n left: 50%;\n right: auto;\n bottom: 12px;\n top: auto !important;\n transform: translateX(-50%);\n max-width: calc(100vw - 20px);\n}\n\n/* \u2500\u2500 Loading overlay \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Kept from the shipped demo: the wait is real (a .NET runtime is streaming), so\n the surface spends it explaining what is being built rather than showing a\n spinner. It covers the whole instrument so half-built chrome never flashes. */\n.dxr-loader {\n position: absolute;\n inset: 0;\n z-index: 40;\n display: grid;\n place-items: center;\n padding: 24px;\n color: #f8fafc;\n background:\n radial-gradient(circle at 20% 20%, rgba(13, 148, 136, .2), transparent 22rem),\n radial-gradient(circle at 82% 80%, rgba(45, 212, 191, .1), transparent 24rem),\n linear-gradient(150deg, #0b1220 0%, #0f172a 55%, #0f2723 100%);\n transition: opacity .55s ease, visibility .55s ease;\n}\n.dxr-loader[hidden] { display: none; }\n/* pointer-events drops the instant the fade starts: the surface underneath is already\n live, so a click during the half-second fade should reach it rather than be eaten. */\n.dxr-loader[data-done] { opacity: 0; visibility: hidden; pointer-events: none; }\n.dxr-loader-grid {\n width: min(850px, 100%);\n display: grid;\n grid-template-columns: 1fr;\n align-items: center;\n gap: 22px;\n text-align: center;\n}\n.dxr-visual { position: relative; width: min(170px, 52vw); aspect-ratio: 1; margin: 0 auto; }\n.dxr-orbit {\n position: absolute;\n inset: 7%;\n border: 1px solid rgba(45, 212, 191, .24);\n border-radius: 50%;\n animation: dxr-spin 9s linear infinite;\n}\n.dxr-orbit.dxr-two {\n inset: 20%;\n border-style: dashed;\n border-color: rgba(94, 234, 212, .3);\n animation-duration: 6s;\n animation-direction: reverse;\n}\n.dxr-orbit::before, .dxr-orbit::after {\n position: absolute;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n content: \"\";\n background: #2dd4bf;\n box-shadow: 0 0 18px rgba(45, 212, 191, .8);\n}\n.dxr-orbit::before { top: -5px; left: 50%; }\n.dxr-orbit::after { right: 7%; bottom: 12%; background: #5eead4; box-shadow: 0 0 18px rgba(94, 234, 212, .7); }\n.dxr-card {\n position: absolute;\n inset: 24% 28%;\n padding: 20px 15px;\n border: 1px solid rgba(255, 255, 255, .3);\n border-radius: 14px;\n background: linear-gradient(150deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .05));\n box-shadow: 0 22px 50px rgba(0, 0, 0, .35), 0 0 45px rgba(13, 148, 136, .15);\n backdrop-filter: blur(10px);\n animation: dxr-float 3.6s ease-in-out infinite;\n}\n.dxr-card::before {\n position: absolute;\n top: -9px;\n right: -9px;\n padding: 4px 7px;\n border-radius: 6px;\n background: #2dd4bf;\n color: #042f2e;\n content: \"DOCX\";\n font-size: 8px;\n font-weight: 900;\n letter-spacing: .12em;\n}\n.dxr-card i {\n display: block;\n height: 4px;\n margin-bottom: 10px;\n border-radius: 4px;\n background: rgba(255, 255, 255, .56);\n transform-origin: left;\n animation: dxr-pulse 2.2s ease-in-out infinite;\n}\n.dxr-card i:nth-child(2) { width: 76%; animation-delay: -.45s; }\n.dxr-card i:nth-child(3) { width: 88%; animation-delay: -.85s; }\n.dxr-card i:nth-child(4) { width: 58%; background: rgba(248, 113, 113, .75); animation-delay: -1.2s; }\n.dxr-chip {\n position: absolute;\n display: grid;\n width: 34px;\n height: 34px;\n place-items: center;\n border: 1px solid rgba(255, 255, 255, .16);\n border-radius: 11px;\n background: rgba(15, 30, 46, .88);\n box-shadow: 0 12px 30px rgba(0, 0, 0, .28);\n font-size: 11px;\n font-weight: 850;\n}\n.dxr-chip.dxr-b { left: 2%; top: 30%; color: #5eead4; animation: dxr-chip 3s ease-in-out infinite; }\n.dxr-chip.dxr-r { right: -2%; bottom: 24%; color: #fca5a5; animation: dxr-chip 3s -1.4s ease-in-out infinite; }\n.dxr-chip.dxr-s { left: 20%; bottom: 0; color: #6ee7b7; animation: dxr-chip 3s -.7s ease-in-out infinite; }\n.dxr-eyebrow { color: #5eead4; font-size: 10px; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }\n/* Georgia headline \u2014 the house pairing of a serif headline over Inter UI copy. */\n.dxr-loader h2 {\n margin: 10px auto 10px;\n max-width: 520px;\n font-family: var(--dxr-serif);\n font-size: clamp(23px, 5vw, 38px);\n font-weight: 500;\n line-height: 1.08;\n letter-spacing: -.02em;\n}\n.dxr-loader-copy > p { margin: 0 auto; max-width: 46ch; color: #94a3b8; font-size: 13.5px; line-height: 1.6; }\n.dxr-ad {\n display: flex;\n gap: 12px;\n margin: 20px auto 0;\n max-width: 420px;\n padding: 13px;\n border: 1px solid rgba(148, 163, 184, .16);\n border-radius: 12px;\n background: rgba(255, 255, 255, .04);\n text-align: left;\n}\n.dxr-ad .dxr-num { color: #2dd4bf; font: 800 10px/1.4 var(--dxr-mono); }\n.dxr-ad strong { display: block; font-size: 12.5px; }\n.dxr-ad .dxr-adcopy { display: block; margin-top: 4px; color: #8ba0b9; font-size: 11.5px; line-height: 1.45; }\n.dxr-ad[data-swap] { animation: dxr-swap .4s ease; }\n.dxr-track {\n height: 3px;\n margin: 22px auto 0;\n max-width: 420px;\n overflow: hidden;\n border-radius: 999px;\n background: rgba(255, 255, 255, .09);\n}\n.dxr-bar {\n width: 12%;\n height: 100%;\n border-radius: inherit;\n background: linear-gradient(90deg, #14b8a6, #2dd4bf, #5eead4);\n box-shadow: 0 0 16px rgba(45, 212, 191, .5);\n transition: width .65s cubic-bezier(.22, .8, .28, 1);\n}\n.dxr-meta {\n display: flex;\n justify-content: space-between;\n gap: 14px;\n margin: 9px auto 0;\n max-width: 420px;\n color: #64748b;\n font: 700 9px/1 var(--dxr-mono);\n letter-spacing: .09em;\n text-transform: uppercase;\n}\n.dxr-retry {\n display: none;\n margin-top: 18px;\n padding: 9px 14px;\n border: 1px solid rgba(248, 113, 113, .4);\n border-radius: 9px;\n background: rgba(248, 113, 113, .12);\n color: #fff;\n cursor: pointer;\n}\n.dxr-loader[data-error] .dxr-retry { display: inline-flex; }\n.dxr-loader[data-error] .dxr-visual { opacity: .35; }\n\n/* Two columns once there is room \u2014 the visual earns its space beside the copy. */\n@media (min-width: 760px) {\n .dxr-loader-grid {\n grid-template-columns: minmax(220px, .8fr) minmax(300px, 1.2fr);\n gap: clamp(28px, 6vw, 72px);\n text-align: left;\n }\n .dxr-visual { width: min(280px, 30vw); }\n .dxr-loader h2 { margin-left: 0; }\n .dxr-loader-copy > p { margin-left: 0; min-height: 44px; }\n .dxr-ad, .dxr-track, .dxr-meta { margin-left: 0; }\n}\n\n@keyframes dxr-spin { to { transform: rotate(360deg); } }\n@keyframes dxr-float { 0%, 100% { transform: translateY(-5px) rotate(-2deg); } 50% { transform: translateY(7px) rotate(1deg); } }\n@keyframes dxr-chip { 0%, 100% { transform: translateY(-4px); } 50% { transform: translateY(5px); } }\n@keyframes dxr-pulse { 0%, 100% { transform: scaleX(.65); opacity: .45; } 50% { transform: scaleX(1); opacity: .95; } }\n@keyframes dxr-swap { from { opacity: .1; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }\n\n@media (prefers-reduced-motion: reduce) {\n .dxr *, .dxr *::before, .dxr *::after {\n animation-duration: .01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: .01ms !important;\n }\n}\n";
34
34
  /**
35
35
  * The ribbon's DOM, as one template.
36
36
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ribbon-chrome.d.ts","sourceRoot":"","sources":["../src/ribbon-chrome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,iBAAiB,gCAAgC,CAAC;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,UAAU,qh7BAmuBtB,CAAC;AAKF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,QAuQvB,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,QAI8B,CAAC"}
1
+ {"version":3,"file":"ribbon-chrome.d.ts","sourceRoot":"","sources":["../src/ribbon-chrome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,iBAAiB,gCAAgC,CAAC;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,UAAU,+l9BAuvBtB,CAAC;AAKF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,QAiSvB,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,QAI8B,CAAC"}
@@ -72,6 +72,7 @@ export const RIBBON_CSS = `
72
72
  color: var(--dxr-ink);
73
73
  background: var(--dxr-desk);
74
74
  -webkit-text-size-adjust: 100%;
75
+ text-size-adjust: 100%;
75
76
  }
76
77
  .dxr *, .dxr *::before, .dxr *::after { box-sizing: border-box; }
77
78
 
@@ -475,6 +476,25 @@ export const RIBBON_CSS = `
475
476
  box-shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 12px 24px rgba(15, 23, 42, .06);
476
477
  }
477
478
 
479
+ /* ── Review: comment threads ──────────────────────────────────────────────── */
480
+ .dxr-threads {
481
+ display: flex; flex-direction: column; gap: 4px;
482
+ max-height: 92px; overflow-y: auto; min-width: 260px; padding-right: 2px;
483
+ }
484
+ .dxr-thread {
485
+ display: flex; align-items: center; gap: 6px;
486
+ font-size: 11px; line-height: 1.3; padding: 3px 6px;
487
+ border: 1px solid var(--dxr-rule); border-radius: 4px; background: var(--dxr-chrome-sunk);
488
+ }
489
+ .dxr-thread[data-resolved] { opacity: 0.55; }
490
+ .dxr-thread[data-reply] { margin-left: 14px; }
491
+ .dxr-thread .dxr-tauthor { font-weight: 600; white-space: nowrap; }
492
+ .dxr-thread .dxr-ttext {
493
+ flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 220px;
494
+ }
495
+ .dxr-thread button { flex: none; }
496
+ .dxr-group.dxr-grow { flex: 1; min-width: 0; }
497
+
478
498
  /* ── Table size picker ────────────────────────────────────────────────────── */
479
499
  .dxr-pop {
480
500
  display: none;
@@ -801,6 +821,7 @@ export const RIBBON_HTML = `
801
821
  <button type="button" class="dxr-tab" role="tab" data-tab="home" aria-selected="true">Home</button>
802
822
  <button type="button" class="dxr-tab" role="tab" data-tab="insert" aria-selected="false">Insert</button>
803
823
  <button type="button" class="dxr-tab" role="tab" data-tab="layout" aria-selected="false">Layout</button>
824
+ <button type="button" class="dxr-tab" role="tab" data-tab="review" aria-selected="false">Review</button>
804
825
  <button type="button" class="dxr-tab" role="tab" data-tab="table" data-contextual aria-selected="false" hidden>Table</button>
805
826
  </div>
806
827
 
@@ -954,6 +975,31 @@ export const RIBBON_HTML = `
954
975
  </div>
955
976
  </div>
956
977
 
978
+ <!-- REVIEW ────────────────────────────────────────────────────────────
979
+ Comment authoring over the session's native comment family (issue #580):
980
+ the button comments the selection (the whole block when collapsed), and
981
+ the thread list is live session truth with resolve/reopen per thread. -->
982
+ <div class="dxr-panel" data-panel="review">
983
+ <div class="dxr-group">
984
+ <span class="dxr-glabel">Comments</span>
985
+ <div class="dxr-row">
986
+ <input data-dxr="commenttext" type="text" placeholder="Comment text&#8230;"
987
+ title="The comment body; markdown is honored" />
988
+ <button type="button" data-dxr="comment"
989
+ title="Comment on the selection, or on the whole block when nothing is selected">&#128172; Comment</button>
990
+ </div>
991
+ <div class="dxr-row">
992
+ <span class="dxr-note">Comments the selected text; the whole block when the caret is collapsed.</span>
993
+ </div>
994
+ </div>
995
+ <div class="dxr-group dxr-grow">
996
+ <span class="dxr-glabel">Threads</span>
997
+ <div class="dxr-threads" data-dxr="threads" aria-live="polite">
998
+ <span class="dxr-note">No comments yet.</span>
999
+ </div>
1000
+ </div>
1001
+ </div>
1002
+
957
1003
  <!-- TABLE (contextual) ──────────────────────────────────────────────────
958
1004
  Row/column editing lives here rather than in a floating toolbar: a docked
959
1005
  contextual tab cannot overlap the cell you are editing. -->
@@ -1 +1 @@
1
- {"version":3,"file":"ribbon-chrome.js","sourceRoot":"","sources":["../src/ribbon-chrome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,sFAAsF;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,6BAA6B,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmuBzB,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAClC,sEAAsE,IAAI,QAAQ,CAAC;AAErF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wFA4D6D,UAAU,CACtF,mLAAmL,CACpL;4FACiF,UAAU,CAC1F,mLAAmL,CACpL;0FAC+E,UAAU,CACxF,mLAAmL,CACpL;wFAC6E,UAAU,CACtF,qLAAqL,CACtL;8FACmF,UAAU,CAC5F,oNAAoN,CACrN;6FACkF,UAAU,CAC3F,kNAAkN,CACnN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0LV,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,gBAAgB,GAC3B,uFAAuF;IACvF,sGAAsG;IACtG,qGAAqG;IACrG,yDAAyD,CAAC"}
1
+ {"version":3,"file":"ribbon-chrome.js","sourceRoot":"","sources":["../src/ribbon-chrome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,sFAAsF;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,6BAA6B,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuvBzB,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAClC,sEAAsE,IAAI,QAAQ,CAAC;AAErF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wFA6D6D,UAAU,CACtF,mLAAmL,CACpL;4FACiF,UAAU,CAC1F,mLAAmL,CACpL;0FAC+E,UAAU,CACxF,mLAAmL,CACpL;wFAC6E,UAAU,CACtF,qLAAqL,CACtL;8FACmF,UAAU,CAC5F,oNAAoN,CACrN;6FACkF,UAAU,CAC3F,kNAAkN,CACnN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmNV,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,gBAAgB,GAC3B,uFAAuF;IACvF,sGAAsG;IACtG,qGAAqG;IACrG,yDAAyD,CAAC"}
package/dist/ribbon.js CHANGED
@@ -472,6 +472,22 @@ class RibbonSurface {
472
472
  this.run("style", () => this.live.setParagraphStyle(style.value));
473
473
  style.value = "";
474
474
  });
475
+ // Comment authoring (issue #580): the button comments the live selection (whole block
476
+ // when collapsed) with the typed text, attributed to the configured revision author.
477
+ const commentButton = this.control("comment");
478
+ if (commentButton) {
479
+ this.keepSelection(commentButton);
480
+ commentButton.addEventListener("click", () => {
481
+ if (!this.live)
482
+ return;
483
+ const input = this.control("commenttext");
484
+ const text = input?.value.trim() || "New comment.";
485
+ this.run("comment", () => this.live.addComment(text, this.options.revisionAuthor ?? "Reviewer"));
486
+ if (input)
487
+ input.value = "";
488
+ this.renderThreads();
489
+ });
490
+ }
475
491
  this.wireFileActions();
476
492
  this.wireLayout();
477
493
  this.wirePicker();
@@ -619,6 +635,60 @@ class RibbonSurface {
619
635
  }
620
636
  if (name === "layout")
621
637
  this.syncPageNumbering();
638
+ if (name === "review")
639
+ this.renderThreads();
640
+ }
641
+ /** Re-render the Review tab's thread list from session truth ({@link DocxEditor.listComments}):
642
+ * one row per comment, replies indented under their thread root, resolve/reopen per root. */
643
+ renderThreads() {
644
+ const host = this.control("threads");
645
+ if (!host || !this.live)
646
+ return;
647
+ const doc = this.element.ownerDocument ?? document;
648
+ host.textContent = "";
649
+ const comments = this.live.listComments();
650
+ if (comments.length === 0) {
651
+ const empty = doc.createElement("span");
652
+ empty.className = "dxr-note";
653
+ empty.textContent = "No comments yet.";
654
+ host.appendChild(empty);
655
+ return;
656
+ }
657
+ for (const entry of comments) {
658
+ const row = doc.createElement("div");
659
+ row.className = "dxr-thread";
660
+ row.setAttribute("data-thread", entry.anchorId);
661
+ if (entry.resolved)
662
+ row.setAttribute("data-resolved", "");
663
+ if (entry.parentAnchorId)
664
+ row.setAttribute("data-reply", "");
665
+ const author = doc.createElement("span");
666
+ author.className = "dxr-tauthor";
667
+ author.textContent = entry.author || "—";
668
+ row.appendChild(author);
669
+ const text = doc.createElement("span");
670
+ text.className = "dxr-ttext";
671
+ text.textContent = entry.text;
672
+ text.title = entry.text;
673
+ row.appendChild(text);
674
+ // Resolution is a THREAD state: Word keys it on the root, so replies get no toggle.
675
+ if (!entry.parentAnchorId) {
676
+ const toggle = doc.createElement("button");
677
+ toggle.type = "button";
678
+ toggle.textContent = entry.resolved ? "Reopen" : "Resolve";
679
+ toggle.title = entry.resolved
680
+ ? "Reopen this comment thread"
681
+ : "Mark this comment thread resolved";
682
+ toggle.addEventListener("click", () => {
683
+ if (!this.live)
684
+ return;
685
+ this.run(entry.resolved ? "reopen comment" : "resolve comment", () => this.live.setCommentResolved(entry.anchorId, !entry.resolved));
686
+ this.renderThreads();
687
+ });
688
+ row.appendChild(toggle);
689
+ }
690
+ host.appendChild(row);
691
+ }
622
692
  }
623
693
  // ── selection-driven state ──────────────────────────────────────────────────
624
694
  selectionElement() {
@@ -1 +1 @@
1
- {"version":3,"file":"ribbon.js","sourceRoot":"","sources":["../src/ribbon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ribbon.js","sourceRoot":"","sources":["../src/ribbon.ts"],"names":[],"mappings":"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"}