docxodus 12.3.0 → 12.4.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 (120) hide show
  1. package/README.md +31 -6
  2. package/dist/core.d.ts +924 -0
  3. package/dist/core.d.ts.map +1 -0
  4. package/dist/core.js +2094 -0
  5. package/dist/core.js.map +1 -0
  6. package/dist/editor.bundle.js +1206 -27
  7. package/dist/editor.d.ts +10 -1
  8. package/dist/editor.d.ts.map +1 -1
  9. package/dist/editor.js +48 -16
  10. package/dist/editor.js.map +1 -1
  11. package/dist/embed.bundle.js +12371 -11779
  12. package/dist/embed.d.ts +5 -2
  13. package/dist/embed.d.ts.map +1 -1
  14. package/dist/embed.iife.js +12282 -11690
  15. package/dist/embed.js +10 -3
  16. package/dist/embed.js.map +1 -1
  17. package/dist/export-assets.json +39 -39
  18. package/dist/history-checkpoints.d.ts +2 -0
  19. package/dist/history-checkpoints.d.ts.map +1 -1
  20. package/dist/history-checkpoints.js +2 -0
  21. package/dist/history-checkpoints.js.map +1 -1
  22. package/dist/history-controls.d.ts +6 -3
  23. package/dist/history-controls.d.ts.map +1 -1
  24. package/dist/history-controls.js +71 -29
  25. package/dist/history-controls.js.map +1 -1
  26. package/dist/index.d.ts +3 -923
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +2 -2093
  29. package/dist/index.js.map +1 -1
  30. package/dist/ribbon-chrome.d.ts +1 -1
  31. package/dist/ribbon-chrome.d.ts.map +1 -1
  32. package/dist/ribbon-chrome.js +6 -3
  33. package/dist/ribbon-chrome.js.map +1 -1
  34. package/dist/ribbon-history.d.ts +85 -0
  35. package/dist/ribbon-history.d.ts.map +1 -0
  36. package/dist/ribbon-history.js +508 -0
  37. package/dist/ribbon-history.js.map +1 -0
  38. package/dist/ribbon.d.ts +6 -0
  39. package/dist/ribbon.d.ts.map +1 -1
  40. package/dist/ribbon.js +47 -18
  41. package/dist/ribbon.js.map +1 -1
  42. package/dist/viewport.d.ts +3 -1
  43. package/dist/viewport.d.ts.map +1 -1
  44. package/dist/viewport.js +14 -0
  45. package/dist/viewport.js.map +1 -1
  46. package/dist/wasm/_framework/Docxodus.wasm +0 -0
  47. package/dist/wasm/_framework/Docxodus.wasm.br +0 -0
  48. package/dist/wasm/_framework/DocxodusWasm.wasm +0 -0
  49. package/dist/wasm/_framework/DocxodusWasm.wasm.br +0 -0
  50. package/dist/wasm/_framework/System.Collections.Concurrent.wasm +0 -0
  51. package/dist/wasm/_framework/System.Collections.Concurrent.wasm.br +0 -0
  52. package/dist/wasm/_framework/System.Collections.Immutable.wasm +0 -0
  53. package/dist/wasm/_framework/System.Collections.Immutable.wasm.br +0 -0
  54. package/dist/wasm/_framework/System.Collections.NonGeneric.wasm +0 -0
  55. package/dist/wasm/_framework/System.Collections.NonGeneric.wasm.br +0 -0
  56. package/dist/wasm/_framework/System.Collections.Specialized.wasm +0 -0
  57. package/dist/wasm/_framework/System.Collections.Specialized.wasm.br +0 -0
  58. package/dist/wasm/_framework/System.Collections.wasm +0 -0
  59. package/dist/wasm/_framework/System.Collections.wasm.br +0 -0
  60. package/dist/wasm/_framework/System.ComponentModel.Primitives.wasm +0 -0
  61. package/dist/wasm/_framework/System.ComponentModel.Primitives.wasm.br +0 -0
  62. package/dist/wasm/_framework/System.ComponentModel.TypeConverter.wasm +0 -0
  63. package/dist/wasm/_framework/System.ComponentModel.TypeConverter.wasm.br +0 -0
  64. package/dist/wasm/_framework/System.ComponentModel.wasm +0 -0
  65. package/dist/wasm/_framework/System.ComponentModel.wasm.br +0 -0
  66. package/dist/wasm/_framework/System.Console.wasm +0 -0
  67. package/dist/wasm/_framework/System.Console.wasm.br +0 -0
  68. package/dist/wasm/_framework/System.IO.Compression.wasm +0 -0
  69. package/dist/wasm/_framework/System.IO.Compression.wasm.br +0 -0
  70. package/dist/wasm/_framework/System.IO.Pipelines.wasm +0 -0
  71. package/dist/wasm/_framework/System.IO.Pipelines.wasm.br +0 -0
  72. package/dist/wasm/_framework/System.Linq.Expressions.wasm +0 -0
  73. package/dist/wasm/_framework/System.Linq.Expressions.wasm.br +0 -0
  74. package/dist/wasm/_framework/System.Linq.wasm +0 -0
  75. package/dist/wasm/_framework/System.Linq.wasm.br +0 -0
  76. package/dist/wasm/_framework/System.Memory.wasm +0 -0
  77. package/dist/wasm/_framework/System.Memory.wasm.br +0 -0
  78. package/dist/wasm/_framework/System.Net.Http.wasm +0 -0
  79. package/dist/wasm/_framework/System.Net.Http.wasm.br +0 -0
  80. package/dist/wasm/_framework/System.Net.Primitives.wasm +0 -0
  81. package/dist/wasm/_framework/System.Net.Primitives.wasm.br +0 -0
  82. package/dist/wasm/_framework/System.ObjectModel.wasm +0 -0
  83. package/dist/wasm/_framework/System.ObjectModel.wasm.br +0 -0
  84. package/dist/wasm/_framework/System.Private.CoreLib.wasm +0 -0
  85. package/dist/wasm/_framework/System.Private.CoreLib.wasm.br +0 -0
  86. package/dist/wasm/_framework/System.Private.Uri.wasm +0 -0
  87. package/dist/wasm/_framework/System.Private.Uri.wasm.br +0 -0
  88. package/dist/wasm/_framework/System.Private.Xml.Linq.wasm +0 -0
  89. package/dist/wasm/_framework/System.Private.Xml.Linq.wasm.br +0 -0
  90. package/dist/wasm/_framework/System.Private.Xml.wasm +0 -0
  91. package/dist/wasm/_framework/System.Private.Xml.wasm.br +0 -0
  92. package/dist/wasm/_framework/System.Runtime.InteropServices.JavaScript.wasm +0 -0
  93. package/dist/wasm/_framework/System.Runtime.InteropServices.JavaScript.wasm.br +0 -0
  94. package/dist/wasm/_framework/System.Runtime.wasm +0 -0
  95. package/dist/wasm/_framework/System.Runtime.wasm.br +0 -0
  96. package/dist/wasm/_framework/System.Security.Cryptography.wasm +0 -0
  97. package/dist/wasm/_framework/System.Security.Cryptography.wasm.br +0 -0
  98. package/dist/wasm/_framework/System.Text.Encodings.Web.wasm +0 -0
  99. package/dist/wasm/_framework/System.Text.Encodings.Web.wasm.br +0 -0
  100. package/dist/wasm/_framework/System.Text.Json.wasm +0 -0
  101. package/dist/wasm/_framework/System.Text.Json.wasm.br +0 -0
  102. package/dist/wasm/_framework/System.Text.RegularExpressions.wasm +0 -0
  103. package/dist/wasm/_framework/System.Text.RegularExpressions.wasm.br +0 -0
  104. package/dist/wasm/_framework/System.Xml.Linq.wasm +0 -0
  105. package/dist/wasm/_framework/System.Xml.Linq.wasm.br +0 -0
  106. package/dist/wasm/_framework/System.Xml.XDocument.wasm +0 -0
  107. package/dist/wasm/_framework/System.Xml.XDocument.wasm.br +0 -0
  108. package/dist/wasm/_framework/System.wasm +0 -0
  109. package/dist/wasm/_framework/System.wasm.br +0 -0
  110. package/dist/wasm/_framework/dotnet.boot.js +34 -34
  111. package/dist/wasm/_framework/dotnet.boot.js.br +0 -0
  112. package/dist/wasm/_framework/dotnet.js +1 -1
  113. package/dist/wasm/_framework/dotnet.js.br +0 -0
  114. package/dist/wasm/_framework/dotnet.native.js +3 -3
  115. package/dist/wasm/_framework/dotnet.native.js.br +0 -0
  116. package/dist/wasm/_framework/dotnet.native.wasm +0 -0
  117. package/dist/wasm/_framework/dotnet.native.wasm.br +0 -0
  118. package/dist/wasm/_framework/dotnet.runtime.js +1 -1
  119. package/dist/wasm/_framework/dotnet.runtime.js.br +0 -0
  120. package/package.json +14 -8
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,cAAc,WAAW,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASzC,4FAA4F;AAC5F,0DAA0D;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,oFAAoF;AACpF,gFAAgF;AAChF,iEAAiE;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -38,7 +38,7 @@ export declare const COMMENT_GUTTER_WIDTH = 264;
38
38
  * for the converter's document CSS, achieved here by authoring rather than by
