siesa-ui-kit 1.0.24 → 1.0.25

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.
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import type { MasterCrudField } from './MasterCrud.types';
3
+ interface MasterCRUDCardProps<T> {
4
+ data: T;
5
+ fields: MasterCrudField<T>[];
6
+ onEdit?: (record: T) => void;
7
+ onDelete?: (record: T) => void;
8
+ rowActions?: (record: T, index: number) => React.ReactNode;
9
+ index?: number;
10
+ }
11
+ /**
12
+ * MasterCRUDCard - Componente de tarjeta para la vista de grid
13
+ *
14
+ * Basado en el diseño de Figma (node 1250:20110)
15
+ * Adapta los campos del MasterCrud a las secciones de la tarjeta.
16
+ */
17
+ export declare const MasterCRUDCard: <T extends Record<string, unknown>>({ data, fields, onEdit, onDelete, rowActions, index, }: MasterCRUDCardProps<T>) => import("react/jsx-runtime").JSX.Element;
18
+ export {};
19
+ //# sourceMappingURL=MasterCRUDCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MasterCRUDCard.d.ts","sourceRoot":"","sources":["../../../src/components/MasterCrud/MasterCRUDCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAM1D,UAAU,mBAAmB,CAAC,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,wDAO/D,mBAAmB,CAAC,CAAC,CAAC,4CA8JxB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { MasterCrudProps } from './MasterCrud.types';
2
+ /**
3
+ * MasterCrud - Componente genérico para gestión de entidades (CRUD)
4
+ *
5
+ * Proporciona una solución declarativa y reutilizable para la gestión
6
+ * de datos con vistas de listado y formulario.
7
+ *
8
+ * Características:
9
+ * - Orquestación automática entre vistas (LIST, CREATE, EDIT)
10
+ * - Integración con APIs mediante contrato de servicio
11
+ * - Renderizado dinámico basado en metadatos
12
+ * - Dark mode completo
13
+ * - Accesibilidad
14
+ *
15
+ * Mejores prácticas implementadas:
16
+ * - Orden de modificadores: {responsive}:{dark}:{state}:{utility}
17
+ * - Dark mode con estrategia 'class' (darkMode: 'class')
18
+ * - Tokens de color consistentes con la documentación
19
+ * - Type safety con TypeScript estricto
20
+ * - Reutiliza componentes existentes del sistema
21
+ *
22
+ * @see docs/colors.md - Sistema de colores
23
+ * @see docs/typography.md - Sistema tipográfico
24
+ * @see docs/spacing.md - Sistema de espaciado
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * const camposClientes = [
29
+ * { accessorKey: 'nombre', header: 'Cliente', type: 'text', config: { required: true } },
30
+ * { accessorKey: 'email', header: 'Correo', type: 'email' },
31
+ * { accessorKey: 'activo', header: 'Estado', type: 'boolean' }
32
+ * ];
33
+ *
34
+ * <MasterCrud
35
+ * title="Gestión de Clientes"
36
+ * entityName="Cliente"
37
+ * fields={camposClientes}
38
+ * service={clientesApiService}
39
+ * />
40
+ * ```
41
+ */
42
+ export declare const MasterCrud: <T extends Record<string, any>>({ title, entityName, fields, service, idField, pageSize, showCreateButton, showSearch, showRowActions, allowDelete, onCreateSuccess, onUpdateSuccess, onDeleteSuccess, onError, createButtonText, saveButtonText, cancelButtonText, emptyMessage, className, id, renderToolbar, rowActions, formWidth, formColumns, showViewToggle, sortOptions, filterOptions, filterableFields, useToolbar, onViewChange, enableGridInfiniteScroll, onBeforeCreate, onBeforeUpdate, onBeforeDelete, locale, permissions, }: MasterCrudProps<T>) => import("react/jsx-runtime").JSX.Element;
43
+ //# sourceMappingURL=MasterCrud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MasterCrud.d.ts","sourceRoot":"","sources":["../../../src/components/MasterCrud/MasterCrud.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAuC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,8eAqCvD,eAAe,CAAC,CAAC,CAAC,4CAsepB,CAAC"}
@@ -0,0 +1,594 @@
1
+ import type { ReactNode } from 'react';
2
+ /**
3
+ * Tipos de campo soportados por MasterCrud
4
+ * Define cómo se renderiza cada campo en el formulario
5
+ */
6
+ export type FieldType = 'text' | 'number' | 'email' | 'date' | 'boolean' | 'select' | 'lookup';
7
+ /**
8
+ * Estado de la vista actual del MasterCrud
9
+ */
10
+ export type ViewState = 'LIST' | 'CREATE' | 'EDIT';
11
+ /**
12
+ * Opción para campos de tipo 'select'
13
+ */
14
+ export interface SelectFieldOption {
15
+ /** Valor de la opción */
16
+ value: string | number;
17
+ /** Etiqueta visible */
18
+ label: string;
19
+ /** Icono opcional */
20
+ icon?: ReactNode;
21
+ /** Si la opción está deshabilitada */
22
+ disabled?: boolean;
23
+ }
24
+ /**
25
+ * Configuración extendida para cada campo
26
+ */
27
+ export interface FieldConfig {
28
+ /** Si el campo es obligatorio */
29
+ required?: boolean;
30
+ /** Si el campo está deshabilitado (solo lectura) */
31
+ disabled?: boolean;
32
+ /**
33
+ * @deprecated Use `showInList` en su lugar
34
+ * Si se muestra en la tabla/grilla
35
+ */
36
+ visibleInTable?: boolean;
37
+ /**
38
+ * @deprecated Use `showInCreate` y `showInEdit` en su lugar
39
+ * Si se muestra en el formulario
40
+ */
41
+ visibleInForm?: boolean;
42
+ /**
43
+ * Visible en la vista de tabla (List View)
44
+ * @default true
45
+ */
46
+ showInList?: boolean;
47
+ /**
48
+ * Visible en la vista de tarjetas (Grid View)
49
+ * @default true
50
+ */
51
+ showInGrid?: boolean;
52
+ /**
53
+ * Visible en el formulario de creación
54
+ * @default true
55
+ */
56
+ showInCreate?: boolean;
57
+ /**
58
+ * Visible en el formulario de edición
59
+ * @default true
60
+ */
61
+ showInEdit?: boolean;
62
+ /** Si se puede buscar por este campo */
63
+ searchable?: boolean;
64
+ /** Si se puede ordenar por este campo */
65
+ sortable?: boolean;
66
+ /** Ancho de la columna en la tabla (CSS width) */
67
+ columnWidth?: string;
68
+ /** Alineación del contenido en la tabla */
69
+ align?: 'left' | 'center' | 'right';
70
+ /** Placeholder para el input */
71
+ placeholder?: string;
72
+ /** Texto de ayuda debajo del input */
73
+ helperText?: string;
74
+ /** Mensaje de error de validación */
75
+ errorMessage?: string;
76
+ /** Función de validación personalizada */
77
+ validate?: (value: any, formData: Record<string, any>) => string | undefined;
78
+ /** Valor mínimo (para number) */
79
+ min?: number;
80
+ /** Valor máximo (para number) */
81
+ max?: number;
82
+ /** Paso (para number) */
83
+ step?: number;
84
+ /** Formato de fecha (para date) */
85
+ dateFormat?: string;
86
+ /** Posición en la tarjeta (Grid View) */
87
+ cardPosition?: 'title' | 'subtitle' | 'body' | 'footer' | 'status';
88
+ /**
89
+ * Callback ejecutado cuando el campo pierde el foco (blur).
90
+ * Útil para validaciones, cálculos o efectos secundarios.
91
+ */
92
+ onBlur?: (value: any, name: string, formData: Record<string, any>) => void;
93
+ /**
94
+ * Callback ejecutado cuando el campo se monta en el formulario.
95
+ * Útil para inicialización dinámica o carga de datos.
96
+ * @param setValue Función para actualizar el valor de este campo
97
+ * @param formData Datos actuales del formulario
98
+ */
99
+ onMount?: (setValue: (value: any) => void, formData: Record<string, any>) => void;
100
+ }
101
+ /**
102
+ * Definición de un campo del MasterCrud
103
+ * Controla tanto la tabla como el formulario
104
+ */
105
+ export interface MasterCrudField<T = any> {
106
+ /**
107
+ * Key del objeto JSON que contiene el valor
108
+ * @example 'nombre', 'cliente.direccion'
109
+ */
110
+ accessorKey: keyof T | string;
111
+ /**
112
+ * Etiqueta visible en español
113
+ * Se usa tanto en el header de la tabla como en el label del formulario
114
+ */
115
+ header: string;
116
+ /**
117
+ * Tipo de componente a renderizar
118
+ */
119
+ type: FieldType;
120
+ /**
121
+ * Configuración adicional del campo
122
+ */
123
+ config?: FieldConfig;
124
+ /**
125
+ * Opciones para campos de tipo 'select'
126
+ */
127
+ options?: SelectFieldOption[];
128
+ /**
129
+ * Servicio de lookup para campos tipo 'lookup'
130
+ * Debe implementar la interfaz del LookupField existente
131
+ */
132
+ lookupService?: any;
133
+ /**
134
+ * Función de render personalizada para la tabla
135
+ * Si se provee, sobrescribe el render automático
136
+ */
137
+ renderCell?: (value: any, row: T, index: number) => ReactNode;
138
+ /**
139
+ * Función de render personalizada para el formulario
140
+ * Si se provee, sobrescribe el render automático
141
+ */
142
+ renderInput?: (value: any, onChange: (value: any) => void, field: MasterCrudField<T>, formData: Record<string, any>) => ReactNode;
143
+ }
144
+ /**
145
+ * Parámetros para la consulta de listado
146
+ */
147
+ export interface GetAllParams {
148
+ /** Número de página (1-indexed) */
149
+ page: number;
150
+ /** Cantidad de registros por página */
151
+ limit: number;
152
+ /** Término de búsqueda global */
153
+ search?: string;
154
+ /** Campo específico donde buscar (si no se define, es global) */
155
+ searchField?: string;
156
+ /** Campo por el cual ordenar */
157
+ sortBy?: string;
158
+ /** Dirección del ordenamiento */
159
+ sortDirection?: 'asc' | 'desc';
160
+ /** Filtros adicionales */
161
+ filters?: Record<string, any>;
162
+ }
163
+ /**
164
+ * Respuesta del servicio de listado
165
+ */
166
+ export interface GetAllResponse<T> {
167
+ /** Array de datos */
168
+ data: T[];
169
+ /** Total de registros (para paginación) */
170
+ total: number;
171
+ }
172
+ /**
173
+ * Contrato que debe implementar el servicio de datos
174
+ * Permite al MasterCrud interactuar con cualquier backend
175
+ */
176
+ export interface CrudService<T> {
177
+ /**
178
+ * Obtener listado paginado de registros
179
+ */
180
+ getAll: (params: GetAllParams) => Promise<GetAllResponse<T>>;
181
+ /**
182
+ * Obtener un registro por su ID
183
+ */
184
+ getById?: (id: string | number) => Promise<T>;
185
+ /**
186
+ * Crear un nuevo registro
187
+ */
188
+ create: (data: Partial<T>) => Promise<T>;
189
+ /**
190
+ * Actualizar un registro existente
191
+ */
192
+ update: (id: string | number, data: Partial<T>) => Promise<T>;
193
+ /**
194
+ * Eliminar un registro
195
+ */
196
+ delete: (id: string | number) => Promise<void>;
197
+ }
198
+ /**
199
+ * Definición de permisos para operaciones CRUD
200
+ */
201
+ export interface CrudPermissions {
202
+ /** Permite crear nuevos registros */
203
+ canCreate?: boolean;
204
+ /** Permite editar registros existentes */
205
+ canUpdate?: boolean;
206
+ /** Permite eliminar registros */
207
+ canDelete?: boolean;
208
+ }
209
+ /**
210
+ * Props del componente MasterCrud
211
+ */
212
+ export interface MasterCrudProps<T = any> {
213
+ /**
214
+ * Título del módulo (se muestra en el header)
215
+ * @example "Gestión de Clientes"
216
+ */
217
+ title: string;
218
+ /**
219
+ * Nombre de la entidad en singular (para mensajes)
220
+ * @example "Cliente"
221
+ */
222
+ entityName: string;
223
+ /**
224
+ * Idioma para la localización de textos y formatos.
225
+ * Sigue el estándar ISO 639-1.
226
+ * @default 'es'
227
+ * @example 'en', 'fr'
228
+ */
229
+ locale?: string;
230
+ /**
231
+ * Definición de los campos de la entidad
232
+ */
233
+ fields: MasterCrudField<T>[];
234
+ /**
235
+ * Lista de accessorKeys de los campos que se pueden usar para filtrar/buscar.
236
+ * Si no se provee, se usan todos los campos visibles.
237
+ */
238
+ filterableFields?: string[];
239
+ /**
240
+ * Habilitar scroll infinito en la vista de tarjetas (Grid)
241
+ * Si es true, la vista de grid usará scroll infinito en lugar de paginación
242
+ * @default true
243
+ */
244
+ enableGridInfiniteScroll?: boolean;
245
+ /**
246
+ * Servicio que implementa las operaciones CRUD
247
+ */
248
+ service: CrudService<T>;
249
+ /**
250
+ * Campo que contiene el ID único de cada registro
251
+ * @default 'id'
252
+ */
253
+ idField?: keyof T | string;
254
+ /**
255
+ * Registros por página
256
+ * @default 10
257
+ */
258
+ pageSize?: number;
259
+ /**
260
+ * Si se muestra el botón de crear
261
+ * @default true
262
+ */
263
+ showCreateButton?: boolean;
264
+ /**
265
+ * Si se muestra el campo de búsqueda
266
+ * @default true
267
+ */
268
+ showSearch?: boolean;
269
+ /**
270
+ * Si se muestran acciones de edición/eliminar por fila
271
+ * @default true
272
+ */
273
+ showRowActions?: boolean;
274
+ /**
275
+ * Si se permite eliminar registros
276
+ * @default true
277
+ */
278
+ allowDelete?: boolean;
279
+ /**
280
+ * Configuración de permisos granulada.
281
+ * Si se define, tiene precedencia sobre `showCreateButton`, `showRowActions` y `allowDelete`.
282
+ */
283
+ permissions?: CrudPermissions;
284
+ /**
285
+ * Callback ejecutado antes de crear un registro.
286
+ * Si retorna false (o promesa false), cancela la operación.
287
+ */
288
+ onBeforeCreate?: (data: Partial<T>) => Promise<boolean> | boolean;
289
+ /**
290
+ * Callback ejecutado antes de actualizar un registro.
291
+ * Si retorna false (o promesa false), cancela la operación.
292
+ */
293
+ onBeforeUpdate?: (id: string | number, data: Partial<T>) => Promise<boolean> | boolean;
294
+ /**
295
+ * Callback ejecutado antes de iniciar el proceso de eliminación.
296
+ * Si retorna false (o promesa false), cancela la operación (no muestra confirmación).
297
+ */
298
+ onBeforeDelete?: (record: T) => Promise<boolean> | boolean;
299
+ /**
300
+ * Callback cuando se crea un registro exitosamente
301
+ */
302
+ onCreateSuccess?: (record: T) => void;
303
+ /**
304
+ * Callback cuando se actualiza un registro exitosamente
305
+ */
306
+ onUpdateSuccess?: (record: T) => void;
307
+ /**
308
+ * Callback cuando se elimina un registro exitosamente
309
+ */
310
+ onDeleteSuccess?: (id: string | number) => void;
311
+ /**
312
+ * Callback cuando ocurre un error
313
+ */
314
+ onError?: (error: Error, action: 'create' | 'update' | 'delete' | 'fetch') => void;
315
+ /**
316
+ * Texto del botón crear
317
+ * @default 'Crear {entityName}'
318
+ */
319
+ createButtonText?: string;
320
+ /**
321
+ * Texto del botón guardar en el formulario
322
+ * @default 'Guardar'
323
+ */
324
+ saveButtonText?: string;
325
+ /**
326
+ * Texto del botón cancelar en el formulario
327
+ * @default 'Cancelar'
328
+ */
329
+ cancelButtonText?: string;
330
+ /**
331
+ * Mensaje cuando no hay datos
332
+ * @default 'No hay registros disponibles'
333
+ */
334
+ emptyMessage?: string;
335
+ /**
336
+ * Clases CSS adicionales para el contenedor
337
+ */
338
+ className?: string;
339
+ /**
340
+ * ID único para accesibilidad
341
+ */
342
+ id?: string;
343
+ /**
344
+ * Renderizado personalizado para la toolbar
345
+ */
346
+ renderToolbar?: (props: {
347
+ onSearch: (term: string) => void;
348
+ onCreate: () => void;
349
+ searchTerm: string;
350
+ }) => ReactNode;
351
+ /**
352
+ * Acciones adicionales por fila
353
+ */
354
+ rowActions?: (row: T, index: number) => ReactNode;
355
+ /**
356
+ * Ancho del contenedor del formulario
357
+ * @default '600px'
358
+ */
359
+ formWidth?: string;
360
+ /**
361
+ * Número de columnas del grid del formulario
362
+ * @default 2
363
+ */
364
+ formColumns?: number;
365
+ /**
366
+ * Si se muestra el toggle de vista (grid/list) en la toolbar
367
+ * @default false
368
+ */
369
+ showViewToggle?: boolean;
370
+ /**
371
+ * Opciones de ordenamiento para el dropdown
372
+ */
373
+ sortOptions?: SortOption[];
374
+ /**
375
+ * Opciones de filtro para el dropdown
376
+ */
377
+ filterOptions?: FilterOption[];
378
+ /**
379
+ * Si se usa el nuevo MasterCrudToolbar
380
+ * @default true
381
+ */
382
+ useToolbar?: boolean;
383
+ /**
384
+ * Callback cuando cambia la vista
385
+ */
386
+ onViewChange?: (view: ToolbarViewType) => void;
387
+ }
388
+ /**
389
+ * Props del componente MasterCrudTable
390
+ */
391
+ export interface MasterCrudTableProps<T = any> {
392
+ /** Definición de campos */
393
+ fields: MasterCrudField<T>[];
394
+ /** Datos a mostrar */
395
+ data: T[];
396
+ /** Si está cargando */
397
+ loading?: boolean;
398
+ /** Mensaje cuando no hay datos */
399
+ emptyMessage?: string;
400
+ /** Callback para ordenar */
401
+ onSort?: (column: string, direction: 'asc' | 'desc' | null) => void;
402
+ /** Columna actual de ordenamiento */
403
+ sortColumn?: string;
404
+ /** Dirección actual de ordenamiento */
405
+ sortDirection?: 'asc' | 'desc' | null;
406
+ /** Configuración de paginación */
407
+ pagination?: {
408
+ currentPage: number;
409
+ totalPages: number;
410
+ onPageChange: (page: number) => void;
411
+ };
412
+ /** Si se muestran acciones por fila */
413
+ showRowActions?: boolean;
414
+ /** Callback para editar */
415
+ onEdit?: (row: T, index: number) => void;
416
+ /** Callback para eliminar */
417
+ onDelete?: (row: T, index: number) => void;
418
+ /** Acciones personalizadas por fila */
419
+ rowActions?: (row: T, index: number) => ReactNode;
420
+ /** Clases CSS adicionales */
421
+ className?: string;
422
+ /** Idioma para formatos (ISO 639-1) */
423
+ locale?: string;
424
+ }
425
+ /**
426
+ * Props del componente MasterCrudForm
427
+ */
428
+ export interface MasterCrudFormProps<T = any> {
429
+ /** Definición de campos */
430
+ fields: MasterCrudField<T>[];
431
+ /** Datos iniciales del formulario (para edición) */
432
+ initialData?: Partial<T>;
433
+ /** Si está en modo edición */
434
+ isEditing?: boolean;
435
+ /** Si está cargando/guardando */
436
+ loading?: boolean;
437
+ /** Callback al enviar el formulario */
438
+ onSubmit: (data: Partial<T>) => void;
439
+ /** Callback al cancelar */
440
+ onCancel: () => void;
441
+ /** Texto del botón guardar */
442
+ saveButtonText?: string;
443
+ /** Texto del botón cancelar */
444
+ cancelButtonText?: string;
445
+ /** Número de columnas del grid */
446
+ columns?: number;
447
+ /** Ancho del formulario */
448
+ width?: string;
449
+ /** Clases CSS adicionales */
450
+ className?: string;
451
+ }
452
+ /**
453
+ * Estado interno del formulario
454
+ */
455
+ export interface FormState<T = any> {
456
+ /** Valores del formulario */
457
+ values: Partial<T>;
458
+ /** Errores de validación por campo */
459
+ errors: Record<string, string>;
460
+ /** Si el formulario ha sido tocado */
461
+ touched: Record<string, boolean>;
462
+ /** Si el formulario está siendo enviado */
463
+ isSubmitting: boolean;
464
+ }
465
+ /**
466
+ * Tipo de vista para el toggle de la toolbar
467
+ */
468
+ export type ToolbarViewType = 'grid' | 'list';
469
+ /**
470
+ * Opción de ordenamiento para el dropdown de la toolbar
471
+ */
472
+ export interface SortOption {
473
+ /** Valor único de la opción */
474
+ value: string;
475
+ /** Etiqueta visible */
476
+ label: string;
477
+ /** Campo por el cual ordenar */
478
+ field: string;
479
+ /** Dirección del ordenamiento */
480
+ direction: 'asc' | 'desc';
481
+ }
482
+ /**
483
+ * Opción de filtro para el dropdown de la toolbar
484
+ */
485
+ export interface FilterOption {
486
+ /** Valor único del filtro */
487
+ value: string;
488
+ /** Etiqueta visible */
489
+ label: string;
490
+ /** Icono opcional */
491
+ icon?: ReactNode;
492
+ }
493
+ /**
494
+ * Props del componente MasterCrudToolbar
495
+ */
496
+ export interface MasterCrudToolbarProps {
497
+ /**
498
+ * Título que se muestra a la izquierda
499
+ */
500
+ title: string;
501
+ /**
502
+ * Placeholder del input de búsqueda
503
+ * @default 'Buscar'
504
+ */
505
+ searchPlaceholder?: string;
506
+ /**
507
+ * Valor actual de la búsqueda
508
+ */
509
+ searchValue?: string;
510
+ /**
511
+ * Callback cuando cambia el valor de búsqueda
512
+ */
513
+ onSearchChange?: (value: string) => void;
514
+ /**
515
+ * Si se muestra el campo de búsqueda
516
+ * @default true
517
+ */
518
+ showSearch?: boolean;
519
+ /**
520
+ * Opciones del dropdown de filtros
521
+ */
522
+ filterOptions?: FilterOption[];
523
+ /**
524
+ * Filtro seleccionado actualmente
525
+ */
526
+ selectedFilter?: string;
527
+ /**
528
+ * Callback cuando cambia el filtro
529
+ */
530
+ onFilterChange?: (value: string) => void;
531
+ /**
532
+ * Si se muestra el dropdown de filtros
533
+ * @default true
534
+ */
535
+ showFilter?: boolean;
536
+ /**
537
+ * Texto del botón de filtros
538
+ * @default 'Filtrar'
539
+ */
540
+ filterButtonText?: string;
541
+ /**
542
+ * Opciones del dropdown de ordenamiento
543
+ */
544
+ sortOptions?: SortOption[];
545
+ /**
546
+ * Ordenamiento seleccionado actualmente (nombre del campo)
547
+ */
548
+ selectedSort?: string;
549
+ /**
550
+ * Dirección del ordenamiento actual
551
+ */
552
+ sortDirection?: 'asc' | 'desc';
553
+ /**
554
+ * Callback cuando cambia el ordenamiento (campo)
555
+ */
556
+ onSortChange?: (value: string) => void;
557
+ /**
558
+ * Callback cuando cambia la dirección del ordenamiento
559
+ */
560
+ onSortDirectionChange?: (direction: 'asc' | 'desc') => void;
561
+ /**
562
+ * Si se muestra el dropdown de ordenamiento
563
+ * @default true
564
+ */
565
+ showSort?: boolean;
566
+ /**
567
+ * Texto del botón de ordenamiento
568
+ * @default 'Ordenar'
569
+ */
570
+ sortButtonText?: string;
571
+ /**
572
+ * Vista actual (grid o list)
573
+ * @default 'list'
574
+ */
575
+ viewType?: ToolbarViewType;
576
+ /**
577
+ * Callback cuando cambia la vista
578
+ */
579
+ onViewChange?: (view: ToolbarViewType) => void;
580
+ /**
581
+ * Si se muestra el toggle de vista
582
+ * @default true
583
+ */
584
+ showViewToggle?: boolean;
585
+ /**
586
+ * Contenido adicional a renderizar en la toolbar
587
+ */
588
+ extraContent?: ReactNode;
589
+ /**
590
+ * Clases CSS adicionales
591
+ */
592
+ className?: string;
593
+ }
594
+ //# sourceMappingURL=MasterCrud.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MasterCrud.types.d.ts","sourceRoot":"","sources":["../../../src/components/MasterCrud/MasterCrud.types.ts"],"names":[],"mappings":"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"}