@embedpdf/plugin-annotation 2.7.0 → 2.8.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 (128) hide show
  1. package/dist/index.cjs +1 -1
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.js +335 -82
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/annotation-plugin.d.ts +2 -0
  6. package/dist/lib/handlers/index.d.ts +4 -0
  7. package/dist/lib/handlers/insert-text.handler.d.ts +8 -0
  8. package/dist/lib/handlers/replace-text.handler.d.ts +9 -0
  9. package/dist/lib/handlers/selection-utils.d.ts +7 -0
  10. package/dist/lib/handlers/text-markup.handler.d.ts +7 -0
  11. package/dist/lib/handlers/text.handler.d.ts +3 -0
  12. package/dist/lib/handlers/types.d.ts +12 -0
  13. package/dist/lib/helpers.d.ts +2 -1
  14. package/dist/lib/selectors.d.ts +6 -1
  15. package/dist/lib/tools/default-tools.d.ts +151 -6
  16. package/dist/lib/tools/tools-utils.d.ts +2 -0
  17. package/dist/lib/tools/types.d.ts +2 -0
  18. package/dist/lib/types.d.ts +1 -0
  19. package/dist/preact/index.cjs +1 -1
  20. package/dist/preact/index.cjs.map +1 -1
  21. package/dist/preact/index.js +277 -43
  22. package/dist/preact/index.js.map +1 -1
  23. package/dist/react/index.cjs +1 -1
  24. package/dist/react/index.cjs.map +1 -1
  25. package/dist/react/index.js +277 -43
  26. package/dist/react/index.js.map +1 -1
  27. package/dist/shared/annotation-bounds.d.ts +14 -0
  28. package/dist/shared/components/annotations/caret.d.ts +24 -0
  29. package/dist/shared/components/annotations/circle.d.ts +2 -2
  30. package/dist/shared/components/annotations/free-text.d.ts +2 -2
  31. package/dist/shared/components/annotations/ink.d.ts +2 -2
  32. package/dist/shared/components/annotations/line.d.ts +2 -2
  33. package/dist/shared/components/annotations/link.d.ts +2 -2
  34. package/dist/shared/components/annotations/polygon.d.ts +2 -2
  35. package/dist/shared/components/annotations/polyline.d.ts +8 -4
  36. package/dist/shared/components/annotations/square.d.ts +2 -2
  37. package/dist/shared/components/annotations/stamp.d.ts +2 -2
  38. package/dist/shared/components/annotations/text.d.ts +14 -0
  39. package/dist/shared/components/text-markup/highlight.d.ts +2 -2
  40. package/dist/shared/components/text-markup/squiggly.d.ts +2 -2
  41. package/dist/shared/components/text-markup/strikeout.d.ts +2 -2
  42. package/dist/shared/components/text-markup/underline.d.ts +2 -2
  43. package/dist/shared/components/types.d.ts +2 -2
  44. package/dist/shared-preact/annotation-bounds.d.ts +14 -0
  45. package/dist/shared-preact/components/annotations/caret.d.ts +24 -0
  46. package/dist/shared-preact/components/annotations/circle.d.ts +2 -2
  47. package/dist/shared-preact/components/annotations/free-text.d.ts +2 -2
  48. package/dist/shared-preact/components/annotations/ink.d.ts +2 -2
  49. package/dist/shared-preact/components/annotations/line.d.ts +2 -2
  50. package/dist/shared-preact/components/annotations/link.d.ts +2 -2
  51. package/dist/shared-preact/components/annotations/polygon.d.ts +2 -2
  52. package/dist/shared-preact/components/annotations/polyline.d.ts +8 -4
  53. package/dist/shared-preact/components/annotations/square.d.ts +2 -2
  54. package/dist/shared-preact/components/annotations/stamp.d.ts +2 -2
  55. package/dist/shared-preact/components/annotations/text.d.ts +14 -0
  56. package/dist/shared-preact/components/text-markup/highlight.d.ts +2 -2
  57. package/dist/shared-preact/components/text-markup/squiggly.d.ts +2 -2
  58. package/dist/shared-preact/components/text-markup/strikeout.d.ts +2 -2
  59. package/dist/shared-preact/components/text-markup/underline.d.ts +2 -2
  60. package/dist/shared-preact/components/types.d.ts +2 -2
  61. package/dist/shared-react/annotation-bounds.d.ts +14 -0
  62. package/dist/shared-react/components/annotations/caret.d.ts +24 -0
  63. package/dist/shared-react/components/annotations/circle.d.ts +2 -2
  64. package/dist/shared-react/components/annotations/free-text.d.ts +2 -2
  65. package/dist/shared-react/components/annotations/ink.d.ts +2 -2
  66. package/dist/shared-react/components/annotations/line.d.ts +2 -2
  67. package/dist/shared-react/components/annotations/link.d.ts +2 -2
  68. package/dist/shared-react/components/annotations/polygon.d.ts +2 -2
  69. package/dist/shared-react/components/annotations/polyline.d.ts +8 -4
  70. package/dist/shared-react/components/annotations/square.d.ts +2 -2
  71. package/dist/shared-react/components/annotations/stamp.d.ts +2 -2
  72. package/dist/shared-react/components/annotations/text.d.ts +14 -0
  73. package/dist/shared-react/components/text-markup/highlight.d.ts +2 -2
  74. package/dist/shared-react/components/text-markup/squiggly.d.ts +2 -2
  75. package/dist/shared-react/components/text-markup/strikeout.d.ts +2 -2
  76. package/dist/shared-react/components/text-markup/underline.d.ts +2 -2
  77. package/dist/shared-react/components/types.d.ts +2 -2
  78. package/dist/shared-vue/annotation-bounds.d.ts +14 -0
  79. package/dist/svelte/components/annotations/Caret.svelte.d.ts +13 -0
  80. package/dist/svelte/components/annotations/Circle.svelte.d.ts +1 -1
  81. package/dist/svelte/components/annotations/FreeText.svelte.d.ts +1 -1
  82. package/dist/svelte/components/annotations/Ink.svelte.d.ts +1 -1
  83. package/dist/svelte/components/annotations/Line.svelte.d.ts +1 -1
  84. package/dist/svelte/components/annotations/Link.svelte.d.ts +1 -1
  85. package/dist/svelte/components/annotations/Polygon.svelte.d.ts +1 -1
  86. package/dist/svelte/components/annotations/Polyline.svelte.d.ts +4 -2
  87. package/dist/svelte/components/annotations/Square.svelte.d.ts +1 -1
  88. package/dist/svelte/components/annotations/Stamp.svelte.d.ts +1 -1
  89. package/dist/svelte/components/annotations/Text.svelte.d.ts +10 -0
  90. package/dist/svelte/components/annotations/index.d.ts +1 -0
  91. package/dist/svelte/components/renderers/CaretRenderer.svelte.d.ts +5 -0
  92. package/dist/svelte/components/renderers/TextRenderer.svelte.d.ts +5 -0
  93. package/dist/svelte/components/text-markup/Highlight.svelte.d.ts +1 -1
  94. package/dist/svelte/components/text-markup/Squiggly.svelte.d.ts +1 -1
  95. package/dist/svelte/components/text-markup/Strikeout.svelte.d.ts +1 -1
  96. package/dist/svelte/components/text-markup/Underline.svelte.d.ts +1 -1
  97. package/dist/svelte/context/types.d.ts +1 -1
  98. package/dist/svelte/index.cjs +1 -1
  99. package/dist/svelte/index.cjs.map +1 -1
  100. package/dist/svelte/index.js +350 -147
  101. package/dist/svelte/index.js.map +1 -1
  102. package/dist/vue/components/annotation-container.vue.d.ts +2 -2
  103. package/dist/vue/components/annotation-layer.vue.d.ts +1 -1
  104. package/dist/vue/components/annotations/caret.vue.d.ts +24 -0
  105. package/dist/vue/components/annotations/circle.vue.d.ts +2 -2
  106. package/dist/vue/components/annotations/free-text.vue.d.ts +2 -2
  107. package/dist/vue/components/annotations/index.d.ts +1 -0
  108. package/dist/vue/components/annotations/ink.vue.d.ts +2 -2
  109. package/dist/vue/components/annotations/line.vue.d.ts +2 -2
  110. package/dist/vue/components/annotations/link.vue.d.ts +2 -2
  111. package/dist/vue/components/annotations/polygon.vue.d.ts +2 -2
  112. package/dist/vue/components/annotations/polyline.vue.d.ts +8 -3
  113. package/dist/vue/components/annotations/square.vue.d.ts +2 -2
  114. package/dist/vue/components/annotations/stamp.vue.d.ts +2 -2
  115. package/dist/vue/components/annotations/text.vue.d.ts +14 -0
  116. package/dist/vue/components/annotations.vue.d.ts +1 -1
  117. package/dist/vue/components/renderers/caret-renderer.vue.d.ts +6 -0
  118. package/dist/vue/components/renderers/text-renderer.vue.d.ts +6 -0
  119. package/dist/vue/components/text-markup/highlight.vue.d.ts +2 -2
  120. package/dist/vue/components/text-markup/squiggly.vue.d.ts +2 -2
  121. package/dist/vue/components/text-markup/strikeout.vue.d.ts +2 -2
  122. package/dist/vue/components/text-markup/underline.vue.d.ts +2 -2
  123. package/dist/vue/context/types.d.ts +1 -1
  124. package/dist/vue/index.cjs +1 -1
  125. package/dist/vue/index.cjs.map +1 -1
  126. package/dist/vue/index.js +535 -249
  127. package/dist/vue/index.js.map +1 -1
  128. package/package.json +10 -10
