@sfperusacdev/sf-ui 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/sf-ui.css +1 -1
- package/dist/sf-ui.js +4417 -2438
- package/dist/sf-ui.js.map +1 -1
- package/dist/sf-ui.umd.cjs +7 -7
- package/dist/sf-ui.umd.cjs.map +1 -1
- package/dist/theme/densidad.css +291 -0
- package/dist/theme/neon.css +185 -0
- package/dist/theme/temas.css +229 -0
- package/dist/types/src/components/cards/Badge.d.ts +7 -1
- package/dist/types/src/components/cards/MetricBar.caracterizacion.test.d.ts +1 -0
- package/dist/types/src/components/cards/MetricBar.d.ts +5 -3
- package/dist/types/src/components/cards/MetricBar.disposiciones.test.d.ts +1 -0
- package/dist/types/src/components/cards/ProfileCard.d.ts +27 -0
- package/dist/types/src/components/cards/ProfileCard.test.d.ts +1 -0
- package/dist/types/src/components/cards/QuoteCard.d.ts +11 -0
- package/dist/types/src/components/cards/QuoteCard.test.d.ts +1 -0
- package/dist/types/src/components/cards/index.d.ts +6 -2
- package/dist/types/src/components/cards/types.d.ts +19 -0
- package/dist/types/src/components/charts/Chart.colores.test.d.ts +1 -0
- package/dist/types/src/components/charts/Chart.d.ts +1 -1
- package/dist/types/src/components/charts/ChartLegend.caracterizacion.test.d.ts +1 -0
- package/dist/types/src/components/charts/ChartLegend.d.ts +22 -1
- package/dist/types/src/components/charts/index.d.ts +1 -1
- package/dist/types/src/components/charts/types.d.ts +5 -0
- package/dist/types/src/components/dashboard/DonutGauge.caracterizacion.test.d.ts +1 -0
- package/dist/types/src/components/dashboard/DonutGauge.d.ts +5 -1
- package/dist/types/src/components/dashboard/DonutGauge.degradado.test.d.ts +1 -0
- package/dist/types/src/components/dashboard/MetricTile.d.ts +24 -0
- package/dist/types/src/components/dashboard/MetricTile.test.d.ts +1 -0
- package/dist/types/src/components/dashboard/Seleccion.test.d.ts +1 -0
- package/dist/types/src/components/dashboard/StageFlow.caracterizacion.test.d.ts +1 -0
- package/dist/types/src/components/dashboard/StageFlow.d.ts +43 -0
- package/dist/types/src/components/dashboard/StageFlow.test.d.ts +1 -0
- package/dist/types/src/components/dashboard/StateChain.d.ts +28 -0
- package/dist/types/src/components/dashboard/StateChain.test.d.ts +1 -0
- package/dist/types/src/components/dashboard/StateChain.vertical.test.d.ts +1 -0
- package/dist/types/src/components/dashboard/Stepper.caracterizacion.test.d.ts +1 -0
- package/dist/types/src/components/dashboard/Stepper.d.ts +3 -1
- package/dist/types/src/components/dashboard/Stepper.icono.test.d.ts +1 -0
- package/dist/types/src/components/dashboard/index.d.ts +6 -0
- package/dist/types/src/components/dashboard/types.d.ts +4 -0
- package/dist/types/src/components/display/AuditTimeline.cadena.test.d.ts +1 -0
- package/dist/types/src/components/display/AuditTimeline.caracterizacion.test.d.ts +1 -0
- package/dist/types/src/components/display/AuditTimeline.d.ts +7 -1
- package/dist/types/src/components/display/CheckList.d.ts +19 -0
- package/dist/types/src/components/display/CheckList.test.d.ts +1 -0
- package/dist/types/src/components/display/MediaGallery.d.ts +41 -0
- package/dist/types/src/components/display/MediaGallery.test.d.ts +1 -0
- package/dist/types/src/components/display/MediaPanel.d.ts +4 -1
- package/dist/types/src/components/display/RecordList.caracterizacion.test.d.ts +1 -0
- package/dist/types/src/components/display/RecordList.compacta.test.d.ts +1 -0
- package/dist/types/src/components/display/RecordList.d.ts +15 -2
- package/dist/types/src/components/display/Timeline.caracterizacion.test.d.ts +1 -0
- package/dist/types/src/components/display/Timeline.columnas.test.d.ts +1 -0
- package/dist/types/src/components/display/Timeline.d.ts +22 -1
- package/dist/types/src/components/display/Timeline.horizontal.test.d.ts +1 -0
- package/dist/types/src/components/display/index.d.ts +8 -4
- package/dist/types/src/components/display/mediaGalleryFoco.d.ts +1 -0
- package/dist/types/src/components/display/mediaGalleryFoco.test.d.ts +1 -0
- package/dist/types/src/components/layout/AppShell.caracterizacion.test.d.ts +1 -0
- package/dist/types/src/components/layout/AppShell.d.ts +8 -2
- package/dist/types/src/components/layout/Tabs.caracterizacion.test.d.ts +1 -0
- package/dist/types/src/components/layout/Tabs.d.ts +5 -2
- package/dist/types/src/components/layout/Tabs.test.d.ts +1 -0
- package/dist/types/src/components/layout/ThemePicker.d.ts +23 -0
- package/dist/types/src/components/layout/ThemePicker.test.d.ts +1 -0
- package/dist/types/src/components/layout/WorkspaceHeader.d.ts +31 -0
- package/dist/types/src/components/layout/WorkspaceHeader.test.d.ts +1 -0
- package/dist/types/src/components/layout/index.d.ts +5 -1
- package/dist/types/src/components/overlays/Drawer.d.ts +5 -2
- package/dist/types/src/components/overlays/Foco.test.d.ts +1 -0
- package/dist/types/src/components/overlays/Modal.d.ts +4 -1
- package/dist/types/src/components/overlays/colorTexto.test.d.ts +1 -0
- package/dist/types/src/components/overlays/useFocoDeCapa.d.ts +8 -0
- package/dist/types/src/components/overlays/useOverlayStack.consulta.test.d.ts +1 -0
- package/dist/types/src/components/overlays/useOverlayStack.d.ts +10 -0
- package/dist/types/src/components/table/CustomTable.d.ts +14 -1
- package/dist/types/src/components/table/CustomTable.densidad.caracterizacion.test.d.ts +1 -0
- package/dist/types/src/components/table/CustomTable.densidad.test.d.ts +1 -0
- package/dist/types/src/components/table/index.d.ts +1 -1
- package/dist/types/src/components/visualization/IntegrationFlow.caracterizacion.test.d.ts +1 -0
- package/dist/types/src/components/visualization/IntegrationFlow.d.ts +61 -0
- package/dist/types/src/components/visualization/IntegrationFlow.paneles.test.d.ts +1 -0
- package/dist/types/src/components/visualization/IntegrationFlow.test.d.ts +1 -0
- package/dist/types/src/components/visualization/RelationGraph.caracterizacion.test.d.ts +1 -0
- package/dist/types/src/components/visualization/RelationGraph.d.ts +65 -0
- package/dist/types/src/components/visualization/RelationGraph.orbita.test.d.ts +1 -0
- package/dist/types/src/components/visualization/RelationGraph.test.d.ts +1 -0
- package/dist/types/src/components/visualization/SeleccionNodos.test.d.ts +1 -0
- package/dist/types/src/components/visualization/disponerOrbita.d.ts +29 -0
- package/dist/types/src/components/visualization/disponerRadial.d.ts +19 -0
- package/dist/types/src/components/visualization/index.d.ts +4 -0
- package/dist/types/src/theme/temas.test.d.ts +1 -0
- package/dist/types/src/utils/devWarning.d.ts +2 -0
- package/dist/types/src/utils/devWarning.test.d.ts +1 -0
- package/dist/types/src/utils/foco.d.ts +9 -0
- package/dist/types/src/utils/identidadColeccion.d.ts +11 -0
- package/dist/types/src/utils/identidadColeccion.test.d.ts +1 -0
- package/dist/types/src/utils/useAnchoContenedor.d.ts +22 -0
- package/dist/types/src/utils/useAnchoContenedor.test.d.ts +1 -0
- package/package.json +5 -2
|
@@ -7,11 +7,32 @@ export type TimelineItem = {
|
|
|
7
7
|
time?: ReactNode;
|
|
8
8
|
status?: TimelineStatus;
|
|
9
9
|
icon?: ReactNode;
|
|
10
|
+
/** Color propio del marcador (y del tramo de línea que sale de él). Gana sobre `status`. */
|
|
11
|
+
color?: string;
|
|
12
|
+
/** Columna intermedia a la derecha del cuerpo (ej. el impacto del evento). */
|
|
13
|
+
meta?: ReactNode;
|
|
14
|
+
/** Columna final (ej. un `Badge` de estado). */
|
|
15
|
+
aside?: ReactNode;
|
|
16
|
+
/** Con `onClick` el título es un botón que abre el detalle del elemento. */
|
|
17
|
+
onClick?: () => void;
|
|
10
18
|
};
|
|
19
|
+
export type TimelineOrientation = "vertical" | "horizontal";
|
|
11
20
|
export type TimelineProps = {
|
|
12
21
|
items: TimelineItem[];
|
|
13
22
|
ariaLabel?: string;
|
|
14
23
|
emptyMessage?: string;
|
|
24
|
+
/** "vertical" (por defecto) o "horizontal": la misma lista con los marcadores sobre una línea. Solo se muestra
|
|
25
|
+
* horizontal si el contenedor da al menos 8rem por elemento; si no, o si no se puede medir, queda vertical. */
|
|
26
|
+
orientation?: TimelineOrientation;
|
|
27
|
+
/** Ancho mínimo por elemento, en rem, para mostrar la horizontal. Por defecto 8. */
|
|
28
|
+
minItemWidth?: number;
|
|
29
|
+
/** Solo horizontal: "center" centra marcador y textos bajo el marcador; con ícono, el ícono va sobre la línea y un
|
|
30
|
+
* punto del mismo color marca la línea. */
|
|
31
|
+
align?: "start" | "center";
|
|
32
|
+
/** "top" pone la hora antes del título. */
|
|
33
|
+
timePosition?: "inline" | "top";
|
|
34
|
+
/** "cards": cada elemento en su propia tarjeta (solo vertical). */
|
|
35
|
+
variant?: "default" | "cards";
|
|
15
36
|
className?: string;
|
|
16
37
|
};
|
|
17
|
-
export declare const Timeline: ({ items, ariaLabel, emptyMessage, className }: TimelineProps) => import('react').JSX.Element;
|
|
38
|
+
export declare const Timeline: ({ items, ariaLabel, emptyMessage, orientation, minItemWidth, align, timePosition, variant, className, }: TimelineProps) => import('react').JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { Avatar, AvatarGroup } from './Avatar';
|
|
2
2
|
export type { AvatarProps, AvatarGroupProps, AvatarSize, AvatarVariant, AvatarShape } from './Avatar';
|
|
3
3
|
export { AuditTimeline } from './AuditTimeline';
|
|
4
|
-
export type { AuditEventType, AuditTimelineItem, AuditTimelineProps } from './AuditTimeline';
|
|
4
|
+
export type { AuditEventType, AuditTimelineItem, AuditTimelineProps, AuditTimelineVariant } from './AuditTimeline';
|
|
5
5
|
export { RecordList, RecordListItem } from './RecordList';
|
|
6
|
-
export type { RecordListIconTone, RecordListItemProps, RecordListProps } from './RecordList';
|
|
6
|
+
export type { RecordListDensity, RecordListIconTone, RecordListItemProps, RecordListProps } from './RecordList';
|
|
7
7
|
export { LiveChip } from './LiveChip';
|
|
8
8
|
export type { LiveChipProps } from './LiveChip';
|
|
9
9
|
export { LiveStatusBar } from './LiveStatusBar';
|
|
@@ -11,8 +11,12 @@ export type { LiveStatusBarProps, LiveStatusMetric } from './LiveStatusBar';
|
|
|
11
11
|
export { PassengerBoardCard } from './PassengerBoardCard';
|
|
12
12
|
export type { PassengerBoardCardProps } from './PassengerBoardCard';
|
|
13
13
|
export { Timeline } from './Timeline';
|
|
14
|
-
export type { TimelineItem, TimelineProps, TimelineStatus } from './Timeline';
|
|
14
|
+
export type { TimelineItem, TimelineOrientation, TimelineProps, TimelineStatus } from './Timeline';
|
|
15
15
|
export { Carousel } from './Carousel';
|
|
16
16
|
export type { CarouselProps } from './Carousel';
|
|
17
|
+
export { CheckList } from './CheckList';
|
|
18
|
+
export type { CheckListItem, CheckListProps } from './CheckList';
|
|
17
19
|
export { MediaPanel } from './MediaPanel';
|
|
18
|
-
export type { MediaPanelFit, MediaPanelOverlay, MediaPanelProps } from './MediaPanel';
|
|
20
|
+
export type { MediaPanelContentStyle, MediaPanelFit, MediaPanelOverlay, MediaPanelProps } from './MediaPanel';
|
|
21
|
+
export { MediaGallery } from './MediaGallery';
|
|
22
|
+
export type { MediaGalleryItem, MediaGalleryKind, MediaGalleryProps } from './MediaGallery';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { esEnfocableValido, siguienteEnContencion, tabulables } from '../../utils/foco';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -15,6 +15,8 @@ export type AppShellNavItem = {
|
|
|
15
15
|
* detrás de bandera o permiso, donde la definición del menú es estática.
|
|
16
16
|
*/
|
|
17
17
|
hidden?: boolean;
|
|
18
|
+
/** 1 = subopción del ítem anterior: va con sangría y en letra menor. */
|
|
19
|
+
level?: 0 | 1;
|
|
18
20
|
};
|
|
19
21
|
export type AppShellCategory = {
|
|
20
22
|
id: string;
|
|
@@ -75,6 +77,7 @@ export type AppShellExitToModulesAction = {
|
|
|
75
77
|
ariaLabel?: string;
|
|
76
78
|
icon?: ReactNode;
|
|
77
79
|
};
|
|
80
|
+
export type AppShellLayout = "rail" | "sidebar";
|
|
78
81
|
export type AppShellProps = {
|
|
79
82
|
categories: AppShellCategory[];
|
|
80
83
|
activeItemId: string;
|
|
@@ -82,6 +85,9 @@ export type AppShellProps = {
|
|
|
82
85
|
brand?: ReactNode;
|
|
83
86
|
topBar?: ReactNode;
|
|
84
87
|
children: ReactNode;
|
|
88
|
+
/** "rail" (por defecto): riel de categorías y submenú de la categoría activa. "sidebar": una sola columna con
|
|
89
|
+
* `brand` arriba y los ítems de todas las categorías; con más de una categoría, cada grupo lleva su título. */
|
|
90
|
+
layout?: AppShellLayout;
|
|
85
91
|
submenuCollapsed?: boolean;
|
|
86
92
|
onSubmenuCollapsedChange?: (collapsed: boolean) => void;
|
|
87
93
|
submenuFooter?: ReactNode;
|
|
@@ -101,12 +107,12 @@ export type AppShellProps = {
|
|
|
101
107
|
className?: string;
|
|
102
108
|
contentClassName?: string;
|
|
103
109
|
};
|
|
104
|
-
export declare const AppShell: ({ categories, activeItemId, onChange, brand, topBar, children, submenuCollapsed, onSubmenuCollapsedChange, submenuFooter, showSubmenuHeader, showDefaultTopBar, topBarContext, branchSelector, themeToggle, notifications, moduleLauncher, userMenu, helpAction, exitToModulesAction, className, contentClassName, }: AppShellProps) => import('react').JSX.Element;
|
|
110
|
+
export declare const AppShell: ({ categories, activeItemId, onChange, brand, topBar, children, layout, submenuCollapsed, onSubmenuCollapsedChange, submenuFooter, showSubmenuHeader, showDefaultTopBar, topBarContext, branchSelector, themeToggle, notifications, moduleLauncher, userMenu, helpAction, exitToModulesAction, className, contentClassName, }: AppShellProps) => import('react').JSX.Element;
|
|
105
111
|
/**
|
|
106
112
|
* @deprecated Use `AppShell` instead. `AppBarContainer` remains as temporary
|
|
107
113
|
* compatibility alias and is scheduled for removal in the next major release.
|
|
108
114
|
*/
|
|
109
|
-
export declare const AppBarContainer: ({ categories, activeItemId, onChange, brand, topBar, children, submenuCollapsed, onSubmenuCollapsedChange, submenuFooter, showSubmenuHeader, showDefaultTopBar, topBarContext, branchSelector, themeToggle, notifications, moduleLauncher, userMenu, helpAction, exitToModulesAction, className, contentClassName, }: AppShellProps) => import('react').JSX.Element;
|
|
115
|
+
export declare const AppBarContainer: ({ categories, activeItemId, onChange, brand, topBar, children, layout, submenuCollapsed, onSubmenuCollapsedChange, submenuFooter, showSubmenuHeader, showDefaultTopBar, topBarContext, branchSelector, themeToggle, notifications, moduleLauncher, userMenu, helpAction, exitToModulesAction, className, contentClassName, }: AppShellProps) => import('react').JSX.Element;
|
|
110
116
|
/**
|
|
111
117
|
* @deprecated Use `AppShellProps` instead.
|
|
112
118
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -11,7 +11,10 @@ type TabsProps = {
|
|
|
11
11
|
value: string;
|
|
12
12
|
onChange: (id: string) => void;
|
|
13
13
|
className?: string;
|
|
14
|
-
|
|
14
|
+
/** "pills": cada pestaña en su propia píldora con borde; la activa, rellena. */
|
|
15
|
+
variant?: "underline" | "segmented" | "accentUnderline" | "pills";
|
|
16
|
+
/** "sm": pestañas bajas para la cabecera de una tarjeta. */
|
|
17
|
+
size?: "md" | "sm";
|
|
15
18
|
};
|
|
16
|
-
export declare const Tabs: ({ tabs, value, onChange, className, variant }: TabsProps) => import('react').JSX.Element;
|
|
19
|
+
export declare const Tabs: ({ tabs, value, onChange, className, variant, size }: TabsProps) => import('react').JSX.Element;
|
|
17
20
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type ThemePickerOption = {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
/** Dos colores de muestra (fondo y acento) para reconocer el tema. */
|
|
5
|
+
swatch: [string, string];
|
|
6
|
+
};
|
|
7
|
+
export type ThemePickerMode = "light" | "dark";
|
|
8
|
+
export type ThemePickerProps = {
|
|
9
|
+
themes: ThemePickerOption[];
|
|
10
|
+
value: string;
|
|
11
|
+
onChange: (id: string) => void;
|
|
12
|
+
mode: ThemePickerMode;
|
|
13
|
+
onModeChange: (mode: ThemePickerMode) => void;
|
|
14
|
+
/** false: solo las muestras de color; el nombre queda como texto accesible y en el `title`. */
|
|
15
|
+
showLabels?: boolean;
|
|
16
|
+
ariaLabel?: string;
|
|
17
|
+
className?: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Selector de tema de color (radio) y de modo claro u oscuro (interruptor). Solo informa la elección: quien lo usa
|
|
21
|
+
* aplica `data-skin` y `data-theme` en el <html> (ver theme/temas.css).
|
|
22
|
+
*/
|
|
23
|
+
export declare const ThemePicker: ({ themes, value, onChange, mode, onModeChange, showLabels, ariaLabel, className, }: ThemePickerProps) => import('react').JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { NotificationItem } from '../overlays';
|
|
3
|
+
import { BreadcrumbItem } from './Breadcrumb';
|
|
4
|
+
export type WorkspaceHeaderSearch = {
|
|
5
|
+
placeholder?: string;
|
|
6
|
+
value?: string;
|
|
7
|
+
onChange?: (value: string) => void;
|
|
8
|
+
onSubmit?: (value: string) => void;
|
|
9
|
+
ariaLabel?: string;
|
|
10
|
+
};
|
|
11
|
+
export type WorkspaceHeaderUser = {
|
|
12
|
+
name: string;
|
|
13
|
+
role?: string;
|
|
14
|
+
avatarSrc?: string;
|
|
15
|
+
initials?: string;
|
|
16
|
+
};
|
|
17
|
+
export type WorkspaceHeaderProps = {
|
|
18
|
+
title: string;
|
|
19
|
+
subtitle?: string;
|
|
20
|
+
breadcrumb?: BreadcrumbItem[];
|
|
21
|
+
search?: WorkspaceHeaderSearch;
|
|
22
|
+
notifications?: {
|
|
23
|
+
items: NotificationItem[];
|
|
24
|
+
onItemClick?: (item: NotificationItem) => void;
|
|
25
|
+
};
|
|
26
|
+
user?: WorkspaceHeaderUser;
|
|
27
|
+
/** Botones bajo la zona de herramientas, alineados a la derecha. */
|
|
28
|
+
actions?: ReactNode;
|
|
29
|
+
className?: string;
|
|
30
|
+
};
|
|
31
|
+
export declare const WorkspaceHeader: ({ title, subtitle, breadcrumb, search, notifications, user, actions, className, }: WorkspaceHeaderProps) => import('react').JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -14,6 +14,10 @@ export type { VisibilityProps } from './Visibility';
|
|
|
14
14
|
export { Separator } from './Separator';
|
|
15
15
|
export type { SeparatorOrientation, SeparatorProps } from './Separator';
|
|
16
16
|
export { Breadcrumb } from './Breadcrumb';
|
|
17
|
+
export { WorkspaceHeader } from './WorkspaceHeader';
|
|
18
|
+
export { ThemePicker } from './ThemePicker';
|
|
19
|
+
export type { ThemePickerMode, ThemePickerOption, ThemePickerProps } from './ThemePicker';
|
|
20
|
+
export type { WorkspaceHeaderProps, WorkspaceHeaderSearch, WorkspaceHeaderUser } from './WorkspaceHeader';
|
|
17
21
|
export type { BreadcrumbItem, BreadcrumbProps } from './Breadcrumb';
|
|
18
22
|
export { Accordion } from './Accordion';
|
|
19
23
|
export type { AccordionItemDef, AccordionProps, AccordionType } from './Accordion';
|
|
@@ -39,4 +43,4 @@ export { WeekdayToggleStrip } from './WeekdayToggleStrip';
|
|
|
39
43
|
export type { WeekdayToggleStripProps, WeekdayOption } from './WeekdayToggleStrip';
|
|
40
44
|
export type { UnitSelectorOption, UnitSelectorProps } from './UnitSelector';
|
|
41
45
|
export { AppShell, AppBarContainer } from './AppShell';
|
|
42
|
-
export type { AppShellCategory, AppShellNavItem, AppShellProps, AppShellBranchSelector, AppShellExitToModulesAction, AppShellHelpAction, AppShellModuleLauncher, AppShellModuleLauncherItem, AppShellThemeToggle, AppShellTopBarContext, AppShellUserMenu, AppBarContainerProps, } from './AppShell';
|
|
46
|
+
export type { AppShellCategory, AppShellNavItem, AppShellProps, AppShellBranchSelector, AppShellExitToModulesAction, AppShellHelpAction, AppShellLayout, AppShellModuleLauncher, AppShellModuleLauncherItem, AppShellThemeToggle, AppShellTopBarContext, AppShellUserMenu, AppBarContainerProps, } from './AppShell';
|
|
@@ -15,9 +15,12 @@ export type DrawerProps = {
|
|
|
15
15
|
height?: CSSProperties["height"];
|
|
16
16
|
headerVariant?: OverlayHeaderVariant;
|
|
17
17
|
closeOnOverlay?: boolean;
|
|
18
|
+
/** Al cerrar, devuelve el foco al control que lo tenía al abrir si quedó perdido. `false` si quien lo usa decide
|
|
19
|
+
* adónde vuelve el foco. */
|
|
20
|
+
restoreFocus?: boolean;
|
|
18
21
|
className?: string;
|
|
19
22
|
};
|
|
20
|
-
export declare const Drawer: ({ open, onClose, side, title, subtitle, icon, children, footer, subheader, width, height, headerVariant, closeOnOverlay, className, }: DrawerProps) => import('react').ReactPortal | null;
|
|
23
|
+
export declare const Drawer: ({ open, onClose, side, title, subtitle, icon, children, footer, subheader, width, height, headerVariant, closeOnOverlay, restoreFocus, className, }: DrawerProps) => import('react').ReactPortal | null;
|
|
21
24
|
/** Alias de `Drawer` — patrón shadcn Sheet (panel lateral o inferior). */
|
|
22
|
-
export declare const Sheet: ({ open, onClose, side, title, subtitle, icon, children, footer, subheader, width, height, headerVariant, closeOnOverlay, className, }: DrawerProps) => import('react').ReactPortal | null;
|
|
25
|
+
export declare const Sheet: ({ open, onClose, side, title, subtitle, icon, children, footer, subheader, width, height, headerVariant, closeOnOverlay, restoreFocus, className, }: DrawerProps) => import('react').ReactPortal | null;
|
|
23
26
|
export type SheetProps = DrawerProps;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -22,9 +22,12 @@ export type ModalProps = {
|
|
|
22
22
|
/** Oculta cabecera estándar (título, subtítulo, icono y cerrar) cuando el consumidor renderiza cabecera propia en el body. */
|
|
23
23
|
hideHeader?: boolean;
|
|
24
24
|
closeOnOverlay?: boolean;
|
|
25
|
+
/** Al cerrar, devuelve el foco al control que lo tenía al abrir si quedó perdido. `false` si quien lo usa decide
|
|
26
|
+
* adónde vuelve el foco. */
|
|
27
|
+
restoreFocus?: boolean;
|
|
25
28
|
className?: string;
|
|
26
29
|
};
|
|
27
|
-
export declare const Modal: ({ open, onClose, title, subtitle, icon, children, footer, subheader, size, maxWidth, width, headerVariant, hideHeader, closeOnOverlay, className, }: ModalProps) => import('react').ReactPortal | null;
|
|
30
|
+
export declare const Modal: ({ open, onClose, title, subtitle, icon, children, footer, subheader, size, maxWidth, width, headerVariant, hideHeader, closeOnOverlay, restoreFocus, className, }: ModalProps) => import('react').ReactPortal | null;
|
|
28
31
|
type UseModalOptions = {
|
|
29
32
|
onOpen?: () => void;
|
|
30
33
|
onClose?: () => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Foco de un diálogo de la pila (Modal, Drawer). Al abrir, enfoca el primer control del panel salvo que un hijo ya haya
|
|
4
|
+
* movido el foco dentro (el visor de MediaGallery enfoca su «Cerrar»). Mientras es la capa superior, Tab no sale del
|
|
5
|
+
* panel; si otro manejador ya atendió el Tab (preventDefault), no interviene. Al cerrar, si el foco quedó perdido,
|
|
6
|
+
* vuelve al control que tenía el foco al abrir.
|
|
7
|
+
*/
|
|
8
|
+
export declare const useFocoDeCapa: (abierto: boolean, idCapa: string, panel: RefObject<HTMLElement | null>, devolver?: boolean) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
import { RefObject } from 'react';
|
|
2
2
|
export declare const OverlayParentContext: import('react').Context<string | null>;
|
|
3
3
|
export declare const useOverlayStack: (abierto: boolean, onClose: () => void, raiz: RefObject<HTMLDivElement | null>) => string;
|
|
4
|
+
/** Capa superior registrada en la pila del documento, o `null`. Lectura pura: uso interno de sf-ui. */
|
|
5
|
+
export declare const overlaySuperior: (documento: Document) => {
|
|
6
|
+
id: string;
|
|
7
|
+
raiz: HTMLElement;
|
|
8
|
+
} | null;
|
|
9
|
+
/**
|
|
10
|
+
* Avisa después de cada alta y baja en la pila del documento. Devuelve la baja (idempotente). Cada suscripción es
|
|
11
|
+
* propia aunque se repita la función. Uso interno de sf-ui.
|
|
12
|
+
*/
|
|
13
|
+
export declare const suscribirPilaOverlays: (documento: Document, oyente: () => void) => () => void;
|
|
@@ -12,6 +12,8 @@ import { ExportTableColumn } from '../../utils/exportTableCsv';
|
|
|
12
12
|
* Todos se apoyan en tokens `--sf-*` para reaccionar al tema activo.
|
|
13
13
|
*/
|
|
14
14
|
export type TableHeaderVariant = "default" | "brand" | "soft" | "neon" | "premium" | "matrix";
|
|
15
|
+
export type CustomTableDensity = "default" | "compact";
|
|
16
|
+
export type CustomTableRowActionsDisplay = "menu" | "inline";
|
|
15
17
|
/** Estado de una paginación que resuelve el backend (limit/offset). `page` es 1-based. */
|
|
16
18
|
export type CustomTableServerPagination = {
|
|
17
19
|
totalItems: number;
|
|
@@ -261,6 +263,17 @@ type CustomTableProps<TData extends Record<string, unknown>, TDetail extends Rec
|
|
|
261
263
|
searchPlaceholder?: string;
|
|
262
264
|
/** Oculta título, toolbar y chrome exterior — para uso dentro de ExpandableTableSection u otros contenedores. */
|
|
263
265
|
embedded?: boolean;
|
|
266
|
+
/**
|
|
267
|
+
* "compact": filas y cabecera bajas, letra menor y sin borde exterior del área de scroll; la tabla puede medir menos
|
|
268
|
+
* que su contenido máximo para caber en tarjetas angostas. Con `embedded` no hay título ni barra. Por defecto
|
|
269
|
+
* "default" (acabado publicado).
|
|
270
|
+
*/
|
|
271
|
+
density?: CustomTableDensity;
|
|
272
|
+
/**
|
|
273
|
+
* "inline": las acciones de `getRowActions` se muestran como botones de ícono visibles en la fila (nombre accesible
|
|
274
|
+
* = `label`), en vez del menú ⋮. Por defecto "menu" (acabado publicado).
|
|
275
|
+
*/
|
|
276
|
+
rowActionsDisplay?: CustomTableRowActionsDisplay;
|
|
264
277
|
/**
|
|
265
278
|
* Filas de detalle expandibles (master-detail). Agrega una columna de chevron al inicio
|
|
266
279
|
* y, al expandir, inserta una fila con el detalle debajo de la fila padre.
|
|
@@ -280,5 +293,5 @@ type CustomTableProps<TData extends Record<string, unknown>, TDetail extends Rec
|
|
|
280
293
|
/** Búsqueda y orden resueltos por el host (ver `CustomTableRemote`). */
|
|
281
294
|
remote?: CustomTableRemote;
|
|
282
295
|
};
|
|
283
|
-
export declare function CustomTable<TData extends Record<string, unknown>, TDetail extends Record<string, unknown> = Record<string, unknown>>({ id, stateStore, data, columns, grouping, defaultGrouping, enableGrouping, enableSorting, enableFiltering, enablePagination, pageSize, paginationVariant, pageSizeOptions, paginationPosition, exportOptions, serverPagination, fillParentHeight, maxBodyHeightPx, className, emptyMessage, title, subtitle, sidePanel, onGroupingChange, toolbarSlot, belowToolbarSlot, loading, loadingMessage, isFetching, error, onRetry, onRefresh, onRowClick, onRowDoubleClick, defaultHiddenColumns, getRowContextMenu, footerSlot, showRowNumbers, enableRowSelection, getRowActions, getBulkActions, bulkActionsSlot, onSelectionChange, headerVariant, searchPlaceholder, embedded, detail, controller, getRowId, selectionAcrossPages, remote, }: CustomTableProps<TData, TDetail>): import('react').JSX.Element;
|
|
296
|
+
export declare function CustomTable<TData extends Record<string, unknown>, TDetail extends Record<string, unknown> = Record<string, unknown>>({ id, stateStore, data, columns, grouping, defaultGrouping, enableGrouping, enableSorting, enableFiltering, enablePagination, pageSize, paginationVariant, pageSizeOptions, paginationPosition, exportOptions, serverPagination, fillParentHeight, maxBodyHeightPx, className, emptyMessage, title, subtitle, sidePanel, onGroupingChange, toolbarSlot, belowToolbarSlot, loading, loadingMessage, isFetching, error, onRetry, onRefresh, onRowClick, onRowDoubleClick, defaultHiddenColumns, getRowContextMenu, footerSlot, showRowNumbers, enableRowSelection, getRowActions, getBulkActions, bulkActionsSlot, onSelectionChange, headerVariant, searchPlaceholder, embedded, density, rowActionsDisplay, detail, controller, getRowId, selectionAcrossPages, remote, }: CustomTableProps<TData, TDetail>): import('react').JSX.Element;
|
|
284
297
|
export type { CustomColumn, CustomTableDetail, CustomTableProps, TableAggregation };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { CustomTable } from './CustomTable';
|
|
2
|
-
export type { CustomColumn, CustomTableDetail, CustomTableExport, CustomTableExportCriteria, CustomTableExportRequest, CustomTableExportScope, CustomTableFooterContext, CustomTableProps, CustomTableRemote, CustomTableRowMenuItem, CustomTableServerPagination, CustomTableSort, TableHeaderVariant, } from './CustomTable';
|
|
2
|
+
export type { CustomColumn, CustomTableDensity, CustomTableDetail, CustomTableExport, CustomTableExportCriteria, CustomTableExportRequest, CustomTableExportScope, CustomTableFooterContext, CustomTableProps, CustomTableRemote, CustomTableRowActionsDisplay, CustomTableRowMenuItem, CustomTableServerPagination, CustomTableSort, TableHeaderVariant, } from './CustomTable';
|
|
3
3
|
export { AsyncCustomTable } from './AsyncCustomTable';
|
|
4
4
|
export type { AsyncCustomTableProps } from './AsyncCustomTable';
|
|
5
5
|
export { PaginationRangeInput } from './PaginationRangeInput';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { BadgeVariant } from '../cards/types';
|
|
3
|
+
export type IntegrationFlowNode = {
|
|
4
|
+
/** Única dentro de su colección (`sources` o `targets`). */
|
|
5
|
+
key: string;
|
|
6
|
+
label: string;
|
|
7
|
+
sublabel?: string;
|
|
8
|
+
icon?: ReactNode;
|
|
9
|
+
/** Color de categoría del nodo (identifica, no indica estado). Por defecto, la paleta de categorías en orden. */
|
|
10
|
+
color?: string;
|
|
11
|
+
/** Estado con el texto del host (ej. "Activo"); se pinta con `Badge`. */
|
|
12
|
+
status?: {
|
|
13
|
+
label: string;
|
|
14
|
+
variant?: BadgeVariant;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export type IntegrationFlowStep = {
|
|
18
|
+
key: string;
|
|
19
|
+
label: string;
|
|
20
|
+
icon?: ReactNode;
|
|
21
|
+
};
|
|
22
|
+
export type IntegrationFlowHub = {
|
|
23
|
+
title: string;
|
|
24
|
+
icon?: ReactNode;
|
|
25
|
+
/** Imagen o ilustración grande del centro (decorativa), bajo el título. */
|
|
26
|
+
media?: ReactNode;
|
|
27
|
+
/** Texto bajo `media` (ej. el nombre del modelo de datos). */
|
|
28
|
+
subtitle?: string;
|
|
29
|
+
steps?: IntegrationFlowStep[];
|
|
30
|
+
};
|
|
31
|
+
/** `compact`: tres columnas desde 560px y espaciado menor. */
|
|
32
|
+
export type IntegrationFlowDensity = "default" | "compact";
|
|
33
|
+
/** `neutral`: líneas grises de CSS (publicado). `per-node`: una curva por nodo con su color, medida sobre el DOM. */
|
|
34
|
+
export type IntegrationFlowLinks = "neutral" | "per-node";
|
|
35
|
+
/** `panels`: cada columna en su propio panel con el título dentro, destinos sin tarjeta y estados rellenos. */
|
|
36
|
+
export type IntegrationFlowAppearance = "default" | "panels";
|
|
37
|
+
export type IntegrationFlowProps = {
|
|
38
|
+
sources: IntegrationFlowNode[];
|
|
39
|
+
hub: IntegrationFlowHub;
|
|
40
|
+
targets: IntegrationFlowNode[];
|
|
41
|
+
/** Títulos de las columnas de los extremos. Por defecto «Origen» y «Destino». */
|
|
42
|
+
labels?: {
|
|
43
|
+
sources?: string;
|
|
44
|
+
targets?: string;
|
|
45
|
+
};
|
|
46
|
+
ariaLabel?: string;
|
|
47
|
+
emptySourcesMessage?: string;
|
|
48
|
+
emptyTargetsMessage?: string;
|
|
49
|
+
density?: IntegrationFlowDensity;
|
|
50
|
+
links?: IntegrationFlowLinks;
|
|
51
|
+
appearance?: IntegrationFlowAppearance;
|
|
52
|
+
/** Con `onNodeClick` cada origen y destino es pulsable (botón superpuesto con el nombre del nodo). */
|
|
53
|
+
onNodeClick?: (collection: "sources" | "targets", key: string) => void;
|
|
54
|
+
className?: string;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Visualización estática de una integración: todos los orígenes van a un centro y el centro a todos los destinos. Las
|
|
58
|
+
* líneas son decorativas (CSS) y de color neutro; la información está en los tres grupos. No hay enlaces individuales,
|
|
59
|
+
* estados por enlace ni interacción. Tres columnas si el contenedor tiene al menos 720px; si no, bloques apilados.
|
|
60
|
+
*/
|
|
61
|
+
export declare const IntegrationFlow: ({ sources, hub, targets, labels, ariaLabel, emptySourcesMessage, emptyTargetsMessage, density, links, appearance, onNodeClick, className, }: IntegrationFlowProps) => import('react').JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type RelationGraphItem = {
|
|
3
|
+
/** Única dentro de su grupo. */
|
|
4
|
+
key: string;
|
|
5
|
+
label: string;
|
|
6
|
+
sublabel?: string;
|
|
7
|
+
/** Decorativo, antes del nombre. Se monta dos veces (una en el medidor oculto): sin efectos ni `id`. */
|
|
8
|
+
icon?: ReactNode;
|
|
9
|
+
};
|
|
10
|
+
export type RelationGraphGroup = {
|
|
11
|
+
/** Única en `groups`. Es la que reciben `onSelect` y `onShowMore`. */
|
|
12
|
+
key: string;
|
|
13
|
+
label: string;
|
|
14
|
+
/** Verbo de la relación del centro con el grupo (ej. "trabaja con", "opera"). Se lee como texto. */
|
|
15
|
+
relation: string;
|
|
16
|
+
/** Decorativo. Se monta dos veces (una en el medidor oculto): sin efectos ni `id`. */
|
|
17
|
+
icon?: ReactNode;
|
|
18
|
+
/** Color de categoría del grupo (borde, ícono y línea). Por defecto, la paleta de categorías en orden. */
|
|
19
|
+
color?: string;
|
|
20
|
+
items: RelationGraphItem[];
|
|
21
|
+
/** Total real del grupo si el host no entregó todos los elementos. */
|
|
22
|
+
total?: number;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* `auto` elige radial o lista según el espacio. `list` pinta siempre la lista: es la salida segura cuando el host sabe
|
|
26
|
+
* que la radial no le conviene, o en los casos que el freno de `auto` no cubre (CHANGELOG, «Conocido»).
|
|
27
|
+
*/
|
|
28
|
+
export type RelationGraphLayout = "auto" | "list";
|
|
29
|
+
/**
|
|
30
|
+
* `default`: grupos en tarjetas alrededor del centro (radial desde 720px). `orbit`: retrato grande en el centro, cada
|
|
31
|
+
* grupo como un círculo con su lista al costado y el verbo sobre la línea; cabe desde unos 600px. Con `layout="list"`,
|
|
32
|
+
* o si no cabe, las dos se pintan como lista.
|
|
33
|
+
*/
|
|
34
|
+
export type RelationGraphVariant = "default" | "orbit";
|
|
35
|
+
export type RelationGraphProps = {
|
|
36
|
+
/** `media` es decorativo y se monta dos veces (una en el medidor oculto): sin efectos ni `id`. */
|
|
37
|
+
center: {
|
|
38
|
+
label: string;
|
|
39
|
+
sublabel?: string;
|
|
40
|
+
media?: ReactNode;
|
|
41
|
+
};
|
|
42
|
+
groups: RelationGraphGroup[];
|
|
43
|
+
/** Grupo seleccionado, controlado por el host. Una clave que no existe no marca nada. */
|
|
44
|
+
selectedKey?: string;
|
|
45
|
+
/** Pide seleccionar un grupo (no significa abrirlo). Sin él no hay botones de selección. */
|
|
46
|
+
onSelect?: (groupKey: string) => void;
|
|
47
|
+
/** Elementos visibles por grupo en la disposición radial; el resto se despliega con «+N más». Por defecto 3. */
|
|
48
|
+
maxItemsPerGroup?: number;
|
|
49
|
+
/** Pide al host los elementos que no entregó (`total` mayor que `items`). Sin él, se informa como texto. */
|
|
50
|
+
onShowMore?: (groupKey: string) => void;
|
|
51
|
+
/** Por defecto `auto`. */
|
|
52
|
+
layout?: RelationGraphLayout;
|
|
53
|
+
/** Por defecto `default`. */
|
|
54
|
+
variant?: RelationGraphVariant;
|
|
55
|
+
ariaLabel?: string;
|
|
56
|
+
emptyMessage?: string;
|
|
57
|
+
className?: string;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Una entidad central y sus grupos de relaciones (no un grafo arbitrario: sin enlaces entre grupos). Primero se pinta como
|
|
61
|
+
* lista, que siempre cabe; con `layout="auto"` (por defecto) pasa a radial solo si el contenedor tiene al menos 720px,
|
|
62
|
+
* hay hasta 8 grupos y las cajas medidas no se solapan; con `layout="list"` se queda en lista. Distinto de `OrgTree`
|
|
63
|
+
* (jerarquía) y de `NetworkMap` (geográfico).
|
|
64
|
+
*/
|
|
65
|
+
export declare const RelationGraph: ({ center, groups, selectedKey, onSelect, maxItemsPerGroup, onShowMore, layout, variant, ariaLabel, emptyMessage, className, }: RelationGraphProps) => import('react').JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Punto } from './disponerRadial';
|
|
2
|
+
export type LadoOrbita = "arriba" | "derecha" | "abajo" | "izquierda";
|
|
3
|
+
export type NodoOrbita = Punto & {
|
|
4
|
+
/** Hacia dónde va la lista del grupo, fuera del nodo. */
|
|
5
|
+
lado: LadoOrbita;
|
|
6
|
+
/** Ancho máximo de la lista sin salirse del lienzo. */
|
|
7
|
+
anchoLista: number;
|
|
8
|
+
/** Borde superior de la lista respecto del centro del nodo. */
|
|
9
|
+
listaY: number;
|
|
10
|
+
/** Dónde va el verbo: un punto de la línea y la normal (unitaria) hacia la que se aparta de ella. */
|
|
11
|
+
verbo: Punto & {
|
|
12
|
+
nx: number;
|
|
13
|
+
ny: number;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export type DisposicionOrbita = {
|
|
17
|
+
alto: number;
|
|
18
|
+
centro: Punto;
|
|
19
|
+
grupos: NodoOrbita[];
|
|
20
|
+
};
|
|
21
|
+
export declare const RADIO_NODO_ORBITA = 38;
|
|
22
|
+
export declare const RADIO_CENTRO_ORBITA = 50;
|
|
23
|
+
/**
|
|
24
|
+
* Centros del retrato y de los grupos en órbita (sentido horario desde arriba) dentro de `ancho`. Solo depende del
|
|
25
|
+
* ancho y del número de grupos, no del contenido. Lo horizontal se encoge para dejar a las listas laterales al menos
|
|
26
|
+
* 108px si se puede. Devuelve `null` sin grupos, con más de 8, con menos de 600px o si alguna lista lateral quedaría
|
|
27
|
+
* con menos de 90px: entonces el componente usa la lista.
|
|
28
|
+
*/
|
|
29
|
+
export declare const disponerOrbita: (cantidad: number, ancho: number) => DisposicionOrbita | null;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type CajaMedida = {
|
|
2
|
+
ancho: number;
|
|
3
|
+
alto: number;
|
|
4
|
+
};
|
|
5
|
+
export type Punto = {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
};
|
|
9
|
+
export type DisposicionRadial = {
|
|
10
|
+
alto: number;
|
|
11
|
+
centro: Punto;
|
|
12
|
+
grupos: Punto[];
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Posiciones (esquina superior izquierda) del centro y de los grupos alrededor, en sentido horario desde arriba, dentro
|
|
16
|
+
* de `ancho`. Devuelve `null` si no hay grupos, si son más de 8 o si con estos tamaños alguna caja se solaparía o se
|
|
17
|
+
* saldría: entonces el componente usa la lista.
|
|
18
|
+
*/
|
|
19
|
+
export declare const disponerRadial: (centro: CajaMedida, grupos: CajaMedida[], ancho: number, separacion?: number) => DisposicionRadial | null;
|
|
@@ -9,3 +9,7 @@ export type { NetworkLegendProps } from './NetworkLegend';
|
|
|
9
9
|
export { ORG_TREE_DEFAULT_THEMES, buildOrgTreeRows, resolveOrgTreeTheme, countOrgTreeNodes, orgTreeRootNodes, } from './orgTreeUtils';
|
|
10
10
|
export { NETWORK_STATUS_COLORS, NETWORK_STATUS_LABELS, NETWORK_EDGE_STYLES, NETWORK_BASEMAPS, NETWORK_KIND_LABELS, NETWORK_KIND_COLORS, normalizeNetworkNodes, normalizeNetworkEdges, countNetworkStatus, networkMapBounds, networkNodePositions, networkEdgeLines, } from './networkMapUtils';
|
|
11
11
|
export type { OrgTreeNode, OrgTreeNodeRow, OrgTreeTheme, NetworkNode, NetworkEdge, NetworkNodeStatus, NetworkNodeKind, NetworkBasemap, NetworkEdgeType, } from './types';
|
|
12
|
+
export { RelationGraph } from './RelationGraph';
|
|
13
|
+
export type { RelationGraphGroup, RelationGraphItem, RelationGraphLayout, RelationGraphProps, RelationGraphVariant } from './RelationGraph';
|
|
14
|
+
export { IntegrationFlow } from './IntegrationFlow';
|
|
15
|
+
export type { IntegrationFlowAppearance, IntegrationFlowDensity, IntegrationFlowHub, IntegrationFlowLinks, IntegrationFlowNode, IntegrationFlowProps, IntegrationFlowStep, } from './IntegrationFlow';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Puede tener el foco: tabulable o con `tabindex` (incluido -1), conectado, habilitado, visible y fuera de `inert`. */
|
|
2
|
+
export declare const esEnfocableValido: (elemento: Element | null) => elemento is HTMLElement;
|
|
3
|
+
export declare const tabulables: (contenedor: Element) => HTMLElement[];
|
|
4
|
+
/**
|
|
5
|
+
* Destino de Tab dentro de `contenedor`: el primero o el último si el foco está fuera, la vuelta en los extremos y
|
|
6
|
+
* `null` cuando el navegador puede seguir solo. Desde un elemento de dentro que no es tabulable (un `tabindex="-1"`),
|
|
7
|
+
* el siguiente o el anterior en el orden del documento. `"vacio"` si no hay nada tabulable.
|
|
8
|
+
*/
|
|
9
|
+
export declare const siguienteEnContencion: (contenedor: Element, activo: Element | null, atras: boolean) => HTMLElement | "vacio" | null;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type ElementoIdentificado<T> = {
|
|
2
|
+
elemento: T;
|
|
3
|
+
/** Clave del host, tal como llegó: es la que reciben los callbacks. */
|
|
4
|
+
clave: string;
|
|
5
|
+
/** Clave de React. Las válidas van en el espacio "k:" y las repetidas en "d:<n>:", sin índice, para que
|
|
6
|
+
* reordenar datos válidos no remonte nodos y ninguna clave del host colisione con una generada. */
|
|
7
|
+
claveReact: string;
|
|
8
|
+
/** Solo la primera aparición de una clave tiene identidad e interacción. */
|
|
9
|
+
esPrimera: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare const identificarColeccion: <T>(elementos: readonly T[], obtenerClave: (elemento: T) => string, componente: string, coleccion: string) => ElementoIdentificado<T>[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Suma de las barras de desplazamiento verticales de los ancestros con desbordamiento propio (incluido `body` cuando
|
|
3
|
+
* desplaza él y no la ventana) y de la ventana, en píxeles. Si un elemento pierde ancho y esta suma crece en al menos
|
|
4
|
+
* lo perdido, lo explica una barra; si pierde más, alguien redimensionó.
|
|
5
|
+
*/
|
|
6
|
+
export declare const barrasVerticalesDeAncestros: (nodo: Element) => number;
|
|
7
|
+
export declare const BARRA_MINIMA = 3;
|
|
8
|
+
export declare const TOLERANCIA_BARRA = 2;
|
|
9
|
+
/**
|
|
10
|
+
* ¿Una barra que apareció (o desapareció) explica un cambio de ancho? Sí si la barra mide al menos BARRA_MINIMA y el
|
|
11
|
+
* ancho cambió en sentido contrario y como mucho lo que ella mide, más TOLERANCIA_BARRA por el redondeo del zoom
|
|
12
|
+
* fraccionario. Una barra no le quita a un elemento más que su grosor, aunque reparta el resto en columnas.
|
|
13
|
+
*/
|
|
14
|
+
export declare const explicadoPorBarra: (anchoCambiado: number, barra: number) => boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Ancho del contenedor en píxeles, o `null` si no se puede medir (sin `ResizeObserver`: jsdom, SSR) o todavía no se
|
|
17
|
+
* midió. Quien lo usa pinta su disposición estrecha con `null`: es la que nunca desborda. Con `conBarras`, el tercer
|
|
18
|
+
* valor son las barras verticales de los ancestros medidas en el mismo aviso (`barrasVerticalesDeAncestros`).
|
|
19
|
+
*/
|
|
20
|
+
export declare const useAnchoContenedor: <T extends HTMLElement>(conBarras?: boolean) => [(nodo: T | null) => void, number | null, number | null];
|
|
21
|
+
/** Píxeles de un tamaño en rem, con la fuente raíz real del documento (respeta el zoom de texto del usuario). */
|
|
22
|
+
export declare const remAPixeles: (rem: number, documento?: Document | undefined) => number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|