@william-callao/antonella-ui 1.0.3 → 1.0.5
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 +641 -138
- package/dist/index.js +4622 -2263
- package/package.json +37 -33
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import React__default, { ComponentType, ReactNode, ReactElement } from 'react';
|
|
2
3
|
import { StyleProp, ViewStyle, PressableProps, ViewProps, TextStyle, TextInputProps, KeyboardTypeOptions, TextProps as TextProps$1, ScrollViewProps } from 'react-native';
|
|
3
|
-
import React, { ComponentType, ReactNode, ReactElement } from 'react';
|
|
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';
|
|
7
|
+
import { CameraType, FlashMode, BarcodeType } from 'expo-camera';
|
|
7
8
|
|
|
8
9
|
type AvatarSize = "sm" | "md" | "lg";
|
|
9
10
|
type AvatarProps = {
|
|
@@ -12,7 +13,7 @@ type AvatarProps = {
|
|
|
12
13
|
size?: AvatarSize;
|
|
13
14
|
style?: StyleProp<ViewStyle>;
|
|
14
15
|
};
|
|
15
|
-
declare function Avatar({ name, email, size, style }: AvatarProps):
|
|
16
|
+
declare function Avatar({ name, email, size, style }: AvatarProps): React__default.JSX.Element;
|
|
16
17
|
|
|
17
18
|
type ButtonVariant = "primary" | "secondary" | "ghost" | "danger";
|
|
18
19
|
type ButtonSize = "sm" | "md" | "lg";
|
|
@@ -24,12 +25,12 @@ interface ButtonProps extends Omit<PressableProps, "style"> {
|
|
|
24
25
|
/** Muestra un spinner centrado en lugar del label (y deshabilita el botón). */
|
|
25
26
|
loading?: boolean;
|
|
26
27
|
}
|
|
27
|
-
declare function Button({ label, variant, size, style, disabled, loading, android_ripple, ...rest }: ButtonProps):
|
|
28
|
+
declare function Button({ label, variant, size, style, disabled, loading, android_ripple, ...rest }: ButtonProps): React__default.JSX.Element;
|
|
28
29
|
|
|
29
30
|
interface CalendarProps extends ViewProps {
|
|
30
31
|
date?: Date;
|
|
31
32
|
}
|
|
32
|
-
declare function Calendar({ date, style, ...rest }: CalendarProps):
|
|
33
|
+
declare function Calendar({ date, style, ...rest }: CalendarProps): React__default.JSX.Element;
|
|
33
34
|
|
|
34
35
|
type CardVariant = "default" | "line";
|
|
35
36
|
interface CardProps extends ViewProps {
|
|
@@ -40,16 +41,16 @@ interface CardProps extends ViewProps {
|
|
|
40
41
|
loading?: boolean;
|
|
41
42
|
skeletonHeight?: number;
|
|
42
43
|
}
|
|
43
|
-
declare function Card({ background: bgOverride, loading, skeletonHeight, variant, style, children, ...rest }: CardProps):
|
|
44
|
+
declare function Card({ background: bgOverride, loading, skeletonHeight, variant, style, children, ...rest }: CardProps): React__default.JSX.Element;
|
|
44
45
|
|
|
45
46
|
interface CardTitleProps {
|
|
46
47
|
title: string;
|
|
47
48
|
subtitle?: string;
|
|
48
49
|
style?: ViewStyle;
|
|
49
50
|
}
|
|
50
|
-
declare function CardTitle({ title, subtitle, style }: CardTitleProps):
|
|
51
|
+
declare function CardTitle({ title, subtitle, style }: CardTitleProps): React__default.JSX.Element;
|
|
51
52
|
|
|
52
|
-
type IconName = "home" | "home-filled" | "mail" | "mail-filled" | "calendar" | "calendar-filled" | "bar-chart" | "bar-chart-filled" | "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";
|
|
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
54
|
declare const iconMap: Record<IconName, ComponentType<{
|
|
54
55
|
size?: number;
|
|
55
56
|
color?: string;
|
|
@@ -62,7 +63,7 @@ type IconProps = {
|
|
|
62
63
|
style?: object;
|
|
63
64
|
testID?: string;
|
|
64
65
|
};
|
|
65
|
-
declare function Icon({ name, size, color, style, testID }: IconProps):
|
|
66
|
+
declare function Icon({ name, size, color, style, testID }: IconProps): React.JSX.Element;
|
|
66
67
|
|
|
67
68
|
type ChipVariant = "subtle" | "solid" | "outlined";
|
|
68
69
|
type ChipSize = "sm" | "md";
|
|
@@ -78,7 +79,7 @@ type ChipProps = {
|
|
|
78
79
|
textStyle?: StyleProp<TextStyle>;
|
|
79
80
|
onPress?: () => void;
|
|
80
81
|
};
|
|
81
|
-
declare function Chip({ label, color, backgroundColor, variant, size, icon, uppercase, style, textStyle, onPress, }: ChipProps):
|
|
82
|
+
declare function Chip({ label, color, backgroundColor, variant, size, icon, uppercase, style, textStyle, onPress, }: ChipProps): React__default.JSX.Element;
|
|
82
83
|
|
|
83
84
|
declare enum ItemStyle {
|
|
84
85
|
DEFAULT = "DEFAULT",
|
|
@@ -102,22 +103,49 @@ type ItemProps = {
|
|
|
102
103
|
selectedBg: string;
|
|
103
104
|
};
|
|
104
105
|
};
|
|
105
|
-
declare function Item({ icon, label, onPress, selected, style, colors: overrideColors, }: ItemProps):
|
|
106
|
+
declare function Item({ icon, label, onPress, selected, style, colors: overrideColors, }: ItemProps): React__default.JSX.Element;
|
|
106
107
|
|
|
107
|
-
type
|
|
108
|
+
type ChipTabsOption = {
|
|
108
109
|
icon: IconName;
|
|
109
110
|
label: string;
|
|
110
111
|
value: string;
|
|
111
112
|
};
|
|
112
|
-
type
|
|
113
|
-
options:
|
|
113
|
+
type ChipTabsProps = {
|
|
114
|
+
options: ChipTabsOption[];
|
|
114
115
|
selected?: string;
|
|
115
116
|
onSelect?: (value: string) => void;
|
|
116
117
|
style?: ItemStyle;
|
|
117
118
|
/** Cuando es true, los items se reparten el ancho completo (flex: 1) sin scroll horizontal. */
|
|
118
119
|
fullWidth?: boolean;
|
|
119
120
|
};
|
|
120
|
-
declare function
|
|
121
|
+
declare function ChipTabs({ options, selected: controlledSelected, onSelect, style, fullWidth, }: ChipTabsProps): React__default.JSX.Element;
|
|
122
|
+
|
|
123
|
+
declare enum LabelStyle {
|
|
124
|
+
DEFAULT = "DEFAULT",
|
|
125
|
+
LIGHT = "LIGHT",
|
|
126
|
+
DARKNESS = "DARKNESS"
|
|
127
|
+
}
|
|
128
|
+
type LabelProps = {
|
|
129
|
+
label: string;
|
|
130
|
+
/** Icono opcional a la izquierda del texto (16). */
|
|
131
|
+
icon?: IconName;
|
|
132
|
+
/** Estado seleccionado: pinta el relleno en vez del borde solo. */
|
|
133
|
+
selected?: boolean;
|
|
134
|
+
onPress?: () => void;
|
|
135
|
+
style?: LabelStyle;
|
|
136
|
+
/** Override de estilo de la propia label (p. ej. `flex: 1` para repartir
|
|
137
|
+
* espacio en un contenedor de distribución). */
|
|
138
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
139
|
+
accessibilityLabel?: string;
|
|
140
|
+
};
|
|
141
|
+
declare function Label({ label, icon, selected, onPress, style, containerStyle, accessibilityLabel, }: LabelProps): React__default.JSX.Element;
|
|
142
|
+
|
|
143
|
+
interface SectionTitleProps {
|
|
144
|
+
title: string;
|
|
145
|
+
description?: string;
|
|
146
|
+
style?: ViewStyle;
|
|
147
|
+
}
|
|
148
|
+
declare function SectionTitle({ title, description, style }: SectionTitleProps): React__default.JSX.Element;
|
|
121
149
|
|
|
122
150
|
declare enum SearchBarStyle {
|
|
123
151
|
DEFAULT = "DEFAULT",
|
|
@@ -133,25 +161,42 @@ type SearchBarProps = {
|
|
|
133
161
|
bgColor?: string;
|
|
134
162
|
onFocus?: () => void;
|
|
135
163
|
onBlur?: () => void;
|
|
164
|
+
/** Tipo de tecla de retorno del teclado (ej: "search" para mostrar "Buscar"). */
|
|
165
|
+
returnKeyType?: TextInputProps["returnKeyType"];
|
|
166
|
+
/** Se dispara al presionar la tecla de retorno del teclado. */
|
|
167
|
+
onSubmitEditing?: TextInputProps["onSubmitEditing"];
|
|
168
|
+
/** Al presionar retorno, pierde el foco (default true de TextInput). */
|
|
169
|
+
blurOnSubmit?: boolean;
|
|
170
|
+
autoFocus?: boolean;
|
|
136
171
|
};
|
|
137
|
-
declare function SearchBar({ placeholder, value, onChangeText, style, icon, bgColor, onFocus, onBlur, }: SearchBarProps):
|
|
172
|
+
declare function SearchBar({ placeholder, value, onChangeText, style, icon, bgColor, onFocus, onBlur, returnKeyType, onSubmitEditing, blurOnSubmit, autoFocus, }: SearchBarProps): React__default.JSX.Element;
|
|
138
173
|
|
|
139
|
-
declare enum
|
|
174
|
+
declare enum TopActionStyle {
|
|
140
175
|
DEFAULT = "DEFAULT",
|
|
141
176
|
DARKNESS = "DARKNESS"
|
|
142
177
|
}
|
|
143
|
-
type
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
178
|
+
type TopActionProps = {
|
|
179
|
+
icon: IconName;
|
|
180
|
+
onPress: () => void;
|
|
181
|
+
style?: TopActionStyle;
|
|
182
|
+
/** Override de colores (opcional). */
|
|
183
|
+
colors?: Partial<{
|
|
184
|
+
buttonBg: string;
|
|
185
|
+
buttonPressedBg: string;
|
|
186
|
+
iconColor: string;
|
|
187
|
+
}>;
|
|
188
|
+
/** Radio de esquinas del botón (opcional, por defecto 24). */
|
|
189
|
+
borderRadius?: number;
|
|
190
|
+
/** Label de accesibilidad del botón. */
|
|
152
191
|
accessibilityLabel?: string;
|
|
153
192
|
};
|
|
154
|
-
declare function
|
|
193
|
+
declare function TopAction({ icon, onPress, style, colors, borderRadius, accessibilityLabel, }: TopActionProps): React__default.JSX.Element;
|
|
194
|
+
|
|
195
|
+
type TopBarProps = {
|
|
196
|
+
children?: React__default.ReactNode;
|
|
197
|
+
style?: ViewStyle;
|
|
198
|
+
};
|
|
199
|
+
declare function TopBar({ children, style }: TopBarProps): React__default.JSX.Element;
|
|
155
200
|
|
|
156
201
|
declare enum StateMessageType {
|
|
157
202
|
LOADING = "LOADING",
|
|
@@ -160,7 +205,10 @@ declare enum StateMessageType {
|
|
|
160
205
|
}
|
|
161
206
|
declare enum StateMessageStyle {
|
|
162
207
|
DEFAULT = "DEFAULT",
|
|
163
|
-
|
|
208
|
+
LIGHT = "LIGHT",
|
|
209
|
+
WHITE = "WHITE",
|
|
210
|
+
DARKNESS = "DARKNESS",
|
|
211
|
+
SECONDARY = "SECONDARY"
|
|
164
212
|
}
|
|
165
213
|
type StateMessageProps = {
|
|
166
214
|
/** Qué estado representa el mensaje. */
|
|
@@ -176,7 +224,7 @@ type StateMessageProps = {
|
|
|
176
224
|
onAction?: () => void;
|
|
177
225
|
style?: StateMessageStyle;
|
|
178
226
|
};
|
|
179
|
-
declare function StateMessage({ state, icon, title, message, actionLabel, onAction, style, }: StateMessageProps):
|
|
227
|
+
declare function StateMessage({ state, icon, title, message, actionLabel, onAction, style, }: StateMessageProps): React__default.JSX.Element;
|
|
180
228
|
|
|
181
229
|
declare enum DrawerMenuItemStyle {
|
|
182
230
|
DEFAULT = "DEFAULT",
|
|
@@ -189,22 +237,38 @@ type DrawerMenuItemProps = {
|
|
|
189
237
|
selected?: boolean;
|
|
190
238
|
style?: DrawerMenuItemStyle;
|
|
191
239
|
};
|
|
192
|
-
declare function DrawerMenuItem({ icon, label, onPress, selected, style, }: DrawerMenuItemProps):
|
|
240
|
+
declare function DrawerMenuItem({ icon, label, onPress, selected, style, }: DrawerMenuItemProps): React__default.JSX.Element;
|
|
193
241
|
|
|
194
|
-
declare enum
|
|
242
|
+
declare enum SectionHeaderStyle {
|
|
195
243
|
DEFAULT = "DEFAULT",
|
|
196
244
|
LIGHT = "LIGHT",
|
|
197
245
|
DARKNESS = "DARKNESS"
|
|
198
246
|
}
|
|
199
|
-
type
|
|
247
|
+
type SectionHeaderProps = {
|
|
200
248
|
title: string;
|
|
249
|
+
/** Texto secundario debajo del título (opcional). */
|
|
250
|
+
subtitle?: string;
|
|
251
|
+
/** Sin descripción: si es `true` no se renderiza la descripción (ni siquiera
|
|
252
|
+
* el placeholder). En su defecto (false), si no se pasa `subtitle` se reserva
|
|
253
|
+
* su espacio con un placeholder invisible (texto "mv" en el color del fondo
|
|
254
|
+
* del contexto darkness) para que las filas sin descripción mantengan el alto
|
|
255
|
+
* de las que sí tienen. Por defecto false. */
|
|
256
|
+
hideDescription?: boolean;
|
|
201
257
|
action?: string;
|
|
202
258
|
onAction?: () => void;
|
|
203
|
-
|
|
259
|
+
/** Ícono opcional a la derecha de la acción (edición, configuración, agregar, etc.). */
|
|
260
|
+
actionIcon?: IconName;
|
|
261
|
+
/** Handler del ícono. Si no se pasa, usa onAction. */
|
|
262
|
+
onActionIcon?: () => void;
|
|
263
|
+
style?: SectionHeaderStyle;
|
|
264
|
+
/** Padding horizontal de la fila (si no se pasa, 0). */
|
|
265
|
+
horizontalPadding?: number;
|
|
266
|
+
/** Override de estilo para la fila contenedora (p. ej. quitar el marginBottom por defecto). */
|
|
267
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
204
268
|
};
|
|
205
|
-
declare function
|
|
269
|
+
declare function SectionHeader({ title, subtitle, hideDescription, action, onAction, actionIcon, onActionIcon, style, horizontalPadding, containerStyle, }: SectionHeaderProps): React__default.JSX.Element;
|
|
206
270
|
|
|
207
|
-
type
|
|
271
|
+
type SheetProps = {
|
|
208
272
|
visible: boolean;
|
|
209
273
|
onClose: () => void;
|
|
210
274
|
dismissible?: boolean;
|
|
@@ -212,23 +276,58 @@ type BottomSheetProps = {
|
|
|
212
276
|
icon?: IconName;
|
|
213
277
|
title?: string;
|
|
214
278
|
caption?: string;
|
|
215
|
-
children:
|
|
279
|
+
children: React__default.ReactNode;
|
|
216
280
|
contentStyle?: StyleProp<ViewStyle>;
|
|
217
281
|
snapPoints?: Array<string | number>;
|
|
282
|
+
/** Zona de acciones fija al pie del sheet. */
|
|
283
|
+
actions?: React__default.ReactNode;
|
|
284
|
+
/**
|
|
285
|
+
* Renderiza el sheet SIN envolverlo en un RN Modal, para poder montarlo dentro
|
|
286
|
+
* de un host modal nativo (p.ej. un screen `transparentModal` de expo-router),
|
|
287
|
+
* donde anidar otro Modal rompería el edge-to-edge.
|
|
288
|
+
*/
|
|
289
|
+
embedded?: boolean;
|
|
290
|
+
};
|
|
291
|
+
declare function Sheet({ visible, onClose, dismissible, showCloseButton, icon, title, caption, children, contentStyle, snapPoints, actions, embedded, }: SheetProps): React__default.JSX.Element;
|
|
292
|
+
|
|
293
|
+
declare enum AppDialogMode {
|
|
294
|
+
Dismissable = "dismissable",
|
|
295
|
+
Required = "required"
|
|
296
|
+
}
|
|
297
|
+
type BottomSheetProps = {
|
|
298
|
+
visible: boolean;
|
|
299
|
+
onClose: () => void;
|
|
300
|
+
mode?: AppDialogMode;
|
|
301
|
+
icon?: IconName;
|
|
302
|
+
title?: string;
|
|
303
|
+
caption?: string;
|
|
304
|
+
children: React__default.ReactNode;
|
|
305
|
+
contentStyle?: React__default.ComponentProps<typeof Sheet>["contentStyle"];
|
|
306
|
+
snapPoints?: React__default.ComponentProps<typeof Sheet>["snapPoints"];
|
|
307
|
+
/** Zona de acciones fija al pie del diálogo (botones, etc.). */
|
|
308
|
+
actions?: React__default.ReactNode;
|
|
309
|
+
/** Monta el diálogo sin RN Modal (para hosts modales nativos tipo expo-router). */
|
|
310
|
+
embedded?: boolean;
|
|
218
311
|
};
|
|
219
|
-
declare function BottomSheet({ visible, onClose,
|
|
312
|
+
declare function BottomSheet({ visible, onClose, mode, icon, title, caption, children, contentStyle, snapPoints, actions, embedded, }: BottomSheetProps): React__default.JSX.Element;
|
|
220
313
|
|
|
221
|
-
type
|
|
314
|
+
type AppBottomSheetProps = {
|
|
222
315
|
visible: boolean;
|
|
223
316
|
onClose: () => void;
|
|
224
317
|
dismissible?: boolean;
|
|
225
|
-
children:
|
|
318
|
+
children: React__default.ReactNode;
|
|
226
319
|
contentStyle?: StyleProp<ViewStyle>;
|
|
227
320
|
snapPoints?: Array<string | number>;
|
|
228
321
|
/** Color del área semitransparente del sheet (fondo entre y bajo las cards). */
|
|
229
322
|
areaColor?: string;
|
|
323
|
+
/**
|
|
324
|
+
* Renderiza el sheet SIN envolverlo en un RN Modal, para poder montarlo dentro
|
|
325
|
+
* de un host modal nativo (p.ej. un screen `transparentModal` de expo-router),
|
|
326
|
+
* donde anidar otro Modal rompería el edge-to-edge.
|
|
327
|
+
*/
|
|
328
|
+
embedded?: boolean;
|
|
230
329
|
};
|
|
231
|
-
declare function
|
|
330
|
+
declare function AppBottomSheet({ visible, onClose, dismissible, children, contentStyle, snapPoints, areaColor, embedded, }: AppBottomSheetProps): React__default.JSX.Element;
|
|
232
331
|
|
|
233
332
|
declare enum OptionListItemVariant {
|
|
234
333
|
Default = "default",
|
|
@@ -246,7 +345,7 @@ type OptionListItemProps = {
|
|
|
246
345
|
showSeparator?: boolean;
|
|
247
346
|
style?: StyleProp<ViewStyle>;
|
|
248
347
|
};
|
|
249
|
-
declare function OptionListItem({ icon, title, description, onPress, variant, trailing, iconColor, showSeparator, style, }: OptionListItemProps):
|
|
348
|
+
declare function OptionListItem({ icon, title, description, onPress, variant, trailing, iconColor, showSeparator, style, }: OptionListItemProps): React__default.JSX.Element;
|
|
250
349
|
|
|
251
350
|
declare enum ToastTone {
|
|
252
351
|
Success = "success",
|
|
@@ -268,7 +367,7 @@ type ToastProps = {
|
|
|
268
367
|
/** Padding superior (p. ej. insets.top) para que el fondo se extienda por detrás de la status bar. */
|
|
269
368
|
topInset?: number;
|
|
270
369
|
};
|
|
271
|
-
declare function Toast({ message, tone, style, onClose, containerStyle, topInset, }: ToastProps):
|
|
370
|
+
declare function Toast({ message, tone, style, onClose, containerStyle, topInset, }: ToastProps): React__default.JSX.Element;
|
|
272
371
|
|
|
273
372
|
declare const TOAST_DEFAULT_DURATION_MS = 3000;
|
|
274
373
|
type ToastOptions = {
|
|
@@ -283,7 +382,7 @@ type ToastContextValue = {
|
|
|
283
382
|
declare function useToast(): ToastContextValue;
|
|
284
383
|
declare function ToastProvider({ children }: {
|
|
285
384
|
children: ReactNode;
|
|
286
|
-
}):
|
|
385
|
+
}): React__default.JSX.Element;
|
|
287
386
|
|
|
288
387
|
type ModalProps = {
|
|
289
388
|
visible: boolean;
|
|
@@ -293,27 +392,18 @@ type ModalProps = {
|
|
|
293
392
|
icon?: IconName;
|
|
294
393
|
title?: string;
|
|
295
394
|
caption?: string;
|
|
296
|
-
children:
|
|
395
|
+
children: React__default.ReactNode;
|
|
297
396
|
contentStyle?: StyleProp<ViewStyle>;
|
|
397
|
+
/** Zona de acciones fija al pie del modal. */
|
|
398
|
+
actions?: React__default.ReactNode;
|
|
399
|
+
/**
|
|
400
|
+
* Renderiza el modal SIN envolverlo en un RN Modal, para poder montarlo dentro
|
|
401
|
+
* de un host modal nativo (p.ej. un screen `transparentModal` de expo-router),
|
|
402
|
+
* donde anidar otro Modal rompería el edge-to-edge.
|
|
403
|
+
*/
|
|
404
|
+
embedded?: boolean;
|
|
298
405
|
};
|
|
299
|
-
declare function Modal({ visible, onClose, dismissible, showCloseButton, icon, title, caption, children, contentStyle, }: ModalProps):
|
|
300
|
-
|
|
301
|
-
declare enum AppDialogMode {
|
|
302
|
-
Dismissable = "dismissable",
|
|
303
|
-
Required = "required"
|
|
304
|
-
}
|
|
305
|
-
type AppResponsiveDialogProps = {
|
|
306
|
-
visible: boolean;
|
|
307
|
-
onClose: () => void;
|
|
308
|
-
mode?: AppDialogMode;
|
|
309
|
-
icon?: IconName;
|
|
310
|
-
title?: string;
|
|
311
|
-
caption?: string;
|
|
312
|
-
children: React.ReactNode;
|
|
313
|
-
contentStyle?: React.ComponentProps<typeof BottomSheet>["contentStyle"];
|
|
314
|
-
snapPoints?: React.ComponentProps<typeof BottomSheet>["snapPoints"];
|
|
315
|
-
};
|
|
316
|
-
declare function AppResponsiveDialog({ visible, onClose, mode, icon, title, caption, children, contentStyle, snapPoints, }: AppResponsiveDialogProps): react_jsx_runtime.JSX.Element;
|
|
406
|
+
declare function Modal({ visible, onClose, dismissible, showCloseButton, icon, title, caption, children, contentStyle, actions, embedded, }: ModalProps): React__default.JSX.Element;
|
|
317
407
|
|
|
318
408
|
type AppFilterChipOption = {
|
|
319
409
|
label: string;
|
|
@@ -325,7 +415,7 @@ type AppFilterChipsProps = {
|
|
|
325
415
|
onChange?: (value: string) => void;
|
|
326
416
|
style?: StyleProp<ViewStyle>;
|
|
327
417
|
};
|
|
328
|
-
declare function AppFilterChips({ options, value, onChange, style }: AppFilterChipsProps):
|
|
418
|
+
declare function AppFilterChips({ options, value, onChange, style }: AppFilterChipsProps): React__default.JSX.Element;
|
|
329
419
|
|
|
330
420
|
type PinKeypadProps = {
|
|
331
421
|
value: string;
|
|
@@ -334,7 +424,7 @@ type PinKeypadProps = {
|
|
|
334
424
|
pinLength?: number;
|
|
335
425
|
style?: StyleProp<ViewStyle>;
|
|
336
426
|
};
|
|
337
|
-
declare function PinKeypad({ value, onChange, onComplete, pinLength, style }: PinKeypadProps):
|
|
427
|
+
declare function PinKeypad({ value, onChange, onComplete, pinLength, style }: PinKeypadProps): React.JSX.Element;
|
|
338
428
|
|
|
339
429
|
type AppCheckItemStatus = "pending" | "ok" | "not-ok";
|
|
340
430
|
type AppCheckItemProps = {
|
|
@@ -351,7 +441,7 @@ type AppCheckItemProps = {
|
|
|
351
441
|
onCommentChange?: (comment: string) => void;
|
|
352
442
|
style?: StyleProp<ViewStyle>;
|
|
353
443
|
};
|
|
354
|
-
declare function AppCheckItem({ label, description, value, comment, hasMessages, noActions, readOnly, onOpenMessages, onPress, onChange, onCommentChange, style, }: AppCheckItemProps):
|
|
444
|
+
declare function AppCheckItem({ label, description, value, comment, hasMessages, noActions, readOnly, onOpenMessages, onPress, onChange, onCommentChange, style, }: AppCheckItemProps): React__default.JSX.Element;
|
|
355
445
|
|
|
356
446
|
type DonutSegment = {
|
|
357
447
|
/** Fracción del anillo (0-1) que ocupa el segmento. */
|
|
@@ -364,9 +454,9 @@ interface DonutChartProps extends ViewProps {
|
|
|
364
454
|
segments: DonutSegment[];
|
|
365
455
|
trackColor?: string;
|
|
366
456
|
startAngle?: number;
|
|
367
|
-
children?:
|
|
457
|
+
children?: React__default.ReactNode;
|
|
368
458
|
}
|
|
369
|
-
declare function DonutChart({ size, thickness, segments, trackColor, startAngle, style, children, ...rest }: DonutChartProps):
|
|
459
|
+
declare function DonutChart({ size, thickness, segments, trackColor, startAngle, style, children, ...rest }: DonutChartProps): React__default.JSX.Element;
|
|
370
460
|
|
|
371
461
|
type SidebarItem = {
|
|
372
462
|
id: string;
|
|
@@ -387,9 +477,9 @@ type SidebarSection = {
|
|
|
387
477
|
type SidebarType = "responsive" | "full" | "icon";
|
|
388
478
|
type DashboardShellProps = {
|
|
389
479
|
sections: SidebarSection[];
|
|
390
|
-
sidebarHeader?:
|
|
391
|
-
sidebarFooter?:
|
|
392
|
-
topBar?:
|
|
480
|
+
sidebarHeader?: React__default.ReactNode;
|
|
481
|
+
sidebarFooter?: React__default.ReactNode;
|
|
482
|
+
topBar?: React__default.ReactNode;
|
|
393
483
|
title?: string;
|
|
394
484
|
brand?: string;
|
|
395
485
|
logoutLabel?: string;
|
|
@@ -398,10 +488,10 @@ type DashboardShellProps = {
|
|
|
398
488
|
themeMode?: "light" | "dark";
|
|
399
489
|
tokens?: Partial<DashboardShellTokens>;
|
|
400
490
|
selectedItemId?: string;
|
|
401
|
-
children:
|
|
491
|
+
children: React__default.ReactNode;
|
|
402
492
|
};
|
|
403
493
|
|
|
404
|
-
declare function DashboardShell({ sections, sidebarHeader, sidebarFooter, topBar, title, brand, logoutLabel, onLogout, type, themeMode, tokens, selectedItemId, children, }: DashboardShellProps):
|
|
494
|
+
declare function DashboardShell({ sections, sidebarHeader, sidebarFooter, topBar, title, brand, logoutLabel, onLogout, type, themeMode, tokens, selectedItemId, children, }: DashboardShellProps): React.JSX.Element;
|
|
405
495
|
|
|
406
496
|
type DockItem = {
|
|
407
497
|
icon: IconName;
|
|
@@ -418,13 +508,13 @@ type DockProps = {
|
|
|
418
508
|
* El componente se provee desde afuera via `renderAgentOrb`.
|
|
419
509
|
*/
|
|
420
510
|
agentMode?: boolean;
|
|
421
|
-
renderAgentOrb?:
|
|
511
|
+
renderAgentOrb?: React__default.ComponentType<{
|
|
422
512
|
size: number;
|
|
423
513
|
paused: boolean;
|
|
424
514
|
}>;
|
|
425
515
|
style?: StyleProp<ViewStyle>;
|
|
426
516
|
};
|
|
427
|
-
declare function Dock({ items, selectedIndex, onSelect, visible, agentMode, renderAgentOrb, style }: DockProps):
|
|
517
|
+
declare function Dock({ items, selectedIndex, onSelect, visible, agentMode, renderAgentOrb, style }: DockProps): React__default.JSX.Element;
|
|
428
518
|
|
|
429
519
|
type DrawerMenuItemType = {
|
|
430
520
|
icon?: IconName;
|
|
@@ -438,19 +528,144 @@ type DrawerMenuProps = {
|
|
|
438
528
|
side?: "left" | "right";
|
|
439
529
|
width?: number;
|
|
440
530
|
items?: DrawerMenuItemType[];
|
|
441
|
-
header?:
|
|
442
|
-
footer?:
|
|
531
|
+
header?: React__default.ReactNode;
|
|
532
|
+
footer?: React__default.ReactNode;
|
|
443
533
|
dismissible?: boolean;
|
|
444
534
|
customizable?: boolean;
|
|
445
535
|
itemStyle?: DrawerMenuItemStyle;
|
|
446
536
|
};
|
|
447
|
-
declare function DrawerMenu({ visible, onClose, side, width: widthProp, items, header, footer, dismissible, customizable, itemStyle, }: DrawerMenuProps):
|
|
537
|
+
declare function DrawerMenu({ visible, onClose, side, width: widthProp, items, header, footer, dismissible, customizable, itemStyle, }: DrawerMenuProps): React__default.JSX.Element;
|
|
538
|
+
|
|
539
|
+
declare enum ListItemStyle {
|
|
540
|
+
DEFAULT = "DEFAULT",
|
|
541
|
+
LIGHT = "LIGHT",
|
|
542
|
+
DARKNESS = "DARKNESS"
|
|
543
|
+
}
|
|
544
|
+
type ListItemProps = {
|
|
545
|
+
title: string;
|
|
546
|
+
subtitle?: string;
|
|
547
|
+
onPress: () => void;
|
|
548
|
+
trailing?: IconName;
|
|
549
|
+
style?: ListItemStyle;
|
|
550
|
+
/** Ítem oculto/inactivo: atenúa la fila y el subtitle. */
|
|
551
|
+
dimmed?: boolean;
|
|
552
|
+
/** Línea divisoria inferior. */
|
|
553
|
+
separator?: boolean;
|
|
554
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
555
|
+
};
|
|
556
|
+
declare function ListItem({ title, subtitle, onPress, trailing, style, dimmed, separator, containerStyle, }: ListItemProps): React__default.JSX.Element;
|
|
557
|
+
|
|
558
|
+
declare enum ProductCardStyle {
|
|
559
|
+
DEFAULT = "DEFAULT",
|
|
560
|
+
LIGHT = "LIGHT",
|
|
561
|
+
DARKNESS = "DARKNESS"
|
|
562
|
+
}
|
|
563
|
+
type ProductCardCart = {
|
|
564
|
+
quantity?: number;
|
|
565
|
+
unitPrice?: string;
|
|
566
|
+
code?: string;
|
|
567
|
+
};
|
|
568
|
+
type ProductCardProps = {
|
|
569
|
+
name: string;
|
|
570
|
+
price?: string;
|
|
571
|
+
code?: string;
|
|
572
|
+
cart?: ProductCardCart;
|
|
573
|
+
maxQuantity?: number;
|
|
574
|
+
onQuantityChange?: (quantity: number) => void;
|
|
575
|
+
imageIcon?: IconName;
|
|
576
|
+
style?: ProductCardStyle;
|
|
577
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
578
|
+
};
|
|
579
|
+
declare function ProductCard({ name, price, code, cart, maxQuantity, onQuantityChange, imageIcon, style, containerStyle, }: ProductCardProps): React__default.JSX.Element;
|
|
580
|
+
|
|
581
|
+
declare enum ElementCardStyle {
|
|
582
|
+
DEFAULT = "DEFAULT",
|
|
583
|
+
LIGHT = "LIGHT",
|
|
584
|
+
DARKNESS = "DARKNESS"
|
|
585
|
+
}
|
|
586
|
+
type ElementCardProps = {
|
|
587
|
+
name: string;
|
|
588
|
+
/** Texto secundario debajo del nombre (opcional). */
|
|
589
|
+
subtitle?: string;
|
|
590
|
+
/** Ícono del placeholder que identifica el tipo de elemento (por defecto "folder"). */
|
|
591
|
+
icon?: IconName;
|
|
592
|
+
/** Llamado al presionar la card. */
|
|
593
|
+
onPress?: () => void;
|
|
594
|
+
/** Ícono a la derecha (por defecto "chevron-forward"). */
|
|
595
|
+
trailing?: IconName;
|
|
596
|
+
/** Llamado al presionar el ícono de la derecha. Si no se pasa, el ícono no es táctil. */
|
|
597
|
+
onTrailingPress?: () => void;
|
|
598
|
+
/** Elemento oculto/inactivo: atenúa la card. */
|
|
599
|
+
dimmed?: boolean;
|
|
600
|
+
style?: ElementCardStyle;
|
|
601
|
+
/** Override de estilo para el card contenedor. */
|
|
602
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
603
|
+
/** Fondo del elemento visual (TopAction) a la izquierda (opcional). */
|
|
604
|
+
visualBg?: string;
|
|
605
|
+
/** Color del icono del elemento visual (opcional). */
|
|
606
|
+
visualIconColor?: string;
|
|
607
|
+
};
|
|
608
|
+
declare function ElementCard({ name, subtitle, icon, onPress, trailing, onTrailingPress, dimmed, style, containerStyle, visualBg, visualIconColor, }: ElementCardProps): React__default.JSX.Element;
|
|
609
|
+
|
|
610
|
+
declare enum KeyValueListStyle {
|
|
611
|
+
DEFAULT = "DEFAULT",
|
|
612
|
+
LIGHT = "LIGHT",
|
|
613
|
+
DARKNESS = "DARKNESS"
|
|
614
|
+
}
|
|
615
|
+
type KeyValueItem = {
|
|
616
|
+
/** Texto de la columna izquierda (la clave). */
|
|
617
|
+
label: string;
|
|
618
|
+
/** Texto de la columna derecha (el valor). */
|
|
619
|
+
value?: string;
|
|
620
|
+
/** Ícono al final de la fila, táctil (p. ej. un "close" para quitar la fila). */
|
|
621
|
+
actionIcon?: IconName;
|
|
622
|
+
/** Llamado al presionar el ícono de acción. */
|
|
623
|
+
onAction?: () => void;
|
|
624
|
+
/** Llamado al presionar la fila completa. */
|
|
625
|
+
onPress?: () => void;
|
|
626
|
+
};
|
|
627
|
+
type KeyValueListProps = {
|
|
628
|
+
items: KeyValueItem[];
|
|
629
|
+
style?: KeyValueListStyle;
|
|
630
|
+
/** Override de estilo para el contenedor. */
|
|
631
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
632
|
+
};
|
|
633
|
+
declare function KeyValueList({ items, style, containerStyle, }: KeyValueListProps): React__default.JSX.Element | null;
|
|
634
|
+
|
|
635
|
+
declare enum StackDetailsStyle {
|
|
636
|
+
DEFAULT = "DEFAULT",
|
|
637
|
+
LIGHT = "LIGHT",
|
|
638
|
+
DARKNESS = "DARKNESS"
|
|
639
|
+
}
|
|
640
|
+
type StackDetailsAction = {
|
|
641
|
+
/** Ícono de la acción, táctil (p. ej. "pencil" para editar o "trash" para eliminar). */
|
|
642
|
+
icon: IconName;
|
|
643
|
+
/** Llamado al presionar el ícono de acción. */
|
|
644
|
+
onPress: () => void;
|
|
645
|
+
};
|
|
646
|
+
type StackDetailsRow = {
|
|
647
|
+
/** Texto de la columna izquierda (la clave). */
|
|
648
|
+
label: string;
|
|
649
|
+
/** Texto de la columna derecha (el valor). */
|
|
650
|
+
value?: string;
|
|
651
|
+
/** Si se pasa, la fila es presionable y muestra un chevron al final. */
|
|
652
|
+
onPress?: () => void;
|
|
653
|
+
/** Íconos de acción al final de la fila (editar, eliminar, desasignar...). */
|
|
654
|
+
actions?: StackDetailsAction[];
|
|
655
|
+
};
|
|
656
|
+
type StackDetailsProps = {
|
|
657
|
+
rows: StackDetailsRow[];
|
|
658
|
+
style?: StackDetailsStyle;
|
|
659
|
+
/** Override de estilo para el contenedor. */
|
|
660
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
661
|
+
};
|
|
662
|
+
declare function StackDetails({ rows, style, containerStyle, }: StackDetailsProps): React__default.JSX.Element | null;
|
|
448
663
|
|
|
449
664
|
type ColorWheelProps = {
|
|
450
665
|
onPress: () => void;
|
|
451
666
|
size?: number;
|
|
452
667
|
};
|
|
453
|
-
declare function ColorWheel({ onPress, size }: ColorWheelProps):
|
|
668
|
+
declare function ColorWheel({ onPress, size }: ColorWheelProps): React__default.JSX.Element;
|
|
454
669
|
|
|
455
670
|
type ColorToken = {
|
|
456
671
|
/** Nombre legible del token (ej: "Fondo panel") */
|
|
@@ -470,7 +685,7 @@ type ColorCustomizerDialogProps = {
|
|
|
470
685
|
tokens: ColorToken[];
|
|
471
686
|
onTokenChange: (key: string, value: string) => void;
|
|
472
687
|
};
|
|
473
|
-
declare function ColorCustomizerDialog({ visible, onClose, componentName, tokens, onTokenChange, }: ColorCustomizerDialogProps):
|
|
688
|
+
declare function ColorCustomizerDialog({ visible, onClose, componentName, tokens, onTokenChange, }: ColorCustomizerDialogProps): React__default.JSX.Element;
|
|
474
689
|
|
|
475
690
|
interface ComposingOrbProps {
|
|
476
691
|
/** Rendered size in points. Default 64. */
|
|
@@ -497,7 +712,108 @@ interface ComposingOrbProps {
|
|
|
497
712
|
set(value: number): void;
|
|
498
713
|
};
|
|
499
714
|
}
|
|
500
|
-
declare function ComposingOrb({ size, style, accessibilityLabel, ...rest }: ComposingOrbProps):
|
|
715
|
+
declare function ComposingOrb({ size, style, accessibilityLabel, ...rest }: ComposingOrbProps): React.JSX.Element;
|
|
716
|
+
|
|
717
|
+
declare enum ActionTilesStyle {
|
|
718
|
+
DEFAULT = "DEFAULT",
|
|
719
|
+
LIGHT = "LIGHT",
|
|
720
|
+
DARKNESS = "DARKNESS"
|
|
721
|
+
}
|
|
722
|
+
type ActionTile = {
|
|
723
|
+
icon: IconName;
|
|
724
|
+
label: string;
|
|
725
|
+
onPress?: () => void;
|
|
726
|
+
/** true pinta ícono y texto en color de peligro (acciones destructivas). */
|
|
727
|
+
destructive?: boolean;
|
|
728
|
+
accessibilityLabel?: string;
|
|
729
|
+
};
|
|
730
|
+
type ActionTilesProps = {
|
|
731
|
+
actions: ActionTile[];
|
|
732
|
+
style?: ActionTilesStyle;
|
|
733
|
+
/** Margin horizontal del contenedor (si no se pasa, 0). Inserta el card completo. */
|
|
734
|
+
horizontalMargin?: number;
|
|
735
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
736
|
+
};
|
|
737
|
+
declare function ActionTiles({ actions, style, horizontalMargin, containerStyle }: ActionTilesProps): React__default.JSX.Element;
|
|
738
|
+
|
|
739
|
+
declare enum ActionCardStyle {
|
|
740
|
+
DEFAULT = "DEFAULT",
|
|
741
|
+
LIGHT = "LIGHT",
|
|
742
|
+
DARKNESS = "DARKNESS"
|
|
743
|
+
}
|
|
744
|
+
type ActionCardProps = {
|
|
745
|
+
/** Alto del card en píxeles. */
|
|
746
|
+
height: number;
|
|
747
|
+
/** Ancho del card en píxeles. Si no se pasa, el card reparte el espacio disponible (flex). */
|
|
748
|
+
width?: number;
|
|
749
|
+
/** Ícono tipado del design system, pequeño arriba a la derecha. */
|
|
750
|
+
icon: IconName;
|
|
751
|
+
/** Texto grande inferior izquierdo (acción). */
|
|
752
|
+
label: string;
|
|
753
|
+
/** Texto pequeño tenue sobre el label. */
|
|
754
|
+
caption?: string;
|
|
755
|
+
style?: ActionCardStyle;
|
|
756
|
+
onPress?: () => void;
|
|
757
|
+
accessibilityLabel?: string;
|
|
758
|
+
/** Override de estilo para el card contenedor. */
|
|
759
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
760
|
+
};
|
|
761
|
+
declare function ActionCard({ height, width, icon, label, caption, style, onPress, accessibilityLabel, containerStyle, }: ActionCardProps): React__default.JSX.Element;
|
|
762
|
+
|
|
763
|
+
declare enum ShortcutCardStyle {
|
|
764
|
+
DEFAULT = "DEFAULT",
|
|
765
|
+
LIGHT = "LIGHT",
|
|
766
|
+
DARKNESS = "DARKNESS"
|
|
767
|
+
}
|
|
768
|
+
type ShortcutItem = {
|
|
769
|
+
icon: IconName;
|
|
770
|
+
label: string;
|
|
771
|
+
onPress?: () => void;
|
|
772
|
+
accessibilityLabel?: string;
|
|
773
|
+
};
|
|
774
|
+
type ShortcutCardProps = {
|
|
775
|
+
/** Atajos a mostrar dentro de la card (se reparten el ancho en una fila). */
|
|
776
|
+
shortcuts: ShortcutItem[];
|
|
777
|
+
/** Diámetro del círculo (por defecto 44). */
|
|
778
|
+
circleSize?: number;
|
|
779
|
+
/** Tamaño del ícono (por defecto 20). */
|
|
780
|
+
iconSize?: number;
|
|
781
|
+
style?: ShortcutCardStyle;
|
|
782
|
+
/** Override de estilo para la card contenedora. */
|
|
783
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
784
|
+
};
|
|
785
|
+
declare function ShortcutCard({ shortcuts, circleSize, iconSize, style, containerStyle, }: ShortcutCardProps): React__default.JSX.Element;
|
|
786
|
+
|
|
787
|
+
declare enum TabNavigationStyle {
|
|
788
|
+
DEFAULT = "DEFAULT",
|
|
789
|
+
LIGHT = "LIGHT",
|
|
790
|
+
DARKNESS = "DARKNESS"
|
|
791
|
+
}
|
|
792
|
+
type TabNavigationOption = {
|
|
793
|
+
value: string;
|
|
794
|
+
label: string;
|
|
795
|
+
icon?: IconName;
|
|
796
|
+
};
|
|
797
|
+
type TabNavigationProps = {
|
|
798
|
+
options: TabNavigationOption[];
|
|
799
|
+
selected?: string;
|
|
800
|
+
onSelect?: (value: string) => void;
|
|
801
|
+
style?: TabNavigationStyle;
|
|
802
|
+
/** Fuerza el modo de reparto sin medir. `true` reparte el espacio en partes
|
|
803
|
+
* iguales siempre (equivalente al modo fit, útil cuando se sabe que las
|
|
804
|
+
* opciones son pocas y deben llenar el ancho); `false` fuerza scroll
|
|
805
|
+
* horizontal con las chips a ancho natural. Si no se pasa, el componente
|
|
806
|
+
* mide el ancho natural de las chips y decide solo: fit si entran, scroll si
|
|
807
|
+
* se desbordan. */
|
|
808
|
+
fits?: boolean;
|
|
809
|
+
/** Margin horizontal del contenedor (si no se pasa, 0). Cuando las opciones
|
|
810
|
+
* caben (fit) inserta el bar desde los costados del sitio de uso; si se
|
|
811
|
+
* desbordan (scroll) el bar va a ancho completo y el margen se reparte como
|
|
812
|
+
* colchones internos del contenido: margen izquierdo en la primera chip y
|
|
813
|
+
* margen derecho en la última. */
|
|
814
|
+
horizontalMargin?: number;
|
|
815
|
+
};
|
|
816
|
+
declare function TabNavigation({ options, selected: controlledSelected, onSelect, style, fits, horizontalMargin, }: TabNavigationProps): React__default.JSX.Element;
|
|
501
817
|
|
|
502
818
|
type DropdownOption = {
|
|
503
819
|
label: string;
|
|
@@ -518,7 +834,7 @@ type DropdownProps = {
|
|
|
518
834
|
maxHeight?: number;
|
|
519
835
|
disabled?: boolean;
|
|
520
836
|
};
|
|
521
|
-
declare function Dropdown({ value, placeholder, options, onChange, style, maxHeight, disabled, }: DropdownProps):
|
|
837
|
+
declare function Dropdown({ value, placeholder, options, onChange, style, maxHeight, disabled, }: DropdownProps): React__default.JSX.Element;
|
|
522
838
|
|
|
523
839
|
type FloatingActionButtonPosition = "bottom-right" | "bottom-left";
|
|
524
840
|
interface FloatingActionButtonProps {
|
|
@@ -528,25 +844,25 @@ interface FloatingActionButtonProps {
|
|
|
528
844
|
position?: FloatingActionButtonPosition;
|
|
529
845
|
style?: StyleProp<ViewStyle>;
|
|
530
846
|
}
|
|
531
|
-
declare function FloatingActionButton({ icon, onPress, position, style, }: FloatingActionButtonProps):
|
|
847
|
+
declare function FloatingActionButton({ icon, onPress, position, style, }: FloatingActionButtonProps): React__default.JSX.Element;
|
|
532
848
|
|
|
533
849
|
type HeaderCardLayoutProps = {
|
|
534
850
|
headerBackgroundColor?: string;
|
|
535
851
|
bodyBackgroundColor?: string;
|
|
536
|
-
header:
|
|
537
|
-
children:
|
|
852
|
+
header: React__default.ReactNode;
|
|
853
|
+
children: React__default.ReactNode;
|
|
538
854
|
style?: StyleProp<ViewStyle>;
|
|
539
855
|
};
|
|
540
|
-
declare function HeaderCardLayout({ headerBackgroundColor, bodyBackgroundColor, header, children, style, }: HeaderCardLayoutProps):
|
|
856
|
+
declare function HeaderCardLayout({ headerBackgroundColor, bodyBackgroundColor, header, children, style, }: HeaderCardLayoutProps): React__default.JSX.Element;
|
|
541
857
|
|
|
542
858
|
type ReverseHeaderCardLayoutProps = {
|
|
543
859
|
headerBackgroundColor?: string;
|
|
544
860
|
bodyBackgroundColor?: string;
|
|
545
|
-
header:
|
|
546
|
-
children:
|
|
861
|
+
header: React__default.ReactNode;
|
|
862
|
+
children: React__default.ReactNode;
|
|
547
863
|
style?: StyleProp<ViewStyle>;
|
|
548
864
|
};
|
|
549
|
-
declare function ReverseHeaderCardLayout({ headerBackgroundColor, bodyBackgroundColor, header, children, style, }: ReverseHeaderCardLayoutProps):
|
|
865
|
+
declare function ReverseHeaderCardLayout({ headerBackgroundColor, bodyBackgroundColor, header, children, style, }: ReverseHeaderCardLayoutProps): React__default.JSX.Element;
|
|
550
866
|
|
|
551
867
|
interface InputProps extends TextInputProps {
|
|
552
868
|
icon?: IconName;
|
|
@@ -558,7 +874,7 @@ interface InputProps extends TextInputProps {
|
|
|
558
874
|
* (errores de validación previos a consultar el backend). */
|
|
559
875
|
error?: string;
|
|
560
876
|
}
|
|
561
|
-
declare function Input({ style, inputStyle, placeholderTextColor, icon, showToggle, error, secureTextEntry, onFocus, onBlur, ...rest }: InputProps):
|
|
877
|
+
declare function Input({ style, inputStyle, placeholderTextColor, icon, showToggle, error, secureTextEntry, onFocus, onBlur, ...rest }: InputProps): React__default.JSX.Element;
|
|
562
878
|
|
|
563
879
|
type LayoutRowChildProps = {
|
|
564
880
|
size?: LayoutRowSize;
|
|
@@ -571,9 +887,9 @@ type LayoutRowProps = {
|
|
|
571
887
|
gap?: number;
|
|
572
888
|
padding?: number;
|
|
573
889
|
} & ViewProps;
|
|
574
|
-
declare function LayoutRowFirst({ size, scroll, children }: LayoutRowChildProps):
|
|
575
|
-
declare function LayoutRowSecond({ size, scroll, children }: LayoutRowChildProps):
|
|
576
|
-
declare function LayoutRow({ debug, fill, gap, padding, style, children, ...rest }: LayoutRowProps):
|
|
890
|
+
declare function LayoutRowFirst({ size, scroll, children }: LayoutRowChildProps): React__default.JSX.Element;
|
|
891
|
+
declare function LayoutRowSecond({ size, scroll, children }: LayoutRowChildProps): React__default.JSX.Element;
|
|
892
|
+
declare function LayoutRow({ debug, fill, gap, padding, style, children, ...rest }: LayoutRowProps): React__default.JSX.Element;
|
|
577
893
|
declare namespace LayoutRow {
|
|
578
894
|
var First: typeof LayoutRowFirst;
|
|
579
895
|
var Second: typeof LayoutRowSecond;
|
|
@@ -590,9 +906,9 @@ type LayoutColumnProps = {
|
|
|
590
906
|
gap?: number;
|
|
591
907
|
padding?: number;
|
|
592
908
|
} & ViewProps;
|
|
593
|
-
declare function LayoutColumnFirst({ size, scroll, children }: LayoutColumnChildProps):
|
|
594
|
-
declare function LayoutColumnSecond({ size, scroll, children }: LayoutColumnChildProps):
|
|
595
|
-
declare function LayoutColumn({ debug, fill, gap, padding, style, children, ...rest }: LayoutColumnProps):
|
|
909
|
+
declare function LayoutColumnFirst({ size, scroll, children }: LayoutColumnChildProps): React__default.JSX.Element;
|
|
910
|
+
declare function LayoutColumnSecond({ size, scroll, children }: LayoutColumnChildProps): React__default.JSX.Element;
|
|
911
|
+
declare function LayoutColumn({ debug, fill, gap, padding, style, children, ...rest }: LayoutColumnProps): React__default.JSX.Element;
|
|
596
912
|
declare namespace LayoutColumn {
|
|
597
913
|
var First: typeof LayoutColumnFirst;
|
|
598
914
|
var Second: typeof LayoutColumnSecond;
|
|
@@ -610,7 +926,7 @@ interface SkeletonProps {
|
|
|
610
926
|
shape?: SkeletonShape;
|
|
611
927
|
style?: StyleProp<ViewStyle>;
|
|
612
928
|
}
|
|
613
|
-
declare function Skeleton({ width, height, borderRadius, shape, style, }: SkeletonProps):
|
|
929
|
+
declare function Skeleton({ width, height, borderRadius, shape, style, }: SkeletonProps): React__default.JSX.Element;
|
|
614
930
|
|
|
615
931
|
interface SkeletonTextProps {
|
|
616
932
|
/** Ancho de la línea: número (px) o string (ej. "100%", "60%"). */
|
|
@@ -619,14 +935,14 @@ interface SkeletonTextProps {
|
|
|
619
935
|
height?: number;
|
|
620
936
|
style?: StyleProp<ViewStyle>;
|
|
621
937
|
}
|
|
622
|
-
declare function SkeletonText({ width, height, style, }: SkeletonTextProps):
|
|
938
|
+
declare function SkeletonText({ width, height, style, }: SkeletonTextProps): React__default.JSX.Element;
|
|
623
939
|
|
|
624
940
|
interface SkeletonCircleProps {
|
|
625
941
|
/** Diámetro del círculo en px (default 32, imita iconos/avatares). */
|
|
626
942
|
size?: number;
|
|
627
943
|
style?: StyleProp<ViewStyle>;
|
|
628
944
|
}
|
|
629
|
-
declare function SkeletonCircle({ size, style }: SkeletonCircleProps):
|
|
945
|
+
declare function SkeletonCircle({ size, style }: SkeletonCircleProps): React__default.JSX.Element;
|
|
630
946
|
|
|
631
947
|
interface SkeletonCardProps extends ViewProps {
|
|
632
948
|
/** Altura mínima del frame (útil cuando el esqueleto aún no define contenido). */
|
|
@@ -637,7 +953,7 @@ interface SkeletonCardProps extends ViewProps {
|
|
|
637
953
|
* (`SkeletonText`, `SkeletonCircle`) como hijos. El frame NO anima: los
|
|
638
954
|
* bloques internos son los que pulsan.
|
|
639
955
|
*/
|
|
640
|
-
declare function SkeletonCard({ height, style, children, ...rest }: SkeletonCardProps):
|
|
956
|
+
declare function SkeletonCard({ height, style, children, ...rest }: SkeletonCardProps): React__default.JSX.Element;
|
|
641
957
|
|
|
642
958
|
interface ToolItem {
|
|
643
959
|
id: string;
|
|
@@ -649,7 +965,7 @@ interface ToolsCardProps {
|
|
|
649
965
|
tools: ToolItem[];
|
|
650
966
|
style?: ViewStyle;
|
|
651
967
|
}
|
|
652
|
-
declare function ToolsCard({ tools, style }: ToolsCardProps):
|
|
968
|
+
declare function ToolsCard({ tools, style }: ToolsCardProps): React__default.JSX.Element;
|
|
653
969
|
|
|
654
970
|
type TreeNode = {
|
|
655
971
|
id: string;
|
|
@@ -673,7 +989,7 @@ type TreeEditorProps = {
|
|
|
673
989
|
/** Etiqueta del botón de agregar raíz (solo modo edición). Default: "Agregar raíz". */
|
|
674
990
|
rootLabel?: string;
|
|
675
991
|
/** Render custom para el contenido de cada nodo. Recibe el nodo y el render por defecto. */
|
|
676
|
-
renderNode?: (node: TreeNode, defaultContent:
|
|
992
|
+
renderNode?: (node: TreeNode, defaultContent: React__default.ReactNode) => React__default.ReactNode;
|
|
677
993
|
/** Called when user taps any add button/row. When provided, the built-in add dialog is bypassed. */
|
|
678
994
|
onRequestAdd?: (parentId: string | null) => void;
|
|
679
995
|
/** Called when user taps "Editar" from the node menu. When provided, the built-in edit dialog is bypassed. */
|
|
@@ -695,7 +1011,7 @@ declare function countNodes(nodes: TreeNode[]): number;
|
|
|
695
1011
|
* expandida con su primer nivel visible.
|
|
696
1012
|
*/
|
|
697
1013
|
declare function buildInitialCollapsed(nodes: TreeNode[]): Record<string, boolean>;
|
|
698
|
-
declare function TreeEditor({ value, onChange, mode, variant, collapsed: collapsedProp, onCollapsedChange, rootLabel, renderNode, onRequestAdd, onRequestEdit, onRequestDelete, style }: TreeEditorProps):
|
|
1014
|
+
declare function TreeEditor({ value, onChange, mode, variant, collapsed: collapsedProp, onCollapsedChange, rootLabel, renderNode, onRequestAdd, onRequestEdit, onRequestDelete, style }: TreeEditorProps): React__default.JSX.Element;
|
|
699
1015
|
|
|
700
1016
|
interface TextFieldProps {
|
|
701
1017
|
label: string;
|
|
@@ -716,7 +1032,7 @@ interface TextFieldProps {
|
|
|
716
1032
|
/** Estilo del contenedor (label + campo). */
|
|
717
1033
|
style?: StyleProp<ViewStyle>;
|
|
718
1034
|
}
|
|
719
|
-
declare function TextField({ label, value, onChangeText, placeholder, editable, secureTextEntry, keyboardType, autoCapitalize, maxLength, multiline, error, style, }: TextFieldProps):
|
|
1035
|
+
declare function TextField({ label, value, onChangeText, placeholder, editable, secureTextEntry, keyboardType, autoCapitalize, maxLength, multiline, error, style, }: TextFieldProps): React__default.JSX.Element;
|
|
720
1036
|
|
|
721
1037
|
type SplitColorCardProps = {
|
|
722
1038
|
label: string;
|
|
@@ -726,7 +1042,7 @@ type SplitColorCardProps = {
|
|
|
726
1042
|
darkTokenName: string;
|
|
727
1043
|
onPress?: () => void;
|
|
728
1044
|
};
|
|
729
|
-
declare function SplitColorCard({ label, lightHex, darkHex, lightTokenName, darkTokenName, onPress, }: SplitColorCardProps):
|
|
1045
|
+
declare function SplitColorCard({ label, lightHex, darkHex, lightTokenName, darkTokenName, onPress, }: SplitColorCardProps): React__default.JSX.Element;
|
|
730
1046
|
type SplitTextCardProps = {
|
|
731
1047
|
label: string;
|
|
732
1048
|
lightHex: string;
|
|
@@ -738,7 +1054,7 @@ type SplitTextCardProps = {
|
|
|
738
1054
|
textContent?: string;
|
|
739
1055
|
onPress?: () => void;
|
|
740
1056
|
};
|
|
741
|
-
declare function SplitTextCard({ label, lightHex, darkHex, lightBgHex, darkBgHex, lightTokenName, darkTokenName, textContent, onPress, }: SplitTextCardProps):
|
|
1057
|
+
declare function SplitTextCard({ label, lightHex, darkHex, lightBgHex, darkBgHex, lightTokenName, darkTokenName, textContent, onPress, }: SplitTextCardProps): React__default.JSX.Element;
|
|
742
1058
|
type SplitDarknessCardProps = {
|
|
743
1059
|
label: string;
|
|
744
1060
|
lightHex: string;
|
|
@@ -749,21 +1065,21 @@ type SplitDarknessCardProps = {
|
|
|
749
1065
|
darkKey: string;
|
|
750
1066
|
onPress?: () => void;
|
|
751
1067
|
};
|
|
752
|
-
declare function SplitDarknessCard({ label, lightHex, darkHex, lightTokenName, darkTokenName, lightKey, darkKey, onPress, }: SplitDarknessCardProps):
|
|
1068
|
+
declare function SplitDarknessCard({ label, lightHex, darkHex, lightTokenName, darkTokenName, lightKey, darkKey, onPress, }: SplitDarknessCardProps): React__default.JSX.Element;
|
|
753
1069
|
|
|
754
1070
|
type TextVariant = TextType;
|
|
755
1071
|
interface TextProps extends TextProps$1 {
|
|
756
1072
|
variant?: TextVariant;
|
|
757
1073
|
color?: string;
|
|
758
1074
|
}
|
|
759
|
-
declare function Text({ variant, color, style, ...rest }: TextProps):
|
|
1075
|
+
declare function Text({ variant, color, style, ...rest }: TextProps): React__default.JSX.Element;
|
|
760
1076
|
|
|
761
1077
|
interface AppTextHeaderProps {
|
|
762
1078
|
heading: string;
|
|
763
1079
|
caption?: string;
|
|
764
1080
|
style?: ViewStyle;
|
|
765
1081
|
}
|
|
766
|
-
declare function AppTextHeader({ heading, caption, style }: AppTextHeaderProps):
|
|
1082
|
+
declare function AppTextHeader({ heading, caption, style }: AppTextHeaderProps): React__default.JSX.Element;
|
|
767
1083
|
|
|
768
1084
|
interface EmptyStateProps {
|
|
769
1085
|
icon?: IconName;
|
|
@@ -772,7 +1088,7 @@ interface EmptyStateProps {
|
|
|
772
1088
|
caption?: string;
|
|
773
1089
|
style?: ViewStyle;
|
|
774
1090
|
}
|
|
775
|
-
declare function EmptyState({ icon, iconSize, title, caption, style }: EmptyStateProps):
|
|
1091
|
+
declare function EmptyState({ icon, iconSize, title, caption, style }: EmptyStateProps): React__default.JSX.Element;
|
|
776
1092
|
|
|
777
1093
|
type AppInputProps = {
|
|
778
1094
|
label: string;
|
|
@@ -785,19 +1101,34 @@ type AppFormCardProps = {
|
|
|
785
1101
|
labelWidth?: number;
|
|
786
1102
|
style?: ViewStyle;
|
|
787
1103
|
};
|
|
788
|
-
declare function AppFormCard({ children, labelWidth, style }: AppFormCardProps):
|
|
1104
|
+
declare function AppFormCard({ children, labelWidth, style }: AppFormCardProps): React__default.JSX.Element;
|
|
789
1105
|
|
|
790
1106
|
type AppTextInputProps = AppInputProps & {
|
|
791
1107
|
type?: "text";
|
|
792
1108
|
value: string;
|
|
793
|
-
|
|
1109
|
+
/** Opcional: los campos de solo lectura (readOnly u onPress) completados por
|
|
1110
|
+
* escaneo no necesitan proveer un handler de texto. */
|
|
1111
|
+
onChangeText?: (value: string) => void;
|
|
794
1112
|
placeholder?: string;
|
|
795
1113
|
autoCapitalize?: "none" | "sentences" | "words" | "characters";
|
|
796
1114
|
keyboardType?: KeyboardTypeOptions;
|
|
797
1115
|
maxLength?: number;
|
|
798
1116
|
editable?: boolean;
|
|
1117
|
+
/** Solo lectura: bloquea el ingreso de texto (sin teclado) pero conserva el
|
|
1118
|
+
* aspecto normal de la fila y deja operativas las acciones (p. ej. escanear). */
|
|
1119
|
+
readOnly?: boolean;
|
|
1120
|
+
/** Al tocar la fila: si se pasa, se usa este handler en vez de enfocar el
|
|
1121
|
+
* input (p. ej. campos que solo se completan escaneando: tocar el campo abre
|
|
1122
|
+
* el escáner y no el teclado). */
|
|
1123
|
+
onPress?: () => void;
|
|
1124
|
+
/** Botón de acción a la derecha del campo (ej. escanear un código). */
|
|
1125
|
+
trailingAction?: {
|
|
1126
|
+
icon: IconName;
|
|
1127
|
+
onPress: () => void;
|
|
1128
|
+
accessibilityLabel?: string;
|
|
1129
|
+
};
|
|
799
1130
|
};
|
|
800
|
-
declare function AppTextInput({ label, labelWidth, value, onChangeText, placeholder, autoCapitalize, keyboardType, maxLength, editable, }: AppTextInputProps):
|
|
1131
|
+
declare function AppTextInput({ label, labelWidth, value, onChangeText, placeholder, autoCapitalize, keyboardType, maxLength, editable, readOnly, trailingAction, onPress: onPressOverride, }: AppTextInputProps): React__default.JSX.Element;
|
|
801
1132
|
|
|
802
1133
|
type AppTextAreaProps = AppInputProps & {
|
|
803
1134
|
value: string;
|
|
@@ -808,7 +1139,7 @@ type AppTextAreaProps = AppInputProps & {
|
|
|
808
1139
|
maxLength?: number;
|
|
809
1140
|
editable?: boolean;
|
|
810
1141
|
};
|
|
811
|
-
declare function AppTextArea({ label, value, onChangeText, placeholder, autoCapitalize, keyboardType, maxLength, editable, }: AppTextAreaProps):
|
|
1142
|
+
declare function AppTextArea({ label, value, onChangeText, placeholder, autoCapitalize, keyboardType, maxLength, editable, }: AppTextAreaProps): React__default.JSX.Element;
|
|
812
1143
|
|
|
813
1144
|
type AppSelectorOption = {
|
|
814
1145
|
label: string;
|
|
@@ -822,14 +1153,14 @@ type AppSelectorProps = AppInputProps & {
|
|
|
822
1153
|
placeholder?: string;
|
|
823
1154
|
disabled?: boolean;
|
|
824
1155
|
};
|
|
825
|
-
declare function AppSelector({ label, labelWidth, value, onChange, options, placeholder, disabled, }: AppSelectorProps):
|
|
1156
|
+
declare function AppSelector({ label, labelWidth, value, onChange, options, placeholder, disabled, }: AppSelectorProps): React__default.JSX.Element;
|
|
826
1157
|
|
|
827
1158
|
type AppToggleProps = AppInputProps & {
|
|
828
1159
|
value: boolean;
|
|
829
1160
|
onValueChange: (value: boolean) => void;
|
|
830
1161
|
disabled?: boolean;
|
|
831
1162
|
};
|
|
832
|
-
declare function AppToggle({ label, labelWidth, value, onValueChange, disabled, }: AppToggleProps):
|
|
1163
|
+
declare function AppToggle({ label, labelWidth, value, onValueChange, disabled, }: AppToggleProps): React__default.JSX.Element;
|
|
833
1164
|
|
|
834
1165
|
type AppButtonVariant = "solid" | "outline" | "ghost";
|
|
835
1166
|
type AppButtonProps = {
|
|
@@ -842,10 +1173,10 @@ type AppButtonProps = {
|
|
|
842
1173
|
borderColor?: string;
|
|
843
1174
|
style?: ViewStyle;
|
|
844
1175
|
};
|
|
845
|
-
declare function AppButton({ label, onPress, disabled, variant, backgroundColor, textColor, borderColor, style, }: AppButtonProps):
|
|
1176
|
+
declare function AppButton({ label, onPress, disabled, variant, backgroundColor, textColor, borderColor, style, }: AppButtonProps): React__default.JSX.Element;
|
|
846
1177
|
|
|
847
1178
|
type KeyboardSafeScreenProps = {
|
|
848
|
-
children:
|
|
1179
|
+
children: React__default.ReactNode;
|
|
849
1180
|
style?: StyleProp<ViewStyle>;
|
|
850
1181
|
contentContainerStyle?: StyleProp<ViewStyle>;
|
|
851
1182
|
scrollViewProps?: ScrollViewProps;
|
|
@@ -856,7 +1187,7 @@ type KeyboardSafeScreenProps = {
|
|
|
856
1187
|
* react-native-keyboard-controller, negativa con teclado visible) para
|
|
857
1188
|
* empujar el contenido sin re-renders de JS. En web mide el visualViewport.
|
|
858
1189
|
*/
|
|
859
|
-
declare function KeyboardSafeScreen({ children, style, contentContainerStyle, scrollViewProps, }: KeyboardSafeScreenProps):
|
|
1190
|
+
declare function KeyboardSafeScreen({ children, style, contentContainerStyle, scrollViewProps, }: KeyboardSafeScreenProps): React__default.JSX.Element;
|
|
860
1191
|
|
|
861
1192
|
type SheetKind = "topSheet" | "bottomSheet" | "fullHeader" | "fullBody";
|
|
862
1193
|
interface RouteOptions {
|
|
@@ -890,7 +1221,7 @@ type SheetLayoutContextValue = {
|
|
|
890
1221
|
};
|
|
891
1222
|
/** Permite que el contenido de una capa pida cambiar de ruta sin navigator. */
|
|
892
1223
|
declare function useSheetLayout(): SheetLayoutContextValue;
|
|
893
|
-
declare function SheetLayout({ routes, activeKey, onRequestChange, style, }: SheetLayoutProps):
|
|
1224
|
+
declare function SheetLayout({ routes, activeKey, onRequestChange, style, }: SheetLayoutProps): React__default.JSX.Element;
|
|
894
1225
|
|
|
895
1226
|
/**
|
|
896
1227
|
* Cada "kind" de ruta se resuelve en una composición de capas (hosts):
|
|
@@ -921,10 +1252,10 @@ type SheetSlotProps = {
|
|
|
921
1252
|
interactive: boolean;
|
|
922
1253
|
baseColor: "header" | "body";
|
|
923
1254
|
};
|
|
924
|
-
declare function SheetSlot({ side, visible, route, interactive, baseColor, }: SheetSlotProps):
|
|
1255
|
+
declare function SheetSlot({ side, visible, route, interactive, baseColor, }: SheetSlotProps): React__default.JSX.Element | null;
|
|
925
1256
|
|
|
926
1257
|
type MainLayoutProps = {
|
|
927
|
-
children?:
|
|
1258
|
+
children?: React__default.ReactNode;
|
|
928
1259
|
backgroundColor?: string;
|
|
929
1260
|
/** Si el body debe poder scrollear. Default true. */
|
|
930
1261
|
scroll?: boolean;
|
|
@@ -936,15 +1267,15 @@ type MainLayoutProps = {
|
|
|
936
1267
|
* muestra un body (scrolleable por defecto). Punto de partida mínimo para
|
|
937
1268
|
* ir construyendo encima según se necesite.
|
|
938
1269
|
*/
|
|
939
|
-
declare function MainLayout({ children, backgroundColor, scroll, contentContainerStyle, style, }: MainLayoutProps):
|
|
1270
|
+
declare function MainLayout({ children, backgroundColor, scroll, contentContainerStyle, style, }: MainLayoutProps): React__default.JSX.Element;
|
|
940
1271
|
|
|
941
1272
|
type SectionKey = "top" | "mid" | "bottom";
|
|
942
|
-
type HeightSpec = "content" | "fill" | "fillRest" | "third" | number;
|
|
1273
|
+
type HeightSpec = "content" | "fill" | "fillRest" | "minFillRest" | "third" | number;
|
|
943
1274
|
type SlotName = "header" | "body" | "footer";
|
|
944
1275
|
type SectionBehavior = {
|
|
945
1276
|
/** Si la sección se renderiza. Default true. */
|
|
946
1277
|
visible?: boolean;
|
|
947
|
-
/** Cómo se determina su alto: contenido medido, llenar (H), rellenar resto, un tercio, o px fijos. Default "content". */
|
|
1278
|
+
/** Cómo se determina su alto: contenido medido, llenar (H), rellenar resto, al menos rellenar el resto creciendo con el contenido, un tercio, o px fijos. Default "content". */
|
|
948
1279
|
height?: HeightSpec;
|
|
949
1280
|
/** La sección scrollea internamente (ScrollView propio). */
|
|
950
1281
|
scroll?: boolean;
|
|
@@ -984,23 +1315,58 @@ type AppNavigation = {
|
|
|
984
1315
|
/** Presets = las 5 variantes del motor, reutilizables por nombre. */
|
|
985
1316
|
declare const layoutStates: Record<LayoutStateName, LayoutState>;
|
|
986
1317
|
declare function useAppNavigation(): AppNavigation;
|
|
987
|
-
type AppLayoutDebugSnapshot = {
|
|
988
|
-
route: string;
|
|
989
|
-
anchors: string[];
|
|
990
|
-
anim: Record<string, number>;
|
|
991
|
-
naturals: Record<SectionKey, number>;
|
|
992
|
-
lastMeasured: Record<SectionKey, number>;
|
|
993
|
-
windowH: number;
|
|
994
|
-
};
|
|
995
|
-
declare function useAppLayoutDebug(): {
|
|
996
|
-
snapshot: () => AppLayoutDebugSnapshot;
|
|
997
|
-
};
|
|
998
1318
|
type AppLayoutProps = {
|
|
999
1319
|
initialRoute: AppRoute;
|
|
1000
1320
|
/** Muestra un botón de volver global cuando canGoBack. Default true. */
|
|
1001
1321
|
showBackButton?: boolean;
|
|
1322
|
+
/**
|
|
1323
|
+
* Anima las transiciones de estado (rutas y colapsos por medición) con
|
|
1324
|
+
* layout transitions de Reanimated (morph de altura en hilo UI), en lugar de
|
|
1325
|
+
* aplicar las alturas planas de forma inmediata. Default false (motor
|
|
1326
|
+
* estático estable).
|
|
1327
|
+
*/
|
|
1328
|
+
animateTransitions?: boolean;
|
|
1329
|
+
/**
|
|
1330
|
+
* Cuándo revelar el contenido visible de las secciones durante una
|
|
1331
|
+
* transición animada. "always": siempre visible (el alto anima con el
|
|
1332
|
+
* contenido pintado). "after": el contenido se oculta mientras el alto
|
|
1333
|
+
* transiciona y se desvanece al terminar. Default "always".
|
|
1334
|
+
*/
|
|
1335
|
+
contentReveal?: "always" | "after";
|
|
1336
|
+
};
|
|
1337
|
+
declare function AppLayout({ initialRoute, showBackButton, animateTransitions, contentReveal, }: AppLayoutProps): React__default.JSX.Element;
|
|
1338
|
+
|
|
1339
|
+
type AppShellNavigation = {
|
|
1340
|
+
/** Nombre de la ruta actual del shell (lockedRoute si está bloqueada). */
|
|
1341
|
+
current: string;
|
|
1342
|
+
/** AppRoute resuelto de `current` contra el mapa `routes` (con fallback), listo para alimentar el AppLayout. */
|
|
1343
|
+
currentRoute: AppRoute;
|
|
1344
|
+
/** Hay una ruta anterior en el stack a la que volver. */
|
|
1345
|
+
canGoBack: boolean;
|
|
1346
|
+
/** Empuja una ruta al shell (no-op si ya es la actual o si está bloqueado). */
|
|
1347
|
+
navigate: (name: string) => void;
|
|
1348
|
+
/** Vuelve a la ruta anterior (no-op si no hay stack). */
|
|
1349
|
+
back: () => void;
|
|
1350
|
+
/** Reemplaza todo el stack por [name] (reset al salir del shell hacia una ruta expo-router). */
|
|
1351
|
+
reset: (name: string) => void;
|
|
1352
|
+
};
|
|
1353
|
+
type AppShellProps = {
|
|
1354
|
+
/** Mapa name → AppRoute del shell. */
|
|
1355
|
+
routes: Record<string, AppRoute>;
|
|
1356
|
+
/** Nombre de la ruta inicial del stack. Default: `fallbackRoute`. */
|
|
1357
|
+
initialRoute?: string;
|
|
1358
|
+
/** Ruta por defecto cuando un nombre no existe en `routes`. Default "home". */
|
|
1359
|
+
fallbackRoute?: string;
|
|
1360
|
+
/**
|
|
1361
|
+
* Ruta bloqueada: si está definida, el shell muestra SIEMPRE esta ruta y la
|
|
1362
|
+
* navegación interna se ignora (p. ej. "login" cuando no hay sesión). Al
|
|
1363
|
+
* volver a undefined, el shell cae a la ruta que esté en el tope del stack.
|
|
1364
|
+
*/
|
|
1365
|
+
lockedRoute?: string;
|
|
1366
|
+
children?: ReactNode;
|
|
1002
1367
|
};
|
|
1003
|
-
declare function
|
|
1368
|
+
declare function useAppShell(): AppShellNavigation;
|
|
1369
|
+
declare function AppShell({ routes, initialRoute, fallbackRoute, lockedRoute, children, }: AppShellProps): React__default.JSX.Element;
|
|
1004
1370
|
|
|
1005
1371
|
type DivisorPosition = "top" | "bottom";
|
|
1006
1372
|
type DivisorProps = {
|
|
@@ -1014,11 +1380,15 @@ type DivisorProps = {
|
|
|
1014
1380
|
height?: number;
|
|
1015
1381
|
/** Muestra el "grabber" (pill) estilo iOS centrado en el borde de la hoja. */
|
|
1016
1382
|
handle?: boolean;
|
|
1383
|
+
/** Extiende la capa oscura más allá de la caja base por el lado recto (contra
|
|
1384
|
+
* el borde de la hoja), para que no quede costura ni subpixel entre el cap y
|
|
1385
|
+
* la hoja. Default 0. */
|
|
1386
|
+
extend?: number;
|
|
1017
1387
|
/** Color del grabber. Default: blanco translúcido. */
|
|
1018
1388
|
handleColor?: string;
|
|
1019
1389
|
style?: ViewStyle;
|
|
1020
1390
|
};
|
|
1021
|
-
declare function Divisor({ position, color, baseColor, height, handle, handleColor, style, }: DivisorProps):
|
|
1391
|
+
declare function Divisor({ position, color, baseColor, height, handle, extend, handleColor, style, }: DivisorProps): React__default.JSX.Element;
|
|
1022
1392
|
|
|
1023
1393
|
/**
|
|
1024
1394
|
* Dirección de entrada/salida de una capa durante una transición.
|
|
@@ -1038,6 +1408,139 @@ declare function resolveTransition(from: SheetKind, to: SheetKind): TransitionSp
|
|
|
1038
1408
|
/** Signo del desplazamiento vertical para una dirección de translate. */
|
|
1039
1409
|
declare function directionSign(dir: LayerDirection): number;
|
|
1040
1410
|
|
|
1411
|
+
/** Orientación de la cámara (cámara trasera o frontal). */
|
|
1412
|
+
type CameraFacing = CameraType;
|
|
1413
|
+
/** Modo de flash para la captura de fotos (off → on → auto). */
|
|
1414
|
+
type CameraFlashMode = FlashMode;
|
|
1415
|
+
/** Resultado de una foto capturada con la cámara. */
|
|
1416
|
+
type CapturePhoto = {
|
|
1417
|
+
/** URI local (nativo) o base64 (web) de la imagen capturada. */
|
|
1418
|
+
uri: string;
|
|
1419
|
+
/** Ancho de la imagen. */
|
|
1420
|
+
width: number;
|
|
1421
|
+
/** Alto de la imagen. */
|
|
1422
|
+
height: number;
|
|
1423
|
+
};
|
|
1424
|
+
/** Resultado de un código escaneado. */
|
|
1425
|
+
type ScanResult = {
|
|
1426
|
+
/** Tipo de código escaneado (ej. "qr", "code128"). */
|
|
1427
|
+
type: string;
|
|
1428
|
+
/** Información decodificada del código. */
|
|
1429
|
+
value: string;
|
|
1430
|
+
};
|
|
1431
|
+
|
|
1432
|
+
type CameraScreenContainerProps = {
|
|
1433
|
+
children?: React__default.ReactNode;
|
|
1434
|
+
style?: StyleProp<ViewStyle>;
|
|
1435
|
+
};
|
|
1436
|
+
declare function CameraScreenContainer({ children, style }: CameraScreenContainerProps): React__default.JSX.Element;
|
|
1437
|
+
|
|
1438
|
+
type CameraPermissionGateProps = {
|
|
1439
|
+
children?: React__default.ReactNode;
|
|
1440
|
+
/** Título mostrado en la cabecera (recién el host provee un onClose). */
|
|
1441
|
+
title?: string;
|
|
1442
|
+
onClose?: () => void;
|
|
1443
|
+
/** Texto del estado sin permiso. Default: mensaje estándar. */
|
|
1444
|
+
deniedMessage?: string;
|
|
1445
|
+
};
|
|
1446
|
+
declare function CameraPermissionGate({ children, title, onClose, deniedMessage }: CameraPermissionGateProps): React__default.JSX.Element;
|
|
1447
|
+
|
|
1448
|
+
type CameraHudProps = {
|
|
1449
|
+
/** Título centrado de la barra superior. */
|
|
1450
|
+
title?: string;
|
|
1451
|
+
/** Si se pasa, muestra el botón de volver (barra superior izquierda). */
|
|
1452
|
+
onClose?: () => void;
|
|
1453
|
+
/** Ícono del botón de volver. Default "arrow-back". */
|
|
1454
|
+
closeIcon?: IconName;
|
|
1455
|
+
/** Flash de captura (barra superior derecha). Se muestra solo en modo captura. */
|
|
1456
|
+
flash?: CameraFlashMode;
|
|
1457
|
+
onToggleFlash?: () => void;
|
|
1458
|
+
/** Linterna del scanner (barra superior derecha en modo escaneo). */
|
|
1459
|
+
torch?: boolean;
|
|
1460
|
+
onToggleTorch?: () => void;
|
|
1461
|
+
/** Par de botones del modo captura. */
|
|
1462
|
+
onFlipCamera?: () => void;
|
|
1463
|
+
canFlipCamera?: boolean;
|
|
1464
|
+
onCapture?: () => void;
|
|
1465
|
+
capturing?: boolean;
|
|
1466
|
+
canCapture?: boolean;
|
|
1467
|
+
};
|
|
1468
|
+
declare function CameraHud({ title, onClose, closeIcon, flash, onToggleFlash, torch, onToggleTorch, onFlipCamera, canFlipCamera, onCapture, capturing, canCapture, }: CameraHudProps): React__default.JSX.Element;
|
|
1469
|
+
type HudIconButtonProps = {
|
|
1470
|
+
icon: IconName;
|
|
1471
|
+
label: string;
|
|
1472
|
+
onPress?: () => void;
|
|
1473
|
+
active?: boolean;
|
|
1474
|
+
size?: "md" | "lg";
|
|
1475
|
+
};
|
|
1476
|
+
declare function HudIconButton({ icon, label, onPress, active, size }: HudIconButtonProps): React__default.JSX.Element;
|
|
1477
|
+
declare function ShutterButton({ busy, enabled, onPress, }: {
|
|
1478
|
+
busy?: boolean;
|
|
1479
|
+
enabled?: boolean;
|
|
1480
|
+
onPress?: () => void;
|
|
1481
|
+
}): React__default.JSX.Element;
|
|
1482
|
+
|
|
1483
|
+
type CameraCaptureScreenProps = {
|
|
1484
|
+
/** Si es false, la pantalla no se renderiza. Default true. */
|
|
1485
|
+
visible?: boolean;
|
|
1486
|
+
/** Título de la cabecera. Default "Cámara". */
|
|
1487
|
+
title?: string;
|
|
1488
|
+
/** Botón de volver (prop del host). */
|
|
1489
|
+
onClose?: () => void;
|
|
1490
|
+
/** Flash actual. Cicla off → on → auto → off al tocar. Default "off". */
|
|
1491
|
+
flash?: CameraFlashMode;
|
|
1492
|
+
onFlashChange?: (flash: CameraFlashMode) => void;
|
|
1493
|
+
/** Cámara activa. Default "back". */
|
|
1494
|
+
facing?: CameraFacing;
|
|
1495
|
+
onFacingChange?: (facing: CameraFacing) => void;
|
|
1496
|
+
/** Calidad JPEG de la captura (0–1). Default 0.85. */
|
|
1497
|
+
quality?: number;
|
|
1498
|
+
/** Incluir la imagen en Base64. Default false. */
|
|
1499
|
+
includeBase64?: boolean;
|
|
1500
|
+
/** Incluir datos EXIF. Default false. */
|
|
1501
|
+
includeExif?: boolean;
|
|
1502
|
+
/** Espejar la frontal. Default true. */
|
|
1503
|
+
mirrorFront?: boolean;
|
|
1504
|
+
/** Resultado de una foto tomada. */
|
|
1505
|
+
onCapture?: (photo: CapturePhoto) => void;
|
|
1506
|
+
/** Preview de la cámara listo. */
|
|
1507
|
+
onOpenCamera?: () => void;
|
|
1508
|
+
/** Error de montaje o captura. */
|
|
1509
|
+
onCameraError?: (error: unknown) => void;
|
|
1510
|
+
style?: StyleProp<ViewStyle>;
|
|
1511
|
+
};
|
|
1512
|
+
declare function CameraCaptureScreen({ visible, title, onClose, flash, onFlashChange, facing, onFacingChange, quality, includeBase64, includeExif, mirrorFront, onCapture, onOpenCamera, onCameraError, style, }: CameraCaptureScreenProps): React__default.JSX.Element | null;
|
|
1513
|
+
|
|
1514
|
+
type BarcodeScannerScreenProps = {
|
|
1515
|
+
/** Si es false, la pantalla no se renderiza. Default true. */
|
|
1516
|
+
visible?: boolean;
|
|
1517
|
+
/** Título de la cabecera. Default "Escanear". */
|
|
1518
|
+
title?: string;
|
|
1519
|
+
/** Ayuda que se muestra bajo el viewfinder. */
|
|
1520
|
+
caption?: string;
|
|
1521
|
+
onClose?: () => void;
|
|
1522
|
+
/** Resultado de un código detectado. */
|
|
1523
|
+
onScan?: (result: ScanResult) => void;
|
|
1524
|
+
/** Tipos a reconocer. Default solo QR. */
|
|
1525
|
+
barcodeTypes?: BarcodeType[];
|
|
1526
|
+
/** Tiempo mínimo entre scans consecutivos (ms). Default 1500. */
|
|
1527
|
+
throttleMs?: number;
|
|
1528
|
+
/** Ignora las lecturas durante los primeros N ms tras abrir el escáner
|
|
1529
|
+
* (para encuadrar antes de que dispare). Default 0. */
|
|
1530
|
+
detectionDelayMs?: number;
|
|
1531
|
+
/** Vibra al detectar (nativo). Default true. */
|
|
1532
|
+
haptics?: boolean;
|
|
1533
|
+
/** Linterna encendida (light durante el escaneo). */
|
|
1534
|
+
torch?: boolean;
|
|
1535
|
+
onTorchChange?: (torch: boolean) => void;
|
|
1536
|
+
facing?: CameraFacing;
|
|
1537
|
+
onFacingChange?: (facing: CameraFacing) => void;
|
|
1538
|
+
onOpenCamera?: () => void;
|
|
1539
|
+
onCameraError?: (error: unknown) => void;
|
|
1540
|
+
style?: StyleProp<ViewStyle>;
|
|
1541
|
+
};
|
|
1542
|
+
declare function BarcodeScannerScreen({ visible, title, caption, onClose, onScan, barcodeTypes, throttleMs, detectionDelayMs, haptics, torch, onTorchChange, facing, onFacingChange, onOpenCamera, onCameraError, style, }: BarcodeScannerScreenProps): React__default.JSX.Element | null;
|
|
1543
|
+
|
|
1041
1544
|
declare const AppIcon: {
|
|
1042
1545
|
readonly Home: IconName;
|
|
1043
1546
|
readonly HomeFilled: IconName;
|
|
@@ -1086,4 +1589,4 @@ declare const AppIcon: {
|
|
|
1086
1589
|
readonly Inbox: IconName;
|
|
1087
1590
|
};
|
|
1088
1591
|
|
|
1089
|
-
export { 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
|
|
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 };
|