@docx-editor.dev/core 2.1.2 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +4 -5
  2. package/dist/automation.cjs +1 -1
  3. package/dist/automation.js +1 -1
  4. package/dist/binding.cjs +1 -1
  5. package/dist/binding.js +1 -1
  6. package/dist/chunk-5OSFUHGF.js +10 -0
  7. package/dist/chunk-C24AINST.js +12 -0
  8. package/dist/{chunk-O2WQY7IT.cjs → chunk-CY47CFM5.cjs} +5 -5
  9. package/dist/chunk-EUTHPVTG.cjs +2 -0
  10. package/dist/chunk-FJCBZ5BL.cjs +12 -0
  11. package/dist/{chunk-REZUWYB7.js → chunk-GRGRIDHF.js} +1 -1
  12. package/dist/{chunk-PC76F2HR.cjs → chunk-KZ5HPHW6.cjs} +1 -1
  13. package/dist/{chunk-TBBXCC7D.js → chunk-LVZSKP2F.js} +3 -3
  14. package/dist/{chunk-HBL3NNH5.cjs → chunk-MIUELYVA.cjs} +1 -1
  15. package/dist/chunk-MO7GAUO7.js +2 -0
  16. package/dist/chunk-NCGKMEKU.js +2 -0
  17. package/dist/chunk-PFTVNFMI.js +1 -0
  18. package/dist/chunk-QVGTZUEV.js +12 -0
  19. package/dist/chunk-T2LVH6D3.cjs +2 -0
  20. package/dist/chunk-UAOJHPQ4.cjs +10 -0
  21. package/dist/chunk-VXEF32A5.cjs +12 -0
  22. package/dist/contracts/editor.cjs +1 -1
  23. package/dist/contracts/editor.d.cts +3 -3
  24. package/dist/contracts/editor.d.ts +3 -3
  25. package/dist/contracts/editor.js +1 -1
  26. package/dist/contracts/interaction.d.cts +4 -4
  27. package/dist/contracts/interaction.d.ts +4 -4
  28. package/dist/{editor-BGBZn9c9.d.cts → editor-25RmHnxu.d.cts} +64 -2
  29. package/dist/{editor-DQRRxKMG.d.ts → editor-C8oaTHr3.d.ts} +64 -2
  30. package/dist/editor.cjs +1 -1
  31. package/dist/editor.css +86 -11
  32. package/dist/editor.d.cts +51 -11
  33. package/dist/editor.d.ts +51 -11
  34. package/dist/editor.js +1 -1
  35. package/dist/{index-DptRpcqa.d.cts → index-CiEakUbq.d.cts} +32 -5
  36. package/dist/{index-BzqHsd4Y.d.ts → index-gvw4VGE9.d.ts} +32 -5
  37. package/dist/index.cjs +1 -1
  38. package/dist/index.d.cts +6 -6
  39. package/dist/index.d.ts +6 -6
  40. package/dist/index.js +1 -1
  41. package/dist/layout.cjs +1 -1
  42. package/dist/layout.d.cts +95 -61
  43. package/dist/layout.d.ts +95 -61
  44. package/dist/layout.js +1 -1
  45. package/dist/output.cjs +1 -1
  46. package/dist/output.d.cts +4 -101
  47. package/dist/output.d.ts +4 -101
  48. package/dist/output.js +1 -1
  49. package/dist/{semantic-cell-selection-DwLB71fF.d.cts → semantic-cell-selection-CI3loBKq.d.cts} +2 -2
  50. package/dist/{semantic-cell-selection-D_8RbPII.d.ts → semantic-cell-selection-Cx8P64j2.d.ts} +2 -2
  51. package/dist/{semantic-interaction-DqcEonqD.d.cts → semantic-interaction-B4HrJFQ2.d.cts} +1 -1
  52. package/dist/{semantic-interaction-CXH2wFqi.d.ts → semantic-interaction-unGpRNCk.d.ts} +1 -1
  53. package/dist/semantic-paint-BBNaqr1s.d.ts +133 -0
  54. package/dist/semantic-paint-DdGGra4m.d.cts +133 -0
  55. package/dist/{semantic-records-zTC0_1zi.d.ts → semantic-records-BC4bIKKL.d.ts} +28 -32
  56. package/dist/{semantic-records-COVFW5aS.d.cts → semantic-records-DC6V1U3T.d.cts} +28 -32
  57. package/dist/{shaped-measurer-CZXL-a6v.d.ts → shaped-measurer-ChSWkuAT.d.ts} +1 -1
  58. package/dist/{shaped-measurer-AFnFxoot.d.cts → shaped-measurer-SIqZp-Ty.d.cts} +1 -1
  59. package/dist/store.cjs +1 -1
  60. package/dist/store.d.cts +35 -14
  61. package/dist/store.d.ts +35 -14
  62. package/dist/store.js +1 -1
  63. package/package.json +2 -2
  64. package/dist/chunk-2DTQDAN7.js +0 -2
  65. package/dist/chunk-3HEU7MHP.js +0 -12
  66. package/dist/chunk-3JKQE4QJ.cjs +0 -2
  67. package/dist/chunk-6WIIHJFY.js +0 -1
  68. package/dist/chunk-BZK64YU3.cjs +0 -10
  69. package/dist/chunk-EDLUMMQN.cjs +0 -12
  70. package/dist/chunk-JQFDLZXQ.cjs +0 -2
  71. package/dist/chunk-QRAUDDVY.js +0 -2
  72. package/dist/chunk-STCITBJK.js +0 -12
  73. package/dist/chunk-TSXT537P.cjs +0 -12
  74. package/dist/chunk-Y7TA7TPF.js +0 -10
  75. package/dist/semantic-paint-drawings-B5Wk2so5.d.ts +0 -21
  76. package/dist/semantic-paint-drawings-x8g44lD_.d.cts +0 -21
@@ -1 +1 @@
1
- 'use strict';var chunkHBL3NNH5_cjs=require('../chunk-HBL3NNH5.cjs');Object.defineProperty(exports,"EditorFontError",{enumerable:true,get:function(){return chunkHBL3NNH5_cjs.a}});
1
+ 'use strict';var chunkMIUELYVA_cjs=require('../chunk-MIUELYVA.cjs');Object.defineProperty(exports,"EditorFontError",{enumerable:true,get:function(){return chunkMIUELYVA_cjs.a}});
@@ -1,11 +1,11 @@
1
1
  export { ContentControlSummary, DocEdits, DocQueries, DocQueryResults, ParagraphSummary } from './document.cjs';
2
2
  export { C as CommentRecord, c as ReviewCommentItem, d as ReviewCustomItem, a as ReviewItem, e as ReviewPosition, f as ReviewRange, b as ReviewRevisionItem, g as ReviewRevisionKind } from '../review-support-rsyGP5-9.cjs';
