@veltra/desktop 1.0.9 → 1.0.11

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 (109) hide show
  1. package/dist/components/action/action-group.vue.d.ts +1 -1
  2. package/dist/components/action/action.vue.d.ts +3 -3
  3. package/dist/components/auto-complete/auto-complete.vue.d.ts +1 -1
  4. package/dist/components/batch-edit/batch-edit.js.map +1 -1
  5. package/dist/components/batch-edit/style.js +2 -2
  6. package/dist/components/batch-edit/use-edit.js.map +1 -1
  7. package/dist/components/button/button.js.map +1 -1
  8. package/dist/components/button/button.vue.d.ts +1 -1
  9. package/dist/components/cascade/cascade.vue.d.ts +6 -6
  10. package/dist/components/cascade/use-select.js.map +1 -1
  11. package/dist/components/checkbox-group/checkbox-group.js.map +1 -1
  12. package/dist/components/code-editor/code-editor.js +2 -0
  13. package/dist/components/code-editor/code-editor.js.map +1 -1
  14. package/dist/components/date-panel/date-panel.js.map +1 -1
  15. package/dist/components/date-panel/date-panel.vue.d.ts +1 -1
  16. package/dist/components/date-picker/date-picker.vue.d.ts +1 -1
  17. package/dist/components/date-range-picker/date-range-picker.vue.d.ts +1 -1
  18. package/dist/components/drawer/drawer.js.map +1 -1
  19. package/dist/components/expression-editor/expression-editor.js.map +1 -1
  20. package/dist/components/expression-editor/internal/editor-runtime/create-runtime.js.map +1 -1
  21. package/dist/components/expression-editor/internal/features/commands/register-command-packs.js.map +1 -1
  22. package/dist/components/expression-editor/internal/features/insertion/insertion-service.js.map +1 -1
  23. package/dist/components/expression-editor/use-decorators.js.map +1 -1
  24. package/dist/components/expression-editor/use-expression-drag-drop.js.map +1 -1
  25. package/dist/components/file-picker/file-picker.js.map +1 -1
  26. package/dist/components/file-picker/file-picker.vue.d.ts +1 -1
  27. package/dist/components/file-viewer/file-viewer.js +195 -30
  28. package/dist/components/file-viewer/file-viewer.js.map +1 -1
  29. package/dist/components/file-viewer/previewers/docx-previewer.js +7 -5
  30. package/dist/components/file-viewer/previewers/docx-previewer.js.map +1 -1
  31. package/dist/components/file-viewer/previewers/image-previewer.js +6 -6
  32. package/dist/components/file-viewer/previewers/image-previewer.js.map +1 -1
  33. package/dist/components/file-viewer/previewers/pdf-previewer.js +5 -3
  34. package/dist/components/file-viewer/previewers/pdf-previewer.js.map +1 -1
  35. package/dist/components/file-viewer/previewers/sheet-previewer.js.map +1 -1
  36. package/dist/components/file-viewer/style2.css +387 -136
  37. package/dist/components/form/form-model.js +2 -1
  38. package/dist/components/form/form-model.js.map +1 -1
  39. package/dist/components/grid/grid.js.map +1 -1
  40. package/dist/components/grid/use-responsive.js.map +1 -1
  41. package/dist/components/grid-input/grid-input.vue.d.ts +1 -1
  42. package/dist/components/input/input.vue.d.ts +3 -3
  43. package/dist/components/list/list.js.map +1 -1
  44. package/dist/components/loading/directive.js.map +1 -1
  45. package/dist/components/menu/menu-item.js.map +1 -1
  46. package/dist/components/message/message2.js.map +1 -1
  47. package/dist/components/multi-select/multi-select.js.map +1 -1
  48. package/dist/components/multi-select/multi-select.vue.d.ts +3 -3
  49. package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +6 -6
  50. package/dist/components/notification/index.js.map +1 -1
  51. package/dist/components/notification/notification.vue.d.ts +1 -1
  52. package/dist/components/number-input/number-input.js.map +1 -1
  53. package/dist/components/number-input/number-input.vue.d.ts +1 -1
  54. package/dist/components/number-range-input/number-range-input.vue.d.ts +2 -2
  55. package/dist/components/palette/color-transform.js.map +1 -1
  56. package/dist/components/palette/palette-sv.js.map +1 -1
  57. package/dist/components/password-input/password-input.vue.d.ts +1 -1
  58. package/dist/components/pop-confirm/pop-confirm.vue.d.ts +1 -1
  59. package/dist/components/progress/progress.js +1 -1
  60. package/dist/components/progress/progress.js.map +1 -1
  61. package/dist/components/progress-nodes/progress-nodes.js.map +1 -1
  62. package/dist/components/progress-nodes/progress-nodes.vue.d.ts +3 -3
  63. package/dist/components/rich-text-editor/rich-text-editor.js.map +1 -1
  64. package/dist/components/rich-text-editor/rich-text-editor.vue.d.ts +2 -2
  65. package/dist/components/rich-text-editor/toolbar.js.map +1 -1
  66. package/dist/components/scroll/scroll.js.map +1 -1
  67. package/dist/components/select/select.vue.d.ts +2 -2
  68. package/dist/components/slider/slider-thumb.js.map +1 -1
  69. package/dist/components/table/di.js.map +1 -1
  70. package/dist/components/table/style.js +1 -1
  71. package/dist/components/table/table-row.js +1 -2
  72. package/dist/components/table/table-row.js.map +1 -1
  73. package/dist/components/table/table.js +1 -2
  74. package/dist/components/table/table.js.map +1 -1
  75. package/dist/components/table/use-columns.js +4 -0
  76. package/dist/components/table/use-columns.js.map +1 -1
  77. package/dist/components/table/use-table.js +25 -0
  78. package/dist/components/table/use-table.js.map +1 -1
  79. package/dist/components/tabs/style2.css +3 -2
  80. package/dist/components/tabs/tabs-horizontal.js +2 -2
  81. package/dist/components/tabs/tabs-horizontal.js.map +1 -1
  82. package/dist/components/tabs/tabs-horizontal.vue.d.ts +14 -3
  83. package/dist/components/tabs/tabs-vertical.js +2 -2
  84. package/dist/components/tabs/tabs-vertical.js.map +1 -1
  85. package/dist/components/tabs/tabs-vertical.vue.d.ts +13 -3
  86. package/dist/components/tabs/tabs.vue.d.ts +2 -2
  87. package/dist/components/text/text.js.map +1 -1
  88. package/dist/components/textarea/textarea.js.map +1 -1
  89. package/dist/components/textarea/textarea.vue.d.ts +3 -3
  90. package/dist/components/theme/theme.js.map +1 -1
  91. package/dist/components/tip/tip.vue.d.ts +2 -2
  92. package/dist/components/tree/tree-node2.js.map +1 -1
  93. package/dist/components/tree/tree.vue.d.ts +2 -2
  94. package/dist/components/tree/use-tree-nodes.js.map +1 -1
  95. package/dist/components/tree-select/tree-select.vue.d.ts +4 -4
  96. package/dist/components/watermark/watermark.vue.d.ts +1 -1
  97. package/package.json +13 -12
  98. package/src/components/code-editor/code-editor.vue +2 -0
  99. package/src/components/file-viewer/file-viewer.vue +250 -24
  100. package/src/components/file-viewer/previewers/docx-previewer.vue +4 -3
  101. package/src/components/file-viewer/previewers/image-previewer.vue +4 -5
  102. package/src/components/file-viewer/previewers/pdf-previewer.vue +4 -3
  103. package/src/components/file-viewer/style.scss +503 -161
  104. package/src/components/progress/progress.vue +1 -1
  105. package/src/components/table/di.ts +51 -53
  106. package/src/components/table/table.vue +0 -1
  107. package/src/components/tabs/style.scss +7 -4
  108. package/src/components/tabs/tabs-horizontal.vue +10 -7
  109. package/src/components/tabs/tabs-vertical.vue +3 -1
