style: Phase 1+2 — FA→Lucide, variant-* → preset-*, dark mode forms

Phase 1 (global quick wins):
- app.css: add global dark mode utility for .input/.select/.textarea
- events menu nav + layout: replace all FontAwesome icons with Lucide
- events settings: replace FA icons, standardize variant-* → preset-*

Phase 2 (module-by-module migration):
- root +layout.svelte: fix hardcoded banner colors → preset-filled-error/warning
- journals entry list: replace slate-* with gray-*, HSL eye colors → CSS tokens
- pres mgmt presenter view: variant-soft-warning → preset-tonal-warning, FA edit → Lucide
- badges (4 files): variant-* → preset-*, FA spinner → Lucide Loader2, dynamic alert fix
- events session list + event hub: variant-soft/filled → preset-tonal/filled
- leads module (12 files): complete variant-* → preset-* migration across all
  exhibitor sign-in, QR scanner, manual search, tracking list, manage tab,
  custom questions, license list, exhibit page, lead detail page + form

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Scott Idem
2026-03-16 11:53:07 -04:00
parent a79be722ae
commit 99df204763
25 changed files with 159 additions and 122 deletions

View File

@@ -1,5 +1,6 @@
<script lang="ts">
// import { createEventDispatcher } from 'svelte';
import { Loader2 } from '@lucide/svelte';
import type { key_val } from '$lib/stores/ae_stores';
import { events_func } from '$lib/ae_events_functions';
import { ae_api } from '$lib/stores/ae_stores';
@@ -126,16 +127,16 @@
<div class="flex justify-end gap-2">
<button
type="button"
class="btn variant-filled-tertiary"
class="btn preset-tonal-surface"
onclick={handle_cancel}>Cancel</button
>
<button
type="submit"
class="btn variant-filled-primary"
class="btn preset-filled-primary"
disabled={submit_status === 'loading'}
>
{#if submit_status === 'loading'}
<span class="fas fa-spinner fa-spin mr-2"></span>
<Loader2 size="1em" class="animate-spin" aria-hidden="true" />
{/if}
Create Badge
</button>

View File

@@ -1,5 +1,6 @@
<script lang="ts">
// import { createEventDispatcher } from 'svelte';
import { Loader2 } from '@lucide/svelte';
import type { key_val } from '$lib/stores/ae_stores';
import { events_func } from '$lib/ae_events_functions';
import { ae_api } from '$lib/stores/ae_stores';
@@ -159,9 +160,9 @@
{#if upload_status !== 'idle'}
<div
class="alert variant-soft-{upload_status === 'error'
? 'error'
: 'info'}"
class="alert"
class:preset-tonal-error={upload_status === 'error'}
class:preset-tonal-surface={upload_status !== 'error'}
>
<p>{upload_message}</p>
{#if upload_status === 'processing' || upload_status === 'loading'}
@@ -180,20 +181,20 @@
<div class="flex justify-end gap-2">
<button
type="button"
class="btn variant-filled-tertiary"
class="btn preset-tonal-surface"
onclick={handle_cancel}
disabled={upload_status === 'loading' ||
upload_status === 'processing'}>Cancel</button
>
<button
type="submit"
class="btn variant-filled-primary"
class="btn preset-filled-primary"
disabled={!selected_file ||
upload_status === 'loading' ||
upload_status === 'processing'}
>
{#if upload_status === 'loading' || upload_status === 'processing'}
<span class="fas fa-spinner fa-spin mr-2"></span>
<Loader2 size="1em" class="animate-spin" aria-hidden="true" />
{/if}
Upload Badges
</button>

View File

@@ -1,5 +1,6 @@
<script lang="ts">
import { liveQuery } from 'dexie';
import { Pencil, Trash2 } from '@lucide/svelte';
import { events_func } from '$lib/ae_events_functions';
import { ae_api } from '$lib/stores/ae_stores';
import { events_slct } from '$lib/stores/ae_events_stores';
@@ -103,23 +104,23 @@
<div>
<button
type="button"
class="btn btn-sm variant-filled-primary"
class="btn btn-sm preset-filled-primary"
onclick={() =>
edit_template(
template.event_badge_template_id
)}
>
<span class="fas fa-edit"></span> Edit
<Pencil size="1em" aria-hidden="true" /> Edit
</button>
<button
type="button"
class="btn btn-sm variant-filled-error ml-2"
class="btn btn-sm preset-filled-error ml-2"
onclick={() =>
delete_template(
template.event_badge_template_id
)}
>
<span class="fas fa-trash"></span> Delete
<Trash2 size="1em" aria-hidden="true" /> Delete
</button>
</div>
</li>

View File

@@ -1,5 +1,6 @@
<script lang="ts">
import { untrack } from 'svelte';
import { Loader2 } from '@lucide/svelte';
import type { key_val } from '$lib/stores/ae_stores';
import { events_func } from '$lib/ae_events_functions';
import { ae_api } from '$lib/stores/ae_stores';
@@ -217,17 +218,17 @@
<div class="flex justify-end gap-2">
<button
type="button"
class="btn variant-filled-tertiary"
class="btn preset-tonal-surface"
onclick={handle_cancel}
disabled={submit_status === 'loading'}>Cancel</button
>
<button
type="submit"
class="btn variant-filled-primary"
class="btn preset-filled-primary"
disabled={submit_status === 'loading'}
>
{#if submit_status === 'loading'}
<span class="fas fa-spinner fa-spin mr-2"></span>
<Loader2 size="1em" class="animate-spin" aria-hidden="true" />
{/if}
{template_id ? 'Save Changes' : 'Create Template'}
</button>