39
39
  * rewriting.
40
40
  */
41
- 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: #eef2f6;\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: 28px;\n --dxr-gutter: 264px;\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 Scroll-edge affordances \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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 chrome's strips (title bar, tabs, panels, rail) scroll horizontally\n rather than squashing or wrapping \u2014 the compact rule is \"no command is\n removed, the strip scrolls\". But a hard clip mid-control reads as a broken\n layout, especially on a phone, so ribbon.ts measures every strip and stamps\n data-fade with the edges that hide more content (\"l\", \"r\", or both). The\n mask dissolves content at exactly those edges \u2014 the horizontal twin of\n .dxr-scroll's gradient veils \u2014 and lifts entirely once the strip fits, so\n nothing is ever faded unless there is more behind it. */\n.dxr-titlebar, .dxr-tabs, .dxr-panel, .dxr-rail, .dxr-findbar { --dxr-fade-l: 0px; --dxr-fade-r: 0px; }\n.dxr [data-fade] {\n -webkit-mask-image: linear-gradient(to right,\n transparent, #000 var(--dxr-fade-l),\n #000 calc(100% - var(--dxr-fade-r)), transparent);\n mask-image: linear-gradient(to right,\n transparent, #000 var(--dxr-fade-l),\n #000 calc(100% - var(--dxr-fade-r)), transparent);\n}\n.dxr [data-fade~=\"l\"] { --dxr-fade-l: 28px; }\n.dxr [data-fade~=\"r\"] { --dxr-fade-r: 28px; }\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/* Scrolls in EVERY density (compact just tightens it): the fade affordance\n marks any overflowing strip as scrollable, so it must actually be. */\n.dxr-titlebar {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 10px 0;\n overflow-x: auto;\n scrollbar-width: none;\n}\n.dxr-titlebar::-webkit-scrollbar { display: none; }\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: 4px 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: 6px 13px 7px;\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 tabs \u2014 present only while the caret is in a table / a header or footer story. */\n.dxr-tab[data-contextual] { color: var(--dxr-accent); }\n.dxr-tab[data-contextual]::before { content: \"\\2022\"; margin-right: 6px; opacity: .6; }\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: 6px 10px 7px;\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: 4px;\n padding: 0 12px;\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.dxr-row + .dxr-row { margin-top: 1px; }\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: 4px 8px;\n border: none;\n border-radius: 6px;\n background: none;\n color: var(--dxr-ink);\n font: inherit;\n font-size: 12.5px;\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, .dxr button[aria-pressed=\"true\"] { 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); padding: 4px 6px; 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\"], .dxr input[type=\"search\"], .dxr input[type=\"url\"] {\n min-height: var(--dxr-tap);\n padding: 3px 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: 58px; }\n.dxr [data-dxr=\"fontfamily\"] { width: 138px; }\n.dxr [data-dxr=\"style\"] { width: 148px; }\n.dxr [data-dxr=\"pgstart\"], .dxr [data-dxr=\"spacebefore\"], .dxr [data-dxr=\"spaceafter\"],\n.dxr [data-dxr=\"specialindentval\"] { width: 62px; }\n.dxr [data-dxr=\"linespacing\"], .dxr [data-dxr=\"listmenu\"], .dxr [data-dxr=\"highlight\"],\n.dxr [data-dxr=\"markup\"], .dxr [data-dxr=\"zoom\"], .dxr [data-dxr=\"margins\"],\n.dxr [data-dxr=\"orientation\"], .dxr [data-dxr=\"pagesize\"], .dxr [data-dxr=\"specialindent\"] { max-width: 150px; }\n.dxr-toggle {\n display: inline-flex;\n gap: 5px;\n align-items: center;\n min-height: var(--dxr-tap);\n color: var(--dxr-ink);\n font-size: 12.5px;\n white-space: nowrap;\n cursor: pointer;\n}\n.dxr-toggle input[type=\"checkbox\"] { accent-color: var(--dxr-accent); margin: 0; }\n.dxr-note { color: var(--dxr-muted); font-size: 11.5px; }\n.dxr-kbd { color: var(--dxr-faint); font-family: var(--dxr-mono); font-size: 10px; }\n\n/* Colour swatch buttons: the button shows the current colour as a bar under its glyph and\n opens the native picker that sits (visually hidden) inside it. */\n.dxr-swatch { position: relative; display: inline-flex; flex-direction: column; align-items: center; gap: 2px; }\n.dxr-swatch > button { padding-bottom: 6px; }\n.dxr-swatch .dxr-swatch-bar {\n position: absolute; left: 7px; right: 7px; bottom: 4px; height: 3px; border-radius: 2px;\n background: var(--dxr-swatch, #1e293b); pointer-events: none;\n}\n.dxr-swatch input[type=\"color\"] {\n position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; border: 0; padding: 0;\n}\n.dxr-swatch [data-dxr=\"highlight\"] {\n min-height: var(--dxr-tap);\n}\n.dxr-hl-swatch { display: inline-block; width: 12px; height: 12px; border-radius: 2px; vertical-align: -2px; margin-right: 4px; border: 1px solid rgba(15,23,42,.15); }\n\n/* \u2500\u2500 Find & replace bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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-findbar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 5px 10px;\n overflow-x: auto;\n border-top: 1px solid var(--dxr-rule);\n background: var(--dxr-chrome);\n scrollbar-width: none;\n}\n.dxr-findbar[hidden] { display: none; }\n.dxr-findbar > *, .dxr-findbar [data-dxr=\"replacegroup\"] { flex: 0 0 auto; white-space: nowrap; }\n.dxr-findbar [data-dxr=\"replacegroup\"] { display: inline-flex; align-items: center; gap: 6px; }\n.dxr-findbar input[type=\"search\"], .dxr-findbar input[type=\"text\"] { width: 180px; }\n.dxr-findbar .dxr-findcount { min-width: 5ch; color: var(--dxr-muted); font-family: var(--dxr-mono); font-size: 11.5px; }\n\n/* \u2500\u2500 Status bar (carries the 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\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. Word's\n own status-bar cells (page, words, zoom) sit on the same strip. */\n.dxr-rail {\n display: flex;\n align-items: center;\n flex: 0 0 auto;\n height: 26px;\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 12px;\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.dxr-cell-end { margin-left: auto; border-right: none; padding-right: 0; }\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.dxr-rail .dxr-v.dxr-plain { color: var(--dxr-ink); font-family: var(--dxr-ui); font-size: 11.5px; }\n@keyframes dxr-railflash { from { background: #ccfbf1; } to { background: transparent; } }\n.dxr-zoom { display: inline-flex; align-items: center; gap: 2px; }\n.dxr-zoom button { min-height: 22px; min-width: 22px; padding: 0 5px; font-size: 13px; color: var(--dxr-muted); }\n.dxr-zoom select { min-height: 22px; padding: 0 4px; font-size: 11.5px; }\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 { position: relative; margin: 26px auto; padding: 0 16px 96px; }\n/* Reserve the markup area only while a visible comment or draft needs it. The gutter owns\n its empty/hidden state, so ordinary documents stay centered without disabling comments. */\n.dxr[data-chrome=\"full\"] .dxr-surface[data-comments=\"on\"]:has(> .docx-comment-gutter:not([data-empty]):not([hidden])) {\n padding-right: calc(var(--dxr-gutter) + 8px);\n}\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 (continuous view): the top and bottom margin of the sheet, drawn the way\n Word draws a header that is being edited \u2014 a dashed rule with a small tag in the margin. */\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 position: relative;\n width: min(100%, var(--docx-sheet-width, 100%));\n margin: 0 auto;\n padding: 34px 72px 12px;\n background: var(--dxr-sheet);\n border-radius: 3px 3px 0 0;\n box-shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 12px 24px rgba(15, 23, 42, .06);\n}\n.dxr-surface .docx-hf-band[data-hf-band=\"footer\"] { padding: 12px 72px 34px; border-radius: 0 0 3px 3px; }\n/* The band and the sheet are one piece of paper: kill the sheet's own top/bottom corners and\n let the dashed rule separate the stories from the body. */\n.dxr-surface .docx-hf-band + .docx-body-flow { margin-top: 0; border-radius: 0; box-shadow: none; }\n.dxr-surface .docx-hf-band[data-hf-band=\"footer\"] { margin-top: 0; }\n.dxr[data-chrome] .dxr-surface[data-view=\"continuous\"] .docx-hf-band ~ .docx-body-flow { box-shadow: none; }\n.dxr[data-chrome] .dxr-surface[data-view=\"continuous\"]:has(.docx-hf-band) .docx-body-flow { padding: 18px 0; }\n.dxr-surface .docx-hf-band::after {\n content: \"\"; position: absolute; left: 0; right: 0; bottom: 0; border-bottom: 1px dashed var(--dxr-rule-strong);\n}\n.dxr-surface .docx-hf-band[data-hf-band=\"footer\"]::after { top: 0; bottom: auto; border-bottom: 0; border-top: 1px dashed var(--dxr-rule-strong); }\n.dxr-surface .docx-hf-band:hover::after, .dxr-surface .docx-hf-band[data-hf-active]::after { border-color: var(--dxr-accent); }\n.dxr-surface .docx-hf-tag {\n position: absolute; left: 72px; bottom: -9px; z-index: 2;\n display: flex; align-items: center; gap: 8px;\n padding: 1px 7px; border: 1px solid var(--dxr-rule-strong); border-radius: 4px;\n background: #fff; color: var(--dxr-muted);\n font-family: var(--dxr-ui); font-size: 9.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;\n}\n.dxr-surface .docx-hf-band[data-hf-band=\"footer\"] .docx-hf-tag { bottom: auto; top: -9px; }\n.dxr-surface .docx-hf-band[data-hf-active] .docx-hf-tag { border-color: var(--dxr-accent); color: var(--dxr-accent); }\n.dxr-surface .docx-hf-kinds { display: inline-flex; gap: 2px; }\n.dxr-surface .docx-hf-kinds button {\n min-height: 0; padding: 1px 6px; border-radius: 3px; font-family: var(--dxr-ui); font-size: 9.5px; font-weight: 600;\n letter-spacing: .06em; text-transform: uppercase; color: var(--dxr-muted); background: none;\n}\n.dxr-surface .docx-hf-kinds button[data-on] { background: var(--dxr-wash-on); color: var(--dxr-accent); }\n.dxr-surface .docx-hf-inherited { font-weight: 400; letter-spacing: normal; text-transform: none; font-style: italic; }\n.dxr-surface .docx-hf-placeholder { color: var(--dxr-faint); font-style: italic; cursor: text; }\n/* Bands only: a page host's height is the band the paginator reserved, and a floor here would\n read as \"the story grew\" and trigger a needless re-paginate. */\n.dxr-surface .docx-hf-band .docx-hf-body { min-height: 1.4em; }\n/* Page view: the page's own header/footer area is click-to-edit. */\n.dxr-surface .page-header[data-hf-page], .dxr-surface .page-footer[data-hf-page] { cursor: text; }\n.dxr-surface .page-header[data-hf-page]:hover, .dxr-surface .page-footer[data-hf-page]:hover {\n outline: 1px dashed var(--dxr-rule-strong); outline-offset: 2px;\n}\n.dxr-surface .page-header[data-hf-active], .dxr-surface .page-footer[data-hf-active] {\n outline: 1px dashed var(--dxr-accent); outline-offset: 2px; z-index: 5; background: #fff;\n}\n.dxr-surface [data-hf-active][data-hf-label]::before {\n content: attr(data-hf-label); position: absolute; left: -2px; top: -18px;\n padding: 1px 6px; border: 1px solid var(--dxr-accent); border-radius: 4px; background: #fff; color: var(--dxr-accent);\n font-family: var(--dxr-ui); font-size: 9px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; line-height: 1.4;\n}\n.dxr-surface .page-footer[data-hf-active][data-hf-label]::before { top: auto; bottom: -18px; }\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/* Small prompt popovers (link URL, page setup), anchored under their button. */\n.dxr-pop form { display: flex; flex-direction: column; gap: 8px; min-width: 260px; font-size: 12.5px; }\n.dxr-pop form label { display: flex; flex-direction: column; gap: 3px; color: var(--dxr-muted); font-size: 11.5px; }\n.dxr-pop form .dxr-row { justify-content: flex-end; }\n.dxr-pop form button[type=\"submit\"] { background: var(--dxr-accent); color: #fff; }\n.dxr-pop form button[type=\"submit\"]:hover { background: var(--dxr-accent-hover); }\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/* Touch targets grow with the LAYOUT, not the pointer alone: a phone-width chrome is driven\n by a thumb whether or not the browser reports a coarse pointer (an emulated narrow viewport\n does not), so the compact strip adopts the same 40px control floor the coarse-pointer media\n query sets, keeping every icon button at a real tap size. */\n.dxr[data-chrome=\"compact\"] { --dxr-tap: 40px; }\n/* The floor buys tap SIZE; the rows must not spend it again on padding. A phone stacks three\n chrome rows \u2014 title, tabs, commands \u2014 above the page, so every pixel of row padding is paid\n three times before the document starts, and the arcade demo's card (which sizes itself to the\n game screen plus its controls) runs out of viewport when it is. */\n.dxr[data-chrome=\"compact\"] .dxr-titlebar {\n gap: 6px;\n padding: 0 8px;\n}\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: 0 8px; }\n/* A tab is a WIDE target \u2014 its label plus 11px of side padding already clears the tap floor\n horizontally \u2014 and it is navigation rather than a command, so it does not need the command\n row's full height. Word's own phone ribbon keeps its tab strip slim for the same reason: the\n page starts higher. The commands below keep the full 40px floor. */\n.dxr[data-chrome=\"compact\"] .dxr-tab { min-height: 34px; padding: 6px 11px 7px; font-size: 12px; }\n.dxr[data-chrome=\"compact\"] .dxr-panel {\n align-items: center;\n gap: 4px;\n padding: 2px 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.dxr[data-chrome=\"compact\"] .dxr-row + .dxr-row { margin-top: 0; }\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: 26px 18px 10px; }\n.dxr[data-chrome=\"compact\"] .dxr-surface .docx-hf-band[data-hf-band=\"footer\"] { padding: 10px 18px 26px; }\n.dxr[data-chrome=\"compact\"] .dxr-surface .docx-hf-tag { left: 18px; }\n/* No room for a markup column on a phone: comments stay highlighted, bubbles step aside. */\n.dxr[data-chrome=\"compact\"] .docx-comment-gutter, .dxr[data-chrome=\"compact\"] .docx-comment-leaders { display: none; }\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";
41
+ 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: #eef2f6;\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: 28px;\n --dxr-gutter: 264px;\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 Scroll-edge affordances \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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 chrome's strips (title bar, tabs, panels, rail) scroll horizontally\n rather than squashing or wrapping \u2014 the compact rule is \"no command is\n removed, the strip scrolls\". But a hard clip mid-control reads as a broken\n layout, especially on a phone, so ribbon.ts measures every strip and stamps\n data-fade with the edges that hide more content (\"l\", \"r\", or both). The\n mask dissolves content at exactly those edges \u2014 the horizontal twin of\n .dxr-scroll's gradient veils \u2014 and lifts entirely once the strip fits, so\n nothing is ever faded unless there is more behind it. */\n.dxr-titlebar, .dxr-tabs, .dxr-panel, .dxr-rail, .dxr-findbar { --dxr-fade-l: 0px; --dxr-fade-r: 0px; }\n.dxr [data-fade] {\n -webkit-mask-image: linear-gradient(to right,\n transparent, #000 var(--dxr-fade-l),\n #000 calc(100% - var(--dxr-fade-r)), transparent);\n mask-image: linear-gradient(to right,\n transparent, #000 var(--dxr-fade-l),\n #000 calc(100% - var(--dxr-fade-r)), transparent);\n}\n.dxr [data-fade~=\"l\"] { --dxr-fade-l: 28px; }\n.dxr [data-fade~=\"r\"] { --dxr-fade-r: 28px; }\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/* Scrolls in EVERY density (compact just tightens it): the fade affordance\n marks any overflowing strip as scrollable, so it must actually be. */\n.dxr-titlebar {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 10px 0;\n overflow-x: auto;\n scrollbar-width: none;\n}\n.dxr-titlebar::-webkit-scrollbar { display: none; }\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: 4px 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: 6px 13px 7px;\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 tabs \u2014 present only while the caret is in a table / a header or footer story. */\n.dxr-tab[data-contextual] { color: var(--dxr-accent); }\n.dxr-tab[data-contextual]::before { content: \"\\2022\"; margin-right: 6px; opacity: .6; }\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: 6px 10px 7px;\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: 4px;\n padding: 0 12px;\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.dxr-row + .dxr-row { margin-top: 1px; }\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: 4px 8px;\n border: none;\n border-radius: 6px;\n background: none;\n color: var(--dxr-ink);\n font: inherit;\n font-size: 12.5px;\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, .dxr button[aria-pressed=\"true\"] { 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); padding: 4px 6px; 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\"], .dxr input[type=\"search\"], .dxr input[type=\"url\"] {\n min-height: var(--dxr-tap);\n padding: 3px 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: 58px; }\n.dxr [data-dxr=\"fontfamily\"] { width: 138px; }\n.dxr [data-dxr=\"style\"] { width: 148px; }\n.dxr [data-dxr=\"pgstart\"], .dxr [data-dxr=\"spacebefore\"], .dxr [data-dxr=\"spaceafter\"],\n.dxr [data-dxr=\"specialindentval\"] { width: 62px; }\n.dxr [data-dxr=\"linespacing\"], .dxr [data-dxr=\"listmenu\"], .dxr [data-dxr=\"highlight\"],\n.dxr [data-dxr=\"markup\"], .dxr [data-dxr=\"zoom\"], .dxr [data-dxr=\"margins\"],\n.dxr [data-dxr=\"orientation\"], .dxr [data-dxr=\"pagesize\"], .dxr [data-dxr=\"specialindent\"] { max-width: 150px; }\n.dxr-toggle {\n display: inline-flex;\n gap: 5px;\n align-items: center;\n min-height: var(--dxr-tap);\n color: var(--dxr-ink);\n font-size: 12.5px;\n white-space: nowrap;\n cursor: pointer;\n}\n.dxr-toggle input[type=\"checkbox\"] { accent-color: var(--dxr-accent); margin: 0; }\n.dxr-note { color: var(--dxr-muted); font-size: 11.5px; }\n.dxr-kbd { color: var(--dxr-faint); font-family: var(--dxr-mono); font-size: 10px; }\n\n/* Colour swatch buttons: the button shows the current colour as a bar under its glyph and\n opens the native picker that sits (visually hidden) inside it. */\n.dxr-swatch { position: relative; display: inline-flex; flex-direction: column; align-items: center; gap: 2px; }\n.dxr-swatch > button { padding-bottom: 6px; }\n.dxr-swatch .dxr-swatch-bar {\n position: absolute; left: 7px; right: 7px; bottom: 4px; height: 3px; border-radius: 2px;\n background: var(--dxr-swatch, #1e293b); pointer-events: none;\n}\n.dxr-swatch input[type=\"color\"] {\n position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; border: 0; padding: 0;\n}\n.dxr-swatch [data-dxr=\"highlight\"] {\n min-height: var(--dxr-tap);\n}\n.dxr-hl-swatch { display: inline-block; width: 12px; height: 12px; border-radius: 2px; vertical-align: -2px; margin-right: 4px; border: 1px solid rgba(15,23,42,.15); }\n\n/* \u2500\u2500 Find & replace bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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-findbar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 5px 10px;\n overflow-x: auto;\n border-top: 1px solid var(--dxr-rule);\n background: var(--dxr-chrome);\n scrollbar-width: none;\n}\n.dxr-findbar[hidden] { display: none; }\n.dxr-findbar > *, .dxr-findbar [data-dxr=\"replacegroup\"] { flex: 0 0 auto; white-space: nowrap; }\n.dxr-findbar [data-dxr=\"replacegroup\"] { display: inline-flex; align-items: center; gap: 6px; }\n.dxr-findbar input[type=\"search\"], .dxr-findbar input[type=\"text\"] { width: 180px; }\n.dxr-findbar .dxr-findcount { min-width: 5ch; color: var(--dxr-muted); font-family: var(--dxr-mono); font-size: 11.5px; }\n\n/* \u2500\u2500 Status bar (carries the 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\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. Word's\n own status-bar cells (page, words, zoom) sit on the same strip. */\n.dxr-rail {\n display: flex;\n align-items: center;\n flex: 0 0 auto;\n height: 26px;\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 12px;\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.dxr-cell-end { margin-left: auto; border-right: none; padding-right: 0; }\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.dxr-rail .dxr-v.dxr-plain { color: var(--dxr-ink); font-family: var(--dxr-ui); font-size: 11.5px; }\n@keyframes dxr-railflash { from { background: #ccfbf1; } to { background: transparent; } }\n.dxr-zoom { display: inline-flex; align-items: center; gap: 2px; }\n.dxr-zoom button { min-height: 22px; min-width: 22px; padding: 0 5px; font-size: 13px; color: var(--dxr-muted); }\n.dxr-zoom select { min-height: 22px; padding: 0 4px; font-size: 11.5px; }\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 { position: relative; margin: 26px auto; padding: 0 16px 96px; }\n/* Reserve the markup area only while a visible comment or draft needs it. The gutter owns\n its empty/hidden state, so ordinary documents stay centered without disabling comments. */\n.dxr[data-chrome=\"full\"] .dxr-surface[data-comments=\"on\"]:has(> .docx-comment-gutter:not([data-empty]):not([hidden])) {\n padding-right: calc(var(--dxr-gutter) + 8px);\n}\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 (continuous view): the top and bottom margin of the sheet, drawn the way\n Word draws a header that is being edited \u2014 a dashed rule with a small tag in the margin. */\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, including when the page exceeds the surface. */\n position: relative;\n width: var(--docx-sheet-width, 100%);\n margin: 0 auto;\n padding: 34px 72px 12px;\n background: var(--dxr-sheet);\n border-radius: 3px 3px 0 0;\n box-shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 12px 24px rgba(15, 23, 42, .06);\n}\n.dxr-surface .docx-hf-band[data-hf-band=\"footer\"] { padding: 12px 72px 34px; border-radius: 0 0 3px 3px; }\n/* The band and the sheet are one piece of paper: kill the sheet's own top/bottom corners and\n let the dashed rule separate the stories from the body. */\n.dxr-surface .docx-hf-band + .docx-body-flow { margin-top: 0; border-radius: 0; box-shadow: none; }\n.dxr-surface .docx-hf-band[data-hf-band=\"footer\"] { margin-top: 0; }\n.dxr[data-chrome] .dxr-surface[data-view=\"continuous\"] .docx-hf-band ~ .docx-body-flow { box-shadow: none; }\n.dxr[data-chrome] .dxr-surface[data-view=\"continuous\"]:has(.docx-hf-band) .docx-body-flow { padding: 18px 0; }\n.dxr-surface .docx-hf-band::after {\n content: \"\"; position: absolute; left: 0; right: 0; bottom: 0; border-bottom: 1px dashed var(--dxr-rule-strong);\n}\n.dxr-surface .docx-hf-band[data-hf-band=\"footer\"]::after { top: 0; bottom: auto; border-bottom: 0; border-top: 1px dashed var(--dxr-rule-strong); }\n.dxr-surface .docx-hf-band:hover::after, .dxr-surface .docx-hf-band[data-hf-active]::after { border-color: var(--dxr-accent); }\n.dxr-surface .docx-hf-tag {\n position: absolute; left: 72px; bottom: -9px; z-index: 2;\n display: flex; align-items: center; gap: 8px;\n padding: 1px 7px; border: 1px solid var(--dxr-rule-strong); border-radius: 4px;\n background: #fff; color: var(--dxr-muted);\n font-family: var(--dxr-ui); font-size: 9.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;\n}\n.dxr-surface .docx-hf-band[data-hf-band=\"footer\"] .docx-hf-tag { bottom: auto; top: -9px; }\n.dxr-surface .docx-hf-band[data-hf-active] .docx-hf-tag { border-color: var(--dxr-accent); color: var(--dxr-accent); }\n.dxr-surface .docx-hf-kinds { display: inline-flex; gap: 2px; }\n.dxr-surface .docx-hf-kinds button {\n min-height: 0; padding: 1px 6px; border-radius: 3px; font-family: var(--dxr-ui); font-size: 9.5px; font-weight: 600;\n letter-spacing: .06em; text-transform: uppercase; color: var(--dxr-muted); background: none;\n}\n.dxr-surface .docx-hf-kinds button[data-on] { background: var(--dxr-wash-on); color: var(--dxr-accent); }\n.dxr-surface .docx-hf-inherited { font-weight: 400; letter-spacing: normal; text-transform: none; font-style: italic; }\n.dxr-surface .docx-hf-placeholder { color: var(--dxr-faint); font-style: italic; cursor: text; }\n/* Bands only: a page host's height is the band the paginator reserved, and a floor here would\n read as \"the story grew\" and trigger a needless re-paginate. */\n.dxr-surface .docx-hf-band .docx-hf-body { min-height: 1.4em; }\n/* Page view: the page's own header/footer area is click-to-edit. */\n.dxr-surface .page-header[data-hf-page], .dxr-surface .page-footer[data-hf-page] { cursor: text; }\n.dxr-surface .page-header[data-hf-page]:hover, .dxr-surface .page-footer[data-hf-page]:hover {\n outline: 1px dashed var(--dxr-rule-strong); outline-offset: 2px;\n}\n.dxr-surface .page-header[data-hf-active], .dxr-surface .page-footer[data-hf-active] {\n outline: 1px dashed var(--dxr-accent); outline-offset: 2px; z-index: 5; background: #fff;\n}\n.dxr-surface [data-hf-active][data-hf-label]::before {\n content: attr(data-hf-label); position: absolute; left: -2px; top: -18px;\n padding: 1px 6px; border: 1px solid var(--dxr-accent); border-radius: 4px; background: #fff; color: var(--dxr-accent);\n font-family: var(--dxr-ui); font-size: 9px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; line-height: 1.4;\n}\n.dxr-surface .page-footer[data-hf-active][data-hf-label]::before { top: auto; bottom: -18px; }\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 /* CSS zoom scales the authored page width. A percentage cap would shrink only the\n paper to the host while its fixed-width section and content keep magnifying. */\n max-width: none;\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/* Small prompt popovers (link URL, page setup), anchored under their button. */\n.dxr-pop form { display: flex; flex-direction: column; gap: 8px; min-width: 260px; font-size: 12.5px; }\n.dxr-pop form label { display: flex; flex-direction: column; gap: 3px; color: var(--dxr-muted); font-size: 11.5px; }\n.dxr-pop form .dxr-row { justify-content: flex-end; }\n.dxr-pop form button[type=\"submit\"] { background: var(--dxr-accent); color: #fff; }\n.dxr-pop form button[type=\"submit\"]:hover { background: var(--dxr-accent-hover); }\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/* Touch targets grow with the LAYOUT, not the pointer alone: a phone-width chrome is driven\n by a thumb whether or not the browser reports a coarse pointer (an emulated narrow viewport\n does not), so the compact strip adopts the same 40px control floor the coarse-pointer media\n query sets, keeping every icon button at a real tap size. */\n.dxr[data-chrome=\"compact\"] { --dxr-tap: 40px; }\n/* The floor buys tap SIZE; the rows must not spend it again on padding. A phone stacks three\n chrome rows \u2014 title, tabs, commands \u2014 above the page, so every pixel of row padding is paid\n three times before the document starts, and the arcade demo's card (which sizes itself to the\n game screen plus its controls) runs out of viewport when it is. */\n.dxr[data-chrome=\"compact\"] .dxr-titlebar {\n gap: 6px;\n padding: 0 8px;\n}\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: 0 8px; }\n/* A tab is a WIDE target \u2014 its label plus 11px of side padding already clears the tap floor\n horizontally \u2014 and it is navigation rather than a command, so it does not need the command\n row's full height. Word's own phone ribbon keeps its tab strip slim for the same reason: the\n page starts higher. The commands below keep the full 40px floor. */\n.dxr[data-chrome=\"compact\"] .dxr-tab { min-height: 34px; padding: 6px 11px 7px; font-size: 12px; }\n.dxr[data-chrome=\"compact\"] .dxr-panel {\n align-items: center;\n gap: 4px;\n padding: 2px 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.dxr[data-chrome=\"compact\"] .dxr-row + .dxr-row { margin-top: 0; }\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: 26px 18px 10px; }\n.dxr[data-chrome=\"compact\"] .dxr-surface .docx-hf-band[data-hf-band=\"footer\"] { padding: 10px 18px 26px; }\n.dxr[data-chrome=\"compact\"] .dxr-surface .docx-hf-tag { left: 18px; }\n/* No room for a markup column on a phone: comments stay highlighted, bubbles step aside. */\n.dxr[data-chrome=\"compact\"] .docx-comment-gutter, .dxr[data-chrome=\"compact\"] .docx-comment-leaders { display: none; }\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";
42
42
  /** Word's highlighter palette (ST_HighlightColor) with its screen colours, in Word's order. */
