oasis-editor 0.0.113 → 0.0.115

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 (31) hide show
  1. package/dist/{OasisEditorApp-BKPrQtm5.js → OasisEditorApp-C1dyjJoH.js} +903 -1161
  2. package/dist/assets/{importDocxWorker-Bz2kZOBO.js → importDocxWorker-D0F0jbcF.js} +1 -1
  3. package/dist/core/decorationGeometry.d.ts +10 -0
  4. package/dist/core/gradientAxis.d.ts +11 -0
  5. package/dist/core/textStyleMappings.d.ts +4 -0
  6. package/dist/export/pdf/draw/drawFragment.d.ts +4 -4
  7. package/dist/export/pdf/draw/fragment/pdfColor.d.ts +1 -0
  8. package/dist/export/pdf/draw/fragment/pdfEmphasisAndTabLeaders.d.ts +5 -0
  9. package/dist/export/pdf/draw/fragment/pdfGradient.d.ts +4 -0
  10. package/dist/export/pdf/draw/fragment/pdfRunBackground.d.ts +12 -0
  11. package/dist/export/pdf/draw/fragment/pdfTextChunks.d.ts +25 -0
  12. package/dist/export/pdf/draw/fragment/pdfTextDecoration.d.ts +4 -0
  13. package/dist/{index-DSDwe-yy.js → index-Cq3YFYX2.js} +1007 -1001
  14. package/dist/oasis-editor.js +50 -50
  15. package/dist/oasis-editor.umd.cjs +4 -4
  16. package/dist/text/fonts/opentype/otLayoutCommon.d.ts +6 -0
  17. package/dist/ui/canvas/CanvasTableLayout.d.ts +12 -63
  18. package/dist/ui/canvas/canvasBorders.d.ts +1 -0
  19. package/dist/ui/canvas/canvasParagraphPainter.d.ts +4 -22
  20. package/dist/ui/canvas/paragraph/canvasEmphasis.d.ts +3 -0
  21. package/dist/ui/canvas/paragraph/canvasInlineImage.d.ts +26 -0
  22. package/dist/ui/canvas/paragraph/canvasRunBackground.d.ts +13 -0
  23. package/dist/ui/canvas/paragraph/canvasTabLeaders.d.ts +4 -0
  24. package/dist/ui/canvas/paragraph/canvasTextDecoration.d.ts +4 -0
  25. package/dist/ui/canvas/paragraph/canvasTextEffects.d.ts +43 -0
  26. package/dist/ui/canvas/table/assembleCellEntries.d.ts +15 -0
  27. package/dist/ui/canvas/table/prepareCells.d.ts +53 -0
  28. package/dist/ui/canvas/table/resolveRowHeights.d.ts +9 -0
  29. package/dist/ui/canvas/table/tableCellGeometry.d.ts +37 -0
  30. package/dist/ui/canvas/table/types.d.ts +63 -0
  31. package/package.json +1 -1
@@ -0,0 +1,10 @@
1
+ /** Half-spacing between the two lines of a double-strikethrough, in px. */
2
+ export declare const DOUBLE_STRIKE_OFFSET_PX = 1.3;
3
+ /** Half-spacing between the two lines of a double-underline, in px. */
4
+ export declare const DOUBLE_UNDERLINE_OFFSET_PX = 1.5;
5
+ /**
6
+ * Resolves the Y coordinate of the decoration line for a given kind, relative
7
+ * to the page/canvas origin. Shared between the Canvas and PDF renderers so
8
+ * both produce the same geometry.
9
+ */
10
+ export declare function resolveDecorationLineY(kind: "underline" | "strike" | "doubleStrike", lineTop: number, lineHeight: number): number;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Resolves the start/end endpoints of a linear gradient axis centered on the
3
+ * given bounding box and rotated by `angleDeg` degrees. Both the Canvas and
4
+ * PDF renderers use the same axis so gradients look identical across outputs.
5
+ */
6
+ export declare function resolveGradientAxis(boxX0: number, boxY0: number, boxX1: number, boxY1: number, angleDeg: number): {
7
+ x0: number;
8
+ y0: number;
9
+ x1: number;
10
+ y1: number;
11
+ };
@@ -4,6 +4,8 @@ export type UnderlineStyle = EditorTextStyle["underlineStyle"];
4
4
  export declare function underlineStyleToCssDecorationStyle(underlineStyle: UnderlineStyle): string | null;
