@imj_media/ui 1.8.11 → 1.9.0

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 (141) hide show
  1. package/CHANGELOG.md +16 -2
  2. package/README.md +1 -1
  3. package/dist/index.css +1 -1
  4. package/dist/index.esm.js +12670 -11853
  5. package/dist/index.esm.js.map +1 -1
  6. package/dist/index.js +35 -33
  7. package/dist/index.js.map +1 -1
  8. package/dist/modules/Alert/components/atoms/AlertHeader.d.ts.map +1 -1
  9. package/dist/modules/Alert/hooks/useAlert.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/Badge/index.d.ts +7 -5
  13. package/dist/modules/Badge/index.d.ts.map +1 -1
  14. package/dist/modules/Badge/stories/badge.stories.d.ts +4 -1
  15. package/dist/modules/Badge/stories/badge.stories.d.ts.map +1 -1
  16. package/dist/modules/Badge/utils/mergeGroupedBadgeProps.d.ts +16 -2
  17. package/dist/modules/Badge/utils/mergeGroupedBadgeProps.d.ts.map +1 -1
  18. package/dist/modules/Cards/components/organisms/Card.d.ts +1 -1
  19. package/dist/modules/Cards/components/organisms/Card.d.ts.map +1 -1
  20. package/dist/modules/CardsGenericas/components/organisms/CardsGenericas.d.ts.map +1 -1
  21. package/dist/modules/CardsGenericas/index.d.ts +1 -1
  22. package/dist/modules/CardsGenericas/index.d.ts.map +1 -1
  23. package/dist/modules/CardsGenericas/stories/CardsGenericas.stories.d.ts.map +1 -1
  24. package/dist/modules/CatalogCard/components/organisms/CatalogCard.d.ts.map +1 -1
  25. package/dist/modules/CatalogCard/components/organisms/CatalogCatalogCard.d.ts.map +1 -1
  26. package/dist/modules/CatalogCard/components/organisms/catalogCardTagsRow.d.ts.map +1 -1
  27. package/dist/modules/CatalogCard/stories/CatalogCard.stories.d.ts +5 -0
  28. package/dist/modules/CatalogCard/stories/CatalogCard.stories.d.ts.map +1 -1
  29. package/dist/modules/CatalogCard/types/index.d.ts.map +1 -1
  30. package/dist/modules/Drawer/index.d.ts.map +1 -1
  31. package/dist/modules/Drawer/stories/Drawer.stories.d.ts.map +1 -1
  32. package/dist/modules/Dropdown/components/Dropdown.d.ts.map +1 -1
  33. package/dist/modules/Dropdown/stories/MultipleSelection.stories.d.ts.map +1 -1
  34. package/dist/modules/Dropdown/utils/orderDropdownListOptionsPinSelectedFirst.d.ts.map +1 -1
  35. package/dist/modules/Ghantt/Ghantt.d.ts.map +1 -1
  36. package/dist/modules/Ghantt/GhanttTimelineHeader.d.ts.map +1 -1
  37. package/dist/modules/Input/hooks/useInputStyles.d.ts.map +1 -1
  38. package/dist/modules/Input/stories/Input.stories.d.ts.map +1 -1
  39. package/dist/modules/Message/Message.api.d.ts +2 -1
  40. package/dist/modules/Message/Message.api.d.ts.map +1 -1
  41. package/dist/modules/Message/Message.services.d.ts +18 -16
  42. package/dist/modules/Message/Message.services.d.ts.map +1 -1
  43. package/dist/modules/Message/Message.types.d.ts +66 -11
  44. package/dist/modules/Message/Message.types.d.ts.map +1 -1
  45. package/dist/modules/Message/components/molecules/MessageItem.d.ts +11 -2
  46. package/dist/modules/Message/components/molecules/MessageItem.d.ts.map +1 -1
  47. package/dist/modules/Message/components/molecules/MessagePositions.d.ts +14 -2
  48. package/dist/modules/Message/components/molecules/MessagePositions.d.ts.map +1 -1
  49. package/dist/modules/Message/components/molecules/NotificationItem.d.ts +39 -4
  50. package/dist/modules/Message/components/molecules/NotificationItem.d.ts.map +1 -1
  51. package/dist/modules/Message/components/molecules/NotificationItemFullListPanel.d.ts +45 -0
  52. package/dist/modules/Message/components/molecules/NotificationItemFullListPanel.d.ts.map +1 -0
  53. package/dist/modules/Message/components/molecules/NotificationItemStackDeck.d.ts +55 -0
  54. package/dist/modules/Message/components/molecules/NotificationItemStackDeck.d.ts.map +1 -0
  55. package/dist/modules/Message/components/molecules/NotificationPositions.d.ts +16 -4
  56. package/dist/modules/Message/components/molecules/NotificationPositions.d.ts.map +1 -1
  57. package/dist/modules/Message/components/molecules/notificationItemCardMapping.d.ts +43 -0
  58. package/dist/modules/Message/components/molecules/notificationItemCardMapping.d.ts.map +1 -0
  59. package/dist/modules/Message/components/molecules/notificationItemStackLayout.d.ts +23 -0
  60. package/dist/modules/Message/components/molecules/notificationItemStackLayout.d.ts.map +1 -0
  61. package/dist/modules/Message/config/message.config.d.ts +11 -0
  62. package/dist/modules/Message/config/message.config.d.ts.map +1 -1
  63. package/dist/modules/Message/hooks/index.d.ts +4 -0
  64. package/dist/modules/Message/hooks/index.d.ts.map +1 -1
  65. package/dist/modules/Message/hooks/useMessage.d.ts +9 -0
  66. package/dist/modules/Message/hooks/useMessage.d.ts.map +1 -1
  67. package/dist/modules/Message/hooks/useMessageStyles.d.ts +5 -0
  68. package/dist/modules/Message/hooks/useMessageStyles.d.ts.map +1 -1
  69. package/dist/modules/Message/hooks/useNotification.d.ts +14 -3
  70. package/dist/modules/Message/hooks/useNotification.d.ts.map +1 -1
  71. package/dist/modules/Message/hooks/useNotificationItemDeck.d.ts +38 -0
  72. package/dist/modules/Message/hooks/useNotificationItemDeck.d.ts.map +1 -0
  73. package/dist/modules/Message/hooks/useNotificationItemDeck.test.d.ts +2 -0
  74. package/dist/modules/Message/hooks/useNotificationItemDeck.test.d.ts.map +1 -0
  75. package/dist/modules/Message/services/MessageService.d.ts +8 -0
  76. package/dist/modules/Message/services/MessageService.d.ts.map +1 -1
  77. package/dist/modules/Message/services/MessageService.test.d.ts +2 -0
  78. package/dist/modules/Message/services/MessageService.test.d.ts.map +1 -0
  79. package/dist/modules/Message/services/NotificationService.d.ts +31 -30
  80. package/dist/modules/Message/services/NotificationService.d.ts.map +1 -1
  81. package/dist/modules/Message/services/NotificationService.test.d.ts +2 -0
  82. package/dist/modules/Message/services/NotificationService.test.d.ts.map +1 -0
  83. package/dist/modules/Message/services/notificationServiceBuildEnqueueNotification.d.ts +15 -0
  84. package/dist/modules/Message/services/notificationServiceBuildEnqueueNotification.d.ts.map +1 -0
  85. package/dist/modules/Message/services/notificationServiceMergeCard.d.ts +16 -0
  86. package/dist/modules/Message/services/notificationServiceMergeCard.d.ts.map +1 -0
  87. package/dist/modules/Message/stories/message.stories.d.ts +1 -1
  88. package/dist/modules/Message/stories/message.stories.d.ts.map +1 -1
  89. package/dist/modules/Message/stories/notification-storycode.stories.d.ts +12 -0
  90. package/dist/modules/Message/stories/notification-storycode.stories.d.ts.map +1 -0
  91. package/dist/modules/Message/stories/notification.stories.d.ts +5 -0
  92. package/dist/modules/Message/stories/notification.stories.d.ts.map +1 -1
  93. package/dist/modules/Modal/components/molecules/ModalHeader.d.ts.map +1 -1
  94. package/dist/modules/Modal/stories/ModalImage.stories.d.ts.map +1 -1
  95. package/dist/modules/Notification/components/molecules/NotificationContentBody.d.ts +31 -0
  96. package/dist/modules/Notification/components/molecules/NotificationContentBody.d.ts.map +1 -0
  97. package/dist/modules/Notification/index.d.ts +37 -0
  98. package/dist/modules/Notification/index.d.ts.map +1 -0
  99. package/dist/modules/Notification/index.test.d.ts +2 -0
  100. package/dist/modules/Notification/index.test.d.ts.map +1 -0
  101. package/dist/modules/Notification/stories/notification.stories.d.ts +34 -0
  102. package/dist/modules/Notification/stories/notification.stories.d.ts.map +1 -0
  103. package/dist/modules/Notification/types/notification.d.ts +173 -0
  104. package/dist/modules/Notification/types/notification.d.ts.map +1 -0
  105. package/dist/modules/Popup/hooks/usePopup.d.ts.map +1 -1
  106. package/dist/modules/Popup/hooks/usePopupExternalTrigger.d.ts.map +1 -1
  107. package/dist/modules/RangeBar/components/organisms/RangeSelector.d.ts.map +1 -1
  108. package/dist/modules/Separator/components/Separator.d.ts +4 -1
  109. package/dist/modules/Separator/components/Separator.d.ts.map +1 -1
  110. package/dist/modules/Separator/stories/separator.stories.d.ts +10 -0
  111. package/dist/modules/Separator/stories/separator.stories.d.ts.map +1 -0
  112. package/dist/modules/Sidebar/components/molecules/SidebarDrilldownPanel.d.ts.map +1 -1
  113. package/dist/modules/Sidebar/components/molecules/SidebarUserProfile.d.ts.map +1 -1
  114. package/dist/modules/Sidebar/components/molecules/SidebarWorkspaceCard.d.ts.map +1 -1
  115. package/dist/modules/Sidebar/components/organisms/Sidebar.d.ts.map +1 -1
  116. package/dist/modules/Sidebar/stories/Sidebar.stories.d.ts.map +1 -1
  117. package/dist/modules/Sidebar/stories/SidebarDrilldownPanel.stories.d.ts.map +1 -1
  118. package/dist/modules/StoryBox/index.d.ts.map +1 -1
  119. package/dist/modules/Table/components/atoms/GanttCell.d.ts.map +1 -1
  120. package/dist/modules/Table/components/atoms/ImagePreviewCell.d.ts.map +1 -1
  121. package/dist/modules/Table/components/molecules/FilterCard.d.ts.map +1 -1
  122. package/dist/modules/Table/hooks/useTableColumns.d.ts.map +1 -1
  123. package/dist/modules/Table/stories/Table.stories.d.ts.map +1 -1
  124. package/dist/modules/Table/stories/cells/19-ImagePreview.stories.d.ts.map +1 -1
  125. package/dist/modules/Toolbar/components/organisms/Toolbar.d.ts.map +1 -1
  126. package/dist/modules/Toolbar/stories/Toolbar.stories.d.ts.map +1 -1
  127. package/dist/modules/Tooltip/stories/Tooltip.stories.d.ts.map +1 -1
  128. package/dist/modules/imj-calendar-timeline/lib/markers/implementations/shared.d.ts.map +1 -1
  129. package/dist/modules/index.d.ts +1 -0
  130. package/dist/modules/index.d.ts.map +1 -1
  131. package/dist/shared/ghantt/GhanttScrollVirtualContext.d.ts.map +1 -1
  132. package/dist/shared/ghantt/GhanttSlotStrip.d.ts.map +1 -1
  133. package/dist/shared/ghantt/ganttTimeline.d.ts.map +1 -1
  134. package/dist/shared/ghantt/ghanttModifierWheelZoom.d.ts.map +1 -1
  135. package/dist/shared/types/alert.d.ts +25 -3
  136. package/dist/shared/types/alert.d.ts.map +1 -1
  137. package/dist/shared/types/message.d.ts +56 -1
  138. package/dist/shared/types/message.d.ts.map +1 -1
  139. package/dist/shared/types/separator.d.ts +5 -0
  140. package/dist/shared/types/separator.d.ts.map +1 -1
  141. package/package.json +1 -1
