@bluechaine/print-designer 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.en.md +154 -0
  2. package/README.md +151 -0
  3. package/README.zh-CN.md +5 -0
  4. package/dist/plugins/api-image.cjs +2 -0
  5. package/dist/plugins/api-image.cjs.map +1 -0
  6. package/dist/plugins/api-image.mjs +28 -0
  7. package/dist/plugins/api-image.mjs.map +1 -0
  8. package/dist/plugins/api-pdf.cjs +2 -0
  9. package/dist/plugins/api-pdf.cjs.map +1 -0
  10. package/dist/plugins/api-pdf.mjs +35 -0
  11. package/dist/plugins/api-pdf.mjs.map +1 -0
  12. package/dist/plugins/view-code-edit.cjs +11 -0
  13. package/dist/plugins/view-code-edit.cjs.map +1 -0
  14. package/dist/plugins/view-code-edit.mjs +55 -0
  15. package/dist/plugins/view-code-edit.mjs.map +1 -0
  16. package/dist/types/plugins/plugin-api-image/src/index.d.ts +11 -0
  17. package/dist/types/plugins/plugin-api-pdf/src/index.d.ts +15 -0
  18. package/dist/types/plugins/plugin-view-code-edit/src/index.d.ts +15 -0
  19. package/dist/types/src/components/Designer.vue.d.ts +2016 -0
  20. package/dist/types/src/components/DragBox.vue.d.ts +223 -0
  21. package/dist/types/src/components/Header.vue.d.ts +96 -0
  22. package/dist/types/src/components/JsonEditorModal.vue.d.ts +25 -0
  23. package/dist/types/src/components/Preview.vue.d.ts +27 -0
  24. package/dist/types/src/components/PrintDataEditorModal.vue.d.ts +86 -0
  25. package/dist/types/src/components/Ruler.vue.d.ts +16 -0
  26. package/dist/types/src/components/SvpIcon.vue.d.ts +31 -0
  27. package/dist/types/src/components/Toolbar.vue.d.ts +116 -0
  28. package/dist/types/src/components/panels/DraggableElsPanel.vue.d.ts +322 -0
  29. package/dist/types/src/components/panels/LocationExchangePanel.vue.d.ts +226 -0
  30. package/dist/types/src/components/panels/MiniMapPanel.vue.d.ts +278 -0
  31. package/dist/types/src/components/panels/PageHistoryPanel.vue.d.ts +345 -0
  32. package/dist/types/src/components/panels/PageStructurePanel.vue.d.ts +262 -0
  33. package/dist/types/src/components/panels/PageTabsPanel.vue.d.ts +267 -0
  34. package/dist/types/src/components/panels/PaperProperties.vue.d.ts +52 -0
  35. package/dist/types/src/components/panels/PropertiesPanel.vue.d.ts +225 -0
  36. package/dist/types/src/composables/useDesigner.d.ts +9 -0
  37. package/dist/types/src/composables/useDesignerUi.d.ts +2 -0
  38. package/dist/types/src/composables/useDragBox.d.ts +41 -0
  39. package/dist/types/src/composables/useRuler.d.ts +10 -0
  40. package/dist/types/src/constants/default-table-element.d.ts +151 -0
  41. package/dist/types/src/constants/header-elements.d.ts +3 -0
  42. package/dist/types/src/constants/icons.d.ts +61 -0
  43. package/dist/types/src/constants/panel-layout.d.ts +74 -0
  44. package/dist/types/src/constants.d.ts +37 -0
  45. package/dist/types/src/core/designer-options.d.ts +34 -0
  46. package/dist/types/src/core/designer-utils.d.ts +209 -0
  47. package/dist/types/src/core/hiprint-bridge.d.ts +24 -0
  48. package/dist/types/src/core/hiprint-paper-list.d.ts +20 -0
  49. package/dist/types/src/core/history-labels.d.ts +8 -0
  50. package/dist/types/src/core/history.d.ts +24 -0
  51. package/dist/types/src/core/json-editor-modal.d.ts +15 -0
  52. package/dist/types/src/core/plugins.d.ts +17 -0
  53. package/dist/types/src/core/preview-html.d.ts +2 -0
  54. package/dist/types/src/core/print-data-editor-modal.d.ts +19 -0
  55. package/dist/types/src/core/providers.d.ts +5 -0
  56. package/dist/types/src/core/register-icons.d.ts +1 -0
  57. package/dist/types/src/core/shortcuts.d.ts +20 -0
  58. package/dist/types/src/core/storage.d.ts +3 -0
  59. package/dist/types/src/core/stores.d.ts +77 -0
  60. package/dist/types/src/core/svp-element-provider.d.ts +8 -0
  61. package/dist/types/src/core/template-fields.d.ts +28 -0
  62. package/dist/types/src/core/theme.d.ts +1 -0
  63. package/dist/types/src/i18n/en-US.d.ts +104 -0
  64. package/dist/types/src/i18n/index.d.ts +12 -0
  65. package/dist/types/src/i18n/zh-CN.d.ts +104 -0
  66. package/dist/types/src/index.d.ts +52 -0
  67. package/dist/types/src/types.d.ts +229 -0
  68. package/dist/vue2/index.cjs +10329 -0
  69. package/dist/vue2/index.cjs.map +1 -0
  70. package/dist/vue2/index.mjs +10324 -0
  71. package/dist/vue2/index.mjs.map +1 -0
  72. package/dist/vue2/index.umd.cjs +10330 -0
  73. package/dist/vue2/index.umd.cjs.map +1 -0
  74. package/dist/vue2/style.css +2657 -0
  75. package/dist/vue3/index.cjs +10062 -0
  76. package/dist/vue3/index.cjs.map +1 -0
  77. package/dist/vue3/index.mjs +10057 -0
  78. package/dist/vue3/index.mjs.map +1 -0
  79. package/dist/vue3/index.umd.cjs +10063 -0
  80. package/dist/vue3/index.umd.cjs.map +1 -0
  81. package/dist/vue3/style.css +2657 -0
  82. package/package.json +129 -0