3
- export { A as AuthoredNoteNumbering, C as CanResult, p as DocumentChange, q as DocumentEditingMode, r as DocumentHandle, D as DocumentSource, l as Editor, a as EditorCommand, t as EditorCommandShape, u as EditorCommands, w as EditorError, x as EditorEvents, E as EditorFontError, y as EditorFontErrorCode, z as EditorHeaderFooterCommands, B as EditorNoteCommands, G as EditorPosition, H as EditorQueries, J as EditorQuery, K as EditorQueryResults, L as EditorScope, M as EditorSelection, N as EditorSnapshot, F as FontConfiguration, k as FontFaceRequest, i as FontSource, j as FontSourceSubstitution, O as FurnitureVariant, P as HeaderFooterSlotArgs, Q as HeaderFooterState, R as HyperlinkInfo, I as ImageContext, b as ImageCropPercent, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, Y as NoteKind, Z as NotePropertiesSide, _ as NotePropertiesState, $ as PageSetup, a0 as ResolvedNoteNumbering, a1 as ReviewActivationOptions, a2 as ReviewCommentPlacement, a3 as ReviewCustomPlacement, a4 as ReviewItemPlacement, a5 as ReviewItemPlacementBase, a6 as ReviewItemQuery, a7 as ReviewRevisionPlacement, S as SelectedImageState, a8 as SemanticIdentity, a9 as SemanticTarget, T as TableBorderEdgeTarget, m as TableBorderSpec, n as TableBorderStyle, aa as TableBorderTarget, ab as TableCellVerticalAlignment, ac as TableColumnDividerResizeTarget, ad as TableColumnOccurrenceTarget, o as TableContext, ae as TableRightEdgeResizeTarget, af as TableRowOccurrenceTarget, ag as TextMatch, V as ViewScope } from '../editor-BGBZn9c9.cjs';
4
- export { S as SemanticPosition, a as SemanticSelection } from '../semantic-interaction-DqcEonqD.cjs';
3
+ export { A as AuthoredNoteNumbering, C as CanResult, p as DocumentChange, q as DocumentEditingMode, r as DocumentHandle, D as DocumentSource, l as Editor, a as EditorCommand, t as EditorCommandShape, u as EditorCommands, w as EditorError, x as EditorEvents, E as EditorFontError, y as EditorFontErrorCode, z as EditorHeaderFooterCommands, B as EditorNoteCommands, G as EditorPosition, H as EditorQueries, J as EditorQuery, K as EditorQueryResults, L as EditorScope, M as EditorSelection, N as EditorSnapshot, F as FontConfiguration, k as FontFaceRequest, i as FontSource, j as FontSourceSubstitution, O as FurnitureVariant, P as HeaderFooterSlotArgs, Q as HeaderFooterState, R as HyperlinkInfo, I as ImageContext, b as ImageCropPercent, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, Y as NoteKind, _ as NotePropertiesSide, $ as NotePropertiesState, a0 as PageSetup, a1 as ResolvedNoteNumbering, a2 as ReviewActivationOptions, a3 as ReviewCommentPlacement, a4 as ReviewCustomPlacement, a5 as ReviewItemPlacement, a6 as ReviewItemPlacementBase, a7 as ReviewItemQuery, a8 as ReviewRevisionPlacement, S as SelectedImageState, a9 as SemanticIdentity, aa as SemanticTarget, T as TableBorderEdgeTarget, m as TableBorderSpec, n as TableBorderStyle, ab as TableBorderTarget, ac as TableCellVerticalAlignment, ad as TableColumnDividerResizeTarget, ae as TableColumnOccurrenceTarget, o as TableContext, af as TableRightEdgeResizeTarget, ag as TableRowOccurrenceTarget, ah as TextMatch, V as ViewScope, ai as ZoomFitTarget, Z as ZoomMode } from '../editor-25RmHnxu.cjs';
4
+ export { S as SemanticPosition, a as SemanticSelection } from '../semantic-interaction-B4HrJFQ2.cjs';
5
5
  export { Block, ColorValue, ContainerRef, ContentControl, ContentControlFilter, ContentControlType, DocAnchor, DocAnchorRange, DocComment, DocLocation, DocRange, DocTarget, DocumentBody, DocxDocument, DocxDocumentJSON, ExecErrorCode, ExecResult, Extent, FontDefinition, HeaderFooterSet, IndentFormatting, NumberingRef, PageMargins, Paragraph, Point, Rect, Revision, RevisionType, Run, RunFormatting, Section, SectionProperties, StyleDefinition, StyleDefinitions, Table, TableCell, TableRow, Theme, ThemeColorScheme, Unsubscribe, Watermark } from './types.cjs';
6
6
  export { f as DrawingHorizontalReferenceFrame, c as DrawingKind, e as DrawingLocks, d as DrawingPositionInput, g as DrawingVerticalReferenceFrame, b as ImageWrapTarget, R as RevisionAddress } from '../tree-op-types-UOXlRUqQ.cjs';
7
7
  export { I as ImageResourceState, P as PreservedImageMime, R as RenderableImageMime, S as SupportedImageMime, V as ValidatedImageBytesHandle, a as VectorImageMime } from '../image-resources-DwpNnTg3.cjs';
8
8
  import '../ooxml-tree-BU0e3DVi.cjs';
9
- import '../semantic-records-COVFW5aS.cjs';
9
+ import '../semantic-records-DC6V1U3T.cjs';
10
10
  import '../revision-projection-72ZApe-g.cjs';
11
11
  import '../ooxml-package-CR5us6ad.cjs';
@@ -1,11 +1,11 @@
1
1
  export { ContentControlSummary, DocEdits, DocQueries, DocQueryResults, ParagraphSummary } from './document.js';
2
2
  export { C as CommentRecord, c as ReviewCommentItem, d as ReviewCustomItem, a as ReviewItem, e as ReviewPosition, f as ReviewRange, b as ReviewRevisionItem, g as ReviewRevisionKind } from '../review-support-B9ykYpoZ.js';
3
- export { A as AuthoredNoteNumbering, C as CanResult, p as DocumentChange, q as DocumentEditingMode, r as DocumentHandle, D as DocumentSource, l as Editor, a as EditorCommand, t as EditorCommandShape, u as EditorCommands, w as EditorError, x as EditorEvents, E as EditorFontError, y as EditorFontErrorCode, z as EditorHeaderFooterCommands, B as EditorNoteCommands, G as EditorPosition, H as EditorQueries, J as EditorQuery, K as EditorQueryResults, L as EditorScope, M as EditorSelection, N as EditorSnapshot, F as FontConfiguration, k as FontFaceRequest, i as FontSource, j as FontSourceSubstitution, O as FurnitureVariant, P as HeaderFooterSlotArgs, Q as HeaderFooterState, R as HyperlinkInfo, I as ImageContext, b as ImageCropPercent, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, Y as NoteKind, Z as NotePropertiesSide, _ as NotePropertiesState, $ as PageSetup, a0 as ResolvedNoteNumbering, a1 as ReviewActivationOptions, a2 as ReviewCommentPlacement, a3 as ReviewCustomPlacement, a4 as ReviewItemPlacement, a5 as ReviewItemPlacementBase, a6 as ReviewItemQuery, a7 as ReviewRevisionPlacement, S as SelectedImageState, a8 as SemanticIdentity, a9 as SemanticTarget, T as TableBorderEdgeTarget, m as TableBorderSpec, n as TableBorderStyle, aa as TableBorderTarget, ab as TableCellVerticalAlignment, ac as TableColumnDividerResizeTarget, ad as TableColumnOccurrenceTarget, o as TableContext, ae as TableRightEdgeResizeTarget, af as TableRowOccurrenceTarget, ag as TextMatch, V as ViewScope } from '../editor-DQRRxKMG.js';
4
- export { S as SemanticPosition, a as SemanticSelection } from '../semantic-interaction-CXH2wFqi.js';
3
+ export { A as AuthoredNoteNumbering, C as CanResult, p as DocumentChange, q as DocumentEditingMode, r as DocumentHandle, D as DocumentSource, l as Editor, a as EditorCommand, t as EditorCommandShape, u as EditorCommands, w as EditorError, x as EditorEvents, E as EditorFontError, y as EditorFontErrorCode, z as EditorHeaderFooterCommands, B as EditorNoteCommands, G as EditorPosition, H as EditorQueries, J as EditorQuery, K as EditorQueryResults, L as EditorScope, M as EditorSelection, N as EditorSnapshot, F as FontConfiguration, k as FontFaceRequest, i as FontSource, j as FontSourceSubstitution, O as FurnitureVariant, P as HeaderFooterSlotArgs, Q as HeaderFooterState, R as HyperlinkInfo, I as ImageContext, b as ImageCropPercent, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, Y as NoteKind, _ as NotePropertiesSide, $ as NotePropertiesState, a0 as PageSetup, a1 as ResolvedNoteNumbering, a2 as ReviewActivationOptions, a3 as ReviewCommentPlacement, a4 as ReviewCustomPlacement, a5 as ReviewItemPlacement, a6 as ReviewItemPlacementBase, a7 as ReviewItemQuery, a8 as ReviewRevisionPlacement, S as SelectedImageState, a9 as SemanticIdentity, aa as SemanticTarget, T as TableBorderEdgeTarget, m as TableBorderSpec, n as TableBorderStyle, ab as TableBorderTarget, ac as TableCellVerticalAlignment, ad as TableColumnDividerResizeTarget, ae as TableColumnOccurrenceTarget, o as TableContext, af as TableRightEdgeResizeTarget, ag as TableRowOccurrenceTarget, ah as TextMatch, V as ViewScope, ai as ZoomFitTarget, Z as ZoomMode } from '../editor-C8oaTHr3.js';
4
+ export { S as SemanticPosition, a as SemanticSelection } from '../semantic-interaction-unGpRNCk.js';
5
5
  export { Block, ColorValue, ContainerRef, ContentControl, ContentControlFilter, ContentControlType, DocAnchor, DocAnchorRange, DocComment, DocLocation, DocRange, DocTarget, DocumentBody, DocxDocument, DocxDocumentJSON, ExecErrorCode, ExecResult, Extent, FontDefinition, HeaderFooterSet, IndentFormatting, NumberingRef, PageMargins, Paragraph, Point, Rect, Revision, RevisionType, Run, RunFormatting, Section, SectionProperties, StyleDefinition, StyleDefinitions, Table, TableCell, TableRow, Theme, ThemeColorScheme, Unsubscribe, Watermark } from './types.js';
6
6
  export { f as DrawingHorizontalReferenceFrame, c as DrawingKind, e as DrawingLocks, d as DrawingPositionInput, g as DrawingVerticalReferenceFrame, b as ImageWrapTarget, R as RevisionAddress } from '../tree-op-types-DWLCllG7.js';
7
7
  export { I as ImageResourceState, P as PreservedImageMime, R as RenderableImageMime, S as SupportedImageMime, V as ValidatedImageBytesHandle, a as VectorImageMime } from '../image-resources-C_YnqPhn.js';
