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

@@ -1,6 +1,5 @@
<script lang="ts">
import { Settings } from '@lucide/svelte';
import { Code, Eraser, LockOpen, RefreshCw, Settings, ShieldCheck, ShieldUser, Trash2, UserRound, Users } from '@lucide/svelte';
import { ae_util } from '$lib/ae_utils/ae_utils';
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/stores/ae_stores';
import E_app_url_builder from '$lib/app_components/e_app_url_builder.svelte';
@@ -138,19 +137,19 @@
</div>
{#if $ae_loc.access_type && $ae_loc.access_type != 'anonymous'}
{#if $ae_loc.access_type == 'super'}
<span class="fas fa-secret mx-1"></span> Super Access
<ShieldCheck size="1em" class="mx-1" /> Super Access
{:else if $ae_loc.access_type == 'manager'}
<span class="fas fa-user-shield mx-1"></span> Manager Access
<ShieldUser size="1em" class="mx-1" /> Manager Access
{:else if $ae_loc.access_type == 'administrator'}
<span class="fas fa-user-ninja mx-1"></span> Administrator Access
<UserRound size="1em" class="mx-1" /> Administrator Access
{:else if $ae_loc.access_type == 'trusted'}
<span class="fas fa-user-nurse mx-1"></span> Trusted Access
<UserRound size="1em" class="mx-1" /> Trusted Access
{:else if $ae_loc.access_type == 'authenticated'}
<span class="fas fa-user-friends mx-1"></span> Authenticated Access
<Users size="1em" class="mx-1" /> Authenticated Access
{:else if $ae_loc.access_type == 'anonymous'}
<span class="fas fa-users mx-1"></span> Anonymous Access
<Users size="1em" class="mx-1" /> Anonymous Access
{:else}
<span class="fas fa-unlock mx-1"></span> Unknown Access
<LockOpen size="1em" class="mx-1" /> Unknown Access
{/if}
<!-- <button
@@ -171,18 +170,18 @@
<section class="space-y-2">
<h2 class="strong">Utilities:</h2>
<a class="btn btn-sm preset-tonal-secondary" href="/hosted_files">
<span class="fas fa-code mx-1"></span>
<Code size="1em" class="mx-1" />
Util: Convert Videos
</a>
{#if $ae_loc.iframe}
<a class="btn btn-sm preset-tonal-secondary" href="/?iframe=false">
<span class="fas fa-code mx-1"></span>
<Code size="1em" class="mx-1" />
Exit iframe Mode
</a>
{:else}
<a class="btn btn-sm preset-tonal-secondary" href="/?iframe=true">
<span class="fas fa-code mx-1"></span>
<Code size="1em" class="mx-1" />
Use iframe Mode
</a>
{/if}
@@ -196,9 +195,9 @@
window.location.reload();
}}
>
<span class="fas fa-sync mx-1"></span>
<RefreshCw size="1em" class="mx-1" />
Reload &
<span class="fas fa-trash mx-1"></span>
<Trash2 size="1em" class="mx-1" />
Clear Cache
</button>
<button
@@ -225,7 +224,7 @@
// alert('Local and Session Storage cleared and Indexed DBs deleted. You will probably want to refresh the page.');
}}
>
<span class="fas fa-eraser mx-1"></span>
<Eraser size="1em" class="mx-1" />
Clear Storage & DB
</button>
</div>
@@ -244,19 +243,19 @@ class:justify-end={!expand} -->
<span>
{#if $ae_loc.access_type && $ae_loc.access_type != 'anonymous'}
{#if $ae_loc.access_type == 'super'}
<span class="fas fa-secret mx-1"></span> Super Access
<ShieldCheck size="1em" class="mx-1" /> Super Access
{:else if $ae_loc.access_type == 'manager'}
<span class="fas fa-user-shield mx-1"></span> Manager Access
<ShieldUser size="1em" class="mx-1" /> Manager Access
{:else if $ae_loc.access_type == 'administrator'}
<span class="fas fa-user-ninja mx-1"></span> Administrator Access
<UserRound size="1em" class="mx-1" /> Administrator Access
{:else if $ae_loc.access_type == 'trusted'}
<span class="fas fa-user-nurse mx-1"></span> Trusted Access
<UserRound size="1em" class="mx-1" /> Trusted Access
{:else if $ae_loc.access_type == 'authenticated'}
<span class="fas fa-user-friends mx-1"></span> Authenticated Access
<Users size="1em" class="mx-1" /> Authenticated Access
{:else if $ae_loc.access_type == 'anonymous'}
<span class="fas fa-users mx-1"></span> Anonymous Access
<Users size="1em" class="mx-1" /> Anonymous Access
{:else}
<span class="fas fa-unlock mx-1"></span> Unknown Access
<LockOpen size="1em" class="mx-1" /> Unknown Access
{/if}
<!-- <button

View File

@@ -39,27 +39,7 @@
import { goto } from '$app/navigation';
// *** Import other supporting libraries
import {
// ArrowBigRight,
BadgeQuestionMark,
ChevronDown,
ChevronRight,
// CircleX,
// Copy,
// Eye, EyeOff,
// Key,
LifeBuoy,
// LogIn, LogOut, LockKeyhole,
// Mail, MailCheck,
// Menu,
RefreshCw,
// RefreshCcw,
// RefreshCcwDot,
// ShieldEllipsis, ShieldMinus, ShieldPlus, ShieldUser,
SquareX
// User, UserCheck
} from '@lucide/svelte';
import { BadgeQuestionMark, ChevronDown, ChevronRight, LifeBuoy, RefreshCw, SquareX } from '@lucide/svelte';
// *** Import Aether specific variables and functions
import {
ae_snip,
@@ -71,7 +51,6 @@
slct_trigger,
type key_val
} from '$lib/stores/ae_stores';
import { User } from 'lucide-svelte';
import { api } from '$lib/api/api';
if (log_lvl) {

View File

@@ -12,19 +12,7 @@
* (access_type, sign_in_out). Simple controls (theme, cfg utilities)
* are inlined here for clean panel layout without blue-bg conflicts.
*/
import {
Bug,
CircleX,
LogOut,
Menu,
Moon,
Sun,
ShieldEllipsis,
ShieldMinus,
ShieldUser,
User,
} from '@lucide/svelte';
import { Bug, CircleX, Eraser, LogOut, Maximize2, Menu, Minimize2, Moon, Palette, RefreshCw, ShieldEllipsis, ShieldMinus, ShieldUser, Sun, ToggleLeft, ToggleRight, User } from '@lucide/svelte';
import { ae_loc, ae_sess, ae_api } from '$lib/stores/ae_stores';
import Element_access_type from '$lib/app_components/e_app_access_type.svelte';
@@ -341,7 +329,7 @@
onclick={() => sec_appearance = !sec_appearance}
>
<span class="flex items-center gap-1">
<span class="fas fa-palette opacity-60"></span>
<Palette size="1em" class="opacity-60" />
Appearance
<span class="normal-case font-normal opacity-60 ml-1">
({$ae_loc?.theme_name ?? '—'} · {$ae_loc?.theme_mode ?? '—'})
@@ -425,12 +413,12 @@
<!-- iframe mode toggle -->
{#if $ae_loc.iframe}
<a class="btn btn-sm preset-tonal-secondary w-full justify-end" href="/?iframe=false">
<span class="fas fa-compress-arrows-alt opacity-60"></span>
<Minimize2 size="1em" class="opacity-60" />
Exit iframe Mode
</a>
{:else}
<a class="btn btn-sm preset-tonal-secondary w-full justify-end" href="/?iframe=true">
<span class="fas fa-expand-arrows-alt opacity-60"></span>
<Maximize2 size="1em" class="opacity-60" />
Enable iframe Mode
</a>
{/if}
@@ -442,7 +430,7 @@
onclick={() => window.location.reload()}
title="Hard reload the page"
>
<span class="fas fa-sync opacity-60"></span>
<RefreshCw size="1em" class="opacity-60" />
Reload Page
</button>
@@ -453,7 +441,7 @@
onclick={handle_clear_storage_db}
title="Clear localStorage, sessionStorage, and all IndexedDB tables then reload"
>
<span class="fas fa-eraser opacity-60"></span>
<Eraser size="1em" class="opacity-60" />
Clear Storage & DB
</button>
@@ -612,7 +600,7 @@
onclick={() => { $ae_loc.edit_mode = false; }}
title="Edit mode ON click to turn off"
>
<span class="fas fa-toggle-on text-sm inline-block"></span>
<ToggleRight size="1em" class="text-sm inline-block" />
<span class="btn-label max-w-0 overflow-hidden opacity-0 group-hover/edit:max-w-20 group-hover/edit:opacity-100 transition-all duration-300 ease-in-out text-xs pl-1">Edit</span>
</button>
{:else}
@@ -622,7 +610,7 @@
onclick={() => { $ae_loc.edit_mode = true; }}
title="Edit mode OFF click to turn on"
>
<span class="fas fa-toggle-off text-sm inline-block opacity-50"></span>
<ToggleLeft size="1em" class="text-sm inline-block opacity-50" />
<span class="btn-label max-w-0 overflow-hidden opacity-0 group-hover/edit:max-w-20 group-hover/edit:opacity-100 transition-all duration-300 ease-in-out text-xs pl-1">Edit</span>
</button>
{/if}

View File

@@ -18,9 +18,11 @@
ShieldMinus,
ShieldPlus,
ShieldUser,
// ToggleLeft, ToggleRight,
ToggleLeft, ToggleRight,
User,
UserCheck,
UserCog,
Wand2,
X
} from '@lucide/svelte';
@@ -191,22 +193,22 @@ max-w-max -->
<!-- <ShieldPlus class="inline-block" /> -->
{#if $ae_loc.access_type == 'super'}
<span class="fas fa-hat-wizard m-1"></span>
<Wand2 size="1em" class="m-1 inline-block" />
<span class:hidden={!expand} class="hidden group-hover:inline-block"
>Super</span
>
{:else if $ae_loc.access_type == 'manager'}
<span class="fas fa-user-shield m-1"></span>
<ShieldUser size="1em" class="m-1 inline-block" />
<span class:hidden={!expand} class="hidden group-hover:inline-block"
>Manager</span
>
{:else if $ae_loc.access_type == 'administrator'}
<span class="fas fa-user-ninja m-1"></span>
<UserCog size="1em" class="m-1 inline-block" />
<span class:hidden={!expand} class="hidden group-hover:inline-block"
>Administrator</span
>
{:else if $ae_loc.access_type == 'trusted'}
<span class="fas fa-user-check m-1"></span>
<UserCheck size="1em" class="m-1 inline-block" />
<span class:hidden={!expand} class="hidden group-hover:inline-block"
>Trusted Access</span
>
@@ -357,7 +359,7 @@ max-w-max -->
"
title="Click to turn off edit mode. Edit mode is currently on."
>
<span class="fas fa-toggle-on m-1 inline-block"></span>
<ToggleRight size="1em" class="m-1 inline-block" />
<span class="text-xs">Edit</span>
<span class="hidden group-hover:inline-block group-hover:text-xs"> Off </span>
</button>
@@ -379,7 +381,7 @@ max-w-max -->
"
title="Click to torn on/enable edit mode. Edit mode is currently off/disabled."
>
<span class="fas fa-toggle-off m-1 inline-block"></span>
<ToggleLeft size="1em" class="m-1 inline-block" />
<span class="text-xs">Edit</span>
<span class="hidden group-hover:inline-block group-hover:text-xs"> On? </span>
</button>

View File

@@ -1,6 +1,5 @@
<script lang="ts">
import { Moon, Sun } from '@lucide/svelte';
import { Minimize2, Moon, Sun } from '@lucide/svelte';
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/stores/ae_stores';
interface Props {
@@ -131,7 +130,7 @@ if ($ae_loc.app_cfg.theme_mode == 'light') {
title="Hide Theme Options"
>
<!-- <span class="fas fa-compress-alt"></span> -->
<span class="fas fa-compress-arrows-alt m-1"></span>
<Minimize2 size="1em" class="m-1" />
<span
class="
hidden