@embedpdf/core-annotation 3.0.0-next.3 → 3.0.0-next.5
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/index.cjs +244 -140
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +54 -13
- package/dist/index.d.ts +54 -13
- package/dist/index.js +244 -142
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AnnotationDTO, AnnotationFlags, AnnotationFlags as AnnotationFlags$1, AnnotationRef, BlendMode, BlendMode as BlendMode$1, CaretIntent, InkIntent, LineEnding, LineEndings, NO_ANNOTATION_FLAGS, PdfLinkTarget, PdfPoint, PdfRect, StrikeoutIntent } from "@embedpdf/engine-core/runtime";
|
|
2
2
|
import { PageObjectNumber } from "@embedpdf/core";
|
|
3
|
-
import { PageRotation, Point, Rect as Rect$1, Size } from "@embedpdf/core-geometry";
|
|
3
|
+
import { PageRotation, Point, Rect as Rect$1, Size, TextQuad, TextQuad as TextQuad$1 } from "@embedpdf/core-geometry";
|
|
4
4
|
//#region src/flags.d.ts
|
|
5
5
|
/** The `/F` every freshly DRAWN annotation starts with: `print` set (Acrobat
|
|
6
6
|
* parity — without it the annotation silently disappears when printed). */
|
|
@@ -42,8 +42,19 @@ declare const annotContentsEditable: (a: FlagBearer) => boolean;
|
|
|
42
42
|
*/
|
|
43
43
|
type Vec = Point;
|
|
44
44
|
type Rect = Rect$1;
|
|
45
|
-
/** Four content-space points
|
|
45
|
+
/** Four POSITIONAL content-space points — selection chrome / OBB corners.
|
|
46
|
+
* Text-markup geometry uses the corner-NAMED {@link TextQuad} instead. */
|
|
46
47
|
type Quad = [Vec, Vec, Vec, Vec];
|
|
48
|
+
/**
|
|
49
|
+
* Where a text-edit annotation (caret / replace-text) anchors: the boundary
|
|
50
|
+
* glyph's oriented cell plus the READING direction along its baseline
|
|
51
|
+
* (+1 = toward `end`, −1 = toward `start` — sequence-derived, never inferred
|
|
52
|
+
* from geometry).
|
|
53
|
+
*/
|
|
54
|
+
interface TextEndAnchor {
|
|
55
|
+
glyphQuad: TextQuad$1;
|
|
56
|
+
advance: 1 | -1;
|
|
57
|
+
}
|
|
47
58
|
type Id = string;
|
|
48
59
|
type Cursor = string;
|
|
49
60
|
type PolySubtype = 'polygon' | 'polyline';
|
|
@@ -115,10 +126,11 @@ type Geom = {
|
|
|
115
126
|
rot?: number;
|
|
116
127
|
} | {
|
|
117
128
|
t: 'quads';
|
|
118
|
-
quads:
|
|
129
|
+
quads: TextQuad$1[];
|
|
119
130
|
} | {
|
|
120
131
|
t: 'caret';
|
|
121
132
|
rect: Rect;
|
|
133
|
+
rot?: number;
|
|
122
134
|
} | {
|
|
123
135
|
t: 'ink';
|
|
124
136
|
strokes: Vec[][];
|
|
@@ -454,7 +466,7 @@ interface MarkupPreview {
|
|
|
454
466
|
subtype: Subtype;
|
|
455
467
|
/** Defaults key, distinct from subtype for presets such as replace-text. */
|
|
456
468
|
preset: string;
|
|
457
|
-
byPage: Record<number,
|
|
469
|
+
byPage: Record<number, TextQuad$1[]>;
|
|
458
470
|
}
|
|
459
471
|
/** Anchor + affordance state for UI that controls an in-progress creation draft. */
|
|
460
472
|
interface CreationDraftAnchor {
|
|
@@ -613,26 +625,26 @@ type Msg = {
|
|
|
613
625
|
} | {
|
|
614
626
|
t: 'createCaret';
|
|
615
627
|
pon: PageObjectNumber;
|
|
616
|
-
|
|
628
|
+
anchor: TextEndAnchor;
|
|
617
629
|
flags?: Partial<AnnotationFlags$1>;
|
|
618
630
|
} | {
|
|
619
631
|
t: 'createReplaceText';
|
|
620
632
|
pon: PageObjectNumber;
|
|
621
|
-
|
|
622
|
-
|
|
633
|
+
quads: TextQuad$1[];
|
|
634
|
+
anchor: TextEndAnchor;
|
|
623
635
|
preset?: string;
|
|
624
636
|
} | {
|
|
625
637
|
t: 'createMarkup';
|
|
626
638
|
subtype: Subtype;
|
|
627
639
|
pon: PageObjectNumber;
|
|
628
|
-
|
|
640
|
+
quads: TextQuad$1[];
|
|
629
641
|
preset?: string;
|
|
630
642
|
/** The tool's `/F` seed — merged over {@link DRAWN_FLAGS} at commit. */
|
|
631
643
|
flags?: Partial<AnnotationFlags$1>;
|
|
632
644
|
} | {
|
|
633
645
|
t: 'setMarkupPreview';
|
|
634
646
|
subtype: Subtype;
|
|
635
|
-
|
|
647
|
+
quadsByPage: Record<number, TextQuad$1[]>;
|
|
636
648
|
preset?: string;
|
|
637
649
|
} | {
|
|
638
650
|
t: 'clearMarkupPreview';
|
|
@@ -1386,7 +1398,10 @@ declare const DEFAULT_CHROME_GEOM: {
|
|
|
1386
1398
|
};
|
|
1387
1399
|
/** Normalize degrees into `[0, 360)`. */
|
|
1388
1400
|
declare const normalizeDeg: (d: number) => number;
|
|
1389
|
-
/** A geom's applied rotation (deg), or 0 for the non-rotatable kinds.
|
|
1401
|
+
/** A geom's applied rotation (deg), or 0 for the non-rotatable kinds. A
|
|
1402
|
+
* caret's `rot` is AUTHORING metadata (its text's baseline tilt): reported
|
|
1403
|
+
* here so the renderer and selection chrome follow it, while the caret's
|
|
1404
|
+
* caps (not movable/resizable) keep every rotate gesture away from it. */
|
|
1390
1405
|
declare function geomRotation(g: Geom): number;
|
|
1391
1406
|
/**
|
|
1392
1407
|
* The rotation PIVOT for a single shape: a box turns about its own `rect`
|
|
@@ -1395,7 +1410,10 @@ declare function geomRotation(g: Geom): number;
|
|
|
1395
1410
|
* stays cleanly additive across gestures and reset is exact.
|
|
1396
1411
|
*/
|
|
1397
1412
|
declare function centroidOf(g: Geom): Vec;
|
|
1398
|
-
/**
|
|
1413
|
+
/** Does the geometry carry a meaningful `rot` (an oriented local box exists)?
|
|
1414
|
+
* ORIENTATION is a geometry fact; whether the USER may rotate is the separate
|
|
1415
|
+
* `caps.rotatable` gate — a caret is oriented (it rides its text's tilt) yet
|
|
1416
|
+
* offers no rotate gesture. */
|
|
1399
1417
|
declare function isRotatableGeom(g: Geom): boolean;
|
|
1400
1418
|
/**
|
|
1401
1419
|
* Rotate a geom by `deltaDeg` (clockwise) about `pivot`.
|
|
@@ -1404,7 +1422,10 @@ declare function isRotatableGeom(g: Geom): boolean;
|
|
|
1404
1422
|
* pivot IS the box centre this is a pure `rot += delta`.
|
|
1405
1423
|
* - VERTEX (`line`/`poly`/`ink`): map every point through the rotation AND bump
|
|
1406
1424
|
* the advisory `rot` (the points stay the authoritative visual).
|
|
1407
|
-
*
|
|
1425
|
+
* Kinds without a rotate VERB are returned unchanged: quads and callouts, and
|
|
1426
|
+
* also the caret — oriented (`isRotatableGeom`) but text-anchored, so its tilt
|
|
1427
|
+
* is authoring metadata that no gesture edits (`geomResetRotation` still
|
|
1428
|
+
* clears it).
|
|
1408
1429
|
*/
|
|
1409
1430
|
declare function geomRotateAbout(g: Geom, pivot: Vec, deltaDeg: number): Geom;
|
|
1410
1431
|
/** The AABB of `rect` rotated `deg` about its own centre. */
|
|
@@ -1520,6 +1541,26 @@ declare function calloutLinePoints(g: Extract<Geom, {
|
|
|
1520
1541
|
*/
|
|
1521
1542
|
declare function shapeRectFor(dragged: Rect, ellipse: boolean, style: Style): Rect;
|
|
1522
1543
|
declare function caretRectFromTextEnd(lineRect: Rect): Rect;
|
|
1544
|
+
/**
|
|
1545
|
+
* Caret box for a text-edit anchor: half the glyph's ink height, centered on
|
|
1546
|
+
* the TRAILING baseline corner in READING direction (`advance` decides which
|
|
1547
|
+
* end — RTL carets land on the visual left), sitting on the baseline. The box
|
|
1548
|
+
* stays axis-aligned; use {@link caretGeomFromAnchor} for the tilt-carrying
|
|
1549
|
+
* geometry.
|
|
1550
|
+
*/
|
|
1551
|
+
declare function caretRectFromAnchor(anchor: TextEndAnchor): Rect;
|
|
1552
|
+
/**
|
|
1553
|
+
* Caret GEOMETRY for a text-edit anchor: the box-family pair — an UNROTATED
|
|
1554
|
+
* box whose centre sits half a caret-size ascent-ward of the trailing
|
|
1555
|
+
* baseline corner, plus `rot` = the text's baseline tilt (deg, CW in y-down
|
|
1556
|
+
* content space). Rotating the box about its centre by `rot` lands it
|
|
1557
|
+
* hugging the rotated baseline, symbol pointing at its text. For upright
|
|
1558
|
+
* anchors this degenerates EXACTLY to {@link caretRectFromAnchor} with no
|
|
1559
|
+
* `rot` key — the dominant case is byte-identical.
|
|
1560
|
+
*/
|
|
1561
|
+
declare function caretGeomFromAnchor(anchor: TextEndAnchor): Extract<Geom, {
|
|
1562
|
+
t: 'caret';
|
|
1563
|
+
}>;
|
|
1523
1564
|
/** Miter limit shared by the bounds math AND the SVG renderer (`stroke-miterlimit`),
|
|
1524
1565
|
* so the computed box and the drawn stroke always agree on where a sharp join
|
|
1525
1566
|
* bevels instead of spiking. 10 = the PDF default (also what the baked /AP uses). */
|
|
@@ -1632,5 +1673,5 @@ declare function scene(item: RenderItem): SceneNode[];
|
|
|
1632
1673
|
*/
|
|
1633
1674
|
declare function straightenInkStroke(points: readonly Vec[], options: InkStraightenOptions): Vec[];
|
|
1634
1675
|
//#endregion
|
|
1635
|
-
export { type AnchorMode, type Annot, type AnnotationFlags, type AnnotationKind, type AnnotationProps, type AnnotationPropsPatch, type BlendMode, type Border, type Callout, type ChromeGeom, type ChromeNode, type ClickCreate, type ClickPlacement, type CreationDraftAnchor, type Cursor, DEFAULT_CHROME_GEOM, DRAWN_FLAGS, type Draft, type Effect, FLAG_KEYS, type FlagBearer, type Geom, type GroupCaps, type Guide, type Handle, type Id, type InkStraightenOptions, KINDS, type KindCaps, type LineEnding, type LineEndings, MIN_DRAG, MITER_LIMIT, type Model, type Msg, NO_ANNOTATION_FLAGS, type Paint, type PatchScope, type PointerInput, type PropKey, type PropSpec, type Quad, RECT_HANDLES, ROTATE_KNOB_OFFSET, type Rect, type RectHandle, type RenderItem, type RenderNode, type SceneNode, type SnapResult, type SnapSettings, type Style, type Subtype, type Target, type TextAlign, type TextBox, type TextStyle, type Vec, type ViewEnv, anchorModeOf, anchorOf, anchoredBox, anchoredGeom, anchoredStrokeWidth, annotContentsEditable, annotInteractive, annotTransformable, applyProps, calloutConnection, calloutLinePoints, canMove, capsFor, caretRectFromTextEnd, centroidOf, chrome, clampRectToBox, clickCreateGeom, cloudyBorderExtent, cloudyPath, computeMoveSnap, contentToPdfPoint, contentToPdfRect, creationDraftAnchor, cursorAt, defaultsFor, expandGroups, fitStampBox, flagsEqual, geomBounds, geomDragHandle, geomHandles, geomHit, geomPdfBounds, geomResetRotation, geomRotateAbout, geomRotation, geomScaleAbout, geomScene, geomTranslate, geomVisualBounds, groupCaps, groupKeyOf, groupMembers, groupResizeAnchor, groupResizeBox, groupResizeFactors, hitTest, initialModel, initialStyle, initialTextStyle, interactive, isRotatableGeom, isSelectable, mergeFlags, normalizeDeg, obbFromGeom, pageItems, pdfToContentPoint, pdfToContentRect, placeRotateKnob, pointInQuad, propsFor, quadIntersectsRect, readProp, rectFromPoints, resolveClickPlacement, rotateDraftDelta, rotateKnob, rotatedAabb, rotatedHandleCursor, scene, selectedItems, selectionAnchor, selectionBounds, selectionBoundsOnPage, selectionCenter, selectionKnob, selectionQuad, shapeRectFor, sharedProps, straightenInkStroke, styleFromProps, textBoxes, textStyleFromProps, transposedAboutCenter, unanchoredGeom, unionRect, update, uprightAnchoredRect, uprightRotation, viewable };
|
|
1676
|
+
export { type AnchorMode, type Annot, type AnnotationFlags, type AnnotationKind, type AnnotationProps, type AnnotationPropsPatch, type BlendMode, type Border, type Callout, type ChromeGeom, type ChromeNode, type ClickCreate, type ClickPlacement, type CreationDraftAnchor, type Cursor, DEFAULT_CHROME_GEOM, DRAWN_FLAGS, type Draft, type Effect, FLAG_KEYS, type FlagBearer, type Geom, type GroupCaps, type Guide, type Handle, type Id, type InkStraightenOptions, KINDS, type KindCaps, type LineEnding, type LineEndings, MIN_DRAG, MITER_LIMIT, type Model, type Msg, NO_ANNOTATION_FLAGS, type Paint, type PatchScope, type PointerInput, type PropKey, type PropSpec, type Quad, RECT_HANDLES, ROTATE_KNOB_OFFSET, type Rect, type RectHandle, type RenderItem, type RenderNode, type SceneNode, type SnapResult, type SnapSettings, type Style, type Subtype, type Target, type TextAlign, type TextBox, type TextEndAnchor, type TextQuad, type TextStyle, type Vec, type ViewEnv, anchorModeOf, anchorOf, anchoredBox, anchoredGeom, anchoredStrokeWidth, annotContentsEditable, annotInteractive, annotTransformable, applyProps, calloutConnection, calloutLinePoints, canMove, capsFor, caretGeomFromAnchor, caretRectFromAnchor, caretRectFromTextEnd, centroidOf, chrome, clampRectToBox, clickCreateGeom, cloudyBorderExtent, cloudyPath, computeMoveSnap, contentToPdfPoint, contentToPdfRect, creationDraftAnchor, cursorAt, defaultsFor, expandGroups, fitStampBox, flagsEqual, geomBounds, geomDragHandle, geomHandles, geomHit, geomPdfBounds, geomResetRotation, geomRotateAbout, geomRotation, geomScaleAbout, geomScene, geomTranslate, geomVisualBounds, groupCaps, groupKeyOf, groupMembers, groupResizeAnchor, groupResizeBox, groupResizeFactors, hitTest, initialModel, initialStyle, initialTextStyle, interactive, isRotatableGeom, isSelectable, mergeFlags, normalizeDeg, obbFromGeom, pageItems, pdfToContentPoint, pdfToContentRect, placeRotateKnob, pointInQuad, propsFor, quadIntersectsRect, readProp, rectFromPoints, resolveClickPlacement, rotateDraftDelta, rotateKnob, rotatedAabb, rotatedHandleCursor, scene, selectedItems, selectionAnchor, selectionBounds, selectionBoundsOnPage, selectionCenter, selectionKnob, selectionQuad, shapeRectFor, sharedProps, straightenInkStroke, styleFromProps, textBoxes, textStyleFromProps, transposedAboutCenter, unanchoredGeom, unionRect, update, uprightAnchoredRect, uprightRotation, viewable };
|
|
1636
1677
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AnnotationDTO, AnnotationFlags, AnnotationFlags as AnnotationFlags$1, AnnotationRef, BlendMode, BlendMode as BlendMode$1, CaretIntent, InkIntent, LineEnding, LineEndings, NO_ANNOTATION_FLAGS, PdfLinkTarget, PdfPoint, PdfRect, StrikeoutIntent } from "@embedpdf/engine-core/runtime";
|
|
2
|
-
import { PageRotation, Point, Rect as Rect$1, Size } from "@embedpdf/core-geometry";
|
|
2
|
+
import { PageRotation, Point, Rect as Rect$1, Size, TextQuad, TextQuad as TextQuad$1 } from "@embedpdf/core-geometry";
|
|
3
3
|
import { PageObjectNumber } from "@embedpdf/core";
|
|
4
4
|
//#region src/flags.d.ts
|
|
5
5
|
/** The `/F` every freshly DRAWN annotation starts with: `print` set (Acrobat
|
|
@@ -42,8 +42,19 @@ declare const annotContentsEditable: (a: FlagBearer) => boolean;
|
|
|
42
42
|
*/
|
|
43
43
|
type Vec = Point;
|
|
44
44
|
type Rect = Rect$1;
|
|
45
|
-
/** Four content-space points
|
|
45
|
+
/** Four POSITIONAL content-space points — selection chrome / OBB corners.
|
|
46
|
+
* Text-markup geometry uses the corner-NAMED {@link TextQuad} instead. */
|
|
46
47
|
type Quad = [Vec, Vec, Vec, Vec];
|
|
48
|
+
/**
|
|
49
|
+
* Where a text-edit annotation (caret / replace-text) anchors: the boundary
|
|
50
|
+
* glyph's oriented cell plus the READING direction along its baseline
|
|
51
|
+
* (+1 = toward `end`, −1 = toward `start` — sequence-derived, never inferred
|
|
52
|
+
* from geometry).
|
|
53
|
+
*/
|
|
54
|
+
interface TextEndAnchor {
|
|
55
|
+
glyphQuad: TextQuad$1;
|
|
56
|
+
advance: 1 | -1;
|
|
57
|
+
}
|
|
47
58
|
type Id = string;
|
|
48
59
|
type Cursor = string;
|
|
49
60
|
type PolySubtype = 'polygon' | 'polyline';
|
|
@@ -115,10 +126,11 @@ type Geom = {
|
|
|
115
126
|
rot?: number;
|
|
116
127
|
} | {
|
|
117
128
|
t: 'quads';
|
|
118
|
-
quads:
|
|
129
|
+
quads: TextQuad$1[];
|
|
119
130
|
} | {
|
|
120
131
|
t: 'caret';
|
|
121
132
|
rect: Rect;
|
|
133
|
+
rot?: number;
|
|
122
134
|
} | {
|
|
123
135
|
t: 'ink';
|
|
124
136
|
strokes: Vec[][];
|
|
@@ -454,7 +466,7 @@ interface MarkupPreview {
|
|
|
454
466
|
subtype: Subtype;
|
|
455
467
|
/** Defaults key, distinct from subtype for presets such as replace-text. */
|
|
456
468
|
preset: string;
|
|
457
|
-
byPage: Record<number,
|
|
469
|
+
byPage: Record<number, TextQuad$1[]>;
|
|
458
470
|
}
|
|
459
471
|
/** Anchor + affordance state for UI that controls an in-progress creation draft. */
|
|
460
472
|
interface CreationDraftAnchor {
|
|
@@ -613,26 +625,26 @@ type Msg = {
|
|
|
613
625
|
} | {
|
|
614
626
|
t: 'createCaret';
|
|
615
627
|
pon: PageObjectNumber;
|
|
616
|
-
|
|
628
|
+
anchor: TextEndAnchor;
|
|
617
629
|
flags?: Partial<AnnotationFlags$1>;
|
|
618
630
|
} | {
|
|
619
631
|
t: 'createReplaceText';
|
|
620
632
|
pon: PageObjectNumber;
|
|
621
|
-
|
|
622
|
-
|
|
633
|
+
quads: TextQuad$1[];
|
|
634
|
+
anchor: TextEndAnchor;
|
|
623
635
|
preset?: string;
|
|
624
636
|
} | {
|
|
625
637
|
t: 'createMarkup';
|
|
626
638
|
subtype: Subtype;
|
|
627
639
|
pon: PageObjectNumber;
|
|
628
|
-
|
|
640
|
+
quads: TextQuad$1[];
|
|
629
641
|
preset?: string;
|
|
630
642
|
/** The tool's `/F` seed — merged over {@link DRAWN_FLAGS} at commit. */
|
|
631
643
|
flags?: Partial<AnnotationFlags$1>;
|
|
632
644
|
} | {
|
|
633
645
|
t: 'setMarkupPreview';
|
|
634
646
|
subtype: Subtype;
|
|
635
|
-
|
|
647
|
+
quadsByPage: Record<number, TextQuad$1[]>;
|
|
636
648
|
preset?: string;
|
|
637
649
|
} | {
|
|
638
650
|
t: 'clearMarkupPreview';
|
|
@@ -1386,7 +1398,10 @@ declare const DEFAULT_CHROME_GEOM: {
|
|
|
1386
1398
|
};
|
|
1387
1399
|
/** Normalize degrees into `[0, 360)`. */
|
|
1388
1400
|
declare const normalizeDeg: (d: number) => number;
|
|
1389
|
-
/** A geom's applied rotation (deg), or 0 for the non-rotatable kinds.
|
|
1401
|
+
/** A geom's applied rotation (deg), or 0 for the non-rotatable kinds. A
|
|
1402
|
+
* caret's `rot` is AUTHORING metadata (its text's baseline tilt): reported
|
|
1403
|
+
* here so the renderer and selection chrome follow it, while the caret's
|
|
1404
|
+
* caps (not movable/resizable) keep every rotate gesture away from it. */
|
|
1390
1405
|
declare function geomRotation(g: Geom): number;
|
|
1391
1406
|
/**
|
|
1392
1407
|
* The rotation PIVOT for a single shape: a box turns about its own `rect`
|
|
@@ -1395,7 +1410,10 @@ declare function geomRotation(g: Geom): number;
|
|
|
1395
1410
|
* stays cleanly additive across gestures and reset is exact.
|
|
1396
1411
|
*/
|
|
1397
1412
|
declare function centroidOf(g: Geom): Vec;
|
|
1398
|
-
/**
|
|
1413
|
+
/** Does the geometry carry a meaningful `rot` (an oriented local box exists)?
|
|
1414
|
+
* ORIENTATION is a geometry fact; whether the USER may rotate is the separate
|
|
1415
|
+
* `caps.rotatable` gate — a caret is oriented (it rides its text's tilt) yet
|
|
1416
|
+
* offers no rotate gesture. */
|
|
1399
1417
|
declare function isRotatableGeom(g: Geom): boolean;
|
|
1400
1418
|
/**
|
|
1401
1419
|
* Rotate a geom by `deltaDeg` (clockwise) about `pivot`.
|
|
@@ -1404,7 +1422,10 @@ declare function isRotatableGeom(g: Geom): boolean;
|
|
|
1404
1422
|
* pivot IS the box centre this is a pure `rot += delta`.
|
|
1405
1423
|
* - VERTEX (`line`/`poly`/`ink`): map every point through the rotation AND bump
|
|
1406
1424
|
* the advisory `rot` (the points stay the authoritative visual).
|
|
1407
|
-
*
|
|
1425
|
+
* Kinds without a rotate VERB are returned unchanged: quads and callouts, and
|
|
1426
|
+
* also the caret — oriented (`isRotatableGeom`) but text-anchored, so its tilt
|
|
1427
|
+
* is authoring metadata that no gesture edits (`geomResetRotation` still
|
|
1428
|
+
* clears it).
|
|
1408
1429
|
*/
|
|
1409
1430
|
declare function geomRotateAbout(g: Geom, pivot: Vec, deltaDeg: number): Geom;
|
|
1410
1431
|
/** The AABB of `rect` rotated `deg` about its own centre. */
|
|
@@ -1520,6 +1541,26 @@ declare function calloutLinePoints(g: Extract<Geom, {
|
|
|
1520
1541
|
*/
|
|
1521
1542
|
declare function shapeRectFor(dragged: Rect, ellipse: boolean, style: Style): Rect;
|
|
1522
1543
|
declare function caretRectFromTextEnd(lineRect: Rect): Rect;
|
|
1544
|
+
/**
|
|
1545
|
+
* Caret box for a text-edit anchor: half the glyph's ink height, centered on
|
|
1546
|
+
* the TRAILING baseline corner in READING direction (`advance` decides which
|
|
1547
|
+
* end — RTL carets land on the visual left), sitting on the baseline. The box
|
|
1548
|
+
* stays axis-aligned; use {@link caretGeomFromAnchor} for the tilt-carrying
|
|
1549
|
+
* geometry.
|
|
1550
|
+
*/
|
|
1551
|
+
declare function caretRectFromAnchor(anchor: TextEndAnchor): Rect;
|
|
1552
|
+
/**
|
|
1553
|
+
* Caret GEOMETRY for a text-edit anchor: the box-family pair — an UNROTATED
|
|
1554
|
+
* box whose centre sits half a caret-size ascent-ward of the trailing
|
|
1555
|
+
* baseline corner, plus `rot` = the text's baseline tilt (deg, CW in y-down
|
|
1556
|
+
* content space). Rotating the box about its centre by `rot` lands it
|
|
1557
|
+
* hugging the rotated baseline, symbol pointing at its text. For upright
|
|
1558
|
+
* anchors this degenerates EXACTLY to {@link caretRectFromAnchor} with no
|
|
1559
|
+
* `rot` key — the dominant case is byte-identical.
|
|
1560
|
+
*/
|
|
1561
|
+
declare function caretGeomFromAnchor(anchor: TextEndAnchor): Extract<Geom, {
|
|
1562
|
+
t: 'caret';
|
|
1563
|
+
}>;
|
|
1523
1564
|
/** Miter limit shared by the bounds math AND the SVG renderer (`stroke-miterlimit`),
|
|
1524
1565
|
* so the computed box and the drawn stroke always agree on where a sharp join
|
|
1525
1566
|
* bevels instead of spiking. 10 = the PDF default (also what the baked /AP uses). */
|
|
@@ -1632,5 +1673,5 @@ declare function scene(item: RenderItem): SceneNode[];
|
|
|
1632
1673
|
*/
|
|
1633
1674
|
declare function straightenInkStroke(points: readonly Vec[], options: InkStraightenOptions): Vec[];
|
|
1634
1675
|
//#endregion
|
|
1635
|
-
export { type AnchorMode, type Annot, type AnnotationFlags, type AnnotationKind, type AnnotationProps, type AnnotationPropsPatch, type BlendMode, type Border, type Callout, type ChromeGeom, type ChromeNode, type ClickCreate, type ClickPlacement, type CreationDraftAnchor, type Cursor, DEFAULT_CHROME_GEOM, DRAWN_FLAGS, type Draft, type Effect, FLAG_KEYS, type FlagBearer, type Geom, type GroupCaps, type Guide, type Handle, type Id, type InkStraightenOptions, KINDS, type KindCaps, type LineEnding, type LineEndings, MIN_DRAG, MITER_LIMIT, type Model, type Msg, NO_ANNOTATION_FLAGS, type Paint, type PatchScope, type PointerInput, type PropKey, type PropSpec, type Quad, RECT_HANDLES, ROTATE_KNOB_OFFSET, type Rect, type RectHandle, type RenderItem, type RenderNode, type SceneNode, type SnapResult, type SnapSettings, type Style, type Subtype, type Target, type TextAlign, type TextBox, type TextStyle, type Vec, type ViewEnv, anchorModeOf, anchorOf, anchoredBox, anchoredGeom, anchoredStrokeWidth, annotContentsEditable, annotInteractive, annotTransformable, applyProps, calloutConnection, calloutLinePoints, canMove, capsFor, caretRectFromTextEnd, centroidOf, chrome, clampRectToBox, clickCreateGeom, cloudyBorderExtent, cloudyPath, computeMoveSnap, contentToPdfPoint, contentToPdfRect, creationDraftAnchor, cursorAt, defaultsFor, expandGroups, fitStampBox, flagsEqual, geomBounds, geomDragHandle, geomHandles, geomHit, geomPdfBounds, geomResetRotation, geomRotateAbout, geomRotation, geomScaleAbout, geomScene, geomTranslate, geomVisualBounds, groupCaps, groupKeyOf, groupMembers, groupResizeAnchor, groupResizeBox, groupResizeFactors, hitTest, initialModel, initialStyle, initialTextStyle, interactive, isRotatableGeom, isSelectable, mergeFlags, normalizeDeg, obbFromGeom, pageItems, pdfToContentPoint, pdfToContentRect, placeRotateKnob, pointInQuad, propsFor, quadIntersectsRect, readProp, rectFromPoints, resolveClickPlacement, rotateDraftDelta, rotateKnob, rotatedAabb, rotatedHandleCursor, scene, selectedItems, selectionAnchor, selectionBounds, selectionBoundsOnPage, selectionCenter, selectionKnob, selectionQuad, shapeRectFor, sharedProps, straightenInkStroke, styleFromProps, textBoxes, textStyleFromProps, transposedAboutCenter, unanchoredGeom, unionRect, update, uprightAnchoredRect, uprightRotation, viewable };
|
|
1676
|
+
export { type AnchorMode, type Annot, type AnnotationFlags, type AnnotationKind, type AnnotationProps, type AnnotationPropsPatch, type BlendMode, type Border, type Callout, type ChromeGeom, type ChromeNode, type ClickCreate, type ClickPlacement, type CreationDraftAnchor, type Cursor, DEFAULT_CHROME_GEOM, DRAWN_FLAGS, type Draft, type Effect, FLAG_KEYS, type FlagBearer, type Geom, type GroupCaps, type Guide, type Handle, type Id, type InkStraightenOptions, KINDS, type KindCaps, type LineEnding, type LineEndings, MIN_DRAG, MITER_LIMIT, type Model, type Msg, NO_ANNOTATION_FLAGS, type Paint, type PatchScope, type PointerInput, type PropKey, type PropSpec, type Quad, RECT_HANDLES, ROTATE_KNOB_OFFSET, type Rect, type RectHandle, type RenderItem, type RenderNode, type SceneNode, type SnapResult, type SnapSettings, type Style, type Subtype, type Target, type TextAlign, type TextBox, type TextEndAnchor, type TextQuad, type TextStyle, type Vec, type ViewEnv, anchorModeOf, anchorOf, anchoredBox, anchoredGeom, anchoredStrokeWidth, annotContentsEditable, annotInteractive, annotTransformable, applyProps, calloutConnection, calloutLinePoints, canMove, capsFor, caretGeomFromAnchor, caretRectFromAnchor, caretRectFromTextEnd, centroidOf, chrome, clampRectToBox, clickCreateGeom, cloudyBorderExtent, cloudyPath, computeMoveSnap, contentToPdfPoint, contentToPdfRect, creationDraftAnchor, cursorAt, defaultsFor, expandGroups, fitStampBox, flagsEqual, geomBounds, geomDragHandle, geomHandles, geomHit, geomPdfBounds, geomResetRotation, geomRotateAbout, geomRotation, geomScaleAbout, geomScene, geomTranslate, geomVisualBounds, groupCaps, groupKeyOf, groupMembers, groupResizeAnchor, groupResizeBox, groupResizeFactors, hitTest, initialModel, initialStyle, initialTextStyle, interactive, isRotatableGeom, isSelectable, mergeFlags, normalizeDeg, obbFromGeom, pageItems, pdfToContentPoint, pdfToContentRect, placeRotateKnob, pointInQuad, propsFor, quadIntersectsRect, readProp, rectFromPoints, resolveClickPlacement, rotateDraftDelta, rotateKnob, rotatedAabb, rotatedHandleCursor, scene, selectedItems, selectionAnchor, selectionBounds, selectionBoundsOnPage, selectionCenter, selectionKnob, selectionQuad, shapeRectFor, sharedProps, straightenInkStroke, styleFromProps, textBoxes, textStyleFromProps, transposedAboutCenter, unanchoredGeom, unionRect, update, uprightAnchoredRect, uprightRotation, viewable };
|
|
1636
1677
|
//# sourceMappingURL=index.d.ts.map
|