Most dependencies updated, except Svelte

This commit is contained in:
Mawoka
2025-08-31 13:30:19 +02:00
parent 343756f999
commit 61e763da45
108 changed files with 9173 additions and 17913 deletions
+19 -19
View File
@@ -216,12 +216,12 @@ SPDX-License-Identifier: MPL-2.0
<h2 class="text-center text-5xl mb-6">{$t('index_page.how_does_classquiz_work')}</h2>
<div class="flex justify-center w-full">
<h3 class="text-center text-3xl rounded-t-lg bg-opacity-40 bg-white py-2 px-6">
<h3 class="text-center text-3xl rounded-t-lg bg-white/40 py-2 px-6">
{$t('index_page.get_a_quiz')}
</h3>
</div>
<div
class="grid grid-rows-2 lg:grid-rows-1 lg:grid-cols-2 bg-opacity-40 bg-white shadow-lg mb-12 lg:mx-12 mx-4 rounded-lg"
class="grid grid-rows-2 lg:grid-rows-1 lg:grid-cols-2 bg-white/40 shadow-lg mb-12 lg:mx-12 mx-4 rounded-lg"
>
<div>
<div class="p-2 rounded-lg">
@@ -229,21 +229,21 @@ SPDX-License-Identifier: MPL-2.0
<img
class="rounded-lg relative"
src={EditScreenshot}
in:fade
in:fade|global
alt="Screenshot of the import-page showing an URL to Kahoot! entered"
/>
{:else if selected_create_thing === SelectedCreateThing.Find}
<img
class="rounded-lg relative"
src={FindScreenshot}
in:fade
in:fade|global
alt="Screenshot of the search-page showing one found quiz for the term 'Country'"
/>
{:else if selected_create_thing === SelectedCreateThing.Import}
<img
class="rounded-lg relative"
src={ImportScreenshot}
in:fade
in:fade|global
alt="Screenshot of the import-page showing an URL to Kahoot! entered"
/>
{:else}
@@ -255,7 +255,7 @@ SPDX-License-Identifier: MPL-2.0
class="lg:border-l lg:border-l-black lg:border-t-0 border-t border-t-black flex lg:flex-col flex-row stretch"
>
<div
class="m-2 rounded-lg p-2 bg-opacity-40 bg-white transition-all cursor-pointer lg:h-full"
class="m-2 rounded-lg p-2 bg-white/40 transition-all cursor-pointer lg:h-full"
on:click={() => {
selected_create_thing = SelectedCreateThing.Create;
}}
@@ -288,7 +288,7 @@ SPDX-License-Identifier: MPL-2.0
<p class="dark:text-black">{$t('index_page.create_a_quiz_from_scratch')}</p>
</div>
<div
class="m-2 rounded-lg p-2 bg-opacity-40 bg-white transition-all cursor-pointer lg:h-full"
class="m-2 rounded-lg p-2 bg-white/40 transition-all cursor-pointer lg:h-full"
on:click={() => {
selected_create_thing = SelectedCreateThing.Find;
}}
@@ -358,13 +358,13 @@ SPDX-License-Identifier: MPL-2.0
<section class="mt-24">
<div class="flex justify-center w-full">
<h2 class="text-center text-3xl rounded-t-lg bg-opacity-40 bg-white py-2 px-6">
<h2 class="text-center text-3xl rounded-t-lg bg-white/40 py-2 px-6">
{$t('index_page.play_quiz')}
</h2>
</div>
<div
class="grid grid-rows-2 lg:grid-rows-1 lg:grid-cols-2 bg-opacity-40 bg-white shadow-lg mb-12 lg:mx-12 mx-4 rounded-lg"
class="grid grid-rows-2 lg:grid-rows-1 lg:grid-cols-2 bg-white/40 shadow-lg mb-12 lg:mx-12 mx-4 rounded-lg"
>
<div>
<div class="p-2 rounded-lg">
@@ -372,21 +372,21 @@ SPDX-License-Identifier: MPL-2.0
<img
class="rounded-lg relative"
src={SelectScreenshot}
in:fade
in:fade|global
alt="Screenshot of the screen where an answer can be selected"
/>
{:else if selected_play_thing === SelectedPlayThing.Results}
<img
class="rounded-lg relative"
src={ResultScreenshot}
in:fade
in:fade|global
alt="Screenshot of the results with a table showing how many players chose which answer"
/>
{:else if selected_play_thing === SelectedPlayThing.Winners}
<img
class="rounded-lg relative"
src={WinnersScreenshot}
in:fade
in:fade|global
alt="Screenshot of the import-page showing an URL to Kahoot! entered"
/>
{:else}
@@ -398,7 +398,7 @@ SPDX-License-Identifier: MPL-2.0
class="lg:border-l lg:border-l-black lg:border-t-0 border-t border-t-black flex lg:flex-col flex-row stretch"
>
<div
class="m-2 rounded-lg p-2 bg-opacity-40 bg-white transition-all cursor-pointer lg:h-full"
class="m-2 rounded-lg p-2 bg-white/40 transition-all cursor-pointer lg:h-full"
on:click={() => {
selected_play_thing = SelectedPlayThing.Select;
}}
@@ -431,7 +431,7 @@ SPDX-License-Identifier: MPL-2.0
<p class="dark:text-black">{$t('index_page.choose_answer_wisely')}</p>
</div>
<div
class="m-2 rounded-lg p-2 bg-opacity-40 bg-white transition-all cursor-pointer lg:h-full"
class="m-2 rounded-lg p-2 bg-white/40 transition-all cursor-pointer lg:h-full"
on:click={() => {
selected_play_thing = SelectedPlayThing.Results;
}}
@@ -464,7 +464,7 @@ SPDX-License-Identifier: MPL-2.0
<p class="dark:text-black">{$t('index_page.check_if_chosen_wisely')}</p>
</div>
<div
class="m-2 rounded-lg p-2 bg-opacity-40 bg-white transition-all cursor-pointer lg:h-full"
class="m-2 rounded-lg p-2 bg-white/40 transition-all cursor-pointer lg:h-full"
on:click={() => {
selected_play_thing = SelectedPlayThing.Winners;
}}
@@ -502,13 +502,13 @@ SPDX-License-Identifier: MPL-2.0
<section class="mt-24">
<div class="flex justify-center w-full">
<h2 class="text-center text-3xl rounded-t-lg bg-opacity-40 bg-white py-2 px-6">
<h2 class="text-center text-3xl rounded-t-lg bg-white/40 py-2 px-6">
{$t('index_page.why_classquiz')}
</h2>
</div>
<div
class="grid grid-rows-2 lg:grid-rows-1 lg:grid-cols-2 bg-opacity-40 bg-white shadow-lg mb-12 lg:mx-12 mx-4 rounded-lg"
class="grid grid-rows-2 lg:grid-rows-1 lg:grid-cols-2 bg-white/40 shadow-lg mb-12 lg:mx-12 mx-4 rounded-lg"
>
<div>
<div class="p-12 rounded-lg flex justify-center items-center h-full">
@@ -522,7 +522,7 @@ SPDX-License-Identifier: MPL-2.0
>
{#each classquiz_reasons as reason, index}
<div
class="m-2 rounded-lg p-2 bg-opacity-40 bg-white transition-all cursor-pointer lg:h-full"
class="m-2 rounded-lg p-2 bg-white/40 transition-all cursor-pointer lg:h-full"
on:click={() => {
selected_classquiz_reason = index;
}}
@@ -542,7 +542,7 @@ SPDX-License-Identifier: MPL-2.0
{#if newsletterModalOpen}
<div
class="fixed bottom-8 right-5 bg-white rounded-lg h-fit w-11/12 ml-5 lg:w-2/12 z-50 p-2 bg-white dark:bg-gray-700"
transition:fly
transition:fly|global
>
<Newsletter bind:open={newsletterModalOpen} />
</div>
@@ -93,7 +93,7 @@ SPDX-License-Identifier: MPL-2.0
<h2 class="text-2xl mx-auto">{$t('controllers.controller_name')}</h2>
<div class="mx-auto flex">
<input
class="rounded p-1 transition-all outline-none text-center dark:bg-gray-700"
class="rounded-sm p-1 transition-all outline-hidden text-center dark:bg-gray-700"
bind:value={controller.name}
on:keyup={save_player_name_debounce}
/>
@@ -104,7 +104,7 @@ SPDX-License-Identifier: MPL-2.0
<h2 class="mx-auto text-2xl">{$t('controllers.player_name')}</h2>
<div class="mx-auto flex">
<input
class="rounded p-1 transition-all outline-none text-center dark:bg-gray-700"
class="rounded-sm p-1 transition-all outline-hidden text-center dark:bg-gray-700"
bind:value={controller.player_name}
on:keyup={save_player_name_debounce}
/>
@@ -59,7 +59,7 @@ SPDX-License-Identifier: MPL-2.0
id="player_name"
name="player_name"
type="text"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-none focus:border-rose-600"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-hidden focus:border-rose-600"
class:ring-red-700={input_data.player_name.length === 0}
class:ring-green-600={input_data.player_name.length !== 0}
bind:value={input_data.player_name}
@@ -78,7 +78,7 @@ SPDX-License-Identifier: MPL-2.0
id="name"
name="name"
type="text"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-none focus:border-rose-600"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-hidden focus:border-rose-600"
placeholder="Name"
class:ring-red-700={input_data.name.length === 0}
class:ring-green-600={input_data.name.length !== 0}
@@ -95,7 +95,7 @@ SPDX-License-Identifier: MPL-2.0
<div class="flex items-center justify-center mt-4">
<button
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded hover:bg-gray-600 focus:outline-none"
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded-sm hover:bg-gray-600 focus:outline-hidden"
disabled={!isValid || isSubmitting}
class:cursor-not-allowed={!isValid || isSubmitting}
class:opacity-50={!isValid || isSubmitting}
@@ -93,32 +93,32 @@ SPDX-License-Identifier: MPL-2.0
>
{#if step === 0}
<!-- <p>StartWindow</p>-->
<div transition:slide>
<div transition:slide|global>
<StartWindow bind:session_data bind:step />
</div>
{:else if selected_method === null}
<!-- <p>SelectWindow</p>-->
<div transition:slide>
<div transition:slide|global>
<SelectMethod bind:session_data bind:step bind:selected_method />
</div>
{:else if selected_method === 'PASSWORD'}
<!-- <p>PasswordWindow</p>-->
<div transition:slide>
<div transition:slide|global>
<PasswordComponent bind:session_data bind:done bind:step bind:selected_method />
</div>
{:else if selected_method === 'PASSKEY'}
<!-- <p>WebauthnWindow</p>-->
<div transition:slide>
<div transition:slide|global>
<WebauthnComponent bind:session_data bind:done bind:step bind:selected_method />
</div>
{:else if selected_method === 'BACKUP'}
<!-- <p>BackupWindow</p>-->
<div transition:slide>
<div transition:slide|global>
<BackupComponent bind:session_data bind:done bind:step bind:selected_method />
</div>
{:else if selected_method === 'TOTP'}
<!-- <p>TotpWindow</p>-->
<div transition:slide>
<div transition:slide|global>
<TotpComponent bind:session_data bind:done bind:step bind:selected_method />
</div>
{/if}
@@ -53,7 +53,7 @@ SPDX-License-Identifier: MPL-2.0
bind:value={backup_code}
name="backup_code"
type="text"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-none focus:border-rose-600"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-hidden focus:border-rose-600"
placeholder={$t('words.backup_code')}
/>
<label
@@ -73,7 +73,7 @@ SPDX-License-Identifier: MPL-2.0
>{$t('login_page.use_backup_code')}</button
>
<button
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded hover:bg-gray-600 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50"
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded-sm hover:bg-gray-600 focus:outline-hidden disabled:cursor-not-allowed disabled:opacity-50"
disabled={!backup_code_valid}
type="submit"
>
@@ -65,7 +65,7 @@ SPDX-License-Identifier: MPL-2.0
bind:value={password}
name="password"
type="password"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-none focus:border-rose-600"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-hidden focus:border-rose-600"
placeholder={$t('words.password')}
autocomplete="current-password"
/>
@@ -86,7 +86,7 @@ SPDX-License-Identifier: MPL-2.0
>{$t('login_page.use_backup_code')}</button
>
<button
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded hover:bg-gray-600 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50"
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded-sm hover:bg-gray-600 focus:outline-hidden disabled:cursor-not-allowed disabled:opacity-50"
disabled={!password}
type="submit"
>
@@ -4,8 +4,6 @@ SPDX-FileCopyrightText: 2023 Marlon W (Mawoka)
SPDX-License-Identifier: MPL-2.0
-->
<script lang="ts">
import { getLocalization } from '$lib/i18n';
import OAuthBlock from './oauth_block.svelte';
@@ -58,7 +56,7 @@ SPDX-License-Identifier: MPL-2.0
bind:value={email}
name="email"
type="text"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-none focus:border-rose-600"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-hidden focus:border-rose-600"
placeholder={$t('login_page.email_or_username')}
autocomplete="email"
/>
@@ -78,7 +76,7 @@ SPDX-License-Identifier: MPL-2.0
>
<button
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded hover:bg-gray-600 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50"
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded-sm hover:bg-gray-600 focus:outline-hidden disabled:cursor-not-allowed disabled:opacity-50"
disabled={emailEmpty}
type="submit"
>
@@ -79,7 +79,7 @@ SPDX-License-Identifier: MPL-2.0
bind:value={totp}
name="totp"
type="text"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-none focus:border-rose-600"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-hidden focus:border-rose-600"
placeholder={$t('words.totp')}
autocomplete="one-time-code"
/>
@@ -100,7 +100,7 @@ SPDX-License-Identifier: MPL-2.0
>{$t('login_page.use_backup_code')}</button
>
<button
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded hover:bg-gray-600 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50"
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded-sm hover:bg-gray-600 focus:outline-hidden disabled:cursor-not-allowed disabled:opacity-50"
disabled={!totp_valid}
type="submit"
>
@@ -91,7 +91,7 @@ SPDX-License-Identifier: MPL-2.0
>{$t('login_page.use_backup_code')}</button
>
<button
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded hover:bg-gray-600 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50"
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded-sm hover:bg-gray-600 focus:outline-hidden disabled:cursor-not-allowed disabled:opacity-50"
disabled={isLoading}
on:click={start_thing}
>
@@ -28,7 +28,7 @@ SPDX-License-Identifier: MPL-2.0
<div class="flex justify-center w-full pt-10">
<a
href="/account/login"
class="px-4 py-2 leading-5 text-black dark:text-white transition-colors duration-200 transform bg-gray-50 dark:bg-gray-700 rounded text-center hover:bg-gray-600 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50"
class="px-4 py-2 leading-5 text-black dark:text-white transition-colors duration-200 transform bg-gray-50 dark:bg-gray-700 rounded-sm text-center hover:bg-gray-600 focus:outline-hidden disabled:cursor-not-allowed disabled:opacity-50"
>
Go back to login-page
</a>
@@ -82,7 +82,7 @@ SPDX-License-Identifier: MPL-2.0
bind:value={passwordData.password1}
name="password1"
type="password"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-none focus:border-rose-600"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-hidden focus:border-rose-600"
placeholder={$t('words.password')}
/>
<label
@@ -100,7 +100,7 @@ SPDX-License-Identifier: MPL-2.0
name="password2"
type="password"
bind:value={passwordData.password2}
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-none focus:border-rose-600"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-hidden focus:border-rose-600"
placeholder={$t('words.repeat_password')}
/>
<label
@@ -120,7 +120,7 @@ SPDX-License-Identifier: MPL-2.0
>
<button
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded hover:bg-gray-600 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50"
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded-sm hover:bg-gray-600 focus:outline-hidden disabled:cursor-not-allowed disabled:opacity-50"
disabled={!passwordsValid}
type="submit"
>
@@ -106,7 +106,7 @@ SPDX-License-Identifier: MPL-2.0
id="email"
name="email"
type="email"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-none focus:border-rose-600"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-hidden focus:border-rose-600"
placeholder={$t('words.email')}
class:ring-red-700={$errors.email !== null}
class:ring-green-600={$touched.email === true &&
@@ -126,7 +126,7 @@ SPDX-License-Identifier: MPL-2.0
id="username"
name="username"
type="text"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-none focus:border-rose-600"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-hidden focus:border-rose-600"
placeholder={$t('words.username')}
class:ring-red-700={$errors.username !== null}
class:ring-green-600={$touched.username === true &&
@@ -149,7 +149,7 @@ SPDX-License-Identifier: MPL-2.0
class:ring-red-700={$errors.password1 !== null}
class:ring-green-600={$touched.password1 === true &&
$errors.password1 === null}
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-none focus:border-rose-600"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-hidden focus:border-rose-600"
placeholder={$t('words.password')}
/>
<label
@@ -166,7 +166,7 @@ SPDX-License-Identifier: MPL-2.0
id="password2"
name="password2"
type="password"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-none focus:border-rose-600"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-hidden focus:border-rose-600"
placeholder={$t('words.password')}
class:ring-red-700={$errors.password2 !== null}
class:ring-green-600={$touched.password2 === true &&
@@ -181,7 +181,7 @@ SPDX-License-Identifier: MPL-2.0
</div>
</div>
<div
class="ring-1 ring-gray-500 focus:outline-none rounded-lg m-4 py-2"
class="ring-1 ring-gray-500 focus:outline-hidden rounded-lg m-4 py-2"
class:ring-red-700={$errors.privacy_accept !== null}
class:ring-green-600={$touched.privacy_accept === true &&
$errors.privacy_accept === null}
@@ -195,7 +195,7 @@ SPDX-License-Identifier: MPL-2.0
</label>
</div>
<div
class="ring-1 ring-gray-500 focus:outline-none rounded-lg m-4 py-2"
class="ring-1 ring-gray-500 focus:outline-hidden rounded-lg m-4 py-2"
class:ring-red-700={$errors.tos_accept !== null}
class:ring-green-600={$touched.tos_accept === true &&
$errors.tos_accept === null}
@@ -217,7 +217,7 @@ SPDX-License-Identifier: MPL-2.0
>
<button
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded hover:bg-gray-600 focus:outline-none"
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded-sm hover:bg-gray-600 focus:outline-hidden"
disabled={!$isValid || $isSubmitting}
class:cursor-not-allowed={!$isValid || $isSubmitting}
class:opacity-50={!$isValid || $isSubmitting}
@@ -270,10 +270,7 @@ SPDX-License-Identifier: MPL-2.0
<div
class="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0"
>
<div
class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"
aria-hidden="true"
/>
<div class="fixed inset-0 bg-gray-500/75 transition-opacity" aria-hidden="true" />
<!-- This element is to trick the browser into centering the modal contents. -->
<span class="hidden sm:inline-block sm:align-middle sm:h-screen" aria-hidden="true"
@@ -285,7 +282,7 @@ SPDX-License-Identifier: MPL-2.0
<div class="bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4">
<div class="sm:flex sm:items-start">
<div
class="mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10"
class="mx-auto shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10"
>
<!-- Heroicon name: outline/exclamation -->
{#if responseData.data === '409' || responseData.data === 'error' || responseData.data === '400'}
@@ -362,7 +359,7 @@ SPDX-License-Identifier: MPL-2.0
responseData.open = false;
window.location.assign('/');
}}
class="mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm"
class="mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-xm px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm"
>{$t('words.close')}
</button>
</div>
@@ -69,7 +69,7 @@ SPDX-License-Identifier: MPL-2.0
bind:value={email}
name="email"
type="email"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-none focus:border-rose-600"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-hidden focus:border-rose-600"
placeholder={$t('words.email')}
/>
<label
@@ -89,7 +89,7 @@ SPDX-License-Identifier: MPL-2.0
>
<button
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded hover:bg-gray-600 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50"
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded-sm hover:bg-gray-600 focus:outline-hidden disabled:cursor-not-allowed disabled:opacity-50"
disabled={email === ''}
type="submit"
>
@@ -184,21 +184,21 @@ SPDX-License-Identifier: MPL-2.0
<label
>{$t('settings_page.old_password')}:<input
type="password"
class="m-2 text-black rounded p-1 dark:bg-gray-700 dark:text-white"
class="m-2 text-black rounded-sm p-1 dark:bg-gray-700 dark:text-white"
bind:value={changePasswordData.oldPassword}
/></label
>
<label
>{$t('settings_page.new_password')}:<input
type="password"
class="m-2 text-black rounded p-1 dark:bg-gray-700 dark:text-white"
class="m-2 text-black rounded-sm p-1 dark:bg-gray-700 dark:text-white"
bind:value={changePasswordData.newPassword}
/></label
>
<label
>{$t('settings_page.repeat_password')}:<input
type="password"
class="m-2 text-black rounded p-1 dark:bg-gray-700 dark:text-white"
class="m-2 text-black rounded-sm p-1 dark:bg-gray-700 dark:text-white"
bind:value={changePasswordData.newPasswordConfirm}
/></label
>
@@ -123,7 +123,7 @@ SPDX-License-Identifier: MPL-2.0
>
<img
src={get_image_url({ ...data, [data_keys[index]]: key })}
in:fade={{ duration: 100 }}
in:fade|global={{ duration: 100 }}
/>
</button>
{/each}
@@ -133,17 +133,19 @@ SPDX-License-Identifier: MPL-2.0
</div>
{#if finished}
<div
class="fixed top-0 left-0 w-full h-full z-30 bg-black flex justify-center flex-col bg-opacity-90"
out:fade={{ duration: 200 }}
in:fade={{ duration: 300 }}
class="fixed top-0 left-0 w-full h-full z-30 bg-black/90 flex justify-center flex-col"
out:fade|global={{ duration: 200 }}
in:fade|global={{ duration: 300 }}
>
<h1 class="m-auto text-4xl" in:fade={{ delay: 3500 }}>{$t('avatar_settings.thats_you')}</h1>
<h1 class="m-auto text-4xl" in:fade|global={{ delay: 3500 }}>
{$t('avatar_settings.thats_you')}
</h1>
<img
class="m-auto w-1/2 h-1/2 z-20"
src={get_image_url(data)}
in:fly={{ delay: 500, duration: 4000, y: -500, easing: bounceOut }}
in:fly|global={{ delay: 500, duration: 4000, y: -500, easing: bounceOut }}
/>
<div class="m-auto grid grid-cols-2 gap-4" in:fade={{ delay: 3500 }}>
<div class="m-auto grid grid-cols-2 gap-4" in:fade|global={{ delay: 3500 }}>
<BrownButton
on:click={() => {
index = 0;
@@ -183,7 +183,7 @@ SPDX-License-Identifier: MPL-2.0
type="button"
role="switch"
aria-checked="true"
class="relative inline-flex h-5 w-8 shrink-0 cursor-pointer appearance-none rounded-full border-2 border-transparent bg-blue-700 transition focus:outline-none focus:ring focus:ring-blue-200"
class="relative inline-flex h-5 w-8 shrink-0 cursor-pointer appearance-none rounded-full border-2 border-transparent bg-blue-700 transition focus:outline-hidden focus:ring focus:ring-blue-200"
>
<span
aria-hidden="true"
@@ -205,7 +205,7 @@ SPDX-License-Identifier: MPL-2.0
}}
role="switch"
aria-checked="false"
class="relative inline-flex h-5 w-8 shrink-0 cursor-pointer appearance-none rounded-full border-2 border-transparent bg-gray-200 transition focus:outline-none focus:ring focus:ring-blue-200"
class="relative inline-flex h-5 w-8 shrink-0 cursor-pointer appearance-none rounded-full border-2 border-transparent bg-gray-200 transition focus:outline-hidden focus:ring focus:ring-blue-200"
>
<span
aria-hidden="true"
@@ -27,7 +27,7 @@ SPDX-License-Identifier: MPL-2.0
};
</script>
<div class="w-screen h-screen fixed top-0 left-0 p-48 z-30 bg-black bg-opacity-50">
<div class="w-screen h-screen fixed top-0 left-0 p-48 z-30 bg-black/50">
<div class="w-full h-full">
<button
class="bg-gray-200 dark:bg-gray-900 px-2 py-1 rounded-t-lg hover:bg-gray-300 transition"
@@ -18,7 +18,7 @@ SPDX-License-Identifier: MPL-2.0
};
</script>
<div class="w-screen h-screen fixed top-0 left-0 p-48 z-30 bg-black bg-opacity-50">
<div class="w-screen h-screen fixed top-0 left-0 p-48 z-30 bg-black/50">
<div class="w-full h-full">
<button
class="bg-gray-200 dark:bg-gray-900 px-2 py-1 rounded-t-lg hover:bg-gray-300 transition"
+3 -6
View File
@@ -71,10 +71,7 @@ SPDX-License-Identifier: MPL-2.0
<div
class="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0"
>
<div
class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"
aria-hidden="true"
/>
<div class="fixed inset-0 bg-gray-500/75 transition-opacity" aria-hidden="true" />
<span class="hidden sm:inline-block sm:align-middle sm:h-screen" aria-hidden="true"
>&#8203;</span
@@ -85,7 +82,7 @@ SPDX-License-Identifier: MPL-2.0
<div class="bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4">
<div class="sm:flex sm:items-start">
<div
class="mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10"
class="mx-auto shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10"
>
<!-- Heroicon name: outline/exclamation -->
<svg
@@ -119,7 +116,7 @@ SPDX-License-Identifier: MPL-2.0
on:click={() => {
window.location.href = '/dashboard';
}}
class="mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm"
class="mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-xm px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm"
>{$t('words.close')}
</button>
</div>
+6 -6
View File
@@ -119,14 +119,14 @@ SPDX-License-Identifier: MPL-2.0
{:then quizzes}
<div class="flex flex-col w-full mx-auto">
<!-- <button
class='px-4 py-2 font-medium tracking-wide text-gray-500 whitespace-nowrap dark:text-gray-400 capitalize transition-colors dark:bg-gray-700 duration-200 transform bg-[#B07156] rounded-md hover:bg-green-600 focus:outline-none focus:ring focus:ring-blue-300 focus:ring-opacity-80'>
class='px-4 py-2 font-medium tracking-wide text-gray-500 whitespace-nowrap dark:text-gray-400 capitalize transition-colors dark:bg-gray-700 duration-200 transform bg-[#B07156] rounded-md hover:bg-green-600 focus:outline-hidden focus:ring focus:ring-blue-300 focus:ring-opacity-80'>
Primary
</button>-->
<div class="w-full grid lg:grid-cols-4 gap-2 grid-cols-2 px-4">
{#if create_button_clicked}
<div
class="flex gap-2"
transition:fly={{ y: 10 }}
transition:fly|global={{ y: 10 }}
use:tippy={{ content: 'Unsure? Choose "Quiz".' }}
>
<BrownButton href="/create">{$t('words.quiz')}</BrownButton>
@@ -155,7 +155,7 @@ SPDX-License-Identifier: MPL-2.0
<div>
<input
bind:value={search_term}
class="p-2 rounded-lg outline-none text-center w-96 dark:bg-gray-700"
class="p-2 rounded-lg outline-hidden text-center w-96 dark:bg-gray-700"
placeholder={$t('dashboard.search_for_own_quizzes')}
/>
<button
@@ -185,7 +185,7 @@ SPDX-License-Identifier: MPL-2.0
<div class="flex flex-col gap-4 mt-4 px-2">
{#each items_to_show as quiz}
<div
class="grid grid-cols-2 lg:grid-cols-3 w-full rounded border-[#B07156] border-2 p-2 h-[20vh] overflow-hidden max-h-[20vh]"
class="grid grid-cols-2 lg:grid-cols-3 w-full rounded-sm border-[#B07156] border-2 p-2 h-[20vh] overflow-hidden max-h-[20vh]"
>
<div class="hidden lg:flex w-auto h-full items-center relative">
{#if quiz.cover_image}
@@ -193,11 +193,11 @@ SPDX-License-Identifier: MPL-2.0
src="/api/v1/storage/download/{quiz.cover_image}"
alt="user provided"
loading="lazy"
class="shrink-0 max-w-full max-h-full absolute rounded"
class="shrink-0 max-w-full max-h-full absolute rounded-sm"
/>-->
<MediaComponent
src={quiz.cover_image}
css_classes="shrink-0 max-w-full max-h-full absolute rounded"
css_classes="shrink-0 max-w-full max-h-full absolute rounded-sm"
/>
{/if}
</div>
@@ -32,12 +32,12 @@ SPDX-License-Identifier: MPL-2.0
{#if quiz}
<div
class="fixed w-full h-full top-0 flex bg-black bg-opacity-50 z-50 overflow-scroll"
class="fixed w-full h-full top-0 flex bg-black/50 z-50 overflow-scroll"
on:click={on_parent_click}
transition:fade|local={{ duration: 100 }}
transition:fade={{ duration: 100 }}
>
<div
class="m-auto bg-white dark:bg-gray-600 rounded shadow-2xl flex p-4 flex-col lg:w-2/3 w-11/12 h-5/6"
class="m-auto bg-white dark:bg-gray-600 rounded-sm shadow-2xl flex p-4 flex-col lg:w-2/3 w-11/12 h-5/6"
>
<h1 class="text-center text-5xl">{$t('words.analytics')}</h1>
<section class="flex flex-col gap-2 mt-8">
+3 -6
View File
@@ -95,10 +95,7 @@ SPDX-License-Identifier: MPL-2.0
<div
class="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0"
>
<div
class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"
aria-hidden="true"
/>
<div class="fixed inset-0 bg-gray-500/75 transition-opacity" aria-hidden="true" />
<span class="hidden sm:inline-block sm:align-middle sm:h-screen" aria-hidden="true"
>&#8203;</span
@@ -109,7 +106,7 @@ SPDX-License-Identifier: MPL-2.0
<div class="bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4">
<div class="sm:flex sm:items-start">
<div
class="mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10"
class="mx-auto shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10"
>
<!-- Heroicon name: outline/exclamation -->
<svg
@@ -145,7 +142,7 @@ SPDX-License-Identifier: MPL-2.0
on:click={() => {
window.location.href = '/dashboard';
}}
class="mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm"
class="mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-xm px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm"
>{$t('words.close')}
</button>
</div>
+6 -6
View File
@@ -61,7 +61,7 @@ SPDX-License-Identifier: MPL-2.0
<div class="grid grid-cols-1 lg:grid-cols-2 p-4 gap-4">
{#each images as image}
<div
class="border-2 border-[#B07156] rounded p-2 grid grid-cols-2 hover:opacity-100 transition-all"
class="border-2 border-[#B07156] rounded-sm p-2 grid grid-cols-2 hover:opacity-100 transition-all"
class:opacity-40={image.quiztivities.length === 0 && image.quizzes.length === 0}
>
<img
@@ -119,11 +119,11 @@ SPDX-License-Identifier: MPL-2.0
{#if edit_popup}
<div
transition:fade|local={{ duration: 100 }}
class="fixed top-0 left-0 h-screen w-screen z-40 flex bg-black bg-opacity-50"
transition:fade={{ duration: 100 }}
class="fixed top-0 left-0 h-screen w-screen z-40 flex bg-black/50"
on:click={close_popup_handler}
>
<div class="w-auto h-auto m-auto rounded bg-white dark:bg-gray-700 p-4">
<div class="w-auto h-auto m-auto rounded-sm bg-white dark:bg-gray-700 p-4">
<h1 class="text-2xl text-center">{$t('file_dashboard.edit_the_image')}</h1>
<form class="flex flex-col" on:submit|preventDefault={save_image_metadata}>
<div class="flex flex-row">
@@ -134,14 +134,14 @@ SPDX-License-Identifier: MPL-2.0
</div>
<div class="flex flex-col gap-3">
<input
class="rounded outline-none dark:bg-gray-500 p-0.5 border-4 border-transparent"
class="rounded-sm outline-hidden dark:bg-gray-500 p-0.5 border-4 border-transparent"
id="name"
type="text"
bind:value={edit_popup.filename}
/>
<input
class:border-red-700={!edit_popup.alt_text}
class="transition rounded outline-none dark:bg-gray-500 p-0.5 border-4 border-transparent"
class="transition rounded-sm outline-hidden dark:bg-gray-500 p-0.5 border-4 border-transparent"
id="alt_text"
type="text"
bind:value={edit_popup.alt_text}
+1 -1
View File
@@ -190,7 +190,7 @@ SPDX-License-Identifier: MPL-2.0
>
</div>
<span
class="h-full transition-all absolute rounded bg-black bg-opacity-50"
class="h-full transition-all absolute rounded-sm bg-black/50"
style="width: {100 - stats.progress * 100}%"
/>
</div>
+4 -4
View File
@@ -153,7 +153,7 @@ SPDX-License-Identifier: MPL-2.0
bind:value={url_input}
name="email"
type="url"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-none focus:border-rose-600"
class="w-full peer bg-transparent h-10 rounded-lg text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-hidden focus:border-rose-600"
placeholder="https://create.kahoot.it/details/something"
class:ring-red-700={!url_valid}
class:ring-green-600={url_valid}
@@ -177,7 +177,7 @@ SPDX-License-Identifier: MPL-2.0
<span />
<button
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded hover:bg-gray-600 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50"
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded-sm hover:bg-gray-600 focus:outline-hidden disabled:cursor-not-allowed disabled:opacity-50"
disabled={!url_valid || is_loading}
type="submit"
>
@@ -213,7 +213,7 @@ SPDX-License-Identifier: MPL-2.0
name="file"
type="file"
accept=".cqa,.xlsx"
class="w-full peer bg-transparent h-10 rounded-lg py-1.5 text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-none focus:border-rose-600"
class="w-full peer bg-transparent h-10 rounded-lg py-1.5 text-gray-700 dark:text-white placeholder-transparent ring-2 px-2 ring-gray-500 focus:ring-sky-600 focus:outline-hidden focus:border-rose-600"
class:ring-red-700={!file_input}
class:ring-green-600={file_input}
/>
@@ -236,7 +236,7 @@ SPDX-License-Identifier: MPL-2.0
<span />
<button
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded hover:bg-gray-600 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50"
class="px-4 py-2 leading-5 text-white transition-colors duration-200 transform bg-gray-700 rounded-sm hover:bg-gray-600 focus:outline-hidden disabled:cursor-not-allowed disabled:opacity-50"
disabled={!file_input || is_loading}
type="submit"
>
+2 -2
View File
@@ -13,7 +13,7 @@ SPDX-License-Identifier: MPL-2.0
<div class="flex flex-col p-2">
{#each data.quizzes as quiz}
<div class="border-2 border-[#B07156] rounded w-full h-[20vh] p-2 flex flex-col gap-2">
<div class="border-2 border-[#B07156] rounded-sm w-full h-[20vh] p-2 flex flex-col gap-2">
<div class="grid grid-cols-3 h-full">
<div class="hidden lg:flex w-auto h-full items-center relative">
{#if quiz.cover_image}
@@ -21,7 +21,7 @@ SPDX-License-Identifier: MPL-2.0
src="/api/v1/storage/download/{quiz.cover_image}"
alt="user provided"
loading="lazy"
class="shrink-0 max-w-full max-h-full absolute rounded"
class="shrink-0 max-w-full max-h-full absolute rounded-sm"
/>
{/if}
</div>
@@ -14,7 +14,7 @@ SPDX-License-Identifier: MPL-2.0
const { t } = getLocalization();
</script>
<div class="mt-auto h-[7vh] bg-opacity-50 bg-black shadow-2xl flex justify-between">
<div class="mt-auto h-[7vh] bg-black/50 shadow-2xl flex justify-between">
<div class="my-auto justify-start ml-4">
<BrownButton
disabled={current_slide_index < 1}
@@ -73,7 +73,7 @@ SPDX-License-Identifier: MPL-2.0
</div>
</div>
{#if selected_tab === SelectedTab.Overview}
<div in:fade={{ duration: 150 }}>
<div in:fade|global={{ duration: 150 }}>
<GeneralOverview
questions={data.results.questions}
answers={data.results.answers}
@@ -83,11 +83,11 @@ SPDX-License-Identifier: MPL-2.0
/>
</div>
{:else if selected_tab === SelectedTab.Questions}
<div in:fade={{ duration: 150 }}>
<div in:fade|global={{ duration: 150 }}>
<QuestionOverview questions={data.results.questions} answers={data.results.answers} />
</div>
{:else if selected_tab === SelectedTab.Players}
<div in:fade={{ duration: 150 }}>
<div in:fade|global={{ duration: 150 }}>
<PlayerOverview
custom_field={data.results.custom_field_data}
scores={data.results.player_scores}
@@ -57,7 +57,7 @@ SPDX-License-Identifier: MPL-2.0
{#each questions as question, i}
<div class="transition-all">
<div
class="w-full bg-white p-2 rounded grid grid-cols-3 z-40 dark:bg-gray-700 bg-opacity-60 dark:bg-opacity-80"
class="w-full bg-white/60 p-2 rounded-sm grid grid-cols-3 z-40 dark:bg-gray-700/80"
>
<button
class="text-center underline text-xl"
@@ -80,7 +80,7 @@ SPDX-License-Identifier: MPL-2.0
{/if}
</div>
{#if question_open === i}
<div in:fly|local={{ y: -10 }}>
<div in:fly={{ y: -10 }}>
<QuestionTab {question} answers={answers[i]} />
</div>
{/if}
@@ -51,7 +51,7 @@ SPDX-License-Identifier: MPL-2.0
</script>
<div class="flex justify-center">
<div class="bg-white p-2 -z-10 w-10/12 rounded dark:bg-gray-700">
<div class="bg-white p-2 -z-10 w-10/12 rounded-sm dark:bg-gray-700">
{#if question.type !== QuizQuestionType.ORDER && question.type !== QuizQuestionType.RANGE}
<div class="flex flex-col mb-4">
{#each question.answers as answer}
+2 -2
View File
@@ -54,14 +54,14 @@ SPDX-License-Identifier: MPL-2.0
>
<input
type="search"
class="form-control relative flex-auto min-w-0 block w-full px-3 py-1.5 text-base font-normal text-gray-700 bg-white bg-clip-padding border border-solid border-gray-300 rounded transition ease-in-out m-0 focus:text-gray-700 focus:bg-white focus:border-blue-600 focus:outline-none"
class="form-control relative flex-auto min-w-0 block w-full px-3 py-1.5 text-base font-normal text-gray-700 bg-white bg-clip-padding border border-solid border-gray-300 rounded-sm transition ease-in-out m-0 focus:text-gray-700 focus:bg-white focus:border-blue-600 focus:outline-hidden"
placeholder={$t('search_page.at_least_3_characters')}
aria-label="Search"
aria-describedby="button-addon2"
bind:value={search_term}
/>
<button
class="px-6 py-2.5 bg-blue-600 text-white font-medium text-xs leading-tight uppercase rounded shadow-md hover:bg-blue-700 hover:shadow-lg focus:bg-blue-700 focus:shadow-lg focus:outline-none focus:ring-0 active:bg-blue-800 active:shadow-lg transition duration-150 ease-in-out flex items-center disabled:opacity-50 disabled:cursor-not-allowed"
class="px-6 py-2.5 bg-blue-600 text-white font-medium text-xs leading-tight uppercase rounded-sm shadow-md hover:bg-blue-700 hover:shadow-lg focus:bg-blue-700 focus:shadow-lg focus:outline-hidden focus:ring-0 active:bg-blue-800 active:shadow-lg transition duration-150 ease-in-out flex items-center disabled:opacity-50 disabled:cursor-not-allowed"
id="button-addon2"
disabled={search_term.length <= 2}
type="submit"
@@ -120,7 +120,7 @@ SPDX-License-Identifier: MPL-2.0
<a
href="/api/v1/eximport/{quiz.id}"
aria-label="Download the quiz"
class="flex justify-center px-4 py-2 leading-5 text-black dark:text-white transition-colors duration-200 transform bg-gray-50 dark:bg-gray-700 rounded text-center hover:bg-gray-300 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 dark:hover:bg-gray-600"
class="flex justify-center px-4 py-2 leading-5 text-black dark:text-white transition-colors duration-200 transform bg-gray-50 dark:bg-gray-700 rounded-sm text-center hover:bg-gray-300 focus:outline-hidden disabled:cursor-not-allowed disabled:opacity-50 dark:hover:bg-gray-600"
><!-- heroicons/download -->
<svg
class="w-5 h-5"
@@ -29,7 +29,7 @@ SPDX-License-Identifier: MPL-2.0
};
</script>
<div class="rounded border-2 border-[#B07156] flex flex-col w-fit gap-2 p-2">
<div class="rounded-sm border-2 border-[#B07156] flex flex-col w-fit gap-2 p-2">
<div class:opacity-50={mod_rating !== null && mod_rating !== undefined} class="transition">
<BrownButton on:click={() => (mod_rating = null)}>Not Checked</BrownButton>
</div>