react-pdf-highlighter-plus 1.0.2 → 1.0.4

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 (88) hide show
  1. package/dist/esm/index.css +1221 -0
  2. package/dist/esm/index.css.map +1 -0
  3. package/dist/esm/index.d.ts +1348 -19
  4. package/dist/esm/index.js +3558 -18
  5. package/dist/esm/index.js.map +1 -1
  6. package/dist/esm/style/style.css +13 -0
  7. package/package.json +3 -2
  8. package/dist/esm/components/AreaHighlight.d.ts +0 -82
  9. package/dist/esm/components/AreaHighlight.js +0 -109
  10. package/dist/esm/components/AreaHighlight.js.map +0 -1
  11. package/dist/esm/components/DrawingCanvas.d.ts +0 -48
  12. package/dist/esm/components/DrawingCanvas.js +0 -277
  13. package/dist/esm/components/DrawingCanvas.js.map +0 -1
  14. package/dist/esm/components/DrawingHighlight.d.ts +0 -70
  15. package/dist/esm/components/DrawingHighlight.js +0 -164
  16. package/dist/esm/components/DrawingHighlight.js.map +0 -1
  17. package/dist/esm/components/FreetextHighlight.d.ts +0 -112
  18. package/dist/esm/components/FreetextHighlight.js +0 -193
  19. package/dist/esm/components/FreetextHighlight.js.map +0 -1
  20. package/dist/esm/components/HighlightLayer.d.ts +0 -49
  21. package/dist/esm/components/HighlightLayer.js +0 -37
  22. package/dist/esm/components/HighlightLayer.js.map +0 -1
  23. package/dist/esm/components/ImageHighlight.d.ts +0 -63
  24. package/dist/esm/components/ImageHighlight.js +0 -65
  25. package/dist/esm/components/ImageHighlight.js.map +0 -1
  26. package/dist/esm/components/MonitoredHighlightContainer.d.ts +0 -37
  27. package/dist/esm/components/MonitoredHighlightContainer.js +0 -42
  28. package/dist/esm/components/MonitoredHighlightContainer.js.map +0 -1
  29. package/dist/esm/components/MouseMonitor.d.ts +0 -34
  30. package/dist/esm/components/MouseMonitor.js +0 -30
  31. package/dist/esm/components/MouseMonitor.js.map +0 -1
  32. package/dist/esm/components/MouseSelection.d.ts +0 -66
  33. package/dist/esm/components/MouseSelection.js +0 -122
  34. package/dist/esm/components/MouseSelection.js.map +0 -1
  35. package/dist/esm/components/PdfHighlighter.d.ts +0 -184
  36. package/dist/esm/components/PdfHighlighter.js +0 -410
  37. package/dist/esm/components/PdfHighlighter.js.map +0 -1
  38. package/dist/esm/components/PdfLoader.d.ts +0 -55
  39. package/dist/esm/components/PdfLoader.js +0 -57
  40. package/dist/esm/components/PdfLoader.js.map +0 -1
  41. package/dist/esm/components/ShapeCanvas.d.ts +0 -51
  42. package/dist/esm/components/ShapeCanvas.js +0 -205
  43. package/dist/esm/components/ShapeCanvas.js.map +0 -1
  44. package/dist/esm/components/ShapeHighlight.d.ts +0 -107
  45. package/dist/esm/components/ShapeHighlight.js +0 -140
  46. package/dist/esm/components/ShapeHighlight.js.map +0 -1
  47. package/dist/esm/components/SignaturePad.d.ts +0 -40
  48. package/dist/esm/components/SignaturePad.js +0 -138
  49. package/dist/esm/components/SignaturePad.js.map +0 -1
  50. package/dist/esm/components/TextHighlight.d.ts +0 -93
  51. package/dist/esm/components/TextHighlight.js +0 -115
  52. package/dist/esm/components/TextHighlight.js.map +0 -1
  53. package/dist/esm/components/TipContainer.d.ts +0 -27
  54. package/dist/esm/components/TipContainer.js +0 -58
  55. package/dist/esm/components/TipContainer.js.map +0 -1
  56. package/dist/esm/contexts/HighlightContext.d.ts +0 -44
  57. package/dist/esm/contexts/HighlightContext.js +0 -16
  58. package/dist/esm/contexts/HighlightContext.js.map +0 -1
  59. package/dist/esm/contexts/PdfHighlighterContext.d.ts +0 -89
  60. package/dist/esm/contexts/PdfHighlighterContext.js +0 -16
  61. package/dist/esm/contexts/PdfHighlighterContext.js.map +0 -1
  62. package/dist/esm/lib/coordinates.d.ts +0 -16
  63. package/dist/esm/lib/coordinates.js +0 -69
  64. package/dist/esm/lib/coordinates.js.map +0 -1
  65. package/dist/esm/lib/export-pdf.d.ts +0 -81
  66. package/dist/esm/lib/export-pdf.js +0 -511
  67. package/dist/esm/lib/export-pdf.js.map +0 -1
  68. package/dist/esm/lib/get-bounding-rect.d.ts +0 -3
  69. package/dist/esm/lib/get-bounding-rect.js +0 -35
  70. package/dist/esm/lib/get-bounding-rect.js.map +0 -1
  71. package/dist/esm/lib/get-client-rects.d.ts +0 -3
  72. package/dist/esm/lib/get-client-rects.js +0 -43
  73. package/dist/esm/lib/get-client-rects.js.map +0 -1
  74. package/dist/esm/lib/group-highlights-by-page.d.ts +0 -6
  75. package/dist/esm/lib/group-highlights-by-page.js +0 -23
  76. package/dist/esm/lib/group-highlights-by-page.js.map +0 -1
  77. package/dist/esm/lib/optimize-client-rects.d.ts +0 -3
  78. package/dist/esm/lib/optimize-client-rects.js +0 -65
  79. package/dist/esm/lib/optimize-client-rects.js.map +0 -1
  80. package/dist/esm/lib/pdfjs-dom.d.ts +0 -9
  81. package/dist/esm/lib/pdfjs-dom.js +0 -55
  82. package/dist/esm/lib/pdfjs-dom.js.map +0 -1
  83. package/dist/esm/lib/screenshot.d.ts +0 -4
  84. package/dist/esm/lib/screenshot.js +0 -24
  85. package/dist/esm/lib/screenshot.js.map +0 -1
  86. package/dist/esm/types.d.ts +0 -213
  87. package/dist/esm/types.js +0 -2
  88. package/dist/esm/types.js.map +0 -1
