<script lang="ts">
	export let value: string | string[] | null;
	export let type: "gallery" | "table";
	export let selected = false;
	export let choices: [string, string | number][];

	let value_array = value ? (Array.isArray(value) ? value : [value]) : [];
	let names = value_array
		.map(
			(val) =>
				(
					choices.find((pair) => pair[1] === val) as
						| [string, string | number]
						| undefined
				)?.[0]
		)
		.filter((name) => name !== undefined);
	let names_string = names.join(", ");
</script>

<div
	class:table={type === "table"}
	class:gallery={type === "gallery"}
	class:selected
>
	{names_string}
</div>

<style>
	.gallery {
		padding: var(--size-1) var(--size-2);
	}
</style>