import React from 'react';
import { Lock, Unlock, X } from 'lucide-react';
import { cn } from '../../ui/utils';
import type { LabelElement } from '../../../types/labelTemplate';
import {
elementEditorDisplayName,
readElementPositionLocked,
sortTemplateElementsForDisplay,
} from '../../../types/labelTemplate';
interface AvailableElementsPanelProps {
elements: LabelElement[];
selectedId: string | null;
onSelect: (id: string) => void;
onTogglePositionLock: (id: string, locked: boolean) => void;
onClose: () => void;
}
export function AvailableElementsPanel({
elements,
selectedId,
onSelect,
onTogglePositionLock,
onClose,
}: AvailableElementsPanelProps) {
const sorted = sortTemplateElementsForDisplay(elements);
return (
Available Elements
{sorted.length === 0 ? (
No elements on this label yet.
) : (
{sorted.map((el) => {
const locked = readElementPositionLocked(el);
const isSelected = selectedId === el.id;
const label = elementEditorDisplayName(el, elements);
return (
-
);
})}
)}
);
}