@@ -0,0 +1,1221 @@
1
+ /* src/style/PdfHighlighter.css */
2
+ .PdfHighlighter {
3
+ position: absolute;
4
+ overflow: auto;
5
+ width: 100%;
6
+ height: 100%;
7
+ background-color: #333;
8
+ }
9
+ .PdfHighlighter::-webkit-scrollbar {
10
+ width: 10px;
11
+ height: 10px;
12
+ }
13
+ .PdfHighlighter::-webkit-scrollbar-thumb {
14
+ background-color: #9f9f9f;
15
+ border-radius: 5px;
16
+ }
17
+ .PdfHighlighter::-webkit-scrollbar-thumb:hover {
18
+ background-color: #d1d1d1;
19
+ }
20
+ .PdfHighlighter::-webkit-scrollbar-track {
21
+ background-color: #2c2c2c;
22
+ border-radius: 5px;
23
+ }
24
+ .PdfHighlighter::-webkit-scrollbar-track-piece {
25
+ background-color: #2c2c2c;
26
+ }
27
+ .PdfHighlighter__tip-container {
28
+ z-index: 6;
29
+ position: absolute;
30
+ }
31
+ .PdfHighlighter--disable-selection {
32
+ -webkit-user-select: none;
33
+ -moz-user-select: none;
34
+ user-select: none;
35
+ pointer-events: none;
36
+ }
37
+ .PdfHighlighter--freetext-mode {
38
+ cursor: crosshair;
39
+ }
40
+ .PdfHighlighter--freetext-mode .pdfViewer,
41
+ .PdfHighlighter--freetext-mode .textLayer {
42
+ cursor: crosshair;
43
+ }
44
+ .PdfHighlighter--image-mode {
45
+ cursor: crosshair;
46
+ }
47
+ .PdfHighlighter--image-mode .pdfViewer,
48
+ .PdfHighlighter--image-mode .textLayer {
49
+ cursor: crosshair;
50
+ }
51
+ .PdfHighlighter--drawing-mode {
52
+ cursor: crosshair;
53
+ }
54
+ .PdfHighlighter--drawing-mode .pdfViewer,
55
+ .PdfHighlighter--drawing-mode .textLayer {
56
+ cursor: crosshair;
57
+ }
58
+ .PdfHighlighter--area-mode {
59
+ cursor: crosshair;
60
+ }
61
+ .PdfHighlighter--area-mode .pdfViewer,
62
+ .PdfHighlighter--area-mode .textLayer {
63
+ cursor: crosshair;
64
+ }
65
+
66
+ /* src/style/pdf_viewer.css */
67
+ .textLayer {
68
+ z-index: 2;
69
+ opacity: 1;
70
+ mix-blend-mode: multiply;
71
+ display: flex;
72
+ }
73
+ .annotationLayer {
74
+ position: absolute;
75
+ top: 0;
76
+ z-index: 3;
77
+ }
78
+ html body .textLayer > div:not(.PdfHighlighter__highlight-layer):not(.TextHighlight):not(.TextHighlight-icon) {
79
+ opacity: 1;
80
+ mix-blend-mode: multiply;
81
+ }
82
+ .textLayer ::-moz-selection {
83
+ mix-blend-mode: multiply;
84
+ }
85
+ .textLayer ::selection {
86
+ mix-blend-mode: multiply;
87
+ }
88
+ @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
89
+ .textLayer {
90
+ opacity: 0.5;
91
+ }
92
+ }
93
+ @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
94
+ .textLayer {
95
+ opacity: 0.5;
96
+ }
97
+ }
98
+ @supports (-ms-ime-align:auto) {
99
+ .textLayer {
100
+ opacity: 0.5;
101
+ }
102
+ }
103
+
104
+ /* src/style/DrawingCanvas.css */
105
+ .DrawingCanvas {
106
+ position: absolute;
107
+ top: 0;
108
+ left: 0;
109
+ z-index: 5;
110
+ cursor: crosshair;
111
+ touch-action: none;
112
+ }
113
+ .DrawingCanvas__controls {
114
+ position: fixed;
115
+ bottom: 20px;
116
+ left: 50%;
117
+ transform: translateX(-50%);
118
+ display: flex;
119
+ gap: 10px;
120
+ padding: 10px 20px;
121
+ background-color: rgba(43, 46, 51, 0.95);
122
+ border-radius: 8px;
123
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
124
+ z-index: 10;
125
+ }
126
+ .DrawingCanvas__controls button {
127
+ padding: 8px 16px;
128
+ border: none;
129
+ border-radius: 4px;
130
+ cursor: pointer;
131
+ font-size: 14px;
132
+ transition: background-color 0.2s, transform 0.1s;
133
+ }
134
+ .DrawingCanvas__controls button:hover {
135
+ transform: scale(1.02);
136
+ }
137
+ .DrawingCanvas__doneButton {
138
+ background-color: #4CAF50;
139
+ color: white;
140
+ }
141
+ .DrawingCanvas__doneButton:hover {
142
+ background-color: #45a049;
143
+ }
144
+ .DrawingCanvas__cancelButton {
145
+ background-color: #f44336;
146
+ color: white;
147
+ }
148
+ .DrawingCanvas__cancelButton:hover {
149
+ background-color: #da190b;
150
+ }
151
+ .DrawingCanvas__clearButton {
152
+ background-color: #ff9800;
153
+ color: white;
154
+ }
155
+ .DrawingCanvas__clearButton:hover {
156
+ background-color: #e68a00;
157
+ }
158
+
159
+ /* src/style/MouseSelection.css */
160
+ .MouseSelection {
161
+ position: absolute;
162
+ border: 1px dashed #333;
163
+ background: rgba(153, 193, 218, 255);
164
+ mix-blend-mode: multiply;
165
+ }
166
+ @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
167
+ .MouseSelection {
168
+ opacity: 0.5;
169
+ }
170
+ }
171
+ @supports (-ms-ime-align:auto) {
172
+ .MouseSelection {
173
+ opacity: 0.5;
174
+ }
175
+ }
176
+
177
+ /* src/style/ShapeCanvas.css */
178
+ .ShapeCanvas {
179
+ position: fixed;
180
+ top: 0;
181
+ left: 0;
182
+ width: 100%;
183
+ height: 100%;
184
+ cursor: crosshair;
185
+ z-index: 1000;
186
+ background: rgba(0, 0, 0, 0.1);
187
+ }
188
+ .ShapeCanvas__controls {
189
+ position: fixed;
190
+ bottom: 20px;
191
+ left: 50%;
192
+ transform: translateX(-50%);
193
+ display: flex;
194
+ flex-direction: column;
195
+ align-items: center;
196
+ gap: 12px;
197
+ z-index: 1002;
198
+ }
199
+ .ShapeCanvas__hint {
200
+ background: rgba(0, 0, 0, 0.8);
201
+ color: white;
202
+ padding: 8px 16px;
203
+ border-radius: 6px;
204
+ font-size: 14px;
205
+ white-space: nowrap;
206
+ }
207
+ .ShapeCanvas__cancelButton {
208
+ padding: 8px 20px;
209
+ background: #f44336;
210
+ color: white;
211
+ border: none;
212
+ border-radius: 4px;
213
+ cursor: pointer;
214
+ font-size: 14px;
215
+ font-weight: 500;
216
+ transition: background 0.2s;
217
+ }
218
+ .ShapeCanvas__cancelButton:hover {
219
+ background: #d32f2f;
220
+ }
221
+
222
+ /* src/style/TextHighlight.css */
223
+ .TextHighlight {
224
+ position: absolute;
225
+ }
226
+ .TextHighlight__parts {
227
+ opacity: 1;
228
+ }
229
+ .TextHighlight__part {
230
+ cursor: pointer;
231
+ position: absolute;
232
+ background: rgba(255, 226, 143, 1);
233
+ transition: background 0.3s;
234
+ }
235
+ .TextHighlight--scrolledTo .TextHighlight__part {
236
+ background: #ff4141;
237
+ }
238
+ .TextHighlight__toolbar-wrapper {
239
+ z-index: 10;
240
+ }
241
+ .TextHighlight__toolbar {
242
+ display: flex;
243
+ align-items: center;
244
+ gap: 4px;
245
+ padding: 2px 4px;
246
+ background: rgba(0, 0, 0, 0.7);
247
+ border-radius: 4px;
248
+ opacity: 0;
249
+ pointer-events: none;
250
+ transition: opacity 0.2s ease;
251
+ }
252
+ .TextHighlight__toolbar--visible {
253
+ opacity: 1;
254
+ pointer-events: auto;
255
+ }
256
+ .TextHighlight__style-button,
257
+ .TextHighlight__delete-button {
258
+ display: flex;
259
+ align-items: center;
260
+ justify-content: center;
261
+ width: 20px;
262
+ height: 20px;
263
+ border: none;
264
+ background: transparent;
265
+ cursor: pointer;
266
+ color: white;
267
+ border-radius: 3px;
268
+ padding: 0;
269
+ transition: background 0.2s;
270
+ }
271
+ .TextHighlight__style-button:hover {
272
+ background: rgba(255, 255, 255, 0.2);
273
+ }
274
+ .TextHighlight__delete-button:hover {
275
+ background: rgba(255, 100, 100, 0.6);
276
+ }
277
+ .TextHighlight__style-panel {
278
+ margin-top: 4px;
279
+ background: rgba(0, 0, 0, 0.9);
280
+ border-radius: 6px;
281
+ padding: 8px;
282
+ min-width: 180px;
283
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
284
+ }
285
+ .TextHighlight__style-row {
286
+ display: flex;
287
+ align-items: center;
288
+ justify-content: space-between;
289
+ margin-bottom: 8px;
290
+ }
291
+ .TextHighlight__style-row:last-child {
292
+ margin-bottom: 0;
293
+ }
294
+ .TextHighlight__style-row label {
295
+ color: #ccc;
296
+ font-size: 11px;
297
+ text-transform: uppercase;
298
+ letter-spacing: 0.5px;
299
+ margin-right: 8px;
300
+ }
301
+ .TextHighlight__style-buttons {
302
+ display: flex;
303
+ gap: 4px;
304
+ }
305
+ .TextHighlight__style-type-button {
306
+ display: flex;
307
+ align-items: center;
308
+ justify-content: center;
309
+ width: 28px;
310
+ height: 28px;
311
+ padding: 0;
312
+ background: transparent;
313
+ border: 1px solid #666;
314
+ border-radius: 4px;
315
+ cursor: pointer;
316
+ color: #f5f5f5;
317
+ transition: all 0.2s;
318
+ }
319
+ .TextHighlight__style-type-button:hover {
320
+ border-color: #b958ff;
321
+ }
322
+ .TextHighlight__style-type-button.active {
323
+ color: #b958ff;
324
+ border-color: #b958ff;
325
+ background: rgba(185, 88, 255, 0.2);
326
+ }
327
+ .TextHighlight__color-options {
328
+ display: flex;
329
+ align-items: center;
330
+ gap: 6px;
331
+ }
332
+ .TextHighlight__color-presets {
333
+ display: flex;
334
+ gap: 4px;
335
+ }
336
+ .TextHighlight__color-preset {
337
+ width: 18px;
338
+ height: 18px;
339
+ border: 2px solid transparent;
340
+ border-radius: 50%;
341
+ cursor: pointer;
342
+ transition: transform 0.2s, border-color 0.2s;
343
+ padding: 0;
344
+ }
345
+ .TextHighlight__color-preset:hover {
346
+ transform: scale(1.15);
347
+ }
348
+ .TextHighlight__color-preset.active {
349
+ border-color: #b958ff;
350
+ }
351
+ .TextHighlight__color-options input[type=color] {
352
+ width: 24px;
353
+ height: 24px;
354
+ padding: 0;
355
+ border: none;
356
+ border-radius: 4px;
357
+ cursor: pointer;
358
+ background: transparent;
359
+ }
360
+ .TextHighlight__color-options input[type=color]::-webkit-color-swatch-wrapper {
361
+ padding: 0;
362
+ }
363
+ .TextHighlight__color-options input[type=color]::-webkit-color-swatch {
364
+ border: 1px solid #666;
365
+ border-radius: 4px;
366
+ }
367
+ .TextHighlight__part--underline {
368
+ background: transparent !important;
369
+ border-bottom: 2px solid currentColor;
370
+ }
371
+ .TextHighlight__part.TextHighlight__part--strikethrough {
372
+ background: transparent !important;
373
+ overflow: visible;
374
+ }
375
+ .TextHighlight__part.TextHighlight__part--strikethrough::after {
376
+ content: "";
377
+ position: absolute;
378
+ left: 0;
379
+ right: 0;
380
+ top: 50%;
381
+ height: 2px;
382
+ background-color: currentColor;
383
+ transform: translateY(-50%);
384
+ pointer-events: none;
385
+ z-index: 1;
386
+ }
387
+
388
+ /* src/style/AreaHighlight.css */
389
+ .AreaHighlight {
390
+ position: absolute;
391
+ }
392
+ .AreaHighlight__part {
393
+ cursor: pointer;
394
+ position: absolute;
395
+ background: rgba(255, 226, 143, 1);
396
+ transition: background 0.3s;
397
+ }
398
+ .AreaHighlight--scrolledTo .AreaHighlight__part {
399
+ background: #ff4141;
400
+ }
401
+ .AreaHighlight__toolbar-wrapper {
402
+ z-index: 10;
403
+ }
404
+ .AreaHighlight__toolbar {
405
+ display: flex;
406
+ align-items: center;
407
+ gap: 4px;
408
+ padding: 2px 4px;
409
+ background: rgba(0, 0, 0, 0.7);
410
+ border-radius: 4px;
411
+ opacity: 0;
412
+ pointer-events: none;
413
+ transition: opacity 0.2s ease;
414
+ }
415
+ .AreaHighlight__toolbar--visible {
416
+ opacity: 1;
417
+ pointer-events: auto;
418
+ }
419
+ .AreaHighlight__style-button,
420
+ .AreaHighlight__delete-button {
421
+ display: flex;
422
+ align-items: center;
423
+ justify-content: center;
424
+ width: 20px;
425
+ height: 20px;
426
+ border: none;
427
+ background: transparent;
428
+ cursor: pointer;
429
+ color: white;
430
+ border-radius: 3px;
431
+ padding: 0;
432
+ transition: background 0.2s;
433
+ }
434
+ .AreaHighlight__style-button:hover {
435
+ background: rgba(255, 255, 255, 0.2);
436
+ }
437
+ .AreaHighlight__delete-button:hover {
438
+ background: rgba(255, 100, 100, 0.6);
439
+ }
440
+ .AreaHighlight__style-panel {
441
+ margin-top: 4px;
442
+ background: rgba(0, 0, 0, 0.9);
443
+ border-radius: 6px;
444
+ padding: 8px;
445
+ min-width: 160px;
446
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
447
+ }
448
+ .AreaHighlight__style-row {
449
+ display: flex;
450
+ align-items: center;
451
+ justify-content: space-between;
452
+ }
453
+ .AreaHighlight__style-row label {
454
+ color: #ccc;
455
+ font-size: 11px;
456
+ text-transform: uppercase;
457
+ letter-spacing: 0.5px;
458
+ margin-right: 8px;
459
+ }
460
+ .AreaHighlight__color-options {
461
+ display: flex;
462
+ align-items: center;
463
+ gap: 6px;
464
+ }
465
+ .AreaHighlight__color-presets {
466
+ display: flex;
467
+ gap: 4px;
468
+ }
469
+ .AreaHighlight__color-preset {
470
+ width: 18px;
471
+ height: 18px;
472
+ border: 2px solid transparent;
473
+ border-radius: 50%;
474
+ cursor: pointer;
475
+ transition: transform 0.2s, border-color 0.2s;
476
+ padding: 0;
477
+ }
478
+ .AreaHighlight__color-preset:hover {
479
+ transform: scale(1.15);
480
+ }
481
+ .AreaHighlight__color-preset.active {
482
+ border-color: #b958ff;
483
+ }
484
+ .AreaHighlight__color-options input[type=color] {
485
+ width: 24px;
486
+ height: 24px;
487
+ padding: 0;
488
+ border: none;
489
+ border-radius: 4px;
490
+ cursor: pointer;
491
+ background: transparent;
492
+ }
493
+ .AreaHighlight__color-options input[type=color]::-webkit-color-swatch-wrapper {
494
+ padding: 0;
495
+ }
496
+ .AreaHighlight__color-options input[type=color]::-webkit-color-swatch {
497
+ border: 1px solid #666;
498
+ border-radius: 4px;
499
+ }
500
+
501
+ /* src/style/FreetextHighlight.css */
502
+ .FreetextHighlight {
503
+ position: absolute;
504
+ }
505
+ .FreetextHighlight__container {
506
+ display: flex;
507
+ flex-direction: column;
508
+ width: 100%;
509
+ height: 100%;
510
+ border-radius: 4px;
511
+ box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
512
+ overflow: visible;
513
+ transition: box-shadow 0.2s ease;
514
+ }
515
+ .FreetextHighlight__container:hover {
516
+ box-shadow: 2px 2px 12px rgba(0, 0, 0, 0.3);
517
+ }
518
+ .FreetextHighlight__toolbar {
519
+ display: flex;
520
+ align-items: center;
521
+ gap: 4px;
522
+ padding: 2px 4px;
523
+ background: rgba(0, 0, 0, 0.6);
524
+ border-radius: 4px;
525
+ position: absolute;
526
+ top: 4px;
527
+ left: 4px;
528
+ z-index: 10;
529
+ opacity: 0;
530
+ transition: opacity 0.2s ease;
531
+ }
532
+ .FreetextHighlight__container:hover .FreetextHighlight__toolbar {
533
+ opacity: 1;
534
+ }
535
+ .FreetextHighlight__drag-handle {
536
+ display: flex;
537
+ align-items: center;
538
+ justify-content: center;
539
+ width: 20px;
540
+ height: 20px;
541
+ cursor: grab;
542
+ -webkit-user-select: none;
543
+ -moz-user-select: none;
544
+ user-select: none;
545
+ color: white;
546
+ border-radius: 3px;
547
+ transition: background 0.2s;
548
+ }
549
+ .FreetextHighlight__drag-handle:hover {
550
+ background: rgba(255, 255, 255, 0.2);
551
+ }
552
+ .FreetextHighlight__drag-handle:active {
553
+ cursor: grabbing;
554
+ }
555
+ .FreetextHighlight__edit-button {
556
+ display: flex;
557
+ align-items: center;
558
+ justify-content: center;
559
+ width: 20px;
560
+ height: 20px;
561
+ border: none;
562
+ background: transparent;
563
+ cursor: pointer;
564
+ color: white;
565
+ border-radius: 3px;
566
+ padding: 0;
567
+ transition: background 0.2s;
568
+ }
569
+ .FreetextHighlight__edit-button:hover {
570
+ background: rgba(255, 255, 255, 0.2);
571
+ }
572
+ .FreetextHighlight__content {
573
+ flex: 1;
574
+ padding: 8px;
575
+ overflow: hidden;
576
+ position: relative;
577
+ z-index: 1;
578
+ }
579
+ .FreetextHighlight__text {
580
+ width: 100%;
581
+ height: 100%;
582
+ cursor: text;
583
+ overflow: auto;
584
+ word-wrap: break-word;
585
+ white-space: pre-wrap;
586
+ }
587
+ .FreetextHighlight__input {
588
+ width: 100%;
589
+ height: 100%;
590
+ border: none;
591
+ background: transparent;
592
+ font: inherit;
593
+ color: inherit;
594
+ resize: none;
595
+ outline: none;
596
+ padding: 0;
597
+ margin: 0;
598
+ }
599
+ .FreetextHighlight--scrolledTo .FreetextHighlight__container {
600
+ box-shadow: 0 0 0 3px #ff4141, 2px 2px 8px rgba(0, 0, 0, 0.2);
601
+ }
602
+ .FreetextHighlight--editing .FreetextHighlight__container {
603
+ box-shadow: 0 0 0 2px #4a90d9, 2px 2px 8px rgba(0, 0, 0, 0.2);
604
+ }
605
+ .FreetextHighlight__style-button {
606
+ display: flex;
607
+ align-items: center;
608
+ justify-content: center;
609
+ width: 20px;
610
+ height: 20px;
611
+ border: none;
612
+ background: transparent;
613
+ cursor: pointer;
614
+ color: white;
615
+ border-radius: 3px;
616
+ padding: 0;
617
+ transition: background 0.2s;
618
+ }
619
+ .FreetextHighlight__style-button:hover {
620
+ background: rgba(255, 255, 255, 0.2);
621
+ }
622
+ .FreetextHighlight__style-panel {
623
+ position: absolute;
624
+ top: 100%;
625
+ left: 0;
626
+ right: 0;
627
+ background: white;
628
+ border: 1px solid rgba(0, 0, 0, 0.15);
629
+ border-radius: 4px;
630
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
631
+ padding: 8px;
632
+ z-index: 9999;
633
+ margin-top: 2px;
634
+ }
635
+ .FreetextHighlight__style-row {
636
+ display: flex;
637
+ flex-direction: column;
638
+ align-items: flex-start;
639
+ gap: 4px;
640
+ margin-bottom: 8px;
641
+ }
642
+ .FreetextHighlight__style-row:last-child {
643
+ margin-bottom: 0;
644
+ }
645
+ .FreetextHighlight__style-row label {
646
+ font-size: 11px;
647
+ color: #555;
648
+ white-space: nowrap;
649
+ }
650
+ .FreetextHighlight__style-row input[type=color] {
651
+ width: 28px;
652
+ height: 24px;
653
+ border: 1px solid rgba(0, 0, 0, 0.15);
654
+ border-radius: 3px;
655
+ padding: 0;
656
+ cursor: pointer;
657
+ }
658
+ .FreetextHighlight__style-row select {
659
+ padding: 4px 6px;
660
+ font-size: 11px;
661
+ border: 1px solid rgba(0, 0, 0, 0.15);
662
+ border-radius: 3px;
663
+ background: white;
664
+ cursor: pointer;
665
+ min-width: 80px;
666
+ }
667
+ .FreetextHighlight__color-options {
668
+ display: flex;
669
+ align-items: center;
670
+ gap: 6px;
671
+ flex-wrap: wrap;
672
+ width: 100%;
673
+ }
674
+ .FreetextHighlight__color-presets {
675
+ display: flex;
676
+ gap: 4px;
677
+ flex-wrap: wrap;
678
+ }
679
+ .FreetextHighlight__color-preset {
680
+ width: 20px;
681
+ height: 20px;
682
+ border: 2px solid rgba(0, 0, 0, 0.15);
683
+ border-radius: 3px;
684
+ cursor: pointer;
685
+ padding: 0;
686
+ transition: transform 0.15s, border-color 0.15s;
687
+ }
688
+ .FreetextHighlight__color-preset:hover {
689
+ transform: scale(1.15);
690
+ border-color: rgba(0, 0, 0, 0.3);
691
+ }
692
+ .FreetextHighlight__color-preset.active {
693
+ border-color: #333;
694
+ box-shadow: 0 0 0 1px white, 0 0 0 2px #333;
695
+ }
696
+ .FreetextHighlight__color-preset--transparent {
697
+ background:
698
+ linear-gradient(
699
+ 45deg,
700
+ #ccc 25%,
701
+ transparent 25%),
702
+ linear-gradient(
703
+ -45deg,
704
+ #ccc 25%,
705
+ transparent 25%),
706
+ linear-gradient(
707
+ 45deg,
708
+ transparent 75%,
709
+ #ccc 75%),
710
+ linear-gradient(
711
+ -45deg,
712
+ transparent 75%,
713
+ #ccc 75%);
714
+ background-size: 8px 8px;
715
+ background-position:
716
+ 0 0,
717
+ 0 4px,
718
+ 4px -4px,
719
+ -4px 0px;
720
+ background-color: white;
721
+ }
722
+ .FreetextHighlight__delete-button {
723
+ display: flex;
724
+ align-items: center;
725
+ justify-content: center;
726
+ width: 20px;
727
+ height: 20px;
728
+ border: none;
729
+ background: transparent;
730
+ cursor: pointer;
731
+ color: white;
732
+ border-radius: 3px;
733
+ padding: 0;
734
+ transition: background 0.2s;
735
+ }
736
+ .FreetextHighlight__delete-button:hover {
737
+ background: rgba(255, 100, 100, 0.6);
738
+ }
739
+
740
+ /* src/style/ImageHighlight.css */
741
+ .ImageHighlight {
742
+ position: absolute;
743
+ }
744
+ .ImageHighlight__container {
745
+ width: 100%;
746
+ height: 100%;
747
+ display: flex;
748
+ flex-direction: column;
749
+ border-radius: 4px;
750
+ overflow: visible;
751
+ transition: box-shadow 0.2s ease;
752
+ }
753
+ .ImageHighlight__container:hover {
754
+ box-shadow: 2px 2px 12px rgba(0, 0, 0, 0.3);
755
+ }
756
+ .ImageHighlight__toolbar {
757
+ display: flex;
758
+ align-items: center;
759
+ gap: 4px;
760
+ padding: 2px 4px;
761
+ background: rgba(0, 0, 0, 0.6);
762
+ border-radius: 4px;
763
+ position: absolute;
764
+ top: 4px;
765
+ left: 4px;
766
+ z-index: 10;
767
+ opacity: 0;
768
+ transition: opacity 0.2s ease;
769
+ }
770
+ .ImageHighlight__container:hover .ImageHighlight__toolbar {
771
+ opacity: 1;
772
+ }
773
+ .ImageHighlight__drag-handle {
774
+ display: flex;
775
+ align-items: center;
776
+ justify-content: center;
777
+ width: 20px;
778
+ height: 20px;
779
+ cursor: grab;
780
+ color: white;
781
+ border-radius: 3px;
782
+ transition: background 0.2s;
783
+ }
784
+ .ImageHighlight__drag-handle:hover {
785
+ background: rgba(255, 255, 255, 0.2);
786
+ }
787
+ .ImageHighlight__drag-handle:active {
788
+ cursor: grabbing;
789
+ }
790
+ .ImageHighlight__content {
791
+ flex: 1;
792
+ display: flex;
793
+ align-items: center;
794
+ justify-content: center;
795
+ background: white;
796
+ overflow: hidden;
797
+ border-radius: 4px;
798
+ }
799
+ .ImageHighlight__image {
800
+ width: 100%;
801
+ height: 100%;
802
+ -o-object-fit: fill;
803
+ object-fit: fill;
804
+ pointer-events: none;
805
+ -webkit-user-select: none;
806
+ -moz-user-select: none;
807
+ user-select: none;
808
+ }
809
+ .ImageHighlight--scrolledTo .ImageHighlight__container {
810
+ box-shadow: 0 0 0 3px #ff4141, 2px 2px 8px rgba(0, 0, 0, 0.2);
811
+ }
812
+ .ImageHighlight__delete-button {
813
+ display: flex;
814
+ align-items: center;
815
+ justify-content: center;
816
+ width: 20px;
817
+ height: 20px;
818
+ border: none;
819
+ background: transparent;
820
+ cursor: pointer;
821
+ color: white;
822
+ border-radius: 3px;
823
+ padding: 0;
824
+ transition: background 0.2s;
825
+ }
826
+ .ImageHighlight__delete-button:hover {
827
+ background: rgba(255, 100, 100, 0.6);
828
+ }
829
+
830
+ /* src/style/SignaturePad.css */
831
+ .SignaturePad__overlay {
832
+ position: fixed;
833
+ top: 0;
834
+ left: 0;
835
+ right: 0;
836
+ bottom: 0;
837
+ background: rgba(0, 0, 0, 0.5);
838
+ display: flex;
839
+ align-items: center;
840
+ justify-content: center;
841
+ z-index: 10000;
842
+ }
843
+ .SignaturePad__modal {
844
+ background: white;
845
+ border-radius: 8px;
846
+ padding: 16px;
847
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
848
+ }
849
+ .SignaturePad__title {
850
+ margin: 0 0 12px 0;
851
+ font-size: 16px;
852
+ font-weight: 600;
853
+ color: #333;
854
+ }
855
+ .SignaturePad__canvas {
856
+ display: block;
857
+ border: 1px solid #ccc;
858
+ border-radius: 4px;
859
+ cursor: crosshair;
860
+ touch-action: none;
861
+ background: white;
862
+ }
863
+ .SignaturePad__buttons {
864
+ display: flex;
865
+ gap: 8px;
866
+ margin-top: 12px;
867
+ justify-content: flex-end;
868
+ }
869
+ .SignaturePad__button {
870
+ padding: 8px 16px;
871
+ font-size: 14px;
872
+ border-radius: 4px;
873
+ cursor: pointer;
874
+ transition: background-color 0.2s, border-color 0.2s;
875
+ }
876
+ .SignaturePad__button--clear {
877
+ background: white;
878
+ border: 1px solid #ccc;
879
+ color: #666;
880
+ }
881
+ .SignaturePad__button--clear:hover {
882
+ background: #f5f5f5;
883
+ border-color: #999;
884
+ }
885
+ .SignaturePad__button--cancel {
886
+ background: white;
887
+ border: 1px solid #ccc;
888
+ color: #666;
889
+ }
890
+ .SignaturePad__button--cancel:hover {
891
+ background: #f5f5f5;
892
+ border-color: #999;
893
+ }
894
+ .SignaturePad__button--done {
895
+ background: #2196f3;
896
+ border: 1px solid #2196f3;
897
+ color: white;
898
+ }
899
+ .SignaturePad__button--done:hover {
900
+ background: #1976d2;
901
+ border-color: #1976d2;
902
+ }
903
+
904
+ /* src/style/DrawingHighlight.css */
905
+ .DrawingHighlight {
906
+ position: absolute;
907
+ }
908
+ .DrawingHighlight__container {
909
+ width: 100%;
910
+ height: 100%;
911
+ display: flex;
912
+ flex-direction: column;
913
+ border-radius: 4px;
914
+ overflow: visible;
915
+ transition: box-shadow 0.2s ease;
916
+ }
917
+ .DrawingHighlight__container:hover {
918
+ box-shadow: 2px 2px 12px rgba(0, 0, 0, 0.3);
919
+ }
920
+ .DrawingHighlight__toolbar {
921
+ display: flex;
922
+ align-items: center;
923
+ gap: 4px;
924
+ padding: 2px 4px;
925
+ background: rgba(0, 0, 0, 0.6);
926
+ border-radius: 4px;
927
+ position: absolute;
928
+ top: 4px;
929
+ left: 4px;
930
+ z-index: 10;
931
+ opacity: 0;
932
+ transition: opacity 0.2s ease;
933
+ }
934
+ .DrawingHighlight__container:hover .DrawingHighlight__toolbar {
935
+ opacity: 1;
936
+ }
937
+ .DrawingHighlight__drag-handle {
938
+ display: flex;
939
+ align-items: center;
940
+ justify-content: center;
941
+ width: 20px;
942
+ height: 20px;
943
+ cursor: grab;
944
+ color: white;
945
+ border-radius: 3px;
946
+ transition: background 0.2s;
947
+ }
948
+ .DrawingHighlight__drag-handle:hover {
949
+ background: rgba(255, 255, 255, 0.2);
950
+ }
951
+ .DrawingHighlight__drag-handle:active {
952
+ cursor: grabbing;
953
+ }
954
+ .DrawingHighlight__content {
955
+ flex: 1;
956
+ display: flex;
957
+ align-items: center;
958
+ justify-content: center;
959
+ overflow: hidden;
960
+ border-radius: 4px;
961
+ background: transparent;
962
+ }
963
+ .DrawingHighlight__image {
964
+ max-width: 100%;
965
+ max-height: 100%;
966
+ -o-object-fit: contain;
967
+ object-fit: contain;
968
+ pointer-events: none;
969
+ -webkit-user-select: none;
970
+ -moz-user-select: none;
971
+ user-select: none;
972
+ }
973
+ .DrawingHighlight--scrolledTo .DrawingHighlight__container {
974
+ box-shadow: 0 0 0 3px #ff4141, 2px 2px 8px rgba(0, 0, 0, 0.2);
975
+ }
976
+ .DrawingHighlight__style-button {
977
+ display: flex;
978
+ align-items: center;
979
+ justify-content: center;
980
+ width: 20px;
981
+ height: 20px;
982
+ padding: 0;
983
+ background: transparent;
984
+ border: none;
985
+ cursor: pointer;
986
+ color: white;
987
+ border-radius: 3px;
988
+ transition: background 0.2s;
989
+ }
990
+ .DrawingHighlight__style-button:hover {
991
+ background: rgba(255, 255, 255, 0.2);
992
+ }
993
+ .DrawingHighlight__style-controls {
994
+ position: absolute;
995
+ top: 28px;
996
+ left: 4px;
997
+ background: rgba(0, 0, 0, 0.85);
998
+ border-radius: 6px;
999
+ padding: 8px;
1000
+ z-index: 20;
1001
+ display: flex;
1002
+ flex-direction: column;
1003
+ gap: 8px;
1004
+ min-width: 120px;
1005
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
1006
+ }
1007
+ .DrawingHighlight__color-picker {
1008
+ display: flex;
1009
+ gap: 4px;
1010
+ flex-wrap: wrap;
1011
+ }
1012
+ .DrawingHighlight__color-button {
1013
+ width: 20px;
1014
+ height: 20px;
1015
+ border: 2px solid transparent;
1016
+ border-radius: 50%;
1017
+ cursor: pointer;
1018
+ transition: transform 0.2s, border-color 0.2s;
1019
+ padding: 0;
1020
+ }
1021
+ .DrawingHighlight__color-button:hover {
1022
+ transform: scale(1.15);
1023
+ }
1024
+ .DrawingHighlight__color-button.active {
1025
+ border-color: #b958ff;
1026
+ }
1027
+ .DrawingHighlight__width-picker {
1028
+ display: flex;
1029
+ gap: 4px;
1030
+ }
1031
+ .DrawingHighlight__width-button {
1032
+ background: transparent;
1033
+ color: #f5f5f5;
1034
+ border: 1px solid #666;
1035
+ border-radius: 4px;
1036
+ cursor: pointer;
1037
+ font-size: 10px;
1038
+ padding: 2px 6px;
1039
+ transition:
1040
+ color 0.2s,
1041
+ border-color 0.2s,
1042
+ background-color 0.2s;
1043
+ }
1044
+ .DrawingHighlight__width-button:hover {
1045
+ border-color: #b958ff;
1046
+ }
1047
+ .DrawingHighlight__width-button.active {
1048
+ color: #b958ff;
1049
+ border-color: #b958ff;
1050
+ background-color: rgba(185, 88, 255, 0.2);
1051
+ }
1052
+ .DrawingHighlight__delete-button {
1053
+ display: flex;
1054
+ align-items: center;
1055
+ justify-content: center;
1056
+ width: 20px;
1057
+ height: 20px;
1058
+ border: none;
1059
+ background: transparent;
1060
+ cursor: pointer;
1061
+ color: white;
1062
+ border-radius: 3px;
1063
+ padding: 0;
1064
+ transition: background 0.2s;
1065
+ }
1066
+ .DrawingHighlight__delete-button:hover {
1067
+ background: rgba(255, 100, 100, 0.6);
1068
+ }
1069
+
1070
+ /* src/style/ShapeHighlight.css */
1071
+ .ShapeHighlight {
1072
+ position: absolute;
1073
+ }
1074
+ .ShapeHighlight__rnd {
1075
+ cursor: move;
1076
+ }
1077
+ .ShapeHighlight__container {
1078
+ width: 100%;
1079
+ height: 100%;
1080
+ position: relative;
1081
+ }
1082
+ .ShapeHighlight__svg {
1083
+ width: 100%;
1084
+ height: 100%;
1085
+ display: block;
1086
+ }
1087
+ .ShapeHighlight--scrolledTo .ShapeHighlight__svg rect,
1088
+ .ShapeHighlight--scrolledTo .ShapeHighlight__svg ellipse,
1089
+ .ShapeHighlight--scrolledTo .ShapeHighlight__svg line {
1090
+ stroke: #ff4141 !important;
1091
+ }
1092
+ .ShapeHighlight--scrolledTo .ShapeHighlight__svg polygon {
1093
+ fill: #ff4141 !important;
1094
+ }
1095
+ .ShapeHighlight__toolbar-wrapper {
1096
+ z-index: 10;
1097
+ }
1098
+ .ShapeHighlight__toolbar {
1099
+ display: flex;
1100
+ align-items: center;
1101
+ gap: 4px;
1102
+ padding: 2px 4px;
1103
+ background: rgba(0, 0, 0, 0.7);
1104
+ border-radius: 4px;
1105
+ opacity: 0;
1106
+ pointer-events: none;
1107
+ transition: opacity 0.2s ease;
1108
+ }
1109
+ .ShapeHighlight__toolbar--visible {
1110
+ opacity: 1;
1111
+ pointer-events: auto;
1112
+ }
1113
+ .ShapeHighlight__style-button,
1114
+ .ShapeHighlight__delete-button {
1115
+ display: flex;
1116
+ align-items: center;
1117
+ justify-content: center;
1118
+ width: 20px;
1119
+ height: 20px;
1120
+ border: none;
1121
+ background: transparent;
1122
+ cursor: pointer;
1123
+ color: white;
1124
+ border-radius: 3px;
1125
+ padding: 0;
1126
+ transition: background 0.2s;
1127
+ }
1128
+ .ShapeHighlight__style-button:hover {
1129
+ background: rgba(255, 255, 255, 0.2);
1130
+ }
1131
+ .ShapeHighlight__delete-button:hover {
1132
+ background: rgba(255, 100, 100, 0.6);
1133
+ }
1134
+ .ShapeHighlight__style-panel {
1135
+ margin-top: 4px;
1136
+ background: rgba(0, 0, 0, 0.9);
1137
+ border-radius: 6px;
1138
+ padding: 8px;
1139
+ min-width: 180px;
1140
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
1141
+ }
1142
+ .ShapeHighlight__style-row {
1143
+ display: flex;
1144
+ align-items: center;
1145
+ justify-content: space-between;
1146
+ margin-bottom: 8px;
1147
+ }
1148
+ .ShapeHighlight__style-row:last-child {
1149
+ margin-bottom: 0;
1150
+ }
1151
+ .ShapeHighlight__style-row label {
1152
+ color: #ccc;
1153
+ font-size: 11px;
1154
+ text-transform: uppercase;
1155
+ letter-spacing: 0.5px;
1156
+ margin-right: 8px;
1157
+ }
1158
+ .ShapeHighlight__color-options {
1159
+ display: flex;
1160
+ align-items: center;
1161
+ gap: 6px;
1162
+ }
1163
+ .ShapeHighlight__color-presets {
1164
+ display: flex;
1165
+ gap: 4px;
1166
+ }
1167
+ .ShapeHighlight__color-preset {
1168
+ width: 18px;
1169
+ height: 18px;
1170
+ border: 2px solid transparent;
1171
+ border-radius: 50%;
1172
+ cursor: pointer;
1173
+ transition: transform 0.2s, border-color 0.2s;
1174
+ padding: 0;
1175
+ }
1176
+ .ShapeHighlight__color-preset:hover {
1177
+ transform: scale(1.15);
1178
+ }
1179
+ .ShapeHighlight__color-preset.active {
1180
+ border-color: #b958ff;
1181
+ }
1182
+ .ShapeHighlight__color-options input[type=color] {
1183
+ width: 24px;
1184
+ height: 24px;
1185
+ padding: 0;
1186
+ border: none;
1187
+ border-radius: 4px;
1188
+ cursor: pointer;
1189
+ background: transparent;
1190
+ }
1191
+ .ShapeHighlight__color-options input[type=color]::-webkit-color-swatch-wrapper {
1192
+ padding: 0;
1193
+ }
1194
+ .ShapeHighlight__color-options input[type=color]::-webkit-color-swatch {
1195
+ border: 1px solid #666;
1196
+ border-radius: 4px;
1197
+ }
1198
+ .ShapeHighlight__width-options {
1199
+ display: flex;
1200
+ gap: 4px;
1201
+ }
1202
+ .ShapeHighlight__width-button {
1203
+ padding: 4px 8px;
1204
+ background: transparent;
1205
+ border: 1px solid #666;
1206
+ border-radius: 4px;
1207
+ cursor: pointer;
1208
+ color: #ccc;
1209
+ font-size: 11px;
1210
+ transition: all 0.2s;
1211
+ }
1212
+ .ShapeHighlight__width-button:hover {
1213
+ border-color: #b958ff;
1214
+ color: white;
1215
+ }
1216
+ .ShapeHighlight__width-button.active {
1217
+ background: rgba(185, 88, 255, 0.2);
1218
+ border-color: #b958ff;
1219
+ color: #b958ff;
1220
+ }
1221
+ /*# sourceMappingURL=index.css.map */