Entidades ({entities.length})
editor.addEntity()} class="text-gray-500 hover:text-indigo-400 transition-colors text-sm w-6 h-6 flex items-center justify-center rounded hover:bg-indigo-500/10" title="Nueva entidad" >+
{#if entities.length === 0}
Sin entidades
Una entidad es un producto configurable — apartamento, coche, habitación...
editor.addEntity()} class="mt-3 text-xs px-3 py-1.5 rounded border border-dashed border-gray-700 text-gray-500 hover:text-indigo-400 hover:border-indigo-700 transition-colors" > Crear entidad
{:else}
{#each entities as entity (entity.id)}
editor.setActiveEntity(entity.id)} onkeydown={(e) => e.key === 'Enter' && editor.setActiveEntity(entity.id)} class=" w-full text-left px-4 py-2.5 flex items-center gap-2 text-sm cursor-pointer transition-colors group {editor.activeEntityId === entity.id ? 'bg-indigo-600/20 text-indigo-300' : 'text-gray-400 hover:bg-gray-800 hover:text-gray-200'} " > {#if editor.validation.errors.some(e => e.path.startsWith(`entities.${entity.id}`))}
{:else if editor.validation.warnings.some(e => e.path.startsWith(`entities.${entity.id}`))}
{:else}
{/if}
{#if entity.name.es} {entity.name.es} {:else}
Sin nombre
{/if}
{Object.keys(entity.groups).length}g
{ e.stopPropagation(); editor.deleteEntity(entity.id) }} class="opacity-0 group-hover:opacity-100 text-gray-600 hover:text-red-400 transition-opacity text-xs px-1" title="Eliminar entidad" >✕
{/each}
{/if}