@@ -1,4 +1,4 @@
1
- import { MouseEvent, TouchEvent } from '../../../react/adapter.ts';
1
+ import { MouseEvent } from '../../../react/adapter.ts';
2
2
  import { PdfAnnotationBorderStyle, Rect } from '@embedpdf/models';
3
3
  interface CircleProps {
4
4
  /** Whether the annotation is selected */
@@ -20,7 +20,7 @@ interface CircleProps {
20
20
  /** Current page zoom factor */
21
21
  scale: number;
22
22
  /** Click handler (used for selection) */
23
- onClick?: (e: MouseEvent<SVGElement> | TouchEvent<SVGElement>) => void;
23
+ onClick?: (e: MouseEvent<SVGElement>) => void;
24
24
  /** When true, AP canvas provides the visual; only render hit area */
25
25
  appearanceActive?: boolean;
26
26
  }
@@ -1,4 +1,4 @@
1
- import { MouseEvent, TouchEvent } from '../../../react/adapter.ts';
1
+ import { MouseEvent } from '../../../react/adapter.ts';
2
2
  import { PdfFreeTextAnnoObject } from '@embedpdf/models';
3
3
  import { TrackedAnnotation } from '../../../lib/index.ts';
4
4
  interface FreeTextProps {
@@ -8,7 +8,7 @@ interface FreeTextProps {
8
8
  annotation: TrackedAnnotation<PdfFreeTextAnnoObject>;
9
9
  pageIndex: number;
10
10
  scale: number;
11
- onClick?: (e: MouseEvent<HTMLDivElement> | TouchEvent<HTMLDivElement>) => void;
11
+ onClick?: (e: MouseEvent<HTMLDivElement>) => void;
12
12
  onDoubleClick?: (event: MouseEvent<HTMLDivElement>) => void;
13
13
  /** When true, AP canvas provides the visual; hide text content */
14
14
  appearanceActive?: boolean;
@@ -1,4 +1,4 @@
1
- import { MouseEvent, TouchEvent } from '../../../react/adapter.ts';
1
+ import { MouseEvent } from '../../../react/adapter.ts';
2
2
  import { PdfInkListObject, Rect } from '@embedpdf/models';
3
3
  interface InkProps {
4
4
  /** Whether the annotation is selected */
@@ -16,7 +16,7 @@ interface InkProps {
16
16
  /** Page zoom factor */
17
17
  scale: number;
18
18
  /** Callback for when the annotation is clicked */
19
- onClick?: (e: MouseEvent<SVGPathElement> | TouchEvent<SVGPathElement>) => void;
19
+ onClick?: (e: MouseEvent<SVGPathElement>) => void;
20
20
  /** When true, AP canvas provides the visual; only render hit area */
21
21
  appearanceActive?: boolean;
22
22
  }
@@ -1,4 +1,4 @@
1
- import { MouseEvent, TouchEvent } from '../../../react/adapter.ts';
1
+ import { MouseEvent } from '../../../react/adapter.ts';
2
2
  import { Rect, LinePoints, LineEndings, PdfAnnotationBorderStyle } from '@embedpdf/models';
3
3
  interface LineProps {
4
4
  /** interior colour */
@@ -22,7 +22,7 @@ interface LineProps {
22
22
  /** Current page zoom factor */
23
23
  scale: number;
24
24
  /** Click handler (used for selection) */
25
- onClick?: (e: MouseEvent<SVGElement> | TouchEvent<SVGElement>) => void;
25
+ onClick?: (e: MouseEvent<SVGElement>) => void;
26
26
  /** Whether the annotation is selected */
27
27
  isSelected: boolean;
28
28
  /** When true, AP canvas provides the visual; only render hit area */
@@ -1,4 +1,4 @@
1
- import { MouseEvent, TouchEvent } from '../../../react/adapter.ts';
1
+ import { MouseEvent } from '../../../react/adapter.ts';
2
2
  import { PdfAnnotationBorderStyle, Rect } from '@embedpdf/models';
3
3
  interface LinkProps {
4
4
  /** Whether the annotation is selected */
@@ -16,7 +16,7 @@ interface LinkProps {
16
16
  /** Current page zoom factor */
17
17
  scale: number;
18
18
  /** Click handler (used for selection) */
19
- onClick?: (e: MouseEvent<SVGElement> | TouchEvent<SVGElement>) => void;
19
+ onClick?: (e: MouseEvent<SVGElement>) => void;
20
20
  /** Whether this link has an IRT (In Reply To) reference - disables direct interaction */
21
21
  hasIRT?: boolean;
22
22
  }
@@ -1,4 +1,4 @@
1
- import { MouseEvent, TouchEvent } from '../../../react/adapter.ts';
1
+ import { MouseEvent } from '../../../react/adapter.ts';
2
2
  import { Rect, Position, PdfAnnotationBorderStyle } from '@embedpdf/models';
3
3
  interface PolygonProps {
4
4
  rect: Rect;
@@ -11,7 +11,7 @@ interface PolygonProps {
11
11
  strokeDashArray?: number[];
12
12
  scale: number;
13
13
  isSelected: boolean;
14
- onClick?: (e: MouseEvent<SVGElement> | TouchEvent<SVGElement>) => void;
14
+ onClick?: (e: MouseEvent<SVGElement>) => void;
15
15
  currentVertex?: Position;
16
16
  handleSize?: number;
17
17
  /** When true, AP canvas provides the visual; only render hit area */
@@ -1,5 +1,5 @@
1
- import { MouseEvent, TouchEvent } from '../../../react/adapter.ts';
2
- import { Rect, Position, LineEndings } from '@embedpdf/models';
1
+ import { MouseEvent } from '../../../react/adapter.ts';
2
+ import { Rect, Position, LineEndings, PdfAnnotationBorderStyle } from '@embedpdf/models';
3
3
  interface PolylineProps {
4
4
  rect: Rect;
5
5
  vertices: Position[];
@@ -7,13 +7,17 @@ interface PolylineProps {
7
7
  strokeColor?: string;
8
8
  opacity?: number;
9
9
  strokeWidth: number;
10
+ /** Stroke style */
11
+ strokeStyle?: PdfAnnotationBorderStyle;
12
+ /** Stroke dash array */
13
+ strokeDashArray?: number[];
10
14
  scale: number;
11
15
  isSelected: boolean;
12
- onClick?: (e: MouseEvent<SVGElement> | TouchEvent<SVGElement>) => void;
16
+ onClick?: (e: MouseEvent<SVGElement>) => void;
13
17
  /** Optional start & end endings */
14
18
  lineEndings?: LineEndings;
15
19
  /** When true, AP canvas provides the visual; only render hit area */
16
20
  appearanceActive?: boolean;
17
21
  }
18
- export declare function Polyline({ rect, vertices, color, strokeColor, opacity, strokeWidth, scale, isSelected, onClick, lineEndings, appearanceActive, }: PolylineProps): JSX.Element;
22
+ export declare function Polyline({ rect, vertices, color, strokeColor, opacity, strokeWidth, strokeStyle, strokeDashArray, scale, isSelected, onClick, lineEndings, appearanceActive, }: PolylineProps): JSX.Element;
19
23
  export {};
@@ -1,4 +1,4 @@
1
- import { MouseEvent, TouchEvent } from '../../../react/adapter.ts';
1
+ import { MouseEvent } from '../../../react/adapter.ts';
2
2
  import { PdfAnnotationBorderStyle, Rect } from '@embedpdf/models';
3
3
  interface SquareProps {
4
4
  /** Whether the annotation is selected */
@@ -20,7 +20,7 @@ interface SquareProps {
20
20
  /** Current page zoom factor */
21
21
  scale: number;
22
22
  /** Click handler (used for selection) */
23
- onClick?: (e: MouseEvent<SVGElement> | TouchEvent<SVGElement>) => void;
23
+ onClick?: (e: MouseEvent<SVGElement>) => void;
24
24
  /** When true, AP canvas provides the visual; only render hit area */
25
25
  appearanceActive?: boolean;
26
26
  }
@@ -1,4 +1,4 @@
1
- import { MouseEvent, TouchEvent } from '../../../react/adapter.ts';
1
+ import { MouseEvent } from '../../../react/adapter.ts';
2
2
  import { PdfStampAnnoObject } from '@embedpdf/models';
3
3
  import { TrackedAnnotation } from '../../../lib/index.ts';
4
4
  interface StampProps {
@@ -7,7 +7,7 @@ interface StampProps {
7
7
  documentId: string;
8
8
  pageIndex: number;
9
9
  scale: number;
10
- onClick: (e: MouseEvent<HTMLDivElement> | TouchEvent<HTMLDivElement>) => void;
10
+ onClick: (e: MouseEvent<HTMLDivElement>) => void;
11
11
  }
12
12
  export declare function Stamp({ isSelected, annotation, documentId, pageIndex, scale, onClick, }: StampProps): import("react/jsx-runtime").JSX.Element;
13
13
  export {};
@@ -0,0 +1,14 @@
1
+ import { MouseEvent } from '../../../react/adapter.ts';
2
+ interface TextProps {
3
+ isSelected: boolean;
4
+ color?: string;
5
+ opacity?: number;
6
+ onClick?: (e: MouseEvent<HTMLDivElement>) => void;
7
+ appearanceActive?: boolean;
8
+ }
9
+ /**
10
+ * Renders a fallback sticky-note icon for PDF Text annotations when no
11
+ * appearance stream image is available.
12
+ */
13
+ export declare function Text({ isSelected, color, opacity, onClick, appearanceActive, }: TextProps): JSX.Element;
14
+ export {};
@@ -1,4 +1,4 @@
1
- import { CSSProperties, MouseEvent, TouchEvent } from '../../../react/adapter.ts';
1
+ import { CSSProperties, MouseEvent } from '../../../react/adapter.ts';
2
2
  import { Rect } from '@embedpdf/models';
3
3
  type HighlightProps = {
4
4
  /** Stroke/markup color */
@@ -7,7 +7,7 @@ type HighlightProps = {
7
7
  segmentRects: Rect[];
8
8
  rect?: Rect;
9
9
  scale: number;
10
- onClick?: (e: MouseEvent<HTMLDivElement> | TouchEvent<HTMLDivElement>) => void;
10
+ onClick?: (e: MouseEvent<HTMLDivElement>) => void;
11
11
  style?: CSSProperties;
12
12
  /** When true, AP image provides the visual; only render hit area */
13
13
  appearanceActive?: boolean;
@@ -1,4 +1,4 @@
1
- import { CSSProperties, MouseEvent, TouchEvent } from '../../../react/adapter.ts';
1
+ import { CSSProperties, MouseEvent } from '../../../react/adapter.ts';
2
2
  import { Rect } from '@embedpdf/models';
3
3
  type SquigglyProps = {
4
4
  /** Stroke/markup color */
@@ -7,7 +7,7 @@ type SquigglyProps = {
7
7
  segmentRects: Rect[];
8
8
  rect?: Rect;
9
9
  scale: number;
10
- onClick?: (e: MouseEvent<HTMLDivElement> | TouchEvent<HTMLDivElement>) => void;
10
+ onClick?: (e: MouseEvent<HTMLDivElement>) => void;
11
11
  style?: CSSProperties;
12
12
  /** When true, AP image provides the visual; only render hit area */
13
13
  appearanceActive?: boolean;
@@ -1,4 +1,4 @@
1
- import { CSSProperties, MouseEvent, TouchEvent } from '../../../react/adapter.ts';
1
+ import { CSSProperties, MouseEvent } from '../../../react/adapter.ts';
2
2
  import { Rect } from '@embedpdf/models';
3
3
  type StrikeoutProps = {
4
4
  /** Stroke/markup color */
@@ -7,7 +7,7 @@ type StrikeoutProps = {
7
7
  segmentRects: Rect[];
8
8
  rect?: Rect;
9
9
  scale: number;
10
- onClick?: (e: MouseEvent<HTMLDivElement> | TouchEvent<HTMLDivElement>) => void;
10
+ onClick?: (e: MouseEvent<HTMLDivElement>) => void;
11
11
  style?: CSSProperties;
12
12
  /** When true, AP image provides the visual; only render hit area */
13
13
  appearanceActive?: boolean;
@@ -1,4 +1,4 @@
1
- import { CSSProperties, MouseEvent, TouchEvent } from '../../../react/adapter.ts';
1
+ import { CSSProperties, MouseEvent } from '../../../react/adapter.ts';
2
2
  import { Rect } from '@embedpdf/models';
3
3
  type UnderlineProps = {
4
4
  /** Stroke/markup color */
@@ -7,7 +7,7 @@ type UnderlineProps = {
7
7
  segmentRects: Rect[];
8
8
  rect?: Rect;
9
9
  scale: number;
10
- onClick?: (e: MouseEvent<HTMLDivElement> | TouchEvent<HTMLDivElement>) => void;
10
+ onClick?: (e: MouseEvent<HTMLDivElement>) => void;
11
11
  style?: CSSProperties;
12
12
  /** When true, AP image provides the visual; only render hit area */
13
13
  appearanceActive?: boolean;
@@ -1,7 +1,7 @@
1
1
  import { PdfAnnotationObject } from '@embedpdf/models';
2
2
  import { TrackedAnnotation } from '../../lib/index.ts';
3
3
  import { HandleElementProps, SelectionMenuPropsBase, SelectionMenuRenderFn } from '../../react/utils.ts';
4
- import { JSX, CSSProperties, MouseEvent, TouchEvent } from '../../react/adapter.ts';
4
+ import { JSX, CSSProperties, MouseEvent } from '../../react/adapter.ts';
5
5
  import { VertexConfig } from '../types';
6
6
  export type ResizeDirection = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'none';
7
7
  export interface AnnotationSelectionContext {
@@ -110,7 +110,7 @@ export type CustomAnnotationRenderer<T extends PdfAnnotationObject> = (props: Cu
110
110
  /**
111
111
  * Properly typed event for annotation interactions (click, select, etc.)
112
112
  */
113
- export type AnnotationInteractionEvent = MouseEvent<Element> | TouchEvent<Element>;
113
+ export type AnnotationInteractionEvent = MouseEvent<Element>;
114
114
  /**
115
115
  * Props for an annotation renderer entry
116
116
  */
@@ -0,0 +1,14 @@
1
+ import { Rotation } from '@embedpdf/models';
2
+ import { TrackedAnnotation } from '../lib';
3
+ export interface ScreenBounds {
4
+ left: number;
5
+ top: number;
6
+ right: number;
7
+ bottom: number;
8
+ }
9
+ /**
10
+ * Compute the screen-space bounding box of an annotation, correctly accounting
11
+ * for `noZoom` (constant pixel size regardless of zoom) and `noRotate`
12
+ * (visually upright regardless of page rotation) annotation flags.
13
+ */
14
+ export declare function getAnnotationScreenBounds(annotation: TrackedAnnotation, scale: number, rotation: Rotation): ScreenBounds;
@@ -0,0 +1,13 @@
1
+ import { Rect } from '@embedpdf/models';
2
+ interface CaretProps {
3
+ isSelected: boolean;
4
+ strokeColor?: string;
5
+ opacity?: number;
6
+ rect: Rect;
7
+ scale: number;
8
+ onClick?: (e: PointerEvent) => void;
9
+ appearanceActive?: boolean;
10
+ }
11
+ declare const Caret: import('svelte', { with: { "resolution-mode": "import" } }).Component<CaretProps, {}, "">;
12
+ type Caret = ReturnType<typeof Caret>;
13
+ export default Caret;
@@ -9,7 +9,7 @@ interface CircleProps {
9
9
  strokeDashArray?: number[];
10
10
  rect: Rect;
11
11
  scale: number;
12
- onClick?: (e: PointerEvent | TouchEvent) => void;
12
+ onClick?: (e: PointerEvent) => void;
13
13
  appearanceActive?: boolean;
14
14
  }
15
15
  declare const Circle: import('svelte', { with: { "resolution-mode": "import" } }).Component<CircleProps, {}, "">;
@@ -7,7 +7,7 @@ interface FreeTextProps {
7
7
  annotation: TrackedAnnotation<PdfFreeTextAnnoObject>;
8
8
  pageIndex: number;
9
9
  scale: number;
10
- onClick?: (e: MouseEvent | TouchEvent) => void;
10
+ onClick?: (e: MouseEvent) => void;
11
11
  onDoubleClick?: (e: MouseEvent) => void;
12
12
  appearanceActive?: boolean;
13
13
  }
@@ -7,7 +7,7 @@ interface InkProps {
7
7
  inkList: PdfInkListObject[];
8
8
  rect: Rect;
9
9
  scale: number;
10
- onClick?: (e: MouseEvent | TouchEvent) => void;
10
+ onClick?: (e: MouseEvent) => void;
11
11
  appearanceActive?: boolean;
12
12
  }
13
13
  declare const Ink: import('svelte', { with: { "resolution-mode": "import" } }).Component<InkProps, {}, "">;
@@ -10,7 +10,7 @@ interface LineProps {
10
10
  linePoints: LinePoints;
11
11
  lineEndings?: LineEndings;
12
12
  scale: number;
13
- onClick?: (e: MouseEvent | TouchEvent) => void;
13
+ onClick?: (e: MouseEvent) => void;
14
14
  isSelected: boolean;
15
15
  appearanceActive?: boolean;
16
16
  }
@@ -15,7 +15,7 @@ interface LinkProps {
15
15
  /** Current page zoom factor */
16
16
  scale: number;
17
17
  /** Click handler (used for selection) */
18
- onClick?: (e: MouseEvent | TouchEvent) => void;
18
+ onClick?: (e: MouseEvent) => void;
19
19
  /** Whether this link has an IRT (In Reply To) reference - disables direct interaction */
20
20
  hasIRT?: boolean;
21
21
  }
@@ -10,7 +10,7 @@ interface PolygonProps {
10
10
  strokeDashArray?: number[];
11
11
  scale: number;
12
12
  isSelected: boolean;
13
- onClick?: (e: MouseEvent | TouchEvent) => void;
13
+ onClick?: (e: MouseEvent) => void;
14
14
  currentVertex?: Position;
15
15
  handleSize?: number;
16
16
  appearanceActive?: boolean;
@@ -1,4 +1,4 @@
1
- import { Rect, Position, LineEndings } from '@embedpdf/models';
1
+ import { Rect, Position, LineEndings, PdfAnnotationBorderStyle } from '@embedpdf/models';
2
2
  interface PolylineProps {
3
3
  rect: Rect;
4
4
  vertices: Position[];
@@ -6,9 +6,11 @@ interface PolylineProps {
6
6
  strokeColor?: string;
7
7
  opacity?: number;
8
8
  strokeWidth: number;
9
+ strokeStyle?: PdfAnnotationBorderStyle;
10
+ strokeDashArray?: number[];
9
11
  scale: number;
10
12
  isSelected: boolean;
11
- onClick?: (e: MouseEvent | TouchEvent) => void;
13
+ onClick?: (e: MouseEvent) => void;
12
14
  lineEndings?: LineEndings;
13
15
  appearanceActive?: boolean;
14
16
  }
@@ -9,7 +9,7 @@ interface SquareProps {
9
9
  strokeDashArray?: number[];
10
10
  rect: Rect;
11
11
  scale: number;
12
- onClick?: (e: MouseEvent | TouchEvent) => void;
12
+ onClick?: (e: MouseEvent) => void;
13
13
  appearanceActive?: boolean;
14
14
  }
15
15
  declare const Square: import('svelte', { with: { "resolution-mode": "import" } }).Component<SquareProps, {}, "">;
@@ -6,7 +6,7 @@ interface StampProps {
6
6
  annotation: TrackedAnnotation<PdfStampAnnoObject>;
7
7
  pageIndex: number;
8
8
  scale: number;
9
- onClick: (e: MouseEvent | TouchEvent) => void;
9
+ onClick: (e: MouseEvent) => void;
10
10
  }
11
11
  declare const Stamp: import('svelte', { with: { "resolution-mode": "import" } }).Component<StampProps, {}, "">;
12
12
  type Stamp = ReturnType<typeof Stamp>;
@@ -0,0 +1,10 @@
1
+ interface TextProps {
2
+ isSelected: boolean;
3
+ color?: string;
4
+ opacity?: number;
5
+ onClick?: (e: PointerEvent) => void;
6
+ appearanceActive?: boolean;
7
+ }
8
+ declare const Text: import('svelte', { with: { "resolution-mode": "import" } }).Component<TextProps, {}, "">;
9
+ type Text = ReturnType<typeof Text>;
10
+ export default Text;
@@ -7,3 +7,4 @@ export { default as Polygon } from './Polygon.svelte';
7
7
  export { default as Polyline } from './Polyline.svelte';
8
8
  export { default as Square } from './Square.svelte';
9
9
  export { default as Stamp } from './Stamp.svelte';
10
+ export { default as Text } from './Text.svelte';
@@ -0,0 +1,5 @@
1
+ import { PdfCaretAnnoObject } from '@embedpdf/models';
2
+ import { AnnotationRendererProps } from '../../context/types';
3
+ declare const CaretRenderer: import('svelte', { with: { "resolution-mode": "import" } }).Component<AnnotationRendererProps<PdfCaretAnnoObject>, {}, "">;
4
+ type CaretRenderer = ReturnType<typeof CaretRenderer>;
5
+ export default CaretRenderer;
@@ -0,0 +1,5 @@
1
+ import { PdfTextAnnoObject } from '@embedpdf/models';
2
+ import { AnnotationRendererProps } from '../../context/types';
3
+ declare const TextRenderer: import('svelte', { with: { "resolution-mode": "import" } }).Component<AnnotationRendererProps<PdfTextAnnoObject>, {}, "">;
4
+ type TextRenderer = ReturnType<typeof TextRenderer>;
5
+ export default TextRenderer;
@@ -6,7 +6,7 @@ interface HighlightProps {
6
6
  segmentRects: Rect[];
7
7
  rect?: Rect;
8
8
  scale: number;
9
- onClick?: (e: MouseEvent | TouchEvent) => void;
9
+ onClick?: (e: MouseEvent) => void;
10
10
  style?: Record<string, string | number | undefined>;
11
11
  /** When true, AP image provides the visual; only render hit area */
12
12
  appearanceActive?: boolean;
@@ -6,7 +6,7 @@ interface SquigglyProps {
6
6
  segmentRects: Rect[];
7
7
  rect?: Rect;
8
8
  scale: number;
9
- onClick?: (e: MouseEvent | TouchEvent) => void;
9
+ onClick?: (e: MouseEvent) => void;
10
10
  style?: Record<string, string | number | undefined>;
11
11
  /** When true, AP image provides the visual; only render hit area */
12
12
  appearanceActive?: boolean;
@@ -6,7 +6,7 @@ interface StrikeoutProps {
6
6
  segmentRects: Rect[];
7
7
  rect?: Rect;
8
8
  scale: number;
9
- onClick?: (e: MouseEvent | TouchEvent) => void;
9
+ onClick?: (e: MouseEvent) => void;
10
10
  style?: Record<string, string | number | undefined>;
11
11
  /** When true, AP image provides the visual; only render hit area */
12
12
  appearanceActive?: boolean;
@@ -6,7 +6,7 @@ interface UnderlineProps {
6
6
  segmentRects: Rect[];
7
7
  rect?: Rect;
8
8
  scale: number;
9
- onClick?: (e: MouseEvent | TouchEvent) => void;
9
+ onClick?: (e: MouseEvent) => void;
10
10
  style?: Record<string, string | number | undefined>;
11
11
  /** When true, AP image provides the visual; only render hit area */
12
12
  appearanceActive?: boolean;
@@ -5,7 +5,7 @@ import { VertexConfig } from '../../shared-svelte/types';
5
5
  /**
6
6
  * Properly typed event for annotation interactions (click, select, etc.)
7
7
  */
8
- export type AnnotationInteractionEvent = PointerEvent | MouseEvent | TouchEvent;
8
+ export type AnnotationInteractionEvent = PointerEvent | MouseEvent;
9
9
  /**
10
10
  * Props passed to custom annotation renderer components
11
11
  */