@imj_media/ui 1.2.13 → 1.2.15

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.
Files changed (113) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/dist/index.css +1 -1
  3. package/dist/index.esm.js +6988 -6069
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.js +30 -10
  6. package/dist/index.js.map +1 -1
  7. package/dist/modules/Alert/components/atoms/AlertHeader.d.ts.map +1 -1
  8. package/dist/modules/Alert/hooks/useAlertStyles.d.ts +2 -1
  9. package/dist/modules/Alert/hooks/useAlertStyles.d.ts.map +1 -1
  10. package/dist/modules/Alert/index.d.ts +1 -1
  11. package/dist/modules/Alert/index.d.ts.map +1 -1
  12. package/dist/modules/Alert/stories/alert.stories.d.ts +1 -0
  13. package/dist/modules/Alert/stories/alert.stories.d.ts.map +1 -1
  14. package/dist/modules/Alert/utils/alert.d.ts.map +1 -1
  15. package/dist/modules/Icon/Icon.d.ts +1 -1
  16. package/dist/modules/Icon/Icon.d.ts.map +1 -1
  17. package/dist/modules/Icon/components/LegacyIcon.d.ts +1 -1
  18. package/dist/modules/Icon/components/LegacyIcon.d.ts.map +1 -1
  19. package/dist/modules/IconFont/components/organims/IconFont.d.ts +6 -2
  20. package/dist/modules/IconFont/components/organims/IconFont.d.ts.map +1 -1
  21. package/dist/modules/Input/components/Input.d.ts.map +1 -1
  22. package/dist/modules/Input/hooks/useInputStyles.d.ts +2 -1
  23. package/dist/modules/Input/hooks/useInputStyles.d.ts.map +1 -1
  24. package/dist/modules/PickerColor/components/atoms/ColorInput.d.ts +25 -0
  25. package/dist/modules/PickerColor/components/atoms/ColorInput.d.ts.map +1 -0
  26. package/dist/modules/PickerColor/components/atoms/ColorSwatch.d.ts +18 -0
  27. package/dist/modules/PickerColor/components/atoms/ColorSwatch.d.ts.map +1 -0
  28. package/dist/modules/PickerColor/components/atoms/index.d.ts +3 -0
  29. package/dist/modules/PickerColor/components/atoms/index.d.ts.map +1 -0
  30. package/dist/modules/PickerColor/components/index.d.ts +4 -0
  31. package/dist/modules/PickerColor/components/index.d.ts.map +1 -0
  32. package/dist/modules/PickerColor/components/molecules/ColorPalette.d.ts +15 -0
  33. package/dist/modules/PickerColor/components/molecules/ColorPalette.d.ts.map +1 -0
  34. package/dist/modules/PickerColor/components/molecules/ColorPickerContent.d.ts +18 -0
  35. package/dist/modules/PickerColor/components/molecules/ColorPickerContent.d.ts.map +1 -0
  36. package/dist/modules/PickerColor/components/molecules/index.d.ts +3 -0
  37. package/dist/modules/PickerColor/components/molecules/index.d.ts.map +1 -0
  38. package/dist/modules/PickerColor/components/organisms/PickerColor.d.ts +3 -0
  39. package/dist/modules/PickerColor/components/organisms/PickerColor.d.ts.map +1 -0
  40. package/dist/modules/PickerColor/components/organisms/index.d.ts +2 -0
  41. package/dist/modules/PickerColor/components/organisms/index.d.ts.map +1 -0
  42. package/dist/modules/PickerColor/constants/colors.d.ts +9 -0
  43. package/dist/modules/PickerColor/constants/colors.d.ts.map +1 -0
  44. package/dist/modules/PickerColor/constants/index.d.ts +2 -0
  45. package/dist/modules/PickerColor/constants/index.d.ts.map +1 -0
  46. package/dist/modules/PickerColor/hooks/index.d.ts +3 -0
  47. package/dist/modules/PickerColor/hooks/index.d.ts.map +1 -0
  48. package/dist/modules/PickerColor/hooks/useEyeDropper.d.ts +12 -0
  49. package/dist/modules/PickerColor/hooks/useEyeDropper.d.ts.map +1 -0
  50. package/dist/modules/PickerColor/hooks/useRecentColors.d.ts +18 -0
  51. package/dist/modules/PickerColor/hooks/useRecentColors.d.ts.map +1 -0
  52. package/dist/modules/PickerColor/index.d.ts +2 -0
  53. package/dist/modules/PickerColor/index.d.ts.map +1 -0
  54. package/dist/modules/PickerColor/stories/PickerColor.stories.d.ts +16 -0
  55. package/dist/modules/PickerColor/stories/PickerColor.stories.d.ts.map +1 -0
  56. package/dist/modules/PickerColor/utils/colorUtils.d.ts +45 -0
  57. package/dist/modules/PickerColor/utils/colorUtils.d.ts.map +1 -0
  58. package/dist/modules/PickerColor/utils/debounce.d.ts +8 -0
  59. package/dist/modules/PickerColor/utils/debounce.d.ts.map +1 -0
  60. package/dist/modules/PickerColor/utils/index.d.ts +3 -0
  61. package/dist/modules/PickerColor/utils/index.d.ts.map +1 -0
  62. package/dist/modules/ProgressBar/components/organisms/Container.d.ts +1 -1
  63. package/dist/modules/ProgressBar/components/organisms/Container.d.ts.map +1 -1
  64. package/dist/modules/ProgressBar/components/organisms/atoms/BarProgress.d.ts.map +1 -1
  65. package/dist/modules/ProgressBar/stories/progressbar.stories.d.ts +1 -0
  66. package/dist/modules/ProgressBar/stories/progressbar.stories.d.ts.map +1 -1
  67. package/dist/modules/Table/Table.d.ts +1 -1
  68. package/dist/modules/Table/Table.d.ts.map +1 -1
  69. package/dist/modules/Table/components/atoms/DropdownCell.d.ts.map +1 -1
  70. package/dist/modules/Table/components/atoms/TextFieldCell.d.ts.map +1 -1
  71. package/dist/modules/Table/components/molecules/CellRenderer.d.ts.map +1 -1
  72. package/dist/modules/Table/components/molecules/TableRow.d.ts.map +1 -1
  73. package/dist/modules/Table/components/organisms/TableSelectionBar.d.ts.map +1 -1
  74. package/dist/modules/Table/components/organisms/TableToolbar.d.ts +5 -1
  75. package/dist/modules/Table/components/organisms/TableToolbar.d.ts.map +1 -1
  76. package/dist/modules/Table/hooks/useTableConfig.d.ts +5 -0
  77. package/dist/modules/Table/hooks/useTableConfig.d.ts.map +1 -1
  78. package/dist/modules/Table/hooks/useTableEdit.d.ts +1 -1
  79. package/dist/modules/Table/hooks/useTableEdit.d.ts.map +1 -1
  80. package/dist/modules/Table/stories/Table.stories.d.ts +124 -43
  81. package/dist/modules/Table/stories/Table.stories.d.ts.map +1 -1
  82. package/dist/modules/Table/stories/TableWithQuery.stories.d.ts +7 -0
  83. package/dist/modules/Table/stories/TableWithQuery.stories.d.ts.map +1 -1
  84. package/dist/modules/Table/utils/cellStyles.d.ts +2 -1
  85. package/dist/modules/Table/utils/cellStyles.d.ts.map +1 -1
  86. package/dist/modules/Toast/components/molecules/ToastItem.d.ts.map +1 -1
  87. package/dist/modules/Toast/hooks/useToast.d.ts.map +1 -1
  88. package/dist/modules/Toast/hooks/useToastService.d.ts +3 -1
  89. package/dist/modules/Toast/hooks/useToastService.d.ts.map +1 -1
  90. package/dist/modules/Toast/index.d.ts +8 -5
  91. package/dist/modules/Toast/index.d.ts.map +1 -1
  92. package/dist/modules/Toast/stories/toast.stories.d.ts.map +1 -1
  93. package/dist/modules/index.d.ts +1 -0
  94. package/dist/modules/index.d.ts.map +1 -1
  95. package/dist/shared/const/colors.d.ts +3 -0
  96. package/dist/shared/const/colors.d.ts.map +1 -1
  97. package/dist/shared/types/alert.d.ts +8 -2
  98. package/dist/shared/types/alert.d.ts.map +1 -1
  99. package/dist/shared/types/colorpicker.d.ts +47 -0
  100. package/dist/shared/types/colorpicker.d.ts.map +1 -0
  101. package/dist/shared/types/icon.d.ts +2 -0
  102. package/dist/shared/types/icon.d.ts.map +1 -1
  103. package/dist/shared/types/index.d.ts +1 -0
  104. package/dist/shared/types/index.d.ts.map +1 -1
  105. package/dist/shared/types/input.d.ts +1 -0
  106. package/dist/shared/types/input.d.ts.map +1 -1
  107. package/dist/shared/types/progressbar.d.ts +12 -1
  108. package/dist/shared/types/progressbar.d.ts.map +1 -1
  109. package/dist/shared/types/table.d.ts +8 -0
  110. package/dist/shared/types/table.d.ts.map +1 -1
  111. package/dist/shared/types/toast.d.ts +1 -0
  112. package/dist/shared/types/toast.d.ts.map +1 -1
  113. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,113 @@ Todos los cambios notables de este proyecto serán documentados en este archivo.
