@@ -326,7 +395,7 @@ function handlePagesClick(file) {
-
+
{#if file.expanded}
-
+
@@ -354,7 +423,7 @@ function handlePagesClick(file) {
{/each}
@@ -363,10 +432,19 @@ function handlePagesClick(file) {
{/each}
-
+ updateQuality(file, parseInt(e.target.value))}
+ class="quality-slider"
+ style="--fill: {qualityFillFor(file)}%"
+ />
@@ -466,13 +551,13 @@ function handlePagesClick(file) {
.add-file-btn { align-self: center; background: none; border: 1px dashed rgba(255, 255, 255, 0.18); color: #a9b0c0; font-size: 14px; font-weight: 600; padding: 12px 18px; border-radius: 14px; cursor: pointer; margin-top: 8px; }
.actions { padding: 16px 20px 32px; display: flex; flex-direction: column; gap: 12px; }
.file-count { color: #8b93a1; font-size: 13px; margin: 0; text-align: center; line-height: 1.4; }
- .action-btn { width: 100%; padding: 16px 24px; border-radius: 16px; font-size: 16px; font-weight: 700; cursor: pointer; border: none; color: #fff; }
+ .action-btn { width: 100%; padding: 16px 24px; border-radius: 16px; font-size: 16px; font-weight: 700; cursor: pointer; border: none; color: #fff; transition: opacity 0.2s; }
+ .action-btn:disabled { opacity: 0.6; cursor: wait; }
.action-btn.primary { background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%); box-shadow: 0 8px 24px -6px rgba(99, 102, 241, 0.5); }
.action-btn.secondary { background: linear-gradient(135deg, #5b8cff 0%, #38c6ff 100%); box-shadow: 0 8px 24px -6px rgba(72, 150, 255, 0.4); }
.price-summary { display: flex; justify-content: space-between; align-items: baseline; width: 100%; }
.summary-itogo { font-size: 30px; font-weight: 700; color: #8b93a1; }
.summary-price { font-size: 38px; font-weight: 800; color: #fff; }
-
.overlay-backdrop {
position: fixed; inset: 0; z-index: 1000;
background: rgba(10, 12, 18, 0.92); backdrop-filter: blur(12px);
diff --git a/vite.config.js b/vite.config.js
index 1341769..f65f1c4 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -24,4 +24,13 @@ export default defineConfig({
}
})
],
+ server: {
+ proxy: {
+ '/api': {
+ target: 'http://localhost:3000',
+ changeOrigin: true,
+ rewrite: (path) => path.replace(/^\/api/, '')
+ }
+ }
+ }
})
{#each qualities as q}{q.label}{/each}
@@ -375,11 +453,10 @@ function handlePagesClick(file) {
{/if}
{/each}
-
{/if}
-
+