import { html, nothing, type TemplateResult } from 'lit'; import type { NuiType } from '../../types/nui-type.js'; import type { DockItem, DockPosition } from './types.js'; export interface NuiDockViewState { model: DockItem[]; position: DockPosition; unstyled: boolean; dockClass: string; dockStyle: string; nuiType: NuiType; } export interface DockRenderHandlers { onItemClick: (item: DockItem, event: MouseEvent) => void; } export function getDockClass(state: NuiDockViewState): string { const classes = ['nui-dock', `nui-dock-${state.position}`]; if (state.dockClass) { classes.push(state.dockClass); } return classes.filter(Boolean).join(' '); } function renderItem( _state: NuiDockViewState, item: DockItem, _index: number, handlers: DockRenderHandlers, ): TemplateResult { const itemClass = ['nui-dock-item', item.class].filter(Boolean).join(' '); return html`