- todos los componentes públicos propios deben usar prefijo `Rdx`;
- el código y los identificadores deben estar en inglés;
- la documentación y los comentarios deben estar en español;
- usar TypeScript estricto;
- usar imports de tipos explícitos en cabecera;
- no usar tipos inline tipo `import("react").ReactNode`.
## Responsabilidad de `packages/rdx-ui`
Los componentes de `rdx-ui`:
- no conocen React Query;
- no conocen routing;
- no conocen DTOs;
- no conocen entities;
- no conocen controllers funcionales;
- no contienen lógica de negocio.
Deben recibir props ya preparadas por la capa consumidora.
## Tema y color
- todo debe funcionar en `light` y `dark` desde el inicio;
- usar tokens semánticos;
- no introducir colores físicos sin justificación fuerte y documentada;
- no usar el color como único indicador de estado.
## Accesibilidad
- foco visible obligatorio;
- botones de icono con nombre accesible;
- no crear `div` clicables;
- mantener orden DOM coherente;
- usar controles reales proporcionados por el consumidor;
- evitar wrappers vacíos que compliquen la semántica.
## API pública
- mantener una API pequeña y explícita;
- no crear abstracciones genéricas sin repetición real;
-`className` es un escape controlado, no la API principal;
- no usar `transition-all` en nuevos componentes salvo caso excepcional documentado.
## Composición de paneles
- no duplicar sombras entre una primitive y su composición;
- no duplicar el control de cierre entre capas;
- las acciones de contexto deben llegar ya construidas desde el consumidor;
- los labels accesibles de acciones de dominio pertenecen al consumidor;
- una primitive reutilizable puede resolver superficie e infraestructura, mientras la composición resuelve jerarquía visual y accesibilidad contextual.
## Acciones de fila
-`RdxRowActions` solo renderiza acciones primarias y overflow;
- el consumidor decide qué acciones existen y en qué orden aparecen;
- las acciones destructivas deben ir en overflow salvo excepción justificada por código real;
-`disabledReason` pertenece al consumidor y debe ser comprensible sin conocimiento de dominio en `rdx-ui`;
- no mover permisos, navegación, dialogs ni entidades dentro de `packages/rdx-ui`;
- los icon buttons deben mantener `aria-label` y tooltip accesible.
- por defecto, las pantallas cuya finalidad principal sea crear, editar o configurar mediante formulario deben usar shell `app-fullscreen` y no el shell con sidebar;
- usar `PageFormHeader` o el header de dominio ya existente para la navegación mínima de salida, sin duplicar una segunda navegación lateral;