@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,508 @@
1
+ import type { GeometryPathOperation } from "../foundation/index.js";
2
+ /** Spec: document.body.table.fixed-grid.border.patterned#dash-endpoint-coverage */
3
+ /** Spec: document.body.drawing.picture-soft-edges */
4
+ /** Spec: document.body.drawing.vector-image.ordinary-emf */
5
+ /** Spec: document.body.drawing.shape.outer-shadow */
6
+ /** Spec: document.body.drawing.shape.alpha */
7
+ /** Spec: spec/document/body/drawing/vml/gradient-fills.md */
8
+ /** Spec: `spec/pipeline/render/page-display-list/_index.md`; `spec/pipeline/render/page-display-list/positioned-text/shading.md#positioned-text-shading-compilation`; `spec/pipeline/render/page-display-list/positioned-text/highlight.md#highlight-command-compilation`; `spec/pipeline/render/page-display-list/positioned-text/decoration.md#strike-command-compilation`. */
9
+ import type { RasterColorEffectPlan, RasterSourceRectangle, VectorShapeFill, VectorShapePath } from "../foundation/index.js";
10
+ export interface PaintRectangle {
11
+ readonly x: bigint;
12
+ readonly y: bigint;
13
+ readonly width: bigint;
14
+ readonly height: bigint;
15
+ }
16
+ export interface PaintFillRectangleCommand {
17
+ readonly kind: "fillRectangle";
18
+ readonly order: number;
19
+ readonly color: string;
20
+ readonly rectangle: PaintRectangle;
21
+ /** Spec: `spec/pipeline/render/page-display-list/_index.md#target-pixel-aligned-rectangle-marker-copying`. */
22
+ readonly targetPixelAligned?: true;
23
+ /** Spec: `spec/document/body/table/fixed-grid/border/device-replay.md#device-minimum-representation-and-replay`; `spec/pipeline/render/page-display-list/_index.md#fixed-grid-compound-border-marker-copying`; `spec/pipeline/render/canvas/table-border-device-minimum-replay.md#table-border-device-minimum-replay`. */
24
+ readonly tableBorderDeviceMinimum?: Readonly<{
25
+ readonly endExclusive?: true;
26
+ readonly startJunction?: Readonly<{
27
+ readonly numerator: bigint;
28
+ readonly denominator: bigint;
29
+ }>;
30
+ readonly endJunction?: Readonly<{
31
+ readonly numerator: bigint;
32
+ readonly denominator: bigint;
33
+ }>;
34
+ readonly orientation: "horizontal" | "vertical";
35
+ readonly authoredThickness: Readonly<{
36
+ readonly numerator: bigint;
37
+ readonly denominator: bigint;
38
+ }>;
39
+ readonly compound?: Readonly<{
40
+ readonly outer: Readonly<{
41
+ readonly numerator: bigint;
42
+ readonly denominator: bigint;
43
+ }>;
44
+ readonly gap: Readonly<{
45
+ readonly numerator: bigint;
46
+ readonly denominator: bigint;
47
+ }>;
48
+ readonly inner: Readonly<{
49
+ readonly numerator: bigint;
50
+ readonly denominator: bigint;
51
+ }>;
52
+ readonly stripe: "outer" | "inner";
53
+ readonly mirrored: boolean;
54
+ }>;
55
+ }>;
56
+ /** Spec: `spec/pipeline/render/page-display-list/_index.md#section-column-separator-marker-copying`. */
57
+ readonly sectionColumnSeparatorDeviceMinimum?: Readonly<{
58
+ readonly authoredThickness: Readonly<{
59
+ readonly numerator: bigint;
60
+ readonly denominator: bigint;
61
+ }>;
62
+ }>;
63
+ }
64
+ /** Spec: `spec/pipeline/render/canvas/paragraph-border-paint-replay.md#mechanical-display-list-and-canvas-replay`. */
65
+ /** Spec: `spec/pipeline/layout/header-footer/paragraph-boxes.md#shared-table-geometry-and-clipping`. */
66
+ export interface PaintFillPolygonCommand {
67
+ readonly clip?: Readonly<{
68
+ readonly x: bigint;
69
+ readonly y: bigint;
70
+ readonly width: bigint;
71
+ readonly height: bigint;
72
+ }>;
73
+ readonly kind: "fillPolygon";
74
+ readonly order: number;
75
+ readonly color: string;
76
+ readonly points: readonly [Readonly<{
77
+ readonly x: bigint;
78
+ readonly y: bigint;
79
+ }>, Readonly<{
80
+ readonly x: bigint;
81
+ readonly y: bigint;
82
+ }>, Readonly<{
83
+ readonly x: bigint;
84
+ readonly y: bigint;
85
+ }>, Readonly<{
86
+ readonly x: bigint;
87
+ readonly y: bigint;
88
+ }>];
89
+ }
90
+ /** Spec: `spec/pipeline/render/page-display-list/positioned-text/_index.md#positioned-text-command`. */
91
+ export interface PaintPositionedGlyph {
92
+ readonly glyphId: string;
93
+ readonly path: readonly import("../foundation/index.js").BrowserTextOperation[];
94
+ }
95
+ /** Spec: `spec/pipeline/render/page-display-list/positioned-text/_index.md#positioned-text-command`. */
96
+ export interface PaintVerticalPlacement {
97
+ readonly alignment: "baseline" | "superscript" | "subscript";
98
+ readonly scale: Readonly<{
99
+ readonly numerator: bigint;
100
+ readonly denominator: bigint;
101
+ }>;
102
+ readonly baselineShift: Readonly<{
103
+ readonly numerator: bigint;
104
+ readonly denominator: bigint;
105
+ }>;
106
+ }
107
+ /** Spec: `spec/pipeline/render/page-display-list/positioned-text/_index.md#effective-positioned-glyph-color-projection`; `spec/pipeline/render/page-display-list/positioned-text/_index.md#positioned-text-command`. */
108
+ export interface PaintPositionedTextRun {
109
+ readonly faceId: string;
110
+ readonly fontSize: number;
111
+ readonly textScalePercent: number;
112
+ readonly direction: "ltr" | "rtl";
113
+ readonly placement: PaintVerticalPlacement;
114
+ readonly color: string;
115
+ readonly glyphs: readonly PaintPositionedGlyph[];
116
+ }
117
+ /** Spec: `spec/pipeline/render/page-display-list/positioned-text/run-effects.md#explicit-pass-copying`. */
118
+ export interface PaintPositionedTextEffectPass {
119
+ readonly kind: "shadow" | "outline" | "face" | "relief";
120
+ readonly color: string;
121
+ readonly deviceOffset: Readonly<{
122
+ readonly x: number;
123
+ readonly y: number;
124
+ }>;
125
+ readonly layoutOffset: Readonly<{
126
+ readonly x: number;
127
+ readonly y: number;
128
+ }>;
129
+ readonly clip?: Readonly<{
130
+ readonly x: number;
131
+ readonly y: number;
132
+ readonly width: number;
133
+ readonly height: number;
134
+ }>;
135
+ readonly glyphRun: PaintPositionedTextRun;
136
+ readonly underlines: readonly PaintPositionedUnderline[];
137
+ readonly strikes: readonly PaintPositionedStrike[];
138
+ }
139
+ /** Spec: `spec/pipeline/render/page-display-list/positioned-text/_index.md#positioned-text-command`. */
140
+ export interface PaintPositionedTextClip {
141
+ readonly x: number;
142
+ readonly y: number;
143
+ readonly width: number;
144
+ readonly height: number;
145
+ }
146
+ /** Spec: `spec/pipeline/render/page-display-list/positioned-text/shading.md#positioned-text-shading-compilation`. */
147
+ export interface PaintPositionedShading {
148
+ readonly color: string;
149
+ readonly rectangle: Readonly<{
150
+ readonly x: number;
151
+ readonly y: number;
152
+ readonly width: number;
153
+ readonly height: number;
154
+ }>;
155
+ }
156
+ /** Spec: `spec/pipeline/render/page-display-list/positioned-text/highlight.md#highlight-command-compilation`. */
157
+ export interface PaintPositionedHighlight {
158
+ readonly color: string;
159
+ readonly rectangle: Readonly<{
160
+ readonly x: number;
161
+ readonly y: number;
162
+ readonly width: number;
163
+ readonly height: number;
164
+ }>;
165
+ readonly deviceCoverage: "targetPixelAligned";
166
+ }
167
+ /** Spec: `spec/document/body/text/run/border/paint-publication.md#sealed-display-list-and-canvas-replay`. */
168
+ export interface PaintPositionedBorder {
169
+ readonly side: "top" | "right" | "bottom" | "left";
170
+ readonly color: string;
171
+ readonly rectangle: Readonly<{
172
+ readonly x: number;
173
+ readonly y: number;
174
+ readonly width: number;
175
+ readonly height: number;
176
+ }>;
177
+ }
178
+ /** Spec: `spec/pipeline/render/page-display-list/positioned-text/decoration.md#underline-command-compilation`; `spec/pipeline/layout/text/decoration/pattern-realization.md#final-pattern-geometry`. */
179
+ export interface PaintPositionedUnderline {
180
+ readonly style: "single" | "double" | "thick" | "dotted" | "dottedHeavy" | "dash" | "dashedHeavy" | "dashLong" | "dashLongHeavy" | "dotDash" | "dashDotHeavy" | "dotDotDash" | "dashDotDotHeavy" | "wave" | "wavyHeavy" | "wavyDouble";
181
+ readonly color: string;
182
+ readonly rectangle: Readonly<{
183
+ readonly x: number;
184
+ readonly y: number;
185
+ readonly width: number;
186
+ readonly height: number;
187
+ }>;
188
+ readonly path?: readonly GeometryPathOperation[];
189
+ readonly strokeWidth?: number;
190
+ }
191
+ /** Spec: `spec/pipeline/render/page-display-list/positioned-text/decoration.md#strike-command-compilation`. */
192
+ export interface PaintPositionedStrike {
193
+ readonly style: "single" | "double";
194
+ readonly color: string;
195
+ readonly rectangle: Readonly<{
196
+ readonly x: number;
197
+ readonly y: number;
198
+ readonly width: number;
199
+ readonly height: number;
200
+ }>;
201
+ }
202
+ /** Spec: `spec/pipeline/render/page-display-list/positioned-text/emphasis-marks.md#mechanical-final-path-copying`. */
203
+ export interface PaintPositionedEmphasisMark {
204
+ readonly color: string;
205
+ readonly path: readonly GeometryPathOperation[];
206
+ }
207
+ /** Spec: `spec/pipeline/render/page-display-list/positioned-text/authored-bar-tab.md#mechanical-authored-bar-replay`. */
208
+ /**
209
+ * Spec: `spec/pipeline/render/page-display-list/positioned-text/_index.md#positioned-text-command`; `spec/pipeline/render/page-display-list/positioned-text/run-effects.md#explicit-pass-copying`; `spec/pipeline/render/page-display-list/positioned-text/authored-bar-tab.md#mechanical-authored-bar-replay`; `spec/pipeline/render/page-display-list/positioned-text/shading.md#positioned-text-shading-compilation`; `spec/pipeline/render/page-display-list/positioned-text/highlight.md#highlight-command-compilation`; `spec/pipeline/render/page-display-list/positioned-text/decoration.md#underline-command-compilation`; `spec/pipeline/render/page-display-list/positioned-text/decoration.md#strike-command-compilation`.
210
+ */
211
+ export interface PaintPositionedTextCommand {
212
+ /** Spec: document.body.drawing.vml.textboxes */
213
+ readonly transform?: PaintRasterImageTransform;
214
+ readonly physicalClips?: readonly Readonly<{
215
+ rectangle: PaintPositionedTextClip;
216
+ transform?: PaintRasterImageTransform;
217
+ }>[];
218
+ readonly kind: "positionedText";
219
+ readonly order: number;
220
+ readonly clip: PaintPositionedTextClip | null;
221
+ readonly shadings: readonly PaintPositionedShading[];
222
+ readonly highlights: readonly PaintPositionedHighlight[];
223
+ readonly shadows?: readonly PaintPositionedBorder[];
224
+ readonly borders: readonly PaintPositionedBorder[];
225
+ readonly glyphRuns: readonly PaintPositionedTextRun[];
226
+ readonly underlines: readonly PaintPositionedUnderline[];
227
+ readonly strikes: readonly PaintPositionedStrike[];
228
+ readonly emphasisMarks: readonly PaintPositionedEmphasisMark[];
229
+ readonly effectPasses?: readonly PaintPositionedTextEffectPass[];
230
+ }
231
+ /** Spec: `spec/pipeline/render/page-display-list/inline-raster-image.md#inline-raster-image-command`. */
232
+ export type PaintInlineRasterImageResourceReference = import("../foundation/index.js").ImageResourceId;
233
+ /** Spec: document.body.drawing.vector-image */
234
+ export type PaintInlineSvgImageResourceChoice = Exclude<import("../foundation/index.js").ImageResourceReference, PaintInlineRasterImageResourceReference>;
235
+ /** Spec: document.body.drawing.vector-image */
236
+ export type PaintInlineImageResourceReference = import("../foundation/index.js").ImageResourceReference;
237
+ /** Spec: `spec/pipeline/render/page-display-list/inline-raster-image.md#inline-raster-image-command`. */
238
+ export interface PaintInlineRasterImageSampling {
239
+ readonly type: "intrinsicPixelGrid";
240
+ /** Spec: spec/document/body/drawing/group/wordprocessing-group.md */
241
+ readonly shapeFill?: true;
242
+ readonly intrinsicPixelSize: Readonly<{
243
+ readonly width: number;
244
+ readonly height: number;
245
+ }>;
246
+ /** Spec: `spec/pipeline/render/page-display-list/inline-raster-image.md#reduced-bitmap-sampling-facts`. */
247
+ readonly verticalOriginOffset?: number;
248
+ readonly clipToRectangle?: boolean;
249
+ }
250
+ /** Spec: `spec/pipeline/render/page-display-list/inline-raster-image.md#inline-raster-image-command`. */
251
+ export interface PaintInlineRasterImageClip {
252
+ readonly x: number;
253
+ readonly y: number;
254
+ readonly width: number;
255
+ readonly height: number;
256
+ }
257
+ /** Spec: `spec/pipeline/render/page-display-list/inline-raster-image.md#page-anchored-final-transform-copying`. */
258
+ export interface PaintRasterImageTransform {
259
+ readonly a: number;
260
+ readonly b: number;
261
+ readonly c: number;
262
+ readonly d: number;
263
+ readonly e: number;
264
+ readonly f: number;
265
+ }
266
+ /** Spec: `spec/pipeline/render/page-display-list/inline-raster-image.md#inline-raster-image-command`. */
267
+ export interface PaintInlineRasterImageCommand {
268
+ readonly shadow?: import("../foundation/index.js").PositionedVectorShapeShadow;
269
+ readonly softEdgeRadius?: number;
270
+ /** Spec: spec/document/body/drawing/group/wordprocessing-group.md */
271
+ readonly physicalClips?: PaintPositionedTextCommand["physicalClips"];
272
+ readonly kind: "inlineRasterImage";
273
+ readonly order: number;
274
+ readonly resource: PaintInlineImageResourceReference;
275
+ readonly opacity: number;
276
+ readonly colorEffect?: RasterColorEffectPlan;
277
+ readonly sourceCrop?: RasterSourceRectangle;
278
+ readonly clip: PaintInlineRasterImageClip | null;
279
+ readonly rectangle: Readonly<{
280
+ readonly x: number;
281
+ readonly y: number;
282
+ readonly width: number;
283
+ readonly height: number;
284
+ }>;
285
+ readonly transform?: PaintRasterImageTransform;
286
+ readonly sampling?: PaintInlineRasterImageSampling;
287
+ }
288
+ /** Specs: `spec/pipeline/render/vector-graphics/preset-shape/transport-and-publication.md#direct-preset-shape-display-list-command`; `spec/pipeline/render/vector-graphics/preset-shape/contours-and-record-order.md#ordered-records-with-independent-paint-gates`; `spec/pipeline/render/vector-graphics/preset-shape/path-local-fill-effects.md#final-path-fill-resolution`. */
289
+ /** Spec: document.body.drawing.shape.direct-gradients */
290
+ export type PaintVectorShapeFill = Readonly<{
291
+ kind: "radialGradient";
292
+ center: Readonly<{
293
+ x: number;
294
+ y: number;
295
+ }>;
296
+ radius: number;
297
+ stops: readonly import("../foundation/index.js").VectorGradientStop[];
298
+ }> | Exclude<VectorShapeFill, {
299
+ kind: "linearGradient" | "rectangularGradient" | "radialGradient";
300
+ }> | Readonly<{
301
+ kind: "linearGradient";
302
+ start: Readonly<{
303
+ x: number;
304
+ y: number;
305
+ }>;
306
+ end: Readonly<{
307
+ x: number;
308
+ y: number;
309
+ }>;
310
+ stops: readonly import("../foundation/index.js").VectorGradientStop[];
311
+ }> | Readonly<{
312
+ kind: "gradientPolygons";
313
+ polygons: readonly Readonly<{
314
+ points: readonly Readonly<{
315
+ x: number;
316
+ y: number;
317
+ }>[];
318
+ start: Readonly<{
319
+ x: number;
320
+ y: number;
321
+ }>;
322
+ end: Readonly<{
323
+ x: number;
324
+ y: number;
325
+ }>;
326
+ stops: readonly import("../foundation/index.js").VectorGradientStop[];
327
+ }>[];
328
+ }>;
329
+ /** Spec: pipeline.render.vector-graphics.preset-shape.transport-and-publication */
330
+ export interface PaintVectorShapePathRecord {
331
+ readonly operations: VectorShapePath;
332
+ readonly fill: PaintVectorShapeFill;
333
+ readonly stroke: boolean;
334
+ readonly fillRule?: "evenodd" | "nonzero";
335
+ }
336
+ /** Spec: pipeline.render.vector-graphics.preset-shape.transport-and-publication */
337
+ export interface PaintVectorShapeCommand {
338
+ readonly kind: "vectorShape";
339
+ readonly order: number;
340
+ readonly paths: readonly PaintVectorShapePathRecord[];
341
+ readonly clip: PaintPositionedTextClip | null;
342
+ readonly shadow?: import("../foundation/index.js").PositionedVectorShapeShadow;
343
+ readonly stroke?: Readonly<{
344
+ readonly color: `#${string}`;
345
+ readonly opacity?: number;
346
+ readonly width: number;
347
+ readonly deviceHairline?: true;
348
+ readonly cap: "butt";
349
+ readonly join: "round" | "bevel" | "miter";
350
+ }>;
351
+ readonly transform?: PaintRasterImageTransform;
352
+ }
353
+ /** Spec: `spec/pipeline/render/page-display-list/comment-projection.md#mechanical-main-document-comment-annotation-projection`. */
354
+ export interface PaintCommentAnnotationCommand {
355
+ readonly kind: "commentAnnotation";
356
+ readonly order: number;
357
+ readonly commentId: string;
358
+ readonly color: string;
359
+ readonly rectangle: Readonly<{
360
+ readonly x: number;
361
+ readonly y: number;
362
+ readonly width: number;
363
+ readonly height: number;
364
+ }>;
365
+ readonly indicator: Readonly<{
366
+ readonly x: number;
367
+ readonly y: number;
368
+ readonly width: number;
369
+ readonly height: number;
370
+ }>;
371
+ readonly indicatorParts: readonly Readonly<{
372
+ readonly color: string;
373
+ readonly rectangle: Readonly<{
374
+ readonly x: number;
375
+ readonly y: number;
376
+ readonly width: number;
377
+ readonly height: number;
378
+ }>;
379
+ }>[];
380
+ readonly accessibility: Readonly<{
381
+ readonly role: "comment";
382
+ readonly label: string;
383
+ }>;
384
+ readonly selection: Readonly<{
385
+ readonly kind: "comment";
386
+ readonly commentId: string;
387
+ }>;
388
+ }
389
+ export type PaintCommand = PaintFillRectangleCommand | PaintFillPolygonCommand | PaintPositionedTextCommand | PaintInlineRasterImageCommand | PaintVectorShapeCommand | PaintCommentAnnotationCommand;
390
+ /** Spec: `spec/document/body/text/paragraph/hyperlink/external.md#hit-region-contract`. */
391
+ export interface ExternalHyperlinkHitRegion {
392
+ readonly kind: "externalHyperlink";
393
+ readonly target: string;
394
+ readonly tooltip: string | null;
395
+ readonly rectangle: Readonly<{
396
+ readonly x: number;
397
+ readonly y: number;
398
+ readonly width: number;
399
+ readonly height: number;
400
+ }>;
401
+ }
402
+ /** Spec: `spec/document/body/text/paragraph/hyperlink/internal.md#hit-region-contract`. */
403
+ export interface InternalHyperlinkHitRegion {
404
+ readonly kind: "internalHyperlink";
405
+ readonly destination: Readonly<{
406
+ readonly pageIndex: number;
407
+ readonly x: number;
408
+ readonly y: number;
409
+ }>;
410
+ readonly rectangle: Readonly<{
411
+ readonly x: number;
412
+ readonly y: number;
413
+ readonly width: number;
414
+ readonly height: number;
415
+ }>;
416
+ }
417
+ /** Spec: `spec/pipeline/render/page-display-list/comment-projection.md#mechanical-main-document-comment-annotation-projection`. */
418
+ export interface CommentHitRegion {
419
+ readonly kind: "comment";
420
+ readonly commentId: string;
421
+ readonly rectangle: Readonly<{
422
+ readonly x: number;
423
+ readonly y: number;
424
+ readonly width: number;
425
+ readonly height: number;
426
+ }>;
427
+ }
428
+ export interface PageDisplayList {
429
+ readonly fonts?: readonly import("../foundation/index.js").FontFaceResource[];
430
+ readonly images?: import("../foundation/index.js").ImageResourceData;
431
+ readonly evaluation?: boolean;
432
+ readonly pageIndex: number;
433
+ readonly pageBounds: PaintRectangle | null;
434
+ readonly commands: readonly PaintCommand[];
435
+ readonly hitRegions: readonly (ExternalHyperlinkHitRegion | InternalHyperlinkHitRegion | CommentHitRegion)[];
436
+ }
437
+ export interface CanvasPaintTarget {
438
+ font: string;
439
+ direction: CanvasDirection;
440
+ textAlign: CanvasTextAlign;
441
+ textBaseline: CanvasTextBaseline;
442
+ fontKerning: CanvasFontKerning;
443
+ letterSpacing: string;
444
+ canvas?: {
445
+ lang: string;
446
+ };
447
+ fillText(text: string, x: number, y: number): void;
448
+ fillStyle: string | CanvasPattern | CanvasGradient;
449
+ strokeStyle: string | CanvasGradient | CanvasPattern;
450
+ lineWidth: number;
451
+ lineCap: CanvasLineCap;
452
+ lineJoin: CanvasLineJoin;
453
+ globalAlpha: number;
454
+ shadowColor?: string;
455
+ shadowBlur?: number;
456
+ shadowOffsetX?: number;
457
+ shadowOffsetY?: number;
458
+ imageSmoothingEnabled: boolean;
459
+ /** Spec: `spec/pipeline/render/canvas/raster-sampling/minification.md`. */
460
+ imageSmoothingQuality?: ImageSmoothingQuality;
461
+ /** Spec: `spec/pipeline/render/canvas/_index.md#target-pixel-aligned-rectangle-replay`. */
462
+ getTransform(): Readonly<{
463
+ readonly a: number;
464
+ readonly b: number;
465
+ readonly c: number;
466
+ readonly d: number;
467
+ readonly e: number;
468
+ readonly f: number;
469
+ }>;
470
+ save(): void;
471
+ restore(): void;
472
+ transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
473
+ fillRect(x: number, y: number, width: number, height: number): void;
474
+ beginPath(): void;
475
+ rect(x: number, y: number, width: number, height: number): void;
476
+ clip(fillRule?: "evenodd" | "nonzero"): void;
477
+ moveTo(x: number, y: number): void;
478
+ lineTo(x: number, y: number): void;
479
+ quadraticCurveTo(controlX: number, controlY: number, x: number, y: number): void;
480
+ bezierCurveTo(control1X: number, control1Y: number, control2X: number, control2Y: number, x: number, y: number): void;
481
+ closePath(): void;
482
+ fill(fillRule?: "evenodd" | "nonzero"): void;
483
+ createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;
484
+ createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;
485
+ stroke(): void;
486
+ drawImage(image: CanvasImageSource, x: number, y: number, width: number, height: number): void;
487
+ drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;
488
+ }
489
+ /** Spec: `spec/pipeline/render/canvas/_index.md#canvas-materialization`. */
490
+ export interface CanvasImageResourceMaterializer {
491
+ resolveRasterImage(resource: PaintInlineImageResourceReference, colorEffect?: RasterColorEffectPlan): CanvasImageSource | undefined;
492
+ resolvePreparedRasterImage(resource: PaintInlineImageResourceReference, devicePixelSize: Readonly<{
493
+ readonly width: number;
494
+ readonly height: number;
495
+ }>, colorEffect?: RasterColorEffectPlan, flipHorizontal?: boolean, flipVertical?: boolean): CanvasImageSource | undefined;
496
+ resolveRasterImageIntrinsicPixelSize?(resource: PaintInlineImageResourceReference, colorEffect?: RasterColorEffectPlan): Readonly<{
497
+ readonly width: number;
498
+ readonly height: number;
499
+ }> | undefined;
500
+ }
501
+ /** Spec: `spec/pipeline/render/page-display-list/inline-raster-image.md#inline-raster-image-command`. */
502
+ export interface InlineRasterImagePaintFactResolver {
503
+ resolveRasterImageIntrinsicPixelSize(resource: PaintInlineImageResourceReference, colorEffect?: RasterColorEffectPlan): Readonly<{
504
+ readonly width: number;
505
+ readonly height: number;
506
+ }> | undefined;
507
+ }
508
+ //# sourceMappingURL=page-display-list.d.ts.map
@@ -0,0 +1,23 @@
1
+ /** Spec: pipeline.sdk.page-source */
2
+ import type { PageDisplayList } from "./page-display-list.js";
3
+ export interface PageSize {
4
+ readonly width: number;
5
+ readonly height: number;
6
+ }
7
+ export interface PageDescriptor {
8
+ readonly interaction: import("../foundation/index.js").PageInteraction;
9
+ readonly index: number;
10
+ readonly size: PageSize;
11
+ }
12
+ export interface DocumentSource {
13
+ readonly disposed?: boolean;
14
+ readonly pages: readonly PageSource[];
15
+ subscribe?(listener: () => void): () => void;
16
+ }
17
+ export interface PageSource extends PageDescriptor {
18
+ load(signal?: AbortSignal): Promise<PageDisplayList>;
19
+ }
20
+ export interface DocumentManifest {
21
+ readonly pages: readonly PageDescriptor[];
22
+ }
23
+ //# sourceMappingURL=page-source.d.ts.map