diff --git a/src/routes/events/[event_id]/(badges)/badges/reports/+page.svelte b/src/routes/events/[event_id]/(badges)/badges/reports/+page.svelte
index 238056fd..1e7a831b 100644
--- a/src/routes/events/[event_id]/(badges)/badges/reports/+page.svelte
+++ b/src/routes/events/[event_id]/(badges)/badges/reports/+page.svelte
@@ -13,13 +13,14 @@ import { ae_loc } from '$lib/stores/ae_stores';
import { db_events } from '$lib/ae_events/db_events';
import { events_loc } from '$lib/stores/ae_events_stores';
-import { ArrowLeft, TrendingUp, Type, Gauge, LoaderCircle } from '@lucide/svelte';
+import { ArrowLeft, TrendingUp, Type, Gauge, FileSpreadsheet, LoaderCircle } from '@lucide/svelte';
import Reports_badge_long_names from './reports_badge_long_names.svelte';
import Reports_badge_print_throughput from './reports_badge_print_throughput.svelte';
+import Reports_badge_export from './reports_badge_export.svelte';
let event_id = $derived(page.params.event_id);
-type ReportKey = 'long_names' | 'print_throughput';
+type ReportKey = 'long_names' | 'print_throughput' | 'export';
let active_report: ReportKey | null = $state(null);
let lq__event_obj = $derived(
@@ -107,6 +108,18 @@ let reprint_count = $derived(
Select a report above to view results.
{/if} diff --git a/src/routes/events/[event_id]/(badges)/badges/reports/reports_badge_export.svelte b/src/routes/events/[event_id]/(badges)/badges/reports/reports_badge_export.svelte new file mode 100644 index 00000000..5c4e35cb --- /dev/null +++ b/src/routes/events/[event_id]/(badges)/badges/reports/reports_badge_export.svelte @@ -0,0 +1,291 @@ + + +Records
+Timestamps
++ Fields highlighted in primary color are override fields — values set by staff or attendee before printing. +
+
+ {#if filter_mode === 'printed_clean'}
+ Printed + Clean: Printed badges with non-hidden records and no test badge types. This is the standard export sent to clients.
+ {:else if filter_mode === 'printed'}
+ Printed (all): All badges with at least one print, including hidden records and test types.
+ {:else}
+ All badges: Every badge record in the local cache, including unprinted, hidden, and test records.
+ {/if}
+ Rows without a value in external_id were added manually (not via CSV import).
+