oasis-editor 0.0.114 → 0.0.116

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 (51) hide show
  1. package/dist/{OasisEditorApp-XloOiKSu.js → OasisEditorApp-DY_N4M54.js} +424 -366
  2. package/dist/adapters/react.d.ts +11 -0
  3. package/dist/adapters/ui.d.ts +2 -0
  4. package/dist/adapters/vue.d.ts +23 -0
  5. package/dist/assets/{importDocxWorker-D0F0jbcF.js → importDocxWorker-nIS-zjkj.js} +1 -1
  6. package/dist/core/decorationGeometry.d.ts +10 -0
  7. package/dist/core/gradientAxis.d.ts +11 -0
  8. package/dist/core/html/inlineImageParser.d.ts +7 -0
  9. package/dist/core/layoutConstants.d.ts +18 -0
  10. package/dist/core/textStyleMappings.d.ts +2 -0
  11. package/dist/export/pdf/draw/drawFragment.d.ts +4 -4
  12. package/dist/export/pdf/draw/fragment/pdfColor.d.ts +1 -0
  13. package/dist/export/pdf/draw/fragment/pdfEmphasisAndTabLeaders.d.ts +5 -0
  14. package/dist/export/pdf/draw/fragment/pdfGradient.d.ts +4 -0
  15. package/dist/export/pdf/draw/fragment/pdfRunBackground.d.ts +12 -0
  16. package/dist/export/pdf/draw/fragment/pdfTextChunks.d.ts +25 -0
  17. package/dist/export/pdf/draw/fragment/pdfTextDecoration.d.ts +4 -0
  18. package/dist/{index-CwpzM--5.js → index-DLKF27_V.js} +1211 -1121
  19. package/dist/layoutProjection/blocksPaginationTypes.d.ts +2 -0
  20. package/dist/layoutProjection/headerFooterLayoutContext.d.ts +2 -0
  21. package/dist/layoutProjection/paginationTrack.d.ts +2 -0
  22. package/dist/layoutProjection/paragraphPagination.d.ts +8 -3
  23. package/dist/layoutProjection/sectionPagination.d.ts +3 -0
  24. package/dist/layoutProjection/tableRowSlicing.d.ts +2 -1
  25. package/dist/oasis-editor.js +55 -55
  26. package/dist/oasis-editor.umd.cjs +4 -4
  27. package/dist/react.d.ts +7 -8
  28. package/dist/react.js +18 -22
  29. package/dist/ui/canvas/CanvasTableLayout.d.ts +12 -63
  30. package/dist/ui/canvas/canvasParagraphPainter.d.ts +4 -22
  31. package/dist/ui/canvas/paragraph/canvasEmphasis.d.ts +3 -0
  32. package/dist/ui/canvas/paragraph/canvasInlineImage.d.ts +26 -0
  33. package/dist/ui/canvas/paragraph/canvasRunBackground.d.ts +13 -0
  34. package/dist/ui/canvas/paragraph/canvasTabLeaders.d.ts +4 -0
  35. package/dist/ui/canvas/paragraph/canvasTextDecoration.d.ts +4 -0
  36. package/dist/ui/canvas/paragraph/canvasTextEffects.d.ts +43 -0
  37. package/dist/ui/canvas/table/assembleCellEntries.d.ts +15 -0
  38. package/dist/ui/canvas/table/prepareCells.d.ts +53 -0
  39. package/dist/ui/canvas/table/resolveRowHeights.d.ts +9 -0
  40. package/dist/ui/canvas/table/tableCellGeometry.d.ts +37 -0
  41. package/dist/ui/canvas/table/types.d.ts +63 -0
  42. package/dist/ui/components/FindReplace/FindReplaceDialog.d.ts +1 -2
  43. package/dist/ui/components/Menubar/Menubar.d.ts +1 -2
  44. package/dist/ui/components/PageBreak.d.ts +1 -1
  45. package/dist/ui.d.ts +2 -42
  46. package/dist/ui.js +19 -18
  47. package/dist/utils/performanceMetrics.d.ts +0 -6
  48. package/dist/utils/round.d.ts +7 -0
  49. package/dist/vue.d.ts +22 -8
  50. package/dist/vue.js +18 -24
  51. package/package.json +9 -6
@@ -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
+ };
@@ -1,3 +1,10 @@
1
1
  import { EditorImageRunData } from '../model.js';
2
2
 
3
+ /**
4
+ * Conservative allowlist for image sources pulled in from pasted/imported HTML.
5
+ * Only inline `data:image/...` and app-controlled `blob:` URLs are accepted;
6
+ * remote schemes (`http(s):`, `javascript:`, …) are rejected so untrusted
7
+ * markup cannot smuggle external requests or unexpected payloads into a document.
8
+ */
9
+ export declare function isAllowedImageSrc(src: string): boolean;
3
10
  export declare function parseInlineImage(element: Element): EditorImageRunData | undefined;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Weight applied to the vertical distance when scoring caret/hit-test
3
+ * candidates: a closer line always wins over horizontal proximity. Used by the
4
+ * pagination caret search, the canvas hit-test service and caret geometry.
5
+ */
6
+ export declare const VERTICAL_HIT_WEIGHT = 1000;
7
+ /**
8
+ * Fraction of a line's height at which the text baseline sits (top + 80%).
9
+ * Shared by the canvas paragraph painter and the PDF text/list painters so the
10
+ * baseline can never drift between on-screen and exported rendering.
11
+ */
12
+ export declare const TEXT_BASELINE_RATIO = 0.8;
13
+ /**
14
+ * Effectively-unbounded width (in CSS px) used to measure content that must not
15
+ * wrap (e.g. table cell intrinsic widths). Single source for the value that was
16
+ * redefined in tablePagination, tableGeometry and the canvas cell prep.
17
+ */
18
+ export declare const NO_WRAP_MEASURE_WIDTH_PX = 100000;
@@ -19,4 +19,6 @@ export declare function underlineStyleLineWidthPx(underlineStyle: UnderlineStyle
19
19
  * tags alone.
20
20
  */
21
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>;
22
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;