diff --git a/lang/en/messages.php b/lang/en/messages.php index 1884d3a..9bec088 100644 --- a/lang/en/messages.php +++ b/lang/en/messages.php @@ -12,6 +12,18 @@ 'proxy_tooltip' => 'Original video file replaced with short placeholder clip', 'details' => 'Details', 'details_tooltip' => 'Show Mux asset data', + 'info' => 'Info', + 'copied' => ':label copied to clipboard', + 'copy' => [ + 'asset_id' => 'Asset ID', + 'playback_id' => 'Playback ID', + 'player_url' => 'Player URL', + 'stream_url' => 'Stream URL', + 'thumbnail_url' => 'Thumbnail URL', + 'gif_url' => 'Thumbnail URL', + 'embed_code' => 'Embed code', + 'signed' => 'signed', + ], 'not_uploaded' => 'Not uploaded', 'upload_on_save' => 'Upload to Mux on save', 'reupload_on_save' => 'Reupload to Mux on save', diff --git a/package-lock.json b/package-lock.json index 4502fe4..c08d402 100644 --- a/package-lock.json +++ b/package-lock.json @@ -438,47 +438,47 @@ "link": true }, "node_modules/@tailwindcss/node": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.0.tgz", - "integrity": "sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.1.tgz", + "integrity": "sha512-6NDaqRoAMSXD1mr/RXu0HBvNE9a2n5tHPsxu9XHLws8o4Twes5rBM2205SUUiJ9goAtadrN6xTGX0UDEwp/N4A==", "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.5", - "enhanced-resolve": "^5.21.0", - "jiti": "^2.6.1", + "enhanced-resolve": "5.21.6", + "jiti": "^2.7.0", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", - "tailwindcss": "4.3.0" + "tailwindcss": "4.3.1" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.0.tgz", - "integrity": "sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.1.tgz", + "integrity": "sha512-yVPyo8RNkabVr3O2EhHEE0Rewu7YKzc1DhIqfL46LKveFrmu9XbDazNOJY7/GRuvw1h6u3utWnR29H/p5JPlgA==", "license": "MIT", "engines": { "node": ">= 20" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.3.0", - "@tailwindcss/oxide-darwin-arm64": "4.3.0", - "@tailwindcss/oxide-darwin-x64": "4.3.0", - "@tailwindcss/oxide-freebsd-x64": "4.3.0", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.0", - "@tailwindcss/oxide-linux-arm64-gnu": "4.3.0", - "@tailwindcss/oxide-linux-arm64-musl": "4.3.0", - "@tailwindcss/oxide-linux-x64-gnu": "4.3.0", - "@tailwindcss/oxide-linux-x64-musl": "4.3.0", - "@tailwindcss/oxide-wasm32-wasi": "4.3.0", - "@tailwindcss/oxide-win32-arm64-msvc": "4.3.0", - "@tailwindcss/oxide-win32-x64-msvc": "4.3.0" + "@tailwindcss/oxide-android-arm64": "4.3.1", + "@tailwindcss/oxide-darwin-arm64": "4.3.1", + "@tailwindcss/oxide-darwin-x64": "4.3.1", + "@tailwindcss/oxide-freebsd-x64": "4.3.1", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.1", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.1", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.1", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.1", + "@tailwindcss/oxide-linux-x64-musl": "4.3.1", + "@tailwindcss/oxide-wasm32-wasi": "4.3.1", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.1", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.1" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.0.tgz", - "integrity": "sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.1.tgz", + "integrity": "sha512-SVlyf61g374l5cHyg8x9kf5xmLcOaxvOTsbsqDnSsDJaKOEFZ7GCvi84VAVGpxojYOs1+3K6M0UjXfqPU8vmOQ==", "cpu": [ "arm64" ], @@ -492,9 +492,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.0.tgz", - "integrity": "sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.1.tgz", + "integrity": "sha512-hVnWLwv+e/l7c4WKyVtHVrIPvYdqWHjRB3MDIqARynzFtnQg85kmQEFCbV9Ja0VVx4xXTIiDWY60Y7iz/iNoDA==", "cpu": [ "arm64" ], @@ -508,9 +508,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.0.tgz", - "integrity": "sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.1.tgz", + "integrity": "sha512-Cf7abu0WVgbhU7ANgPUnSAvm7nCvMweusHb8FnaHlLfv/Caq4GYaEZg7ZImzzmjx4lIAfuS8q+eLIS7A7IzxIg==", "cpu": [ "x64" ], @@ -524,9 +524,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.0.tgz", - "integrity": "sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.1.tgz", + "integrity": "sha512-ZZqzX2Y+GXtXXfqSfpJhDm60OoZfvLHLCgm+J7NVqgHHJjG/m9ugZI77RwTsVd4fnBJuCFP6Ae6kTJb71UdS8g==", "cpu": [ "x64" ], @@ -540,9 +540,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.0.tgz", - "integrity": "sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.1.tgz", + "integrity": "sha512-/Ah/xik0LaMYfv9DZ0S/t4pBlBNYOcqtRwusjgovHkvT8ixueWCLyJjsaF5kQIckjb4IT8Q6K6p/iPmZMixYgg==", "cpu": [ "arm" ], @@ -556,9 +556,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.0.tgz", - "integrity": "sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.1.tgz", + "integrity": "sha512-gqdFoVJlw444GvpnheZLHmvTzSxI/cOUUh2KSNejQjTcYkW062SVD+En0rUgD+QV91bz1XGIGtt1HJd48xUGbQ==", "cpu": [ "arm64" ], @@ -575,9 +575,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.0.tgz", - "integrity": "sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.1.tgz", + "integrity": "sha512-Bwv9KwOvE0VKa86xPFif9b9c3Y1NxOV1P0gLti/IYaWEsQYZXDlxfGEtA8mdDZ7SG3wyNXAWYT5SIn3giL57oA==", "cpu": [ "arm64" ], @@ -594,9 +594,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.0.tgz", - "integrity": "sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.1.tgz", + "integrity": "sha512-Ymi8O8T15HYQdOUWUtTI6ldN0neHP85FC+Qz32xTcZ7iJXtem/x8ITev0o1e9e5rkqj4lONZfTRLvkmin1+tKg==", "cpu": [ "x64" ], @@ -613,9 +613,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.0.tgz", - "integrity": "sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.1.tgz", + "integrity": "sha512-M+P/91qJ6uILLw4k2G93GMDRAXj61SMvFQYt39AqvUqYgExXpLL5aepfns7sj4HiAQeolirQF9E0lzRvdf4zPQ==", "cpu": [ "x64" ], @@ -632,9 +632,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.0.tgz", - "integrity": "sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.1.tgz", + "integrity": "sha512-zsM8uOeqvVGHsAXsJxsT28ttosFahLJKCLOTUBqRAtKnVgGSRitds9T432QiT8b77Yga7JIBkulIRRlJPtYhRA==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -653,7 +653,7 @@ "@emnapi/runtime": "^1.10.0", "@emnapi/wasi-threads": "^1.2.1", "@napi-rs/wasm-runtime": "^1.1.4", - "@tybys/wasm-util": "^0.10.1", + "@tybys/wasm-util": "^0.10.2", "tslib": "^2.8.1" }, "engines": { @@ -661,9 +661,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.0.tgz", - "integrity": "sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.1.tgz", + "integrity": "sha512-aiNvSq9BsVk8V513lDKlrCFAgf8qBMPZTpgEhInL+NwQqs97mYmupVMrPrgBBSL8Pv/0zXu9MrMF9rMun1ZeNg==", "cpu": [ "arm64" ], @@ -677,9 +677,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.0.tgz", - "integrity": "sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.1.tgz", + "integrity": "sha512-xDEyu1rg290472FEGaKHnzyDyh5QH+AlWvsU5hMoMtPpzmKlRI0jaYKCgSHDYtaQWZOYbMaduSyCwFwY4n1HmA==", "cpu": [ "x64" ], @@ -693,14 +693,14 @@ } }, "node_modules/@tailwindcss/vite": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.0.tgz", - "integrity": "sha512-t6J3OrB5Fc0ExuhohouH0fWUGMYL6PTLhW+E7zIk/pdbnJARZDCwjBznFnkh5ynRnIRSI4YjtTH0t6USjJISrw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.1.tgz", + "integrity": "sha512-hItDHuIIlEV61R+faXu66s1K36aTurO/Qw0e45Vskz57gXl9pWOT6eg3zmcEui6CZXddbN7zd41bwmvag4JGwQ==", "license": "MIT", "dependencies": { - "@tailwindcss/node": "4.3.0", - "@tailwindcss/oxide": "4.3.0", - "tailwindcss": "4.3.0" + "@tailwindcss/node": "4.3.1", + "@tailwindcss/oxide": "4.3.1", + "tailwindcss": "4.3.1" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" @@ -734,39 +734,39 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.35", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.35.tgz", - "integrity": "sha512-BUmHaR1J+O+CKZ9uJucdVTEr1LHsdyvv7vG3eNRhK3CczEHeMd/LtsHAuD7PbrxvI2envCY2v7HI1vC1aBRzKw==", + "version": "3.5.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.38.tgz", + "integrity": "sha512-s99aGxWYig9ErHbct27KXEGhrBYlRI6c4MwAgXErOAbX9xiW37/uMa+XUDO69zLz83dng8UUZ70CTOJrLrYrEQ==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.3", - "@vue/shared": "3.5.35", + "@babel/parser": "^7.29.7", + "@vue/shared": "3.5.38", "entities": "^7.0.1", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.35", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.35.tgz", - "integrity": "sha512-k+bprkXxuqhVajgTx5mUHuir7TwQzUKOWR40ng1ncAqQRPnrLngGGgqVEEhOnTMlc8btHYVKmrP8s5Qyg0hvYA==", + "version": "3.5.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.38.tgz", + "integrity": "sha512-JTqp25l8aFfJYF7/KmsXZjAxJz7T+SjmTJLoXVjHtc2BrSgSiW2n9Aem/cWq1OPe68A8JL06B3eVdhlP0H4TVw==", "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.35", - "@vue/shared": "3.5.35" + "@vue/compiler-core": "3.5.38", + "@vue/shared": "3.5.38" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.35", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.35.tgz", - "integrity": "sha512-G5VPMcXTSywXBgtFOZOnHKBxKSrwXUcvY1iaF5/hRcy7t0J6CH/d8ha9F4nzi00Fax1eLV0QHM7v4mQu68jydw==", + "version": "3.5.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.38.tgz", + "integrity": "sha512-DuA2GiZawSEW442iw/9+Fkol8hTgb4Ke5KkhmSry65QA7YuyMbIdy8p0XZRMvNwJdgRz307W8g1CSzdvS4nuNg==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.3", - "@vue/compiler-core": "3.5.35", - "@vue/compiler-dom": "3.5.35", - "@vue/compiler-ssr": "3.5.35", - "@vue/shared": "3.5.35", + "@babel/parser": "^7.29.7", + "@vue/compiler-core": "3.5.38", + "@vue/compiler-dom": "3.5.38", + "@vue/compiler-ssr": "3.5.38", + "@vue/shared": "3.5.38", "estree-walker": "^2.0.2", "magic-string": "^0.30.21", "postcss": "^8.5.15", @@ -774,63 +774,63 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.35", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.35.tgz", - "integrity": "sha512-rGhAeXgdM7/ffTJGXT69rCCdTmjDewnFuUZfBQQHTdcEBeWdT5HCGY60y2ytLJr9/Dsu7IntUi5z/w0h6Rjnzw==", + "version": "3.5.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.38.tgz", + "integrity": "sha512-7s+W5Gc42FGxZMcuwl8H5B29T8BJPMdBT7KHFE+BbAuZ/iTEdTtv7z2XiMjiaUUw4w3ZcCEdHs36RuYJ2VA7bA==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.35", - "@vue/shared": "3.5.35" + "@vue/compiler-dom": "3.5.38", + "@vue/shared": "3.5.38" } }, "node_modules/@vue/reactivity": { - "version": "3.5.35", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.35.tgz", - "integrity": "sha512-tVc+SsHConvh/Lz64qq1pP3rYArBmK42xonovEcxY74SQtvctZodG/zhq54P5dr38cVuw25d27cPNRdlMidpGQ==", + "version": "3.5.38", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.38.tgz", + "integrity": "sha512-pG6LV/NDNRbKizcUjFFLAfjaL8mcv4DmR9avNcUw2gDHBzZneuS2TWCmp633ynzxz9YYKNeEPK2I8Wraqy2HUQ==", "license": "MIT", "dependencies": { - "@vue/shared": "3.5.35" + "@vue/shared": "3.5.38" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.35", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.35.tgz", - "integrity": "sha512-A/xFNX9loIcWDygeQuNCfKuh0CoYBzxhqEMNah5TSFg9Z53DrFYEN2qi5CU9necjM1OWYegYREUTHmXTmhfXtg==", + "version": "3.5.38", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.38.tgz", + "integrity": "sha512-iyW8WVfF1CpCXxncZY5Ei6rSd6oZr5DgEom//fUjRBRl56AXPD+s9ATvukRt77ZFTuYlnVA1bxY+dJB94tWVYw==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.35", - "@vue/shared": "3.5.35" + "@vue/reactivity": "3.5.38", + "@vue/shared": "3.5.38" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.35", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.35.tgz", - "integrity": "sha512-odrJ1C391dbGnyDRh8U+rnP7J2amIEzfmRk5vXy7xi3aZhEXofTvpi0T4HJb6jlNqQZTNPR5MPHSB3RHNkIORA==", + "version": "3.5.38", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.38.tgz", + "integrity": "sha512-apX2wt9sdfDshS+a2xueFZLVpt0GkRJZSoPmrW/SA4yzXTznhfcMVW59gr7h4YQeY0vJhdJkk2rsIDwgfFgC5A==", "license": "MIT", "dependencies": { - "@vue/reactivity": "3.5.35", - "@vue/runtime-core": "3.5.35", - "@vue/shared": "3.5.35", + "@vue/reactivity": "3.5.38", + "@vue/runtime-core": "3.5.38", + "@vue/shared": "3.5.38", "csstype": "^3.2.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.35", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.35.tgz", - "integrity": "sha512-NkebSOYdB97wi8OQcO3HqzZSlymJi/aWsN/7h74OSVhRTm6qGs3Jp3e0rCXynmWwSlKeRrnlIug+ilYoHBmQDA==", + "version": "3.5.38", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.38.tgz", + "integrity": "sha512-vue8vbf2QlV4quHqzwmJy6dWfmRhP1J8l4wtZg60CL6VoKqcPY2oe7may3+1d9qfpedjK5PRLFqd5k3Isj9mUw==", "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.5.35", - "@vue/shared": "3.5.35" + "@vue/compiler-ssr": "3.5.38", + "@vue/shared": "3.5.38" }, "peerDependencies": { - "vue": "3.5.35" + "vue": "3.5.38" } }, "node_modules/@vue/shared": { - "version": "3.5.35", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.35.tgz", - "integrity": "sha512-zSbjL7gRXwks2ZQLRGCajBtBXEOXW9Ddhn/HvSdrGkE2dqGnumzW8XtusRrxrE9LvqtiqDXQ+A60Hp6mvdYxfA==", + "version": "3.5.38", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.38.tgz", + "integrity": "sha512-FTW0AFZNaK5/mOqvGBwVfUlNLU38TiQn4+DQgIFUnrBBJQ1crMJ82yeGQLV5jyKFsO8yRukpbuP7x+nRbH6aug==", "license": "MIT" }, "node_modules/csstype": { @@ -849,9 +849,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.23.0.tgz", - "integrity": "sha512-yJN/BOOLxcOW2aQgeif9mSnaUB8KtvmMMp56oA1kx1CRfBKbhZm2pJ+NBY+3eOboHxix8lfjWpHE0Ei5U8RbSA==", + "version": "5.21.6", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz", + "integrity": "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", @@ -1329,9 +1329,9 @@ } }, "node_modules/tailwindcss": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.0.tgz", - "integrity": "sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.1.tgz", + "integrity": "sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q==", "license": "MIT" }, "node_modules/tapable": { @@ -1472,16 +1472,16 @@ } }, "node_modules/vue": { - "version": "3.5.35", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.35.tgz", - "integrity": "sha512-cx89fnr+0kVGHiNFG6y6s0bdjypJRFNZn6x3WPstNdQR1bi1mbB7h4v5IBGTsPJU3nK1+0Iqj3Zf+hZWMieR4Q==", + "version": "3.5.38", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.38.tgz", + "integrity": "sha512-vAMKHfImQlYSy0C+PBue4s3ERZ2xGKfgZg5GXAsLInq1dyh2H78ILVP5sK0KPFPVW4kv+OGCIvBEondcjpZp7A==", "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.35", - "@vue/compiler-sfc": "3.5.35", - "@vue/runtime-dom": "3.5.35", - "@vue/server-renderer": "3.5.35", - "@vue/shared": "3.5.35" + "@vue/compiler-dom": "3.5.38", + "@vue/compiler-sfc": "3.5.38", + "@vue/runtime-dom": "3.5.38", + "@vue/server-renderer": "3.5.38", + "@vue/shared": "3.5.38" }, "peerDependencies": { "typescript": "*" diff --git a/resources/dist/build/assets/addon-BNv7da6H.css b/resources/dist/build/assets/addon-BNv7da6H.css deleted file mode 100644 index 16d49c0..0000000 --- a/resources/dist/build/assets/addon-BNv7da6H.css +++ /dev/null @@ -1,2 +0,0 @@ -/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial}}}@layer addon-theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-green-600:oklch(62.7% .194 149.214);--color-gray-300:var(--theme-color-gray-300);--color-gray-700:var(--theme-color-gray-700);--color-white:#fff;--spacing:.25rem;--text-xs:.825rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--text-2xs:.7rem}}@layer addon-utilities{.container{width:100%}@media (width>=15rem){.container{max-width:15rem}}@media (width>=20rem){.container{max-width:20rem}}@media (width>=30rem){.container{max-width:30rem}}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}@media (width>=120rem){.container{max-width:120rem}}.mt-8{margin-top:calc(var(--spacing) * 8)}.block{display:block}.flex{display:flex}.grid{display:grid}.inline{display:inline}.inline-flex{display:inline-flex}.size-3\!{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.size-3\.5\!{width:calc(var(--spacing) * 3.5)!important;height:calc(var(--spacing) * 3.5)!important}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.h-10{height:calc(var(--spacing) * 10)}.h-full{height:100%}.w-16{width:calc(var(--spacing) * 16)}.w-full{width:100%}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.grid-cols-\[minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr)}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.justify-center{justify-content:center}.justify-items-start{justify-items:start}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-800\/10>:not(:last-child)){border-color:var(--theme-color-gray-800)}@supports (color:color-mix(in lab, red, red)){:where(.divide-gray-800\/10>:not(:last-child)){border-color:color-mix(in oklab, var(--theme-color-gray-800) 10%, transparent)}}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.bg-gray-50\!{background-color:var(--theme-color-gray-50)!important}.bg-gray-100{background-color:var(--theme-color-gray-100)}.object-cover{object-fit:cover}.py-8{padding-block:calc(var(--spacing) * 8)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-2xs{font-size:var(--text-2xs)}.text-\[25px\]{font-size:25px}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-gray-400{color:var(--theme-color-gray-400)}.text-gray-500{color:var(--theme-color-gray-500)}.text-gray-600{color:var(--theme-color-gray-600)}.text-green-600{color:var(--color-green-600)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-focus\:opacity-100:is(:where(.group):focus *),.group-focus-visible\:opacity-100:is(:where(.group):focus-visible *){opacity:1}@media (width>=40rem){.sm\:gap-3{gap:calc(var(--spacing) * 3)}}:where(.dark\:divide-white\/10:where(.dark,.dark *)>:not(:last-child)){border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){:where(.dark\:divide-white\/10:where(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.dark\:bg-gray-800:where(.dark,.dark *){background-color:var(--theme-color-gray-800)}.dark\:bg-gray-800\!:where(.dark,.dark *){background-color:var(--theme-color-gray-800)!important}.dark\:text-gray-300:where(.dark,.dark *){color:var(--theme-color-gray-300)}.dark\:text-gray-500:where(.dark,.dark *){color:var(--theme-color-gray-500)}.dark\:text-gray-600:where(.dark,.dark *){color:var(--theme-color-gray-600)}.dark\:text-gray-700:where(.dark,.dark *){color:var(--theme-color-gray-700)}.\[\&_svg\]\:opacity-60 svg{opacity:.6}.\[\&_td\]\:px-1\.5\! td{padding-inline:calc(var(--spacing) * 1.5)!important}.\[\&_td\]\:py-2\! td{padding-block:calc(var(--spacing) * 2)!important}.\[\&_td\]\:text-left td{text-align:left}.\[\&_td\:first-child\]\:pl-3\! td:first-child{padding-left:calc(var(--spacing) * 3)!important}.\[\&_td\:last-child\]\:pr-3\! td:last-child{padding-right:calc(var(--spacing) * 3)!important}}:root{--animation-timing-function-fast-out-slow-in:cubic-bezier(.4,0,.2,1);--color-button-active:hsl(from var(--color-gray-300) h s l / .45)}.dark{--color-button-active:hsl(from var(--color-gray-700) h s l / .45)}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}} diff --git a/resources/dist/build/assets/addon-BiYct5_h.js b/resources/dist/build/assets/addon-BiYct5_h.js new file mode 100644 index 0000000..fb7b8fb --- /dev/null +++ b/resources/dist/build/assets/addon-BiYct5_h.js @@ -0,0 +1 @@ +var{Alert:e,AuthCard:t,Avatar:n,Badge:r,Button:i,ButtonGroup:a,Calendar:o,Card:s,CardList:c,CardListItem:l,CardPanel:u,CharacterCounter:d,Checkbox:f,CheckboxGroup:p,CodeEditor:m,Combobox:h,CommandPaletteItem:g,ConfirmationModal:_,Context:v,ContextFooter:y,ContextHeader:ee,ContextItem:te,ContextLabel:ne,ContextMenu:re,ContextSeparator:ie,CreateForm:ae,DatePicker:oe,DateRangePicker:se,Description:ce,DocsCallout:b,DragHandle:le,Dropdown:x,DropdownItem:S,DropdownLabel:C,DropdownMenu:w,DropdownSeparator:T,DropdownFooter:ue,DropdownHeader:de,Editable:fe,ErrorMessage:pe,EmptyStateItem:E,EmptyStateMenu:D,Field:me,Header:he,Heading:ge,HoverCard:_e,Icon:ve,Input:ye,InputGroup:be,InputGroupAppend:xe,InputGroupPrepend:Se,Label:Ce,Listing:we,ListingCustomizeColumns:Te,ListingFilters:Ee,ListingHeaderCell:De,ListingPagination:Oe,ListingPresets:ke,ListingPresetTrigger:Ae,ListingRowActions:je,ListingSearch:Me,ListingTable:Ne,ListingTableBody:Pe,ListingTableHead:Fe,ListingToggleAll:Ie,LivePreview:Le,LivePreviewPopout:Re,MiddleEllipsis:ze,Modal:Be,ModalClose:Ve,ModalTitle:He,Pagination:Ue,Panel:We,PanelFooter:Ge,PanelHeader:Ke,Popover:qe,PublishComponents:Je,PublishContainer:Ye,publishContextKey:Xe,injectPublishContext:Ze,PublishField:Qe,PublishFields:$e,PublishFieldsProvider:et,PublishForm:tt,PublishLocalizations:nt,PublishSections:rt,PublishTabs:it,Radio:at,RadioGroup:ot,Select:st,Separator:ct,Slider:lt,Skeleton:ut,SplitterGroup:dt,SplitterPanel:ft,SplitterResizeHandle:pt,StatusIndicator:mt,Subheading:ht,Switch:gt,TabContent:_t,Stack:vt,StackClose:yt,StackHeader:bt,StackFooter:xt,StackContent:St,Table:Ct,TableCell:wt,TableColumn:Tt,TableColumns:Et,TableRow:Dt,TableRows:Ot,TabList:kt,TabProvider:At,Tabs:jt,TabTrigger:Mt,Text:Nt,Textarea:Pt,TimePicker:Ft,TimezoneHoverCard:It,Timezones:Lt,ToggleGroup:Rt,ToggleItem:zt,Widget:Bt,registerIconSet:Vt,registerIconSetFromStrings:Ht}=__STATAMIC__.ui,{Fieldtype:Ut,IndexFieldtype:Wt,FieldtypeMixin:Gt,HasActionsMixin:Kt,HasInputOptionsMixin:qt,HasPreferencesMixin:Jt,IndexFieldtypeMixin:O,InlineEditForm:Yt,DateFormatter:Xt,NumberFormatter:Zt,ItemActions:Qt,RelatedItem:$t,RestoreRevision:en,RevisionHistory:tn,RevisionPreview:nn,SaveButtonOptions:rn,SortableList:an,requireElevatedSession:on,requireElevatedSessionIf:sn,clone:cn,debounce:ln,deepClone:un,resetValuesFromResponse:dn}=__STATAMIC__.core,{BaseTransition:fn,BaseTransitionPropsValidators:pn,Comment:mn,DeprecationTypes:hn,EffectScope:gn,ErrorCodes:_n,ErrorTypeStrings:vn,Fragment:k,KeepAlive:yn,ReactiveEffect:bn,Static:xn,Suspense:Sn,Teleport:Cn,Text:wn,TrackOpTypes:Tn,Transition:En,TransitionGroup:Dn,TriggerOpTypes:On,VueElement:kn,__esModule:An,assertNumber:jn,callWithAsyncErrorHandling:Mn,callWithErrorHandling:Nn,camelize:Pn,capitalize:Fn,cloneVNode:In,compatUtils:Ln,compile:Rn,computed:zn,createApp:Bn,createBlock:A,createCommentVNode:j,createElementBlock:M,createElementVNode:N,createHydrationRenderer:Vn,createPropsRestProxy:Hn,createRenderer:Un,createSSRApp:Wn,createSlots:Gn,createStaticVNode:Kn,createTextVNode:P,createVNode:F,customRef:qn,defineAsyncComponent:Jn,defineComponent:Yn,defineCustomElement:Xn,defineEmits:Zn,defineExpose:Qn,defineModel:$n,defineOptions:er,defineProps:tr,defineSSRCustomElement:nr,defineSlots:rr,devtools:ir,effect:ar,effectScope:or,getCurrentInstance:sr,getCurrentScope:cr,getCurrentWatcher:lr,getTransitionRawChildren:ur,guardReactiveProps:dr,h:fr,handleError:pr,hasInjectionContext:mr,hydrate:hr,hydrateOnIdle:gr,hydrateOnInteraction:_r,hydrateOnMediaQuery:vr,hydrateOnVisible:yr,initCustomFormatter:br,initDirectivesForSSR:xr,inject:Sr,isMemoSame:Cr,isProxy:wr,isReactive:Tr,isReadonly:Er,isRef:Dr,isRuntimeOnly:Or,isShallow:kr,isVNode:Ar,markRaw:jr,mergeDefaults:Mr,mergeModels:Nr,mergeProps:Pr,nextTick:Fr,nodeOps:Ir,normalizeClass:I,normalizeProps:Lr,normalizeStyle:Rr,onActivated:zr,onBeforeMount:Br,onBeforeUnmount:Vr,onBeforeUpdate:Hr,onDeactivated:Ur,onErrorCaptured:Wr,onMounted:Gr,onRenderTracked:Kr,onRenderTriggered:qr,onScopeDispose:Jr,onServerPrefetch:Yr,onUnmounted:Xr,onUpdated:Zr,onWatcherCleanup:Qr,openBlock:L,patchProp:$r,popScopeId:ei,provide:ti,proxyRefs:ni,pushScopeId:ri,queuePostFlushCb:ii,reactive:ai,readonly:oi,ref:si,registerRuntimeCompiler:ci,render:li,renderList:R,renderSlot:ui,resolveComponent:z,resolveDirective:B,resolveDynamicComponent:V,resolveFilter:di,resolveTransitionHooks:fi,setBlockTracking:pi,setDevtoolsHook:mi,setTransitionHooks:hi,shallowReactive:gi,shallowReadonly:_i,shallowRef:vi,ssrContextKey:yi,ssrUtils:bi,stop:xi,toDisplayString:H,toHandlerKey:Si,toHandlers:Ci,toRaw:wi,toRef:Ti,toRefs:Ei,toValue:Di,transformVNodeArgs:Oi,triggerRef:ki,unref:U,useAttrs:Ai,useCssModule:ji,useCssVars:Mi,useHost:Ni,useId:Pi,useModel:Fi,useSSRContext:Ii,useShadowRoot:Li,useSlots:Ri,useTemplateRef:zi,useTransitionState:Bi,vModelCheckbox:Vi,vModelDynamic:Hi,vModelRadio:Ui,vModelSelect:Wi,vModelText:Gi,vShow:Ki,version:qi,warn:Ji,watch:Yi,watchEffect:Xi,watchPostEffect:Zi,watchSyncEffect:Qi,withAsyncContext:$i,withCtx:W,withDefaults:ea,withDirectives:G,withKeys:ta,withMemo:na,withModifiers:K,withScopeId:ra}=window.Vue,q=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},J={mixins:[Gt],data(){return{isInfoExpanded:!1,itemCopied:null,itemCopiedTimeout:null}},computed:{showReuploadToggle(){return this.allowReuploads&&!this.isProxy},allowReuploads(){return this.config?.allow_reupload},showDetails(){return this.config?.show_details},isAsset(){return this.meta?.is_asset||!1},isVideo(){return this.meta?.is_video||!1},isUploaded(){return!!this.value.id},isProxy(){return this.meta?.is_proxy||!1},infoItems(){let e=this.meta?.mux||{};return[{key:`asset_id`,icon:`taxonomies`},{key:`playback_id`,icon:`taxonomies`},{key:`player_url`,icon:`mux::video-square`},{key:`embed_code`,icon:`programming-code-block`},{key:`gif_url`,icon:`mux::thumbnail`}].filter(t=>e[t.key]).map(t=>({...t,label:this.t(`copy.${t.key}`),value:e[t.key]}))}},methods:{toggleInfo(){this.isInfoExpanded=!this.isInfoExpanded},copy(e,t){e&&(Statamic.$callbacks.call(`copyToClipboard`,e),clearTimeout(this.itemCopiedTimeout),this.itemCopied=t,this.itemCopiedTimeout=setTimeout(()=>{this.itemCopied=null},4e3))},t(e,t={}){return __(`statamic-mux::messages.fieldtype.${e}`,t)}}},ia={class:`grid grid-cols-[minmax(0,1fr)] gap-3 justify-items-start`},aa={class:`flex flex-wrap gap-2`},oa={key:0,class:`max-w-full grid p-1.5 border border-gray-150 dark:border-gray-700 rounded-lg overflow-hidden`},sa=[`onClick`],ca={class:`flex-shrink-0 flex size-5 items-center justify-center p-1`},la={class:`flex-1 flex items-baseline gap-3 px-2 overflow-hidden`},ua={class:`shrink-0 font-medium`},da={class:`flex-1 truncate font-mono text-xs text-gray-400 dark:text-gray-500`},fa={class:`text-[0.9em]`};function pa(e,t,n,r,i,a){let o=z(`ui-badge`),s=z(`ui-checkbox`),c=z(`ui-icon`),l=B(`tooltip`);return L(),M(`div`,ia,[!a.isAsset||!a.isVideo?G((L(),A(o,{key:0,pill:``,icon:`focus`,color:`white`},{default:W(()=>[P(H(a.t(`unmirrored`)),1)]),_:1})),[[l,a.t(a.isVideo?`unmirrored_no_asset`:`unmirrored_no_video`)]]):a.isUploaded?(L(),M(k,{key:2},[N(`div`,aa,[G((L(),A(o,{pill:``,icon:`checkmark`,color:`green`},{default:W(()=>[P(H(a.t(`uploaded`)),1)]),_:1})),[[l,a.t(`uploaded_tooltip`)]]),a.isProxy?G((L(),A(o,{key:0,pill:``,icon:`page-ghost`},{default:W(()=>[P(H(a.t(`proxy`)),1)]),_:1})),[[l,a.t(`proxy_tooltip`)]]):j(``,!0),G((L(),A(o,{pill:``,as:`button`,icon:i.isInfoExpanded?`x-square`:`info-square`,class:`shadow-none!`,onClick:a.toggleInfo},{default:W(()=>[P(H(a.t(`info`)),1)]),_:1},8,[`icon`,`onClick`])),[[l,a.t(`details_tooltip`)]])]),i.isInfoExpanded?(L(),M(`ul`,oa,[(L(!0),M(k,null,R(a.infoItems,({key:e,icon:t,label:n,value:r})=>(L(),M(`li`,{key:e,class:`group flex min-w-0 max-w-full rounded-lg px-1 py-1.5 text-sm text-gray-700 dark:text-gray-300 cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-800 outline-hidden`,onClick:t=>a.copy(r,e)},[N(`div`,ca,[t?(L(),A(c,{key:0,name:t,class:`size-3.5! text-gray-400 dark:text-gray-500`},null,8,[`name`])):j(``,!0)]),N(`div`,la,[N(`span`,ua,H(n),1),N(`span`,da,[N(`span`,fa,H(r),1)])]),N(`div`,{class:I([`flex-shrink-0 size-5 items-center justify-center p-1 hidden group-focus-within:flex! group-hover:flex!`,{"flex!":i.itemCopied===e}])},[F(c,{name:i.itemCopied===e?`clipboard-check`:`clipboard`,class:I([`size-3.5! text-gray-400 dark:text-gray-500`,{"text-gray-800! dark:text-gray-200!":i.itemCopied===e}])},null,8,[`name`,`class`])],2)],8,sa))),128))])):j(``,!0),a.showReuploadToggle?(L(),A(s,{key:1,modelValue:e.value.reupload,"onUpdate:modelValue":t[1]||=t=>e.value.reupload=t,name:`reupload`,label:a.t(`reupload_on_save`)},null,8,[`modelValue`,`label`])):j(``,!0)],64)):(L(),M(k,{key:1},[F(o,{pill:``,icon:`x-square`,color:`amber`},{default:W(()=>[P(H(a.t(`not_uploaded`)),1)]),_:1}),a.showReuploadToggle?(L(),A(s,{key:0,modelValue:e.value.reupload,"onUpdate:modelValue":t[0]||=t=>e.value.reupload=t,name:`reupload`,label:a.t(`upload_on_save`)},null,8,[`modelValue`,`label`])):j(``,!0)],64))])}var ma=q(J,[[`render`,pa]]),ha={mixins:[O],computed:{extension(){return this.values.extension.toLowerCase()},isAsset(){return this.values.basename&&this.values.extension},isVideo(){return[`h264`,`mp4`,`m4v`,`ogv`,`webm`,`mov`].includes(this.extension)},isUploaded(){return this.value?.id||!1},isProxy(){return this.value?.is_proxy||!1}},methods:{t(e,t={}){return __(`statamic-mux::messages.fieldtype.${e}`,t)}}},ga={key:0,class:`flex flex-wrap items-center gap-2`};function _a(e,t,n,r,i,a){let o=z(`ui-icon`),s=B(`tooltip`);return a.isAsset&&a.isVideo?(L(),M(`div`,ga,[a.isUploaded?j(``,!0):G((L(),A(o,{key:0,name:`x-square`,class:`text-gray-400 dark:text-gray-600`},null,512)),[[s,a.t(`not_uploaded`)]]),a.isUploaded?G((L(),A(o,{key:1,name:`checkmark`,class:`text-green-600`},null,512)),[[s,a.t(`uploaded`)]]):j(``,!0),a.isUploaded&&a.isProxy?G((L(),A(o,{key:2,name:`page-ghost`,class:`size-3.5! text-green-600`},null,512)),[[s,a.t(`proxy`)]]):j(``,!0)])):j(``,!0)}var va=q(ha,[[`render`,_a]]),ya={data(){return{listingPollingCallbackName:null,listingPollingVisibleRows:{},listingPollingRows:{},listingPollingTimer:null,listingPollingBusy:!1}},mounted(){this.listingPollingCallbackName&&Statamic.$callbacks.add(this.listingPollingCallbackName,this.startListingRowPolling)},beforeUnmount(){this.stopListingRowPolling(),this.listingPollingCallbackName&&Statamic.$callbacks.add(this.listingPollingCallbackName,()=>{})},methods:{listingPollingRequestCompleted({items:e}){this.listingPollingVisibleRows=e.reduce((e,t)=>(t.id&&(e[t.id]=t),t.path&&(e[t.path]=t),e),{}),e.forEach(e=>this.setListingPollingRowUpdating(e,!!this.listingPollingKeyForRow(e)))},startListingRowPolling(e,t=`sync`){let n=[...new Set((Array.isArray(e)?e:[e]).filter(Boolean))];n.forEach(e=>{this.listingPollingRows[e]=this.listingPollingRows[e]||{mode:t,attempts:0},this.setListingPollingRowUpdating(e,!0)}),n.length&&(this.pollListingRows(),this.listingPollingTimer||=setInterval(()=>this.pollListingRows(),3e3))},startListingRowPollingForVisibleRows(e=`sync`){this.startListingRowPolling(this.listingPollingVisibleRowKeys(),e)},listingPollingVisibleRowKeys(){let e=new Set;return Object.values(this.listingPollingVisibleRows).forEach(t=>{let n=t?.id||t?.path;n&&e.add(n)}),[...e]},stopListingRowPolling(){this.listingPollingTimer&&=(clearInterval(this.listingPollingTimer),null),Object.values(this.listingPollingVisibleRows).forEach(e=>this.setListingPollingRowUpdating(e,!1)),this.listingPollingRows={},this.listingPollingBusy=!1},async pollListingRows(){if(this.listingPollingBusy)return;let e=Object.keys(this.listingPollingRows);if(!e.length){this.stopListingRowPolling();return}this.listingPollingBusy=!0,e.forEach(e=>this.listingPollingRows[e].attempts++);try{((await this.$axios.get(this.listingPollingEndpoint(),{params:this.listingPollingParams(e)})).data?.data||[]).forEach(e=>this.patchListingPolledRow(e)),this.clearExpiredListingPollingRows()}catch(e){console.warn(`Failed to poll listing rows.`,e),this.clearExpiredListingPollingRows()}finally{this.listingPollingBusy=!1,Object.keys(this.listingPollingRows).length||this.stopListingRowPolling()}},listingPollingEndpoint(){return this.endpoint},listingPollingParams(e){let t=new URLSearchParams;return e.forEach(e=>t.append(`rows[]`,e)),t.set(`page`,1),t.set(`perPage`,Math.max(e.length,1)),t},patchListingPolledRow(e){let t=this.listingPollingKeyForRow(e),n=this.listingPollingVisibleRows[e.id]||this.listingPollingVisibleRows[e.path];n&&Object.assign(n,e),t&&this.isListingPollingComplete(e,this.listingPollingRows[t]?.mode)?(delete this.listingPollingRows[t],this.setListingPollingRowUpdating(n||e,!1)):this.setListingPollingRowUpdating(n||e,!0)},setListingPollingRowUpdating(e,t){let n=typeof e==`string`?this.listingPollingVisibleRows[e]:e;n&&(n._isPolling=t)},listingPollingKeyForRow(e){return Object.keys(this.listingPollingRows).find(t=>t===e.id||t===e.path)},isListingPollingComplete(e){return[`ready`,`errored`].includes(e.processing_status)||e.mirror_status===`missing`},clearExpiredListingPollingRows(){Object.entries(this.listingPollingRows).forEach(([e,t])=>{t.attempts>=120&&(delete this.listingPollingRows[e],this.setListingPollingRowUpdating(e,!1))})}}},{Form:ba,Head:Y,Link:xa,router:Sa,toggleArchitecturalBackground:Ca,useArchitecturalBackground:wa,useForm:Ta,usePoll:Ea}=__STATAMIC__.inertia,Da={props:{value:{type:String,default:null}},data(){return{states:{mirrored:{color:`green`,label:__(`Mirrored`),tooltip:__(`Linked to a local asset`)},orphaned:{color:`amber`,label:__(`Orphaned`),tooltip:__(`Not linked to a local asset`)},duplicated:{color:`red`,label:__(`Duplicated`),tooltip:__(`Referenced by multiple local assets`)},proxy:{color:`blue`,label:__(`Placeholder`),tooltip:__(`Temporary placeholder clip for an original asset`)},fallback:{color:`gray`,label:this.value,tooltip:null}}}},computed:{state(){return this.states[this.value]||{...this.states.fallback,label:this.value}},color(){return this.state.color},label(){return this.state.label},tooltip(){return this.state.tooltip}}};function Oa(e,t,n,r,i,a){let o=z(`ui-badge`),s=B(`tooltip`);return n.value?G((L(),A(o,{key:0,pill:``,color:a.color,size:`sm`},{default:W(()=>[P(H(a.label),1)]),_:1},8,[`color`])),[[s,a.tooltip]]):j(``,!0)}var ka=q(Da,[[`render`,Oa]]),Aa={props:{value:{type:String,default:null},isProxy:{type:Boolean,default:!1},isUpdating:{type:Boolean,default:!1}},data(){return{states:{uploaded:{color:`green`,label:__(`Uploaded`),tooltip:__(`Mirrored to Mux`)},not_uploaded:{color:`amber`,label:__(`Not uploaded`),tooltip:__(`Not mirrored to Mux yet`)},missing:{color:`red`,label:__(`Missing`),tooltip:__(`References a Mux asset that does not exist`)},fallback:{color:`gray`,label:this.value,tooltip:null}}}},computed:{state(){return this.states[this.value]||{...this.states.fallback,label:this.value}},color(){return this.state.color},label(){return this.state.label},tooltip(){return this.state.tooltip},showUpdating(){return this.isUpdating&&[`missing`,`not_uploaded`].includes(this.value)}}},ja={class:`flex items-center gap-2`};function Ma(e,t,n,r,i,a){let o=z(`ui-badge`),s=z(`ui-icon`),c=B(`tooltip`);return L(),M(`span`,ja,[n.value?G((L(),A(o,{key:0,pill:``,color:a.color,size:`sm`},{default:W(()=>[P(H(a.label),1)]),_:1},8,[`color`])),[[c,a.tooltip]]):j(``,!0),a.showUpdating?G((L(),A(s,{key:1,class:`size-3! animate-spin`,name:`loading`},null,512)),[[c,e.__(`Checking Mux status`)]]):j(``,!0),n.isProxy?G((L(),A(s,{key:2,class:`size-3! text-green-600`,name:`page-ghost`},null,512)),[[c,e.__(`Local asset is a short placeholder clip for the original video`)]]):j(``,!0)])}var Na=q(Aa,[[`render`,Ma]]),Pa={props:{value:{type:String,default:null}},computed:{policies(){return(this.value??``).split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>e.toLowerCase())}}},Fa={class:`flex items-center gap-1`};function Ia(e,t,n,r,i,a){let o=z(`ui-badge`);return L(),M(`span`,Fa,[(L(!0),M(k,null,R(a.policies,t=>(L(),A(o,{key:t,pill:``,size:`sm`},{default:W(()=>[t===`public`?(L(),M(k,{key:0},[P(H(e.__(`Public`)),1)],64)):t===`signed`?(L(),M(k,{key:1},[P(H(e.__(`Signed`)),1)],64)):j(``,!0)]),_:2},1024))),128))])}var La=q(Pa,[[`render`,Ia]]),Ra={props:{value:{type:String,default:null}},data(){return{states:{ready:{color:`green`,label:__(`Ready`),tooltip:__(`Mux has finished processing this asset`)},preparing:{color:`blue`,label:__(`Preparing`),tooltip:__(`Mux is processing this asset`)},errored:{color:`red`,label:__(`Errored`),tooltip:__(`Mux could not process this asset`)},fallback:{color:`gray`,label:this.value,tooltip:null}}}},computed:{state(){return this.states[this.value]||{...this.states.fallback,label:this.value}},color(){return this.state.color},label(){return this.state.label},tooltip(){return this.state.tooltip}}};function za(e,t,n,r,i,a){let o=z(`ui-badge`),s=B(`tooltip`);return n.value?G((L(),A(o,{key:0,pill:``,color:a.color,size:`sm`},{default:W(()=>[P(H(a.label),1)]),_:1},8,[`color`])),[[s,a.tooltip]]):j(``,!0)}var Ba=q(Ra,[[`render`,za]]),Va={components:{Button:i,ButtonGroup:a,Dropdown:x,DropdownItem:S,DropdownLabel:C,DropdownMenu:w,DropdownSeparator:T},emits:[`completed`],props:{endpoint:{type:String,default:null}},data(){return{running:null}},methods:{async run(e){if(!this.running&&this.endpoint){this.running=e;try{let t=await this.$axios.post(this.endpoint,{command:e});Statamic.$toast.success(t.data.message||__(`Sync command queued. Refresh later to see updates.`)),this.$emit(`completed`,{command:e,response:t.data})}catch(e){console.error(e),Statamic.$toast.error(e.response?.data?.message||__(`Failed to queue sync command`))}finally{this.running=null}}}}},Ha={class:`flex items-baseline gap-2`},Ua={class:`font-medium`},Wa={class:`text-sm text-gray-400 dark:text-gray-500`},Ga={class:`flex items-baseline gap-2`},Ka={class:`font-medium`},qa={class:`text-sm text-gray-400 dark:text-gray-500`},Ja={class:`flex items-baseline gap-2`},Ya={class:`font-medium`},Xa={class:`text-sm text-gray-400 dark:text-gray-500`};function Za(e,t,n,r,i,a){let o=z(`Button`),s=z(`DropdownItem`),c=z(`DropdownSeparator`),l=z(`DropdownMenu`),u=z(`Dropdown`),d=z(`ButtonGroup`);return e.can(`trigger mux sync`)?(L(),A(d,{key:0},{default:W(()=>[F(u,{align:`end`},{trigger:W(()=>[F(o,{icon:`mux::reload`,text:e.__(`Sync`),loading:i.running,disabled:i.running!==null},null,8,[`text`,`loading`,`disabled`])]),default:W(()=>[F(l,null,{default:W(()=>[F(s,{icon:`mux::cloud-transfer`,onClick:t[0]||=e=>a.run(`mirror`)},{default:W(()=>[N(`span`,Ha,[N(`span`,Ua,H(e.__(`Mirror`)),1),N(`span`,Wa,H(e.__(`Upload and prune`)),1)])]),_:1}),F(c),F(s,{icon:`mux::cloud-upload`,onClick:t[1]||=e=>a.run(`upload`)},{default:W(()=>[N(`span`,Ga,[N(`span`,Ka,H(e.__(`Upload`)),1),N(`span`,qa,H(e.__(`Upload new videos to Mux`)),1)])]),_:1}),F(s,{icon:`mux::cloud-spark`,onClick:t[2]||=e=>a.run(`prune`)},{default:W(()=>[N(`span`,Ja,[N(`span`,Ya,H(e.__(`Prune`)),1),N(`span`,Xa,H(e.__(`Delete orphaned Mux videos`)),1)])]),_:1})]),_:1})]),_:1})]),_:1})):j(``,!0)}var X={components:{Badge:r,Button:i,ButtonGroup:a,Dropdown:x,DropdownItem:S,DropdownLabel:C,DropdownMenu:w,DropdownSeparator:T,Head:Y,Header:he,Icon:ve,Listing:we,MatchStatusBadge:ka,MirrorStatusBadge:Na,PlaybackPolicyBadge:La,ProcessingStatusBadge:Ba,SyncButton:q(Va,[[`render`,Za]])},props:{refreshEndpoint:{type:String,default:null},commandEndpoint:{type:String,default:null},actionUrl:{type:String,default:null},dashboardUrl:{type:String,default:null}},methods:{hasMuxActions(e){return!!e?.mux_id},primaryPlaybackId(e){if(e?.processing_status===`errored`)return null;if(e?.playback_id)return e.playback_id;let t=Array.isArray(e?.playback_ids)?e.playback_ids:[];return t.find(e=>e.policy===`public`)?.id||t[0]?.id||null},playerUrl(e){return e?.player_url||null},streamUrl(e){return e?.stream_url||null},missingRemoteAsset(e){return e?.exists_remotely===!1||e?.mirror_status===`missing`},thumbnailUrl(e){return this.missingRemoteAsset(e)?null:e?.thumbnail_copy_url||e?.thumbnail_url||null},embedCode(e){return e?.embed_code||null},async copyToClipboard(e){e&&Statamic.$callbacks.call(`copyToClipboard`,e)},copyAssetId(e){return this.copyToClipboard(e.mux_id)},copyPlaybackId(e){return this.copyToClipboard(this.primaryPlaybackId(e))},copyPlayerUrl(e){return this.copyToClipboard(this.playerUrl(e))},copyEmbedCode(e){return this.copyToClipboard(this.embedCode(e))},copyThumbnailUrl(e){return this.copyToClipboard(this.thumbnailUrl(e))}}},Qa=`modulepreload`,$a=function(e){return`/build/`+e},Z={},Q=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=$a(t,n),t in Z)return;Z[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:Qa,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};function eo(e){let t=e?.emits;return Array.isArray(t)?[`previous`,`next`,`saved`,`closed`,`action-completed`].every(e=>t.includes(e)):!1}var to={mixins:[X,ya],props:{endpoint:{type:String,default:null},commandEndpoint:{type:String,default:null},dashboardUrl:{type:String,default:null},assetEditorChunks:{type:Array,default:()=>[]}},data(){return{assetEditor:null,editingAssetId:null,listingPollingCallbackName:`pollMuxMirroredAssetRows`,columns:[{field:`thumbnail_url`,label:__(`Thumbnail`),sortable:!1},{field:`title`,label:__(`Title`),sortable:!0},{field:`duration`,label:__(`Duration`),sortable:!0},{field:`mirror_status`,label:__(`Status`),sortable:!0},{field:`processing_status`,label:__(`Processing`),sortable:!0},{field:`playback_policy`,label:__(`Policy`),sortable:!0},{field:`created_at`,label:__(`Created`),sortable:!0}]}},mounted(){this.loadAssetEditor()},methods:{async loadAssetEditor(){for(let e of this.assetEditorChunks)try{let t=await Q(()=>import(e),[]),n=Object.values(t).find(eo);if(n){this.assetEditor=jr(n);return}}catch{}console.warn(`Could not resolve asset editor component, falling back to new tab.`)},canEditAsset(e){return e?.can_edit&&e?.id},hasActions(e){return this.canEditAsset(e)||this.hasMuxActions(e)},openAssetEditor(e){if(this.canEditAsset(e)&&(this.editingAssetId=e.id,!this.assetEditor)){e.edit_url&&window.open(e.edit_url,`_blank`,`noopener`);return}},closeAssetEditor(){this.editingAssetId=null},assetEditorSaved(){this.$refs.listing?.refresh(),setTimeout(()=>this.closeAssetEditor(),0)},assetEditorActionCompleted(){this.editingAssetId&&this.startListingRowPolling([this.editingAssetId]),this.$refs.listing?.refresh()},syncCommandCompleted({command:e}){this.startListingRowPollingForVisibleRows(e)},isListingPollingComplete(e,t){return t===`prune`?!0:t===`delete`?!e.mux_id||[`missing`,`not_uploaded`].includes(e.mirror_status):[`mirror`,`upload`,`reupload`].includes(t)?e.mirror_status===`uploaded`&&[`ready`,`errored`].includes(e.processing_status):[`ready`,`errored`].includes(e.processing_status)||e.mirror_status===`missing`}}},no=[`title`,`aria-label`,`onClick`],ro=[`src`],io={key:1,class:`w-16 h-10 rounded overflow-hidden bg-gray-100 dark:bg-gray-800 flex items-center justify-center`},ao=[`src`],oo={class:`text-sm`},so=[`href`,`onClick`],co={key:1},lo={key:2,class:`block text-2xs text-gray-400 dark:text-gray-700`},uo=[`textContent`];function fo(e,t,n,r,i,a){let o=z(`Head`),s=z(`SyncButton`),c=z(`Header`),l=z(`MirrorStatusBadge`),u=z(`ProcessingStatusBadge`),d=z(`PlaybackPolicyBadge`),f=z(`date-time`),p=z(`DropdownItem`),m=z(`DropdownSeparator`),h=z(`Listing`);return L(),M(k,null,[F(o,{title:[e.__(`Mux`),e.__(`Mirrored Assets`)]},null,8,[`title`]),N(`div`,null,[F(c,{icon:`mux::video-playlist`,title:e.__(`Mirrored Assets`)},{default:W(()=>[F(s,{endpoint:n.commandEndpoint,onCompleted:a.syncCommandCompleted},null,8,[`endpoint`,`onCompleted`])]),_:1},8,[`title`]),F(h,{ref:`listing`,url:n.endpoint,columns:i.columns,"action-url":e.actionUrl,"sort-column":`title`,"sort-direction":`asc`,"allow-bulk-actions":!0,"allow-presets":!1,"allow-customizing-columns":!1,onRequestCompleted:e.listingPollingRequestCompleted},{"cell-thumbnail_url":W(({row:n,value:r})=>[n.can_edit&&n.edit_url?(L(),M(`button`,{key:0,type:`button`,class:`w-16 h-10 rounded overflow-hidden bg-gray-100 dark:bg-gray-800 flex items-center justify-center cursor-pointer`,title:e.__(`Edit Asset`),"aria-label":e.__(`Edit Asset`),onClick:e=>a.openAssetEditor(n)},[r?(L(),M(`img`,{key:0,src:r,class:`w-full h-full object-cover`,loading:`lazy`,onError:t[0]||=e=>e.target.style.display=`none`},null,40,ro)):j(``,!0)],8,no)):(L(),M(`div`,io,[r?(L(),M(`img`,{key:0,src:r,class:`w-full h-full object-cover`,loading:`lazy`,onError:t[1]||=e=>e.target.style.display=`none`},null,40,ao)):j(``,!0)]))]),"cell-title":W(({row:e,value:t})=>[N(`div`,oo,[e.can_edit&&e.edit_url?(L(),M(`a`,{key:0,href:e.edit_url,onClick:K(t=>a.openAssetEditor(e),[`prevent`])},H(t),9,so)):(L(),M(`span`,co,H(t),1)),e.path&&e.path!==t?(L(),M(`span`,lo,H(e.path),1)):j(``,!0)])]),"cell-mirror_status":W(({row:e,value:t})=>[F(l,{value:t,"is-proxy":e.is_proxy,"is-updating":e._isPolling},null,8,[`value`,`is-proxy`,`is-updating`])]),"cell-processing_status":W(({value:e})=>[F(u,{value:e},null,8,[`value`])]),"cell-duration":W(({row:e})=>[e.duration_formatted?(L(),M(`span`,{key:0,class:`text-sm tabular-nums`,textContent:H(e.duration_formatted)},null,8,uo)):j(``,!0)]),"cell-playback_policy":W(({value:e})=>[F(d,{value:e},null,8,[`value`])]),"cell-created_at":W(({value:e})=>[e?(L(),A(f,{key:0,of:e,"date-only":``},null,8,[`of`])):j(``,!0)]),"prepended-row-actions":W(({row:t})=>[a.canEditAsset(t)?(L(),M(k,{key:0},[F(p,{icon:`edit`,text:e.__(`Edit asset`),onClick:e=>a.openAssetEditor(t)},null,8,[`text`,`onClick`]),t.mux_id?(L(),A(m,{key:0})):j(``,!0)],64)):j(``,!0),!e.missingRemoteAsset(t)&&t.dashboard_url||e.playerUrl(t)?(L(),M(k,{key:1},[!e.missingRemoteAsset(t)&&t.dashboard_url?(L(),A(p,{key:0,icon:`external-link`,text:e.__(`Open in Mux dashboard`),href:t.dashboard_url,target:`_blank`},null,8,[`text`,`href`])):j(``,!0),e.playerUrl(t)?(L(),A(p,{key:1,icon:`external-link`,text:e.__(`Open playback page`),href:e.playerUrl(t),target:`_blank`},null,8,[`text`,`href`])):j(``,!0),t.mux_id?(L(),A(m,{key:2})):j(``,!0)],64)):j(``,!0),!e.missingRemoteAsset(t)&&t.mux_id?(L(),A(p,{key:2,icon:`taxonomies`,text:e.__(`Copy asset ID`),onClick:n=>e.copyAssetId(t)},null,8,[`text`,`onClick`])):j(``,!0),e.primaryPlaybackId(t)?(L(),A(p,{key:3,icon:`taxonomies`,text:e.__(`Copy playback ID`),onClick:n=>e.copyPlaybackId(t)},null,8,[`text`,`onClick`])):j(``,!0),e.playerUrl(t)?(L(),A(p,{key:4,icon:`mux::video-square`,text:e.__(`Copy player URL`),onClick:n=>e.copyPlayerUrl(t)},null,8,[`text`,`onClick`])):j(``,!0),e.embedCode(t)?(L(),A(p,{key:5,icon:`programming-code-block`,text:e.__(`Copy embed code`),onClick:n=>e.copyEmbedCode(t)},null,8,[`text`,`onClick`])):j(``,!0),e.thumbnailUrl(t)?(L(),A(p,{key:6,icon:`mux::thumbnail`,text:e.__(`Copy thumbnail URL`),onClick:n=>e.copyThumbnailUrl(t)},null,8,[`text`,`onClick`])):j(``,!0)]),_:1},8,[`url`,`columns`,`action-url`,`onRequestCompleted`]),i.assetEditor&&i.editingAssetId?(L(),A(V(i.assetEditor),{key:0,id:i.editingAssetId,showToolbar:!1,"allow-deleting":!1,onClosed:a.closeAssetEditor,onSaved:a.assetEditorSaved,onActionCompleted:a.assetEditorActionCompleted},null,40,[`id`,`onClosed`,`onSaved`,`onActionCompleted`])):j(``,!0)])],64)}var po=q(to,[[`render`,fo]]),mo={mixins:[X],props:{endpoint:{type:String,default:null},refreshEndpoint:{type:String,default:null},commandEndpoint:{type:String,default:null},dashboardUrl:{type:String,default:null}},data(){return{refreshing:!1,columns:[{field:`thumbnail_url`,label:__(`Thumbnail`),sortable:!1},{field:`title`,label:__(`Title`),sortable:!0},{field:`duration`,label:__(`Duration`),sortable:!0},{field:`match_status`,label:__(`Status`),sortable:!0},{field:`processing_status`,label:__(`Processing`),sortable:!0},{field:`playback_policy`,label:__(`Policy`),sortable:!0},{field:`created_at`,label:__(`Created`),sortable:!0}]}},methods:{async refresh(){if(this.refreshEndpoint){this.refreshing=!0;try{await this.$axios.post(this.refreshEndpoint),this.$refs.listing?.refresh(),Statamic.$toast.success(__(`Mux Library refreshed`))}catch(e){console.error(e),Statamic.$toast.error(__(`Failed to refresh Mux Library`))}finally{this.refreshing=!1}}}}},ho={class:`w-16 h-10 rounded overflow-hidden bg-gray-100 dark:bg-gray-800 flex items-center justify-center`},go=[`src`],_o={class:`text-sm`},$=[`href`],vo={key:1},yo={class:`block text-2xs text-gray-400 dark:text-gray-600 font-mono`},bo=[`textContent`];function xo(e,t,n,r,i,a){let o=z(`Head`),s=z(`Button`),c=z(`DropdownItem`),l=z(`DropdownMenu`),u=z(`Dropdown`),d=z(`SyncButton`),f=z(`Header`),p=z(`ui-icon`),m=z(`MatchStatusBadge`),h=z(`ProcessingStatusBadge`),g=z(`PlaybackPolicyBadge`),_=z(`date-time`),v=z(`DropdownSeparator`),y=z(`Listing`);return L(),M(k,null,[F(o,{title:[e.__(`Mux`),e.__(`Mux Library`)]},null,8,[`title`]),N(`div`,null,[F(f,{icon:`mux::cloud-video`,title:e.__(`Mux Library`)},{default:W(()=>[e.can(`trigger mux sync`)?(L(),A(u,{key:0},{trigger:W(()=>[F(s,{icon:`dots`,variant:`ghost`,size:`sm`,"aria-label":e.__(`Open dropdown menu`)},null,8,[`aria-label`])]),default:W(()=>[F(l,null,{default:W(()=>[F(c,{icon:`mux::history-delete`,onClick:a.refresh},{default:W(()=>[P(H(e.__(`Clear cache and reload`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})):j(``,!0),F(d,{endpoint:n.commandEndpoint},null,8,[`endpoint`]),n.dashboardUrl?(L(),A(s,{key:1,href:n.dashboardUrl,target:`_blank`,rel:`noopener noreferrer`,"icon-append":`external-link`,text:e.__(`Mux Dashboard`)},null,8,[`href`,`text`])):j(``,!0)]),_:1},8,[`title`]),F(y,{ref:`listing`,url:n.endpoint,columns:i.columns,"action-url":e.actionUrl,"sort-column":`created_at`,"sort-direction":`desc`,"allow-bulk-actions":!0,"allow-presets":!1,"allow-customizing-columns":!1},{"cell-thumbnail_url":W(({row:e,value:n})=>[N(`div`,ho,[n?(L(),M(`img`,{key:0,src:n,class:`w-full h-full object-cover`,loading:`lazy`,onError:t[0]||=e=>e.target.style.display=`none`},null,40,go)):j(``,!0)])]),"cell-title":W(({row:e,value:t})=>[N(`div`,_o,[e.dashboard_url?(L(),M(`a`,{key:0,href:e.dashboard_url,target:`_blank`,class:`group inline-flex items-center gap-2`},[N(`span`,null,H(t),1),F(p,{name:`external-link`,class:`size-3! text-gray-400 dark:text-gray-600 opacity-0 transition-opacity group-hover:opacity-100 group-focus:opacity-100 group-focus-visible:opacity-100`,"aria-hidden":`true`})],8,$)):(L(),M(`span`,vo,H(t),1)),N(`span`,yo,H(e.mux_id),1)])]),"cell-match_status":W(({value:e})=>[F(m,{value:e},null,8,[`value`])]),"cell-processing_status":W(({value:e})=>[F(h,{value:e},null,8,[`value`])]),"cell-duration":W(({row:e})=>[e.duration_formatted?(L(),M(`span`,{key:0,class:`text-sm tabular-nums`,textContent:H(e.duration_formatted)},null,8,bo)):j(``,!0)]),"cell-playback_policy":W(({value:e})=>[F(g,{value:e},null,8,[`value`])]),"cell-created_at":W(({value:e})=>[e?(L(),A(_,{key:0,of:e,"date-only":``},null,8,[`of`])):j(``,!0)]),"prepended-row-actions":W(({row:t})=>[t.dashboard_url?(L(),A(c,{key:0,icon:`external-link`,text:e.__(`Open in Mux dashboard`),href:t.dashboard_url,target:`_blank`},null,8,[`text`,`href`])):j(``,!0),e.playerUrl(t)?(L(),A(c,{key:1,icon:`external-link`,text:e.__(`Open playback page`),href:e.playerUrl(t),target:`_blank`},null,8,[`text`,`href`])):j(``,!0),t.dashboard_url||e.playerUrl(t)?(L(),A(v,{key:2})):j(``,!0),F(c,{icon:`taxonomies`,text:e.__(`Copy asset ID`),onClick:n=>e.copyAssetId(t)},null,8,[`text`,`onClick`]),e.primaryPlaybackId(t)?(L(),A(c,{key:3,icon:`taxonomies`,text:e.__(`Copy playback ID`),onClick:n=>e.copyPlaybackId(t)},null,8,[`text`,`onClick`])):j(``,!0),e.playerUrl(t)?(L(),A(c,{key:4,icon:`mux::video-square`,text:e.__(`Copy player URL`),onClick:n=>e.copyPlayerUrl(t)},null,8,[`text`,`onClick`])):j(``,!0),e.embedCode(t)?(L(),A(c,{key:5,icon:`programming-code-block`,text:e.__(`Copy embed code`),onClick:n=>e.copyEmbedCode(t)},null,8,[`text`,`onClick`])):j(``,!0),e.thumbnailUrl(t)?(L(),A(c,{key:6,icon:`mux::thumbnail`,text:e.__(`Copy thumbnail URL`),onClick:n=>e.copyThumbnailUrl(t)},null,8,[`text`,`onClick`])):j(``,!0)]),_:1},8,[`url`,`columns`,`action-url`])])],64)}var So=q(mo,[[`render`,xo]]),Co={class:`py-8 mt-8 text-center starting-style-transition`},wo={class:`text-[25px] font-medium antialiased flex justify-center items-center gap-2 sm:gap-3`};Statamic.$components.register(`mux_mirror-fieldtype`,ma),Statamic.$components.register(`mux_mirror-fieldtype-index`,va),Statamic.$inertia.register(`MuxAssetsPage`,po),Statamic.$inertia.register(`MuxLibraryPage`,So),Statamic.$inertia.register(`EmptyPage`,{__name:`Empty`,setup(e){return wa(),(e,t)=>{let n=z(`ui-icon`);return L(),M(k,null,[F(U(Y),{title:e.__(`Mux`)},null,8,[`title`]),N(`header`,Co,[N(`h1`,wo,[F(n,{name:`mux::video-player`,class:`size-5 text-gray-500`}),P(` `+H(e.__(`Mux Videos`)),1)])]),F(U(D),{heading:e.__(`Mux is currently not configured for this site.`)},{default:W(()=>[F(U(E),{href:`https://statamic-mux.daun.ltd/connecting-mux`,icon:`mux::connect`,heading:e.__(`Connect to Mux`),description:e.__(`Register a Mux account and connect credentials.`)},null,8,[`heading`,`description`]),F(U(E),{href:`https://statamic-mux.daun.ltd/upload`,icon:`sync`,heading:e.__(`Set Up Automatic Sync`),description:e.__(`Configure the addon for mirroring local videos.`)},null,8,[`heading`,`description`]),F(U(E),{href:`https://statamic-mux.daun.ltd/display`,icon:`mux::video-live`,heading:e.__(`Begin Streaming Videos`),description:e.__(`Use web components to render a video player.`)},null,8,[`heading`,`description`])]),_:1},8,[`heading`]),F(U(b),{topic:e.__(`Statamic Mux`),url:`https://statamic-mux.daun.ltd`},null,8,[`topic`])],64)}}}),Vt(`mux`,Object.assign({"../svg/icons/cloud-spark.svg":()=>Q(()=>import(`./cloud-spark-D84x1F1-.js`).then(e=>e.default),[]),"../svg/icons/cloud-transfer.svg":()=>Q(()=>import(`./cloud-transfer-DdaveTKz.js`).then(e=>e.default),[]),"../svg/icons/cloud-upload.svg":()=>Q(()=>import(`./cloud-upload-Cgpa1gP_.js`).then(e=>e.default),[]),"../svg/icons/cloud-video.svg":()=>Q(()=>import(`./cloud-video-oTau7QHF.js`).then(e=>e.default),[]),"../svg/icons/connect.svg":()=>Q(()=>import(`./connect-DJveyQWF.js`).then(e=>e.default),[]),"../svg/icons/fingerprint.svg":()=>Q(()=>import(`./fingerprint-CbbpOU1i.js`).then(e=>e.default),[]),"../svg/icons/history-delete.svg":()=>Q(()=>import(`./history-delete-CvA9sPkY.js`).then(e=>e.default),[]),"../svg/icons/padlock.svg":()=>Q(()=>import(`./padlock-C4OTPUDz.js`).then(e=>e.default),[]),"../svg/icons/play-button.svg":()=>Q(()=>import(`./play-button-DoJdcppZ.js`).then(e=>e.default),[]),"../svg/icons/reload-vertical.svg":()=>Q(()=>import(`./reload-vertical-DEoBraid.js`).then(e=>e.default),[]),"../svg/icons/reload.svg":()=>Q(()=>import(`./reload-Bq8qVQgE.js`).then(e=>e.default),[]),"../svg/icons/streaming.svg":()=>Q(()=>import(`./streaming-BqnmyHbL.js`).then(e=>e.default),[]),"../svg/icons/thumbnail.svg":()=>Q(()=>import(`./thumbnail-iB5XWDPH.js`).then(e=>e.default),[]),"../svg/icons/video-card.svg":()=>Q(()=>import(`./video-card-CvKqYb3G.js`).then(e=>e.default),[]),"../svg/icons/video-folder.svg":()=>Q(()=>import(`./video-folder-3J_KQWaA.js`).then(e=>e.default),[]),"../svg/icons/video-live.svg":()=>Q(()=>import(`./video-live-xr0UBZJr.js`).then(e=>e.default),[]),"../svg/icons/video-player.svg":()=>Q(()=>import(`./video-player-RlMZyWLT.js`).then(e=>e.default),[]),"../svg/icons/video-playlist.svg":()=>Q(()=>import(`./video-playlist-CGCOuEzP.js`).then(e=>e.default),[]),"../svg/icons/video-slow.svg":()=>Q(()=>import(`./video-slow-C5yCaeHJ.js`).then(e=>e.default),[]),"../svg/icons/video-square.svg":()=>Q(()=>import(`./video-square-DGNhO3Gk.js`).then(e=>e.default),[]),"../svg/icons/videos-square.svg":()=>Q(()=>import(`./videos-square-CM4ivbqI.js`).then(e=>e.default),[]),"../svg/icons/videos.svg":()=>Q(()=>import(`./videos-DiOqyfH2.js`).then(e=>e.default),[])})); \ No newline at end of file diff --git a/resources/dist/build/assets/addon-CVorINHh.css b/resources/dist/build/assets/addon-CVorINHh.css new file mode 100644 index 0000000..677b5b7 --- /dev/null +++ b/resources/dist/build/assets/addon-CVorINHh.css @@ -0,0 +1,2 @@ +/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */ +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer addon-theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-green-600:oklch(62.7% .194 149.214);--color-gray-300:var(--theme-color-gray-300);--color-gray-700:var(--theme-color-gray-700);--spacing:.25rem;--text-xs:.825rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--radius-lg:.5rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--text-2xs:.7rem}}@layer addon-utilities{.container{width:100%}@media (width>=15rem){.container{max-width:15rem}}@media (width>=20rem){.container{max-width:20rem}}@media (width>=30rem){.container{max-width:30rem}}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}@media (width>=120rem){.container{max-width:120rem}}.mt-8{margin-top:calc(var(--spacing) * 8)}.block{display:block}.flex{display:flex}.flex\!{display:flex!important}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.size-3\!{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.size-3\.5\!{width:calc(var(--spacing) * 3.5)!important;height:calc(var(--spacing) * 3.5)!important}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.h-10{height:calc(var(--spacing) * 10)}.h-full{height:100%}.w-16{width:calc(var(--spacing) * 16)}.w-full{width:100%}.max-w-full{max-width:100%}.min-w-0{min-width:0}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.grid-cols-\[minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr)}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.justify-center{justify-content:center}.justify-items-start{justify-items:start}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-gray-150{border-color:var(--theme-color-gray-150)}.bg-gray-100{background-color:var(--theme-color-gray-100)}.object-cover{object-fit:cover}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.px-1{padding-inline:var(--spacing)}.px-2{padding-inline:calc(var(--spacing) * 2)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-8{padding-block:calc(var(--spacing) * 8)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-2xs{font-size:var(--text-2xs)}.text-\[0\.9em\]{font-size:.9em}.text-\[25px\]{font-size:25px}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-gray-400{color:var(--theme-color-gray-400)}.text-gray-500{color:var(--theme-color-gray-500)}.text-gray-700{color:var(--theme-color-gray-700)}.text-gray-800\!{color:var(--theme-color-gray-800)!important}.text-green-600{color:var(--color-green-600)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.shadow-none\!{--tw-shadow:0 0 #0000!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.group-focus-within\:flex\!:is(:where(.group):focus-within *){display:flex!important}@media (hover:hover){.group-hover\:flex\!:is(:where(.group):hover *){display:flex!important}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-focus\:opacity-100:is(:where(.group):focus *),.group-focus-visible\:opacity-100:is(:where(.group):focus-visible *){opacity:1}@media (hover:hover){.hover\:bg-gray-100:hover{background-color:var(--theme-color-gray-100)}}@media (width>=40rem){.sm\:gap-3{gap:calc(var(--spacing) * 3)}}.dark\:border-gray-700:where(.dark,.dark *){border-color:var(--theme-color-gray-700)}.dark\:bg-gray-800:where(.dark,.dark *){background-color:var(--theme-color-gray-800)}.dark\:text-gray-200\!:where(.dark,.dark *){color:var(--theme-color-gray-200)!important}.dark\:text-gray-300:where(.dark,.dark *){color:var(--theme-color-gray-300)}.dark\:text-gray-500:where(.dark,.dark *){color:var(--theme-color-gray-500)}.dark\:text-gray-600:where(.dark,.dark *){color:var(--theme-color-gray-600)}.dark\:text-gray-700:where(.dark,.dark *){color:var(--theme-color-gray-700)}@media (hover:hover){.dark\:hover\:bg-gray-800:where(.dark,.dark *):hover{background-color:var(--theme-color-gray-800)}}}:root{--animation-timing-function-fast-out-slow-in:cubic-bezier(.4,0,.2,1);--color-button-active:hsl(from var(--color-gray-300) h s l / .45)}.dark{--color-button-active:hsl(from var(--color-gray-700) h s l / .45)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes spin{to{transform:rotate(360deg)}} diff --git a/resources/dist/build/assets/addon-D2cJ2QL5.js b/resources/dist/build/assets/addon-D2cJ2QL5.js deleted file mode 100644 index 8dd64aa..0000000 --- a/resources/dist/build/assets/addon-D2cJ2QL5.js +++ /dev/null @@ -1 +0,0 @@ -var{Alert:e,AuthCard:t,Avatar:n,Badge:r,Button:i,ButtonGroup:a,Calendar:o,Card:s,CardList:c,CardListItem:l,CardPanel:u,CharacterCounter:d,Checkbox:f,CheckboxGroup:p,CodeEditor:m,Combobox:h,CommandPaletteItem:g,ConfirmationModal:_,Context:v,ContextFooter:y,ContextHeader:ee,ContextItem:te,ContextLabel:ne,ContextMenu:re,ContextSeparator:ie,CreateForm:ae,DatePicker:oe,DateRangePicker:se,Description:ce,DocsCallout:b,DragHandle:le,Dropdown:x,DropdownItem:S,DropdownLabel:C,DropdownMenu:w,DropdownSeparator:T,DropdownFooter:ue,DropdownHeader:de,Editable:fe,ErrorMessage:pe,EmptyStateItem:E,EmptyStateMenu:me,Field:he,Header:ge,Heading:_e,HoverCard:ve,Icon:ye,Input:be,InputGroup:xe,InputGroupAppend:Se,InputGroupPrepend:Ce,Label:we,Listing:Te,ListingCustomizeColumns:Ee,ListingFilters:De,ListingHeaderCell:Oe,ListingPagination:ke,ListingPresets:Ae,ListingPresetTrigger:je,ListingRowActions:Me,ListingSearch:Ne,ListingTable:Pe,ListingTableBody:Fe,ListingTableHead:Ie,ListingToggleAll:Le,LivePreview:Re,LivePreviewPopout:ze,MiddleEllipsis:Be,Modal:Ve,ModalClose:He,ModalTitle:Ue,Pagination:We,Panel:Ge,PanelFooter:Ke,PanelHeader:qe,Popover:Je,PublishComponents:Ye,PublishContainer:Xe,publishContextKey:Ze,injectPublishContext:Qe,PublishField:$e,PublishFields:et,PublishFieldsProvider:tt,PublishForm:nt,PublishLocalizations:rt,PublishSections:it,PublishTabs:at,Radio:ot,RadioGroup:st,Select:ct,Separator:lt,Slider:ut,Skeleton:dt,SplitterGroup:ft,SplitterPanel:pt,SplitterResizeHandle:mt,StatusIndicator:ht,Subheading:gt,Switch:_t,TabContent:vt,Stack:yt,StackClose:bt,StackHeader:xt,StackFooter:St,StackContent:Ct,Table:wt,TableCell:Tt,TableColumn:Et,TableColumns:Dt,TableRow:Ot,TableRows:kt,TabList:At,TabProvider:jt,Tabs:Mt,TabTrigger:Nt,Text:Pt,Textarea:Ft,TimePicker:It,TimezoneHoverCard:Lt,Timezones:Rt,ToggleGroup:zt,ToggleItem:Bt,Widget:Vt,registerIconSet:Ht,registerIconSetFromStrings:Ut}=__STATAMIC__.ui,{Fieldtype:Wt,IndexFieldtype:Gt,FieldtypeMixin:D,HasActionsMixin:Kt,HasInputOptionsMixin:qt,HasPreferencesMixin:Jt,IndexFieldtypeMixin:O,InlineEditForm:Yt,DateFormatter:Xt,NumberFormatter:Zt,ItemActions:Qt,RelatedItem:$t,RestoreRevision:en,RevisionHistory:tn,RevisionPreview:nn,SaveButtonOptions:rn,SortableList:an,requireElevatedSession:on,requireElevatedSessionIf:sn,clone:cn,debounce:ln,deepClone:un,resetValuesFromResponse:dn}=__STATAMIC__.core,{BaseTransition:fn,BaseTransitionPropsValidators:pn,Comment:mn,DeprecationTypes:hn,EffectScope:gn,ErrorCodes:_n,ErrorTypeStrings:vn,Fragment:k,KeepAlive:yn,ReactiveEffect:bn,Static:xn,Suspense:Sn,Teleport:Cn,Text:wn,TrackOpTypes:Tn,Transition:En,TransitionGroup:Dn,TriggerOpTypes:On,VueElement:kn,__esModule:An,assertNumber:jn,callWithAsyncErrorHandling:Mn,callWithErrorHandling:Nn,camelize:Pn,capitalize:Fn,cloneVNode:In,compatUtils:Ln,compile:Rn,computed:zn,createApp:Bn,createBlock:A,createCommentVNode:j,createElementBlock:M,createElementVNode:N,createHydrationRenderer:Vn,createPropsRestProxy:Hn,createRenderer:Un,createSSRApp:Wn,createSlots:Gn,createStaticVNode:Kn,createTextVNode:P,createVNode:F,customRef:qn,defineAsyncComponent:Jn,defineComponent:Yn,defineCustomElement:Xn,defineEmits:Zn,defineExpose:Qn,defineModel:$n,defineOptions:er,defineProps:tr,defineSSRCustomElement:nr,defineSlots:rr,devtools:ir,effect:ar,effectScope:or,getCurrentInstance:sr,getCurrentScope:cr,getCurrentWatcher:lr,getTransitionRawChildren:ur,guardReactiveProps:dr,h:fr,handleError:pr,hasInjectionContext:mr,hydrate:hr,hydrateOnIdle:gr,hydrateOnInteraction:_r,hydrateOnMediaQuery:vr,hydrateOnVisible:yr,initCustomFormatter:br,initDirectivesForSSR:xr,inject:Sr,isMemoSame:Cr,isProxy:wr,isReactive:Tr,isReadonly:Er,isRef:Dr,isRuntimeOnly:Or,isShallow:kr,isVNode:Ar,markRaw:jr,mergeDefaults:Mr,mergeModels:Nr,mergeProps:Pr,nextTick:Fr,nodeOps:Ir,normalizeClass:Lr,normalizeProps:Rr,normalizeStyle:zr,onActivated:Br,onBeforeMount:Vr,onBeforeUnmount:Hr,onBeforeUpdate:Ur,onDeactivated:Wr,onErrorCaptured:Gr,onMounted:Kr,onRenderTracked:qr,onRenderTriggered:Jr,onScopeDispose:Yr,onServerPrefetch:Xr,onUnmounted:Zr,onUpdated:Qr,onWatcherCleanup:$r,openBlock:I,patchProp:ei,popScopeId:ti,provide:ni,proxyRefs:ri,pushScopeId:ii,queuePostFlushCb:ai,reactive:oi,readonly:si,ref:ci,registerRuntimeCompiler:li,render:ui,renderList:L,renderSlot:di,resolveComponent:R,resolveDirective:z,resolveDynamicComponent:B,resolveFilter:fi,resolveTransitionHooks:pi,setBlockTracking:mi,setDevtoolsHook:hi,setTransitionHooks:gi,shallowReactive:_i,shallowReadonly:vi,shallowRef:yi,ssrContextKey:bi,ssrUtils:xi,stop:Si,toDisplayString:V,toHandlerKey:Ci,toHandlers:wi,toRaw:Ti,toRef:Ei,toRefs:Di,toValue:Oi,transformVNodeArgs:ki,triggerRef:Ai,unref:H,useAttrs:ji,useCssModule:Mi,useCssVars:Ni,useHost:Pi,useId:Fi,useModel:Ii,useSSRContext:Li,useShadowRoot:Ri,useSlots:zi,useTemplateRef:Bi,useTransitionState:Vi,vModelCheckbox:Hi,vModelDynamic:Ui,vModelRadio:Wi,vModelSelect:Gi,vModelText:Ki,vShow:qi,version:Ji,warn:Yi,watch:Xi,watchEffect:Zi,watchPostEffect:Qi,watchSyncEffect:$i,withAsyncContext:ea,withCtx:U,withDefaults:ta,withDirectives:W,withKeys:na,withMemo:ra,withModifiers:G,withScopeId:ia}=window.Vue,K=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},q={mixins:[D],data(){return{detailsExpanded:!1}},computed:{showReuploadToggle(){return this.allowReuploads&&!this.isProxy},allowReuploads(){return this.config?.allow_reupload},showDetails(){return this.config?.show_details},isAsset(){return this.meta?.is_asset||!1},isVideo(){return this.meta?.is_video||!1},isUploaded(){return!!this.value.id},isProxy(){return this.meta?.is_proxy||!1},playbackIds(){return Object.entries(this.value.playback_ids||{})}},methods:{t(e,t={}){return __(`statamic-mux::messages.fieldtype.${e}`,t)}}},J={class:`grid grid-cols-[minmax(0,1fr)] gap-3 justify-items-start`},aa={class:`flex flex-wrap gap-2`},oa={class:`w-full text-xs text-gray-600 dark:text-gray-300`},sa={class:`divide-y divide-gray-800/10 dark:divide-white/10 [&_td]:px-1.5! [&_td]:py-2! [&_td:first-child]:pl-3! [&_td:last-child]:pr-3! [&_td]:text-left [&_svg]:opacity-60`},ca={key:`id`},la={key:0},ua={key:1};function da(e,t,n,r,i,a){let o=R(`ui-badge`),s=R(`ui-checkbox`),c=R(`ui-icon`),l=R(`ui-card`),u=z(`tooltip`);return I(),M(`div`,J,[!a.isAsset||!a.isVideo?W((I(),A(o,{key:0,pill:``,icon:`focus`,color:`white`},{default:U(()=>[P(V(a.t(`unmirrored`)),1)]),_:1})),[[u,a.t(a.isVideo?`unmirrored_no_asset`:`unmirrored_no_video`)]]):a.isUploaded?(I(),M(k,{key:2},[N(`div`,aa,[W((I(),A(o,{pill:``,icon:`checkmark`,color:`green`},{default:U(()=>[P(V(a.t(`uploaded`)),1)]),_:1})),[[u,a.t(`uploaded_tooltip`)]]),a.isProxy?W((I(),A(o,{key:0,pill:``,icon:`page-ghost`},{default:U(()=>[P(V(a.t(`proxy`)),1)]),_:1})),[[u,a.t(`proxy_tooltip`)]]):j(``,!0),a.showDetails?W((I(),A(o,{key:1,pill:``,icon:`info-square`,as:`button`,onClick:t[1]||=e=>i.detailsExpanded=!i.detailsExpanded},{default:U(()=>[P(V(a.t(`details`)),1)]),_:1})),[[u,a.t(`details_tooltip`)]]):j(``,!0)]),a.showDetails&&i.detailsExpanded?(I(),A(l,{key:0,inset:``,variant:`flat`,class:`w-full overflow-auto bg-gray-50! dark:bg-gray-800!`},{default:U(()=>[N(`table`,oa,[N(`tbody`,sa,[N(`tr`,ca,[N(`td`,null,[W(F(c,{name:`mux::fingerprint`},null,512),[[u,`Mux\xA0ID`]])]),N(`td`,null,V(e.value.id),1)]),(I(!0),M(k,null,L(a.playbackIds,([e,t])=>(I(),M(`tr`,{key:t},[e===`signed`?(I(),M(`td`,la,[W(F(c,{name:`mux::padlock`},null,512),[[u,`Signed Playback ID`]])])):(I(),M(`td`,ua,[W(F(c,{name:`mux::play-button`},null,512),[[u,`Public Playback ID`]])])),N(`td`,null,V(t),1)]))),128))])])]),_:1})):j(``,!0),a.showReuploadToggle?(I(),A(s,{key:1,modelValue:e.value.reupload,"onUpdate:modelValue":t[2]||=t=>e.value.reupload=t,name:`reupload`,label:a.t(`reupload_on_save`)},null,8,[`modelValue`,`label`])):j(``,!0)],64)):(I(),M(k,{key:1},[F(o,{pill:``,icon:`x-square`,color:`amber`},{default:U(()=>[P(V(a.t(`not_uploaded`)),1)]),_:1}),a.showReuploadToggle?(I(),A(s,{key:0,modelValue:e.value.reupload,"onUpdate:modelValue":t[0]||=t=>e.value.reupload=t,name:`reupload`,label:a.t(`upload_on_save`)},null,8,[`modelValue`,`label`])):j(``,!0)],64))])}var fa=K(q,[[`render`,da]]),pa={mixins:[O],computed:{extension(){return this.values.extension.toLowerCase()},isAsset(){return this.values.basename&&this.values.extension},isVideo(){return[`h264`,`mp4`,`m4v`,`ogv`,`webm`,`mov`].includes(this.extension)},isUploaded(){return this.value?.id||!1},isProxy(){return this.value?.is_proxy||!1}},methods:{t(e,t={}){return __(`statamic-mux::messages.fieldtype.${e}`,t)}}},ma={key:0,class:`flex flex-wrap items-center gap-2`};function ha(e,t,n,r,i,a){let o=R(`ui-icon`),s=z(`tooltip`);return a.isAsset&&a.isVideo?(I(),M(`div`,ma,[a.isUploaded?j(``,!0):W((I(),A(o,{key:0,name:`x-square`,class:`text-gray-400 dark:text-gray-600`},null,512)),[[s,a.t(`not_uploaded`)]]),a.isUploaded?W((I(),A(o,{key:1,name:`checkmark`,class:`text-green-600`},null,512)),[[s,a.t(`uploaded`)]]):j(``,!0),a.isUploaded&&a.isProxy?W((I(),A(o,{key:2,name:`page-ghost`,class:`size-3.5! text-green-600`},null,512)),[[s,a.t(`proxy`)]]):j(``,!0)])):j(``,!0)}var ga=K(pa,[[`render`,ha]]),_a={data(){return{listingPollingCallbackName:null,listingPollingVisibleRows:{},listingPollingRows:{},listingPollingTimer:null,listingPollingBusy:!1}},mounted(){this.listingPollingCallbackName&&Statamic.$callbacks.add(this.listingPollingCallbackName,this.startListingRowPolling)},beforeUnmount(){this.stopListingRowPolling(),this.listingPollingCallbackName&&Statamic.$callbacks.add(this.listingPollingCallbackName,()=>{})},methods:{listingPollingRequestCompleted({items:e}){this.listingPollingVisibleRows=e.reduce((e,t)=>(t.id&&(e[t.id]=t),t.path&&(e[t.path]=t),e),{}),e.forEach(e=>this.setListingPollingRowUpdating(e,!!this.listingPollingKeyForRow(e)))},startListingRowPolling(e,t=`sync`){let n=[...new Set((Array.isArray(e)?e:[e]).filter(Boolean))];n.forEach(e=>{this.listingPollingRows[e]=this.listingPollingRows[e]||{mode:t,attempts:0},this.setListingPollingRowUpdating(e,!0)}),n.length&&(this.pollListingRows(),this.listingPollingTimer||=setInterval(()=>this.pollListingRows(),3e3))},startListingRowPollingForVisibleRows(e=`sync`){this.startListingRowPolling(this.listingPollingVisibleRowKeys(),e)},listingPollingVisibleRowKeys(){let e=new Set;return Object.values(this.listingPollingVisibleRows).forEach(t=>{let n=t?.id||t?.path;n&&e.add(n)}),[...e]},stopListingRowPolling(){this.listingPollingTimer&&=(clearInterval(this.listingPollingTimer),null),Object.values(this.listingPollingVisibleRows).forEach(e=>this.setListingPollingRowUpdating(e,!1)),this.listingPollingRows={},this.listingPollingBusy=!1},async pollListingRows(){if(this.listingPollingBusy)return;let e=Object.keys(this.listingPollingRows);if(!e.length){this.stopListingRowPolling();return}this.listingPollingBusy=!0,e.forEach(e=>this.listingPollingRows[e].attempts++);try{((await this.$axios.get(this.listingPollingEndpoint(),{params:this.listingPollingParams(e)})).data?.data||[]).forEach(e=>this.patchListingPolledRow(e)),this.clearExpiredListingPollingRows()}catch(e){console.warn(`Failed to poll listing rows.`,e),this.clearExpiredListingPollingRows()}finally{this.listingPollingBusy=!1,Object.keys(this.listingPollingRows).length||this.stopListingRowPolling()}},listingPollingEndpoint(){return this.endpoint},listingPollingParams(e){let t=new URLSearchParams;return e.forEach(e=>t.append(`rows[]`,e)),t.set(`page`,1),t.set(`perPage`,Math.max(e.length,1)),t},patchListingPolledRow(e){let t=this.listingPollingKeyForRow(e),n=this.listingPollingVisibleRows[e.id]||this.listingPollingVisibleRows[e.path];n&&Object.assign(n,e),t&&this.isListingPollingComplete(e,this.listingPollingRows[t]?.mode)?(delete this.listingPollingRows[t],this.setListingPollingRowUpdating(n||e,!1)):this.setListingPollingRowUpdating(n||e,!0)},setListingPollingRowUpdating(e,t){let n=typeof e==`string`?this.listingPollingVisibleRows[e]:e;n&&(n._isPolling=t)},listingPollingKeyForRow(e){return Object.keys(this.listingPollingRows).find(t=>t===e.id||t===e.path)},isListingPollingComplete(e){return[`ready`,`errored`].includes(e.processing_status)||e.mirror_status===`missing`},clearExpiredListingPollingRows(){Object.entries(this.listingPollingRows).forEach(([e,t])=>{t.attempts>=120&&(delete this.listingPollingRows[e],this.setListingPollingRowUpdating(e,!1))})}}},{Form:va,Head:Y,Link:ya,router:ba,toggleArchitecturalBackground:xa,useArchitecturalBackground:Sa,useForm:Ca,usePoll:wa}=__STATAMIC__.inertia,Ta={props:{value:{type:String,default:null}},data(){return{states:{mirrored:{color:`green`,label:__(`Mirrored`),tooltip:__(`Linked to a local asset`)},orphaned:{color:`amber`,label:__(`Orphaned`),tooltip:__(`Not linked to a local asset`)},duplicated:{color:`red`,label:__(`Duplicated`),tooltip:__(`Referenced by multiple local assets`)},proxy:{color:`blue`,label:__(`Placeholder`),tooltip:__(`Temporary placeholder clip for an original asset`)},fallback:{color:`gray`,label:this.value,tooltip:null}}}},computed:{state(){return this.states[this.value]||{...this.states.fallback,label:this.value}},color(){return this.state.color},label(){return this.state.label},tooltip(){return this.state.tooltip}}};function Ea(e,t,n,r,i,a){let o=R(`ui-badge`),s=z(`tooltip`);return n.value?W((I(),A(o,{key:0,pill:``,color:a.color,size:`sm`},{default:U(()=>[P(V(a.label),1)]),_:1},8,[`color`])),[[s,a.tooltip]]):j(``,!0)}var Da=K(Ta,[[`render`,Ea]]),Oa={props:{value:{type:String,default:null},isProxy:{type:Boolean,default:!1},isUpdating:{type:Boolean,default:!1}},data(){return{states:{uploaded:{color:`green`,label:__(`Uploaded`),tooltip:__(`Mirrored to Mux`)},not_uploaded:{color:`amber`,label:__(`Not uploaded`),tooltip:__(`Not mirrored to Mux yet`)},missing:{color:`red`,label:__(`Missing`),tooltip:__(`References a Mux asset that does not exist`)},fallback:{color:`gray`,label:this.value,tooltip:null}}}},computed:{state(){return this.states[this.value]||{...this.states.fallback,label:this.value}},color(){return this.state.color},label(){return this.state.label},tooltip(){return this.state.tooltip},showUpdating(){return this.isUpdating&&[`missing`,`not_uploaded`].includes(this.value)}}},ka={class:`flex items-center gap-2`};function Aa(e,t,n,r,i,a){let o=R(`ui-badge`),s=R(`ui-icon`),c=z(`tooltip`);return I(),M(`span`,ka,[n.value?W((I(),A(o,{key:0,pill:``,color:a.color,size:`sm`},{default:U(()=>[P(V(a.label),1)]),_:1},8,[`color`])),[[c,a.tooltip]]):j(``,!0),a.showUpdating?W((I(),A(s,{key:1,class:`size-3! animate-spin`,name:`loading`},null,512)),[[c,e.__(`Checking Mux status`)]]):j(``,!0),n.isProxy?W((I(),A(s,{key:2,class:`size-3! text-green-600`,name:`page-ghost`},null,512)),[[c,e.__(`Local asset is a short placeholder clip for the original video`)]]):j(``,!0)])}var ja=K(Oa,[[`render`,Aa]]),Ma={props:{value:{type:String,default:null}},computed:{policies(){return(this.value??``).split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>e.toLowerCase())}}},Na={class:`flex items-center gap-1`};function Pa(e,t,n,r,i,a){let o=R(`ui-badge`);return I(),M(`span`,Na,[(I(!0),M(k,null,L(a.policies,t=>(I(),A(o,{key:t,pill:``,size:`sm`},{default:U(()=>[t===`public`?(I(),M(k,{key:0},[P(V(e.__(`Public`)),1)],64)):t===`signed`?(I(),M(k,{key:1},[P(V(e.__(`Signed`)),1)],64)):j(``,!0)]),_:2},1024))),128))])}var Fa=K(Ma,[[`render`,Pa]]),Ia={props:{value:{type:String,default:null}},data(){return{states:{ready:{color:`green`,label:__(`Ready`),tooltip:__(`Mux has finished processing this asset`)},preparing:{color:`blue`,label:__(`Preparing`),tooltip:__(`Mux is processing this asset`)},errored:{color:`red`,label:__(`Errored`),tooltip:__(`Mux could not process this asset`)},fallback:{color:`gray`,label:this.value,tooltip:null}}}},computed:{state(){return this.states[this.value]||{...this.states.fallback,label:this.value}},color(){return this.state.color},label(){return this.state.label},tooltip(){return this.state.tooltip}}};function La(e,t,n,r,i,a){let o=R(`ui-badge`),s=z(`tooltip`);return n.value?W((I(),A(o,{key:0,pill:``,color:a.color,size:`sm`},{default:U(()=>[P(V(a.label),1)]),_:1},8,[`color`])),[[s,a.tooltip]]):j(``,!0)}var Ra=K(Ia,[[`render`,La]]),za={components:{Button:i,ButtonGroup:a,Dropdown:x,DropdownItem:S,DropdownLabel:C,DropdownMenu:w,DropdownSeparator:T},emits:[`completed`],props:{endpoint:{type:String,default:null}},data(){return{running:null}},methods:{async run(e){if(!this.running&&this.endpoint){this.running=e;try{let t=await this.$axios.post(this.endpoint,{command:e});Statamic.$toast.success(t.data.message||__(`Sync command queued. Refresh later to see updates.`)),this.$emit(`completed`,{command:e,response:t.data})}catch(e){console.error(e),Statamic.$toast.error(e.response?.data?.message||__(`Failed to queue sync command`))}finally{this.running=null}}}}},Ba={class:`flex items-baseline gap-2`},Va={class:`font-medium`},Ha={class:`text-sm text-gray-400 dark:text-gray-500`},Ua={class:`flex items-baseline gap-2`},Wa={class:`font-medium`},Ga={class:`text-sm text-gray-400 dark:text-gray-500`},Ka={class:`flex items-baseline gap-2`},qa={class:`font-medium`},Ja={class:`text-sm text-gray-400 dark:text-gray-500`};function Ya(e,t,n,r,i,a){let o=R(`Button`),s=R(`DropdownItem`),c=R(`DropdownSeparator`),l=R(`DropdownMenu`),u=R(`Dropdown`),d=R(`ButtonGroup`);return e.can(`trigger mux sync`)?(I(),A(d,{key:0},{default:U(()=>[F(u,{align:`end`},{trigger:U(()=>[F(o,{icon:`mux::reload`,text:e.__(`Sync`),loading:i.running,disabled:i.running!==null},null,8,[`text`,`loading`,`disabled`])]),default:U(()=>[F(l,null,{default:U(()=>[F(s,{icon:`mux::cloud-transfer`,onClick:t[0]||=e=>a.run(`mirror`)},{default:U(()=>[N(`span`,Ba,[N(`span`,Va,V(e.__(`Mirror`)),1),N(`span`,Ha,V(e.__(`Upload and prune`)),1)])]),_:1}),F(c),F(s,{icon:`mux::cloud-upload`,onClick:t[1]||=e=>a.run(`upload`)},{default:U(()=>[N(`span`,Ua,[N(`span`,Wa,V(e.__(`Upload`)),1),N(`span`,Ga,V(e.__(`Upload new videos to Mux`)),1)])]),_:1}),F(s,{icon:`mux::cloud-spark`,onClick:t[2]||=e=>a.run(`prune`)},{default:U(()=>[N(`span`,Ka,[N(`span`,qa,V(e.__(`Prune`)),1),N(`span`,Ja,V(e.__(`Delete orphaned Mux videos`)),1)])]),_:1})]),_:1})]),_:1})]),_:1})):j(``,!0)}var X={components:{Badge:r,Button:i,ButtonGroup:a,Dropdown:x,DropdownItem:S,DropdownLabel:C,DropdownMenu:w,DropdownSeparator:T,Head:Y,Header:ge,Icon:ye,Listing:Te,MatchStatusBadge:Da,MirrorStatusBadge:ja,PlaybackPolicyBadge:Fa,ProcessingStatusBadge:Ra,SyncButton:K(za,[[`render`,Ya]])},props:{refreshEndpoint:{type:String,default:null},commandEndpoint:{type:String,default:null},actionUrl:{type:String,default:null},dashboardUrl:{type:String,default:null}},methods:{hasMuxActions(e){return!!e?.mux_id},primaryPlaybackId(e){if(e?.processing_status===`errored`)return null;if(e?.playback_id)return e.playback_id;let t=Array.isArray(e?.playback_ids)?e.playback_ids:[];return t.find(e=>e.policy===`public`)?.id||t[0]?.id||null},playerUrl(e){return e?.player_url||null},streamUrl(e){return e?.stream_url||null},missingRemoteAsset(e){return e?.exists_remotely===!1||e?.mirror_status===`missing`},thumbnailUrl(e){return this.missingRemoteAsset(e)?null:e?.thumbnail_copy_url||e?.thumbnail_url||null},embedCode(e){return e?.embed_code||null},async copyToClipboard(e){e&&Statamic.$callbacks.call(`copyToClipboard`,e)},copyAssetId(e){return this.copyToClipboard(e.mux_id)},copyPlaybackId(e){return this.copyToClipboard(this.primaryPlaybackId(e))},copyPlayerUrl(e){return this.copyToClipboard(this.playerUrl(e))},copyEmbedCode(e){return this.copyToClipboard(this.embedCode(e))},copyThumbnailUrl(e){return this.copyToClipboard(this.thumbnailUrl(e))}}},Xa=`modulepreload`,Za=function(e){return`/build/`+e},Z={},Q=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=Za(t,n),t in Z)return;Z[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:Xa,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};function Qa(e){let t=e?.emits;return Array.isArray(t)?[`previous`,`next`,`saved`,`closed`,`action-completed`].every(e=>t.includes(e)):!1}var $a={mixins:[X,_a],props:{endpoint:{type:String,default:null},commandEndpoint:{type:String,default:null},dashboardUrl:{type:String,default:null},assetEditorChunks:{type:Array,default:()=>[]}},data(){return{assetEditor:null,editingAssetId:null,listingPollingCallbackName:`pollMuxMirroredAssetRows`,columns:[{field:`thumbnail_url`,label:__(`Thumbnail`),sortable:!1},{field:`title`,label:__(`Title`),sortable:!0},{field:`duration`,label:__(`Duration`),sortable:!0},{field:`mirror_status`,label:__(`Status`),sortable:!0},{field:`processing_status`,label:__(`Processing`),sortable:!0},{field:`playback_policy`,label:__(`Policy`),sortable:!0},{field:`created_at`,label:__(`Created`),sortable:!0}]}},mounted(){this.loadAssetEditor()},methods:{async loadAssetEditor(){for(let e of this.assetEditorChunks)try{let t=await Q(()=>import(e),[]),n=Object.values(t).find(Qa);if(n){this.assetEditor=jr(n);return}}catch{}console.warn(`Could not resolve asset editor component, falling back to new tab.`)},canEditAsset(e){return e?.can_edit&&e?.id},hasActions(e){return this.canEditAsset(e)||this.hasMuxActions(e)},openAssetEditor(e){if(this.canEditAsset(e)&&(this.editingAssetId=e.id,!this.assetEditor)){e.edit_url&&window.open(e.edit_url,`_blank`,`noopener`);return}},closeAssetEditor(){this.editingAssetId=null},assetEditorSaved(){this.$refs.listing?.refresh(),setTimeout(()=>this.closeAssetEditor(),0)},assetEditorActionCompleted(){this.editingAssetId&&this.startListingRowPolling([this.editingAssetId]),this.$refs.listing?.refresh()},syncCommandCompleted({command:e}){this.startListingRowPollingForVisibleRows(e)},isListingPollingComplete(e,t){return t===`prune`?!0:t===`delete`?!e.mux_id||[`missing`,`not_uploaded`].includes(e.mirror_status):[`mirror`,`upload`,`reupload`].includes(t)?e.mirror_status===`uploaded`&&[`ready`,`errored`].includes(e.processing_status):[`ready`,`errored`].includes(e.processing_status)||e.mirror_status===`missing`}}},eo=[`title`,`aria-label`,`onClick`],to=[`src`],no={key:1,class:`w-16 h-10 rounded overflow-hidden bg-gray-100 dark:bg-gray-800 flex items-center justify-center`},ro=[`src`],io={class:`text-sm`},ao=[`href`,`onClick`],oo={key:1},$={key:2,class:`block text-2xs text-gray-400 dark:text-gray-700`},so=[`textContent`];function co(e,t,n,r,i,a){let o=R(`Head`),s=R(`SyncButton`),c=R(`Header`),l=R(`MirrorStatusBadge`),u=R(`ProcessingStatusBadge`),d=R(`PlaybackPolicyBadge`),f=R(`date-time`),p=R(`DropdownItem`),m=R(`DropdownSeparator`),h=R(`Listing`);return I(),M(k,null,[F(o,{title:[e.__(`Mux`),e.__(`Mirrored Assets`)]},null,8,[`title`]),N(`div`,null,[F(c,{icon:`mux::video-playlist`,title:e.__(`Mirrored Assets`)},{default:U(()=>[F(s,{endpoint:n.commandEndpoint,onCompleted:a.syncCommandCompleted},null,8,[`endpoint`,`onCompleted`])]),_:1},8,[`title`]),F(h,{ref:`listing`,url:n.endpoint,columns:i.columns,"action-url":e.actionUrl,"sort-column":`title`,"sort-direction":`asc`,"allow-bulk-actions":!0,"allow-presets":!1,"allow-customizing-columns":!1,onRequestCompleted:e.listingPollingRequestCompleted},{"cell-thumbnail_url":U(({row:n,value:r})=>[n.can_edit&&n.edit_url?(I(),M(`button`,{key:0,type:`button`,class:`w-16 h-10 rounded overflow-hidden bg-gray-100 dark:bg-gray-800 flex items-center justify-center cursor-pointer`,title:e.__(`Edit Asset`),"aria-label":e.__(`Edit Asset`),onClick:e=>a.openAssetEditor(n)},[r?(I(),M(`img`,{key:0,src:r,class:`w-full h-full object-cover`,loading:`lazy`,onError:t[0]||=e=>e.target.style.display=`none`},null,40,to)):j(``,!0)],8,eo)):(I(),M(`div`,no,[r?(I(),M(`img`,{key:0,src:r,class:`w-full h-full object-cover`,loading:`lazy`,onError:t[1]||=e=>e.target.style.display=`none`},null,40,ro)):j(``,!0)]))]),"cell-title":U(({row:e,value:t})=>[N(`div`,io,[e.can_edit&&e.edit_url?(I(),M(`a`,{key:0,href:e.edit_url,onClick:G(t=>a.openAssetEditor(e),[`prevent`])},V(t),9,ao)):(I(),M(`span`,oo,V(t),1)),e.path&&e.path!==t?(I(),M(`span`,$,V(e.path),1)):j(``,!0)])]),"cell-mirror_status":U(({row:e,value:t})=>[F(l,{value:t,"is-proxy":e.is_proxy,"is-updating":e._isPolling},null,8,[`value`,`is-proxy`,`is-updating`])]),"cell-processing_status":U(({value:e})=>[F(u,{value:e},null,8,[`value`])]),"cell-duration":U(({row:e})=>[e.duration_formatted?(I(),M(`span`,{key:0,class:`text-sm tabular-nums`,textContent:V(e.duration_formatted)},null,8,so)):j(``,!0)]),"cell-playback_policy":U(({value:e})=>[F(d,{value:e},null,8,[`value`])]),"cell-created_at":U(({value:e})=>[e?(I(),A(f,{key:0,of:e,"date-only":``},null,8,[`of`])):j(``,!0)]),"prepended-row-actions":U(({row:t})=>[a.canEditAsset(t)?(I(),M(k,{key:0},[F(p,{icon:`edit`,text:e.__(`Edit asset`),onClick:e=>a.openAssetEditor(t)},null,8,[`text`,`onClick`]),t.mux_id?(I(),A(m,{key:0})):j(``,!0)],64)):j(``,!0),!e.missingRemoteAsset(t)&&t.dashboard_url||e.playerUrl(t)?(I(),M(k,{key:1},[!e.missingRemoteAsset(t)&&t.dashboard_url?(I(),A(p,{key:0,icon:`external-link`,text:e.__(`Open in Mux dashboard`),href:t.dashboard_url,target:`_blank`},null,8,[`text`,`href`])):j(``,!0),e.playerUrl(t)?(I(),A(p,{key:1,icon:`external-link`,text:e.__(`Open playback page`),href:e.playerUrl(t),target:`_blank`},null,8,[`text`,`href`])):j(``,!0),t.mux_id?(I(),A(m,{key:2})):j(``,!0)],64)):j(``,!0),!e.missingRemoteAsset(t)&&t.mux_id?(I(),A(p,{key:2,icon:`taxonomies`,text:e.__(`Copy asset ID`),onClick:n=>e.copyAssetId(t)},null,8,[`text`,`onClick`])):j(``,!0),e.primaryPlaybackId(t)?(I(),A(p,{key:3,icon:`taxonomies`,text:e.__(`Copy playback ID`),onClick:n=>e.copyPlaybackId(t)},null,8,[`text`,`onClick`])):j(``,!0),e.playerUrl(t)?(I(),A(p,{key:4,icon:`mux::video-square`,text:e.__(`Copy player URL`),onClick:n=>e.copyPlayerUrl(t)},null,8,[`text`,`onClick`])):j(``,!0),e.embedCode(t)?(I(),A(p,{key:5,icon:`programming-code-block`,text:e.__(`Copy embed code`),onClick:n=>e.copyEmbedCode(t)},null,8,[`text`,`onClick`])):j(``,!0),e.thumbnailUrl(t)?(I(),A(p,{key:6,icon:`mux::thumbnail`,text:e.__(`Copy thumbnail URL`),onClick:n=>e.copyThumbnailUrl(t)},null,8,[`text`,`onClick`])):j(``,!0)]),_:1},8,[`url`,`columns`,`action-url`,`onRequestCompleted`]),i.assetEditor&&i.editingAssetId?(I(),A(B(i.assetEditor),{key:0,id:i.editingAssetId,showToolbar:!1,"allow-deleting":!1,onClosed:a.closeAssetEditor,onSaved:a.assetEditorSaved,onActionCompleted:a.assetEditorActionCompleted},null,40,[`id`,`onClosed`,`onSaved`,`onActionCompleted`])):j(``,!0)])],64)}var lo=K($a,[[`render`,co]]),uo={mixins:[X],props:{endpoint:{type:String,default:null},refreshEndpoint:{type:String,default:null},commandEndpoint:{type:String,default:null},dashboardUrl:{type:String,default:null}},data(){return{refreshing:!1,columns:[{field:`thumbnail_url`,label:__(`Thumbnail`),sortable:!1},{field:`title`,label:__(`Title`),sortable:!0},{field:`duration`,label:__(`Duration`),sortable:!0},{field:`match_status`,label:__(`Status`),sortable:!0},{field:`processing_status`,label:__(`Processing`),sortable:!0},{field:`playback_policy`,label:__(`Policy`),sortable:!0},{field:`created_at`,label:__(`Created`),sortable:!0}]}},methods:{async refresh(){if(this.refreshEndpoint){this.refreshing=!0;try{await this.$axios.post(this.refreshEndpoint),this.$refs.listing?.refresh(),Statamic.$toast.success(__(`Mux Library refreshed`))}catch(e){console.error(e),Statamic.$toast.error(__(`Failed to refresh Mux Library`))}finally{this.refreshing=!1}}}}},fo={class:`w-16 h-10 rounded overflow-hidden bg-gray-100 dark:bg-gray-800 flex items-center justify-center`},po=[`src`],mo={class:`text-sm`},ho=[`href`],go={key:1},_o={class:`block text-2xs text-gray-400 dark:text-gray-600 font-mono`},vo=[`textContent`];function yo(e,t,n,r,i,a){let o=R(`Head`),s=R(`Button`),c=R(`DropdownItem`),l=R(`DropdownMenu`),u=R(`Dropdown`),d=R(`SyncButton`),f=R(`Header`),p=R(`ui-icon`),m=R(`MatchStatusBadge`),h=R(`ProcessingStatusBadge`),g=R(`PlaybackPolicyBadge`),_=R(`date-time`),v=R(`DropdownSeparator`),y=R(`Listing`);return I(),M(k,null,[F(o,{title:[e.__(`Mux`),e.__(`Mux Library`)]},null,8,[`title`]),N(`div`,null,[F(f,{icon:`mux::cloud-video`,title:e.__(`Mux Library`)},{default:U(()=>[e.can(`trigger mux sync`)?(I(),A(u,{key:0},{trigger:U(()=>[F(s,{icon:`dots`,variant:`ghost`,size:`sm`,"aria-label":e.__(`Open dropdown menu`)},null,8,[`aria-label`])]),default:U(()=>[F(l,null,{default:U(()=>[F(c,{icon:`mux::history-delete`,onClick:a.refresh},{default:U(()=>[P(V(e.__(`Clear cache and reload`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})):j(``,!0),F(d,{endpoint:n.commandEndpoint},null,8,[`endpoint`]),n.dashboardUrl?(I(),A(s,{key:1,href:n.dashboardUrl,target:`_blank`,rel:`noopener noreferrer`,"icon-append":`external-link`,text:e.__(`Mux Dashboard`)},null,8,[`href`,`text`])):j(``,!0)]),_:1},8,[`title`]),F(y,{ref:`listing`,url:n.endpoint,columns:i.columns,"action-url":e.actionUrl,"sort-column":`created_at`,"sort-direction":`desc`,"allow-bulk-actions":!0,"allow-presets":!1,"allow-customizing-columns":!1},{"cell-thumbnail_url":U(({row:e,value:n})=>[N(`div`,fo,[n?(I(),M(`img`,{key:0,src:n,class:`w-full h-full object-cover`,loading:`lazy`,onError:t[0]||=e=>e.target.style.display=`none`},null,40,po)):j(``,!0)])]),"cell-title":U(({row:e,value:t})=>[N(`div`,mo,[e.dashboard_url?(I(),M(`a`,{key:0,href:e.dashboard_url,target:`_blank`,class:`group inline-flex items-center gap-2`},[N(`span`,null,V(t),1),F(p,{name:`external-link`,class:`size-3! text-gray-400 dark:text-gray-600 opacity-0 transition-opacity group-hover:opacity-100 group-focus:opacity-100 group-focus-visible:opacity-100`,"aria-hidden":`true`})],8,ho)):(I(),M(`span`,go,V(t),1)),N(`span`,_o,V(e.mux_id),1)])]),"cell-match_status":U(({value:e})=>[F(m,{value:e},null,8,[`value`])]),"cell-processing_status":U(({value:e})=>[F(h,{value:e},null,8,[`value`])]),"cell-duration":U(({row:e})=>[e.duration_formatted?(I(),M(`span`,{key:0,class:`text-sm tabular-nums`,textContent:V(e.duration_formatted)},null,8,vo)):j(``,!0)]),"cell-playback_policy":U(({value:e})=>[F(g,{value:e},null,8,[`value`])]),"cell-created_at":U(({value:e})=>[e?(I(),A(_,{key:0,of:e,"date-only":``},null,8,[`of`])):j(``,!0)]),"prepended-row-actions":U(({row:t})=>[t.dashboard_url?(I(),A(c,{key:0,icon:`external-link`,text:e.__(`Open in Mux dashboard`),href:t.dashboard_url,target:`_blank`},null,8,[`text`,`href`])):j(``,!0),e.playerUrl(t)?(I(),A(c,{key:1,icon:`external-link`,text:e.__(`Open playback page`),href:e.playerUrl(t),target:`_blank`},null,8,[`text`,`href`])):j(``,!0),t.dashboard_url||e.playerUrl(t)?(I(),A(v,{key:2})):j(``,!0),F(c,{icon:`taxonomies`,text:e.__(`Copy asset ID`),onClick:n=>e.copyAssetId(t)},null,8,[`text`,`onClick`]),e.primaryPlaybackId(t)?(I(),A(c,{key:3,icon:`taxonomies`,text:e.__(`Copy playback ID`),onClick:n=>e.copyPlaybackId(t)},null,8,[`text`,`onClick`])):j(``,!0),e.playerUrl(t)?(I(),A(c,{key:4,icon:`mux::video-square`,text:e.__(`Copy player URL`),onClick:n=>e.copyPlayerUrl(t)},null,8,[`text`,`onClick`])):j(``,!0),e.embedCode(t)?(I(),A(c,{key:5,icon:`programming-code-block`,text:e.__(`Copy embed code`),onClick:n=>e.copyEmbedCode(t)},null,8,[`text`,`onClick`])):j(``,!0),e.thumbnailUrl(t)?(I(),A(c,{key:6,icon:`mux::thumbnail`,text:e.__(`Copy thumbnail URL`),onClick:n=>e.copyThumbnailUrl(t)},null,8,[`text`,`onClick`])):j(``,!0)]),_:1},8,[`url`,`columns`,`action-url`])])],64)}var bo=K(uo,[[`render`,yo]]),xo={class:`py-8 mt-8 text-center starting-style-transition`},So={class:`text-[25px] font-medium antialiased flex justify-center items-center gap-2 sm:gap-3`};Statamic.$components.register(`mux_mirror-fieldtype`,fa),Statamic.$components.register(`mux_mirror-fieldtype-index`,ga),Statamic.$inertia.register(`MuxAssetsPage`,lo),Statamic.$inertia.register(`MuxLibraryPage`,bo),Statamic.$inertia.register(`EmptyPage`,{__name:`Empty`,setup(e){return Sa(),(e,t)=>{let n=R(`ui-icon`);return I(),M(k,null,[F(H(Y),{title:e.__(`Mux`)},null,8,[`title`]),N(`header`,xo,[N(`h1`,So,[F(n,{name:`mux::video-player`,class:`size-5 text-gray-500`}),P(` `+V(e.__(`Mux Videos`)),1)])]),F(H(me),{heading:e.__(`Mux is currently not configured for this site.`)},{default:U(()=>[F(H(E),{href:`https://statamic-mux.daun.ltd/connecting-mux`,icon:`mux::connect`,heading:e.__(`Connect to Mux`),description:e.__(`Register a Mux account and connect credentials.`)},null,8,[`heading`,`description`]),F(H(E),{href:`https://statamic-mux.daun.ltd/upload`,icon:`sync`,heading:e.__(`Set Up Automatic Sync`),description:e.__(`Configure the addon for mirroring local videos.`)},null,8,[`heading`,`description`]),F(H(E),{href:`https://statamic-mux.daun.ltd/display`,icon:`mux::video-live`,heading:e.__(`Begin Streaming Videos`),description:e.__(`Use web components to render a video player.`)},null,8,[`heading`,`description`])]),_:1},8,[`heading`]),F(H(b),{topic:e.__(`Statamic Mux`),url:`https://statamic-mux.daun.ltd`},null,8,[`topic`])],64)}}}),Ht(`mux`,Object.assign({"../svg/icons/cloud-spark.svg":()=>Q(()=>import(`./cloud-spark-D84x1F1-.js`).then(e=>e.default),[]),"../svg/icons/cloud-transfer.svg":()=>Q(()=>import(`./cloud-transfer-DdaveTKz.js`).then(e=>e.default),[]),"../svg/icons/cloud-upload.svg":()=>Q(()=>import(`./cloud-upload-Cgpa1gP_.js`).then(e=>e.default),[]),"../svg/icons/cloud-video.svg":()=>Q(()=>import(`./cloud-video-oTau7QHF.js`).then(e=>e.default),[]),"../svg/icons/connect.svg":()=>Q(()=>import(`./connect-DJveyQWF.js`).then(e=>e.default),[]),"../svg/icons/fingerprint.svg":()=>Q(()=>import(`./fingerprint-CbbpOU1i.js`).then(e=>e.default),[]),"../svg/icons/history-delete.svg":()=>Q(()=>import(`./history-delete-CvA9sPkY.js`).then(e=>e.default),[]),"../svg/icons/padlock.svg":()=>Q(()=>import(`./padlock-C4OTPUDz.js`).then(e=>e.default),[]),"../svg/icons/play-button.svg":()=>Q(()=>import(`./play-button-DoJdcppZ.js`).then(e=>e.default),[]),"../svg/icons/reload-vertical.svg":()=>Q(()=>import(`./reload-vertical-DEoBraid.js`).then(e=>e.default),[]),"../svg/icons/reload.svg":()=>Q(()=>import(`./reload-Bq8qVQgE.js`).then(e=>e.default),[]),"../svg/icons/thumbnail.svg":()=>Q(()=>import(`./thumbnail-iB5XWDPH.js`).then(e=>e.default),[]),"../svg/icons/video-card.svg":()=>Q(()=>import(`./video-card-CvKqYb3G.js`).then(e=>e.default),[]),"../svg/icons/video-folder.svg":()=>Q(()=>import(`./video-folder-3J_KQWaA.js`).then(e=>e.default),[]),"../svg/icons/video-live.svg":()=>Q(()=>import(`./video-live-xr0UBZJr.js`).then(e=>e.default),[]),"../svg/icons/video-player.svg":()=>Q(()=>import(`./video-player-RlMZyWLT.js`).then(e=>e.default),[]),"../svg/icons/video-playlist.svg":()=>Q(()=>import(`./video-playlist-CGCOuEzP.js`).then(e=>e.default),[]),"../svg/icons/video-slow.svg":()=>Q(()=>import(`./video-slow-C5yCaeHJ.js`).then(e=>e.default),[]),"../svg/icons/video-square.svg":()=>Q(()=>import(`./video-square-DGNhO3Gk.js`).then(e=>e.default),[]),"../svg/icons/videos-square.svg":()=>Q(()=>import(`./videos-square-CM4ivbqI.js`).then(e=>e.default),[]),"../svg/icons/videos.svg":()=>Q(()=>import(`./videos-DiOqyfH2.js`).then(e=>e.default),[])})); \ No newline at end of file diff --git a/resources/dist/build/assets/streaming-BqnmyHbL.js b/resources/dist/build/assets/streaming-BqnmyHbL.js new file mode 100644 index 0000000..8230ac3 --- /dev/null +++ b/resources/dist/build/assets/streaming-BqnmyHbL.js @@ -0,0 +1,10 @@ +var e=` + + + + + + + + +`;export{e as default}; \ No newline at end of file diff --git a/resources/dist/build/manifest.json b/resources/dist/build/manifest.json index c89727d..a9ca12b 100644 --- a/resources/dist/build/manifest.json +++ b/resources/dist/build/manifest.json @@ -1,6 +1,6 @@ { "resources/css/addon.css": { - "file": "assets/addon-BNv7da6H.css", + "file": "assets/addon-CVorINHh.css", "name": "addon", "names": [ "addon.css" @@ -9,7 +9,7 @@ "isEntry": true }, "resources/js/addon.js": { - "file": "assets/addon-D2cJ2QL5.js", + "file": "assets/addon-BiYct5_h.js", "name": "addon", "src": "resources/js/addon.js", "isEntry": true, @@ -25,6 +25,7 @@ "resources/svg/icons/play-button.svg?raw", "resources/svg/icons/reload-vertical.svg?raw", "resources/svg/icons/reload.svg?raw", + "resources/svg/icons/streaming.svg?raw", "resources/svg/icons/thumbnail.svg?raw", "resources/svg/icons/video-card.svg?raw", "resources/svg/icons/video-folder.svg?raw", @@ -103,6 +104,12 @@ "src": "resources/svg/icons/reload.svg?raw", "isDynamicEntry": true }, + "resources/svg/icons/streaming.svg?raw": { + "file": "assets/streaming-BqnmyHbL.js", + "name": "streaming", + "src": "resources/svg/icons/streaming.svg?raw", + "isDynamicEntry": true + }, "resources/svg/icons/thumbnail.svg?raw": { "file": "assets/thumbnail-iB5XWDPH.js", "name": "thumbnail", diff --git a/resources/js/components/MuxMirrorFieldtype.vue b/resources/js/components/MuxMirrorFieldtype.vue index c483e9a..03f421b 100644 --- a/resources/js/components/MuxMirrorFieldtype.vue +++ b/resources/js/components/MuxMirrorFieldtype.vue @@ -19,31 +19,31 @@ {{ t('proxy') }} - - {{ t('details') }} + + {{ t('info') }} - - - - - - - - - - - - - -
- - {{ value.id }}
- - - - {{ id }}
-
+
    +
  • +
    + +
    +
    + {{ label }} + + {{ value }} + +
    + +
  • +
@@ -56,12 +56,14 @@ export default { mixins: [Fieldtype], data() { return { - detailsExpanded: false - }; + isInfoExpanded: false, + itemCopied: null, + itemCopiedTimeout: null, + } }, computed: { showReuploadToggle() { - return this.allowReuploads && ! this.isProxy; + return this.allowReuploads && !this.isProxy; }, allowReuploads() { return this.config?.allow_reupload; @@ -76,19 +78,49 @@ export default { return this.meta?.is_video || false; }, isUploaded() { - return !! this.value.id; + return !!this.value.id; }, isProxy() { return this.meta?.is_proxy || false; }, - playbackIds() { - return Object.entries(this.value.playback_ids || {}); - } + infoItems() { + const info = this.meta?.mux || {}; + + const items = [ + { key: 'asset_id', icon: 'taxonomies' }, + { key: 'playback_id', icon: 'taxonomies' }, + { key: 'player_url', icon: 'mux::video-square' }, + // { key: 'stream_url', icon: 'mux::streaming' }, + { key: 'embed_code', icon: 'programming-code-block' }, + // { key: 'thumbnail_url', icon: 'mux::thumbnail' }, + { key: 'gif_url', icon: 'mux::thumbnail' }, + ]; + + return items + .filter((item) => info[item.key]) + .map((item) => ({ ...item, label: this.t(`copy.${item.key}`), value: info[item.key] })); + }, }, methods: { + toggleInfo() { + this.isInfoExpanded = !this.isInfoExpanded; + }, + copy(value, key) { + if (! value) { + return; + } + + Statamic.$callbacks.call('copyToClipboard', value); + + clearTimeout(this.itemCopiedTimeout); + this.itemCopied = key; + this.itemCopiedTimeout = setTimeout(() => { + this.itemCopied = null; + }, 4000); + }, t(key, replacements = {}) { return __(`statamic-mux::messages.fieldtype.${key}`, replacements); - } + }, }, }; diff --git a/resources/svg/icons/streaming.svg b/resources/svg/icons/streaming.svg new file mode 100644 index 0000000..ee87f7f --- /dev/null +++ b/resources/svg/icons/streaming.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/Fieldtypes/MuxMirrorFieldtype.php b/src/Fieldtypes/MuxMirrorFieldtype.php index c59bca9..1e589a0 100644 --- a/src/Fieldtypes/MuxMirrorFieldtype.php +++ b/src/Fieldtypes/MuxMirrorFieldtype.php @@ -3,9 +3,11 @@ namespace Daun\StatamicMux\Fieldtypes; use Daun\StatamicMux\Data\MuxAsset; +use Daun\StatamicMux\Data\MuxPlaybackId; use Daun\StatamicMux\GraphQL\MuxMirrorType; use Daun\StatamicMux\GraphQL\MuxPlaybackIdType; use Daun\StatamicMux\Jobs\CreateMuxAssetJob; +use Daun\StatamicMux\Mux\MuxService; use Daun\StatamicMux\Query\Scopes\Filters\Fields\MuxMirrorFieldtypeFilter; use Statamic\Assets\Asset; use Statamic\Facades\GraphQL; @@ -51,14 +53,42 @@ protected function asset(): ?Asset public function preload() { $asset = $this->asset(); + $muxAsset = $asset ? MuxAsset::fromAsset($asset) : null; return [ 'is_asset' => (bool) $asset, - 'is_video' => $asset && $asset->isVideo(), - 'is_proxy' => $asset && MuxAsset::fromAsset($asset)->isProxy(), + 'is_video' => $asset->isVideo(), + 'is_proxy' => $muxAsset?->isProxy() ?? false, + 'mux' => $muxAsset && $this->config('show_details') + ? $this->muxInfo($muxAsset) + : [], ]; } + protected function muxInfo(MuxAsset $muxAsset): array + { + $playbackId = $muxAsset?->playbackId(); + if (! $playbackId instanceof MuxPlaybackId) { + return [ + 'asset_id' => $muxAsset->id(), + ]; + } + + $service = app(MuxService::class); + $url = fn (callable $cb) => rescue($cb, null, report: false); + + return array_filter([ + 'asset_id' => $muxAsset->id(), + 'playback_id' => $playbackId->id(), + 'signed' => $playbackId->isSigned(), + 'player_url' => $url(fn () => $service->getPlayerUrl($playbackId)), + 'stream_url' => $url(fn () => $service->getPlaybackUrl($playbackId)), + 'thumbnail_url' => $url(fn () => $service->getThumbnailUrl($playbackId)), + 'gif_url' => $url(fn () => $service->getGifUrl($playbackId)), + 'embed_code' => $url(fn () => $service->getEmbedCode($playbackId)), + ], fn ($v) => $v !== null); + } + public function preProcess($data) { return ['reupload' => false] + ($data ?? []); diff --git a/tests/Feature/MirrorFieldTest.php b/tests/Feature/MirrorFieldTest.php index b2c1ddc..5cdccbb 100644 --- a/tests/Feature/MirrorFieldTest.php +++ b/tests/Feature/MirrorFieldTest.php @@ -3,6 +3,7 @@ use Daun\StatamicMux\Data\MuxAsset; use Daun\StatamicMux\Fieldtypes\MuxMirrorFieldtype; use Daun\StatamicMux\Support\MirrorField; +use Statamic\Assets\Asset; use Statamic\Facades\Stache; use Statamic\Fields\Field; @@ -10,6 +11,17 @@ Stache::clear(); }); +/** + * Build a configured MuxMirrorFieldtype instance bound to the given asset, + * mirroring how Statamic resolves the fieldtype from the asset's blueprint. + */ +function preloadFieldtype(Asset $asset): MuxMirrorFieldtype +{ + $field = MirrorField::getFromBlueprint($asset)->setParent($asset); + + return $field->fieldtype(); +} + test('checks if configured', function () { expect(MirrorField::configured())->toBeBool(); }); @@ -139,3 +151,102 @@ expect($results->map->id()->all())->toEqual([$second->id()]); }); + +test('preloads a video asset without mux data', function () { + $this->addMirrorFieldToAssetBlueprint(); + $mp4 = $this->uploadTestFileToTestContainer('test.mp4'); + + $data = preloadFieldtype($mp4)->preload(); + + expect($data['is_asset'])->toBeTrue(); + expect($data['is_video'])->toBeTrue(); + expect($data['is_proxy'])->toBeFalse(); + expect($data['mux'])->toBe([]); +}); + +test('preloads a non-video asset', function () { + $this->addMirrorFieldToAssetBlueprint(); + $jpg = $this->uploadTestFileToTestContainer('test.jpg'); + + $data = preloadFieldtype($jpg)->preload(); + + expect($data['is_asset'])->toBeTrue(); + expect($data['is_video'])->toBeFalse(); + expect($data['is_proxy'])->toBeFalse(); + expect($data['mux'])->toBe([]); +}); + +test('omits mux details when show_details is disabled', function () { + $this->addMirrorFieldToAssetBlueprint('mux', ['show_details' => false]); + $mp4 = $this->uploadTestFileToTestContainer('test.mp4'); + $mp4->set('mux', ['id' => 'mux-asset-001', 'playback_ids' => ['public' => 'playback-001']]); + $mp4->save(); + Stache::clear(); + + $data = preloadFieldtype($mp4)->preload(); + + expect($data['is_video'])->toBeTrue(); + expect($data['mux'])->toBe([]); +}); + +test('includes mux details for a public video asset when show_details is enabled', function () { + $this->addMirrorFieldToAssetBlueprint('mux', ['show_details' => true]); + $mp4 = $this->uploadTestFileToTestContainer('test.mp4'); + $mp4->set('mux', ['id' => 'mux-asset-001', 'playback_ids' => ['public' => 'playback-001']]); + $mp4->save(); + Stache::clear(); + + $data = preloadFieldtype($mp4)->preload(); + + expect($data['is_video'])->toBeTrue(); + expect($data['is_proxy'])->toBeFalse(); + expect($data['mux']['asset_id'])->toBe('mux-asset-001'); + expect($data['mux']['playback_id'])->toBe('playback-001'); + expect($data['mux']['signed'])->toBeFalse(); + expect($data['mux'])->toHaveKeys([ + 'player_url', + 'stream_url', + 'thumbnail_url', + 'gif_url', + 'embed_code', + ]); +}); + +test('reports signed playback ids in mux details', function () { + $this->addMirrorFieldToAssetBlueprint('mux', ['show_details' => true]); + $mp4 = $this->uploadTestFileToTestContainer('test.mp4'); + $mp4->set('mux', ['id' => 'mux-asset-002', 'playback_ids' => ['signed' => 'playback-signed-002']]); + $mp4->save(); + Stache::clear(); + + $data = preloadFieldtype($mp4)->preload(); + + expect($data['mux']['asset_id'])->toBe('mux-asset-002'); + expect($data['mux']['playback_id'])->toBe('playback-signed-002'); + expect($data['mux']['signed'])->toBeTrue(); +}); + +test('returns only the asset id when no playback id exists', function () { + $this->addMirrorFieldToAssetBlueprint('mux', ['show_details' => true]); + $mp4 = $this->uploadTestFileToTestContainer('test.mp4'); + $mp4->set('mux', ['id' => 'mux-asset-003']); + $mp4->save(); + Stache::clear(); + + $data = preloadFieldtype($mp4)->preload(); + + expect($data['mux'])->toBe(['asset_id' => 'mux-asset-003']); +}); + +test('flags proxy assets', function () { + $this->addMirrorFieldToAssetBlueprint('mux', ['show_details' => true]); + $mp4 = $this->uploadTestFileToTestContainer('test.mp4'); + $mp4->set('mux', ['id' => 'mux-asset-004', 'playback_ids' => ['public' => 'playback-004'], 'is_proxy' => true]); + $mp4->save(); + Stache::clear(); + + $data = preloadFieldtype($mp4)->preload(); + + expect($data['is_proxy'])->toBeTrue(); + expect($data['mux']['asset_id'])->toBe('mux-asset-004'); +});