@@ -1,8 +1,43 @@
1
- import { default as React } from 'react';
2
1
  import { NotificationGroup } from '../../../../shared/types/message';
3
- interface NotificationItemProps {
2
+ /** Grupo activo del servicio de notificaciones (cola, color de mazo, `isLeaving`, etc.). */
3
+ export interface NotificationItemProps {
4
+ /** Estado del mazo: cola, contador, progreso de temporizador y bandera de salida animada. */
4
5
  group: NotificationGroup;
5
6
  }
6
- export declare const NotificationItem: React.MemoExoticComponent<({ group }: NotificationItemProps) => import("react/jsx-runtime").JSX.Element | null>;
7
- export {};
7
+ /**
8
+ * Stack superpuesto anclado por la base: como máximo **3** notificaciones en vista previa;
9
+ * con **hover** se muestran todas las de la cola. El desfase vertical aumenta al expandir.
10
+ * Con hover, un clic fuera de controles interactivos abre la lista vertical con toda la cola.
11
+ * La lista extendida no se cierra al salir el puntero del mazo (solo deja de contar como hover expandido).
12
+ * Cerrar una notificación no debe colapsar el mazo ya extendido por hover (se suprime el mouseleave espurio).
13
+ * Cierre **individual** por tarjeta (`dismiss(id)`). El **timer** (barra) solo en la más antigua del grupo
14
+ * (orden 1 / arriba) si está en la porción visible; en lista extendida solo en la primera fila.
15
+ * Con **hover** en el mazo (varias notas, vista **apilada**), el pie y la barra se atenúan con la misma
16
+ * transición que el stack (sin `display: none`), sin pausar el temporizador del servicio. Tras abrir la
17
+ * **lista completa** (clic en el grupo), el hover ya no atenúa la barra de progreso; el pie de total
18
+ * («N notificaciones más») no se muestra en esa vista. Al expirar el temporizador, se cierra la más antigua
19
+ * y avanza la cola.
20
+ * La cola del servicio mantiene **antigua → reciente**; al cerrar una, las demás suben de orden; al pasar
21
+ * `stackMax`, se expulsa la de arriba (más antigua). El estrechamiento horizontal sigue la profundidad visual
22
+ * (2ª = menos profunda / menos recorte; 3ª = más profunda / más recorte; al hover, 100%).
23
+ * Con **más de una** notificación en el mazo (vista apilada), las alertas usan `animation="none"` y anulan
24
+ * `transition-all` del `Alert` (`!ui-transition-none`) para no interpolar opacidad/layout sobre capas inferiores.
25
+ * El listado (`NotificationPositions`) usa una `key` estable por color para no remontar
26
+ * todo el mazo al entrar o salir notificaciones; el grupo se muta in-place en el servicio, así que este
27
+ * componente no debe envolverse en `React.memo` por referencia de `group` (bloquearía la cola en pantalla).
28
+ *
29
+ * Tras cada cambio de cola se aplica un breve “asentamiento” (ver `STACK_LAYOUT_SETTLE_MS`) sin
30
+ * transición de **padding** en el contenedor del mazo (evita solape con clics muy rápidos). Las capas
31
+ * conservan transición en `bottom` para que el hover expanda siempre con animación, incluso justo
32
+ * después de mostrar el stack.
33
+ *
34
+ * @example
35
+ * import { NotificationItem } from '@imj_media/ui';
36
+ *
37
+ * <NotificationItem group={notificationGroupFromService} />
38
+ */
39
+ export declare const NotificationItem: {
40
+ ({ group }: NotificationItemProps): import("react/jsx-runtime").JSX.Element | null;
41
+ displayName: string;
42
+ };
8
43
  //# sourceMappingURL=NotificationItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationItem.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Message/components/molecules/NotificationItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAqB,MAAM,wBAAwB,CAAC;AAQ9E,UAAU,qBAAqB;IAC7B,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,eAAO,MAAM,gBAAgB,wCAA0B,qBAAqB,oDAqE1E,CAAC"}
1
+ {"version":3,"file":"NotificationItem.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Message/components/molecules/NotificationItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAe3D,4FAA4F;AAC5F,MAAM,WAAW,qBAAqB;IACpC,6FAA6F;IAC7F,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,gBAAgB;gBAAe,qBAAqB;;CAqJhE,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { NotificationIntent } from '../../../Notification';
2
+ import { NotificationProps } from '../../../../shared/types/message';
3
+ import type * as React from 'react';
4
+ /** Props internas de la lista vertical “todas las notificaciones” dentro de un mazo. */
5
+ export interface NotificationItemFullListPanelProps {
6
+ /** Cola completa del grupo (antigua → reciente). */
7
+ queue: NotificationProps[];
8
+ /** Intención visual aplicada a cada fila. */
9
+ intent: NotificationIntent;
10
+ /** Estado de salida común del contenedor durante dismiss del mazo. */
11
+ isLeaving: boolean;
12
+ /** Dispara la transición de entrada (opacidad / translate) al abrir la lista. */
13
+ listMotionEnter: boolean;
14
+ /** Si el servicio muestra barra de tiempo en las tarjetas. */
15
+ showTimer: boolean;
16
+ /** Duración por defecto del servicio cuando la entrada no define `duration`. */
17
+ notificationDuration: number;
18
+ /**
19
+ * Clases extra para envolver la barra (atenúación con hover en stack); recibe ms efectivos o `undefined`.
20
+ */
21
+ progressBarClassWhenStackHover: (durationMs: number | undefined) => string | undefined;
22
+ /** Handler de cierre por entrada (devuelve el manejador de botón). */
23
+ handleDismissOne: (n: NotificationProps) => (e: React.MouseEvent<HTMLButtonElement>) => void;
24
+ }
25
+ /**
26
+ * Lista vertical completa del mazo (todas las notificaciones en columna).
27
+ *
28
+ * @example
29
+ * // Uso normal vía `NotificationItem`; este fragmento ilustura la firma:
30
+ * <NotificationItemFullListPanel
31
+ * queue={group.queue}
32
+ * intent="critica"
33
+ * isLeaving={group.isLeaving}
34
+ * listMotionEnter={motion}
35
+ * showTimer
36
+ * notificationDuration={5000}
37
+ * progressBarClassWhenStackHover={() => undefined}
38
+ * handleDismissOne={(n) => (e) => { e.stopPropagation(); dismiss(n.id); }}
39
+ * />
40
+ */
41
+ export declare function NotificationItemFullListPanel({ queue, intent, isLeaving, listMotionEnter, showTimer, notificationDuration, progressBarClassWhenStackHover, handleDismissOne, }: NotificationItemFullListPanelProps): import("react/jsx-runtime").JSX.Element;
42
+ export declare namespace NotificationItemFullListPanel {
43
+ var displayName: string;
44
+ }
45
+ //# sourceMappingURL=NotificationItemFullListPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotificationItemFullListPanel.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Message/components/molecules/NotificationItemFullListPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAKhE,wFAAwF;AACxF,MAAM,WAAW,kCAAkC;IACjD,oDAAoD;IACpD,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,6CAA6C;IAC7C,MAAM,EAAE,kBAAkB,CAAC;IAC3B,sEAAsE;IACtE,SAAS,EAAE,OAAO,CAAC;IACnB,iFAAiF;IACjF,eAAe,EAAE,OAAO,CAAC;IACzB,8DAA8D;IAC9D,SAAS,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,8BAA8B,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC;IACvF,sEAAsE;IACtE,gBAAgB,EAAE,CAAC,CAAC,EAAE,iBAAiB,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CAC9F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,KAAK,EACL,MAAM,EACN,SAAS,EACT,eAAe,EACf,SAAS,EACT,oBAAoB,EACpB,8BAA8B,EAC9B,gBAAgB,GACjB,EAAE,kCAAkC,2CA2CpC;yBApDe,6BAA6B"}
@@ -0,0 +1,55 @@
1
+ import { NotificationIntent } from '../../../Notification';
2
+ import { NotificationProps } from '../../../../shared/types/message';
3
+ import type * as React from 'react';
4
+ /** Props de la vista apilada: capas bajo la frontal + frontal y pie del mazo. */
5
+ export interface NotificationItemStackDeckProps {
6
+ /** Notificaciones que se pintan como capas absolutas bajo la frontal. */
7
+ stackUnderLayers: NotificationProps[];
8
+ /** Tarjeta visible al frente del stack. */
9
+ frontNotification: NotificationProps;
10
+ /** Clave estable de React para la frontal (id preferido). */
11
+ frontNotificationKey: number | undefined;
12
+ /** Píxeles de separación vertical entre capas (colapsado vs expandido). */
13
+ perLayerBottomPx: number;
14
+ /** Si el hover expande el stack a ancho completo. */
15
+ isStackExpanded: boolean;
16
+ /** Intención del mazo. */
17
+ intent: NotificationIntent;
18
+ /** Animación de salida del grupo. */
19
+ isLeaving: boolean;
20
+ /** Clases aplicadas al `Alert` del deck (p. ej. anular transiciones en multilayer). */
21
+ stackDeckAlertClassName: string;
22
+ /** Duración efectiva de barra para una id en el contexto del stack (más antigua visible, etc.). */
23
+ timerDurationInStack: (id: number | undefined) => number | undefined;
24
+ /** Wrapper de clases para la barra según hover y duración. */
25
+ progressBarClassWhenStackHover: (durationMs: number | undefined) => string | undefined;
26
+ /** Cierre por tarjeta. */
27
+ handleDismissOne: (n: NotificationProps) => (e: React.MouseEvent<HTMLButtonElement>) => void;
28
+ /** Pie del stack (“N notificaciones más”) u otro chrome. */
29
+ stackListFooter: React.ReactNode;
30
+ }
31
+ /**
32
+ * Vista apilada: capas inferiores absolutas + frontal relativa.
33
+ *
34
+ * @example
35
+ * // Compuesto por `NotificationItem`; referencia de integración:
36
+ * <NotificationItemStackDeck
37
+ * stackUnderLayers={tail}
38
+ * frontNotification={head}
39
+ * frontNotificationKey={head.id}
40
+ * perLayerBottomPx={8}
41
+ * isStackExpanded={false}
42
+ * intent="informativa"
43
+ * isLeaving={false}
44
+ * stackDeckAlertClassName="ui-w-full"
45
+ * timerDurationInStack={() => undefined}
46
+ * progressBarClassWhenStackHover={() => undefined}
47
+ * handleDismissOne={(n) => (e) => { e.stopPropagation(); }}
48
+ * stackListFooter={null}
49
+ * />
50
+ */
51
+ export declare function NotificationItemStackDeck({ stackUnderLayers, frontNotification, frontNotificationKey, perLayerBottomPx, isStackExpanded, intent, isLeaving, stackDeckAlertClassName, timerDurationInStack, progressBarClassWhenStackHover, handleDismissOne, stackListFooter, }: NotificationItemStackDeckProps): import("react/jsx-runtime").JSX.Element;
52
+ export declare namespace NotificationItemStackDeck {
53
+ var displayName: string;
54
+ }
55
+ //# sourceMappingURL=NotificationItemStackDeck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotificationItemStackDeck.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Message/components/molecules/NotificationItemStackDeck.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,iFAAiF;AACjF,MAAM,WAAW,8BAA8B;IAC7C,yEAAyE;IACzE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;IACtC,2CAA2C;IAC3C,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,6DAA6D;IAC7D,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,2EAA2E;IAC3E,gBAAgB,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,eAAe,EAAE,OAAO,CAAC;IACzB,0BAA0B;IAC1B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,qCAAqC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,uFAAuF;IACvF,uBAAuB,EAAE,MAAM,CAAC;IAChC,mGAAmG;IACnG,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC;IACrE,8DAA8D;IAC9D,8BAA8B,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC;IACvF,0BAA0B;IAC1B,gBAAgB,EAAE,CAAC,CAAC,EAAE,iBAAiB,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC7F,4DAA4D;IAC5D,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,MAAM,EACN,SAAS,EACT,uBAAuB,EACvB,oBAAoB,EACpB,8BAA8B,EAC9B,gBAAgB,EAChB,eAAe,GAChB,EAAE,8BAA8B,2CAwEhC;yBArFe,yBAAyB"}
@@ -1,8 +1,20 @@
1
- import { NotificationGroup, NotificationColor } from '../../../../shared/types/message';
1
+ import { NotificationGroup } from '../../../../shared/types/message';
2
2
  import { default as React } from 'react';
3
- interface NotificationPositionsProps {
4
- groups: Record<NotificationColor, NotificationGroup | null>;
3
+ /** Estado de mazos de notificación (claves internas → grupo con cola y metadatos). */
4
+ export interface NotificationPositionsProps {
5
+ /** Grupos procedentes de `useNotification().groups` o del servicio (`notificationService.getGroups()`). */
6
+ groups: Record<string, NotificationGroup>;
5
7
  }
8
+ /**
9
+ * Un único ancla en pantalla según `notificationService` y un `NotificationItem` por mazo activo.
10
+ *
11
+ * @example
12
+ * import { NotificationPositions, useNotification } from '@imj_media/ui';
13
+ *
14
+ * function Demo() {
15
+ * const { groups } = useNotification();
16
+ * return <NotificationPositions groups={groups} />;
17
+ * }
18
+ */
6
19
  export declare const NotificationPositions: React.MemoExoticComponent<({ groups }: NotificationPositionsProps) => import("react/jsx-runtime").JSX.Element | null>;
7
- export {};
8
20
  //# sourceMappingURL=NotificationPositions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationPositions.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Message/components/molecules/NotificationPositions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI9E,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,0BAA0B;IAClC,MAAM,EAAE,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAC,CAAC;CAC7D;AAED,eAAO,MAAM,qBAAqB,yCAA2B,0BAA0B,oDAmDrF,CAAC"}
1
+ {"version":3,"file":"NotificationPositions.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Message/components/molecules/NotificationPositions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,sFAAsF;AACtF,MAAM,WAAW,0BAA0B;IACzC,2GAA2G;IAC3G,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC3C;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,yCAA2B,0BAA0B,oDAoDrF,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { NotificationProps } from '../../../../shared/types/message';
2
+ import { NotificationCardProps, NotificationIntent } from '../../../Notification';
3
+ import { AnimationAlert } from '../../../../shared/types/alert';
4
+ import type * as React from 'react';
5
+ /**
6
+ * Mapea una notificación del servicio agrupado al componente **Notification** del design system.
7
+ *
8
+ * @param n - Entrada de la cola del servicio agrupado.
9
+ * @param intent - Intención visual compartida del mazo (`brand`, `neutral`, …).
10
+ * @param options - Overrides de presentación para esta capa (animación, timer, footer, botones).
11
+ * @returns Props listas para `<_notification.Notification />` (`NotificationCardProps`).
12
+ */
13
+ export declare function messageQueueEntryToNotification(n: NotificationProps, intent: NotificationIntent, options: {
14
+ /** Clases Tailwind en el contenedor de la tarjeta (ancho, anulación de transición en capas, …). */
15
+ className?: string;
16
+ /** Indica fase de salida para animación de cierre. */
17
+ isLeaving: boolean;
18
+ /** Duración en ms para la barra de progreso; `undefined` oculta la barra en esa capa. */
19
+ duration?: number;
20
+ /** Atenúa la barra sin desmontarla (p. ej. hover en el mazo). */
21
+ progressBarClassName?: string;
22
+ /** Animación del `Alert` interno (`none` en capas inferiores del stack). */
23
+ animation: AnimationAlert;
24
+ /** Si es true, propaga textos y callbacks de botones primario/secundario desde `n`. */
25
+ showActionButtons: boolean;
26
+ /** Si se define, sustituye `n.showCloseButton` (p. ej. capas traseras del mazo). */
27
+ showCloseButton?: boolean;
28
+ /** Pie opcional reemplazando el slot `footer` de la tarjeta. */
29
+ footer?: React.ReactNode | null;
30
+ /** Cerrar desde el botón X (o overlay) con evento de botón. */
31
+ onClose?: (e: React.MouseEvent<HTMLButtonElement>) => void;
32
+ /** Click en la superficie de la tarjeta cuando aplique. */
33
+ onClick?: () => void;
34
+ }): NotificationCardProps;
35
+ /**
36
+ * Fusiona overrides parciales sobre una tarjeta de notificación ya construida.
37
+ *
38
+ * @param base - Props completas de `Notification` (con `open`).
39
+ * @param over - Parcial por bloques (`content`, `appearance`, `meta`, `events`, `footer`) sin obligar `open`.
40
+ * @returns Nueva tarjeta con bloques fusionados superficialmente.
41
+ */
42
+ export declare function mergeNotificationCard(base: NotificationCardProps, over?: Partial<Omit<NotificationCardProps, 'open'>>): NotificationCardProps;
43
+ //# sourceMappingURL=notificationItemCardMapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notificationItemCardMapping.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Message/components/molecules/notificationItemCardMapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,CAAC,EAAE,iBAAiB,EACpB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE;IACP,mGAAmG;IACnG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,SAAS,EAAE,OAAO,CAAC;IACnB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,SAAS,EAAE,cAAc,CAAC;IAC1B,uFAAuF;IACvF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oFAAoF;IACpF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gEAAgE;IAChE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAChC,+DAA+D;IAC/D,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC3D,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,GACA,qBAAqB,CAuCvB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,qBAAqB,EAC3B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,GAClD,qBAAqB,CAWvB"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Layout y clases de transición del mazo apilado en `NotificationItem`.
3
+ * Detalle UX: comentario de bloque del componente.
4
+ */
5
+ /** Vista previa colapsada: máximo de tarjetas visibles (incluye la frontal). */
6
+ export declare const STACK_PREVIEW_MAX_VISIBLE = 3;
7
+ /** Desfase vertical base por capa (`bottom` negativo) en stack colapsado. */
8
+ export declare const STACK_OFFSET_PX = 8;
9
+ /** Recorte horizontal por nivel de profundidad sin hover (inset simétrico). */
10
+ export declare const STACK_LAYER_COLLAPSED_TRIM_PER_LEVEL_PX = 22;
11
+ /** Desfase vertical por capa con hover (stack más abierto). */
12
+ export declare const STACK_OFFSET_EXPANDED_PX = 44;
13
+ /** Gap entre filas en la vista lista completa. */
14
+ export declare const FULL_LIST_GAP_PX = 8;
15
+ /** Duración y easing compartidos (stack, lista, chrome). */
16
+ export declare const STACK_MOTION_TIMING = "ui-duration-500 ui-ease-in-out motion-reduce:ui-transition-none";
17
+ /** Alias de timing para expansión del stack (misma cadena que `STACK_MOTION_TIMING`). */
18
+ export declare const STACK_EXPAND_EASE = "ui-duration-500 ui-ease-in-out motion-reduce:ui-transition-none";
19
+ /** Transición del pie y envoltorio de barra (opacity + max-height). */
20
+ export declare const STACK_CHROME_TRANSITION = "ui-transition-[opacity,max-height] ui-duration-500 ui-ease-in-out motion-reduce:ui-transition-none";
21
+ /** Ventana sin transición de padding tras mutar la cola (ms). */
22
+ export declare const STACK_LAYOUT_SETTLE_MS = 560;
23
+ //# sourceMappingURL=notificationItemStackLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notificationItemStackLayout.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Message/components/molecules/notificationItemStackLayout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gFAAgF;AAChF,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,6EAA6E;AAC7E,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,+EAA+E;AAC/E,eAAO,MAAM,uCAAuC,KAAK,CAAC;AAE1D,+DAA+D;AAC/D,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,kDAAkD;AAClD,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,oEAAoE,CAAC;AAErG,yFAAyF;AACzF,eAAO,MAAM,iBAAiB,oEAAsB,CAAC;AAErD,uEAAuE;AACvE,eAAO,MAAM,uBAAuB,uGAA8D,CAAC;AAEnG,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,MAAM,CAAC"}
@@ -1,5 +1,16 @@
1
1
  import { BaseMessageConfig } from '../../../shared/types/message';
2
+ /**
3
+ * Valores iniciales del toast antes de cualquier `configure` / `configureMessage` en runtime.
4
+ */
2
5
  export declare const defaultMessageConfig: BaseMessageConfig;
6
+ /**
7
+ * Configuración mutable de toasts; `MessageService.configure` y `configureMessage` la fusionan.
8
+ */
3
9
  export declare let messageConfig: BaseMessageConfig;
10
+ /**
11
+ * Actualiza la configuración global de toasts (duración máxima, posición por defecto, textos de botones, etc.).
12
+ *
13
+ * @param newConfig - Parcial fusionado sobre `messageConfig` actual.
14
+ */
4
15
  export declare const configureMessage: (newConfig: Partial<BaseMessageConfig>) => void;
5
16
  //# sourceMappingURL=message.config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.config.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/config/message.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,eAAO,MAAM,oBAAoB,EAAE,iBASlC,CAAC;AAEF,eAAO,IAAI,aAAa,EAAE,iBAA+C,CAAC;AAE1E,eAAO,MAAM,gBAAgB,GAAI,WAAW,OAAO,CAAC,iBAAiB,CAAC,SAErE,CAAC"}
1
+ {"version":3,"file":"message.config.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/config/message.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBASlC,CAAC;AAEF;;GAEG;AACH,eAAO,IAAI,aAAa,EAAE,iBAA+C,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,WAAW,OAAO,CAAC,iBAAiB,CAAC,SAErE,CAAC"}
@@ -1,4 +1,8 @@
1
+ /**
2
+ * Re-export de hooks del módulo Message (toasts, notificaciones y subhook del mazo).
3
+ */
1
4
  export { useMessage } from './useMessage';
2
5
  export { useMessageStyles } from './useMessageStyles';
3
6
  export { useNotification } from './useNotification';
7
+ export { useNotificationItemDeck } from './useNotificationItemDeck';
4
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1,4 +1,13 @@
1
1
  import { BaseMessageProps } from '../../../shared/types/message';
2
+ /**
3
+ * Suscripción al `messageService`: mantiene la lista plana de toasts y la agrupa por posición.
4
+ *
5
+ * Registra un único listener por montaje, programa auto-cierre según `duration` y aplica `maxMessages`.
6
+ *
7
+ * @returns Objeto con:
8
+ * - `messages` — array actual de `BaseMessageProps` en memoria.
9
+ * - `messagesByPosition` — mismo contenido agrupado por `MessagePosition` para `MessagePositions`.
10
+ */
2
11
  export declare const useMessage: () => {
3
12
  messagesByPosition: Partial<Record<import('../../../shared/types/message').MessagePosition, BaseMessageProps[]>>;
4
13
  messages: BaseMessageProps[];
@@ -1 +1 @@
1
- {"version":3,"file":"useMessage.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/hooks/useMessage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAsB,MAAM,wBAAwB,CAAC;AAI9E,eAAO,MAAM,UAAU;;;CAgHtB,CAAC"}
1
+ {"version":3,"file":"useMessage.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/hooks/useMessage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAsB,MAAM,wBAAwB,CAAC;AAI9E;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU;;;CAgHtB,CAAC"}
@@ -1,4 +1,9 @@
1
1
  import { MessagePosition } from '../../../shared/types/message';
2
+ /**
3
+ * Clases Tailwind fijas (`ui-fixed` + offsets) para anclar toasts y notificaciones en la ventana.
4
+ *
5
+ * @returns `{ getPositionClasses }` — función que traduce una `MessagePosition` a cadena de clases (con fallback en desarrollo).
6
+ */
2
7
  export declare const useMessageStyles: () => {
3
8
  getPositionClasses: (position: MessagePosition) => string;
4
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useMessageStyles.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/hooks/useMessageStyles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,gBAAgB;mCACW,eAAe;CA6BtD,CAAC"}
1
+ {"version":3,"file":"useMessageStyles.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/hooks/useMessageStyles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;mCACW,eAAe;CA6BtD,CAAC"}
@@ -1,8 +1,19 @@
1
- import { NotificationGroup, NotificationColor } from '../../../shared/types/message';
1
+ import { NotificationGroup, NotifyMessageStackGroup } from '../../../shared/types/message';
2
+ /**
3
+ * Estado reactivo de los mazos de notificaciones (`notificationService`): mapa de grupos y helpers de cierre.
4
+ *
5
+ * @returns Objeto con:
6
+ * - `groups` — snapshot actual de todos los grupos (incluye los en `isLeaving` hasta que el servicio los retira).
7
+ * - `activeGroups` — valores de `groups` sin `isLeaving` (vista “solo activos”).
8
+ * - `leavingGroups` — grupos en animación de salida.
9
+ * - `dismissGroup` — vacía `primary` o `secondary`.
10
+ * - `dismissStack` — vacía por `stackKey` (p. ej. `'auto'`).
11
+ */
2
12
  export declare const useNotification: () => {
3
- groups: Record<NotificationColor, NotificationGroup | null>;
13
+ groups: Record<string, NotificationGroup>;
4
14
  activeGroups: NotificationGroup[];
5
15
  leavingGroups: NotificationGroup[];
6
- dismissGroup: (color: NotificationColor) => void;
16
+ dismissGroup: (stackGroup: NotifyMessageStackGroup) => void;
17
+ dismissStack: (stackKey: string) => void;
7
18
  };
8
19
  //# sourceMappingURL=useNotification.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNotification.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/hooks/useNotification.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG9E,eAAO,MAAM,eAAe;;;;0BAqCF,iBAAiB;CAE1C,CAAC"}
1
+ {"version":3,"file":"useNotification.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/hooks/useNotification.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGpF;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe;;;;+BA8BG,uBAAuB;6BAEzB,MAAM;CAElC,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { NotificationGroup, NotificationProps } from '../../../shared/types/message';
2
+ import type * as React from 'react';
3
+ /**
4
+ * Estado, temporizadores y manejadores del mazo apilado de notificaciones (`NotificationItem`).
5
+ *
6
+ * Encapsula visibilidad tras `isLeaving`, expansión por hover, lista completa, asentamiento de layout
7
+ * tras mutar la cola y supresión de `mouseleave` espurios al cerrar o al abrir la lista.
8
+ *
9
+ * @param group - Grupo de notificación del servicio (cola, contador, color, `isLeaving`).
10
+ * @returns Objeto con:
11
+ * - `deckHoverRef` — contenedor del mazo (padding inferior + hit area).
12
+ * - `isVisible` — oculta el mazo tras animación de salida cuando `isLeaving` es true.
13
+ * - `isStackExpanded` — hover: muestra todas las capas de la cola en vista previa.
14
+ * - `isFullListOpen` — lista vertical completa tras hover + clic.
15
+ * - `listMotionEnter` — pulso de entrada de la lista extendida (opacidad / translate).
16
+ * - `queueLayoutSettling` — ventana sin transición de padding tras cambiar la cola.
17
+ * - `showTimer` y `notificationDuration` — lectura actual de `notificationService.getConfig()` (timer global).
18
+ * - `handleDismissOne` — fábrica de cierre por id (`dismiss` + `onClose`).
19
+ * - `handleStackOpenListCapture` — captura de clic para abrir lista completa (sin interactivos).
20
+ * - `handleDeckMouseLeave` / `handleDeckMouseEnter` — hover del contenedor del mazo.
21
+ * - `hideStackHoverChrome` — atenuar pie y barra en stack apilado con hover (no en lista completa).
22
+ */
23
+ export declare function useNotificationItemDeck(group: NotificationGroup): {
24
+ deckHoverRef: React.RefObject<HTMLDivElement>;
25
+ isVisible: boolean;
26
+ isStackExpanded: boolean;
27
+ isFullListOpen: boolean;
28
+ listMotionEnter: boolean;
29
+ queueLayoutSettling: boolean;
30
+ showTimer: boolean;
31
+ notificationDuration: number;
32
+ handleDismissOne: (n: NotificationProps) => (e: React.MouseEvent<HTMLButtonElement>) => void;
33
+ handleStackOpenListCapture: (e: React.MouseEvent<HTMLDivElement>) => void;
34
+ handleDeckMouseLeave: (e: React.MouseEvent<HTMLDivElement>) => void;
35
+ handleDeckMouseEnter: () => void;
36
+ hideStackHoverChrome: boolean;
37
+ };
38
+ //# sourceMappingURL=useNotificationItemDeck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNotificationItemDeck.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/hooks/useNotificationItemDeck.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAInF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,iBAAiB;;;;;;;;;0BAwGxD,iBAAiB,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC;oCAe5B,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;8BAUtC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;;;EA8BlE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useNotificationItemDeck.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNotificationItemDeck.test.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/hooks/useNotificationItemDeck.test.ts"],"names":[],"mappings":""}
@@ -53,7 +53,15 @@ declare class MessageService {
53
53
  */
54
54
  subscribe(listener: MessageListener): () => void;
55
55
  }
56
+ /**
57
+ * Instancia singleton del servicio de toasts; la usan `toast`, `notify` y `useMessage`.
58
+ */
56
59
  export declare const messageService: MessageService;
60
+ /**
61
+ * Expone el mismo singleton que `messageService` (útil en pruebas o integración imperativa sin React).
62
+ *
63
+ * @returns Instancia de `MessageService` compartida en toda la app.
64
+ */
57
65
  export declare const useMessageService: () => MessageService;
58
66
  export {};
59
67
  //# sourceMappingURL=MessageService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageService.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/services/MessageService.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,YAAY,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;;GAGG;AACH,cAAM,cAAc;IAClB,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,cAAc,CAA6B;IAEnD;;OAEG;IACH,IAAI,CACF,gBAAgB,EAAE,YAAY,EAC9B,KAAK,GAAE,YAAwB,EAC/B,OAAO,GAAE,kBAAuB,GAC/B,MAAM;IAkGT;;OAEG;IACH,OAAO,CAAC,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAI7E;;OAEG;IACH,KAAK,CAAC,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAI3E;;OAEG;IACH,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAI1E;;OAEG;IACH,OAAO,CAAC,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAI7E;;OAEG;IACH,OAAO,CAAC,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAI7E;;OAEG;IACH,KAAK,CAAC,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAI3E;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAezB;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,aAAa,CAAC,GAAG,IAAI;IAIvD;;OAEG;IACH,YAAY,IAAI,eAAe,EAAE;IAIjC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;CASjD;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC;AAGnD,eAAO,MAAM,iBAAiB,sBAE7B,CAAC"}
1
+ {"version":3,"file":"MessageService.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/services/MessageService.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,YAAY,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;;GAGG;AACH,cAAM,cAAc;IAClB,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,cAAc,CAA6B;IAEnD;;OAEG;IACH,IAAI,CACF,gBAAgB,EAAE,YAAY,EAC9B,KAAK,GAAE,YAAwB,EAC/B,OAAO,GAAE,kBAAuB,GAC/B,MAAM;IAkGT;;OAEG;IACH,OAAO,CAAC,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAI7E;;OAEG;IACH,KAAK,CAAC,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAI3E;;OAEG;IACH,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAI1E;;OAEG;IACH,OAAO,CAAC,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAI7E;;OAEG;IACH,OAAO,CAAC,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAI7E;;OAEG;IACH,KAAK,CAAC,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAI3E;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAezB;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,aAAa,CAAC,GAAG,IAAI;IAIvD;;OAEG;IACH,YAAY,IAAI,eAAe,EAAE;IAIjC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;CASjD;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,sBAE7B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MessageService.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageService.test.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/services/MessageService.test.ts"],"names":[],"mappings":""}
@@ -1,18 +1,8 @@
1
- import { NotificationOptions, NotificationColor, NotificationGroup, NotificationConfig } from '../../../shared/types/message';
2
- type NotificationInput = string | (NotificationOptions & {
3
- message?: string;
4
- });
5
- type NotificationGroupListener = (groups: Record<NotificationColor, NotificationGroup | null>) => void;
1
+ import { NotificationGroup, NotificationConfig, NotifyMessageOptions, NotifyMessageStackGroup } from '../../../shared/types/message';
2
+ type NotificationGroupListener = (groups: Record<string, NotificationGroup>) => void;
6
3
  /**
7
- * Servicio de Notificaciones
8
- *
9
- * Comportamiento:
10
- * - Las notificaciones se agrupan por color (brand | neutral)
11
- * - Solo se muestra UNA notificación por grupo (la primera)
12
- * - Se mantiene un contador de notificaciones acumuladas
13
- * - El contador solo se muestra cuando > 1
14
- * - Cada nueva notificación reinicia el timer
15
- * - Al cerrar, se descartan todas las notificaciones del grupo
4
+ * Servicio de notificaciones agrupadas por `stackKey` (`primary` / `secondary` / `auto`), cola antigua → reciente
5
+ * y `stackMax`. `dismissGroup` / `dismissStack` vacían mazos; `dismiss(id)` retira una entrada.
16
6
  */
17
7
  declare class NotificationService {
18
8
  private listeners;
@@ -22,15 +12,21 @@ declare class NotificationService {
22
12
  private progressIntervals;
23
13
  private removeTimers;
24
14
  /**
25
- * Muestra una notificación
15
+ * Encola una notificación agrupada (API unificada `notify.message`).
16
+ */
17
+ message(options: NotifyMessageOptions): number;
18
+ private enqueueFromOptions;
19
+ /**
20
+ * Si la cola supera `stackMax`, elimina la más antigua hasta cumplir el límite.
26
21
  */
27
- show(messageOrOptions: NotificationInput, color?: NotificationColor, options?: NotificationOptions): number;
22
+ private evictOldestWhileOverCap;
28
23
  /**
29
24
  * Agrega una notificación al grupo correspondiente
30
25
  */
31
26
  private addToGroup;
32
27
  /**
33
- * Inicia el timer para un grupo
28
+ * Inicia el timer del grupo solo para la notificación **más antigua** (`queue[0]`).
29
+ * Al expirar se elimina esa sola con `dismiss(id)` (no se cierra el grupo entero).
34
30
  */
35
31
  private startTimer;
36
32
  /**
@@ -42,30 +38,27 @@ declare class NotificationService {
42
38
  */
43
39
  private clearTimer;
44
40
  /**
45
- * Cierra todas las notificaciones de un grupo
41
+ * Cierra todas las notificaciones de un mazo explícito (`primary` | `secondary`).
46
42
  */
47
- dismissGroup(color: NotificationColor): void;
48
- /**
49
- * Cierra una notificación específica por ID
50
- * (En el sistema de notificaciones, esto cierra todo el grupo)
51
- */
52
- dismiss(id: number): void;
43
+ dismissGroup(stackGroup: NotifyMessageStackGroup): void;
53
44
  /**
54
- * Notificación de marca (brand)
45
+ * Cierra todas las notificaciones del mazo identificado por `stackKey` (`primary`, `secondary`, `auto`, …).
55
46
  */
56
- brand(messageOrOptions: NotificationInput, options?: NotificationOptions): number;
47
+ dismissStack(stackKey: string): void;
57
48
  /**
58
- * Notificación neutral
49
+ * Elimina una notificación concreta de su grupo por `id`.
50
+ * Si la cola queda vacía, el grupo se elimina.
51
+ * Si queda cola, se reinicia el timer para la más antigua actual (`queue[0]`) (incluye cierre manual de una notificación intermedia).
59
52
  */
60
- neutral(messageOrOptions: NotificationInput, options?: NotificationOptions): number;
53
+ dismiss(id: number): void;
61
54
  /**
62
55
  * Configura las opciones del servicio
63
56
  */
64
57
  configure(options: Partial<NotificationConfig>): void;
65
58
  /**
66
- * Obtiene los grupos actuales
59
+ * Obtiene los grupos actuales (solo mazos con cola activa).
67
60
  */
68
- getGroups(): Record<NotificationColor, NotificationGroup | null>;
61
+ getGroups(): Record<string, NotificationGroup>;
69
62
  /**
70
63
  * Suscribirse a cambios
71
64
  */
@@ -79,7 +72,15 @@ declare class NotificationService {
79
72
  */
80
73
  getConfig(): NotificationConfig;
81
74
  }
75
+ /**
76
+ * Instancia singleton del servicio de notificaciones agrupadas; la usan `notification`, `notify` y `useNotification`.
77
+ */
82
78
  export declare const notificationService: NotificationService;
79
+ /**
80
+ * Expone el mismo singleton que `notificationService` (acceso directo al servicio desde componentes o pruebas).
81
+ *
82
+ * @returns Instancia de `NotificationService` compartida en toda la app.
83
+ */
83
84
  export declare const useNotificationService: () => NotificationService;
84
85
  export {};
85
86
  //# sourceMappingURL=NotificationService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationService.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/services/NotificationService.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,wBAAwB,CAAC;AAGhC,KAAK,iBAAiB,GAAG,MAAM,GAAG,CAAC,mBAAmB,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAG/E,KAAK,yBAAyB,GAAG,CAC/B,MAAM,EAAE,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAC,KACxD,IAAI,CAAC;AAaV;;;;;;;;;;GAUG;AACH,cAAM,mBAAmB;IACvB,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,SAAS,CAAK;IAGtB,OAAO,CAAC,MAAM,CAGZ;IAGF,OAAO,CAAC,MAAM,CAGZ;IAGF,OAAO,CAAC,iBAAiB,CAGvB;IAGF,OAAO,CAAC,YAAY,CAGlB;IAEF;;OAEG;IACH,IAAI,CACF,gBAAgB,EAAE,iBAAiB,EACnC,KAAK,GAAE,iBAA2B,EAClC,OAAO,GAAE,mBAAwB,GAChC,MAAM;IA6FT;;OAEG;IACH,OAAO,CAAC,UAAU;IA6BlB;;OAEG;IACH,OAAO,CAAC,UAAU;IA+BlB;;OAEG;IACH,OAAO,CAAC,UAAU;IAKlB;;OAEG;IACH,OAAO,CAAC,UAAU;IAelB;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,iBAAiB;IAmBrC;;;OAGG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM;IAWlB;;OAEG;IACH,KAAK,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM;IAIjF;;OAEG;IACH,OAAO,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM;IAInF;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAI9C;;OAEG;IACH,SAAS,IAAI,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAIhE;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,yBAAyB,GAAG,MAAM,IAAI;IAU1D;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,SAAS,IAAI,kBAAkB;CAGhC;AAGD,eAAO,MAAM,mBAAmB,qBAA4B,CAAC;AAG7D,eAAO,MAAM,sBAAsB,2BAElC,CAAC"}
1
+ {"version":3,"file":"NotificationService.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/services/NotificationService.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EAEpB,uBAAuB,EAExB,MAAM,wBAAwB,CAAC;AAQhC,KAAK,yBAAyB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAAK,IAAI,CAAC;AAcrF;;;GAGG;AACH,cAAM,mBAAmB;IACvB,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,MAAM,CAAwC;IAEtD,OAAO,CAAC,MAAM,CAA4C;IAE1D,OAAO,CAAC,iBAAiB,CAA4C;IAErE,OAAO,CAAC,YAAY,CAA4C;IAEhE;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM;IAkB9C,OAAO,CAAC,kBAAkB;IAoB1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmB/B;;OAEG;IACH,OAAO,CAAC,UAAU;IAuClB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAsClB;;OAEG;IACH,OAAO,CAAC,UAAU;IAKlB;;OAEG;IACH,OAAO,CAAC,UAAU;IAkBlB;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,uBAAuB;IAIhD;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM;IAmB7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM;IAyBlB;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAiB9C;;OAEG;IACH,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAI9C;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,yBAAyB,GAAG,MAAM,IAAI;IAU1D;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,SAAS,IAAI,kBAAkB;CAGhC;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,qBAA4B,CAAC;AAE7D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,2BAElC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=NotificationService.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotificationService.test.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/services/NotificationService.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { NotificationProps, NotificationOptions, NotifyMessageCardFields, NotificationColor, NotificationConfig } from '../../../shared/types/message';
2
+ /**
3
+ * Construye la notificación persistida al encolar desde opciones ya separadas de metadatos de API.
4
+ *
5
+ * @param id - Identificador único asignado por el servicio.
6
+ * @param finalOptions - Opciones de `Notification` más título/mensaje ya normalizados.
7
+ * @param color - Color de cola interno (`brand` / `neutral`) derivado del mazo.
8
+ * @param notificationCard - Overrides tipados de tarjeta (`NotifyMessageCardFields`) o `undefined`.
9
+ * @param config - Snapshot de `NotificationConfig` (duración, tamaño, timer, posición, …).
10
+ * @returns Modelo `NotificationProps` listo para la cola del grupo.
11
+ */
12
+ export declare function buildNotificationPropsForEnqueue(id: number, finalOptions: NotificationOptions & {
13
+ title?: string;
14
+ }, color: NotificationColor, notificationCard: NotifyMessageCardFields | undefined, config: NotificationConfig): NotificationProps;
15
+ //# sourceMappingURL=notificationServiceBuildEnqueueNotification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notificationServiceBuildEnqueueNotification.d.ts","sourceRoot":"","sources":["../../../../src/modules/Message/services/notificationServiceBuildEnqueueNotification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAGhC;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAC9C,EAAE,EAAE,MAAM,EACV,YAAY,EAAE,mBAAmB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACtD,KAAK,EAAE,iBAAiB,EACxB,gBAAgB,EAAE,uBAAuB,GAAG,SAAS,EACrD,MAAM,EAAE,kBAAkB,GACzB,iBAAiB,CAgCnB"}