@onodocs/canvas 0.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 (50) hide show
  1. package/LICENSE +10 -0
  2. package/LICENSING.md +33 -0
  3. package/README.md +229 -0
  4. package/SDK.md +229 -0
  5. package/index.js +2428 -0
  6. package/package.json +44 -0
  7. package/types/canvas/canvas-axis-aligned-transform.d.ts +12 -0
  8. package/types/canvas/canvas-effect-surface.d.ts +9 -0
  9. package/types/canvas/canvas-materializer.d.ts +9 -0
  10. package/types/canvas/canvas-native-text.d.ts +6 -0
  11. package/types/canvas/canvas-physical-clips.d.ts +4 -0
  12. package/types/canvas/canvas-positioned-text-replay.d.ts +10 -0
  13. package/types/canvas/canvas-raster-replay.d.ts +7 -0
  14. package/types/canvas/canvas-shadow-replay.d.ts +19 -0
  15. package/types/canvas/canvas-soft-edge-replay.d.ts +9 -0
  16. package/types/canvas/canvas-table-border-replay.d.ts +7 -0
  17. package/types/canvas/canvas-target-pixel-alignment.d.ts +9 -0
  18. package/types/canvas/canvas-vector-shape-replay.d.ts +4 -0
  19. package/types/canvas/evaluation-watermark.d.ts +3 -0
  20. package/types/canvas/index.d.ts +30 -0
  21. package/types/canvas/presentation.d.ts +54 -0
  22. package/types/canvas/text-selection.d.ts +7 -0
  23. package/types/canvas/transport.d.ts +5 -0
  24. package/types/foundation/bounded-number-representation-cjk.d.ts +17 -0
  25. package/types/foundation/bounded-number-representation-decimal-roman-latin.d.ts +6 -0
  26. package/types/foundation/bounded-number-representation-hebrew.d.ts +5 -0
  27. package/types/foundation/bounded-number-representation-korean.d.ts +15 -0
  28. package/types/foundation/bounded-number-representation-mechanics.d.ts +17 -0
  29. package/types/foundation/bounded-number-representation-writer-alphabets.d.ts +22 -0
  30. package/types/foundation/bounded-number-representation-writer-tables.d.ts +13 -0
  31. package/types/foundation/bounded-number-representation.d.ts +18 -0
  32. package/types/foundation/browser-text.d.ts +23 -0
  33. package/types/foundation/chart-number-format.d.ts +3 -0
  34. package/types/foundation/device-rounding.d.ts +3 -0
  35. package/types/foundation/font-resources.d.ts +14 -0
  36. package/types/foundation/geometry-path.d.ts +27 -0
  37. package/types/foundation/host-task.d.ts +3 -0
  38. package/types/foundation/image-resources.d.ts +39 -0
  39. package/types/foundation/index.d.ts +17 -0
  40. package/types/foundation/page-interaction.d.ts +90 -0
  41. package/types/foundation/path-bounds.d.ts +10 -0
  42. package/types/foundation/raster-color-effect.d.ts +55 -0
  43. package/types/foundation/raster-source-rectangle.d.ts +8 -0
  44. package/types/foundation/vector-shape-fill.d.ts +34 -0
  45. package/types/foundation/vector-shape-shadow.d.ts +17 -0
  46. package/types/foundation/vector-shape.d.ts +56 -0
  47. package/types/foundation/writer-unmapped-ooxml-number-format.d.ts +6 -0
  48. package/types/render-api/index.d.ts +4 -0
  49. package/types/render-api/page-display-list.d.ts +508 -0
  50. package/types/render-api/page-source.d.ts +23 -0
