diff --git a/frontend/src/lib/components/DocumentMultiSelect.svelte b/frontend/src/lib/components/DocumentMultiSelect.svelte new file mode 100644 index 00000000..cdef1d62 --- /dev/null +++ b/frontend/src/lib/components/DocumentMultiSelect.svelte @@ -0,0 +1,147 @@ + + + + +{#each selectedDocuments as doc (doc.id)} + +{/each} + +
(showDropdown = false)}> +
+ {#each selectedDocuments as doc (doc.id)} + + {formatDocLabel(doc)} + + + {/each} + + { + updateDropdownPosition(); + showDropdown = true; + }} + placeholder={placeholder} + class="min-w-[120px] flex-1 border-none bg-transparent p-1 text-sm outline-none focus:ring-0" + /> +
+ + {#if showDropdown && (results.length > 0 || loading)} +
+ {#if loading} +
{m.comp_multiselect_loading()}
+ {:else} + {#each results as doc (doc.id)} +
selectDocument(doc)} + onkeydown={(e) => e.key === 'Enter' && selectDocument(doc)} + role="button" + tabindex="0" + > + {formatDocLabel(doc)} +
+ {/each} + {/if} +
+ {/if} +