{#if icon}
{icon}
{/if}
{title}
e.stopPropagation()}> {#if !isFullscreen}
{ e.stopPropagation(); onMinimizeChange?.(!minimized); }} title={minimized ? 'Gjenopprett' : 'Minimer'} aria-label={minimized ? 'Gjenopprett panel' : 'Minimer panel'} > {minimized ? '+' : '−'}
{/if}
{ e.stopPropagation(); toggleFullscreen(); }} title={isFullscreen ? 'Avslutt fullskjerm' : 'Fullskjerm'} aria-label={isFullscreen ? 'Avslutt fullskjerm' : 'Fullskjerm'} > {isFullscreen ? '−' : '+'}
{#if closable}
{ e.stopPropagation(); // Flytt tilbake fra body før Svelte fjerner komponenten if (isFullscreen && containerEl && originalParent) { if (originalNextSibling) { originalParent.insertBefore(containerEl, originalNextSibling); } else { originalParent.appendChild(containerEl); } originalParent = null; originalNextSibling = null; } isFullscreen = false; onClose?.(); }} title="Lukk" aria-label="Lukk panel" > ×
{/if}
{#if !minimized || isFullscreen}
{ if (e.ctrlKey || e.metaKey) { e.preventDefault(); e.stopPropagation(); const factor = e.deltaY > 0 ? 0.95 : 1.05; const newW = Math.round(clampedWidth * factor); const newH = Math.round(clampedHeight * factor); onResize?.(newW, newH); } }} > {#if children} {@render children()} {:else}
Ingen innhold ennå.
{/if}
{/if} {#if dropZoneState !== 'idle'}
{#if dropZoneState === 'compatible'}
Slipp her
{:else if dropZoneState === 'incompatible'}
{dropFeedback || 'Kan ikke motta dette innholdet'}
{/if}
{/if} {#if !isFullscreen && !minimized} {#each resizeDirections as dir}
handleResizeStart(dir, e)} >
{/each} {/if}