{#snippet row(entry: ResourceEntry)}
onopen(entry) : undefined} onkeydown={onopen ? (e) => e.key === 'Enter' && onopen(entry) : undefined} oncontextmenu={contextActions?.length ? (e) => openContext(e, entry) : undefined} > {#if selectable} {/if}
{entry.name}
{#if showOwner}
{entry.ownerName ?? entry.ownerId ?? ''}
{/if} {#if showPath}
{entry.path ?? ''}
{/if} {#if showType}
{entry.typeLabel ?? ''}
{/if} {#if showSize}
{entry.size != null ? formatBytes(entry.size) : '—'}
{/if} {#if showDate}
{#if dateCell}{@render dateCell(entry)}{:else}{formatDate(entry.date)}{/if}
{/if}
{#if showDate && dateCell}{@render dateCell(entry)}{/if} {#if entry.size != null}{formatBytes(entry.size)}{/if} {#if entry.date != null}{formatDate(entry.date)}{/if}
{#if onfavorite} {/if} {#if actions}
{@render actions(entry)}
{/if}
{/snippet}

{title}

{#snippet start()}
{@render toolbar?.()}
{/snippet}
{#if selectable && selected.size > 0 && batchToolbar}
{t('files.selected_count', { count: selected.size }, '{{count}} selected')}
{@render batchToolbar(selectedEntries)}
{/if} {#if error} {:else if loading && isEmpty} {:else if isEmpty} {:else}
{#if selectable}
{/if}
{t('files.col_name', 'Name')}
{#if showOwner}
{t('files.col_owner', 'Owner')}
{/if} {#if showPath}
{pathLabel ?? t('files.col_path', 'Location')}
{/if} {#if showType}
{t('files.col_type', 'Type')}
{/if} {#if showSize}
{t('files.col_size', 'Size')}
{/if} {#if showDate}
{dateLabel ?? t('files.col_modified', 'Date')}
{/if} {#if onfavorite || actions}
{/if}
{#if grouped} {#each sections as section (section.key)}
{section.label}
{#each section.rows as entry (entry.id)} {@render row(entry)} {/each} {/each} {:else} {#each items as entry (entry.id)} {@render row(entry)} {/each} {/if}
{#if hasMore} {/if}
{/if} {#if ctxOpen && ctxEntry && contextActions} {/if}