@@ -0,0 +1,2657 @@
1
+ @charset "UTF-8";
2
+ *, ::before, ::after{
3
+ --tw-border-spacing-x: 0;
4
+ --tw-border-spacing-y: 0;
5
+ --tw-translate-x: 0;
6
+ --tw-translate-y: 0;
7
+ --tw-rotate: 0;
8
+ --tw-skew-x: 0;
9
+ --tw-skew-y: 0;
10
+ --tw-scale-x: 1;
11
+ --tw-scale-y: 1;
12
+ --tw-pan-x: ;
13
+ --tw-pan-y: ;
14
+ --tw-pinch-zoom: ;
15
+ --tw-scroll-snap-strictness: proximity;
16
+ --tw-gradient-from-position: ;
17
+ --tw-gradient-via-position: ;
18
+ --tw-gradient-to-position: ;
19
+ --tw-ordinal: ;
20
+ --tw-slashed-zero: ;
21
+ --tw-numeric-figure: ;
22
+ --tw-numeric-spacing: ;
23
+ --tw-numeric-fraction: ;
24
+ --tw-ring-inset: ;
25
+ --tw-ring-offset-width: 0px;
26
+ --tw-ring-offset-color: #fff;
27
+ --tw-ring-color: rgb(59 130 246 / 0.5);
28
+ --tw-ring-offset-shadow: 0 0 #0000;
29
+ --tw-ring-shadow: 0 0 #0000;
30
+ --tw-shadow: 0 0 #0000;
31
+ --tw-shadow-colored: 0 0 #0000;
32
+ --tw-blur: ;
33
+ --tw-brightness: ;
34
+ --tw-contrast: ;
35
+ --tw-grayscale: ;
36
+ --tw-hue-rotate: ;
37
+ --tw-invert: ;
38
+ --tw-saturate: ;
39
+ --tw-sepia: ;
40
+ --tw-drop-shadow: ;
41
+ --tw-backdrop-blur: ;
42
+ --tw-backdrop-brightness: ;
43
+ --tw-backdrop-contrast: ;
44
+ --tw-backdrop-grayscale: ;
45
+ --tw-backdrop-hue-rotate: ;
46
+ --tw-backdrop-invert: ;
47
+ --tw-backdrop-opacity: ;
48
+ --tw-backdrop-saturate: ;
49
+ --tw-backdrop-sepia: ;
50
+ --tw-contain-size: ;
51
+ --tw-contain-layout: ;
52
+ --tw-contain-paint: ;
53
+ --tw-contain-style: ;
54
+ }
55
+ ::backdrop{
56
+ --tw-border-spacing-x: 0;
57
+ --tw-border-spacing-y: 0;
58
+ --tw-translate-x: 0;
59
+ --tw-translate-y: 0;
60
+ --tw-rotate: 0;
61
+ --tw-skew-x: 0;
62
+ --tw-skew-y: 0;
63
+ --tw-scale-x: 1;
64
+ --tw-scale-y: 1;
65
+ --tw-pan-x: ;
66
+ --tw-pan-y: ;
67
+ --tw-pinch-zoom: ;
68
+ --tw-scroll-snap-strictness: proximity;
69
+ --tw-gradient-from-position: ;
70
+ --tw-gradient-via-position: ;
71
+ --tw-gradient-to-position: ;
72
+ --tw-ordinal: ;
73
+ --tw-slashed-zero: ;
74
+ --tw-numeric-figure: ;
75
+ --tw-numeric-spacing: ;
76
+ --tw-numeric-fraction: ;
77
+ --tw-ring-inset: ;
78
+ --tw-ring-offset-width: 0px;
79
+ --tw-ring-offset-color: #fff;
80
+ --tw-ring-color: rgb(59 130 246 / 0.5);
81
+ --tw-ring-offset-shadow: 0 0 #0000;
82
+ --tw-ring-shadow: 0 0 #0000;
83
+ --tw-shadow: 0 0 #0000;
84
+ --tw-shadow-colored: 0 0 #0000;
85
+ --tw-blur: ;
86
+ --tw-brightness: ;
87
+ --tw-contrast: ;
88
+ --tw-grayscale: ;
89
+ --tw-hue-rotate: ;
90
+ --tw-invert: ;
91
+ --tw-saturate: ;
92
+ --tw-sepia: ;
93
+ --tw-drop-shadow: ;
94
+ --tw-backdrop-blur: ;
95
+ --tw-backdrop-brightness: ;
96
+ --tw-backdrop-contrast: ;
97
+ --tw-backdrop-grayscale: ;
98
+ --tw-backdrop-hue-rotate: ;
99
+ --tw-backdrop-invert: ;
100
+ --tw-backdrop-opacity: ;
101
+ --tw-backdrop-saturate: ;
102
+ --tw-backdrop-sepia: ;
103
+ --tw-contain-size: ;
104
+ --tw-contain-layout: ;
105
+ --tw-contain-paint: ;
106
+ --tw-contain-style: ;
107
+ }
108
+ /*
109
+ ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
110
+ */
111
+ /*
112
+ 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
113
+ 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
114
+ */
115
+ *,
116
+ ::before,
117
+ ::after {
118
+ box-sizing: border-box; /* 1 */
119
+ border-width: 0; /* 2 */
120
+ border-style: solid; /* 2 */
121
+ border-color: #e5e7eb; /* 2 */
122
+ }
123
+ ::before,
124
+ ::after {
125
+ --tw-content: '';
126
+ }
127
+ /*
128
+ 1. Use a consistent sensible line-height in all browsers.
129
+ 2. Prevent adjustments of font size after orientation changes in iOS.
130
+ 3. Use a more readable tab size.
131
+ 4. Use the user's configured `sans` font-family by default.
132
+ 5. Use the user's configured `sans` font-feature-settings by default.
133
+ 6. Use the user's configured `sans` font-variation-settings by default.
134
+ 7. Disable tap highlights on iOS
135
+ */
136
+ html,
137
+ :host {
138
+ line-height: 1.5; /* 1 */
139
+ -webkit-text-size-adjust: 100%; /* 2 */
140
+ -moz-tab-size: 4; /* 3 */
141
+ -o-tab-size: 4;
142
+ tab-size: 4; /* 3 */
143
+ font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
144
+ font-feature-settings: normal; /* 5 */
145
+ font-variation-settings: normal; /* 6 */
146
+ -webkit-tap-highlight-color: transparent; /* 7 */
147
+ }
148
+ /*
149
+ 1. Remove the margin in all browsers.
150
+ 2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
151
+ */
152
+ body {
153
+ margin: 0; /* 1 */
154
+ line-height: inherit; /* 2 */
155
+ }
156
+ /*
157
+ 1. Add the correct height in Firefox.
158
+ 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
159
+ 3. Ensure horizontal rules are visible by default.
160
+ */
161
+ hr {
162
+ height: 0; /* 1 */
163
+ color: inherit; /* 2 */
164
+ border-top-width: 1px; /* 3 */
165
+ }
166
+ /*
167
+ Add the correct text decoration in Chrome, Edge, and Safari.
168
+ */
169
+ abbr:where([title]) {
170
+ -webkit-text-decoration: underline dotted;
171
+ text-decoration: underline dotted;
172
+ }
173
+ /*
174
+ Remove the default font size and weight for headings.
175
+ */
176
+ h1,
177
+ h2,
178
+ h3,
179
+ h4,
180
+ h5,
181
+ h6 {
182
+ font-size: inherit;
183
+ font-weight: inherit;
184
+ }
185
+ /*
186
+ Reset links to optimize for opt-in styling instead of opt-out.
187
+ */
188
+ a {
189
+ color: inherit;
190
+ text-decoration: inherit;
191
+ }
192
+ /*
193
+ Add the correct font weight in Edge and Safari.
194
+ */
195
+ b,
196
+ strong {
197
+ font-weight: bolder;
198
+ }
199
+ /*
200
+ 1. Use the user's configured `mono` font-family by default.
201
+ 2. Use the user's configured `mono` font-feature-settings by default.
202
+ 3. Use the user's configured `mono` font-variation-settings by default.
203
+ 4. Correct the odd `em` font sizing in all browsers.
204
+ */
205
+ code,
206
+ kbd,
207
+ samp,
208
+ pre {
209
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
210
+ font-feature-settings: normal; /* 2 */
211
+ font-variation-settings: normal; /* 3 */
212
+ font-size: 1em; /* 4 */
213
+ }
214
+ /*
215
+ Add the correct font size in all browsers.
216
+ */
217
+ small {
218
+ font-size: 80%;
219
+ }
220
+ /*
221
+ Prevent `sub` and `sup` elements from affecting the line height in all browsers.
222
+ */
223
+ sub,
224
+ sup {
225
+ font-size: 75%;
226
+ line-height: 0;
227
+ position: relative;
228
+ vertical-align: baseline;
229
+ }
230
+ sub {
231
+ bottom: -0.25em;
232
+ }
233
+ sup {
234
+ top: -0.5em;
235
+ }
236
+ /*
237
+ 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
238
+ 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
239
+ 3. Remove gaps between table borders by default.
240
+ */
241
+ table {
242
+ text-indent: 0; /* 1 */
243
+ border-color: inherit; /* 2 */
244
+ border-collapse: collapse; /* 3 */
245
+ }
246
+ /*
247
+ 1. Change the font styles in all browsers.
248
+ 2. Remove the margin in Firefox and Safari.
249
+ 3. Remove default padding in all browsers.
250
+ */
251
+ button,
252
+ input,
253
+ optgroup,
254
+ select,
255
+ textarea {
256
+ font-family: inherit; /* 1 */
257
+ font-feature-settings: inherit; /* 1 */
258
+ font-variation-settings: inherit; /* 1 */
259
+ font-size: 100%; /* 1 */
260
+ font-weight: inherit; /* 1 */
261
+ line-height: inherit; /* 1 */
262
+ letter-spacing: inherit; /* 1 */
263
+ color: inherit; /* 1 */
264
+ margin: 0; /* 2 */
265
+ padding: 0; /* 3 */
266
+ }
267
+ /*
268
+ Remove the inheritance of text transform in Edge and Firefox.
269
+ */
270
+ button,
271
+ select {
272
+ text-transform: none;
273
+ }
274
+ /*
275
+ 1. Correct the inability to style clickable types in iOS and Safari.
276
+ 2. Remove default button styles.
277
+ */
278
+ button,
279
+ input:where([type='button']),
280
+ input:where([type='reset']),
281
+ input:where([type='submit']) {
282
+ -webkit-appearance: button; /* 1 */
283
+ background-color: transparent; /* 2 */
284
+ background-image: none; /* 2 */
285
+ }
286
+ /*
287
+ Use the modern Firefox focus style for all focusable elements.
288
+ */
289
+ :-moz-focusring {
290
+ outline: auto;
291
+ }
292
+ /*
293
+ Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
294
+ */
295
+ :-moz-ui-invalid {
296
+ box-shadow: none;
297
+ }
298
+ /*
299
+ Add the correct vertical alignment in Chrome and Firefox.
300
+ */
301
+ progress {
302
+ vertical-align: baseline;
303
+ }
304
+ /*
305
+ Correct the cursor style of increment and decrement buttons in Safari.
306
+ */
307
+ ::-webkit-inner-spin-button,
308
+ ::-webkit-outer-spin-button {
309
+ height: auto;
310
+ }
311
+ /*
312
+ 1. Correct the odd appearance in Chrome and Safari.
313
+ 2. Correct the outline style in Safari.
314
+ */
315
+ [type='search'] {
316
+ -webkit-appearance: textfield; /* 1 */
317
+ outline-offset: -2px; /* 2 */
318
+ }
319
+ /*
320
+ Remove the inner padding in Chrome and Safari on macOS.
321
+ */
322
+ ::-webkit-search-decoration {
323
+ -webkit-appearance: none;
324
+ }
325
+ /*
326
+ 1. Correct the inability to style clickable types in iOS and Safari.
327
+ 2. Change font properties to `inherit` in Safari.
328
+ */
329
+ ::-webkit-file-upload-button {
330
+ -webkit-appearance: button; /* 1 */
331
+ font: inherit; /* 2 */
332
+ }
333
+ /*
334
+ Add the correct display in Chrome and Safari.
335
+ */
336
+ summary {
337
+ display: list-item;
338
+ }
339
+ /*
340
+ Removes the default spacing and border for appropriate elements.
341
+ */
342
+ blockquote,
343
+ dl,
344
+ dd,
345
+ h1,
346
+ h2,
347
+ h3,
348
+ h4,
349
+ h5,
350
+ h6,
351
+ hr,
352
+ figure,
353
+ p,
354
+ pre {
355
+ margin: 0;
356
+ }
357
+ fieldset {
358
+ margin: 0;
359
+ padding: 0;
360
+ }
361
+ legend {
362
+ padding: 0;
363
+ }
364
+ ol,
365
+ ul,
366
+ menu {
367
+ list-style: none;
368
+ margin: 0;
369
+ padding: 0;
370
+ }
371
+ /*
372
+ Reset default styling for dialogs.
373
+ */
374
+ dialog {
375
+ padding: 0;
376
+ }
377
+ /*
378
+ Prevent resizing textareas horizontally by default.
379
+ */
380
+ textarea {
381
+ resize: vertical;
382
+ }
383
+ /*
384
+ 1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
385
+ 2. Set the default placeholder color to the user's configured gray 400 color.
386
+ */
387
+ input::-moz-placeholder, textarea::-moz-placeholder {
388
+ opacity: 1; /* 1 */
389
+ color: #9ca3af; /* 2 */
390
+ }
391
+ input::placeholder,
392
+ textarea::placeholder {
393
+ opacity: 1; /* 1 */
394
+ color: #9ca3af; /* 2 */
395
+ }
396
+ /*
397
+ Set the default cursor for buttons.
398
+ */
399
+ button,
400
+ [role="button"] {
401
+ cursor: pointer;
402
+ }
403
+ /*
404
+ Make sure disabled buttons don't get the pointer cursor.
405
+ */
406
+ :disabled {
407
+ cursor: default;
408
+ }
409
+ /*
410
+ 1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
411
+ 2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
412
+ This can trigger a poorly considered lint error in some tools but is included by design.
413
+ */
414
+ img,
415
+ svg,
416
+ video,
417
+ canvas,
418
+ audio,
419
+ iframe,
420
+ embed,
421
+ object {
422
+ display: block; /* 1 */
423
+ vertical-align: middle; /* 2 */
424
+ }
425
+ /*
426
+ Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
427
+ */
428
+ img,
429
+ video {
430
+ max-width: 100%;
431
+ height: auto;
432
+ }
433
+ /* Make elements with the HTML hidden attribute stay hidden by default */
434
+ [hidden]:where(:not([hidden="until-found"])) {
435
+ display: none;
436
+ }
437
+ :root{
438
+ color-scheme: light;
439
+ --rounded-box: 1rem;
440
+ --rounded-btn: 0.5rem;
441
+ --rounded-badge: 1.9rem;
442
+ --animation-btn: 0.25s;
443
+ --animation-input: .2s;
444
+ --btn-focus-scale: 0.95;
445
+ --border-btn: 1px;
446
+ --tab-border: 1px;
447
+ --tab-radius: 0.5rem;
448
+ --p: 45% 0.24 277.023;
449
+ --pc: 100% 0 0;
450
+ --s: 64.0524% 0.27518 342.547599;
451
+ --sc: 100% 0 0;
452
+ --a: 76.4263% 0.131303 184.169154;
453
+ --ac: 29.1209% 0.046441 185.94429;
454
+ --n: 31.3815% 0.021108 254.139175;
455
+ --nc: 74.6146% 0.020272 262.984854;
456
+ --b1: 100% 0 0;
457
+ --b2: 96.1151% 0 0;
458
+ --b3: 92.4169% 0.00108 197.137559;
459
+ --bc: 27.8078% 0.029596 256.847952;
460
+ --in: 58.7617% 0.138868 241.966052;
461
+ --inc: 100% 0 0;
462
+ --su: 62.7052% 0.169912 149.213788;
463
+ --suc: 100% 0 0;
464
+ --wa: 76.859% 0.164659 70.08039;
465
+ --wac: 100% 0 0;
466
+ --er: 57.7099% 0.215157 27.325049;
467
+ --erc: 100% 0 0;
468
+ }
469
+ @media (prefers-color-scheme: dark){
470
+ :root{
471
+ color-scheme: dark;
472
+ --rounded-box: 1rem;
473
+ --rounded-btn: 0.5rem;
474
+ --rounded-badge: 1.9rem;
475
+ --animation-btn: 0.25s;
476
+ --animation-input: .2s;
477
+ --btn-focus-scale: 0.95;
478
+ --border-btn: 1px;
479
+ --tab-border: 1px;
480
+ --tab-radius: 0.5rem;
481
+ --p: 65% 0.24 277.023;
482
+ --pc: 100% 0 0;
483
+ --s: 53.5761% 0.230437 342.280684;
484
+ --sc: 100% 0 0;
485
+ --a: 65.723% 0.115976 181.513997;
486
+ --ac: 29.1209% 0.046441 185.94429;
487
+ --n: 25.3267% 0.015896 252.417568;
488
+ --nc: 74.6146% 0.020272 262.984854;
489
+ --b1: 25.3267% 0.015896 252.417568;
490
+ --b2: 23.2607% 0.013807 253.100675;
491
+ --b3: 21.1484% 0.01165 254.087939;
492
+ --bc: 74.6146% 0.020272 262.984854;
493
+ --in: 75.3513% 0.138989 232.66148;
494
+ --inc: 20.9255% 0.038109 251.480324;
495
+ --su: 72.2746% 0.192007 149.57933;
496
+ --suc: 20.6582% 0.034017 153.195404;
497
+ --wa: 83.6861% 0.164422 84.428628;
498
+ --wac: 19.9137% 0.036447 90.923129;
499
+ --er: 71.0627% 0.166148 22.216224;
500
+ --erc: 16.2247% 0.04013 22.615699;
501
+ }
502
+ }
503
+ [data-theme=svpLight]{
504
+ color-scheme: light;
505
+ --rounded-box: 1rem;
506
+ --rounded-btn: 0.5rem;
507
+ --rounded-badge: 1.9rem;
508
+ --animation-btn: 0.25s;
509
+ --animation-input: .2s;
510
+ --btn-focus-scale: 0.95;
511
+ --border-btn: 1px;
512
+ --tab-border: 1px;
513
+ --tab-radius: 0.5rem;
514
+ --p: 45% 0.24 277.023;
515
+ --pc: 100% 0 0;
516
+ --s: 64.0524% 0.27518 342.547599;
517
+ --sc: 100% 0 0;
518
+ --a: 76.4263% 0.131303 184.169154;
519
+ --ac: 29.1209% 0.046441 185.94429;
520
+ --n: 31.3815% 0.021108 254.139175;
521
+ --nc: 74.6146% 0.020272 262.984854;
522
+ --b1: 100% 0 0;
523
+ --b2: 96.1151% 0 0;
524
+ --b3: 92.4169% 0.00108 197.137559;
525
+ --bc: 27.8078% 0.029596 256.847952;
526
+ --in: 58.7617% 0.138868 241.966052;
527
+ --inc: 100% 0 0;
528
+ --su: 62.7052% 0.169912 149.213788;
529
+ --suc: 100% 0 0;
530
+ --wa: 76.859% 0.164659 70.08039;
531
+ --wac: 100% 0 0;
532
+ --er: 57.7099% 0.215157 27.325049;
533
+ --erc: 100% 0 0;
534
+ }
535
+ [data-theme=svpDark]{
536
+ color-scheme: dark;
537
+ --rounded-box: 1rem;
538
+ --rounded-btn: 0.5rem;
539
+ --rounded-badge: 1.9rem;
540
+ --animation-btn: 0.25s;
541
+ --animation-input: .2s;
542
+ --btn-focus-scale: 0.95;
543
+ --border-btn: 1px;
544
+ --tab-border: 1px;
545
+ --tab-radius: 0.5rem;
546
+ --p: 65% 0.24 277.023;
547
+ --pc: 100% 0 0;
548
+ --s: 53.5761% 0.230437 342.280684;
549
+ --sc: 100% 0 0;
550
+ --a: 65.723% 0.115976 181.513997;
551
+ --ac: 29.1209% 0.046441 185.94429;
552
+ --n: 25.3267% 0.015896 252.417568;
553
+ --nc: 74.6146% 0.020272 262.984854;
554
+ --b1: 25.3267% 0.015896 252.417568;
555
+ --b2: 23.2607% 0.013807 253.100675;
556
+ --b3: 21.1484% 0.01165 254.087939;
557
+ --bc: 74.6146% 0.020272 262.984854;
558
+ --in: 75.3513% 0.138989 232.66148;
559
+ --inc: 20.9255% 0.038109 251.480324;
560
+ --su: 72.2746% 0.192007 149.57933;
561
+ --suc: 20.6582% 0.034017 153.195404;
562
+ --wa: 83.6861% 0.164422 84.428628;
563
+ --wac: 19.9137% 0.036447 90.923129;
564
+ --er: 71.0627% 0.166148 22.216224;
565
+ --erc: 16.2247% 0.04013 22.615699;
566
+ }
567
+ .svp-btn{
568
+ display: inline-flex;
569
+ height: 3rem;
570
+ min-height: 3rem;
571
+ flex-shrink: 0;
572
+ cursor: pointer;
573
+ -webkit-user-select: none;
574
+ -moz-user-select: none;
575
+ user-select: none;
576
+ flex-wrap: wrap;
577
+ align-items: center;
578
+ justify-content: center;
579
+ border-radius: var(--rounded-btn, 0.5rem);
580
+ border-color: transparent;
581
+ border-color: oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity));
582
+ padding-left: 1rem;
583
+ padding-right: 1rem;
584
+ text-align: center;
585
+ font-size: 0.875rem;
586
+ line-height: 1em;
587
+ gap: 0.5rem;
588
+ font-weight: 600;
589
+ text-decoration-line: none;
590
+ transition-duration: 200ms;
591
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
592
+ border-width: var(--border-btn, 1px);
593
+ transition-property: color, background-color, border-color, opacity, box-shadow, transform;
594
+ --tw-text-opacity: 1;
595
+ color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));
596
+ --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
597
+ --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
598
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
599
+ outline-color: var(--fallback-bc,oklch(var(--bc)/1));
600
+ background-color: oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity));
601
+ --tw-bg-opacity: 1;
602
+ --tw-border-opacity: 1;
603
+ }
604
+ .svp-btn-disabled,
605
+ .svp-btn[disabled],
606
+ .svp-btn:disabled{
607
+ pointer-events: none;
608
+ }
609
+ :where(.svp-btn:is(input[type="checkbox"])),
610
+ :where(.svp-btn:is(input[type="radio"])){
611
+ width: auto;
612
+ -webkit-appearance: none;
613
+ -moz-appearance: none;
614
+ appearance: none;
615
+ }
616
+ .svp-btn:is(input[type="checkbox"]):after,
617
+ .svp-btn:is(input[type="radio"]):after{
618
+ --tw-content: attr(aria-label);
619
+ content: var(--tw-content);
620
+ }
621
+ @media (hover: hover){
622
+ .svp-btn:hover{
623
+ --tw-border-opacity: 1;
624
+ border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity)));
625
+ --tw-bg-opacity: 1;
626
+ background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));
627
+ }
628
+ @supports (color: color-mix(in oklab, black, black)){
629
+ .svp-btn:hover{
630
+ background-color: color-mix(
631
+ in oklab,
632
+ oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%,
633
+ black
634
+ );
635
+ border-color: color-mix(
636
+ in oklab,
637
+ oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%,
638
+ black
639
+ );
640
+ }
641
+ }
642
+ @supports not (color: oklch(0% 0 0)){
643
+ .svp-btn:hover{
644
+ background-color: var(--btn-color, var(--fallback-b2));
645
+ border-color: var(--btn-color, var(--fallback-b2));
646
+ }
647
+ }
648
+ .svp-btn:hover{
649
+ --tw-border-opacity: 1;
650
+ border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity)));
651
+ --tw-bg-opacity: 1;
652
+ background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));
653
+ }
654
+ @supports (color: color-mix(in oklab, black, black)){
655
+ .svp-btn:hover{
656
+ background-color: color-mix(
657
+ in oklab,
658
+ oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%,
659
+ black
660
+ );
661
+ border-color: color-mix(
662
+ in oklab,
663
+ oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%,
664
+ black
665
+ );
666
+ }
667
+ }
668
+ @supports not (color: oklch(0% 0 0)){
669
+ .svp-btn:hover{
670
+ background-color: var(--btn-color, var(--fallback-b2));
671
+ border-color: var(--btn-color, var(--fallback-b2));
672
+ }
673
+ }
674
+ .svp-btn:hover{
675
+ --tw-border-opacity: 1;
676
+ border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity)));
677
+ --tw-bg-opacity: 1;
678
+ background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));
679
+ }
680
+ @supports (color: color-mix(in oklab, black, black)){
681
+ .svp-btn:hover{
682
+ background-color: color-mix(
683
+ in oklab,
684
+ oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%,
685
+ black
686
+ );
687
+ border-color: color-mix(
688
+ in oklab,
689
+ oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%,
690
+ black
691
+ );
692
+ }
693
+ }
694
+ @supports not (color: oklch(0% 0 0)){
695
+ .svp-btn:hover{
696
+ background-color: var(--btn-color, var(--fallback-b2));
697
+ border-color: var(--btn-color, var(--fallback-b2));
698
+ }
699
+ }
700
+ .svp-btn.svp-glass:hover{
701
+ --glass-opacity: 25%;
702
+ --glass-border-opacity: 15%;
703
+ }
704
+ .svp-btn-disabled:hover,
705
+ .svp-btn[disabled]:hover,
706
+ .svp-btn:disabled:hover{
707
+ --tw-border-opacity: 0;
708
+ background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));
709
+ --tw-bg-opacity: 0.2;
710
+ color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));
711
+ --tw-text-opacity: 0.2;
712
+ }
713
+ @supports (color: color-mix(in oklab, black, black)){
714
+ .svp-btn:is(input[type="checkbox"]:checked):hover, .svp-btn:is(input[type="radio"]:checked):hover{
715
+ background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);
716
+ border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);
717
+ }
718
+ }
719
+ }
720
+ .svp-footer{
721
+ display: grid;
722
+ width: 100%;
723
+ grid-auto-flow: row;
724
+ place-items: start;
725
+ -moz-column-gap: 1rem;
726
+ column-gap: 1rem;
727
+ row-gap: 2.5rem;
728
+ font-size: 0.875rem;
729
+ line-height: 1.25rem;
730
+ }
731
+ .svp-footer > *{
732
+ display: grid;
733
+ place-items: start;
734
+ gap: 0.5rem;
735
+ }
736
+ @media (min-width: 48rem){
737
+ .svp-footer{
738
+ grid-auto-flow: column;
739
+ }
740
+ .svp-footer-center{
741
+ grid-auto-flow: row dense;
742
+ }
743
+ }
744
+ .svp-modal{
745
+ pointer-events: none;
746
+ position: fixed;
747
+ inset: 0px;
748
+ margin: 0px;
749
+ display: grid;
750
+ height: 100%;
751
+ max-height: none;
752
+ width: 100%;
753
+ max-width: none;
754
+ justify-items: center;
755
+ padding: 0px;
756
+ opacity: 0;
757
+ overscroll-behavior: contain;
758
+ z-index: 999;
759
+ background-color: transparent;
760
+ color: inherit;
761
+ transition-duration: 200ms;
762
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
763
+ transition-property: transform, opacity, visibility;
764
+ overflow-y: hidden;
765
+ }
766
+ :where(.svp-modal){
767
+ align-items: center;
768
+ }
769
+ .svp-modal-open,
770
+ .svp-modal:target,
771
+ .svp-modal-toggle:checked + .svp-modal,
772
+ .svp-modal[open]{
773
+ pointer-events: auto;
774
+ visibility: visible;
775
+ opacity: 1;
776
+ }
777
+ :root:has(:is(.svp-modal-open, .svp-modal:target, .svp-modal-toggle:checked + .svp-modal, .svp-modal[open])){
778
+ overflow: hidden;
779
+ scrollbar-gutter: stable;
780
+ }
781
+ @media (prefers-reduced-motion: no-preference){
782
+ .svp-btn{
783
+ animation: button-pop var(--animation-btn, 0.25s) ease-out;
784
+ }
785
+ }
786
+ .svp-btn:active:hover,
787
+ .svp-btn:active:focus{
788
+ animation: button-pop 0s ease-out;
789
+ transform: scale(var(--btn-focus-scale, 0.97));
790
+ }
791
+ @supports not (color: oklch(0% 0 0)){
792
+ .svp-btn{
793
+ background-color: var(--btn-color, var(--fallback-b2));
794
+ border-color: var(--btn-color, var(--fallback-b2));
795
+ }
796
+ }
797
+ .svp-btn:focus-visible{
798
+ outline-style: solid;
799
+ outline-width: 2px;
800
+ outline-offset: 2px;
801
+ }
802
+ .svp-btn.svp-glass{
803
+ --tw-shadow: 0 0 #0000;
804
+ --tw-shadow-colored: 0 0 #0000;
805
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
806
+ outline-color: currentColor;
807
+ }
808
+ .svp-btn.svp-glass.svp-btn-active{
809
+ --glass-opacity: 25%;
810
+ --glass-border-opacity: 15%;
811
+ }
812
+ .svp-btn.svp-btn-disabled,
813
+ .svp-btn[disabled],
814
+ .svp-btn:disabled{
815
+ --tw-border-opacity: 0;
816
+ background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));
817
+ --tw-bg-opacity: 0.2;
818
+ color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));
819
+ --tw-text-opacity: 0.2;
820
+ }
821
+ .svp-btn:is(input[type="checkbox"]:checked),
822
+ .svp-btn:is(input[type="radio"]:checked){
823
+ --tw-border-opacity: 1;
824
+ border-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity)));
825
+ --tw-bg-opacity: 1;
826
+ background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity)));
827
+ --tw-text-opacity: 1;
828
+ color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));
829
+ }
830
+ .svp-btn:is(input[type="checkbox"]:checked):focus-visible, .svp-btn:is(input[type="radio"]:checked):focus-visible{
831
+ outline-color: var(--fallback-p,oklch(var(--p)/1));
832
+ }
833
+ @keyframes button-pop{
834
+ 0%{
835
+ transform: scale(var(--btn-focus-scale, 0.98));
836
+ }
837
+ 40%{
838
+ transform: scale(1.02);
839
+ }
840
+ 100%{
841
+ transform: scale(1);
842
+ }
843
+ }
844
+ @keyframes checkmark{
845
+ 0%{
846
+ background-position-y: 5px;
847
+ }
848
+ 50%{
849
+ background-position-y: -2px;
850
+ }
851
+ 100%{
852
+ background-position-y: 0;
853
+ }
854
+ }
855
+ .svp-join > :where(*:not(:first-child)):is(.svp-btn){
856
+ margin-inline-start: calc(var(--border-btn) * -1);
857
+ }
858
+ .svp-modal:not(dialog:not(.svp-modal-open)),
859
+ .svp-modal::backdrop{
860
+ background-color: #0006;
861
+ animation: modal-pop 0.2s ease-out;
862
+ }
863
+ .svp-modal-open .svp-modal-box,
864
+ .svp-modal-toggle:checked + .svp-modal .svp-modal-box,
865
+ .svp-modal:target .svp-modal-box,
866
+ .svp-modal[open] .svp-modal-box{
867
+ --tw-translate-y: 0px;
868
+ --tw-scale-x: 1;
869
+ --tw-scale-y: 1;
870
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
871
+ }
872
+ @keyframes modal-pop{
873
+ 0%{
874
+ opacity: 0;
875
+ }
876
+ }
877
+ @keyframes progress-loading{
878
+ 50%{
879
+ background-position-x: -115%;
880
+ }
881
+ }
882
+ @keyframes radiomark{
883
+ 0%{
884
+ box-shadow: 0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset,
885
+ 0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset;
886
+ }
887
+ 50%{
888
+ box-shadow: 0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset,
889
+ 0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset;
890
+ }
891
+ 100%{
892
+ box-shadow: 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset,
893
+ 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset;
894
+ }
895
+ }
896
+ @keyframes rating-pop{
897
+ 0%{
898
+ transform: translateY(-0.125em);
899
+ }
900
+ 40%{
901
+ transform: translateY(-0.125em);
902
+ }
903
+ 100%{
904
+ transform: translateY(0);
905
+ }
906
+ }
907
+ @keyframes skeleton{
908
+ from{
909
+ background-position: 150%;
910
+ }
911
+ to{
912
+ background-position: -50%;
913
+ }
914
+ }
915
+ @keyframes toast-pop{
916
+ 0%{
917
+ transform: scale(0.9);
918
+ opacity: 0;
919
+ }
920
+ 100%{
921
+ transform: scale(1);
922
+ opacity: 1;
923
+ }
924
+ }
925
+ .svp-join.svp-join-vertical > :where(*:not(:first-child)):is(.svp-btn){
926
+ margin-top: calc(var(--border-btn) * -1);
927
+ }
928
+ .svp-join.svp-join-horizontal > :where(*:not(:first-child)):is(.svp-btn){
929
+ margin-inline-start: calc(var(--border-btn) * -1);
930
+ margin-top: 0px;
931
+ }
932
+ .svp-root {
933
+ --svp-header-height: 40px;
934
+ --svp-toolbar-height: 42px;
935
+ --svp-panel-header-height: 18px;
936
+ --svp-panel-radius: 0;
937
+ --svp-panel-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
938
+ --svp-z-toolbar: 30;
939
+ --svp-z-ruler: 25;
940
+ --svp-z-panel: 50;
941
+ --svp-z-modal: 1000;
942
+ --svp-z-tooltip: 2000;
943
+ --svp-side-w: 240px;
944
+ --svp-props-w: 270px;
945
+ --svp-minimap-w: 240px;
946
+ --svp-primary: oklch(45% 0.24 277.023);
947
+ --svp-primary-content: oklch(93% 0.034 272.788);
948
+ --svp-panel-header-bg: var(--svp-primary);
949
+ --svp-panel-header-fg: var(--svp-primary-content);
950
+ --svp-bg: #ffffff;
951
+ --svp-bg-soft: oklch(97% 0.001 286);
952
+ --svp-fg: oklch(21% 0.006 285.885);
953
+ --svp-fg-muted: oklch(76.3% 0.0018 285.885);
954
+ --svp-border: color-mix(in oklch, oklch(21% 0.006 285.885), white 70%);
955
+ --svp-border-strong: oklch(76.3% 0.0018 285.885);
956
+ --svp-ruler-size: 24px;
957
+ --svp-ruler-bg: #ffffff;
958
+ --svp-ruler-fg: #343a40;
959
+ --svp-ruler-tick: #343a40;
960
+ --svp-ruler-border: #cccccc;
961
+ --svp-ruler-paper: #f5f5f5;
962
+ --svp-scrollbar-size: 4px;
963
+ --svp-scrollbar-thumb: var(--svp-primary);
964
+ --svp-scrollbar-track: transparent;
965
+ --svp-scrollbar-radius: 2px;
966
+ /** Clip zone to hide horizontal scrollbar while keeping scroll. */
967
+ --svp-h-scrollbar-clip: 16px;
968
+ }
969
+ .svp-root[data-theme=svpLight] {
970
+ --svp-primary: oklch(45% 0.24 277.023);
971
+ --svp-primary-content: oklch(93% 0.034 272.788);
972
+ --svp-bg: #ffffff;
973
+ --svp-bg-soft: oklch(97% 0.001 286);
974
+ --svp-fg: oklch(21% 0.006 285.885);
975
+ --svp-fg-muted: oklch(76.3% 0.0018 285.885);
976
+ --svp-border: color-mix(in oklch, oklch(21% 0.006 285.885), white 70%);
977
+ --svp-border-strong: oklch(76.3% 0.0018 285.885);
978
+ }
979
+ .svp-root[data-theme=svpDark] {
980
+ --svp-primary: #818cf8;
981
+ --svp-primary-content: #0b1020;
982
+ --svp-bg: #1f2933;
983
+ --svp-bg-soft: #161b22;
984
+ --svp-fg: #e5e7eb;
985
+ --svp-fg-muted: rgba(229, 231, 235, 0.62);
986
+ --svp-border: #374151;
987
+ --svp-border-strong: rgba(229, 231, 235, 0.18);
988
+ }
989
+ .svp-root .hiprint-printPaper {
990
+ background: #fff;
991
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 4px 14px rgba(0, 0, 0, 0.04);
992
+ margin: 0;
993
+ }
994
+ .svp-root .hiprint-printPanel {
995
+ margin: 0;
996
+ }
997
+ .svp-root .hiprint_rul_wrapper {
998
+ display: none !important;
999
+ }
1000
+ .svp-root .hiprint-pagination,
1001
+ .svp-root .hiprint-printPagination {
1002
+ display: flex;
1003
+ align-items: center;
1004
+ gap: 6px;
1005
+ padding: 4px 8px;
1006
+ list-style: none;
1007
+ margin: 0;
1008
+ }
1009
+ .svp-root .hiprint-pagination li,
1010
+ .svp-root .hiprint-pagination .hiprint-printPagination-item,
1011
+ .svp-root .hiprint-printPagination li,
1012
+ .svp-root .hiprint-printPagination .hiprint-printPagination-item {
1013
+ min-width: 28px;
1014
+ height: 24px;
1015
+ padding: 0 8px;
1016
+ border: 1px solid var(--svp-border);
1017
+ border-radius: 0;
1018
+ font-size: 12px;
1019
+ cursor: pointer;
1020
+ display: inline-flex;
1021
+ align-items: center;
1022
+ justify-content: center;
1023
+ background: var(--svp-bg);
1024
+ color: var(--svp-fg);
1025
+ transition: background 0.15s, color 0.15s, border-color 0.15s;
1026
+ }
1027
+ .svp-root .hiprint-pagination li:hover,
1028
+ .svp-root .hiprint-pagination .hiprint-printPagination-item:hover,
1029
+ .svp-root .hiprint-printPagination li:hover,
1030
+ .svp-root .hiprint-printPagination .hiprint-printPagination-item:hover {
1031
+ border-color: var(--svp-panel-header-bg);
1032
+ }
1033
+ .svp-root .hiprint-pagination li.active, .svp-root .hiprint-pagination li.hiprint-printPagination-active,
1034
+ .svp-root .hiprint-pagination .hiprint-printPagination-item.active,
1035
+ .svp-root .hiprint-pagination .hiprint-printPagination-item.hiprint-printPagination-active,
1036
+ .svp-root .hiprint-printPagination li.active,
1037
+ .svp-root .hiprint-printPagination li.hiprint-printPagination-active,
1038
+ .svp-root .hiprint-printPagination .hiprint-printPagination-item.active,
1039
+ .svp-root .hiprint-printPagination .hiprint-printPagination-item.hiprint-printPagination-active {
1040
+ background: var(--svp-panel-header-bg);
1041
+ color: var(--svp-panel-header-fg);
1042
+ border-color: var(--svp-panel-header-bg);
1043
+ }
1044
+ .svp-root #PrintElementOptionSetting {
1045
+ padding: 8px 10px;
1046
+ font-size: 12px;
1047
+ color: var(--svp-fg);
1048
+ overflow-x: hidden;
1049
+ min-width: 0;
1050
+ display: flex;
1051
+ flex-direction: column;
1052
+ gap: 6px;
1053
+ }
1054
+ .svp-root #PrintElementOptionSetting .prop-tabs {
1055
+ display: flex;
1056
+ flex-direction: column;
1057
+ gap: 8px;
1058
+ width: 100%;
1059
+ }
1060
+ .svp-root #PrintElementOptionSetting .prop-tab-items {
1061
+ display: flex;
1062
+ align-items: flex-end;
1063
+ gap: 0;
1064
+ margin: 0;
1065
+ padding: 0;
1066
+ list-style: none;
1067
+ border-bottom: 1px solid var(--svp-border);
1068
+ }
1069
+ .svp-root #PrintElementOptionSetting .prop-tab-items .prop-tab-item {
1070
+ flex: 1;
1071
+ min-width: 0;
1072
+ margin: 0;
1073
+ padding: 0;
1074
+ height: 28px;
1075
+ line-height: 28px;
1076
+ font-size: 11px;
1077
+ font-weight: 500;
1078
+ color: var(--svp-fg-muted);
1079
+ cursor: pointer;
1080
+ border-bottom: 2px solid transparent;
1081
+ text-align: center;
1082
+ white-space: nowrap;
1083
+ }
1084
+ .svp-root #PrintElementOptionSetting .prop-tab-items .prop-tab-item .tab-title {
1085
+ height: 28px;
1086
+ line-height: 28px;
1087
+ padding: 0 2px;
1088
+ font-size: 11px;
1089
+ font-weight: 500;
1090
+ }
1091
+ .svp-root #PrintElementOptionSetting .prop-tab-items .prop-tab-item.active {
1092
+ color: var(--svp-primary);
1093
+ border-bottom-color: var(--svp-primary);
1094
+ }
1095
+ .svp-root #PrintElementOptionSetting .hiprint-option-items {
1096
+ display: flex;
1097
+ flex-direction: column;
1098
+ gap: 8px;
1099
+ width: 100%;
1100
+ padding: 0;
1101
+ margin: 0;
1102
+ font-size: 12px;
1103
+ flex-wrap: nowrap;
1104
+ align-items: stretch;
1105
+ float: none;
1106
+ }
1107
+ .svp-root #PrintElementOptionSetting .hiprint-option-items .svp-hiprint-paper-list,
1108
+ .svp-root #PrintElementOptionSetting .hiprint-option-items .svp-hiprint-orient,
1109
+ .svp-root #PrintElementOptionSetting .hiprint-option-items .svp-hiprint-watermark,
1110
+ .svp-root #PrintElementOptionSetting .hiprint-option-items .svp-hiprint-panel-layout {
1111
+ display: contents;
1112
+ }
1113
+ .svp-root #PrintElementOptionSetting .prop-tabs .hiprint-option-items {
1114
+ display: none;
1115
+ }
1116
+ .svp-root #PrintElementOptionSetting .prop-tabs .hiprint-option-items.active {
1117
+ display: flex;
1118
+ }
1119
+ .svp-root #PrintElementOptionSetting .svp-panel-layout-hint {
1120
+ margin-top: -2px;
1121
+ }
1122
+ .svp-root #PrintElementOptionSetting .hiprint-option-title {
1123
+ margin-top: 6px;
1124
+ padding-top: 6px;
1125
+ border-top: 1px solid var(--svp-border);
1126
+ font-weight: 600;
1127
+ color: var(--svp-fg);
1128
+ width: 100%;
1129
+ }
1130
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-desc {
1131
+ width: 100%;
1132
+ margin: -2px 0 0;
1133
+ padding-left: 70px;
1134
+ font-size: 11px;
1135
+ line-height: 1.4;
1136
+ color: var(--svp-fg-muted);
1137
+ }
1138
+ .svp-root #PrintElementOptionSetting .hiprint-option-item {
1139
+ box-sizing: border-box;
1140
+ display: flex;
1141
+ align-items: center;
1142
+ gap: 6px;
1143
+ width: 100% !important;
1144
+ min-height: 26px;
1145
+ margin: 0 !important;
1146
+ padding: 0 !important;
1147
+ float: none !important;
1148
+ }
1149
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-row {
1150
+ flex-wrap: nowrap;
1151
+ align-items: center;
1152
+ }
1153
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-row:has(textarea) {
1154
+ align-items: flex-start;
1155
+ }
1156
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-row:has(textarea) > .hiprint-option-item-label {
1157
+ padding-top: 4px;
1158
+ }
1159
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-row:has(> .hiprint-option-item-field ~ .hiprint-option-item-field) {
1160
+ flex-wrap: wrap;
1161
+ align-items: flex-start;
1162
+ }
1163
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-row:has(> .hiprint-option-item-field ~ .hiprint-option-item-field) > .hiprint-option-item-label {
1164
+ padding-top: 3px;
1165
+ }
1166
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-row:has(> .hiprint-option-item-field ~ .hiprint-option-item-field) > .hiprint-option-item-field {
1167
+ flex: 1 1 calc(100% - 70px);
1168
+ min-width: 0;
1169
+ }
1170
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-label {
1171
+ flex: 0 0 64px;
1172
+ width: auto !important;
1173
+ margin: 0 !important;
1174
+ text-align: right;
1175
+ color: var(--svp-fg);
1176
+ white-space: normal;
1177
+ line-height: 1.2;
1178
+ word-break: break-all;
1179
+ }
1180
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-label::after {
1181
+ content: ":";
1182
+ }
1183
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field {
1184
+ flex: 1;
1185
+ min-width: 0;
1186
+ width: auto !important;
1187
+ }
1188
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field > input[type=text],
1189
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field > input:not([type]),
1190
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field > input[type=number],
1191
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field > input[type=color],
1192
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field > select,
1193
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field > textarea {
1194
+ width: 100%;
1195
+ }
1196
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field > textarea {
1197
+ min-height: 60px;
1198
+ }
1199
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> input ~ input), .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> .hiprint-option-item-settingBtn), .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> label), .svp-root #PrintElementOptionSetting .hiprint-option-item-field[style*="display: flex"], .svp-root #PrintElementOptionSetting .hiprint-option-item-field[style*="display:flex"] {
1200
+ display: flex !important;
1201
+ align-items: center;
1202
+ gap: 4px;
1203
+ flex-wrap: nowrap;
1204
+ }
1205
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> input ~ input) > input[type=text],
1206
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> input ~ input) > input:not([type]),
1207
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> input ~ input) > input[type=number],
1208
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> input ~ input) > input[type=color],
1209
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> input ~ input) > select, .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> .hiprint-option-item-settingBtn) > input[type=text],
1210
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> .hiprint-option-item-settingBtn) > input:not([type]),
1211
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> .hiprint-option-item-settingBtn) > input[type=number],
1212
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> .hiprint-option-item-settingBtn) > input[type=color],
1213
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> .hiprint-option-item-settingBtn) > select, .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> label) > input[type=text],
1214
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> label) > input:not([type]),
1215
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> label) > input[type=number],
1216
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> label) > input[type=color],
1217
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> label) > select, .svp-root #PrintElementOptionSetting .hiprint-option-item-field[style*="display: flex"] > input[type=text],
1218
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field[style*="display: flex"] > input:not([type]),
1219
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field[style*="display: flex"] > input[type=number],
1220
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field[style*="display: flex"] > input[type=color],
1221
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field[style*="display: flex"] > select, .svp-root #PrintElementOptionSetting .hiprint-option-item-field[style*="display:flex"] > input[type=text],
1222
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field[style*="display:flex"] > input:not([type]),
1223
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field[style*="display:flex"] > input[type=number],
1224
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field[style*="display:flex"] > input[type=color],
1225
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field[style*="display:flex"] > select {
1226
+ flex: 1 1 0;
1227
+ width: auto !important;
1228
+ min-width: 0;
1229
+ }
1230
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> input ~ input) > label, .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> .hiprint-option-item-settingBtn) > label, .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> label) > label, .svp-root #PrintElementOptionSetting .hiprint-option-item-field[style*="display: flex"] > label, .svp-root #PrintElementOptionSetting .hiprint-option-item-field[style*="display:flex"] > label {
1231
+ flex: 0 0 auto;
1232
+ width: auto !important;
1233
+ margin: 0;
1234
+ font-size: 12px;
1235
+ line-height: 1;
1236
+ white-space: nowrap;
1237
+ cursor: pointer;
1238
+ }
1239
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> input ~ input) > .hiprint-option-item-settingBtn, .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> .hiprint-option-item-settingBtn) > .hiprint-option-item-settingBtn, .svp-root #PrintElementOptionSetting .hiprint-option-item-field:has(> label) > .hiprint-option-item-settingBtn, .svp-root #PrintElementOptionSetting .hiprint-option-item-field[style*="display: flex"] > .hiprint-option-item-settingBtn, .svp-root #PrintElementOptionSetting .hiprint-option-item-field[style*="display:flex"] > .hiprint-option-item-settingBtn {
1240
+ flex: 0 0 auto;
1241
+ width: auto !important;
1242
+ height: 24px;
1243
+ line-height: 24px;
1244
+ margin: 0 !important;
1245
+ padding: 0 10px;
1246
+ white-space: nowrap;
1247
+ }
1248
+ .svp-root #PrintElementOptionSetting input[type=text],
1249
+ .svp-root #PrintElementOptionSetting input:not([type]),
1250
+ .svp-root #PrintElementOptionSetting input[type=number],
1251
+ .svp-root #PrintElementOptionSetting input[type=color],
1252
+ .svp-root #PrintElementOptionSetting select,
1253
+ .svp-root #PrintElementOptionSetting textarea {
1254
+ height: 24px;
1255
+ padding: 0 6px;
1256
+ border: 1px solid var(--svp-border);
1257
+ border-radius: 0;
1258
+ background: var(--svp-bg);
1259
+ color: var(--svp-fg);
1260
+ font-size: 12px;
1261
+ outline: none;
1262
+ box-sizing: border-box;
1263
+ }
1264
+ .svp-root #PrintElementOptionSetting input[type=text]:focus,
1265
+ .svp-root #PrintElementOptionSetting input:not([type]):focus,
1266
+ .svp-root #PrintElementOptionSetting input[type=number]:focus,
1267
+ .svp-root #PrintElementOptionSetting input[type=color]:focus,
1268
+ .svp-root #PrintElementOptionSetting select:focus,
1269
+ .svp-root #PrintElementOptionSetting textarea:focus {
1270
+ border-color: var(--svp-primary);
1271
+ }
1272
+ .svp-root #PrintElementOptionSetting textarea {
1273
+ height: auto;
1274
+ min-height: 60px;
1275
+ padding: 4px 6px;
1276
+ resize: vertical;
1277
+ }
1278
+ .svp-root #PrintElementOptionSetting input[type=color] {
1279
+ padding: 0;
1280
+ cursor: pointer;
1281
+ }
1282
+ .svp-root #PrintElementOptionSetting input[type=range] {
1283
+ flex: 1;
1284
+ width: 100%;
1285
+ height: auto;
1286
+ padding: 0;
1287
+ border: 0;
1288
+ background: transparent;
1289
+ accent-color: var(--svp-primary);
1290
+ }
1291
+ .svp-root #PrintElementOptionSetting input[type=checkbox],
1292
+ .svp-root #PrintElementOptionSetting input[type=radio] {
1293
+ flex: 0 0 auto;
1294
+ width: auto;
1295
+ height: auto;
1296
+ accent-color: var(--svp-primary);
1297
+ }
1298
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field.options {
1299
+ display: flex;
1300
+ gap: 0;
1301
+ padding: 0;
1302
+ border: 1px solid var(--svp-border);
1303
+ border-radius: 0;
1304
+ background: var(--svp-bg);
1305
+ }
1306
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field.options .option {
1307
+ flex: 1;
1308
+ height: 24px;
1309
+ line-height: 24px;
1310
+ padding: 0 8px;
1311
+ text-align: center;
1312
+ font-size: 12px;
1313
+ color: var(--svp-fg);
1314
+ border: 0;
1315
+ border-radius: 0;
1316
+ cursor: pointer;
1317
+ -webkit-user-select: none;
1318
+ -moz-user-select: none;
1319
+ user-select: none;
1320
+ }
1321
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field.options .option.checked {
1322
+ background: var(--svp-primary);
1323
+ color: var(--svp-primary-content);
1324
+ font-weight: 600;
1325
+ cursor: default;
1326
+ box-shadow: none;
1327
+ }
1328
+ .svp-root #PrintElementOptionSetting .minicolors {
1329
+ width: 100%;
1330
+ }
1331
+ .svp-root #PrintElementOptionSetting .minicolors .minicolors-input {
1332
+ width: 100% !important;
1333
+ height: 24px;
1334
+ padding: 0 6px 0 28px;
1335
+ border: 1px solid var(--svp-border);
1336
+ border-radius: 0;
1337
+ background: var(--svp-bg);
1338
+ color: var(--svp-fg);
1339
+ font-size: 12px;
1340
+ }
1341
+ .svp-root #PrintElementOptionSetting .minicolors .minicolors-input:focus {
1342
+ border-color: var(--svp-primary);
1343
+ }
1344
+ .svp-root #PrintElementOptionSetting .minicolors .minicolors-swatch {
1345
+ top: 3px;
1346
+ left: 4px;
1347
+ width: 18px;
1348
+ height: 18px;
1349
+ border: 1px solid var(--svp-border);
1350
+ border-radius: 0;
1351
+ }
1352
+ .svp-root #PrintElementOptionSetting .hiprint-option-items > .hiprint-option-item-settingBtn,
1353
+ .svp-root #PrintElementOptionSetting .hiprint-option-items > .hiprint-option-item-submitBtn,
1354
+ .svp-root #PrintElementOptionSetting .hiprint-option-items > .hiprint-option-item-deleteBtn {
1355
+ width: 100%;
1356
+ height: 28px;
1357
+ margin: 6px 0 0;
1358
+ padding: 0 12px;
1359
+ border: 1px solid var(--svp-primary);
1360
+ border-radius: 0;
1361
+ background: var(--svp-primary);
1362
+ color: var(--svp-primary-content);
1363
+ font-size: 12px;
1364
+ font-weight: 400;
1365
+ line-height: 28px;
1366
+ cursor: pointer;
1367
+ transition: opacity 0.15s;
1368
+ }
1369
+ .svp-root #PrintElementOptionSetting .hiprint-option-items > .hiprint-option-item-settingBtn:hover,
1370
+ .svp-root #PrintElementOptionSetting .hiprint-option-items > .hiprint-option-item-submitBtn:hover,
1371
+ .svp-root #PrintElementOptionSetting .hiprint-option-items > .hiprint-option-item-deleteBtn:hover {
1372
+ opacity: 0.92;
1373
+ }
1374
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field > .hiprint-option-item-settingBtn {
1375
+ border: 1px solid var(--svp-primary);
1376
+ border-radius: 0;
1377
+ background: var(--svp-primary);
1378
+ color: var(--svp-primary-content);
1379
+ font-size: 12px;
1380
+ cursor: pointer;
1381
+ transition: opacity 0.15s;
1382
+ }
1383
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-field > .hiprint-option-item-settingBtn:hover {
1384
+ opacity: 0.92;
1385
+ }
1386
+ .svp-root #PrintElementOptionSetting .hiprint-option-items > .hiprint-option-item-deleteBtn {
1387
+ background: #ef4444;
1388
+ border-color: #ef4444;
1389
+ color: #fff;
1390
+ }
1391
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-row:has(.hiprint-option-table-selected-columns) {
1392
+ flex-direction: column;
1393
+ align-items: stretch;
1394
+ gap: 4px;
1395
+ }
1396
+ .svp-root #PrintElementOptionSetting .hiprint-option-item-row:has(.hiprint-option-table-selected-columns) > div {
1397
+ flex: 1 1 100%;
1398
+ width: 100%;
1399
+ min-width: 0;
1400
+ }
1401
+ .svp-root #PrintElementOptionSetting .hiprint-option-table-selected-columns {
1402
+ display: flex;
1403
+ flex-direction: column;
1404
+ gap: 4px;
1405
+ margin: 0;
1406
+ padding: 0;
1407
+ list-style: none;
1408
+ width: 100%;
1409
+ }
1410
+ .svp-root #PrintElementOptionSetting .hiprint-option-table-selected-item {
1411
+ display: flex;
1412
+ align-items: center;
1413
+ gap: 8px;
1414
+ width: 100%;
1415
+ min-height: 30px;
1416
+ margin: 0 !important;
1417
+ padding: 5px 8px !important;
1418
+ border: 1px solid var(--svp-border) !important;
1419
+ border-radius: 0;
1420
+ background: var(--svp-bg-soft);
1421
+ line-height: 1.4 !important;
1422
+ box-sizing: border-box;
1423
+ transition: border-color 0.15s, background 0.15s;
1424
+ }
1425
+ .svp-root #PrintElementOptionSetting .hiprint-option-table-selected-item:hover {
1426
+ border-color: color-mix(in srgb, var(--svp-primary) 35%, var(--svp-border));
1427
+ background: var(--svp-bg);
1428
+ }
1429
+ .svp-root #PrintElementOptionSetting .hiprint-option-table-selected-item .column-title {
1430
+ flex: 1;
1431
+ display: block !important;
1432
+ min-width: 0 !important;
1433
+ font-size: 12px;
1434
+ color: var(--svp-fg);
1435
+ overflow: hidden;
1436
+ text-overflow: ellipsis;
1437
+ white-space: nowrap;
1438
+ }
1439
+ .svp-root #PrintElementOptionSetting .hiprint-option-table-selected-item .column-title:empty::before {
1440
+ content: "—";
1441
+ color: var(--svp-fg-muted);
1442
+ }
1443
+ .svp-root #PrintElementOptionSetting .hiprint-option-table-selected-item .hi-pretty {
1444
+ flex: 0 0 auto;
1445
+ margin: 0 !important;
1446
+ line-height: 1;
1447
+ position: relative;
1448
+ width: 14px;
1449
+ height: 14px;
1450
+ }
1451
+ .svp-root #PrintElementOptionSetting .hiprint-option-table-selected-item .hi-pretty input[type=checkbox] {
1452
+ position: static;
1453
+ opacity: 1;
1454
+ width: 14px;
1455
+ height: 14px;
1456
+ margin: 0;
1457
+ accent-color: var(--svp-primary);
1458
+ cursor: pointer;
1459
+ }
1460
+ .svp-root #PrintElementOptionSetting .hiprint-option-table-selected-item .hi-pretty .state {
1461
+ display: none;
1462
+ }
1463
+ .svp-root #PrintElementOptionSetting table {
1464
+ width: 100%;
1465
+ border-collapse: separate;
1466
+ border-spacing: 0 6px;
1467
+ table-layout: fixed;
1468
+ }
1469
+ .svp-root #PrintElementOptionSetting table tr td:first-child {
1470
+ width: 64px;
1471
+ color: var(--svp-fg);
1472
+ padding-right: 6px;
1473
+ text-align: right;
1474
+ vertical-align: middle;
1475
+ white-space: nowrap;
1476
+ }
1477
+ .svp-root .design-position-selected,
1478
+ .svp-root .hiprint-printElement-selected {
1479
+ outline: 1px dashed var(--svp-panel-header-bg) !important;
1480
+ }
1481
+ .svp-root .draggable-source--is-dragging {
1482
+ opacity: 0.55;
1483
+ }
1484
+ .svp-root {
1485
+ position: relative;
1486
+ width: 100%;
1487
+ height: 100%;
1488
+ display: flex;
1489
+ flex-direction: column;
1490
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, "PingFang SC", "Microsoft YaHei", sans-serif;
1491
+ font-size: 12px;
1492
+ color: var(--svp-fg);
1493
+ background: var(--svp-bg-soft);
1494
+ }
1495
+ .svp-root *, .svp-root *::before, .svp-root *::after {
1496
+ box-sizing: border-box;
1497
+ }
1498
+ .svp-root button {
1499
+ font-family: inherit;
1500
+ }
1501
+ .svp-root {
1502
+ scrollbar-width: thin;
1503
+ scrollbar-color: var(--svp-scrollbar-thumb) var(--svp-scrollbar-track);
1504
+ }
1505
+ .svp-root::-webkit-scrollbar:vertical {
1506
+ width: var(--svp-scrollbar-size);
1507
+ }
1508
+ .svp-root::-webkit-scrollbar:horizontal {
1509
+ height: 0;
1510
+ }
1511
+ .svp-root::-webkit-scrollbar-corner {
1512
+ background: transparent;
1513
+ }
1514
+ .svp-root::-webkit-scrollbar-thumb:vertical {
1515
+ background: var(--svp-scrollbar-thumb);
1516
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, transparent 75%, transparent);
1517
+ border-radius: var(--svp-scrollbar-radius);
1518
+ }
1519
+ .svp-root::-webkit-scrollbar-thumb:vertical:hover {
1520
+ background: var(--svp-scrollbar-thumb);
1521
+ }
1522
+ .svp-root * {
1523
+ scrollbar-width: thin;
1524
+ scrollbar-color: var(--svp-scrollbar-thumb) var(--svp-scrollbar-track);
1525
+ }
1526
+ .svp-root *::-webkit-scrollbar:vertical {
1527
+ width: var(--svp-scrollbar-size);
1528
+ }
1529
+ .svp-root *::-webkit-scrollbar:horizontal {
1530
+ height: 0;
1531
+ }
1532
+ .svp-root *::-webkit-scrollbar-corner {
1533
+ background: transparent;
1534
+ }
1535
+ .svp-root *::-webkit-scrollbar-thumb:vertical {
1536
+ background: var(--svp-scrollbar-thumb);
1537
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, transparent 75%, transparent);
1538
+ border-radius: var(--svp-scrollbar-radius);
1539
+ }
1540
+ .svp-root *::-webkit-scrollbar-thumb:vertical:hover {
1541
+ background: var(--svp-scrollbar-thumb);
1542
+ }
1543
+ .svp-header {
1544
+ flex: 0 0 var(--svp-header-height);
1545
+ display: flex;
1546
+ align-items: center;
1547
+ padding: 0 8px;
1548
+ gap: 8px;
1549
+ line-height: var(--svp-header-height);
1550
+ background: var(--svp-primary);
1551
+ color: var(--svp-primary-content);
1552
+ overflow-x: auto;
1553
+ overflow-y: hidden;
1554
+ -webkit-user-select: none;
1555
+ -moz-user-select: none;
1556
+ user-select: none;
1557
+ z-index: var(--svp-z-toolbar);
1558
+ }
1559
+ .svp-header__aside {
1560
+ flex: 1 1 0;
1561
+ min-width: 0;
1562
+ }
1563
+ .svp-header__aside--left {
1564
+ display: flex;
1565
+ align-items: center;
1566
+ gap: 6px;
1567
+ }
1568
+ .svp-header__aside--right {
1569
+ flex: 1 1 0;
1570
+ justify-content: flex-end;
1571
+ }
1572
+ .svp-header__center {
1573
+ flex: 0 0 auto;
1574
+ display: flex;
1575
+ justify-content: center;
1576
+ align-items: center;
1577
+ gap: 2px;
1578
+ overflow-x: auto;
1579
+ overflow-y: hidden;
1580
+ }
1581
+ .svp-header__logo {
1582
+ font-weight: 600;
1583
+ font-size: 14px;
1584
+ color: inherit;
1585
+ }
1586
+ .svp-header__title {
1587
+ font-size: 14px;
1588
+ color: inherit;
1589
+ white-space: nowrap;
1590
+ }
1591
+ .svp-header__menu {
1592
+ display: inline-flex;
1593
+ flex-direction: column;
1594
+ align-items: center;
1595
+ justify-content: center;
1596
+ min-width: 56px;
1597
+ padding: 0 6px;
1598
+ border: 0;
1599
+ background: transparent;
1600
+ color: var(--svp-primary-content);
1601
+ cursor: pointer;
1602
+ font-size: 12px;
1603
+ line-height: 12px;
1604
+ flex-shrink: 0;
1605
+ }
1606
+ .svp-header__menu:hover {
1607
+ opacity: 0.9;
1608
+ }
1609
+ .svp-header__menu svg {
1610
+ display: block;
1611
+ }
1612
+ .svp-header__menu span {
1613
+ margin-top: 2px;
1614
+ white-space: nowrap;
1615
+ }
1616
+ .svp-header__divider {
1617
+ flex: 0 0 1px;
1618
+ align-self: stretch;
1619
+ width: 1px;
1620
+ margin: 8px 6px;
1621
+ background: color-mix(in srgb, var(--svp-primary-content) 28%, transparent);
1622
+ }
1623
+ .svp-header__ele {
1624
+ display: inline-flex;
1625
+ flex-direction: column;
1626
+ align-items: center;
1627
+ justify-content: center;
1628
+ min-width: 48px;
1629
+ padding: 0 4px;
1630
+ border: 0;
1631
+ background: transparent;
1632
+ color: var(--svp-primary-content);
1633
+ cursor: pointer;
1634
+ font-size: 11px;
1635
+ line-height: 12px;
1636
+ flex-shrink: 0;
1637
+ }
1638
+ .svp-header__ele:hover {
1639
+ opacity: 0.9;
1640
+ }
1641
+ .svp-header__ele span {
1642
+ margin-top: 2px;
1643
+ white-space: nowrap;
1644
+ }
1645
+ .svp-toolbar {
1646
+ flex: 0 0 var(--svp-toolbar-height);
1647
+ display: flex;
1648
+ align-items: center;
1649
+ gap: 0;
1650
+ padding: 0 16px;
1651
+ background: var(--svp-bg);
1652
+ border-bottom: 1px solid var(--svp-border);
1653
+ z-index: calc(var(--svp-z-toolbar) - 1);
1654
+ overflow-x: auto;
1655
+ overflow-y: hidden;
1656
+ -webkit-user-select: none;
1657
+ -moz-user-select: none;
1658
+ user-select: none;
1659
+ }
1660
+ .svp-toolbar__btn {
1661
+ width: 26px;
1662
+ height: 27px;
1663
+ padding: 0 4px;
1664
+ border: 1px solid transparent;
1665
+ margin: 0 1px;
1666
+ background: transparent;
1667
+ display: inline-flex;
1668
+ align-items: center;
1669
+ justify-content: center;
1670
+ border-radius: 3px;
1671
+ color: var(--svp-fg);
1672
+ cursor: pointer;
1673
+ flex-shrink: 0;
1674
+ }
1675
+ .svp-toolbar__btn:hover:not(.is-disabled):not(.is-active) {
1676
+ background: var(--svp-bg-soft);
1677
+ }
1678
+ .svp-toolbar__btn.is-active {
1679
+ color: var(--svp-primary);
1680
+ background: color-mix(in srgb, var(--svp-primary) 12%, var(--svp-bg));
1681
+ border-color: color-mix(in srgb, var(--svp-primary) 35%, var(--svp-border));
1682
+ }
1683
+ .svp-toolbar__btn.is-disabled {
1684
+ color: var(--svp-fg-muted);
1685
+ cursor: not-allowed;
1686
+ }
1687
+ .svp-toolbar__btn svg {
1688
+ width: 18px;
1689
+ height: 18px;
1690
+ display: block;
1691
+ }
1692
+ .svp-toolbar__zoom {
1693
+ min-width: 42px;
1694
+ padding: 0 4px;
1695
+ font-size: 12px;
1696
+ line-height: 27px;
1697
+ color: var(--svp-fg);
1698
+ text-align: center;
1699
+ flex-shrink: 0;
1700
+ -webkit-user-select: none;
1701
+ -moz-user-select: none;
1702
+ user-select: none;
1703
+ }
1704
+ .svp-toolbar__lang-select {
1705
+ height: 24px;
1706
+ margin: 0 1px;
1707
+ padding: 0 6px;
1708
+ border: 1px solid var(--svp-border);
1709
+ border-radius: 3px;
1710
+ background: var(--svp-bg);
1711
+ color: var(--svp-fg);
1712
+ font-size: 12px;
1713
+ cursor: pointer;
1714
+ flex-shrink: 0;
1715
+ }
1716
+ .svp-toolbar__lang-select:hover {
1717
+ border-color: color-mix(in srgb, var(--svp-primary) 35%, var(--svp-border));
1718
+ }
1719
+ .svp-toolbar__lang-select:focus {
1720
+ outline: none;
1721
+ border-color: var(--svp-primary);
1722
+ }
1723
+ .svp-toolbar__sep {
1724
+ width: 1px;
1725
+ height: 20px;
1726
+ background: var(--svp-border-strong);
1727
+ margin: 0 8px;
1728
+ flex-shrink: 0;
1729
+ }
1730
+ .svp-toolbar__spacer {
1731
+ flex: 1;
1732
+ min-width: 8px;
1733
+ }
1734
+ .svp-workspace {
1735
+ position: relative;
1736
+ flex: 1;
1737
+ overflow: hidden;
1738
+ background: #f0f0f0;
1739
+ }
1740
+ .svp-footer {
1741
+ flex: 0 0 22px;
1742
+ display: flex;
1743
+ align-items: center;
1744
+ justify-content: center;
1745
+ padding: 0 8px;
1746
+ font-size: 11px;
1747
+ color: var(--svp-fg-muted);
1748
+ background: var(--svp-bg);
1749
+ border-top: 1px solid var(--svp-border);
1750
+ }
1751
+ .svp-canvas-scroller-wrap {
1752
+ position: absolute;
1753
+ left: var(--svp-ruler-size);
1754
+ top: var(--svp-ruler-size);
1755
+ right: 0;
1756
+ bottom: 0;
1757
+ overflow: hidden;
1758
+ }
1759
+ .svp-canvas-scroller {
1760
+ width: 100%;
1761
+ height: calc(100% + var(--svp-h-scrollbar-clip));
1762
+ overflow-x: auto;
1763
+ overflow-y: auto;
1764
+ padding-bottom: var(--svp-h-scrollbar-clip);
1765
+ margin-bottom: calc(-1 * var(--svp-h-scrollbar-clip));
1766
+ box-sizing: border-box;
1767
+ scrollbar-width: thin;
1768
+ scrollbar-color: var(--svp-scrollbar-thumb) transparent;
1769
+ }
1770
+ .svp-canvas-scroller::-webkit-scrollbar {
1771
+ width: var(--svp-scrollbar-size);
1772
+ height: 0;
1773
+ }
1774
+ .svp-canvas-scroller::-webkit-scrollbar:horizontal {
1775
+ height: 0 !important;
1776
+ display: none !important;
1777
+ }
1778
+ .svp-canvas-scroller::-webkit-scrollbar-thumb:horizontal, .svp-canvas-scroller::-webkit-scrollbar-track:horizontal {
1779
+ display: none !important;
1780
+ height: 0 !important;
1781
+ background: transparent !important;
1782
+ }
1783
+ .svp-canvas-scroller::-webkit-scrollbar:vertical {
1784
+ width: var(--svp-scrollbar-size);
1785
+ }
1786
+ .svp-canvas-scroller::-webkit-scrollbar-thumb:vertical {
1787
+ background: var(--svp-scrollbar-thumb);
1788
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, transparent 75%, transparent);
1789
+ border-radius: var(--svp-scrollbar-radius);
1790
+ }
1791
+ .svp-canvas-scroller::-webkit-scrollbar-thumb:vertical:hover {
1792
+ background: var(--svp-scrollbar-thumb);
1793
+ }
1794
+ .svp-canvas-scroller::-webkit-scrollbar-corner {
1795
+ display: none;
1796
+ background: transparent;
1797
+ }
1798
+ .svp-design-host {
1799
+ box-sizing: border-box;
1800
+ min-width: -moz-max-content;
1801
+ min-width: max-content;
1802
+ min-height: -moz-max-content;
1803
+ min-height: max-content;
1804
+ }
1805
+ .svp-dragbox {
1806
+ position: absolute;
1807
+ min-width: 140px;
1808
+ min-height: 44px;
1809
+ border: 0;
1810
+ border-radius: var(--svp-panel-radius);
1811
+ background: var(--svp-bg);
1812
+ box-shadow: var(--svp-panel-shadow);
1813
+ z-index: var(--svp-z-panel);
1814
+ display: flex;
1815
+ flex-direction: column;
1816
+ overflow: hidden;
1817
+ }
1818
+ .svp-dragbox.is-folded .svp-dragbox__body {
1819
+ display: none;
1820
+ }
1821
+ .svp-dragbox.is-dragging {
1822
+ cursor: grabbing;
1823
+ -webkit-user-select: none;
1824
+ -moz-user-select: none;
1825
+ user-select: none;
1826
+ }
1827
+ .svp-dragbox.is-fixed .svp-dragbox__title {
1828
+ cursor: default;
1829
+ }
1830
+ .svp-dragbox__header {
1831
+ flex: 0 0 var(--svp-panel-header-height);
1832
+ height: var(--svp-panel-header-height);
1833
+ line-height: var(--svp-panel-header-height);
1834
+ display: flex;
1835
+ align-items: center;
1836
+ justify-content: space-between;
1837
+ padding: 0;
1838
+ background: var(--svp-panel-header-bg);
1839
+ color: var(--svp-panel-header-fg);
1840
+ border-bottom: 0;
1841
+ font-size: 12px;
1842
+ -webkit-user-select: none;
1843
+ -moz-user-select: none;
1844
+ user-select: none;
1845
+ }
1846
+ .svp-dragbox__title {
1847
+ flex: 1;
1848
+ overflow: hidden;
1849
+ text-overflow: ellipsis;
1850
+ white-space: nowrap;
1851
+ font-weight: 400;
1852
+ padding: 0 4px;
1853
+ cursor: move;
1854
+ }
1855
+ .svp-dragbox__menu {
1856
+ display: inline-flex;
1857
+ align-items: center;
1858
+ color: inherit;
1859
+ cursor: pointer;
1860
+ }
1861
+ .svp-dragbox__icon {
1862
+ width: 20px;
1863
+ height: var(--svp-panel-header-height);
1864
+ display: inline-flex;
1865
+ align-items: center;
1866
+ justify-content: center;
1867
+ padding: 0 2px;
1868
+ flex-shrink: 0;
1869
+ }
1870
+ .svp-dragbox__icon:hover {
1871
+ opacity: 0.85;
1872
+ }
1873
+ .svp-dragbox__icon.is-min {
1874
+ transform: rotate(180deg);
1875
+ }
1876
+ .svp-dragbox__body {
1877
+ flex: 1;
1878
+ contain: paint;
1879
+ overflow-x: hidden;
1880
+ overflow-y: auto;
1881
+ padding: 0;
1882
+ background: var(--svp-bg);
1883
+ color: var(--svp-fg);
1884
+ height: calc(100% - var(--svp-panel-header-height));
1885
+ }
1886
+ .svp-drag-els {
1887
+ padding-bottom: 6px;
1888
+ }
1889
+ .svp-drag-els__group {
1890
+ margin-bottom: 6px;
1891
+ }
1892
+ .svp-drag-els__group-title {
1893
+ clear: both;
1894
+ margin: 0 0 14px 14px;
1895
+ font-size: 14px;
1896
+ font-weight: 700;
1897
+ color: var(--svp-fg);
1898
+ }
1899
+ .svp-drag-els__list {
1900
+ display: flex;
1901
+ flex-wrap: wrap;
1902
+ justify-content: space-around;
1903
+ align-items: center;
1904
+ margin-top: 6px;
1905
+ padding: 0 14px;
1906
+ gap: 0;
1907
+ }
1908
+ .ep-draggable-item {
1909
+ display: inline-flex;
1910
+ flex-direction: column;
1911
+ align-items: center;
1912
+ justify-content: center;
1913
+ min-width: 50px;
1914
+ width: calc(50% - 4px);
1915
+ max-width: 86px;
1916
+ margin-bottom: 6px;
1917
+ padding: 0 4px;
1918
+ border: 0;
1919
+ border-radius: 0;
1920
+ font-size: 14px;
1921
+ line-height: 12px;
1922
+ color: var(--svp-fg);
1923
+ background: transparent;
1924
+ cursor: grab;
1925
+ -webkit-user-select: none;
1926
+ -moz-user-select: none;
1927
+ user-select: none;
1928
+ text-align: center;
1929
+ }
1930
+ .ep-draggable-item:hover {
1931
+ color: var(--svp-primary);
1932
+ }
1933
+ .ep-draggable-item:active {
1934
+ cursor: grabbing;
1935
+ }
1936
+ .ep-draggable-item .svp-drag-els__icon {
1937
+ display: inline-flex;
1938
+ align-items: center;
1939
+ justify-content: center;
1940
+ width: 36px;
1941
+ height: 36px;
1942
+ font-size: 22px;
1943
+ line-height: 36px;
1944
+ color: var(--svp-fg);
1945
+ }
1946
+ .ep-draggable-item .svp-drag-els__icon svg {
1947
+ width: 28px;
1948
+ height: 28px;
1949
+ }
1950
+ .ep-draggable-item span:last-child {
1951
+ margin-top: 2px;
1952
+ font-size: 14px;
1953
+ line-height: 12px;
1954
+ }
1955
+ .svp-minimap {
1956
+ position: relative;
1957
+ width: 100%;
1958
+ height: 100%;
1959
+ min-height: 120px;
1960
+ background: #cbd5e1;
1961
+ overflow: hidden;
1962
+ }
1963
+ .svp-minimap__stage {
1964
+ position: absolute;
1965
+ pointer-events: none;
1966
+ }
1967
+ .svp-minimap__paper {
1968
+ position: relative;
1969
+ width: 100%;
1970
+ height: 100%;
1971
+ background: #fff;
1972
+ box-shadow: 0 2px 10px rgba(15, 23, 42, 0.16);
1973
+ overflow: hidden;
1974
+ background-image: linear-gradient(to right, rgba(148, 163, 184, 0.18) 1px, transparent 1px), linear-gradient(to bottom, rgba(148, 163, 184, 0.18) 1px, transparent 1px);
1975
+ background-size: 16px 16px;
1976
+ }
1977
+ .svp-minimap__guide {
1978
+ position: absolute;
1979
+ left: 0;
1980
+ width: 100%;
1981
+ border-top: 1px dashed rgba(100, 116, 139, 0.75);
1982
+ pointer-events: none;
1983
+ }
1984
+ .svp-minimap__el {
1985
+ position: absolute;
1986
+ display: flex;
1987
+ align-items: center;
1988
+ justify-content: center;
1989
+ box-sizing: border-box;
1990
+ border-radius: 1px;
1991
+ background: color-mix(in srgb, var(--svp-primary) 88%, white);
1992
+ color: var(--svp-primary-content);
1993
+ overflow: hidden;
1994
+ pointer-events: none;
1995
+ }
1996
+ .svp-minimap__el--hline, .svp-minimap__el--vline {
1997
+ background: color-mix(in srgb, var(--svp-primary) 55%, white);
1998
+ border-radius: 0;
1999
+ }
2000
+ .svp-minimap__el--hline {
2001
+ min-height: 1px !important;
2002
+ }
2003
+ .svp-minimap__el--vline {
2004
+ min-width: 1px !important;
2005
+ }
2006
+ .svp-minimap__viewport {
2007
+ position: absolute;
2008
+ z-index: 2;
2009
+ box-sizing: border-box;
2010
+ border: 1px solid var(--svp-panel-header-bg);
2011
+ background: hsla(var(--p, 245 80% 50%)/0.08);
2012
+ pointer-events: none;
2013
+ }
2014
+ .svp-page-tabs {
2015
+ display: flex;
2016
+ align-items: center;
2017
+ gap: 4px;
2018
+ flex-wrap: wrap;
2019
+ }
2020
+ .svp-page-tab {
2021
+ min-width: 26px;
2022
+ height: 22px;
2023
+ padding: 0 10px;
2024
+ display: inline-flex;
2025
+ align-items: center;
2026
+ justify-content: center;
2027
+ border: 1px solid color-mix(in srgb, var(--svp-primary) 28%, var(--svp-border));
2028
+ border-radius: 0;
2029
+ cursor: pointer;
2030
+ font-size: 12px;
2031
+ color: var(--svp-primary);
2032
+ background: var(--svp-bg);
2033
+ }
2034
+ .svp-page-tab:hover {
2035
+ background: color-mix(in srgb, var(--svp-primary) 10%, transparent);
2036
+ }
2037
+ .svp-page-tab.active {
2038
+ background: var(--svp-primary);
2039
+ color: var(--svp-primary-content);
2040
+ border-color: var(--svp-primary);
2041
+ }
2042
+ .svp-page-tab__add {
2043
+ min-width: 22px;
2044
+ height: 22px;
2045
+ padding: 0 8px;
2046
+ display: inline-flex;
2047
+ align-items: center;
2048
+ justify-content: center;
2049
+ border: 1px dashed color-mix(in srgb, var(--svp-primary) 35%, var(--svp-border));
2050
+ border-radius: 0;
2051
+ cursor: pointer;
2052
+ font-size: 13px;
2053
+ color: var(--svp-fg-muted);
2054
+ }
2055
+ .svp-page-tab__add:hover {
2056
+ color: var(--svp-primary);
2057
+ border-color: var(--svp-primary);
2058
+ }
2059
+ .svp-list {
2060
+ display: flex;
2061
+ flex-direction: column;
2062
+ gap: 2px;
2063
+ }
2064
+ .svp-list__item {
2065
+ display: flex;
2066
+ align-items: center;
2067
+ gap: 6px;
2068
+ padding: 3px 6px;
2069
+ border-radius: 0;
2070
+ font-size: 12px;
2071
+ cursor: pointer;
2072
+ color: var(--svp-fg);
2073
+ }
2074
+ .svp-list__item:hover {
2075
+ background: var(--svp-bg-soft);
2076
+ }
2077
+ .svp-list__item.active {
2078
+ background: var(--svp-panel-header-bg);
2079
+ color: var(--svp-panel-header-fg);
2080
+ }
2081
+ .svp-list__item.is-disabled {
2082
+ color: var(--svp-fg-muted);
2083
+ cursor: not-allowed;
2084
+ }
2085
+ .svp-list__item-tag {
2086
+ margin-left: auto;
2087
+ font-size: 10px;
2088
+ color: var(--svp-fg-muted);
2089
+ }
2090
+ .svp-list__item.active .svp-list__item-delete:hover {
2091
+ color: #fecaca;
2092
+ }
2093
+ .svp-modal-mask {
2094
+ position: fixed;
2095
+ inset: 0;
2096
+ background: rgba(0, 0, 0, 0.45);
2097
+ z-index: 10000;
2098
+ display: flex;
2099
+ align-items: center;
2100
+ justify-content: center;
2101
+ /* Override daisyUI `.svp-modal` utility (opacity:0 until `.svp-modal-open`). */
2102
+ opacity: 1 !important;
2103
+ pointer-events: auto !important;
2104
+ }
2105
+ .svp-modal {
2106
+ width: min(960px, 90vw);
2107
+ max-height: 85vh;
2108
+ display: flex;
2109
+ flex-direction: column;
2110
+ background: var(--svp-bg);
2111
+ border-radius: 0;
2112
+ box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18);
2113
+ overflow: hidden;
2114
+ opacity: 1 !important;
2115
+ pointer-events: auto !important;
2116
+ }
2117
+ .svp-modal__header {
2118
+ flex: 0 0 40px;
2119
+ display: flex;
2120
+ align-items: center;
2121
+ padding: 0 12px;
2122
+ background: var(--svp-panel-header-bg);
2123
+ color: var(--svp-panel-header-fg);
2124
+ font-size: 13px;
2125
+ }
2126
+ .svp-json-editor__error {
2127
+ padding: 8px 12px;
2128
+ font-size: 12px;
2129
+ color: var(--svp-error, #dc2626);
2130
+ background: color-mix(in srgb, var(--svp-error, #dc2626) 8%, var(--svp-bg));
2131
+ border-top: 1px solid color-mix(in srgb, var(--svp-error, #dc2626) 25%, var(--svp-border));
2132
+ }
2133
+ .svp-dialog-mask {
2134
+ position: fixed;
2135
+ inset: 0;
2136
+ z-index: 10000;
2137
+ display: flex;
2138
+ align-items: center;
2139
+ justify-content: center;
2140
+ padding: 24px 16px;
2141
+ background: rgba(15, 23, 42, 0.48);
2142
+ }
2143
+ .svp-dialog {
2144
+ width: min(1080px, 96vw);
2145
+ max-height: min(88vh, 820px);
2146
+ display: flex;
2147
+ flex-direction: column;
2148
+ background: var(--svp-bg);
2149
+ border: 1px solid var(--svp-border);
2150
+ box-shadow: 0 24px 64px rgba(15, 23, 42, 0.28);
2151
+ overflow: hidden;
2152
+ }
2153
+ .svp-dialog__header {
2154
+ flex: 0 0 44px;
2155
+ display: flex;
2156
+ align-items: center;
2157
+ justify-content: space-between;
2158
+ gap: 12px;
2159
+ padding: 0 14px;
2160
+ background: var(--svp-panel-header-bg);
2161
+ color: var(--svp-panel-header-fg);
2162
+ }
2163
+ .svp-dialog__title {
2164
+ font-size: 14px;
2165
+ font-weight: 600;
2166
+ line-height: 1.2;
2167
+ }
2168
+ .svp-dialog__close {
2169
+ width: 30px;
2170
+ height: 30px;
2171
+ padding: 0;
2172
+ border: 0;
2173
+ border-radius: 4px;
2174
+ background: transparent;
2175
+ color: inherit;
2176
+ font-size: 22px;
2177
+ line-height: 1;
2178
+ cursor: pointer;
2179
+ opacity: 0.88;
2180
+ }
2181
+ .svp-dialog__close:hover {
2182
+ opacity: 1;
2183
+ background: color-mix(in srgb, var(--svp-panel-header-fg) 12%, transparent);
2184
+ }
2185
+ .svp-dialog__body {
2186
+ flex: 1 1 auto;
2187
+ min-height: 0;
2188
+ display: flex;
2189
+ flex-direction: column;
2190
+ background: var(--svp-bg-soft);
2191
+ }
2192
+ .svp-dialog__footer {
2193
+ flex: 0 0 auto;
2194
+ display: flex;
2195
+ align-items: center;
2196
+ justify-content: space-between;
2197
+ gap: 12px;
2198
+ padding: 10px 14px;
2199
+ border-top: 1px solid var(--svp-border);
2200
+ background: var(--svp-bg);
2201
+ }
2202
+ .svp-json-editor__body {
2203
+ flex: 1 1 auto;
2204
+ min-height: 0;
2205
+ padding: 12px;
2206
+ gap: 0;
2207
+ }
2208
+ .svp-json-editor__editor {
2209
+ flex: 1 1 auto;
2210
+ min-height: min(62vh, 560px);
2211
+ display: grid;
2212
+ grid-template-columns: auto 1fr;
2213
+ grid-template-rows: minmax(0, 1fr);
2214
+ overflow: hidden;
2215
+ border: 1px solid var(--svp-border);
2216
+ background: #fff;
2217
+ }
2218
+ .svp-json-editor__lines {
2219
+ grid-column: 1;
2220
+ grid-row: 1;
2221
+ min-width: 52px;
2222
+ min-height: 0;
2223
+ margin: 0;
2224
+ padding: 14px 10px 14px 14px;
2225
+ border: 0;
2226
+ border-right: 1px solid var(--svp-border);
2227
+ background: #f8fafc;
2228
+ color: #94a3b8;
2229
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
2230
+ font-size: 13px;
2231
+ line-height: 1.6;
2232
+ text-align: right;
2233
+ overflow: hidden;
2234
+ -webkit-user-select: none;
2235
+ -moz-user-select: none;
2236
+ user-select: none;
2237
+ white-space: pre;
2238
+ }
2239
+ .svp-json-editor__textarea {
2240
+ grid-column: 2;
2241
+ grid-row: 1;
2242
+ display: block;
2243
+ width: 100%;
2244
+ min-width: 0;
2245
+ min-height: 0;
2246
+ height: 100%;
2247
+ margin: 0;
2248
+ padding: 14px 16px;
2249
+ border: 0;
2250
+ outline: none;
2251
+ resize: none;
2252
+ background: #fff;
2253
+ color: #0f172a;
2254
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
2255
+ font-size: 13px;
2256
+ line-height: 1.6;
2257
+ -moz-tab-size: 2;
2258
+ -o-tab-size: 2;
2259
+ tab-size: 2;
2260
+ overflow: auto;
2261
+ box-sizing: border-box;
2262
+ scrollbar-width: thin;
2263
+ scrollbar-color: #cbd5e1 #f8fafc;
2264
+ }
2265
+ .svp-json-editor__textarea::-webkit-scrollbar {
2266
+ width: 10px;
2267
+ height: 10px;
2268
+ }
2269
+ .svp-json-editor__textarea::-webkit-scrollbar-track {
2270
+ background: #f8fafc;
2271
+ }
2272
+ .svp-json-editor__textarea::-webkit-scrollbar-thumb {
2273
+ background: #cbd5e1;
2274
+ border-radius: 5px;
2275
+ border: 2px solid #f8fafc;
2276
+ }
2277
+ .svp-json-editor__textarea::-webkit-scrollbar-thumb:hover {
2278
+ background: #94a3b8;
2279
+ }
2280
+ .svp-json-editor__footer {
2281
+ flex-wrap: wrap;
2282
+ }
2283
+ .svp-json-editor__footer-left,
2284
+ .svp-json-editor__footer-right {
2285
+ display: flex;
2286
+ align-items: center;
2287
+ flex-wrap: wrap;
2288
+ gap: 8px;
2289
+ }
2290
+ .svp-json-editor__footer-right {
2291
+ margin-left: auto;
2292
+ }
2293
+ .svp-print-data-editor {
2294
+ width: min(920px, 96vw);
2295
+ }
2296
+ .svp-print-data-editor__body {
2297
+ flex: 1 1 auto;
2298
+ min-height: 0;
2299
+ padding: 14px 16px;
2300
+ overflow: auto;
2301
+ }
2302
+ .svp-print-data-editor__empty {
2303
+ padding: 28px 12px;
2304
+ text-align: center;
2305
+ font-size: 13px;
2306
+ color: var(--svp-fg-muted);
2307
+ }
2308
+ .svp-print-data-editor__section + .svp-print-data-editor__section {
2309
+ margin-top: 16px;
2310
+ padding-top: 16px;
2311
+ border-top: 1px solid var(--svp-border);
2312
+ }
2313
+ .svp-print-data-editor__section-title {
2314
+ margin-bottom: 10px;
2315
+ font-size: 13px;
2316
+ font-weight: 600;
2317
+ color: var(--svp-fg);
2318
+ }
2319
+ .svp-print-data-editor__section-sub {
2320
+ margin-left: 8px;
2321
+ font-size: 12px;
2322
+ font-weight: 400;
2323
+ color: var(--svp-fg-muted);
2324
+ }
2325
+ .svp-print-data-editor__basic-grid {
2326
+ display: grid;
2327
+ grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
2328
+ gap: 10px 12px;
2329
+ }
2330
+ .svp-print-data-editor__field {
2331
+ display: flex;
2332
+ flex-direction: column;
2333
+ gap: 4px;
2334
+ min-width: 0;
2335
+ }
2336
+ .svp-print-data-editor__field-label {
2337
+ font-size: 12px;
2338
+ color: var(--svp-fg-muted);
2339
+ }
2340
+ .svp-print-data-editor__input {
2341
+ width: 100%;
2342
+ height: 28px;
2343
+ padding: 0 8px;
2344
+ border: 1px solid var(--svp-border);
2345
+ border-radius: 0;
2346
+ background: var(--svp-bg);
2347
+ color: var(--svp-fg);
2348
+ font-size: 12px;
2349
+ box-sizing: border-box;
2350
+ outline: none;
2351
+ }
2352
+ .svp-print-data-editor__input:focus {
2353
+ border-color: var(--svp-primary);
2354
+ }
2355
+ .svp-print-data-editor__table-wrap {
2356
+ overflow: auto;
2357
+ border: 1px solid var(--svp-border);
2358
+ background: var(--svp-bg);
2359
+ }
2360
+ .svp-print-data-editor__table {
2361
+ width: 100%;
2362
+ border-collapse: collapse;
2363
+ table-layout: fixed;
2364
+ }
2365
+ .svp-print-data-editor__table th,
2366
+ .svp-print-data-editor__table td {
2367
+ padding: 6px 8px;
2368
+ border-bottom: 1px solid var(--svp-border);
2369
+ vertical-align: middle;
2370
+ }
2371
+ .svp-print-data-editor__table th {
2372
+ font-size: 12px;
2373
+ font-weight: 600;
2374
+ text-align: left;
2375
+ color: var(--svp-fg);
2376
+ background: var(--svp-bg-soft);
2377
+ white-space: nowrap;
2378
+ }
2379
+ .svp-print-data-editor__table tbody tr:last-child td {
2380
+ border-bottom: 0;
2381
+ }
2382
+ .svp-print-data-editor__actions-col {
2383
+ width: 52px;
2384
+ text-align: center;
2385
+ }
2386
+ .svp-print-data-editor__row-delete {
2387
+ display: inline-flex;
2388
+ align-items: center;
2389
+ justify-content: center;
2390
+ width: 28px;
2391
+ height: 28px;
2392
+ padding: 0;
2393
+ border: 1px solid var(--svp-border);
2394
+ border-radius: 0;
2395
+ background: var(--svp-bg);
2396
+ color: var(--svp-fg-muted);
2397
+ cursor: pointer;
2398
+ }
2399
+ .svp-print-data-editor__row-delete:hover:not(:disabled) {
2400
+ color: #ef4444;
2401
+ border-color: color-mix(in srgb, #ef4444 35%, var(--svp-border));
2402
+ }
2403
+ .svp-print-data-editor__row-delete:disabled {
2404
+ opacity: 0.45;
2405
+ cursor: not-allowed;
2406
+ }
2407
+ .svp-print-data-editor__add-row {
2408
+ margin-top: 8px;
2409
+ height: 28px;
2410
+ padding: 0 12px;
2411
+ font-size: 12px;
2412
+ }
2413
+ .svp-print-data-editor__footer {
2414
+ flex-wrap: wrap;
2415
+ }
2416
+ .svp-print-data-editor__footer-left,
2417
+ .svp-print-data-editor__footer-right {
2418
+ display: flex;
2419
+ align-items: center;
2420
+ flex-wrap: wrap;
2421
+ gap: 8px;
2422
+ }
2423
+ .svp-print-data-editor__footer-right {
2424
+ margin-left: auto;
2425
+ }
2426
+ .svp-preview__body {
2427
+ flex: 1 1 auto;
2428
+ min-height: min(72vh, 640px);
2429
+ padding: 16px;
2430
+ overflow: auto;
2431
+ background: #e2e8f0;
2432
+ }
2433
+ .svp-preview__content {
2434
+ margin: 0 auto;
2435
+ width: -moz-fit-content;
2436
+ width: fit-content;
2437
+ max-width: 100%;
2438
+ background: #fff;
2439
+ box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
2440
+ }
2441
+ .svp-preview__empty {
2442
+ display: flex;
2443
+ align-items: center;
2444
+ justify-content: center;
2445
+ min-height: 240px;
2446
+ color: var(--svp-fg-muted);
2447
+ font-size: 14px;
2448
+ }
2449
+ .svp-preview__footer {
2450
+ justify-content: flex-end;
2451
+ flex-wrap: wrap;
2452
+ gap: 8px;
2453
+ }
2454
+ .svp-btn {
2455
+ display: inline-flex;
2456
+ align-items: center;
2457
+ justify-content: center;
2458
+ height: 32px;
2459
+ min-height: 32px;
2460
+ padding: 0 12px;
2461
+ border-radius: 0;
2462
+ border: 1px solid var(--svp-border);
2463
+ background: var(--svp-bg);
2464
+ color: var(--svp-fg);
2465
+ font-size: 14px;
2466
+ text-transform: none;
2467
+ cursor: pointer;
2468
+ }
2469
+ .svp-btn:hover {
2470
+ border-color: var(--svp-primary);
2471
+ color: var(--svp-primary);
2472
+ }
2473
+ .svp-btn.is-primary {
2474
+ background: var(--svp-primary);
2475
+ color: var(--svp-primary-content);
2476
+ border-color: var(--svp-primary);
2477
+ }
2478
+ .svp-btn.is-info {
2479
+ background: color-mix(in srgb, var(--svp-info, #3b82f6) 92%, white);
2480
+ color: var(--svp-info-content, #fff);
2481
+ border-color: color-mix(in srgb, var(--svp-info, #3b82f6) 92%, white);
2482
+ }
2483
+ .svp-btn.is-info:hover {
2484
+ opacity: 0.92;
2485
+ color: var(--svp-info-content, #fff);
2486
+ }
2487
+ .svp-btn.is-danger {
2488
+ background: color-mix(in srgb, var(--svp-error, #ef4444) 90%, white);
2489
+ color: #fff;
2490
+ border-color: color-mix(in srgb, var(--svp-error, #ef4444) 90%, white);
2491
+ }
2492
+ .svp-btn.is-danger:hover {
2493
+ opacity: 0.92;
2494
+ color: #fff;
2495
+ }
2496
+ .svp-btn.is-icon {
2497
+ border: none;
2498
+ padding: 0 6px;
2499
+ background: transparent;
2500
+ }
2501
+ .svp-btn.is-icon:hover {
2502
+ border: none;
2503
+ color: var(--svp-primary);
2504
+ background: color-mix(in srgb, var(--svp-primary) 8%, transparent);
2505
+ }
2506
+ .svp-ruler-corner {
2507
+ position: absolute;
2508
+ left: 0;
2509
+ top: 0;
2510
+ width: var(--svp-ruler-size);
2511
+ height: var(--svp-ruler-size);
2512
+ background: var(--svp-ruler-bg);
2513
+ border-right: 1px solid var(--svp-ruler-border);
2514
+ border-bottom: 1px solid var(--svp-ruler-border);
2515
+ z-index: var(--svp-z-ruler);
2516
+ }
2517
+ .svp-ruler-x, .svp-ruler-y {
2518
+ position: absolute;
2519
+ background: var(--svp-ruler-bg);
2520
+ z-index: var(--svp-z-ruler);
2521
+ overflow: hidden;
2522
+ }
2523
+ .svp-ruler-x {
2524
+ left: var(--svp-ruler-size);
2525
+ top: 0;
2526
+ right: 0;
2527
+ height: var(--svp-ruler-size);
2528
+ border-bottom: 1px solid var(--svp-ruler-border);
2529
+ }
2530
+ .svp-ruler-y {
2531
+ left: 0;
2532
+ top: var(--svp-ruler-size);
2533
+ bottom: 0;
2534
+ width: var(--svp-ruler-size);
2535
+ border-right: 1px solid var(--svp-ruler-border);
2536
+ }.svp-icon[data-v-574dc42c] {
2537
+ display: inline-flex;
2538
+ align-items: center;
2539
+ justify-content: center;
2540
+ flex: 0 0 auto;
2541
+ line-height: 0;
2542
+ color: inherit;
2543
+ vertical-align: middle;
2544
+ }
2545
+ .svp-icon[data-v-574dc42c] svg {
2546
+ display: block;
2547
+ }
2548
+ .svp-icon--svg[data-v-574dc42c] svg {
2549
+ width: 100%;
2550
+ height: 100%;
2551
+ }.svp-structure[data-v-de1f10ed] {
2552
+ list-style: none;
2553
+ margin: 0;
2554
+ padding: 0;
2555
+ display: flex;
2556
+ flex-direction: column;
2557
+ gap: 2px;
2558
+ }
2559
+ .svp-structure__empty[data-v-de1f10ed] {
2560
+ padding: 6px 8px;
2561
+ font-size: 12px;
2562
+ color: var(--svp-fg-muted);
2563
+ }
2564
+ .svp-structure__item[data-v-de1f10ed] {
2565
+ display: flex;
2566
+ align-items: center;
2567
+ gap: 6px;
2568
+ min-height: 24px;
2569
+ padding: 2px 4px;
2570
+ border-radius: 0;
2571
+ cursor: pointer;
2572
+ font-size: 12px;
2573
+ color: var(--svp-fg);
2574
+ }
2575
+ .svp-structure__item[data-v-de1f10ed]:hover {
2576
+ background: var(--svp-bg-soft);
2577
+ }
2578
+ .svp-structure__item.active[data-v-de1f10ed] {
2579
+ background: var(--svp-primary);
2580
+ color: var(--svp-primary-content);
2581
+ }
2582
+ .svp-structure__item.active[data-v-de1f10ed]:hover {
2583
+ background: var(--svp-primary);
2584
+ }
2585
+ .svp-structure__icon[data-v-de1f10ed] {
2586
+ flex: 0 0 18px;
2587
+ }
2588
+ .svp-structure__label[data-v-de1f10ed] {
2589
+ flex: 1;
2590
+ min-width: 0;
2591
+ overflow: hidden;
2592
+ text-overflow: ellipsis;
2593
+ white-space: nowrap;
2594
+ }
2595
+ .svp-structure__delete[data-v-de1f10ed] {
2596
+ flex: 0 0 auto;
2597
+ width: 20px;
2598
+ height: 20px;
2599
+ padding: 0;
2600
+ border: 0;
2601
+ border-radius: 0;
2602
+ background: transparent;
2603
+ color: inherit;
2604
+ cursor: pointer;
2605
+ display: inline-flex;
2606
+ align-items: center;
2607
+ justify-content: center;
2608
+ opacity: 0.75;
2609
+ }
2610
+ .svp-structure__delete[data-v-de1f10ed]:hover {
2611
+ opacity: 1;
2612
+ color: #ef4444;
2613
+ }.svp-history__meta[data-v-0e81a9ac] {
2614
+ display: flex;
2615
+ align-items: center;
2616
+ justify-content: space-between;
2617
+ margin-bottom: 4px;
2618
+ }
2619
+ .svp-history__counter[data-v-0e81a9ac] {
2620
+ font-size: 11px;
2621
+ color: var(--svp-fg-muted);
2622
+ }
2623
+ .svp-list__item-icon[data-v-0e81a9ac] {
2624
+ flex: 0 0 16px;
2625
+ }
2626
+ .svp-list__item-label[data-v-0e81a9ac] {
2627
+ flex: 1;
2628
+ min-width: 0;
2629
+ overflow: hidden;
2630
+ text-overflow: ellipsis;
2631
+ white-space: nowrap;
2632
+ }
2633
+ .svp-list__item-delete[data-v-0e81a9ac] {
2634
+ flex: 0 0 auto;
2635
+ width: 20px;
2636
+ height: 20px;
2637
+ padding: 0;
2638
+ border: 0;
2639
+ border-radius: 0;
2640
+ background: transparent;
2641
+ color: inherit;
2642
+ cursor: pointer;
2643
+ display: inline-flex;
2644
+ align-items: center;
2645
+ justify-content: center;
2646
+ opacity: 0.75;
2647
+ }
2648
+ .svp-list__item-delete[data-v-0e81a9ac]:hover {
2649
+ opacity: 1;
2650
+ color: #ef4444;
2651
+ }
2652
+ .svp-properties-host[data-v-572557e5] {
2653
+ height: 100%;
2654
+ min-width: 0;
2655
+ overflow-x: hidden;
2656
+ overflow-y: auto;
2657
+ }