diff --git a/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_print_controls.svelte b/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_print_controls.svelte
index e7cbf63c..86157367 100644
--- a/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_print_controls.svelte
+++ b/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_print_controls.svelte
@@ -293,7 +293,7 @@
let input_ref_location: HTMLInputElement | undefined;
let input_ref_pronouns: HTMLInputElement | undefined;
let input_ref_allow_tracking: HTMLInputElement | undefined;
- let select_ref_badge_type: HTMLSelectElement | undefined;
+ let select_ref_badge_type: HTMLSelectElement | undefined = $state();
$effect(() => {
const field = active_field;
diff --git a/src/routes/events/[event_id]/(launcher)/cfg_components/launcher_cfg_section.svelte b/src/routes/events/[event_id]/(launcher)/cfg_components/launcher_cfg_section.svelte
index b56478e4..973aeeaa 100644
--- a/src/routes/events/[event_id]/(launcher)/cfg_components/launcher_cfg_section.svelte
+++ b/src/routes/events/[event_id]/(launcher)/cfg_components/launcher_cfg_section.svelte
@@ -26,6 +26,9 @@
on_toggle
}: Props = $props();
+ // Uppercase alias required: Svelte 5 treats lowercase tags as HTML elements.
+ let Icon = $derived(icon);
+
function toggle_expand() {
if (state === 'collapsed') {
state = 'auto';
@@ -72,8 +75,7 @@
onclick={toggle_expand}
>
-
+
{event_file_obj.extension}
{#if result === null || result === false}
{
+ * schema is already initialised from the app's first open).
+ * Single-argument form required: page.evaluate() passes exactly one arg. */
+async function inject_idb({ badge, template }: { badge: object; template: object }): Promise {
const db = await new Promise((resolve, reject) => {
const req = indexedDB.open('ae_events_db');
req.onsuccess = () => resolve(req.result as IDBDatabase);
@@ -120,7 +121,7 @@ test.describe('Badge Print Page — print layout centering', () => {
await page.waitForLoadState('domcontentloaded');
// Inject badge + template directly into IndexedDB so LiveQuery fires
- await page.evaluate(inject_idb, [mock_badge, mock_template] as any);
+ await page.evaluate(inject_idb, { badge: mock_badge, template: mock_template });
// Wait for LiveQuery to render the badge wrapper
await page.waitForSelector('.event_badge_wrapper', { timeout: 8000 });
@@ -154,7 +155,7 @@ test.describe('Badge Print Page — print layout centering', () => {
await page.goto(`/events/${event_id}/badges/${badge_id}/print`);
await page.waitForLoadState('domcontentloaded');
- await page.evaluate(inject_idb, [mock_badge, mock_template] as any);
+ await page.evaluate(inject_idb, { badge: mock_badge, template: mock_template });
await page.waitForSelector('.event_badge_wrapper', { timeout: 8000 });
await page.emulateMedia({ media: 'print' });
@@ -199,7 +200,7 @@ test.describe('Badge Print Page — print layout centering', () => {
await page.goto(`/events/${event_id}/badges/${badge_id}/print`);
await page.waitForLoadState('domcontentloaded');
- await page.evaluate(inject_idb, [mock_badge, mock_template] as any);
+ await page.evaluate(inject_idb, { badge: mock_badge, template: mock_template });
await page.waitForSelector('.event_badge_wrapper', { timeout: 8000 });
await page.emulateMedia({ media: 'print' });