Files
pocketmovie/cmd/web/moviedetails.templ
2025-11-04 13:52:36 +01:00

201 lines
24 KiB
Plaintext

package web
import "git.itsigo.dev/istigo/pocketmovie/internal/database"
import "fmt"
import "strings"
templ MovieDetails(movie database.Movie) {
@Base(movie.Title + " - PocketMovie") {
<div class="grid-4">
<div style="aspect-ratio: 2 / 3">
<img style="border-radius: var(--pico-border-radius)" alt={ movie.Title } src={ fmt.Sprintf("/movie/posters/%d.jpg", movie.ID) }/>
</div>
<div style="grid-area: 1 / 2 / 2 / 5;">
<div>
<h1 style="display:inline-block; padding-right:0.5rem">{ movie.Title }</h1>
<div style="display:inline-block"><i>{ strings.Split(movie.Year, "-")[0] }</i> Directed by <i>{ movie.Director }</i></div>
</div>
<div class="grid-3">
<div style="grid-area: 1 / 1 / 2 / 3;">
<p>{ movie.Overview } </p>
<p>Genres: { movie.Genre }</p>
<p>Runtime: { movie.Length } Min</p>
if movie.StreamingServices != "" {
<p>Stream provider: { movie.StreamingServices }</p>
}
</div>
<div class="grid-area: 1 / 4 / 2 / 5;">
<article>
@MovieDetailsWatched(movie.ID, movie.Status)
<hr/>
@MovieDetailsRating(movie.ID, movie.Rating)
<hr/>
<div class="grid">
@MovieDetailsOwned(movie.ID, movie.OwnedType)
@MovieDetailsRipped(movie.ID, movie.Ripped)
</div>
</article>
</div>
</div>
</div>
</div>
}
}
// Gives you the opposite of 1 or 0
func revIntBool(status int64) int64 {
if status == 0 {
return 1
}
return 0
}
templ MovieDetailsWatched(id int64, status int64) {
<div id="movieDetailsWatched" class="flex-center">
<span
class="watched"
data-on-click={ fmt.Sprintf("@post('/db/changeMovieStatus/%d.%d')", id, revIntBool(status)) }
>
if status == 1 {
@fullEye()
} else {
@closedEye()
}
</span>
if status == 1 {
<p class="m-0">Watched</p>
} else {
<p class="m-0">Not watched</p>
}
</div>
}
templ MovieDetailsRating(id int64, rating int64) {
<div id="ratings">
<p class="center m-0">
if rating != 0 {
Rated
} else {
Not rated
}
</p>
<div class="ratingBox">
{{ class := "icon star-full" }}
for i := range(5) {
<i
data-on-click={ fmt.Sprintf("@post('/db/changeMovieRating/%d.%d')", id, i+1) }
if int64(i) < rating {
class={ class + " rated" }
} else {
class={ class }
}
></i>
}
</div>
</div>
}
templ MovieDetailsOwned(id int64, option string) {
<div id="mediatype" class="flex-center">
<p>
if option != "" {
Owned
} else {
Not owned
}
</p>
<div
data-on-click={ fmt.Sprintf("@get('/components/mediaTypeSelect/%d')", id) }
class="watched"
style="width:fit-content;"
>
switch option {
case "4KBD":
@ultraHD()
case "BD":
@bluray()
case "DVD":
@dvd()
case "DL":
@fullDownload()
default:
@forbiddenLineCircle()
}
</div>
</div>
}
templ MovieDetailsRipped(id int64, status int64) {
<div id="ripped">
<div
class="watched"
data-on-click={ fmt.Sprintf("@post('/db/changeMovieRipped/%d.%d')", id, revIntBool(status)) }
>
if status != 0 {
<p class="center">Ripped</p>
@checkedFullCircle()
} else {
<p class="center">Not ripped</p>
@forbiddenLineCircle()
}
</div>
</div>
}
templ MovieDetailsOwnedSelect(id int8) {
<div id="mediatype" class="flex-center">
<p class="">Select option</p>
<form>
<select
name="option"
data-bind-select
data-on-change={ fmt.Sprintf("@post('/db/changeMovieOwned/%d', {contentType: 'form'})", id) }
>
@MediaSelectOptions()
</select>
</form>
</div>
}
templ fullStar() {
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><path d="M9.15316 5.40838C10.4198 3.13613 11.0531 2 12 2C12.9469 2 13.5802 3.13612 14.8468 5.40837L15.1745 5.99623C15.5345 6.64193 15.7144 6.96479 15.9951 7.17781C16.2757 7.39083 16.6251 7.4699 17.3241 7.62805L17.9605 7.77203C20.4201 8.32856 21.65 8.60682 21.9426 9.54773C22.2352 10.4886 21.3968 11.4691 19.7199 13.4299L19.2861 13.9372C18.8096 14.4944 18.5713 14.773 18.4641 15.1177C18.357 15.4624 18.393 15.8341 18.465 16.5776L18.5306 17.2544C18.7841 19.8706 18.9109 21.1787 18.1449 21.7602C17.3788 22.3417 16.2273 21.8115 13.9243 20.7512L13.3285 20.4768C12.6741 20.1755 12.3469 20.0248 12 20.0248C11.6531 20.0248 11.3259 20.1755 10.6715 20.4768L10.0757 20.7512C7.77268 21.8115 6.62118 22.3417 5.85515 21.7602C5.08912 21.1787 5.21588 19.8706 5.4694 17.2544L5.53498 16.5776C5.60703 15.8341 5.64305 15.4624 5.53586 15.1177C5.42868 14.773 5.19043 14.4944 4.71392 13.9372L4.2801 13.4299C2.60325 11.4691 1.76482 10.4886 2.05742 9.54773C2.35002 8.60682 3.57986 8.32856 6.03954 7.77203L6.67589 7.62805C7.37485 7.4699 7.72433 7.39083 8.00494 7.17781C8.28555 6.96479 8.46553 6.64194 8.82547 5.99623L9.15316 5.40838Z"></path> </g></svg>
}
templ emptyStar() {
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><path d="M9.15316 5.40838C10.4198 3.13613 11.0531 2 12 2C12.9469 2 13.5802 3.13612 14.8468 5.40837L15.1745 5.99623C15.5345 6.64193 15.7144 6.96479 15.9951 7.17781C16.2757 7.39083 16.6251 7.4699 17.3241 7.62805L17.9605 7.77203C20.4201 8.32856 21.65 8.60682 21.9426 9.54773C22.2352 10.4886 21.3968 11.4691 19.7199 13.4299L19.2861 13.9372C18.8096 14.4944 18.5713 14.773 18.4641 15.1177C18.357 15.4624 18.393 15.8341 18.465 16.5776L18.5306 17.2544C18.7841 19.8706 18.9109 21.1787 18.1449 21.7602C17.3788 22.3417 16.2273 21.8115 13.9243 20.7512L13.3285 20.4768C12.6741 20.1755 12.3469 20.0248 12 20.0248C11.6531 20.0248 11.3259 20.1755 10.6715 20.4768L10.0757 20.7512C7.77268 21.8115 6.62118 22.3417 5.85515 21.7602C5.08912 21.1787 5.21588 19.8706 5.4694 17.2544L5.53498 16.5776C5.60703 15.8341 5.64305 15.4624 5.53586 15.1177C5.42868 14.773 5.19043 14.4944 4.71392 13.9372L4.2801 13.4299C2.60325 11.4691 1.76482 10.4886 2.05742 9.54773C2.35002 8.60682 3.57986 8.32856 6.03954 7.77203L6.67589 7.62805C7.37485 7.4699 7.72433 7.39083 8.00494 7.17781C8.28555 6.96479 8.46553 6.64194 8.82547 5.99623L9.15316 5.40838Z" stroke="var(--pico-secondary)" stroke-width="1.5"></path> </g></svg>
}
templ fullEye() {
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><path d="M9.75 12C9.75 10.7574 10.7574 9.75 12 9.75C13.2426 9.75 14.25 10.7574 14.25 12C14.25 13.2426 13.2426 14.25 12 14.25C10.7574 14.25 9.75 13.2426 9.75 12Z"></path> <path fill-rule="evenodd" clip-rule="evenodd" d="M2 12C2 13.6394 2.42496 14.1915 3.27489 15.2957C4.97196 17.5004 7.81811 20 12 20C16.1819 20 19.028 17.5004 20.7251 15.2957C21.575 14.1915 22 13.6394 22 12C22 10.3606 21.575 9.80853 20.7251 8.70433C19.028 6.49956 16.1819 4 12 4C7.81811 4 4.97196 6.49956 3.27489 8.70433C2.42496 9.80853 2 10.3606 2 12ZM12 8.25C9.92893 8.25 8.25 9.92893 8.25 12C8.25 14.0711 9.92893 15.75 12 15.75C14.0711 15.75 15.75 14.0711 15.75 12C15.75 9.92893 14.0711 8.25 12 8.25Z"></path> </g></svg>
}
templ closedEye() {
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.60603 6.08062C2.11366 5.86307 2.70154 6.09822 2.9191 6.60585L1.99995 6.99977C2.9191 6.60585 2.91924 6.60618 2.9191 6.60585L2.91858 6.60465C2.9183 6.604 2.91851 6.60447 2.91858 6.60465L2.9225 6.61351C2.92651 6.62253 2.93339 6.63785 2.94319 6.65905C2.96278 6.70147 2.99397 6.76735 3.03696 6.85334C3.12302 7.02546 3.25594 7.27722 3.43737 7.58203C3.80137 8.19355 4.35439 9.00801 5.10775 9.81932C5.28532 10.0105 5.47324 10.2009 5.67173 10.3878C5.68003 10.3954 5.68823 10.4031 5.69633 10.4109C7.18102 11.8012 9.25227 12.9998 12 12.9998C13.2089 12.9998 14.2783 12.769 15.2209 12.398C16.4469 11.9154 17.4745 11.1889 18.3156 10.3995C19.2652 9.50815 19.9627 8.54981 20.4232 7.81076C20.6526 7.44268 20.8207 7.13295 20.9299 6.91886C20.9844 6.81192 21.0241 6.72919 21.0491 6.67538C21.0617 6.64848 21.0706 6.62884 21.0758 6.61704L21.0808 6.60585C21.2985 6.0985 21.8864 5.86312 22.3939 6.08062C22.9015 6.29818 23.1367 6.88606 22.9191 7.39369L22 6.99977C22.9191 7.39369 22.9192 7.39346 22.9191 7.39369L22.9169 7.39871L22.9134 7.40693L22.9019 7.43278C22.8924 7.4541 22.879 7.48354 22.8618 7.52048C22.8274 7.59434 22.7774 7.69831 22.7115 7.8275C22.5799 8.08566 22.384 8.44584 22.1206 8.86844C21.718 9.5146 21.152 10.316 20.4096 11.1241L21.2071 11.9215C21.5976 12.312 21.5976 12.9452 21.2071 13.3357C20.8165 13.7262 20.1834 13.7262 19.7928 13.3357L18.9527 12.4955C18.3884 12.9513 17.757 13.3811 17.0558 13.752L17.8381 14.9544C18.1393 15.4173 18.0083 16.0367 17.5453 16.338C17.0824 16.6392 16.463 16.5081 16.1618 16.0452L15.1763 14.5306C14.4973 14.7388 13.772 14.8863 13 14.9554V16.4998C13 17.0521 12.5522 17.4998 12 17.4998C11.4477 17.4998 11 17.0521 11 16.4998V14.9556C10.2253 14.8864 9.50014 14.7386 8.82334 14.531L7.83814 16.0452C7.53693 16.5081 6.91748 16.6392 6.45457 16.338C5.99165 16.0367 5.86056 15.4173 6.16177 14.9544L6.94417 13.7519C6.24405 13.3814 5.61245 12.9515 5.04746 12.4953L4.20706 13.3357C3.81654 13.7262 3.18337 13.7262 2.79285 13.3357C2.40232 12.9452 2.40232 12.312 2.79285 11.9215L3.59029 11.1241C2.74529 10.2043 2.12772 9.292 1.71879 8.605C1.5096 8.25356 1.35345 7.95845 1.2481 7.74776C1.19539 7.64234 1.15529 7.55783 1.12752 7.49771C1.11363 7.46765 1.10282 7.44366 1.09505 7.42618L1.08566 7.4049L1.08267 7.39801L1.0816 7.39553L1.08117 7.39453C1.08098 7.39409 1.08081 7.39369 1.99995 6.99977L1.08117 7.39453C0.863613 6.8869 1.0984 6.29818 1.60603 6.08062Z" fill="var(--pico-secondary)"></path> </g></svg>
}
templ ultraHD() {
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 48 48">
<path d="M 2.2050781 15.027344 C 1.7818486 15.027344 1.3552282 15.109094 0.87695312 15.458984 C 0.39867801 15.808872 0.001953125 16.540578 0.001953125 17.232422 L 0.001953125 25.769531 C 0.001953125 26.1935 0.0842092 26.619918 0.43359375 27.097656 C 0.7829783 27.575395 1.5129957 27.972656 2.2050781 27.972656 L 45.796875 27.972656 C 46.222902 27.972656 46.648027 27.889246 47.125 27.541016 C 47.601973 27.192789 48.001953 26.462999 48.001953 25.769531 L 48.001953 17.232422 C 48.001953 16.807143 47.917093 16.381808 47.568359 15.904297 C 47.219629 15.426786 46.490097 15.027344 45.796875 15.027344 L 2.2050781 15.027344 z M 3.0019531 18.027344 L 45.001953 18.027344 L 45.001953 24.972656 L 3.0019531 24.972656 L 3.0019531 18.027344 z M 4.4277344 18.876953 L 4.4277344 22.251953 C 4.4277344 24.059953 5.4580781 24.117188 6.9550781 24.117188 C 7.3440781 24.117188 7.7399062 24.123047 8.1289062 24.123047 C 9.5179062 24.123047 10.478516 23.913219 10.478516 22.324219 L 10.478516 22.046875 L 10.478516 18.876953 L 9.0390625 18.876953 L 9.0390625 21.857422 L 9.0390625 22.033203 C 9.0180625 22.734203 8.9270938 22.960938 8.1210938 22.960938 L 7.5273438 22.966797 L 6.8867188 22.960938 C 5.9407187 22.937938 5.8883281 22.712078 5.8613281 21.830078 L 5.8613281 18.876953 L 4.4277344 18.876953 z M 30.265625 18.876953 L 30.265625 24.076172 L 31.699219 24.076172 L 31.699219 18.876953 L 30.265625 18.876953 z M 34.947266 18.876953 L 34.947266 20.84375 L 32.523438 20.84375 L 31.798828 22.015625 L 34.947266 22.015625 L 34.947266 24.074219 L 36.388672 24.074219 L 36.388672 18.876953 L 34.947266 18.876953 z M 37.355469 18.876953 L 37.355469 24.074219 L 38.789062 24.074219 L 38.789062 20.035156 L 41.224609 20.035156 C 42.199609 20.035156 42.212891 20.402031 42.212891 21.207031 L 42.212891 21.736328 C 42.212891 22.561328 42.149172 22.923828 41.201172 22.923828 L 39.5625 22.923828 L 38.851562 24.074219 L 42.035156 24.074219 C 42.854156 24.074219 43.460516 23.679375 43.603516 22.859375 C 43.660516 22.498375 43.660156 22.118953 43.660156 21.751953 L 43.662109 21.751953 L 43.662109 20.994141 C 43.662109 19.293141 43.188812 18.876953 41.507812 18.876953 L 37.355469 18.876953 z M 11.455078 19.712891 L 11.455078 23.255859 L 14.980469 23.255859 L 14.980469 22.306641 L 12.589844 22.306641 L 12.589844 19.712891 L 11.455078 19.712891 z M 14.216797 19.712891 L 14.216797 20.660156 L 15.763672 20.660156 L 15.763672 23.255859 L 16.898438 23.255859 L 16.898438 20.660156 L 18.439453 20.660156 L 18.439453 19.712891 L 14.216797 19.712891 z M 18.939453 19.712891 L 18.939453 23.255859 L 20.074219 23.255859 L 20.074219 20.615234 L 21.787109 20.615234 C 21.866109 20.615234 21.982125 20.618531 22.078125 20.644531 C 22.241125 20.692531 22.251859 20.794375 22.255859 20.984375 L 22.255859 21.099609 C 22.255859 21.444609 22.230719 21.527344 21.761719 21.527344 L 20.662109 21.527344 L 20.142578 22.365234 L 21.792969 22.365234 C 22.189969 22.365234 22.210938 22.498812 22.210938 22.882812 L 22.210938 23.255859 L 23.359375 23.255859 L 23.359375 22.548828 C 23.359375 22.108828 23.146109 21.946094 22.787109 21.871094 C 22.964109 21.816094 23.137094 21.749078 23.246094 21.580078 C 23.379094 21.367078 23.398438 21.101656 23.398438 20.847656 C 23.398437 20.020656 23.075172 19.712891 22.201172 19.712891 L 18.939453 19.712891 z M 25.722656 19.712891 L 23.746094 23.255859 L 25.013672 23.255859 L 25.355469 22.625 L 27.542969 22.625 L 27.869141 23.255859 L 29.123047 23.255859 L 27.203125 19.732422 L 27.191406 19.712891 L 25.722656 19.712891 z M 26.4375 20.576172 L 27.154297 21.900391 L 25.720703 21.900391 L 26.4375 20.576172 z M 15.335938 29.105469 C 14.846438 29.106719 14.321141 29.123703 13.869141 29.158203 C 13.670141 29.158203 13.464469 29.409453 13.355469 29.564453 C 13.251469 29.721453 11.869156 31.970547 11.660156 32.310547 C 11.451156 32.642547 11.641859 32.771109 11.880859 32.787109 C 12.507859 32.823109 13.32625 32.826109 14.28125 32.787109 C 15.13025 32.748109 15.717672 32.736328 16.388672 31.486328 C 16.683672 30.932328 15.857422 30.902344 15.857422 30.902344 C 15.944422 30.897344 16.661266 30.831609 17.072266 29.974609 C 17.492266 29.097609 16.734703 29.168344 16.595703 29.152344 C 16.279703 29.119844 15.825437 29.104219 15.335938 29.105469 z M 18.873047 29.216797 C 18.785047 29.216797 18.516813 29.301781 18.257812 29.675781 C 17.995812 30.053781 16.863484 31.931344 16.646484 32.277344 C 16.428484 32.627344 16.503422 32.794922 16.732422 32.794922 L 17.238281 32.794922 C 17.486281 32.794922 17.685922 32.508938 17.794922 32.335938 C 17.901922 32.161938 19.256172 29.983109 19.451172 29.662109 C 19.646172 29.343109 19.521672 29.216797 19.388672 29.216797 L 18.873047 29.216797 z M 14.863281 29.804688 L 15.347656 29.804688 C 15.492656 29.803687 15.831297 29.796109 15.654297 30.162109 C 15.422297 30.647109 14.951844 30.660156 14.714844 30.660156 L 14.333984 30.660156 C 14.245984 30.660156 14.150766 30.661094 14.259766 30.496094 C 14.365766 30.325094 14.517844 30.061266 14.589844 29.947266 C 14.665844 29.834266 14.731281 29.804688 14.863281 29.804688 z M 30.349609 30.083984 C 29.169609 30.083984 28.705078 30.273437 28.705078 30.273438 C 28.565078 30.327437 28.411328 30.439438 28.361328 30.523438 C 28.307328 30.606437 28.379578 30.671875 28.517578 30.671875 L 30.271484 30.671875 C 30.408484 30.671875 30.461047 30.784203 30.373047 30.908203 C 30.231047 31.121203 29.978516 31.146484 29.978516 31.146484 L 29.132812 31.146484 C 28.707812 31.146484 28.5725 31.167641 28.1875 31.181641 C 28.0495 31.181641 27.859719 31.306891 27.761719 31.462891 L 27.400391 32.070312 C 26.962391 32.766312 27.919203 32.818359 28.658203 32.818359 C 29.849203 32.818359 30.421875 32.492188 30.421875 32.492188 C 30.558875 32.414188 30.74775 32.225312 30.84375 32.070312 L 31.611328 30.830078 C 31.707328 30.676078 31.72625 30.441734 31.65625 30.302734 C 31.65625 30.302734 31.540609 30.083984 30.349609 30.083984 z M 22.734375 30.089844 C 22.477375 30.089844 22.222953 30.417172 22.126953 30.576172 C 21.734953 31.222172 21.287109 31.951172 21.287109 31.951172 C 21.190109 32.108172 20.999281 32.234375 20.863281 32.234375 L 20.242188 32.234375 C 20.105187 32.234375 20.069969 32.108172 20.167969 31.951172 L 21.015625 30.570312 C 21.322625 30.089312 20.957172 30.109375 20.701172 30.109375 C 20.297172 30.109375 20.248047 30.136719 20.248047 30.136719 C 20.115047 30.218719 20.003172 30.300312 19.826172 30.570312 L 18.900391 32.078125 C 18.454391 32.829125 19.423297 32.824219 20.154297 32.824219 C 20.914297 32.824219 21.676281 32.820797 21.988281 32.466797 C 21.988281 32.466797 21.875938 32.806641 22.085938 32.806641 L 22.417969 32.806641 C 22.612969 32.806641 22.741594 32.743766 22.808594 32.634766 C 22.875594 32.529766 22.900047 32.4685 22.998047 32.3125 C 23.096047 32.1535 22.970188 32.0625 22.867188 32.0625 L 22.617188 32.0625 C 22.525188 32.0625 22.439297 31.991938 22.529297 31.835938 L 23.296875 30.576172 C 23.557875 30.146172 23.340156 30.089844 23.160156 30.089844 L 22.734375 30.089844 z M 27.392578 30.113281 C 26.589578 30.113281 26.142688 30.163937 25.679688 30.835938 C 25.338687 31.382938 24.999672 31.939891 24.763672 32.337891 C 24.551672 32.701891 24.742563 32.796875 24.851562 32.796875 L 25.337891 32.796875 C 25.528891 32.796875 25.676219 32.780891 25.949219 32.337891 L 26.816406 30.933594 C 26.913406 30.777594 27.109047 30.646484 27.248047 30.646484 L 27.787109 30.646484 C 27.862109 30.647484 28.117625 30.639031 28.140625 30.457031 C 28.181625 30.184031 27.583578 30.113281 27.392578 30.113281 z M 33.490234 30.146484 C 33.422313 30.145344 33.350609 30.150391 33.287109 30.150391 C 32.887109 30.150391 32.832031 30.181641 32.832031 30.181641 C 32.698031 30.260641 32.506109 30.453375 32.412109 30.609375 L 31.507812 32.072266 C 31.058812 32.826266 32.031812 32.818359 32.757812 32.818359 C 32.966813 32.818359 33.153219 32.814922 33.324219 32.794922 L 33.060547 33.222656 C 32.961547 33.376656 32.771719 33.505859 32.636719 33.505859 L 32.326172 33.5 L 30.947266 33.496094 C 30.756266 33.496094 30.603984 33.578078 30.583984 33.705078 C 30.567984 33.834078 30.645078 33.924891 30.705078 33.962891 C 30.768078 33.999891 30.738125 34.086844 31.828125 34.089844 C 31.878125 34.089844 31.929516 34.091797 31.978516 34.091797 C 33.166516 34.091797 33.742187 33.769531 33.742188 33.769531 C 33.881188 33.691531 34.071969 33.499703 34.167969 33.345703 L 35.074219 31.882812 C 35.105219 31.831813 35.127484 31.790906 35.146484 31.753906 L 35.853516 30.609375 C 36.207516 30.067375 35.773641 30.150391 35.556641 30.150391 C 35.162641 30.150391 35.09375 30.1875 35.09375 30.1875 C 34.95875 30.2635 34.769875 30.453375 34.671875 30.609375 L 33.841797 31.949219 C 33.743797 32.103219 33.553016 32.230469 33.416016 32.230469 L 32.845703 32.230469 C 32.707703 32.230469 32.675531 32.104219 32.769531 31.949219 L 33.601562 30.609375 C 33.855812 30.208125 33.694 30.149906 33.490234 30.146484 z M 23.970703 30.996094 L 23.984375 31.005859 C 23.730375 31.005859 23.632891 31.187672 23.587891 31.263672 C 23.542891 31.335672 23.500406 31.377281 23.441406 31.488281 C 23.383406 31.601281 23.400469 31.732422 23.480469 31.732422 L 24.205078 31.732422 C 24.400078 31.732422 24.530703 31.6735 24.595703 31.5625 C 24.660703 31.4575 24.691062 31.402094 24.789062 31.246094 C 24.885063 31.085094 24.763156 30.996094 24.660156 30.996094 L 23.970703 30.996094 z M 13.972656 31.259766 L 14.701172 31.259766 C 14.843172 31.259766 15.188719 31.245281 15.011719 31.613281 C 14.779719 32.098281 14.337516 32.111328 14.103516 32.111328 L 13.431641 32.111328 C 13.344641 32.111328 13.250469 32.111359 13.355469 31.943359 C 13.463469 31.775359 13.625172 31.511438 13.701172 31.398438 C 13.775172 31.283438 13.839656 31.259766 13.972656 31.259766 z M 29.064453 31.628906 L 29.722656 31.628906 C 29.882656 31.628906 29.918594 31.771125 29.808594 31.953125 L 29.794922 31.976562 C 29.684922 32.154562 29.463641 32.300781 29.306641 32.300781 L 28.960938 32.320312 L 28.650391 32.300781 C 28.492391 32.300781 28.454453 32.154562 28.564453 31.976562 L 28.576172 31.953125 C 28.688172 31.772125 28.908453 31.628906 29.064453 31.628906 z"></path>
</svg>
}
templ bluray() {
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 26.001 26.001" xml:space="preserve"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><g><g><path d="M2.737,8.325c-0.017,0-0.031,0.009-0.042,0.022c-1.151,1.621-1.845,2.718-2.565,4.05l-0.072,0.147 l-0.021,0.047c-0.062,0.129-0.046,0.272,0.04,0.408c0.426,0.666,2.813,1.444,8.144,1.444c3.975,0,8.197-0.642,8.197-1.831 c0-1.148-4.17-1.834-8.197-1.834c-1.338,0-2.662,0.188-3.044,0.248c0.364-0.561,1.877-2.598,1.893-2.619 c0.007-0.009,0.012-0.019,0.012-0.03c0-0.008-0.003-0.016-0.006-0.024C7.064,8.337,7.047,8.325,7.029,8.325H2.737 M4.29,12.613 c0-0.248,1.495-0.595,3.931-0.595c2.435,0,3.928,0.347,3.928,0.595s-1.493,0.594-3.928,0.594 C5.785,13.207,4.29,12.861,4.29,12.613"></path> <path d="M5.753,18.595c0,0,19.818,0.806,20.241-6.12c0.342-5.618-13.733-5.084-13.746-5.084 S12.139,7.4,12.139,7.48c0,0.067,0.05,0.09,0.101,0.09c3.903,0,10.254,1.55,10.047,4.909c-0.167,2.736-5.122,5.938-16.527,5.938 c-0.068,0-0.113,0.047-0.113,0.089S5.672,18.587,5.753,18.595"></path> </g> </g> </g></svg>
}
templ dvd() {
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 15.465 15.465" xml:space="preserve"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><g><g><g><path d="M7.4,8.959c-4.132,0-7.4,0.55-7.4,1.227c0,0.678,3.268,1.227,7.4,1.227s7.543-0.549,7.543-1.227 C14.944,9.508,11.533,8.959,7.4,8.959z M7.263,10.51c-0.957,0-1.733-0.237-1.733-0.53s0.776-0.53,1.733-0.53 s1.732,0.237,1.732,0.53S8.219,10.51,7.263,10.51z M13.319,4.052H9.701L7.769,6.291l-0.92-2.208H1.145L0.933,5.045h2.269 c0,0,1.037-0.136,1.071,0.694c0,1.438-2.376,1.316-2.376,1.316l0.444-1.5H0.869L0.194,7.988h2.668c0,0,2.821-0.25,2.821-2.218 c0,0,0.114-0.574,0.066-0.827L7.124,8.62l3.435-3.565h2.606c0,0,0.798,0.068,0.798,0.685c0,1.438-2.359,1.288-2.359,1.288 l0.365-1.472h-1.287L9.946,7.989h2.453c0,0,3.066-0.19,3.066-2.279C15.465,5.709,15.404,4.052,13.319,4.052z"></path> </g> </g> </g> </g></svg>
}
templ fullDownload() {
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><path fill-rule="evenodd" clip-rule="evenodd" d="M2 12C2 7.28595 2 4.92893 3.46447 3.46447C4.92893 2 7.28595 2 12 2C16.714 2 19.0711 2 20.5355 3.46447C22 4.92893 22 7.28595 22 12C22 16.714 22 19.0711 20.5355 20.5355C19.0711 22 16.714 22 12 22C7.28595 22 4.92893 22 3.46447 20.5355C2 19.0711 2 16.714 2 12ZM12 6.25C12.4142 6.25 12.75 6.58579 12.75 7V12.1893L14.4697 10.4697C14.7626 10.1768 15.2374 10.1768 15.5303 10.4697C15.8232 10.7626 15.8232 11.2374 15.5303 11.5303L12.5303 14.5303C12.3897 14.671 12.1989 14.75 12 14.75C11.8011 14.75 11.6103 14.671 11.4697 14.5303L8.46967 11.5303C8.17678 11.2374 8.17678 10.7626 8.46967 10.4697C8.76256 10.1768 9.23744 10.1768 9.53033 10.4697L11.25 12.1893V7C11.25 6.58579 11.5858 6.25 12 6.25ZM8 16.25C7.58579 16.25 7.25 16.5858 7.25 17C7.25 17.4142 7.58579 17.75 8 17.75H16C16.4142 17.75 16.75 17.4142 16.75 17C16.75 16.5858 16.4142 16.25 16 16.25H8Z"></path> </g></svg>
}
templ forbiddenLineCircle() {
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><path d="M18.5 5.5L5.50002 18.4998" stroke="var(--pico-secondary)" stroke-width="1.5" stroke-linecap="round"></path> <circle cx="12" cy="12" r="10" stroke="var(--pico-secondary)" stroke-width="1.5"></circle> </g></svg>
}
templ checkedFullCircle() {
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><path fill-rule="evenodd" clip-rule="evenodd" d="M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM16.0303 8.96967C16.3232 9.26256 16.3232 9.73744 16.0303 10.0303L11.0303 15.0303C10.7374 15.3232 10.2626 15.3232 9.96967 15.0303L7.96967 13.0303C7.67678 12.7374 7.67678 12.2626 7.96967 11.9697C8.26256 11.6768 8.73744 11.6768 9.03033 11.9697L10.5 13.4393L12.7348 11.2045L14.9697 8.96967C15.2626 8.67678 15.7374 8.67678 16.0303 8.96967Z"></path> </g></svg>
}