5
5
  El formato está basado en [Keep a Changelog](https://keepachangelog.com/es-ES/1.0.0/),
6
6
  y este proyecto adhiere a [Semantic Versioning](https://semver.org/lang/es/).
7
7
 
8
+ ## [1.2.15] - 2026-01-07
9
+
10
+ ### Added
11
+ - **Table - Control Externo de Edición**: Nueva prop para controlar el modo edición desde fuera del componente
12
+ - Nueva prop `editingRowIds` en `TableProps` que acepta un array de IDs de filas para activar modo edición
13
+ - Permite controlar múltiples filas en modo edición simultáneamente desde fuera del componente
14
+ - Útil para acciones en lote o control centralizado del estado de edición
15
+ - Cuando se proporciona `editingRowIds`, el estado interno de edición se sincroniza con los IDs externos
16
+ - Los botones de edición/guardar en la columna de acciones reflejan correctamente el estado controlado externamente
17
+ - Modificado el hook `useTableEdit` para aceptar IDs externos y sincronizar el estado interno
18
+ - Nueva story `ControlExternoEdicion` que demuestra cómo usar esta funcionalidad con botones externos de UI
19
+ - **ProgressBar - Prop `countdown` para Cuenta Regresiva**: Nueva funcionalidad integrada en el componente
20
+ - Nueva prop `countdown` que acepta un número en segundos para activar la animación de cuenta regresiva
21
+ - La barra anima automáticamente desde el valor de `progress` hasta 0% en el tiempo especificado
22
+ - Nueva prop `onCountdownComplete` callback que se ejecuta cuando la cuenta regresiva llega a 0
23
+ - Hook interno `useCountdown` que usa `setInterval` con `performance.now()` para timing preciso (~60fps)
24
+ - La transición CSS se desactiva automáticamente cuando `countdown` está activo para animación suave
25
+ - Story "Cuenta Regresiva" actualizada para demostrar el uso de las nuevas props
26
+ - Ejemplo de uso: `<ProgressBar progress={75} countdown={5} onCountdownComplete={() => alert('¡Listo!')} />`
27
+ - **Alert/Toast - Mejora en Barra de Progreso con Cuenta Regresiva**: Integración con la nueva prop `countdown` del ProgressBar
28
+ - El componente `Alert` ahora usa la prop `countdown` del ProgressBar para animación suave
29
+ - Conversión automática de `duration` (ms) a `countdown` (segundos): `countdown={duration / 1000}`
30
+ - La barra solo se muestra cuando `duration > 0`
31
+ - El color de la barra coincide automáticamente con el color del alert
32
+ - `ToastItem` ahora pasa correctamente la prop `duration` al `Alert`
33
+ - Story "Duración Personalizada" actualizada con duraciones explícitas (2s, 5s, 10s, permanente)
34
+
35
+ ### Changed
36
+ - **Table - Reorganización y Mejora de Stories**: Mejoras significativas en la organización y documentación de las historias de Storybook
37
+ - Reorganización completa de todas las 29 historias en orden alfabético para facilitar la navegación
38
+ - Traducción de todos los nombres de historias al español para consistencia con el proyecto
39
+ - Conversión de todas las historias para usar el componente `StoryBox` con estructura consistente
40
+ - Adición de ejemplos de código (`StoryBox.Code`) en todas las historias para mejor documentación
41
+ - Eliminación de propiedades `name` redundantes en favor de `StoryBox.Title`
42
+ - Corrección de errores de sintaxis JSX en historias que no cerraban correctamente los componentes
43
+ - Mejora en la consistencia del diseño y distribución de todas las historias
44
+ - Todas las historias ahora siguen el mismo patrón: `StoryBox.Title`, `StoryBox.Description`, `StoryBox.Content`, y `StoryBox.Code`
45
+ - Historia ahora sigue el mismo patrón que las demás historias
46
+
47
+ ### Fixed
48
+ - **ProgressBar - Transiciones CSS Controladas**: Corrección del comportamiento de transiciones en `BarProgress`
49
+ - La clase `ui-transition-all` ahora solo se aplica cuando `duration > 0`
50
+ - Se añade `transition: 'none'` explícitamente cuando `duration === 0` para desactivar transiciones CSS
51
+ - Esto permite animaciones controladas por JavaScript sin interferencia de transiciones CSS
52
+ - Mejora significativa en la precisión de animaciones de cuenta regresiva y actualizaciones en tiempo real
53
+
54
+ ## [1.2.14] - 2026-01-06
55
+
56
+ ### Added
57
+ - **PickerColor Component**: Nuevo componente completo para selección de colores
58
+ - Componente `PickerColor` para seleccionar colores en formato hexadecimal
59
+ - Componentes `ColorInput`, `ColorPalette`, y `ColorSwatch` para selección visual de colores
60
+ - Integración con almacenamiento de colores recientes usando localStorage para comodidad del usuario
61
+ - Soporte para EyeDropper API para seleccionar colores desde la pantalla
62
+ - Funciones utilitarias para validación y conversión de colores (hex, RGB, HSL)
63
+ - Stories completas para el componente PickerColor que demuestran varios casos de uso y configuraciones
64
+ - **Toast/Alert - Barra de Progreso con Duración**: Nueva funcionalidad para mostrar barra de progreso en toasts y alerts
65
+ - Nueva prop `duration` en `IAlert` y `ToastProps` para definir la duración del toast/alert
66
+ - Barra de progreso que se muestra en la parte inferior del alert cuando hay duración definida
67
+ - El progreso retrocede de 100% a 0% mientras pasa el tiempo, mostrando el tiempo restante
68
+ - El toast/alert se cierra automáticamente cuando el progreso llega a 0%
69
+ - La barra de progreso solo se muestra si `duration` está definida y es mayor a 0
70
+ - Hook `useProgressBar` que maneja el cálculo del progreso usando `requestAnimationFrame` para animación suave
71
+ - Sincronización entre el cierre automático del toast y la barra de progreso
72
+ - Actualizada la historia "DuraciónPersonalizada" para demostrar la funcionalidad de la barra de progreso
73
+ - Agregados ejemplos con diferentes duraciones (2s, 5s, 10s) en la historia "Colores"
74
+ - **Table - Validación de Celdas Editables**: Sistema de validación para celdas editables en tablas
75
+ - Nueva prop `errorCursor` en componente Input para indicar visualmente errores con cursor rojo y borde
76
+ - Validación automática basada en el tipo de columna (`number`, `numeric`, `text`)
77
+ - Prevención de entrada de caracteres inválidos en columnas numéricas
78
+ - Cursor parpadeante en color danger cuando hay error de validación
79
+ - Borde y fondo en color danger cuando hay error de validación
80
+ - Nueva story `ValidationTable` que demuestra la funcionalidad de validación en celdas editables
81
+ - **Table - Búsqueda Interna Configurable**: Mejora en el manejo de búsqueda interna vs externa
82
+ - Nueva prop `internalSearch` en `TableToolbarConfig` para controlar si se aplica búsqueda interna (por defecto: `false`)
83
+ - Cuando `internalSearch` es `false` y hay `onSearch` definido, solo se emite el evento sin aplicar búsqueda interna
84
+ - Evita mostrar resultados intermedios de búsqueda interna cuando hay búsqueda externa asíncrona
85
+ - Mejora en la experiencia de usuario al evitar parpadeos de resultados durante búsquedas externas
86
+ - **Table - Actualización Batch de Visibilidad de Columnas**: Mejora en el guardado de configuración en localStorage
87
+ - Nuevo método `updateMultipleColumnVisibility` en `useTableConfig` para actualizar múltiples columnas de una vez
88
+ - Prevención de sobreescrituras en localStorage cuando se cambian múltiples columnas simultáneamente
89
+ - Modificación en `TableToolbar` para usar actualización batch cuando hay múltiples cambios de visibilidad
90
+ - Nueva prop `onMultipleColumnVisibilityChange` en `TableToolbar` para manejar cambios batch
91
+ - Corrección del problema donde solo se guardaba el último checkbox marcado en localStorage
92
+ - **TableSelectionBar - Iconos Mejorados**: Mejora en el renderizado de iconos en acciones de selección
93
+ - Los iconos ahora se muestran correctamente cuando hay `label` e `icon` en las acciones
94
+ - Uso de `slotLeft` para iconos cuando hay label, permitiendo mostrar icono y texto juntos
95
+ - Soporte mejorado para iconos de tipo string (`'EditOutlined'`) y Font Awesome (`faCopy`)
96
+
97
+ ### Changed
98
+ - **Toast - Message Opcional**: La prop `message` ahora es opcional en `ToastInput`
99
+ - Cambiado el tipo `ToastInput` de `string | (ToastOptions & { message: string })` a `string | (ToastOptions & { message?: string })`
100
+ - Permite crear toasts solo con `title` sin necesidad de incluir `message`
101
+ - Si no se proporciona `message`, se usa una cadena vacía por defecto
102
+
103
+ ### Fixed
104
+ - **Table - Guardado en localStorage**: Corrección de sobreescrituras en localStorage
105
+ - Solucionado el problema donde múltiples cambios de visibilidad de columnas causaban sobreescrituras
106
+ - Ahora todos los cambios de visibilidad se guardan correctamente en una sola operación batch
107
+ - Mejora en la persistencia de configuración de columnas
108
+ - **Icon - Comparación con 'xl' en LegacyIcon**: Corrección de error de TypeScript
109
+ - Eliminada la comparación innecesaria con `'xl'` en `getPaddingClass` ya que `VisualSize` no incluye `'xl'`
110
+ - Simplificada la lógica para solo convertir `'xxs'` a `'xs'` cuando es necesario
111
+ - **PickerColor - Importación de InputRef**: Corrección de importación incorrecta
112
+ - Cambiada la importación de `InputRef` de `@/modules/Input` a `@/shared/types/input`
113
+ - Agregadas las propiedades faltantes `clear` y `getInputElement` al objeto retornado por `useImperativeHandle` en `ColorInput`
114
+
8
115
  ## [1.2.13] - 2025-01-22
9
116
 
10
117
  ### Added