@imj_media/tareas 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /** Misma rejilla que `TeamsGrid` — un solo origen para layout de carga y datos. */
2
- export declare const TEAMS_GRID_LAYOUT_CLASS = "tm-grid tm-w-full tm-grid-cols-1 tm-items-baseline tm-gap-x-8 tm-gap-y-8 md:tm-grid-cols-2 lg:tm-grid-cols-3 lg:tm-gap-x-8 xl:tm-grid-cols-4";
2
+ export declare const TEAMS_GRID_LAYOUT_CLASS = "tm-grid tm-w-full tm-grid-cols-1 tm-items-baseline tm-gap-x-12 tm-gap-y-12 md:tm-grid-cols-2 lg:tm-grid-cols-3 lg:tm-gap-x-8 xl:tm-grid-cols-4";
3
3
  export declare function ImagesThumbnailSkeleton(): import("react/jsx-runtime").JSX.Element;
4
4
  type TeamsGridSkeletonProps = {
5
5
  length?: number;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @fileoverview Indicador visual del equipo asignado en la card de tarea del flujo (plantillas).
3
+ * Pila de avatares (DS `Avatar`/`AvatarStack`), contador `+N` si hay más miembros, etiqueta fija «Equipo» y tooltip con el nombre del equipo.
4
+ * @module modules/templates/components/atoms/tasks/AssignedTeam
5
+ */
6
+ /**
7
+ * Datos de equipo persistidos en el nodo de la tarea (id obligatorio para fetch; nombre opcional como respaldo de UI).
8
+ */
9
+ export type EquipoCardData = {
10
+ id?: number | string | null;
11
+ nombre?: string | null;
12
+ } | null;
13
+ /**
14
+ * Columna "Equipo" en la card del flujo: avatares de miembros (foto vía índice OBP por email),
15
+ * estado de carga, fallback sin miembros y `Tooltip` de `@imj_media/ui` con el nombre del equipo.
16
+ *
17
+ * @param props - Props del componente.
18
+ * @param props.equipo - Referencia al equipo (`id` y opcionalmente `nombre` desde el formulario / nodo).
19
+ * @returns `null` si no hay `equipo.id` válido; en caso contrario el bloque UI alineado al resto de métricas de la card.
20
+ */
21
+ export declare const AssignedTeam: ({ equipo }: {
22
+ equipo: EquipoCardData;
23
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,7 @@
1
- export declare const Responsible: ({ responsible }: {
2
- responsible: {
3
- id: string;
4
- email: string;
5
- };
1
+ export type ResponsibleUser = {
2
+ id?: string | number | null;
3
+ email?: string | null;
4
+ };
5
+ export declare const Responsible: ({ responsible, }: {
6
+ responsible: ResponsibleUser | null | undefined;
6
7
  }) => import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,4 @@
1
+ export * from './AssignedTeam';
1
2
  export * from './Difficulty';
2
3
  export * from './Duration';
3
4
  export * from './Priority';
@@ -38,7 +38,7 @@ export declare const useGetInputFiltersByPath: (currentPath: string) => {
38
38
  options?: import('@imj_media/ui').DropdownOption[];
39
39
  placeholder?: string;
40
40
  clearText?: string;
41
- type?: "date" | "multiple" | "group" | "dropdown" | "input" | "textarea" | "dateRange";
41
+ type?: "date" | "group" | "dropdown" | "input" | "textarea" | "multiple" | "dateRange";
42
42
  title?: string;
43
43
  } | {
44
44
  options: any;
@@ -49,7 +49,7 @@ export declare const useGetInputFiltersByPath: (currentPath: string) => {
49
49
  onValueChange?: (value: import('@imj_media/ui').FilterChangeValue) => void;
50
50
  placeholder?: string;
51
51
  clearText?: string;
52
- type?: "date" | "multiple" | "group" | "dropdown" | "input" | "textarea" | "dateRange";
52
+ type?: "date" | "group" | "dropdown" | "input" | "textarea" | "multiple" | "dateRange";
53
53
  title?: string;
54
54
  })[];
55
55
  };
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @fileoverview Datos de vista previa de un equipo para cards de flujo de plantillas.
3
+ * Obtiene nombre, jerarquía de miembros y lista plana de usuarios (deduplicada) vía API Strapi.
4
+ * @module modules/templates/hooks/useTeamFlowPreview
5
+ */
6
+ /**
7
+ * Usuario deduplicado extraído de la jerarquía `miembros` del equipo (para avatares en UI).
8
+ */
9
+ export type TeamFlowMemberPreview = {
10
+ id: number;
11
+ nombre: string;
12
+ email: string;
13
+ image?: unknown;
14
+ };
15
+ /**
16
+ * Forma mínima del equipo tras normalizar la respuesta de la API (nombre + árbol de miembros).
17
+ */
18
+ export type TeamFlowPreview = {
19
+ nombre: string;
20
+ miembros: unknown[];
21
+ };
22
+ /**
23
+ * React Query: carga datos de un equipo para mostrar avatares y tooltip en cards del flujo.
24
+ * La petición solo se ejecuta si `teamId` es un entero positivo válido. Varias cards con el
25
+ * mismo `teamId` comparten caché (`queryKey` incluye el id).
26
+ *
27
+ * @param teamId - Id del equipo en la tarea (`equipo.id`), o `null`/`undefined` para no consultar.
28
+ * @returns Resultado estándar de `useQuery` (`data`, `isLoading`, `isError`, etc.). `data` contiene
29
+ * `{ team: { nombre, miembros }, members: TeamFlowMemberPreview[] }` cuando hay éxito.
30
+ */
31
+ export declare const useTeamFlowPreview: (teamId: number | null | undefined) => import('@tanstack/react-query').UseQueryResult<{
32
+ team: TeamFlowPreview;
33
+ members: TeamFlowMemberPreview[];
34
+ }, Error>;