+
{!isPlayerReady && !error &&
}
+ {/* Fullscreen button */}
+
);
}
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index c770bfc..97953a3 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -8,18 +8,12 @@
"name": "frontend",
"version": "0.1.0",
"dependencies": {
- "@clappr/core": "^0.13.2",
- "@clappr/player": "^0.11.16",
"@fontsource/roboto": "^5.2.9",
- "@vidstack/react": "^1.12.13",
- "artplayer": "^5.3.0",
- "clappr": "^0.3.13",
"hls.js": "^1.6.15",
"next": "16.1.6",
"react": "19.2.3",
"react-dom": "19.2.3",
- "react-icons": "^5.5.0",
- "vidstack": "^1.12.13"
+ "react-icons": "^5.5.0"
},
"devDependencies": {
"@tailwindcss/postcss": "^4",
@@ -285,18 +279,6 @@
"node": ">=6.9.0"
}
},
- "node_modules/@clappr/core": {
- "version": "0.13.2",
- "resolved": "https://registry.npmjs.org/@clappr/core/-/core-0.13.2.tgz",
- "integrity": "sha512-QW2wx5BHFfnoQY6biGLyVYBHCrx4amMScHCVpXZhSWgwqP6l8YNcz8fNkQuJWjLT5ISgFym3F4cxO8Imhmk2Kg==",
- "license": "BSD-3-Clause"
- },
- "node_modules/@clappr/player": {
- "version": "0.11.16",
- "resolved": "https://registry.npmjs.org/@clappr/player/-/player-0.11.16.tgz",
- "integrity": "sha512-A6rVmOqJ93rBJ4KDc3bFe3HHdtazC3LKGcnsw+0w52wfa8IpsiU2XpeSSLY44tybEJ8gpPKtm7vJrMf4uFVSzA==",
- "license": "BSD-3-Clause"
- },
"node_modules/@emnapi/core": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz",
@@ -474,31 +456,6 @@
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
- "node_modules/@floating-ui/core": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.4.tgz",
- "integrity": "sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/utils": "^0.2.10"
- }
- },
- "node_modules/@floating-ui/dom": {
- "version": "1.7.5",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.5.tgz",
- "integrity": "sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/core": "^1.7.4",
- "@floating-ui/utils": "^0.2.10"
- }
- },
- "node_modules/@floating-ui/utils": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz",
- "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==",
- "license": "MIT"
- },
"node_modules/@fontsource/roboto": {
"version": "5.2.9",
"resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-5.2.9.tgz",
@@ -1614,6 +1571,7 @@
"version": "19.2.14",
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
"integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"csstype": "^3.2.2"
@@ -1629,12 +1587,6 @@
"@types/react": "^19.2.0"
}
},
- "node_modules/@types/trusted-types": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
- "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
- "license": "MIT"
- },
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "8.56.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.0.tgz",
@@ -2186,27 +2138,11 @@
"win32"
]
},
- "node_modules/@vidstack/react": {
- "version": "1.12.13",
- "resolved": "https://registry.npmjs.org/@vidstack/react/-/react-1.12.13.tgz",
- "integrity": "sha512-zyNydy1+HtoK6cJ8EmqFNkPPGHIFMrr2KH+ef3654EqXx4IcJ8A5LCNMXBuALQE8IMxtk040JMoR9OKyeXjBOQ==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/dom": "^1.6.10",
- "media-captions": "^1.0.4"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@types/react": "^18.0.0 || ^19.0.0",
- "react": "^18.0.0 || ^19.0.0"
- }
- },
"node_modules/acorn": {
"version": "8.16.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
"integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
+ "dev": true,
"license": "MIT",
"bin": {
"acorn": "bin/acorn"
@@ -2435,15 +2371,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/artplayer": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/artplayer/-/artplayer-5.3.0.tgz",
- "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==",
- "license": "MIT",
- "dependencies": {
- "option-validator": "^2.0.6"
- }
- },
"node_modules/ast-types-flow": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
@@ -2671,13 +2598,6 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/clappr": {
- "version": "0.3.13",
- "resolved": "https://registry.npmjs.org/clappr/-/clappr-0.3.13.tgz",
- "integrity": "sha512-cAtGhtSAYIavKqVQb/wX5pB9twb/W7gFUGBaGHy6dbpUqCtCmtH0Eu05rNSwtbaREWgSTUJyEMTgaNSZ/62KlQ==",
- "deprecated": "This version is no longer supported. Please use the @clappr/player versions instead.",
- "license": "BSD-3-Clause"
- },
"node_modules/client-only": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
@@ -2737,6 +2657,7 @@
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
+ "dev": true,
"license": "MIT"
},
"node_modules/damerau-levenshtein": {
@@ -4611,15 +4532,6 @@
"json-buffer": "3.0.1"
}
},
- "node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/language-subtag-registry": {
"version": "0.3.23",
"resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz",
@@ -4915,15 +4827,6 @@
"url": "https://opencollective.com/parcel"
}
},
- "node_modules/lit-html": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz",
- "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "@types/trusted-types": "^2.0.2"
- }
- },
"node_modules/locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -4990,15 +4893,6 @@
"node": ">= 0.4"
}
},
- "node_modules/media-captions": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/media-captions/-/media-captions-1.0.4.tgz",
- "integrity": "sha512-cyDNmuZvvO4H27rcBq2Eudxo9IZRDCOX/I7VEyqbxsEiD2Ei7UYUhG/Sc5fvMZjmathgz3fEK7iAKqvpY+Ux1w==",
- "license": "MIT",
- "engines": {
- "node": ">=16"
- }
- },
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -5324,15 +5218,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/option-validator": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/option-validator/-/option-validator-2.0.6.tgz",
- "integrity": "sha512-tmZDan2LRIRQyhUGvkff68/O0R8UmF+Btmiiz0SmSw2ng3CfPZB9wJlIjHpe/MKUZqyIZkVIXCrwr1tIN+0Dzg==",
- "license": "MIT",
- "dependencies": {
- "kind-of": "^6.0.3"
- }
- },
"node_modules/optionator": {
"version": "0.9.4",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
@@ -6483,19 +6368,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/unplugin": {
- "version": "1.16.1",
- "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz",
- "integrity": "sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==",
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.14.0",
- "webpack-virtual-modules": "^0.6.2"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
"node_modules/unrs-resolver": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz",
@@ -6572,27 +6444,6 @@
"punycode": "^2.1.0"
}
},
- "node_modules/vidstack": {
- "version": "1.12.13",
- "resolved": "https://registry.npmjs.org/vidstack/-/vidstack-1.12.13.tgz",
- "integrity": "sha512-vuNeyRmWoH/7EoFVDYjp9nkgcqtCMmal518LDeb78dYKgWb+p6+vtY0AzDhrkBv5q1UiCn+xwmjMmwvSlPLuhQ==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/dom": "^1.6.10",
- "lit-html": "^2.8.0",
- "media-captions": "^1.0.4",
- "unplugin": "^1.12.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/webpack-virtual-modules": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
- "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==",
- "license": "MIT"
- },
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
diff --git a/frontend/public/icon.svg b/frontend/public/icon.svg
new file mode 100644
index 0000000..9600a51
--- /dev/null
+++ b/frontend/public/icon.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/frontend/public/icons/pwa-icon.svg b/frontend/public/icons/pwa-icon.svg
new file mode 100644
index 0000000..b18e16c
--- /dev/null
+++ b/frontend/public/icons/pwa-icon.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..2e5c241
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,6 @@
+{
+ "name": "kv-tube",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {}
+}