@@ -16,16 +16,20 @@
16
16
  */
17
17
  /** 暗色:data-theme 与系统偏好,与 UITheme.injectBuiltInThemes 选择器策略一致 */
18
18
  .u-file-viewer {
19
+ --u-file-viewer-canvas: #101114;
20
+ --u-file-viewer-canvas-soft: #17191f;
21
+ --u-file-viewer-page-shadow: 0 24px 72px rgba(0, 0, 0, 0.34);
19
22
  position: relative;
20
23
  display: flex;
21
24
  width: 100%;
22
25
  height: 100%;
23
- min-height: 480px;
26
+ min-height: 520px;
24
27
  color: var(--u-text-color-main);
25
28
  background: var(--u-bg-color-top);
26
- border-radius: 12px;
27
- overflow: hidden;
28
29
  border: 1px solid var(--u-border-color);
30
+ border-radius: 8px;
31
+ overflow: hidden;
32
+ box-shadow: 0 18px 54px rgba(15, 23, 42, 0.08);
29
33
  }
30
34
  .u-file-viewer__inner {
31
35
  display: contents;
@@ -35,9 +39,9 @@
35
39
  inset: 0;
36
40
  z-index: 2000;
37
41
  display: flex;
38
- align-items: center;
39
- justify-content: center;
40
- padding: clamp(16px, 3vw, 48px);
42
+ align-items: stretch;
43
+ justify-content: stretch;
44
+ padding: 0;
41
45
  min-height: 0;
42
46
  max-height: none;
43
47
  background: transparent;
@@ -45,56 +49,70 @@
45
49
  border-radius: 0;
46
50
  overflow: visible;
47
51
  outline: none;
52
+ box-shadow: none;
48
53
  }
49
54
  .u-file-viewer.is-modal .u-file-viewer__backdrop {
50
55
  position: absolute;
51
56
  inset: 0;
52
- background: rgba(15, 23, 42, 0.52);
53
- backdrop-filter: blur(6px);
54
- -webkit-backdrop-filter: blur(6px);
57
+ background: linear-gradient(180deg, rgba(5, 7, 11, 0.78), rgba(4, 5, 8, 0.94)), linear-gradient(90deg, rgba(255, 255, 255, 0.06), transparent 24%, transparent 76%, rgba(255, 255, 255, 0.035));
58
+ backdrop-filter: blur(18px) saturate(1.16);
59
+ -webkit-backdrop-filter: blur(18px) saturate(1.16);
55
60
  }