@@ -0,0 +1,90 @@
1
+ /** Spec: pipeline.render.page-interaction */
2
+ export interface DocumentPoint {
3
+ readonly x: number;
4
+ readonly y: number;
5
+ }
6
+ export interface PageRectangle extends DocumentPoint {
7
+ readonly width: number;
8
+ readonly height: number;
9
+ }
10
+ export interface PageTransform {
11
+ readonly a: number;
12
+ readonly b: number;
13
+ readonly c: number;
14
+ readonly d: number;
15
+ readonly e: number;
16
+ readonly f: number;
17
+ }
18
+ export interface DocumentFragment {
19
+ readonly pageIndex: number;
20
+ readonly rectangle: PageRectangle;
21
+ readonly transform: PageTransform;
22
+ readonly bounds: PageRectangle;
23
+ readonly clips: readonly Readonly<{
24
+ rectangle: PageRectangle;
25
+ transform: PageTransform;
26
+ }>[];
27
+ }
28
+ export interface DocumentHit {
29
+ readonly elementId: string;
30
+ readonly fragment: DocumentFragment;
31
+ readonly caret?: Readonly<{
32
+ paragraphId: string;
33
+ offset: number;
34
+ point: DocumentPoint;
35
+ }>;
36
+ }
37
+ export interface PageTextLine {
38
+ readonly pageIndex: number;
39
+ readonly order: number;
40
+ readonly clip: PageRectangle | null;
41
+ readonly transform?: PageTransform;
42
+ readonly physicalClips?: readonly Readonly<{
43
+ rectangle: PageRectangle;
44
+ transform?: PageTransform;
45
+ }>[];
46
+ readonly selection: Readonly<{
47
+ transform?: PageTransform;
48
+ paragraphId: string;
49
+ sourceOrder?: bigint;
50
+ scalarStart: number;
51
+ scalars: readonly string[];
52
+ top: number;
53
+ height: number;
54
+ carets: readonly Readonly<{
55
+ scalarOffset: number;
56
+ x: number;
57
+ }>[];
58
+ }>;
59
+ }
60
+ export interface PageHitSpan {
61
+ readonly elementId: string;
62
+ readonly start: number;
63
+ readonly end: number;
64
+ readonly fragments: readonly DocumentFragment[];
65
+ readonly paragraphId?: string;
66
+ readonly offsets: readonly (readonly [number, number])[];
67
+ }
68
+ export interface PageHitLine {
69
+ readonly fragment: DocumentFragment;
70
+ readonly carets: readonly Readonly<{
71
+ scalarOffset: number;
72
+ x: number;
73
+ order: number;
74
+ }>[];
75
+ readonly spans: readonly PageHitSpan[];
76
+ readonly elementId?: string;
77
+ readonly emptyParagraph: boolean;
78
+ }
79
+ export interface PageInteraction {
80
+ readonly text: readonly PageTextLine[];
81
+ readonly lines: readonly PageHitLine[];
82
+ readonly areas: readonly Readonly<{
83
+ elementId: string;
84
+ fragment: DocumentFragment;
85
+ }>[];
86
+ }
87
+ export declare function geometryPoint(point: DocumentPoint, transform: PageTransform): DocumentPoint;
88
+ export declare function makeGeometryFragment(pageIndex: number, rectangle: PageRectangle, transform: PageTransform, clips: DocumentFragment["clips"]): DocumentFragment;
89
+ export declare function hitTestPage(interaction: PageInteraction, point: DocumentPoint): DocumentHit | undefined;
90
+ //# sourceMappingURL=page-interaction.d.ts.map
@@ -0,0 +1,10 @@
1
+ /** Spec: spec/document/body/drawing/vml/gradient-fills.md */
2
+ import type { GeometryPathOperation } from "./geometry-path.js";
3
+ /** Specs: spec/document/body/drawing/vml/paths.md; spec/pipeline/layout/text/run/run-emphasis-mark-realization.md */
4
+ export declare function pathBounds(path: readonly (GeometryPathOperation | import("./browser-text.js").BrowserTextOperation)[]): Readonly<{
5
+ readonly left: number;
6
+ readonly top: number;
7
+ readonly width: number;
8
+ readonly height: number;
9
+ }> | undefined;
10
+ //# sourceMappingURL=path-bounds.d.ts.map
@@ -0,0 +1,55 @@
1
+ /** Spec: `spec/document/body/drawing/raster-color-effects.md#drawingml-raster-color-effects`. */
2
+ export type RasterColorEffect = Readonly<{
3
+ readonly kind: "grayscale";
4
+ }> | Readonly<{
5
+ readonly kind: "biLevel";
6
+ readonly threshold: bigint;
7
+ }> | Readonly<{
8
+ readonly kind: "luminance";
9
+ readonly brightness: bigint;
10
+ readonly contrast: bigint;
11
+ }> | Readonly<{
12
+ readonly kind: "duotone";
13
+ readonly color1: Readonly<{
14
+ readonly red: number;
15
+ readonly green: number;
16
+ readonly blue: number;
17
+ }>;
18
+ readonly color2: Readonly<{
19
+ readonly red: number;
20
+ readonly green: number;
21
+ readonly blue: number;
22
+ }>;
23
+ }> | Readonly<{
24
+ readonly kind: "colorChange";
25
+ readonly from: Readonly<{
26
+ readonly red: number;
27
+ readonly green: number;
28
+ readonly blue: number;
29
+ }>;
30
+ readonly to: Readonly<{
31
+ readonly red: number;
32
+ readonly green: number;
33
+ readonly blue: number;
34
+ }>;
35
+ readonly destinationAlpha?: bigint;
36
+ readonly useAlpha: boolean;
37
+ }>;
38
+ /** Spec: `spec/document/body/drawing/raster-color-effects.md#drawingml-raster-color-effect-plan`. */
39
+ export interface RasterColorEffectPlan {
40
+ readonly colorChange?: Extract<RasterColorEffect, Readonly<{
41
+ readonly kind: "colorChange";
42
+ }>>;
43
+ readonly duotone?: Extract<RasterColorEffect, Readonly<{
44
+ readonly kind: "duotone";
45
+ }>>;
46
+ readonly colorMode?: Extract<RasterColorEffect, Readonly<{
47
+ readonly kind: "grayscale";
48
+ }>> | Extract<RasterColorEffect, Readonly<{
49
+ readonly kind: "biLevel";
50
+ }>>;
51
+ readonly luminance?: Extract<RasterColorEffect, Readonly<{
52
+ readonly kind: "luminance";
53
+ }>>;
54
+ }
55
+ //# sourceMappingURL=raster-color-effect.d.ts.map
@@ -0,0 +1,8 @@
1
+ /** Spec: `spec/document/body/drawing/raster-source-rectangle.md#drawingml-raster-source-rectangle-cropping`. */
2
+ export interface RasterSourceRectangle {
3
+ readonly left: bigint;
4
+ readonly top: bigint;
5
+ readonly right: bigint;
6
+ readonly bottom: bigint;
7
+ }
8
+ //# sourceMappingURL=raster-source-rectangle.d.ts.map
@@ -0,0 +1,34 @@
1
+ /** Spec: document.body.drawing.shape.direct-gradients */
2
+ /** Spec: `spec/pipeline/render/vector-graphics/preset-shape/transport-and-publication.md#direct-preset-shape-display-list-command`. */
3
+ /** Spec: spec/document/body/drawing/vml/gradient-fills.md */
4
+ export interface VectorGradientStop {
5
+ readonly offset: number;
6
+ readonly color: `#${string}`;
7
+ readonly opacity: number;
8
+ }
9
+ export type VectorShapeFill = Readonly<{
10
+ readonly kind: "solidSrgb";
11
+ readonly color: `#${string}`;
12
+ readonly opacity?: number;
13
+ }> | Readonly<{
14
+ readonly kind: "none";
15
+ }> | Readonly<{
16
+ readonly kind: "linearGradient";
17
+ readonly angle: number;
18
+ readonly stops: readonly VectorGradientStop[];
19
+ }> | Readonly<{
20
+ readonly kind: "rectangularGradient";
21
+ readonly center: Readonly<{
22
+ x: number;
23
+ y: number;
24
+ }>;
25
+ readonly stops: readonly VectorGradientStop[];
26
+ }> | Readonly<{
27
+ readonly kind: "radialGradient";
28
+ readonly center: Readonly<{
29
+ x: number;
30
+ y: number;
31
+ }>;
32
+ readonly stops: readonly VectorGradientStop[];
33
+ }>;
34
+ //# sourceMappingURL=vector-shape-fill.d.ts.map
@@ -0,0 +1,17 @@
1
+ /** Spec: `spec/document/body/drawing/shape/outer-shadow.md`. */
2
+ export interface VectorShapeShadow {
3
+ readonly color: `#${string}`;
4
+ readonly opacity: number;
5
+ readonly blurRadius: bigint;
6
+ readonly distance: bigint;
7
+ readonly direction: bigint;
8
+ }
9
+ /** Spec: document.body.drawing.shape.outer-shadow */
10
+ export interface PositionedVectorShapeShadow {
11
+ readonly color: `#${string}`;
12
+ readonly opacity: number;
13
+ readonly blurRadius: number;
14
+ readonly offsetX: number;
15
+ readonly offsetY: number;
16
+ }
17
+ //# sourceMappingURL=vector-shape-shadow.d.ts.map
@@ -0,0 +1,56 @@
1
+ /** Spec: document.body.drawing.vector-image.ordinary-emf */
2
+ /** Specs: `spec/document/body/drawing/shape/preset/_index.md`; `spec/pipeline/parsing/drawing-object/source-contract/preset-shape/_index.md`. */
3
+ export declare const vectorShapePresets: readonly ["rect", "ellipse", "arc", "chord", "pie", "pieWedge", "blockArc", "donut", "noSmoking", "cloud", "cloudCallout", "wedgeRectCallout", "wedgeRoundRectCallout", "wedgeEllipseCallout", "callout1", "callout2", "callout3", "accentCallout1", "accentCallout2", "accentCallout3", "borderCallout1", "borderCallout2", "borderCallout3", "accentBorderCallout1", "accentBorderCallout2", "accentBorderCallout3", "gear6", "gear9", "irregularSeal1", "irregularSeal2", "heart", "lightningBolt", "wave", "doubleWave", "line", "lineInv", "straightConnector1", "bentConnector2", "bentConnector3", "bentConnector4", "bentConnector5", "curvedConnector2", "curvedConnector3", "curvedConnector4", "curvedConnector5", "ribbon", "ribbon2", "ellipseRibbon", "ellipseRibbon2", "leftRightRibbon", "can", "cube", "horizontalScroll", "verticalScroll", "bevel", "foldedCorner", "teardrop", "plaque", "plaqueTabs", "cornerTabs", "sun", "moon", "smileyFace", "actionButtonBackPrevious", "actionButtonBeginning", "actionButtonBlank", "actionButtonDocument", "actionButtonEnd", "actionButtonForwardNext", "actionButtonHelp", "actionButtonHome", "actionButtonInformation", "actionButtonMovie", "actionButtonReturn", "actionButtonSound", "leftBrace", "rightBrace", "bracePair", "leftBracket", "rightBracket", "bracketPair", "roundRect", "round1Rect", "round2SameRect", "round2DiagRect", "snip1Rect", "snip2SameRect", "snip2DiagRect", "snipRoundRect", "triangle", "rtTriangle", "diamond", "flowChartProcess", "flowChartPreparation", "flowChartManualInput", "flowChartManualOperation", "flowChartDisplay", "flowChartAlternateProcess", "flowChartPredefinedProcess", "flowChartInternalStorage", "flowChartDelay", "flowChartDecision", "flowChartInputOutput", "flowChartDocument", "flowChartTerminator", "flowChartConnector", "flowChartOffpageConnector", "flowChartOr", "flowChartSummingJunction", "flowChartCollate", "flowChartExtract", "flowChartMerge", "flowChartMultidocument", "flowChartSort", "flowChartPunchedCard", "flowChartPunchedTape", "flowChartMagneticDisk", "flowChartMagneticDrum", "flowChartMagneticTape", "flowChartOfflineStorage", "flowChartOnlineStorage", "parallelogram", "trapezoid", "nonIsoscelesTrapezoid", "plus", "funnel", "homePlate", "chevron", "mathPlus", "mathMinus", "mathMultiply", "mathDivide", "mathEqual", "mathNotEqual", "leftArrow", "rightArrow", "upArrow", "downArrow", "stripedRightArrow", "notchedRightArrow", "curvedRightArrow", "curvedLeftArrow", "curvedUpArrow", "curvedDownArrow", "swooshArrow", "leftArrowCallout", "rightArrowCallout", "upArrowCallout", "downArrowCallout", "leftRightArrowCallout", "upDownArrowCallout", "quadArrowCallout", "bentArrow", "bentUpArrow", "uturnArrow", "circularArrow", "leftCircularArrow", "leftRightCircularArrow", "leftRightArrow", "upDownArrow", "leftUpArrow", "leftRightUpArrow", "quadArrow", "pentagon", "hexagon", "heptagon", "octagon", "decagon", "dodecagon", "frame", "halfFrame", "corner", "diagStripe", "star4", "star5", "star6", "star7", "star8", "star10", "star12", "star16", "star24", "star32"];
4
+ export type VectorShapePreset = typeof vectorShapePresets[number];
5
+ /** Spec: `spec/pipeline/layout/drawing-and-fly/vector-object-realization/preset-shape/transport-and-publication.md#sealed-preset-path-and-affine`. */
6
+ export type VectorShapePathOperation = Exclude<import("./geometry-path.js").GeometryPathOperation, Readonly<{
7
+ readonly kind: "quadraticCurveTo";
8
+ }>>;
9
+ /** Spec: `spec/pipeline/layout/drawing-and-fly/vector-object-realization/preset-shape/transport-and-publication.md#sealed-preset-path-and-affine`. */
10
+ export type VectorShapePath = readonly VectorShapePathOperation[];
11
+ /** Spec: `spec/pipeline/layout/drawing-and-fly/vector-object-realization/preset-shape/flowchart/remaining.md#per-record-paint-intent`. */
12
+ /** Spec: `spec/pipeline/layout/drawing-and-fly/vector-object-realization/preset-shape/ribbon.md#default-ribbon-path-compilation`. */
13
+ /** Spec: `spec/pipeline/layout/drawing-and-fly/vector-object-realization/preset-shape/can-and-cube.md#default-can-and-cube-path-compilation`. */
14
+ /** Spec: `spec/pipeline/layout/drawing-and-fly/vector-object-realization/preset-shape/sun-moon-and-smiley-face.md#default-sun-moon-and-smiley-face-path-compilation`. */
15
+ /** Spec: `spec/pipeline/layout/drawing-and-fly/vector-object-realization/preset-shape/action-button.md#default-action-button-path-compilation`. */
16
+ /** Spec: `spec/pipeline/layout/drawing-and-fly/vector-object-realization/preset-shape/scroll.md#default-scroll-path-compilation`. */
17
+ /** Specs: `spec/pipeline/layout/drawing-and-fly/vector-object-realization/preset-shape/plaque-and-tabs.md#default-plaque-and-tab-path-compilation`; `spec/pipeline/layout/drawing-and-fly/vector-object-realization/preset-shape/bevel-folded-corner-and-teardrop.md#default-bevel-folded-corner-and-teardrop-path-compilation`. */
18
+ export type VectorShapePathRecord = Readonly<{
19
+ readonly operations: VectorShapePath;
20
+ readonly fill: boolean;
21
+ readonly stroke: boolean;
22
+ readonly fillRule?: "evenodd" | "nonzero";
23
+ readonly fillEffect?: "darken" | "darkenLess" | "lighten" | "lightenLess";
24
+ }>;
25
+ /** Spec: `spec/pipeline/layout/drawing-and-fly/vector-object-realization/preset-shape/flowchart/remaining.md#per-record-paint-intent`. */
26
+ export type VectorShapePaths = readonly VectorShapePathRecord[];
27
+ /** Specs: `spec/document/body/drawing/shape/preset/corner-treated-rectangle.md#authored-corner-adjustments`; `spec/document/body/drawing/shape/preset/arrow/cardinal.md#authored-cardinal-adjustments`; `spec/document/body/drawing/shape/preset/arrow/multi-directional.md#authored-multi-directional-adjustments`. */
28
+ /** Spec: `spec/document/body/drawing/shape/preset/star.md#authored-star-adjustments`. */
29
+ /** Spec: `spec/document/body/drawing/shape/preset/polygon/authored-adjustments.md`. */
30
+ /** Specs: `spec/document/body/drawing/shape/preset/arc-and-wedge.md#authored-adjustments`; `spec/document/body/drawing/shape/preset/block-arc.md#authored-adjustments`; `spec/document/body/drawing/shape/preset/donut.md#authored-adjustments`. */
31
+ /** Spec: `spec/document/body/drawing/shape/preset/straight-callout.md#authored-adjustments`. */
32
+ export interface VectorShapeAdjustments {
33
+ readonly adj?: number;
34
+ readonly hf?: number;
35
+ readonly vf?: number;
36
+ readonly adj1?: number;
37
+ readonly adj2?: number;
38
+ readonly adj3?: number;
39
+ readonly adj4?: number;
40
+ readonly adj5?: number;
41
+ readonly adj6?: number;
42
+ readonly adj7?: number;
43
+ readonly adj8?: number;
44
+ }
45
+ /** Spec: document.body.drawing.shape.preset.line-and-connector */
46
+ export interface VectorShapeLineEnds {
47
+ readonly startArrow?: Readonly<{
48
+ width: number;
49
+ length: number;
50
+ }>;
51
+ readonly endArrow?: Readonly<{
52
+ width: number;
53
+ length: number;
54
+ }>;
55
+ }
56
+ //# sourceMappingURL=vector-shape.d.ts.map
@@ -0,0 +1,6 @@
1
+ /** Spec: `spec/pipeline/foundation/writer-unmapped-ooxml-number-format.md#writer-caller-default-number-formats`. */
2
+ export declare const writerUnmappedOoxmlNumberFormats: readonly ["hex", "decimalHalfWidth", "japaneseDigitalTenThousand", "decimalEnclosedFullstop", "decimalEnclosedParen", "ideographZodiacTraditional", "taiwaneseDigital", "vietnameseCounting", "numberInDash", "hindiConsonants", "hindiNumbers", "hindiCounting", "thaiNumbers", "thaiCounting"];
3
+ export type WriterUnmappedOoxmlNumberFormat = typeof writerUnmappedOoxmlNumberFormats[number];
4
+ /** Spec: `spec/pipeline/foundation/writer-unmapped-ooxml-number-format.md#writer-caller-default-number-formats`. */
5
+ export declare function isWriterUnmappedOoxmlNumberFormat(value: string): value is WriterUnmappedOoxmlNumberFormat;
6
+ //# sourceMappingURL=writer-unmapped-ooxml-number-format.d.ts.map
@@ -0,0 +1,4 @@
1
+ export * from "./page-display-list.js";
2
+ export * from "./page-source.js";
3
+ export type { DocumentFragment, DocumentHit, DocumentPoint, PageTextLine, PageInteraction, FontFaceResource, ImageResourceData } from "../foundation/index.js";
4
+ //# sourceMappingURL=index.d.ts.map