43
43
  export declare const HIGHLIGHT_COLORS: ReadonlyArray<{
44
44
  value: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ribbon-chrome.d.ts","sourceRoot":"","sources":["../src/ribbon-chrome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,iBAAiB,gCAAgC,CAAC;AAE/D,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC;;;;;GAKG;AACH,eAAO,MAAM,UAAU,0htCA4zBtB,CAAC;AAKF,+FAA+F;AAC/F,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAgBzF,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAIzC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,QAqkBvB,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,QAIyE,CAAC"}
1
+ {"version":3,"file":"ribbon-chrome.d.ts","sourceRoot":"","sources":["../src/ribbon-chrome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,iBAAiB,gCAAgC,CAAC;AAE/D,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC;;;;;GAKG;AACH,eAAO,MAAM,UAAU,4rtCA8zBtB,CAAC;AAKF,+FAA+F;AAC/F,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAgBzF,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAIzC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,QAskBvB,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,QAIyE,CAAC"}
@@ -484,9 +484,9 @@ export const RIBBON_CSS = `
484
484
  Word draws a header that is being edited — a dashed rule with a small tag in the margin. */
485
485
  .dxr-surface .docx-hf-band {
486
486
  /* Docked outside the zoomed sheet, so it takes the page's on-screen width from the
487
- custom property the viewport publishes rather than stretching to the whole surface. */
487
+ custom property the viewport publishes, including when the page exceeds the surface. */
488
488
  position: relative;
489
- width: min(100%, var(--docx-sheet-width, 100%));
489
+ width: var(--docx-sheet-width, 100%);
490
490
  margin: 0 auto;
491
491
  padding: 34px 72px 12px;
492
492
  background: var(--dxr-sheet);
@@ -545,7 +545,9 @@ export const RIBBON_CSS = `
545
545
  vertical breathing room is ours. Centering is left to margin:auto so a page the viewport
546
546
  has zoomed to fit stays centered at its scaled width. */
547
547
  .dxr[data-chrome] .dxr-surface[data-view="continuous"] .docx-body-flow {
548
- max-width: 100%;
548
+ /* CSS zoom scales the authored page width. A percentage cap would shrink only the
549
+ paper to the host while its fixed-width section and content keep magnifying. */
550
+ max-width: none;
549
551
  margin: 0 auto;
550
552
  padding: 56px 0;
551
553
  border-radius: 3px;
@@ -910,6 +912,7 @@ export const RIBBON_HTML = `
910
912
  <label class="dxr-btn" tabindex="0">Open<input data-dxr="file" type="file" accept=".docx" hidden /></label>
911
913
  <button type="button" data-dxr="save" disabled>Save</button>
912
914
  </div>
915
+ <button type="button" class="dxr-btn" data-dxr="history" title="Browse and save document versions" aria-haspopup="dialog">Version history</button>
913
916
  <div class="dxr-quick">
914
917
  <button type="button" class="dxr-icon" data-dxr="undo" title="Undo (Ctrl+Z)" aria-label="Undo">&#8630;</button>
915
918
  <button type="button" class="dxr-icon" data-dxr="redo" title="Redo (Ctrl+Shift+Z)" aria-label="Redo">&#8631;</button>
@@ -1 +1 @@
1
- {"version":3,"file":"ribbon-chrome.js","sourceRoot":"","sources":["../src/ribbon-chrome.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ribbon-chrome.js","sourceRoot":"","sources":["../src/ribbon-chrome.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import type { DocxHistoryArchive, DocxHistoryClient, HistoryStorage } from './history.js';
2
+ import type { RibbonEditor } from './ribbon.js';
3
+ export interface RibbonHistoryOptions {
4
+ /** Browser database shared by this app's editors. No document bytes are stored until Save version. */
5
+ storageName?: string;
6
+ /** Stable host-owned workspace key. Reopens its last saved document across reloads. */
7
+ workspaceId?: string;
8
+ author?: string;
9
+ }
10
+ /** Low-level hosts supply their initialized history and preview services. createRibbonEditor wires these automatically. */
11
+ export interface RibbonHistoryBinding extends RibbonHistoryOptions {
12
+ openHistory(storage: HistoryStorage): DocxHistoryClient;
13
+ openArchive(bytes: Uint8Array): Promise<DocxHistoryArchive>;
14
+ preview(container: HTMLElement, bytes: Uint8Array): Promise<{
15
+ destroy(): void;
16
+ }>;
17
+ }
18
+ /** Shared ribbon lifecycle, browser persistence and separate previews. No autosave or network sync. */
19
+ export declare class RibbonHistory {
20
+ private readonly ribbon;
21
+ private readonly options;
22
+ private readonly dialog;
23
+ private readonly previewDialog;
24
+ private readonly body;
25
+ private readonly status;
26
+ private readonly source;
27
+ private readonly recent;
28
+ private readonly back;
29
+ private readonly resumeButton;
30
+ private readonly events;
31
+ private readonly prefix;
32
+ private readonly lastKey;
33
+ private store?;
34
+ private client?;
35
+ private draft?;
36
+ private identity;
37
+ private archive?;
38
+ private panel?;
39
+ private preview?;
40
+ private active?;
41
+ private destroyed;
42
+ private installing;
43
+ private dirty;
44
+ private generation;
45
+ private captured;
46
+ private savedVersion;
47
+ private observedVersion;
48
+ private capturedVersion;
49
+ private capturedBytes?;
50
+ private readonly panelObserver;
51
+ constructor(ribbon: RibbonEditor, options: RibbonHistoryBinding);
52
+ get busy(): boolean;
53
+ private get hasUnsavedChanges();
54
+ /** Called by the ribbon before a programmatic replacement. */
55
+ beforeOpen(): void;
56
+ /** A new DOCX is a new document identity, even if its filename matches another document. */
57
+ documentOpened(name: string): void;
58
+ edited(): void;
59
+ /** Restores a saved workspace only when requested by the host, before exposing the editor. */
60
+ resume(): Promise<void>;
61
+ show(): Promise<void>;
62
+ openFile(file: File): Promise<void>;
63
+ newDocument(): Promise<void>;
64
+ destroy(): Promise<void>;
65
+ private ensureStorage;
66
+ private ensureDraft;
67
+ private loadSaved;
68
+ private install;
69
+ private mountPanel;
70
+ private showPreview;
71
+ private importArchive;
72
+ private closeArchive;
73
+ private remember;
74
+ private readIdentity;
75
+ private updateRecent;
76
+ private confirm;
77
+ private captureState;
78
+ private confirmReplace;
79
+ private explain;
80
+ private command;
81
+ private syncBusy;
82
+ private run;
83
+ private button;
84
+ }
85
+ //# sourceMappingURL=ribbon-history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ribbon-history.d.ts","sourceRoot":"","sources":["../src/ribbon-history.ts"],"names":[],"mappings":"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"}