2
export let value: (string | number)[][] | string;
3
export let type: "gallery" | "table";
4
export let selected = false;
5
export let index: number;
8
let loaded_value: (string | number)[][] | string = value;
9
let loaded = Array.isArray(loaded_value);
14
<!-- svelte-ignore a11y-no-static-element-interactions-->
16
class:table={type === "table"}
17
class:gallery={type === "gallery"}
19
on:mouseenter={() => (hovered = true)}
20
on:mouseleave={() => (hovered = false)}
22
{#if typeof loaded_value === "string"}
26
{#each loaded_value.slice(0, 3) as row, i}
28
{#each row.slice(0, 3) as cell, j}
36
{#if value.length > 3}
39
class:odd={index % 2 != 0}
40
class:even={index % 2 == 0}
41
class:button={type === "gallery"}
55
border: 1px solid var(--table-border-color);
56
padding: var(--size-2);
57
font-size: var(--text-sm);
58
font-family: var(--font-mono);
62
border-color: var(--border-color-accent);
66
display: inline-block;
70
.gallery td:first-child {
74
.gallery tr:first-child td {
78
.gallery td:last-child {
82
.gallery tr:last-child td {
87
--gradient-to: transparent;
90
background: linear-gradient(to bottom, transparent, var(--gradient-to));
91
width: var(--size-full);
95
/* i dont know what i've done here but it is what it is */
97
--gradient-to: var(--table-even-background-fill);
101
--gradient-to: var(--table-odd-background-fill);
105
--gradient-to: var(--background-fill-primary);