56
61
  .u-file-viewer.is-modal .u-file-viewer__inner {
62
+ display: contents;
63
+ }
64
+ .u-file-viewer.is-modal .u-file-viewer__sidebar, .u-file-viewer.is-modal .u-file-viewer__stage {
57
65
  position: relative;
58
- display: flex;
59
- width: 100%;
60
- height: 100%;
61
- max-width: 1440px;
62
- background: var(--u-bg-color-top);
63
- border: 1px solid var(--u-border-color);
64
- border-radius: 16px;
65
- overflow: hidden;
66
- box-shadow: 0 24px 64px rgba(15, 23, 42, 0.32), 0 2px 8px rgba(15, 23, 42, 0.18);
67
66
  z-index: 1;
67
+ pointer-events: auto;
68
68
  }
69
69
  .u-file-viewer__sidebar {
70
70
  display: flex;
71
71
  flex-direction: column;
72
- border-right: 1px solid var(--u-border-color);
73
- background: var(--u-bg-color-middle);
74
72
  flex-shrink: 0;
75
- min-width: 0;
73
+ min-width: 220px;
74
+ max-width: 380px;
75
+ min-height: 0;
76
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), transparent 34%), var(--u-bg-color-middle);
77
+ border-right: 1px solid var(--u-border-color);
78
+ }
79
+ .u-file-viewer.is-modal .u-file-viewer__sidebar {
80
+ color: rgba(255, 255, 255, 0.82);
81
+ background: linear-gradient(90deg, rgba(8, 10, 15, 0.76), rgba(8, 10, 15, 0.58) 78%, rgba(8, 10, 15, 0.34));
82
+ border-right: 1px solid rgba(255, 255, 255, 0.055);
83
+ box-shadow: none;
84
+ backdrop-filter: blur(18px) saturate(1.08);
85
+ -webkit-backdrop-filter: blur(18px) saturate(1.08);
76
86
  }
77
87
  .u-file-viewer__sidebar-head {
78
88
  display: flex;
89
+ align-items: center;
79
90
  justify-content: space-between;
80
- align-items: baseline;
81
- padding: 18px 20px 10px;
91
+ gap: 12px;
92
+ padding: 14px 12px 6px;
82
93
  color: var(--u-text-color-title);
83
94
  }
95
+ .u-file-viewer.is-modal .u-file-viewer__sidebar-head {
96
+ color: rgba(255, 255, 255, 0.68);
97
+ }
84
98
  .u-file-viewer__sidebar-title {
85
- font-size: 13px;
86
- font-weight: 600;
87
- letter-spacing: 0.04em;
88
- text-transform: uppercase;
99
+ font-size: 12px;
100
+ font-weight: 620;
101
+ line-height: 1.2;
89
102
  }
90
103
  .u-file-viewer__sidebar-count {
91
- font-size: 12px;
104
+ flex-shrink: 0;
105
+ font-size: 11px;
106
+ font-variant-numeric: tabular-nums;
92
107
  color: var(--u-text-color-second);
93
108
  }
109
+ .u-file-viewer.is-modal .u-file-viewer__sidebar-count, .u-file-viewer.is-modal .u-file-viewer__item-size {
110
+ color: rgba(255, 255, 255, 0.48);
111
+ }
94
112
  .u-file-viewer__list {
95
113
  flex: 1;
96
114
  min-height: 0;
97
- padding: 4px 10px 16px;
115
+ padding: 4px 8px 12px;
98
116
  }
99
117
  .u-file-viewer__list-empty {
100
118
  display: flex;
@@ -104,160 +122,334 @@
104
122
  color: var(--u-text-color-second);
105
123
  }
106
124
  .u-file-viewer__item {
125
+ position: relative;
107
126
  display: flex;
108
- gap: 12px;
109
127
  align-items: center;
110
- padding: 10px 12px;
111
- margin: 2px 0;
112
- border-radius: 8px;
128
+ gap: 12px;
129
+ min-height: 42px;
130
+ padding: 7px 8px 7px 12px;
131
+ margin: 0;
132
+ border-radius: 6px;
113
133
  cursor: pointer;
114
- transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
134
+ transition: background 0.18s ease, color 0.18s ease;
135
+ }
136
+ .u-file-viewer__item::before {
137
+ position: absolute;
138
+ left: 0;
139
+ top: 8px;
140
+ bottom: 8px;
141
+ width: 2px;
142
+ border-radius: 999px;
143
+ background: var(--u-color-primary);
144
+ content: "";
145
+ opacity: 0;
146
+ transform: scaleY(0.45);
147
+ transition: opacity 0.18s ease, transform 0.18s ease;
115
148
  }
116
149
  .u-file-viewer__item:hover {
117
150
  background: var(--u-bg-color-hover);
118
151
  }
