+ buscarPorArea(id)} isPanningRef={isPanning as any} />
+
-
{/* Controls */}
diff --git a/src/components/OrganigramaInteractivo.tsx b/src/components/OrganigramaInteractivo.tsx
new file mode 100644
index 0000000..10cc3e6
--- /dev/null
+++ b/src/components/OrganigramaInteractivo.tsx
@@ -0,0 +1,164 @@
+import React from 'react';
+
+interface Props {
+ onAreaSelect: (areaId: number) => void;
+ className?: string;
+ style?: React.CSSProperties;
+ isPanningRef?: React.RefObject;
+}
+
+// Map display substrings (lowercase) to the area id used in BuscarFuncionario
+const areaMap: Record = {
+ 'coordinación de actividades deportivas y recreativas': 128,
+ 'coordinación de comunicación social': 122,
+ 'coordinación de cuerpos colegiados': 9,
+ 'coordinación de derecho del sistema de universidad abierta y educación a distancia': 126,
+ 'coordinación de especializaciones': 206,
+ 'coordinación de estudios de posgrado': 120,
+ 'coordinación de la unidad de investigación multidisciplinaria aplicada': 182,
+ 'coordinación de licel sistema de universidad abierta y educación a distancia': 174,
+ 'coordinación de maestrías y doctorados': 221,
+ 'coordinación de relaciones internacionales del sistema de universidad abierta y educación a distancia': 152,
+ 'coordinación de servicios académicos': 121,
+ 'coordinación del centro de difusión cultural': 125,
+ 'coordinación del centro de educación continua': 124,
+ 'coordinación del centro de enseñanza de idiomas': 129,
+ 'coordinación del centro de estudios municipales y metropolitanos': 214,
+ 'coordinación del centro tecnológico para la educación a distancia': 176,
+ 'dirección': 72,
+ 'división de ciencias jurídicas': 80,
+ 'división de ciencias socioeconómicas': 79,
+ 'división de diseño y edificación': 78,
+ 'división de humanidades': 77,
+ 'división de matemáticas e ingeniería': 76,
+ 'secretaría de asuntos académicos estudiantiles': 181,
+ 'secretaría de extensión universitaria y vinculación institucional': 177,
+ 'secretaría de posgrado e investigación': 119,
+ 'secretaría general': 8,
+ 'unidad de administración escolar': 6,
+ 'unidad de servicios editoriales': 2,
+ 'unidad de talleres, laboratorios y audiovisuales': 1,
+ 'unidad del centro de desarrollo tecnológico': 130,
+ 'unidad del centro de información y documentación': 123,
+ // add more mappings as needed
+};
+
+const svgContent = `
+`;
+
+// Instead of inlining the full SVG string here (long), we'll import it via require at runtime by fetching the file relative to the app.
+// But to keep this component self-contained, we'll render an