8
8
  import '../ooxml-tree-BU0e3DVi.js';
9
- import '../semantic-records-zTC0_1zi.js';
9
+ import '../semantic-records-BC4bIKKL.js';
10
10
  import '../revision-projection-DHAkcD_L.js';
11
11
  import '../ooxml-package-D_CtywTW.js';
@@ -1 +1 @@
1
- export{a as EditorFontError}from'../chunk-REZUWYB7.js';
1
+ export{a as EditorFontError}from'../chunk-GRGRIDHF.js';
@@ -1,11 +1,11 @@
1
- export { L as EditorScope, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, a8 as SemanticIdentity, a9 as SemanticTarget, V as ViewScope } from '../editor-BGBZn9c9.cjs';
1
+ export { L as EditorScope, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, a9 as SemanticIdentity, aa as SemanticTarget, V as ViewScope } from '../editor-25RmHnxu.cjs';
2
2
  import './document.cjs';
3
3
  import './types.cjs';
4
4
  import '../review-support-rsyGP5-9.cjs';
5
5
  import '../ooxml-tree-BU0e3DVi.cjs';
6
6
  import '../tree-op-types-UOXlRUqQ.cjs';
7
- import '../semantic-interaction-DqcEonqD.cjs';
8
- import '../semantic-records-COVFW5aS.cjs';
7
+ import '../semantic-interaction-B4HrJFQ2.cjs';
8
+ import '../semantic-records-DC6V1U3T.cjs';
9
+ import '../revision-projection-72ZApe-g.cjs';
9
10
  import '../image-resources-DwpNnTg3.cjs';
10
11
  import '../ooxml-package-CR5us6ad.cjs';
11
- import '../revision-projection-72ZApe-g.cjs';
@@ -1,11 +1,11 @@
1
- export { L as EditorScope, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, a8 as SemanticIdentity, a9 as SemanticTarget, V as ViewScope } from '../editor-DQRRxKMG.js';
1
+ export { L as EditorScope, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, a9 as SemanticIdentity, aa as SemanticTarget, V as ViewScope } from '../editor-C8oaTHr3.js';
2
2
  import './document.js';
3
3
  import './types.js';
4
4
  import '../review-support-B9ykYpoZ.js';
5
5
  import '../ooxml-tree-BU0e3DVi.js';
6
6
  import '../tree-op-types-DWLCllG7.js';
7
- import '../semantic-interaction-CXH2wFqi.js';
8
- import '../semantic-records-zTC0_1zi.js';
7
+ import '../semantic-interaction-unGpRNCk.js';
8
+ import '../semantic-records-BC4bIKKL.js';
9
+ import '../revision-projection-DHAkcD_L.js';
9
10
  import '../image-resources-C_YnqPhn.js';
10
11
  import '../ooxml-package-D_CtywTW.js';
11
- import '../revision-projection-DHAkcD_L.js';
@@ -1,6 +1,6 @@
1
1
  import { DocEdits, DocQueries, DocQueryResults, ContentControlSummary } from './contracts/document.cjs';
2
2
  import { g as ReviewRevisionKind, c as ReviewCommentItem, b as ReviewRevisionItem, d as ReviewCustomItem } from './review-support-rsyGP5-9.cjs';
3
- import { a as SemanticSelection, S as SemanticPosition } from './semantic-interaction-DqcEonqD.cjs';
3
+ import { a as SemanticSelection, S as SemanticPosition } from './semantic-interaction-B4HrJFQ2.cjs';
4
4
  import { ExecErrorCode, ColorValue, Watermark, DocAnchor, ExecResult, ContentControlFilter, DocRange, RunFormatting, Revision, Rect, Unsubscribe } from './contracts/types.cjs';
5
5
  import { S as SourceCrop, b as ImageWrapTarget, c as DrawingKind, d as DrawingPositionInput, e as DrawingLocks } from './tree-op-types-UOXlRUqQ.cjs';
6
6
  import { S as SupportedImageMime, I as ImageResourceState } from './image-resources-DwpNnTg3.cjs';
