superdoc 2.4.0-next.63 → 2.4.0-next.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/collaboration-upgrade-engine.cjs +1 -1
- package/dist/collaboration-upgrade-engine.es.js +1 -1
- package/dist/layout-engine/contracts/src/index.d.ts +119 -0
- package/dist/layout-engine/painters/dom/src/chart-renderer.d.ts +3 -3
- package/dist/layout-engine/painters/dom/src/images/render-placeholder.d.ts +12 -0
- package/dist/layout-engine/painters/dom/src/renderer.d.ts +6 -0
- package/dist/layout-engine/painters/dom/src/runs/text-effects.d.ts +14 -0
- package/dist/style.css +23 -23
- package/dist/style.layered.css +23 -23
- package/dist/superdoc.cjs +3 -2
- package/dist/superdoc.es.js +3 -2
- package/dist-cdn/style.layered.css +1 -1
- package/dist-cdn/superdoc.min.css +1 -1
- package/dist-cdn/superdoc.min.js +11 -11
- package/package.json +2 -2
|
@@ -19,7 +19,7 @@ var COLLABORATION_UPGRADE_ENGINE_MINIMUM_NODE_MAJOR = 20;
|
|
|
19
19
|
var PRIVATE_ENGINE_INFO = (0, _superdoc_docx_engine_collaboration_upgrade_engine.getCollaborationUpgradeEngineInfo)();
|
|
20
20
|
var ENGINE_INFO = Object.freeze({
|
|
21
21
|
...PRIVATE_ENGINE_INFO,
|
|
22
|
-
superdocVersion: "2.4.0-next.
|
|
22
|
+
superdocVersion: "2.4.0-next.64",
|
|
23
23
|
roomSchemaVersion: Object.freeze({ ...PRIVATE_ENGINE_INFO.roomSchemaVersion }),
|
|
24
24
|
supportedBundleVersions: SUPPORTED_COLLABORATION_UPGRADE_BUNDLE_VERSIONS,
|
|
25
25
|
supportedV1ReaderContractVersions: SUPPORTED_V1_READER_CONTRACT_VERSIONS
|
|
@@ -18,7 +18,7 @@ var COLLABORATION_UPGRADE_ENGINE_MINIMUM_NODE_MAJOR = 20;
|
|
|
18
18
|
var PRIVATE_ENGINE_INFO = getCollaborationUpgradeEngineInfo$1();
|
|
19
19
|
var ENGINE_INFO = Object.freeze({
|
|
20
20
|
...PRIVATE_ENGINE_INFO,
|
|
21
|
-
superdocVersion: "2.4.0-next.
|
|
21
|
+
superdocVersion: "2.4.0-next.64",
|
|
22
22
|
roomSchemaVersion: Object.freeze({ ...PRIVATE_ENGINE_INFO.roomSchemaVersion }),
|
|
23
23
|
supportedBundleVersions: SUPPORTED_COLLABORATION_UPGRADE_BUNDLE_VERSIONS,
|
|
24
24
|
supportedV1ReaderContractVersions: SUPPORTED_V1_READER_CONTRACT_VERSIONS
|
|
@@ -318,6 +318,8 @@ export type RunMarks = {
|
|
|
318
318
|
* Rendering normalizes a shift of zero to "no explicit shift".
|
|
319
319
|
*/
|
|
320
320
|
baselineShift?: number;
|
|
321
|
+
/** Paint-only Word 2010+ text effects (`w14:textFill`, outline, shadow, reflection). */
|
|
322
|
+
textEffects?: TextEffects;
|
|
321
323
|
};
|
|
322
324
|
export type PageReferenceRelativePositionText = 'above' | 'below';
|
|
323
325
|
export type FieldResultFormat = 'charformat' | 'mergeformat';
|
|
@@ -473,6 +475,18 @@ export type ImageHyperlink = {
|
|
|
473
475
|
* baseline next to the surrounding text instead of floating above it.
|
|
474
476
|
*/
|
|
475
477
|
export type ImageRunVerticalAlign = 'top' | 'bottom' | 'baseline';
|
|
478
|
+
/**
|
|
479
|
+
* Explicit fail-closed rendering metadata for content that keeps its authored
|
|
480
|
+
* layout box but cannot be painted faithfully.
|
|
481
|
+
*
|
|
482
|
+
* The producer owns the diagnostic identity; painters only expose it on the
|
|
483
|
+
* visible, accessible placeholder. This keeps support decisions out of the DOM
|
|
484
|
+
* layer and makes degraded output observable in browser regression proofs.
|
|
485
|
+
*/
|
|
486
|
+
export type RenderPlaceholder = {
|
|
487
|
+
diagnosticIds: string[];
|
|
488
|
+
accessibleName: string;
|
|
489
|
+
};
|
|
476
490
|
/**
|
|
477
491
|
* Inline image run for images that flow with text on the same line.
|
|
478
492
|
* Unlike ImageBlock (anchored/floating images), ImageRun is part of the paragraph's run array
|
|
@@ -499,10 +513,16 @@ export type ImageRun = {
|
|
|
499
513
|
width: number;
|
|
500
514
|
/** Image height in pixels. */
|
|
501
515
|
height: number;
|
|
516
|
+
/** Font family of the owning OOXML run, used to compose an image-only line box. */
|
|
517
|
+
fontFamily?: string;
|
|
518
|
+
/** Font size of the owning OOXML run, used to compose an image-only line box. */
|
|
519
|
+
fontSize?: number;
|
|
502
520
|
/** Alternative text for accessibility. */
|
|
503
521
|
alt?: string;
|
|
504
522
|
/** Image title (tooltip). */
|
|
505
523
|
title?: string;
|
|
524
|
+
/** Visible fail-closed replacement when the image source cannot be painted. */
|
|
525
|
+
placeholder?: RenderPlaceholder;
|
|
506
526
|
/** DrawingML docPr/@id of the picture (used to target the Document API for interactive resize). */
|
|
507
527
|
imageId?: string;
|
|
508
528
|
/** Clip-path value for cropped images. */
|
|
@@ -891,6 +911,8 @@ export type ImageBlock = {
|
|
|
891
911
|
height?: number;
|
|
892
912
|
alt?: string;
|
|
893
913
|
title?: string;
|
|
914
|
+
/** Visible fail-closed replacement when the image source cannot be painted. */
|
|
915
|
+
placeholder?: RenderPlaceholder;
|
|
894
916
|
/** DrawingML docPr/@id of the picture (used to target the Document API for interactive resize). */
|
|
895
917
|
imageId?: string;
|
|
896
918
|
objectFit?: 'contain' | 'cover' | 'fill' | 'scale-down';
|
|
@@ -986,6 +1008,52 @@ export type TextFormatting = {
|
|
|
986
1008
|
fontSize?: number;
|
|
987
1009
|
fontFamily?: string;
|
|
988
1010
|
letterSpacing?: number;
|
|
1011
|
+
/** Paint-only Word 2010+ text effects shared with ordinary text runs. */
|
|
1012
|
+
textEffects?: TextEffects;
|
|
1013
|
+
};
|
|
1014
|
+
/** Solid color used by a text effect, with optional opacity. */
|
|
1015
|
+
export type TextEffectColor = {
|
|
1016
|
+
color: string;
|
|
1017
|
+
alpha?: number;
|
|
1018
|
+
};
|
|
1019
|
+
/** Word 2010+ text outline (`w14:textOutline`). */
|
|
1020
|
+
export type TextOutlineEffect = {
|
|
1021
|
+
/** Outline width converted from EMU to CSS pixels. */
|
|
1022
|
+
width: number;
|
|
1023
|
+
fill: FillColor;
|
|
1024
|
+
};
|
|
1025
|
+
/** Word 2010+ outer text shadow (`w14:shadow`). */
|
|
1026
|
+
export type TextShadowEffect = {
|
|
1027
|
+
color: TextEffectColor;
|
|
1028
|
+
/** Blur radius converted from EMU to CSS pixels. */
|
|
1029
|
+
blurRadius: number;
|
|
1030
|
+
/** Shadow distance converted from EMU to CSS pixels. */
|
|
1031
|
+
distance: number;
|
|
1032
|
+
/** Direction in DrawingML degrees (`0` points right, `90` points down). */
|
|
1033
|
+
direction: number;
|
|
1034
|
+
};
|
|
1035
|
+
/** Word 2010+ reflected-text mask (`w14:reflection`). */
|
|
1036
|
+
export type TextReflectionEffect = {
|
|
1037
|
+
blurRadius: number;
|
|
1038
|
+
distance: number;
|
|
1039
|
+
direction: number;
|
|
1040
|
+
startAlpha: number;
|
|
1041
|
+
startPosition: number;
|
|
1042
|
+
endAlpha: number;
|
|
1043
|
+
endPosition: number;
|
|
1044
|
+
scaleX: number;
|
|
1045
|
+
scaleY: number;
|
|
1046
|
+
};
|
|
1047
|
+
/**
|
|
1048
|
+
* Paint-only text effects shared by paragraph runs and flattened shape text.
|
|
1049
|
+
* These effects do not change glyph advances, so layout measurement continues
|
|
1050
|
+
* to use the run's ordinary typography contract.
|
|
1051
|
+
*/
|
|
1052
|
+
export type TextEffects = {
|
|
1053
|
+
fill?: FillColor;
|
|
1054
|
+
outline?: TextOutlineEffect;
|
|
1055
|
+
shadow?: TextShadowEffect;
|
|
1056
|
+
reflection?: TextReflectionEffect;
|
|
989
1057
|
};
|
|
990
1058
|
/** A single text part with optional formatting. */
|
|
991
1059
|
export type TextPart = {
|
|
@@ -1041,6 +1109,20 @@ export type ShapeTextContent = {
|
|
|
1041
1109
|
/** Horizontal text alignment within the shape. */
|
|
1042
1110
|
horizontalAlign?: 'left' | 'center' | 'right';
|
|
1043
1111
|
};
|
|
1112
|
+
/** DrawingML textbox flow/overflow semantics from `a:bodyPr`. */
|
|
1113
|
+
export type ShapeTextLayout = {
|
|
1114
|
+
/** `a:bodyPr/@wrap`; `none` keeps authored paragraphs on explicit lines only. */
|
|
1115
|
+
wrap?: 'square' | 'none';
|
|
1116
|
+
/** `a:bodyPr/@horzOverflow`. */
|
|
1117
|
+
horizontalOverflow?: 'overflow' | 'clip';
|
|
1118
|
+
/** `a:bodyPr/@vertOverflow`. */
|
|
1119
|
+
verticalOverflow?: 'overflow' | 'clip' | 'ellipsis';
|
|
1120
|
+
};
|
|
1121
|
+
/** Resolve the line-breaking width for DrawingML textbox content. */
|
|
1122
|
+
export declare function resolveShapeTextContentMeasureWidth(shapeWidth: number, insets: {
|
|
1123
|
+
left: number;
|
|
1124
|
+
right: number;
|
|
1125
|
+
}, layout: ShapeTextLayout | undefined, autoFitBoundaryWidth?: number): number;
|
|
1044
1126
|
export type LineEnd = {
|
|
1045
1127
|
type?: string;
|
|
1046
1128
|
width?: string;
|
|
@@ -1056,8 +1138,38 @@ export type EffectExtent = {
|
|
|
1056
1138
|
right: number;
|
|
1057
1139
|
bottom: number;
|
|
1058
1140
|
};
|
|
1141
|
+
/**
|
|
1142
|
+
* DrawingML relative rectangle in the source 1000ths-of-a-percent units.
|
|
1143
|
+
* Values may be negative: ECMA-376 allows an outset as well as an inset.
|
|
1144
|
+
*/
|
|
1145
|
+
export type ShapeImageFillRect = {
|
|
1146
|
+
left: number;
|
|
1147
|
+
top: number;
|
|
1148
|
+
right: number;
|
|
1149
|
+
bottom: number;
|
|
1150
|
+
};
|
|
1151
|
+
/** DrawingML `a:tile` parameters, preserved without painter-specific conversion. */
|
|
1152
|
+
export type ShapeImageFillTile = {
|
|
1153
|
+
offsetX?: number;
|
|
1154
|
+
offsetY?: number;
|
|
1155
|
+
scaleX?: number;
|
|
1156
|
+
scaleY?: number;
|
|
1157
|
+
flip?: string;
|
|
1158
|
+
alignment?: string;
|
|
1159
|
+
};
|
|
1160
|
+
/** Resolved bitmap used as the fill paint for vector geometry. */
|
|
1161
|
+
export type ShapeImageFill = {
|
|
1162
|
+
src: string;
|
|
1163
|
+
mode: 'stretch' | 'tile';
|
|
1164
|
+
sourceRect?: ShapeImageFillRect;
|
|
1165
|
+
fillRect?: ShapeImageFillRect;
|
|
1166
|
+
tile?: ShapeImageFillTile;
|
|
1167
|
+
dpi?: number;
|
|
1168
|
+
rotateWithShape?: boolean;
|
|
1169
|
+
};
|
|
1059
1170
|
export type VectorShapeStyle = {
|
|
1060
1171
|
fillColor?: FillColor;
|
|
1172
|
+
imageFill?: ShapeImageFill;
|
|
1061
1173
|
strokeColor?: StrokeColor;
|
|
1062
1174
|
strokeWidth?: number;
|
|
1063
1175
|
/** Physical CSS-pixel dash/gap lengths resolved from the source stroke. */
|
|
@@ -1068,6 +1180,7 @@ export type VectorShapeStyle = {
|
|
|
1068
1180
|
borders?: CellBorders;
|
|
1069
1181
|
lineEnds?: LineEnds;
|
|
1070
1182
|
textContent?: ShapeTextContent;
|
|
1183
|
+
textLayout?: ShapeTextLayout;
|
|
1071
1184
|
textAlign?: string;
|
|
1072
1185
|
textVerticalAlign?: 'top' | 'center' | 'bottom';
|
|
1073
1186
|
/** Legacy VML textbox text-flow semantics. */
|
|
@@ -1129,6 +1242,8 @@ export type DrawingBlockBase = {
|
|
|
1129
1242
|
drawingContent?: DrawingContentSnapshot;
|
|
1130
1243
|
attrs?: Record<string, unknown>;
|
|
1131
1244
|
sourceAnchor?: SourceAnchor;
|
|
1245
|
+
/** Visible fail-closed replacement metadata owned by the projection layer. */
|
|
1246
|
+
placeholder?: RenderPlaceholder;
|
|
1132
1247
|
};
|
|
1133
1248
|
/**
|
|
1134
1249
|
* Custom geometry path data extracted from a:custGeom/a:pathLst.
|
|
@@ -1150,6 +1265,7 @@ export type VectorShapeDrawing = DrawingBlockBase & {
|
|
|
1150
1265
|
shapeKind?: string;
|
|
1151
1266
|
customGeometry?: CustomGeometryData;
|
|
1152
1267
|
fillColor?: FillColor;
|
|
1268
|
+
imageFill?: ShapeImageFill;
|
|
1153
1269
|
strokeColor?: StrokeColor;
|
|
1154
1270
|
strokeWidth?: number;
|
|
1155
1271
|
strokeDashArray?: number[];
|
|
@@ -1158,6 +1274,7 @@ export type VectorShapeDrawing = DrawingBlockBase & {
|
|
|
1158
1274
|
lineEnds?: LineEnds;
|
|
1159
1275
|
effectExtent?: EffectExtent;
|
|
1160
1276
|
textContent?: ShapeTextContent;
|
|
1277
|
+
textLayout?: ShapeTextLayout;
|
|
1161
1278
|
textAlign?: string;
|
|
1162
1279
|
textVerticalAlign?: 'top' | 'center' | 'bottom';
|
|
1163
1280
|
textFlow?: 'horizontal' | 'vertical' | 'vertical-ideographic' | 'horizontal-ideographic' | 'bottom-to-top';
|
|
@@ -1176,6 +1293,7 @@ export type TextboxDrawing = DrawingBlockBase & {
|
|
|
1176
1293
|
shapeKind?: string;
|
|
1177
1294
|
customGeometry?: CustomGeometryData;
|
|
1178
1295
|
fillColor?: FillColor;
|
|
1296
|
+
imageFill?: ShapeImageFill;
|
|
1179
1297
|
strokeColor?: StrokeColor;
|
|
1180
1298
|
strokeWidth?: number;
|
|
1181
1299
|
strokeDashArray?: number[];
|
|
@@ -1184,6 +1302,7 @@ export type TextboxDrawing = DrawingBlockBase & {
|
|
|
1184
1302
|
lineEnds?: LineEnds;
|
|
1185
1303
|
effectExtent?: EffectExtent;
|
|
1186
1304
|
textContent?: ShapeTextContent;
|
|
1305
|
+
textLayout?: ShapeTextLayout;
|
|
1187
1306
|
textAlign?: string;
|
|
1188
1307
|
textVerticalAlign?: 'top' | 'center' | 'bottom';
|
|
1189
1308
|
textFlow?: 'horizontal' | 'vertical' | 'vertical-ideographic' | 'horizontal-ideographic' | 'bottom-to-top';
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { ChartModel, DrawingGeometry } from '../../../contracts/src/index.js';
|
|
1
|
+
import { ChartModel, DrawingGeometry, RenderPlaceholder } from '../../../contracts/src/index.js';
|
|
2
2
|
/**
|
|
3
3
|
* Create a chart element from a ChartDrawing block.
|
|
4
4
|
* Routes to the correct renderer based on chart type, with placeholder fallback.
|
|
5
5
|
*/
|
|
6
|
-
export declare function createChartElement(doc: Document, chartData: ChartModel | undefined, geometry: DrawingGeometry): HTMLElement;
|
|
6
|
+
export declare function createChartElement(doc: Document, chartData: ChartModel | undefined, geometry: DrawingGeometry, placeholder?: RenderPlaceholder): HTMLElement;
|
|
7
7
|
/**
|
|
8
8
|
* Create a placeholder for charts with missing data or unsupported types.
|
|
9
9
|
* Preserves layout dimensions and is print-visible.
|
|
10
10
|
*/
|
|
11
|
-
export declare function createChartPlaceholder(doc: Document, container: HTMLElement, label: string): HTMLElement;
|
|
11
|
+
export declare function createChartPlaceholder(doc: Document, container: HTMLElement, label: string, placeholder?: RenderPlaceholder): HTMLElement;
|
|
12
12
|
/** Format a numeric tick value for chart axis labels. */
|
|
13
13
|
export declare function formatTickValue(value: number): string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RenderPlaceholder } from '../../../../contracts/src/index.js';
|
|
2
|
+
export type CreateRenderPlaceholderOptions = {
|
|
3
|
+
doc: Document;
|
|
4
|
+
placeholder: RenderPlaceholder;
|
|
5
|
+
};
|
|
6
|
+
/** Stamp the shared diagnostic and accessibility contract on a placeholder. */
|
|
7
|
+
export declare const applyRenderPlaceholderSemantics: (element: HTMLElement, placeholder: RenderPlaceholder) => void;
|
|
8
|
+
/**
|
|
9
|
+
* Paint an observable, print-visible replacement for content that the
|
|
10
|
+
* projection layer deliberately kept fail-closed.
|
|
11
|
+
*/
|
|
12
|
+
export declare const createRenderPlaceholder: ({ doc, placeholder }: CreateRenderPlaceholderOptions) => HTMLSpanElement;
|
|
@@ -261,6 +261,7 @@ export declare class DomPainter {
|
|
|
261
261
|
private totalPages;
|
|
262
262
|
private sectionPageCounts;
|
|
263
263
|
private linkIdCounter;
|
|
264
|
+
private shapeImageFillCounter;
|
|
264
265
|
private sdtLabelsRendered;
|
|
265
266
|
/**
|
|
266
267
|
* WeakMap storing tooltip data for hyperlink elements before DOM insertion.
|
|
@@ -528,6 +529,10 @@ export declare class DomPainter {
|
|
|
528
529
|
* magnitude. Keep geometry scalable and paint the resolved width verbatim.
|
|
529
530
|
*/
|
|
530
531
|
private applyPhysicalStrokeSemantics;
|
|
532
|
+
/** Paint a DrawingML picture fill through the existing SVG geometry. */
|
|
533
|
+
private applyShapeImageFill;
|
|
534
|
+
private appendShapeFillImage;
|
|
535
|
+
private resolveShapeTileOrigin;
|
|
531
536
|
private hasShapeTextContent;
|
|
532
537
|
private createShapeTextElement;
|
|
533
538
|
private createTextboxContentElement;
|
|
@@ -548,6 +553,7 @@ export declare class DomPainter {
|
|
|
548
553
|
* @param _groupScaleY - Reserved parent-group scale factor
|
|
549
554
|
*/
|
|
550
555
|
private createFallbackTextElement;
|
|
556
|
+
private shapeTextAllowsOverflow;
|
|
551
557
|
private applyShapeTextFlow;
|
|
552
558
|
private tryCreatePresetSvg;
|
|
553
559
|
/**
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TextEffects } from '../../../../contracts/src/index.js';
|
|
2
|
+
type TextInkBounds = {
|
|
3
|
+
left: number;
|
|
4
|
+
top: number;
|
|
5
|
+
right: number;
|
|
6
|
+
bottom: number;
|
|
7
|
+
};
|
|
8
|
+
export declare function resolveTextReflectionTransform(reflection: NonNullable<TextEffects['reflection']>, ink: TextInkBounds): {
|
|
9
|
+
transform: string;
|
|
10
|
+
maskDirection: 'top' | 'bottom' | 'left' | 'right';
|
|
11
|
+
};
|
|
12
|
+
/** Apply paint-only Word text effects without changing glyph metrics. */
|
|
13
|
+
export declare function applyTextEffects(element: HTMLElement, effects: TextEffects | undefined): void;
|
|
14
|
+
export {};
|
package/dist/style.css
CHANGED
|
@@ -1770,11 +1770,11 @@ img[data-v-c95b2073] {
|
|
|
1770
1770
|
pointer-events: auto;
|
|
1771
1771
|
}
|
|
1772
1772
|
|
|
1773
|
-
.superdoc[data-v-
|
|
1773
|
+
.superdoc[data-v-dfc988f2] {
|
|
1774
1774
|
display: flex;
|
|
1775
1775
|
position: relative;
|
|
1776
1776
|
}
|
|
1777
|
-
.sd-visually-hidden[data-v-
|
|
1777
|
+
.sd-visually-hidden[data-v-dfc988f2] {
|
|
1778
1778
|
position: absolute;
|
|
1779
1779
|
width: 1px;
|
|
1780
1780
|
height: 1px;
|
|
@@ -1785,30 +1785,30 @@ img[data-v-c95b2073] {
|
|
|
1785
1785
|
white-space: nowrap;
|
|
1786
1786
|
border: 0;
|
|
1787
1787
|
}
|
|
1788
|
-
.right-sidebar[data-v-
|
|
1788
|
+
.right-sidebar[data-v-dfc988f2] {
|
|
1789
1789
|
min-width: 320px;
|
|
1790
1790
|
height: 100%;
|
|
1791
1791
|
}
|
|
1792
|
-
.floating-comments[data-v-
|
|
1792
|
+
.floating-comments[data-v-dfc988f2] {
|
|
1793
1793
|
min-width: 300px;
|
|
1794
1794
|
width: 300px;
|
|
1795
1795
|
height: 100%;
|
|
1796
1796
|
overflow: visible;
|
|
1797
1797
|
}
|
|
1798
|
-
.superdoc__layers[data-v-
|
|
1798
|
+
.superdoc__layers[data-v-dfc988f2] {
|
|
1799
1799
|
height: 100%;
|
|
1800
1800
|
position: relative;
|
|
1801
1801
|
box-sizing: border-box;
|
|
1802
1802
|
}
|
|
1803
|
-
.superdoc__document[data-v-
|
|
1803
|
+
.superdoc__document[data-v-dfc988f2] {
|
|
1804
1804
|
width: 100%;
|
|
1805
1805
|
position: relative;
|
|
1806
1806
|
}
|
|
1807
|
-
.superdoc__sub-document[data-v-
|
|
1807
|
+
.superdoc__sub-document[data-v-dfc988f2] {
|
|
1808
1808
|
width: 100%;
|
|
1809
1809
|
position: relative;
|
|
1810
1810
|
}
|
|
1811
|
-
.superdoc__selection-layer[data-v-
|
|
1811
|
+
.superdoc__selection-layer[data-v-dfc988f2] {
|
|
1812
1812
|
position: absolute;
|
|
1813
1813
|
min-width: 100%;
|
|
1814
1814
|
min-height: 100%;
|
|
@@ -1819,13 +1819,13 @@ img[data-v-c95b2073] {
|
|
|
1819
1819
|
/* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
|
|
1820
1820
|
the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
|
|
1821
1821
|
clickable, and below the selection layer (z-index 10). */
|
|
1822
|
-
.superdoc__whiteboard-layer[data-v-
|
|
1822
|
+
.superdoc__whiteboard-layer[data-v-dfc988f2] {
|
|
1823
1823
|
z-index: 4;
|
|
1824
1824
|
}
|
|
1825
|
-
.superdoc__temp-selection[data-v-
|
|
1825
|
+
.superdoc__temp-selection[data-v-dfc988f2] {
|
|
1826
1826
|
position: absolute;
|
|
1827
1827
|
}
|
|
1828
|
-
.superdoc__right-sidebar[data-v-
|
|
1828
|
+
.superdoc__right-sidebar[data-v-dfc988f2] {
|
|
1829
1829
|
width: 320px;
|
|
1830
1830
|
min-width: 320px;
|
|
1831
1831
|
padding: 0 10px;
|
|
@@ -1833,7 +1833,7 @@ img[data-v-c95b2073] {
|
|
|
1833
1833
|
position: relative;
|
|
1834
1834
|
z-index: 2;
|
|
1835
1835
|
}
|
|
1836
|
-
.superdoc__compact-comment-popover[data-v-
|
|
1836
|
+
.superdoc__compact-comment-popover[data-v-dfc988f2] {
|
|
1837
1837
|
position: absolute;
|
|
1838
1838
|
top: 12px;
|
|
1839
1839
|
right: 12px;
|
|
@@ -1842,14 +1842,14 @@ img[data-v-c95b2073] {
|
|
|
1842
1842
|
}
|
|
1843
1843
|
|
|
1844
1844
|
/* Tools styles */
|
|
1845
|
-
.tools[data-v-
|
|
1845
|
+
.tools[data-v-dfc988f2] {
|
|
1846
1846
|
position: absolute;
|
|
1847
1847
|
z-index: 3;
|
|
1848
1848
|
display: flex;
|
|
1849
1849
|
flex-direction: column;
|
|
1850
1850
|
gap: var(--sd-ui-tools-gap, 6px);
|
|
1851
1851
|
}
|
|
1852
|
-
.tools-item[data-v-
|
|
1852
|
+
.tools-item[data-v-dfc988f2] {
|
|
1853
1853
|
display: flex;
|
|
1854
1854
|
align-items: center;
|
|
1855
1855
|
justify-content: center;
|
|
@@ -1860,10 +1860,10 @@ img[data-v-c95b2073] {
|
|
|
1860
1860
|
cursor: pointer;
|
|
1861
1861
|
position: relative;
|
|
1862
1862
|
}
|
|
1863
|
-
.tools-item i[data-v-
|
|
1863
|
+
.tools-item i[data-v-dfc988f2] {
|
|
1864
1864
|
cursor: pointer;
|
|
1865
1865
|
}
|
|
1866
|
-
.superdoc__tools-icon[data-v-
|
|
1866
|
+
.superdoc__tools-icon[data-v-dfc988f2] {
|
|
1867
1867
|
width: var(--sd-ui-tools-icon-size, 20px);
|
|
1868
1868
|
height: var(--sd-ui-tools-icon-size, 20px);
|
|
1869
1869
|
flex-shrink: 0;
|
|
@@ -1878,22 +1878,22 @@ img[data-v-c95b2073] {
|
|
|
1878
1878
|
|
|
1879
1879
|
/* 834px is iPad screen size in portrait orientation */
|
|
1880
1880
|
@media (max-width: 834px) {
|
|
1881
|
-
.superdoc .superdoc__layers[data-v-
|
|
1881
|
+
.superdoc .superdoc__layers[data-v-dfc988f2] {
|
|
1882
1882
|
margin: 0;
|
|
1883
1883
|
border: 0 !important;
|
|
1884
1884
|
box-shadow: none;
|
|
1885
1885
|
}
|
|
1886
|
-
.superdoc__sub-document[data-v-
|
|
1886
|
+
.superdoc__sub-document[data-v-dfc988f2] {
|
|
1887
1887
|
max-width: 100%;
|
|
1888
1888
|
}
|
|
1889
|
-
.superdoc__right-sidebar[data-v-
|
|
1889
|
+
.superdoc__right-sidebar[data-v-dfc988f2] {
|
|
1890
1890
|
padding: 10px;
|
|
1891
1891
|
position: relative;
|
|
1892
1892
|
}
|
|
1893
1893
|
}
|
|
1894
1894
|
|
|
1895
1895
|
/* AI Writer styles */
|
|
1896
|
-
.ai-writer-container[data-v-
|
|
1896
|
+
.ai-writer-container[data-v-dfc988f2] {
|
|
1897
1897
|
position: fixed;
|
|
1898
1898
|
z-index: 1000;
|
|
1899
1899
|
background: white;
|
|
@@ -1909,10 +1909,10 @@ img[data-v-c95b2073] {
|
|
|
1909
1909
|
transform: translateY(-50%);
|
|
1910
1910
|
z-index: 50;
|
|
1911
1911
|
} */
|
|
1912
|
-
.ai-tool > svg[data-v-
|
|
1912
|
+
.ai-tool > svg[data-v-dfc988f2] {
|
|
1913
1913
|
fill: transparent;
|
|
1914
1914
|
}
|
|
1915
|
-
.ai-tool[data-v-
|
|
1915
|
+
.ai-tool[data-v-dfc988f2]::before {
|
|
1916
1916
|
content: '';
|
|
1917
1917
|
position: absolute;
|
|
1918
1918
|
width: 20px;
|
|
@@ -1933,7 +1933,7 @@ img[data-v-c95b2073] {
|
|
|
1933
1933
|
filter: brightness(1.2);
|
|
1934
1934
|
transition: filter 0.2s ease;
|
|
1935
1935
|
}
|
|
1936
|
-
.ai-tool[data-v-
|
|
1936
|
+
.ai-tool[data-v-dfc988f2]:hover::before {
|
|
1937
1937
|
filter: brightness(1.3);
|
|
1938
1938
|
}
|
|
1939
1939
|
|
package/dist/style.layered.css
CHANGED
|
@@ -1770,11 +1770,11 @@ img[data-v-c95b2073] {
|
|
|
1770
1770
|
pointer-events: auto;
|
|
1771
1771
|
}
|
|
1772
1772
|
|
|
1773
|
-
.superdoc[data-v-
|
|
1773
|
+
.superdoc[data-v-dfc988f2] {
|
|
1774
1774
|
display: flex;
|
|
1775
1775
|
position: relative;
|
|
1776
1776
|
}
|
|
1777
|
-
.sd-visually-hidden[data-v-
|
|
1777
|
+
.sd-visually-hidden[data-v-dfc988f2] {
|
|
1778
1778
|
position: absolute;
|
|
1779
1779
|
width: 1px;
|
|
1780
1780
|
height: 1px;
|
|
@@ -1785,30 +1785,30 @@ img[data-v-c95b2073] {
|
|
|
1785
1785
|
white-space: nowrap;
|
|
1786
1786
|
border: 0;
|
|
1787
1787
|
}
|
|
1788
|
-
.right-sidebar[data-v-
|
|
1788
|
+
.right-sidebar[data-v-dfc988f2] {
|
|
1789
1789
|
min-width: 320px;
|
|
1790
1790
|
height: 100%;
|
|
1791
1791
|
}
|
|
1792
|
-
.floating-comments[data-v-
|
|
1792
|
+
.floating-comments[data-v-dfc988f2] {
|
|
1793
1793
|
min-width: 300px;
|
|
1794
1794
|
width: 300px;
|
|
1795
1795
|
height: 100%;
|
|
1796
1796
|
overflow: visible;
|
|
1797
1797
|
}
|
|
1798
|
-
.superdoc__layers[data-v-
|
|
1798
|
+
.superdoc__layers[data-v-dfc988f2] {
|
|
1799
1799
|
height: 100%;
|
|
1800
1800
|
position: relative;
|
|
1801
1801
|
box-sizing: border-box;
|
|
1802
1802
|
}
|
|
1803
|
-
.superdoc__document[data-v-
|
|
1803
|
+
.superdoc__document[data-v-dfc988f2] {
|
|
1804
1804
|
width: 100%;
|
|
1805
1805
|
position: relative;
|
|
1806
1806
|
}
|
|
1807
|
-
.superdoc__sub-document[data-v-
|
|
1807
|
+
.superdoc__sub-document[data-v-dfc988f2] {
|
|
1808
1808
|
width: 100%;
|
|
1809
1809
|
position: relative;
|
|
1810
1810
|
}
|
|
1811
|
-
.superdoc__selection-layer[data-v-
|
|
1811
|
+
.superdoc__selection-layer[data-v-dfc988f2] {
|
|
1812
1812
|
position: absolute;
|
|
1813
1813
|
min-width: 100%;
|
|
1814
1814
|
min-height: 100%;
|
|
@@ -1819,13 +1819,13 @@ img[data-v-c95b2073] {
|
|
|
1819
1819
|
/* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
|
|
1820
1820
|
the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
|
|
1821
1821
|
clickable, and below the selection layer (z-index 10). */
|
|
1822
|
-
.superdoc__whiteboard-layer[data-v-
|
|
1822
|
+
.superdoc__whiteboard-layer[data-v-dfc988f2] {
|
|
1823
1823
|
z-index: 4;
|
|
1824
1824
|
}
|
|
1825
|
-
.superdoc__temp-selection[data-v-
|
|
1825
|
+
.superdoc__temp-selection[data-v-dfc988f2] {
|
|
1826
1826
|
position: absolute;
|
|
1827
1827
|
}
|
|
1828
|
-
.superdoc__right-sidebar[data-v-
|
|
1828
|
+
.superdoc__right-sidebar[data-v-dfc988f2] {
|
|
1829
1829
|
width: 320px;
|
|
1830
1830
|
min-width: 320px;
|
|
1831
1831
|
padding: 0 10px;
|
|
@@ -1833,7 +1833,7 @@ img[data-v-c95b2073] {
|
|
|
1833
1833
|
position: relative;
|
|
1834
1834
|
z-index: 2;
|
|
1835
1835
|
}
|
|
1836
|
-
.superdoc__compact-comment-popover[data-v-
|
|
1836
|
+
.superdoc__compact-comment-popover[data-v-dfc988f2] {
|
|
1837
1837
|
position: absolute;
|
|
1838
1838
|
top: 12px;
|
|
1839
1839
|
right: 12px;
|
|
@@ -1842,14 +1842,14 @@ img[data-v-c95b2073] {
|
|
|
1842
1842
|
}
|
|
1843
1843
|
|
|
1844
1844
|
/* Tools styles */
|
|
1845
|
-
.tools[data-v-
|
|
1845
|
+
.tools[data-v-dfc988f2] {
|
|
1846
1846
|
position: absolute;
|
|
1847
1847
|
z-index: 3;
|
|
1848
1848
|
display: flex;
|
|
1849
1849
|
flex-direction: column;
|
|
1850
1850
|
gap: var(--sd-ui-tools-gap, 6px);
|
|
1851
1851
|
}
|
|
1852
|
-
.tools-item[data-v-
|
|
1852
|
+
.tools-item[data-v-dfc988f2] {
|
|
1853
1853
|
display: flex;
|
|
1854
1854
|
align-items: center;
|
|
1855
1855
|
justify-content: center;
|
|
@@ -1860,10 +1860,10 @@ img[data-v-c95b2073] {
|
|
|
1860
1860
|
cursor: pointer;
|
|
1861
1861
|
position: relative;
|
|
1862
1862
|
}
|
|
1863
|
-
.tools-item i[data-v-
|
|
1863
|
+
.tools-item i[data-v-dfc988f2] {
|
|
1864
1864
|
cursor: pointer;
|
|
1865
1865
|
}
|
|
1866
|
-
.superdoc__tools-icon[data-v-
|
|
1866
|
+
.superdoc__tools-icon[data-v-dfc988f2] {
|
|
1867
1867
|
width: var(--sd-ui-tools-icon-size, 20px);
|
|
1868
1868
|
height: var(--sd-ui-tools-icon-size, 20px);
|
|
1869
1869
|
flex-shrink: 0;
|
|
@@ -1878,22 +1878,22 @@ img[data-v-c95b2073] {
|
|
|
1878
1878
|
|
|
1879
1879
|
/* 834px is iPad screen size in portrait orientation */
|
|
1880
1880
|
@media (max-width: 834px) {
|
|
1881
|
-
.superdoc .superdoc__layers[data-v-
|
|
1881
|
+
.superdoc .superdoc__layers[data-v-dfc988f2] {
|
|
1882
1882
|
margin: 0;
|
|
1883
1883
|
border: 0 !important;
|
|
1884
1884
|
box-shadow: none;
|
|
1885
1885
|
}
|
|
1886
|
-
.superdoc__sub-document[data-v-
|
|
1886
|
+
.superdoc__sub-document[data-v-dfc988f2] {
|
|
1887
1887
|
max-width: 100%;
|
|
1888
1888
|
}
|
|
1889
|
-
.superdoc__right-sidebar[data-v-
|
|
1889
|
+
.superdoc__right-sidebar[data-v-dfc988f2] {
|
|
1890
1890
|
padding: 10px;
|
|
1891
1891
|
position: relative;
|
|
1892
1892
|
}
|
|
1893
1893
|
}
|
|
1894
1894
|
|
|
1895
1895
|
/* AI Writer styles */
|
|
1896
|
-
.ai-writer-container[data-v-
|
|
1896
|
+
.ai-writer-container[data-v-dfc988f2] {
|
|
1897
1897
|
position: fixed;
|
|
1898
1898
|
z-index: 1000;
|
|
1899
1899
|
background: white;
|
|
@@ -1909,10 +1909,10 @@ img[data-v-c95b2073] {
|
|
|
1909
1909
|
transform: translateY(-50%);
|
|
1910
1910
|
z-index: 50;
|
|
1911
1911
|
} */
|
|
1912
|
-
.ai-tool > svg[data-v-
|
|
1912
|
+
.ai-tool > svg[data-v-dfc988f2] {
|
|
1913
1913
|
fill: transparent;
|
|
1914
1914
|
}
|
|
1915
|
-
.ai-tool[data-v-
|
|
1915
|
+
.ai-tool[data-v-dfc988f2]::before {
|
|
1916
1916
|
content: '';
|
|
1917
1917
|
position: absolute;
|
|
1918
1918
|
width: 20px;
|
|
@@ -1933,7 +1933,7 @@ img[data-v-c95b2073] {
|
|
|
1933
1933
|
filter: brightness(1.2);
|
|
1934
1934
|
transition: filter 0.2s ease;
|
|
1935
1935
|
}
|
|
1936
|
-
.ai-tool[data-v-
|
|
1936
|
+
.ai-tool[data-v-dfc988f2]:hover::before {
|
|
1937
1937
|
filter: brightness(1.3);
|
|
1938
1938
|
}
|
|
1939
1939
|
|
package/dist/superdoc.cjs
CHANGED
|
@@ -21793,6 +21793,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
|
|
|
21793
21793
|
handleImageUpload: proxy.$superdoc.config.handleImageUpload,
|
|
21794
21794
|
externalExtensions: proxy.$superdoc.config.editorExtensions || [],
|
|
21795
21795
|
extensions: proxy.$superdoc.config.extensions || [],
|
|
21796
|
+
...pdfConfig?.pdfLib ? { pdfLib: pdfConfig.pdfLib } : {},
|
|
21796
21797
|
suppressDefaultDocxStyles: proxy.$superdoc.config.suppressDefaultDocxStyles,
|
|
21797
21798
|
disableContextMenu: !proxy.$superdoc.uiConfig.contextMenu.enabled || proxy.$superdoc.config.disableContextMenu === true,
|
|
21798
21799
|
jsonOverride: proxy.$superdoc.config.jsonOverride,
|
|
@@ -22782,7 +22783,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
|
|
|
22782
22783
|
], 38);
|
|
22783
22784
|
};
|
|
22784
22785
|
}
|
|
22785
|
-
}, [["__scopeId", "data-v-
|
|
22786
|
+
}, [["__scopeId", "data-v-dfc988f2"]]);
|
|
22786
22787
|
//#endregion
|
|
22787
22788
|
//#region src/core/create-app.js
|
|
22788
22789
|
var PINIA_DEVTOOLS_SETUP_EVENT = "devtools-plugin:setup";
|
|
@@ -43261,7 +43262,7 @@ var SuperDoc = class extends require_eventemitter3.import_eventemitter3.default
|
|
|
43261
43262
|
this.config.colors = shuffleArray(this.config.colors);
|
|
43262
43263
|
this.userColorMap = /* @__PURE__ */ new Map();
|
|
43263
43264
|
this.colorIndex = 0;
|
|
43264
|
-
this.version = "2.4.0-next.
|
|
43265
|
+
this.version = "2.4.0-next.64";
|
|
43265
43266
|
this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
|
|
43266
43267
|
this.superdocId = config.superdocId || require_uuid.v4();
|
|
43267
43268
|
this.colors = this.config.colors ?? [];
|
package/dist/superdoc.es.js
CHANGED
|
@@ -21753,6 +21753,7 @@ var SuperDoc_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
|
|
|
21753
21753
|
handleImageUpload: proxy.$superdoc.config.handleImageUpload,
|
|
21754
21754
|
externalExtensions: proxy.$superdoc.config.editorExtensions || [],
|
|
21755
21755
|
extensions: proxy.$superdoc.config.extensions || [],
|
|
21756
|
+
...pdfConfig?.pdfLib ? { pdfLib: pdfConfig.pdfLib } : {},
|
|
21756
21757
|
suppressDefaultDocxStyles: proxy.$superdoc.config.suppressDefaultDocxStyles,
|
|
21757
21758
|
disableContextMenu: !proxy.$superdoc.uiConfig.contextMenu.enabled || proxy.$superdoc.config.disableContextMenu === true,
|
|
21758
21759
|
jsonOverride: proxy.$superdoc.config.jsonOverride,
|
|
@@ -22742,7 +22743,7 @@ var SuperDoc_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
|
|
|
22742
22743
|
], 38);
|
|
22743
22744
|
};
|
|
22744
22745
|
}
|
|
22745
|
-
}, [["__scopeId", "data-v-
|
|
22746
|
+
}, [["__scopeId", "data-v-dfc988f2"]]);
|
|
22746
22747
|
//#endregion
|
|
22747
22748
|
//#region src/core/create-app.js
|
|
22748
22749
|
var PINIA_DEVTOOLS_SETUP_EVENT = "devtools-plugin:setup";
|
|
@@ -43194,7 +43195,7 @@ var SuperDoc = class extends import_eventemitter3.default {
|
|
|
43194
43195
|
this.config.colors = shuffleArray(this.config.colors);
|
|
43195
43196
|
this.userColorMap = /* @__PURE__ */ new Map();
|
|
43196
43197
|
this.colorIndex = 0;
|
|
43197
|
-
this.version = "2.4.0-next.
|
|
43198
|
+
this.version = "2.4.0-next.64";
|
|
43198
43199
|
this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
|
|
43199
43200
|
this.superdocId = config.superdocId || v4();
|
|
43200
43201
|
this.colors = this.config.colors ?? [];
|