// dnd-kit ids must be unique per DndContext, and legend group/layer id // namespaces may collide — so sortable ids carry a kind prefix. export type SortableKind = 'group' | 'layer' export const toSortableId = (kind: SortableKind, id: string): string => `${kind}:${id}` export function parseSortableId( sortableId: string, ): { kind: SortableKind; id: string } | null { const sep = sortableId.indexOf(':') if (sep === -1) return null const kind = sortableId.slice(0, sep) if (kind !== 'group' && kind !== 'layer') return null return { kind, id: sortableId.slice(sep + 1) } }