GitHub Action
commited on
Commit
·
3054a70
1
Parent(s):
93df20b
Sync from GitHub: da3b7690cc0258c8aac78e9996fafdbfcd359e27
Browse files- .gitattributes +6 -0
- README.md +0 -3
- README_SPACE.md +0 -3
- frontend/package-lock.json +101 -568
- frontend/package.json +2 -15
- frontend/src/app.css +0 -53
- frontend/src/app.html +1 -1
- frontend/src/routes/+layout.svelte +0 -42
- frontend/src/routes/+page.svelte +164 -216
- frontend/static/voices/andrew.mp3 +3 -0
- frontend/static/voices/fairy.mp3 +3 -0
- frontend/static/voices/pirate.mp3 +3 -0
- frontend/svelte.config.js +0 -1
- frontend/tailwind.config.js +1 -38
- hfstudio/server.py +34 -91
- hfstudio/static/_app/immutable/assets/0.Ggx0bHAf.css +1 -0
- hfstudio/static/_app/immutable/assets/2.NHOETQX0.css +1 -0
- hfstudio/static/_app/immutable/chunks/Bqgpa-5T.js +1 -0
- hfstudio/static/_app/immutable/chunks/Bs9I3-rU.js +3 -0
- hfstudio/static/_app/immutable/entry/app.DZ7KK-ry.js +2 -0
- hfstudio/static/_app/immutable/entry/start.C4-zG_GX.js +1 -0
- hfstudio/static/_app/immutable/nodes/0.C0_hCSUc.js +3 -0
- hfstudio/static/_app/immutable/nodes/1.DqNvkuKf.js +1 -0
- hfstudio/static/_app/immutable/nodes/2.Cu9jABEo.js +68 -0
- hfstudio/static/index.html +8 -8
- hfstudio/static/voices/andrew.mp3 +3 -0
- hfstudio/static/voices/fairy.mp3 +3 -0
- hfstudio/static/voices/pirate.mp3 +3 -0
- test_chatterbox.py +25 -0
.gitattributes
CHANGED
|
@@ -7,3 +7,9 @@
|
|
| 7 |
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 8 |
*.webm filter=lfs diff=lfs merge=lfs -text
|
| 9 |
*.pdf filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 8 |
*.webm filter=lfs diff=lfs merge=lfs -text
|
| 9 |
*.pdf filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
hfstudio/static/assets/hf-studio-logo.png filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
hfstudio/static/assets/hf-logo.png filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
frontend/static/assets/hf-studio-logo.png filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
frontend/static/assets/hf-logo.png filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
hfstudio/static/samples/harvard.wav filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
frontend/static/samples/harvard.wav filter=lfs diff=lfs merge=lfs -text
|
README.md
CHANGED
|
@@ -10,9 +10,6 @@ pinned: false
|
|
| 10 |
hf_oauth: true
|
| 11 |
hf_oauth_expiration_minutes: 43200
|
| 12 |
hf_oauth_scopes:
|
| 13 |
-
- read-repos
|
| 14 |
-
- write-repos
|
| 15 |
-
- manage-repos
|
| 16 |
- inference-api
|
| 17 |
---
|
| 18 |
|
|
|
|
| 10 |
hf_oauth: true
|
| 11 |
hf_oauth_expiration_minutes: 43200
|
| 12 |
hf_oauth_scopes:
|
|
|
|
|
|
|
|
|
|
| 13 |
- inference-api
|
| 14 |
---
|
| 15 |
|
README_SPACE.md
CHANGED
|
@@ -10,9 +10,6 @@ pinned: false
|
|
| 10 |
hf_oauth: true
|
| 11 |
hf_oauth_expiration_minutes: 43200
|
| 12 |
hf_oauth_scopes:
|
| 13 |
-
- read-repos
|
| 14 |
-
- write-repos
|
| 15 |
-
- manage-repos
|
| 16 |
- inference-api
|
| 17 |
---
|
| 18 |
|
|
|
|
| 10 |
hf_oauth: true
|
| 11 |
hf_oauth_expiration_minutes: 43200
|
| 12 |
hf_oauth_scopes:
|
|
|
|
|
|
|
|
|
|
| 13 |
- inference-api
|
| 14 |
---
|
| 15 |
|
frontend/package-lock.json
CHANGED
|
@@ -8,17 +8,8 @@
|
|
| 8 |
"name": "hfstudio-frontend",
|
| 9 |
"version": "0.1.2",
|
| 10 |
"dependencies": {
|
| 11 |
-
"@fortawesome/free-solid-svg-icons": "^6.5.1",
|
| 12 |
"@sveltejs/adapter-static": "^3.0.10",
|
| 13 |
-
"
|
| 14 |
-
"clsx": "^2.0.0",
|
| 15 |
-
"lucide-svelte": "^0.303.0",
|
| 16 |
-
"mode-watcher": "^0.2.0",
|
| 17 |
-
"prismjs": "^1.30.0",
|
| 18 |
-
"svelte-sonner": "^0.3.19",
|
| 19 |
-
"tailwind-merge": "^2.2.0",
|
| 20 |
-
"tailwind-variants": "^0.1.19",
|
| 21 |
-
"wavesurfer.js": "^7.6.0"
|
| 22 |
},
|
| 23 |
"devDependencies": {
|
| 24 |
"@sveltejs/adapter-auto": "^3.0.0",
|
|
@@ -27,9 +18,7 @@
|
|
| 27 |
"autoprefixer": "^10.4.16",
|
| 28 |
"postcss": "^8.4.32",
|
| 29 |
"svelte": "^4.2.7",
|
| 30 |
-
"svelte-check": "^3.6.0",
|
| 31 |
"tailwindcss": "^3.3.0",
|
| 32 |
-
"typescript": "^5.0.0",
|
| 33 |
"vite": "^5.0.3"
|
| 34 |
}
|
| 35 |
},
|
|
@@ -37,6 +26,7 @@
|
|
| 37 |
"version": "5.2.0",
|
| 38 |
"resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
|
| 39 |
"integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
|
|
|
|
| 40 |
"license": "MIT",
|
| 41 |
"engines": {
|
| 42 |
"node": ">=10"
|
|
@@ -426,65 +416,11 @@
|
|
| 426 |
"node": ">=12"
|
| 427 |
}
|
| 428 |
},
|
| 429 |
-
"node_modules/@floating-ui/core": {
|
| 430 |
-
"version": "1.7.3",
|
| 431 |
-
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz",
|
| 432 |
-
"integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==",
|
| 433 |
-
"license": "MIT",
|
| 434 |
-
"dependencies": {
|
| 435 |
-
"@floating-ui/utils": "^0.2.10"
|
| 436 |
-
}
|
| 437 |
-
},
|
| 438 |
-
"node_modules/@floating-ui/dom": {
|
| 439 |
-
"version": "1.7.4",
|
| 440 |
-
"resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz",
|
| 441 |
-
"integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==",
|
| 442 |
-
"license": "MIT",
|
| 443 |
-
"dependencies": {
|
| 444 |
-
"@floating-ui/core": "^1.7.3",
|
| 445 |
-
"@floating-ui/utils": "^0.2.10"
|
| 446 |
-
}
|
| 447 |
-
},
|
| 448 |
-
"node_modules/@floating-ui/utils": {
|
| 449 |
-
"version": "0.2.10",
|
| 450 |
-
"resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz",
|
| 451 |
-
"integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==",
|
| 452 |
-
"license": "MIT"
|
| 453 |
-
},
|
| 454 |
-
"node_modules/@fortawesome/fontawesome-common-types": {
|
| 455 |
-
"version": "6.7.2",
|
| 456 |
-
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz",
|
| 457 |
-
"integrity": "sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg==",
|
| 458 |
-
"license": "MIT",
|
| 459 |
-
"engines": {
|
| 460 |
-
"node": ">=6"
|
| 461 |
-
}
|
| 462 |
-
},
|
| 463 |
-
"node_modules/@fortawesome/free-solid-svg-icons": {
|
| 464 |
-
"version": "6.7.2",
|
| 465 |
-
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz",
|
| 466 |
-
"integrity": "sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA==",
|
| 467 |
-
"license": "(CC-BY-4.0 AND MIT)",
|
| 468 |
-
"dependencies": {
|
| 469 |
-
"@fortawesome/fontawesome-common-types": "6.7.2"
|
| 470 |
-
},
|
| 471 |
-
"engines": {
|
| 472 |
-
"node": ">=6"
|
| 473 |
-
}
|
| 474 |
-
},
|
| 475 |
-
"node_modules/@internationalized/date": {
|
| 476 |
-
"version": "3.10.0",
|
| 477 |
-
"resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.10.0.tgz",
|
| 478 |
-
"integrity": "sha512-oxDR/NTEJ1k+UFVQElaNIk65E/Z83HK1z1WI3lQyhTtnNg4R5oVXaPzK3jcpKG8UHKDVuDQHzn+wsxSz8RP3aw==",
|
| 479 |
-
"license": "Apache-2.0",
|
| 480 |
-
"dependencies": {
|
| 481 |
-
"@swc/helpers": "^0.5.0"
|
| 482 |
-
}
|
| 483 |
-
},
|
| 484 |
"node_modules/@isaacs/cliui": {
|
| 485 |
"version": "8.0.2",
|
| 486 |
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
|
| 487 |
"integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
|
|
|
|
| 488 |
"license": "ISC",
|
| 489 |
"dependencies": {
|
| 490 |
"string-width": "^5.1.2",
|
|
@@ -533,27 +469,11 @@
|
|
| 533 |
"@jridgewell/sourcemap-codec": "^1.4.14"
|
| 534 |
}
|
| 535 |
},
|
| 536 |
-
"node_modules/@melt-ui/svelte": {
|
| 537 |
-
"version": "0.76.2",
|
| 538 |
-
"resolved": "https://registry.npmjs.org/@melt-ui/svelte/-/svelte-0.76.2.tgz",
|
| 539 |
-
"integrity": "sha512-7SbOa11tXUS95T3fReL+dwDs5FyJtCEqrqG3inRziDws346SYLsxOQ6HmX+4BkIsQh1R8U3XNa+EMmdMt38lMA==",
|
| 540 |
-
"license": "MIT",
|
| 541 |
-
"dependencies": {
|
| 542 |
-
"@floating-ui/core": "^1.3.1",
|
| 543 |
-
"@floating-ui/dom": "^1.4.5",
|
| 544 |
-
"@internationalized/date": "^3.5.0",
|
| 545 |
-
"dequal": "^2.0.3",
|
| 546 |
-
"focus-trap": "^7.5.2",
|
| 547 |
-
"nanoid": "^5.0.4"
|
| 548 |
-
},
|
| 549 |
-
"peerDependencies": {
|
| 550 |
-
"svelte": ">=3 <5"
|
| 551 |
-
}
|
| 552 |
-
},
|
| 553 |
"node_modules/@nodelib/fs.scandir": {
|
| 554 |
"version": "2.1.5",
|
| 555 |
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
| 556 |
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
|
|
|
|
| 557 |
"license": "MIT",
|
| 558 |
"dependencies": {
|
| 559 |
"@nodelib/fs.stat": "2.0.5",
|
|
@@ -567,6 +487,7 @@
|
|
| 567 |
"version": "2.0.5",
|
| 568 |
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
|
| 569 |
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
|
|
|
|
| 570 |
"license": "MIT",
|
| 571 |
"engines": {
|
| 572 |
"node": ">= 8"
|
|
@@ -576,6 +497,7 @@
|
|
| 576 |
"version": "1.2.8",
|
| 577 |
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
|
| 578 |
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
|
|
|
|
| 579 |
"license": "MIT",
|
| 580 |
"dependencies": {
|
| 581 |
"@nodelib/fs.scandir": "2.1.5",
|
|
@@ -589,6 +511,7 @@
|
|
| 589 |
"version": "0.11.0",
|
| 590 |
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
|
| 591 |
"integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
|
|
|
|
| 592 |
"license": "MIT",
|
| 593 |
"optional": true,
|
| 594 |
"engines": {
|
|
@@ -1001,15 +924,6 @@
|
|
| 1001 |
"vite": "^5.0.0"
|
| 1002 |
}
|
| 1003 |
},
|
| 1004 |
-
"node_modules/@swc/helpers": {
|
| 1005 |
-
"version": "0.5.17",
|
| 1006 |
-
"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz",
|
| 1007 |
-
"integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==",
|
| 1008 |
-
"license": "Apache-2.0",
|
| 1009 |
-
"dependencies": {
|
| 1010 |
-
"tslib": "^2.8.0"
|
| 1011 |
-
}
|
| 1012 |
-
},
|
| 1013 |
"node_modules/@types/cookie": {
|
| 1014 |
"version": "0.6.0",
|
| 1015 |
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz",
|
|
@@ -1022,13 +936,6 @@
|
|
| 1022 |
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
|
| 1023 |
"license": "MIT"
|
| 1024 |
},
|
| 1025 |
-
"node_modules/@types/pug": {
|
| 1026 |
-
"version": "2.0.10",
|
| 1027 |
-
"resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz",
|
| 1028 |
-
"integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==",
|
| 1029 |
-
"dev": true,
|
| 1030 |
-
"license": "MIT"
|
| 1031 |
-
},
|
| 1032 |
"node_modules/acorn": {
|
| 1033 |
"version": "8.15.0",
|
| 1034 |
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
|
|
@@ -1045,6 +952,7 @@
|
|
| 1045 |
"version": "6.2.2",
|
| 1046 |
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
|
| 1047 |
"integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
|
|
|
|
| 1048 |
"license": "MIT",
|
| 1049 |
"engines": {
|
| 1050 |
"node": ">=12"
|
|
@@ -1057,6 +965,7 @@
|
|
| 1057 |
"version": "6.2.3",
|
| 1058 |
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
|
| 1059 |
"integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
|
|
|
|
| 1060 |
"license": "MIT",
|
| 1061 |
"engines": {
|
| 1062 |
"node": ">=12"
|
|
@@ -1069,12 +978,14 @@
|
|
| 1069 |
"version": "1.3.0",
|
| 1070 |
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
|
| 1071 |
"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
|
|
|
|
| 1072 |
"license": "MIT"
|
| 1073 |
},
|
| 1074 |
"node_modules/anymatch": {
|
| 1075 |
"version": "3.1.3",
|
| 1076 |
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
|
| 1077 |
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
|
|
|
|
| 1078 |
"license": "ISC",
|
| 1079 |
"dependencies": {
|
| 1080 |
"normalize-path": "^3.0.0",
|
|
@@ -1088,6 +999,7 @@
|
|
| 1088 |
"version": "5.0.2",
|
| 1089 |
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
|
| 1090 |
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
|
|
|
|
| 1091 |
"license": "MIT"
|
| 1092 |
},
|
| 1093 |
"node_modules/aria-query": {
|
|
@@ -1150,6 +1062,7 @@
|
|
| 1150 |
"version": "1.0.2",
|
| 1151 |
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
| 1152 |
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
|
|
|
| 1153 |
"license": "MIT"
|
| 1154 |
},
|
| 1155 |
"node_modules/baseline-browser-mapping": {
|
|
@@ -1166,6 +1079,7 @@
|
|
| 1166 |
"version": "2.3.0",
|
| 1167 |
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
|
| 1168 |
"integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
|
|
|
|
| 1169 |
"license": "MIT",
|
| 1170 |
"engines": {
|
| 1171 |
"node": ">=8"
|
|
@@ -1174,38 +1088,11 @@
|
|
| 1174 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 1175 |
}
|
| 1176 |
},
|
| 1177 |
-
"node_modules/bits-ui": {
|
| 1178 |
-
"version": "0.21.16",
|
| 1179 |
-
"resolved": "https://registry.npmjs.org/bits-ui/-/bits-ui-0.21.16.tgz",
|
| 1180 |
-
"integrity": "sha512-XFZ7/bK7j/K+5iktxX/ZpmoFHjYjpPzP5EOO/4bWiaFg5TG1iMcfjDhlBTQnJxD6BoVoHuqeZPHZvaTgF4Iv3Q==",
|
| 1181 |
-
"license": "MIT",
|
| 1182 |
-
"dependencies": {
|
| 1183 |
-
"@internationalized/date": "^3.5.1",
|
| 1184 |
-
"@melt-ui/svelte": "0.76.2",
|
| 1185 |
-
"nanoid": "^5.0.5"
|
| 1186 |
-
},
|
| 1187 |
-
"funding": {
|
| 1188 |
-
"url": "https://github.com/sponsors/huntabyte"
|
| 1189 |
-
},
|
| 1190 |
-
"peerDependencies": {
|
| 1191 |
-
"svelte": "^4.0.0 || ^5.0.0-next.118"
|
| 1192 |
-
}
|
| 1193 |
-
},
|
| 1194 |
-
"node_modules/brace-expansion": {
|
| 1195 |
-
"version": "1.1.12",
|
| 1196 |
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
| 1197 |
-
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
| 1198 |
-
"dev": true,
|
| 1199 |
-
"license": "MIT",
|
| 1200 |
-
"dependencies": {
|
| 1201 |
-
"balanced-match": "^1.0.0",
|
| 1202 |
-
"concat-map": "0.0.1"
|
| 1203 |
-
}
|
| 1204 |
-
},
|
| 1205 |
"node_modules/braces": {
|
| 1206 |
"version": "3.0.3",
|
| 1207 |
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
| 1208 |
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
|
|
|
| 1209 |
"license": "MIT",
|
| 1210 |
"dependencies": {
|
| 1211 |
"fill-range": "^7.1.1"
|
|
@@ -1248,20 +1135,11 @@
|
|
| 1248 |
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
| 1249 |
}
|
| 1250 |
},
|
| 1251 |
-
"node_modules/buffer-crc32": {
|
| 1252 |
-
"version": "1.0.0",
|
| 1253 |
-
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz",
|
| 1254 |
-
"integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==",
|
| 1255 |
-
"dev": true,
|
| 1256 |
-
"license": "MIT",
|
| 1257 |
-
"engines": {
|
| 1258 |
-
"node": ">=8.0.0"
|
| 1259 |
-
}
|
| 1260 |
-
},
|
| 1261 |
"node_modules/camelcase-css": {
|
| 1262 |
"version": "2.0.1",
|
| 1263 |
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
|
| 1264 |
"integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
|
|
|
|
| 1265 |
"license": "MIT",
|
| 1266 |
"engines": {
|
| 1267 |
"node": ">= 6"
|
|
@@ -1292,6 +1170,7 @@
|
|
| 1292 |
"version": "3.6.0",
|
| 1293 |
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
|
| 1294 |
"integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
|
|
|
|
| 1295 |
"license": "MIT",
|
| 1296 |
"dependencies": {
|
| 1297 |
"anymatch": "~3.1.2",
|
|
@@ -1312,15 +1191,6 @@
|
|
| 1312 |
"fsevents": "~2.3.2"
|
| 1313 |
}
|
| 1314 |
},
|
| 1315 |
-
"node_modules/clsx": {
|
| 1316 |
-
"version": "2.1.1",
|
| 1317 |
-
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
|
| 1318 |
-
"integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
|
| 1319 |
-
"license": "MIT",
|
| 1320 |
-
"engines": {
|
| 1321 |
-
"node": ">=6"
|
| 1322 |
-
}
|
| 1323 |
-
},
|
| 1324 |
"node_modules/code-red": {
|
| 1325 |
"version": "1.0.4",
|
| 1326 |
"resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz",
|
|
@@ -1338,6 +1208,7 @@
|
|
| 1338 |
"version": "2.0.1",
|
| 1339 |
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
| 1340 |
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
|
|
|
| 1341 |
"license": "MIT",
|
| 1342 |
"dependencies": {
|
| 1343 |
"color-name": "~1.1.4"
|
|
@@ -1350,24 +1221,19 @@
|
|
| 1350 |
"version": "1.1.4",
|
| 1351 |
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
| 1352 |
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
|
|
|
| 1353 |
"license": "MIT"
|
| 1354 |
},
|
| 1355 |
"node_modules/commander": {
|
| 1356 |
"version": "4.1.1",
|
| 1357 |
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
|
| 1358 |
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
|
|
|
|
| 1359 |
"license": "MIT",
|
| 1360 |
"engines": {
|
| 1361 |
"node": ">= 6"
|
| 1362 |
}
|
| 1363 |
},
|
| 1364 |
-
"node_modules/concat-map": {
|
| 1365 |
-
"version": "0.0.1",
|
| 1366 |
-
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
| 1367 |
-
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
|
| 1368 |
-
"dev": true,
|
| 1369 |
-
"license": "MIT"
|
| 1370 |
-
},
|
| 1371 |
"node_modules/cookie": {
|
| 1372 |
"version": "0.6.0",
|
| 1373 |
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
|
|
@@ -1381,6 +1247,7 @@
|
|
| 1381 |
"version": "7.0.6",
|
| 1382 |
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
|
| 1383 |
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
|
|
|
|
| 1384 |
"license": "MIT",
|
| 1385 |
"dependencies": {
|
| 1386 |
"path-key": "^3.1.0",
|
|
@@ -1408,6 +1275,7 @@
|
|
| 1408 |
"version": "3.0.0",
|
| 1409 |
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
|
| 1410 |
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
|
|
|
|
| 1411 |
"license": "MIT",
|
| 1412 |
"bin": {
|
| 1413 |
"cssesc": "bin/cssesc"
|
|
@@ -1442,25 +1310,6 @@
|
|
| 1442 |
"node": ">=0.10.0"
|
| 1443 |
}
|
| 1444 |
},
|
| 1445 |
-
"node_modules/dequal": {
|
| 1446 |
-
"version": "2.0.3",
|
| 1447 |
-
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
|
| 1448 |
-
"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
|
| 1449 |
-
"license": "MIT",
|
| 1450 |
-
"engines": {
|
| 1451 |
-
"node": ">=6"
|
| 1452 |
-
}
|
| 1453 |
-
},
|
| 1454 |
-
"node_modules/detect-indent": {
|
| 1455 |
-
"version": "6.1.0",
|
| 1456 |
-
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
|
| 1457 |
-
"integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==",
|
| 1458 |
-
"dev": true,
|
| 1459 |
-
"license": "MIT",
|
| 1460 |
-
"engines": {
|
| 1461 |
-
"node": ">=8"
|
| 1462 |
-
}
|
| 1463 |
-
},
|
| 1464 |
"node_modules/devalue": {
|
| 1465 |
"version": "5.4.1",
|
| 1466 |
"resolved": "https://registry.npmjs.org/devalue/-/devalue-5.4.1.tgz",
|
|
@@ -1471,18 +1320,21 @@
|
|
| 1471 |
"version": "1.2.2",
|
| 1472 |
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
|
| 1473 |
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
|
|
|
|
| 1474 |
"license": "Apache-2.0"
|
| 1475 |
},
|
| 1476 |
"node_modules/dlv": {
|
| 1477 |
"version": "1.1.3",
|
| 1478 |
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
|
| 1479 |
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
|
|
|
|
| 1480 |
"license": "MIT"
|
| 1481 |
},
|
| 1482 |
"node_modules/eastasianwidth": {
|
| 1483 |
"version": "0.2.0",
|
| 1484 |
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
|
| 1485 |
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
|
|
|
|
| 1486 |
"license": "MIT"
|
| 1487 |
},
|
| 1488 |
"node_modules/electron-to-chromium": {
|
|
@@ -1496,12 +1348,6 @@
|
|
| 1496 |
"version": "9.2.2",
|
| 1497 |
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
|
| 1498 |
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
|
| 1499 |
-
"license": "MIT"
|
| 1500 |
-
},
|
| 1501 |
-
"node_modules/es6-promise": {
|
| 1502 |
-
"version": "3.3.1",
|
| 1503 |
-
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
|
| 1504 |
-
"integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==",
|
| 1505 |
"dev": true,
|
| 1506 |
"license": "MIT"
|
| 1507 |
},
|
|
@@ -1572,6 +1418,7 @@
|
|
| 1572 |
"version": "3.3.3",
|
| 1573 |
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
|
| 1574 |
"integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
|
|
|
|
| 1575 |
"license": "MIT",
|
| 1576 |
"dependencies": {
|
| 1577 |
"@nodelib/fs.stat": "^2.0.2",
|
|
@@ -1588,6 +1435,7 @@
|
|
| 1588 |
"version": "1.19.1",
|
| 1589 |
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
|
| 1590 |
"integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
|
|
|
|
| 1591 |
"license": "ISC",
|
| 1592 |
"dependencies": {
|
| 1593 |
"reusify": "^1.0.4"
|
|
@@ -1597,6 +1445,7 @@
|
|
| 1597 |
"version": "7.1.1",
|
| 1598 |
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
| 1599 |
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
|
|
|
| 1600 |
"license": "MIT",
|
| 1601 |
"dependencies": {
|
| 1602 |
"to-regex-range": "^5.0.1"
|
|
@@ -1605,19 +1454,11 @@
|
|
| 1605 |
"node": ">=8"
|
| 1606 |
}
|
| 1607 |
},
|
| 1608 |
-
"node_modules/focus-trap": {
|
| 1609 |
-
"version": "7.6.5",
|
| 1610 |
-
"resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.5.tgz",
|
| 1611 |
-
"integrity": "sha512-7Ke1jyybbbPZyZXFxEftUtxFGLMpE2n6A+z//m4CRDlj0hW+o3iYSmh8nFlYMurOiJVDmJRilUQtJr08KfIxlg==",
|
| 1612 |
-
"license": "MIT",
|
| 1613 |
-
"dependencies": {
|
| 1614 |
-
"tabbable": "^6.2.0"
|
| 1615 |
-
}
|
| 1616 |
-
},
|
| 1617 |
"node_modules/foreground-child": {
|
| 1618 |
"version": "3.3.1",
|
| 1619 |
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
|
| 1620 |
"integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
|
|
|
|
| 1621 |
"license": "ISC",
|
| 1622 |
"dependencies": {
|
| 1623 |
"cross-spawn": "^7.0.6",
|
|
@@ -1644,13 +1485,6 @@
|
|
| 1644 |
"url": "https://github.com/sponsors/rawify"
|
| 1645 |
}
|
| 1646 |
},
|
| 1647 |
-
"node_modules/fs.realpath": {
|
| 1648 |
-
"version": "1.0.0",
|
| 1649 |
-
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
| 1650 |
-
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
|
| 1651 |
-
"dev": true,
|
| 1652 |
-
"license": "ISC"
|
| 1653 |
-
},
|
| 1654 |
"node_modules/fsevents": {
|
| 1655 |
"version": "2.3.3",
|
| 1656 |
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
|
@@ -1669,37 +1503,17 @@
|
|
| 1669 |
"version": "1.1.2",
|
| 1670 |
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
|
| 1671 |
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
|
|
|
|
| 1672 |
"license": "MIT",
|
| 1673 |
"funding": {
|
| 1674 |
"url": "https://github.com/sponsors/ljharb"
|
| 1675 |
}
|
| 1676 |
},
|
| 1677 |
-
"node_modules/glob": {
|
| 1678 |
-
"version": "7.2.3",
|
| 1679 |
-
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
|
| 1680 |
-
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
|
| 1681 |
-
"deprecated": "Glob versions prior to v9 are no longer supported",
|
| 1682 |
-
"dev": true,
|
| 1683 |
-
"license": "ISC",
|
| 1684 |
-
"dependencies": {
|
| 1685 |
-
"fs.realpath": "^1.0.0",
|
| 1686 |
-
"inflight": "^1.0.4",
|
| 1687 |
-
"inherits": "2",
|
| 1688 |
-
"minimatch": "^3.1.1",
|
| 1689 |
-
"once": "^1.3.0",
|
| 1690 |
-
"path-is-absolute": "^1.0.0"
|
| 1691 |
-
},
|
| 1692 |
-
"engines": {
|
| 1693 |
-
"node": "*"
|
| 1694 |
-
},
|
| 1695 |
-
"funding": {
|
| 1696 |
-
"url": "https://github.com/sponsors/isaacs"
|
| 1697 |
-
}
|
| 1698 |
-
},
|
| 1699 |
"node_modules/glob-parent": {
|
| 1700 |
"version": "5.1.2",
|
| 1701 |
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
| 1702 |
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
|
|
|
|
| 1703 |
"license": "ISC",
|
| 1704 |
"dependencies": {
|
| 1705 |
"is-glob": "^4.0.1"
|
|
@@ -1708,17 +1522,11 @@
|
|
| 1708 |
"node": ">= 6"
|
| 1709 |
}
|
| 1710 |
},
|
| 1711 |
-
"node_modules/graceful-fs": {
|
| 1712 |
-
"version": "4.2.11",
|
| 1713 |
-
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
|
| 1714 |
-
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
|
| 1715 |
-
"dev": true,
|
| 1716 |
-
"license": "ISC"
|
| 1717 |
-
},
|
| 1718 |
"node_modules/hasown": {
|
| 1719 |
"version": "2.0.2",
|
| 1720 |
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
|
| 1721 |
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
|
|
|
|
| 1722 |
"license": "MIT",
|
| 1723 |
"dependencies": {
|
| 1724 |
"function-bind": "^1.1.2"
|
|
@@ -1738,29 +1546,11 @@
|
|
| 1738 |
"url": "https://github.com/sponsors/wooorm"
|
| 1739 |
}
|
| 1740 |
},
|
| 1741 |
-
"node_modules/inflight": {
|
| 1742 |
-
"version": "1.0.6",
|
| 1743 |
-
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
| 1744 |
-
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
|
| 1745 |
-
"deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
|
| 1746 |
-
"dev": true,
|
| 1747 |
-
"license": "ISC",
|
| 1748 |
-
"dependencies": {
|
| 1749 |
-
"once": "^1.3.0",
|
| 1750 |
-
"wrappy": "1"
|
| 1751 |
-
}
|
| 1752 |
-
},
|
| 1753 |
-
"node_modules/inherits": {
|
| 1754 |
-
"version": "2.0.4",
|
| 1755 |
-
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
| 1756 |
-
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
| 1757 |
-
"dev": true,
|
| 1758 |
-
"license": "ISC"
|
| 1759 |
-
},
|
| 1760 |
"node_modules/is-binary-path": {
|
| 1761 |
"version": "2.1.0",
|
| 1762 |
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
| 1763 |
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
|
|
|
|
| 1764 |
"license": "MIT",
|
| 1765 |
"dependencies": {
|
| 1766 |
"binary-extensions": "^2.0.0"
|
|
@@ -1773,6 +1563,7 @@
|
|
| 1773 |
"version": "2.16.1",
|
| 1774 |
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
|
| 1775 |
"integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
|
|
|
|
| 1776 |
"license": "MIT",
|
| 1777 |
"dependencies": {
|
| 1778 |
"hasown": "^2.0.2"
|
|
@@ -1788,6 +1579,7 @@
|
|
| 1788 |
"version": "2.1.1",
|
| 1789 |
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
| 1790 |
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
|
|
|
|
| 1791 |
"license": "MIT",
|
| 1792 |
"engines": {
|
| 1793 |
"node": ">=0.10.0"
|
|
@@ -1797,6 +1589,7 @@
|
|
| 1797 |
"version": "3.0.0",
|
| 1798 |
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
|
| 1799 |
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
|
|
|
|
| 1800 |
"license": "MIT",
|
| 1801 |
"engines": {
|
| 1802 |
"node": ">=8"
|
|
@@ -1806,6 +1599,7 @@
|
|
| 1806 |
"version": "4.0.3",
|
| 1807 |
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
|
| 1808 |
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
|
|
|
|
| 1809 |
"license": "MIT",
|
| 1810 |
"dependencies": {
|
| 1811 |
"is-extglob": "^2.1.1"
|
|
@@ -1818,6 +1612,7 @@
|
|
| 1818 |
"version": "7.0.0",
|
| 1819 |
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
| 1820 |
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
|
|
|
| 1821 |
"license": "MIT",
|
| 1822 |
"engines": {
|
| 1823 |
"node": ">=0.12.0"
|
|
@@ -1836,12 +1631,14 @@
|
|
| 1836 |
"version": "2.0.0",
|
| 1837 |
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
| 1838 |
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
|
|
|
| 1839 |
"license": "ISC"
|
| 1840 |
},
|
| 1841 |
"node_modules/jackspeak": {
|
| 1842 |
"version": "3.4.3",
|
| 1843 |
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
|
| 1844 |
"integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
|
|
|
|
| 1845 |
"license": "BlueOak-1.0.0",
|
| 1846 |
"dependencies": {
|
| 1847 |
"@isaacs/cliui": "^8.0.2"
|
|
@@ -1857,6 +1654,7 @@
|
|
| 1857 |
"version": "1.21.7",
|
| 1858 |
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
|
| 1859 |
"integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
|
|
|
|
| 1860 |
"license": "MIT",
|
| 1861 |
"bin": {
|
| 1862 |
"jiti": "bin/jiti.js"
|
|
@@ -1875,6 +1673,7 @@
|
|
| 1875 |
"version": "3.1.3",
|
| 1876 |
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
|
| 1877 |
"integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
|
|
|
|
| 1878 |
"license": "MIT",
|
| 1879 |
"engines": {
|
| 1880 |
"node": ">=14"
|
|
@@ -1887,6 +1686,7 @@
|
|
| 1887 |
"version": "1.2.4",
|
| 1888 |
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
|
| 1889 |
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
|
|
|
|
| 1890 |
"license": "MIT"
|
| 1891 |
},
|
| 1892 |
"node_modules/locate-character": {
|
|
@@ -1899,6 +1699,7 @@
|
|
| 1899 |
"version": "10.4.3",
|
| 1900 |
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
|
| 1901 |
"integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
|
|
|
|
| 1902 |
"license": "ISC"
|
| 1903 |
},
|
| 1904 |
"node_modules/lucide-svelte": {
|
|
@@ -1929,6 +1730,7 @@
|
|
| 1929 |
"version": "1.4.1",
|
| 1930 |
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
|
| 1931 |
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
|
|
|
|
| 1932 |
"license": "MIT",
|
| 1933 |
"engines": {
|
| 1934 |
"node": ">= 8"
|
|
@@ -1938,6 +1740,7 @@
|
|
| 1938 |
"version": "4.0.8",
|
| 1939 |
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
|
| 1940 |
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
|
|
|
|
| 1941 |
"license": "MIT",
|
| 1942 |
"dependencies": {
|
| 1943 |
"braces": "^3.0.3",
|
|
@@ -1947,70 +1750,16 @@
|
|
| 1947 |
"node": ">=8.6"
|
| 1948 |
}
|
| 1949 |
},
|
| 1950 |
-
"node_modules/min-indent": {
|
| 1951 |
-
"version": "1.0.1",
|
| 1952 |
-
"resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
|
| 1953 |
-
"integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
|
| 1954 |
-
"dev": true,
|
| 1955 |
-
"license": "MIT",
|
| 1956 |
-
"engines": {
|
| 1957 |
-
"node": ">=4"
|
| 1958 |
-
}
|
| 1959 |
-
},
|
| 1960 |
-
"node_modules/minimatch": {
|
| 1961 |
-
"version": "3.1.2",
|
| 1962 |
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
| 1963 |
-
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
|
| 1964 |
-
"dev": true,
|
| 1965 |
-
"license": "ISC",
|
| 1966 |
-
"dependencies": {
|
| 1967 |
-
"brace-expansion": "^1.1.7"
|
| 1968 |
-
},
|
| 1969 |
-
"engines": {
|
| 1970 |
-
"node": "*"
|
| 1971 |
-
}
|
| 1972 |
-
},
|
| 1973 |
-
"node_modules/minimist": {
|
| 1974 |
-
"version": "1.2.8",
|
| 1975 |
-
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
|
| 1976 |
-
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
|
| 1977 |
-
"dev": true,
|
| 1978 |
-
"license": "MIT",
|
| 1979 |
-
"funding": {
|
| 1980 |
-
"url": "https://github.com/sponsors/ljharb"
|
| 1981 |
-
}
|
| 1982 |
-
},
|
| 1983 |
"node_modules/minipass": {
|
| 1984 |
"version": "7.1.2",
|
| 1985 |
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
|
| 1986 |
"integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
|
|
|
|
| 1987 |
"license": "ISC",
|
| 1988 |
"engines": {
|
| 1989 |
"node": ">=16 || 14 >=14.17"
|
| 1990 |
}
|
| 1991 |
},
|
| 1992 |
-
"node_modules/mkdirp": {
|
| 1993 |
-
"version": "0.5.6",
|
| 1994 |
-
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
|
| 1995 |
-
"integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
|
| 1996 |
-
"dev": true,
|
| 1997 |
-
"license": "MIT",
|
| 1998 |
-
"dependencies": {
|
| 1999 |
-
"minimist": "^1.2.6"
|
| 2000 |
-
},
|
| 2001 |
-
"bin": {
|
| 2002 |
-
"mkdirp": "bin/cmd.js"
|
| 2003 |
-
}
|
| 2004 |
-
},
|
| 2005 |
-
"node_modules/mode-watcher": {
|
| 2006 |
-
"version": "0.2.2",
|
| 2007 |
-
"resolved": "https://registry.npmjs.org/mode-watcher/-/mode-watcher-0.2.2.tgz",
|
| 2008 |
-
"integrity": "sha512-QjkHQL9pXrr7Vb0P3WbOWAF8mv1Q6jEwUZ5GUyCnI9eEoXH234zuaOGChUF7ZQtjxwtmXDzKFSW/36TvLDg1/A==",
|
| 2009 |
-
"license": "MIT",
|
| 2010 |
-
"peerDependencies": {
|
| 2011 |
-
"svelte": "^4.0.0"
|
| 2012 |
-
}
|
| 2013 |
-
},
|
| 2014 |
"node_modules/mri": {
|
| 2015 |
"version": "1.2.0",
|
| 2016 |
"resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
|
|
@@ -2039,6 +1788,7 @@
|
|
| 2039 |
"version": "2.7.0",
|
| 2040 |
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
|
| 2041 |
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
|
|
|
|
| 2042 |
"license": "MIT",
|
| 2043 |
"dependencies": {
|
| 2044 |
"any-promise": "^1.0.0",
|
|
@@ -2046,24 +1796,6 @@
|
|
| 2046 |
"thenify-all": "^1.0.0"
|
| 2047 |
}
|
| 2048 |
},
|
| 2049 |
-
"node_modules/nanoid": {
|
| 2050 |
-
"version": "5.1.6",
|
| 2051 |
-
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.6.tgz",
|
| 2052 |
-
"integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==",
|
| 2053 |
-
"funding": [
|
| 2054 |
-
{
|
| 2055 |
-
"type": "github",
|
| 2056 |
-
"url": "https://github.com/sponsors/ai"
|
| 2057 |
-
}
|
| 2058 |
-
],
|
| 2059 |
-
"license": "MIT",
|
| 2060 |
-
"bin": {
|
| 2061 |
-
"nanoid": "bin/nanoid.js"
|
| 2062 |
-
},
|
| 2063 |
-
"engines": {
|
| 2064 |
-
"node": "^18 || >=20"
|
| 2065 |
-
}
|
| 2066 |
-
},
|
| 2067 |
"node_modules/node-releases": {
|
| 2068 |
"version": "2.0.25",
|
| 2069 |
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.25.tgz",
|
|
@@ -2075,6 +1807,7 @@
|
|
| 2075 |
"version": "3.0.0",
|
| 2076 |
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
| 2077 |
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
|
|
|
|
| 2078 |
"license": "MIT",
|
| 2079 |
"engines": {
|
| 2080 |
"node": ">=0.10.0"
|
|
@@ -2094,6 +1827,7 @@
|
|
| 2094 |
"version": "4.1.1",
|
| 2095 |
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
| 2096 |
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
|
|
|
|
| 2097 |
"license": "MIT",
|
| 2098 |
"engines": {
|
| 2099 |
"node": ">=0.10.0"
|
|
@@ -2103,41 +1837,24 @@
|
|
| 2103 |
"version": "3.0.0",
|
| 2104 |
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
|
| 2105 |
"integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
|
|
|
|
| 2106 |
"license": "MIT",
|
| 2107 |
"engines": {
|
| 2108 |
"node": ">= 6"
|
| 2109 |
}
|
| 2110 |
},
|
| 2111 |
-
"node_modules/once": {
|
| 2112 |
-
"version": "1.4.0",
|
| 2113 |
-
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
| 2114 |
-
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
|
| 2115 |
-
"dev": true,
|
| 2116 |
-
"license": "ISC",
|
| 2117 |
-
"dependencies": {
|
| 2118 |
-
"wrappy": "1"
|
| 2119 |
-
}
|
| 2120 |
-
},
|
| 2121 |
"node_modules/package-json-from-dist": {
|
| 2122 |
"version": "1.0.1",
|
| 2123 |
"resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
|
| 2124 |
"integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
|
| 2125 |
-
"license": "BlueOak-1.0.0"
|
| 2126 |
-
},
|
| 2127 |
-
"node_modules/path-is-absolute": {
|
| 2128 |
-
"version": "1.0.1",
|
| 2129 |
-
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
| 2130 |
-
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
|
| 2131 |
"dev": true,
|
| 2132 |
-
"license": "
|
| 2133 |
-
"engines": {
|
| 2134 |
-
"node": ">=0.10.0"
|
| 2135 |
-
}
|
| 2136 |
},
|
| 2137 |
"node_modules/path-key": {
|
| 2138 |
"version": "3.1.1",
|
| 2139 |
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
|
| 2140 |
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
|
|
|
|
| 2141 |
"license": "MIT",
|
| 2142 |
"engines": {
|
| 2143 |
"node": ">=8"
|
|
@@ -2147,12 +1864,14 @@
|
|
| 2147 |
"version": "1.0.7",
|
| 2148 |
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
| 2149 |
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
|
|
|
| 2150 |
"license": "MIT"
|
| 2151 |
},
|
| 2152 |
"node_modules/path-scurry": {
|
| 2153 |
"version": "1.11.1",
|
| 2154 |
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
|
| 2155 |
"integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
|
|
|
|
| 2156 |
"license": "BlueOak-1.0.0",
|
| 2157 |
"dependencies": {
|
| 2158 |
"lru-cache": "^10.2.0",
|
|
@@ -2186,6 +1905,7 @@
|
|
| 2186 |
"version": "2.3.1",
|
| 2187 |
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
| 2188 |
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
|
|
|
|
| 2189 |
"license": "MIT",
|
| 2190 |
"engines": {
|
| 2191 |
"node": ">=8.6"
|
|
@@ -2198,6 +1918,7 @@
|
|
| 2198 |
"version": "2.3.0",
|
| 2199 |
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
|
| 2200 |
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
|
|
|
|
| 2201 |
"license": "MIT",
|
| 2202 |
"engines": {
|
| 2203 |
"node": ">=0.10.0"
|
|
@@ -2207,6 +1928,7 @@
|
|
| 2207 |
"version": "4.0.7",
|
| 2208 |
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
|
| 2209 |
"integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
|
|
|
|
| 2210 |
"license": "MIT",
|
| 2211 |
"engines": {
|
| 2212 |
"node": ">= 6"
|
|
@@ -2244,6 +1966,7 @@
|
|
| 2244 |
"version": "15.1.0",
|
| 2245 |
"resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
|
| 2246 |
"integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
|
|
|
|
| 2247 |
"license": "MIT",
|
| 2248 |
"dependencies": {
|
| 2249 |
"postcss-value-parser": "^4.0.0",
|
|
@@ -2261,6 +1984,7 @@
|
|
| 2261 |
"version": "4.1.0",
|
| 2262 |
"resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz",
|
| 2263 |
"integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==",
|
|
|
|
| 2264 |
"funding": [
|
| 2265 |
{
|
| 2266 |
"type": "opencollective",
|
|
@@ -2286,6 +2010,7 @@
|
|
| 2286 |
"version": "5.1.0",
|
| 2287 |
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz",
|
| 2288 |
"integrity": "sha512-G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA==",
|
|
|
|
| 2289 |
"funding": [
|
| 2290 |
{
|
| 2291 |
"type": "opencollective",
|
|
@@ -2325,6 +2050,7 @@
|
|
| 2325 |
"version": "6.2.0",
|
| 2326 |
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
|
| 2327 |
"integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
|
|
|
|
| 2328 |
"funding": [
|
| 2329 |
{
|
| 2330 |
"type": "opencollective",
|
|
@@ -2350,6 +2076,7 @@
|
|
| 2350 |
"version": "6.1.2",
|
| 2351 |
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
|
| 2352 |
"integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
|
|
|
|
| 2353 |
"license": "MIT",
|
| 2354 |
"dependencies": {
|
| 2355 |
"cssesc": "^3.0.0",
|
|
@@ -2363,6 +2090,7 @@
|
|
| 2363 |
"version": "4.2.0",
|
| 2364 |
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
|
| 2365 |
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
|
|
|
|
| 2366 |
"license": "MIT"
|
| 2367 |
},
|
| 2368 |
"node_modules/postcss/node_modules/nanoid": {
|
|
@@ -2383,19 +2111,11 @@
|
|
| 2383 |
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
| 2384 |
}
|
| 2385 |
},
|
| 2386 |
-
"node_modules/prismjs": {
|
| 2387 |
-
"version": "1.30.0",
|
| 2388 |
-
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz",
|
| 2389 |
-
"integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==",
|
| 2390 |
-
"license": "MIT",
|
| 2391 |
-
"engines": {
|
| 2392 |
-
"node": ">=6"
|
| 2393 |
-
}
|
| 2394 |
-
},
|
| 2395 |
"node_modules/queue-microtask": {
|
| 2396 |
"version": "1.2.3",
|
| 2397 |
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
|
| 2398 |
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
|
|
|
|
| 2399 |
"funding": [
|
| 2400 |
{
|
| 2401 |
"type": "github",
|
|
@@ -2416,6 +2136,7 @@
|
|
| 2416 |
"version": "1.0.0",
|
| 2417 |
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
| 2418 |
"integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
|
|
|
|
| 2419 |
"license": "MIT",
|
| 2420 |
"dependencies": {
|
| 2421 |
"pify": "^2.3.0"
|
|
@@ -2425,6 +2146,7 @@
|
|
| 2425 |
"version": "3.6.0",
|
| 2426 |
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
|
| 2427 |
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
|
|
|
|
| 2428 |
"license": "MIT",
|
| 2429 |
"dependencies": {
|
| 2430 |
"picomatch": "^2.2.1"
|
|
@@ -2437,6 +2159,7 @@
|
|
| 2437 |
"version": "1.22.10",
|
| 2438 |
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
|
| 2439 |
"integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
|
|
|
|
| 2440 |
"license": "MIT",
|
| 2441 |
"dependencies": {
|
| 2442 |
"is-core-module": "^2.16.0",
|
|
@@ -2457,26 +2180,13 @@
|
|
| 2457 |
"version": "1.1.0",
|
| 2458 |
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
|
| 2459 |
"integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
|
|
|
|
| 2460 |
"license": "MIT",
|
| 2461 |
"engines": {
|
| 2462 |
"iojs": ">=1.0.0",
|
| 2463 |
"node": ">=0.10.0"
|
| 2464 |
}
|
| 2465 |
},
|
| 2466 |
-
"node_modules/rimraf": {
|
| 2467 |
-
"version": "2.7.1",
|
| 2468 |
-
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
|
| 2469 |
-
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
|
| 2470 |
-
"deprecated": "Rimraf versions prior to v4 are no longer supported",
|
| 2471 |
-
"dev": true,
|
| 2472 |
-
"license": "ISC",
|
| 2473 |
-
"dependencies": {
|
| 2474 |
-
"glob": "^7.1.3"
|
| 2475 |
-
},
|
| 2476 |
-
"bin": {
|
| 2477 |
-
"rimraf": "bin.js"
|
| 2478 |
-
}
|
| 2479 |
-
},
|
| 2480 |
"node_modules/rollup": {
|
| 2481 |
"version": "4.52.4",
|
| 2482 |
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.4.tgz",
|
|
@@ -2522,6 +2232,7 @@
|
|
| 2522 |
"version": "1.2.0",
|
| 2523 |
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
|
| 2524 |
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
|
|
|
|
| 2525 |
"funding": [
|
| 2526 |
{
|
| 2527 |
"type": "github",
|
|
@@ -2553,19 +2264,6 @@
|
|
| 2553 |
"node": ">=6"
|
| 2554 |
}
|
| 2555 |
},
|
| 2556 |
-
"node_modules/sander": {
|
| 2557 |
-
"version": "0.5.1",
|
| 2558 |
-
"resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz",
|
| 2559 |
-
"integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==",
|
| 2560 |
-
"dev": true,
|
| 2561 |
-
"license": "MIT",
|
| 2562 |
-
"dependencies": {
|
| 2563 |
-
"es6-promise": "^3.1.2",
|
| 2564 |
-
"graceful-fs": "^4.1.3",
|
| 2565 |
-
"mkdirp": "^0.5.1",
|
| 2566 |
-
"rimraf": "^2.5.2"
|
| 2567 |
-
}
|
| 2568 |
-
},
|
| 2569 |
"node_modules/set-cookie-parser": {
|
| 2570 |
"version": "2.7.1",
|
| 2571 |
"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz",
|
|
@@ -2576,6 +2274,7 @@
|
|
| 2576 |
"version": "2.0.0",
|
| 2577 |
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
| 2578 |
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
|
|
|
|
| 2579 |
"license": "MIT",
|
| 2580 |
"dependencies": {
|
| 2581 |
"shebang-regex": "^3.0.0"
|
|
@@ -2588,6 +2287,7 @@
|
|
| 2588 |
"version": "3.0.0",
|
| 2589 |
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
|
| 2590 |
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
|
|
|
|
| 2591 |
"license": "MIT",
|
| 2592 |
"engines": {
|
| 2593 |
"node": ">=8"
|
|
@@ -2597,6 +2297,7 @@
|
|
| 2597 |
"version": "4.1.0",
|
| 2598 |
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
|
| 2599 |
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
|
|
|
|
| 2600 |
"license": "ISC",
|
| 2601 |
"engines": {
|
| 2602 |
"node": ">=14"
|
|
@@ -2619,22 +2320,6 @@
|
|
| 2619 |
"node": ">=18"
|
| 2620 |
}
|
| 2621 |
},
|
| 2622 |
-
"node_modules/sorcery": {
|
| 2623 |
-
"version": "0.11.1",
|
| 2624 |
-
"resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.1.tgz",
|
| 2625 |
-
"integrity": "sha512-o7npfeJE6wi6J9l0/5LKshFzZ2rMatRiCDwYeDQaOzqdzRJwALhX7mk/A/ecg6wjMu7wdZbmXfD2S/vpOg0bdQ==",
|
| 2626 |
-
"dev": true,
|
| 2627 |
-
"license": "MIT",
|
| 2628 |
-
"dependencies": {
|
| 2629 |
-
"@jridgewell/sourcemap-codec": "^1.4.14",
|
| 2630 |
-
"buffer-crc32": "^1.0.0",
|
| 2631 |
-
"minimist": "^1.2.0",
|
| 2632 |
-
"sander": "^0.5.0"
|
| 2633 |
-
},
|
| 2634 |
-
"bin": {
|
| 2635 |
-
"sorcery": "bin/sorcery"
|
| 2636 |
-
}
|
| 2637 |
-
},
|
| 2638 |
"node_modules/source-map-js": {
|
| 2639 |
"version": "1.2.1",
|
| 2640 |
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
|
|
@@ -2648,6 +2333,7 @@
|
|
| 2648 |
"version": "5.1.2",
|
| 2649 |
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
|
| 2650 |
"integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
|
|
|
|
| 2651 |
"license": "MIT",
|
| 2652 |
"dependencies": {
|
| 2653 |
"eastasianwidth": "^0.2.0",
|
|
@@ -2666,6 +2352,7 @@
|
|
| 2666 |
"version": "4.2.3",
|
| 2667 |
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
| 2668 |
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
|
|
|
| 2669 |
"license": "MIT",
|
| 2670 |
"dependencies": {
|
| 2671 |
"emoji-regex": "^8.0.0",
|
|
@@ -2680,6 +2367,7 @@
|
|
| 2680 |
"version": "5.0.1",
|
| 2681 |
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
| 2682 |
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
|
|
|
| 2683 |
"license": "MIT",
|
| 2684 |
"engines": {
|
| 2685 |
"node": ">=8"
|
|
@@ -2689,12 +2377,14 @@
|
|
| 2689 |
"version": "8.0.0",
|
| 2690 |
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
| 2691 |
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
|
|
|
| 2692 |
"license": "MIT"
|
| 2693 |
},
|
| 2694 |
"node_modules/string-width-cjs/node_modules/strip-ansi": {
|
| 2695 |
"version": "6.0.1",
|
| 2696 |
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
| 2697 |
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
|
|
|
| 2698 |
"license": "MIT",
|
| 2699 |
"dependencies": {
|
| 2700 |
"ansi-regex": "^5.0.1"
|
|
@@ -2707,6 +2397,7 @@
|
|
| 2707 |
"version": "7.1.2",
|
| 2708 |
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
|
| 2709 |
"integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
|
|
|
|
| 2710 |
"license": "MIT",
|
| 2711 |
"dependencies": {
|
| 2712 |
"ansi-regex": "^6.0.1"
|
|
@@ -2723,6 +2414,7 @@
|
|
| 2723 |
"version": "6.0.1",
|
| 2724 |
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
| 2725 |
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
|
|
|
| 2726 |
"license": "MIT",
|
| 2727 |
"dependencies": {
|
| 2728 |
"ansi-regex": "^5.0.1"
|
|
@@ -2735,20 +2427,8 @@
|
|
| 2735 |
"version": "5.0.1",
|
| 2736 |
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
| 2737 |
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
| 2738 |
-
"license": "MIT",
|
| 2739 |
-
"engines": {
|
| 2740 |
-
"node": ">=8"
|
| 2741 |
-
}
|
| 2742 |
-
},
|
| 2743 |
-
"node_modules/strip-indent": {
|
| 2744 |
-
"version": "3.0.0",
|
| 2745 |
-
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
|
| 2746 |
-
"integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
|
| 2747 |
"dev": true,
|
| 2748 |
"license": "MIT",
|
| 2749 |
-
"dependencies": {
|
| 2750 |
-
"min-indent": "^1.0.0"
|
| 2751 |
-
},
|
| 2752 |
"engines": {
|
| 2753 |
"node": ">=8"
|
| 2754 |
}
|
|
@@ -2757,6 +2437,7 @@
|
|
| 2757 |
"version": "3.35.0",
|
| 2758 |
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
|
| 2759 |
"integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
|
|
|
|
| 2760 |
"license": "MIT",
|
| 2761 |
"dependencies": {
|
| 2762 |
"@jridgewell/gen-mapping": "^0.3.2",
|
|
@@ -2779,6 +2460,7 @@
|
|
| 2779 |
"version": "2.0.2",
|
| 2780 |
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
| 2781 |
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
|
|
|
| 2782 |
"license": "MIT",
|
| 2783 |
"dependencies": {
|
| 2784 |
"balanced-match": "^1.0.0"
|
|
@@ -2788,6 +2470,7 @@
|
|
| 2788 |
"version": "10.4.5",
|
| 2789 |
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
|
| 2790 |
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
|
|
|
|
| 2791 |
"license": "ISC",
|
| 2792 |
"dependencies": {
|
| 2793 |
"foreground-child": "^3.1.0",
|
|
@@ -2808,6 +2491,7 @@
|
|
| 2808 |
"version": "9.0.5",
|
| 2809 |
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
|
| 2810 |
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
|
|
|
|
| 2811 |
"license": "ISC",
|
| 2812 |
"dependencies": {
|
| 2813 |
"brace-expansion": "^2.0.1"
|
|
@@ -2823,6 +2507,7 @@
|
|
| 2823 |
"version": "1.0.0",
|
| 2824 |
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
|
| 2825 |
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
|
|
|
|
| 2826 |
"license": "MIT",
|
| 2827 |
"engines": {
|
| 2828 |
"node": ">= 0.4"
|
|
@@ -2856,27 +2541,6 @@
|
|
| 2856 |
"node": ">=16"
|
| 2857 |
}
|
| 2858 |
},
|
| 2859 |
-
"node_modules/svelte-check": {
|
| 2860 |
-
"version": "3.8.6",
|
| 2861 |
-
"resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.8.6.tgz",
|
| 2862 |
-
"integrity": "sha512-ij0u4Lw/sOTREP13BdWZjiXD/BlHE6/e2e34XzmVmsp5IN4kVa3PWP65NM32JAgwjZlwBg/+JtiNV1MM8khu0Q==",
|
| 2863 |
-
"dev": true,
|
| 2864 |
-
"license": "MIT",
|
| 2865 |
-
"dependencies": {
|
| 2866 |
-
"@jridgewell/trace-mapping": "^0.3.17",
|
| 2867 |
-
"chokidar": "^3.4.1",
|
| 2868 |
-
"picocolors": "^1.0.0",
|
| 2869 |
-
"sade": "^1.7.4",
|
| 2870 |
-
"svelte-preprocess": "^5.1.3",
|
| 2871 |
-
"typescript": "^5.0.3"
|
| 2872 |
-
},
|
| 2873 |
-
"bin": {
|
| 2874 |
-
"svelte-check": "bin/svelte-check"
|
| 2875 |
-
},
|
| 2876 |
-
"peerDependencies": {
|
| 2877 |
-
"svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0"
|
| 2878 |
-
}
|
| 2879 |
-
},
|
| 2880 |
"node_modules/svelte-hmr": {
|
| 2881 |
"version": "0.16.0",
|
| 2882 |
"resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.16.0.tgz",
|
|
@@ -2889,124 +2553,11 @@
|
|
| 2889 |
"svelte": "^3.19.0 || ^4.0.0"
|
| 2890 |
}
|
| 2891 |
},
|
| 2892 |
-
"node_modules/svelte-preprocess": {
|
| 2893 |
-
"version": "5.1.4",
|
| 2894 |
-
"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.4.tgz",
|
| 2895 |
-
"integrity": "sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==",
|
| 2896 |
-
"dev": true,
|
| 2897 |
-
"hasInstallScript": true,
|
| 2898 |
-
"license": "MIT",
|
| 2899 |
-
"dependencies": {
|
| 2900 |
-
"@types/pug": "^2.0.6",
|
| 2901 |
-
"detect-indent": "^6.1.0",
|
| 2902 |
-
"magic-string": "^0.30.5",
|
| 2903 |
-
"sorcery": "^0.11.0",
|
| 2904 |
-
"strip-indent": "^3.0.0"
|
| 2905 |
-
},
|
| 2906 |
-
"engines": {
|
| 2907 |
-
"node": ">= 16.0.0"
|
| 2908 |
-
},
|
| 2909 |
-
"peerDependencies": {
|
| 2910 |
-
"@babel/core": "^7.10.2",
|
| 2911 |
-
"coffeescript": "^2.5.1",
|
| 2912 |
-
"less": "^3.11.3 || ^4.0.0",
|
| 2913 |
-
"postcss": "^7 || ^8",
|
| 2914 |
-
"postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0",
|
| 2915 |
-
"pug": "^3.0.0",
|
| 2916 |
-
"sass": "^1.26.8",
|
| 2917 |
-
"stylus": "^0.55.0",
|
| 2918 |
-
"sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0",
|
| 2919 |
-
"svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0",
|
| 2920 |
-
"typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0"
|
| 2921 |
-
},
|
| 2922 |
-
"peerDependenciesMeta": {
|
| 2923 |
-
"@babel/core": {
|
| 2924 |
-
"optional": true
|
| 2925 |
-
},
|
| 2926 |
-
"coffeescript": {
|
| 2927 |
-
"optional": true
|
| 2928 |
-
},
|
| 2929 |
-
"less": {
|
| 2930 |
-
"optional": true
|
| 2931 |
-
},
|
| 2932 |
-
"postcss": {
|
| 2933 |
-
"optional": true
|
| 2934 |
-
},
|
| 2935 |
-
"postcss-load-config": {
|
| 2936 |
-
"optional": true
|
| 2937 |
-
},
|
| 2938 |
-
"pug": {
|
| 2939 |
-
"optional": true
|
| 2940 |
-
},
|
| 2941 |
-
"sass": {
|
| 2942 |
-
"optional": true
|
| 2943 |
-
},
|
| 2944 |
-
"stylus": {
|
| 2945 |
-
"optional": true
|
| 2946 |
-
},
|
| 2947 |
-
"sugarss": {
|
| 2948 |
-
"optional": true
|
| 2949 |
-
},
|
| 2950 |
-
"typescript": {
|
| 2951 |
-
"optional": true
|
| 2952 |
-
}
|
| 2953 |
-
}
|
| 2954 |
-
},
|
| 2955 |
-
"node_modules/svelte-sonner": {
|
| 2956 |
-
"version": "0.3.28",
|
| 2957 |
-
"resolved": "https://registry.npmjs.org/svelte-sonner/-/svelte-sonner-0.3.28.tgz",
|
| 2958 |
-
"integrity": "sha512-K3AmlySeFifF/cKgsYNv5uXqMVNln0NBAacOYgmkQStLa/UoU0LhfAACU6Gr+YYC8bOCHdVmFNoKuDbMEsppJg==",
|
| 2959 |
-
"license": "MIT",
|
| 2960 |
-
"peerDependencies": {
|
| 2961 |
-
"svelte": "^3.0.0 || ^4.0.0 || ^5.0.0-next.1"
|
| 2962 |
-
}
|
| 2963 |
-
},
|
| 2964 |
-
"node_modules/tabbable": {
|
| 2965 |
-
"version": "6.2.0",
|
| 2966 |
-
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
|
| 2967 |
-
"integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==",
|
| 2968 |
-
"license": "MIT"
|
| 2969 |
-
},
|
| 2970 |
-
"node_modules/tailwind-merge": {
|
| 2971 |
-
"version": "2.6.0",
|
| 2972 |
-
"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz",
|
| 2973 |
-
"integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==",
|
| 2974 |
-
"license": "MIT",
|
| 2975 |
-
"funding": {
|
| 2976 |
-
"type": "github",
|
| 2977 |
-
"url": "https://github.com/sponsors/dcastil"
|
| 2978 |
-
}
|
| 2979 |
-
},
|
| 2980 |
-
"node_modules/tailwind-variants": {
|
| 2981 |
-
"version": "0.1.20",
|
| 2982 |
-
"resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-0.1.20.tgz",
|
| 2983 |
-
"integrity": "sha512-AMh7x313t/V+eTySKB0Dal08RHY7ggYK0MSn/ad8wKWOrDUIzyiWNayRUm2PIJ4VRkvRnfNuyRuKbLV3EN+ewQ==",
|
| 2984 |
-
"license": "MIT",
|
| 2985 |
-
"dependencies": {
|
| 2986 |
-
"tailwind-merge": "^1.14.0"
|
| 2987 |
-
},
|
| 2988 |
-
"engines": {
|
| 2989 |
-
"node": ">=16.x",
|
| 2990 |
-
"pnpm": ">=7.x"
|
| 2991 |
-
},
|
| 2992 |
-
"peerDependencies": {
|
| 2993 |
-
"tailwindcss": "*"
|
| 2994 |
-
}
|
| 2995 |
-
},
|
| 2996 |
-
"node_modules/tailwind-variants/node_modules/tailwind-merge": {
|
| 2997 |
-
"version": "1.14.0",
|
| 2998 |
-
"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz",
|
| 2999 |
-
"integrity": "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==",
|
| 3000 |
-
"license": "MIT",
|
| 3001 |
-
"funding": {
|
| 3002 |
-
"type": "github",
|
| 3003 |
-
"url": "https://github.com/sponsors/dcastil"
|
| 3004 |
-
}
|
| 3005 |
-
},
|
| 3006 |
"node_modules/tailwindcss": {
|
| 3007 |
"version": "3.4.18",
|
| 3008 |
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.18.tgz",
|
| 3009 |
"integrity": "sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ==",
|
|
|
|
| 3010 |
"license": "MIT",
|
| 3011 |
"dependencies": {
|
| 3012 |
"@alloc/quick-lru": "^5.2.0",
|
|
@@ -3044,6 +2595,7 @@
|
|
| 3044 |
"version": "6.0.2",
|
| 3045 |
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
|
| 3046 |
"integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
|
|
|
|
| 3047 |
"license": "ISC",
|
| 3048 |
"dependencies": {
|
| 3049 |
"is-glob": "^4.0.3"
|
|
@@ -3056,6 +2608,7 @@
|
|
| 3056 |
"version": "3.3.1",
|
| 3057 |
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
|
| 3058 |
"integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
|
|
|
|
| 3059 |
"license": "MIT",
|
| 3060 |
"dependencies": {
|
| 3061 |
"any-promise": "^1.0.0"
|
|
@@ -3065,6 +2618,7 @@
|
|
| 3065 |
"version": "1.6.0",
|
| 3066 |
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
|
| 3067 |
"integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
|
|
|
|
| 3068 |
"license": "MIT",
|
| 3069 |
"dependencies": {
|
| 3070 |
"thenify": ">= 3.1.0 < 4"
|
|
@@ -3077,6 +2631,7 @@
|
|
| 3077 |
"version": "5.0.1",
|
| 3078 |
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
| 3079 |
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
|
|
|
| 3080 |
"license": "MIT",
|
| 3081 |
"dependencies": {
|
| 3082 |
"is-number": "^7.0.0"
|
|
@@ -3098,27 +2653,8 @@
|
|
| 3098 |
"version": "0.1.13",
|
| 3099 |
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
|
| 3100 |
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
|
| 3101 |
-
"license": "Apache-2.0"
|
| 3102 |
-
},
|
| 3103 |
-
"node_modules/tslib": {
|
| 3104 |
-
"version": "2.8.1",
|
| 3105 |
-
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
| 3106 |
-
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
|
| 3107 |
-
"license": "0BSD"
|
| 3108 |
-
},
|
| 3109 |
-
"node_modules/typescript": {
|
| 3110 |
-
"version": "5.9.3",
|
| 3111 |
-
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
|
| 3112 |
-
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
| 3113 |
"dev": true,
|
| 3114 |
-
"license": "Apache-2.0"
|
| 3115 |
-
"bin": {
|
| 3116 |
-
"tsc": "bin/tsc",
|
| 3117 |
-
"tsserver": "bin/tsserver"
|
| 3118 |
-
},
|
| 3119 |
-
"engines": {
|
| 3120 |
-
"node": ">=14.17"
|
| 3121 |
-
}
|
| 3122 |
},
|
| 3123 |
"node_modules/update-browserslist-db": {
|
| 3124 |
"version": "1.1.3",
|
|
@@ -3155,6 +2691,7 @@
|
|
| 3155 |
"version": "1.0.2",
|
| 3156 |
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
| 3157 |
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
|
|
|
|
| 3158 |
"license": "MIT"
|
| 3159 |
},
|
| 3160 |
"node_modules/vite": {
|
|
@@ -3230,16 +2767,11 @@
|
|
| 3230 |
}
|
| 3231 |
}
|
| 3232 |
},
|
| 3233 |
-
"node_modules/wavesurfer.js": {
|
| 3234 |
-
"version": "7.11.0",
|
| 3235 |
-
"resolved": "https://registry.npmjs.org/wavesurfer.js/-/wavesurfer.js-7.11.0.tgz",
|
| 3236 |
-
"integrity": "sha512-LOGdIBIKv/roYuQYClhoqhwbIdQL1GfobLnS2vx0heoLD9lu57OUHWE2DIsCNXBvCsmmbkUvJq9W8bPLPbikGw==",
|
| 3237 |
-
"license": "BSD-3-Clause"
|
| 3238 |
-
},
|
| 3239 |
"node_modules/which": {
|
| 3240 |
"version": "2.0.2",
|
| 3241 |
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
| 3242 |
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
|
|
|
| 3243 |
"license": "ISC",
|
| 3244 |
"dependencies": {
|
| 3245 |
"isexe": "^2.0.0"
|
|
@@ -3255,6 +2787,7 @@
|
|
| 3255 |
"version": "8.1.0",
|
| 3256 |
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
|
| 3257 |
"integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
|
|
|
|
| 3258 |
"license": "MIT",
|
| 3259 |
"dependencies": {
|
| 3260 |
"ansi-styles": "^6.1.0",
|
|
@@ -3273,6 +2806,7 @@
|
|
| 3273 |
"version": "7.0.0",
|
| 3274 |
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
| 3275 |
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
|
|
|
| 3276 |
"license": "MIT",
|
| 3277 |
"dependencies": {
|
| 3278 |
"ansi-styles": "^4.0.0",
|
|
@@ -3290,6 +2824,7 @@
|
|
| 3290 |
"version": "5.0.1",
|
| 3291 |
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
| 3292 |
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
|
|
|
| 3293 |
"license": "MIT",
|
| 3294 |
"engines": {
|
| 3295 |
"node": ">=8"
|
|
@@ -3299,6 +2834,7 @@
|
|
| 3299 |
"version": "4.3.0",
|
| 3300 |
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
| 3301 |
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
|
|
|
| 3302 |
"license": "MIT",
|
| 3303 |
"dependencies": {
|
| 3304 |
"color-convert": "^2.0.1"
|
|
@@ -3314,12 +2850,14 @@
|
|
| 3314 |
"version": "8.0.0",
|
| 3315 |
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
| 3316 |
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
|
|
|
| 3317 |
"license": "MIT"
|
| 3318 |
},
|
| 3319 |
"node_modules/wrap-ansi-cjs/node_modules/string-width": {
|
| 3320 |
"version": "4.2.3",
|
| 3321 |
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
| 3322 |
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
|
|
|
| 3323 |
"license": "MIT",
|
| 3324 |
"dependencies": {
|
| 3325 |
"emoji-regex": "^8.0.0",
|
|
@@ -3334,6 +2872,7 @@
|
|
| 3334 |
"version": "6.0.1",
|
| 3335 |
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
| 3336 |
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
|
|
|
| 3337 |
"license": "MIT",
|
| 3338 |
"dependencies": {
|
| 3339 |
"ansi-regex": "^5.0.1"
|
|
@@ -3342,17 +2881,11 @@
|
|
| 3342 |
"node": ">=8"
|
| 3343 |
}
|
| 3344 |
},
|
| 3345 |
-
"node_modules/wrappy": {
|
| 3346 |
-
"version": "1.0.2",
|
| 3347 |
-
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
| 3348 |
-
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
|
| 3349 |
-
"dev": true,
|
| 3350 |
-
"license": "ISC"
|
| 3351 |
-
},
|
| 3352 |
"node_modules/yaml": {
|
| 3353 |
"version": "2.8.1",
|
| 3354 |
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
|
| 3355 |
"integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
|
|
|
|
| 3356 |
"license": "ISC",
|
| 3357 |
"bin": {
|
| 3358 |
"yaml": "bin.mjs"
|
|
|
|
| 8 |
"name": "hfstudio-frontend",
|
| 9 |
"version": "0.1.2",
|
| 10 |
"dependencies": {
|
|
|
|
| 11 |
"@sveltejs/adapter-static": "^3.0.10",
|
| 12 |
+
"lucide-svelte": "^0.303.0"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
},
|
| 14 |
"devDependencies": {
|
| 15 |
"@sveltejs/adapter-auto": "^3.0.0",
|
|
|
|
| 18 |
"autoprefixer": "^10.4.16",
|
| 19 |
"postcss": "^8.4.32",
|
| 20 |
"svelte": "^4.2.7",
|
|
|
|
| 21 |
"tailwindcss": "^3.3.0",
|
|
|
|
| 22 |
"vite": "^5.0.3"
|
| 23 |
}
|
| 24 |
},
|
|
|
|
| 26 |
"version": "5.2.0",
|
| 27 |
"resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
|
| 28 |
"integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
|
| 29 |
+
"dev": true,
|
| 30 |
"license": "MIT",
|
| 31 |
"engines": {
|
| 32 |
"node": ">=10"
|
|
|
|
| 416 |
"node": ">=12"
|
| 417 |
}
|
| 418 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 419 |
"node_modules/@isaacs/cliui": {
|
| 420 |
"version": "8.0.2",
|
| 421 |
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
|
| 422 |
"integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
|
| 423 |
+
"dev": true,
|
| 424 |
"license": "ISC",
|
| 425 |
"dependencies": {
|
| 426 |
"string-width": "^5.1.2",
|
|
|
|
| 469 |
"@jridgewell/sourcemap-codec": "^1.4.14"
|
| 470 |
}
|
| 471 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 472 |
"node_modules/@nodelib/fs.scandir": {
|
| 473 |
"version": "2.1.5",
|
| 474 |
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
| 475 |
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
|
| 476 |
+
"dev": true,
|
| 477 |
"license": "MIT",
|
| 478 |
"dependencies": {
|
| 479 |
"@nodelib/fs.stat": "2.0.5",
|
|
|
|
| 487 |
"version": "2.0.5",
|
| 488 |
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
|
| 489 |
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
|
| 490 |
+
"dev": true,
|
| 491 |
"license": "MIT",
|
| 492 |
"engines": {
|
| 493 |
"node": ">= 8"
|
|
|
|
| 497 |
"version": "1.2.8",
|
| 498 |
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
|
| 499 |
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
|
| 500 |
+
"dev": true,
|
| 501 |
"license": "MIT",
|
| 502 |
"dependencies": {
|
| 503 |
"@nodelib/fs.scandir": "2.1.5",
|
|
|
|
| 511 |
"version": "0.11.0",
|
| 512 |
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
|
| 513 |
"integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
|
| 514 |
+
"dev": true,
|
| 515 |
"license": "MIT",
|
| 516 |
"optional": true,
|
| 517 |
"engines": {
|
|
|
|
| 924 |
"vite": "^5.0.0"
|
| 925 |
}
|
| 926 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 927 |
"node_modules/@types/cookie": {
|
| 928 |
"version": "0.6.0",
|
| 929 |
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz",
|
|
|
|
| 936 |
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
|
| 937 |
"license": "MIT"
|
| 938 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 939 |
"node_modules/acorn": {
|
| 940 |
"version": "8.15.0",
|
| 941 |
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
|
|
|
|
| 952 |
"version": "6.2.2",
|
| 953 |
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
|
| 954 |
"integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
|
| 955 |
+
"dev": true,
|
| 956 |
"license": "MIT",
|
| 957 |
"engines": {
|
| 958 |
"node": ">=12"
|
|
|
|
| 965 |
"version": "6.2.3",
|
| 966 |
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
|
| 967 |
"integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
|
| 968 |
+
"dev": true,
|
| 969 |
"license": "MIT",
|
| 970 |
"engines": {
|
| 971 |
"node": ">=12"
|
|
|
|
| 978 |
"version": "1.3.0",
|
| 979 |
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
|
| 980 |
"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
|
| 981 |
+
"dev": true,
|
| 982 |
"license": "MIT"
|
| 983 |
},
|
| 984 |
"node_modules/anymatch": {
|
| 985 |
"version": "3.1.3",
|
| 986 |
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
|
| 987 |
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
|
| 988 |
+
"dev": true,
|
| 989 |
"license": "ISC",
|
| 990 |
"dependencies": {
|
| 991 |
"normalize-path": "^3.0.0",
|
|
|
|
| 999 |
"version": "5.0.2",
|
| 1000 |
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
|
| 1001 |
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
|
| 1002 |
+
"dev": true,
|
| 1003 |
"license": "MIT"
|
| 1004 |
},
|
| 1005 |
"node_modules/aria-query": {
|
|
|
|
| 1062 |
"version": "1.0.2",
|
| 1063 |
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
| 1064 |
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
| 1065 |
+
"dev": true,
|
| 1066 |
"license": "MIT"
|
| 1067 |
},
|
| 1068 |
"node_modules/baseline-browser-mapping": {
|
|
|
|
| 1079 |
"version": "2.3.0",
|
| 1080 |
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
|
| 1081 |
"integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
|
| 1082 |
+
"dev": true,
|
| 1083 |
"license": "MIT",
|
| 1084 |
"engines": {
|
| 1085 |
"node": ">=8"
|
|
|
|
| 1088 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 1089 |
}
|
| 1090 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1091 |
"node_modules/braces": {
|
| 1092 |
"version": "3.0.3",
|
| 1093 |
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
| 1094 |
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
| 1095 |
+
"dev": true,
|
| 1096 |
"license": "MIT",
|
| 1097 |
"dependencies": {
|
| 1098 |
"fill-range": "^7.1.1"
|
|
|
|
| 1135 |
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
| 1136 |
}
|
| 1137 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1138 |
"node_modules/camelcase-css": {
|
| 1139 |
"version": "2.0.1",
|
| 1140 |
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
|
| 1141 |
"integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
|
| 1142 |
+
"dev": true,
|
| 1143 |
"license": "MIT",
|
| 1144 |
"engines": {
|
| 1145 |
"node": ">= 6"
|
|
|
|
| 1170 |
"version": "3.6.0",
|
| 1171 |
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
|
| 1172 |
"integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
|
| 1173 |
+
"dev": true,
|
| 1174 |
"license": "MIT",
|
| 1175 |
"dependencies": {
|
| 1176 |
"anymatch": "~3.1.2",
|
|
|
|
| 1191 |
"fsevents": "~2.3.2"
|
| 1192 |
}
|
| 1193 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1194 |
"node_modules/code-red": {
|
| 1195 |
"version": "1.0.4",
|
| 1196 |
"resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz",
|
|
|
|
| 1208 |
"version": "2.0.1",
|
| 1209 |
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
| 1210 |
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
| 1211 |
+
"dev": true,
|
| 1212 |
"license": "MIT",
|
| 1213 |
"dependencies": {
|
| 1214 |
"color-name": "~1.1.4"
|
|
|
|
| 1221 |
"version": "1.1.4",
|
| 1222 |
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
| 1223 |
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
| 1224 |
+
"dev": true,
|
| 1225 |
"license": "MIT"
|
| 1226 |
},
|
| 1227 |
"node_modules/commander": {
|
| 1228 |
"version": "4.1.1",
|
| 1229 |
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
|
| 1230 |
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
|
| 1231 |
+
"dev": true,
|
| 1232 |
"license": "MIT",
|
| 1233 |
"engines": {
|
| 1234 |
"node": ">= 6"
|
| 1235 |
}
|
| 1236 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1237 |
"node_modules/cookie": {
|
| 1238 |
"version": "0.6.0",
|
| 1239 |
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
|
|
|
|
| 1247 |
"version": "7.0.6",
|
| 1248 |
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
|
| 1249 |
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
|
| 1250 |
+
"dev": true,
|
| 1251 |
"license": "MIT",
|
| 1252 |
"dependencies": {
|
| 1253 |
"path-key": "^3.1.0",
|
|
|
|
| 1275 |
"version": "3.0.0",
|
| 1276 |
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
|
| 1277 |
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
|
| 1278 |
+
"dev": true,
|
| 1279 |
"license": "MIT",
|
| 1280 |
"bin": {
|
| 1281 |
"cssesc": "bin/cssesc"
|
|
|
|
| 1310 |
"node": ">=0.10.0"
|
| 1311 |
}
|
| 1312 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1313 |
"node_modules/devalue": {
|
| 1314 |
"version": "5.4.1",
|
| 1315 |
"resolved": "https://registry.npmjs.org/devalue/-/devalue-5.4.1.tgz",
|
|
|
|
| 1320 |
"version": "1.2.2",
|
| 1321 |
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
|
| 1322 |
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
|
| 1323 |
+
"dev": true,
|
| 1324 |
"license": "Apache-2.0"
|
| 1325 |
},
|
| 1326 |
"node_modules/dlv": {
|
| 1327 |
"version": "1.1.3",
|
| 1328 |
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
|
| 1329 |
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
|
| 1330 |
+
"dev": true,
|
| 1331 |
"license": "MIT"
|
| 1332 |
},
|
| 1333 |
"node_modules/eastasianwidth": {
|
| 1334 |
"version": "0.2.0",
|
| 1335 |
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
|
| 1336 |
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
|
| 1337 |
+
"dev": true,
|
| 1338 |
"license": "MIT"
|
| 1339 |
},
|
| 1340 |
"node_modules/electron-to-chromium": {
|
|
|
|
| 1348 |
"version": "9.2.2",
|
| 1349 |
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
|
| 1350 |
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1351 |
"dev": true,
|
| 1352 |
"license": "MIT"
|
| 1353 |
},
|
|
|
|
| 1418 |
"version": "3.3.3",
|
| 1419 |
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
|
| 1420 |
"integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
|
| 1421 |
+
"dev": true,
|
| 1422 |
"license": "MIT",
|
| 1423 |
"dependencies": {
|
| 1424 |
"@nodelib/fs.stat": "^2.0.2",
|
|
|
|
| 1435 |
"version": "1.19.1",
|
| 1436 |
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
|
| 1437 |
"integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
|
| 1438 |
+
"dev": true,
|
| 1439 |
"license": "ISC",
|
| 1440 |
"dependencies": {
|
| 1441 |
"reusify": "^1.0.4"
|
|
|
|
| 1445 |
"version": "7.1.1",
|
| 1446 |
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
| 1447 |
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
| 1448 |
+
"dev": true,
|
| 1449 |
"license": "MIT",
|
| 1450 |
"dependencies": {
|
| 1451 |
"to-regex-range": "^5.0.1"
|
|
|
|
| 1454 |
"node": ">=8"
|
| 1455 |
}
|
| 1456 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1457 |
"node_modules/foreground-child": {
|
| 1458 |
"version": "3.3.1",
|
| 1459 |
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
|
| 1460 |
"integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
|
| 1461 |
+
"dev": true,
|
| 1462 |
"license": "ISC",
|
| 1463 |
"dependencies": {
|
| 1464 |
"cross-spawn": "^7.0.6",
|
|
|
|
| 1485 |
"url": "https://github.com/sponsors/rawify"
|
| 1486 |
}
|
| 1487 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1488 |
"node_modules/fsevents": {
|
| 1489 |
"version": "2.3.3",
|
| 1490 |
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
|
|
|
| 1503 |
"version": "1.1.2",
|
| 1504 |
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
|
| 1505 |
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
|
| 1506 |
+
"dev": true,
|
| 1507 |
"license": "MIT",
|
| 1508 |
"funding": {
|
| 1509 |
"url": "https://github.com/sponsors/ljharb"
|
| 1510 |
}
|
| 1511 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1512 |
"node_modules/glob-parent": {
|
| 1513 |
"version": "5.1.2",
|
| 1514 |
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
| 1515 |
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
|
| 1516 |
+
"dev": true,
|
| 1517 |
"license": "ISC",
|
| 1518 |
"dependencies": {
|
| 1519 |
"is-glob": "^4.0.1"
|
|
|
|
| 1522 |
"node": ">= 6"
|
| 1523 |
}
|
| 1524 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1525 |
"node_modules/hasown": {
|
| 1526 |
"version": "2.0.2",
|
| 1527 |
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
|
| 1528 |
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
|
| 1529 |
+
"dev": true,
|
| 1530 |
"license": "MIT",
|
| 1531 |
"dependencies": {
|
| 1532 |
"function-bind": "^1.1.2"
|
|
|
|
| 1546 |
"url": "https://github.com/sponsors/wooorm"
|
| 1547 |
}
|
| 1548 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1549 |
"node_modules/is-binary-path": {
|
| 1550 |
"version": "2.1.0",
|
| 1551 |
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
| 1552 |
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
|
| 1553 |
+
"dev": true,
|
| 1554 |
"license": "MIT",
|
| 1555 |
"dependencies": {
|
| 1556 |
"binary-extensions": "^2.0.0"
|
|
|
|
| 1563 |
"version": "2.16.1",
|
| 1564 |
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
|
| 1565 |
"integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
|
| 1566 |
+
"dev": true,
|
| 1567 |
"license": "MIT",
|
| 1568 |
"dependencies": {
|
| 1569 |
"hasown": "^2.0.2"
|
|
|
|
| 1579 |
"version": "2.1.1",
|
| 1580 |
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
| 1581 |
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
|
| 1582 |
+
"dev": true,
|
| 1583 |
"license": "MIT",
|
| 1584 |
"engines": {
|
| 1585 |
"node": ">=0.10.0"
|
|
|
|
| 1589 |
"version": "3.0.0",
|
| 1590 |
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
|
| 1591 |
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
|
| 1592 |
+
"dev": true,
|
| 1593 |
"license": "MIT",
|
| 1594 |
"engines": {
|
| 1595 |
"node": ">=8"
|
|
|
|
| 1599 |
"version": "4.0.3",
|
| 1600 |
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
|
| 1601 |
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
|
| 1602 |
+
"dev": true,
|
| 1603 |
"license": "MIT",
|
| 1604 |
"dependencies": {
|
| 1605 |
"is-extglob": "^2.1.1"
|
|
|
|
| 1612 |
"version": "7.0.0",
|
| 1613 |
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
| 1614 |
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
| 1615 |
+
"dev": true,
|
| 1616 |
"license": "MIT",
|
| 1617 |
"engines": {
|
| 1618 |
"node": ">=0.12.0"
|
|
|
|
| 1631 |
"version": "2.0.0",
|
| 1632 |
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
| 1633 |
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
| 1634 |
+
"dev": true,
|
| 1635 |
"license": "ISC"
|
| 1636 |
},
|
| 1637 |
"node_modules/jackspeak": {
|
| 1638 |
"version": "3.4.3",
|
| 1639 |
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
|
| 1640 |
"integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
|
| 1641 |
+
"dev": true,
|
| 1642 |
"license": "BlueOak-1.0.0",
|
| 1643 |
"dependencies": {
|
| 1644 |
"@isaacs/cliui": "^8.0.2"
|
|
|
|
| 1654 |
"version": "1.21.7",
|
| 1655 |
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
|
| 1656 |
"integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
|
| 1657 |
+
"dev": true,
|
| 1658 |
"license": "MIT",
|
| 1659 |
"bin": {
|
| 1660 |
"jiti": "bin/jiti.js"
|
|
|
|
| 1673 |
"version": "3.1.3",
|
| 1674 |
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
|
| 1675 |
"integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
|
| 1676 |
+
"dev": true,
|
| 1677 |
"license": "MIT",
|
| 1678 |
"engines": {
|
| 1679 |
"node": ">=14"
|
|
|
|
| 1686 |
"version": "1.2.4",
|
| 1687 |
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
|
| 1688 |
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
|
| 1689 |
+
"dev": true,
|
| 1690 |
"license": "MIT"
|
| 1691 |
},
|
| 1692 |
"node_modules/locate-character": {
|
|
|
|
| 1699 |
"version": "10.4.3",
|
| 1700 |
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
|
| 1701 |
"integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
|
| 1702 |
+
"dev": true,
|
| 1703 |
"license": "ISC"
|
| 1704 |
},
|
| 1705 |
"node_modules/lucide-svelte": {
|
|
|
|
| 1730 |
"version": "1.4.1",
|
| 1731 |
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
|
| 1732 |
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
|
| 1733 |
+
"dev": true,
|
| 1734 |
"license": "MIT",
|
| 1735 |
"engines": {
|
| 1736 |
"node": ">= 8"
|
|
|
|
| 1740 |
"version": "4.0.8",
|
| 1741 |
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
|
| 1742 |
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
|
| 1743 |
+
"dev": true,
|
| 1744 |
"license": "MIT",
|
| 1745 |
"dependencies": {
|
| 1746 |
"braces": "^3.0.3",
|
|
|
|
| 1750 |
"node": ">=8.6"
|
| 1751 |
}
|
| 1752 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1753 |
"node_modules/minipass": {
|
| 1754 |
"version": "7.1.2",
|
| 1755 |
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
|
| 1756 |
"integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
|
| 1757 |
+
"dev": true,
|
| 1758 |
"license": "ISC",
|
| 1759 |
"engines": {
|
| 1760 |
"node": ">=16 || 14 >=14.17"
|
| 1761 |
}
|
| 1762 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1763 |
"node_modules/mri": {
|
| 1764 |
"version": "1.2.0",
|
| 1765 |
"resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
|
|
|
|
| 1788 |
"version": "2.7.0",
|
| 1789 |
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
|
| 1790 |
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
|
| 1791 |
+
"dev": true,
|
| 1792 |
"license": "MIT",
|
| 1793 |
"dependencies": {
|
| 1794 |
"any-promise": "^1.0.0",
|
|
|
|
| 1796 |
"thenify-all": "^1.0.0"
|
| 1797 |
}
|
| 1798 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1799 |
"node_modules/node-releases": {
|
| 1800 |
"version": "2.0.25",
|
| 1801 |
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.25.tgz",
|
|
|
|
| 1807 |
"version": "3.0.0",
|
| 1808 |
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
| 1809 |
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
|
| 1810 |
+
"dev": true,
|
| 1811 |
"license": "MIT",
|
| 1812 |
"engines": {
|
| 1813 |
"node": ">=0.10.0"
|
|
|
|
| 1827 |
"version": "4.1.1",
|
| 1828 |
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
| 1829 |
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
|
| 1830 |
+
"dev": true,
|
| 1831 |
"license": "MIT",
|
| 1832 |
"engines": {
|
| 1833 |
"node": ">=0.10.0"
|
|
|
|
| 1837 |
"version": "3.0.0",
|
| 1838 |
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
|
| 1839 |
"integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
|
| 1840 |
+
"dev": true,
|
| 1841 |
"license": "MIT",
|
| 1842 |
"engines": {
|
| 1843 |
"node": ">= 6"
|
| 1844 |
}
|
| 1845 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1846 |
"node_modules/package-json-from-dist": {
|
| 1847 |
"version": "1.0.1",
|
| 1848 |
"resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
|
| 1849 |
"integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1850 |
"dev": true,
|
| 1851 |
+
"license": "BlueOak-1.0.0"
|
|
|
|
|
|
|
|
|
|
| 1852 |
},
|
| 1853 |
"node_modules/path-key": {
|
| 1854 |
"version": "3.1.1",
|
| 1855 |
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
|
| 1856 |
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
|
| 1857 |
+
"dev": true,
|
| 1858 |
"license": "MIT",
|
| 1859 |
"engines": {
|
| 1860 |
"node": ">=8"
|
|
|
|
| 1864 |
"version": "1.0.7",
|
| 1865 |
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
| 1866 |
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
| 1867 |
+
"dev": true,
|
| 1868 |
"license": "MIT"
|
| 1869 |
},
|
| 1870 |
"node_modules/path-scurry": {
|
| 1871 |
"version": "1.11.1",
|
| 1872 |
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
|
| 1873 |
"integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
|
| 1874 |
+
"dev": true,
|
| 1875 |
"license": "BlueOak-1.0.0",
|
| 1876 |
"dependencies": {
|
| 1877 |
"lru-cache": "^10.2.0",
|
|
|
|
| 1905 |
"version": "2.3.1",
|
| 1906 |
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
| 1907 |
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
|
| 1908 |
+
"dev": true,
|
| 1909 |
"license": "MIT",
|
| 1910 |
"engines": {
|
| 1911 |
"node": ">=8.6"
|
|
|
|
| 1918 |
"version": "2.3.0",
|
| 1919 |
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
|
| 1920 |
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
|
| 1921 |
+
"dev": true,
|
| 1922 |
"license": "MIT",
|
| 1923 |
"engines": {
|
| 1924 |
"node": ">=0.10.0"
|
|
|
|
| 1928 |
"version": "4.0.7",
|
| 1929 |
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
|
| 1930 |
"integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
|
| 1931 |
+
"dev": true,
|
| 1932 |
"license": "MIT",
|
| 1933 |
"engines": {
|
| 1934 |
"node": ">= 6"
|
|
|
|
| 1966 |
"version": "15.1.0",
|
| 1967 |
"resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
|
| 1968 |
"integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
|
| 1969 |
+
"dev": true,
|
| 1970 |
"license": "MIT",
|
| 1971 |
"dependencies": {
|
| 1972 |
"postcss-value-parser": "^4.0.0",
|
|
|
|
| 1984 |
"version": "4.1.0",
|
| 1985 |
"resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz",
|
| 1986 |
"integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==",
|
| 1987 |
+
"dev": true,
|
| 1988 |
"funding": [
|
| 1989 |
{
|
| 1990 |
"type": "opencollective",
|
|
|
|
| 2010 |
"version": "5.1.0",
|
| 2011 |
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz",
|
| 2012 |
"integrity": "sha512-G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA==",
|
| 2013 |
+
"dev": true,
|
| 2014 |
"funding": [
|
| 2015 |
{
|
| 2016 |
"type": "opencollective",
|
|
|
|
| 2050 |
"version": "6.2.0",
|
| 2051 |
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
|
| 2052 |
"integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
|
| 2053 |
+
"dev": true,
|
| 2054 |
"funding": [
|
| 2055 |
{
|
| 2056 |
"type": "opencollective",
|
|
|
|
| 2076 |
"version": "6.1.2",
|
| 2077 |
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
|
| 2078 |
"integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
|
| 2079 |
+
"dev": true,
|
| 2080 |
"license": "MIT",
|
| 2081 |
"dependencies": {
|
| 2082 |
"cssesc": "^3.0.0",
|
|
|
|
| 2090 |
"version": "4.2.0",
|
| 2091 |
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
|
| 2092 |
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
|
| 2093 |
+
"dev": true,
|
| 2094 |
"license": "MIT"
|
| 2095 |
},
|
| 2096 |
"node_modules/postcss/node_modules/nanoid": {
|
|
|
|
| 2111 |
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
| 2112 |
}
|
| 2113 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2114 |
"node_modules/queue-microtask": {
|
| 2115 |
"version": "1.2.3",
|
| 2116 |
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
|
| 2117 |
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
|
| 2118 |
+
"dev": true,
|
| 2119 |
"funding": [
|
| 2120 |
{
|
| 2121 |
"type": "github",
|
|
|
|
| 2136 |
"version": "1.0.0",
|
| 2137 |
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
| 2138 |
"integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
|
| 2139 |
+
"dev": true,
|
| 2140 |
"license": "MIT",
|
| 2141 |
"dependencies": {
|
| 2142 |
"pify": "^2.3.0"
|
|
|
|
| 2146 |
"version": "3.6.0",
|
| 2147 |
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
|
| 2148 |
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
|
| 2149 |
+
"dev": true,
|
| 2150 |
"license": "MIT",
|
| 2151 |
"dependencies": {
|
| 2152 |
"picomatch": "^2.2.1"
|
|
|
|
| 2159 |
"version": "1.22.10",
|
| 2160 |
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
|
| 2161 |
"integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
|
| 2162 |
+
"dev": true,
|
| 2163 |
"license": "MIT",
|
| 2164 |
"dependencies": {
|
| 2165 |
"is-core-module": "^2.16.0",
|
|
|
|
| 2180 |
"version": "1.1.0",
|
| 2181 |
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
|
| 2182 |
"integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
|
| 2183 |
+
"dev": true,
|
| 2184 |
"license": "MIT",
|
| 2185 |
"engines": {
|
| 2186 |
"iojs": ">=1.0.0",
|
| 2187 |
"node": ">=0.10.0"
|
| 2188 |
}
|
| 2189 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2190 |
"node_modules/rollup": {
|
| 2191 |
"version": "4.52.4",
|
| 2192 |
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.4.tgz",
|
|
|
|
| 2232 |
"version": "1.2.0",
|
| 2233 |
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
|
| 2234 |
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
|
| 2235 |
+
"dev": true,
|
| 2236 |
"funding": [
|
| 2237 |
{
|
| 2238 |
"type": "github",
|
|
|
|
| 2264 |
"node": ">=6"
|
| 2265 |
}
|
| 2266 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2267 |
"node_modules/set-cookie-parser": {
|
| 2268 |
"version": "2.7.1",
|
| 2269 |
"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz",
|
|
|
|
| 2274 |
"version": "2.0.0",
|
| 2275 |
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
| 2276 |
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
|
| 2277 |
+
"dev": true,
|
| 2278 |
"license": "MIT",
|
| 2279 |
"dependencies": {
|
| 2280 |
"shebang-regex": "^3.0.0"
|
|
|
|
| 2287 |
"version": "3.0.0",
|
| 2288 |
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
|
| 2289 |
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
|
| 2290 |
+
"dev": true,
|
| 2291 |
"license": "MIT",
|
| 2292 |
"engines": {
|
| 2293 |
"node": ">=8"
|
|
|
|
| 2297 |
"version": "4.1.0",
|
| 2298 |
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
|
| 2299 |
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
|
| 2300 |
+
"dev": true,
|
| 2301 |
"license": "ISC",
|
| 2302 |
"engines": {
|
| 2303 |
"node": ">=14"
|
|
|
|
| 2320 |
"node": ">=18"
|
| 2321 |
}
|
| 2322 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2323 |
"node_modules/source-map-js": {
|
| 2324 |
"version": "1.2.1",
|
| 2325 |
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
|
|
|
|
| 2333 |
"version": "5.1.2",
|
| 2334 |
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
|
| 2335 |
"integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
|
| 2336 |
+
"dev": true,
|
| 2337 |
"license": "MIT",
|
| 2338 |
"dependencies": {
|
| 2339 |
"eastasianwidth": "^0.2.0",
|
|
|
|
| 2352 |
"version": "4.2.3",
|
| 2353 |
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
| 2354 |
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
| 2355 |
+
"dev": true,
|
| 2356 |
"license": "MIT",
|
| 2357 |
"dependencies": {
|
| 2358 |
"emoji-regex": "^8.0.0",
|
|
|
|
| 2367 |
"version": "5.0.1",
|
| 2368 |
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
| 2369 |
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
| 2370 |
+
"dev": true,
|
| 2371 |
"license": "MIT",
|
| 2372 |
"engines": {
|
| 2373 |
"node": ">=8"
|
|
|
|
| 2377 |
"version": "8.0.0",
|
| 2378 |
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
| 2379 |
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
| 2380 |
+
"dev": true,
|
| 2381 |
"license": "MIT"
|
| 2382 |
},
|
| 2383 |
"node_modules/string-width-cjs/node_modules/strip-ansi": {
|
| 2384 |
"version": "6.0.1",
|
| 2385 |
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
| 2386 |
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
| 2387 |
+
"dev": true,
|
| 2388 |
"license": "MIT",
|
| 2389 |
"dependencies": {
|
| 2390 |
"ansi-regex": "^5.0.1"
|
|
|
|
| 2397 |
"version": "7.1.2",
|
| 2398 |
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
|
| 2399 |
"integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
|
| 2400 |
+
"dev": true,
|
| 2401 |
"license": "MIT",
|
| 2402 |
"dependencies": {
|
| 2403 |
"ansi-regex": "^6.0.1"
|
|
|
|
| 2414 |
"version": "6.0.1",
|
| 2415 |
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
| 2416 |
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
| 2417 |
+
"dev": true,
|
| 2418 |
"license": "MIT",
|
| 2419 |
"dependencies": {
|
| 2420 |
"ansi-regex": "^5.0.1"
|
|
|
|
| 2427 |
"version": "5.0.1",
|
| 2428 |
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
| 2429 |
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2430 |
"dev": true,
|
| 2431 |
"license": "MIT",
|
|
|
|
|
|
|
|
|
|
| 2432 |
"engines": {
|
| 2433 |
"node": ">=8"
|
| 2434 |
}
|
|
|
|
| 2437 |
"version": "3.35.0",
|
| 2438 |
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
|
| 2439 |
"integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
|
| 2440 |
+
"dev": true,
|
| 2441 |
"license": "MIT",
|
| 2442 |
"dependencies": {
|
| 2443 |
"@jridgewell/gen-mapping": "^0.3.2",
|
|
|
|
| 2460 |
"version": "2.0.2",
|
| 2461 |
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
| 2462 |
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
| 2463 |
+
"dev": true,
|
| 2464 |
"license": "MIT",
|
| 2465 |
"dependencies": {
|
| 2466 |
"balanced-match": "^1.0.0"
|
|
|
|
| 2470 |
"version": "10.4.5",
|
| 2471 |
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
|
| 2472 |
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
|
| 2473 |
+
"dev": true,
|
| 2474 |
"license": "ISC",
|
| 2475 |
"dependencies": {
|
| 2476 |
"foreground-child": "^3.1.0",
|
|
|
|
| 2491 |
"version": "9.0.5",
|
| 2492 |
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
|
| 2493 |
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
|
| 2494 |
+
"dev": true,
|
| 2495 |
"license": "ISC",
|
| 2496 |
"dependencies": {
|
| 2497 |
"brace-expansion": "^2.0.1"
|
|
|
|
| 2507 |
"version": "1.0.0",
|
| 2508 |
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
|
| 2509 |
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
|
| 2510 |
+
"dev": true,
|
| 2511 |
"license": "MIT",
|
| 2512 |
"engines": {
|
| 2513 |
"node": ">= 0.4"
|
|
|
|
| 2541 |
"node": ">=16"
|
| 2542 |
}
|
| 2543 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2544 |
"node_modules/svelte-hmr": {
|
| 2545 |
"version": "0.16.0",
|
| 2546 |
"resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.16.0.tgz",
|
|
|
|
| 2553 |
"svelte": "^3.19.0 || ^4.0.0"
|
| 2554 |
}
|
| 2555 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2556 |
"node_modules/tailwindcss": {
|
| 2557 |
"version": "3.4.18",
|
| 2558 |
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.18.tgz",
|
| 2559 |
"integrity": "sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ==",
|
| 2560 |
+
"dev": true,
|
| 2561 |
"license": "MIT",
|
| 2562 |
"dependencies": {
|
| 2563 |
"@alloc/quick-lru": "^5.2.0",
|
|
|
|
| 2595 |
"version": "6.0.2",
|
| 2596 |
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
|
| 2597 |
"integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
|
| 2598 |
+
"dev": true,
|
| 2599 |
"license": "ISC",
|
| 2600 |
"dependencies": {
|
| 2601 |
"is-glob": "^4.0.3"
|
|
|
|
| 2608 |
"version": "3.3.1",
|
| 2609 |
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
|
| 2610 |
"integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
|
| 2611 |
+
"dev": true,
|
| 2612 |
"license": "MIT",
|
| 2613 |
"dependencies": {
|
| 2614 |
"any-promise": "^1.0.0"
|
|
|
|
| 2618 |
"version": "1.6.0",
|
| 2619 |
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
|
| 2620 |
"integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
|
| 2621 |
+
"dev": true,
|
| 2622 |
"license": "MIT",
|
| 2623 |
"dependencies": {
|
| 2624 |
"thenify": ">= 3.1.0 < 4"
|
|
|
|
| 2631 |
"version": "5.0.1",
|
| 2632 |
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
| 2633 |
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
| 2634 |
+
"dev": true,
|
| 2635 |
"license": "MIT",
|
| 2636 |
"dependencies": {
|
| 2637 |
"is-number": "^7.0.0"
|
|
|
|
| 2653 |
"version": "0.1.13",
|
| 2654 |
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
|
| 2655 |
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2656 |
"dev": true,
|
| 2657 |
+
"license": "Apache-2.0"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2658 |
},
|
| 2659 |
"node_modules/update-browserslist-db": {
|
| 2660 |
"version": "1.1.3",
|
|
|
|
| 2691 |
"version": "1.0.2",
|
| 2692 |
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
| 2693 |
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
|
| 2694 |
+
"dev": true,
|
| 2695 |
"license": "MIT"
|
| 2696 |
},
|
| 2697 |
"node_modules/vite": {
|
|
|
|
| 2767 |
}
|
| 2768 |
}
|
| 2769 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2770 |
"node_modules/which": {
|
| 2771 |
"version": "2.0.2",
|
| 2772 |
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
| 2773 |
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
| 2774 |
+
"dev": true,
|
| 2775 |
"license": "ISC",
|
| 2776 |
"dependencies": {
|
| 2777 |
"isexe": "^2.0.0"
|
|
|
|
| 2787 |
"version": "8.1.0",
|
| 2788 |
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
|
| 2789 |
"integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
|
| 2790 |
+
"dev": true,
|
| 2791 |
"license": "MIT",
|
| 2792 |
"dependencies": {
|
| 2793 |
"ansi-styles": "^6.1.0",
|
|
|
|
| 2806 |
"version": "7.0.0",
|
| 2807 |
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
| 2808 |
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
| 2809 |
+
"dev": true,
|
| 2810 |
"license": "MIT",
|
| 2811 |
"dependencies": {
|
| 2812 |
"ansi-styles": "^4.0.0",
|
|
|
|
| 2824 |
"version": "5.0.1",
|
| 2825 |
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
| 2826 |
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
| 2827 |
+
"dev": true,
|
| 2828 |
"license": "MIT",
|
| 2829 |
"engines": {
|
| 2830 |
"node": ">=8"
|
|
|
|
| 2834 |
"version": "4.3.0",
|
| 2835 |
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
| 2836 |
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
| 2837 |
+
"dev": true,
|
| 2838 |
"license": "MIT",
|
| 2839 |
"dependencies": {
|
| 2840 |
"color-convert": "^2.0.1"
|
|
|
|
| 2850 |
"version": "8.0.0",
|
| 2851 |
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
| 2852 |
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
| 2853 |
+
"dev": true,
|
| 2854 |
"license": "MIT"
|
| 2855 |
},
|
| 2856 |
"node_modules/wrap-ansi-cjs/node_modules/string-width": {
|
| 2857 |
"version": "4.2.3",
|
| 2858 |
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
| 2859 |
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
| 2860 |
+
"dev": true,
|
| 2861 |
"license": "MIT",
|
| 2862 |
"dependencies": {
|
| 2863 |
"emoji-regex": "^8.0.0",
|
|
|
|
| 2872 |
"version": "6.0.1",
|
| 2873 |
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
| 2874 |
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
| 2875 |
+
"dev": true,
|
| 2876 |
"license": "MIT",
|
| 2877 |
"dependencies": {
|
| 2878 |
"ansi-regex": "^5.0.1"
|
|
|
|
| 2881 |
"node": ">=8"
|
| 2882 |
}
|
| 2883 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2884 |
"node_modules/yaml": {
|
| 2885 |
"version": "2.8.1",
|
| 2886 |
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
|
| 2887 |
"integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
|
| 2888 |
+
"dev": true,
|
| 2889 |
"license": "ISC",
|
| 2890 |
"bin": {
|
| 2891 |
"yaml": "bin.mjs"
|
frontend/package.json
CHANGED
|
@@ -5,9 +5,7 @@
|
|
| 5 |
"scripts": {
|
| 6 |
"dev": "vite dev",
|
| 7 |
"build": "vite build",
|
| 8 |
-
"preview": "vite preview"
|
| 9 |
-
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
| 10 |
-
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
|
| 11 |
},
|
| 12 |
"devDependencies": {
|
| 13 |
"@sveltejs/adapter-auto": "^3.0.0",
|
|
@@ -16,23 +14,12 @@
|
|
| 16 |
"autoprefixer": "^10.4.16",
|
| 17 |
"postcss": "^8.4.32",
|
| 18 |
"svelte": "^4.2.7",
|
| 19 |
-
"svelte-check": "^3.6.0",
|
| 20 |
"tailwindcss": "^3.3.0",
|
| 21 |
-
"typescript": "^5.0.0",
|
| 22 |
"vite": "^5.0.3"
|
| 23 |
},
|
| 24 |
"type": "module",
|
| 25 |
"dependencies": {
|
| 26 |
-
"@fortawesome/free-solid-svg-icons": "^6.5.1",
|
| 27 |
"@sveltejs/adapter-static": "^3.0.10",
|
| 28 |
-
"
|
| 29 |
-
"clsx": "^2.0.0",
|
| 30 |
-
"lucide-svelte": "^0.303.0",
|
| 31 |
-
"mode-watcher": "^0.2.0",
|
| 32 |
-
"prismjs": "^1.30.0",
|
| 33 |
-
"svelte-sonner": "^0.3.19",
|
| 34 |
-
"tailwind-merge": "^2.2.0",
|
| 35 |
-
"tailwind-variants": "^0.1.19",
|
| 36 |
-
"wavesurfer.js": "^7.6.0"
|
| 37 |
}
|
| 38 |
}
|
|
|
|
| 5 |
"scripts": {
|
| 6 |
"dev": "vite dev",
|
| 7 |
"build": "vite build",
|
| 8 |
+
"preview": "vite preview"
|
|
|
|
|
|
|
| 9 |
},
|
| 10 |
"devDependencies": {
|
| 11 |
"@sveltejs/adapter-auto": "^3.0.0",
|
|
|
|
| 14 |
"autoprefixer": "^10.4.16",
|
| 15 |
"postcss": "^8.4.32",
|
| 16 |
"svelte": "^4.2.7",
|
|
|
|
| 17 |
"tailwindcss": "^3.3.0",
|
|
|
|
| 18 |
"vite": "^5.0.3"
|
| 19 |
},
|
| 20 |
"type": "module",
|
| 21 |
"dependencies": {
|
|
|
|
| 22 |
"@sveltejs/adapter-static": "^3.0.10",
|
| 23 |
+
"lucide-svelte": "^0.303.0"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
}
|
| 25 |
}
|
frontend/src/app.css
CHANGED
|
@@ -1,59 +1,6 @@
|
|
| 1 |
@tailwind base;
|
| 2 |
@tailwind components;
|
| 3 |
@tailwind utilities;
|
| 4 |
-
|
| 5 |
-
@layer base {
|
| 6 |
-
:root {
|
| 7 |
-
--background: 0 0% 100%;
|
| 8 |
-
--foreground: 240 10% 3.9%;
|
| 9 |
-
--card: 0 0% 100%;
|
| 10 |
-
--card-foreground: 240 10% 3.9%;
|
| 11 |
-
--popover: 0 0% 100%;
|
| 12 |
-
--popover-foreground: 240 10% 3.9%;
|
| 13 |
-
--primary: 240 5.9% 10%;
|
| 14 |
-
--primary-foreground: 0 0% 98%;
|
| 15 |
-
--secondary: 240 4.8% 95.9%;
|
| 16 |
-
--secondary-foreground: 240 5.9% 10%;
|
| 17 |
-
--muted: 240 4.8% 95.9%;
|
| 18 |
-
--muted-foreground: 240 3.8% 46.1%;
|
| 19 |
-
--accent: 240 4.8% 95.9%;
|
| 20 |
-
--accent-foreground: 240 5.9% 10%;
|
| 21 |
-
--destructive: 0 84.2% 60.2%;
|
| 22 |
-
--destructive-foreground: 0 0% 98%;
|
| 23 |
-
--border: 240 5.9% 90%;
|
| 24 |
-
--input: 240 5.9% 90%;
|
| 25 |
-
--ring: 240 5.9% 10%;
|
| 26 |
-
--radius: 0.5rem;
|
| 27 |
-
}
|
| 28 |
-
|
| 29 |
-
.dark {
|
| 30 |
-
--background: 240 10% 3.9%;
|
| 31 |
-
--foreground: 0 0% 98%;
|
| 32 |
-
--card: 240 10% 3.9%;
|
| 33 |
-
--card-foreground: 0 0% 98%;
|
| 34 |
-
--popover: 240 10% 3.9%;
|
| 35 |
-
--popover-foreground: 0 0% 98%;
|
| 36 |
-
--primary: 0 0% 98%;
|
| 37 |
-
--primary-foreground: 240 5.9% 10%;
|
| 38 |
-
--secondary: 240 3.7% 15.9%;
|
| 39 |
-
--secondary-foreground: 0 0% 98%;
|
| 40 |
-
--muted: 240 3.7% 15.9%;
|
| 41 |
-
--muted-foreground: 240 5% 64.9%;
|
| 42 |
-
--accent: 240 3.7% 15.9%;
|
| 43 |
-
--accent-foreground: 0 0% 98%;
|
| 44 |
-
--destructive: 0 62.8% 30.6%;
|
| 45 |
-
--destructive-foreground: 0 0% 98%;
|
| 46 |
-
--border: 240 3.7% 15.9%;
|
| 47 |
-
--input: 240 3.7% 15.9%;
|
| 48 |
-
--ring: 240 4.9% 83.9%;
|
| 49 |
-
}
|
| 50 |
-
}
|
| 51 |
-
|
| 52 |
-
body {
|
| 53 |
-
@apply bg-background text-foreground;
|
| 54 |
-
}
|
| 55 |
-
|
| 56 |
-
/* Custom slider styles with HF brand colors */
|
| 57 |
.slider-hf::-webkit-slider-thumb {
|
| 58 |
@apply appearance-none w-4 h-4 rounded-full cursor-pointer;
|
| 59 |
background: linear-gradient(45deg, #FFD21E, #FF9D00);
|
|
|
|
| 1 |
@tailwind base;
|
| 2 |
@tailwind components;
|
| 3 |
@tailwind utilities;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
.slider-hf::-webkit-slider-thumb {
|
| 5 |
@apply appearance-none w-4 h-4 rounded-full cursor-pointer;
|
| 6 |
background: linear-gradient(45deg, #FFD21E, #FF9D00);
|
frontend/src/app.html
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
<html lang="en">
|
| 3 |
<head>
|
| 4 |
<meta charset="utf-8" />
|
| 5 |
-
<link rel="icon" href="/assets/hf-logo.png" />
|
| 6 |
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
| 7 |
<title>HFStudio - Text to Speech</title>
|
| 8 |
%sveltekit.head%
|
|
|
|
| 2 |
<html lang="en">
|
| 3 |
<head>
|
| 4 |
<meta charset="utf-8" />
|
| 5 |
+
<link rel="icon" href="/assets/hf-studio-logo.png" />
|
| 6 |
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
| 7 |
<title>HFStudio - Text to Speech</title>
|
| 8 |
%sveltekit.head%
|
frontend/src/routes/+layout.svelte
CHANGED
|
@@ -15,9 +15,6 @@
|
|
| 15 |
let showSignInPopover = false;
|
| 16 |
|
| 17 |
onMount(() => {
|
| 18 |
-
console.log('onMount called - starting auth check');
|
| 19 |
-
|
| 20 |
-
// Listen for sign in popover requests from child components
|
| 21 |
window.addEventListener('show-signin-popover', () => {
|
| 22 |
showSignInPopover = true;
|
| 23 |
setTimeout(() => {
|
|
@@ -25,24 +22,17 @@
|
|
| 25 |
}, 4000);
|
| 26 |
});
|
| 27 |
|
| 28 |
-
// First check if we can use local token (for local development)
|
| 29 |
-
// This should happen before checking localStorage to prioritize local tokens
|
| 30 |
checkLocalTokenAvailability();
|
| 31 |
-
|
| 32 |
-
// Then check if user is logged in (from localStorage)
|
| 33 |
checkLoginStatus();
|
| 34 |
|
| 35 |
-
// Re-check login status when page becomes visible (e.g., after OAuth redirect)
|
| 36 |
document.addEventListener('visibilitychange', () => {
|
| 37 |
if (!document.hidden) {
|
| 38 |
checkLoginStatus();
|
| 39 |
}
|
| 40 |
});
|
| 41 |
|
| 42 |
-
// Listen for storage changes (e.g., when token is set from OAuth callback)
|
| 43 |
window.addEventListener('storage', checkLoginStatus);
|
| 44 |
|
| 45 |
-
// Also check periodically to catch cases where localStorage changes in same tab
|
| 46 |
const interval = setInterval(checkLoginStatus, 1000);
|
| 47 |
|
| 48 |
return () => {
|
|
@@ -53,48 +43,33 @@
|
|
| 53 |
|
| 54 |
async function checkLocalTokenAvailability() {
|
| 55 |
try {
|
| 56 |
-
console.log('Checking local token availability...');
|
| 57 |
const response = await fetch('/api/auth/local-token');
|
| 58 |
const data = await response.json();
|
| 59 |
-
console.log('Local token response:', data);
|
| 60 |
|
| 61 |
if (data.available) {
|
| 62 |
isLocalEnvironment = true;
|
| 63 |
-
// Always use the local token if available (it's more reliable than localStorage)
|
| 64 |
localStorage.setItem('hf_access_token', data.token);
|
| 65 |
-
console.log('Set local token in localStorage');
|
| 66 |
|
| 67 |
-
// If we have user info from the API, use it directly
|
| 68 |
if (data.user_info && data.user_info.name !== "Local User") {
|
| 69 |
isLoggedIn = true;
|
| 70 |
username = data.user_info.name.split(' ')[0];
|
| 71 |
-
console.log('Logged in with user info:', username);
|
| 72 |
} else {
|
| 73 |
-
// For local tokens, even if we can't validate due to rate limiting,
|
| 74 |
-
// we should still consider the user logged in
|
| 75 |
isLoggedIn = true;
|
| 76 |
username = "Local User";
|
| 77 |
-
console.log('Logged in with local token (validation skipped due to rate limiting)');
|
| 78 |
-
console.log('isLoggedIn set to:', isLoggedIn, 'username set to:', username);
|
| 79 |
}
|
| 80 |
} else {
|
| 81 |
isLocalEnvironment = false;
|
| 82 |
-
console.log('No local token available');
|
| 83 |
}
|
| 84 |
} catch (error) {
|
| 85 |
-
console.log('Could not check local token availability:', error);
|
| 86 |
isLocalEnvironment = false;
|
| 87 |
} finally {
|
| 88 |
isCheckingAuth = false;
|
| 89 |
-
console.log('Finished checking auth, isLoggedIn:', isLoggedIn);
|
| 90 |
}
|
| 91 |
}
|
| 92 |
|
| 93 |
function checkLoginStatus() {
|
| 94 |
const token = localStorage.getItem('hf_access_token');
|
| 95 |
if (token && !isLoggedIn) {
|
| 96 |
-
// Only fetch user info if we're not already logged in
|
| 97 |
-
// (to avoid overriding the local token login state)
|
| 98 |
fetchUserInfo(token);
|
| 99 |
} else if (!token) {
|
| 100 |
isLoggedIn = false;
|
|
@@ -104,8 +79,6 @@
|
|
| 104 |
|
| 105 |
async function fetchUserInfo(token) {
|
| 106 |
try {
|
| 107 |
-
console.log('Fetching user info for token:', token.substring(0, 10) + '...');
|
| 108 |
-
// Validate token using the correct whoami-v2 endpoint
|
| 109 |
const response = await fetch('https://huggingface.co/api/whoami-v2', {
|
| 110 |
headers: {
|
| 111 |
'Authorization': `Bearer ${token}`
|
|
@@ -117,34 +90,26 @@
|
|
| 117 |
isLoggedIn = true;
|
| 118 |
const fullName = userData.name || userData.fullname || userData.login || userData.username || 'User';
|
| 119 |
username = fullName.split(' ')[0];
|
| 120 |
-
console.log('Successfully fetched user info:', username);
|
| 121 |
} else {
|
| 122 |
-
// Token might be invalid, remove it
|
| 123 |
localStorage.removeItem('hf_access_token');
|
| 124 |
isLoggedIn = false;
|
| 125 |
username = '';
|
| 126 |
-
console.log('Token validation failed:', response.status);
|
| 127 |
}
|
| 128 |
} catch (error) {
|
| 129 |
-
// Token might be invalid, remove it
|
| 130 |
localStorage.removeItem('hf_access_token');
|
| 131 |
isLoggedIn = false;
|
| 132 |
username = '';
|
| 133 |
-
console.log('Error fetching user info:', error);
|
| 134 |
}
|
| 135 |
}
|
| 136 |
|
| 137 |
async function handleAuthAction() {
|
| 138 |
if (isLoggedIn) {
|
| 139 |
-
// Logout
|
| 140 |
localStorage.removeItem('hf_access_token');
|
| 141 |
sessionStorage.removeItem('oauth_state');
|
| 142 |
isLoggedIn = false;
|
| 143 |
username = '';
|
| 144 |
} else {
|
| 145 |
-
// If we're on Spaces, redirect to OAuth
|
| 146 |
if (window.location.hostname.includes('hf.space') || window.location.hostname.includes('huggingface.co')) {
|
| 147 |
-
// On Spaces, we need to get the OAuth client ID from the backend
|
| 148 |
try {
|
| 149 |
const response = await fetch('/api/auth/oauth-config');
|
| 150 |
const config = await response.json();
|
|
@@ -152,14 +117,11 @@
|
|
| 152 |
const oauthUrl = `https://huggingface.co/oauth/authorize?client_id=${config.client_id}&redirect_uri=${encodeURIComponent(window.location.origin + '/auth/callback')}&scope=${encodeURIComponent(scopes)}&response_type=code&state=${Date.now()}`;
|
| 153 |
window.location.href = oauthUrl;
|
| 154 |
} catch (error) {
|
| 155 |
-
console.error('Failed to get OAuth config:', error);
|
| 156 |
-
// Fallback to manual token input
|
| 157 |
showTokenInput = true;
|
| 158 |
tokenInput = '';
|
| 159 |
tokenError = '';
|
| 160 |
}
|
| 161 |
} else {
|
| 162 |
-
// Local development fallback: show token input
|
| 163 |
showTokenInput = true;
|
| 164 |
tokenInput = '';
|
| 165 |
tokenError = '';
|
|
@@ -185,7 +147,6 @@
|
|
| 185 |
}
|
| 186 |
|
| 187 |
try {
|
| 188 |
-
// Validate token using the correct whoami-v2 endpoint
|
| 189 |
const response = await fetch('https://huggingface.co/api/whoami-v2', {
|
| 190 |
headers: {
|
| 191 |
'Authorization': `Bearer ${tokenInput.trim()}`
|
|
@@ -200,12 +161,9 @@
|
|
| 200 |
username = fullName.split(' ')[0];
|
| 201 |
closeTokenInput();
|
| 202 |
} else {
|
| 203 |
-
const errorText = await response.text();
|
| 204 |
-
console.log('Token validation error:', response.status, errorText);
|
| 205 |
tokenError = `Invalid token (${response.status}). Please check your token and try again.`;
|
| 206 |
}
|
| 207 |
} catch (error) {
|
| 208 |
-
console.error('Token validation error:', error);
|
| 209 |
tokenError = 'Error validating token. Please try again.';
|
| 210 |
}
|
| 211 |
}
|
|
|
|
| 15 |
let showSignInPopover = false;
|
| 16 |
|
| 17 |
onMount(() => {
|
|
|
|
|
|
|
|
|
|
| 18 |
window.addEventListener('show-signin-popover', () => {
|
| 19 |
showSignInPopover = true;
|
| 20 |
setTimeout(() => {
|
|
|
|
| 22 |
}, 4000);
|
| 23 |
});
|
| 24 |
|
|
|
|
|
|
|
| 25 |
checkLocalTokenAvailability();
|
|
|
|
|
|
|
| 26 |
checkLoginStatus();
|
| 27 |
|
|
|
|
| 28 |
document.addEventListener('visibilitychange', () => {
|
| 29 |
if (!document.hidden) {
|
| 30 |
checkLoginStatus();
|
| 31 |
}
|
| 32 |
});
|
| 33 |
|
|
|
|
| 34 |
window.addEventListener('storage', checkLoginStatus);
|
| 35 |
|
|
|
|
| 36 |
const interval = setInterval(checkLoginStatus, 1000);
|
| 37 |
|
| 38 |
return () => {
|
|
|
|
| 43 |
|
| 44 |
async function checkLocalTokenAvailability() {
|
| 45 |
try {
|
|
|
|
| 46 |
const response = await fetch('/api/auth/local-token');
|
| 47 |
const data = await response.json();
|
|
|
|
| 48 |
|
| 49 |
if (data.available) {
|
| 50 |
isLocalEnvironment = true;
|
|
|
|
| 51 |
localStorage.setItem('hf_access_token', data.token);
|
|
|
|
| 52 |
|
|
|
|
| 53 |
if (data.user_info && data.user_info.name !== "Local User") {
|
| 54 |
isLoggedIn = true;
|
| 55 |
username = data.user_info.name.split(' ')[0];
|
|
|
|
| 56 |
} else {
|
|
|
|
|
|
|
| 57 |
isLoggedIn = true;
|
| 58 |
username = "Local User";
|
|
|
|
|
|
|
| 59 |
}
|
| 60 |
} else {
|
| 61 |
isLocalEnvironment = false;
|
|
|
|
| 62 |
}
|
| 63 |
} catch (error) {
|
|
|
|
| 64 |
isLocalEnvironment = false;
|
| 65 |
} finally {
|
| 66 |
isCheckingAuth = false;
|
|
|
|
| 67 |
}
|
| 68 |
}
|
| 69 |
|
| 70 |
function checkLoginStatus() {
|
| 71 |
const token = localStorage.getItem('hf_access_token');
|
| 72 |
if (token && !isLoggedIn) {
|
|
|
|
|
|
|
| 73 |
fetchUserInfo(token);
|
| 74 |
} else if (!token) {
|
| 75 |
isLoggedIn = false;
|
|
|
|
| 79 |
|
| 80 |
async function fetchUserInfo(token) {
|
| 81 |
try {
|
|
|
|
|
|
|
| 82 |
const response = await fetch('https://huggingface.co/api/whoami-v2', {
|
| 83 |
headers: {
|
| 84 |
'Authorization': `Bearer ${token}`
|
|
|
|
| 90 |
isLoggedIn = true;
|
| 91 |
const fullName = userData.name || userData.fullname || userData.login || userData.username || 'User';
|
| 92 |
username = fullName.split(' ')[0];
|
|
|
|
| 93 |
} else {
|
|
|
|
| 94 |
localStorage.removeItem('hf_access_token');
|
| 95 |
isLoggedIn = false;
|
| 96 |
username = '';
|
|
|
|
| 97 |
}
|
| 98 |
} catch (error) {
|
|
|
|
| 99 |
localStorage.removeItem('hf_access_token');
|
| 100 |
isLoggedIn = false;
|
| 101 |
username = '';
|
|
|
|
| 102 |
}
|
| 103 |
}
|
| 104 |
|
| 105 |
async function handleAuthAction() {
|
| 106 |
if (isLoggedIn) {
|
|
|
|
| 107 |
localStorage.removeItem('hf_access_token');
|
| 108 |
sessionStorage.removeItem('oauth_state');
|
| 109 |
isLoggedIn = false;
|
| 110 |
username = '';
|
| 111 |
} else {
|
|
|
|
| 112 |
if (window.location.hostname.includes('hf.space') || window.location.hostname.includes('huggingface.co')) {
|
|
|
|
| 113 |
try {
|
| 114 |
const response = await fetch('/api/auth/oauth-config');
|
| 115 |
const config = await response.json();
|
|
|
|
| 117 |
const oauthUrl = `https://huggingface.co/oauth/authorize?client_id=${config.client_id}&redirect_uri=${encodeURIComponent(window.location.origin + '/auth/callback')}&scope=${encodeURIComponent(scopes)}&response_type=code&state=${Date.now()}`;
|
| 118 |
window.location.href = oauthUrl;
|
| 119 |
} catch (error) {
|
|
|
|
|
|
|
| 120 |
showTokenInput = true;
|
| 121 |
tokenInput = '';
|
| 122 |
tokenError = '';
|
| 123 |
}
|
| 124 |
} else {
|
|
|
|
| 125 |
showTokenInput = true;
|
| 126 |
tokenInput = '';
|
| 127 |
tokenError = '';
|
|
|
|
| 147 |
}
|
| 148 |
|
| 149 |
try {
|
|
|
|
| 150 |
const response = await fetch('https://huggingface.co/api/whoami-v2', {
|
| 151 |
headers: {
|
| 152 |
'Authorization': `Bearer ${tokenInput.trim()}`
|
|
|
|
| 161 |
username = fullName.split(' ')[0];
|
| 162 |
closeTokenInput();
|
| 163 |
} else {
|
|
|
|
|
|
|
| 164 |
tokenError = `Invalid token (${response.status}). Please check your token and try again.`;
|
| 165 |
}
|
| 166 |
} catch (error) {
|
|
|
|
| 167 |
tokenError = 'Error validating token. Please try again.';
|
| 168 |
}
|
| 169 |
}
|
frontend/src/routes/+page.svelte
CHANGED
|
@@ -1,21 +1,19 @@
|
|
| 1 |
<script>
|
| 2 |
-
import { Play, Download, Loader2, AlertCircle, ChevronDown, Copy, RefreshCw, Share, MoreHorizontal, Settings, Sliders, Pause, SkipBack, SkipForward, Layout, Code } from 'lucide-svelte';
|
| 3 |
|
| 4 |
let text = `In a hole in the ground there lived a hobbit. Not a nasty, dirty, wet hole, filled with the ends of worms and an oozy smell, nor yet a dry, bare, sandy hole with nothing in it to sit down on or to eat: it was a hobbit-hole, and that means comfort.`;
|
| 5 |
let selectedVoice = 'Lily';
|
| 6 |
let selectedModel = 'Chatterbox';
|
| 7 |
-
let mode = 'api';
|
| 8 |
-
let viewMode = 'ui';
|
| 9 |
let modelDropdownOpen = false;
|
| 10 |
let isGenerating = false;
|
| 11 |
-
let codeCells = [];
|
| 12 |
let audioUrl = null;
|
| 13 |
-
let copyNotification = null;
|
| 14 |
-
let codeButtonFlash = false;
|
| 15 |
-
let
|
| 16 |
-
let
|
| 17 |
-
let similarity = 0.75;
|
| 18 |
-
let styleExaggeration = 0;
|
| 19 |
let showSettings = true;
|
| 20 |
let isPlaying = false;
|
| 21 |
let currentTime = 0;
|
|
@@ -24,6 +22,9 @@
|
|
| 24 |
let audioElement = null;
|
| 25 |
let sampleAudioElement = null;
|
| 26 |
let playingSampleVoice = null;
|
|
|
|
|
|
|
|
|
|
| 27 |
|
| 28 |
const models = [
|
| 29 |
{ id: 'chatterbox', name: 'Chatterbox', badge: 'recommended' },
|
|
@@ -31,36 +32,30 @@
|
|
| 31 |
];
|
| 32 |
|
| 33 |
const voices = [
|
| 34 |
-
{ id: 'lily', name: 'Lily', description: 'Warm, conversational voice from a female in her 30s
|
| 35 |
-
{ id: '
|
| 36 |
-
{ id: '
|
| 37 |
-
{ id: '
|
| 38 |
];
|
| 39 |
|
| 40 |
async function generateSpeech() {
|
| 41 |
-
console.log('generateSpeech called, text:', text.trim().substring(0, 50));
|
| 42 |
if (!text.trim()) return;
|
| 43 |
|
| 44 |
-
// Check if user is logged in (has access token)
|
| 45 |
const accessToken = getAccessToken();
|
| 46 |
if (!accessToken) {
|
| 47 |
-
// Trigger popover over sign in button in layout
|
| 48 |
window.dispatchEvent(new CustomEvent('show-signin-popover'));
|
| 49 |
return;
|
| 50 |
}
|
| 51 |
|
| 52 |
-
console.log('Starting generation...');
|
| 53 |
isGenerating = true;
|
| 54 |
audioUrl = null;
|
| 55 |
currentTime = 0;
|
| 56 |
|
| 57 |
-
// Add code cell for this generation
|
| 58 |
if (codeCells.length === 0) {
|
| 59 |
addCodeCell('Setup and Import', generateSetupCode());
|
| 60 |
}
|
| 61 |
addCodeCell('Generate Speech', generateTTSCode());
|
| 62 |
|
| 63 |
-
// Flash the API Recorder button to draw attention
|
| 64 |
if (viewMode === 'ui') {
|
| 65 |
codeButtonFlash = true;
|
| 66 |
setTimeout(() => {
|
|
@@ -69,13 +64,10 @@
|
|
| 69 |
}
|
| 70 |
isPlaying = false;
|
| 71 |
|
| 72 |
-
// Create title from first part of text
|
| 73 |
audioTitle = text.length > 30 ? text.substring(0, 30) + '...' : text;
|
| 74 |
|
| 75 |
try {
|
| 76 |
-
// Get OAuth token from browser storage or handle authentication
|
| 77 |
const accessToken = getAccessToken();
|
| 78 |
-
console.log('Access token for API call:', accessToken ? 'Found (' + accessToken.substring(0, 10) + '...)' : 'None');
|
| 79 |
|
| 80 |
const requestBody = {
|
| 81 |
text: text,
|
|
@@ -84,15 +76,11 @@
|
|
| 84 |
mode: mode,
|
| 85 |
access_token: accessToken,
|
| 86 |
parameters: {
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
similarity: similarity,
|
| 90 |
-
style_exaggeration: styleExaggeration
|
| 91 |
}
|
| 92 |
};
|
| 93 |
|
| 94 |
-
console.log('Sending request to /api/tts/generate:', requestBody);
|
| 95 |
-
|
| 96 |
const response = await fetch('/api/tts/generate', {
|
| 97 |
method: 'POST',
|
| 98 |
headers: {
|
|
@@ -101,23 +89,17 @@
|
|
| 101 |
body: JSON.stringify(requestBody)
|
| 102 |
});
|
| 103 |
|
| 104 |
-
console.log('API response status:', response.status);
|
| 105 |
-
|
| 106 |
if (!response.ok) {
|
| 107 |
const errorText = await response.text();
|
| 108 |
-
console.error('API error response:', errorText);
|
| 109 |
throw new Error(`HTTP error! status: ${response.status}, body: ${errorText}`);
|
| 110 |
}
|
| 111 |
|
| 112 |
const result = await response.json();
|
| 113 |
-
console.log('API response result:', result);
|
| 114 |
|
| 115 |
if (result.success && result.audio_url) {
|
| 116 |
audioUrl = result.audio_url;
|
| 117 |
-
// Add code cell for saving the audio
|
| 118 |
addCodeCell('Save Audio Output', generateSaveCode());
|
| 119 |
|
| 120 |
-
// Flash the API Recorder button again for the save code
|
| 121 |
if (viewMode === 'ui') {
|
| 122 |
codeButtonFlash = true;
|
| 123 |
setTimeout(() => {
|
|
@@ -125,15 +107,13 @@
|
|
| 125 |
}, 2500);
|
| 126 |
}
|
| 127 |
} else {
|
| 128 |
-
// Show error message to user
|
| 129 |
const errorMessage = result.error || 'Unknown error occurred';
|
| 130 |
-
|
| 131 |
audioUrl = null;
|
| 132 |
}
|
| 133 |
|
| 134 |
} catch (error) {
|
| 135 |
-
|
| 136 |
-
alert('❌ Network error: Failed to connect to the server');
|
| 137 |
audioUrl = null;
|
| 138 |
} finally {
|
| 139 |
isGenerating = false;
|
|
@@ -141,25 +121,18 @@
|
|
| 141 |
}
|
| 142 |
|
| 143 |
function getAccessToken() {
|
| 144 |
-
console.log('Getting access token...');
|
| 145 |
-
|
| 146 |
-
// For HuggingFace Spaces, check if we can access the global hf object
|
| 147 |
if (typeof window !== 'undefined' && window.gradio && window.gradio.auth_token) {
|
| 148 |
-
console.log('Found Gradio auth token:', window.gradio.auth_token.substring(0, 10) + '...');
|
| 149 |
return window.gradio.auth_token;
|
| 150 |
}
|
| 151 |
|
| 152 |
-
// Check for HF OAuth token in meta tags (common in HF Spaces)
|
| 153 |
const metaToken = document.querySelector('meta[name="hf-oauth-token"]');
|
| 154 |
if (metaToken) {
|
| 155 |
const token = metaToken.getAttribute('content');
|
| 156 |
if (token) {
|
| 157 |
-
console.log('Found token in meta tag:', token.substring(0, 10) + '...');
|
| 158 |
return token;
|
| 159 |
}
|
| 160 |
}
|
| 161 |
|
| 162 |
-
// Try multiple possible token storage locations
|
| 163 |
const possibleKeys = [
|
| 164 |
'hf_access_token',
|
| 165 |
'hf_token',
|
|
@@ -171,56 +144,34 @@
|
|
| 171 |
for (const key of possibleKeys) {
|
| 172 |
const token = localStorage.getItem(key);
|
| 173 |
if (token) {
|
| 174 |
-
console.log(`Found token in localStorage['${key}']:`, token.substring(0, 10) + '...');
|
| 175 |
return token;
|
| 176 |
}
|
| 177 |
}
|
| 178 |
|
| 179 |
-
// Also check sessionStorage
|
| 180 |
for (const key of possibleKeys) {
|
| 181 |
const token = sessionStorage.getItem(key);
|
| 182 |
if (token) {
|
| 183 |
-
console.log(`Found token in sessionStorage['${key}']:`, token.substring(0, 10) + '...');
|
| 184 |
return token;
|
| 185 |
}
|
| 186 |
}
|
| 187 |
|
| 188 |
-
// Check if there's a token in cookies (for Spaces)
|
| 189 |
const cookies = document.cookie.split(';');
|
| 190 |
for (const cookie of cookies) {
|
| 191 |
const [name, value] = cookie.trim().split('=');
|
| 192 |
if (name && (name.includes('token') || name.includes('hf') || name.includes('oauth'))) {
|
| 193 |
-
console.log(`Found potential token in cookie '${name}':`, value ? value.substring(0, 10) + '...' : 'empty');
|
| 194 |
return decodeURIComponent(value);
|
| 195 |
}
|
| 196 |
}
|
| 197 |
|
| 198 |
-
// Try to get it from fetch headers if available in the environment
|
| 199 |
try {
|
| 200 |
const authHeader = document.querySelector('script[data-hf-token]');
|
| 201 |
if (authHeader) {
|
| 202 |
const token = authHeader.getAttribute('data-hf-token');
|
| 203 |
if (token) {
|
| 204 |
-
console.log('Found token in script data attribute:', token.substring(0, 10) + '...');
|
| 205 |
return token;
|
| 206 |
}
|
| 207 |
}
|
| 208 |
-
} catch (e) {
|
| 209 |
-
// Ignore errors
|
| 210 |
-
}
|
| 211 |
-
|
| 212 |
-
console.log('No OAuth token found in any storage location');
|
| 213 |
-
console.log('Available localStorage keys:', Object.keys(localStorage));
|
| 214 |
-
console.log('Available sessionStorage keys:', Object.keys(sessionStorage));
|
| 215 |
-
console.log('Available cookies:', document.cookie);
|
| 216 |
-
console.log('Available global objects:', {
|
| 217 |
-
window: typeof window,
|
| 218 |
-
gradio: typeof window?.gradio,
|
| 219 |
-
hf: typeof window?.hf,
|
| 220 |
-
huggingface: typeof window?.huggingface
|
| 221 |
-
});
|
| 222 |
-
console.log('URL search params:', new URLSearchParams(window.location.search).toString());
|
| 223 |
-
console.log('All meta tags:', Array.from(document.getElementsByTagName('meta')).map(m => ({name: m.name, content: m.content?.substring(0, 20) + '...'})));
|
| 224 |
|
| 225 |
return null;
|
| 226 |
}
|
|
@@ -238,7 +189,6 @@
|
|
| 238 |
function handleAudioLoad() {
|
| 239 |
if (audioElement) {
|
| 240 |
duration = audioElement.duration;
|
| 241 |
-
// Auto-play when audio loads
|
| 242 |
audioElement.play();
|
| 243 |
}
|
| 244 |
}
|
|
@@ -273,28 +223,23 @@
|
|
| 273 |
}
|
| 274 |
|
| 275 |
function shareAudio() {
|
| 276 |
-
// Share functionality would go here
|
| 277 |
-
console.log('Share audio');
|
| 278 |
}
|
| 279 |
|
| 280 |
function playSampleVoice(voice, event) {
|
| 281 |
-
event.stopPropagation();
|
| 282 |
|
| 283 |
if (playingSampleVoice === voice.name) {
|
| 284 |
-
// Stop playing
|
| 285 |
if (sampleAudioElement) {
|
| 286 |
sampleAudioElement.pause();
|
| 287 |
sampleAudioElement.currentTime = 0;
|
| 288 |
}
|
| 289 |
playingSampleVoice = null;
|
| 290 |
} else {
|
| 291 |
-
// Play new voice sample
|
| 292 |
if (sampleAudioElement) {
|
| 293 |
sampleAudioElement.pause();
|
| 294 |
}
|
| 295 |
playingSampleVoice = voice.name;
|
| 296 |
|
| 297 |
-
// Use voice-specific sample if available, otherwise use default
|
| 298 |
const sampleUrl = voice.sample || '/samples/harvard.wav';
|
| 299 |
|
| 300 |
if (!sampleAudioElement) {
|
|
@@ -307,7 +252,6 @@
|
|
| 307 |
}
|
| 308 |
|
| 309 |
sampleAudioElement.play().catch(err => {
|
| 310 |
-
console.error('Error playing sample:', err);
|
| 311 |
playingSampleVoice = null;
|
| 312 |
});
|
| 313 |
}
|
|
@@ -339,9 +283,6 @@
|
|
| 339 |
}
|
| 340 |
|
| 341 |
function generateSetupCode() {
|
| 342 |
-
const token = getAccessToken();
|
| 343 |
-
const tokenDisplay = token ? 'YOUR_HF_TOKEN' : 'YOUR_HF_TOKEN';
|
| 344 |
-
|
| 345 |
return `# Install required packages
|
| 346 |
# pip install huggingface-hub
|
| 347 |
|
|
@@ -352,23 +293,19 @@ import io
|
|
| 352 |
# Initialize the client
|
| 353 |
client = InferenceClient(
|
| 354 |
provider="fal-ai",
|
| 355 |
-
api_key="
|
| 356 |
)`;
|
| 357 |
}
|
| 358 |
|
| 359 |
function generateTTSCode() {
|
| 360 |
-
const truncatedText = text.length > 100 ? text.substring(0, 100) + '...' : text;
|
| 361 |
-
|
| 362 |
return `# Text to convert to speech
|
| 363 |
text = """${text}"""
|
| 364 |
|
| 365 |
# Voice and model settings
|
| 366 |
model = "ResembleAI/chatterbox"
|
| 367 |
voice = "${selectedVoice.toLowerCase()}"
|
| 368 |
-
|
| 369 |
-
|
| 370 |
-
similarity = ${similarity}
|
| 371 |
-
style_exaggeration = ${styleExaggeration}
|
| 372 |
|
| 373 |
# Generate speech
|
| 374 |
print("Generating speech...")
|
|
@@ -406,24 +343,37 @@ print(f"✓ Audio saved to {output_filename}")
|
|
| 406 |
});
|
| 407 |
}
|
| 408 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 409 |
function copyAllCode() {
|
| 410 |
const allCode = codeCells.map(cell => `# ${cell.title}\n${cell.code}`).join('\n\n');
|
| 411 |
copyToClipboard(allCode, 'All code copied!');
|
| 412 |
}
|
| 413 |
|
| 414 |
-
// Initialize with setup code
|
| 415 |
$: if (codeCells.length === 0 && viewMode === 'code') {
|
| 416 |
addCodeCell('Setup and Import', generateSetupCode());
|
| 417 |
}
|
| 418 |
|
| 419 |
-
// Track when user changes text
|
| 420 |
let previousText = text;
|
| 421 |
$: if (text !== previousText && codeCells.length > 0) {
|
| 422 |
previousText = text;
|
| 423 |
-
// Don't add a cell for every keystroke, user will click generate
|
| 424 |
}
|
| 425 |
|
| 426 |
-
// Clear code cells when switching back to UI
|
| 427 |
$: if (viewMode === 'ui') {
|
| 428 |
codeCells = [];
|
| 429 |
}
|
|
@@ -433,25 +383,7 @@ print(f"✓ Audio saved to {output_filename}")
|
|
| 433 |
<div class="flex flex-col h-full" on:click={handleClickOutside}>
|
| 434 |
<!-- Header -->
|
| 435 |
<header class="border-b border-gray-200 bg-white">
|
| 436 |
-
<div class="flex items-center justify-
|
| 437 |
-
<div class="flex items-center gap-3">
|
| 438 |
-
<!-- Mode toggle -->
|
| 439 |
-
<div class="flex items-center bg-gray-100 rounded-md p-0.5">
|
| 440 |
-
<button
|
| 441 |
-
class="px-3 py-1 text-sm font-medium rounded transition-colors {mode === 'api' ? 'bg-white shadow-sm' : 'text-gray-600'}"
|
| 442 |
-
on:click={() => mode = 'api'}
|
| 443 |
-
>
|
| 444 |
-
API
|
| 445 |
-
</button>
|
| 446 |
-
<button
|
| 447 |
-
class="px-3 py-1 text-sm font-medium rounded transition-colors {mode === 'local' ? 'bg-white shadow-sm' : 'text-gray-600'}"
|
| 448 |
-
on:click={() => mode = 'local'}
|
| 449 |
-
>
|
| 450 |
-
Local
|
| 451 |
-
</button>
|
| 452 |
-
</div>
|
| 453 |
-
</div>
|
| 454 |
-
|
| 455 |
<div class="flex items-center gap-2">
|
| 456 |
<!-- View mode toggle -->
|
| 457 |
<div class="flex items-center bg-gray-100 rounded-md p-0.5">
|
|
@@ -467,7 +399,7 @@ print(f"✓ Audio saved to {output_filename}")
|
|
| 467 |
on:click={() => viewMode = 'code'}
|
| 468 |
>
|
| 469 |
<Code size={14} />
|
| 470 |
-
|
| 471 |
{#if codeButtonFlash}
|
| 472 |
<span class="flash-sweep"></span>
|
| 473 |
{/if}
|
|
@@ -696,27 +628,27 @@ print(f"✓ Audio saved to {output_filename}")
|
|
| 696 |
<h3 class="font-medium text-gray-900">Voice</h3>
|
| 697 |
</div>
|
| 698 |
|
| 699 |
-
<div class="space-y-
|
| 700 |
{#each voices as voice}
|
| 701 |
<button
|
| 702 |
-
class="w-full flex items-center justify-between p-
|
| 703 |
-
{voice.name === selectedVoice ? 'bg-gray-100' : ''}"
|
| 704 |
on:click={() => selectedVoice = voice.name}
|
| 705 |
>
|
| 706 |
-
<div class="flex items-center gap-3">
|
| 707 |
<div class="w-10 h-10 bg-gradient-to-br from-amber-400 to-orange-500 rounded-full flex items-center justify-center text-white text-sm font-semibold flex-shrink-0">
|
| 708 |
{voice.name[0]}
|
| 709 |
</div>
|
| 710 |
-
<div class="flex-1">
|
| 711 |
-
<div class="text-sm font-medium text-gray-900">{voice.name}</div>
|
| 712 |
-
<div class="text-xs text-gray-500
|
| 713 |
{voice.description}
|
| 714 |
</div>
|
| 715 |
</div>
|
| 716 |
</div>
|
| 717 |
<button
|
| 718 |
on:click={(e) => playSampleVoice(voice, e)}
|
| 719 |
-
class="p-
|
| 720 |
title="Play sample"
|
| 721 |
>
|
| 722 |
{#if playingSampleVoice === voice.name}
|
|
@@ -730,91 +662,65 @@ print(f"✓ Audio saved to {output_filename}")
|
|
| 730 |
|
| 731 |
<!-- Clone voice option -->
|
| 732 |
<button
|
| 733 |
-
class="w-full flex items-center justify-between p-2 rounded-
|
| 734 |
disabled
|
| 735 |
>
|
| 736 |
-
<div class="flex items-center gap-
|
| 737 |
-
<div class="w-
|
| 738 |
+
|
| 739 |
</div>
|
| 740 |
-
<
|
| 741 |
-
|
| 742 |
-
|
| 743 |
-
|
|
|
|
|
|
|
| 744 |
</div>
|
| 745 |
</button>
|
| 746 |
</div>
|
| 747 |
</div>
|
| 748 |
|
| 749 |
<div class="space-y-4 pt-4 border-t border-gray-200">
|
| 750 |
-
<!--
|
| 751 |
-
<div>
|
| 752 |
-
<div class="flex justify-between mb-1">
|
| 753 |
-
<label class="text-sm font-medium text-gray-700">Speed</label>
|
| 754 |
-
<span class="text-sm text-gray-500">{speed.toFixed(1)}x</span>
|
| 755 |
-
</div>
|
| 756 |
-
<input
|
| 757 |
-
type="range"
|
| 758 |
-
bind:value={speed}
|
| 759 |
-
min="0.5"
|
| 760 |
-
max="2"
|
| 761 |
-
step="0.1"
|
| 762 |
-
class="w-full h-1.5 bg-gray-200 rounded-lg appearance-none cursor-pointer slider-hf"
|
| 763 |
-
/>
|
| 764 |
-
<div class="flex justify-between text-xs text-gray-400 mt-1">
|
| 765 |
-
<span>0.5x</span>
|
| 766 |
-
<span>2.0x</span>
|
| 767 |
-
</div>
|
| 768 |
-
</div>
|
| 769 |
-
|
| 770 |
-
<!-- Stability control -->
|
| 771 |
<div>
|
| 772 |
<div class="flex justify-between mb-1">
|
| 773 |
-
<label class="text-sm font-medium text-gray-700">
|
| 774 |
-
<span class="text-sm text-gray-500">{
|
| 775 |
</div>
|
| 776 |
<input
|
|
|
|
| 777 |
type="range"
|
| 778 |
-
bind:value={
|
| 779 |
min="0"
|
| 780 |
max="1"
|
| 781 |
step="0.01"
|
| 782 |
class="w-full h-1.5 bg-gray-200 rounded-lg appearance-none cursor-pointer slider-hf"
|
| 783 |
/>
|
|
|
|
|
|
|
|
|
|
|
|
|
| 784 |
</div>
|
| 785 |
|
| 786 |
-
<!--
|
| 787 |
<div>
|
| 788 |
<div class="flex justify-between mb-1">
|
| 789 |
-
<label class="text-sm font-medium text-gray-700">
|
| 790 |
-
<span class="text-sm text-gray-500">{
|
| 791 |
</div>
|
| 792 |
<input
|
|
|
|
| 793 |
type="range"
|
| 794 |
-
bind:value={
|
| 795 |
min="0"
|
| 796 |
max="1"
|
| 797 |
step="0.01"
|
| 798 |
class="w-full h-1.5 bg-gray-200 rounded-lg appearance-none cursor-pointer slider-hf"
|
| 799 |
/>
|
| 800 |
-
|
| 801 |
-
|
| 802 |
-
|
| 803 |
-
<div>
|
| 804 |
-
<div class="flex justify-between mb-1">
|
| 805 |
-
<label class="text-sm font-medium text-gray-700">Style</label>
|
| 806 |
-
<span class="text-sm text-gray-500">
|
| 807 |
-
{styleExaggeration === 0 ? 'None' : 'Exaggerated'}
|
| 808 |
-
</span>
|
| 809 |
</div>
|
| 810 |
-
<input
|
| 811 |
-
type="range"
|
| 812 |
-
bind:value={styleExaggeration}
|
| 813 |
-
min="0"
|
| 814 |
-
max="1"
|
| 815 |
-
step="1"
|
| 816 |
-
class="w-full h-1.5 bg-gray-200 rounded-lg appearance-none cursor-pointer slider-hf"
|
| 817 |
-
/>
|
| 818 |
</div>
|
| 819 |
</div>
|
| 820 |
</div>
|
|
@@ -823,21 +729,43 @@ print(f"✓ Audio saved to {output_filename}")
|
|
| 823 |
<!-- Code view -->
|
| 824 |
<div class="flex-1 bg-gray-50 overflow-y-auto">
|
| 825 |
<div class="max-w-4xl mx-auto p-8">
|
| 826 |
-
<!-- Header
|
| 827 |
-
<div class="
|
| 828 |
<div>
|
| 829 |
<h2 class="text-2xl font-semibold text-gray-900">Integration Code</h2>
|
| 830 |
<p class="text-sm text-gray-600 mt-1">Python code to reproduce your actions via the API</p>
|
| 831 |
</div>
|
| 832 |
-
|
| 833 |
-
|
| 834 |
-
|
| 835 |
-
|
| 836 |
-
|
| 837 |
-
|
| 838 |
-
|
| 839 |
-
|
| 840 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 841 |
</div>
|
| 842 |
|
| 843 |
<!-- Code cells -->
|
|
@@ -889,6 +817,60 @@ print(f"✓ Audio saved to {output_filename}")
|
|
| 889 |
{copyNotification}
|
| 890 |
</div>
|
| 891 |
{/if}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 892 |
</div>
|
| 893 |
|
| 894 |
<style>
|
|
@@ -948,38 +930,4 @@ print(f"✓ Audio saved to {output_filename}")
|
|
| 948 |
}
|
| 949 |
}
|
| 950 |
|
| 951 |
-
/* Prism.js syntax highlighting styles */
|
| 952 |
-
.prism-code .token.comment {
|
| 953 |
-
color: #6b7280; /* gray-500 */
|
| 954 |
-
font-style: italic;
|
| 955 |
-
}
|
| 956 |
-
|
| 957 |
-
.prism-code .token.string {
|
| 958 |
-
color: #059669; /* emerald-600 */
|
| 959 |
-
}
|
| 960 |
-
|
| 961 |
-
.prism-code .token.keyword {
|
| 962 |
-
color: #2563eb; /* blue-600 */
|
| 963 |
-
font-weight: 600;
|
| 964 |
-
}
|
| 965 |
-
|
| 966 |
-
.prism-code .token.function {
|
| 967 |
-
color: #d97706; /* amber-600 */
|
| 968 |
-
}
|
| 969 |
-
|
| 970 |
-
.prism-code .token.number {
|
| 971 |
-
color: #7c3aed; /* violet-600 */
|
| 972 |
-
}
|
| 973 |
-
|
| 974 |
-
.prism-code .token.operator {
|
| 975 |
-
color: #374151; /* gray-700 */
|
| 976 |
-
}
|
| 977 |
-
|
| 978 |
-
.prism-code .token.punctuation {
|
| 979 |
-
color: #6b7280; /* gray-500 */
|
| 980 |
-
}
|
| 981 |
-
|
| 982 |
-
.prism-code .token.class-name {
|
| 983 |
-
color: #dc2626; /* red-600 */
|
| 984 |
-
}
|
| 985 |
</style>
|
|
|
|
| 1 |
<script>
|
| 2 |
+
import { Play, Download, Loader2, AlertCircle, ChevronDown, Copy, RefreshCw, Share, MoreHorizontal, Settings, Sliders, Pause, SkipBack, SkipForward, Layout, Code, X } from 'lucide-svelte';
|
| 3 |
|
| 4 |
let text = `In a hole in the ground there lived a hobbit. Not a nasty, dirty, wet hole, filled with the ends of worms and an oozy smell, nor yet a dry, bare, sandy hole with nothing in it to sit down on or to eat: it was a hobbit-hole, and that means comfort.`;
|
| 5 |
let selectedVoice = 'Lily';
|
| 6 |
let selectedModel = 'Chatterbox';
|
| 7 |
+
let mode = 'api';
|
| 8 |
+
let viewMode = 'ui';
|
| 9 |
let modelDropdownOpen = false;
|
| 10 |
let isGenerating = false;
|
| 11 |
+
let codeCells = [];
|
| 12 |
let audioUrl = null;
|
| 13 |
+
let copyNotification = null;
|
| 14 |
+
let codeButtonFlash = false;
|
| 15 |
+
let exaggeration = 0.25;
|
| 16 |
+
let temperature = 0.7;
|
|
|
|
|
|
|
| 17 |
let showSettings = true;
|
| 18 |
let isPlaying = false;
|
| 19 |
let currentTime = 0;
|
|
|
|
| 22 |
let audioElement = null;
|
| 23 |
let sampleAudioElement = null;
|
| 24 |
let playingSampleVoice = null;
|
| 25 |
+
let showErrorModal = false;
|
| 26 |
+
let errorMessage = '';
|
| 27 |
+
let errorDetails = '';
|
| 28 |
|
| 29 |
const models = [
|
| 30 |
{ id: 'chatterbox', name: 'Chatterbox', badge: 'recommended' },
|
|
|
|
| 32 |
];
|
| 33 |
|
| 34 |
const voices = [
|
| 35 |
+
{ id: 'lily', name: 'Lily', description: 'Warm, conversational voice from a female in her 30s', sample: '/voices/lily.mp3' },
|
| 36 |
+
{ id: 'andrew', name: 'Andrew', description: 'Older British man who speaks clearly and kindly', sample: '/voices/andrew.mp3' },
|
| 37 |
+
{ id: 'fairy', name: 'Fairy', description: 'High and airy female voice that bursts with excitement', sample: '/voices/fairy.mp3' },
|
| 38 |
+
{ id: 'pirate', name: 'Pirate', description: 'Young pirate that speaks gruffly and passionately', sample: '/voices/pirate.mp3' },
|
| 39 |
];
|
| 40 |
|
| 41 |
async function generateSpeech() {
|
|
|
|
| 42 |
if (!text.trim()) return;
|
| 43 |
|
|
|
|
| 44 |
const accessToken = getAccessToken();
|
| 45 |
if (!accessToken) {
|
|
|
|
| 46 |
window.dispatchEvent(new CustomEvent('show-signin-popover'));
|
| 47 |
return;
|
| 48 |
}
|
| 49 |
|
|
|
|
| 50 |
isGenerating = true;
|
| 51 |
audioUrl = null;
|
| 52 |
currentTime = 0;
|
| 53 |
|
|
|
|
| 54 |
if (codeCells.length === 0) {
|
| 55 |
addCodeCell('Setup and Import', generateSetupCode());
|
| 56 |
}
|
| 57 |
addCodeCell('Generate Speech', generateTTSCode());
|
| 58 |
|
|
|
|
| 59 |
if (viewMode === 'ui') {
|
| 60 |
codeButtonFlash = true;
|
| 61 |
setTimeout(() => {
|
|
|
|
| 64 |
}
|
| 65 |
isPlaying = false;
|
| 66 |
|
|
|
|
| 67 |
audioTitle = text.length > 30 ? text.substring(0, 30) + '...' : text;
|
| 68 |
|
| 69 |
try {
|
|
|
|
| 70 |
const accessToken = getAccessToken();
|
|
|
|
| 71 |
|
| 72 |
const requestBody = {
|
| 73 |
text: text,
|
|
|
|
| 76 |
mode: mode,
|
| 77 |
access_token: accessToken,
|
| 78 |
parameters: {
|
| 79 |
+
exaggeration: exaggeration,
|
| 80 |
+
temperature: temperature
|
|
|
|
|
|
|
| 81 |
}
|
| 82 |
};
|
| 83 |
|
|
|
|
|
|
|
| 84 |
const response = await fetch('/api/tts/generate', {
|
| 85 |
method: 'POST',
|
| 86 |
headers: {
|
|
|
|
| 89 |
body: JSON.stringify(requestBody)
|
| 90 |
});
|
| 91 |
|
|
|
|
|
|
|
| 92 |
if (!response.ok) {
|
| 93 |
const errorText = await response.text();
|
|
|
|
| 94 |
throw new Error(`HTTP error! status: ${response.status}, body: ${errorText}`);
|
| 95 |
}
|
| 96 |
|
| 97 |
const result = await response.json();
|
|
|
|
| 98 |
|
| 99 |
if (result.success && result.audio_url) {
|
| 100 |
audioUrl = result.audio_url;
|
|
|
|
| 101 |
addCodeCell('Save Audio Output', generateSaveCode());
|
| 102 |
|
|
|
|
| 103 |
if (viewMode === 'ui') {
|
| 104 |
codeButtonFlash = true;
|
| 105 |
setTimeout(() => {
|
|
|
|
| 107 |
}, 2500);
|
| 108 |
}
|
| 109 |
} else {
|
|
|
|
| 110 |
const errorMessage = result.error || 'Unknown error occurred';
|
| 111 |
+
showError('Generation Failed', errorMessage);
|
| 112 |
audioUrl = null;
|
| 113 |
}
|
| 114 |
|
| 115 |
} catch (error) {
|
| 116 |
+
showError('Network Error', 'Failed to connect to the server. Please check your connection and try again.');
|
|
|
|
| 117 |
audioUrl = null;
|
| 118 |
} finally {
|
| 119 |
isGenerating = false;
|
|
|
|
| 121 |
}
|
| 122 |
|
| 123 |
function getAccessToken() {
|
|
|
|
|
|
|
|
|
|
| 124 |
if (typeof window !== 'undefined' && window.gradio && window.gradio.auth_token) {
|
|
|
|
| 125 |
return window.gradio.auth_token;
|
| 126 |
}
|
| 127 |
|
|
|
|
| 128 |
const metaToken = document.querySelector('meta[name="hf-oauth-token"]');
|
| 129 |
if (metaToken) {
|
| 130 |
const token = metaToken.getAttribute('content');
|
| 131 |
if (token) {
|
|
|
|
| 132 |
return token;
|
| 133 |
}
|
| 134 |
}
|
| 135 |
|
|
|
|
| 136 |
const possibleKeys = [
|
| 137 |
'hf_access_token',
|
| 138 |
'hf_token',
|
|
|
|
| 144 |
for (const key of possibleKeys) {
|
| 145 |
const token = localStorage.getItem(key);
|
| 146 |
if (token) {
|
|
|
|
| 147 |
return token;
|
| 148 |
}
|
| 149 |
}
|
| 150 |
|
|
|
|
| 151 |
for (const key of possibleKeys) {
|
| 152 |
const token = sessionStorage.getItem(key);
|
| 153 |
if (token) {
|
|
|
|
| 154 |
return token;
|
| 155 |
}
|
| 156 |
}
|
| 157 |
|
|
|
|
| 158 |
const cookies = document.cookie.split(';');
|
| 159 |
for (const cookie of cookies) {
|
| 160 |
const [name, value] = cookie.trim().split('=');
|
| 161 |
if (name && (name.includes('token') || name.includes('hf') || name.includes('oauth'))) {
|
|
|
|
| 162 |
return decodeURIComponent(value);
|
| 163 |
}
|
| 164 |
}
|
| 165 |
|
|
|
|
| 166 |
try {
|
| 167 |
const authHeader = document.querySelector('script[data-hf-token]');
|
| 168 |
if (authHeader) {
|
| 169 |
const token = authHeader.getAttribute('data-hf-token');
|
| 170 |
if (token) {
|
|
|
|
| 171 |
return token;
|
| 172 |
}
|
| 173 |
}
|
| 174 |
+
} catch (e) {}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 175 |
|
| 176 |
return null;
|
| 177 |
}
|
|
|
|
| 189 |
function handleAudioLoad() {
|
| 190 |
if (audioElement) {
|
| 191 |
duration = audioElement.duration;
|
|
|
|
| 192 |
audioElement.play();
|
| 193 |
}
|
| 194 |
}
|
|
|
|
| 223 |
}
|
| 224 |
|
| 225 |
function shareAudio() {
|
|
|
|
|
|
|
| 226 |
}
|
| 227 |
|
| 228 |
function playSampleVoice(voice, event) {
|
| 229 |
+
event.stopPropagation();
|
| 230 |
|
| 231 |
if (playingSampleVoice === voice.name) {
|
|
|
|
| 232 |
if (sampleAudioElement) {
|
| 233 |
sampleAudioElement.pause();
|
| 234 |
sampleAudioElement.currentTime = 0;
|
| 235 |
}
|
| 236 |
playingSampleVoice = null;
|
| 237 |
} else {
|
|
|
|
| 238 |
if (sampleAudioElement) {
|
| 239 |
sampleAudioElement.pause();
|
| 240 |
}
|
| 241 |
playingSampleVoice = voice.name;
|
| 242 |
|
|
|
|
| 243 |
const sampleUrl = voice.sample || '/samples/harvard.wav';
|
| 244 |
|
| 245 |
if (!sampleAudioElement) {
|
|
|
|
| 252 |
}
|
| 253 |
|
| 254 |
sampleAudioElement.play().catch(err => {
|
|
|
|
| 255 |
playingSampleVoice = null;
|
| 256 |
});
|
| 257 |
}
|
|
|
|
| 283 |
}
|
| 284 |
|
| 285 |
function generateSetupCode() {
|
|
|
|
|
|
|
|
|
|
| 286 |
return `# Install required packages
|
| 287 |
# pip install huggingface-hub
|
| 288 |
|
|
|
|
| 293 |
# Initialize the client
|
| 294 |
client = InferenceClient(
|
| 295 |
provider="fal-ai",
|
| 296 |
+
api_key="YOUR_HF_TOKEN", # Get your token from https://huggingface.co/settings/tokens
|
| 297 |
)`;
|
| 298 |
}
|
| 299 |
|
| 300 |
function generateTTSCode() {
|
|
|
|
|
|
|
| 301 |
return `# Text to convert to speech
|
| 302 |
text = """${text}"""
|
| 303 |
|
| 304 |
# Voice and model settings
|
| 305 |
model = "ResembleAI/chatterbox"
|
| 306 |
voice = "${selectedVoice.toLowerCase()}"
|
| 307 |
+
exaggeration = ${exaggeration}
|
| 308 |
+
temperature = ${temperature}
|
|
|
|
|
|
|
| 309 |
|
| 310 |
# Generate speech
|
| 311 |
print("Generating speech...")
|
|
|
|
| 343 |
});
|
| 344 |
}
|
| 345 |
|
| 346 |
+
function showError(message, details = '') {
|
| 347 |
+
errorMessage = message;
|
| 348 |
+
errorDetails = details;
|
| 349 |
+
showErrorModal = true;
|
| 350 |
+
}
|
| 351 |
+
|
| 352 |
+
function closeErrorModal() {
|
| 353 |
+
showErrorModal = false;
|
| 354 |
+
errorMessage = '';
|
| 355 |
+
errorDetails = '';
|
| 356 |
+
}
|
| 357 |
+
|
| 358 |
+
function copyErrorMessage() {
|
| 359 |
+
const fullError = errorDetails ? `${errorMessage}\n\nDetails:\n${errorDetails}` : errorMessage;
|
| 360 |
+
copyToClipboard(fullError, 'Error message copied!');
|
| 361 |
+
}
|
| 362 |
+
|
| 363 |
function copyAllCode() {
|
| 364 |
const allCode = codeCells.map(cell => `# ${cell.title}\n${cell.code}`).join('\n\n');
|
| 365 |
copyToClipboard(allCode, 'All code copied!');
|
| 366 |
}
|
| 367 |
|
|
|
|
| 368 |
$: if (codeCells.length === 0 && viewMode === 'code') {
|
| 369 |
addCodeCell('Setup and Import', generateSetupCode());
|
| 370 |
}
|
| 371 |
|
|
|
|
| 372 |
let previousText = text;
|
| 373 |
$: if (text !== previousText && codeCells.length > 0) {
|
| 374 |
previousText = text;
|
|
|
|
| 375 |
}
|
| 376 |
|
|
|
|
| 377 |
$: if (viewMode === 'ui') {
|
| 378 |
codeCells = [];
|
| 379 |
}
|
|
|
|
| 383 |
<div class="flex flex-col h-full" on:click={handleClickOutside}>
|
| 384 |
<!-- Header -->
|
| 385 |
<header class="border-b border-gray-200 bg-white">
|
| 386 |
+
<div class="flex items-center justify-end px-4 py-2">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 387 |
<div class="flex items-center gap-2">
|
| 388 |
<!-- View mode toggle -->
|
| 389 |
<div class="flex items-center bg-gray-100 rounded-md p-0.5">
|
|
|
|
| 399 |
on:click={() => viewMode = 'code'}
|
| 400 |
>
|
| 401 |
<Code size={14} />
|
| 402 |
+
Code Recorder
|
| 403 |
{#if codeButtonFlash}
|
| 404 |
<span class="flash-sweep"></span>
|
| 405 |
{/if}
|
|
|
|
| 628 |
<h3 class="font-medium text-gray-900">Voice</h3>
|
| 629 |
</div>
|
| 630 |
|
| 631 |
+
<div class="space-y-2">
|
| 632 |
{#each voices as voice}
|
| 633 |
<button
|
| 634 |
+
class="w-full flex items-center justify-between p-2 rounded-lg hover:bg-gray-50 transition-colors text-left group border border-transparent
|
| 635 |
+
{voice.name === selectedVoice ? 'bg-gray-100 border-gray-200' : ''}"
|
| 636 |
on:click={() => selectedVoice = voice.name}
|
| 637 |
>
|
| 638 |
+
<div class="flex items-center gap-3 flex-1 min-w-0">
|
| 639 |
<div class="w-10 h-10 bg-gradient-to-br from-amber-400 to-orange-500 rounded-full flex items-center justify-center text-white text-sm font-semibold flex-shrink-0">
|
| 640 |
{voice.name[0]}
|
| 641 |
</div>
|
| 642 |
+
<div class="flex-1 min-w-0">
|
| 643 |
+
<div class="text-sm font-medium text-gray-900 mb-1">{voice.name}</div>
|
| 644 |
+
<div class="text-xs text-gray-500 leading-relaxed">
|
| 645 |
{voice.description}
|
| 646 |
</div>
|
| 647 |
</div>
|
| 648 |
</div>
|
| 649 |
<button
|
| 650 |
on:click={(e) => playSampleVoice(voice, e)}
|
| 651 |
+
class="p-2 rounded-full hover:bg-gray-200 transition-colors flex-shrink-0 ml-2"
|
| 652 |
title="Play sample"
|
| 653 |
>
|
| 654 |
{#if playingSampleVoice === voice.name}
|
|
|
|
| 662 |
|
| 663 |
<!-- Clone voice option -->
|
| 664 |
<button
|
| 665 |
+
class="w-full flex items-center justify-between p-2 rounded-lg opacity-50 cursor-not-allowed text-left border border-transparent"
|
| 666 |
disabled
|
| 667 |
>
|
| 668 |
+
<div class="flex items-center gap-3 flex-1 min-w-0">
|
| 669 |
+
<div class="w-10 h-10 bg-gray-400 rounded-full flex items-center justify-center text-white text-sm font-medium flex-shrink-0">
|
| 670 |
+
|
| 671 |
</div>
|
| 672 |
+
<div class="flex-1 min-w-0">
|
| 673 |
+
<div class="text-sm font-medium text-gray-600 mb-1">Clone your voice</div>
|
| 674 |
+
<div class="text-xs text-gray-400">
|
| 675 |
+
(coming soon)
|
| 676 |
+
</div>
|
| 677 |
+
</div>
|
| 678 |
</div>
|
| 679 |
</button>
|
| 680 |
</div>
|
| 681 |
</div>
|
| 682 |
|
| 683 |
<div class="space-y-4 pt-4 border-t border-gray-200">
|
| 684 |
+
<!-- Exaggeration control -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 685 |
<div>
|
| 686 |
<div class="flex justify-between mb-1">
|
| 687 |
+
<label for="exaggeration-slider" class="text-sm font-medium text-gray-700">Exaggeration</label>
|
| 688 |
+
<span class="text-sm text-gray-500">{exaggeration.toFixed(2)}</span>
|
| 689 |
</div>
|
| 690 |
<input
|
| 691 |
+
id="exaggeration-slider"
|
| 692 |
type="range"
|
| 693 |
+
bind:value={exaggeration}
|
| 694 |
min="0"
|
| 695 |
max="1"
|
| 696 |
step="0.01"
|
| 697 |
class="w-full h-1.5 bg-gray-200 rounded-lg appearance-none cursor-pointer slider-hf"
|
| 698 |
/>
|
| 699 |
+
<div class="flex justify-between text-xs text-gray-400 mt-1">
|
| 700 |
+
<span>None</span>
|
| 701 |
+
<span>Exaggerated</span>
|
| 702 |
+
</div>
|
| 703 |
</div>
|
| 704 |
|
| 705 |
+
<!-- Stability control -->
|
| 706 |
<div>
|
| 707 |
<div class="flex justify-between mb-1">
|
| 708 |
+
<label for="temperature-slider" class="text-sm font-medium text-gray-700">Stability</label>
|
| 709 |
+
<span class="text-sm text-gray-500">{temperature.toFixed(2)}</span>
|
| 710 |
</div>
|
| 711 |
<input
|
| 712 |
+
id="temperature-slider"
|
| 713 |
type="range"
|
| 714 |
+
bind:value={temperature}
|
| 715 |
min="0"
|
| 716 |
max="1"
|
| 717 |
step="0.01"
|
| 718 |
class="w-full h-1.5 bg-gray-200 rounded-lg appearance-none cursor-pointer slider-hf"
|
| 719 |
/>
|
| 720 |
+
<div class="flex justify-between text-xs text-gray-400 mt-1">
|
| 721 |
+
<span>More stable</span>
|
| 722 |
+
<span>More variable</span>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 723 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 724 |
</div>
|
| 725 |
</div>
|
| 726 |
</div>
|
|
|
|
| 729 |
<!-- Code view -->
|
| 730 |
<div class="flex-1 bg-gray-50 overflow-y-auto">
|
| 731 |
<div class="max-w-4xl mx-auto p-8">
|
| 732 |
+
<!-- Header -->
|
| 733 |
+
<div class="mb-6">
|
| 734 |
<div>
|
| 735 |
<h2 class="text-2xl font-semibold text-gray-900">Integration Code</h2>
|
| 736 |
<p class="text-sm text-gray-600 mt-1">Python code to reproduce your actions via the API</p>
|
| 737 |
</div>
|
| 738 |
+
|
| 739 |
+
<!-- Toggle and Copy All button row -->
|
| 740 |
+
<div class="flex items-center justify-between mt-4">
|
| 741 |
+
<!-- API/Local Mode Toggle -->
|
| 742 |
+
<div class="flex items-center bg-gray-100 rounded-md p-0.5">
|
| 743 |
+
<button
|
| 744 |
+
class="px-3 py-1 text-sm font-medium rounded transition-colors {mode === 'api' ? 'bg-white shadow-sm' : 'text-gray-600'}"
|
| 745 |
+
on:click={() => mode = 'api'}
|
| 746 |
+
>
|
| 747 |
+
API
|
| 748 |
+
</button>
|
| 749 |
+
<button
|
| 750 |
+
class="px-3 py-1 text-sm font-medium rounded transition-colors {mode === 'local' ? 'bg-white shadow-sm' : 'text-gray-600'}"
|
| 751 |
+
on:click={() => mode = 'local'}
|
| 752 |
+
>
|
| 753 |
+
Local
|
| 754 |
+
</button>
|
| 755 |
+
</div>
|
| 756 |
+
|
| 757 |
+
{#if codeCells.length > 0}
|
| 758 |
+
<button
|
| 759 |
+
on:click={copyAllCode}
|
| 760 |
+
class="flex items-center bg-gray-100 rounded-md p-0.5"
|
| 761 |
+
>
|
| 762 |
+
<span class="px-3 py-1 text-sm font-medium text-gray-600 flex items-center gap-2">
|
| 763 |
+
<Copy size={16} />
|
| 764 |
+
Copy All
|
| 765 |
+
</span>
|
| 766 |
+
</button>
|
| 767 |
+
{/if}
|
| 768 |
+
</div>
|
| 769 |
</div>
|
| 770 |
|
| 771 |
<!-- Code cells -->
|
|
|
|
| 817 |
{copyNotification}
|
| 818 |
</div>
|
| 819 |
{/if}
|
| 820 |
+
|
| 821 |
+
<!-- Error Modal -->
|
| 822 |
+
{#if showErrorModal}
|
| 823 |
+
<div class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4">
|
| 824 |
+
<div class="bg-white rounded-xl shadow-2xl max-w-2xl w-full max-h-[80vh] flex flex-col">
|
| 825 |
+
<!-- Header -->
|
| 826 |
+
<div class="flex items-center justify-between p-6 border-b border-gray-200 bg-red-50 flex-shrink-0">
|
| 827 |
+
<div class="flex items-center gap-3 min-w-0">
|
| 828 |
+
<div class="w-10 h-10 bg-red-100 rounded-full flex items-center justify-center flex-shrink-0">
|
| 829 |
+
<AlertCircle size={20} class="text-red-600" />
|
| 830 |
+
</div>
|
| 831 |
+
<div class="min-w-0">
|
| 832 |
+
<h3 class="text-lg font-semibold text-gray-900 truncate">{errorMessage}</h3>
|
| 833 |
+
<p class="text-sm text-gray-600">An error occurred while processing your request</p>
|
| 834 |
+
</div>
|
| 835 |
+
</div>
|
| 836 |
+
<button
|
| 837 |
+
on:click={closeErrorModal}
|
| 838 |
+
class="p-2 hover:bg-red-100 rounded-full transition-colors flex-shrink-0"
|
| 839 |
+
title="Close"
|
| 840 |
+
>
|
| 841 |
+
<X size={20} class="text-gray-500" />
|
| 842 |
+
</button>
|
| 843 |
+
</div>
|
| 844 |
+
|
| 845 |
+
<!-- Content -->
|
| 846 |
+
<div class="p-6 overflow-y-auto flex-1 min-h-0">
|
| 847 |
+
{#if errorDetails}
|
| 848 |
+
<div class="bg-gray-50 rounded-lg p-4 border">
|
| 849 |
+
<h4 class="text-sm font-medium text-gray-900 mb-2">Error Details:</h4>
|
| 850 |
+
<pre class="text-xs text-gray-700 whitespace-pre-wrap font-mono leading-relaxed break-words">{errorDetails}</pre>
|
| 851 |
+
</div>
|
| 852 |
+
{/if}
|
| 853 |
+
</div>
|
| 854 |
+
|
| 855 |
+
<!-- Footer -->
|
| 856 |
+
<div class="flex items-center justify-end gap-3 p-6 border-t border-gray-200 bg-gray-50 flex-shrink-0">
|
| 857 |
+
<button
|
| 858 |
+
on:click={copyErrorMessage}
|
| 859 |
+
class="flex items-center gap-2 px-4 py-2 text-gray-700 hover:bg-gray-200 rounded-lg transition-colors"
|
| 860 |
+
>
|
| 861 |
+
<Copy size={16} />
|
| 862 |
+
Copy Error
|
| 863 |
+
</button>
|
| 864 |
+
<button
|
| 865 |
+
on:click={closeErrorModal}
|
| 866 |
+
class="px-6 py-2 bg-red-600 text-white rounded-lg hover:bg-red-700 transition-colors"
|
| 867 |
+
>
|
| 868 |
+
Close
|
| 869 |
+
</button>
|
| 870 |
+
</div>
|
| 871 |
+
</div>
|
| 872 |
+
</div>
|
| 873 |
+
{/if}
|
| 874 |
</div>
|
| 875 |
|
| 876 |
<style>
|
|
|
|
| 930 |
}
|
| 931 |
}
|
| 932 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 933 |
</style>
|
frontend/static/voices/andrew.mp3
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4ee4aaa04267d4c20f84a28281cc3a7850b4bd9fe659a137f4747a29cd2b2a70
|
| 3 |
+
size 289690
|
frontend/static/voices/fairy.mp3
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2b30f8ef6e243d7eac70d88a45a562b103e34d18c9e4419c94798dd431223e1d
|
| 3 |
+
size 405673
|
frontend/static/voices/pirate.mp3
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8c189f3801ee4616a8130fe64bb63cd36f00eeaf5791b2d904141ae8c574790c
|
| 3 |
+
size 401912
|
frontend/svelte.config.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
| 1 |
import adapter from '@sveltejs/adapter-static';
|
| 2 |
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
|
| 3 |
|
| 4 |
-
/** @type {import('@sveltejs/kit').Config} */
|
| 5 |
const config = {
|
| 6 |
preprocess: vitePreprocess(),
|
| 7 |
kit: {
|
|
|
|
| 1 |
import adapter from '@sveltejs/adapter-static';
|
| 2 |
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
|
| 3 |
|
|
|
|
| 4 |
const config = {
|
| 5 |
preprocess: vitePreprocess(),
|
| 6 |
kit: {
|
frontend/tailwind.config.js
CHANGED
|
@@ -1,44 +1,7 @@
|
|
| 1 |
-
/** @type {import('tailwindcss').Config} */
|
| 2 |
export default {
|
| 3 |
content: ['./src/**/*.{html,js,svelte,ts}'],
|
| 4 |
theme: {
|
| 5 |
-
extend: {
|
| 6 |
-
colors: {
|
| 7 |
-
border: "hsl(var(--border))",
|
| 8 |
-
input: "hsl(var(--input))",
|
| 9 |
-
ring: "hsl(var(--ring))",
|
| 10 |
-
background: "hsl(var(--background))",
|
| 11 |
-
foreground: "hsl(var(--foreground))",
|
| 12 |
-
primary: {
|
| 13 |
-
DEFAULT: "hsl(var(--primary))",
|
| 14 |
-
foreground: "hsl(var(--primary-foreground))",
|
| 15 |
-
},
|
| 16 |
-
secondary: {
|
| 17 |
-
DEFAULT: "hsl(var(--secondary))",
|
| 18 |
-
foreground: "hsl(var(--secondary-foreground))",
|
| 19 |
-
},
|
| 20 |
-
destructive: {
|
| 21 |
-
DEFAULT: "hsl(var(--destructive))",
|
| 22 |
-
foreground: "hsl(var(--destructive-foreground))",
|
| 23 |
-
},
|
| 24 |
-
muted: {
|
| 25 |
-
DEFAULT: "hsl(var(--muted))",
|
| 26 |
-
foreground: "hsl(var(--muted-foreground))",
|
| 27 |
-
},
|
| 28 |
-
accent: {
|
| 29 |
-
DEFAULT: "hsl(var(--accent))",
|
| 30 |
-
foreground: "hsl(var(--accent-foreground))",
|
| 31 |
-
},
|
| 32 |
-
popover: {
|
| 33 |
-
DEFAULT: "hsl(var(--popover))",
|
| 34 |
-
foreground: "hsl(var(--popover-foreground))",
|
| 35 |
-
},
|
| 36 |
-
card: {
|
| 37 |
-
DEFAULT: "hsl(var(--card))",
|
| 38 |
-
foreground: "hsl(var(--card-foreground))",
|
| 39 |
-
},
|
| 40 |
-
},
|
| 41 |
-
},
|
| 42 |
},
|
| 43 |
plugins: [],
|
| 44 |
}
|
|
|
|
|
|
|
| 1 |
export default {
|
| 2 |
content: ['./src/**/*.{html,js,svelte,ts}'],
|
| 3 |
theme: {
|
| 4 |
+
extend: {},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
},
|
| 6 |
plugins: [],
|
| 7 |
}
|
hfstudio/server.py
CHANGED
|
@@ -5,9 +5,6 @@ from fastapi.staticfiles import StaticFiles
|
|
| 5 |
from pydantic import BaseModel
|
| 6 |
from typing import Optional, Dict, Any
|
| 7 |
import base64
|
| 8 |
-
import io
|
| 9 |
-
import numpy as np
|
| 10 |
-
import soundfile as sf
|
| 11 |
import httpx
|
| 12 |
import os
|
| 13 |
from pathlib import Path
|
|
@@ -15,38 +12,29 @@ from huggingface_hub import InferenceClient, get_token, whoami
|
|
| 15 |
|
| 16 |
app = FastAPI(title="HFStudio API", version="0.1.0")
|
| 17 |
|
| 18 |
-
# Get the static files directory
|
| 19 |
static_dir = Path(__file__).parent / "static"
|
| 20 |
-
|
| 21 |
-
# Mount static files
|
| 22 |
if static_dir.exists():
|
| 23 |
app.mount("/static", StaticFiles(directory=str(static_dir)), name="static")
|
| 24 |
app.mount("/_app", StaticFiles(directory=str(static_dir / "_app")), name="app")
|
| 25 |
app.mount("/assets", StaticFiles(directory=str(static_dir / "assets")), name="assets")
|
| 26 |
app.mount("/samples", StaticFiles(directory=str(static_dir / "samples")), name="samples")
|
| 27 |
|
| 28 |
-
# Configure CORS
|
| 29 |
app.add_middleware(
|
| 30 |
CORSMiddleware,
|
| 31 |
-
allow_origins=[
|
| 32 |
-
"http://localhost:7860",
|
| 33 |
-
"http://localhost:11111",
|
| 34 |
-
"http://localhost:11112", # Add the current frontend port
|
| 35 |
-
"http://localhost:3000",
|
| 36 |
-
"*" # Allow all origins for Spaces deployment
|
| 37 |
-
],
|
| 38 |
allow_credentials=True,
|
| 39 |
allow_methods=["*"],
|
| 40 |
allow_headers=["*"],
|
| 41 |
)
|
| 42 |
|
| 43 |
-
# Models
|
| 44 |
class TTSRequest(BaseModel):
|
|
|
|
|
|
|
| 45 |
text: str
|
| 46 |
voice_id: str = "default"
|
| 47 |
model_id: str = "coqui-tts"
|
| 48 |
parameters: Dict[str, Any] = {}
|
| 49 |
-
mode: str = "api"
|
| 50 |
access_token: Optional[str] = None
|
| 51 |
|
| 52 |
class TTSResponse(BaseModel):
|
|
@@ -65,8 +53,8 @@ class Voice(BaseModel):
|
|
| 65 |
class Model(BaseModel):
|
| 66 |
id: str
|
| 67 |
name: str
|
| 68 |
-
type: str
|
| 69 |
-
status: str
|
| 70 |
|
| 71 |
class OAuthTokenRequest(BaseModel):
|
| 72 |
code: str
|
|
@@ -76,10 +64,8 @@ class OAuthTokenResponse(BaseModel):
|
|
| 76 |
token_type: str
|
| 77 |
scope: str
|
| 78 |
|
| 79 |
-
# Routes
|
| 80 |
@app.get("/")
|
| 81 |
async def root():
|
| 82 |
-
"""Serve the SvelteKit single-page application"""
|
| 83 |
index_path = static_dir / "index.html"
|
| 84 |
if index_path.exists():
|
| 85 |
return FileResponse(str(index_path), media_type="text/html")
|
|
@@ -96,8 +82,6 @@ async def get_status():
|
|
| 96 |
|
| 97 |
@app.get("/api/auth/oauth-config")
|
| 98 |
async def get_oauth_config():
|
| 99 |
-
"""Get OAuth configuration for the frontend"""
|
| 100 |
-
# Get scopes from environment variable or use default
|
| 101 |
scopes = os.getenv("OAUTH_SCOPES", "read-repos write-repos manage-repos inference-api")
|
| 102 |
|
| 103 |
return {
|
|
@@ -108,18 +92,14 @@ async def get_oauth_config():
|
|
| 108 |
|
| 109 |
@app.get("/api/auth/local-token")
|
| 110 |
async def get_local_token():
|
| 111 |
-
"""Get local HF token if available (for local development)"""
|
| 112 |
try:
|
| 113 |
-
# Check if we're running on Spaces
|
| 114 |
if os.getenv("SPACE_HOST"):
|
| 115 |
return {"available": False, "reason": "running_on_spaces"}
|
| 116 |
|
| 117 |
-
# Try to get local token
|
| 118 |
token = get_token()
|
| 119 |
if not token:
|
| 120 |
return {"available": False, "reason": "no_local_token"}
|
| 121 |
|
| 122 |
-
# Try to validate token by getting user info, but handle rate limiting gracefully
|
| 123 |
try:
|
| 124 |
user_info = whoami(token=token)
|
| 125 |
if user_info.get("type") != "user":
|
|
@@ -135,8 +115,6 @@ async def get_local_token():
|
|
| 135 |
}
|
| 136 |
}
|
| 137 |
except Exception as api_error:
|
| 138 |
-
# If API validation fails (e.g., rate limiting), still return the token
|
| 139 |
-
# The frontend can validate it when needed
|
| 140 |
if "429" in str(api_error) or "rate limit" in str(api_error).lower():
|
| 141 |
return {
|
| 142 |
"available": True,
|
|
@@ -176,62 +154,50 @@ async def get_models():
|
|
| 176 |
@app.post("/api/tts/generate")
|
| 177 |
async def generate_tts(request: TTSRequest):
|
| 178 |
try:
|
| 179 |
-
print(f"Received TTS request: mode={request.mode}, has_token={bool(request.access_token)}")
|
| 180 |
-
if request.access_token:
|
| 181 |
-
print(f"Token preview: {request.access_token[:10]}...")
|
| 182 |
-
|
| 183 |
-
# Check if we have an access token for API mode
|
| 184 |
if request.mode == "api" and request.access_token:
|
| 185 |
-
print("Using Chatterbox API...")
|
| 186 |
try:
|
| 187 |
-
# Use Chatterbox API via HuggingFace InferenceClient
|
| 188 |
client = InferenceClient(
|
| 189 |
provider="fal-ai",
|
| 190 |
api_key=request.access_token,
|
| 191 |
)
|
| 192 |
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
-
|
|
|
|
|
|
|
|
|
|
| 197 |
|
| 198 |
-
#
|
| 199 |
-
|
| 200 |
-
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
)
|
| 214 |
-
|
| 215 |
-
print(f"Success! Generated {{len(audio_bytes)}} bytes of audio")
|
| 216 |
-
""".strip())
|
| 217 |
-
print("=" * 80)
|
| 218 |
|
| 219 |
-
# Generate audio using Chatterbox
|
| 220 |
audio_bytes = client.text_to_speech(
|
| 221 |
request.text,
|
| 222 |
model="ResembleAI/chatterbox",
|
|
|
|
| 223 |
)
|
| 224 |
|
| 225 |
-
print(f"Received audio bytes: {len(audio_bytes)} bytes")
|
| 226 |
-
|
| 227 |
-
# Convert audio bytes to base64 for data URL
|
| 228 |
audio_base64 = base64.b64encode(audio_bytes).decode('utf-8')
|
| 229 |
audio_url = f"data:audio/wav;base64,{audio_base64}"
|
| 230 |
|
| 231 |
-
|
| 232 |
-
duration = len(request.text) * 0.05 # ~0.05 seconds per character
|
| 233 |
|
| 234 |
-
print("Successfully generated audio via Chatterbox API")
|
| 235 |
return TTSResponse(
|
| 236 |
audio_url=audio_url,
|
| 237 |
duration=duration,
|
|
@@ -239,9 +205,7 @@ print(f"Success! Generated {{len(audio_bytes)}} bytes of audio")
|
|
| 239 |
)
|
| 240 |
except Exception as api_error:
|
| 241 |
error_str = str(api_error)
|
| 242 |
-
print(f"Chatterbox API error: {error_str}")
|
| 243 |
|
| 244 |
-
# Provide specific error messages based on the error type
|
| 245 |
if "403 Forbidden" in error_str and "permissions" in error_str:
|
| 246 |
return TTSResponse(
|
| 247 |
success=False,
|
|
@@ -258,7 +222,6 @@ print(f"Success! Generated {{len(audio_bytes)}} bytes of audio")
|
|
| 258 |
error=f"Chatterbox API error: {error_str}"
|
| 259 |
)
|
| 260 |
|
| 261 |
-
# No token provided
|
| 262 |
if request.mode == "api":
|
| 263 |
return TTSResponse(
|
| 264 |
success=False,
|
|
@@ -274,32 +237,24 @@ print(f"Success! Generated {{len(audio_bytes)}} bytes of audio")
|
|
| 274 |
|
| 275 |
@app.post("/api/auth/token")
|
| 276 |
async def exchange_oauth_token(request: OAuthTokenRequest, http_request: Request):
|
| 277 |
-
"""Exchange OAuth authorization code for access token"""
|
| 278 |
try:
|
| 279 |
-
# HuggingFace OAuth token endpoint
|
| 280 |
token_url = "https://huggingface.co/oauth/token"
|
| 281 |
|
| 282 |
-
# OAuth app credentials - use environment variables on Spaces, fallback to hardcoded for local dev
|
| 283 |
client_id = os.getenv("OAUTH_CLIENT_ID", "cdf32a17-e40f-4a84-b683-f66aa1105793")
|
| 284 |
client_secret = os.getenv("OAUTH_CLIENT_SECRET", "f590cb2d-6eac-4cef-a0cb-d0116825295c")
|
| 285 |
|
| 286 |
-
# Determine redirect URI based on environment
|
| 287 |
if os.getenv("SPACE_HOST"):
|
| 288 |
-
|
| 289 |
-
space_host = os.getenv("SPACE_HOST").split(",")[0] # Handle custom domains
|
| 290 |
redirect_uri = f"https://{space_host}/auth/callback"
|
| 291 |
else:
|
| 292 |
-
# Local development - try to determine from referer header
|
| 293 |
referer = http_request.headers.get("referer", "")
|
| 294 |
if referer:
|
| 295 |
from urllib.parse import urlparse
|
| 296 |
parsed = urlparse(referer)
|
| 297 |
redirect_uri = f"{parsed.scheme}://{parsed.netloc}/auth/callback"
|
| 298 |
else:
|
| 299 |
-
# Final fallback for development
|
| 300 |
redirect_uri = "http://localhost:7860/auth/callback"
|
| 301 |
|
| 302 |
-
# Prepare token exchange request
|
| 303 |
token_data = {
|
| 304 |
"client_id": client_id,
|
| 305 |
"client_secret": client_secret,
|
|
@@ -308,7 +263,6 @@ async def exchange_oauth_token(request: OAuthTokenRequest, http_request: Request
|
|
| 308 |
"redirect_uri": redirect_uri,
|
| 309 |
}
|
| 310 |
|
| 311 |
-
# Exchange code for token
|
| 312 |
async with httpx.AsyncClient() as client:
|
| 313 |
response = await client.post(
|
| 314 |
token_url,
|
|
@@ -337,7 +291,6 @@ async def exchange_oauth_token(request: OAuthTokenRequest, http_request: Request
|
|
| 337 |
|
| 338 |
@app.get("/auth/callback")
|
| 339 |
async def oauth_callback(code: str = None, state: str = None, request: Request = None):
|
| 340 |
-
"""Handle OAuth callback and redirect to frontend with token"""
|
| 341 |
if not code:
|
| 342 |
return HTMLResponse("""
|
| 343 |
<html>
|
|
@@ -351,19 +304,15 @@ async def oauth_callback(code: str = None, state: str = None, request: Request =
|
|
| 351 |
""", status_code=400)
|
| 352 |
|
| 353 |
try:
|
| 354 |
-
# Exchange code for token using the same logic as the API endpoint
|
| 355 |
token_url = "https://huggingface.co/oauth/token"
|
| 356 |
|
| 357 |
client_id = os.getenv("OAUTH_CLIENT_ID", "cdf32a17-e40f-4a84-b683-f66aa1105793")
|
| 358 |
client_secret = os.getenv("OAUTH_CLIENT_SECRET", "f590cb2d-6eac-4cef-a0cb-d0116825295c")
|
| 359 |
|
| 360 |
-
# Determine redirect URI based on environment
|
| 361 |
if os.getenv("SPACE_HOST"):
|
| 362 |
-
|
| 363 |
-
space_host = os.getenv("SPACE_HOST").split(",")[0] # Handle custom domains
|
| 364 |
redirect_uri = f"https://{space_host}/auth/callback"
|
| 365 |
else:
|
| 366 |
-
# Local development
|
| 367 |
redirect_uri = "http://localhost:7860/auth/callback"
|
| 368 |
|
| 369 |
token_data = {
|
|
@@ -385,7 +334,6 @@ async def oauth_callback(code: str = None, state: str = None, request: Request =
|
|
| 385 |
token_response = response.json()
|
| 386 |
access_token = token_response["access_token"]
|
| 387 |
|
| 388 |
-
# Return HTML page that stores token and closes popup/redirects
|
| 389 |
return HTMLResponse(f"""
|
| 390 |
<html>
|
| 391 |
<head><title>OAuth Success</title></head>
|
|
@@ -423,20 +371,15 @@ async def oauth_callback(code: str = None, state: str = None, request: Request =
|
|
| 423 |
</html>
|
| 424 |
""", status_code=500)
|
| 425 |
|
| 426 |
-
# Catch-all route to serve the SvelteKit app (excluding API routes)
|
| 427 |
@app.get("/{path:path}")
|
| 428 |
async def serve_spa(path: str):
|
| 429 |
-
"""Serve the SvelteKit single-page application for non-API routes"""
|
| 430 |
-
# Skip API routes
|
| 431 |
if path.startswith("api/") or path.startswith("docs") or path.startswith("openapi.json"):
|
| 432 |
raise HTTPException(status_code=404, detail="Not found")
|
| 433 |
|
| 434 |
-
# For any non-API route, serve the index.html
|
| 435 |
index_path = static_dir / "index.html"
|
| 436 |
if index_path.exists():
|
| 437 |
return FileResponse(str(index_path), media_type="text/html")
|
| 438 |
else:
|
| 439 |
-
# Fallback if no built frontend
|
| 440 |
return HTMLResponse("""
|
| 441 |
<html>
|
| 442 |
<head><title>HFStudio</title></head>
|
|
|
|
| 5 |
from pydantic import BaseModel
|
| 6 |
from typing import Optional, Dict, Any
|
| 7 |
import base64
|
|
|
|
|
|
|
|
|
|
| 8 |
import httpx
|
| 9 |
import os
|
| 10 |
from pathlib import Path
|
|
|
|
| 12 |
|
| 13 |
app = FastAPI(title="HFStudio API", version="0.1.0")
|
| 14 |
|
|
|
|
| 15 |
static_dir = Path(__file__).parent / "static"
|
|
|
|
|
|
|
| 16 |
if static_dir.exists():
|
| 17 |
app.mount("/static", StaticFiles(directory=str(static_dir)), name="static")
|
| 18 |
app.mount("/_app", StaticFiles(directory=str(static_dir / "_app")), name="app")
|
| 19 |
app.mount("/assets", StaticFiles(directory=str(static_dir / "assets")), name="assets")
|
| 20 |
app.mount("/samples", StaticFiles(directory=str(static_dir / "samples")), name="samples")
|
| 21 |
|
|
|
|
| 22 |
app.add_middleware(
|
| 23 |
CORSMiddleware,
|
| 24 |
+
allow_origins=["*"],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
allow_credentials=True,
|
| 26 |
allow_methods=["*"],
|
| 27 |
allow_headers=["*"],
|
| 28 |
)
|
| 29 |
|
|
|
|
| 30 |
class TTSRequest(BaseModel):
|
| 31 |
+
model_config = {"protected_namespaces": ()}
|
| 32 |
+
|
| 33 |
text: str
|
| 34 |
voice_id: str = "default"
|
| 35 |
model_id: str = "coqui-tts"
|
| 36 |
parameters: Dict[str, Any] = {}
|
| 37 |
+
mode: str = "api"
|
| 38 |
access_token: Optional[str] = None
|
| 39 |
|
| 40 |
class TTSResponse(BaseModel):
|
|
|
|
| 53 |
class Model(BaseModel):
|
| 54 |
id: str
|
| 55 |
name: str
|
| 56 |
+
type: str
|
| 57 |
+
status: str
|
| 58 |
|
| 59 |
class OAuthTokenRequest(BaseModel):
|
| 60 |
code: str
|
|
|
|
| 64 |
token_type: str
|
| 65 |
scope: str
|
| 66 |
|
|
|
|
| 67 |
@app.get("/")
|
| 68 |
async def root():
|
|
|
|
| 69 |
index_path = static_dir / "index.html"
|
| 70 |
if index_path.exists():
|
| 71 |
return FileResponse(str(index_path), media_type="text/html")
|
|
|
|
| 82 |
|
| 83 |
@app.get("/api/auth/oauth-config")
|
| 84 |
async def get_oauth_config():
|
|
|
|
|
|
|
| 85 |
scopes = os.getenv("OAUTH_SCOPES", "read-repos write-repos manage-repos inference-api")
|
| 86 |
|
| 87 |
return {
|
|
|
|
| 92 |
|
| 93 |
@app.get("/api/auth/local-token")
|
| 94 |
async def get_local_token():
|
|
|
|
| 95 |
try:
|
|
|
|
| 96 |
if os.getenv("SPACE_HOST"):
|
| 97 |
return {"available": False, "reason": "running_on_spaces"}
|
| 98 |
|
|
|
|
| 99 |
token = get_token()
|
| 100 |
if not token:
|
| 101 |
return {"available": False, "reason": "no_local_token"}
|
| 102 |
|
|
|
|
| 103 |
try:
|
| 104 |
user_info = whoami(token=token)
|
| 105 |
if user_info.get("type") != "user":
|
|
|
|
| 115 |
}
|
| 116 |
}
|
| 117 |
except Exception as api_error:
|
|
|
|
|
|
|
| 118 |
if "429" in str(api_error) or "rate limit" in str(api_error).lower():
|
| 119 |
return {
|
| 120 |
"available": True,
|
|
|
|
| 154 |
@app.post("/api/tts/generate")
|
| 155 |
async def generate_tts(request: TTSRequest):
|
| 156 |
try:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 157 |
if request.mode == "api" and request.access_token:
|
|
|
|
| 158 |
try:
|
|
|
|
| 159 |
client = InferenceClient(
|
| 160 |
provider="fal-ai",
|
| 161 |
api_key=request.access_token,
|
| 162 |
)
|
| 163 |
|
| 164 |
+
# Build extra_body with the parameters
|
| 165 |
+
extra_body = {}
|
| 166 |
+
if request.parameters:
|
| 167 |
+
if "exaggeration" in request.parameters:
|
| 168 |
+
extra_body["exaggeration"] = request.parameters["exaggeration"]
|
| 169 |
+
if "temperature" in request.parameters:
|
| 170 |
+
extra_body["temperature"] = request.parameters["temperature"]
|
| 171 |
|
| 172 |
+
# Add audio_url for voice reference
|
| 173 |
+
voice_urls = {
|
| 174 |
+
"lily": "https://huggingface.co/spaces/abidlabs/hfstudio/resolve/main/frontend/static/voices/lily.mp3",
|
| 175 |
+
"andrew": "https://huggingface.co/spaces/abidlabs/hfstudio/resolve/main/frontend/static/voices/andrew.mp3",
|
| 176 |
+
"fairy": "https://huggingface.co/spaces/abidlabs/hfstudio/resolve/main/frontend/static/voices/fairy.mp3",
|
| 177 |
+
"pirate": "https://huggingface.co/spaces/abidlabs/hfstudio/resolve/main/frontend/static/voices/pirate.mp3"
|
| 178 |
+
}
|
| 179 |
+
|
| 180 |
+
if request.voice_id.lower() in voice_urls:
|
| 181 |
+
extra_body["audio_url"] = voice_urls[request.voice_id.lower()]
|
| 182 |
+
|
| 183 |
+
# Debug: Print the exact request being made
|
| 184 |
+
print(f"DEBUG: Making TTS request:")
|
| 185 |
+
print(f" Text: {request.text[:50]}...")
|
| 186 |
+
print(f" Model: ResembleAI/chatterbox")
|
| 187 |
+
print(f" Voice ID: {request.voice_id}")
|
| 188 |
+
print(f" Extra body: {extra_body}")
|
|
|
|
|
|
|
|
|
|
| 189 |
|
|
|
|
| 190 |
audio_bytes = client.text_to_speech(
|
| 191 |
request.text,
|
| 192 |
model="ResembleAI/chatterbox",
|
| 193 |
+
extra_body=extra_body if extra_body else None,
|
| 194 |
)
|
| 195 |
|
|
|
|
|
|
|
|
|
|
| 196 |
audio_base64 = base64.b64encode(audio_bytes).decode('utf-8')
|
| 197 |
audio_url = f"data:audio/wav;base64,{audio_base64}"
|
| 198 |
|
| 199 |
+
duration = len(request.text) * 0.05
|
|
|
|
| 200 |
|
|
|
|
| 201 |
return TTSResponse(
|
| 202 |
audio_url=audio_url,
|
| 203 |
duration=duration,
|
|
|
|
| 205 |
)
|
| 206 |
except Exception as api_error:
|
| 207 |
error_str = str(api_error)
|
|
|
|
| 208 |
|
|
|
|
| 209 |
if "403 Forbidden" in error_str and "permissions" in error_str:
|
| 210 |
return TTSResponse(
|
| 211 |
success=False,
|
|
|
|
| 222 |
error=f"Chatterbox API error: {error_str}"
|
| 223 |
)
|
| 224 |
|
|
|
|
| 225 |
if request.mode == "api":
|
| 226 |
return TTSResponse(
|
| 227 |
success=False,
|
|
|
|
| 237 |
|
| 238 |
@app.post("/api/auth/token")
|
| 239 |
async def exchange_oauth_token(request: OAuthTokenRequest, http_request: Request):
|
|
|
|
| 240 |
try:
|
|
|
|
| 241 |
token_url = "https://huggingface.co/oauth/token"
|
| 242 |
|
|
|
|
| 243 |
client_id = os.getenv("OAUTH_CLIENT_ID", "cdf32a17-e40f-4a84-b683-f66aa1105793")
|
| 244 |
client_secret = os.getenv("OAUTH_CLIENT_SECRET", "f590cb2d-6eac-4cef-a0cb-d0116825295c")
|
| 245 |
|
|
|
|
| 246 |
if os.getenv("SPACE_HOST"):
|
| 247 |
+
space_host = os.getenv("SPACE_HOST").split(",")[0]
|
|
|
|
| 248 |
redirect_uri = f"https://{space_host}/auth/callback"
|
| 249 |
else:
|
|
|
|
| 250 |
referer = http_request.headers.get("referer", "")
|
| 251 |
if referer:
|
| 252 |
from urllib.parse import urlparse
|
| 253 |
parsed = urlparse(referer)
|
| 254 |
redirect_uri = f"{parsed.scheme}://{parsed.netloc}/auth/callback"
|
| 255 |
else:
|
|
|
|
| 256 |
redirect_uri = "http://localhost:7860/auth/callback"
|
| 257 |
|
|
|
|
| 258 |
token_data = {
|
| 259 |
"client_id": client_id,
|
| 260 |
"client_secret": client_secret,
|
|
|
|
| 263 |
"redirect_uri": redirect_uri,
|
| 264 |
}
|
| 265 |
|
|
|
|
| 266 |
async with httpx.AsyncClient() as client:
|
| 267 |
response = await client.post(
|
| 268 |
token_url,
|
|
|
|
| 291 |
|
| 292 |
@app.get("/auth/callback")
|
| 293 |
async def oauth_callback(code: str = None, state: str = None, request: Request = None):
|
|
|
|
| 294 |
if not code:
|
| 295 |
return HTMLResponse("""
|
| 296 |
<html>
|
|
|
|
| 304 |
""", status_code=400)
|
| 305 |
|
| 306 |
try:
|
|
|
|
| 307 |
token_url = "https://huggingface.co/oauth/token"
|
| 308 |
|
| 309 |
client_id = os.getenv("OAUTH_CLIENT_ID", "cdf32a17-e40f-4a84-b683-f66aa1105793")
|
| 310 |
client_secret = os.getenv("OAUTH_CLIENT_SECRET", "f590cb2d-6eac-4cef-a0cb-d0116825295c")
|
| 311 |
|
|
|
|
| 312 |
if os.getenv("SPACE_HOST"):
|
| 313 |
+
space_host = os.getenv("SPACE_HOST").split(",")[0]
|
|
|
|
| 314 |
redirect_uri = f"https://{space_host}/auth/callback"
|
| 315 |
else:
|
|
|
|
| 316 |
redirect_uri = "http://localhost:7860/auth/callback"
|
| 317 |
|
| 318 |
token_data = {
|
|
|
|
| 334 |
token_response = response.json()
|
| 335 |
access_token = token_response["access_token"]
|
| 336 |
|
|
|
|
| 337 |
return HTMLResponse(f"""
|
| 338 |
<html>
|
| 339 |
<head><title>OAuth Success</title></head>
|
|
|
|
| 371 |
</html>
|
| 372 |
""", status_code=500)
|
| 373 |
|
|
|
|
| 374 |
@app.get("/{path:path}")
|
| 375 |
async def serve_spa(path: str):
|
|
|
|
|
|
|
| 376 |
if path.startswith("api/") or path.startswith("docs") or path.startswith("openapi.json"):
|
| 377 |
raise HTTPException(status_code=404, detail="Not found")
|
| 378 |
|
|
|
|
| 379 |
index_path = static_dir / "index.html"
|
| 380 |
if index_path.exists():
|
| 381 |
return FileResponse(str(index_path), media_type="text/html")
|
| 382 |
else:
|
|
|
|
| 383 |
return HTMLResponse("""
|
| 384 |
<html>
|
| 385 |
<head><title>HFStudio</title></head>
|
hfstudio/static/_app/immutable/assets/0.Ggx0bHAf.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.left-56{left:14rem}.right-0{right:0}.right-4{right:1rem}.right-80{right:20rem}.top-full{top:100%}.z-10{z-index:10}.z-50{z-index:50}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.block{display:block}.flex{display:flex}.contents{display:contents}.hidden{display:none}.h-0{height:0px}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[80vh\]{max-height:80vh}.min-h-0{min-height:0px}.w-0{width:0px}.w-10{width:2.5rem}.w-12{width:3rem}.w-2{width:.5rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-8{width:2rem}.w-80{width:20rem}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-150{--tw-scale-x: 1.5;--tw-scale-y: 1.5;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-r-4{border-right-width:4px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-r-transparent{border-right-color:transparent}.border-t-blue-600{--tw-border-opacity: 1;border-top-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-opacity-50{--tw-bg-opacity: .5}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-amber-400{--tw-gradient-from: #fbbf24 var(--tw-gradient-from-position);--tw-gradient-to: rgb(251 191 36 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-orange-500{--tw-gradient-to: #f97316 var(--tw-gradient-to-position)}.bg-right{background-position:right}.bg-no-repeat{background-repeat:no-repeat}.p-0\.5{padding:.125rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-24{padding-bottom:6rem}.pr-10{padding-right:2.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.text-blue-100{--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.slider-hf::-webkit-slider-thumb{height:1rem;width:1rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:9999px;background:linear-gradient(45deg,#ffd21e,#ff9d00);box-shadow:0 1px 3px #0000001a}.slider-hf::-moz-range-thumb{height:1rem;width:1rem;cursor:pointer;border-radius:9999px;border-width:0px;background:linear-gradient(45deg,#ffd21e,#ff9d00);box-shadow:0 1px 3px #0000001a}.pause-filled{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px}.pause-filled:before,.pause-filled:after{content:"";width:2px;height:10px;background-color:currentColor;border-radius:1px}.pause-filled:before{margin-right:2px}.pause-filled:after{margin-left:2px}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.hover\:bg-orange-600:hover{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity, 1))}.hover\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:from-amber-500:hover{--tw-gradient-from: #f59e0b var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:to-orange-600:hover{--tw-gradient-to: #ea580c var(--tw-gradient-to-position)}.hover\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-amber-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(251 191 36 / var(--tw-ring-opacity, 1))}.focus\:ring-orange-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(249 115 22 / var(--tw-ring-opacity, 1))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}
|
hfstudio/static/_app/immutable/assets/2.NHOETQX0.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
@keyframes svelte-zv1zz2-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in.svelte-zv1zz2{animation:svelte-zv1zz2-fade-in .3s ease-out}@keyframes svelte-zv1zz2-sweep{0%{left:-100%}20%{left:-100%}80%{left:100%}to{left:100%}}.flash-sweep.svelte-zv1zz2{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(251,191,36,.5) 25%,rgba(249,115,22,.8) 50%,rgba(251,191,36,.5) 75%,transparent 100%);animation:svelte-zv1zz2-sweep 2s ease-in-out;pointer-events:none}.code-flash.svelte-zv1zz2{animation:svelte-zv1zz2-pulse .5s ease-out}@keyframes svelte-zv1zz2-pulse{0%{box-shadow:0 0 #fbbf2400}50%{box-shadow:0 0 0 6px #fbbf2466}to{box-shadow:0 0 #fbbf2400}}
|
hfstudio/static/_app/immutable/chunks/Bqgpa-5T.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
var F=Object.defineProperty;var W=(t,n,e)=>n in t?F(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e;var N=(t,n,e)=>W(t,typeof n!="symbol"?n+"":n,e);function w(){}function G(t,n){for(const e in n)t[e]=n[e];return t}function B(t){return t()}function O(){return Object.create(null)}function $(t){t.forEach(B)}function D(t){return typeof t=="function"}function ht(t,n){return t!=t?n==n:t!==n||t&&typeof t=="object"||typeof t=="function"}let b;function mt(t,n){return t===n?!0:(b||(b=document.createElement("a")),b.href=n,t===b.href)}function J(t){return Object.keys(t).length===0}function K(t,...n){if(t==null){for(const r of n)r(void 0);return w}const e=t.subscribe(...n);return e.unsubscribe?()=>e.unsubscribe():e}function pt(t,n,e){t.$$.on_destroy.push(K(n,e))}function yt(t,n,e,r){if(t){const i=T(t,n,e,r);return t[0](i)}}function T(t,n,e,r){return t[1]&&r?G(e.ctx.slice(),t[1](r(n))):e.ctx}function gt(t,n,e,r){if(t[2]&&r){const i=t[2](r(e));if(n.dirty===void 0)return i;if(typeof i=="object"){const l=[],c=Math.max(n.dirty.length,i.length);for(let o=0;o<c;o+=1)l[o]=n.dirty[o]|i[o];return l}return n.dirty|i}return n.dirty}function $t(t,n,e,r,i,l){if(i){const c=T(n,e,r,l);t.p(c,i)}}function xt(t){if(t.ctx.length>32){const n=[],e=t.ctx.length/32;for(let r=0;r<e;r++)n[r]=-1;return n}return-1}function bt(t){const n={};for(const e in t)e[0]!=="$"&&(n[e]=t[e]);return n}function vt(t,n){const e={};n=new Set(n);for(const r in t)!n.has(r)&&r[0]!=="$"&&(e[r]=t[r]);return e}let E=!1;function Q(){E=!0}function R(){E=!1}function V(t,n,e,r){for(;t<n;){const i=t+(n-t>>1);e(i)<=r?t=i+1:n=i}return t}function X(t){if(t.hydrate_init)return;t.hydrate_init=!0;let n=t.childNodes;if(t.nodeName==="HEAD"){const u=[];for(let s=0;s<n.length;s++){const f=n[s];f.claim_order!==void 0&&u.push(f)}n=u}const e=new Int32Array(n.length+1),r=new Int32Array(n.length);e[0]=-1;let i=0;for(let u=0;u<n.length;u++){const s=n[u].claim_order,f=(i>0&&n[e[i]].claim_order<=s?i+1:V(1,i,x=>n[e[x]].claim_order,s))-1;r[u]=e[f]+1;const a=f+1;e[a]=u,i=Math.max(a,i)}const l=[],c=[];let o=n.length-1;for(let u=e[i]+1;u!=0;u=r[u-1]){for(l.push(n[u-1]);o>=u;o--)c.push(n[o]);o--}for(;o>=0;o--)c.push(n[o]);l.reverse(),c.sort((u,s)=>u.claim_order-s.claim_order);for(let u=0,s=0;u<c.length;u++){for(;s<l.length&&c[u].claim_order>=l[s].claim_order;)s++;const f=s<l.length?l[s]:null;t.insertBefore(c[u],f)}}function Y(t,n){if(E){for(X(t),(t.actual_end_child===void 0||t.actual_end_child!==null&&t.actual_end_child.parentNode!==t)&&(t.actual_end_child=t.firstChild);t.actual_end_child!==null&&t.actual_end_child.claim_order===void 0;)t.actual_end_child=t.actual_end_child.nextSibling;n!==t.actual_end_child?(n.claim_order!==void 0||n.parentNode!==t)&&t.insertBefore(n,t.actual_end_child):t.actual_end_child=n.nextSibling}else(n.parentNode!==t||n.nextSibling!==null)&&t.appendChild(n)}function wt(t,n,e){E&&!e?Y(t,n):(n.parentNode!==t||n.nextSibling!=e)&&t.insertBefore(n,e||null)}function Z(t){t.parentNode&&t.parentNode.removeChild(t)}function Et(t,n){for(let e=0;e<t.length;e+=1)t[e]&&t[e].d(n)}function tt(t){return document.createElement(t)}function nt(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function j(t){return document.createTextNode(t)}function Nt(){return j(" ")}function At(){return j("")}function Ct(t,n,e,r){return t.addEventListener(n,e,r),()=>t.removeEventListener(n,e,r)}function et(t,n,e){e==null?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}function St(t,n){for(const e in n)et(t,e,n[e])}function jt(t){return t.dataset.svelteH}function kt(t){return t===""?null:+t}function rt(t){return Array.from(t.childNodes)}function it(t){t.claim_info===void 0&&(t.claim_info={last_index:0,total_claimed:0})}function H(t,n,e,r,i=!1){it(t);const l=(()=>{for(let c=t.claim_info.last_index;c<t.length;c++){const o=t[c];if(n(o)){const u=e(o);return u===void 0?t.splice(c,1):t[c]=u,i||(t.claim_info.last_index=c),o}}for(let c=t.claim_info.last_index-1;c>=0;c--){const o=t[c];if(n(o)){const u=e(o);return u===void 0?t.splice(c,1):t[c]=u,i?u===void 0&&t.claim_info.last_index--:t.claim_info.last_index=c,o}}return r()})();return l.claim_order=t.claim_info.total_claimed,t.claim_info.total_claimed+=1,l}function I(t,n,e,r){return H(t,i=>i.nodeName===n,i=>{const l=[];for(let c=0;c<i.attributes.length;c++){const o=i.attributes[c];e[o.name]||l.push(o.name)}l.forEach(c=>i.removeAttribute(c))},()=>r(n))}function Mt(t,n,e){return I(t,n,e,tt)}function Ot(t,n,e){return I(t,n,e,nt)}function ct(t,n){return H(t,e=>e.nodeType===3,e=>{const r=""+n;if(e.data.startsWith(r)){if(e.data.length!==r.length)return e.splitText(r.length)}else e.data=r},()=>j(n),!0)}function Pt(t){return ct(t," ")}function qt(t,n){n=""+n,t.data!==n&&(t.data=n)}function Bt(t,n){t.value=n??""}function Dt(t,n,e,r){e==null?t.style.removeProperty(n):t.style.setProperty(n,e,"")}function ut(t,n,{bubbles:e=!1,cancelable:r=!1}={}){return new CustomEvent(t,{detail:n,bubbles:e,cancelable:r})}function Tt(t,n){return new t(n)}let g;function y(t){g=t}function _(){if(!g)throw new Error("Function called outside component initialization");return g}function Ht(t){_().$$.before_update.push(t)}function It(t){_().$$.on_mount.push(t)}function Lt(t){_().$$.after_update.push(t)}function Ut(t){_().$$.on_destroy.push(t)}function zt(){const t=_();return(n,e,{cancelable:r=!1}={})=>{const i=t.$$.callbacks[n];if(i){const l=ut(n,e,{cancelable:r});return i.slice().forEach(c=>{c.call(t,l)}),!l.defaultPrevented}return!0}}function Ft(t,n){return _().$$.context.set(t,n),n}function Wt(t){return _().$$.context.get(t)}function Gt(){return _().$$.context}function Jt(t){return _().$$.context.has(t)}const m=[],P=[];let p=[];const q=[],L=Promise.resolve();let C=!1;function U(){C||(C=!0,L.then(z))}function Kt(){return U(),L}function S(t){p.push(t)}const A=new Set;let h=0;function z(){if(h!==0)return;const t=g;do{try{for(;h<m.length;){const n=m[h];h++,y(n),st(n.$$)}}catch(n){throw m.length=0,h=0,n}for(y(null),m.length=0,h=0;P.length;)P.pop()();for(let n=0;n<p.length;n+=1){const e=p[n];A.has(e)||(A.add(e),e())}p.length=0}while(m.length);for(;q.length;)q.pop()();C=!1,A.clear(),y(t)}function st(t){if(t.fragment!==null){t.update(),$(t.before_update);const n=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,n),t.after_update.forEach(S)}}function ot(t){const n=[],e=[];p.forEach(r=>t.indexOf(r)===-1?n.push(r):e.push(r)),e.forEach(r=>r()),p=n}const v=new Set;let d;function Qt(){d={r:0,c:[],p:d}}function Rt(){d.r||$(d.c),d=d.p}function lt(t,n){t&&t.i&&(v.delete(t),t.i(n))}function Vt(t,n,e,r){if(t&&t.o){if(v.has(t))return;v.add(t),d.c.push(()=>{v.delete(t),r&&(e&&t.d(1),r())}),t.o(n)}else r&&r()}function Xt(t){t&&t.c()}function Yt(t,n){t&&t.l(n)}function at(t,n,e){const{fragment:r,after_update:i}=t.$$;r&&r.m(n,e),S(()=>{const l=t.$$.on_mount.map(B).filter(D);t.$$.on_destroy?t.$$.on_destroy.push(...l):$(l),t.$$.on_mount=[]}),i.forEach(S)}function ft(t,n){const e=t.$$;e.fragment!==null&&(ot(e.after_update),$(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}function _t(t,n){t.$$.dirty[0]===-1&&(m.push(t),U(),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<<n%31}function Zt(t,n,e,r,i,l,c=null,o=[-1]){const u=g;y(t);const s=t.$$={fragment:null,ctx:[],props:l,update:w,not_equal:i,bound:O(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(n.context||(u?u.$$.context:[])),callbacks:O(),dirty:o,skip_bound:!1,root:n.target||u.$$.root};c&&c(s.root);let f=!1;if(s.ctx=e?e(t,n.props||{},(a,x,...k)=>{const M=k.length?k[0]:x;return s.ctx&&i(s.ctx[a],s.ctx[a]=M)&&(!s.skip_bound&&s.bound[a]&&s.bound[a](M),f&&_t(t,a)),x}):[],s.update(),f=!0,$(s.before_update),s.fragment=r?r(s.ctx):!1,n.target){if(n.hydrate){Q();const a=rt(n.target);s.fragment&&s.fragment.l(a),a.forEach(Z)}else s.fragment&&s.fragment.c();n.intro&<(t.$$.fragment),at(t,n.target,n.anchor),R(),z()}y(u)}class tn{constructor(){N(this,"$$");N(this,"$$set")}$destroy(){ft(this,1),this.$destroy=w}$on(n,e){if(!D(e))return w;const r=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return r.push(e),()=>{const i=r.indexOf(e);i!==-1&&r.splice(i,1)}}$set(n){this.$$set&&!J(n)&&(this.$$.skip_bound=!0,this.$$set(n),this.$$.skip_bound=!1)}}export{Jt as $,w as A,pt as B,Qt as C,Rt as D,At as E,Lt as F,Kt as G,Tt as H,ft as I,Xt as J,at as K,Yt as L,Dt as M,P as N,G as O,Et as P,St as Q,Ot as R,tn as S,nt as T,vt as U,bt as V,kt as W,Ht as X,zt as Y,Gt as Z,Wt as _,lt as a,Ut as a0,Ft as a1,et as b,yt as c,Z as d,gt as e,wt as f,xt as g,Y as h,Zt as i,mt as j,Mt as k,Ct as l,rt as m,jt as n,Pt as o,tt as p,Nt as q,$ as r,ht as s,Vt as t,$t as u,It as v,Bt as w,qt as x,ct as y,j as z};
|
hfstudio/static/_app/immutable/chunks/Bs9I3-rU.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
var St=Object.defineProperty;var kt=(e,t,n)=>t in e?St(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var R=(e,t,n)=>kt(e,typeof t!="symbol"?t+"":t,n);import{S as Et,F as At,X as Rt,Y as Tt,Z as It,_ as Ut,$ as Lt,a0 as $t,v as ve,a1 as xt,G as be,A as ge,s as Ct}from"./Bqgpa-5T.js";class Ze extends Et{constructor(n){if(!n||!n.target&&!n.$$inline)throw new Error("'target' is a required option");super();R(this,"$$prop_def");R(this,"$$events_def");R(this,"$$slot_def")}$destroy(){super.$destroy(),this.$destroy=()=>{console.warn("Component was already destroyed")}}$capture_state(){}$inject_state(){}}class Pt extends Ze{}const Ot=Object.freeze(Object.defineProperty({__proto__:null,SvelteComponent:Ze,SvelteComponentTyped:Pt,afterUpdate:At,beforeUpdate:Rt,createEventDispatcher:Tt,getAllContexts:It,getContext:Ut,hasContext:Lt,onDestroy:$t,onMount:ve,setContext:xt,tick:be},Symbol.toStringTag,{value:"Module"}));class ie{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Re{constructor(t,n){this.status=t,this.location=n}}class Te extends Error{constructor(t,n,r){super(r),this.status=t,this.text=n}}new URL("sveltekit-internal://");function jt(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function Nt(e){return e.split("%25").map(decodeURI).join("%25")}function Dt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function me({href:e}){return e.split("#")[0]}function Ft(e,t,n,r=!1){const a=new URL(e);Object.defineProperty(a,"searchParams",{value:new Proxy(a.searchParams,{get(i,o){if(o==="get"||o==="getAll"||o==="has")return l=>(n(l),i[o](l));t();const c=Reflect.get(i,o);return typeof c=="function"?c.bind(i):c}}),enumerable:!0,configurable:!0});const s=["href","pathname","search","toString","toJSON"];r&&s.push("hash");for(const i of s)Object.defineProperty(a,i,{get(){return t(),e[i]},enumerable:!0,configurable:!0});return a}function Bt(...e){let t=5381;for(const n of e)if(typeof n=="string"){let r=n.length;for(;r;)t=t*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)t=t*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;const Mt=new TextDecoder;function Vt(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}const qt=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:(t==null?void 0:t.method)||"GET")!=="GET"&&Y.delete(Ie(e)),qt(e,t));const Y=new Map;function Gt(e,t){const n=Ie(e,t),r=document.querySelector(n);if(r!=null&&r.textContent){r.remove();let{body:a,...s}=JSON.parse(r.textContent);const i=r.getAttribute("data-ttl");return i&&Y.set(n,{body:a,init:s,ttl:1e3*Number(i)}),r.getAttribute("data-b64")!==null&&(a=Vt(a)),Promise.resolve(new Response(a,s))}return window.fetch(e,t)}function Yt(e,t,n){if(Y.size>0){const r=Ie(e,n),a=Y.get(r);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(n==null?void 0:n.cache))return new Response(a.body,a.init);Y.delete(r)}}return window.fetch(t,n)}function Ie(e,t){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t!=null&&t.headers||t!=null&&t.body){const a=[];t.headers&&a.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&a.push(t.body),r+=`[data-hash="${Bt(...a)}"]`}return r}const Ht=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function Kt(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${Wt(e).map(r=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return t.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const s=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(s)return t.push({name:s[1],matcher:s[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const i=r.split(/\[(.+?)\](?!\])/);return"/"+i.map((c,l)=>{if(l%2){if(c.startsWith("x+"))return _e(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return _e(String.fromCharCode(...c.slice(2).split("-").map(u=>parseInt(u,16))));const d=Ht.exec(c),[,h,y,f,p]=d;return t.push({name:f,matcher:p,optional:!!h,rest:!!y,chained:y?l===1&&i[0]==="":!1}),y?"([^]*?)":h?"([^/]*)?":"([^/]+?)"}return _e(c)}).join("")}).join("")}/?$`),params:t}}function zt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function Wt(e){return e.slice(1).split("/").filter(zt)}function Jt(e,t,n){const r={},a=e.slice(1),s=a.filter(o=>o!==void 0);let i=0;for(let o=0;o<t.length;o+=1){const c=t[o];let l=a[o-i];if(c.chained&&c.rest&&i&&(l=a.slice(o-i,o+1).filter(d=>d).join("/"),i=0),l===void 0){c.rest&&(r[c.name]="");continue}if(!c.matcher||n[c.matcher](l)){r[c.name]=l;const d=t[o+1],h=a[o+1];d&&!d.rest&&d.optional&&h&&c.chained&&(i=0),!d&&!h&&Object.keys(r).length===s.length&&(i=0);continue}if(c.optional&&c.chained){i++;continue}return}if(!i)return r}function _e(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Xt({nodes:e,server_loads:t,dictionary:n,matchers:r}){const a=new Set(t);return Object.entries(n).map(([o,[c,l,d]])=>{const{pattern:h,params:y}=Kt(o),f={id:o,exec:p=>{const u=h.exec(p);if(u)return Jt(u,y,r)},errors:[1,...d||[]].map(p=>e[p]),layouts:[0,...l||[]].map(i),leaf:s(c)};return f.errors.length=f.layouts.length=Math.max(f.errors.length,f.layouts.length),f});function s(o){const c=o<0;return c&&(o=~o),[c,e[o]]}function i(o){return o===void 0?o:[a.has(o),e[o]]}}function Qe(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Be(e,t,n=JSON.stringify){const r=n(t);try{sessionStorage[e]=r}catch{}}const D=[];function Ue(e,t=ge){let n;const r=new Set;function a(o){if(Ct(e,o)&&(e=o,n)){const c=!D.length;for(const l of r)l[1](),D.push(l,e);if(c){for(let l=0;l<D.length;l+=2)D[l][0](D[l+1]);D.length=0}}}function s(o){a(o(e))}function i(o,c=ge){const l=[o,c];return r.add(l),r.size===1&&(n=t(a,s)||ge),o(e),()=>{r.delete(l),r.size===0&&n&&(n(),n=null)}}return{set:a,update:s,subscribe:i}}var Je;const $=((Je=globalThis.__sveltekit_17nj3h5)==null?void 0:Je.base)??"";var Xe;const Zt=((Xe=globalThis.__sveltekit_17nj3h5)==null?void 0:Xe.assets)??$??"",Qt="1760988467880",et="sveltekit:snapshot",tt="sveltekit:scroll",nt="sveltekit:states",en="sveltekit:pageurl",B="sveltekit:history",z="sveltekit:navigation",O={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ce=location.origin;function at(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function le(){return{x:pageXOffset,y:pageYOffset}}function F(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const Me={...O,"":O.hover};function rt(e){let t=e.assignedSlot??e.parentNode;return(t==null?void 0:t.nodeType)===11&&(t=t.host),t}function ot(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=rt(e)}}function Se(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const o=location.hash.split("#")[1]||"/";r.hash=`#${o}${r.hash}`}}catch{}const a=e instanceof SVGAElement?e.target.baseVal:e.target,s=!r||!!a||fe(r,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),i=(r==null?void 0:r.origin)===ce&&e.hasAttribute("download");return{url:r,external:s,target:a,download:i}}function Q(e){let t=null,n=null,r=null,a=null,s=null,i=null,o=e;for(;o&&o!==document.documentElement;)r===null&&(r=F(o,"preload-code")),a===null&&(a=F(o,"preload-data")),t===null&&(t=F(o,"keepfocus")),n===null&&(n=F(o,"noscroll")),s===null&&(s=F(o,"reload")),i===null&&(i=F(o,"replacestate")),o=rt(o);function c(l){switch(l){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Me[r??"off"],preload_data:Me[a??"off"],keepfocus:c(t),noscroll:c(n),reload:c(s),replace_state:c(i)}}function Ve(e){const t=Ue(e);let n=!0;function r(){n=!0,t.update(i=>i)}function a(i){n=!1,t.set(i)}function s(i){let o;return t.subscribe(c=>{(o===void 0||n&&c!==o)&&i(o=c)})}return{notify:r,set:a,subscribe:s}}const st={v:()=>{}};function tn(){const{set:e,subscribe:t}=Ue(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${Zt}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const i=(await a.json()).version!==Qt;return i&&(e(!0),st.v(),clearTimeout(n)),i}catch{return!1}}return{subscribe:t,check:r}}function fe(e,t,n){return e.origin!==ce||!e.pathname.startsWith(t)?!0:n?!(e.pathname===t+"/"||e.pathname===t+"/index.html"||e.protocol==="file:"&&e.pathname.replace(/\/[^/]+\.html?$/,"")===t):!1}function qn(e){}function nn(e){const t=rn(e),n=new ArrayBuffer(t.length),r=new DataView(n);for(let a=0;a<n.byteLength;a++)r.setUint8(a,t.charCodeAt(a));return n}const an="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function rn(e){e.length%4===0&&(e=e.replace(/==?$/,""));let t="",n=0,r=0;for(let a=0;a<e.length;a++)n<<=6,n|=an.indexOf(e[a]),r+=6,r===24&&(t+=String.fromCharCode((n&16711680)>>16),t+=String.fromCharCode((n&65280)>>8),t+=String.fromCharCode(n&255),n=r=0);return r===12?(n>>=4,t+=String.fromCharCode(n)):r===18&&(n>>=2,t+=String.fromCharCode((n&65280)>>8),t+=String.fromCharCode(n&255)),t}const on=-1,sn=-2,cn=-3,ln=-4,fn=-5,un=-6;function dn(e,t){if(typeof e=="number")return a(e,!0);if(!Array.isArray(e)||e.length===0)throw new Error("Invalid input");const n=e,r=Array(n.length);function a(s,i=!1){if(s===on)return;if(s===cn)return NaN;if(s===ln)return 1/0;if(s===fn)return-1/0;if(s===un)return-0;if(i||typeof s!="number")throw new Error("Invalid input");if(s in r)return r[s];const o=n[s];if(!o||typeof o!="object")r[s]=o;else if(Array.isArray(o))if(typeof o[0]=="string"){const c=o[0],l=t==null?void 0:t[c];if(l)return r[s]=l(a(o[1]));switch(c){case"Date":r[s]=new Date(o[1]);break;case"Set":const d=new Set;r[s]=d;for(let f=1;f<o.length;f+=1)d.add(a(o[f]));break;case"Map":const h=new Map;r[s]=h;for(let f=1;f<o.length;f+=2)h.set(a(o[f]),a(o[f+1]));break;case"RegExp":r[s]=new RegExp(o[1],o[2]);break;case"Object":r[s]=Object(o[1]);break;case"BigInt":r[s]=BigInt(o[1]);break;case"null":const y=Object.create(null);r[s]=y;for(let f=1;f<o.length;f+=2)y[o[f]]=a(o[f+1]);break;case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":{const f=globalThis[c],p=new f(a(o[1]));r[s]=o[2]!==void 0?p.subarray(o[2],o[3]):p;break}case"ArrayBuffer":{const f=o[1],p=nn(f);r[s]=p;break}case"Temporal.Duration":case"Temporal.Instant":case"Temporal.PlainDate":case"Temporal.PlainTime":case"Temporal.PlainDateTime":case"Temporal.PlainMonthDay":case"Temporal.PlainYearMonth":case"Temporal.ZonedDateTime":{const f=c.slice(9);r[s]=Temporal[f].from(o[1]);break}case"URL":{const f=new URL(o[1]);r[s]=f;break}case"URLSearchParams":{const f=new URLSearchParams(o[1]);r[s]=f;break}default:throw new Error(`Unknown type ${c}`)}}else{const c=new Array(o.length);r[s]=c;for(let l=0;l<o.length;l+=1){const d=o[l];d!==sn&&(c[l]=a(d))}}else{const c={};r[s]=c;for(const l in o){if(l==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");const d=o[l];c[l]=a(d)}}return r[s]}return a(0)}const it=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...it];const hn=new Set([...it]);[...hn];function pn(e){return e.filter(t=>t!=null)}const gn="x-sveltekit-invalidated",mn="x-sveltekit-trailing-slash";function ee(e){return e instanceof ie||e instanceof Te?e.status:500}function _n(e){return e instanceof Te?e.text:"Internal Error"}let T,W,we;const wn=ve.toString().includes("$$")||/function \w+\(\) \{\}/.test(ve.toString());wn?(T={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},W={current:null},we={current:!1}):(T=new class{constructor(){R(this,"data",$state.raw({}));R(this,"form",$state.raw(null));R(this,"error",$state.raw(null));R(this,"params",$state.raw({}));R(this,"route",$state.raw({id:null}));R(this,"state",$state.raw({}));R(this,"status",$state.raw(-1));R(this,"url",$state.raw(new URL("https://example.com")))}},W=new class{constructor(){R(this,"current",$state.raw(null))}},we=new class{constructor(){R(this,"current",$state.raw(!1))}},st.v=()=>we.current=!0);function yn(e){Object.assign(T,e)}const vn="/__data.json",bn=".html__data.json";function Sn(e){return e.endsWith(".html")?e.replace(/\.html$/,bn):e.replace(/\/$/,"")+vn}const qe={spanContext(){return kn},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this},addLink(){return this},addLinks(){return this}},kn={traceId:"",spanId:"",traceFlags:0},{tick:En}=Ot,An=new Set(["icon","shortcut icon","apple-touch-icon"]),N=Qe(tt)??{},J=Qe(et)??{},C={url:Ve({}),page:Ve({}),navigating:Ue(null),updated:tn()};function Le(e){N[e]=le()}function Rn(e,t){let n=e+1;for(;N[n];)delete N[n],n+=1;for(n=t+1;J[n];)delete J[n],n+=1}function q(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function ct(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration($||"/");e&&await e.update()}}function Ge(){}let $e,ke,te,x,Ee,k;const ne=[],ae=[];let U=null;const Z=new Map,lt=new Set,Tn=new Set,H=new Set;let b={branch:[],error:null,url:null},xe=!1,re=!1,Ye=!0,X=!1,G=!1,ft=!1,Ce=!1,ut,A,L,j;const K=new Set,He=new Map;async function Kn(e,t,n){var s,i,o,c,l;(s=globalThis.__sveltekit_17nj3h5)!=null&&s.data&&globalThis.__sveltekit_17nj3h5.data,document.URL!==location.href&&(location.href=location.href),k=e,await((o=(i=e.hooks).init)==null?void 0:o.call(i)),$e=Xt(e),x=document.documentElement,Ee=t,ke=e.nodes[0],te=e.nodes[1],ke(),te(),A=(c=history.state)==null?void 0:c[B],L=(l=history.state)==null?void 0:l[z],A||(A=L=Date.now(),history.replaceState({...history.state,[B]:A,[z]:L},""));const r=N[A];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await Dn(Ee,n)):(await M({type:"enter",url:at(k.hash?Bn(new URL(location.href)):location.href),replace_state:!0}),a()),Nn()}function In(){ne.length=0,Ce=!1}function dt(e){ae.some(t=>t==null?void 0:t.snapshot)&&(J[e]=ae.map(t=>{var n;return(n=t==null?void 0:t.snapshot)==null?void 0:n.capture()}))}function ht(e){var t;(t=J[e])==null||t.forEach((n,r)=>{var a,s;(s=(a=ae[r])==null?void 0:a.snapshot)==null||s.restore(n)})}function Ke(){Le(A),Be(tt,N),dt(L),Be(et,J)}async function Un(e,t,n,r){let a;t.invalidateAll&&(U=null),await M({type:"goto",url:at(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{t.invalidateAll&&(Ce=!0,a=[...He.keys()]),t.invalidate&&t.invalidate.forEach(jn)}}),t.invalidateAll&&be().then(be).then(()=>{He.forEach(({resource:s},i)=>{var o;a!=null&&a.includes(i)&&((o=s.refresh)==null||o.call(s))})})}async function Ln(e){if(e.id!==(U==null?void 0:U.id)){const t={};K.add(t),U={id:e.id,token:t,promise:mt({...e,preload:t}).then(n=>(K.delete(t),n.type==="loaded"&&n.state.error&&(U=null),n))}}return U.promise}async function ye(e){var n;const t=(n=await de(e,!1))==null?void 0:n.route;t&&await Promise.all([...t.layouts,t.leaf].map(r=>r==null?void 0:r[1]()))}function pt(e,t,n){var a;b=e.state;const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(T,e.props.page),ut=new k.root({target:t,props:{...e.props,stores:C,components:ae},hydrate:n,sync:!1}),ht(L),n){const s={from:null,to:{params:b.params,route:{id:((a=b.route)==null?void 0:a.id)??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};H.forEach(i=>i(s))}re=!0}function oe({url:e,params:t,branch:n,status:r,error:a,route:s,form:i}){let o="never";if($&&(e.pathname===$||e.pathname===$+"/"))o="always";else for(const f of n)(f==null?void 0:f.slash)!==void 0&&(o=f.slash);e.pathname=jt(e.pathname,o),e.search=e.search;const c={type:"loaded",state:{url:e,params:t,branch:n,error:a,route:s},props:{constructors:pn(n).map(f=>f.node.component),page:Ne(T)}};i!==void 0&&(c.props.form=i);let l={},d=!T,h=0;for(let f=0;f<Math.max(n.length,b.branch.length);f+=1){const p=n[f],u=b.branch[f];(p==null?void 0:p.data)!==(u==null?void 0:u.data)&&(d=!0),p&&(l={...l,...p.data},d&&(c.props[`data_${h}`]=l),h+=1)}return(!b.url||e.href!==b.url.href||b.error!==a||i!==void 0&&i!==T.form||d)&&(c.props.page={error:a,params:t,route:{id:(s==null?void 0:s.id)??null},state:{},status:r,url:new URL(e),form:i??null,data:d?l:T.data}),c}async function Pe({loader:e,parent:t,url:n,params:r,route:a,server_data_node:s}){var d,h,y;let i=null,o=!0;const c={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},l=await e();if((d=l.universal)!=null&&d.load){let f=function(...u){for(const g of u){const{href:_}=new URL(g,n);c.dependencies.add(_)}};const p={tracing:{enabled:!1,root:qe,current:qe},route:new Proxy(a,{get:(u,g)=>(o&&(c.route=!0),u[g])}),params:new Proxy(r,{get:(u,g)=>(o&&c.params.add(g),u[g])}),data:(s==null?void 0:s.data)??null,url:Ft(n,()=>{o&&(c.url=!0)},u=>{o&&c.search_params.add(u)},k.hash),async fetch(u,g){u instanceof Request&&(g={body:u.method==="GET"||u.method==="HEAD"?void 0:await u.blob(),cache:u.cache,credentials:u.credentials,headers:[...u.headers].length>0?u==null?void 0:u.headers:void 0,integrity:u.integrity,keepalive:u.keepalive,method:u.method,mode:u.mode,redirect:u.redirect,referrer:u.referrer,referrerPolicy:u.referrerPolicy,signal:u.signal,...g});const{resolved:_,promise:I}=gt(u,g,n);return o&&f(_.href),I},setHeaders:()=>{},depends:f,parent(){return o&&(c.parent=!0),t()},untrack(u){o=!1;try{return u()}finally{o=!0}}};i=await l.universal.load.call(null,p)??null}return{node:l,loader:e,server:s,universal:(h=l.universal)!=null&&h.load?{type:"data",data:i,uses:c}:null,data:i??(s==null?void 0:s.data)??null,slash:((y=l.universal)==null?void 0:y.trailingSlash)??(s==null?void 0:s.slash)}}function gt(e,t,n){let r=e instanceof Request?e.url:e;const a=new URL(r,n);a.origin===n.origin&&(r=a.href.slice(n.origin.length));const s=re?Yt(r,a.href,t):Gt(r,t);return{resolved:a,promise:s}}function ze(e,t,n,r,a,s){if(Ce)return!0;if(!a)return!1;if(a.parent&&e||a.route&&t||a.url&&n)return!0;for(const i of a.search_params)if(r.has(i))return!0;for(const i of a.params)if(s[i]!==b.params[i])return!0;for(const i of a.dependencies)if(ne.some(o=>o(new URL(i))))return!0;return!1}function Oe(e,t){return(e==null?void 0:e.type)==="data"?e:(e==null?void 0:e.type)==="skip"?t??null:null}function $n(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const r of n){const a=e.searchParams.getAll(r),s=t.searchParams.getAll(r);a.every(i=>s.includes(i))&&s.every(i=>a.includes(i))&&n.delete(r)}return n}function We({error:e,url:t,route:n,params:r}){return{type:"loaded",state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Ne(T),constructors:[]}}}async function mt({id:e,invalidating:t,url:n,params:r,route:a,preload:s}){if((U==null?void 0:U.id)===e)return K.delete(U.token),U.promise;const{errors:i,layouts:o,leaf:c}=a,l=[...o,c];i.forEach(w=>w==null?void 0:w().catch(()=>{})),l.forEach(w=>w==null?void 0:w[1]().catch(()=>{}));let d=null;const h=b.url?e!==se(b.url):!1,y=b.route?a.id!==b.route.id:!1,f=$n(b.url,n);let p=!1;const u=l.map((w,m)=>{var P;const v=b.branch[m],S=!!(w!=null&&w[0])&&((v==null?void 0:v.loader)!==w[1]||ze(p,y,h,f,(P=v.server)==null?void 0:P.uses,r));return S&&(p=!0),S});if(u.some(Boolean)){try{d=await yt(n,u)}catch(w){const m=await V(w,{url:n,params:r,route:{id:e}});return K.has(s)?We({error:m,url:n,params:r,route:a}):ue({status:ee(w),error:m,url:n,route:a})}if(d.type==="redirect")return d}const g=d==null?void 0:d.nodes;let _=!1;const I=l.map(async(w,m)=>{var he;if(!w)return;const v=b.branch[m],S=g==null?void 0:g[m];if((!S||S.type==="skip")&&w[1]===(v==null?void 0:v.loader)&&!ze(_,y,h,f,(he=v.universal)==null?void 0:he.uses,r))return v;if(_=!0,(S==null?void 0:S.type)==="error")throw S;return Pe({loader:w[1],url:n,params:r,route:a,parent:async()=>{var Fe;const De={};for(let pe=0;pe<m;pe+=1)Object.assign(De,(Fe=await I[pe])==null?void 0:Fe.data);return De},server_data_node:Oe(S===void 0&&w[0]?{type:"skip"}:S??null,w[0]?v==null?void 0:v.server:void 0)})});for(const w of I)w.catch(()=>{});const E=[];for(let w=0;w<l.length;w+=1)if(l[w])try{E.push(await I[w])}catch(m){if(m instanceof Re)return{type:"redirect",location:m.location};if(K.has(s))return We({error:await V(m,{params:r,url:n,route:{id:a.id}}),url:n,params:r,route:a});let v=ee(m),S;if(g!=null&&g.includes(m))v=m.status??v,S=m.error;else if(m instanceof ie)S=m.body;else{if(await C.updated.check())return await ct(),await q(n);S=await V(m,{params:r,url:n,route:{id:a.id}})}const P=await xn(w,E,i);return P?oe({url:n,params:r,branch:E.slice(0,P.idx).concat(P.node),status:v,error:S,route:a}):await wt(n,{id:a.id},S,v)}else E.push(void 0);return oe({url:n,params:r,branch:E,status:200,error:null,route:a,form:t?void 0:null})}async function xn(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)r-=1;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function ue({status:e,error:t,url:n,route:r}){const a={};let s=null;if(k.server_loads[0]===0)try{const o=await yt(n,[!0]);if(o.type!=="data"||o.nodes[0]&&o.nodes[0].type!=="data")throw 0;s=o.nodes[0]??null}catch{(n.origin!==ce||n.pathname!==location.pathname||xe)&&await q(n)}try{const o=await Pe({loader:ke,url:n,params:a,route:r,parent:()=>Promise.resolve({}),server_data_node:Oe(s)}),c={node:await te(),loader:te,universal:null,server:null,data:null};return oe({url:n,params:a,branch:[o,c],status:e,error:t,route:null})}catch(o){if(o instanceof Re)return Un(new URL(o.location,location.href),{},0);throw o}}async function Cn(e){const t=e.href;if(Z.has(t))return Z.get(t);let n;try{const r=(async()=>{let a=await k.hooks.reroute({url:new URL(e),fetch:async(s,i)=>gt(s,i,e).promise})??e;if(typeof a=="string"){const s=new URL(e);k.hash?s.hash=a:s.pathname=a,a=s}return a})();Z.set(t,r),n=await r}catch{Z.delete(t);return}return n}async function de(e,t){if(e&&!fe(e,$,k.hash)){const n=await Cn(e);if(!n)return;const r=Pn(n);for(const a of $e){const s=a.exec(r);if(s)return{id:se(e),invalidating:t,route:a,params:Dt(s),url:e}}}}function Pn(e){return Nt(k.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice($.length))||"/"}function se(e){return(k.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function _t({url:e,type:t,intent:n,delta:r,event:a}){let s=!1;const i=je(b,n,e,t);r!==void 0&&(i.navigation.delta=r),a!==void 0&&(i.navigation.event=a);const o={...i.navigation,cancel:()=>{s=!0,i.reject(new Error("navigation cancelled"))}};return X||lt.forEach(c=>c(o)),s?null:i}async function M({type:e,url:t,popped:n,keepfocus:r,noscroll:a,replace_state:s,state:i={},redirect_count:o=0,nav_token:c={},accept:l=Ge,block:d=Ge,event:h}){const y=j;j=c;const f=await de(t,!1),p=e==="enter"?je(b,f,t,e):_t({url:t,type:e,delta:n==null?void 0:n.delta,intent:f,event:h});if(!p){d(),j===c&&(j=y);return}const u=A,g=L;l(),X=!0,re&&p.navigation.type!=="enter"&&C.navigating.set(W.current=p.navigation);let _=f&&await mt(f);if(!_){if(fe(t,$,k.hash))return await q(t,s);_=await wt(t,{id:null},await V(new Te(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,s)}if(t=(f==null?void 0:f.url)||t,j!==c)return p.reject(new Error("navigation aborted")),!1;if(_.type==="redirect"){if(o<20){await M({type:e,url:new URL(_.location,t),popped:n,keepfocus:r,noscroll:a,replace_state:s,state:i,redirect_count:o+1,nav_token:c}),p.fulfil(void 0);return}_=await ue({status:500,error:await V(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else _.props.page.status>=400&&await C.updated.check()&&(await ct(),await q(t,s));if(In(),Le(u),dt(g),_.props.page.url.pathname!==t.pathname&&(t.pathname=_.props.page.url.pathname),i=n?n.state:i,!n){const m=s?0:1,v={[B]:A+=m,[z]:L+=m,[nt]:i};(s?history.replaceState:history.pushState).call(history,v,"",t),s||Rn(A,L)}if(U=null,_.props.page.state=i,re){const m=(await Promise.all(Array.from(Tn,v=>v(p.navigation)))).filter(v=>typeof v=="function");if(m.length>0){let v=function(){m.forEach(S=>{H.delete(S)})};m.push(v),m.forEach(S=>{H.add(S)})}b=_.state,_.props.page&&(_.props.page.url=t),ut.$set(_.props),yn(_.props.page),ft=!0}else pt(_,Ee,!1);const{activeElement:I}=document;await En();let E=n?n.scroll:a?le():null;if(Ye){const m=t.hash&&document.getElementById(bt(t));if(E)scrollTo(E.x,E.y);else if(m){m.scrollIntoView();const{top:v,left:S}=m.getBoundingClientRect();E={x:pageXOffset+S,y:pageYOffset+v}}else scrollTo(0,0)}const w=document.activeElement!==I&&document.activeElement!==document.body;!r&&!w&&Fn(t,E),Ye=!0,_.props.page&&Object.assign(T,_.props.page),X=!1,e==="popstate"&&ht(L),p.fulfil(void 0),H.forEach(m=>m(p.navigation)),C.navigating.set(W.current=null)}async function wt(e,t,n,r,a){return e.origin===ce&&e.pathname===location.pathname&&!xe?await ue({status:r,error:n,url:e,route:t}):await q(e,a)}function On(){let e,t,n;x.addEventListener("mousemove",o=>{const c=o.target;clearTimeout(e),e=setTimeout(()=>{s(c,O.hover)},20)});function r(o){o.defaultPrevented||s(o.composedPath()[0],O.tap)}x.addEventListener("mousedown",r),x.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(o=>{for(const c of o)c.isIntersecting&&(ye(new URL(c.target.href)),a.unobserve(c.target))},{threshold:0});async function s(o,c){const l=ot(o,x),d=l===t&&c>=n;if(!l||d)return;const{url:h,external:y,download:f}=Se(l,$,k.hash);if(y||f)return;const p=Q(l),u=h&&se(b.url)===se(h);if(!(p.reload||u))if(c<=p.preload_data){t=l,n=O.tap;const g=await de(h,!1);if(!g)return;Ln(g)}else c<=p.preload_code&&(t=l,n=c,ye(h))}function i(){a.disconnect();for(const o of x.querySelectorAll("a")){const{url:c,external:l,download:d}=Se(o,$,k.hash);if(l||d)continue;const h=Q(o);h.reload||(h.preload_code===O.viewport&&a.observe(o),h.preload_code===O.eager&&ye(c))}}H.add(i),i()}function V(e,t){if(e instanceof ie)return e.body;const n=ee(e),r=_n(e);return k.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function jn(e){if(typeof e=="function")ne.push(e);else{const{href:t}=new URL(e,location.href);ne.push(n=>n.href===t)}}function Nn(){var t;history.scrollRestoration="manual",addEventListener("beforeunload",n=>{let r=!1;if(Ke(),!X){const a=je(b,void 0,null,"leave"),s={...a.navigation,cancel:()=>{r=!0,a.reject(new Error("navigation cancelled"))}};lt.forEach(i=>i(s))}r?(n.preventDefault(),n.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Ke()}),(t=navigator.connection)!=null&&t.saveData||On(),x.addEventListener("click",async n=>{if(n.button||n.which!==1||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.defaultPrevented)return;const r=ot(n.composedPath()[0],x);if(!r)return;const{url:a,external:s,target:i,download:o}=Se(r,$,k.hash);if(!a)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const c=Q(r);if(!(r instanceof SVGAElement)&&a.protocol!==location.protocol&&!(a.protocol==="https:"||a.protocol==="http:")||o)return;const[d,h]=(k.hash?a.hash.replace(/^#/,""):a.href).split("#"),y=d===me(location);if(s||c.reload&&(!y||!h)){_t({url:a,type:"link",event:n})?X=!0:n.preventDefault();return}if(h!==void 0&&y){const[,f]=b.url.href.split("#");if(f===h){if(n.preventDefault(),h===""||h==="top"&&r.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const p=r.ownerDocument.getElementById(decodeURIComponent(h));p&&(p.scrollIntoView(),p.focus())}return}if(G=!0,Le(A),e(a),!c.replace_state)return;G=!1}n.preventDefault(),await new Promise(f=>{requestAnimationFrame(()=>{setTimeout(f,0)}),setTimeout(f,100)}),await M({type:"link",url:a,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??a.href===location.href,event:n})}),x.addEventListener("submit",n=>{if(n.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(n.target),a=n.submitter;if(((a==null?void 0:a.formTarget)||r.target)==="_blank"||((a==null?void 0:a.formMethod)||r.method)!=="get")return;const o=new URL((a==null?void 0:a.hasAttribute("formaction"))&&(a==null?void 0:a.formAction)||r.action);if(fe(o,$,!1))return;const c=n.target,l=Q(c);if(l.reload)return;n.preventDefault(),n.stopPropagation();const d=new FormData(c,a);o.search=new URLSearchParams(d).toString(),M({type:"form",url:o,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??o.href===location.href,event:n})}),addEventListener("popstate",async n=>{var r;if(!Ae){if((r=n.state)!=null&&r[B]){const a=n.state[B];if(j={},a===A)return;const s=N[a],i=n.state[nt]??{},o=new URL(n.state[en]??location.href),c=n.state[z],l=b.url?me(location)===me(b.url):!1;if(c===L&&(ft||l)){i!==T.state&&(T.state=i),e(o),N[A]=le(),s&&scrollTo(s.x,s.y),A=a;return}const h=a-A;await M({type:"popstate",url:o,popped:{state:i,scroll:s,delta:h},accept:()=>{A=a,L=c},block:()=>{history.go(-h)},nav_token:j,event:n})}else if(!G){const a=new URL(location.href);e(a),k.hash&&location.reload()}}}),addEventListener("hashchange",()=>{G&&(G=!1,history.replaceState({...history.state,[B]:++A,[z]:L},"",location.href))});for(const n of document.querySelectorAll("link"))An.has(n.rel)&&(n.href=n.href);addEventListener("pageshow",n=>{n.persisted&&C.navigating.set(W.current=null)});function e(n){b.url=T.url=n,C.page.set(Ne(T)),C.page.notify()}}async function Dn(e,{status:t=200,error:n,node_ids:r,params:a,route:s,server_route:i,data:o,form:c}){xe=!0;const l=new URL(location.href);let d;({params:a={},route:s={id:null}}=await de(l,!1)||{}),d=$e.find(({id:f})=>f===s.id);let h,y=!0;try{const f=r.map(async(u,g)=>{const _=o[g];return _!=null&&_.uses&&(_.uses=vt(_.uses)),Pe({loader:k.nodes[u],url:l,params:a,route:s,parent:async()=>{const I={};for(let E=0;E<g;E+=1)Object.assign(I,(await f[E]).data);return I},server_data_node:Oe(_)})}),p=await Promise.all(f);if(d){const u=d.layouts;for(let g=0;g<u.length;g++)u[g]||p.splice(g,0,void 0)}h=oe({url:l,params:a,branch:p,status:t,error:n,form:c,route:d??null})}catch(f){if(f instanceof Re){await q(new URL(f.location,location.href));return}h=await ue({status:ee(f),error:await V(f,{url:l,params:a,route:s}),url:l,route:s}),e.textContent="",y=!1}h.props.page&&(h.props.page.state={}),pt(h,e,y)}async function yt(e,t){var s;const n=new URL(e);n.pathname=Sn(e.pathname),e.pathname.endsWith("/")&&n.searchParams.append(mn,"1"),n.searchParams.append(gn,t.map(i=>i?"1":"0").join(""));const r=window.fetch,a=await r(n.href,{});if(!a.ok){let i;throw(s=a.headers.get("content-type"))!=null&&s.includes("application/json")?i=await a.json():a.status===404?i="Not Found":a.status===500&&(i="Internal Error"),new ie(a.status,i)}return new Promise(async i=>{var h;const o=new Map,c=a.body.getReader();function l(y){return dn(y,{...k.decoders,Promise:f=>new Promise((p,u)=>{o.set(f,{fulfil:p,reject:u})})})}let d="";for(;;){const{done:y,value:f}=await c.read();if(y&&!d)break;for(d+=!f&&d?`
|
| 2 |
+
`:Mt.decode(f,{stream:!0});;){const p=d.indexOf(`
|
| 3 |
+
`);if(p===-1)break;const u=JSON.parse(d.slice(0,p));if(d=d.slice(p+1),u.type==="redirect")return i(u);if(u.type==="data")(h=u.nodes)==null||h.forEach(g=>{(g==null?void 0:g.type)==="data"&&(g.uses=vt(g.uses),g.data=l(g.data))}),i(u);else if(u.type==="chunk"){const{id:g,data:_,error:I}=u,E=o.get(g);o.delete(g),I?E.reject(l(I)):E.fulfil(l(_))}}}})}function vt(e){return{dependencies:new Set((e==null?void 0:e.dependencies)??[]),params:new Set((e==null?void 0:e.params)??[]),parent:!!(e!=null&&e.parent),route:!!(e!=null&&e.route),url:!!(e!=null&&e.url),search_params:new Set((e==null?void 0:e.search_params)??[])}}let Ae=!1;function Fn(e,t=null){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const r=bt(e);if(r&&document.getElementById(r)){const{x:s,y:i}=t??le();setTimeout(()=>{const o=history.state;Ae=!0,location.replace(`#${r}`),k.hash&&location.replace(e.hash),history.replaceState(o,"",e.hash),scrollTo(s,i),Ae=!1})}else{const s=document.body,i=s.getAttribute("tabindex");s.tabIndex=-1,s.focus({preventScroll:!0,focusVisible:!1}),i!==null?s.setAttribute("tabindex",i):s.removeAttribute("tabindex")}const a=getSelection();if(a&&a.type!=="None"){const s=[];for(let i=0;i<a.rangeCount;i+=1)s.push(a.getRangeAt(i));setTimeout(()=>{if(a.rangeCount===s.length){for(let i=0;i<a.rangeCount;i+=1){const o=s[i],c=a.getRangeAt(i);if(o.commonAncestorContainer!==c.commonAncestorContainer||o.startContainer!==c.startContainer||o.endContainer!==c.endContainer||o.startOffset!==c.startOffset||o.endOffset!==c.endOffset)return}a.removeAllRanges()}})}}}function je(e,t,n,r){var c,l;let a,s;const i=new Promise((d,h)=>{a=d,s=h});return i.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:((c=e.route)==null?void 0:c.id)??null},url:e.url},to:n&&{params:(t==null?void 0:t.params)??null,route:{id:((l=t==null?void 0:t.route)==null?void 0:l.id)??null},url:n},willUnload:!t,type:r,complete:i},fulfil:a,reject:s}}function Ne(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Bn(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function bt(e){let t;if(k.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{Kn as a,qn as l,C as s};
|
hfstudio/static/_app/immutable/entry/app.DZ7KK-ry.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.C0_hCSUc.js","../chunks/Bqgpa-5T.js","../chunks/IHki7fMi.js","../assets/0.Ggx0bHAf.css","../nodes/1.DqNvkuKf.js","../chunks/Bs9I3-rU.js","../nodes/2.Cu9jABEo.js","../assets/2.NHOETQX0.css"])))=>i.map(i=>d[i]);
|
| 2 |
+
import{S as V,i as j,s as B,d,t as h,a as g,C as S,D as O,f as v,o as U,E as w,q as z,F,v as G,G as H,H as y,I as P,J as R,K as L,L as I,b as A,M as p,k as J,m as K,p as W,N as C,x as Q,y as X,z as Y}from"../chunks/Bqgpa-5T.js";import"../chunks/IHki7fMi.js";const Z="modulepreload",M=function(o,e){return new URL(o,e).href},N={},D=function(e,n,i){let r=Promise.resolve();if(n&&n.length>0){const t=document.getElementsByTagName("link"),s=document.querySelector("meta[property=csp-nonce]"),a=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));r=Promise.allSettled(n.map(f=>{if(f=M(f,i),f in N)return;N[f]=!0;const l=f.endsWith(".css"),_=l?'[rel="stylesheet"]':"";if(!!i)for(let k=t.length-1;k>=0;k--){const E=t[k];if(E.href===f&&(!l||E.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${f}"]${_}`))return;const m=document.createElement("link");if(m.rel=l?"stylesheet":Z,l||(m.as="script"),m.crossOrigin="",m.href=f,a&&m.setAttribute("nonce",a),document.head.appendChild(m),l)return new Promise((k,E)=>{m.addEventListener("load",k),m.addEventListener("error",()=>E(new Error(`Unable to preload CSS for ${f}`)))})}))}function u(t){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=t,window.dispatchEvent(s),!s.defaultPrevented)throw t}return r.then(t=>{for(const s of t||[])s.status==="rejected"&&u(s.reason);return e().catch(u)})},ae={};function $(o){let e,n,i;var r=o[2][0];function u(t,s){return{props:{data:t[4],form:t[3],params:t[1].params}}}return r&&(e=y(r,u(o)),o[12](e)),{c(){e&&R(e.$$.fragment),n=w()},l(t){e&&I(e.$$.fragment,t),n=w()},m(t,s){e&&L(e,t,s),v(t,n,s),i=!0},p(t,s){if(s&4&&r!==(r=t[2][0])){if(e){S();const a=e;h(a.$$.fragment,1,0,()=>{P(a,1)}),O()}r?(e=y(r,u(t)),t[12](e),R(e.$$.fragment),g(e.$$.fragment,1),L(e,n.parentNode,n)):e=null}else if(r){const a={};s&16&&(a.data=t[4]),s&8&&(a.form=t[3]),s&2&&(a.params=t[1].params),e.$set(a)}},i(t){i||(e&&g(e.$$.fragment,t),i=!0)},o(t){e&&h(e.$$.fragment,t),i=!1},d(t){t&&d(n),o[12](null),e&&P(e,t)}}}function x(o){let e,n,i;var r=o[2][0];function u(t,s){return{props:{data:t[4],params:t[1].params,$$slots:{default:[ee]},$$scope:{ctx:t}}}}return r&&(e=y(r,u(o)),o[11](e)),{c(){e&&R(e.$$.fragment),n=w()},l(t){e&&I(e.$$.fragment,t),n=w()},m(t,s){e&&L(e,t,s),v(t,n,s),i=!0},p(t,s){if(s&4&&r!==(r=t[2][0])){if(e){S();const a=e;h(a.$$.fragment,1,0,()=>{P(a,1)}),O()}r?(e=y(r,u(t)),t[11](e),R(e.$$.fragment),g(e.$$.fragment,1),L(e,n.parentNode,n)):e=null}else if(r){const a={};s&16&&(a.data=t[4]),s&2&&(a.params=t[1].params),s&8239&&(a.$$scope={dirty:s,ctx:t}),e.$set(a)}},i(t){i||(e&&g(e.$$.fragment,t),i=!0)},o(t){e&&h(e.$$.fragment,t),i=!1},d(t){t&&d(n),o[11](null),e&&P(e,t)}}}function ee(o){let e,n,i;var r=o[2][1];function u(t,s){return{props:{data:t[5],form:t[3],params:t[1].params}}}return r&&(e=y(r,u(o)),o[10](e)),{c(){e&&R(e.$$.fragment),n=w()},l(t){e&&I(e.$$.fragment,t),n=w()},m(t,s){e&&L(e,t,s),v(t,n,s),i=!0},p(t,s){if(s&4&&r!==(r=t[2][1])){if(e){S();const a=e;h(a.$$.fragment,1,0,()=>{P(a,1)}),O()}r?(e=y(r,u(t)),t[10](e),R(e.$$.fragment),g(e.$$.fragment,1),L(e,n.parentNode,n)):e=null}else if(r){const a={};s&32&&(a.data=t[5]),s&8&&(a.form=t[3]),s&2&&(a.params=t[1].params),e.$set(a)}},i(t){i||(e&&g(e.$$.fragment,t),i=!0)},o(t){e&&h(e.$$.fragment,t),i=!1},d(t){t&&d(n),o[10](null),e&&P(e,t)}}}function q(o){let e,n=o[7]&&T(o);return{c(){e=W("div"),n&&n.c(),this.h()},l(i){e=J(i,"DIV",{id:!0,"aria-live":!0,"aria-atomic":!0,style:!0});var r=K(e);n&&n.l(r),r.forEach(d),this.h()},h(){A(e,"id","svelte-announcer"),A(e,"aria-live","assertive"),A(e,"aria-atomic","true"),p(e,"position","absolute"),p(e,"left","0"),p(e,"top","0"),p(e,"clip","rect(0 0 0 0)"),p(e,"clip-path","inset(50%)"),p(e,"overflow","hidden"),p(e,"white-space","nowrap"),p(e,"width","1px"),p(e,"height","1px")},m(i,r){v(i,e,r),n&&n.m(e,null)},p(i,r){i[7]?n?n.p(i,r):(n=T(i),n.c(),n.m(e,null)):n&&(n.d(1),n=null)},d(i){i&&d(e),n&&n.d()}}}function T(o){let e;return{c(){e=Y(o[8])},l(n){e=X(n,o[8])},m(n,i){v(n,e,i)},p(n,i){i&256&&Q(e,n[8])},d(n){n&&d(e)}}}function te(o){let e,n,i,r,u;const t=[x,$],s=[];function a(l,_){return l[2][1]?0:1}e=a(o),n=s[e]=t[e](o);let f=o[6]&&q(o);return{c(){n.c(),i=z(),f&&f.c(),r=w()},l(l){n.l(l),i=U(l),f&&f.l(l),r=w()},m(l,_){s[e].m(l,_),v(l,i,_),f&&f.m(l,_),v(l,r,_),u=!0},p(l,[_]){let b=e;e=a(l),e===b?s[e].p(l,_):(S(),h(s[b],1,1,()=>{s[b]=null}),O(),n=s[e],n?n.p(l,_):(n=s[e]=t[e](l),n.c()),g(n,1),n.m(i.parentNode,i)),l[6]?f?f.p(l,_):(f=q(l),f.c(),f.m(r.parentNode,r)):f&&(f.d(1),f=null)},i(l){u||(g(n),u=!0)},o(l){h(n),u=!1},d(l){l&&(d(i),d(r)),s[e].d(l),f&&f.d(l)}}}function ne(o,e,n){let{stores:i}=e,{page:r}=e,{constructors:u}=e,{components:t=[]}=e,{form:s}=e,{data_0:a=null}=e,{data_1:f=null}=e;F(i.page.notify);let l=!1,_=!1,b=null;G(()=>{const c=i.page.subscribe(()=>{l&&(n(7,_=!0),H().then(()=>{n(8,b=document.title||"untitled page")}))});return n(6,l=!0),c});function m(c){C[c?"unshift":"push"](()=>{t[1]=c,n(0,t)})}function k(c){C[c?"unshift":"push"](()=>{t[0]=c,n(0,t)})}function E(c){C[c?"unshift":"push"](()=>{t[0]=c,n(0,t)})}return o.$$set=c=>{"stores"in c&&n(9,i=c.stores),"page"in c&&n(1,r=c.page),"constructors"in c&&n(2,u=c.constructors),"components"in c&&n(0,t=c.components),"form"in c&&n(3,s=c.form),"data_0"in c&&n(4,a=c.data_0),"data_1"in c&&n(5,f=c.data_1)},o.$$.update=()=>{o.$$.dirty&514&&i.page.set(r)},[t,r,u,s,a,f,l,_,b,i,m,k,E]}class le extends V{constructor(e){super(),j(this,e,ne,te,B,{stores:9,page:1,constructors:2,components:0,form:3,data_0:4,data_1:5})}}const fe=[()=>D(()=>import("../nodes/0.C0_hCSUc.js"),__vite__mapDeps([0,1,2,3]),import.meta.url),()=>D(()=>import("../nodes/1.DqNvkuKf.js"),__vite__mapDeps([4,1,2,5]),import.meta.url),()=>D(()=>import("../nodes/2.Cu9jABEo.js"),__vite__mapDeps([6,1,2,7]),import.meta.url)],ce=[],ue={"/":[2]},se={handleError:({error:o})=>{console.error(o)},reroute:()=>{},transport:{}},ie=Object.fromEntries(Object.entries(se.transport).map(([o,e])=>[o,e.decode])),_e=!1,me=(o,e)=>ie[o](e);export{me as decode,ie as decoders,ue as dictionary,_e as hash,se as hooks,ae as matchers,fe as nodes,le as root,ce as server_loads};
|
hfstudio/static/_app/immutable/entry/start.C4-zG_GX.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{l as o,a as r}from"../chunks/Bs9I3-rU.js";export{o as load_css,r as start};
|
hfstudio/static/_app/immutable/nodes/0.C0_hCSUc.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import{S as Ie,i as Le,s as He,c as Ee,d as _,r as Ce,t as Se,a as Me,b as o,u as Ae,g as Ne,e as Pe,f as Z,h as n,l as se,j as Ue,k as r,m as P,n as H,o as v,p as i,q as x,v as Be,w as xe,x as me,y as ne,z as le,A as De}from"../chunks/Bqgpa-5T.js";import"../chunks/IHki7fMi.js";function je(a){let t,e="Sign In";return{c(){t=i("span"),t.textContent=e},l(s){t=r(s,"SPAN",{"data-svelte-h":!0}),H(t)!=="svelte-6n3gky"&&(t.textContent=e)},m(s,c){Z(s,t,c)},p:De,d(s){s&&_(t)}}}function Ve(a){let t,e,s;return{c(){t=i("span"),e=le("Sign Out, "),s=le(a[2])},l(c){t=r(c,"SPAN",{});var b=P(t);e=ne(b,"Sign Out, "),s=ne(b,a[2]),b.forEach(_)},m(c,b){Z(c,t,b),n(t,e),n(t,s)},p(c,b){b&4&&me(s,c[2])},d(c){c&&_(t)}}}function Oe(a){let t,e,s=a[1]?"logged in":"not logged in",c,b;return{c(){t=i("span"),e=le("Checking... ("),c=le(s),b=le(")")},l(l){t=r(l,"SPAN",{});var u=P(t);e=ne(u,"Checking... ("),c=ne(u,s),b=ne(u,")"),u.forEach(_)},m(l,u){Z(l,t,u),n(t,e),n(t,c),n(t,b)},p(l,u){u&2&&s!==(s=l[1]?"logged in":"not logged in")&&me(c,s)},d(l){l&&_(t)}}}function we(a){let t,e='<div class="bg-blue-600 text-white text-sm rounded-lg p-3 shadow-lg relative"><div class="flex items-start gap-2"><svg class="w-4 h-4 mt-0.5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z" clip-rule="evenodd"></path></svg> <div><p class="font-medium">Sign in required</p> <p class="text-blue-100 text-xs mt-1">You need to sign in to use HuggingFace Inference Providers for text-to-speech generation.</p></div></div> <div class="absolute top-full left-1/2 transform -translate-x-1/2"><div class="w-0 h-0 border-l-4 border-r-4 border-t-4 border-l-transparent border-r-transparent border-t-blue-600"></div></div></div>';return{c(){t=i("div"),t.innerHTML=e,this.h()},l(s){t=r(s,"DIV",{class:!0,"data-svelte-h":!0}),H(t)!=="svelte-drpr74"&&(t.innerHTML=e),this.h()},h(){o(t,"class","absolute bottom-full left-0 right-0 mb-2 z-50")},m(s,c){Z(s,t,c)},d(s){s&&_(t)}}}function ke(a){let t,e,s,c="Sign In with HuggingFace Token",b,l,u,G="<strong>Manual Token Entry:</strong> Please enter your HuggingFace token.",I,h,U=`1. Go to <a href="https://huggingface.co/settings/tokens" target="_blank" class="underline text-blue-600">HuggingFace Settings</a><br/>
|
| 2 |
+
2. Create a new token with "Inference API" permissions<br/>
|
| 3 |
+
3. Copy and paste it below`,Y,z,w,E,W="HuggingFace Token",J,m,K,Q,y,j,d="Cancel",f,k,R="Sign In",O,oe,T=a[6]&&ye(),g=a[5]&&Te(a);return{c(){t=i("div"),e=i("div"),s=i("h2"),s.textContent=c,b=x(),l=i("div"),u=i("p"),u.innerHTML=G,I=x(),h=i("p"),h.innerHTML=U,Y=x(),T&&T.c(),z=x(),w=i("div"),E=i("label"),E.textContent=W,J=x(),m=i("input"),K=x(),g&&g.c(),Q=x(),y=i("div"),j=i("button"),j.textContent=d,f=x(),k=i("button"),k.textContent=R,this.h()},l(A){t=r(A,"DIV",{class:!0});var F=P(t);e=r(F,"DIV",{class:!0});var L=P(e);s=r(L,"H2",{class:!0,"data-svelte-h":!0}),H(s)!=="svelte-1t0ehet"&&(s.textContent=c),b=v(L),l=r(L,"DIV",{class:!0});var C=P(l);u=r(C,"P",{class:!0,"data-svelte-h":!0}),H(u)!=="svelte-344vn4"&&(u.innerHTML=G),I=v(C),h=r(C,"P",{class:!0,"data-svelte-h":!0}),H(h)!=="svelte-1ffvpx3"&&(h.innerHTML=U),Y=v(C),T&&T.l(C),C.forEach(_),z=v(L),w=r(L,"DIV",{class:!0});var B=P(w);E=r(B,"LABEL",{for:!0,class:!0,"data-svelte-h":!0}),H(E)!=="svelte-vtbmxo"&&(E.textContent=W),J=v(B),m=r(B,"INPUT",{id:!0,type:!0,placeholder:!0,class:!0}),K=v(B),g&&g.l(B),B.forEach(_),Q=v(L),y=r(L,"DIV",{class:!0});var $=P(y);j=r($,"BUTTON",{class:!0,"data-svelte-h":!0}),H(j)!=="svelte-csk0rj"&&(j.textContent=d),f=v($),k=r($,"BUTTON",{class:!0,"data-svelte-h":!0}),H(k)!=="svelte-1nxas5u"&&(k.textContent=R),$.forEach(_),L.forEach(_),F.forEach(_),this.h()},h(){o(s,"class","text-xl font-semibold mb-4"),o(u,"class","text-blue-800 mb-2"),o(h,"class","text-blue-700"),o(l,"class","mb-4 p-3 bg-blue-50 rounded-md text-sm"),o(E,"for","token"),o(E,"class","block text-sm font-medium text-gray-700 mb-2"),o(m,"id","token"),o(m,"type","password"),o(m,"placeholder","hf_..."),o(m,"class","w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-orange-500 focus:border-transparent"),o(w,"class","mb-4"),o(j,"class","px-4 py-2 text-gray-600 hover:text-gray-800 transition-colors"),o(k,"class","px-4 py-2 bg-orange-500 text-white rounded-md hover:bg-orange-600 transition-colors"),o(y,"class","flex justify-end gap-3"),o(e,"class","bg-white rounded-lg p-6 max-w-md w-full mx-4 shadow-xl"),o(t,"class","fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50")},m(A,F){Z(A,t,F),n(t,e),n(e,s),n(e,b),n(e,l),n(l,u),n(l,I),n(l,h),n(l,Y),T&&T.m(l,null),n(e,z),n(e,w),n(w,E),n(w,J),n(w,m),xe(m,a[4]),n(w,K),g&&g.m(w,null),n(e,Q),n(e,y),n(y,j),n(y,f),n(y,k),O||(oe=[se(m,"input",a[15]),se(m,"keydown",a[16]),se(j,"click",a[10]),se(k,"click",a[11])],O=!0)},p(A,F){A[6]?T||(T=ye(),T.c(),T.m(l,null)):T&&(T.d(1),T=null),F&16&&m.value!==A[4]&&xe(m,A[4]),A[5]?g?g.p(A,F):(g=Te(A),g.c(),g.m(w,null)):g&&(g.d(1),g=null)},d(A){A&&_(t),T&&T.d(),g&&g.d(),O=!1,Ce(oe)}}}function ye(a){let t,e="<strong>Tip:</strong> You can also run <code>huggingface-cli login</code> in your terminal to automatically use your local token.";return{c(){t=i("p"),t.innerHTML=e,this.h()},l(s){t=r(s,"P",{class:!0,"data-svelte-h":!0}),H(t)!=="svelte-1gg2uwy"&&(t.innerHTML=e),this.h()},h(){o(t,"class","text-blue-600 mt-2")},m(s,c){Z(s,t,c)},d(s){s&&_(t)}}}function Te(a){let t,e;return{c(){t=i("p"),e=le(a[5]),this.h()},l(s){t=r(s,"P",{class:!0});var c=P(t);e=ne(c,a[5]),c.forEach(_),this.h()},h(){o(t,"class","text-red-600 text-sm mt-1")},m(s,c){Z(s,t,c),n(t,e)},p(s,c){c&32&&me(e,s[5])},d(s){s&&_(t)}}}function ze(a){let t,e,s,c='<div class="flex items-center gap-3"><img src="/assets/hf-studio-logo.png" alt="HF Logo" class="w-8 h-8"/> <h1 class="text-xl font-semibold">HFStudio<sup class="text-xs text-gray-500 ml-1">BETA</sup></h1></div>',b,l,u,G="Tasks",I,h,U,Y="🎙️",z,w,E="Text to Speech",W,J,m,K="<span>🎵</span> <span>Voice Cloning</span>",Q,y,j="<span>🎧</span> <span>Speech to Text</span>",d,f,k="<span>🎼</span> <span>Sound Effects</span>",R,O,oe="<span>🎸</span> <span>Music Generation</span>",T,g,A="<span>🔊</span> <span>Audio Enhancement</span>",F,L,C,B,$,ue,fe,de,ee,pe,X,he,_e;function be(p,M){return p[7]?Oe:p[1]?Ve:je}let ae=be(a),q=ae(a),N=a[8]&&!a[1]&&we();const ge=a[13].default,V=Ee(ge,a,a[12],null);let S=a[3]&&ke(a);return{c(){t=i("div"),e=i("aside"),s=i("div"),s.innerHTML=c,b=x(),l=i("nav"),u=i("div"),u.textContent=G,I=x(),h=i("button"),U=i("span"),U.textContent=Y,z=x(),w=i("span"),w.textContent=E,J=x(),m=i("button"),m.innerHTML=K,Q=x(),y=i("button"),y.innerHTML=j,d=x(),f=i("button"),f.innerHTML=k,R=x(),O=i("button"),O.innerHTML=oe,T=x(),g=i("button"),g.innerHTML=A,F=x(),L=i("div"),C=i("button"),B=i("img"),ue=x(),q.c(),fe=x(),N&&N.c(),de=x(),ee=i("main"),V&&V.c(),pe=x(),S&&S.c(),this.h()},l(p){t=r(p,"DIV",{class:!0});var M=P(t);e=r(M,"ASIDE",{class:!0});var te=P(e);s=r(te,"DIV",{class:!0,"data-svelte-h":!0}),H(s)!=="svelte-1vahj38"&&(s.innerHTML=c),b=v(te),l=r(te,"NAV",{class:!0});var D=P(l);u=r(D,"DIV",{class:!0,"data-svelte-h":!0}),H(u)!=="svelte-1x5465q"&&(u.textContent=G),I=v(D),h=r(D,"BUTTON",{class:!0});var re=P(h);U=r(re,"SPAN",{"data-svelte-h":!0}),H(U)!=="svelte-1yx42xi"&&(U.textContent=Y),z=v(re),w=r(re,"SPAN",{"data-svelte-h":!0}),H(w)!=="svelte-2j89jk"&&(w.textContent=E),re.forEach(_),J=v(D),m=r(D,"BUTTON",{class:!0,"data-svelte-h":!0}),H(m)!=="svelte-10dl8nf"&&(m.innerHTML=K),Q=v(D),y=r(D,"BUTTON",{class:!0,"data-svelte-h":!0}),H(y)!=="svelte-wf0x5d"&&(y.innerHTML=j),d=v(D),f=r(D,"BUTTON",{class:!0,"data-svelte-h":!0}),H(f)!=="svelte-x7bha3"&&(f.innerHTML=k),R=v(D),O=r(D,"BUTTON",{class:!0,"data-svelte-h":!0}),H(O)!=="svelte-1tyblmt"&&(O.innerHTML=oe),T=v(D),g=r(D,"BUTTON",{class:!0,"data-svelte-h":!0}),H(g)!=="svelte-1emrjb3"&&(g.innerHTML=A),D.forEach(_),F=v(te),L=r(te,"DIV",{class:!0});var ie=P(L);C=r(ie,"BUTTON",{class:!0});var ce=P(C);B=r(ce,"IMG",{src:!0,alt:!0,class:!0}),ue=v(ce),q.l(ce),ce.forEach(_),fe=v(ie),N&&N.l(ie),ie.forEach(_),te.forEach(_),de=v(M),ee=r(M,"MAIN",{class:!0});var ve=P(ee);V&&V.l(ve),ve.forEach(_),pe=v(M),S&&S.l(M),M.forEach(_),this.h()},h(){o(s,"class","p-4 border-b border-gray-200"),o(u,"class","mt-2 mb-1 px-2 text-xs font-medium text-gray-500 uppercase"),o(h,"class",W="w-full flex items-center gap-2 px-2 py-1.5 rounded-md hover:bg-gray-100 transition-colors text-left "+(a[0]==="tts"?"bg-gray-100":"")),o(m,"class","w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-left opacity-40 cursor-not-allowed"),m.disabled=!0,o(y,"class","w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-left opacity-40 cursor-not-allowed"),y.disabled=!0,o(f,"class","w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-left opacity-40 cursor-not-allowed"),f.disabled=!0,o(O,"class","w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-left opacity-40 cursor-not-allowed"),O.disabled=!0,o(g,"class","w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-left opacity-40 cursor-not-allowed"),g.disabled=!0,o(l,"class","p-2 text-sm flex-1"),Ue(B.src,$="/assets/hf-logo.png")||o(B,"src",$),o(B,"alt","HF Logo"),o(B,"class","w-5 h-5"),C.disabled=a[7],o(C,"class","w-full px-6 py-3 bg-black text-white rounded-lg font-medium hover:bg-gray-800 transition-colors shadow-sm flex items-center justify-center gap-2 text-sm disabled:opacity-50 disabled:cursor-not-allowed"),o(L,"class","p-2 relative"),o(e,"class","w-56 border-r border-gray-200 bg-white flex-shrink-0 flex flex-col h-full "),o(ee,"class","flex-1 overflow-auto"),o(t,"class","flex h-screen bg-white")},m(p,M){Z(p,t,M),n(t,e),n(e,s),n(e,b),n(e,l),n(l,u),n(l,I),n(l,h),n(h,U),n(h,z),n(h,w),n(l,J),n(l,m),n(l,Q),n(l,y),n(l,d),n(l,f),n(l,R),n(l,O),n(l,T),n(l,g),n(e,F),n(e,L),n(L,C),n(C,B),n(C,ue),q.m(C,null),n(L,fe),N&&N.m(L,null),n(t,de),n(t,ee),V&&V.m(ee,null),n(t,pe),S&&S.m(t,null),X=!0,he||(_e=[se(h,"click",a[14]),se(C,"click",a[9])],he=!0)},p(p,[M]){(!X||M&1&&W!==(W="w-full flex items-center gap-2 px-2 py-1.5 rounded-md hover:bg-gray-100 transition-colors text-left "+(p[0]==="tts"?"bg-gray-100":"")))&&o(h,"class",W),ae===(ae=be(p))&&q?q.p(p,M):(q.d(1),q=ae(p),q&&(q.c(),q.m(C,null))),(!X||M&128)&&(C.disabled=p[7]),p[8]&&!p[1]?N||(N=we(),N.c(),N.m(L,null)):N&&(N.d(1),N=null),V&&V.p&&(!X||M&4096)&&Ae(V,ge,p,p[12],X?Pe(ge,p[12],M,null):Ne(p[12]),null),p[3]?S?S.p(p,M):(S=ke(p),S.c(),S.m(t,null)):S&&(S.d(1),S=null)},i(p){X||(Me(V,p),X=!0)},o(p){Se(V,p),X=!1},d(p){p&&_(t),q.d(),N&&N.d(),V&&V.d(p),S&&S.d(),he=!1,Ce(_e)}}}function Fe(a,t,e){let{$$slots:s={},$$scope:c}=t,b="tts",l=!1,u="",G=!1,I="",h="",U=!1,Y=!0,z=!1;Be(()=>{window.addEventListener("show-signin-popover",()=>{e(8,z=!0),setTimeout(()=>{e(8,z=!1)},4e3)}),w(),E(),document.addEventListener("visibilitychange",()=>{document.hidden||E()}),window.addEventListener("storage",E);const d=setInterval(E,1e3);return()=>{window.removeEventListener("storage",E),clearInterval(d)}});async function w(){try{const f=await(await fetch("/api/auth/local-token")).json();f.available?(e(6,U=!0),localStorage.setItem("hf_access_token",f.token),f.user_info&&f.user_info.name!=="Local User"?(e(1,l=!0),e(2,u=f.user_info.name.split(" ")[0])):(e(1,l=!0),e(2,u="Local User"))):e(6,U=!1)}catch{e(6,U=!1)}finally{e(7,Y=!1)}}function E(){const d=localStorage.getItem("hf_access_token");d&&!l?W(d):d||(e(1,l=!1),e(2,u=""))}async function W(d){try{const f=await fetch("https://huggingface.co/api/whoami-v2",{headers:{Authorization:`Bearer ${d}`}});if(f.ok){const k=await f.json();e(1,l=!0);const R=k.name||k.fullname||k.login||k.username||"User";e(2,u=R.split(" ")[0])}else localStorage.removeItem("hf_access_token"),e(1,l=!1),e(2,u="")}catch{localStorage.removeItem("hf_access_token"),e(1,l=!1),e(2,u="")}}async function J(){if(l)localStorage.removeItem("hf_access_token"),sessionStorage.removeItem("oauth_state"),e(1,l=!1),e(2,u="");else if(window.location.hostname.includes("hf.space")||window.location.hostname.includes("huggingface.co"))try{const f=await(await fetch("/api/auth/oauth-config")).json(),k=f.scopes||"read-repos write-repos manage-repos inference-api",R=`https://huggingface.co/oauth/authorize?client_id=${f.client_id}&redirect_uri=${encodeURIComponent(window.location.origin+"/auth/callback")}&scope=${encodeURIComponent(k)}&response_type=code&state=${Date.now()}`;window.location.href=R}catch{e(3,G=!0),e(4,I=""),e(5,h="")}else e(3,G=!0),e(4,I=""),e(5,h="")}function m(){e(3,G=!1),e(4,I=""),e(5,h="")}async function K(){if(!I.trim()){e(5,h="Please enter a token");return}if(!I.startsWith("hf_")){e(5,h='Token should start with "hf_"');return}try{const d=await fetch("https://huggingface.co/api/whoami-v2",{headers:{Authorization:`Bearer ${I.trim()}`}});if(d.ok){const f=await d.json();localStorage.setItem("hf_access_token",I.trim()),e(1,l=!0);const k=f.name||f.fullname||f.login||f.username||"User";e(2,u=k.split(" ")[0]),m()}else e(5,h=`Invalid token (${d.status}). Please check your token and try again.`)}catch{e(5,h="Error validating token. Please try again.")}}const Q=()=>e(0,b="tts");function y(){I=this.value,e(4,I)}const j=d=>d.key==="Enter"&&K();return a.$$set=d=>{"$$scope"in d&&e(12,c=d.$$scope)},[b,l,u,G,I,h,U,Y,z,J,m,K,c,s,Q,y,j]}class Re extends Ie{constructor(t){super(),Le(this,t,Fe,ze,He,{})}}export{Re as component};
|
hfstudio/static/_app/immutable/nodes/1.DqNvkuKf.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{S as x,i as S,s as q,A as _,d as u,x as d,f as m,h as f,k as g,m as h,y as v,o as y,p as $,z as E,q as k,B as z}from"../chunks/Bqgpa-5T.js";import"../chunks/IHki7fMi.js";import{s as A}from"../chunks/Bs9I3-rU.js";const B=()=>{const s=A;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},C={subscribe(s){return B().page.subscribe(s)}};function H(s){var b;let t,r=s[0].status+"",o,n,i,p=((b=s[0].error)==null?void 0:b.message)+"",l;return{c(){t=$("h1"),o=E(r),n=k(),i=$("p"),l=E(p)},l(e){t=g(e,"H1",{});var a=h(t);o=v(a,r),a.forEach(u),n=y(e),i=g(e,"P",{});var c=h(i);l=v(c,p),c.forEach(u)},m(e,a){m(e,t,a),f(t,o),m(e,n,a),m(e,i,a),f(i,l)},p(e,[a]){var c;a&1&&r!==(r=e[0].status+"")&&d(o,r),a&1&&p!==(p=((c=e[0].error)==null?void 0:c.message)+"")&&d(l,p)},i:_,o:_,d(e){e&&(u(t),u(n),u(i))}}}function P(s,t,r){let o;return z(s,C,n=>r(0,o=n)),[o]}let F=class extends x{constructor(t){super(),S(this,t,P,H,q,{})}};export{F as component};
|
hfstudio/static/_app/immutable/nodes/2.Cu9jABEo.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import{r as Dt,a as $,t as w,S as je,i as Be,s as xe,c as Ge,O as B,d as u,P as jt,u as Re,g as Fe,e as Ke,Q as Bt,f as te,h as a,R as Dl,m as h,E as It,T as Vl,U as Qt,V as ae,I as J,K as X,L as Y,J as Q,b as c,D as st,l as oe,k as d,y as q,o as x,p as m,z as G,q as z,C as rt,w as Mt,x as Oe,n as qe,N as Sl,W as Zt,M as Ot,A as _t,j as el}from"../chunks/Bqgpa-5T.js";import"../chunks/IHki7fMi.js";function gt(r){return(r==null?void 0:r.length)!==void 0?r:Array.from(r)}function xl(r,e){w(r,1,1,()=>{e.delete(r.key)})}function zl(r,e,s,t,l,n,o,i,f,_,S,V){let g=r.length,v=n.length,b=g;const U={};for(;b--;)U[r[b].key]=b;const N=[],A=new Map,O=new Map,L=[];for(b=v;b--;){const k=V(l,n,b),H=s(k);let I=o.get(H);I?L.push(()=>I.p(k,e)):(I=_(H,k),I.c()),A.set(H,N[b]=I),H in U&&O.set(H,Math.abs(b-U[H]))}const T=new Set,P=new Set;function W(k){$(k,1),k.m(i,S),o.set(k.key,k),S=k.first,v--}for(;g&&v;){const k=N[v-1],H=r[g-1],I=k.key,K=H.key;k===H?(S=k.first,g--,v--):A.has(K)?!o.has(I)||T.has(I)?W(k):P.has(K)?g--:O.get(I)>O.get(K)?(P.add(I),W(k)):(T.add(K),g--):(f(H,o),g--)}for(;g--;){const k=r[g];A.has(k.key)||f(k,o)}for(;v;)W(N[v-1]);return Dt(L),N}function Le(r,e){const s={},t={},l={$$scope:1};let n=r.length;for(;n--;){const o=r[n],i=e[n];if(i){for(const f in o)f in i||(t[f]=1);for(const f in i)l[f]||(s[f]=i[f],l[f]=1);r[n]=i}else for(const f in o)l[f]=1}for(const o in t)o in s||(s[o]=void 0);return s}function Xe(r){return typeof r=="object"&&r!==null?r:{}}/**
|
| 2 |
+
* @license lucide-svelte v0.303.0 - ISC
|
| 3 |
+
|
| 4 |
+
This source code is licensed under the ISC license.
|
| 5 |
+
See the LICENSE file in the root directory of this source tree.
|
| 6 |
+
*/const tl={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};function ll(r,e,s){const t=r.slice();return t[10]=e[s][0],t[11]=e[s][1],t}function Wt(r){let e,s=[r[11]],t={};for(let l=0;l<s.length;l+=1)t=B(t,s[l]);return{c(){e=Vl(r[10]),this.h()},l(l){e=Dl(l,r[10],{}),h(e).forEach(u),this.h()},h(){Bt(e,t)},m(l,n){te(l,e,n)},p(l,n){Bt(e,t=Le(s,[n&32&&l[11]]))},d(l){l&&u(e)}}}function nl(r){let e=r[10],s,t=r[10]&&Wt(r);return{c(){t&&t.c(),s=It()},l(l){t&&t.l(l),s=It()},m(l,n){t&&t.m(l,n),te(l,s,n)},p(l,n){l[10]?e?xe(e,l[10])?(t.d(1),t=Wt(l),e=l[10],t.c(),t.m(s.parentNode,s)):t.p(l,n):(t=Wt(l),e=l[10],t.c(),t.m(s.parentNode,s)):e&&(t.d(1),t=null,e=l[10])},d(l){l&&u(s),t&&t.d(l)}}}function Al(r){let e,s,t,l,n,o=gt(r[5]),i=[];for(let g=0;g<o.length;g+=1)i[g]=nl(ll(r,o,g));const f=r[9].default,_=Ge(f,r,r[8],null);let S=[tl,r[6],{width:r[2]},{height:r[2]},{stroke:r[1]},{"stroke-width":t=r[4]?Number(r[3])*24/Number(r[2]):r[3]},{class:l=`lucide-icon lucide lucide-${r[0]} ${r[7].class??""}`}],V={};for(let g=0;g<S.length;g+=1)V=B(V,S[g]);return{c(){e=Vl("svg");for(let g=0;g<i.length;g+=1)i[g].c();s=It(),_&&_.c(),this.h()},l(g){e=Dl(g,"svg",{width:!0,height:!0,stroke:!0,"stroke-width":!0,class:!0});var v=h(e);for(let b=0;b<i.length;b+=1)i[b].l(v);s=It(),_&&_.l(v),v.forEach(u),this.h()},h(){Bt(e,V)},m(g,v){te(g,e,v);for(let b=0;b<i.length;b+=1)i[b]&&i[b].m(e,null);a(e,s),_&&_.m(e,null),n=!0},p(g,[v]){if(v&32){o=gt(g[5]);let b;for(b=0;b<o.length;b+=1){const U=ll(g,o,b);i[b]?i[b].p(U,v):(i[b]=nl(U),i[b].c(),i[b].m(e,s))}for(;b<i.length;b+=1)i[b].d(1);i.length=o.length}_&&_.p&&(!n||v&256)&&Re(_,f,g,g[8],n?Ke(f,g[8],v,null):Fe(g[8]),null),Bt(e,V=Le(S,[tl,v&64&&g[6],(!n||v&4)&&{width:g[2]},(!n||v&4)&&{height:g[2]},(!n||v&2)&&{stroke:g[1]},(!n||v&28&&t!==(t=g[4]?Number(g[3])*24/Number(g[2]):g[3]))&&{"stroke-width":t},(!n||v&129&&l!==(l=`lucide-icon lucide lucide-${g[0]} ${g[7].class??""}`))&&{class:l}]))},i(g){n||($(_,g),n=!0)},o(g){w(_,g),n=!1},d(g){g&&u(e),jt(i,g),_&&_.d(g)}}}function Pl(r,e,s){const t=["name","color","size","strokeWidth","absoluteStrokeWidth","iconNode"];let l=Qt(e,t),{$$slots:n={},$$scope:o}=e,{name:i}=e,{color:f="currentColor"}=e,{size:_=24}=e,{strokeWidth:S=2}=e,{absoluteStrokeWidth:V=!1}=e,{iconNode:g}=e;return r.$$set=v=>{s(7,e=B(B({},e),ae(v))),s(6,l=Qt(e,t)),"name"in v&&s(0,i=v.name),"color"in v&&s(1,f=v.color),"size"in v&&s(2,_=v.size),"strokeWidth"in v&&s(3,S=v.strokeWidth),"absoluteStrokeWidth"in v&&s(4,V=v.absoluteStrokeWidth),"iconNode"in v&&s(5,g=v.iconNode),"$$scope"in v&&s(8,o=v.$$scope)},e=ae(e),[i,f,_,S,V,g,l,e,o,n]}class Ye extends je{constructor(e){super(),Be(this,e,Pl,Al,xe,{name:0,color:1,size:2,strokeWidth:3,absoluteStrokeWidth:4,iconNode:5})}}function Ml(r){let e;const s=r[2].default,t=Ge(s,r,r[3],null);return{c(){t&&t.c()},l(l){t&&t.l(l)},m(l,n){t&&t.m(l,n),e=!0},p(l,n){t&&t.p&&(!e||n&8)&&Re(t,s,l,l[3],e?Ke(s,l[3],n,null):Fe(l[3]),null)},i(l){e||($(t,l),e=!0)},o(l){w(t,l),e=!1},d(l){t&&t.d(l)}}}function Ul(r){let e,s;const t=[{name:"alert-circle"},r[1],{iconNode:r[0]}];let l={$$slots:{default:[Ml]},$$scope:{ctx:r}};for(let n=0;n<t.length;n+=1)l=B(l,t[n]);return e=new Ye({props:l}),{c(){Q(e.$$.fragment)},l(n){Y(e.$$.fragment,n)},m(n,o){X(e,n,o),s=!0},p(n,[o]){const i=o&3?Le(t,[t[0],o&2&&Xe(n[1]),o&1&&{iconNode:n[0]}]):{};o&8&&(i.$$scope={dirty:o,ctx:n}),e.$set(i)},i(n){s||($(e.$$.fragment,n),s=!0)},o(n){w(e.$$.fragment,n),s=!1},d(n){J(e,n)}}}function Ol(r,e,s){let{$$slots:t={},$$scope:l}=e;const n=[["circle",{cx:"12",cy:"12",r:"10"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16"}]];return r.$$set=o=>{s(1,e=B(B({},e),ae(o))),"$$scope"in o&&s(3,l=o.$$scope)},e=ae(e),[n,e,t,l]}class Cl extends je{constructor(e){super(),Be(this,e,Ol,Ul,xe,{})}}function jl(r){let e;const s=r[2].default,t=Ge(s,r,r[3],null);return{c(){t&&t.c()},l(l){t&&t.l(l)},m(l,n){t&&t.m(l,n),e=!0},p(l,n){t&&t.p&&(!e||n&8)&&Re(t,s,l,l[3],e?Ke(s,l[3],n,null):Fe(l[3]),null)},i(l){e||($(t,l),e=!0)},o(l){w(t,l),e=!1},d(l){t&&t.d(l)}}}function Bl(r){let e,s;const t=[{name:"chevron-down"},r[1],{iconNode:r[0]}];let l={$$slots:{default:[jl]},$$scope:{ctx:r}};for(let n=0;n<t.length;n+=1)l=B(l,t[n]);return e=new Ye({props:l}),{c(){Q(e.$$.fragment)},l(n){Y(e.$$.fragment,n)},m(n,o){X(e,n,o),s=!0},p(n,[o]){const i=o&3?Le(t,[t[0],o&2&&Xe(n[1]),o&1&&{iconNode:n[0]}]):{};o&8&&(i.$$scope={dirty:o,ctx:n}),e.$set(i)},i(n){s||($(e.$$.fragment,n),s=!0)},o(n){w(e.$$.fragment,n),s=!1},d(n){J(e,n)}}}function Ll(r,e,s){let{$$slots:t={},$$scope:l}=e;const n=[["path",{d:"m6 9 6 6 6-6"}]];return r.$$set=o=>{s(1,e=B(B({},e),ae(o))),"$$scope"in o&&s(3,l=o.$$scope)},e=ae(e),[n,e,t,l]}class Hl extends je{constructor(e){super(),Be(this,e,Ll,Bl,xe,{})}}function Wl(r){let e;const s=r[2].default,t=Ge(s,r,r[3],null);return{c(){t&&t.c()},l(l){t&&t.l(l)},m(l,n){t&&t.m(l,n),e=!0},p(l,n){t&&t.p&&(!e||n&8)&&Re(t,s,l,l[3],e?Ke(s,l[3],n,null):Fe(l[3]),null)},i(l){e||($(t,l),e=!0)},o(l){w(t,l),e=!1},d(l){t&&t.d(l)}}}function ql(r){let e,s;const t=[{name:"code"},r[1],{iconNode:r[0]}];let l={$$slots:{default:[Wl]},$$scope:{ctx:r}};for(let n=0;n<t.length;n+=1)l=B(l,t[n]);return e=new Ye({props:l}),{c(){Q(e.$$.fragment)},l(n){Y(e.$$.fragment,n)},m(n,o){X(e,n,o),s=!0},p(n,[o]){const i=o&3?Le(t,[t[0],o&2&&Xe(n[1]),o&1&&{iconNode:n[0]}]):{};o&8&&(i.$$scope={dirty:o,ctx:n}),e.$set(i)},i(n){s||($(e.$$.fragment,n),s=!0)},o(n){w(e.$$.fragment,n),s=!1},d(n){J(e,n)}}}function Gl(r,e,s){let{$$slots:t={},$$scope:l}=e;const n=[["polyline",{points:"16 18 22 12 16 6"}],["polyline",{points:"8 6 2 12 8 18"}]];return r.$$set=o=>{s(1,e=B(B({},e),ae(o))),"$$scope"in o&&s(3,l=o.$$scope)},e=ae(e),[n,e,t,l]}class Rl extends je{constructor(e){super(),Be(this,e,Gl,ql,xe,{})}}function Fl(r){let e;const s=r[2].default,t=Ge(s,r,r[3],null);return{c(){t&&t.c()},l(l){t&&t.l(l)},m(l,n){t&&t.m(l,n),e=!0},p(l,n){t&&t.p&&(!e||n&8)&&Re(t,s,l,l[3],e?Ke(s,l[3],n,null):Fe(l[3]),null)},i(l){e||($(t,l),e=!0)},o(l){w(t,l),e=!1},d(l){t&&t.d(l)}}}function Kl(r){let e,s;const t=[{name:"copy"},r[1],{iconNode:r[0]}];let l={$$slots:{default:[Fl]},$$scope:{ctx:r}};for(let n=0;n<t.length;n+=1)l=B(l,t[n]);return e=new Ye({props:l}),{c(){Q(e.$$.fragment)},l(n){Y(e.$$.fragment,n)},m(n,o){X(e,n,o),s=!0},p(n,[o]){const i=o&3?Le(t,[t[0],o&2&&Xe(n[1]),o&1&&{iconNode:n[0]}]):{};o&8&&(i.$$scope={dirty:o,ctx:n}),e.$set(i)},i(n){s||($(e.$$.fragment,n),s=!0)},o(n){w(e.$$.fragment,n),s=!1},d(n){J(e,n)}}}function Jl(r,e,s){let{$$slots:t={},$$scope:l}=e;const n=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"}]];return r.$$set=o=>{s(1,e=B(B({},e),ae(o))),"$$scope"in o&&s(3,l=o.$$scope)},e=ae(e),[n,e,t,l]}class qt extends je{constructor(e){super(),Be(this,e,Jl,Kl,xe,{})}}function Xl(r){let e;const s=r[2].default,t=Ge(s,r,r[3],null);return{c(){t&&t.c()},l(l){t&&t.l(l)},m(l,n){t&&t.m(l,n),e=!0},p(l,n){t&&t.p&&(!e||n&8)&&Re(t,s,l,l[3],e?Ke(s,l[3],n,null):Fe(l[3]),null)},i(l){e||($(t,l),e=!0)},o(l){w(t,l),e=!1},d(l){t&&t.d(l)}}}function Yl(r){let e,s;const t=[{name:"download"},r[1],{iconNode:r[0]}];let l={$$slots:{default:[Xl]},$$scope:{ctx:r}};for(let n=0;n<t.length;n+=1)l=B(l,t[n]);return e=new Ye({props:l}),{c(){Q(e.$$.fragment)},l(n){Y(e.$$.fragment,n)},m(n,o){X(e,n,o),s=!0},p(n,[o]){const i=o&3?Le(t,[t[0],o&2&&Xe(n[1]),o&1&&{iconNode:n[0]}]):{};o&8&&(i.$$scope={dirty:o,ctx:n}),e.$set(i)},i(n){s||($(e.$$.fragment,n),s=!0)},o(n){w(e.$$.fragment,n),s=!1},d(n){J(e,n)}}}function Ql(r,e,s){let{$$slots:t={},$$scope:l}=e;const n=[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}],["polyline",{points:"7 10 12 15 17 10"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3"}]];return r.$$set=o=>{s(1,e=B(B({},e),ae(o))),"$$scope"in o&&s(3,l=o.$$scope)},e=ae(e),[n,e,t,l]}class sl extends je{constructor(e){super(),Be(this,e,Ql,Yl,xe,{})}}function Zl(r){let e;const s=r[2].default,t=Ge(s,r,r[3],null);return{c(){t&&t.c()},l(l){t&&t.l(l)},m(l,n){t&&t.m(l,n),e=!0},p(l,n){t&&t.p&&(!e||n&8)&&Re(t,s,l,l[3],e?Ke(s,l[3],n,null):Fe(l[3]),null)},i(l){e||($(t,l),e=!0)},o(l){w(t,l),e=!1},d(l){t&&t.d(l)}}}function en(r){let e,s;const t=[{name:"loader-2"},r[1],{iconNode:r[0]}];let l={$$slots:{default:[Zl]},$$scope:{ctx:r}};for(let n=0;n<t.length;n+=1)l=B(l,t[n]);return e=new Ye({props:l}),{c(){Q(e.$$.fragment)},l(n){Y(e.$$.fragment,n)},m(n,o){X(e,n,o),s=!0},p(n,[o]){const i=o&3?Le(t,[t[0],o&2&&Xe(n[1]),o&1&&{iconNode:n[0]}]):{};o&8&&(i.$$scope={dirty:o,ctx:n}),e.$set(i)},i(n){s||($(e.$$.fragment,n),s=!0)},o(n){w(e.$$.fragment,n),s=!1},d(n){J(e,n)}}}function tn(r,e,s){let{$$slots:t={},$$scope:l}=e;const n=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56"}]];return r.$$set=o=>{s(1,e=B(B({},e),ae(o))),"$$scope"in o&&s(3,l=o.$$scope)},e=ae(e),[n,e,t,l]}class ln extends je{constructor(e){super(),Be(this,e,tn,en,xe,{})}}function nn(r){let e;const s=r[2].default,t=Ge(s,r,r[3],null);return{c(){t&&t.c()},l(l){t&&t.l(l)},m(l,n){t&&t.m(l,n),e=!0},p(l,n){t&&t.p&&(!e||n&8)&&Re(t,s,l,l[3],e?Ke(s,l[3],n,null):Fe(l[3]),null)},i(l){e||($(t,l),e=!0)},o(l){w(t,l),e=!1},d(l){t&&t.d(l)}}}function sn(r){let e,s;const t=[{name:"more-horizontal"},r[1],{iconNode:r[0]}];let l={$$slots:{default:[nn]},$$scope:{ctx:r}};for(let n=0;n<t.length;n+=1)l=B(l,t[n]);return e=new Ye({props:l}),{c(){Q(e.$$.fragment)},l(n){Y(e.$$.fragment,n)},m(n,o){X(e,n,o),s=!0},p(n,[o]){const i=o&3?Le(t,[t[0],o&2&&Xe(n[1]),o&1&&{iconNode:n[0]}]):{};o&8&&(i.$$scope={dirty:o,ctx:n}),e.$set(i)},i(n){s||($(e.$$.fragment,n),s=!0)},o(n){w(e.$$.fragment,n),s=!1},d(n){J(e,n)}}}function rn(r,e,s){let{$$slots:t={},$$scope:l}=e;const n=[["circle",{cx:"12",cy:"12",r:"1"}],["circle",{cx:"19",cy:"12",r:"1"}],["circle",{cx:"5",cy:"12",r:"1"}]];return r.$$set=o=>{s(1,e=B(B({},e),ae(o))),"$$scope"in o&&s(3,l=o.$$scope)},e=ae(e),[n,e,t,l]}class on extends je{constructor(e){super(),Be(this,e,rn,sn,xe,{})}}function an(r){let e;const s=r[2].default,t=Ge(s,r,r[3],null);return{c(){t&&t.c()},l(l){t&&t.l(l)},m(l,n){t&&t.m(l,n),e=!0},p(l,n){t&&t.p&&(!e||n&8)&&Re(t,s,l,l[3],e?Ke(s,l[3],n,null):Fe(l[3]),null)},i(l){e||($(t,l),e=!0)},o(l){w(t,l),e=!1},d(l){t&&t.d(l)}}}function cn(r){let e,s;const t=[{name:"panels-top-left"},r[1],{iconNode:r[0]}];let l={$$slots:{default:[an]},$$scope:{ctx:r}};for(let n=0;n<t.length;n+=1)l=B(l,t[n]);return e=new Ye({props:l}),{c(){Q(e.$$.fragment)},l(n){Y(e.$$.fragment,n)},m(n,o){X(e,n,o),s=!0},p(n,[o]){const i=o&3?Le(t,[t[0],o&2&&Xe(n[1]),o&1&&{iconNode:n[0]}]):{};o&8&&(i.$$scope={dirty:o,ctx:n}),e.$set(i)},i(n){s||($(e.$$.fragment,n),s=!0)},o(n){w(e.$$.fragment,n),s=!1},d(n){J(e,n)}}}function fn(r,e,s){let{$$slots:t={},$$scope:l}=e;const n=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}],["path",{d:"M3 9h18"}],["path",{d:"M9 21V9"}]];return r.$$set=o=>{s(1,e=B(B({},e),ae(o))),"$$scope"in o&&s(3,l=o.$$scope)},e=ae(e),[n,e,t,l]}class un extends je{constructor(e){super(),Be(this,e,fn,cn,xe,{})}}function dn(r){let e;const s=r[2].default,t=Ge(s,r,r[3],null);return{c(){t&&t.c()},l(l){t&&t.l(l)},m(l,n){t&&t.m(l,n),e=!0},p(l,n){t&&t.p&&(!e||n&8)&&Re(t,s,l,l[3],e?Ke(s,l[3],n,null):Fe(l[3]),null)},i(l){e||($(t,l),e=!0)},o(l){w(t,l),e=!1},d(l){t&&t.d(l)}}}function mn(r){let e,s;const t=[{name:"pause"},r[1],{iconNode:r[0]}];let l={$$slots:{default:[dn]},$$scope:{ctx:r}};for(let n=0;n<t.length;n+=1)l=B(l,t[n]);return e=new Ye({props:l}),{c(){Q(e.$$.fragment)},l(n){Y(e.$$.fragment,n)},m(n,o){X(e,n,o),s=!0},p(n,[o]){const i=o&3?Le(t,[t[0],o&2&&Xe(n[1]),o&1&&{iconNode:n[0]}]):{};o&8&&(i.$$scope={dirty:o,ctx:n}),e.$set(i)},i(n){s||($(e.$$.fragment,n),s=!0)},o(n){w(e.$$.fragment,n),s=!1},d(n){J(e,n)}}}function hn(r,e,s){let{$$slots:t={},$$scope:l}=e;const n=[["rect",{width:"4",height:"16",x:"6",y:"4"}],["rect",{width:"4",height:"16",x:"14",y:"4"}]];return r.$$set=o=>{s(1,e=B(B({},e),ae(o))),"$$scope"in o&&s(3,l=o.$$scope)},e=ae(e),[n,e,t,l]}class gn extends je{constructor(e){super(),Be(this,e,hn,mn,xe,{})}}function _n(r){let e;const s=r[2].default,t=Ge(s,r,r[3],null);return{c(){t&&t.c()},l(l){t&&t.l(l)},m(l,n){t&&t.m(l,n),e=!0},p(l,n){t&&t.p&&(!e||n&8)&&Re(t,s,l,l[3],e?Ke(s,l[3],n,null):Fe(l[3]),null)},i(l){e||($(t,l),e=!0)},o(l){w(t,l),e=!1},d(l){t&&t.d(l)}}}function pn(r){let e,s;const t=[{name:"play"},r[1],{iconNode:r[0]}];let l={$$slots:{default:[_n]},$$scope:{ctx:r}};for(let n=0;n<t.length;n+=1)l=B(l,t[n]);return e=new Ye({props:l}),{c(){Q(e.$$.fragment)},l(n){Y(e.$$.fragment,n)},m(n,o){X(e,n,o),s=!0},p(n,[o]){const i=o&3?Le(t,[t[0],o&2&&Xe(n[1]),o&1&&{iconNode:n[0]}]):{};o&8&&(i.$$scope={dirty:o,ctx:n}),e.$set(i)},i(n){s||($(e.$$.fragment,n),s=!0)},o(n){w(e.$$.fragment,n),s=!1},d(n){J(e,n)}}}function vn(r,e,s){let{$$slots:t={},$$scope:l}=e;const n=[["polygon",{points:"5 3 19 12 5 21 5 3"}]];return r.$$set=o=>{s(1,e=B(B({},e),ae(o))),"$$scope"in o&&s(3,l=o.$$scope)},e=ae(e),[n,e,t,l]}class Lt extends je{constructor(e){super(),Be(this,e,vn,pn,xe,{})}}function bn(r){let e;const s=r[2].default,t=Ge(s,r,r[3],null);return{c(){t&&t.c()},l(l){t&&t.l(l)},m(l,n){t&&t.m(l,n),e=!0},p(l,n){t&&t.p&&(!e||n&8)&&Re(t,s,l,l[3],e?Ke(s,l[3],n,null):Fe(l[3]),null)},i(l){e||($(t,l),e=!0)},o(l){w(t,l),e=!1},d(l){t&&t.d(l)}}}function kn(r){let e,s;const t=[{name:"share"},r[1],{iconNode:r[0]}];let l={$$slots:{default:[bn]},$$scope:{ctx:r}};for(let n=0;n<t.length;n+=1)l=B(l,t[n]);return e=new Ye({props:l}),{c(){Q(e.$$.fragment)},l(n){Y(e.$$.fragment,n)},m(n,o){X(e,n,o),s=!0},p(n,[o]){const i=o&3?Le(t,[t[0],o&2&&Xe(n[1]),o&1&&{iconNode:n[0]}]):{};o&8&&(i.$$scope={dirty:o,ctx:n}),e.$set(i)},i(n){s||($(e.$$.fragment,n),s=!0)},o(n){w(e.$$.fragment,n),s=!1},d(n){J(e,n)}}}function $n(r,e,s){let{$$slots:t={},$$scope:l}=e;const n=[["path",{d:"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"}],["polyline",{points:"16 6 12 2 8 6"}],["line",{x1:"12",x2:"12",y1:"2",y2:"15"}]];return r.$$set=o=>{s(1,e=B(B({},e),ae(o))),"$$scope"in o&&s(3,l=o.$$scope)},e=ae(e),[n,e,t,l]}class rl extends je{constructor(e){super(),Be(this,e,$n,kn,xe,{})}}function yn(r){let e;const s=r[2].default,t=Ge(s,r,r[3],null);return{c(){t&&t.c()},l(l){t&&t.l(l)},m(l,n){t&&t.m(l,n),e=!0},p(l,n){t&&t.p&&(!e||n&8)&&Re(t,s,l,l[3],e?Ke(s,l[3],n,null):Fe(l[3]),null)},i(l){e||($(t,l),e=!0)},o(l){w(t,l),e=!1},d(l){t&&t.d(l)}}}function wn(r){let e,s;const t=[{name:"skip-back"},r[1],{iconNode:r[0]}];let l={$$slots:{default:[yn]},$$scope:{ctx:r}};for(let n=0;n<t.length;n+=1)l=B(l,t[n]);return e=new Ye({props:l}),{c(){Q(e.$$.fragment)},l(n){Y(e.$$.fragment,n)},m(n,o){X(e,n,o),s=!0},p(n,[o]){const i=o&3?Le(t,[t[0],o&2&&Xe(n[1]),o&1&&{iconNode:n[0]}]):{};o&8&&(i.$$scope={dirty:o,ctx:n}),e.$set(i)},i(n){s||($(e.$$.fragment,n),s=!0)},o(n){w(e.$$.fragment,n),s=!1},d(n){J(e,n)}}}function En(r,e,s){let{$$slots:t={},$$scope:l}=e;const n=[["polygon",{points:"19 20 9 12 19 4 19 20"}],["line",{x1:"5",x2:"5",y1:"19",y2:"5"}]];return r.$$set=o=>{s(1,e=B(B({},e),ae(o))),"$$scope"in o&&s(3,l=o.$$scope)},e=ae(e),[n,e,t,l]}class Nn extends je{constructor(e){super(),Be(this,e,En,wn,xe,{})}}function Tn(r){let e;const s=r[2].default,t=Ge(s,r,r[3],null);return{c(){t&&t.c()},l(l){t&&t.l(l)},m(l,n){t&&t.m(l,n),e=!0},p(l,n){t&&t.p&&(!e||n&8)&&Re(t,s,l,l[3],e?Ke(s,l[3],n,null):Fe(l[3]),null)},i(l){e||($(t,l),e=!0)},o(l){w(t,l),e=!1},d(l){t&&t.d(l)}}}function In(r){let e,s;const t=[{name:"skip-forward"},r[1],{iconNode:r[0]}];let l={$$slots:{default:[Tn]},$$scope:{ctx:r}};for(let n=0;n<t.length;n+=1)l=B(l,t[n]);return e=new Ye({props:l}),{c(){Q(e.$$.fragment)},l(n){Y(e.$$.fragment,n)},m(n,o){X(e,n,o),s=!0},p(n,[o]){const i=o&3?Le(t,[t[0],o&2&&Xe(n[1]),o&1&&{iconNode:n[0]}]):{};o&8&&(i.$$scope={dirty:o,ctx:n}),e.$set(i)},i(n){s||($(e.$$.fragment,n),s=!0)},o(n){w(e.$$.fragment,n),s=!1},d(n){J(e,n)}}}function Dn(r,e,s){let{$$slots:t={},$$scope:l}=e;const n=[["polygon",{points:"5 4 15 12 5 20 5 4"}],["line",{x1:"19",x2:"19",y1:"5",y2:"19"}]];return r.$$set=o=>{s(1,e=B(B({},e),ae(o))),"$$scope"in o&&s(3,l=o.$$scope)},e=ae(e),[n,e,t,l]}class Vn extends je{constructor(e){super(),Be(this,e,Dn,In,xe,{})}}function Cn(r){let e;const s=r[2].default,t=Ge(s,r,r[3],null);return{c(){t&&t.c()},l(l){t&&t.l(l)},m(l,n){t&&t.m(l,n),e=!0},p(l,n){t&&t.p&&(!e||n&8)&&Re(t,s,l,l[3],e?Ke(s,l[3],n,null):Fe(l[3]),null)},i(l){e||($(t,l),e=!0)},o(l){w(t,l),e=!1},d(l){t&&t.d(l)}}}function Sn(r){let e,s;const t=[{name:"x"},r[1],{iconNode:r[0]}];let l={$$slots:{default:[Cn]},$$scope:{ctx:r}};for(let n=0;n<t.length;n+=1)l=B(l,t[n]);return e=new Ye({props:l}),{c(){Q(e.$$.fragment)},l(n){Y(e.$$.fragment,n)},m(n,o){X(e,n,o),s=!0},p(n,[o]){const i=o&3?Le(t,[t[0],o&2&&Xe(n[1]),o&1&&{iconNode:n[0]}]):{};o&8&&(i.$$scope={dirty:o,ctx:n}),e.$set(i)},i(n){s||($(e.$$.fragment,n),s=!0)},o(n){w(e.$$.fragment,n),s=!1},d(n){J(e,n)}}}function xn(r,e,s){let{$$slots:t={},$$scope:l}=e;const n=[["path",{d:"M18 6 6 18"}],["path",{d:"m6 6 12 12"}]];return r.$$set=o=>{s(1,e=B(B({},e),ae(o))),"$$scope"in o&&s(3,l=o.$$scope)},e=ae(e),[n,e,t,l]}class zn extends je{constructor(e){super(),Be(this,e,xn,Sn,xe,{})}}function ol(r,e,s){const t=r.slice();return t[64]=e[s],t}function al(r,e,s){const t=r.slice();return t[56]=e[s],t}function il(r,e,s){const t=r.slice();return t[59]=e[s],t}function cl(r,e,s){const t=r.slice();return t[59]=e[s],t}function fl(r){let e;return{c(){e=m("span"),this.h()},l(s){e=d(s,"SPAN",{class:!0}),h(e).forEach(u),this.h()},h(){c(e,"class","flash-sweep svelte-zv1zz2")},m(s,t){te(s,e,t)},d(s){s&&u(e)}}}function An(r){let e,s,t,l,n='<h2 class="text-2xl font-semibold text-gray-900">Integration Code</h2> <p class="text-sm text-gray-600 mt-1">Python code to reproduce your actions via the API</p>',o,i,f,_,S,V,g,v,b,U,N,A,O,L,T,P,W,k=r[2].length>0&&ul(r);const H=[Un,Mn],I=[];function K(y,E){return y[2].length===0?0:1}return O=K(r),L=I[O]=H[O](r),{c(){e=m("div"),s=m("div"),t=m("div"),l=m("div"),l.innerHTML=n,o=z(),i=m("div"),f=m("div"),_=m("button"),S=G("API"),g=z(),v=m("button"),b=G("Local"),N=z(),k&&k.c(),A=z(),L.c(),this.h()},l(y){e=d(y,"DIV",{class:!0});var E=h(e);s=d(E,"DIV",{class:!0});var p=h(s);t=d(p,"DIV",{class:!0});var D=h(t);l=d(D,"DIV",{"data-svelte-h":!0}),qe(l)!=="svelte-jwt4ug"&&(l.innerHTML=n),o=x(D),i=d(D,"DIV",{class:!0});var C=h(i);f=d(C,"DIV",{class:!0});var R=h(f);_=d(R,"BUTTON",{class:!0});var le=h(_);S=q(le,"API"),le.forEach(u),g=x(R),v=d(R,"BUTTON",{class:!0});var ie=h(v);b=q(ie,"Local"),ie.forEach(u),R.forEach(u),N=x(C),k&&k.l(C),C.forEach(u),D.forEach(u),A=x(p),L.l(p),p.forEach(u),E.forEach(u),this.h()},h(){c(_,"class",V="px-3 py-1 text-sm font-medium rounded transition-colors "+(r[5]==="api"?"bg-white shadow-sm":"text-gray-600")),c(v,"class",U="px-3 py-1 text-sm font-medium rounded transition-colors "+(r[5]==="local"?"bg-white shadow-sm":"text-gray-600")),c(f,"class","flex items-center bg-gray-100 rounded-md p-0.5"),c(i,"class","flex items-center justify-between mt-4"),c(t,"class","mb-6"),c(s,"class","max-w-4xl mx-auto p-8"),c(e,"class","flex-1 bg-gray-50 overflow-y-auto")},m(y,E){te(y,e,E),a(e,s),a(s,t),a(t,l),a(t,o),a(t,i),a(i,f),a(f,_),a(_,S),a(f,g),a(f,v),a(v,b),a(i,N),k&&k.m(i,null),a(s,A),I[O].m(s,null),T=!0,P||(W=[oe(_,"click",r[48]),oe(v,"click",r[49])],P=!0)},p(y,E){(!T||E[0]&32&&V!==(V="px-3 py-1 text-sm font-medium rounded transition-colors "+(y[5]==="api"?"bg-white shadow-sm":"text-gray-600")))&&c(_,"class",V),(!T||E[0]&32&&U!==(U="px-3 py-1 text-sm font-medium rounded transition-colors "+(y[5]==="local"?"bg-white shadow-sm":"text-gray-600")))&&c(v,"class",U),y[2].length>0?k?(k.p(y,E),E[0]&4&&$(k,1)):(k=ul(y),k.c(),$(k,1),k.m(i,null)):k&&(rt(),w(k,1,1,()=>{k=null}),st());let p=O;O=K(y),O===p?I[O].p(y,E):(rt(),w(I[p],1,1,()=>{I[p]=null}),st(),L=I[O],L?L.p(y,E):(L=I[O]=H[O](y),L.c()),$(L,1),L.m(s,null))},i(y){T||($(k),$(L),T=!0)},o(y){w(k),w(L),T=!1},d(y){y&&u(e),k&&k.d(),I[O].d(),P=!1,Dt(W)}}}function Pn(r){let e,s,t,l,n,o,i,f,_,S=r[0].length+"",V,g,v,b,U,N,A,O,L,T,P,W,k="Model",H,I,K,y,E,p,D,C,R,le='<h3 class="font-medium text-gray-900">Voice</h3>',ie,ne,de,ce,ot='<div class="flex items-center gap-3 flex-1 min-w-0"><div class="w-10 h-10 bg-gray-400 rounded-full flex items-center justify-center text-white text-sm font-medium flex-shrink-0">+</div> <div class="flex-1 min-w-0"><div class="text-sm font-medium text-gray-600 mb-1">Clone your voice</div> <div class="text-xs text-gray-400">(coming soon)</div></div></div>',we,ke,ve,Ee,pe,Je="Exaggeration",Qe,nt,ze=r[11].toFixed(2)+"",Ne,Ce,ye,Ze,Se,Et="<span>None</span> <span>Exaggerated</span>",Ae,Te,Pe,He,F="Stability",ge,be,Ie=r[12].toFixed(2)+"",Me,et,De,Vt,Ve,at="<span>More stable</span> <span>More variable</span>",Ue,Ct,zt,fe=r[5]==="local"&&hl();const ft=[jn,On],it=[];function ut(M,Z){return M[7]?0:1}U=ut(r),N=it[U]=ft[U](r);let ue=r[8]&&gl(r),dt=gt(r[22]),se=[];for(let M=0;M<dt.length;M+=1)se[M]=vl(cl(r,dt,M));E=new Hl({props:{size:16,class:"text-gray-500"}});let $e=r[6]&&bl(r),mt=gt(r[23]),me=[];for(let M=0;M<mt.length;M+=1)me[M]=$l(al(r,mt,M));const pt=M=>w(me[M],1,1,()=>{me[M]=null});return{c(){e=m("div"),s=m("div"),fe&&fe.c(),t=z(),l=m("div"),n=m("textarea"),o=z(),i=m("div"),f=m("div"),_=m("span"),V=G(S),g=G(" / 5,000 characters"),v=z(),b=m("button"),N.c(),O=z(),ue&&ue.c(),L=z(),T=m("div"),P=m("div"),W=m("h3"),W.textContent=k,H=z(),I=m("button"),K=m("span");for(let M=0;M<se.length;M+=1)se[M].c();y=z(),Q(E.$$.fragment),p=z(),$e&&$e.c(),D=z(),C=m("div"),R=m("div"),R.innerHTML=le,ie=z(),ne=m("div");for(let M=0;M<me.length;M+=1)me[M].c();de=z(),ce=m("button"),ce.innerHTML=ot,we=z(),ke=m("div"),ve=m("div"),Ee=m("div"),pe=m("label"),pe.textContent=Je,Qe=z(),nt=m("span"),Ne=G(ze),Ce=z(),ye=m("input"),Ze=z(),Se=m("div"),Se.innerHTML=Et,Ae=z(),Te=m("div"),Pe=m("div"),He=m("label"),He.textContent=F,ge=z(),be=m("span"),Me=G(Ie),et=z(),De=m("input"),Vt=z(),Ve=m("div"),Ve.innerHTML=at,this.h()},l(M){e=d(M,"DIV",{class:!0});var Z=h(e);s=d(Z,"DIV",{class:!0});var re=h(s);fe&&fe.l(re),t=x(re),l=d(re,"DIV",{class:!0});var ee=h(l);n=d(ee,"TEXTAREA",{class:!0,placeholder:!0}),h(n).forEach(u),ee.forEach(u),o=x(re),i=d(re,"DIV",{class:!0});var he=h(i);f=d(he,"DIV",{class:!0});var j=h(f);_=d(j,"SPAN",{class:!0});var _e=h(_);V=q(_e,S),g=q(_e," / 5,000 characters"),_e.forEach(u),j.forEach(u),v=x(he),b=d(he,"BUTTON",{class:!0});var tt=h(b);N.l(tt),tt.forEach(u),he.forEach(u),O=x(re),ue&&ue.l(re),re.forEach(u),L=x(Z),T=d(Z,"DIV",{class:!0});var We=h(T);P=d(We,"DIV",{class:!0});var vt=h(P);W=d(vt,"H3",{class:!0,"data-svelte-h":!0}),qe(W)!=="svelte-b3hs3r"&&(W.textContent=k),H=x(vt),I=d(vt,"BUTTON",{class:!0});var Nt=h(I);K=d(Nt,"SPAN",{});var St=h(K);for(let ht=0;ht<se.length;ht+=1)se[ht].l(St);St.forEach(u),y=x(Nt),Y(E.$$.fragment,Nt),Nt.forEach(u),p=x(vt),$e&&$e.l(vt),vt.forEach(u),D=x(We),C=d(We,"DIV",{class:!0});var bt=h(C);R=d(bt,"DIV",{class:!0,"data-svelte-h":!0}),qe(R)!=="svelte-182x1ki"&&(R.innerHTML=le),ie=x(bt),ne=d(bt,"DIV",{class:!0});var kt=h(ne);for(let ht=0;ht<me.length;ht+=1)me[ht].l(kt);de=x(kt),ce=d(kt,"BUTTON",{class:!0,"data-svelte-h":!0}),qe(ce)!=="svelte-15dhhm1"&&(ce.innerHTML=ot),kt.forEach(u),bt.forEach(u),we=x(We),ke=d(We,"DIV",{class:!0});var $t=h(ke);ve=d($t,"DIV",{});var yt=h(ve);Ee=d(yt,"DIV",{class:!0});var ct=h(Ee);pe=d(ct,"LABEL",{for:!0,class:!0,"data-svelte-h":!0}),qe(pe)!=="svelte-1b3mj7t"&&(pe.textContent=Je),Qe=x(ct),nt=d(ct,"SPAN",{class:!0});var Ut=h(nt);Ne=q(Ut,ze),Ut.forEach(u),ct.forEach(u),Ce=x(yt),ye=d(yt,"INPUT",{id:!0,type:!0,min:!0,max:!0,step:!0,class:!0}),Ze=x(yt),Se=d(yt,"DIV",{class:!0,"data-svelte-h":!0}),qe(Se)!=="svelte-1nv1j90"&&(Se.innerHTML=Et),yt.forEach(u),Ae=x($t),Te=d($t,"DIV",{});var wt=h(Te);Pe=d(wt,"DIV",{class:!0});var xt=h(Pe);He=d(xt,"LABEL",{for:!0,class:!0,"data-svelte-h":!0}),qe(He)!=="svelte-ttm2j4"&&(He.textContent=F),ge=x(xt),be=d(xt,"SPAN",{class:!0});var lt=h(be);Me=q(lt,Ie),lt.forEach(u),xt.forEach(u),et=x(wt),De=d(wt,"INPUT",{id:!0,type:!0,min:!0,max:!0,step:!0,class:!0}),Vt=x(wt),Ve=d(wt,"DIV",{class:!0,"data-svelte-h":!0}),qe(Ve)!=="svelte-1ipakpw"&&(Ve.innerHTML=at),wt.forEach(u),$t.forEach(u),We.forEach(u),Z.forEach(u),this.h()},h(){c(n,"class","w-full h-full p-6 bg-white resize-none border-0 focus:outline-none text-gray-900 text-base leading-relaxed"),c(n,"placeholder","Welcome to our text to speech demo. This technology can transform any written content into natural sounding audio."),c(l,"class","flex-1 pb-24"),c(_,"class","text-sm text-gray-500"),c(f,"class","flex items-center justify-between mb-3"),b.disabled=A=r[7]||!r[0].trim(),c(b,"class","w-full px-6 py-3 bg-gradient-to-r from-amber-400 to-orange-500 text-white rounded-lg font-medium hover:from-amber-500 hover:to-orange-600 disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2 shadow-sm"),c(i,"class","fixed bottom-0 left-56 right-80 p-4 bg-white border-t border-gray-200"),c(s,"class","flex-1 flex flex-col p-6"),c(W,"class","font-medium text-gray-900 mb-3"),c(I,"class","w-full p-3 border border-gray-200 rounded-lg bg-white text-sm focus:outline-none focus:ring-2 focus:ring-amber-400 focus:border-transparent appearance-none bg-no-repeat bg-right pr-10 shadow-sm text-left flex items-center justify-between"),c(P,"class","mb-6 relative model-dropdown"),c(R,"class","mb-3"),c(ce,"class","w-full flex items-center justify-between p-2 rounded-lg opacity-50 cursor-not-allowed text-left border border-transparent"),ce.disabled=!0,c(ne,"class","space-y-2"),c(C,"class","mb-6"),c(pe,"for","exaggeration-slider"),c(pe,"class","text-sm font-medium text-gray-700"),c(nt,"class","text-sm text-gray-500"),c(Ee,"class","flex justify-between mb-1"),c(ye,"id","exaggeration-slider"),c(ye,"type","range"),c(ye,"min","0"),c(ye,"max","1"),c(ye,"step","0.01"),c(ye,"class","w-full h-1.5 bg-gray-200 rounded-lg appearance-none cursor-pointer slider-hf"),c(Se,"class","flex justify-between text-xs text-gray-400 mt-1"),c(He,"for","temperature-slider"),c(He,"class","text-sm font-medium text-gray-700"),c(be,"class","text-sm text-gray-500"),c(Pe,"class","flex justify-between mb-1"),c(De,"id","temperature-slider"),c(De,"type","range"),c(De,"min","0"),c(De,"max","1"),c(De,"step","0.01"),c(De,"class","w-full h-1.5 bg-gray-200 rounded-lg appearance-none cursor-pointer slider-hf"),c(Ve,"class","flex justify-between text-xs text-gray-400 mt-1"),c(ke,"class","space-y-4 pt-4 border-t border-gray-200"),c(T,"class","w-80 border-l border-gray-200 bg-white p-4 overflow-y-auto"),c(e,"class","flex-1 flex")},m(M,Z){te(M,e,Z),a(e,s),fe&&fe.m(s,null),a(s,t),a(s,l),a(l,n),Mt(n,r[0]),a(s,o),a(s,i),a(i,f),a(f,_),a(_,V),a(_,g),a(i,v),a(i,b),it[U].m(b,null),a(s,O),ue&&ue.m(s,null),a(e,L),a(e,T),a(T,P),a(P,W),a(P,H),a(P,I),a(I,K);for(let re=0;re<se.length;re+=1)se[re]&&se[re].m(K,null);a(I,y),X(E,I,null),a(P,p),$e&&$e.m(P,null),a(T,D),a(T,C),a(C,R),a(C,ie),a(C,ne);for(let re=0;re<me.length;re+=1)me[re]&&me[re].m(ne,null);a(ne,de),a(ne,ce),a(T,we),a(T,ke),a(ke,ve),a(ve,Ee),a(Ee,pe),a(Ee,Qe),a(Ee,nt),a(nt,Ne),a(ve,Ce),a(ve,ye),Mt(ye,r[11]),a(ve,Ze),a(ve,Se),a(ke,Ae),a(ke,Te),a(Te,Pe),a(Pe,He),a(Pe,ge),a(Pe,be),a(be,Me),a(Te,et),a(Te,De),Mt(De,r[12]),a(Te,Vt),a(Te,Ve),Ue=!0,Ct||(zt=[oe(n,"input",r[40]),oe(b,"click",r[24]),oe(I,"click",r[42]),oe(ye,"change",r[46]),oe(ye,"input",r[46]),oe(De,"change",r[47]),oe(De,"input",r[47])],Ct=!0)},p(M,Z){M[5]==="local"?fe?Z[0]&32&&$(fe,1):(fe=hl(),fe.c(),$(fe,1),fe.m(s,t)):fe&&(rt(),w(fe,1,1,()=>{fe=null}),st()),Z[0]&1&&Mt(n,M[0]),(!Ue||Z[0]&1)&&S!==(S=M[0].length+"")&&Oe(V,S);let re=U;if(U=ut(M),U!==re&&(rt(),w(it[re],1,1,()=>{it[re]=null}),st(),N=it[U],N||(N=it[U]=ft[U](M),N.c()),$(N,1),N.m(b,null)),(!Ue||Z[0]&129&&A!==(A=M[7]||!M[0].trim()))&&(b.disabled=A),M[8]?ue?(ue.p(M,Z),Z[0]&256&&$(ue,1)):(ue=gl(M),ue.c(),$(ue,1),ue.m(s,null)):ue&&(rt(),w(ue,1,1,()=>{ue=null}),st()),Z[0]&4194320){dt=gt(M[22]);let ee;for(ee=0;ee<dt.length;ee+=1){const he=cl(M,dt,ee);se[ee]?se[ee].p(he,Z):(se[ee]=vl(he),se[ee].c(),se[ee].m(K,null))}for(;ee<se.length;ee+=1)se[ee].d(1);se.length=dt.length}if(M[6]?$e?$e.p(M,Z):($e=bl(M),$e.c(),$e.m(P,null)):$e&&($e.d(1),$e=null),Z[0]&8650760|Z[1]&1){mt=gt(M[23]);let ee;for(ee=0;ee<mt.length;ee+=1){const he=al(M,mt,ee);me[ee]?(me[ee].p(he,Z),$(me[ee],1)):(me[ee]=$l(he),me[ee].c(),$(me[ee],1),me[ee].m(ne,de))}for(rt(),ee=mt.length;ee<me.length;ee+=1)pt(ee);st()}(!Ue||Z[0]&2048)&&ze!==(ze=M[11].toFixed(2)+"")&&Oe(Ne,ze),Z[0]&2048&&Mt(ye,M[11]),(!Ue||Z[0]&4096)&&Ie!==(Ie=M[12].toFixed(2)+"")&&Oe(Me,Ie),Z[0]&4096&&Mt(De,M[12])},i(M){if(!Ue){$(fe),$(N),$(ue),$(E.$$.fragment,M);for(let Z=0;Z<mt.length;Z+=1)$(me[Z]);Ue=!0}},o(M){w(fe),w(N),w(ue),w(E.$$.fragment,M),me=me.filter(Boolean);for(let Z=0;Z<me.length;Z+=1)w(me[Z]);Ue=!1},d(M){M&&u(e),fe&&fe.d(),it[U].d(),ue&&ue.d(),jt(se,M),J(E),$e&&$e.d(),jt(me,M),Ct=!1,Dt(zt)}}}function ul(r){let e,s,t,l,n,o,i;return t=new qt({props:{size:16}}),{c(){e=m("button"),s=m("span"),Q(t.$$.fragment),l=G(`
|
| 7 |
+
Copy All`),this.h()},l(f){e=d(f,"BUTTON",{class:!0});var _=h(e);s=d(_,"SPAN",{class:!0});var S=h(s);Y(t.$$.fragment,S),l=q(S,`
|
| 8 |
+
Copy All`),S.forEach(u),_.forEach(u),this.h()},h(){c(s,"class","px-3 py-1 text-sm font-medium text-gray-600 flex items-center gap-2"),c(e,"class","flex items-center bg-gray-100 rounded-md p-0.5")},m(f,_){te(f,e,_),a(e,s),X(t,s,null),a(s,l),n=!0,o||(i=oe(e,"click",r[36]),o=!0)},p:_t,i(f){n||($(t.$$.fragment,f),n=!0)},o(f){w(t.$$.fragment,f),n=!1},d(f){f&&u(e),J(t),o=!1,i()}}}function Mn(r){let e,s=[],t=new Map,l,n=gt(r[2]);const o=i=>i[64].id;for(let i=0;i<n.length;i+=1){let f=ol(r,n,i),_=o(f);t.set(_,s[i]=ml(_,f))}return{c(){e=m("div");for(let i=0;i<s.length;i+=1)s[i].c();this.h()},l(i){e=d(i,"DIV",{class:!0});var f=h(e);for(let _=0;_<s.length;_+=1)s[_].l(f);f.forEach(u),this.h()},h(){c(e,"class","space-y-4")},m(i,f){te(i,e,f);for(let _=0;_<s.length;_+=1)s[_]&&s[_].m(e,null);l=!0},p(i,f){f[0]&4|f[1]&4&&(n=gt(i[2]),rt(),s=zl(s,f,o,1,i,n,t,e,xl,ml,null,ol),st())},i(i){if(!l){for(let f=0;f<n.length;f+=1)$(s[f]);l=!0}},o(i){for(let f=0;f<s.length;f+=1)w(s[f]);l=!1},d(i){i&&u(e);for(let f=0;f<s.length;f+=1)s[f].d()}}}function Un(r){let e,s='<p class="text-gray-500">Start using the UI to see generated code here</p>';return{c(){e=m("div"),e.innerHTML=s,this.h()},l(t){e=d(t,"DIV",{class:!0,"data-svelte-h":!0}),qe(e)!=="svelte-1dkp70o"&&(e.innerHTML=s),this.h()},h(){c(e,"class","bg-white rounded-lg border border-gray-200 p-8 text-center")},m(t,l){te(t,e,l)},p:_t,i:_t,o:_t,d(t){t&&u(e)}}}function dl(r){let e,s=r[64].output+"",t;return{c(){e=m("div"),t=G(s),this.h()},l(l){e=d(l,"DIV",{class:!0});var n=h(e);t=q(n,s),n.forEach(u),this.h()},h(){c(e,"class","px-4 py-2 bg-gray-900 text-green-400 font-mono text-xs border-t border-gray-200")},m(l,n){te(l,e,n),a(e,t)},p(l,n){n[0]&4&&s!==(s=l[64].output+"")&&Oe(t,s)},d(l){l&&u(e)}}}function ml(r,e){let s,t,l,n,o=e[64].title+"",i,f,_,S=e[64].timestamp+"",V,g,v,b,U,N,A,O,L=e[64].code+"",T,P,W,k,H,I;b=new qt({props:{size:14,class:"text-gray-600"}});function K(){return e[50](e[64])}let y=e[64].output&&dl(e);return{key:r,first:null,c(){s=m("div"),t=m("div"),l=m("div"),n=m("span"),i=G(o),f=z(),_=m("span"),V=G(S),g=z(),v=m("button"),Q(b.$$.fragment),U=z(),N=m("div"),A=m("pre"),O=m("code"),T=G(L),P=z(),y&&y.c(),W=z(),this.h()},l(E){s=d(E,"DIV",{class:!0});var p=h(s);t=d(p,"DIV",{class:!0});var D=h(t);l=d(D,"DIV",{class:!0});var C=h(l);n=d(C,"SPAN",{class:!0});var R=h(n);i=q(R,o),R.forEach(u),f=x(C),_=d(C,"SPAN",{class:!0});var le=h(_);V=q(le,S),le.forEach(u),C.forEach(u),g=x(D),v=d(D,"BUTTON",{class:!0,title:!0});var ie=h(v);Y(b.$$.fragment,ie),ie.forEach(u),D.forEach(u),U=x(p),N=d(p,"DIV",{class:!0});var ne=h(N);A=d(ne,"PRE",{class:!0});var de=h(A);O=d(de,"CODE",{class:!0});var ce=h(O);T=q(ce,L),ce.forEach(u),de.forEach(u),ne.forEach(u),P=x(p),y&&y.l(p),W=x(p),p.forEach(u),this.h()},h(){c(n,"class","text-sm font-medium text-gray-700"),c(_,"class","text-xs text-gray-500"),c(l,"class","flex items-center gap-3"),c(v,"class","p-1.5 hover:bg-gray-200 rounded transition-colors"),c(v,"title","Copy code"),c(t,"class","flex items-center justify-between px-4 py-2 bg-gray-50 border-b border-gray-200"),c(O,"class","language-python text-sm font-mono"),c(A,"class","p-4 overflow-x-auto bg-gray-50 text-gray-900"),c(N,"class","relative"),c(s,"class","bg-white rounded-lg border border-gray-200 overflow-hidden"),this.first=s},m(E,p){te(E,s,p),a(s,t),a(t,l),a(l,n),a(n,i),a(l,f),a(l,_),a(_,V),a(t,g),a(t,v),X(b,v,null),a(s,U),a(s,N),a(N,A),a(A,O),a(O,T),a(s,P),y&&y.m(s,null),a(s,W),k=!0,H||(I=oe(v,"click",K),H=!0)},p(E,p){e=E,(!k||p[0]&4)&&o!==(o=e[64].title+"")&&Oe(i,o),(!k||p[0]&4)&&S!==(S=e[64].timestamp+"")&&Oe(V,S),(!k||p[0]&4)&&L!==(L=e[64].code+"")&&Oe(T,L),e[64].output?y?y.p(e,p):(y=dl(e),y.c(),y.m(s,W)):y&&(y.d(1),y=null)},i(E){k||($(b.$$.fragment,E),k=!0)},o(E){w(b.$$.fragment,E),k=!1},d(E){E&&u(s),J(b),y&&y.d(),H=!1,I()}}}function hl(r){let e,s,t,l,n='<p class="font-medium text-blue-900">To run locally:</p> <code class="text-xs bg-blue-100 px-1.5 py-0.5 rounded">pip install hfstudio</code> <span class="text-blue-700">and run</span> <code class="text-xs bg-blue-100 px-1.5 py-0.5 rounded">hfstudio</code> <span class="text-blue-700">from your terminal</span>',o;return s=new Cl({props:{size:18,class:"text-blue-600 mt-0.5 flex-shrink-0"}}),{c(){e=m("div"),Q(s.$$.fragment),t=z(),l=m("div"),l.innerHTML=n,this.h()},l(i){e=d(i,"DIV",{class:!0});var f=h(e);Y(s.$$.fragment,f),t=x(f),l=d(f,"DIV",{class:!0,"data-svelte-h":!0}),qe(l)!=="svelte-p3cqs1"&&(l.innerHTML=n),f.forEach(u),this.h()},h(){c(l,"class","text-sm"),c(e,"class","mb-4 p-3 bg-blue-50 border border-blue-200 rounded-lg flex items-start gap-2")},m(i,f){te(i,e,f),X(s,e,null),a(e,t),a(e,l),o=!0},i(i){o||($(s.$$.fragment,i),o=!0)},o(i){w(s.$$.fragment,i),o=!1},d(i){i&&u(e),J(s)}}}function On(r){let e,s,t;return e=new Lt({props:{size:20}}),{c(){Q(e.$$.fragment),s=G(`
|
| 9 |
+
Generate speech`)},l(l){Y(e.$$.fragment,l),s=q(l,`
|
| 10 |
+
Generate speech`)},m(l,n){X(e,l,n),te(l,s,n),t=!0},i(l){t||($(e.$$.fragment,l),t=!0)},o(l){w(e.$$.fragment,l),t=!1},d(l){l&&u(s),J(e,l)}}}function jn(r){let e,s,t;return e=new ln({props:{size:20,class:"animate-spin"}}),{c(){Q(e.$$.fragment),s=G(`
|
| 11 |
+
Generating...`)},l(l){Y(e.$$.fragment,l),s=q(l,`
|
| 12 |
+
Generating...`)},m(l,n){X(e,l,n),te(l,s,n),t=!0},i(l){t||($(e.$$.fragment,l),t=!0)},o(l){w(e.$$.fragment,l),t=!1},d(l){l&&u(s),J(e,l)}}}function gl(r){let e,s,t,l,n,o,i,f,_,S,V,g,v,b,U,N,A,O="Share",L,T,P,W="Download",k,H,I,K,y,E,p,D,C,R,le=Tt(r[14])+"",ie,ne,de,ce,ot,we,ke=Tt(r[15])+"",ve,Ee,pe,Je,Qe,nt,ze,Ne,Ce,ye,Ze,Se,Et,Ae,Te,Pe=Tt(r[14])+"",He,F,ge,be,Ie,Me,et=Tt(r[15])+"",De,Vt,Ve,at,Ue,Ct,zt,fe,ft,it,ut,ue,dt,se,$e,mt;U=new rl({props:{size:14,class:"text-gray-600"}}),H=new sl({props:{size:14,class:"text-gray-600"}});const me=[Ln,Bn],pt=[];function M(j,_e){return j[13]?0:1}E=M(r),p=pt[E]=me[E](r),Qe=new Nn({props:{size:20,class:"text-gray-600"}});const Z=[Wn,Hn],re=[];function ee(j,_e){return j[13]?0:1}Ne=ee(r),Ce=re[Ne]=Z[Ne](r),Se=new Vn({props:{size:20,class:"text-gray-600"}}),Ue=new rl({props:{size:14}}),ft=new sl({props:{size:16,class:"text-gray-600"}}),ue=new on({props:{size:16,class:"text-gray-600"}});let he=r[8]&&_l(r);return{c(){e=m("div"),s=m("div"),t=m("div"),l=z(),n=m("div"),o=m("h3"),i=G(r[16]),f=z(),_=m("p"),S=G(r[3]),V=G(" • Created 1 second ago"),g=z(),v=m("div"),b=m("button"),Q(U.$$.fragment),N=z(),A=m("span"),A.textContent=O,L=z(),T=m("button"),P=m("span"),P.textContent=W,k=z(),Q(H.$$.fragment),I=z(),K=m("div"),y=m("button"),p.c(),D=z(),C=m("div"),R=m("span"),ie=G(le),ne=z(),de=m("div"),ce=m("div"),ot=z(),we=m("span"),ve=G(ke),Ee=z(),pe=m("div"),Je=m("button"),Q(Qe.$$.fragment),nt=z(),ze=m("button"),Ce.c(),ye=z(),Ze=m("button"),Q(Se.$$.fragment),Et=z(),Ae=m("div"),Te=m("span"),He=G(Pe),F=z(),ge=m("div"),be=m("div"),Ie=z(),Me=m("span"),De=G(et),Vt=z(),Ve=m("div"),at=m("button"),Q(Ue.$$.fragment),Ct=G(`
|
| 13 |
+
Share`),zt=z(),fe=m("button"),Q(ft.$$.fragment),it=z(),ut=m("button"),Q(ue.$$.fragment),dt=z(),he&&he.c(),this.h()},l(j){e=d(j,"DIV",{class:!0});var _e=h(e);s=d(_e,"DIV",{class:!0});var tt=h(s);t=d(tt,"DIV",{class:!0}),h(t).forEach(u),l=x(tt),n=d(tt,"DIV",{class:!0});var We=h(n);o=d(We,"H3",{class:!0});var vt=h(o);i=q(vt,r[16]),vt.forEach(u),f=x(We),_=d(We,"P",{class:!0});var Nt=h(_);S=q(Nt,r[3]),V=q(Nt," • Created 1 second ago"),Nt.forEach(u),We.forEach(u),g=x(tt),v=d(tt,"DIV",{class:!0});var St=h(v);b=d(St,"BUTTON",{class:!0});var bt=h(b);Y(U.$$.fragment,bt),N=x(bt),A=d(bt,"SPAN",{class:!0,"data-svelte-h":!0}),qe(A)!=="svelte-hbn8gl"&&(A.textContent=O),bt.forEach(u),L=x(St),T=d(St,"BUTTON",{class:!0});var kt=h(T);P=d(kt,"SPAN",{class:!0,"data-svelte-h":!0}),qe(P)!=="svelte-h01aeg"&&(P.textContent=W),k=x(kt),Y(H.$$.fragment,kt),kt.forEach(u),St.forEach(u),tt.forEach(u),I=x(_e),K=d(_e,"DIV",{class:!0});var $t=h(K);y=d($t,"BUTTON",{class:!0});var yt=h(y);p.l(yt),yt.forEach(u),D=x($t),C=d($t,"DIV",{class:!0});var ct=h(C);R=d(ct,"SPAN",{class:!0});var Ut=h(R);ie=q(Ut,le),Ut.forEach(u),ne=x(ct),de=d(ct,"DIV",{class:!0});var wt=h(de);ce=d(wt,"DIV",{class:!0,style:!0}),h(ce).forEach(u),wt.forEach(u),ot=x(ct),we=d(ct,"SPAN",{class:!0});var xt=h(we);ve=q(xt,ke),xt.forEach(u),ct.forEach(u),$t.forEach(u),Ee=x(_e),pe=d(_e,"DIV",{class:!0});var lt=h(pe);Je=d(lt,"BUTTON",{class:!0,title:!0});var ht=h(Je);Y(Qe.$$.fragment,ht),ht.forEach(u),nt=x(lt),ze=d(lt,"BUTTON",{class:!0});var Gt=h(ze);Ce.l(Gt),Gt.forEach(u),ye=x(lt),Ze=d(lt,"BUTTON",{class:!0,title:!0});var Rt=h(Ze);Y(Se.$$.fragment,Rt),Rt.forEach(u),Et=x(lt),Ae=d(lt,"DIV",{class:!0});var At=h(Ae);Te=d(At,"SPAN",{class:!0});var Ft=h(Te);He=q(Ft,Pe),Ft.forEach(u),F=x(At),ge=d(At,"DIV",{class:!0});var Kt=h(ge);be=d(Kt,"DIV",{class:!0,style:!0}),h(be).forEach(u),Kt.forEach(u),Ie=x(At),Me=d(At,"SPAN",{class:!0});var Jt=h(Me);De=q(Jt,et),Jt.forEach(u),At.forEach(u),Vt=x(lt),Ve=d(lt,"DIV",{class:!0});var Pt=h(Ve);at=d(Pt,"BUTTON",{class:!0});var Ht=h(at);Y(Ue.$$.fragment,Ht),Ct=q(Ht,`
|
| 14 |
+
Share`),Ht.forEach(u),zt=x(Pt),fe=d(Pt,"BUTTON",{class:!0,title:!0});var Xt=h(fe);Y(ft.$$.fragment,Xt),Xt.forEach(u),it=x(Pt),ut=d(Pt,"BUTTON",{class:!0,title:!0});var Yt=h(ut);Y(ue.$$.fragment,Yt),Yt.forEach(u),Pt.forEach(u),lt.forEach(u),dt=x(_e),he&&he.l(_e),_e.forEach(u),this.h()},h(){c(t,"class","w-2 h-2 bg-green-500 rounded-full"),c(o,"class","font-medium text-gray-900 text-sm"),c(_,"class","text-xs text-gray-500"),c(n,"class","flex-1"),c(A,"class","text-gray-700"),c(b,"class","flex items-center gap-1.5 px-3 py-1.5 text-sm border border-gray-200 rounded-md hover:bg-gray-50 transition-colors"),c(P,"class","text-gray-700"),c(T,"class","flex items-center gap-1.5 px-3 py-1.5 text-sm border border-gray-200 rounded-md hover:bg-gray-50 transition-colors"),c(v,"class","flex items-center gap-2"),c(s,"class","flex items-center gap-3 mb-4"),c(y,"class","w-8 h-8 bg-black rounded-full flex items-center justify-center hover:bg-gray-800 transition-colors"),c(R,"class","text-xs text-gray-500 font-mono"),c(ce,"class","h-full bg-gradient-to-r from-amber-400 to-orange-500 rounded-full transition-all"),Ot(ce,"width",r[14]/r[15]*100+"%"),c(de,"class","flex-1 h-1 bg-gray-200 rounded-full cursor-pointer"),c(we,"class","text-xs text-gray-500 font-mono"),c(C,"class","flex-1 flex items-center gap-2"),c(K,"class","flex items-center gap-3 mb-4"),c(Je,"class","p-2 hover:bg-gray-100 rounded-full"),c(Je,"title","Skip back"),c(ze,"class","w-12 h-12 bg-black rounded-full flex items-center justify-center hover:bg-gray-800 transition-colors"),c(Ze,"class","p-2 hover:bg-gray-100 rounded-full"),c(Ze,"title","Skip forward"),c(Te,"class","text-xs text-gray-500 font-mono"),c(be,"class","h-full bg-gradient-to-r from-amber-400 to-orange-500 rounded-full transition-all"),Ot(be,"width",r[14]/r[15]*100+"%"),c(ge,"class","flex-1 h-1 bg-gray-200 rounded-full"),c(Me,"class","text-xs text-gray-500 font-mono"),c(Ae,"class","flex-1 flex items-center gap-3"),c(at,"class","flex items-center gap-2 px-3 py-1.5 text-sm border border-gray-200 rounded-md hover:bg-gray-50"),c(fe,"class","p-2 hover:bg-gray-100 rounded-md"),c(fe,"title","Download"),c(ut,"class","p-2 hover:bg-gray-100 rounded-md"),c(ut,"title","More options"),c(Ve,"class","flex items-center gap-2"),c(pe,"class","flex items-center gap-4 mb-4"),c(e,"class","p-4 border border-gray-200 rounded-lg bg-white")},m(j,_e){te(j,e,_e),a(e,s),a(s,t),a(s,l),a(s,n),a(n,o),a(o,i),a(n,f),a(n,_),a(_,S),a(_,V),a(s,g),a(s,v),a(v,b),X(U,b,null),a(b,N),a(b,A),a(v,L),a(v,T),a(T,P),a(T,k),X(H,T,null),a(e,I),a(e,K),a(K,y),pt[E].m(y,null),a(K,D),a(K,C),a(C,R),a(R,ie),a(C,ne),a(C,de),a(de,ce),a(C,ot),a(C,we),a(we,ve),a(e,Ee),a(e,pe),a(pe,Je),X(Qe,Je,null),a(pe,nt),a(pe,ze),re[Ne].m(ze,null),a(pe,ye),a(pe,Ze),X(Se,Ze,null),a(pe,Et),a(pe,Ae),a(Ae,Te),a(Te,He),a(Ae,F),a(Ae,ge),a(ge,be),a(Ae,Ie),a(Ae,Me),a(Me,De),a(pe,Vt),a(pe,Ve),a(Ve,at),X(Ue,at,null),a(at,Ct),a(Ve,zt),a(Ve,fe),X(ft,fe,null),a(Ve,it),a(Ve,ut),X(ue,ut,null),a(e,dt),he&&he.m(e,null),se=!0,$e||(mt=[oe(b,"click",Tl),oe(T,"click",r[30]),oe(y,"click",r[25]),oe(ze,"click",r[25]),oe(at,"click",Tl),oe(fe,"click",r[30])],$e=!0)},p(j,_e){(!se||_e[0]&65536)&&Oe(i,j[16]),(!se||_e[0]&8)&&Oe(S,j[3]);let tt=E;E=M(j),E!==tt&&(rt(),w(pt[tt],1,1,()=>{pt[tt]=null}),st(),p=pt[E],p||(p=pt[E]=me[E](j),p.c()),$(p,1),p.m(y,null)),(!se||_e[0]&16384)&&le!==(le=Tt(j[14])+"")&&Oe(ie,le),(!se||_e[0]&49152)&&Ot(ce,"width",j[14]/j[15]*100+"%"),(!se||_e[0]&32768)&&ke!==(ke=Tt(j[15])+"")&&Oe(ve,ke);let We=Ne;Ne=ee(j),Ne!==We&&(rt(),w(re[We],1,1,()=>{re[We]=null}),st(),Ce=re[Ne],Ce||(Ce=re[Ne]=Z[Ne](j),Ce.c()),$(Ce,1),Ce.m(ze,null)),(!se||_e[0]&16384)&&Pe!==(Pe=Tt(j[14])+"")&&Oe(He,Pe),(!se||_e[0]&49152)&&Ot(be,"width",j[14]/j[15]*100+"%"),(!se||_e[0]&32768)&&et!==(et=Tt(j[15])+"")&&Oe(De,et),j[8]?he?he.p(j,_e):(he=_l(j),he.c(),he.m(e,null)):he&&(he.d(1),he=null)},i(j){se||($(U.$$.fragment,j),$(H.$$.fragment,j),$(p),$(Qe.$$.fragment,j),$(Ce),$(Se.$$.fragment,j),$(Ue.$$.fragment,j),$(ft.$$.fragment,j),$(ue.$$.fragment,j),se=!0)},o(j){w(U.$$.fragment,j),w(H.$$.fragment,j),w(p),w(Qe.$$.fragment,j),w(Ce),w(Se.$$.fragment,j),w(Ue.$$.fragment,j),w(ft.$$.fragment,j),w(ue.$$.fragment,j),se=!1},d(j){j&&u(e),J(U),J(H),pt[E].d(),J(Qe),re[Ne].d(),J(Se),J(Ue),J(ft),J(ue),he&&he.d(),$e=!1,Dt(mt)}}}function Bn(r){let e,s;return e=new Lt({props:{size:14,class:"text-white ml-0.5"}}),{c(){Q(e.$$.fragment)},l(t){Y(e.$$.fragment,t)},m(t,l){X(e,t,l),s=!0},i(t){s||($(e.$$.fragment,t),s=!0)},o(t){w(e.$$.fragment,t),s=!1},d(t){J(e,t)}}}function Ln(r){let e;return{c(){e=m("div"),this.h()},l(s){e=d(s,"DIV",{class:!0}),h(e).forEach(u),this.h()},h(){c(e,"class","pause-filled text-white")},m(s,t){te(s,e,t)},i:_t,o:_t,d(s){s&&u(e)}}}function Hn(r){let e,s;return e=new Lt({props:{size:20,class:"text-white ml-0.5"}}),{c(){Q(e.$$.fragment)},l(t){Y(e.$$.fragment,t)},m(t,l){X(e,t,l),s=!0},i(t){s||($(e.$$.fragment,t),s=!0)},o(t){w(e.$$.fragment,t),s=!1},d(t){J(e,t)}}}function Wn(r){let e;return{c(){e=m("div"),this.h()},l(s){e=d(s,"DIV",{class:!0}),h(e).forEach(u),this.h()},h(){c(e,"class","pause-filled text-white scale-150")},m(s,t){te(s,e,t)},i:_t,o:_t,d(s){s&&u(e)}}}function _l(r){let e,s,t,l;return{c(){e=m("audio"),this.h()},l(n){e=d(n,"AUDIO",{src:!0,style:!0}),h(e).forEach(u),this.h()},h(){el(e.src,s=r[8])||c(e,"src",s),Ot(e,"display","none")},m(n,o){te(n,e,o),r[41](e),t||(l=[oe(e,"loadedmetadata",r[26]),oe(e,"timeupdate",r[27]),oe(e,"play",r[28]),oe(e,"pause",r[29])],t=!0)},p(n,o){o[0]&256&&!el(e.src,s=n[8])&&c(e,"src",s)},d(n){n&&u(e),r[41](null),t=!1,Dt(l)}}}function pl(r){let e=r[59].name+"",s,t,l=r[59].badge&&qn(r);return{c(){s=G(e),l&&l.c(),t=It()},l(n){s=q(n,e),l&&l.l(n),t=It()},m(n,o){te(n,s,o),l&&l.m(n,o),te(n,t,o)},p(n,o){n[59].badge&&l.p(n,o)},d(n){n&&(u(s),u(t)),l&&l.d(n)}}}function qn(r){let e,s,t,l=r[59].badge+"",n,o;return{c(){e=G(" "),s=m("span"),t=G("("),n=G(l),o=G(")"),this.h()},l(i){e=q(i," "),s=d(i,"SPAN",{class:!0});var f=h(s);t=q(f,"("),n=q(f,l),o=q(f,")"),f.forEach(u),this.h()},h(){c(s,"class","text-xs text-gray-500")},m(i,f){te(i,e,f),te(i,s,f),a(s,t),a(s,n),a(s,o)},p:_t,d(i){i&&(u(e),u(s))}}}function vl(r){let e,s=r[59].name===r[4]&&pl(r);return{c(){s&&s.c(),e=It()},l(t){s&&s.l(t),e=It()},m(t,l){s&&s.m(t,l),te(t,e,l)},p(t,l){t[59].name===t[4]?s?s.p(t,l):(s=pl(t),s.c(),s.m(e.parentNode,e)):s&&(s.d(1),s=null)},d(t){t&&u(e),s&&s.d(t)}}}function bl(r){let e,s=gt(r[22]),t=[];for(let l=0;l<s.length;l+=1)t[l]=kl(il(r,s,l));return{c(){e=m("div");for(let l=0;l<t.length;l+=1)t[l].c();this.h()},l(l){e=d(l,"DIV",{class:!0});var n=h(e);for(let o=0;o<t.length;o+=1)t[o].l(n);n.forEach(u),this.h()},h(){c(e,"class","absolute top-full left-0 right-0 mt-1 bg-white border border-gray-200 rounded-lg shadow-lg z-10")},m(l,n){te(l,e,n);for(let o=0;o<t.length;o+=1)t[o]&&t[o].m(e,null)},p(l,n){if(n[0]&4194384){s=gt(l[22]);let o;for(o=0;o<s.length;o+=1){const i=il(l,s,o);t[o]?t[o].p(i,n):(t[o]=kl(i),t[o].c(),t[o].m(e,null))}for(;o<t.length;o+=1)t[o].d(1);t.length=s.length}},d(l){l&&u(e),jt(t,l)}}}function Gn(r){let e,s,t,l=r[59].badge+"",n,o;return{c(){e=G(" "),s=m("span"),t=G("("),n=G(l),o=G(")"),this.h()},l(i){e=q(i," "),s=d(i,"SPAN",{class:!0});var f=h(s);t=q(f,"("),n=q(f,l),o=q(f,")"),f.forEach(u),this.h()},h(){c(s,"class","text-xs text-gray-500")},m(i,f){te(i,e,f),te(i,s,f),a(s,t),a(s,n),a(s,o)},p:_t,d(i){i&&(u(e),u(s))}}}function kl(r){let e,s=r[59].name+"",t,l,n,o,i,f=r[59].badge&&Gn(r);function _(){return r[43](r[59])}return{c(){e=m("button"),t=G(s),f&&f.c(),l=z(),this.h()},l(S){e=d(S,"BUTTON",{class:!0});var V=h(e);t=q(V,s),f&&f.l(V),l=x(V),V.forEach(u),this.h()},h(){c(e,"class",n="w-full px-3 py-2 text-left hover:bg-gray-50 transition-colors text-sm "+(r[59].name===r[4]?"bg-gray-100":""))},m(S,V){te(S,e,V),a(e,t),f&&f.m(e,null),a(e,l),o||(i=oe(e,"click",_),o=!0)},p(S,V){r=S,r[59].badge&&f.p(r,V),V[0]&16&&n!==(n="w-full px-3 py-2 text-left hover:bg-gray-50 transition-colors text-sm "+(r[59].name===r[4]?"bg-gray-100":""))&&c(e,"class",n)},d(S){S&&u(e),f&&f.d(),o=!1,i()}}}function Rn(r){let e,s;return e=new Lt({props:{size:16,class:"text-gray-600"}}),{c(){Q(e.$$.fragment)},l(t){Y(e.$$.fragment,t)},m(t,l){X(e,t,l),s=!0},i(t){s||($(e.$$.fragment,t),s=!0)},o(t){w(e.$$.fragment,t),s=!1},d(t){J(e,t)}}}function Fn(r){let e,s;return e=new gn({props:{size:16,class:"text-gray-600"}}),{c(){Q(e.$$.fragment)},l(t){Y(e.$$.fragment,t)},m(t,l){X(e,t,l),s=!0},i(t){s||($(e.$$.fragment,t),s=!0)},o(t){w(e.$$.fragment,t),s=!1},d(t){J(e,t)}}}function $l(r){let e,s,t,l=r[56].name[0]+"",n,o,i,f,_=r[56].name+"",S,V,g,v=r[56].description+"",b,U,N,A,O,L,T,P,W,k;const H=[Fn,Rn],I=[];function K(p,D){return p[18]===p[56].name?0:1}A=K(r),O=I[A]=H[A](r);function y(...p){return r[44](r[56],...p)}function E(){return r[45](r[56])}return{c(){e=m("button"),s=m("div"),t=m("div"),n=G(l),o=z(),i=m("div"),f=m("div"),S=G(_),V=z(),g=m("div"),b=G(v),U=z(),N=m("button"),O.c(),L=z(),this.h()},l(p){e=d(p,"BUTTON",{class:!0});var D=h(e);s=d(D,"DIV",{class:!0});var C=h(s);t=d(C,"DIV",{class:!0});var R=h(t);n=q(R,l),R.forEach(u),o=x(C),i=d(C,"DIV",{class:!0});var le=h(i);f=d(le,"DIV",{class:!0});var ie=h(f);S=q(ie,_),ie.forEach(u),V=x(le),g=d(le,"DIV",{class:!0});var ne=h(g);b=q(ne,v),ne.forEach(u),le.forEach(u),C.forEach(u),U=x(D),N=d(D,"BUTTON",{class:!0,title:!0});var de=h(N);O.l(de),de.forEach(u),L=x(D),D.forEach(u),this.h()},h(){c(t,"class","w-10 h-10 bg-gradient-to-br from-amber-400 to-orange-500 rounded-full flex items-center justify-center text-white text-sm font-semibold flex-shrink-0"),c(f,"class","text-sm font-medium text-gray-900 mb-1"),c(g,"class","text-xs text-gray-500 leading-relaxed"),c(i,"class","flex-1 min-w-0"),c(s,"class","flex items-center gap-3 flex-1 min-w-0"),c(N,"class","p-2 rounded-full hover:bg-gray-200 transition-colors flex-shrink-0 ml-2"),c(N,"title","Play sample"),c(e,"class",T="w-full flex items-center justify-between p-2 rounded-lg hover:bg-gray-50 transition-colors text-left group border border-transparent "+(r[56].name===r[3]?"bg-gray-100 border-gray-200":""))},m(p,D){te(p,e,D),a(e,s),a(s,t),a(t,n),a(s,o),a(s,i),a(i,f),a(f,S),a(i,V),a(i,g),a(g,b),a(e,U),a(e,N),I[A].m(N,null),a(e,L),P=!0,W||(k=[oe(N,"click",y),oe(e,"click",E)],W=!0)},p(p,D){r=p;let C=A;A=K(r),A!==C&&(rt(),w(I[C],1,1,()=>{I[C]=null}),st(),O=I[A],O||(O=I[A]=H[A](r),O.c()),$(O,1),O.m(N,null)),(!P||D[0]&8&&T!==(T="w-full flex items-center justify-between p-2 rounded-lg hover:bg-gray-50 transition-colors text-left group border border-transparent "+(r[56].name===r[3]?"bg-gray-100 border-gray-200":"")))&&c(e,"class",T)},i(p){P||($(O),P=!0)},o(p){w(O),P=!1},d(p){p&&u(e),I[A].d(),W=!1,Dt(k)}}}function yl(r){let e,s;return{c(){e=m("div"),s=G(r[9]),this.h()},l(t){e=d(t,"DIV",{class:!0});var l=h(e);s=q(l,r[9]),l.forEach(u),this.h()},h(){c(e,"class","fixed bottom-4 right-4 px-4 py-2 bg-gray-900 text-white rounded-lg shadow-lg z-50 animate-fade-in svelte-zv1zz2")},m(t,l){te(t,e,l),a(e,s)},p(t,l){l[0]&512&&Oe(s,t[9])},d(t){t&&u(e)}}}function wl(r){let e,s,t,l,n,o,i,f,_,S,V,g,v="An error occurred while processing your request",b,U,N,A,O,L,T,P,W,k,H,I,K="Close",y,E,p;o=new Cl({props:{size:20,class:"text-red-600"}}),N=new zn({props:{size:20,class:"text-gray-500"}});let D=r[21]&&El(r);return W=new qt({props:{size:16}}),{c(){e=m("div"),s=m("div"),t=m("div"),l=m("div"),n=m("div"),Q(o.$$.fragment),i=z(),f=m("div"),_=m("h3"),S=G(r[20]),V=z(),g=m("p"),g.textContent=v,b=z(),U=m("button"),Q(N.$$.fragment),A=z(),O=m("div"),D&&D.c(),L=z(),T=m("div"),P=m("button"),Q(W.$$.fragment),k=G(`
|
| 15 |
+
Copy Error`),H=z(),I=m("button"),I.textContent=K,this.h()},l(C){e=d(C,"DIV",{class:!0});var R=h(e);s=d(R,"DIV",{class:!0});var le=h(s);t=d(le,"DIV",{class:!0});var ie=h(t);l=d(ie,"DIV",{class:!0});var ne=h(l);n=d(ne,"DIV",{class:!0});var de=h(n);Y(o.$$.fragment,de),de.forEach(u),i=x(ne),f=d(ne,"DIV",{class:!0});var ce=h(f);_=d(ce,"H3",{class:!0});var ot=h(_);S=q(ot,r[20]),ot.forEach(u),V=x(ce),g=d(ce,"P",{class:!0,"data-svelte-h":!0}),qe(g)!=="svelte-1l3zl3"&&(g.textContent=v),ce.forEach(u),ne.forEach(u),b=x(ie),U=d(ie,"BUTTON",{class:!0,title:!0});var we=h(U);Y(N.$$.fragment,we),we.forEach(u),ie.forEach(u),A=x(le),O=d(le,"DIV",{class:!0});var ke=h(O);D&&D.l(ke),ke.forEach(u),L=x(le),T=d(le,"DIV",{class:!0});var ve=h(T);P=d(ve,"BUTTON",{class:!0});var Ee=h(P);Y(W.$$.fragment,Ee),k=q(Ee,`
|
| 16 |
+
Copy Error`),Ee.forEach(u),H=x(ve),I=d(ve,"BUTTON",{class:!0,"data-svelte-h":!0}),qe(I)!=="svelte-4sxk6g"&&(I.textContent=K),ve.forEach(u),le.forEach(u),R.forEach(u),this.h()},h(){c(n,"class","w-10 h-10 bg-red-100 rounded-full flex items-center justify-center flex-shrink-0"),c(_,"class","text-lg font-semibold text-gray-900 truncate"),c(g,"class","text-sm text-gray-600"),c(f,"class","min-w-0"),c(l,"class","flex items-center gap-3 min-w-0"),c(U,"class","p-2 hover:bg-red-100 rounded-full transition-colors flex-shrink-0"),c(U,"title","Close"),c(t,"class","flex items-center justify-between p-6 border-b border-gray-200 bg-red-50 flex-shrink-0"),c(O,"class","p-6 overflow-y-auto flex-1 min-h-0"),c(P,"class","flex items-center gap-2 px-4 py-2 text-gray-700 hover:bg-gray-200 rounded-lg transition-colors"),c(I,"class","px-6 py-2 bg-red-600 text-white rounded-lg hover:bg-red-700 transition-colors"),c(T,"class","flex items-center justify-end gap-3 p-6 border-t border-gray-200 bg-gray-50 flex-shrink-0"),c(s,"class","bg-white rounded-xl shadow-2xl max-w-2xl w-full max-h-[80vh] flex flex-col"),c(e,"class","fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4")},m(C,R){te(C,e,R),a(e,s),a(s,t),a(t,l),a(l,n),X(o,n,null),a(l,i),a(l,f),a(f,_),a(_,S),a(f,V),a(f,g),a(t,b),a(t,U),X(N,U,null),a(s,A),a(s,O),D&&D.m(O,null),a(s,L),a(s,T),a(T,P),X(W,P,null),a(P,k),a(T,H),a(T,I),y=!0,E||(p=[oe(U,"click",r[34]),oe(P,"click",r[35]),oe(I,"click",r[34])],E=!0)},p(C,R){(!y||R[0]&1048576)&&Oe(S,C[20]),C[21]?D?D.p(C,R):(D=El(C),D.c(),D.m(O,null)):D&&(D.d(1),D=null)},i(C){y||($(o.$$.fragment,C),$(N.$$.fragment,C),$(W.$$.fragment,C),y=!0)},o(C){w(o.$$.fragment,C),w(N.$$.fragment,C),w(W.$$.fragment,C),y=!1},d(C){C&&u(e),J(o),J(N),D&&D.d(),J(W),E=!1,Dt(p)}}}function El(r){let e,s,t="Error Details:",l,n,o;return{c(){e=m("div"),s=m("h4"),s.textContent=t,l=z(),n=m("pre"),o=G(r[21]),this.h()},l(i){e=d(i,"DIV",{class:!0});var f=h(e);s=d(f,"H4",{class:!0,"data-svelte-h":!0}),qe(s)!=="svelte-3lmggt"&&(s.textContent=t),l=x(f),n=d(f,"PRE",{class:!0});var _=h(n);o=q(_,r[21]),_.forEach(u),f.forEach(u),this.h()},h(){c(s,"class","text-sm font-medium text-gray-900 mb-2"),c(n,"class","text-xs text-gray-700 whitespace-pre-wrap font-mono leading-relaxed break-words"),c(e,"class","bg-gray-50 rounded-lg p-4 border")},m(i,f){te(i,e,f),a(e,s),a(e,l),a(e,n),a(n,o)},p(i,f){f[0]&2097152&&Oe(o,i[21])},d(i){i&&u(e)}}}function Kn(r){let e,s,t,l,n,o,i,f,_,S,V,g,v,b,U,N,A,O,L,T,P,W;i=new un({props:{size:14}}),g=new Rl({props:{size:14}});let k=r[10]&&fl();const H=[Pn,An],I=[];function K(p,D){return p[1]==="ui"?0:1}N=K(r),A=I[N]=H[N](r);let y=r[9]&&yl(r),E=r[19]&&wl(r);return{c(){e=m("div"),s=m("header"),t=m("div"),l=m("div"),n=m("div"),o=m("button"),Q(i.$$.fragment),f=G(`
|
| 17 |
+
UI`),S=z(),V=m("button"),Q(g.$$.fragment),v=G(`
|
| 18 |
+
Code Recorder
|
| 19 |
+
`),k&&k.c(),U=z(),A.c(),O=z(),y&&y.c(),L=z(),E&&E.c(),this.h()},l(p){e=d(p,"DIV",{class:!0});var D=h(e);s=d(D,"HEADER",{class:!0});var C=h(s);t=d(C,"DIV",{class:!0});var R=h(t);l=d(R,"DIV",{class:!0});var le=h(l);n=d(le,"DIV",{class:!0});var ie=h(n);o=d(ie,"BUTTON",{class:!0});var ne=h(o);Y(i.$$.fragment,ne),f=q(ne,`
|
| 20 |
+
UI`),ne.forEach(u),S=x(ie),V=d(ie,"BUTTON",{class:!0});var de=h(V);Y(g.$$.fragment,de),v=q(de,`
|
| 21 |
+
Code Recorder
|
| 22 |
+
`),k&&k.l(de),de.forEach(u),ie.forEach(u),le.forEach(u),R.forEach(u),C.forEach(u),U=x(D),A.l(D),O=x(D),y&&y.l(D),L=x(D),E&&E.l(D),D.forEach(u),this.h()},h(){c(o,"class",_="flex items-center gap-1.5 px-3 py-1 text-sm font-medium rounded transition-colors "+(r[1]==="ui"?"bg-white shadow-sm":"text-gray-600")),c(V,"class",b="flex items-center gap-1.5 px-3 py-1 text-sm font-medium rounded transition-colors relative overflow-hidden "+(r[1]==="code"?"bg-white shadow-sm":"text-gray-600")+" "+(r[10]?"code-flash":"")+" svelte-zv1zz2"),c(n,"class","flex items-center bg-gray-100 rounded-md p-0.5"),c(l,"class","flex items-center gap-2"),c(t,"class","flex items-center justify-end px-4 py-2"),c(s,"class","border-b border-gray-200 bg-white"),c(e,"class","flex flex-col h-full")},m(p,D){te(p,e,D),a(e,s),a(s,t),a(t,l),a(l,n),a(n,o),X(i,o,null),a(o,f),a(n,S),a(n,V),X(g,V,null),a(V,v),k&&k.m(V,null),a(e,U),I[N].m(e,null),a(e,O),y&&y.m(e,null),a(e,L),E&&E.m(e,null),T=!0,P||(W=[oe(o,"click",r[38]),oe(V,"click",r[39]),oe(e,"click",r[32])],P=!0)},p(p,D){(!T||D[0]&2&&_!==(_="flex items-center gap-1.5 px-3 py-1 text-sm font-medium rounded transition-colors "+(p[1]==="ui"?"bg-white shadow-sm":"text-gray-600")))&&c(o,"class",_),p[10]?k||(k=fl(),k.c(),k.m(V,null)):k&&(k.d(1),k=null),(!T||D[0]&1026&&b!==(b="flex items-center gap-1.5 px-3 py-1 text-sm font-medium rounded transition-colors relative overflow-hidden "+(p[1]==="code"?"bg-white shadow-sm":"text-gray-600")+" "+(p[10]?"code-flash":"")+" svelte-zv1zz2"))&&c(V,"class",b);let C=N;N=K(p),N===C?I[N].p(p,D):(rt(),w(I[C],1,1,()=>{I[C]=null}),st(),A=I[N],A?A.p(p,D):(A=I[N]=H[N](p),A.c()),$(A,1),A.m(e,O)),p[9]?y?y.p(p,D):(y=yl(p),y.c(),y.m(e,L)):y&&(y.d(1),y=null),p[19]?E?(E.p(p,D),D[0]&524288&&$(E,1)):(E=wl(p),E.c(),$(E,1),E.m(e,null)):E&&(rt(),w(E,1,1,()=>{E=null}),st())},i(p){T||($(i.$$.fragment,p),$(g.$$.fragment,p),$(A),$(E),T=!0)},o(p){w(i.$$.fragment,p),w(g.$$.fragment,p),w(A),w(E),T=!1},d(p){p&&u(e),J(i),J(g),k&&k.d(),I[N].d(),y&&y.d(),E&&E.d(),P=!1,Dt(W)}}}function Nl(){if(typeof window<"u"&&window.gradio&&window.gradio.auth_token)return window.gradio.auth_token;const r=document.querySelector('meta[name="hf-oauth-token"]');if(r){const t=r.getAttribute("content");if(t)return t}const e=["hf_access_token","hf_token","huggingface_token","oauth_token","access_token"];for(const t of e){const l=localStorage.getItem(t);if(l)return l}for(const t of e){const l=sessionStorage.getItem(t);if(l)return l}const s=document.cookie.split(";");for(const t of s){const[l,n]=t.trim().split("=");if(l&&(l.includes("token")||l.includes("hf")||l.includes("oauth")))return decodeURIComponent(n)}try{const t=document.querySelector("script[data-hf-token]");if(t){const l=t.getAttribute("data-hf-token");if(l)return l}}catch{}return null}function Tt(r){const e=Math.floor(r/60),s=Math.floor(r%60);return`${e}:${s.toString().padStart(2,"0")}`}function Tl(){}function Il(){return`# Install required packages
|
| 23 |
+
# pip install huggingface-hub
|
| 24 |
+
|
| 25 |
+
from huggingface_hub import InferenceClient
|
| 26 |
+
import base64
|
| 27 |
+
import io
|
| 28 |
+
|
| 29 |
+
# Initialize the client
|
| 30 |
+
client = InferenceClient(
|
| 31 |
+
provider="fal-ai",
|
| 32 |
+
api_key="YOUR_HF_TOKEN", # Get your token from https://huggingface.co/settings/tokens
|
| 33 |
+
)`}function Jn(){return`# Save the audio to a file
|
| 34 |
+
output_filename = "output_speech.wav"
|
| 35 |
+
|
| 36 |
+
with open(output_filename, "wb") as f:
|
| 37 |
+
f.write(audio_bytes)
|
| 38 |
+
|
| 39 |
+
print(f"✓ Audio saved to {output_filename}")
|
| 40 |
+
|
| 41 |
+
# Optional: Play the audio (requires additional packages)
|
| 42 |
+
# from playsound import playsound
|
| 43 |
+
# playsound(output_filename)`}function Xn(r,e,s){let t="In a hole in the ground there lived a hobbit. Not a nasty, dirty, wet hole, filled with the ends of worms and an oozy smell, nor yet a dry, bare, sandy hole with nothing in it to sit down on or to eat: it was a hobbit-hole, and that means comfort.",l="Lily",n="Chatterbox",o="api",i="ui",f=!1,_=!1,S=[],V=null,g=null,v=!1,b=.25,U=.7,N=!1,A=0,O=0,L="",T=null,P=null,W=null,k=!1,H="",I="";const K=[{id:"chatterbox",name:"Chatterbox",badge:"recommended"},{id:"kokoro",name:"Kokoro",badge:"faster but lower quality"}],y=[{id:"lily",name:"Lily",description:"Warm, conversational voice from a female in her 30s",sample:"/voices/lily.mp3"},{id:"andrew",name:"Andrew",description:"Older British man who speaks clearly and kindly",sample:"/voices/andrew.mp3"},{id:"fairy",name:"Fairy",description:"High and airy female voice that bursts with excitement",sample:"/voices/fairy.mp3"},{id:"pirate",name:"Pirate",description:"Young pirate that speaks gruffly and passionately",sample:"/voices/pirate.mp3"}];async function E(){if(!t.trim())return;if(!Nl()){window.dispatchEvent(new CustomEvent("show-signin-popover"));return}s(7,_=!0),s(8,V=null),s(14,A=0),S.length===0&&ce("Setup and Import",Il()),ce("Generate Speech",ot()),i==="ui"&&(s(10,v=!0),setTimeout(()=>{s(10,v=!1)},2500)),s(13,N=!1),s(16,L=t.length>30?t.substring(0,30)+"...":t);try{const ge=Nl(),be={text:t,voice_id:l.toLowerCase(),model_id:n.toLowerCase(),mode:o,access_token:ge,parameters:{exaggeration:b,temperature:U}},Ie=await fetch("/api/tts/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(be)});if(!Ie.ok){const et=await Ie.text();throw new Error(`HTTP error! status: ${Ie.status}, body: ${et}`)}const Me=await Ie.json();if(Me.success&&Me.audio_url)s(8,V=Me.audio_url),ce("Save Audio Output",Jn()),i==="ui"&&(s(10,v=!0),setTimeout(()=>{s(10,v=!1)},2500));else{const et=Me.error||"Unknown error occurred";ke("Generation Failed",et),s(8,V=null)}}catch{ke("Network Error","Failed to connect to the server. Please check your connection and try again."),s(8,V=null)}finally{s(7,_=!1)}}function p(){T&&(N?T.pause():T.play())}function D(){T&&(s(15,O=T.duration),T.play())}function C(){T&&s(14,A=T.currentTime)}function R(){s(13,N=!0)}function le(){s(13,N=!1)}function ie(){if(V){const F=document.createElement("a");F.href=V,F.download="speech.wav",F.click()}}function ne(F,ge){if(ge.stopPropagation(),W===F.name)P&&(P.pause(),P.currentTime=0),s(18,W=null);else{P&&P.pause(),s(18,W=F.name);const be=F.sample||"/samples/harvard.wav";P?P.src=be:(P=new Audio(be),P.addEventListener("ended",()=>{s(18,W=null)})),P.play().catch(Ie=>{s(18,W=null)})}}function de(F){F.target.closest(".model-dropdown")||s(6,f=!1)}function ce(F,ge,be=null){const Ie={id:Date.now()+Math.random(),title:F,code:ge,output:be,timestamp:new Date().toLocaleTimeString()};return s(2,S=[...S,Ie]),Ie}function ot(){return`# Text to convert to speech
|
| 44 |
+
text = """${t}"""
|
| 45 |
+
|
| 46 |
+
# Voice and model settings
|
| 47 |
+
model = "ResembleAI/chatterbox"
|
| 48 |
+
voice = "${l.toLowerCase()}"
|
| 49 |
+
exaggeration = ${b}
|
| 50 |
+
temperature = ${U}
|
| 51 |
+
|
| 52 |
+
# Generate speech
|
| 53 |
+
print("Generating speech...")
|
| 54 |
+
try:
|
| 55 |
+
audio_bytes = client.text_to_speech(
|
| 56 |
+
text,
|
| 57 |
+
model=model,
|
| 58 |
+
# Note: Voice and other parameters may vary by model
|
| 59 |
+
)
|
| 60 |
+
print(f"✓ Generated {len(audio_bytes)} bytes of audio")
|
| 61 |
+
except Exception as e:
|
| 62 |
+
print(f"Error: {e}")`}function we(F,ge="Copied to clipboard!"){navigator.clipboard.writeText(F).then(()=>{s(9,g=ge),setTimeout(()=>{s(9,g=null)},2e3)})}function ke(F,ge=""){s(20,H=F),s(21,I=ge),s(19,k=!0)}function ve(){s(19,k=!1),s(20,H=""),s(21,I="")}function Ee(){const F=I?`${H}
|
| 63 |
+
|
| 64 |
+
Details:
|
| 65 |
+
${I}`:H;we(F,"Error message copied!")}function pe(){const F=S.map(ge=>`# ${ge.title}
|
| 66 |
+
${ge.code}`).join(`
|
| 67 |
+
|
| 68 |
+
`);we(F,"All code copied!")}let Je=t;const Qe=()=>s(1,i="ui"),nt=()=>s(1,i="code");function ze(){t=this.value,s(0,t)}function Ne(F){Sl[F?"unshift":"push"](()=>{T=F,s(17,T)})}const Ce=()=>s(6,f=!f),ye=F=>{s(4,n=F.name),s(6,f=!1)},Ze=(F,ge)=>ne(F,ge),Se=F=>s(3,l=F.name);function Et(){b=Zt(this.value),s(11,b)}function Ae(){U=Zt(this.value),s(12,U)}const Te=()=>s(5,o="api"),Pe=()=>s(5,o="local"),He=F=>we(F.code);return r.$$.update=()=>{r.$$.dirty[0]&2&&i==="ui"&&s(2,S=[]),r.$$.dirty[0]&6&&S.length===0&&i==="code"&&ce("Setup and Import",Il()),r.$$.dirty[0]&5|r.$$.dirty[1]&64&&t!==Je&&S.length>0&&s(37,Je=t)},[t,i,S,l,n,o,f,_,V,g,v,b,U,N,A,O,L,T,W,k,H,I,K,y,E,p,D,C,R,le,ie,ne,de,we,ve,Ee,pe,Je,Qe,nt,ze,Ne,Ce,ye,Ze,Se,Et,Ae,Te,Pe,He]}class Zn extends je{constructor(e){super(),Be(this,e,Xn,Kn,xe,{},null,[-1,-1,-1])}}export{Zn as component};
|
hfstudio/static/index.html
CHANGED
|
@@ -2,29 +2,29 @@
|
|
| 2 |
<html lang="en">
|
| 3 |
<head>
|
| 4 |
<meta charset="utf-8" />
|
| 5 |
-
<link rel="icon" href="/assets/hf-logo.png" />
|
| 6 |
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
| 7 |
<title>HFStudio - Text to Speech</title>
|
| 8 |
|
| 9 |
-
<link rel="modulepreload" href="/_app/immutable/entry/start.
|
| 10 |
-
<link rel="modulepreload" href="/_app/immutable/chunks/
|
| 11 |
-
<link rel="modulepreload" href="/_app/immutable/chunks/
|
| 12 |
-
<link rel="modulepreload" href="/_app/immutable/entry/app.
|
| 13 |
<link rel="modulepreload" href="/_app/immutable/chunks/IHki7fMi.js">
|
| 14 |
</head>
|
| 15 |
<body data-sveltekit-preload-data="hover">
|
| 16 |
<div style="display: contents">
|
| 17 |
<script>
|
| 18 |
{
|
| 19 |
-
|
| 20 |
base: ""
|
| 21 |
};
|
| 22 |
|
| 23 |
const element = document.currentScript.parentElement;
|
| 24 |
|
| 25 |
Promise.all([
|
| 26 |
-
import("/_app/immutable/entry/start.
|
| 27 |
-
import("/_app/immutable/entry/app.
|
| 28 |
]).then(([kit, app]) => {
|
| 29 |
kit.start(app, element);
|
| 30 |
});
|
|
|
|
| 2 |
<html lang="en">
|
| 3 |
<head>
|
| 4 |
<meta charset="utf-8" />
|
| 5 |
+
<link rel="icon" href="/assets/hf-studio-logo.png" />
|
| 6 |
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
| 7 |
<title>HFStudio - Text to Speech</title>
|
| 8 |
|
| 9 |
+
<link rel="modulepreload" href="/_app/immutable/entry/start.C4-zG_GX.js">
|
| 10 |
+
<link rel="modulepreload" href="/_app/immutable/chunks/Bs9I3-rU.js">
|
| 11 |
+
<link rel="modulepreload" href="/_app/immutable/chunks/Bqgpa-5T.js">
|
| 12 |
+
<link rel="modulepreload" href="/_app/immutable/entry/app.DZ7KK-ry.js">
|
| 13 |
<link rel="modulepreload" href="/_app/immutable/chunks/IHki7fMi.js">
|
| 14 |
</head>
|
| 15 |
<body data-sveltekit-preload-data="hover">
|
| 16 |
<div style="display: contents">
|
| 17 |
<script>
|
| 18 |
{
|
| 19 |
+
__sveltekit_17nj3h5 = {
|
| 20 |
base: ""
|
| 21 |
};
|
| 22 |
|
| 23 |
const element = document.currentScript.parentElement;
|
| 24 |
|
| 25 |
Promise.all([
|
| 26 |
+
import("/_app/immutable/entry/start.C4-zG_GX.js"),
|
| 27 |
+
import("/_app/immutable/entry/app.DZ7KK-ry.js")
|
| 28 |
]).then(([kit, app]) => {
|
| 29 |
kit.start(app, element);
|
| 30 |
});
|
hfstudio/static/voices/andrew.mp3
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4ee4aaa04267d4c20f84a28281cc3a7850b4bd9fe659a137f4747a29cd2b2a70
|
| 3 |
+
size 289690
|
hfstudio/static/voices/fairy.mp3
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2b30f8ef6e243d7eac70d88a45a562b103e34d18c9e4419c94798dd431223e1d
|
| 3 |
+
size 405673
|
hfstudio/static/voices/pirate.mp3
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8c189f3801ee4616a8130fe64bb63cd36f00eeaf5791b2d904141ae8c574790c
|
| 3 |
+
size 401912
|
test_chatterbox.py
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
|
| 3 |
+
from huggingface_hub import InferenceClient
|
| 4 |
+
|
| 5 |
+
# Initialize the client
|
| 6 |
+
client = InferenceClient(
|
| 7 |
+
provider="fal-ai",
|
| 8 |
+
)
|
| 9 |
+
|
| 10 |
+
# Test parameters (matching what our app sends)
|
| 11 |
+
text = "In a hole in the ground there lived a hobbit."
|
| 12 |
+
|
| 13 |
+
extra_body = {
|
| 14 |
+
"exaggeration": 0.25,
|
| 15 |
+
"temperature": 0.7,
|
| 16 |
+
"audio_url": "https://huggingface.co/spaces/abidlabs/hfstudio/resolve/main/frontend/static/voices/lily.mp3"
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
bytes = client.text_to_speech(
|
| 20 |
+
text,
|
| 21 |
+
model="ResembleAI/chatterbox",
|
| 22 |
+
extra_body=extra_body,
|
| 23 |
+
)
|
| 24 |
+
|
| 25 |
+
print(bytes)
|