@@ -422,6 +422,37 @@ type EditorScope = {
422
422
  type ViewScope = Exclude<EditorScope, {
423
423
  kind: 'all';
424
424
  }>;
425
+ /**
426
+ * What a fit mode fits the page to.
427
+ *
428
+ * One member today. It is a union rather than a boolean because Word's other two — the whole
429
+ * sheet including its height, and the text column inside the margins — are the same
430
+ * computation with a different numerator, and a later change adds one without breaking the
431
+ * shape a host already stores.
432
+ */
433
+ type ZoomFitTarget = 'pageWidth';
434
+ /**
435
+ * Where the display scale comes from.
436
+ *
437
+ * `fixed` is a number the engine holds until someone changes it. `fit` is a number the engine
438
+ * recomputes whenever the room beside the page changes — a resized window, an opened comments
439
+ * rail, a docked navigation pane — bounded by `minZoom`/`maxZoom`.
440
+ *
441
+ * The bounds are what make one mode serve both cases. The default, `'auto'`, is this fit
442
+ * bounded at both ends: it leaves a page that fits at 100%, shrinks one that does not, and
443
+ * stops at 50% — past which it would be trading a scrollbar nobody minds for a page nobody
444
+ * can read.
445
+ */
446
+ type ZoomMode = {
447
+ readonly type: 'fixed';
448
+ } | {
449
+ readonly type: 'fit';
450
+ readonly fit: ZoomFitTarget;
451
+ /** Never shrink past this. Defaults to the contract floor, 0.1. */
452
+ readonly minZoom?: number;
453
+ /** Never grow past this. `1` is the "shrink only" rule. Defaults to the ceiling, 5. */
454
+ readonly maxZoom?: number;
455
+ };
425
456
  /**
426
457
  * A selection endpoint, in either vocabulary the engine resolves.
427
458
  *
@@ -817,8 +848,27 @@ interface Editor {
817
848
  /**
818
849
  * Set the display scale. Values outside a sane range are rejected rather than
819
850
  * clamped silently, so a caller learns its input was refused.
851
+ *
852
+ * Also LEAVES any fit mode: a reader who picks 150% has said what they want, and a
853
+ * viewport resize must not take it back off them. Call `setZoomMode` to go back.
820
854
  */
821
855
  setZoom(zoom: number): ExecResult;
856
+ /** Whether the scale is a number the engine holds, or one it recomputes from the viewport. */
857
+ getZoomMode(): ZoomMode;
858
+ /**
859
+ * Choose between holding a scale and tracking the viewport.
860
+ *
861
+ * `'auto'` is the shorthand for {@link ZoomMode}'s bounded page-width fit and the default
862
+ * for a new editor: a window wide enough for the sheet stays at 100%, and a narrower one
863
+ * shrinks rather than growing a horizontal scrollbar — down to 50%, past which the page
864
+ * keeps a legible size and the scrollbar is the better trade. Refused (`invalidArgs`) for a
865
+ * value that is not a mode, in the same spirit as `setZoom`.
866
+ *
867
+ * A fit tracks the scroller's CONTENT box, so anything that reserves width beside the page
868
+ * — an open comments rail, a docked navigation pane — shrinks the document by exactly what
869
+ * it took. Nothing else has to be told.
870
+ */
871
+ setZoomMode(mode: ZoomMode | 'auto'): ExecResult;
822
872
  /** Page boxes in stack coordinates, each with the text area the engine laid out.
823
873
  * `contentBox` is the page inset by the section margin — rulers draw margin zones from
824
874
  * it instead of assuming a default. The engine's margin is uniform on all four sides
@@ -1573,6 +1623,18 @@ interface EditorSnapshot {
1573
1623
  * read-only document (tables/SDTs/unpreservable) or `mode: 'view'` reports false. */
1574
1624
  readonly editable: boolean;
1575
1625
  readonly zoom: number;
1626
+ /**
1627
+ * Where {@link EditorSnapshot.zoom} came from.
1628
+ *
1629
+ * Both are needed, and neither implies the other: `zoom` is the resolved scale a ruler
1630
+ * multiplies by, `zoomMode` is what a zoom control has to show as selected. A menu that
1631
+ * ticked the entry matching the percentage would tick "75%" while the editor was tracking
1632
+ * the viewport and about to move off it.
1633
+ *
1634
+ * Optional and additive like `pageSetup`; absent means the implementation has not derived
1635
+ * it, and a consumer reads absent as a plain fixed scale.
1636
+ */
1637
+ readonly zoomMode?: ZoomMode;
1576
1638
  readonly selection: DocRange | null;
1577
1639
  /**
1578
1640
  * Whether the selection is a CARET rather than a range. `true` when nothing is loaded.
@@ -1726,4 +1788,4 @@ interface EditorEvents {
1726
1788
  error: (error: EditorError) => void;
1727
1789
  }
1728
1790
 
1729
- export { type PageSetup as $, type AuthoredNoteNumbering as A, type EditorNoteCommands as B, type CanResult as C, type DocumentSource as D, EditorFontError as E, type FontConfiguration as F, type EditorPosition as G, type EditorQueries as H, type ImageContext as I, type EditorQuery as J, type EditorQueryResults as K, type EditorScope as L, type EditorSelection as M, type EditorSnapshot as N, type FurnitureVariant as O, type HeaderFooterSlotArgs as P, type HeaderFooterState as Q, type HyperlinkInfo as R, type SelectedImageState as S, type TableBorderEdgeTarget as T, type InteractionAffinity as U, type ViewScope as V, type InteractionOutcome as W, type InteractionOutcomeCode as X, type NoteKind as Y, type NotePropertiesSide as Z, type NotePropertiesState as _, type EditorCommand as a, type ResolvedNoteNumbering as a0, type ReviewActivationOptions as a1, type ReviewCommentPlacement as a2, type ReviewCustomPlacement as a3, type ReviewItemPlacement as a4, type ReviewItemPlacementBase as a5, type ReviewItemQuery as a6, type ReviewRevisionPlacement as a7, type SemanticIdentity as a8, type SemanticTarget as a9, type TableBorderTarget as aa, type TableCellVerticalAlignment as ab, type TableColumnDividerResizeTarget as ac, type TableColumnOccurrenceTarget as ad, type TableRightEdgeResizeTarget as ae, type TableRowOccurrenceTarget as af, type TextMatch as ag, type ImageCropPercent as b, type ImageCropPermille as c, cropPercentFromCropPermille as d, cropPercentFromPermille as e, cropPercentFromSourceCrop as f, cropPermilleFromCropPercent as g, cropPermilleFromPercent as h, type FontSource as i, type FontSourceSubstitution as j, type FontFaceRequest as k, type Editor as l, type TableBorderSpec as m, type TableBorderStyle as n, type TableContext as o, type DocumentChange as p, type DocumentEditingMode as q, type DocumentHandle as r, sourceCropFromCropPercent as s, type EditorCommandShape as t, type EditorCommands as u, validateImageCropPercent as v, type EditorError as w, type EditorEvents as x, type EditorFontErrorCode as y, type EditorHeaderFooterCommands as z };
1791
+ export { type NotePropertiesState as $, type AuthoredNoteNumbering as A, type EditorNoteCommands as B, type CanResult as C, type DocumentSource as D, EditorFontError as E, type FontConfiguration as F, type EditorPosition as G, type EditorQueries as H, type ImageContext as I, type EditorQuery as J, type EditorQueryResults as K, type EditorScope as L, type EditorSelection as M, type EditorSnapshot as N, type FurnitureVariant as O, type HeaderFooterSlotArgs as P, type HeaderFooterState as Q, type HyperlinkInfo as R, type SelectedImageState as S, type TableBorderEdgeTarget as T, type InteractionAffinity as U, type ViewScope as V, type InteractionOutcome as W, type InteractionOutcomeCode as X, type NoteKind as Y, type ZoomMode as Z, type NotePropertiesSide as _, type EditorCommand as a, type PageSetup as a0, type ResolvedNoteNumbering as a1, type ReviewActivationOptions as a2, type ReviewCommentPlacement as a3, type ReviewCustomPlacement as a4, type ReviewItemPlacement as a5, type ReviewItemPlacementBase as a6, type ReviewItemQuery as a7, type ReviewRevisionPlacement as a8, type SemanticIdentity as a9, type SemanticTarget as aa, type TableBorderTarget as ab, type TableCellVerticalAlignment as ac, type TableColumnDividerResizeTarget as ad, type TableColumnOccurrenceTarget as ae, type TableRightEdgeResizeTarget as af, type TableRowOccurrenceTarget as ag, type TextMatch as ah, type ZoomFitTarget as ai, type ImageCropPercent as b, type ImageCropPermille as c, cropPercentFromCropPermille as d, cropPercentFromPermille as e, cropPercentFromSourceCrop as f, cropPermilleFromCropPercent as g, cropPermilleFromPercent as h, type FontSource as i, type FontSourceSubstitution as j, type FontFaceRequest as k, type Editor as l, type TableBorderSpec as m, type TableBorderStyle as n, type TableContext as o, type DocumentChange as p, type DocumentEditingMode as q, type DocumentHandle as r, sourceCropFromCropPercent as s, type EditorCommandShape as t, type EditorCommands as u, validateImageCropPercent as v, type EditorError as w, type EditorEvents as x, type EditorFontErrorCode as y, type EditorHeaderFooterCommands as z };
@@ -1,6 +1,6 @@
1
1
  import { DocEdits, DocQueries, DocQueryResults, ContentControlSummary } from './contracts/document.js';
2
2
  import { g as ReviewRevisionKind, c as ReviewCommentItem, b as ReviewRevisionItem, d as ReviewCustomItem } from './review-support-B9ykYpoZ.js';
3
- import { a as SemanticSelection, S as SemanticPosition } from './semantic-interaction-CXH2wFqi.js';
3
+ import { a as SemanticSelection, S as SemanticPosition } from './semantic-interaction-unGpRNCk.js';
4
4
  import { ExecErrorCode, ColorValue, Watermark, DocAnchor, ExecResult, ContentControlFilter, DocRange, RunFormatting, Revision, Rect, Unsubscribe } from './contracts/types.js';
5
5
  import { S as SourceCrop, b as ImageWrapTarget, c as DrawingKind, d as DrawingPositionInput, e as DrawingLocks } from './tree-op-types-DWLCllG7.js';
6
6
  import { S as SupportedImageMime, I as ImageResourceState } from './image-resources-C_YnqPhn.js';
@@ -422,6 +422,37 @@ type EditorScope = {
422
422
  type ViewScope = Exclude<EditorScope, {
423
423
  kind: 'all';
424
424
  }>;
425
+ /**
426
+ * What a fit mode fits the page to.
427
+ *
428
+ * One member today. It is a union rather than a boolean because Word's other two — the whole
429
+ * sheet including its height, and the text column inside the margins — are the same
430
+ * computation with a different numerator, and a later change adds one without breaking the
431
+ * shape a host already stores.
432
+ */
433
+ type ZoomFitTarget = 'pageWidth';
434
+ /**
435
+ * Where the display scale comes from.
436
+ *
437
+ * `fixed` is a number the engine holds until someone changes it. `fit` is a number the engine
438
+ * recomputes whenever the room beside the page changes — a resized window, an opened comments
439
+ * rail, a docked navigation pane — bounded by `minZoom`/`maxZoom`.
440
+ *
441
+ * The bounds are what make one mode serve both cases. The default, `'auto'`, is this fit
442
+ * bounded at both ends: it leaves a page that fits at 100%, shrinks one that does not, and
443
+ * stops at 50% — past which it would be trading a scrollbar nobody minds for a page nobody
444
+ * can read.
445
+ */
446
+ type ZoomMode = {
447
+ readonly type: 'fixed';
448
+ } | {
449
+ readonly type: 'fit';
450
+ readonly fit: ZoomFitTarget;
451
+ /** Never shrink past this. Defaults to the contract floor, 0.1. */
452
+ readonly minZoom?: number;
453
+ /** Never grow past this. `1` is the "shrink only" rule. Defaults to the ceiling, 5. */
454
+ readonly maxZoom?: number;
455
+ };
425
456
  /**
426
457
  * A selection endpoint, in either vocabulary the engine resolves.
427
458
  *
@@ -817,8 +848,27 @@ interface Editor {
817
848
  /**
818
849
  * Set the display scale. Values outside a sane range are rejected rather than
819
850
  * clamped silently, so a caller learns its input was refused.
851
+ *
852
+ * Also LEAVES any fit mode: a reader who picks 150% has said what they want, and a
853
+ * viewport resize must not take it back off them. Call `setZoomMode` to go back.
820
854
  */
821
855
  setZoom(zoom: number): ExecResult;
856
+ /** Whether the scale is a number the engine holds, or one it recomputes from the viewport. */
857
+ getZoomMode(): ZoomMode;
858
+ /**
859
+ * Choose between holding a scale and tracking the viewport.
860
+ *
861
+ * `'auto'` is the shorthand for {@link ZoomMode}'s bounded page-width fit and the default
862
+ * for a new editor: a window wide enough for the sheet stays at 100%, and a narrower one
863
+ * shrinks rather than growing a horizontal scrollbar — down to 50%, past which the page
864
+ * keeps a legible size and the scrollbar is the better trade. Refused (`invalidArgs`) for a
865
+ * value that is not a mode, in the same spirit as `setZoom`.
866
+ *
867
+ * A fit tracks the scroller's CONTENT box, so anything that reserves width beside the page
868
+ * — an open comments rail, a docked navigation pane — shrinks the document by exactly what
869
+ * it took. Nothing else has to be told.
870
+ */
871
+ setZoomMode(mode: ZoomMode | 'auto'): ExecResult;
822
872
  /** Page boxes in stack coordinates, each with the text area the engine laid out.
823
873
  * `contentBox` is the page inset by the section margin — rulers draw margin zones from
824
874
  * it instead of assuming a default. The engine's margin is uniform on all four sides
@@ -1573,6 +1623,18 @@ interface EditorSnapshot {
1573
1623
  * read-only document (tables/SDTs/unpreservable) or `mode: 'view'` reports false. */
1574
1624
  readonly editable: boolean;
1575
1625
  readonly zoom: number;
1626
+ /**
1627
+ * Where {@link EditorSnapshot.zoom} came from.
1628
+ *
1629
+ * Both are needed, and neither implies the other: `zoom` is the resolved scale a ruler
1630
+ * multiplies by, `zoomMode` is what a zoom control has to show as selected. A menu that
1631
+ * ticked the entry matching the percentage would tick "75%" while the editor was tracking
1632
+ * the viewport and about to move off it.
1633
+ *
1634
+ * Optional and additive like `pageSetup`; absent means the implementation has not derived
1635
+ * it, and a consumer reads absent as a plain fixed scale.
1636
+ */
1637
+ readonly zoomMode?: ZoomMode;
1576
1638
  readonly selection: DocRange | null;
1577
1639
  /**
1578
1640
  * Whether the selection is a CARET rather than a range. `true` when nothing is loaded.
@@ -1726,4 +1788,4 @@ interface EditorEvents {
1726
1788
  error: (error: EditorError) => void;
1727
1789
  }
1728
1790
 
1729
- export { type PageSetup as $, type AuthoredNoteNumbering as A, type EditorNoteCommands as B, type CanResult as C, type DocumentSource as D, EditorFontError as E, type FontConfiguration as F, type EditorPosition as G, type EditorQueries as H, type ImageContext as I, type EditorQuery as J, type EditorQueryResults as K, type EditorScope as L, type EditorSelection as M, type EditorSnapshot as N, type FurnitureVariant as O, type HeaderFooterSlotArgs as P, type HeaderFooterState as Q, type HyperlinkInfo as R, type SelectedImageState as S, type TableBorderEdgeTarget as T, type InteractionAffinity as U, type ViewScope as V, type InteractionOutcome as W, type InteractionOutcomeCode as X, type NoteKind as Y, type NotePropertiesSide as Z, type NotePropertiesState as _, type EditorCommand as a, type ResolvedNoteNumbering as a0, type ReviewActivationOptions as a1, type ReviewCommentPlacement as a2, type ReviewCustomPlacement as a3, type ReviewItemPlacement as a4, type ReviewItemPlacementBase as a5, type ReviewItemQuery as a6, type ReviewRevisionPlacement as a7, type SemanticIdentity as a8, type SemanticTarget as a9, type TableBorderTarget as aa, type TableCellVerticalAlignment as ab, type TableColumnDividerResizeTarget as ac, type TableColumnOccurrenceTarget as ad, type TableRightEdgeResizeTarget as ae, type TableRowOccurrenceTarget as af, type TextMatch as ag, type ImageCropPercent as b, type ImageCropPermille as c, cropPercentFromCropPermille as d, cropPercentFromPermille as e, cropPercentFromSourceCrop as f, cropPermilleFromCropPercent as g, cropPermilleFromPercent as h, type FontSource as i, type FontSourceSubstitution as j, type FontFaceRequest as k, type Editor as l, type TableBorderSpec as m, type TableBorderStyle as n, type TableContext as o, type DocumentChange as p, type DocumentEditingMode as q, type DocumentHandle as r, sourceCropFromCropPercent as s, type EditorCommandShape as t, type EditorCommands as u, validateImageCropPercent as v, type EditorError as w, type EditorEvents as x, type EditorFontErrorCode as y, type EditorHeaderFooterCommands as z };
1791
+ export { type NotePropertiesState as $, type AuthoredNoteNumbering as A, type EditorNoteCommands as B, type CanResult as C, type DocumentSource as D, EditorFontError as E, type FontConfiguration as F, type EditorPosition as G, type EditorQueries as H, type ImageContext as I, type EditorQuery as J, type EditorQueryResults as K, type EditorScope as L, type EditorSelection as M, type EditorSnapshot as N, type FurnitureVariant as O, type HeaderFooterSlotArgs as P, type HeaderFooterState as Q, type HyperlinkInfo as R, type SelectedImageState as S, type TableBorderEdgeTarget as T, type InteractionAffinity as U, type ViewScope as V, type InteractionOutcome as W, type InteractionOutcomeCode as X, type NoteKind as Y, type ZoomMode as Z, type NotePropertiesSide as _, type EditorCommand as a, type PageSetup as a0, type ResolvedNoteNumbering as a1, type ReviewActivationOptions as a2, type ReviewCommentPlacement as a3, type ReviewCustomPlacement as a4, type ReviewItemPlacement as a5, type ReviewItemPlacementBase as a6, type ReviewItemQuery as a7, type ReviewRevisionPlacement as a8, type SemanticIdentity as a9, type SemanticTarget as aa, type TableBorderTarget as ab, type TableCellVerticalAlignment as ac, type TableColumnDividerResizeTarget as ad, type TableColumnOccurrenceTarget as ae, type TableRightEdgeResizeTarget as af, type TableRowOccurrenceTarget as ag, type TextMatch as ah, type ZoomFitTarget as ai, type ImageCropPercent as b, type ImageCropPermille as c, cropPercentFromCropPermille as d, cropPercentFromPermille as e, cropPercentFromSourceCrop as f, cropPermilleFromCropPercent as g, cropPermilleFromPercent as h, type FontSource as i, type FontSourceSubstitution as j, type FontFaceRequest as k, type Editor as l, type TableBorderSpec as m, type TableBorderStyle as n, type TableContext as o, type DocumentChange as p, type DocumentEditingMode as q, type DocumentHandle as r, sourceCropFromCropPercent as s, type EditorCommandShape as t, type EditorCommands as u, validateImageCropPercent as v, type EditorError as w, type EditorEvents as x, type EditorFontErrorCode as y, type EditorHeaderFooterCommands as z };
package/dist/editor.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var chunkEDLUMMQN_cjs=require('./chunk-EDLUMMQN.cjs');require('./chunk-3JKQE4QJ.cjs'),require('./chunk-TSXT537P.cjs'),require('./chunk-PC76F2HR.cjs'),require('./chunk-O2WQY7IT.cjs'),require('./chunk-BS554B6D.cjs'),require('./chunk-JQFDLZXQ.cjs');var chunkBZK64YU3_cjs=require('./chunk-BZK64YU3.cjs');require('./chunk-HBL3NNH5.cjs');var chunk7VQ7YLW3_cjs=require('./chunk-7VQ7YLW3.cjs');Object.defineProperty(exports,"BROWSER_AUTOMATION_CAPABILITIES",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.Da}});Object.defineProperty(exports,"CHROME_GROUPS",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.sa}});Object.defineProperty(exports,"CHROME_MENUS",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.wa}});Object.defineProperty(exports,"CHROME_UNAVAILABLE_KEY",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.za}});Object.defineProperty(exports,"DEFAULT_TABLE_CHROME_DRAFT",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.W}});Object.defineProperty(exports,"EMU_PER_POINT",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.O}});Object.defineProperty(exports,"IMAGE_OVERLAY_NUDGE_PT",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.M}});Object.defineProperty(exports,"IMAGE_OVERLAY_NUDGE_SHIFT_PT",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.N}});Object.defineProperty(exports,"MAX_RESOLVER_FAMILIES",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.d}});Object.defineProperty(exports,"PX_PER_CM",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.k}});Object.defineProperty(exports,"PX_PER_INCH",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.j}});Object.defineProperty(exports,"SNAP_TWIPS_CM",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.q}});Object.defineProperty(exports,"SNAP_TWIPS_INCH",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.p}});Object.defineProperty(exports,"TABLE_BORDER_STYLE_OPTIONS",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.aa}});Object.defineProperty(exports,"TABLE_BORDER_TARGET_OPTIONS",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.$}});Object.defineProperty(exports,"TABLE_BORDER_WIDTH_OPTIONS",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.ba}});Object.defineProperty(exports,"TABLE_CHROME_SLOT_IDS",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.X}});Object.defineProperty(exports,"TWIPS_PER_CM",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.o}});Object.defineProperty(exports,"TWIPS_PER_INCH",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.n}});Object.defineProperty(exports,"WORD_DEFAULT_FONT",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.e}});Object.defineProperty(exports,"applyTableChromePick",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.ca}});Object.defineProperty(exports,"applyThemeShade",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.w}});Object.defineProperty(exports,"applyThemeTint",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.v}});Object.defineProperty(exports,"blankDocumentBytes",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.g}});Object.defineProperty(exports,"canExecuteImageCommand",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.K}});Object.defineProperty(exports,"captureImageMutationPreconditions",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.J}});Object.defineProperty(exports,"chromeControlCount",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.ya}});Object.defineProperty(exports,"chromeMenuSlots",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.xa}});Object.defineProperty(exports,"chromeProbeForSlot",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.ga}});Object.defineProperty(exports,"chromeSlotId",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.ta}});Object.defineProperty(exports,"commandForSlot",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.ha}});Object.defineProperty(exports,"commandForSlotValue",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.ja}});Object.defineProperty(exports,"commandForTableChromeSlotValue",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.ia}});Object.defineProperty(exports,"composeFontConfiguration",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.f}});Object.defineProperty(exports,"computeImageResizeResult",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.Ka}});Object.defineProperty(exports,"computeMovedImagePosition",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.T}});Object.defineProperty(exports,"computeResizedImageExtentEmu",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.S}});Object.defineProperty(exports,"createBrowserAutomationHost",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.Ea}});Object.defineProperty(exports,"createDocxEditor",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.Ca}});Object.defineProperty(exports,"createFontSource",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.i}});Object.defineProperty(exports,"createImageOverlayScrollPort",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.La}});Object.defineProperty(exports,"createLayoutShaping",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.b}});Object.defineProperty(exports,"cropPercentFromCropPermille",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.G}});Object.defineProperty(exports,"cropPercentFromPermille",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.E}});Object.defineProperty(exports,"cropPercentFromSourceCrop",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.B}});Object.defineProperty(exports,"cropPermilleFromCropPercent",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.F}});Object.defineProperty(exports,"cropPermilleFromPercent",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.D}});Object.defineProperty(exports,"cssPixelsToLayoutPoints",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.Ha}});Object.defineProperty(exports,"defaultChromeGroups",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.ua}});Object.defineProperty(exports,"defaultTableLabel",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.Y}});Object.defineProperty(exports,"disposeLayoutShaping",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.c}});Object.defineProperty(exports,"dragIndent",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.t}});Object.defineProperty(exports,"emuToOverlayPoints",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.R}});Object.defineProperty(exports,"executeImageCommand",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.L}});Object.defineProperty(exports,"finalizeImageOverlayInteraction",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.Ma}});Object.defineProperty(exports,"formattingBarChromeGroups",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.va}});Object.defineProperty(exports,"generateRulerTicks",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.l}});Object.defineProperty(exports,"handlePosition",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.r}});Object.defineProperty(exports,"isStaleImageInteractionCommit",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.U}});Object.defineProperty(exports,"isTableChromeSlot",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.Z}});Object.defineProperty(exports,"layoutPointsToCssPixels",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.Ga}});Object.defineProperty(exports,"loadFonts",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.h}});Object.defineProperty(exports,"lowerColorValueForBorder",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.y}});Object.defineProperty(exports,"lowerColorValueForFill",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.z}});Object.defineProperty(exports,"mountPaginatedSurface",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.Ba}});Object.defineProperty(exports,"overlayFrameToSheetCssPixels",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.Ia}});Object.defineProperty(exports,"pointsToEmu",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.Q}});Object.defineProperty(exports,"probeTableChromeCommand",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.da}});Object.defineProperty(exports,"resizePreservesAspect",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.Ja}});Object.defineProperty(exports,"resolveColorValueToCss",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.A}});Object.defineProperty(exports,"resolveThemeColorHex",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.x}});Object.defineProperty(exports,"rulerPageBox",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.m}});Object.defineProperty(exports,"runSave",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.pa}});Object.defineProperty(exports,"runTableChromeCommand",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.na}});Object.defineProperty(exports,"runTableCommand",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.ra}});Object.defineProperty(exports,"runToolbarCommand",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.oa}});Object.defineProperty(exports,"selectedDrawingOverlayTargetOf",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.P}});Object.defineProperty(exports,"selectedImageStateOf",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.I}});Object.defineProperty(exports,"snapTwips",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.s}});Object.defineProperty(exports,"sourceCropFromCropPercent",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.C}});Object.defineProperty(exports,"surfaceExtent",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.Aa}});Object.defineProperty(exports,"surfacePaintScale",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.Fa}});Object.defineProperty(exports,"tableChromeIconPaths",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.fa}});Object.defineProperty(exports,"tableChromeLabelKeyForTarget",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.ea}});Object.defineProperty(exports,"tableChromeToolbarState",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.ka}});Object.defineProperty(exports,"tableChromeVisible",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs._}});Object.defineProperty(exports,"tableCommandState",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.V}});Object.defineProperty(exports,"tableCommandToolbarState",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.qa}});Object.defineProperty(exports,"toEditorFontError",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.a}});Object.defineProperty(exports,"toolbarCommandState",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.la}});Object.defineProperty(exports,"toolbarCommandStates",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.ma}});Object.defineProperty(exports,"validateImageCropPercent",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.H}});Object.defineProperty(exports,"validateThemeModifier",{enumerable:true,get:function(){return chunkEDLUMMQN_cjs.u}});Object.defineProperty(exports,"DEFAULT_IMAGE_RESOURCE_LIMITS",{enumerable:true,get:function(){return chunkBZK64YU3_cjs.D}});Object.defineProperty(exports,"DRAWING_REL_FROM_H",{enumerable:true,get:function(){return chunkBZK64YU3_cjs.lf}});Object.defineProperty(exports,"DRAWING_REL_FROM_V",{enumerable:true,get:function(){return chunkBZK64YU3_cjs.mf}});Object.defineProperty(exports,"IMAGE_WRAP_TARGETS",{enumerable:true,get:function(){return chunkBZK64YU3_cjs.Wa}});Object.defineProperty(exports,"positionInputFromPropertiesCommand",{enumerable:true,get:function(){return chunkBZK64YU3_cjs.of}});Object.defineProperty(exports,"propertiesCommandHasPositionFields",{enumerable:true,get:function(){return chunkBZK64YU3_cjs.nf}});Object.defineProperty(exports,"resolveImageResourceLimits",{enumerable:true,get:function(){return chunkBZK64YU3_cjs.E}});Object.defineProperty(exports,"resolveSvgIntrinsicSize",{enumerable:true,get:function(){return chunkBZK64YU3_cjs.mb}});Object.defineProperty(exports,"sniffImageMime",{enumerable:true,get:function(){return chunkBZK64YU3_cjs.ib}});Object.defineProperty(exports,"validateDrawingPositionInput",{enumerable:true,get:function(){return chunkBZK64YU3_cjs.kf}});Object.defineProperty(exports,"validateRasterHeader",{enumerable:true,get:function(){return chunkBZK64YU3_cjs.nb}});Object.defineProperty(exports,"validateSetImagePositionCommand",{enumerable:true,get:function(){return chunkBZK64YU3_cjs.pf}});Object.defineProperty(exports,"resolveEditorModules",{enumerable:true,get:function(){return chunk7VQ7YLW3_cjs.a}});
1
+ 'use strict';var chunkFJCBZ5BL_cjs=require('./chunk-FJCBZ5BL.cjs');require('./chunk-EUTHPVTG.cjs'),require('./chunk-VXEF32A5.cjs'),require('./chunk-KZ5HPHW6.cjs'),require('./chunk-CY47CFM5.cjs'),require('./chunk-BS554B6D.cjs'),require('./chunk-T2LVH6D3.cjs');var chunkUAOJHPQ4_cjs=require('./chunk-UAOJHPQ4.cjs');require('./chunk-MIUELYVA.cjs');var chunk7VQ7YLW3_cjs=require('./chunk-7VQ7YLW3.cjs');Object.defineProperty(exports,"AUTO_ZOOM_MODE",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Ea}});Object.defineProperty(exports,"BROWSER_AUTOMATION_CAPABILITIES",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Ja}});Object.defineProperty(exports,"CHROME_GROUPS",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.sa}});Object.defineProperty(exports,"CHROME_MENUS",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.wa}});Object.defineProperty(exports,"CHROME_UNAVAILABLE_KEY",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.za}});Object.defineProperty(exports,"DEFAULT_TABLE_CHROME_DRAFT",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.W}});Object.defineProperty(exports,"EMU_PER_POINT",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.O}});Object.defineProperty(exports,"FIT_WIDTH_ZOOM_MODE",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Fa}});Object.defineProperty(exports,"IMAGE_OVERLAY_NUDGE_PT",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.M}});Object.defineProperty(exports,"IMAGE_OVERLAY_NUDGE_SHIFT_PT",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.N}});Object.defineProperty(exports,"MAX_RESOLVER_FAMILIES",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.d}});Object.defineProperty(exports,"PX_PER_CM",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.k}});Object.defineProperty(exports,"PX_PER_INCH",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.j}});Object.defineProperty(exports,"SNAP_TWIPS_CM",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.q}});Object.defineProperty(exports,"SNAP_TWIPS_INCH",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.p}});Object.defineProperty(exports,"TABLE_BORDER_STYLE_OPTIONS",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.aa}});Object.defineProperty(exports,"TABLE_BORDER_TARGET_OPTIONS",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.$}});Object.defineProperty(exports,"TABLE_BORDER_WIDTH_OPTIONS",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.ba}});Object.defineProperty(exports,"TABLE_CHROME_SLOT_IDS",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.X}});Object.defineProperty(exports,"TWIPS_PER_CM",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.o}});Object.defineProperty(exports,"TWIPS_PER_INCH",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.n}});Object.defineProperty(exports,"WORD_DEFAULT_FONT",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.e}});Object.defineProperty(exports,"ZOOM_MAX",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Da}});Object.defineProperty(exports,"ZOOM_MIN",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Ca}});Object.defineProperty(exports,"applyTableChromePick",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.ca}});Object.defineProperty(exports,"applyThemeShade",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.w}});Object.defineProperty(exports,"applyThemeTint",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.v}});Object.defineProperty(exports,"blankDocumentBytes",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.g}});Object.defineProperty(exports,"canExecuteImageCommand",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.K}});Object.defineProperty(exports,"captureImageMutationPreconditions",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.J}});Object.defineProperty(exports,"chromeControlCount",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.ya}});Object.defineProperty(exports,"chromeMenuSlots",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.xa}});Object.defineProperty(exports,"chromeProbeForSlot",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.ga}});Object.defineProperty(exports,"chromeSlotId",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.ta}});Object.defineProperty(exports,"commandForSlot",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.ha}});Object.defineProperty(exports,"commandForSlotValue",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.ja}});Object.defineProperty(exports,"commandForTableChromeSlotValue",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.ia}});Object.defineProperty(exports,"composeFontConfiguration",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.f}});Object.defineProperty(exports,"computeImageResizeResult",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Qa}});Object.defineProperty(exports,"computeMovedImagePosition",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.T}});Object.defineProperty(exports,"computeResizedImageExtentEmu",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.S}});Object.defineProperty(exports,"createBrowserAutomationHost",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Ka}});Object.defineProperty(exports,"createDocxEditor",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Ia}});Object.defineProperty(exports,"createFontSource",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.i}});Object.defineProperty(exports,"createImageOverlayScrollPort",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Ra}});Object.defineProperty(exports,"createLayoutShaping",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.b}});Object.defineProperty(exports,"cropPercentFromCropPermille",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.G}});Object.defineProperty(exports,"cropPercentFromPermille",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.E}});Object.defineProperty(exports,"cropPercentFromSourceCrop",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.B}});Object.defineProperty(exports,"cropPermilleFromCropPercent",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.F}});Object.defineProperty(exports,"cropPermilleFromPercent",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.D}});Object.defineProperty(exports,"cssPixelsToLayoutPoints",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Na}});Object.defineProperty(exports,"defaultChromeGroups",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.ua}});Object.defineProperty(exports,"defaultTableLabel",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Y}});Object.defineProperty(exports,"disposeLayoutShaping",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.c}});Object.defineProperty(exports,"dragIndent",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.t}});Object.defineProperty(exports,"emuToOverlayPoints",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.R}});Object.defineProperty(exports,"executeImageCommand",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.L}});Object.defineProperty(exports,"finalizeImageOverlayInteraction",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Sa}});Object.defineProperty(exports,"formattingBarChromeGroups",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.va}});Object.defineProperty(exports,"generateRulerTicks",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.l}});Object.defineProperty(exports,"handlePosition",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.r}});Object.defineProperty(exports,"isStaleImageInteractionCommit",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.U}});Object.defineProperty(exports,"isTableChromeSlot",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Z}});Object.defineProperty(exports,"layoutPointsToCssPixels",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Ma}});Object.defineProperty(exports,"loadFonts",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.h}});Object.defineProperty(exports,"lowerColorValueForBorder",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.y}});Object.defineProperty(exports,"lowerColorValueForFill",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.z}});Object.defineProperty(exports,"mountPaginatedSurface",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Ba}});Object.defineProperty(exports,"overlayFrameToSheetCssPixels",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Oa}});Object.defineProperty(exports,"pointsToEmu",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Q}});Object.defineProperty(exports,"probeTableChromeCommand",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.da}});Object.defineProperty(exports,"resizePreservesAspect",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Pa}});Object.defineProperty(exports,"resolveColorValueToCss",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.A}});Object.defineProperty(exports,"resolveThemeColorHex",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.x}});Object.defineProperty(exports,"resolveZoomMode",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Ga}});Object.defineProperty(exports,"rulerPageBox",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.m}});Object.defineProperty(exports,"runSave",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.pa}});Object.defineProperty(exports,"runTableChromeCommand",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.na}});Object.defineProperty(exports,"runTableCommand",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.ra}});Object.defineProperty(exports,"runToolbarCommand",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.oa}});Object.defineProperty(exports,"sameZoomMode",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Ha}});Object.defineProperty(exports,"selectedDrawingOverlayTargetOf",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.P}});Object.defineProperty(exports,"selectedImageStateOf",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.I}});Object.defineProperty(exports,"snapTwips",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.s}});Object.defineProperty(exports,"sourceCropFromCropPercent",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.C}});Object.defineProperty(exports,"surfaceExtent",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.Aa}});Object.defineProperty(exports,"surfacePaintScale",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.La}});Object.defineProperty(exports,"tableChromeIconPaths",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.fa}});Object.defineProperty(exports,"tableChromeLabelKeyForTarget",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.ea}});Object.defineProperty(exports,"tableChromeToolbarState",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.ka}});Object.defineProperty(exports,"tableChromeVisible",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs._}});Object.defineProperty(exports,"tableCommandState",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.V}});Object.defineProperty(exports,"tableCommandToolbarState",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.qa}});Object.defineProperty(exports,"toEditorFontError",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.a}});Object.defineProperty(exports,"toolbarCommandState",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.la}});Object.defineProperty(exports,"toolbarCommandStates",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.ma}});Object.defineProperty(exports,"validateImageCropPercent",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.H}});Object.defineProperty(exports,"validateThemeModifier",{enumerable:true,get:function(){return chunkFJCBZ5BL_cjs.u}});Object.defineProperty(exports,"DEFAULT_IMAGE_RESOURCE_LIMITS",{enumerable:true,get:function(){return chunkUAOJHPQ4_cjs.D}});Object.defineProperty(exports,"DRAWING_REL_FROM_H",{enumerable:true,get:function(){return chunkUAOJHPQ4_cjs.nf}});Object.defineProperty(exports,"DRAWING_REL_FROM_V",{enumerable:true,get:function(){return chunkUAOJHPQ4_cjs.of}});Object.defineProperty(exports,"IMAGE_WRAP_TARGETS",{enumerable:true,get:function(){return chunkUAOJHPQ4_cjs.Wa}});Object.defineProperty(exports,"positionInputFromPropertiesCommand",{enumerable:true,get:function(){return chunkUAOJHPQ4_cjs.qf}});Object.defineProperty(exports,"propertiesCommandHasPositionFields",{enumerable:true,get:function(){return chunkUAOJHPQ4_cjs.pf}});Object.defineProperty(exports,"resolveImageResourceLimits",{enumerable:true,get:function(){return chunkUAOJHPQ4_cjs.E}});Object.defineProperty(exports,"resolveSvgIntrinsicSize",{enumerable:true,get:function(){return chunkUAOJHPQ4_cjs.mb}});Object.defineProperty(exports,"sniffImageMime",{enumerable:true,get:function(){return chunkUAOJHPQ4_cjs.ib}});Object.defineProperty(exports,"validateDrawingPositionInput",{enumerable:true,get:function(){return chunkUAOJHPQ4_cjs.mf}});Object.defineProperty(exports,"validateRasterHeader",{enumerable:true,get:function(){return chunkUAOJHPQ4_cjs.nb}});Object.defineProperty(exports,"validateSetImagePositionCommand",{enumerable:true,get:function(){return chunkUAOJHPQ4_cjs.rf}});Object.defineProperty(exports,"resolveEditorModules",{enumerable:true,get:function(){return chunk7VQ7YLW3_cjs.a}});
package/dist/editor.css CHANGED
@@ -8,7 +8,7 @@
8
8
  --tw-scale-y: 1;
9
9
  }
10
10
 
11
- .docx-editor :is(.shadow-lg), .docx-editor :is(.shadow-sm) {
11
+ .docx-editor :is(.shadow), .docx-editor :is(.shadow-lg), .docx-editor :is(.shadow-sm) {
12
12
  --tw-ring-offset-shadow: 0 0 #0000;
13
13
  --tw-ring-shadow: 0 0 #0000;
14
14
  --tw-shadow: 0 0 #0000;
@@ -336,6 +336,10 @@
336
336
  flex-shrink: 0;
337
337
  }
338
338
 
339
+ .docx-editor .grow {
340
+ flex-grow: 1;
341
+ }
342
+
339
343
  .docx-editor .transform {
340
344
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
341
345
  }
@@ -711,6 +715,12 @@
711
715
  opacity: 0.5;
712
716
  }
713
717
 
718
+ .docx-editor .shadow {
719
+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
720
+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
721
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
722
+ }
723
+
714
724
  .docx-editor .shadow-lg {
715
725
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
716
726
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
@@ -787,6 +797,10 @@
787
797
  }
788
798
  }
789
799
 
800
+ .docx-editor .zoom-out {
801
+ --tw-exit-scale: 0;
802
+ }
803
+
790
804
  .docx-editor .duration-150 {
791
805
  animation-duration: 150ms;
792
806
  }
@@ -913,6 +927,11 @@
913
927
  clearly deeper colour. Keep the two pairs in step — this is the faint end of that ramp. */
914
928
  --doc-revision-insertion-wash: rgba(46, 125, 50, 0.05);
915
929
  --doc-revision-deletion-wash: rgba(198, 40, 40, 0.05);
930
+ /* The grey block behind a FIELD's result — Word's field shading. It says the text was
931
+ computed rather than typed, which is the whole message, so it is a flat neutral and not
932
+ part of the revision ramp: a field is not a pending decision. Kept light enough that a
933
+ contents page dense with them still reads as text. Never printed. */
934
+ --doc-field-shading: rgba(0, 0, 0, 0.09);
916
935
  /* A tracked FORMAT change: the words are unchanged, so it takes neither the insertion nor
917
936
  the deletion colour — grey says "the appearance is the decision". The wash plus a faint
918
937
  dotted rule make the range findable (it is the hover balloon's target); both are quiet
@@ -1246,10 +1265,19 @@
1246
1265
  scrollbar-color: var(--doc-scrollbar-thumb) var(--doc-scrollbar-track);
1247
1266
  }
1248
1267
 
1249
- .docx-editor .docx-editor__scroll-container {
1268
+ /* Descendant AND self: `DocxEditor.Viewport` puts `docx-editor` on the scroll container
1269
+ itself when no ancestor is scoped (the Root + Viewport composition), and the descendant
1270
+ combinator alone misses that element. */
1271
+ .docx-editor .docx-editor__scroll-container,
1272
+ .docx-editor.docx-editor__scroll-container {
1250
1273
  /* `both-edges` reserves a symmetric gutter so the centered page stays centered
1251
1274
  on classic-scrollbar platforms (single-edge nudges it ~7px left). Matches
1252
- the Vue viewport (DocxEditor.css `__pages-viewport`). */
1275
+ the Vue viewport (DocxEditor.css `__pages-viewport`).
1276
+
1277
+ LOAD-BEARING for fit-to-viewport zoom as well as centring: the fit measures this
1278
+ element's content box, and without a reserved gutter, fitting a document down far
1279
+ enough to remove the vertical scrollbar widens that box, which fits larger, which
1280
+ brings the scrollbar back. */
1253
1281
  scrollbar-gutter: stable both-edges;
1254
1282
  }
1255
1283
 
@@ -2840,6 +2868,32 @@ a.docx-hyperlink:focus-visible {
2840
2868
  background-color: var(--doc-revision-deletion-wash);
2841
2869
  }
2842
2870
 
2871
+ /* FIELD SHADING — the grey block Word draws behind computed text (a page number, a
2872
+ cross-reference, the blank in a form). It marks where text came from, not what it says.
2873
+
2874
+ A stylesheet rule rather than painter inline style, for the same reason the format-change
2875
+ marking is: a revision wash arrives as inline style and so WINS here, which is the ordering
2876
+ we want. A deleted field must read as deleted first — the strike and its colour are the
2877
+ pending decision; the shading is only provenance. A host that wants no shading at all
2878
+ overrides one selector instead of passing an option through every call site.
2879
+
2880
+ `--shaded` is the resolved "draw it now" state. Legacy form fields carry it from paint
2881
+ (Word shades them on sight); an ordinary field gets it either because the host asked for
2882
+ `always` or because the caret is inside it, which the surface toggles as `--active`. */
2883
+ .docx-field-atom--shaded,
2884
+ .docx-field-atom--active {
2885
+ background-color: var(--doc-field-shading);
2886
+ }
2887
+
2888
+ /* Field shading NEVER prints — Word does not print it either. A printed form has no blanks
2889
+ left to find, and a page number on paper is just a page number. */
2890
+ @media print {
2891
+ .docx-field-atom--shaded,
2892
+ .docx-field-atom--active {
2893
+ background-color: transparent;
2894
+ }
2895
+ }
2896
+
2843
2897
  /* A tracked FORMAT change: grey, because nothing was added or removed — the appearance
2844
2898
  itself is the pending decision. A stylesheet rule rather than painter inline style on
2845
2899
  purpose: an authored underline or strike arrives as inline style and therefore WINS over
@@ -4186,10 +4240,9 @@ a.docx-hyperlink:focus-visible {
4186
4240
  margin-inline-start: auto;
4187
4241
  }
4188
4242
 
4189
- /* The panel SCROLLS when it is taller than the room under the bar. That does clip a
4190
- * popup opened from a control inside it (a font list, a swatch grid) — the same
4191
- * trade every scrolling menu makes — and the alternative, a panel that runs off the
4192
- * bottom of a short window, loses the rows entirely. */
4243
+ /* The panel scrolls when it is taller than the room under the bar. A nested menu
4244
+ * temporarily lifts that clipping so its options remain reachable; closing it restores
4245
+ * the bounded panel. */
4193
4246
  .docx-toolbar__more-panel {
4194
4247
  position: absolute;
4195
4248
  top: calc(100% + 6px);
@@ -4208,6 +4261,13 @@ a.docx-hyperlink:focus-visible {
4208
4261
  box-shadow: var(--doc-shadow-lg);
4209
4262
  }
4210
4263
 
4264
+ /* Zoom's level picker is a popover, not panel content. A scroll container would otherwise
4265
+ * cut it off when Zoom is the last (or only) More row. `:has()` is supported by every
4266
+ * browser we support, and scopes the escape hatch to the short interval the picker exists. */
4267
+ .docx-toolbar__more-panel:has(.docx-toolbar__zoom-menu) {
4268
+ overflow-y: visible;
4269
+ }
4270
+
4211
4271
  .docx-toolbar__more-section + .docx-toolbar__more-section {
4212
4272
  margin-top: 4px;
4213
4273
  padding-top: 4px;
@@ -4673,7 +4733,8 @@ a.docx-hyperlink:focus-visible {
4673
4733
  left: 0;
4674
4734
  z-index: var(--doc-z-overlay);
4675
4735
  margin-top: 4px;
4676
- min-width: 96px;
4736
+ /* Wide enough for "Automatic" above the percentages, which are narrower. */
4737
+ min-width: 132px;
4677
4738
  }
4678
4739
 
4679
4740
  /* The merged alignment dropdown: current-alignment icon + caret; the popup is
@@ -5629,12 +5690,25 @@ a.docx-hyperlink:focus-visible {
5629
5690
 
5630
5691
  /* The page column moves ONLY by what the adapter computed, and only while a pane
5631
5692
  * is open. Absent (no pane mounted, pane closed, gutter wide enough) the custom
5632
- * property falls back to 0 and this rule is inert. */
5633
- .docx-editor .docx-editor__scroll-container {
5693
+ * property falls back to 0 and this rule is inert.
5694
+ *
5695
+ * Descendant AND self: `DocxEditor.Viewport` puts `docx-editor` on the scroll
5696
+ * container itself when no ancestor is scoped (Root + Viewport composition /
5697
+ * `chrome={false}`), so the self-scoped selector is load-bearing — same pattern
5698
+ * as scrollbar-gutter above. */
5699
+ .docx-editor .docx-editor__scroll-container,
5700
+ .docx-editor.docx-editor__scroll-container {
5634
5701
  padding-inline-start: var(--docx-nav-shift, 0px);
5635
5702
  transition: padding-inline-start 0.2s ease;
5636
5703
  }
5637
5704
 
5705
+ /* Under a fit the page width follows the padded box. Animating the padding would
5706
+ * publish intermediate widths and the fit would chase them every frame. Jump. */
5707
+ .docx-editor .docx-editor__scroll-container[data-zoom-fit],
5708
+ .docx-editor.docx-editor__scroll-container[data-zoom-fit] {
5709
+ transition: none;
5710
+ }
5711
+
5638
5712
  /* Positioning frame: the gutter strip to the left of the page. `pointer-events`
5639
5713
  * is off on the frame and back on for its controls, so the strip never eats a
5640
5714
  * click meant for the document behind it. */
@@ -6512,7 +6586,8 @@ a.docx-hyperlink:focus-visible {
6512
6586
 
6513
6587
  /* Reduced motion: the page still moves when it has to, it just does not glide. */
6514
6588
  @media (prefers-reduced-motion: reduce) {
6515
- .docx-editor .docx-editor__scroll-container {
6589
+ .docx-editor .docx-editor__scroll-container,
6590
+ .docx-editor.docx-editor__scroll-container {
6516
6591
  transition-duration: 0s;
6517
6592
  }
6518
6593
  }