119
152
  .u-file-viewer__item.is-active {
120
- background: color-mix(in srgb, var(--u-color-primary) 14%, transparent);
121
- color: var(--u-color-primary);
153
+ background: color-mix(in srgb, var(--u-color-primary) 8%, transparent);
154
+ }
155
+ .u-file-viewer__item.is-active::before {
156
+ opacity: 1;
157
+ transform: scaleY(1);
158
+ }
159
+ .u-file-viewer.is-modal .u-file-viewer__item {
160
+ color: rgba(255, 255, 255, 0.78);
161
+ }
162
+ .u-file-viewer.is-modal .u-file-viewer__item:hover {
163
+ background: rgba(255, 255, 255, 0.055);
164
+ }
165
+ .u-file-viewer.is-modal .u-file-viewer__item.is-active {
166
+ color: #fff;
167
+ background: rgba(255, 255, 255, 0.07);
168
+ }
169
+ .u-file-viewer.is-modal .u-file-viewer__item.is-active::before {
170
+ background: rgba(255, 255, 255, 0.82);
122
171
  }
123
172
  .u-file-viewer__item-meta {
124
173
  display: flex;
174
+ flex: 1;
125
175
  flex-direction: column;
176
+ gap: 4px;
126
177
  min-width: 0;
127
- gap: 2px;
128
- flex: 1;
129
178
  }
130
179
  .u-file-viewer__item-name {
180
+ color: var(--u-text-color-title);
131
181
  font-size: 13px;
132
- line-height: 1.4;
182
+ font-weight: 520;
183
+ line-height: 1.35;
133
184
  overflow: hidden;
134
185
  text-overflow: ellipsis;
135
186
  white-space: nowrap;
136
187
  }
188
+ .u-file-viewer.is-modal .u-file-viewer__item-name {
189
+ color: rgba(255, 255, 255, 0.86);
190
+ }
137
191
  .u-file-viewer__item-size {
138
192
  font-size: 11px;
193
+ line-height: 1;
139
194
  color: var(--u-text-color-second);
140
195
  }
