@eternalheart/angular-file-preview 1.6.5 → 1.6.6

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 (58) hide show
  1. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-UobTf36G.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-RPRQhVCg.mjs} +39 -32
  2. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-RPRQhVCg.mjs.map +1 -0
  3. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-pG0Ko5mI-DthQJg-X.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-3-0UYUJy-CD5hv6Xd.mjs} +27 -8
  4. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-3-0UYUJy-CD5hv6Xd.mjs.map +1 -0
  5. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D35x1nwM-CugEEXjg.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-5zqP72gq-lAwuxCQV.mjs} +2 -2
  6. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D35x1nwM-CugEEXjg.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-5zqP72gq-lAwuxCQV.mjs.map} +1 -1
  7. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CDjKPqyW-CmX5sdkL.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-71x_jK0V-BwzFr9L0.mjs} +2 -2
  8. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CDjKPqyW-CmX5sdkL.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-71x_jK0V-BwzFr9L0.mjs.map} +1 -1
  9. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Bv3JRXKn-B4Wewc-4.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-7KavuB8u-CFBWzMGm.mjs} +2 -2
  10. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Bv3JRXKn-B4Wewc-4.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-7KavuB8u-CFBWzMGm.mjs.map} +1 -1
  11. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DsNNZ59Q-C8MaSME6.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B-TVstXS-Dh1KMX_8.mjs} +2 -2
  12. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DsNNZ59Q-C8MaSME6.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B-TVstXS-Dh1KMX_8.mjs.map} +1 -1
  13. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-6dZS_Cfs-B1itLV5R.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B4L1kfY--BHy3x_oj.mjs} +2 -2
  14. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-6dZS_Cfs-B1itLV5R.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B4L1kfY--BHy3x_oj.mjs.map} +1 -1
  15. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D9jJNzeM-mWX59Aj2.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B56pscOG-ClsvukS5.mjs} +4 -5
  16. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B56pscOG-ClsvukS5.mjs.map +1 -0
  17. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DbmuvdvN-C29uLyt2.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BNU3NWQp-C5U5krn9.mjs} +2 -2
  18. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DbmuvdvN-C29uLyt2.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BNU3NWQp-C5U5krn9.mjs.map} +1 -1
  19. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B1ANUCTy-BRs7TMLn.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BbRwLog8-B9Sw6HEr.mjs} +2 -2
  20. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-B1ANUCTy-BRs7TMLn.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BbRwLog8-B9Sw6HEr.mjs.map} +1 -1
  21. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BGqTRZbm-CAOLRw20.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BeL4xzpS-eYswtncp.mjs} +2 -2
  22. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BGqTRZbm-CAOLRw20.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BeL4xzpS-eYswtncp.mjs.map} +1 -1
  23. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C518mdUd-B5SCzrzU.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BeTNUne--CwUzGLn3.mjs} +2 -2
  24. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C518mdUd-B5SCzrzU.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BeTNUne--CwUzGLn3.mjs.map} +1 -1
  25. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DufW2Fuc-CTosCut6.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C3uCX4wD-CoZ795pn.mjs} +3 -3
  26. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DufW2Fuc-CTosCut6.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C3uCX4wD-CoZ795pn.mjs.map} +1 -1
  27. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C0McUoqT-DJ35bhIz.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CBbnvps8-ClkiJKQ9.mjs} +2 -2
  28. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-C0McUoqT-DJ35bhIz.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CBbnvps8-ClkiJKQ9.mjs.map} +1 -1
  29. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cb1RLXeO-Bj9gjS1Z.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CMeATokn-iD-SSbnK.mjs} +2 -2
  30. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cb1RLXeO-Bj9gjS1Z.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CMeATokn-iD-SSbnK.mjs.map} +1 -1
  31. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CHi9tOe0-NOeQYAnM.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CZQnGY6g-DexFUJLU.mjs} +2 -2
  32. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CHi9tOe0-NOeQYAnM.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CZQnGY6g-DexFUJLU.mjs.map} +1 -1
  33. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-TSTa_Q7E-DBhkL6pV.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cjjsjooa-24Qg-LjD.mjs} +2 -2
  34. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-TSTa_Q7E-DBhkL6pV.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cjjsjooa-24Qg-LjD.mjs.map} +1 -1
  35. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CSCTj7ft-BfqruUyY.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CpiK7yUb-T48dTv66.mjs} +3 -3
  36. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CSCTj7ft-BfqruUyY.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CpiK7yUb-T48dTv66.mjs.map} +1 -1
  37. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index--7d8Hgi0-D-sg24Qs.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CyO8N29I-CMesNfcT.mjs} +2 -2
  38. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index--7d8Hgi0-D-sg24Qs.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CyO8N29I-CMesNfcT.mjs.map} +1 -1
  39. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cw90Kdyg-BzrW_cyx.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D6UfVKL_-CAqlAQIN.mjs} +2 -2
  40. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-Cw90Kdyg-BzrW_cyx.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D6UfVKL_-CAqlAQIN.mjs.map} +1 -1
  41. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DWe1kVtU-CJlU6sOy.mjs +597 -0
  42. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-DWe1kVtU-CJlU6sOy.mjs.map +1 -0
  43. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BEaqpRV8-BidVIVlO.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-QydIBtJH-Dw052TRv.mjs} +2 -2
  44. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-BEaqpRV8-BidVIVlO.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-QydIBtJH-Dw052TRv.mjs.map} +1 -1
  45. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-shiki-highlight-CL9cG481-BKfwdOpN.mjs → eternalheart-angular-file-preview-eternalheart-angular-file-preview-shiki-highlight-CE3FZF7D-BjdXRpvN.mjs} +2 -2
  46. package/lib/fesm2022/{eternalheart-angular-file-preview-eternalheart-angular-file-preview-shiki-highlight-CL9cG481-BKfwdOpN.mjs.map → eternalheart-angular-file-preview-eternalheart-angular-file-preview-shiki-highlight-CE3FZF7D-BjdXRpvN.mjs.map} +1 -1
  47. package/lib/fesm2022/eternalheart-angular-file-preview.mjs +1 -1
  48. package/lib/index.css +340 -60
  49. package/lib/index.d.ts +1 -1
  50. package/lib/renderers/Audio/index.d.ts +1 -18
  51. package/lib/renderers/Cad/index.d.ts +1 -0
  52. package/lib/version.d.ts +1 -0
  53. package/package.json +2 -1
  54. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-UobTf36G.mjs.map +0 -1
  55. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CQwhffym-DAGw4Xy_.mjs +0 -823
  56. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-CQwhffym-DAGw4Xy_.mjs.map +0 -1
  57. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-D9jJNzeM-mWX59Aj2.mjs.map +0 -1
  58. package/lib/fesm2022/eternalheart-angular-file-preview-eternalheart-angular-file-preview-index-pG0Ko5mI-DthQJg-X.mjs.map +0 -1
