{#snippet sectionHeading(id: string, title: string)}

{title}

{/snippet} {#snippet labelBall(label: Label)} {label.name} {/snippet} {#snippet editLabels()} (search = value)} onToggle={(key) => { if (key === EDIT_VALUE) { if (settingsHref) void goto(resolve(settingsHref as "/")); return; } if (key.startsWith(CREATE_PREFIX)) { onCreateLabel?.(key.slice(CREATE_PREFIX.length), createColor); return; } onLabelsChange?.( pickedLabels.includes(key) ? pickedLabels.filter((picked) => picked !== key) : [...pickedLabels, key] ); }} label="Labels" placeholder="Select labels" searchPlaceholder="Filter labels…" emptyLabel="No labels" class="w-auto" > {#snippet trigger({ props })}
{/snippet} {#snippet option(choice)} {#if choice.value.startsWith(CREATE_PREFIX)} Create "{choice.label}" {:else if choice.value === EDIT_VALUE} {choice.label} {:else} {choice.label ?? choice.value} {/if} {/snippet}
{/snippet}
{@render sectionHeading(labelsHeadingId, "Labels")} {#if canEdit && vertical} {@render editLabels()} {/if}
    {#each shownLabels as label (label.key)}
  • {#if label.href} {@render labelBall(label)} {:else} {@render labelBall(label)} {/if}
  • {:else}
  • No labels
  • {/each} {#if hiddenCount > 0 && !expanded}
  • {/if} {#if canEdit && !vertical} {@render editLabels()} {/if}