141
- .u-file-viewer__badge {
196
+ .u-file-viewer__item-kind {
142
197
  flex-shrink: 0;
198
+ min-width: 30px;
199
+ color: var(--u-text-color-placeholder);
200
+ font-size: 10px;
201
+ font-weight: 720;
202
+ line-height: 1;
203
+ text-align: right;
204
+ }
205
+ .u-file-viewer.is-modal .u-file-viewer__item-kind {
206
+ color: rgba(255, 255, 255, 0.38);
207
+ }
208
+ .u-file-viewer.is-modal .u-file-viewer__item.is-active .u-file-viewer__item-kind {
209
+ color: rgba(255, 255, 255, 0.68);
210
+ }
211
+ .u-file-viewer__badge {
212
+ --u-file-viewer-kind: var(--u-text-color-second);
143
213
  display: inline-flex;
144
214
  align-items: center;
145
215
  justify-content: center;
146
- width: 42px;
147
- height: 28px;
148
- border-radius: 6px;
149
- font-size: 11px;
150
- font-weight: 700;
151
- letter-spacing: 0.04em;
152
- color: #fff;
153
- background: var(--u-text-color-placeholder);
216
+ flex-shrink: 0;
217
+ width: 40px;
218
+ height: 26px;
219
+ border: 1px solid color-mix(in srgb, var(--u-file-viewer-kind) 28%, transparent);
220
+ border-radius: 7px;
221
+ color: var(--u-file-viewer-kind);
222
+ background: color-mix(in srgb, var(--u-file-viewer-kind) 10%, transparent);
223
+ font-size: 10px;
224
+ font-weight: 760;
225
+ line-height: 1;
154
226
  }
155
- .u-file-viewer__badge__badge--image {
156
- background: #0ea5e9;
227
+ .u-file-viewer__badge--image {
228
+ --u-file-viewer-kind: #0891b2;
157
229
  }
158
- .u-file-viewer__badge__badge--video {
159
- background: #ef4444;
230
+ .u-file-viewer__badge--video {
231
+ --u-file-viewer-kind: #db2777;
160
232
  }
161
- .u-file-viewer__badge__badge--pdf {
162
- background: #dc2626;
233
+ .u-file-viewer__badge--pdf {
234
+ --u-file-viewer-kind: #dc2626;
163
235
  }
164
- .u-file-viewer__badge__badge--sheet {
165
- background: #16a34a;
236
+ .u-file-viewer__badge--sheet {
237
+ --u-file-viewer-kind: #15803d;
166
238
  }
167
- .u-file-viewer__badge__badge--docx {
168
- background: #2563eb;
239
+ .u-file-viewer__badge--docx {
240
+ --u-file-viewer-kind: #2563eb;
169
241
  }
170
- .u-file-viewer__badge__badge--text {
171
- background: #64748b;
242
+ .u-file-viewer__badge--text {
243
+ --u-file-viewer-kind: #64748b;
172
244
  }
173
245
  .u-file-viewer__stage {
174
- flex: 1;
175
246
  display: flex;
247
+ flex: 1;
176
248
  flex-direction: column;
177
249
  min-width: 0;
178
250
  min-height: 0;
251
+ background: var(--u-bg-color-top);
252
+ }
253
+ .u-file-viewer.is-modal .u-file-viewer__stage {
254
+ position: relative;
255
+ color: rgba(255, 255, 255, 0.86);
256
+ background: transparent;
179
257
  }
180
258
  .u-file-viewer__stage-head {
181
259
  display: flex;
182
260
  align-items: center;
183
261
  justify-content: space-between;
184
262
  gap: 16px;
185
- padding: 14px 22px;
263
+ min-height: 66px;
264
+ padding: 12px 14px 12px 18px;
265
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), transparent), var(--u-bg-color-top);
186
266
  border-bottom: 1px solid var(--u-border-color);
187
- background: var(--u-bg-color-top);
188
267
  flex-shrink: 0;
189
268
  }
269
+ .u-file-viewer.is-modal .u-file-viewer__stage-head {
270
+ min-height: 64px;
271
+ color: rgba(255, 255, 255, 0.9);
272
+ background: linear-gradient(180deg, rgba(9, 11, 16, 0.72), rgba(9, 11, 16, 0.28) 72%, transparent);
273
+ border-bottom-color: transparent;
274
+ box-shadow: none;
275
+ backdrop-filter: blur(16px) saturate(1.08);
276
+ -webkit-backdrop-filter: blur(16px) saturate(1.08);
277
+ }
190
278
  .u-file-viewer__stage-title {
191
279
  display: flex;
192
280
  align-items: center;
281
+ min-width: 0;
193
282
  gap: 12px;
283
+ }
284
+ .u-file-viewer__stage-copy {
285
+ display: flex;
286
+ flex-direction: column;
194
287
  min-width: 0;
288
+ gap: 5px;
195
289
  }
196
290
  .u-file-viewer__stage-name {
197
- font-size: 14px;
198
- font-weight: 600;
199
291
  color: var(--u-text-color-title);
292
+ font-size: 14px;
293
+ font-weight: 650;
294
+ line-height: 1.25;
200
295
  overflow: hidden;
201
296
  text-overflow: ellipsis;
202
297
  white-space: nowrap;
203
298
  }
299
+ .u-file-viewer.is-modal .u-file-viewer__stage-name {
300
+ color: rgba(255, 255, 255, 0.94);
301
+ }
204
302
  .u-file-viewer__stage-sub {
205
- font-size: 12px;
303
+ display: flex;
304
+ align-items: center;
305
+ gap: 8px;
306
+ min-width: 0;
206
307
  color: var(--u-text-color-second);
207
- flex-shrink: 0;
308
+ font-size: 12px;
309
+ line-height: 1;
310
+ }
311
+ .u-file-viewer__stage-sub span + span {
312
+ position: relative;
313
+ padding-left: 8px;
314
+ }
315
+ .u-file-viewer__stage-sub span + span::before {
316
+ position: absolute;
317
+ left: 0;
318
+ top: 50%;
319
+ width: 2px;
320
+ height: 2px;
321
+ border-radius: 50%;
322
+ background: currentColor;
323
+ opacity: 0.55;
324
+ content: "";
325
+ transform: translateY(-50%);
326
+ }
327
+ .u-file-viewer.is-modal .u-file-viewer__stage-sub {
328
+ color: rgba(255, 255, 255, 0.52);
208
329
  }
209
330
  .u-file-viewer__stage-actions {
210
331
  display: flex;
211
- gap: 8px;
332
+ align-items: center;
333
+ justify-content: flex-end;
212
334
  flex-shrink: 0;
335
+ flex-wrap: wrap;
336
+ gap: 8px;
337
+ }
338
+ .u-file-viewer__action-group {
339
+ display: inline-flex;
340
+ align-items: center;
341
+ gap: 2px;
342
+ height: 34px;
343
+ padding: 2px;
344
+ border: 1px solid color-mix(in srgb, var(--u-border-color) 86%, transparent);
345
+ border-radius: 8px;
346
+ background: var(--u-bg-color-middle);
347
+ }
348
+ .u-file-viewer.is-modal .u-file-viewer__action-group {
349
+ border-color: rgba(255, 255, 255, 0.08);
350
+ background: rgba(255, 255, 255, 0.055);
351
+ box-shadow: 0 1px 0 rgba(255, 255, 255, 0.055) inset;
213
352
  }
214
353
  .u-file-viewer__action {
354
+ display: inline-flex;
355
+ align-items: center;
356
+ justify-content: center;
215
357
  height: 30px;
216
- padding: 0 14px;
358
+ padding: 0 12px;
359
+ border: 1px solid transparent;
217
360
  border-radius: 6px;
218
- border: 1px solid var(--u-border-color);
219
361
  background: transparent;
220
- color: inherit;
362
+ color: var(--u-text-color-second);
221
363
  font-size: 12px;
364
+ line-height: 1;
222
365
  cursor: pointer;
223
- transition: background 0.18s, border-color 0.18s, color 0.18s;
366
+ transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
224
367
  }
225
368
  .u-file-viewer__action:not(:disabled):hover {
226
- border-color: var(--u-color-primary);
227
369
  color: var(--u-color-primary);
370
+ background: color-mix(in srgb, var(--u-color-primary) 10%, transparent);
371
+ }
372
+ .u-file-viewer__action:not(:disabled):active {
373
+ transform: translateY(1px);
228
374
  }
229
375
  .u-file-viewer__action:disabled {
230
- opacity: 0.45;
376
+ opacity: 0.38;
231
377
  cursor: not-allowed;
232
378
  }
233
- .u-file-viewer__action__action--primary {
234
- background: var(--u-color-primary);
235
- border-color: var(--u-color-primary);
236
- color: #fff;
379
+ .u-file-viewer.is-modal .u-file-viewer__action {
380
+ color: rgba(255, 255, 255, 0.68);
237
381
  }
238
- .u-file-viewer__action__action--primary:not(:disabled):hover {
382
+ .u-file-viewer.is-modal .u-file-viewer__action:not(:disabled):hover {
239
383
  color: #fff;
240
- filter: brightness(1.05);
384
+ background: rgba(255, 255, 255, 0.1);
241
385
  }
242
- .u-file-viewer__action__action--icon {
386
+ .u-file-viewer__action--icon {
243
387
  width: 30px;
244
388
  padding: 0;
245
- display: inline-flex;
246
- align-items: center;
247
- justify-content: center;
248
- margin-left: 4px;
249
- color: var(--u-text-color-second);
250
389
  }
251
- .u-file-viewer__action__action--icon:not(:disabled):hover {
252
- border-color: var(--u-color-danger);
253
- color: var(--u-color-danger);
390
+ .u-file-viewer__action--primary {
391
+ color: #fff;
392
+ background: var(--u-color-primary);
393
+ border-color: var(--u-color-primary);
394
+ }
395
+ .u-file-viewer__action--primary:not(:disabled):hover {
396
+ color: #fff;
397
+ background: color-mix(in srgb, var(--u-color-primary) 88%, #fff);
398
+ }
399
+ .u-file-viewer.is-modal .u-file-viewer__action--primary {
400
+ color: #06111d;
401
+ background: rgba(255, 255, 255, 0.92);
402
+ border-color: rgba(255, 255, 255, 0.92);
403
+ }
404
+ .u-file-viewer.is-modal .u-file-viewer__action--primary:not(:disabled):hover {
405
+ color: #06111d;
406
+ background: #fff;
407
+ }
408
+ .u-file-viewer__zoom-value {
409
+ min-width: 48px;
410
+ color: var(--u-text-color-title);
411
+ font-size: 12px;
412
+ font-variant-numeric: tabular-nums;
413
+ text-align: center;
414
+ user-select: none;
415
+ }
416
+ .u-file-viewer.is-modal .u-file-viewer__zoom-value {
417
+ color: rgba(255, 255, 255, 0.84);
254
418
  }
255
419
  .u-file-viewer__body {
256
420
  position: relative;
257
421
  flex: 1;
258
422
  min-height: 0;
259
- background: var(--u-bg-color-bottom);
260
423
  overflow: hidden;
424
+ background: linear-gradient(180deg, var(--u-file-viewer-canvas-soft), var(--u-file-viewer-canvas)), var(--u-file-viewer-canvas);
425
+ }
426
+ .u-file-viewer.is-modal .u-file-viewer__body {
427
+ background: linear-gradient(180deg, rgba(13, 16, 23, 0.58), rgba(5, 6, 10, 0.82)), linear-gradient(90deg, rgba(255, 255, 255, 0.035), transparent 22%, transparent 78%, rgba(255, 255, 255, 0.025));
428
+ box-shadow: none;
429
+ }
430
+ .u-file-viewer__viewport {
431
+ position: absolute;
432
+ inset: 0;
433
+ overflow: hidden;
434
+ display: flex;
435
+ align-items: center;
436
+ justify-content: center;
437
+ }
438
+ .u-file-viewer__previewer {
439
+ transform-origin: center center;
440
+ transition: transform 0.18s ease;
441
+ will-change: transform;
442
+ }
443
+ .u-file-viewer__viewport.is-pannable {
444
+ cursor: grab;
445
+ touch-action: none;
446
+ }
447
+ .u-file-viewer__viewport.is-dragging {
448
+ cursor: grabbing;
449
+ }
450
+ .u-file-viewer__viewport.is-dragging .u-file-viewer__previewer {
451
+ transition: none;
452
+ pointer-events: none;
261
453
  }
262
454
  .u-file-viewer__empty {
263
455
  width: 100%;
@@ -265,7 +457,7 @@
265
457
  display: flex;
266
458
  align-items: center;
267
459
  justify-content: center;
268
- color: var(--u-text-color-second);
460
+ color: rgba(255, 255, 255, 0.68);
269
461
  }
270
462
  .u-file-viewer__image {
271
463
  position: absolute;
@@ -273,22 +465,24 @@
273
465
  display: flex;
274
466
  align-items: center;
275
467
  justify-content: center;
276
- padding: 24px;
468
+ padding: clamp(20px, 3vw, 44px);
277
469
  user-select: none;
278
470
  }
279
471
  .u-file-viewer__image img {
280
472
  max-width: 100%;
281
473
  max-height: 100%;
282
474
  object-fit: contain;
283
- transition: transform 0.3s ease;
284
475
  border-radius: 6px;
285
- box-shadow: 0 12px 40px rgba(15, 23, 42, 0.12);
476
+ background: #fff;
477
+ box-shadow: var(--u-file-viewer-page-shadow);
286
478
  }
287
- .u-file-viewer__image.is-actual img {
288
- max-width: none;
289
- max-height: none;
290
- object-fit: none;
291
- cursor: zoom-out;
479
+ .u-file-viewer.is-modal .u-file-viewer__image {
480
+ padding: clamp(18px, 4vw, 64px);
481
+ }
482
+ .u-file-viewer.is-modal .u-file-viewer__image img {
483
+ background: rgba(255, 255, 255, 0.02);
484
+ border-radius: 4px;
485
+ box-shadow: 0 38px 110px rgba(0, 0, 0, 0.52), 0 0 0 1px rgba(255, 255, 255, 0.08);
292
486
  }
293
487
  .u-file-viewer__video {
294
488
  position: absolute;
@@ -303,19 +497,27 @@
303
497
  max-height: 100%;
304
498
  outline: none;
305
499
  }
500
+ .u-file-viewer.is-modal .u-file-viewer__video {
501
+ background: transparent;
502
+ }
306
503
  .u-file-viewer__text {
307
504
  position: absolute;
308
505
  inset: 0;
506
+ background: #111318;
507
+ }
508
+ .u-file-viewer.is-modal .u-file-viewer__text {
509
+ background: rgba(5, 7, 10, 0.76);
309
510
  }
310
511
  .u-file-viewer__text-pre {
512
+ min-width: max-content;
311
513
  margin: 0;
312
- padding: 20px 24px;
514
+ padding: 22px 26px;
515
+ color: rgba(255, 255, 255, 0.86);
313
516
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
314
517
  font-size: 12.5px;
315
- line-height: 1.55;
316
- white-space: pre;
518
+ line-height: 1.65;
317
519
  tab-size: 2;
318
- color: var(--u-text-color-main);
520
+ white-space: pre;
319
521
  }
320
522
  .u-file-viewer__pdf {
321
523
  position: absolute;
@@ -325,46 +527,66 @@
325
527
  .u-file-viewer__pdf-viewport {
326
528
  width: 100%;
327
529
  height: 100%;
328
- background: var(--u-bg-color-middle);
530
+ background: transparent;
329
531
  }
330
532
  .u-file-viewer__pdf-page {
331
- margin: 16px auto;
533
+ margin: 24px auto;
332
534
  background: #fff;
333
- box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
535
+ box-shadow: var(--u-file-viewer-page-shadow);
536
+ }
537
+ .u-file-viewer.is-modal .u-file-viewer__pdf-page {
538
+ margin: clamp(24px, 3vw, 44px) auto;
539
+ box-shadow: 0 38px 110px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.04);
334
540
  }
335
541
  .u-file-viewer__docx {
336
542
  position: absolute;
337
543
  inset: 0;
338
- background: var(--u-bg-color-middle);
544
+ background: transparent;
339
545
  }
340
546
  .u-file-viewer__docx-body {
341
- padding: 24px;
547
+ min-height: 100%;
548
+ padding: clamp(22px, 3vw, 44px);
342
549
  }
343
550
  .u-file-viewer__docx-body :deep(.u-file-viewer__docx-doc) {
344
551
  margin: 0 auto;
345
- background: #fff;
346
- box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
347
552
  color: #222;
553
+ background: #fff;
554
+ box-shadow: var(--u-file-viewer-page-shadow);
555
+ }
556
+ .u-file-viewer.is-modal .u-file-viewer__docx-body {
557
+ padding: clamp(24px, 4vw, 64px);
558
+ }
559
+ .u-file-viewer.is-modal .u-file-viewer__docx-body :deep(.u-file-viewer__docx-doc) {
560
+ box-shadow: 0 38px 110px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.04);
348
561
  }
349
562
  .u-file-viewer__sheet {
350
563
  position: absolute;
351
564
  inset: 0;
352
565
  display: flex;
353
566
  flex-direction: column;
354
- background: var(--u-bg-color-middle);
567
+ background: var(--u-bg-color-top);
568
+ }
569
+ .u-file-viewer.is-modal .u-file-viewer__sheet {
570
+ background: rgba(8, 10, 14, 0.82);
355
571
  }
356
572
  .u-file-viewer__sheet-note {
357
573
  padding: 8px 16px;
358
- font-size: 12px;
359
574
  color: var(--u-text-color-second);
360
575
  background: var(--u-bg-color-top);
361
576
  border-bottom: 1px solid var(--u-border-color);
577
+ font-size: 12px;
578
+ line-height: 1.4;
362
579
  flex-shrink: 0;
363
580
  }
581
+ .u-file-viewer.is-modal .u-file-viewer__sheet-note, .u-file-viewer.is-modal .u-file-viewer__sheet-tabs {
582
+ color: rgba(255, 255, 255, 0.62);
583
+ background: rgba(10, 12, 18, 0.78);
584
+ border-bottom-color: rgba(255, 255, 255, 0.08);
585
+ }
364
586
  .u-file-viewer__sheet-tabs {
365
587
  display: flex;
366
- gap: 4px;
367
- padding: 8px 12px;
588
+ gap: 6px;
589
+ padding: 9px 12px;
368
590
  border-bottom: 1px solid var(--u-border-color);
369
591
  background: var(--u-bg-color-top);
370
592
  flex-shrink: 0;
@@ -374,21 +596,34 @@
374
596
  flex-shrink: 0;
375
597
  height: 28px;
376
598
  padding: 0 12px;
377
- border-radius: 6px;
378
599
  border: 1px solid transparent;
600
+ border-radius: 6px;
379
601
  background: transparent;
380
602
  color: var(--u-text-color-second);
381
603
  font-size: 12px;
382
604
  cursor: pointer;
383
- transition: background 0.18s, color 0.18s;
605
+ transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
384
606
  }
385
607
  .u-file-viewer__sheet-tab:hover {
386
608
  background: var(--u-bg-color-hover);
387
609
  color: var(--u-text-color-main);
388
610
  }
389
611
  .u-file-viewer__sheet-tab.is-active {
390
- background: color-mix(in srgb, var(--u-color-primary) 14%, transparent);
391
612
  color: var(--u-color-primary);
613
+ background: color-mix(in srgb, var(--u-color-primary) 11%, transparent);
614
+ border-color: color-mix(in srgb, var(--u-color-primary) 22%, transparent);
615
+ }
616
+ .u-file-viewer.is-modal .u-file-viewer__sheet-tab {
617
+ color: rgba(255, 255, 255, 0.58);
618
+ }
619
+ .u-file-viewer.is-modal .u-file-viewer__sheet-tab:hover {
620
+ color: rgba(255, 255, 255, 0.88);
621
+ background: rgba(255, 255, 255, 0.07);
622
+ }
623
+ .u-file-viewer.is-modal .u-file-viewer__sheet-tab.is-active {
624
+ color: #fff;
625
+ background: rgba(255, 255, 255, 0.1);
626
+ border-color: rgba(255, 255, 255, 0.13);
392
627
  }
393
628
  .u-file-viewer__sheet-stage {
394
629
  flex: 1;
@@ -401,14 +636,42 @@
401
636
  display: flex;
402
637
  align-items: center;
403
638
  justify-content: center;
404
- color: var(--u-text-color-second);
639
+ color: rgba(255, 255, 255, 0.72);
640
+ background: color-mix(in srgb, var(--u-file-viewer-canvas) 74%, transparent);
405
641
  font-size: 13px;
406
642
  pointer-events: none;
407
643
  }
644
+ @media (max-width: 720px) {
645
+ .u-file-viewer:not(.is-modal) {
646
+ flex-direction: column;
647
+ }
648
+ .u-file-viewer.is-modal {
649
+ flex-direction: column;
650
+ }
651
+ .u-file-viewer__sidebar {
652
+ width: 100% !important;
653
+ max-width: none;
654
+ height: 164px;
655
+ border-right: none;
656
+ border-bottom: 1px solid var(--u-border-color);
657
+ }
658
+ .u-file-viewer.is-modal .u-file-viewer__sidebar {
659
+ border-bottom-color: rgba(255, 255, 255, 0.08);
660
+ border-right: none;
661
+ }
662
+ .u-file-viewer__stage-head {
663
+ align-items: flex-start;
664
+ flex-direction: column;
665
+ }
666
+ .u-file-viewer__stage-actions {
667
+ justify-content: flex-start;
668
+ width: 100%;
669
+ }
670
+ }
408
671
 
409
672
  .u-file-viewer-fade-enter-active,
410
673
  .u-file-viewer-fade-leave-active {
411
- transition: opacity 0.22s ease, transform 0.22s ease;
674
+ transition: opacity 0.2s ease, transform 0.2s ease;
412
675
  }
413
676
 
414
677
  .u-file-viewer-fade-enter-from,
@@ -419,27 +682,15 @@
419
682
 
420
683
  .u-file-viewer-modal-enter-active,
421
684
  .u-file-viewer-modal-leave-active {
422
- transition: opacity 0.22s ease;
685
+ transition: opacity 0.18s ease;
686
+ will-change: opacity;
423
687
  }
424
- .u-file-viewer-modal-enter-active .u-file-viewer__inner,
425
- .u-file-viewer-modal-leave-active .u-file-viewer__inner {
426
- transition: opacity 0.24s ease, transform 0.24s cubic-bezier(0.2, 0.8, 0.2, 1);
427
- }
428
- .u-file-viewer-modal-enter-active .u-file-viewer__backdrop,
429
- .u-file-viewer-modal-leave-active .u-file-viewer__backdrop {
430
- transition: opacity 0.22s ease;
688
+
689
+ .u-file-viewer-modal-leave-active {
690
+ pointer-events: none;
431
691
  }
432
692
 
433
693
  .u-file-viewer-modal-enter-from,
434
694
  .u-file-viewer-modal-leave-to {
435
- opacity: 1;
436
- }
437
- .u-file-viewer-modal-enter-from .u-file-viewer__inner,
438
- .u-file-viewer-modal-leave-to .u-file-viewer__inner {
439
- opacity: 0;
440
- transform: translateY(12px) scale(0.985);
441
- }
442
- .u-file-viewer-modal-enter-from .u-file-viewer__backdrop,
443
- .u-file-viewer-modal-leave-to .u-file-viewer__backdrop {
444
695
  opacity: 0;
445
696
  }