package/lib/index.css CHANGED
@@ -35,12 +35,21 @@
35
35
  .afp-root .afp-left-2 {
36
36
  left: 0.5rem;
37
37
  }
38
+ .afp-root .afp-left-\[6px\] {
39
+ left: 6px;
40
+ }
41
+ .afp-root .afp-right-0 {
42
+ right: 0px;
43
+ }
38
44
  .afp-root .afp-right-2 {
39
45
  right: 0.5rem;
40
46
  }
41
47
  .afp-root .afp-right-3 {
42
48
  right: 0.75rem;
43
49
  }
50
+ .afp-root .afp-right-\[6px\] {
51
+ right: 6px;
52
+ }
44
53
  .afp-root .afp-top-1\/2 {
45
54
  top: 50%;
46
55
  }
@@ -80,8 +89,8 @@
80
89
  .afp-root .afp-mb-3 {
81
90
  margin-bottom: 0.75rem;
82
91
  }
83
- .afp-root .afp-mb-5 {
84
- margin-bottom: 1.25rem;
92
+ .afp-root .afp-mb-4 {
93
+ margin-bottom: 1rem;
85
94
  }
86
95
  .afp-root .afp-ml-0\.5 {
87
96
  margin-left: 0.125rem;
@@ -92,12 +101,6 @@
92
101
  .afp-root .afp-mr-2 {
93
102
  margin-right: 0.5rem;
94
103
  }
95
- .afp-root .afp-mt-1\.5 {
96
- margin-top: 0.375rem;
97
- }
98
- .afp-root .afp-mt-2\.5 {
99
- margin-top: 0.625rem;
100
- }
101
104
  .afp-root .afp-mt-4 {
102
105
  margin-top: 1rem;
103
106
  }
@@ -125,9 +128,6 @@
125
128
  .afp-root .afp-h-12 {
126
129
  height: 3rem;
127
130
  }
128
- .afp-root .afp-h-14 {
129
- height: 3.5rem;
130
- }
131
131
  .afp-root .afp-h-20 {
132
132
  height: 5rem;
133
133
  }
@@ -152,8 +152,8 @@
152
152
  .afp-root .afp-h-\[18px\] {
153
153
  height: 18px;
154
154
  }
155
- .afp-root .afp-h-\[5px\] {
156
- height: 5px;
155
+ .afp-root .afp-h-\[3px\] {
156
+ height: 3px;
157
157
  }
158
158
  .afp-root .afp-h-full {
159
159
  height: 100%;
@@ -176,9 +176,6 @@
176
176
  .afp-root .afp-w-12 {
177
177
  width: 3rem;
178
178
  }
179
- .afp-root .afp-w-14 {
180
- width: 3.5rem;
181
- }
182
179
  .afp-root .afp-w-20 {
183
180
  width: 5rem;
184
181
  }
@@ -206,6 +203,9 @@
206
203
  .afp-root .afp-w-\[18px\] {
207
204
  width: 18px;
208
205
  }
206
+ .afp-root .afp-w-\[54px\] {
207
+ width: 54px;
208
+ }
209
209
  .afp-root .afp-w-full {
210
210
  width: 100%;
211
211
  }
@@ -221,12 +221,12 @@
221
221
  .afp-root .afp-max-w-full {
222
222
  max-width: 100%;
223
223
  }
224
- .afp-root .afp-max-w-md {
225
- max-width: 28rem;
226
- }
227
224
  .afp-root .afp-max-w-none {
228
225
  max-width: none;
229
226
  }
227
+ .afp-root .afp-max-w-xl {
228
+ max-width: 36rem;
229
+ }
230
230
  .afp-root .afp-flex-1 {
231
231
  flex: 1 1 0%;
232
232
  }
@@ -290,9 +290,6 @@
290
290
  .afp-root .afp-gap-4 {
291
291
  gap: 1rem;
292
292
  }
293
- .afp-root .afp-gap-6 {
294
- gap: 1.5rem;
295
- }
296
293
  .afp-root .afp-gap-x-6 {
297
294
  -moz-column-gap: 1.5rem;
298
295
  column-gap: 1.5rem;
@@ -344,9 +341,6 @@
344
341
  .afp-root .afp-rounded {
345
342
  border-radius: 0.25rem;
346
343
  }
347
- .afp-root .afp-rounded-2xl {
348
- border-radius: 1rem;
349
- }
350
344
  .afp-root .afp-rounded-full {
351
345
  border-radius: 9999px;
352
346
  }
@@ -356,9 +350,6 @@
356
350
  .afp-root .afp-rounded-md {
357
351
  border-radius: 0.375rem;
358
352
  }
359
- .afp-root .afp-rounded-xl {
360
- border-radius: 0.75rem;
361
- }
362
353
  .afp-root .afp-border {
363
354
  border-width: 1px;
364
355
  }
@@ -411,9 +402,6 @@
411
402
  --tw-bg-opacity: 1;
412
403
  background-color: rgb(15 15 18 / var(--tw-bg-opacity, 1));
413
404
  }
414
- .afp-root .afp-bg-accent-soft {
415
- background-color: var(--fp-accent-soft);
416
- }
417
405
  .afp-root .afp-bg-code-bg {
418
406
  background-color: var(--fp-code-bg);
419
407
  }
@@ -444,8 +432,8 @@
444
432
  .afp-root .afp-p-3 {
445
433
  padding: 0.75rem;
446
434
  }
447
- .afp-root .afp-p-5 {
448
- padding: 1.25rem;
435
+ .afp-root .afp-p-4 {
436
+ padding: 1rem;
449
437
  }
450
438
  .afp-root .afp-p-6 {
451
439
  padding: 1.5rem;
@@ -510,12 +498,18 @@
510
498
  .afp-root .afp-text-center {
511
499
  text-align: center;
512
500
  }
501
+ .afp-root .afp-text-right {
502
+ text-align: right;
503
+ }
513
504
  .afp-root .afp-font-mono {
514
505
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
515
506
  }
516
507
  .afp-root .afp-text-\[10px\] {
517
508
  font-size: 10px;
518
509
  }
510
+ .afp-root .afp-text-\[11px\] {
511
+ font-size: 11px;
512
+ }
519
513
  .afp-root .afp-text-base {
520
514
  font-size: 1rem;
521
515
  line-height: 1.5rem;
@@ -545,9 +539,6 @@
545
539
  .afp-root .afp-leading-relaxed {
546
540
  line-height: 1.625;
547
541
  }
548
- .afp-root .afp-text-accent {
549
- color: var(--fp-accent);
550
- }
551
542
  .afp-root .afp-text-amber-300\/80 {
552
543
  color: rgb(252 211 77 / 0.8);
553
544
  }
@@ -819,12 +810,6 @@
819
810
  background: rgba(0, 0, 0, 0.35);
820
811
  }
821
812
 
822
- /* 唱片旋转动画 */
823
- @keyframes afp-vinyl-spin {
824
- from { transform: rotate(0deg); }
825
- to { transform: rotate(360deg); }
826
- }
827
-
828
813
  /* 进出场过渡 (Vue Transition) */
829
814
  .afp-root .afp-fade-enter-active,
830
815
  .afp-root .afp-fade-leave-active {
@@ -836,6 +821,35 @@
836
821
  opacity: 0;
837
822
  }
838
823
 
824
+ /* 音频播放器:紧凑、单色的媒体控件 */
825
+ .afp-root .afp-audio-mark {
826
+ color: var(--fp-fg-secondary);
827
+ background: var(--fp-surface-2);
828
+ transition: color 160ms ease, background-color 160ms ease;
829
+ }
830
+
831
+ .afp-root .afp-audio-mark-playing {
832
+ color: var(--fp-fg-primary);
833
+ background: var(--fp-surface-3);
834
+ }
835
+
836
+ .afp-root .afp-audio-control {
837
+ border: 0;
838
+ cursor: pointer;
839
+ transition: color 160ms ease, background-color 160ms ease, filter 160ms ease;
840
+ }
841
+
842
+ .afp-root .afp-audio-control:hover {
843
+ filter: brightness(1.08);
844
+ }
845
+
846
+ .afp-root .afp-audio-control:focus-visible,
847
+ .afp-root .audio-slider:focus-visible,
848
+ .afp-root .volume-slider-vertical:focus-visible {
849
+ outline: 2px solid var(--fp-player-progress);
850
+ outline-offset: 2px;
851
+ }
852
+
839
853
  /* 音频播放器进度条样式 */
840
854
  .afp-root .audio-slider {
841
855
  -webkit-appearance: none;
@@ -847,7 +861,10 @@
847
861
  background: transparent;
848
862
  outline: none;
849
863
  cursor: pointer;
850
- position: relative;
864
+ position: absolute;
865
+ inset: 0;
866
+ z-index: 1;
867
+ margin: 0;
851
868
  }
852
869
 
853
870
  .afp-root .audio-slider:disabled {
@@ -857,14 +874,14 @@
857
874
 
858
875
  .afp-root .audio-slider::-webkit-slider-runnable-track {
859
876
  width: 100%;
860
- height: 5px;
877
+ height: 3px;
861
878
  border-radius: 3px;
862
879
  background: transparent;
863
880
  }
864
881
 
865
882
  .afp-root .audio-slider::-moz-range-track {
866
883
  width: 100%;
867
- height: 5px;
884
+ height: 3px;
868
885
  border-radius: 3px;
869
886
  background: transparent;
870
887
  }
@@ -872,37 +889,37 @@
872
889
  .afp-root .audio-slider::-webkit-slider-thumb {
873
890
  -webkit-appearance: none;
874
891
  appearance: none;
875
- width: 14px;
876
- height: 14px;
892
+ width: 12px;
893
+ height: 12px;
877
894
  border-radius: 50%;
878
- background: var(--fp-accent-gradient);
895
+ background: var(--fp-player-progress);
879
896
  cursor: pointer;
880
- box-shadow: 0 2px 8px color-mix(in srgb, var(--fp-accent) 50%, transparent);
897
+ box-shadow: 0 2px 8px var(--fp-player-progress-glow);
881
898
  -webkit-transition: transform 0.2s ease, box-shadow 0.2s ease;
882
899
  transition: transform 0.2s ease, box-shadow 0.2s ease;
883
- margin-top: -5px;
900
+ margin-top: -4px;
884
901
  }
885
902
 
886
903
  .afp-root .audio-slider::-moz-range-thumb {
887
- width: 14px;
888
- height: 14px;
904
+ width: 12px;
905
+ height: 12px;
889
906
  border-radius: 50%;
890
- background: var(--fp-accent-gradient);
907
+ background: var(--fp-player-progress);
891
908
  cursor: pointer;
892
909
  border: none;
893
- box-shadow: 0 2px 8px color-mix(in srgb, var(--fp-accent) 50%, transparent);
910
+ box-shadow: 0 2px 8px var(--fp-player-progress-glow);
894
911
  -moz-transition: transform 0.2s ease, box-shadow 0.2s ease;
895
912
  transition: transform 0.2s ease, box-shadow 0.2s ease;
896
913
  }
897
914
 
898
915
  .afp-root .audio-slider::-webkit-slider-thumb:hover {
899
916
  transform: scale(1.25);
900
- box-shadow: 0 4px 12px color-mix(in srgb, var(--fp-accent) 70%, transparent);
917
+ box-shadow: 0 4px 12px var(--fp-player-progress-glow);
901
918
  }
902
919
 
903
920
  .afp-root .audio-slider::-moz-range-thumb:hover {
904
921
  transform: scale(1.25);
905
- box-shadow: 0 4px 12px color-mix(in srgb, var(--fp-accent) 70%, transparent);
922
+ box-shadow: 0 4px 12px var(--fp-player-progress-glow);
906
923
  }
907
924
 
908
925
  /* 垂直音量滑块样式 */
@@ -935,9 +952,9 @@
935
952
  width: 14px;
936
953
  height: 14px;
937
954
  border-radius: 50%;
938
- background: var(--fp-accent-hover);
955
+ background: var(--fp-player-progress);
939
956
  cursor: pointer;
940
- box-shadow: 0 2px 6px color-mix(in srgb, var(--fp-accent) 50%, transparent);
957
+ box-shadow: 0 2px 6px var(--fp-player-progress-glow);
941
958
  -webkit-transition: all 0.15s ease;
942
959
  transition: all 0.15s ease;
943
960
  margin-top: -6px;
@@ -947,14 +964,273 @@
947
964
  width: 14px;
948
965
  height: 14px;
949
966
  border-radius: 50%;
950
- background: var(--fp-accent-hover);
967
+ background: var(--fp-player-progress);
951
968
  cursor: pointer;
952
969
  border: none;
953
- box-shadow: 0 2px 6px color-mix(in srgb, var(--fp-accent) 50%, transparent);
970
+ box-shadow: 0 2px 6px var(--fp-player-progress-glow);
954
971
  -moz-transition: all 0.15s ease;
955
972
  transition: all 0.15s ease;
956
973
  }
957
974
 
975
+ /* Video.js controls: compact, monochrome player chrome */
976
+ .afp-root .rfp-video-player.video-js {
977
+ color: #fff;
978
+ background: #000;
979
+ font-family: inherit;
980
+ }
981
+
982
+ .afp-root .rfp-video-player.video-js .vjs-tech {
983
+ -o-object-fit: contain;
984
+ object-fit: contain;
985
+ }
986
+
987
+ .afp-root .rfp-video-player.video-js .vjs-control-bar {
988
+ height: 52px;
989
+ padding: 16px 12px 0;
990
+ display: flex;
991
+ align-items: center;
992
+ gap: 2px;
993
+ background: linear-gradient(180deg, transparent 0%, rgb(0 0 0 / 0.78) 38%, rgb(0 0 0 / 0.96) 100%);
994
+ font-size: 12px;
995
+ }
996
+
997
+ .afp-root .rfp-video-player.video-js .vjs-progress-control {
998
+ position: absolute;
999
+ top: 0;
1000
+ bottom: auto !important;
1001
+ left: 12px;
1002
+ right: 12px;
1003
+ width: auto !important;
1004
+ min-width: 0;
1005
+ height: 8px !important;
1006
+ margin: 0;
1007
+ flex: none;
1008
+ display: flex;
1009
+ align-items: center;
1010
+ cursor: pointer;
1011
+ }
1012
+
1013
+ .afp-root .rfp-video-player.video-js .vjs-progress-holder {
1014
+ width: 100%;
1015
+ height: 2px;
1016
+ margin: 0;
1017
+ background: rgb(255 255 255 / 0.28);
1018
+ transition: height 120ms ease;
1019
+ }
1020
+
1021
+ .afp-root .rfp-video-player.video-js .vjs-progress-control:hover .vjs-progress-holder,
1022
+ .afp-root .rfp-video-player.video-js .vjs-progress-control:focus .vjs-progress-holder {
1023
+ height: 4px;
1024
+ }
1025
+
1026
+ .afp-root .rfp-video-player.video-js .vjs-play-progress,
1027
+ .afp-root .rfp-video-player.video-js .vjs-load-progress {
1028
+ background: #fff;
1029
+ }
1030
+
1031
+ .afp-root .rfp-video-player.video-js .vjs-load-progress {
1032
+ opacity: 0.32;
1033
+ }
1034
+
1035
+ .afp-root .rfp-video-player.video-js .vjs-play-progress:before {
1036
+ content: '';
1037
+ top: 50%;
1038
+ right: -5px;
1039
+ width: 10px;
1040
+ height: 10px;
1041
+ margin-top: -5px;
1042
+ border-radius: 50%;
1043
+ background: #fff;
1044
+ box-shadow: 0 0 0 1px rgb(0 0 0 / 0.28);
1045
+ }
1046
+
1047
+ .afp-root .rfp-video-player.video-js .vjs-control {
1048
+ width: 34px;
1049
+ height: 36px;
1050
+ margin: 0;
1051
+ padding: 0;
1052
+ color: rgb(255 255 255 / 0.86);
1053
+ border-radius: 6px;
1054
+ transition: color 160ms ease, background-color 160ms ease;
1055
+ }
1056
+
1057
+ .afp-root .rfp-video-player.video-js .vjs-control:hover,
1058
+ .afp-root .rfp-video-player.video-js .vjs-control:focus {
1059
+ color: #fff;
1060
+ background: rgb(255 255 255 / 0.12);
1061
+ }
1062
+
1063
+ .afp-root .rfp-video-player.video-js .vjs-play-control {
1064
+ margin-right: 2px;
1065
+ }
1066
+
1067
+ .afp-root .rfp-video-player.video-js .vjs-button {
1068
+ display: flex;
1069
+ align-items: center;
1070
+ justify-content: center;
1071
+ }
1072
+
1073
+ .afp-root .rfp-video-player.video-js .vjs-button > .vjs-icon-placeholder {
1074
+ position: relative;
1075
+ display: block;
1076
+ width: 22px;
1077
+ height: 22px;
1078
+ }
1079
+
1080
+ .afp-root .rfp-video-player.video-js .vjs-button > .vjs-icon-placeholder:before {
1081
+ inset: 0;
1082
+ width: 22px;
1083
+ height: 22px;
1084
+ font-size: 20px;
1085
+ line-height: 22px;
1086
+ text-align: center;
1087
+ }
1088
+
1089
+ .afp-root .rfp-video-player.video-js .vjs-time-control {
1090
+ width: auto !important;
1091
+ height: 36px;
1092
+ min-width: auto;
1093
+ padding: 0 3px;
1094
+ color: rgb(255 255 255 / 0.72);
1095
+ line-height: 36px;
1096
+ font-variant-numeric: tabular-nums;
1097
+ }
1098
+
1099
+ .afp-root .rfp-video-player.video-js .vjs-current-time,
1100
+ .afp-root .rfp-video-player.video-js .vjs-time-divider,
1101
+ .afp-root .rfp-video-player.video-js .vjs-duration {
1102
+ display: block;
1103
+ }
1104
+
1105
+ .afp-root .rfp-video-player.video-js .vjs-time-divider {
1106
+ padding: 0 1px;
1107
+ }
1108
+
1109
+ .afp-root .rfp-video-player.video-js .vjs-volume-panel {
1110
+ width: 34px !important;
1111
+ height: 36px;
1112
+ margin: 0 6px 0 0;
1113
+ flex: 0 0 34px;
1114
+ display: flex;
1115
+ align-items: center;
1116
+ overflow: visible;
1117
+ transition: width 160ms ease, flex-basis 160ms ease;
1118
+ }
1119
+
1120
+ .afp-root .rfp-video-player.video-js .vjs-volume-panel .vjs-mute-control {
1121
+ flex: 0 0 34px;
1122
+ }
1123
+
1124
+ .afp-root .rfp-video-player.video-js .vjs-volume-panel .vjs-volume-control {
1125
+ position: relative;
1126
+ width: 0 !important;
1127
+ height: 36px;
1128
+ margin: 0;
1129
+ flex: 0 0 0;
1130
+ opacity: 0;
1131
+ visibility: hidden;
1132
+ overflow: hidden;
1133
+ transition: width 160ms ease, flex-basis 160ms ease, opacity 120ms ease;
1134
+ }
1135
+
1136
+ .afp-root .rfp-video-player.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:hover,
1137
+ .afp-root .rfp-video-player.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:focus,
1138
+ .afp-root .rfp-video-player.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active {
1139
+ width: 102px !important;
1140
+ flex-basis: 102px;
1141
+ }
1142
+
1143
+ .afp-root .rfp-video-player.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:hover .vjs-volume-control,
1144
+ .afp-root .rfp-video-player.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:focus .vjs-volume-control,
1145
+ .afp-root .rfp-video-player.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active .vjs-volume-control {
1146
+ width: 68px !important;
1147
+ flex-basis: 68px;
1148
+ opacity: 1;
1149
+ visibility: visible;
1150
+ overflow: visible;
1151
+ }
1152
+
1153
+ .afp-root .rfp-video-player.video-js .vjs-volume-bar {
1154
+ position: relative;
1155
+ width: 48px;
1156
+ height: 3px;
1157
+ margin: 16px 10px 0;
1158
+ }
1159
+
1160
+ .afp-root .rfp-video-player.video-js .vjs-slider {
1161
+ background: rgb(255 255 255 / 0.28);
1162
+ }
1163
+
1164
+ .afp-root .rfp-video-player.video-js .vjs-volume-level {
1165
+ height: 100%;
1166
+ background: #fff;
1167
+ }
1168
+
1169
+ .afp-root .rfp-video-player.video-js .vjs-volume-level:before {
1170
+ content: '';
1171
+ top: 50%;
1172
+ right: -4px;
1173
+ width: 8px;
1174
+ height: 8px;
1175
+ margin-top: -4px;
1176
+ border-radius: 50%;
1177
+ background: #fff;
1178
+ box-shadow: 0 0 0 1px rgb(0 0 0 / 0.28);
1179
+ }
1180
+
1181
+ .afp-root .rfp-video-player.video-js .vjs-fullscreen-control {
1182
+ margin-left: auto;
1183
+ }
1184
+
1185
+ .afp-root .rfp-video-player.video-js .vjs-big-play-button {
1186
+ width: 58px;
1187
+ height: 58px;
1188
+ margin: -29px 0 0 -29px;
1189
+ padding: 0;
1190
+ border: 1px solid rgb(255 255 255 / 0.55);
1191
+ border-radius: 50%;
1192
+ background: rgb(8 8 8 / 0.78);
1193
+ color: #fff;
1194
+ font-size: 26px;
1195
+ line-height: 56px;
1196
+ transition: transform 160ms ease, background-color 160ms ease, border-color 160ms ease;
1197
+ }
1198
+
1199
+ .afp-root .rfp-video-player.video-js .vjs-big-play-button .vjs-icon-placeholder:before {
1200
+ inset: 0;
1201
+ width: 56px;
1202
+ height: 56px;
1203
+ line-height: 56px;
1204
+ text-align: center;
1205
+ }
1206
+
1207
+ .afp-root .rfp-video-player.video-js:hover .vjs-big-play-button,
1208
+ .afp-root .rfp-video-player.video-js .vjs-big-play-button:focus {
1209
+ border-color: #fff;
1210
+ background: rgb(0 0 0 / 0.86);
1211
+ transform: scale(1.04);
1212
+ }
1213
+
1214
+ .afp-root .rfp-video-player.video-js .vjs-menu-button-popup .vjs-menu {
1215
+ bottom: 44px;
1216
+ background: rgb(12 12 12 / 0.96);
1217
+ border: 1px solid rgb(255 255 255 / 0.16);
1218
+ border-radius: 4px;
1219
+ box-shadow: 0 10px 28px rgb(0 0 0 / 0.4);
1220
+ }
1221
+
1222
+ .afp-root .rfp-video-player.video-js .vjs-menu li {
1223
+ padding: 7px 12px;
1224
+ color: rgb(255 255 255 / 0.76);
1225
+ }
1226
+
1227
+ .afp-root .rfp-video-player.video-js .vjs-menu li:hover,
1228
+ .afp-root .rfp-video-player.video-js .vjs-menu li.vjs-selected {
1229
+ background: rgb(255 255 255 / 0.14);
1230
+ color: #fff;
1231
+ }
1232
+
1233
+
958
1234
  .afp-root .pptx-wrapper,
959
1235
  .afp-root .pptx-preview-wrapper {
960
1236
  overflow-y: initial !important;
@@ -1124,6 +1400,8 @@
1124
1400
  /* loading spinner */
1125
1401
  --fp-spinner-track: rgb(255 255 255 / 0.2);
1126
1402
  --fp-spinner-head: rgb(255 255 255 / 0.85);
1403
+ --fp-player-progress: rgb(255 255 255 / 0.92);
1404
+ --fp-player-progress-glow: rgb(255 255 255 / 0.22);
1127
1405
  }
1128
1406
 
1129
1407
  .afp-root[data-theme="light"] {
@@ -1149,6 +1427,8 @@
1149
1427
 
1150
1428
  --fp-spinner-track: rgb(0 0 0 / 0.1);
1151
1429
  --fp-spinner-head: rgb(23 23 23 / 0.85);
1430
+ --fp-player-progress: rgb(23 23 23 / 0.92);
1431
+ --fp-player-progress-glow: rgb(0 0 0 / 0.2);
1152
1432
 
1153
1433
  /* 代码块在 light 下取 GitHub Light 风格 */
1154
1434
  --fp-code-bg: #f6f8fa;
package/lib/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const VERSION = "1.6.4";
1
+ export { VERSION } from './version';
2
2
  export { FilePreviewModal } from './file-preview-modal';
3
3
  export { FilePreviewEmbed } from './file-preview-embed';
4
4
  export { FilePreviewContent } from './file-preview-content';
@@ -11,6 +11,7 @@ export declare class AudioRenderer implements RendererHandle {
11
11
  protected readonly t: import("@eternalheart/file-preview-core").Translator;
12
12
  protected readonly formatTime: typeof formatTime;
13
13
  protected readonly Math: Math;
14
+ protected readonly audioLinesIcon: import("lucide-angular").LucideIconData;
14
15
  protected readonly playIcon: import("lucide-angular").LucideIconData;
15
16
  protected readonly pauseIcon: import("lucide-angular").LucideIconData;
16
17
  protected readonly skipBackIcon: import("lucide-angular").LucideIconData;
@@ -28,24 +29,15 @@ export declare class AudioRenderer implements RendererHandle {
28
29
  protected readonly toggleMute: () => void;
29
30
  protected readonly toggleLoop: () => void;
30
31
  readonly showVolume: import("@angular/core").WritableSignal<boolean>;
31
- readonly isCompact: import("@angular/core").WritableSignal<boolean>;
32
- readonly controlScale: import("@angular/core").WritableSignal<number>;
33
32
  readonly isDragging: import("@angular/core").WritableSignal<boolean>;
34
33
  readonly dragTime: import("@angular/core").WritableSignal<number>;
35
- private readonly containerRef;
36
34
  private readonly volumeRef;
37
35
  private readonly audioEl;
38
36
  private volumeHideTimer;
39
- private resizeObserver;
40
37
  private bindRaf;
41
- private readonly vinylBase;
42
- private readonly vinylHeightBase;
43
38
  protected readonly displayTime: import("@angular/core").Signal<number>;
44
39
  protected readonly progress: import("@angular/core").Signal<number>;
45
- private readonly vinylScale;
46
- private readonly finalVinylScale;
47
40
  protected readonly volumeIcon: import("@angular/core").Signal<import("lucide-angular").LucideIconData>;
48
- protected readonly timeRowClass: import("@angular/core").Signal<"afp-flex afp-justify-between afp-text-fg-tertiary afp-text-[10px] afp-mt-1.5" | "afp-flex afp-justify-between afp-text-fg-tertiary afp-text-xs afp-mt-2.5">;
49
41
  constructor();
50
42
  getToolbarGroups: () => ToolbarGroup[];
51
43
  onToolbarChange: (listener: () => void) => () => void;
@@ -56,18 +48,9 @@ export declare class AudioRenderer implements RendererHandle {
56
48
  protected onVolumeInput(e: Event): void;
57
49
  protected handleVolumeEnter(): void;
58
50
  protected handleVolumeLeave(): void;
59
- protected vinylBoxStyle(): string;
60
- protected glowStyle(): string;
61
- protected vinylStyle(): string;
62
- protected labelStyle(): string;
63
- protected spindleStyle(): string;
64
- protected tonearmStyle(): string;
65
- protected panelStyle(): string;
66
51
  protected progressFillStyle(): string;
67
52
  protected playBtnStyle(): string;
68
- protected volumePopupStyle(): string;
69
53
  protected volumeFillStyle(): string;
70
- private checkSize;
71
54
  private readonly handleClickOutside;
72
55
  static ɵfac: i0.ɵɵFactoryDeclaration<AudioRenderer, never>;
73
56
  static ɵcmp: i0.ɵɵComponentDeclaration<AudioRenderer, "afp-audio-renderer", never, { "url": { "alias": "url"; "required": true; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
@@ -34,6 +34,7 @@ export declare class CadRenderer implements RendererHandle {
34
34
  private toggleWireframe;
35
35
  private toggleGrid;
36
36
  private toggleAxes;
37
+ private updateReferenceHelpers;
37
38
  private disposeMaterial;
38
39
  private disposeThreeResources;
39
40
  private initScene;
@@ -0,0 +1 @@
1
+ export declare const VERSION = "1.6.6";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eternalheart/angular-file-preview",
3
- "version": "1.6.5",
3
+ "version": "1.6.6",
4
4
  "description": "A modern, feature-rich file preview component for Angular with support for images, videos, audio, PDFs, Office documents (Word, Excel, PowerPoint), Markdown, and code files.",
5
5
  "type": "module",
6
6
  "module": "./lib/fesm2022/eternalheart-angular-file-preview.mjs",
@@ -61,6 +61,7 @@
61
61
  "build": "pnpm --filter @eternalheart/file-preview-core build && pnpm build:esm",
62
62
  "dev": "node ../../scripts/ng-packagr-angular.mjs --watch",
63
63
  "prepublishOnly": "pnpm build",
64
+ "version": "node ../../scripts/sync-angular-version.mjs",
64
65
  "version:patch": "npm version patch",
65
66
  "version:minor": "npm version minor",
66
67
  "version:major": "npm version major",