5
5
  export declare function isDoubleUnderlineStyle(underlineStyle: UnderlineStyle): boolean;
6
6
  export declare function isWavyUnderlineStyle(underlineStyle: UnderlineStyle): boolean;
7
+ export declare const WAVY_UNDERLINE_AMPLITUDE_PX = 1.5;
8
+ export declare const WAVY_UNDERLINE_WAVELENGTH_PX = 4;
7
9
  export declare function underlineStyleLineWidthPx(underlineStyle: UnderlineStyle): number;
8
10
  /**
9
11
  * Resolves the OpenType feature tags a run explicitly enables, mirroring the CSS
@@ -17,4 +19,6 @@ export declare function underlineStyleLineWidthPx(underlineStyle: UnderlineStyle
17
19
  * tags alone.
18
20
  */
19
21
  export declare function resolveOpenTypeFeatureTags(style: EditorTextStyle, fontSizePt?: number): string[];
22
+ /** Glyph used to render each `w:em` emphasis-mark variant, shared by Canvas and PDF renderers. */
23
+ export declare const EMPHASIS_GLYPH: Record<string, string>;
20
24
  export declare function underlineStyleDashArray(underlineStyle: UnderlineStyle): number[] | undefined;
@@ -2,7 +2,11 @@ import { EditorDocument, EditorLayoutFragment, EditorLayoutLine, EditorParagraph
2
2
  import { PdfFontRegistry } from '../fonts/PdfFontRegistry.js';
3
3
  import { BlockDrawers } from './blockDrawers.js';
4
4
  import { OasisPdfWriter } from '../OasisPdfWriter.js';
5
+ import { drawFragmentHighlight, drawFragmentShading, drawFragmentBorder } from './fragment/pdfRunBackground.js';
6
+ import { drawFragmentEmphasis } from './fragment/pdfEmphasisAndTabLeaders.js';
5
7
 
8
+ export { drawFragmentHighlight, drawFragmentShading, drawFragmentBorder };
9
+ export { drawFragmentEmphasis };
6
10
  export declare function drawFloatingImagesForParagraph(options: {
7
11
  writer: OasisPdfWriter;
8
12
  pageIndex: number;
@@ -15,9 +19,5 @@ export declare function drawFloatingImagesForParagraph(options: {
15
19
  paragraphTop: number;
16
20
  layer: "behind" | "front";
17
21
  }): Promise<void>;
18
- export declare function drawFragmentHighlight(writer: OasisPdfWriter, pageIndex: number, line: EditorLayoutLine, fragment: EditorLayoutFragment, originX: number, originY: number, styles: Required<EditorTextStyle>): void;
19
- export declare function drawFragmentShading(writer: OasisPdfWriter, pageIndex: number, line: EditorLayoutLine, fragment: EditorLayoutFragment, originX: number, originY: number, styles: Required<EditorTextStyle>): void;
20
- export declare function drawFragmentBorder(writer: OasisPdfWriter, pageIndex: number, line: EditorLayoutLine, fragment: EditorLayoutFragment, originX: number, originY: number, styles: Required<EditorTextStyle>): void;
21
- export declare function drawFragmentEmphasis(writer: OasisPdfWriter, pageIndex: number, line: EditorLayoutLine, fragment: EditorLayoutFragment, originX: number, originY: number, styles: Required<EditorTextStyle>): void;
22
22
  export declare function drawFragmentDecoration(writer: OasisPdfWriter, pageIndex: number, line: EditorLayoutLine, fragment: EditorLayoutFragment, originX: number, originY: number, styles: Required<EditorTextStyle>, kind: "underline" | "strike" | "doubleStrike"): void;
23
23
  export declare function drawFragmentText(writer: OasisPdfWriter, pageIndex: number, paragraph: EditorParagraphNode, line: EditorLayoutLine, fragment: EditorLayoutFragment, document: EditorDocument, originX: number, originY: number, fontRegistry: PdfFontRegistry, drawers: BlockDrawers): Promise<void>;
@@ -0,0 +1 @@
1
+ export declare function blendColorWithWhite(hex: string, alpha: number): string;
@@ -0,0 +1,5 @@
1
+ import { EditorDocument, EditorLayoutFragment, EditorLayoutLine, EditorParagraphNode, EditorTextStyle } from '../../../../core/model.js';
2
+ import { OasisPdfWriter } from '../../OasisPdfWriter.js';
3
+
4
+ export declare function drawFragmentEmphasis(writer: OasisPdfWriter, pageIndex: number, line: EditorLayoutLine, fragment: EditorLayoutFragment, originX: number, originY: number, styles: Required<EditorTextStyle>): void;
5
+ export declare function drawTabLeaders(writer: OasisPdfWriter, pageIndex: number, paragraph: EditorParagraphNode, line: EditorLayoutLine, fragment: EditorLayoutFragment, document: EditorDocument, originX: number, baselineY: number, color: string): void;
@@ -0,0 +1,4 @@
1
+ import { EditorLayoutFragment, EditorLayoutLine, EditorTextStyle } from '../../../../core/model.js';
2
+ import { OasisPdfWriter } from '../../OasisPdfWriter.js';
3
+
4
+ export declare function resolveGradientShadingName(writer: OasisPdfWriter, pageIndex: number, line: EditorLayoutLine, fragment: EditorLayoutFragment, originX: number, originY: number, styles: Required<EditorTextStyle>): string | undefined;
@@ -0,0 +1,12 @@
1
+ import { EditorLayoutFragment, EditorLayoutLine, EditorTextStyle } from '../../../../core/model.js';
2
+ import { OasisPdfWriter } from '../../OasisPdfWriter.js';
3
+
4
+ export declare function fragmentRectPt(line: EditorLayoutLine, fragment: EditorLayoutFragment, styles: Required<EditorTextStyle>, originX: number, originY: number, yOffset: number, heightShrink: number): {
5
+ x: number;
6
+ y: number;
7
+ width: number;
8
+ height: number;
9
+ } | null;
10
+ export declare function drawFragmentHighlight(writer: OasisPdfWriter, pageIndex: number, line: EditorLayoutLine, fragment: EditorLayoutFragment, originX: number, originY: number, styles: Required<EditorTextStyle>): void;
11
+ export declare function drawFragmentShading(writer: OasisPdfWriter, pageIndex: number, line: EditorLayoutLine, fragment: EditorLayoutFragment, originX: number, originY: number, styles: Required<EditorTextStyle>): void;
12
+ export declare function drawFragmentBorder(writer: OasisPdfWriter, pageIndex: number, line: EditorLayoutLine, fragment: EditorLayoutFragment, originX: number, originY: number, styles: Required<EditorTextStyle>): void;
@@ -0,0 +1,25 @@
1
+ import { EditorTextStyle } from '../../../../core/model.js';
2
+ import { OasisPdfWriter } from '../../OasisPdfWriter.js';
3
+ import { FragmentSlot } from '../fragmentGeometry.js';
4
+
5
+ export interface TextChunkCtx {
6
+ writer: OasisPdfWriter;
7
+ pageIndex: number;
8
+ baselineY: number;
9
+ fontSizePt: number;
10
+ mainColor: string;
11
+ gradientShadingName: string | undefined;
12
+ styles: Required<EditorTextStyle>;
13
+ baseTextOptions: {
14
+ fontSize: number;
15
+ bold: boolean | undefined;
16
+ italic: boolean | undefined;
17
+ fontResourceName: string;
18
+ characterSpacing: number;
19
+ horizontalScale: number;
20
+ fontFeatures: string[];
21
+ };
22
+ }
23
+ export declare function emitTextChunk(ctx: TextChunkCtx, leftPx: number, text: string): void;
24
+ export declare function groupSlotChunksByWhitespace(chars: FragmentSlot[]): FragmentSlot[][];
25
+ export declare function groupSlotChunksByOffsetGaps(chars: FragmentSlot[]): FragmentSlot[][];
@@ -0,0 +1,4 @@
1
+ import { EditorTextStyle } from '../../../../core/model.js';
2
+ import { OasisPdfWriter } from '../../OasisPdfWriter.js';
3
+
4
+ export declare function drawUnderlineWithStyle(writer: OasisPdfWriter, pageIndex: number, x1: number, x2: number, y: number, stroke: string, underlineStyle: EditorTextStyle["underlineStyle"]): void;