@william-callao/antonella-ui 1.0.5 → 2.0.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.
- package/dist/index.d.ts +395 -23
- package/dist/index.js +4253 -2671
- package/package.json +8 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import React__default, { ComponentType, ReactNode, ReactElement } from 'react';
|
|
3
|
-
import { StyleProp, ViewStyle, PressableProps, ViewProps, TextStyle, TextInputProps, KeyboardTypeOptions, TextProps as TextProps$1, ScrollViewProps } from 'react-native';
|
|
3
|
+
import { StyleProp, ViewStyle, PressableProps, ViewProps, TextStyle, TextInputProps, View, KeyboardTypeOptions, TextProps as TextProps$1, ScrollViewProps } from 'react-native';
|
|
4
4
|
import { DashboardShellTokens, LayoutRowSize, LayoutColumnSize, TextType } from '@william-callao/antonella-theme';
|
|
5
5
|
export { LayoutColumnSize, LayoutRowSize } from '@william-callao/antonella-theme';
|
|
6
6
|
import { SharedValue } from 'react-native-reanimated';
|
|
@@ -50,7 +50,7 @@ interface CardTitleProps {
|
|
|
50
50
|
}
|
|
51
51
|
declare function CardTitle({ title, subtitle, style }: CardTitleProps): React__default.JSX.Element;
|
|
52
52
|
|
|
53
|
-
type IconName = "home" | "home-filled" | "mail" | "mail-filled" | "calendar" | "calendar-filled" | "bar-chart" | "bar-chart-filled" | "cart" | "settings" | "settings-filled" | "user" | "user-filled" | "search" | "clipboard" | "clipboard-filled" | "checklist" | "checklist-filled" | "menu" | "close" | "chevron-down" | "chevron-forward" | "chevron-back" | "arrow-back" | "arrow-forward" | "arrow-down" | "arrow-up" | "arrow-up-filled" | "add" | "checkmark" | "pencil" | "trash" | "chevron-up" | "alert-circle" | "checkmark-circle" | "information-circle" | "notifications" | "notifications-filled" | "more-horizontal" | "more-vertical" | "log-in" | "log-out" | "git-network" | "construct" | "chatbubble" | "camera" | "time" | "analytics" | "barn" | "barn-filled" | "farm" | "farm-filled" | "people" | "people-filled" | "document-text" | "document-text-filled" | "backspace" | "palette" | "folder" | "folder-open" | "file" | "loader" | "inbox" | "triangle-alert" | "eye" | "eye-off" | "flash" | "flash-off" | "torch" | "torch-off" | "flip-camera" | "scan" | "tag" | "tag-filled";
|
|
53
|
+
type IconName = "home" | "home-filled" | "mail" | "mail-filled" | "calendar" | "calendar-filled" | "bar-chart" | "bar-chart-filled" | "cart" | "settings" | "settings-filled" | "user" | "user-filled" | "search" | "clipboard" | "clipboard-filled" | "checklist" | "checklist-filled" | "menu" | "close" | "chevron-down" | "chevron-forward" | "chevron-back" | "arrow-back" | "arrow-forward" | "arrow-down" | "arrow-up" | "arrow-up-filled" | "add" | "checkmark" | "pencil" | "trash" | "chevron-up" | "alert-circle" | "checkmark-circle" | "information-circle" | "notifications" | "notifications-filled" | "more-horizontal" | "more-vertical" | "log-in" | "log-out" | "git-network" | "construct" | "chatbubble" | "camera" | "time" | "analytics" | "barn" | "barn-filled" | "farm" | "farm-filled" | "people" | "people-filled" | "document-text" | "document-text-filled" | "backspace" | "palette" | "folder" | "folder-open" | "file" | "loader" | "lock" | "inbox" | "triangle-alert" | "eye" | "eye-off" | "flash" | "flash-off" | "torch" | "torch-off" | "flip-camera" | "scan" | "tag" | "tag-filled";
|
|
54
54
|
declare const iconMap: Record<IconName, ComponentType<{
|
|
55
55
|
size?: number;
|
|
56
56
|
color?: string;
|
|
@@ -75,11 +75,14 @@ type ChipProps = {
|
|
|
75
75
|
size?: ChipSize;
|
|
76
76
|
icon?: IconName;
|
|
77
77
|
uppercase?: boolean;
|
|
78
|
+
/** Marca el chip como seleccionado para el lector de pantalla (filtros,
|
|
79
|
+
* selectores). El estilo visual lo define el caller con `variant`/`color`. */
|
|
80
|
+
selected?: boolean;
|
|
78
81
|
style?: StyleProp<ViewStyle>;
|
|
79
82
|
textStyle?: StyleProp<TextStyle>;
|
|
80
83
|
onPress?: () => void;
|
|
81
84
|
};
|
|
82
|
-
declare function Chip({ label, color, backgroundColor, variant, size, icon, uppercase, style, textStyle, onPress, }: ChipProps): React__default.JSX.Element;
|
|
85
|
+
declare function Chip({ label, color, backgroundColor, variant, size, icon, uppercase, selected, style, textStyle, onPress, }: ChipProps): React__default.JSX.Element;
|
|
83
86
|
|
|
84
87
|
declare enum ItemStyle {
|
|
85
88
|
DEFAULT = "DEFAULT",
|
|
@@ -120,10 +123,29 @@ type ChipTabsProps = {
|
|
|
120
123
|
};
|
|
121
124
|
declare function ChipTabs({ options, selected: controlledSelected, onSelect, style, fullWidth, }: ChipTabsProps): React__default.JSX.Element;
|
|
122
125
|
|
|
126
|
+
type AppStepIndicatorProps = {
|
|
127
|
+
/** Paso actual, 1-based. */
|
|
128
|
+
current: number;
|
|
129
|
+
/** Cantidad total de pasos. */
|
|
130
|
+
total: number;
|
|
131
|
+
/** Texto del chip, p. ej. "Paso 2 de 3". */
|
|
132
|
+
label: string;
|
|
133
|
+
/** Nombre corto del paso actual, p. ej. "Descripción". */
|
|
134
|
+
caption?: string;
|
|
135
|
+
style?: StyleProp<ViewStyle>;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Indicador compacto de un flujo por pasos. El chip comunica el avance y el
|
|
139
|
+
* caption opcional dice en qué paso está el usuario sin ocupar una fila extra.
|
|
140
|
+
*/
|
|
141
|
+
declare function AppStepIndicator({ current, total, label, caption, style, }: AppStepIndicatorProps): React__default.JSX.Element;
|
|
142
|
+
|
|
123
143
|
declare enum LabelStyle {
|
|
124
144
|
DEFAULT = "DEFAULT",
|
|
125
145
|
LIGHT = "LIGHT",
|
|
126
|
-
DARKNESS = "DARKNESS"
|
|
146
|
+
DARKNESS = "DARKNESS",
|
|
147
|
+
/** Acción de alto contraste sobre superficies oscuras. */
|
|
148
|
+
DARKNESS_ACTION = "DARKNESS_ACTION"
|
|
127
149
|
}
|
|
128
150
|
type LabelProps = {
|
|
129
151
|
label: string;
|
|
@@ -268,6 +290,58 @@ type SectionHeaderProps = {
|
|
|
268
290
|
};
|
|
269
291
|
declare function SectionHeader({ title, subtitle, hideDescription, action, onAction, actionIcon, onActionIcon, style, horizontalPadding, containerStyle, }: SectionHeaderProps): React__default.JSX.Element;
|
|
270
292
|
|
|
293
|
+
type SelectableTableColumn = {
|
|
294
|
+
key: string;
|
|
295
|
+
label: string;
|
|
296
|
+
/** Ancho fijo de la columna. */
|
|
297
|
+
width?: number;
|
|
298
|
+
/** Factor de reparto para columnas flexibles. */
|
|
299
|
+
flex?: number;
|
|
300
|
+
};
|
|
301
|
+
type SelectableTableItem = {
|
|
302
|
+
id: string;
|
|
303
|
+
values: Record<string, string>;
|
|
304
|
+
};
|
|
305
|
+
type SelectableTableRowAction = {
|
|
306
|
+
icon: IconName;
|
|
307
|
+
color?: string;
|
|
308
|
+
onPress: (item: SelectableTableItem) => void;
|
|
309
|
+
accessibilityLabel?: (item: SelectableTableItem) => string;
|
|
310
|
+
};
|
|
311
|
+
type SelectableTableProps = {
|
|
312
|
+
columns: SelectableTableColumn[];
|
|
313
|
+
items: SelectableTableItem[];
|
|
314
|
+
/** Fila opcional para "ninguno"; se selecciona con id `""`. */
|
|
315
|
+
noneItem?: SelectableTableItem;
|
|
316
|
+
selectedId?: string;
|
|
317
|
+
/** Si se pasa, las filas son seleccionables. */
|
|
318
|
+
onSelect?: (id: string) => void;
|
|
319
|
+
/** Acción al final de cada fila (ej. eliminar en gestión). */
|
|
320
|
+
rowAction?: SelectableTableRowAction;
|
|
321
|
+
emptyLabel?: string;
|
|
322
|
+
style?: StyleProp<ViewStyle>;
|
|
323
|
+
};
|
|
324
|
+
/**
|
|
325
|
+
* Tabla compacta de filas seleccionables: cabecera, separadores y estado de
|
|
326
|
+
* selección. La usan los selectores de unidades/cuentas y las pantallas de
|
|
327
|
+
* gestión.
|
|
328
|
+
*/
|
|
329
|
+
declare function SelectableTable({ columns, items, noneItem, selectedId, onSelect, rowAction, emptyLabel, style, }: SelectableTableProps): React__default.JSX.Element;
|
|
330
|
+
|
|
331
|
+
type ScreenOverlayProps = {
|
|
332
|
+
visible: boolean;
|
|
333
|
+
title: string;
|
|
334
|
+
onClose: () => void;
|
|
335
|
+
children: React__default.ReactNode;
|
|
336
|
+
accessibilityLabel?: string;
|
|
337
|
+
};
|
|
338
|
+
/**
|
|
339
|
+
* Pantalla completa que se monta por delante de la pantalla actual sin
|
|
340
|
+
* navegación de router. Sirve para flujos secundarios que deben preservar el
|
|
341
|
+
* estado de la pantalla de abajo (formularios, pickers, etc.).
|
|
342
|
+
*/
|
|
343
|
+
declare function ScreenOverlay({ visible, title, onClose, children, accessibilityLabel, }: ScreenOverlayProps): React__default.JSX.Element;
|
|
344
|
+
|
|
271
345
|
type SheetProps = {
|
|
272
346
|
visible: boolean;
|
|
273
347
|
onClose: () => void;
|
|
@@ -276,6 +350,8 @@ type SheetProps = {
|
|
|
276
350
|
icon?: IconName;
|
|
277
351
|
title?: string;
|
|
278
352
|
caption?: string;
|
|
353
|
+
/** Contenido opcional centrado sobre el header (p. ej. indicador de pasos). */
|
|
354
|
+
headerAccessory?: React__default.ReactNode;
|
|
279
355
|
children: React__default.ReactNode;
|
|
280
356
|
contentStyle?: StyleProp<ViewStyle>;
|
|
281
357
|
snapPoints?: Array<string | number>;
|
|
@@ -288,7 +364,7 @@ type SheetProps = {
|
|
|
288
364
|
*/
|
|
289
365
|
embedded?: boolean;
|
|
290
366
|
};
|
|
291
|
-
declare function Sheet({ visible, onClose, dismissible, showCloseButton, icon, title, caption, children, contentStyle, snapPoints, actions, embedded, }: SheetProps): React__default.JSX.Element;
|
|
367
|
+
declare function Sheet({ visible, onClose, dismissible, showCloseButton, icon, title, caption, headerAccessory, children, contentStyle, snapPoints, actions, embedded, }: SheetProps): React__default.JSX.Element;
|
|
292
368
|
|
|
293
369
|
declare enum AppDialogMode {
|
|
294
370
|
Dismissable = "dismissable",
|
|
@@ -298,9 +374,13 @@ type BottomSheetProps = {
|
|
|
298
374
|
visible: boolean;
|
|
299
375
|
onClose: () => void;
|
|
300
376
|
mode?: AppDialogMode;
|
|
377
|
+
/** Muestra la X aunque `mode` sea Required (cierre solo por botón). */
|
|
378
|
+
showCloseButton?: boolean;
|
|
301
379
|
icon?: IconName;
|
|
302
380
|
title?: string;
|
|
303
381
|
caption?: string;
|
|
382
|
+
/** Contenido opcional centrado sobre el header (p. ej. indicador de pasos). */
|
|
383
|
+
headerAccessory?: React__default.ReactNode;
|
|
304
384
|
children: React__default.ReactNode;
|
|
305
385
|
contentStyle?: React__default.ComponentProps<typeof Sheet>["contentStyle"];
|
|
306
386
|
snapPoints?: React__default.ComponentProps<typeof Sheet>["snapPoints"];
|
|
@@ -309,7 +389,28 @@ type BottomSheetProps = {
|
|
|
309
389
|
/** Monta el diálogo sin RN Modal (para hosts modales nativos tipo expo-router). */
|
|
310
390
|
embedded?: boolean;
|
|
311
391
|
};
|
|
312
|
-
declare function BottomSheet({ visible, onClose, mode, icon, title, caption, children, contentStyle, snapPoints, actions, embedded, }: BottomSheetProps): React__default.JSX.Element;
|
|
392
|
+
declare function BottomSheet({ visible, onClose, mode, showCloseButton, icon, title, caption, headerAccessory, children, contentStyle, snapPoints, actions, embedded, }: BottomSheetProps): React__default.JSX.Element;
|
|
393
|
+
|
|
394
|
+
type BottomDialogProps = {
|
|
395
|
+
visible: boolean;
|
|
396
|
+
onClose: () => void;
|
|
397
|
+
title: string;
|
|
398
|
+
description?: string;
|
|
399
|
+
children?: React__default.ReactNode;
|
|
400
|
+
/** Botones del pie. El diálogo los acomoda en una fila con separación. */
|
|
401
|
+
actions?: React__default.ReactNode;
|
|
402
|
+
dismissible?: boolean;
|
|
403
|
+
contentStyle?: StyleProp<ViewStyle>;
|
|
404
|
+
/** Monta el diálogo sin RN Modal (host modal nativo tipo expo-router). */
|
|
405
|
+
embedded?: boolean;
|
|
406
|
+
};
|
|
407
|
+
/**
|
|
408
|
+
* Diálogo compacto anclado al pie de la pantalla. A diferencia de
|
|
409
|
+
* `BottomSheet`, no toca los bordes: flota con margen, tiene esquinas
|
|
410
|
+
* redondeadas y un título corto (`BodyBold`) en vez del header grande del
|
|
411
|
+
* sheet. Pensado para confirmaciones breves.
|
|
412
|
+
*/
|
|
413
|
+
declare function BottomDialog({ visible, onClose, title, description, children, actions, dismissible, contentStyle, embedded, }: BottomDialogProps): React__default.JSX.Element;
|
|
313
414
|
|
|
314
415
|
type AppBottomSheetProps = {
|
|
315
416
|
visible: boolean;
|
|
@@ -392,6 +493,8 @@ type ModalProps = {
|
|
|
392
493
|
icon?: IconName;
|
|
393
494
|
title?: string;
|
|
394
495
|
caption?: string;
|
|
496
|
+
/** Contenido opcional centrado sobre el header (p. ej. indicador de pasos). */
|
|
497
|
+
headerAccessory?: React__default.ReactNode;
|
|
395
498
|
children: React__default.ReactNode;
|
|
396
499
|
contentStyle?: StyleProp<ViewStyle>;
|
|
397
500
|
/** Zona de acciones fija al pie del modal. */
|
|
@@ -403,7 +506,7 @@ type ModalProps = {
|
|
|
403
506
|
*/
|
|
404
507
|
embedded?: boolean;
|
|
405
508
|
};
|
|
406
|
-
declare function Modal({ visible, onClose, dismissible, showCloseButton, icon, title, caption, children, contentStyle, actions, embedded, }: ModalProps): React__default.JSX.Element;
|
|
509
|
+
declare function Modal({ visible, onClose, dismissible, showCloseButton, icon, title, caption, headerAccessory, children, contentStyle, actions, embedded, }: ModalProps): React__default.JSX.Element;
|
|
407
510
|
|
|
408
511
|
type AppFilterChipOption = {
|
|
409
512
|
label: string;
|
|
@@ -578,6 +681,64 @@ type ProductCardProps = {
|
|
|
578
681
|
};
|
|
579
682
|
declare function ProductCard({ name, price, code, cart, maxQuantity, onQuantityChange, imageIcon, style, containerStyle, }: ProductCardProps): React__default.JSX.Element;
|
|
580
683
|
|
|
684
|
+
type PropertySummaryItem = {
|
|
685
|
+
label: string;
|
|
686
|
+
value?: string;
|
|
687
|
+
/** Texto cuando no hay valor. Por defecto, `-`. */
|
|
688
|
+
emptyLabel?: string;
|
|
689
|
+
};
|
|
690
|
+
type PropertySummaryProps = {
|
|
691
|
+
title?: string;
|
|
692
|
+
items: PropertySummaryItem[];
|
|
693
|
+
emptyLabel?: string;
|
|
694
|
+
style?: StyleProp<ViewStyle>;
|
|
695
|
+
};
|
|
696
|
+
/**
|
|
697
|
+
* Resumen compacto de propiedades para el paso de revisión: label a la
|
|
698
|
+
* izquierda y valor a la derecha, con un ritmo más bajo que una fila de input.
|
|
699
|
+
*/
|
|
700
|
+
declare function PropertySummary({ title, items, emptyLabel, style, }: PropertySummaryProps): React__default.JSX.Element | null;
|
|
701
|
+
|
|
702
|
+
type PressKind = "button" | "card" | "item" | "tab" | "chip" | "fab" | "header" | "other";
|
|
703
|
+
/**
|
|
704
|
+
* Evento semántico de interacción. NO hay coordenadas: un tap en una zona vacía no
|
|
705
|
+
* interesa a nadie y llenaría la DB de ruido.
|
|
706
|
+
*/
|
|
707
|
+
type PressEvent = {
|
|
708
|
+
component: string;
|
|
709
|
+
label?: string;
|
|
710
|
+
kind: PressKind;
|
|
711
|
+
data?: Record<string, unknown>;
|
|
712
|
+
ts: number;
|
|
713
|
+
};
|
|
714
|
+
type PressObserver = (event: PressEvent) => void;
|
|
715
|
+
/**
|
|
716
|
+
* La app registra un único observer (que escribe a logwood). El DS no sabe nada de
|
|
717
|
+
* logging: solo avisa que un componente semántico recibió un tap.
|
|
718
|
+
*/
|
|
719
|
+
declare function setPressObserver(next: PressObserver | null): void;
|
|
720
|
+
declare function getPressObserver(): PressObserver | null;
|
|
721
|
+
declare function emitPress(event: Omit<PressEvent, "ts">): void;
|
|
722
|
+
type PressTracking = {
|
|
723
|
+
component: string;
|
|
724
|
+
label?: string;
|
|
725
|
+
kind: PressKind;
|
|
726
|
+
data?: Record<string, unknown>;
|
|
727
|
+
};
|
|
728
|
+
type TrackedPressableProps = PressableProps & {
|
|
729
|
+
/** Si se omite, el componente se comporta como un Pressable normal y no emite nada. */
|
|
730
|
+
tracking?: PressTracking;
|
|
731
|
+
};
|
|
732
|
+
/**
|
|
733
|
+
* Reemplazo de `Pressable` para componentes con significado (un botón "Guardar", un card
|
|
734
|
+
* de acción, un ítem de lista, una tab). Cada caso pasa su `tracking`; el observer global
|
|
735
|
+
* convierte eso en un evento de log.
|
|
736
|
+
*/
|
|
737
|
+
declare const TrackedPressable: React__default.ForwardRefExoticComponent<PressableProps & {
|
|
738
|
+
/** Si se omite, el componente se comporta como un Pressable normal y no emite nada. */
|
|
739
|
+
tracking?: PressTracking;
|
|
740
|
+
} & React__default.RefAttributes<View>>;
|
|
741
|
+
|
|
581
742
|
declare enum ElementCardStyle {
|
|
582
743
|
DEFAULT = "DEFAULT",
|
|
583
744
|
LIGHT = "LIGHT",
|
|
@@ -595,6 +756,14 @@ type ElementCardProps = {
|
|
|
595
756
|
trailing?: IconName;
|
|
596
757
|
/** Llamado al presionar el ícono de la derecha. Si no se pasa, el ícono no es táctil. */
|
|
597
758
|
onTrailingPress?: () => void;
|
|
759
|
+
/**
|
|
760
|
+
* Etiqueta de accesibilidad del ícono de la derecha. Obligatoria cuando hay
|
|
761
|
+
* `onTrailingPress`: sin ella el botón queda con `content-desc=""`, invisible
|
|
762
|
+
* para lectores de pantalla y para los selectores de tests E2E.
|
|
763
|
+
*/
|
|
764
|
+
trailingLabel?: string;
|
|
765
|
+
/** Alias para compatibilidad con algunos llamadores. */
|
|
766
|
+
trailingAccessibilityLabel?: string;
|
|
598
767
|
/** Elemento oculto/inactivo: atenúa la card. */
|
|
599
768
|
dimmed?: boolean;
|
|
600
769
|
style?: ElementCardStyle;
|
|
@@ -605,7 +774,7 @@ type ElementCardProps = {
|
|
|
605
774
|
/** Color del icono del elemento visual (opcional). */
|
|
606
775
|
visualIconColor?: string;
|
|
607
776
|
};
|
|
608
|
-
declare function ElementCard({ name, subtitle, icon, onPress, trailing, onTrailingPress, dimmed, style, containerStyle, visualBg, visualIconColor, }: ElementCardProps): React__default.JSX.Element;
|
|
777
|
+
declare function ElementCard({ name, subtitle, icon, onPress, trailing, onTrailingPress, trailingLabel, trailingAccessibilityLabel, dimmed, style, containerStyle, visualBg, visualIconColor, }: ElementCardProps): React__default.JSX.Element;
|
|
609
778
|
|
|
610
779
|
declare enum KeyValueListStyle {
|
|
611
780
|
DEFAULT = "DEFAULT",
|
|
@@ -864,6 +1033,40 @@ type ReverseHeaderCardLayoutProps = {
|
|
|
864
1033
|
};
|
|
865
1034
|
declare function ReverseHeaderCardLayout({ headerBackgroundColor, bodyBackgroundColor, header, children, style, }: ReverseHeaderCardLayoutProps): React__default.JSX.Element;
|
|
866
1035
|
|
|
1036
|
+
declare function isEmbeddedOverlayLocked(): boolean;
|
|
1037
|
+
|
|
1038
|
+
type InfoNoteTone = "light" | "dark";
|
|
1039
|
+
declare enum InfoNoteStatus {
|
|
1040
|
+
INFO = "INFO",
|
|
1041
|
+
WARNING = "WARNING",
|
|
1042
|
+
SUCCESS = "SUCCESS"
|
|
1043
|
+
}
|
|
1044
|
+
type InfoNoteAction = {
|
|
1045
|
+
label: string;
|
|
1046
|
+
icon?: IconName;
|
|
1047
|
+
onPress: () => void;
|
|
1048
|
+
accessibilityLabel?: string;
|
|
1049
|
+
};
|
|
1050
|
+
type InfoNoteProps = {
|
|
1051
|
+
title?: string;
|
|
1052
|
+
message: string;
|
|
1053
|
+
icon?: IconName;
|
|
1054
|
+
/** Estado semántico de la nota. Default: `INFO`. */
|
|
1055
|
+
status?: InfoNoteStatus;
|
|
1056
|
+
/** Acciones que se muestran debajo de la nota, alineadas a la izquierda. */
|
|
1057
|
+
actions?: InfoNoteAction[];
|
|
1058
|
+
/** Superficie sobre la que se pinta la nota. */
|
|
1059
|
+
tone?: InfoNoteTone;
|
|
1060
|
+
style?: StyleProp<ViewStyle>;
|
|
1061
|
+
};
|
|
1062
|
+
/**
|
|
1063
|
+
* Nota informativa compacta para formularios y selectores. El estado (`INFO`,
|
|
1064
|
+
* `WARNING`, `SUCCESS`) define el color de fondo, borde e icono; las acciones
|
|
1065
|
+
* usan el botón de alto contraste cuando la nota vive sobre una superficie
|
|
1066
|
+
* oscura.
|
|
1067
|
+
*/
|
|
1068
|
+
declare function InfoNote({ title, message, icon, status, actions, tone, style, }: InfoNoteProps): React__default.JSX.Element;
|
|
1069
|
+
|
|
867
1070
|
interface InputProps extends TextInputProps {
|
|
868
1071
|
icon?: IconName;
|
|
869
1072
|
/** Estilos aplicados al campo de texto interno (también cuando hay icono/ojito). */
|
|
@@ -967,10 +1170,13 @@ interface ToolsCardProps {
|
|
|
967
1170
|
}
|
|
968
1171
|
declare function ToolsCard({ tools, style }: ToolsCardProps): React__default.JSX.Element;
|
|
969
1172
|
|
|
1173
|
+
type TreeNodeKind = "group" | "item";
|
|
970
1174
|
type TreeNode = {
|
|
971
1175
|
id: string;
|
|
972
1176
|
code: string;
|
|
973
1177
|
name: string;
|
|
1178
|
+
/** Contenedor (grupo/cuenta título) o contenido (artículo/cuenta movimiento). */
|
|
1179
|
+
kind: TreeNodeKind;
|
|
974
1180
|
children: TreeNode[];
|
|
975
1181
|
};
|
|
976
1182
|
type TreeEditorMode = "view" | "edit";
|
|
@@ -996,9 +1202,17 @@ type TreeEditorProps = {
|
|
|
996
1202
|
onRequestEdit?: (node: TreeNode) => void;
|
|
997
1203
|
/** Called when the user confirms deletion of a node. When provided, the built-in removal is bypassed (the node is NOT deleted). */
|
|
998
1204
|
onRequestDelete?: (node: TreeNode) => void;
|
|
1205
|
+
/**
|
|
1206
|
+
* Menú de acciones en modo edición: `"menu"` (default) muestra el botón de
|
|
1207
|
+
* tres puntos por fila; `"longPress"` lo oculta. En ambos casos una pulsación
|
|
1208
|
+
* larga sobre la fila abre las acciones.
|
|
1209
|
+
*/
|
|
1210
|
+
nodeActions?: "menu" | "longPress";
|
|
1211
|
+
/** Toque corto en una hoja (nodo sin hijas). Los grupos siguen expandiendo/colapsando. */
|
|
1212
|
+
onPressNode?: (node: TreeNode) => void;
|
|
999
1213
|
style?: StyleProp<ViewStyle>;
|
|
1000
1214
|
};
|
|
1001
|
-
declare function createNode(code: string, name: string, children?: TreeNode[]): TreeNode;
|
|
1215
|
+
declare function createNode(code: string, name: string, children?: TreeNode[], kind?: TreeNodeKind): TreeNode;
|
|
1002
1216
|
declare function addChild(nodes: TreeNode[], parentId: string, node: TreeNode): TreeNode[];
|
|
1003
1217
|
declare function addSibling(nodes: TreeNode[], nodeId: string, node: TreeNode): TreeNode[];
|
|
1004
1218
|
declare function updateNode(nodes: TreeNode[], nodeId: string, patch: Partial<Pick<TreeNode, "code" | "name">>): TreeNode[];
|
|
@@ -1011,7 +1225,7 @@ declare function countNodes(nodes: TreeNode[]): number;
|
|
|
1011
1225
|
* expandida con su primer nivel visible.
|
|
1012
1226
|
*/
|
|
1013
1227
|
declare function buildInitialCollapsed(nodes: TreeNode[]): Record<string, boolean>;
|
|
1014
|
-
declare function TreeEditor({ value, onChange, mode, variant, collapsed: collapsedProp, onCollapsedChange, rootLabel, renderNode, onRequestAdd, onRequestEdit, onRequestDelete, style }: TreeEditorProps): React__default.JSX.Element;
|
|
1228
|
+
declare function TreeEditor({ value, onChange, mode, variant, collapsed: collapsedProp, onCollapsedChange, rootLabel, renderNode, onRequestAdd, onRequestEdit, onRequestDelete, nodeActions, onPressNode, style }: TreeEditorProps): React__default.JSX.Element;
|
|
1015
1229
|
|
|
1016
1230
|
interface TextFieldProps {
|
|
1017
1231
|
label: string;
|
|
@@ -1090,24 +1304,56 @@ interface EmptyStateProps {
|
|
|
1090
1304
|
}
|
|
1091
1305
|
declare function EmptyState({ icon, iconSize, title, caption, style }: EmptyStateProps): React__default.JSX.Element;
|
|
1092
1306
|
|
|
1307
|
+
type AppFormProps = {
|
|
1308
|
+
children: React__default.ReactNode;
|
|
1309
|
+
style?: StyleProp<ViewStyle>;
|
|
1310
|
+
};
|
|
1311
|
+
/**
|
|
1312
|
+
* Contenedor de un formulario dentro de un `BottomSheet`: el ritmo estándar
|
|
1313
|
+
* entre el card de campos y las notas que van debajo (gap 8, margen superior 8).
|
|
1314
|
+
*/
|
|
1315
|
+
declare function AppForm({ children, style }: AppFormProps): React__default.JSX.Element;
|
|
1316
|
+
|
|
1093
1317
|
type AppInputProps = {
|
|
1094
1318
|
label: string;
|
|
1095
1319
|
labelWidth?: number;
|
|
1320
|
+
/** Mensaje de error de validación: se muestra como caption roja debajo de la
|
|
1321
|
+
* fila. */
|
|
1322
|
+
error?: string;
|
|
1096
1323
|
};
|
|
1097
1324
|
type AppInputElement = ReactElement<AppInputProps>;
|
|
1098
1325
|
|
|
1326
|
+
type AppFormCardVariant = "filled" | "outlined" | "readOnly";
|
|
1327
|
+
type AppFormCardTone = "light" | "dark";
|
|
1099
1328
|
type AppFormCardProps = {
|
|
1100
1329
|
children: AppInputElement | AppInputElement[];
|
|
1101
1330
|
labelWidth?: number;
|
|
1331
|
+
/**
|
|
1332
|
+
* `readOnly` convierte el card en una lista de datos: sin superficie, borde
|
|
1333
|
+
* ni padding horizontal, con divisores a sangre. Se declara explícitamente
|
|
1334
|
+
* porque el estilo no debe depender de cómo se compongan los hijos
|
|
1335
|
+
* (wrappers, fragmentos o condicionales).
|
|
1336
|
+
*/
|
|
1337
|
+
variant?: AppFormCardVariant;
|
|
1338
|
+
/** Superficie del grupo. `dark` es para fichas de solo lectura sobre fondo oscuro. */
|
|
1339
|
+
tone?: AppFormCardTone;
|
|
1102
1340
|
style?: ViewStyle;
|
|
1103
1341
|
};
|
|
1104
|
-
declare function AppFormCard({ children, labelWidth, style }: AppFormCardProps): React__default.JSX.Element;
|
|
1342
|
+
declare function AppFormCard({ children, labelWidth, variant, tone, style, }: AppFormCardProps): React__default.JSX.Element;
|
|
1105
1343
|
|
|
1106
1344
|
type AppTextInputProps = AppInputProps & {
|
|
1107
1345
|
type?: "text";
|
|
1108
1346
|
value: string;
|
|
1109
|
-
/**
|
|
1110
|
-
*
|
|
1347
|
+
/**
|
|
1348
|
+
* Componente único para filas de input de `card-form`:
|
|
1349
|
+
* - editable (default): abre teclado.
|
|
1350
|
+
* - `readOnly`: no abre teclado; combinar con `onPress` (selector) o
|
|
1351
|
+
* `trailingAction` (escáner).
|
|
1352
|
+
* - `selectable`: fila de selección; cualquier toque dispara `onPress` y el
|
|
1353
|
+
* input no captura texto ni foco.
|
|
1354
|
+
* - `editable={false}`: fila deshabilitada; usar `trailingIcon` (p. ej. lock).
|
|
1355
|
+
* - `error`: pinta label y mensaje en rojo.
|
|
1356
|
+
*/
|
|
1111
1357
|
onChangeText?: (value: string) => void;
|
|
1112
1358
|
placeholder?: string;
|
|
1113
1359
|
autoCapitalize?: "none" | "sentences" | "words" | "characters";
|
|
@@ -1127,8 +1373,15 @@ type AppTextInputProps = AppInputProps & {
|
|
|
1127
1373
|
onPress: () => void;
|
|
1128
1374
|
accessibilityLabel?: string;
|
|
1129
1375
|
};
|
|
1376
|
+
/** Icono decorativo a la derecha (ej. `lock` en un campo bloqueado). */
|
|
1377
|
+
trailingIcon?: IconName;
|
|
1378
|
+
/**
|
|
1379
|
+
* Fila de selección: cualquier toque dispara `onPress` y el input no captura
|
|
1380
|
+
* texto ni foco. Requiere `onPress`.
|
|
1381
|
+
*/
|
|
1382
|
+
selectable?: boolean;
|
|
1130
1383
|
};
|
|
1131
|
-
declare function AppTextInput({ label, labelWidth, value, onChangeText, placeholder, autoCapitalize, keyboardType, maxLength, editable, readOnly, trailingAction, onPress: onPressOverride, }: AppTextInputProps): React__default.JSX.Element;
|
|
1384
|
+
declare function AppTextInput({ label, labelWidth, error, value, onChangeText, placeholder, autoCapitalize, keyboardType, maxLength, editable, readOnly, selectable, trailingAction, trailingIcon, onPress: onPressOverride, }: AppTextInputProps): React__default.JSX.Element;
|
|
1132
1385
|
|
|
1133
1386
|
type AppTextAreaProps = AppInputProps & {
|
|
1134
1387
|
value: string;
|
|
@@ -1139,7 +1392,7 @@ type AppTextAreaProps = AppInputProps & {
|
|
|
1139
1392
|
maxLength?: number;
|
|
1140
1393
|
editable?: boolean;
|
|
1141
1394
|
};
|
|
1142
|
-
declare function AppTextArea({ label, value, onChangeText, placeholder, autoCapitalize, keyboardType, maxLength, editable, }: AppTextAreaProps): React__default.JSX.Element;
|
|
1395
|
+
declare function AppTextArea({ label, error, value, onChangeText, placeholder, autoCapitalize, keyboardType, maxLength, editable, }: AppTextAreaProps): React__default.JSX.Element;
|
|
1143
1396
|
|
|
1144
1397
|
type AppSelectorOption = {
|
|
1145
1398
|
label: string;
|
|
@@ -1153,7 +1406,34 @@ type AppSelectorProps = AppInputProps & {
|
|
|
1153
1406
|
placeholder?: string;
|
|
1154
1407
|
disabled?: boolean;
|
|
1155
1408
|
};
|
|
1156
|
-
declare function AppSelector({ label, labelWidth, value, onChange, options, placeholder, disabled, }: AppSelectorProps): React__default.JSX.Element;
|
|
1409
|
+
declare function AppSelector({ label, labelWidth, error, value, onChange, options, placeholder, disabled, }: AppSelectorProps): React__default.JSX.Element;
|
|
1410
|
+
|
|
1411
|
+
type AppReadOnlyFieldTone = "light" | "dark";
|
|
1412
|
+
type AppReadOnlyFieldProps = {
|
|
1413
|
+
label: string;
|
|
1414
|
+
labelWidth?: number;
|
|
1415
|
+
value?: string | null;
|
|
1416
|
+
/** Texto cuando no hay valor (la app pasa su copy i18n; por defecto "—"). */
|
|
1417
|
+
emptyLabel?: string;
|
|
1418
|
+
onPress?: () => void;
|
|
1419
|
+
/** Campo bloqueado: el valor se pinta como dato fijo, no como placeholder, y
|
|
1420
|
+
* la fila anuncia el estado `disabled` al lector de pantalla. */
|
|
1421
|
+
disabled?: boolean;
|
|
1422
|
+
/** Icono decorativo al final de la fila (p. ej. `lock` en campos bloqueados). */
|
|
1423
|
+
trailingIcon?: IconName;
|
|
1424
|
+
/** Error de validación mostrado debajo de la fila, como en `AppTextInput`. */
|
|
1425
|
+
error?: string;
|
|
1426
|
+
/** Superficie sobre la que se pinta la fila. */
|
|
1427
|
+
tone?: AppReadOnlyFieldTone;
|
|
1428
|
+
accessibilityHint?: string;
|
|
1429
|
+
};
|
|
1430
|
+
/**
|
|
1431
|
+
* Fila de solo lectura con el mismo ritmo que `AppTextInput`: etiqueta a la
|
|
1432
|
+
* izquierda y valor a la derecha, sin apariencia de input. El label va en
|
|
1433
|
+
* negro y el valor en gris (dato fijo); si no hay valor, el `emptyLabel` baja
|
|
1434
|
+
* a Caption para que nunca se confunda con un valor escrito.
|
|
1435
|
+
*/
|
|
1436
|
+
declare function AppReadOnlyField({ label, labelWidth, value, emptyLabel, onPress, disabled, trailingIcon, error, tone, accessibilityHint, }: AppReadOnlyFieldProps): React__default.JSX.Element;
|
|
1157
1437
|
|
|
1158
1438
|
type AppToggleProps = AppInputProps & {
|
|
1159
1439
|
value: boolean;
|
|
@@ -1167,13 +1447,15 @@ type AppButtonProps = {
|
|
|
1167
1447
|
label: string;
|
|
1168
1448
|
onPress?: () => void;
|
|
1169
1449
|
disabled?: boolean;
|
|
1450
|
+
/** Muestra un spinner a la derecha del texto y bloquea el tap mientras dura. */
|
|
1451
|
+
loading?: boolean;
|
|
1170
1452
|
variant?: AppButtonVariant;
|
|
1171
1453
|
backgroundColor?: string;
|
|
1172
1454
|
textColor?: string;
|
|
1173
1455
|
borderColor?: string;
|
|
1174
1456
|
style?: ViewStyle;
|
|
1175
1457
|
};
|
|
1176
|
-
declare function AppButton({ label, onPress, disabled, variant, backgroundColor, textColor, borderColor, style, }: AppButtonProps): React__default.JSX.Element;
|
|
1458
|
+
declare function AppButton({ label, onPress, disabled, loading, variant, backgroundColor, textColor, borderColor, style, }: AppButtonProps): React__default.JSX.Element;
|
|
1177
1459
|
|
|
1178
1460
|
type KeyboardSafeScreenProps = {
|
|
1179
1461
|
children: React__default.ReactNode;
|
|
@@ -1269,13 +1551,30 @@ type MainLayoutProps = {
|
|
|
1269
1551
|
*/
|
|
1270
1552
|
declare function MainLayout({ children, backgroundColor, scroll, contentContainerStyle, style, }: MainLayoutProps): React__default.JSX.Element;
|
|
1271
1553
|
|
|
1554
|
+
/**
|
|
1555
|
+
* Matemática pura del motor de layout (`AppLayout`).
|
|
1556
|
+
*
|
|
1557
|
+
* Este módulo NO importa `react-native` ni toca el ciclo de vida de React: solo
|
|
1558
|
+
* derivaciones deterministas sobre el estado, las alturas naturales medidas y el
|
|
1559
|
+
* alto de ventana. Vive aparte para poder testearse en node (vitest) y para que
|
|
1560
|
+
* la lógica del motor deje de ser una caja negra embebida en el componente.
|
|
1561
|
+
*
|
|
1562
|
+
* Reglas del modelo (ver `APPLAYOUT.md`):
|
|
1563
|
+
* - Las secciones son dinámicas (`content`/`minFillRest`) o estáticas
|
|
1564
|
+
* (`fill`/`fillRest`/`third`/px). Solo las dinámicas se miden.
|
|
1565
|
+
* - El alto de una sección derivada nunca inventa colas ni overscans: la
|
|
1566
|
+
* cobertura del fondo se resuelve pintando el fondo del page con el color del
|
|
1567
|
+
* cuerpo/mid (`selectPageBackground`).
|
|
1568
|
+
* - El scroll se resetea al tope SOLO cuando cambia el nombre de ruta; los
|
|
1569
|
+
* cambios de contenido dentro de la misma ruta preservan la posición.
|
|
1570
|
+
*/
|
|
1272
1571
|
type SectionKey = "top" | "mid" | "bottom";
|
|
1273
1572
|
type HeightSpec = "content" | "fill" | "fillRest" | "minFillRest" | "third" | number;
|
|
1274
1573
|
type SlotName = "header" | "body" | "footer";
|
|
1275
1574
|
type SectionBehavior = {
|
|
1276
1575
|
/** Si la sección se renderiza. Default true. */
|
|
1277
1576
|
visible?: boolean;
|
|
1278
|
-
/** Cómo se determina su alto
|
|
1577
|
+
/** Cómo se determina su alto. `content`/`minFillRest` son dinámicas (se miden). Default "content". */
|
|
1279
1578
|
height?: HeightSpec;
|
|
1280
1579
|
/** La sección scrollea internamente (ScrollView propio). */
|
|
1281
1580
|
scroll?: boolean;
|
|
@@ -1285,7 +1584,7 @@ type SectionBehavior = {
|
|
|
1285
1584
|
fadeOnScroll?: boolean;
|
|
1286
1585
|
/** A qué slot de contenido está asociada (header/body/footer). */
|
|
1287
1586
|
slot?: SlotName;
|
|
1288
|
-
/** Para height "fillRest": de qué sección (su alto natural) se descuenta H. */
|
|
1587
|
+
/** Para height "fillRest"/"minFillRest": de qué sección (su alto natural) se descuenta H. */
|
|
1289
1588
|
restsOn?: SectionKey;
|
|
1290
1589
|
/** Color de fondo de la sección. */
|
|
1291
1590
|
backgroundColor?: string;
|
|
@@ -1304,6 +1603,15 @@ type AppRoute = {
|
|
|
1304
1603
|
/** Contenido por slot. Cada slot se renderiza en su sección mapeada. */
|
|
1305
1604
|
slots?: Partial<Record<SlotName, ReactNode>>;
|
|
1306
1605
|
};
|
|
1606
|
+
/**
|
|
1607
|
+
* Presets = las 5 variantes del motor, reutilizables por nombre.
|
|
1608
|
+
*
|
|
1609
|
+
* Nota: `bottom` ya NO estira la hoja con una cola artificial (`BODY_TAIL`).
|
|
1610
|
+
* La costura bajo la hoja la cubre `selectPageBackground` (fondo del page =
|
|
1611
|
+
* color de la última sección visible), no el alto de la sección.
|
|
1612
|
+
*/
|
|
1613
|
+
declare const layoutStates: Record<LayoutStateName, LayoutState>;
|
|
1614
|
+
|
|
1307
1615
|
type AppNavigation = {
|
|
1308
1616
|
navigate: (route: AppRoute) => void;
|
|
1309
1617
|
back: () => void;
|
|
@@ -1312,8 +1620,6 @@ type AppNavigation = {
|
|
|
1312
1620
|
stack: AppRoute[];
|
|
1313
1621
|
replace: (route: AppRoute) => void;
|
|
1314
1622
|
};
|
|
1315
|
-
/** Presets = las 5 variantes del motor, reutilizables por nombre. */
|
|
1316
|
-
declare const layoutStates: Record<LayoutStateName, LayoutState>;
|
|
1317
1623
|
declare function useAppNavigation(): AppNavigation;
|
|
1318
1624
|
type AppLayoutProps = {
|
|
1319
1625
|
initialRoute: AppRoute;
|
|
@@ -1333,8 +1639,45 @@ type AppLayoutProps = {
|
|
|
1333
1639
|
* transiciona y se desvanece al terminar. Default "always".
|
|
1334
1640
|
*/
|
|
1335
1641
|
contentReveal?: "always" | "after";
|
|
1642
|
+
/**
|
|
1643
|
+
* Enciende el log de instrumentación del motor a consola (equivale a
|
|
1644
|
+
* `EXPO_PUBLIC_LAYOUT_DEBUG=1` o a `__ANTONELLA_LAYOUT_DEBUG__(true)`).
|
|
1645
|
+
* El buffer de eventos se llena igual; ver `layoutDebug.ts`.
|
|
1646
|
+
*/
|
|
1647
|
+
debug?: boolean;
|
|
1336
1648
|
};
|
|
1337
|
-
|
|
1649
|
+
/**
|
|
1650
|
+
* Motor de layout por estados. Ver `APPLAYOUT.md`.
|
|
1651
|
+
*
|
|
1652
|
+
* Modelo de medición (robusto, sin heurísticas de valor):
|
|
1653
|
+
* - Cada sección dinámica (`content`/`minFillRest`) se mide con un PROXY
|
|
1654
|
+
* offscreen NO restringido (posición absoluta, alto auto, `opacity:0`,
|
|
1655
|
+
* `pointerEvents:none`). Al no fijarle alto, la medida es siempre la altura
|
|
1656
|
+
* intrínseca real: el artefacto del `flex:1` que medía ~32px de padding en el
|
|
1657
|
+
* contenedor visible es estructuralmente imposible, así que nunca se descarta
|
|
1658
|
+
* una medición legítima (no existe guard de umbral).
|
|
1659
|
+
* - El proxy vive FUERA del contenedor que recorta (`overflow:hidden`) durante
|
|
1660
|
+
* las transiciones, y se re-mide con `measure()` hasta estabilizar, para no
|
|
1661
|
+
* quedar con el alto "capado" por una animación de un descendiente.
|
|
1662
|
+
* - Los naturales medidos se cachean por nombre de ruta (`NaturalsSnapshot`).
|
|
1663
|
+
* Al volver a una ruta ya vista, se siembran sus naturales y el primer frame
|
|
1664
|
+
* se pinta con el alto correcto → sin "header distinto al volver".
|
|
1665
|
+
* - NUNCA se hereda el alto de otra pantalla: una ruta nunca vista se siembra
|
|
1666
|
+
* con un neutro derivado de la ventana, jamás con los naturales de la ruta
|
|
1667
|
+
* previa (sin "vestigios" entre pantallas).
|
|
1668
|
+
* - El scroll de página e interno se resetea al tope SOLO cuando cambia el
|
|
1669
|
+
* nombre de ruta; los cambios de contenido dentro de la misma ruta preservan
|
|
1670
|
+
* la posición.
|
|
1671
|
+
* - El fondo del page toma el color del cuerpo/mid (`selectPageBackground`) y
|
|
1672
|
+
* se interpola durante la transición: el lienzo no salta a negro antes de que
|
|
1673
|
+
* el header claro termine de contraerse, y no hace falta sobredimensionar el
|
|
1674
|
+
* body con colas.
|
|
1675
|
+
*
|
|
1676
|
+
* Contrato de slots dinámicos: el contenido de una sección `content`/
|
|
1677
|
+
* `minFillRest` se monta DOS veces (proxy + visible). Debe ser puro e
|
|
1678
|
+
* idempotente (sin efectos destructivos al montar).
|
|
1679
|
+
*/
|
|
1680
|
+
declare function AppLayout({ initialRoute, showBackButton, animateTransitions, contentReveal, debug, }: AppLayoutProps): React__default.JSX.Element;
|
|
1338
1681
|
|
|
1339
1682
|
type AppShellNavigation = {
|
|
1340
1683
|
/** Nombre de la ruta actual del shell (lockedRoute si está bloqueada). */
|
|
@@ -1390,6 +1733,35 @@ type DivisorProps = {
|
|
|
1390
1733
|
};
|
|
1391
1734
|
declare function Divisor({ position, color, baseColor, height, handle, extend, handleColor, style, }: DivisorProps): React__default.JSX.Element;
|
|
1392
1735
|
|
|
1736
|
+
/**
|
|
1737
|
+
* Instrumentación del motor de layout (`AppLayout`).
|
|
1738
|
+
*
|
|
1739
|
+
* Objetivo: poder ver, paso a paso, CÓMO se calcula cada pantalla —qué se mide,
|
|
1740
|
+
* cuánto, con qué naturales, qué targets se derivan y qué se aplica— sin tener
|
|
1741
|
+
* que adivinar. No cambia el comportamiento: solo observa.
|
|
1742
|
+
*
|
|
1743
|
+
* Dos formas de activarla:
|
|
1744
|
+
* 1. Variable de entorno `EXPO_PUBLIC_LAYOUT_DEBUG=1` (Metro la inyecta en el
|
|
1745
|
+
* bundle; requiere reiniciar el dev server tras definirla).
|
|
1746
|
+
* 2. En runtime, desde la consola del dev server / debugger:
|
|
1747
|
+
* `__ANTONELLA_LAYOUT_DEBUG__(true)`.
|
|
1748
|
+
*
|
|
1749
|
+
* El buffer de eventos (últimos 400) SIEMPRE se llena, esté o no activado el log
|
|
1750
|
+
* a consola. Para volcarlo:
|
|
1751
|
+
* `__ANTONELLA_LAYOUT_DUMP__()` → imprime el buffer y lo devuelve.
|
|
1752
|
+
* `__ANTONELLA_LAYOUT_LOG__` → el array crudo.
|
|
1753
|
+
*/
|
|
1754
|
+
type LayoutDebugEvent = {
|
|
1755
|
+
t: number;
|
|
1756
|
+
event: string;
|
|
1757
|
+
data?: Record<string, unknown>;
|
|
1758
|
+
};
|
|
1759
|
+
/** Activa/desactiva el log a consola en runtime. */
|
|
1760
|
+
declare function setLayoutDebug(on: boolean): void;
|
|
1761
|
+
declare function isLayoutDebug(): boolean;
|
|
1762
|
+
/** Registra un evento de layout (siempre en el buffer; a consola si está activo). */
|
|
1763
|
+
declare function layoutDebug(event: string, data?: Record<string, unknown>): void;
|
|
1764
|
+
|
|
1393
1765
|
/**
|
|
1394
1766
|
* Dirección de entrada/salida de una capa durante una transición.
|
|
1395
1767
|
* Es la pieza extensible del sistema: agregar un nuevo SheetKind solo
|
|
@@ -1589,4 +1961,4 @@ declare const AppIcon: {
|
|
|
1589
1961
|
readonly Inbox: IconName;
|
|
1590
1962
|
};
|
|
1591
1963
|
|
|
1592
|
-
export { ActionCard, type ActionCardProps, ActionCardStyle, type ActionTile, ActionTiles, type ActionTilesProps, ActionTilesStyle, AppBottomSheet, type AppBottomSheetProps, AppButton, type AppButtonProps, type AppButtonVariant, AppCheckItem, type AppCheckItemProps, type AppCheckItemStatus, AppDialogMode, type AppFilterChipOption, AppFilterChips, type AppFilterChipsProps, AppFormCard, type AppFormCardProps, AppIcon, type AppInputElement, type AppInputProps, AppLayout, type AppLayoutProps, type AppNavigation, type AppRoute, AppSelector, type AppSelectorOption, type AppSelectorProps, AppShell, type AppShellNavigation, type AppShellProps, AppTextArea, type AppTextAreaProps, AppTextHeader, type AppTextHeaderProps, AppTextInput, type AppTextInputProps, AppToggle, type AppToggleProps, Avatar, type AvatarProps, type AvatarSize, BarcodeScannerScreen, type BarcodeScannerScreenProps, type BaseColorKey, BottomSheet, type BottomSheetProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Calendar, type CalendarProps, CameraCaptureScreen, type CameraCaptureScreenProps, type CameraFacing, type CameraFlashMode, CameraHud, type CameraHudProps, CameraPermissionGate, type CameraPermissionGateProps, CameraScreenContainer, type CameraScreenContainerProps, type CapturePhoto, Card, type CardProps, CardTitle, type CardTitleProps, type CardVariant, Chip, type ChipProps, type ChipSize, ChipTabs, type ChipTabsOption, type ChipTabsProps, type ChipVariant, ColorCustomizerDialog, type ColorToken, ColorWheel, ComposingOrb, type Composition, DashboardShell, type DashboardShellProps, Divisor, type DivisorPosition, type DivisorProps, Dock, type DockItem, type DockProps, DonutChart, type DonutChartProps, type DonutSegment, DrawerMenu, DrawerMenuItem, type DrawerMenuItemProps, DrawerMenuItemStyle, type DrawerMenuItemType, type DrawerMenuProps, Dropdown, type DropdownOption, type DropdownProps, type DropdownState, ElementCard, type ElementCardProps, ElementCardStyle, EmptyState, type EmptyStateProps, FloatingActionButton, type FloatingActionButtonPosition, type FloatingActionButtonProps, HeaderCardLayout, type HeaderCardLayoutProps, type HeightSpec, type HostKey, HudIconButton, type HudIconButtonProps, Icon, type IconName, type IconProps, Input, type InputProps, Item, type ItemProps, ItemStyle, type KeyValueItem, KeyValueList, type KeyValueListProps, KeyValueListStyle, KeyboardSafeScreen, type KeyboardSafeScreenProps, Label, type LabelProps, LabelStyle, type LayerDirection, type LayerRole, LayoutColumn, LayoutRow, type LayoutState, type LayoutStateName, ListItem, type ListItemProps, ListItemStyle, MainLayout, type MainLayoutProps, Modal, type ModalProps, OptionListItem, type OptionListItemProps, OptionListItemVariant, PinKeypad, type PinKeypadProps, ProductCard, type ProductCardCart, type ProductCardProps, ProductCardStyle, ReverseHeaderCardLayout, type ReverseHeaderCardLayoutProps, type Route, type RouteOptions, type ScanResult, SearchBar, type SearchBarProps, SearchBarStyle, type SectionBehavior, SectionHeader, type SectionHeaderProps, SectionHeaderStyle, type SectionKey, SectionTitle, type SectionTitleProps, Sheet, type SheetKind, SheetLayout, type SheetLayoutProps, type SheetProps, SheetSlot, type SheetSlotProps, ShortcutCard, type ShortcutCardProps, ShortcutCardStyle, type ShortcutItem, ShutterButton, type SidebarItem, type SidebarSection, type SidebarType, Skeleton, SkeletonCard, type SkeletonCardProps, SkeletonCircle, type SkeletonCircleProps, type SkeletonProps, type SkeletonShape, SkeletonText, type SkeletonTextProps, type SlotName, SplitColorCard, SplitDarknessCard, SplitTextCard, StackDetails, type StackDetailsAction, type StackDetailsProps, type StackDetailsRow, StackDetailsStyle, StateMessage, type StateMessageProps, StateMessageStyle, StateMessageType, TOAST_DEFAULT_DURATION_MS, TabNavigation, type TabNavigationOption, type TabNavigationProps, TabNavigationStyle, Text, TextField, type TextFieldProps, type TextProps, type TextVariant, Toast, type ToastOptions, type ToastProps, ToastProvider, ToastStyle, ToastTone, type ToolItem, ToolsCard, type ToolsCardProps, TopAction, type TopActionProps, TopActionStyle, TopBar, type TopBarProps, type TransitionSpec, TreeEditor, type TreeEditorMode, type TreeEditorProps, type TreeEditorVariant, type TreeNode, addChild, addSibling, buildInitialCollapsed, countNodes, createNode, directionSign, findNode, hasCode, hostDirection, iconMap, layoutStates, removeNode, resolveComposition, resolveTransition, updateNode, useAppNavigation, useAppShell, useSheetLayout, useToast };
|
|
1964
|
+
export { ActionCard, type ActionCardProps, ActionCardStyle, type ActionTile, ActionTiles, type ActionTilesProps, ActionTilesStyle, AppBottomSheet, type AppBottomSheetProps, AppButton, type AppButtonProps, type AppButtonVariant, AppCheckItem, type AppCheckItemProps, type AppCheckItemStatus, AppDialogMode, type AppFilterChipOption, AppFilterChips, type AppFilterChipsProps, AppForm, AppFormCard, type AppFormCardProps, type AppFormCardTone, type AppFormCardVariant, type AppFormProps, AppIcon, type AppInputElement, type AppInputProps, AppLayout, type AppLayoutProps, type AppNavigation, AppReadOnlyField, type AppReadOnlyFieldProps, type AppReadOnlyFieldTone, type AppRoute, AppSelector, type AppSelectorOption, type AppSelectorProps, AppShell, type AppShellNavigation, type AppShellProps, AppStepIndicator, type AppStepIndicatorProps, AppTextArea, type AppTextAreaProps, AppTextHeader, type AppTextHeaderProps, AppTextInput, type AppTextInputProps, AppToggle, type AppToggleProps, Avatar, type AvatarProps, type AvatarSize, BarcodeScannerScreen, type BarcodeScannerScreenProps, type BaseColorKey, BottomDialog, type BottomDialogProps, BottomSheet, type BottomSheetProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Calendar, type CalendarProps, CameraCaptureScreen, type CameraCaptureScreenProps, type CameraFacing, type CameraFlashMode, CameraHud, type CameraHudProps, CameraPermissionGate, type CameraPermissionGateProps, CameraScreenContainer, type CameraScreenContainerProps, type CapturePhoto, Card, type CardProps, CardTitle, type CardTitleProps, type CardVariant, Chip, type ChipProps, type ChipSize, ChipTabs, type ChipTabsOption, type ChipTabsProps, type ChipVariant, ColorCustomizerDialog, type ColorToken, ColorWheel, ComposingOrb, type Composition, DashboardShell, type DashboardShellProps, Divisor, type DivisorPosition, type DivisorProps, Dock, type DockItem, type DockProps, DonutChart, type DonutChartProps, type DonutSegment, DrawerMenu, DrawerMenuItem, type DrawerMenuItemProps, DrawerMenuItemStyle, type DrawerMenuItemType, type DrawerMenuProps, Dropdown, type DropdownOption, type DropdownProps, type DropdownState, ElementCard, type ElementCardProps, ElementCardStyle, EmptyState, type EmptyStateProps, FloatingActionButton, type FloatingActionButtonPosition, type FloatingActionButtonProps, HeaderCardLayout, type HeaderCardLayoutProps, type HeightSpec, type HostKey, HudIconButton, type HudIconButtonProps, Icon, type IconName, type IconProps, InfoNote, type InfoNoteAction, type InfoNoteProps, InfoNoteStatus, type InfoNoteTone, Input, type InputProps, Item, type ItemProps, ItemStyle, type KeyValueItem, KeyValueList, type KeyValueListProps, KeyValueListStyle, KeyboardSafeScreen, type KeyboardSafeScreenProps, Label, type LabelProps, LabelStyle, type LayerDirection, type LayerRole, LayoutColumn, type LayoutDebugEvent, LayoutRow, type LayoutState, type LayoutStateName, ListItem, type ListItemProps, ListItemStyle, MainLayout, type MainLayoutProps, Modal, type ModalProps, OptionListItem, type OptionListItemProps, OptionListItemVariant, PinKeypad, type PinKeypadProps, type PressEvent, type PressKind, type PressObserver, type PressTracking, ProductCard, type ProductCardCart, type ProductCardProps, ProductCardStyle, PropertySummary, type PropertySummaryItem, type PropertySummaryProps, ReverseHeaderCardLayout, type ReverseHeaderCardLayoutProps, type Route, type RouteOptions, type ScanResult, ScreenOverlay, type ScreenOverlayProps, SearchBar, type SearchBarProps, SearchBarStyle, type SectionBehavior, SectionHeader, type SectionHeaderProps, SectionHeaderStyle, type SectionKey, SectionTitle, type SectionTitleProps, SelectableTable, type SelectableTableColumn, type SelectableTableItem, type SelectableTableProps, type SelectableTableRowAction, Sheet, type SheetKind, SheetLayout, type SheetLayoutProps, type SheetProps, SheetSlot, type SheetSlotProps, ShortcutCard, type ShortcutCardProps, ShortcutCardStyle, type ShortcutItem, ShutterButton, type SidebarItem, type SidebarSection, type SidebarType, Skeleton, SkeletonCard, type SkeletonCardProps, SkeletonCircle, type SkeletonCircleProps, type SkeletonProps, type SkeletonShape, SkeletonText, type SkeletonTextProps, type SlotName, SplitColorCard, SplitDarknessCard, SplitTextCard, StackDetails, type StackDetailsAction, type StackDetailsProps, type StackDetailsRow, StackDetailsStyle, StateMessage, type StateMessageProps, StateMessageStyle, StateMessageType, TOAST_DEFAULT_DURATION_MS, TabNavigation, type TabNavigationOption, type TabNavigationProps, TabNavigationStyle, Text, TextField, type TextFieldProps, type TextProps, type TextVariant, Toast, type ToastOptions, type ToastProps, ToastProvider, ToastStyle, ToastTone, type ToolItem, ToolsCard, type ToolsCardProps, TopAction, type TopActionProps, TopActionStyle, TopBar, type TopBarProps, TrackedPressable, type TrackedPressableProps, type TransitionSpec, TreeEditor, type TreeEditorMode, type TreeEditorProps, type TreeEditorVariant, type TreeNode, type TreeNodeKind, addChild, addSibling, buildInitialCollapsed, countNodes, createNode, directionSign, emitPress, findNode, getPressObserver, hasCode, hostDirection, iconMap, isEmbeddedOverlayLocked, isLayoutDebug, layoutDebug, layoutStates, removeNode, resolveComposition, resolveTransition, setLayoutDebug, setPressObserver, updateNode, useAppNavigation, useAppShell, useSheetLayout, useToast };
|