diff --git a/src/lib/ae_core/ae_comp__hosted_files_download_button.svelte b/src/lib/ae_core/ae_comp__hosted_files_download_button.svelte index f33a442c..94399c6d 100644 --- a/src/lib/ae_core/ae_comp__hosted_files_download_button.svelte +++ b/src/lib/ae_core/ae_comp__hosted_files_download_button.svelte @@ -34,7 +34,7 @@ label?: import('svelte').Snippet; } - let { + let { log_lvl = 0, hosted_file_id, hosted_file_obj, @@ -218,10 +218,10 @@ {@const file_id = hosted_file_obj?.id || hosted_file_obj?.hosted_file_id || hosted_file_id} {#await ae_promises[file_id]}
-
- +
{#if show_filename_view} @@ -250,8 +250,8 @@ {:else} {@const IconComp = ae_util.file_extension_icon_lucide(hosted_file_obj?.extension)}
-
@@ -276,7 +276,7 @@ {#if hosted_file_id && hosted_file_obj} {@const file_id = hosted_file_obj.id || hosted_file_obj.hosted_file_id || hosted_file_id} - + {#if show_direct_download}
-
diff --git a/src/lib/ae_core/ae_comp__hosted_files_upload.svelte b/src/lib/ae_core/ae_comp__hosted_files_upload.svelte index 49a3fd4b..d04ddb7e 100644 --- a/src/lib/ae_core/ae_comp__hosted_files_upload.svelte +++ b/src/lib/ae_core/ae_comp__hosted_files_upload.svelte @@ -278,7 +278,7 @@
{#await ae_promises.upload__hosted_file_obj}
- + Uploading {#if $ae_sess.api_upload_kv[task_id]} @@ -320,7 +320,7 @@ block w-full text-lg text-gray-900 border border-gray-300 rounded-lg - cursor-pointer + cursor-pointer bg-gray-50 dark:text-gray-400 focus:outline-hidden dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 {input_class_li.join(' ')} " @@ -341,7 +341,7 @@ $ae_sess.files.status__file_list != 'ready'} > {#await ae_promises.upload__hosted_file_obj} - + {#if $ae_sess.api_upload_kv[task_id]} {$ae_sess.api_upload_kv[task_id].percent_completed}% diff --git a/src/routes/core/users/[user_id]/+page.svelte b/src/routes/core/users/[user_id]/+page.svelte index 6f3bc520..1c862a72 100644 --- a/src/routes/core/users/[user_id]/+page.svelte +++ b/src/routes/core/users/[user_id]/+page.svelte @@ -4,18 +4,18 @@ import { goto } from '$app/navigation'; import { update_ae_obj__user, delete_ae_obj_id__user } from '$lib/ae_core/ae_core__user'; import { editable_fields__user } from '$lib/ae_core/ae_core__user.editable_fields'; - import { - ShieldCheck, - Mail, - User as UserIcon, - ArrowLeft, - Save, - Trash2, + import { + ShieldCheck, + Mail, + User as UserIcon, + ArrowLeft, + Save, + Trash2, Lock, Clock, Key, CheckCircle2, - XCircle, + CircleX, Fingerprint, Activity, Settings @@ -63,7 +63,7 @@ async function handle_delete() { if (!confirm('Are you sure you want to disable this user account?')) return; - + const result = await delete_ae_obj_id__user({ api_cfg: $ae_api, user_id: user.user_id_random, diff --git a/src/routes/events/[event_id]/(leads)/leads/exhibit/[exhibit_id]/ae_comp__exhibit_signin.svelte b/src/routes/events/[event_id]/(leads)/leads/exhibit/[exhibit_id]/ae_comp__exhibit_signin.svelte index 5e2840a4..17aaff9e 100644 --- a/src/routes/events/[event_id]/(leads)/leads/exhibit/[exhibit_id]/ae_comp__exhibit_signin.svelte +++ b/src/routes/events/[event_id]/(leads)/leads/exhibit/[exhibit_id]/ae_comp__exhibit_signin.svelte @@ -8,7 +8,7 @@ import { db_events } from '$lib/ae_events/db_events'; import { ae_loc } from '$lib/stores/ae_stores'; import { events_loc, events_sess } from '$lib/stores/ae_events_stores'; - import { Key, Mail, Lock, User, ArrowRight, LoaderCircle, AlertCircle, CheckCircle2 } from 'lucide-svelte'; + import { Key, Mail, Lock, User, ArrowRight, LoaderCircle, CircleAlert, CheckCircle2 } from 'lucide-svelte'; import { untrack } from 'svelte'; const exhibit_id = $derived(page.params.exhibit_id ?? ''); @@ -59,12 +59,12 @@ try { // Determine raw JSON string const raw_json = $lq__exhibit_obj?.license_li_json; - + // Parse if string, otherwise use empty array const licenses = typeof raw_json === 'string' ? JSON.parse(raw_json || '[]') : (Array.isArray(raw_json) ? raw_json : []); - + const found = licenses.find((l: any) => l.email?.toLowerCase() === email.toLowerCase().trim()); - + if (found && found.passcode === user_passcode) { // SUCCESS complete_signin(found.email, 'licensed'); @@ -81,10 +81,10 @@ function complete_signin(key: string, type: string) { status = 'success'; - + // Save to persistent store if (!$events_loc.leads.auth_exhibit_kv) $events_loc.leads.auth_exhibit_kv = {}; - + $events_loc.leads.auth_exhibit_kv[exhibit_id] = { key: key, type: type, @@ -102,10 +102,10 @@
{/if} @@ -465,7 +465,7 @@ ] == 'current'} >
- update_journal_entry()} @@ -473,7 +473,7 @@ />
- - - + - - - + Loading Journal Entry...
{/if} diff --git a/src/routes/journals/ae_comp__modal_journal_import.svelte b/src/routes/journals/ae_comp__modal_journal_import.svelte index b3d8ec98..178a5679 100644 --- a/src/routes/journals/ae_comp__modal_journal_import.svelte +++ b/src/routes/journals/ae_comp__modal_journal_import.svelte @@ -3,7 +3,7 @@ import { Upload, FileText, - AlertCircle, + CircleAlert, Check, X, RefreshCw diff --git a/src/routes/testing/hosted_files/+page.svelte b/src/routes/testing/hosted_files/+page.svelte index 926b6ff3..b93147a3 100644 --- a/src/routes/testing/hosted_files/+page.svelte +++ b/src/routes/testing/hosted_files/+page.svelte @@ -22,10 +22,10 @@ onMount(async () => { // Load the large file specifically first - large_file_obj = await load_ae_obj_id__hosted_file({ - api_cfg: $ae_api, + large_file_obj = await load_ae_obj_id__hosted_file({ + api_cfg: $ae_api, hosted_file_id: LARGE_FILE_ID, - log_lvl: 1 + log_lvl: 1 }); // Fallback for large file if API doesn't have it (for UI testing) @@ -39,17 +39,17 @@ }; } - const promises = test_ids.map(id => - load_ae_obj_id__hosted_file({ - api_cfg: $ae_api, + const promises = test_ids.map(id => + load_ae_obj_id__hosted_file({ + api_cfg: $ae_api, hosted_file_id: id, - log_lvl: 1 + log_lvl: 1 }) ); - + const results = await Promise.all(promises); hosted_files = results.filter((f: any) => f !== null) as any[]; - + // Add a fake object for the invalid ID test hosted_files.push({ id: 'INVALID_ID_TEST', @@ -85,7 +85,7 @@
Direct Download -
- +

- Use this file to verify the percentage counter and loading spinner. + Use this file to verify the percentage counter and loading spinner. This file is ~100MB+, which should provide ample time to observe the progress state.

@@ -125,9 +125,9 @@

ID: {LARGE_FILE_ID}

- +
-

Style & Variant Trials

- + {#if loading}
- + Loading test metadata gallery...
{:else} @@ -159,11 +159,11 @@
{file.extension}
- +

Variant: Tonal

-
- +

Variant: Filled

-
- +

Variant: Outline

-
- +

Variant: Ghost

-
- +

Custom Label Snippet:

- hosted_file_id or hosted_file_obj is missing.

-