chore: migrate all FA icons to Lucide (@lucide/svelte)

- Replaced all active FontAwesome <span class="fas fa-*"> icons with
  Lucide components across 145 files (excluding /idaa/ which is intentional)
- Fixed merge script bug: consolidated lucide-svelte imports into @lucide/svelte
- Replaced dynamic toggle patterns (fa-toggle-on/off) with ToggleRight/ToggleLeft
- Replaced fa-eye/fa-eye-slash with Eye/EyeOff
- Replaced fa-bug/fa-bug-slash with Bug/BugOff
- Replaced fa-sync fa-spin with RefreshCw + animate-spin
- Replaced fa-microchip with Cpu
- Fixed {@const} placement in element_manage_event_file_li.svelte
- Removed obsolete CSS hover rules for .unlock_icon/.lock_icon
- svelte-check: 0 errors, 0 warnings
This commit is contained in:
Scott Idem
2026-03-16 18:07:43 -04:00
parent c9050264a5
commit b543c8a930
147 changed files with 587 additions and 754 deletions

View File

@@ -25,7 +25,7 @@
} from '$lib/stores/ae_events_stores';
import { events_func } from '$lib/ae_events_functions';
import AE_Comp_Hosted_Files_Download_Button from '$lib/ae_core/ae_comp__hosted_files_download_button.svelte';
import { Check, Clock, Download, Eye, EyeOff, FileImage, FolderOpen, Laptop, LoaderCircle, Monitor, Pencil, RefreshCw, Save, Trash2, TriangleAlert } from '@lucide/svelte';
interface Props {
log_lvl?: number;
container_class_li?: string | Array<string>;
@@ -156,7 +156,7 @@
class:hidden={!$ae_loc.edit_mode || !$ae_loc.authenticated_access}
title="Refresh the list of files"
>
<span class="fas fa-sync-alt m-1"></span>
<RefreshCw size="1em" class="m-1" />
<div class="hidden">Files</div>
</button>
@@ -170,7 +170,7 @@
class:hidden={!$ae_loc.edit_mode || !$ae_loc.trusted_access}
title="Toggle direct download link and copy link button"
>
<span class="fas fa-download m-1"></span>
<Download size="1em" class="m-1" />
<div class="hidden">
{ae_tmp.show__direct_download ? 'Alt On' : 'Alt Download Off'}
</div>
@@ -193,7 +193,7 @@
'-- not set --'} (files: {$lq__event_file_obj_li?.length ??
'None'})"
>
<span class="fas fa-folder-open mx-1"></span>
<FolderOpen size="1em" class="mx-1" />
{@html $lq__event_file_obj_li
? `${$lq__event_file_obj_li.length}&times;`
: '-- none --'}
@@ -228,6 +228,7 @@
<tbody>
{#each $lq__event_file_obj_li as event_file_obj (event_file_obj.event_file_id)}
{@const ExtIcon = ae_util.file_extension_icon_lucide(event_file_obj.extension)}
<tr
class="ae_obj obj_event_file border-t border-b border-surface-200-800 hover:bg-surface-100-900 hover:border-surface-300-700 transition-colors duration-200"
class:dim={event_file_obj?.hide}
@@ -254,17 +255,17 @@
title="Convert this PDF to a high-res webp image for use in the Launcher poster display."
onclick={() => handle_convert_pdf_to_image(event_file_obj)}
>
<span class="fas fa-file-image mx-1"></span>
<FileImage size="1em" class="mx-1" />
Convert PDF → Image
</button>
{:else if convert_status_kv[event_file_obj.event_file_id] === 'converting'}
<span class="btn btn-sm preset-tonal-surface opacity-60 cursor-wait">
<span class="fas fa-spinner fa-spin mx-1"></span>
<LoaderCircle size="1em" class="mx-1 animate-spin" />
Converting…
</span>
{:else if convert_status_kv[event_file_obj.event_file_id] === 'done'}
<span class="btn btn-sm preset-tonal-success" title="Conversion complete. New webp hosted_file created: {convert_result_kv[event_file_obj.event_file_id]?.filename ?? ''}">
<span class="fas fa-check mx-1"></span>
<Check size="1em" class="mx-1" />
Done — {convert_result_kv[event_file_obj.event_file_id]?.filename ?? 'image created'}
</span>
{:else if convert_status_kv[event_file_obj.event_file_id] === 'error'}
@@ -276,7 +277,7 @@
convert_status_kv[event_file_obj.event_file_id] = 'idle';
}}
>
<span class="fas fa-exclamation-triangle mx-1"></span>
<TriangleAlert size="1em" class="mx-1" />
Failed — Retry?
</button>
{/if}
@@ -391,16 +392,12 @@
title="Save changes"
>
{#await ae_promises.update__event_file_obj}
<span
class="fas fa-spinner fa-spin mx-1"
></span>
<LoaderCircle size="1em" class="mx-1 animate-spin" />
<span class=""
>Saving {event_file_obj.extension}</span
>
{:then}
<span
class="fas fa-save mx-1"
></span>
<Save size="1em" class="mx-1" />
Save {event_file_obj.extension}
filename?
{/await}
@@ -444,8 +441,7 @@
event_file_obj.event_file_id}
title={`Rename this file? "${event_file_obj.filename}"}`}
>
<span class="fas fa-edit mx-1"
></span>
<Pencil size="1em" class="mx-1" />
{#if $events_sess.pres_mgmt?.show_field_edit__filename == event_file_obj.event_file_id}
Cancel?
{:else}
@@ -515,20 +511,15 @@
-->
{#await ae_promises.update__event_file_obj}
<span
class="fas fa-spinner fa-spin mx-1"
></span>
<LoaderCircle size="1em" class="mx-1 animate-spin" />
<span class=""
>Saving {event_file_obj.extension}</span
>
{:then}
{#if event_file_obj.hide}
<span class="fas fa-eye m-1"
></span> Unhide File
<Eye size="1em" class="m-1" /> Unhide File
{:else}
<span
class="fas fa-eye-slash m-1"
></span> Hide
<EyeOff size="1em" class="m-1" /> Hide
{/if}
{/await}
</button>
@@ -561,8 +552,7 @@
class="btn btn-sm preset-tonal-tertiary hover:preset-tonal-success"
title="Delete this file"
>
<span class="fas fa-trash-alt mx-1"
></span>
<Trash2 size="1em" class="mx-1" />
<!-- <span class="fas fa-minus mx-1"></span> -->
Delete
</button>
@@ -581,13 +571,9 @@
>
<div class="">
{#if event_file_obj.open_in_os == 'win'}
MS Windows <span
class="fab fa-windows"
></span>
MS Windows <Monitor size="1em" class="inline-block" />
{:else if event_file_obj.open_in_os == 'mac'}
Apple macOS <span
class="fab fa-apple"
></span>
Apple macOS <Laptop size="1em" class="inline-block" />
{/if}
</div>
@@ -698,11 +684,7 @@
Type:
<strong
>{event_file_obj.extension}
<span
class="fas fa-{ae_util.file_extension_icon(
event_file_obj.extension
)}"
></span>
<ExtIcon size="1em" class="inline-block" />
</strong>
<!-- {#if event_file_obj.open_in_os == 'win'}
<strong>
@@ -794,8 +776,7 @@
<!-- <span class="fas fa-cloud-upload-alt mx-1"></span> -->
<!-- Uploaded: -->
<!-- <span class="fas fa-calendar-day mx-1"></span> -->
<span class="fas fa-clock mx-1"
></span>
<Clock size="1em" class="mx-1" />
<strong>
{ae_util.iso_datetime_formatter(
event_file_obj.created_on,